/*
Theme Name: VintaToys
Theme URI: https://vintatoys.eu
Author: Webchiefs
Description: Speels, warm en professioneel WooCommerce-thema voor VintaToys — rustig speelgoed dat meegroeit met de ontwikkeling van kinderen.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: vintatoys
WC requires at least: 9.0
*/

/* ---------- Tokens ---------- */
:root {
	--vt-cream: #faf8f5;
	--vt-paper: #fffdf9;
	--vt-sand: #ede6dc;
	--vt-sand-soft: #f5f0e8;
	--vt-forest: #5a6b5c;
	--vt-forest-dark: #3d4a42;
	--vt-sage: #8fa68f;
	--vt-sage-soft: #dfe8dd;
	--vt-sky: #a8c4c4;
	--vt-sky-soft: #e1ecec;
	--vt-bronze: #c4846c;
	--vt-bronze-dark: #a96a53;
	--vt-bronze-soft: #f3e1d8;
	--vt-rose: #9f6057;
	--vt-butter: #f1dca7;
	--vt-butter-soft: #faf0d6;
	--vt-text: #2e2c28;
	--vt-muted: #6f6a63;
	--vt-line: rgba(61, 74, 66, 0.12);

	--vt-font-heading: "Fraunces", Georgia, "Times New Roman", serif;
	--vt-font-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

	--vt-radius-sm: 12px;
	--vt-radius: 20px;
	--vt-radius-lg: 32px;
	--vt-radius-pill: 999px;
	--vt-shadow: 0 6px 24px rgba(61, 74, 66, 0.08);
	--vt-shadow-lg: 0 18px 50px rgba(61, 74, 66, 0.14);
	--vt-shadow-pop: 4px 4px 0 var(--vt-forest-dark);
	--vt-ease: cubic-bezier(0.34, 1.56, 0.64, 1);
	--vt-container: 1240px;
	--vt-gutter: clamp(1rem, 4vw, 2rem);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	background: var(--vt-cream);
	color: var(--vt-text);
	font-family: var(--vt-font-body);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
.vt-main { flex: 1 0 auto; }
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--vt-forest); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
a:hover { color: var(--vt-bronze-dark); }
h1, h2, h3, h4 {
	font-family: var(--vt-font-heading);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -0.015em;
	color: var(--vt-forest-dark);
	margin: 0 0 0.5em;
	font-variation-settings: "SOFT" 100, "WONK" 1;
}
h1 { font-size: clamp(2.3rem, 5.2vw, 4rem); }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.75rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.45rem); }
p { margin: 0 0 1em; }
::selection { background: var(--vt-butter); color: var(--vt-forest-dark); }
:focus-visible { outline: 3px solid var(--vt-bronze); outline-offset: 3px; border-radius: 6px; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto; z-index: 1000; top: 1rem; left: 1rem;
	background: var(--vt-forest-dark); color: #fff; padding: 0.75rem 1.25rem; border-radius: var(--vt-radius-pill);
}

.vt-container { width: 100%; max-width: var(--vt-container); margin: 0 auto; padding: 0 var(--vt-gutter); }
.vt-section { padding: clamp(3.5rem, 8vw, 6.5rem) 0; position: relative; }
.vt-section--sand { background: var(--vt-sand-soft); }
.vt-center { text-align: center; }

/* Eyebrow + squiggle */
.vt-eyebrow {
	display: inline-flex; align-items: center; gap: 0.5rem;
	font-size: 0.8rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--vt-bronze-dark); margin-bottom: 1rem;
}
.vt-eyebrow::before {
	content: ""; width: 10px; height: 10px; border-radius: 50%;
	background: var(--vt-bronze); box-shadow: 14px 0 0 var(--vt-sage), 28px 0 0 var(--vt-sky);
	margin-right: 30px;
}
.vt-squiggle { position: relative; white-space: nowrap; display: inline-block; z-index: 0; }
.vt-squiggle::after {
	content: ""; position: absolute; left: -2%; right: -2%; bottom: -0.12em; height: 0.38em; z-index: -1;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M2 14 C 30 2, 50 2, 70 12 S 110 22, 130 10 S 175 2, 198 12' fill='none' stroke='%23c4846c' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
@media (max-width: 600px) {
	.vt-squiggle { white-space: normal; }
	.vt-squiggle::after { bottom: -0.06em; height: 0.24em; }
}
.vt-section-head { max-width: 46rem; margin: 0 auto clamp(2rem, 5vw, 3.25rem); text-align: center; }
.vt-section-head p { color: var(--vt-muted); font-size: 1.08rem; }
.vt-section-head--left { margin-left: 0; text-align: left; }

/* ---------- Buttons ---------- */
.vt-btn,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.wc-block-components-button:not(.is-link), .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem;
	padding: 0.95rem 1.65rem;
	border-radius: var(--vt-radius-pill);
	border: 2px solid var(--vt-forest-dark);
	background: var(--vt-forest-dark); color: #fff;
	font-family: var(--vt-font-body); font-weight: 700; font-size: 1rem; line-height: 1.1;
	text-decoration: none; cursor: pointer;
	transition: transform 0.25s var(--vt-ease), box-shadow 0.25s ease, background 0.2s ease, color 0.2s ease;
	box-shadow: 0 0 0 transparent;
}
.vt-btn:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.wc-block-components-button:not(.is-link):hover, .wp-block-button__link:hover {
	background: var(--vt-forest); color: #fff; border-color: var(--vt-forest-dark);
	transform: translate(-2px, -2px); box-shadow: var(--vt-shadow-pop);
}
.vt-btn:active { transform: translate(0, 0); box-shadow: none; }
.vt-btn--bronze { background: var(--vt-bronze); border-color: var(--vt-bronze); }
.vt-btn--bronze:hover { background: var(--vt-bronze-dark); border-color: var(--vt-forest-dark); }
.vt-btn--ghost { background: transparent; color: var(--vt-forest-dark); }
.vt-btn--ghost:hover { background: var(--vt-paper); color: var(--vt-forest-dark); }
.vt-btn--light { background: var(--vt-paper); color: var(--vt-forest-dark); border-color: var(--vt-paper); }
.vt-btn--light:hover { background: var(--vt-butter); color: var(--vt-forest-dark); }
.vt-btn--sm { padding: 0.6rem 1.1rem; font-size: 0.9rem; }
.vt-btn svg { width: 18px; height: 18px; transition: transform 0.25s var(--vt-ease); }
.vt-btn:hover svg { transform: translateX(3px); }
.vt-link-arrow { font-weight: 700; text-decoration: none; display: inline-flex; gap: 0.35rem; align-items: center; }
.vt-link-arrow::after { content: "→"; transition: transform 0.25s var(--vt-ease); }
.vt-link-arrow:hover::after { transform: translateX(4px); }

/* ---------- Topbar ---------- */
.vt-topbar { background: var(--vt-forest-dark); color: #f4efe7; font-size: 0.86rem; font-weight: 500; }
.vt-topbar__inner { display: flex; align-items: center; justify-content: center; gap: 2.25rem; min-height: 40px; }
.vt-topbar__item { display: inline-flex; align-items: center; gap: 0.45rem; white-space: nowrap; }
.vt-topbar__item svg { width: 16px; height: 16px; color: var(--vt-butter); }
@media (max-width: 860px) {
	.vt-topbar__inner { position: relative; overflow: hidden; }
	.vt-topbar__item { position: absolute; opacity: 0; transform: translateY(100%); transition: opacity 0.4s, transform 0.4s; }
	.vt-topbar__item.is-active { position: static; opacity: 1; transform: none; }
}

/* ---------- Header ---------- */
.vt-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(250, 248, 245, 0.92);
	backdrop-filter: saturate(160%) blur(12px);
	-webkit-backdrop-filter: saturate(160%) blur(12px);
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.vt-header.is-scrolled { border-color: var(--vt-line); box-shadow: 0 6px 24px rgba(61, 74, 66, 0.06); }
.admin-bar .vt-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .vt-header { top: 0; } }
.vt-header__inner { display: flex; align-items: center; gap: 1.5rem; min-height: 84px; }
.vt-logo { flex-shrink: 0; display: block; transition: transform 0.3s var(--vt-ease); }
.vt-logo:hover { transform: rotate(-2deg) scale(1.03); }
.vt-logo img { width: 190px; height: auto; }
.vt-nav { flex: 1; display: flex; justify-content: center; }
.vt-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.25rem; }
.vt-nav__item { position: relative; }
.vt-nav__link {
	display: inline-flex; align-items: center; gap: 0.35rem;
	padding: 0.6rem 1rem; border-radius: var(--vt-radius-pill);
	color: var(--vt-forest-dark); font-weight: 600; text-decoration: none; background: none; border: 0;
	font-family: inherit; font-size: 1rem; cursor: pointer;
	transition: background 0.2s, color 0.2s;
}
.vt-nav__link:hover, .vt-nav__item.is-open > .vt-nav__link, .vt-nav__item.current-menu-item > .vt-nav__link,
.vt-nav__item.current-menu-ancestor > .vt-nav__link { background: var(--vt-sand); color: var(--vt-forest-dark); }
.vt-nav__link .vt-chev { width: 14px; height: 14px; transition: transform 0.25s var(--vt-ease); }
.vt-nav__item.is-open > .vt-nav__link .vt-chev { transform: rotate(180deg); }

.vt-mega {
	position: absolute; top: calc(100% + 12px); left: 50%;
	transform: translateX(-50%) translateY(8px) scale(0.98);
	min-width: 520px; padding: 1.5rem;
	background: var(--vt-paper); border-radius: var(--vt-radius);
	box-shadow: var(--vt-shadow-lg); border: 1px solid var(--vt-line);
	opacity: 0; visibility: hidden;
	transition: opacity 0.2s, transform 0.3s var(--vt-ease), visibility 0.2s;
	display: grid; grid-template-columns: 1fr 200px; gap: 1.5rem;
}
.vt-mega::before { content: ""; position: absolute; top: -14px; left: 0; right: 0; height: 14px; }
.vt-nav__item.is-open > .vt-mega { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0) scale(1); }
.vt-mega__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.15rem 1rem; }
.vt-mega__list a {
	display: flex; align-items: center; gap: 0.6rem;
	padding: 0.55rem 0.75rem; border-radius: var(--vt-radius-sm);
	color: var(--vt-text); text-decoration: none; font-weight: 500;
	transition: background 0.2s, transform 0.2s var(--vt-ease);
}
.vt-mega__list a::before {
	content: ""; width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0;
	background: var(--dot, var(--vt-sage)); transition: transform 0.25s var(--vt-ease);
}
.vt-mega__list li:nth-child(4n+2) a { --dot: var(--vt-bronze); }
.vt-mega__list li:nth-child(4n+3) a { --dot: var(--vt-sky); }
.vt-mega__list li:nth-child(4n+4) a { --dot: var(--vt-butter); }
.vt-mega__list a:hover { background: var(--vt-sand-soft); transform: translateX(3px); }
.vt-mega__list a:hover::before { transform: scale(1.5); }
.vt-mega__promo {
	border-radius: var(--vt-radius-sm); padding: 1.25rem; background: var(--vt-sage-soft);
	display: flex; flex-direction: column; justify-content: space-between; gap: 1rem;
	position: relative; overflow: hidden;
}
.vt-mega__promo::after {
	content: ""; position: absolute; right: -30px; bottom: -30px; width: 110px; height: 110px;
	border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%; background: var(--vt-sage); opacity: 0.35;
}
.vt-mega__promo strong { font-family: var(--vt-font-heading); font-size: 1.2rem; color: var(--vt-forest-dark); line-height: 1.2; }
.vt-mega__promo p { margin: 0; font-size: 0.9rem; color: var(--vt-muted); }

.vt-header__actions { display: flex; align-items: center; gap: 0.35rem; margin-left: auto; }
.vt-icon-btn {
	position: relative; width: 46px; height: 46px; display: inline-grid; place-items: center;
	border-radius: 50%; border: 0; background: transparent; color: var(--vt-forest-dark); cursor: pointer;
	transition: background 0.2s, transform 0.25s var(--vt-ease);
}
.vt-icon-btn:hover { background: var(--vt-sand); color: var(--vt-forest-dark); transform: rotate(-6deg); }
.vt-icon-btn svg { width: 23px; height: 23px; }
.vt-cart-count {
	position: absolute; top: 3px; right: 1px; min-width: 20px; height: 20px; padding: 0 5px;
	border-radius: var(--vt-radius-pill); background: var(--vt-bronze); color: #fff;
	font-size: 0.72rem; font-weight: 800; display: grid; place-items: center;
	border: 2px solid var(--vt-cream);
}
.vt-cart-count[data-count="0"] { display: none; }
.vt-cart-count.is-bump { animation: vt-bump 0.6s var(--vt-ease); }
@keyframes vt-bump { 0% { transform: scale(1); } 40% { transform: scale(1.5) rotate(-10deg); } 100% { transform: scale(1); } }
.vt-menu-toggle { display: none; }

@media (max-width: 1024px) {
	.vt-nav { display: none; }
	.vt-menu-toggle { display: inline-grid; }
	.vt-header__inner { min-height: 70px; gap: 0.5rem; }
	.vt-logo img { width: 150px; }
}

/* Mobile drawer */
.vt-drawer { position: fixed; inset: 0; z-index: 100; visibility: hidden; }
.vt-drawer.is-open { visibility: visible; }
.vt-drawer__backdrop { position: absolute; inset: 0; background: rgba(46, 44, 40, 0.45); opacity: 0; transition: opacity 0.3s; }
.vt-drawer.is-open .vt-drawer__backdrop { opacity: 1; }
.vt-drawer__panel {
	position: absolute; top: 0; bottom: 0; left: 0; width: min(380px, 88vw);
	background: var(--vt-cream); padding: 1.25rem; overflow-y: auto;
	transform: translateX(-100%); transition: transform 0.4s var(--vt-ease);
	border-radius: 0 var(--vt-radius-lg) var(--vt-radius-lg) 0;
}
.vt-drawer.is-open .vt-drawer__panel { transform: none; }
.vt-drawer__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.25rem; }
.vt-drawer__head img { width: 140px; }
.vt-drawer__list, .vt-drawer__sub { list-style: none; margin: 0; padding: 0; }
.vt-drawer__list > li { border-bottom: 1px dashed var(--vt-line); }
.vt-drawer__list a, .vt-drawer__toggle {
	display: flex; width: 100%; align-items: center; justify-content: space-between;
	padding: 0.95rem 0.25rem; font-weight: 700; font-size: 1.08rem; color: var(--vt-forest-dark);
	text-decoration: none; background: none; border: 0; font-family: inherit; cursor: pointer; text-align: left;
}
.vt-drawer__toggle svg { width: 18px; transition: transform 0.25s var(--vt-ease); }
.vt-drawer__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.vt-drawer__sub { padding: 0 0 0.75rem 0.75rem; }
.vt-drawer__sub a { font-weight: 500; font-size: 1rem; padding: 0.5rem 0.25rem; color: var(--vt-text); }
.vt-drawer__foot { margin-top: 1.5rem; display: grid; gap: 0.6rem; }

/* Side cart */
.vt-cart { position: fixed; inset: 0; z-index: 110; visibility: hidden; }
.vt-cart.is-open { visibility: visible; }
.vt-cart__backdrop { position: absolute; inset: 0; background: rgba(46, 44, 40, 0.45); opacity: 0; transition: opacity 0.3s; }
.vt-cart.is-open .vt-cart__backdrop { opacity: 1; }
.vt-cart__panel {
	position: absolute; top: 0; bottom: 0; right: 0; width: min(420px, 92vw);
	display: flex; flex-direction: column; background: var(--vt-cream);
	transform: translateX(100%); transition: transform 0.4s var(--vt-ease);
	border-radius: var(--vt-radius-lg) 0 0 var(--vt-radius-lg); box-shadow: var(--vt-shadow-lg);
}
.vt-cart.is-open .vt-cart__panel { transform: none; }
.vt-cart__head { display: flex; align-items: center; justify-content: space-between; padding: 1.1rem 1.25rem; border-bottom: 1px dashed var(--vt-line); }
.vt-cart__head h2 { margin: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 0.5rem; }
.vt-cart__head .vt-cart-count { position: static; border: 0; }
.vt-cart__body { flex: 1; display: flex; flex-direction: column; min-height: 0; padding: 1.25rem; overflow-y: auto; }
.vt-cart__body .vt-ship-meter { margin-bottom: 1rem; }
.vt-cart__items { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.85rem; }
.vt-cart__item { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 0.25rem 0.85rem; align-items: center; position: relative; padding: 0.65rem; background: var(--vt-paper); border: 1px solid var(--vt-line); border-radius: var(--vt-radius-sm); }
.vt-cart__thumb { grid-row: span 2; }
.vt-cart__thumb img { width: 72px; height: 72px; object-fit: cover; border-radius: 10px; background: var(--vt-sand-soft); }
.vt-cart__info { min-width: 0; padding-right: 1.5rem; }
.vt-cart__name { display: block; font-weight: 700; font-size: 0.95rem; line-height: 1.3; color: var(--vt-forest-dark); text-decoration: none; }
.vt-cart__meta { display: block; margin-top: 0.2rem; font-size: 0.85rem; color: var(--vt-muted); }
.vt-cart__line { grid-column: 3; align-self: end; font-weight: 800; color: var(--vt-forest-dark); font-size: 0.95rem; }
.vt-cart__remove { position: absolute; top: 0.4rem; right: 0.4rem; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: var(--vt-muted); transition: background 0.2s, color 0.2s; }
.vt-cart__remove:hover { background: var(--vt-bronze-soft); color: var(--vt-forest-dark); }
.vt-cart__remove svg { width: 15px; height: 15px; }
.vt-cart__foot { margin-top: auto; padding-top: 1.25rem; display: grid; gap: 0.6rem; }
.vt-cart__subtotal { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.05rem; color: var(--vt-forest-dark); }
.vt-cart__subtotal strong { font-size: 1.25rem; }
.vt-cart__note { margin: 0 0 0.4rem; font-size: 0.82rem; color: var(--vt-muted); }
.vt-cart__foot .vt-btn { width: 100%; justify-content: center; }
.vt-cart__empty { margin: auto 0; text-align: center; display: grid; justify-items: center; gap: 0.25rem; }
.vt-cart__empty p { margin: 0; color: var(--vt-muted); }
.vt-cart__empty p strong { color: var(--vt-forest-dark); font-size: 1.1rem; }
.vt-cart__empty .vt-btn { margin-top: 1rem; }

/* Search overlay */
.vt-search {
	position: fixed; inset: 0; z-index: 110; display: grid; place-items: start center; padding-top: 14vh;
	background: rgba(250, 248, 245, 0.97); visibility: hidden; opacity: 0; transition: opacity 0.25s, visibility 0.25s;
}
.vt-search.is-open { visibility: visible; opacity: 1; }
.vt-search__inner { width: min(720px, 92vw); text-align: center; transform: translateY(16px); transition: transform 0.35s var(--vt-ease); }
.vt-search.is-open .vt-search__inner { transform: none; }
.vt-search__title { font-family: var(--vt-font-heading); font-size: clamp(1.6rem, 4vw, 2.4rem); color: var(--vt-forest-dark); margin-bottom: 1.25rem; }
.vt-search__close { position: absolute; top: 1.25rem; right: 1.25rem; }
.vt-search__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; margin-top: 1.25rem; }
.vt-searchform { position: relative; display: flex; }
.vt-searchform input[type="search"] {
	width: 100%; padding: 1.15rem 4rem 1.15rem 1.5rem; font-size: 1.1rem; font-family: inherit;
	border: 2px solid var(--vt-forest-dark); border-radius: var(--vt-radius-pill); background: var(--vt-paper);
	box-shadow: var(--vt-shadow-pop); color: var(--vt-text);
}
.vt-searchform input[type="search"]:focus { outline: none; border-color: var(--vt-bronze); }
.vt-searchform button {
	position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
	width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--vt-bronze); color: #fff;
	display: grid; place-items: center; cursor: pointer;
}
.vt-searchform button svg { width: 22px; }

/* Chips */
.vt-chip {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.5rem 1rem; border-radius: var(--vt-radius-pill);
	background: var(--vt-paper); border: 1.5px solid var(--vt-line);
	color: var(--vt-forest-dark); font-weight: 600; font-size: 0.92rem; text-decoration: none;
	transition: transform 0.25s var(--vt-ease), background 0.2s, border-color 0.2s;
}
.vt-chip:hover, .vt-chip.is-active { background: var(--vt-forest-dark); border-color: var(--vt-forest-dark); color: #fff; transform: translateY(-2px) rotate(-1.5deg); }

/* ---------- Hero ---------- */
.vt-hero { position: relative; padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(4rem, 8vw, 6rem); overflow: hidden; }
.vt-hero__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; position: relative; z-index: 1; }
.vt-hero__title { margin-bottom: 1.25rem; }
.vt-hero__lead { font-size: clamp(1.05rem, 1.6vw, 1.22rem); color: var(--vt-muted); max-width: 34rem; margin-bottom: 2rem; }
.vt-hero__ctas { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-bottom: 2.25rem; }
.vt-hero__trust { display: flex; flex-wrap: wrap; gap: 1.25rem 1.75rem; color: var(--vt-forest-dark); font-weight: 600; font-size: 0.95rem; }
.vt-hero__trust span { display: inline-flex; align-items: center; gap: 0.5rem; }
.vt-hero__trust svg { width: 22px; height: 22px; color: var(--vt-sage); }
.vt-hero__visual { position: relative; aspect-ratio: 1 / 1.02; }
.vt-hero__blob {
	position: absolute; inset: 6% 4% 4% 6%;
	border-radius: 58% 42% 46% 54% / 48% 56% 44% 52%;
	overflow: hidden; box-shadow: var(--vt-shadow-lg);
	animation: vt-morph 14s ease-in-out infinite;
	background: var(--vt-sand);
}
.vt-hero__blob img { width: 100%; height: 100%; object-fit: cover; }
.vt-hero__ring {
	position: absolute; inset: 0; border: 2.5px dashed var(--vt-sage);
	border-radius: 52% 48% 40% 60% / 58% 46% 54% 42%;
	animation: vt-spin 60s linear infinite;
	opacity: 0.7;
}
.vt-sticker {
	position: absolute; z-index: 2;
	display: inline-flex; align-items: center; gap: 0.6rem;
	padding: 0.75rem 1.1rem; border-radius: var(--vt-radius-pill);
	background: var(--vt-paper); box-shadow: var(--vt-shadow-lg);
	font-weight: 700; font-size: 0.92rem; color: var(--vt-forest-dark);
	animation: vt-float 6s ease-in-out infinite;
}
.vt-sticker__dot { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-size: 1.05rem; color: #fff; }
.vt-sticker--a { top: 10%; left: -6%; transform: rotate(-4deg); }
.vt-sticker--a .vt-sticker__dot { background: var(--vt-sage); }
.vt-sticker--b { bottom: 12%; right: -4%; animation-delay: -3s; transform: rotate(3deg); }
.vt-sticker--b .vt-sticker__dot { background: var(--vt-bronze); }
.vt-badge-round {
	position: absolute; z-index: 2; top: -2%; right: 6%;
	width: 118px; height: 118px; border-radius: 50%;
	background: var(--vt-butter); color: var(--vt-forest-dark);
	display: grid; place-items: center; text-align: center;
	font-family: var(--vt-font-heading); font-weight: 700; line-height: 1.05; font-size: 1.02rem;
	box-shadow: var(--vt-shadow);
	animation: vt-wobble 7s ease-in-out infinite;
}
.vt-badge-round small { display: block; font-family: var(--vt-font-body); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; margin-top: 0.2rem; }

.vt-shape { position: absolute; pointer-events: none; z-index: 0; }
.vt-shape--1 { width: 420px; height: 420px; top: -140px; left: -160px; background: var(--vt-sage-soft); border-radius: 44% 56% 62% 38% / 50% 40% 60% 50%; animation: vt-morph 18s ease-in-out infinite; }
.vt-shape--2 { width: 220px; height: 220px; bottom: 40px; left: 38%; background: var(--vt-bronze-soft); border-radius: 60% 40% 55% 45% / 45% 60% 40% 55%; animation: vt-morph 15s ease-in-out infinite reverse; }
.vt-shape--3 { width: 26px; height: 26px; top: 22%; left: 47%; border-radius: 50%; background: var(--vt-sky); animation: vt-float 5s ease-in-out infinite; }
.vt-shape--4 { width: 16px; height: 16px; top: 72%; left: 8%; border-radius: 4px; background: var(--vt-butter); transform: rotate(18deg); animation: vt-float 7s ease-in-out infinite reverse; }
.vt-shape--5 { width: 0; height: 0; top: 12%; right: 46%; border-left: 12px solid transparent; border-right: 12px solid transparent; border-bottom: 20px solid var(--vt-bronze); animation: vt-float 6s ease-in-out infinite; }

@keyframes vt-morph {
	0%, 100% { border-radius: 58% 42% 46% 54% / 48% 56% 44% 52%; }
	33% { border-radius: 46% 54% 58% 42% / 56% 44% 56% 44%; }
	66% { border-radius: 52% 48% 40% 60% / 44% 58% 42% 56%; }
}
@keyframes vt-spin { to { transform: rotate(360deg); } }
@keyframes vt-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
@keyframes vt-wobble { 0%, 100% { transform: rotate(-8deg); } 50% { transform: rotate(6deg); } }

@media (max-width: 900px) {
	.vt-hero__grid { grid-template-columns: 1fr; }
	.vt-hero__visual { max-width: 460px; margin: 0 auto; width: 100%; }
	.vt-sticker--a { left: 0; }
	.vt-sticker--b { right: 0; }
	.vt-badge-round { width: 96px; height: 96px; font-size: 0.88rem; }
}

/* Wave dividers */
.vt-wave { display: block; width: 100%; height: clamp(28px, 5vw, 64px); }
.vt-wave--sand { color: var(--vt-sand-soft); }
.vt-wave--forest { color: var(--vt-forest-dark); }
.vt-wave--cream { color: var(--vt-cream); }
.vt-wave path { fill: currentColor; }
.vt-wave-wrap { line-height: 0; margin-bottom: -1px; }
.vt-wave-wrap--flip { transform: scaleY(-1); margin-top: -1px; margin-bottom: 0; }

/* ---------- USP strip ---------- */
.vt-usps { padding: 0 0 1rem; position: relative; z-index: 2; margin-top: -2.5rem; }
.vt-usps__grid {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem;
	background: var(--vt-paper); border-radius: var(--vt-radius-lg); padding: 1.5rem;
	box-shadow: var(--vt-shadow); border: 1px solid var(--vt-line);
}
.vt-usp { display: flex; gap: 0.9rem; align-items: center; }
.vt-usp__icon {
	flex-shrink: 0; width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center;
	background: var(--bg, var(--vt-sage-soft)); color: var(--vt-forest-dark);
	transform: rotate(-4deg); transition: transform 0.3s var(--vt-ease);
}
.vt-usp:nth-child(2) .vt-usp__icon { --bg: var(--vt-bronze-soft); transform: rotate(3deg); }
.vt-usp:nth-child(3) .vt-usp__icon { --bg: var(--vt-sky-soft); }
.vt-usp:nth-child(4) .vt-usp__icon { --bg: var(--vt-butter-soft); transform: rotate(5deg); }
.vt-usp:hover .vt-usp__icon { transform: rotate(0) scale(1.08); }
.vt-usp__icon svg { width: 26px; height: 26px; }
.vt-usp strong { display: block; color: var(--vt-forest-dark); font-size: 0.98rem; line-height: 1.25; }
.vt-usp span { font-size: 0.86rem; color: var(--vt-muted); line-height: 1.35; display: block; }
@media (max-width: 960px) { .vt-usps__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .vt-usps__grid { grid-template-columns: 1fr; } }

/* ---------- Category cards ---------- */
.vt-cats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.vt-cat {
	--tint: var(--vt-sage-soft); --accent: var(--vt-sage);
	position: relative; display: flex; flex-direction: column; border-radius: var(--vt-radius);
	background: var(--tint); text-decoration: none; color: var(--vt-forest-dark); overflow: hidden;
	transition: transform 0.35s var(--vt-ease), box-shadow 0.3s;
	min-height: 300px;
}
.vt-cat:nth-child(4n+2) { --tint: var(--vt-bronze-soft); --accent: var(--vt-bronze); }
.vt-cat:nth-child(4n+3) { --tint: var(--vt-sky-soft); --accent: var(--vt-sky); }
.vt-cat:nth-child(4n+4) { --tint: var(--vt-butter-soft); --accent: var(--vt-butter); }
.vt-cat:hover { transform: translateY(-6px) rotate(-1deg); box-shadow: var(--vt-shadow-lg); color: var(--vt-forest-dark); }
.vt-cat:nth-child(even):hover { transform: translateY(-6px) rotate(1deg); }
.vt-cat__media { position: relative; flex: 1; display: grid; place-items: center; padding: 1.5rem 1.5rem 0; }
.vt-cat__media::before {
	content: ""; position: absolute; width: 72%; aspect-ratio: 1; border-radius: 50% 46% 54% 48% / 48% 54% 46% 52%;
	background: var(--accent); opacity: 0.35; transition: transform 0.5s var(--vt-ease);
}
.vt-cat:hover .vt-cat__media::before { transform: scale(1.12) rotate(20deg); }
.vt-cat__media img { position: relative; width: 78%; aspect-ratio: 1; object-fit: contain; mix-blend-mode: multiply; transition: transform 0.45s var(--vt-ease); }
.vt-cat:hover .vt-cat__media img { transform: scale(1.06) rotate(-3deg); }
.vt-cat__body { padding: 1rem 1.4rem 1.4rem; display: flex; align-items: end; justify-content: space-between; gap: 0.75rem; }
.vt-cat__body h3 { margin: 0 0 0.15rem; font-size: 1.3rem; }
.vt-cat__body small { color: var(--vt-muted); font-size: 0.86rem; }
.vt-cat__go {
	flex-shrink: 0; width: 42px; height: 42px; border-radius: 50%; background: var(--vt-paper);
	display: grid; place-items: center; transition: transform 0.3s var(--vt-ease), background 0.2s;
}
.vt-cat__go svg { width: 18px; }
.vt-cat:hover .vt-cat__go { background: var(--vt-forest-dark); color: #fff; transform: rotate(-45deg); }
.vt-cat--wide { grid-column: span 2; }
@media (max-width: 960px) { .vt-cats { grid-template-columns: repeat(2, 1fr); } .vt-cat--wide { grid-column: span 2; } }
@media (max-width: 520px) { .vt-cats { grid-template-columns: 1fr 1fr; gap: 0.8rem; } .vt-cat { min-height: 220px; } .vt-cat__body { padding: 0.8rem 1rem 1rem; } .vt-cat__body h3 { font-size: 1.05rem; } .vt-cat__go { display: none; } }

/* ---------- Age bubbles ---------- */
.vt-ages { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(0.75rem, 2vw, 1.5rem); }
.vt-age {
	--c: var(--vt-sage);
	width: clamp(120px, 15vw, 160px); aspect-ratio: 1; border-radius: 50%;
	display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
	background: var(--vt-paper); border: 2.5px solid var(--c); color: var(--vt-forest-dark); text-decoration: none;
	transition: transform 0.35s var(--vt-ease), background 0.25s, color 0.25s;
	position: relative;
}
.vt-age:nth-child(2) { --c: var(--vt-bronze); }
.vt-age:nth-child(3) { --c: var(--vt-sky); }
.vt-age:nth-child(4) { --c: #d8b964; }
.vt-age:nth-child(5) { --c: var(--vt-forest); }
.vt-age strong { font-family: var(--vt-font-heading); font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1; }
.vt-age span { font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--vt-muted); margin-top: 0.35rem; }
.vt-age:hover { background: var(--c); color: #fff; transform: translateY(-6px) rotate(-6deg); }
.vt-age:hover span { color: rgba(255, 255, 255, 0.9); }
.vt-age:nth-child(even):hover { transform: translateY(-6px) rotate(6deg); }

/* ---------- Development tiles ---------- */
.vt-dev { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.vt-dev__tile {
	display: flex; gap: 1rem; align-items: center; padding: 1.25rem 1.4rem;
	background: var(--vt-paper); border: 1.5px solid var(--vt-line); border-radius: var(--vt-radius);
	text-decoration: none; color: var(--vt-text);
	transition: transform 0.3s var(--vt-ease), border-color 0.2s, box-shadow 0.3s;
}
.vt-dev__tile:hover { transform: translateY(-4px); border-color: var(--vt-forest-dark); box-shadow: var(--vt-shadow-pop); color: var(--vt-text); }
.vt-dev__icon { flex-shrink: 0; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--bg, var(--vt-sage-soft)); color: var(--vt-forest-dark); transition: transform 0.4s var(--vt-ease); }
.vt-dev__tile:hover .vt-dev__icon { transform: rotate(-12deg) scale(1.08); }
.vt-dev__tile:nth-child(6n+2) .vt-dev__icon { --bg: var(--vt-bronze-soft); }
.vt-dev__tile:nth-child(6n+3) .vt-dev__icon { --bg: var(--vt-sky-soft); }
.vt-dev__tile:nth-child(6n+4) .vt-dev__icon { --bg: var(--vt-butter-soft); }
.vt-dev__tile:nth-child(6n+5) .vt-dev__icon { --bg: var(--vt-sand); }
.vt-dev__icon svg { width: 28px; height: 28px; }
.vt-dev__tile strong { display: block; font-family: var(--vt-font-heading); font-size: 1.15rem; color: var(--vt-forest-dark); line-height: 1.2; }
.vt-dev__tile span { display: block; font-size: 0.9rem; color: var(--vt-muted); line-height: 1.4; }
@media (max-width: 900px) { .vt-dev { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .vt-dev { grid-template-columns: 1fr; } }

/* Development page cards */
.vt-areas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.vt-area {
	display: flex; flex-direction: column; gap: 0.85rem; padding: 1.5rem;
	background: var(--vt-paper); border: 1.5px solid var(--vt-line); border-radius: var(--vt-radius);
	transition: transform 0.3s var(--vt-ease), border-color 0.2s, box-shadow 0.3s;
}
.vt-area:hover { transform: translateY(-4px); border-color: var(--vt-forest-dark); box-shadow: var(--vt-shadow-pop); }
.vt-area:hover .vt-dev__icon { transform: rotate(-12deg) scale(1.08); }
.vt-area:nth-child(6n+2) .vt-dev__icon { --bg: var(--vt-bronze-soft); }
.vt-area:nth-child(6n+3) .vt-dev__icon { --bg: var(--vt-sky-soft); }
.vt-area:nth-child(6n+4) .vt-dev__icon { --bg: var(--vt-butter-soft); }
.vt-area:nth-child(6n+5) .vt-dev__icon { --bg: var(--vt-sand); }
.vt-area__head { display: flex; align-items: center; gap: 0.9rem; }
.vt-area h3 { margin: 0; font-size: 1.2rem; line-height: 1.2; }
.vt-area__age { display: inline-block; margin-top: 0.3rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--vt-bronze); }
.vt-area p { margin: 0; font-size: 0.95rem; line-height: 1.55; color: var(--vt-text); }
.vt-area .vt-area__tip { padding: 0.75rem 0.9rem; border-radius: var(--vt-radius-sm); background: var(--vt-sand-soft); font-size: 0.88rem; color: var(--vt-muted); }
.vt-area__tip strong { display: block; margin-bottom: 0.15rem; font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--vt-forest-dark); }
.vt-area__link { margin-top: auto; display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 700; color: var(--vt-forest-dark); text-decoration: none; }
.vt-area__link svg { width: 16px; height: 16px; transition: transform 0.25s var(--vt-ease); }
.vt-area__link:hover svg { transform: translateX(4px); }
@media (max-width: 960px) { .vt-areas { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .vt-areas { grid-template-columns: 1fr; } }

/* Development sub pages */
.vt-dev-detail__grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.vt-dev-detail .vt-checks { margin-bottom: 1.5rem; }
.vt-dev-detail .vt-area__tip { margin: 0; padding: 0.9rem 1.1rem; border-radius: var(--vt-radius-sm); background: var(--vt-butter-soft); color: var(--vt-text); font-size: 0.95rem; }
.vt-stages { padding: clamp(1.5rem, 3vw, 2rem); background: var(--vt-paper); border: 1.5px solid var(--vt-line); border-radius: var(--vt-radius); }
.vt-stages ol { list-style: none; margin: 0.5rem 0 0; padding: 0; display: grid; gap: 1.1rem; position: relative; }
.vt-stages ol::before { content: ""; position: absolute; left: 7px; top: 8px; bottom: 8px; border-left: 2px dashed var(--vt-sage); }
.vt-stages li { position: relative; padding-left: 2rem; }
.vt-stages li::before { content: ""; position: absolute; left: 0; top: 5px; width: 16px; height: 16px; border-radius: 50%; background: var(--vt-sage-soft); box-shadow: 0 0 0 2px var(--vt-sage); }
.vt-stages li:nth-child(2)::before { background: var(--vt-bronze-soft); box-shadow: 0 0 0 2px var(--vt-bronze); }
.vt-stages li:nth-child(3)::before { background: var(--vt-butter-soft); box-shadow: 0 0 0 2px #d8b964; }
.vt-stages strong { display: block; font-family: var(--vt-font-heading); font-size: 1.1rem; color: var(--vt-forest-dark); }
.vt-stages span { display: block; font-size: 0.93rem; color: var(--vt-muted); line-height: 1.5; }
.vt-stages__note { margin: 1.25rem 0 0; font-size: 0.82rem; font-style: italic; color: var(--vt-muted); }
@media (max-width: 860px) { .vt-dev-detail__grid { grid-template-columns: 1fr; } }

/* Age overview */
.vt-dev__icon--age { font-family: var(--vt-font-heading); font-size: 1.05rem; font-weight: 700; color: var(--vt-forest-dark); }
.vt-area--cta { justify-content: center; background: var(--vt-sage-soft); border-style: dashed; border-color: var(--vt-sage); }
.vt-area--cta h3 { font-size: 1.35rem; }

/* Kinderopvang page */
.vt-hero--page { padding-bottom: clamp(2rem, 5vw, 3.5rem); }
.vt-areas--4 { grid-template-columns: repeat(4, 1fr); }
.vt-areas--4 .vt-area h3 { font-size: 1.15rem; }
.vt-groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.vt-group {
	position: relative; padding: 1.75rem 1.5rem 1.5rem; background: var(--vt-paper);
	border-radius: 46px 18px 46px 18px; border: 1.5px solid var(--vt-line);
	transition: transform 0.3s var(--vt-ease), box-shadow 0.3s;
}
.vt-group:hover { transform: translateY(-4px) rotate(-0.5deg); box-shadow: var(--vt-shadow-pop); }
.vt-group__age { display: inline-block; padding: 0.3rem 0.75rem; border-radius: var(--vt-radius-pill); background: var(--vt-sage-soft); font-size: 0.78rem; font-weight: 700; color: var(--vt-forest-dark); }
.vt-group:nth-child(2) .vt-group__age { background: var(--vt-bronze-soft); }
.vt-group:nth-child(3) .vt-group__age { background: var(--vt-butter-soft); }
.vt-group h3 { margin: 0.75rem 0 0.4rem; }
.vt-group p { margin: 0; font-size: 0.95rem; color: var(--vt-muted); line-height: 1.55; }
.vt-split--form { align-items: start; }
.vt-opvang-bundles .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.vt-split--form .vt-card-panel { margin-top: 0 !important; }
@media (max-width: 1024px) { .vt-areas--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .vt-groups { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .vt-areas--4 { grid-template-columns: 1fr; } }

/* ---------- Story / split ---------- */
.vt-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.vt-split--reverse .vt-split__media { order: 2; }
.vt-split__media { position: relative; }
.vt-split__frame {
	position: relative; border-radius: var(--vt-radius-lg); overflow: hidden; aspect-ratio: 4 / 4.4;
	background: var(--vt-sand); box-shadow: var(--vt-shadow-lg); transform: rotate(-2deg);
}
.vt-split__frame img { width: 100%; height: 100%; object-fit: cover; }
.vt-split__media::before {
	content: ""; position: absolute; inset: 8% -5% -5% 8%; border-radius: var(--vt-radius-lg);
	background: var(--vt-sage-soft); transform: rotate(3deg); z-index: -1;
}
.vt-split__note {
	position: absolute; right: -4%; bottom: 8%; max-width: 230px; padding: 1rem 1.2rem;
	background: var(--vt-butter); border-radius: 4px 18px 18px 18px; transform: rotate(3deg);
	font-family: var(--vt-font-heading); font-size: 1.05rem; color: var(--vt-forest-dark); line-height: 1.3;
	box-shadow: var(--vt-shadow);
}
.vt-checks { list-style: none; padding: 0; margin: 1.5rem 0 2rem; display: grid; gap: 0.85rem; }
.vt-checks li { display: flex; gap: 0.8rem; align-items: flex-start; }
.vt-checks li::before {
	content: ""; flex-shrink: 0; width: 26px; height: 26px; margin-top: 1px; border-radius: 50%;
	background: var(--vt-sage) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") no-repeat center / 15px;
}
.vt-checks strong { color: var(--vt-forest-dark); }
@media (max-width: 860px) {
	.vt-split { grid-template-columns: 1fr; }
	.vt-split--reverse .vt-split__media { order: 0; }
	.vt-split__note { right: 2%; }
}

/* Polaroid collage */
.vt-collage { position: relative; aspect-ratio: 1 / 0.95; }
.vt-collage__item {
	position: absolute; width: 56%; padding: 0.7rem 0.7rem 0; background: var(--vt-paper);
	border-radius: 6px; box-shadow: var(--vt-shadow-lg); text-decoration: none; color: var(--vt-forest-dark);
	transition: transform 0.4s var(--vt-ease), z-index 0s;
}
.vt-collage__item img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 3px; background: var(--vt-sand-soft); }
.vt-collage__item span { display: block; padding: 0.6rem 0.2rem 0.75rem; font-family: var(--vt-font-heading); font-size: 0.95rem; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vt-collage__item:nth-child(1) { top: 0; left: 0; transform: rotate(-7deg); z-index: 1; }
.vt-collage__item:nth-child(2) { top: 6%; right: 0; transform: rotate(6deg); z-index: 2; }
.vt-collage__item:nth-child(3) { bottom: 0; left: 22%; transform: rotate(-2deg); z-index: 3; }
.vt-collage__item:hover { transform: rotate(0) scale(1.05); z-index: 5; color: var(--vt-forest-dark); }
.vt-collage__item::before {
	content: ""; position: absolute; top: -10px; left: 50%; width: 70px; height: 22px; transform: translateX(-50%) rotate(-3deg);
	background: rgba(241, 220, 167, 0.85); border-radius: 2px;
}
.vt-collage__item:nth-child(2)::before { background: rgba(168, 196, 196, 0.85); transform: translateX(-50%) rotate(4deg); }
.vt-collage__item:nth-child(3)::before { background: rgba(196, 132, 108, 0.6); }

/* Steps */
.vt-steps { list-style: none; margin: 0 0 2.5rem; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; counter-reset: none; position: relative; }
.vt-steps::before {
	content: ""; position: absolute; top: 38px; left: 16%; right: 16%; height: 3px;
	background: repeating-linear-gradient(90deg, var(--vt-sage) 0 10px, transparent 10px 20px); z-index: 0;
}
.vt-step { position: relative; z-index: 1; text-align: center; padding: 0 1rem; }
.vt-step__num {
	display: grid; place-items: center; width: 78px; height: 78px; margin: 0 auto 1.1rem;
	font-family: var(--vt-font-heading); font-size: 2rem; font-weight: 700; color: var(--vt-forest-dark);
	background: var(--vt-sage-soft); border: 3px solid var(--vt-cream);
	border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%; box-shadow: 0 0 0 2px var(--vt-sage);
	transition: transform 0.4s var(--vt-ease);
}
.vt-step:nth-child(2) .vt-step__num { background: var(--vt-bronze-soft); box-shadow: 0 0 0 2px var(--vt-bronze); border-radius: 56% 44% 52% 48% / 44% 56% 44% 56%; }
.vt-step:nth-child(3) .vt-step__num { background: var(--vt-butter-soft); box-shadow: 0 0 0 2px #d8b964; }
.vt-step:hover .vt-step__num { transform: rotate(-10deg) scale(1.08); }
.vt-step h3 { margin-bottom: 0.35rem; }
.vt-step p { color: var(--vt-muted); margin: 0; }
@media (max-width: 760px) { .vt-steps { grid-template-columns: 1fr; } .vt-steps::before { display: none; } }

/* ---------- Kinderopvang band ---------- */
.vt-band {
	position: relative; background: var(--vt-forest-dark); color: #eef0ea; overflow: hidden;
	border-radius: var(--vt-radius-lg); padding: clamp(2.25rem, 6vw, 4.5rem);
	display: grid; grid-template-columns: 1.4fr 1fr; gap: 2rem; align-items: center;
}
.vt-band::before {
	content: ""; position: absolute; inset: 0; opacity: 0.12;
	background-image: radial-gradient(circle, #fff 1.5px, transparent 1.6px);
	background-size: 22px 22px;
}
.vt-band::after {
	content: ""; position: absolute; width: 360px; height: 360px; right: -90px; top: -110px;
	border-radius: 44% 56% 62% 38% / 50% 40% 60% 50%; background: var(--vt-forest); animation: vt-morph 16s ease-in-out infinite;
}
.vt-band > * { position: relative; z-index: 1; }
.vt-band h2 { color: #fff; }
.vt-band p { color: rgba(238, 240, 234, 0.85); font-size: 1.08rem; max-width: 36rem; }
.vt-band .vt-eyebrow { color: var(--vt-butter); }
.vt-band__ctas { display: flex; flex-wrap: wrap; gap: 0.85rem; justify-content: flex-end; }
.vt-band .vt-btn--ghost { color: #fff; border-color: rgba(255, 255, 255, 0.7); }
.vt-band .vt-btn--ghost:hover { background: #fff; color: var(--vt-forest-dark); box-shadow: 4px 4px 0 var(--vt-bronze); }
.vt-band .vt-btn--light:hover { box-shadow: 4px 4px 0 var(--vt-bronze); }
@media (max-width: 860px) { .vt-band { grid-template-columns: 1fr; } .vt-band__ctas { justify-content: flex-start; } }

/* ---------- Newsletter ---------- */
.vt-news {
	position: relative; overflow: hidden; text-align: center;
	background: var(--vt-bronze-soft); border-radius: var(--vt-radius-lg);
	padding: clamp(2.5rem, 6vw, 4.5rem) clamp(1.25rem, 5vw, 4rem);
}
.vt-news::before, .vt-news::after { content: ""; position: absolute; border-radius: 50%; }
.vt-news::before { width: 180px; height: 180px; left: -60px; bottom: -60px; background: var(--vt-bronze-light, #d9a48e); opacity: 0.45; }
.vt-news::after { width: 90px; height: 90px; right: 8%; top: -30px; background: var(--vt-butter); }
.vt-news > * { position: relative; z-index: 1; }
.vt-news p { color: var(--vt-muted); max-width: 34rem; margin: 0 auto 1.75rem; }
.vt-news__form { display: flex; gap: 0.6rem; max-width: 520px; margin: 0 auto; }
.vt-news__form input[type="email"] {
	flex: 1; min-width: 0; padding: 0.95rem 1.4rem; border-radius: var(--vt-radius-pill);
	border: 2px solid var(--vt-forest-dark); background: var(--vt-paper); font: inherit; color: var(--vt-text);
}
.vt-news__form input[type="email"]:focus { outline: none; border-color: var(--vt-bronze-dark); }
.vt-news__msg { margin-top: 1rem; font-weight: 700; color: var(--vt-forest-dark); }
.vt-hp { position: absolute !important; left: -9999px !important; }
@media (max-width: 520px) { .vt-news__form { flex-direction: column; } }

/* ---------- Footer ---------- */
.vt-footer { background: var(--vt-forest-dark); color: rgba(238, 240, 234, 0.82); position: relative; margin-top: clamp(3rem, 7vw, 5rem); }
.vt-footer a { color: rgba(238, 240, 234, 0.82); text-decoration: none; }
.vt-footer a:hover { color: var(--vt-butter); }
.vt-footer__top { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 2.5rem; padding: 3.5rem 0 3rem; }
.vt-footer__brand-logo { display: inline-block; background: var(--vt-cream); padding: 0.75rem 1.1rem; border-radius: var(--vt-radius); transform: rotate(-2deg); margin-bottom: 1.25rem; transition: transform 0.3s var(--vt-ease); }
.vt-footer__brand-logo:hover { transform: rotate(1deg) scale(1.03); }
.vt-footer__brand-logo img { width: 160px; }
.vt-footer__brand p { max-width: 22rem; font-size: 0.95rem; }
.vt-footer h4 { font-family: var(--vt-font-body); font-size: 0.82rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--vt-butter); margin-bottom: 1rem; }
.vt-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.55rem; font-size: 0.95rem; }
.vt-footer__contact a { display: inline-flex; align-items: center; gap: 0.5rem; }
.vt-footer__contact svg { width: 18px; color: var(--vt-sage); }
.vt-footer__bottom { border-top: 1px solid rgba(238, 240, 234, 0.14); padding: 1.4rem 0 1.8rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; font-size: 0.86rem; }
.vt-footer__bottom ul { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.vt-footer__dots { display: inline-flex; gap: 6px; margin-right: 0.6rem; vertical-align: middle; }
.vt-footer__dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--vt-bronze); display: block; }
.vt-footer__dots i:nth-child(2) { background: var(--vt-sage); }
.vt-footer__dots i:nth-child(3) { background: var(--vt-sky); }
.vt-footer__dots i:nth-child(4) { background: var(--vt-butter); }
@media (max-width: 900px) { .vt-footer__top { grid-template-columns: 1fr 1fr; } .vt-footer__brand { grid-column: span 2; } }
@media (max-width: 520px) { .vt-footer__top { grid-template-columns: 1fr; } .vt-footer__brand { grid-column: auto; } }

/* ---------- Page / prose ---------- */
.vt-page-hero { position: relative; padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(2rem, 4vw, 3rem); text-align: center; overflow: hidden; }
.vt-page-hero h1 { margin-bottom: 0.5rem; }
.vt-page-hero p { color: var(--vt-muted); max-width: 40rem; margin: 0 auto; font-size: 1.1rem; }
.vt-page-hero .vt-shape--1 { width: 260px; height: 260px; top: -110px; left: -80px; }
.vt-page-hero .vt-shape--2 { width: 160px; height: 160px; bottom: -70px; left: auto; right: -40px; }
.vt-prose { max-width: 46rem; margin: 0 auto; font-size: 1.06rem; }
.vt-prose h2 { font-size: clamp(1.45rem, 2.6vw, 1.9rem); margin-top: 2.25rem; }
.vt-prose h3 { margin-top: 1.75rem; }
.vt-prose ul, .vt-prose ol { padding-left: 1.4rem; }
.vt-prose li { margin-bottom: 0.4rem; }
.vt-prose li::marker { color: var(--vt-bronze); font-weight: 700; }
.vt-prose img { border-radius: var(--vt-radius); }
.vt-prose blockquote { margin: 1.5rem 0; padding: 1.25rem 1.5rem; background: var(--vt-sand-soft); border-left: 5px solid var(--vt-sage); border-radius: 0 var(--vt-radius) var(--vt-radius) 0; }
.vt-prose details { background: var(--vt-paper); border: 1.5px solid var(--vt-line); border-radius: var(--vt-radius); padding: 0 1.25rem; margin-bottom: 0.75rem; transition: border-color 0.2s; }
.vt-prose details[open] { border-color: var(--vt-sage); }
.vt-prose summary { cursor: pointer; padding: 1rem 0; font-weight: 700; color: var(--vt-forest-dark); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.vt-prose summary::-webkit-details-marker { display: none; }
.vt-prose summary::after { content: "+"; font-size: 1.4rem; line-height: 1; color: var(--vt-bronze); transition: transform 0.3s var(--vt-ease); }
.vt-prose details[open] summary::after { transform: rotate(45deg); }
.vt-card-panel { background: var(--vt-paper); border-radius: var(--vt-radius-lg); padding: clamp(1.5rem, 4vw, 3rem); box-shadow: var(--vt-shadow); border: 1px solid var(--vt-line); }

.vt-benefits { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin: 2rem 0; }
.vt-benefit { background: var(--vt-paper); border-radius: var(--vt-radius); padding: 1.5rem; border: 1.5px solid var(--vt-line); }
.vt-benefit h3 { font-size: 1.15rem; margin-bottom: 0.35rem; }
.vt-benefit p { margin: 0; color: var(--vt-muted); font-size: 0.95rem; }
.vt-benefit__dot { width: 40px; height: 40px; border-radius: 12px; margin-bottom: 0.9rem; background: var(--vt-sage-soft); transform: rotate(-6deg); }
.vt-benefit:nth-child(2) .vt-benefit__dot { background: var(--vt-bronze-soft); transform: rotate(5deg); }
.vt-benefit:nth-child(3) .vt-benefit__dot { background: var(--vt-sky-soft); }
.vt-benefit:nth-child(4) .vt-benefit__dot { background: var(--vt-butter-soft); }

/* Forms */
.vt-form { display: grid; gap: 1rem; }
.vt-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.vt-form label { display: block; font-weight: 700; font-size: 0.92rem; color: var(--vt-forest-dark); margin-bottom: 0.35rem; }
.vt-form input, .vt-form textarea, .vt-form select,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text {
	width: 100%; padding: 0.85rem 1.1rem; font: inherit; color: var(--vt-text);
	background: var(--vt-paper); border: 1.5px solid rgba(61, 74, 66, 0.25); border-radius: var(--vt-radius-sm);
	transition: border-color 0.2s, box-shadow 0.2s;
}
.vt-form input:focus, .vt-form textarea:focus, .woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus {
	outline: none; border-color: var(--vt-sage); box-shadow: 0 0 0 4px var(--vt-sage-soft);
}
.vt-notice { padding: 1rem 1.25rem; border-radius: var(--vt-radius-sm); background: var(--vt-sage-soft); color: var(--vt-forest-dark); font-weight: 600; }
.vt-notice--error { background: var(--vt-bronze-soft); }
@media (max-width: 560px) { .vt-form__row { grid-template-columns: 1fr; } }

/* ---------- WooCommerce: shop header ---------- */
.vt-shop-hero { position: relative; padding: clamp(2rem, 5vw, 3.5rem) 0 1.5rem; overflow: hidden; }
.vt-shop-hero > .vt-container { position: relative; z-index: 1; }
.vt-shop-hero__inner { position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1.5rem; }
.vt-shop-hero h1 { margin-bottom: 0.35rem; }
.vt-shop-hero .term-description, .vt-shop-hero__desc { color: var(--vt-muted); max-width: 40rem; font-size: 1.08rem; }
.vt-shop-hero .term-description p:last-child { margin: 0; }
.vt-shop-hero__count {
	flex-shrink: 0; display: inline-flex; align-items: center; gap: 0.5rem;
	padding: 0.55rem 1rem; border-radius: var(--vt-radius-pill); background: var(--vt-butter-soft);
	font-weight: 700; font-size: 0.9rem; color: var(--vt-forest-dark); transform: rotate(-2deg);
}
.vt-subcats { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.75rem; }

.woocommerce-breadcrumb { font-size: 0.88rem; color: var(--vt-muted); margin: 0 0 1rem !important; }
.woocommerce-breadcrumb a { color: var(--vt-forest); text-decoration: none; font-weight: 600; }
.woocommerce-breadcrumb a:hover { color: var(--vt-bronze-dark); }
.vt-crumb-sep { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--vt-bronze); margin: 0 0.6rem; vertical-align: middle; }

.vt-shop-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.5rem; padding: 0.75rem 0.75rem 0.75rem 1.25rem; background: var(--vt-paper); border-radius: var(--vt-radius-pill); border: 1px solid var(--vt-line); }
.woocommerce .woocommerce-result-count { margin: 0; color: var(--vt-muted); font-size: 0.92rem; float: none; }
.woocommerce .woocommerce-ordering { margin: 0; float: none; }
.woocommerce .woocommerce-ordering select {
	appearance: none; -webkit-appearance: none; padding: 0.6rem 2.5rem 0.6rem 1.1rem; border-radius: var(--vt-radius-pill);
	border: 1.5px solid var(--vt-line); background: var(--vt-sand-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233d4a42' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0.9rem center / 14px;
	font: inherit; font-weight: 600; font-size: 0.92rem; color: var(--vt-forest-dark); cursor: pointer;
}

/* ---------- Product cards ---------- */
.woocommerce ul.products, .woocommerce-page ul.products {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(0.9rem, 2vw, 1.5rem);
	margin: 0 0 2rem; padding: 0; list-style: none;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
	width: auto !important; margin: 0 !important; float: none !important; padding: 0;
	display: flex; flex-direction: column; position: relative;
	background: var(--vt-paper); border-radius: var(--vt-radius); border: 1px solid var(--vt-line);
	transition: transform 0.35s var(--vt-ease), box-shadow 0.3s, border-color 0.2s;
	overflow: hidden;
}
.woocommerce ul.products li.product:hover { transform: translateY(-5px); box-shadow: var(--vt-shadow-lg); border-color: transparent; }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; text-decoration: none; color: inherit; }
.vt-card__media {
	position: relative; aspect-ratio: 1; background: var(--tint, var(--vt-sand-soft)); overflow: hidden;
	display: grid; place-items: center; margin: 0.6rem 0.6rem 0; border-radius: calc(var(--vt-radius) - 6px);
}
.woocommerce ul.products li.product:nth-child(4n+2) { --tint: var(--vt-sage-soft); }
.woocommerce ul.products li.product:nth-child(4n+3) { --tint: var(--vt-bronze-soft); }
.woocommerce ul.products li.product:nth-child(4n+4) { --tint: var(--vt-sky-soft); }
.woocommerce ul.products li.product .vt-card__media img {
	width: 100%; height: 100%; object-fit: cover; margin: 0 !important; mix-blend-mode: multiply;
	transition: transform 0.6s var(--vt-ease);
}
.woocommerce ul.products li.product:hover .vt-card__media img { transform: scale(1.07) rotate(-1.5deg); }
.vt-card__placeholder { width: 46%; opacity: 0.55; color: var(--vt-forest); }
.vt-card__body { padding: 0.95rem 1.1rem 0.25rem; display: flex; flex-direction: column; gap: 0.25rem; flex: 1; }
.vt-card__cat { font-size: 0.74rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vt-bronze-dark); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--vt-font-heading); font-weight: 600; font-size: 1.08rem; line-height: 1.25;
	color: var(--vt-forest-dark); padding: 0; margin: 0;
}
.woocommerce ul.products li.product .price {
	color: var(--vt-text); font-weight: 800; font-size: 1.1rem; margin: 0.35rem 0 0; display: flex; gap: 0.5rem; align-items: baseline;
}
.woocommerce ul.products li.product .price del { color: var(--vt-muted); font-weight: 500; font-size: 0.9rem; opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--vt-bronze-dark); }
.vt-card__stock { font-size: 0.8rem; font-weight: 700; color: var(--vt-forest); display: inline-flex; align-items: center; gap: 0.35rem; }
.vt-card__stock::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--vt-sage); box-shadow: 0 0 0 3px var(--vt-sage-soft); }
.vt-card__stock--out { color: var(--vt-muted); }
.vt-card__stock--out::before { background: var(--vt-bronze-light, #d9a48e); box-shadow: 0 0 0 3px var(--vt-bronze-soft); }
.woocommerce ul.products li.product .button {
	margin: 0.9rem 1.1rem 1.1rem; padding: 0.7rem 1rem; font-size: 0.9rem; width: auto;
	background: var(--vt-sand); color: var(--vt-forest-dark); border-color: var(--vt-sand);
}
.woocommerce ul.products li.product .button:hover { background: var(--vt-forest-dark); color: #fff; border-color: var(--vt-forest-dark); box-shadow: 3px 3px 0 var(--vt-bronze); }
.woocommerce ul.products li.product .button.loading { opacity: 0.6; }
.woocommerce ul.products li.product .button.added { background: var(--vt-sage); border-color: var(--vt-sage); color: #fff; }
.woocommerce ul.products li.product .added_to_cart { display: none; }
.woocommerce span.onsale, .woocommerce ul.products li.product .onsale {
	min-width: 0; min-height: 0; line-height: 1; padding: 0.55rem 0.8rem; border-radius: var(--vt-radius-pill);
	background: var(--vt-bronze); color: #fff; font-weight: 800; font-size: 0.8rem; letter-spacing: 0.02em;
	top: 1.1rem; left: 1.1rem; right: auto; margin: 0; transform: rotate(-6deg); z-index: 2; box-shadow: var(--vt-shadow);
}
.vt-card__badge-out {
	position: absolute; top: 1.1rem; right: 1.1rem; z-index: 2; padding: 0.45rem 0.75rem; border-radius: var(--vt-radius-pill);
	background: var(--vt-paper); color: var(--vt-muted); font-weight: 700; font-size: 0.75rem; transform: rotate(4deg);
}
@media (max-width: 1100px) { .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .woocommerce ul.products, .woocommerce-page ul.products, .woocommerce ul.products.columns-3 { grid-template-columns: repeat(2, 1fr); } .woocommerce ul.products li.product .button { margin: 0.7rem; font-size: 0.82rem; padding: 0.6rem 0.6rem; } .vt-card__body { padding: 0.8rem 0.8rem 0.2rem; } .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 0.98rem; } }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; gap: 0.4rem; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border-radius: 50%;
	background: var(--vt-paper); border: 1.5px solid var(--vt-line); color: var(--vt-forest-dark); font-weight: 700;
}
.woocommerce nav.woocommerce-pagination ul li span.current, .woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--vt-forest-dark); color: #fff; border-color: var(--vt-forest-dark); }

/* ---------- Single product ---------- */
.vt-main--product { padding-top: 1.5rem; }
.woocommerce div.product { position: relative; }
.woocommerce div.product .vt-product-top { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(1.5rem, 5vw, 4rem); align-items: start; margin-bottom: clamp(3rem, 6vw, 5rem); }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: 100% !important; margin: 0; }
.woocommerce div.product div.images.woocommerce-product-gallery { position: sticky; top: 110px; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: var(--vt-radius-lg); overflow: hidden; background: var(--vt-sand-soft); }
.woocommerce div.product div.images img { border-radius: 0; }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: 0.6rem; margin-top: 0.75rem; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 80px !important; float: none; }
.woocommerce div.product div.images .flex-control-thumbs li img { border-radius: var(--vt-radius-sm); opacity: 0.6; transition: opacity 0.2s, transform 0.25s var(--vt-ease); border: 2px solid transparent; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active, .woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--vt-forest-dark); transform: rotate(-3deg); }
.woocommerce div.product .woocommerce-product-gallery__trigger { background: var(--vt-paper); border-radius: 50%; top: 1rem; right: 1rem; }
.woocommerce-product-gallery .flex-direction-nav { list-style: none; margin: 0; padding: 0; }
.woocommerce-product-gallery .flex-direction-nav a {
	position: absolute; top: 0; z-index: 9; width: 44px; height: 44px; margin-top: calc(50% - 22px);
	display: grid; place-items: center; border-radius: 50%; background: rgba(250, 248, 245, 0.92); box-shadow: var(--vt-shadow);
	font-size: 0; color: var(--vt-forest-dark); text-decoration: none; transition: transform 0.2s var(--vt-ease), opacity 0.2s;
}
.woocommerce-product-gallery .flex-direction-nav a::before { content: ""; width: 10px; height: 10px; border: solid currentColor; border-width: 0 2.5px 2.5px 0; transform: rotate(135deg); margin-left: 4px; }
.woocommerce-product-gallery .flex-direction-nav .flex-next::before { transform: rotate(-45deg); margin: 0 4px 0 0; }
.woocommerce-product-gallery .flex-direction-nav .flex-prev { left: 0.75rem; }
.woocommerce-product-gallery .flex-direction-nav .flex-next { right: 0.75rem; }
.woocommerce-product-gallery .flex-direction-nav a:hover { transform: scale(1.08); }
.woocommerce-product-gallery .flex-direction-nav .flex-disabled { opacity: 0; pointer-events: none; }
.vt-gallery-empty { aspect-ratio: 1; border-radius: var(--vt-radius-lg); background: var(--vt-sand-soft); display: grid; place-items: center; }
.vt-gallery-empty svg { width: 30%; opacity: 0.45; color: var(--vt-forest); }
.woocommerce div.product .product_title { font-size: clamp(1.9rem, 3.6vw, 2.8rem); margin-bottom: 0.6rem; }
.vt-summary-cat { display: inline-block; margin-bottom: 0.75rem; }
.woocommerce div.product p.price, .woocommerce div.product span.price {
	color: var(--vt-forest-dark); font-weight: 800; font-size: 1.75rem; font-family: var(--vt-font-body); margin: 0.25rem 0 1rem;
}
.woocommerce div.product p.price del { color: var(--vt-muted); font-size: 1.1rem; font-weight: 500; }
.woocommerce div.product p.price ins { text-decoration: none; color: var(--vt-bronze-dark); }
.vt-price-note { font-size: 0.85rem; color: var(--vt-muted); margin-top: -0.75rem; margin-bottom: 1.25rem; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--vt-muted); font-size: 1.05rem; margin-bottom: 1.5rem; }
.woocommerce div.product .woocommerce-product-details__short-description ul { padding-left: 1.2rem; }
.woocommerce div.product p.stock { font-weight: 700; display: inline-flex; align-items: center; gap: 0.5rem; margin-bottom: 1rem; color: var(--vt-forest); }
.woocommerce div.product p.stock::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--vt-sage); box-shadow: 0 0 0 4px var(--vt-sage-soft); }
.woocommerce div.product p.stock.out-of-stock { color: var(--vt-bronze-dark); }
.woocommerce div.product p.stock.out-of-stock::before { background: var(--vt-bronze); box-shadow: 0 0 0 4px var(--vt-bronze-soft); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: stretch; margin-bottom: 1.5rem; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; display: flex; align-items: center; background: var(--vt-paper); border: 2px solid var(--vt-forest-dark); border-radius: var(--vt-radius-pill); overflow: hidden; }
.woocommerce .quantity .qty { width: 3.2rem; border: 0; background: transparent; font: inherit; font-weight: 800; font-size: 1.05rem; text-align: center; color: var(--vt-forest-dark); padding: 0.85rem 0; -moz-appearance: textfield; }
.woocommerce .quantity .qty::-webkit-outer-spin-button, .woocommerce .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vt-qty-btn { width: 42px; align-self: stretch; border: 0; background: transparent; color: var(--vt-forest-dark); font-size: 1.3rem; font-weight: 700; cursor: pointer; transition: background 0.2s; }
.vt-qty-btn:hover { background: var(--vt-sand); }
.woocommerce div.product form.cart .button { flex: 1; min-width: 200px; float: none; font-size: 1.05rem; padding: 1rem 1.5rem; background: var(--vt-bronze); border-color: var(--vt-bronze); }
.woocommerce div.product form.cart .button:hover { background: var(--vt-bronze-dark); border-color: var(--vt-forest-dark); }
.vt-trust { list-style: none; margin: 0 0 1.5rem; padding: 1.25rem; background: var(--vt-sand-soft); border-radius: var(--vt-radius); display: grid; gap: 0.75rem; }
.vt-trust li { display: flex; gap: 0.75rem; align-items: center; font-size: 0.95rem; }
.vt-trust svg { flex-shrink: 0; width: 34px; height: 34px; padding: 7px; border-radius: 50%; background: var(--vt-paper); color: var(--vt-forest); }
.vt-trust strong { color: var(--vt-forest-dark); }
.vt-trust a { font-weight: 700; }
.woocommerce div.product .product_meta { font-size: 0.88rem; color: var(--vt-muted); display: grid; gap: 0.3rem; }
.woocommerce div.product .product_meta a { font-weight: 600; }

.woocommerce div.product .woocommerce-tabs { clear: both; margin-bottom: 3rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0; margin: 0 0 1.5rem; border: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .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 { margin: 0; padding: 0; border: 0; background: none; border-radius: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 0.7rem 1.3rem; border-radius: var(--vt-radius-pill); background: var(--vt-paper); border: 1.5px solid var(--vt-line); color: var(--vt-forest-dark); font-weight: 700; transition: transform 0.25s var(--vt-ease); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { transform: translateY(-2px); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { background: var(--vt-forest-dark); border-color: var(--vt-forest-dark); color: #fff; }
.woocommerce div.product .woocommerce-tabs .panel { background: var(--vt-paper); border-radius: var(--vt-radius-lg); padding: clamp(1.5rem, 4vw, 2.75rem); border: 1px solid var(--vt-line); margin: 0; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
.woocommerce div.product .woocommerce-tabs .panel { font-size: 1.04rem; }
.woocommerce div.product .woocommerce-tabs .panel ul li::marker { color: var(--vt-bronze); }
.woocommerce table.shop_attributes { border: 0; }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { border: 0; border-bottom: 1px dashed var(--vt-line); padding: 0.75rem 0.5rem; font-style: normal; }
.woocommerce table.shop_attributes tr:nth-child(even) th, .woocommerce table.shop_attributes tr:nth-child(even) td { background: transparent; }

.related.products > h2, .upsells.products > h2, .cross-sells > h2 { text-align: center; margin-bottom: 1.75rem; }
@media (max-width: 900px) {
	.woocommerce div.product .vt-product-top { grid-template-columns: minmax(0, 1fr); }
	.woocommerce div.product div.images.woocommerce-product-gallery { position: relative; top: auto; }
}

/* Sticky add to cart (mobile) */
.vt-sticky-atc {
	position: fixed; left: 0.75rem; right: 0.75rem; bottom: 0.75rem; z-index: 40;
	display: none; align-items: center; gap: 0.75rem; padding: 0.6rem 0.6rem 0.6rem 1.1rem;
	background: var(--vt-paper); border-radius: var(--vt-radius-pill); box-shadow: var(--vt-shadow-lg); border: 1px solid var(--vt-line);
	transform: translateY(140%); transition: transform 0.4s var(--vt-ease);
}
.vt-sticky-atc.is-visible { transform: none; }
.vt-sticky-atc__title { flex: 1; min-width: 0; font-weight: 700; font-size: 0.92rem; color: var(--vt-forest-dark); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vt-sticky-atc__price { font-weight: 800; }
@media (max-width: 760px) { .vt-sticky-atc { display: flex; } }

/* ---------- Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.wc-block-components-notice-banner {
	border: 0 !important; border-radius: var(--vt-radius) !important; background: var(--vt-sage-soft) !important;
	color: var(--vt-forest-dark) !important; padding: 1rem 1.25rem 1rem 3.25rem !important; font-weight: 600;
	box-shadow: none;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--vt-forest) !important; top: 1rem !important; left: 1.25rem !important; }
.woocommerce-error { background: var(--vt-bronze-soft) !important; }
.woocommerce-error::before { color: var(--vt-bronze-dark) !important; }
.woocommerce-message .button, .woocommerce-info .button { float: right; padding: 0.55rem 1rem; font-size: 0.88rem; }

/* ---------- Free shipping meter ---------- */
.vt-ship-meter { background: var(--vt-paper); border: 1.5px dashed var(--vt-sage); border-radius: var(--vt-radius); padding: 1rem 1.25rem; margin: 0 0 1.5rem; }
.vt-ship-meter__text { font-weight: 700; color: var(--vt-forest-dark); font-size: 0.95rem; margin-bottom: 0.6rem; display: flex; align-items: center; gap: 0.5rem; }
.vt-ship-meter__text svg { width: 22px; color: var(--vt-bronze); }
.vt-ship-meter__bar { height: 12px; border-radius: var(--vt-radius-pill); background: var(--vt-sand); overflow: hidden; }
.vt-ship-meter__fill {
	height: 100%; border-radius: inherit; width: var(--p, 0%);
	background: repeating-linear-gradient(-45deg, var(--vt-sage), var(--vt-sage) 8px, var(--vt-olive, #7a8f7a) 8px, var(--vt-olive, #7a8f7a) 16px);
	background-size: 200% 100%; animation: vt-stripes 2.5s linear infinite;
	transition: width 0.6s var(--vt-ease);
}
.vt-ship-meter.is-done { border-color: var(--vt-bronze); background: var(--vt-bronze-soft); }
@keyframes vt-stripes { to { background-position: -45px 0; } }

/* ---------- Cart & Checkout (blocks + classic) ---------- */
.vt-main--woo-flow { padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(3rem, 6vw, 5rem); }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-family: var(--vt-font-body); }
.wc-block-cart, .wc-block-checkout { color: var(--vt-text); }
.wc-block-components-sidebar, .wc-block-cart__sidebar, .wc-block-checkout__sidebar {
	background: var(--vt-paper); border-radius: var(--vt-radius-lg); padding: 1.5rem !important; border: 1px solid var(--vt-line);
}
.wc-block-cart-items, .wc-block-cart table.wc-block-cart-items { background: var(--vt-paper); border-radius: var(--vt-radius-lg); overflow: hidden; }
.wc-block-cart-items th { font-family: var(--vt-font-body); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.78rem !important; color: var(--vt-muted); }
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img { border-radius: var(--vt-radius-sm); background: var(--vt-sand-soft); }
.wc-block-components-product-name { font-family: var(--vt-font-heading); font-weight: 600; color: var(--vt-forest-dark) !important; font-size: 1.08rem !important; text-decoration: none; }
.wc-block-components-totals-item__label, .wc-block-components-totals-item__value { font-weight: 600; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 1.3rem !important; font-weight: 800; color: var(--vt-forest-dark); }
.wc-block-components-button:not(.is-link) { width: 100%; min-height: 56px; background: var(--vt-bronze) !important; border-color: var(--vt-bronze) !important; color: #fff !important; }
.wc-block-components-button:not(.is-link):hover { background: var(--vt-bronze-dark) !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-textarea {
	border-radius: var(--vt-radius-sm) !important; border: 1.5px solid rgba(61, 74, 66, 0.25) !important; background: var(--vt-paper) !important;
}
.wc-block-components-text-input.is-active input, .wc-block-components-text-input input:focus { border-color: var(--vt-sage) !important; box-shadow: 0 0 0 4px var(--vt-sage-soft) !important; }
.wc-block-components-checkout-step__title, .wc-block-components-title { font-family: var(--vt-font-heading) !important; color: var(--vt-forest-dark); }
.wc-block-components-checkout-step { border-radius: var(--vt-radius); }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-radius: var(--vt-radius-sm) !important; }
.wc-block-components-radio-control__input:checked { border-color: var(--vt-forest-dark) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--vt-forest-dark) !important; }
.wc-block-components-quantity-selector { border-radius: var(--vt-radius-pill) !important; border-color: var(--vt-line) !important; overflow: hidden; }
.wc-block-cart__empty-cart__title { font-family: var(--vt-font-heading); }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--vt-forest-dark); border-color: var(--vt-forest-dark); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff; }

/* Classic tables (account, orders) */
.woocommerce table.shop_table { border: 1px solid var(--vt-line); border-radius: var(--vt-radius); background: var(--vt-paper); border-collapse: separate; overflow: hidden; }
.woocommerce table.shop_table th { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--vt-muted); }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-color: var(--vt-line); padding: 1rem; }

/* My account */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: 2rem; align-items: start; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0.75rem; margin: 0; background: var(--vt-paper); border-radius: var(--vt-radius); border: 1px solid var(--vt-line); display: grid; gap: 0.2rem; }
.woocommerce-MyAccount-navigation a { display: block; padding: 0.7rem 1rem; border-radius: var(--vt-radius-sm); text-decoration: none; color: var(--vt-forest-dark); font-weight: 600; }
.woocommerce-MyAccount-navigation a:hover { background: var(--vt-sand-soft); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--vt-forest-dark); color: #fff; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon, .woocommerce form.lost_reset_password {
	border: 1px solid var(--vt-line) !important; border-radius: var(--vt-radius-lg) !important; background: var(--vt-paper); padding: clamp(1.25rem, 3vw, 2.25rem) !important;
}
.woocommerce-account #customer_login .u-column1, .woocommerce-account #customer_login .u-column2 { width: auto; float: none; }
.woocommerce-account #customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.woocommerce-account #customer_login::before, .woocommerce-account #customer_login::after { display: none; }
@media (max-width: 800px) { .woocommerce-account .woocommerce, .woocommerce-account #customer_login { grid-template-columns: 1fr; } }

/* ---------- Distraction-free checkout (Shopify-style) ---------- */
body.vt-co { --co-bg: #fff; --co-side: #f6f3ee; --co-line: #e3ded5; --co-r: 10px; background: var(--co-bg); }
.vt-co-header { background: var(--co-bg); border-bottom: 1px solid var(--co-line); }
.vt-co-header__inner { max-width: 1140px; margin: 0 auto; padding: 1rem clamp(1rem, 4vw, 2rem); display: flex; align-items: center; gap: 1rem; }
.vt-co-header__logo img { width: 150px; height: auto; display: block; }
.vt-co-header__secure { margin-left: auto; display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.85rem; font-weight: 600; color: var(--vt-muted); }
.vt-co-header__secure svg { width: 16px; height: 16px; }
.vt-co-header__cart { color: var(--vt-forest-dark); }
.vt-co .vt-main--woo-flow { padding: 0; overflow: clip; }
.vt-co .vt-main--woo-flow > .vt-container { max-width: 1140px; }
.vt-co .wc-block-checkout { margin: 0; }
.vt-co .wc-block-components-sidebar-layout { margin: 0; flex-wrap: nowrap; }
.vt-co .wc-block-components-main { padding: clamp(1.5rem, 4vw, 2.75rem) clamp(1.5rem, 4vw, 3rem) 3rem 0 !important; }
.vt-co .wc-block-components-sidebar,
.vt-co .wc-block-checkout__sidebar {
	position: relative; background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
	padding: clamp(1.5rem, 4vw, 2.75rem) 0 3rem clamp(1.5rem, 4vw, 3rem) !important;
}
.vt-co .wc-block-components-sidebar-layout { position: relative; z-index: 0; }
.vt-co .wc-block-components-sidebar-layout:not(.is-mobile)::after {
	content: ""; position: absolute; z-index: -1; top: -100vh; bottom: -100vh; left: 65%; width: 100vw;
	background: var(--co-side); border-left: 1px solid var(--co-line);
}
.vt-co .wc-block-components-sidebar .wc-block-components-panel,
.vt-co .wc-block-components-order-summary,
.vt-co .wp-block-woocommerce-checkout-order-summary-block { background: transparent; border: 0; padding-left: 0; padding-right: 0; }
.vt-co .wc-block-components-checkout-order-summary__title { display: none; }
.vt-co .wc-block-components-product-metadata { display: none; }
.vt-co .wc-block-components-product-name { font-family: var(--vt-font-body, inherit) !important; font-weight: 600; font-size: 0.95rem !important; }
.vt-co .wc-block-components-order-summary-item__image img { border: 1px solid var(--co-line); background: #fff; }
.vt-co .wc-block-components-order-summary-item__quantity { background: var(--vt-muted); color: #fff; border: 0; box-shadow: none; }
.vt-co .wc-block-components-totals-wrapper { border-color: var(--co-line) !important; }
.vt-co .wc-block-components-checkout-step { padding: 0 !important; margin-bottom: 2rem !important; border: 0; }
.vt-co .wc-block-components-checkout-step__container::after,
.vt-co .wc-block-components-checkout-step::after { display: none !important; }
.vt-co .wc-block-components-checkout-step__heading { margin: 0 0 0.85rem !important; }
.vt-co .wc-block-components-checkout-step__title,
.vt-co .wc-block-components-title { font-family: inherit !important; font-size: 1.2rem !important; font-weight: 700; letter-spacing: -0.01em; }
.vt-co .wc-block-components-checkout-step__description { font-size: 0.88rem; color: var(--vt-muted); }
.vt-co .wc-block-components-text-input input,
.vt-co .wc-block-components-combobox .wc-block-components-combobox-control input,
.vt-co .wc-blocks-components-select .wc-blocks-components-select__select,
.vt-co .wc-block-components-textarea {
	background: #fff !important; border: 1px solid var(--co-line) !important; border-radius: var(--co-r) !important; min-height: 52px; box-shadow: none !important;
}
.vt-co .wc-block-components-text-input.is-active input,
.vt-co .wc-block-components-text-input input:focus,
.vt-co .wc-blocks-components-select__select:focus { border-color: var(--vt-forest-dark) !important; box-shadow: 0 0 0 1px var(--vt-forest-dark) !important; }
.vt-co .wc-blocks-components-select__container { border-radius: var(--co-r); background: #fff; }
.vt-co .wc-block-components-radio-control__option,
.vt-co .wc-block-components-radio-control-accordion-option { border: 1px solid var(--co-line) !important; border-radius: var(--co-r) !important; background: #fff; box-shadow: none !important; }
.vt-co .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted,
.vt-co .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted { border-color: var(--vt-forest-dark) !important; box-shadow: inset 0 0 0 1px var(--vt-forest-dark) !important; background: #fbfaf7; }
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control {
	border: 1px solid var(--co-line); border-radius: var(--co-r); overflow: hidden; background: #fff;
}
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option {
	position: relative; margin: 0 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: #fff;
}
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option + .wc-block-components-radio-control-accordion-option { border-top: 1px solid var(--co-line) !important; }
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	background: #f8f5f0 !important; box-shadow: inset 0 0 0 1px var(--vt-forest-dark) !important; z-index: 1;
}
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option:first-child { border-radius: var(--co-r) var(--co-r) 0 0 !important; }
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option:last-child { border-radius: 0 0 var(--co-r) var(--co-r) !important; }
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control__option {
	margin: 0 !important; padding: 0.95rem 1rem 0.95rem 3rem !important; border: 0 !important; box-shadow: none !important; background: transparent !important; min-height: 0;
}
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control__option-layout,
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control__label-group { width: 100%; }
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control__label {
	display: flex; align-items: center; gap: 4px; width: 100%; font-size: 0.95rem; font-weight: 500;
}
.vt-co .wc-block-checkout__payment-method .wc-block-components-payment-method-label { margin-right: auto; padding-right: 0.75rem; }
.vt-co .wc-block-checkout__payment-method .wc-block-components-payment-method-icons { display: flex; flex-shrink: 0; gap: 4px; margin: 0 !important; }
.vt-co .wc-block-checkout__payment-method .wc-block-components-payment-method-icon { width: auto !important; height: 22px !important; margin: 0 !important; }
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content {
	padding: 0 1rem 1rem 3rem; font-size: 0.88rem; color: var(--vt-muted);
}
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content:empty,
.vt-co .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content:has(> .mollie-payment-method-container:only-child > div:only-child:empty) { display: none; }
.vt-co .wc-block-components-button:not(.is-link) { border-radius: var(--co-r) !important; min-height: 58px; font-size: 1.05rem; }
.vt-co .wc-block-checkout__actions_row { flex-direction: column-reverse; align-items: stretch; gap: 1rem; }
.vt-co .wc-block-components-checkout-return-to-cart-button { justify-content: center; font-size: 0.9rem; color: var(--vt-forest-dark); }
.vt-co .wc-block-checkout__terms { font-size: 0.82rem; color: var(--vt-muted); border-top: 0 !important; padding-top: 0 !important; }
.vt-co-footer { border-top: 1px solid var(--co-line); background: var(--co-bg); position: relative; z-index: 1; }
.vt-co-footer__inner { max-width: 1140px; margin: 0 auto; padding: 1.1rem clamp(1rem, 4vw, 2rem); }
.vt-co-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; }
.vt-co-footer a { font-size: 0.82rem; color: var(--vt-muted); text-decoration: underline; text-underline-offset: 3px; }
.vt-co-footer a:hover { color: var(--vt-forest-dark); }
@media (max-width: 699px) {
	.vt-co-header__secure span, .vt-co-header__secure { font-size: 0.78rem; }
	.vt-co .wc-block-components-main { padding: 1.25rem 0 2rem !important; }
	.vt-co .wc-block-components-checkout-order-summary__title { display: flex; }
	.vt-co .wc-block-checkout__sidebar { padding: 0 !important; margin: 0 -1rem !important; }
	.vt-co .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block { background: var(--co-side); padding: 0 1rem; border-bottom: 1px solid var(--co-line); }
	.vt-co .wc-block-components-checkout-order-summary__title-text { font-family: inherit !important; font-size: 1rem !important; font-weight: 600; }
	.vt-co .checkout-order-summary-block-fill-wrapper { border-top: 1px solid var(--co-line); padding-top: 0.5rem; }
	.vt-co .checkout-order-summary-block-fill-wrapper .wc-block-components-checkout-order-summary__title,
	.vt-co .checkout-order-summary-block-fill-wrapper .wc-block-components-title { display: none !important; }
}

/* ---------- 404 ---------- */
.vt-404 { text-align: center; padding: clamp(3rem, 8vw, 6rem) 0; position: relative; }
.vt-404__num { font-family: var(--vt-font-heading); font-size: clamp(6rem, 18vw, 12rem); line-height: 1; color: var(--vt-forest-dark); display: inline-flex; gap: 0.1em; }
.vt-404__num span:nth-child(2) { display: inline-block; width: 0.82em; height: 0.82em; align-self: center; border-radius: 50%; background: var(--vt-bronze); animation: vt-bounce 1.6s var(--vt-ease) infinite; }
@keyframes vt-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }

/* Reveal on scroll */
.vt-reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.8s var(--vt-ease); }
.vt-reveal.is-in { opacity: 1; transform: none; }
.no-js .vt-reveal { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.vt-reveal { opacity: 1; transform: none; }
}

/* Cart block: "Nieuw in de winkel" uses the block grid, not the loop cards. */
.wc-block-cart__empty-cart__title { font-family: var(--vt-font-heading); color: var(--vt-forest-dark); }
.wc-block-cart__empty-cart__title + p a {
	display: inline-flex; margin-top: 0.5rem; padding: 0.85rem 1.4rem; border-radius: var(--vt-radius-pill);
	background: var(--vt-forest-dark); color: #fff; font-weight: 700; text-decoration: none;
}
.wc-block-cart__empty-cart__title + p a:hover { background: var(--vt-forest); color: #fff; }
.wc-block-grid__products {
	display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem;
	width: 100%; list-style: none; margin: 1.5rem 0 0; padding: 0;
}
.wc-block-grid__product {
	display: flex; flex-direction: column; margin: 0; min-width: 0 !important;
	max-width: none !important; width: auto !important; flex: none !important;
	background: var(--vt-paper); border: 1px solid var(--vt-line); border-radius: var(--vt-radius); overflow: hidden;
}
.wc-block-grid__product-link { text-decoration: none; color: inherit; display: flex; flex-direction: column; flex: 1; }
.wc-block-grid__product-image { aspect-ratio: 1; margin: 0.6rem 0.6rem 0; border-radius: calc(var(--vt-radius) - 6px); overflow: hidden; background: var(--vt-sand-soft); }
.wc-block-grid__product:nth-child(4n+2) .wc-block-grid__product-image { background: var(--vt-sage-soft); }
.wc-block-grid__product:nth-child(4n+3) .wc-block-grid__product-image { background: var(--vt-bronze-soft); }
.wc-block-grid__product:nth-child(4n+4) .wc-block-grid__product-image { background: var(--vt-sky-soft); }
.wc-block-grid__product-image img { width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }
.wc-block-grid__product-title { font-family: var(--vt-font-heading); font-weight: 600; color: var(--vt-forest-dark); padding: 0.9rem 1rem 0.2rem; }
.wc-block-grid__product-price { padding: 0 1rem; font-weight: 800; }
.wc-block-grid__product-add-to-cart { margin-top: auto; padding: 0.8rem 1rem 1rem; }
.wc-block-grid__product-add-to-cart .wp-block-button__link {
	width: 100%; white-space: nowrap; background: var(--vt-sand); color: var(--vt-forest-dark); border-color: var(--vt-sand);
}
@media (max-width: 900px) { .wc-block-grid__products { grid-template-columns: repeat(2, 1fr); } }
