/* WooCommerce styling — Bastiaens huisstijl.
   Single product page (editorial premium), cart, checkout, bedankt pagina. */

:root{
	--nlpg-primary: var(--e-global-color-primary, #B8000B);
	--nlpg-deep: #8B0008;
	--nlpg-accent: var(--e-global-color-b318c1c, #E6B000);
	--nlpg-text: var(--e-global-color-text, #1a1a1a);
	--nlpg-muted: #6b7280;
	--nlpg-faint: #9ca3af;
	--nlpg-border: #ececef;
	--nlpg-border-strong: #d4d4d8;
	--nlpg-soft: #fafafa;
	--nlpg-heading-font: var(--e-global-typography-primary-font-family, 'Gilroy'), 'Gilroy', system-ui, sans-serif;
	--nlpg-body-font: var(--e-global-typography-text-font-family, 'Lato'), 'Lato', system-ui, sans-serif;
}

/* ─────────────────── Single product layout ───────────────────
   Editorial: foto sticky links, kolom rechts met ruime witruimte
   en subtiele 1px scheidingslijnen, géén kaders. */

.woocommerce div.product,
.woocommerce-page div.product{
	display: grid !important;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: 72px;
	max-width: 1200px;
	margin: 48px auto 72px !important;
	padding: 0 24px;
}
.woocommerce div.product .images,
.woocommerce-page div.product .images{
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	position: sticky;
	top: 96px;
	align-self: start;
}
.woocommerce div.product .summary,
.woocommerce-page div.product .summary{
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0;
	font-family: var(--nlpg-body-font);
}
.woocommerce div.product .woocommerce-tabs,
.woocommerce-page div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells{
	grid-column: 1 / -1;
	width: 100%;
	float: none !important;
	clear: both;
}

/* Productafbeelding zelf */
.woocommerce-product-gallery{ position: relative; }
.woocommerce-product-gallery__wrapper img{
	border-radius: 18px;
	overflow: hidden;
	display: block;
	width: 100%;
	height: auto;
}
.woocommerce-product-gallery__trigger{ display: none !important; }

/* Placeholder bij producten zonder afbeelding */
.woocommerce-product-gallery__image--placeholder img{
	background: var(--nlpg-soft);
	border: 1px dashed var(--nlpg-border-strong);
	padding: 60px;
}

/* ─────────────────── Summary kolom — editorial typografie ─────────────────── */

.nlpg-eyebrow{
	margin: 0 0 14px !important;
	font-family: var(--nlpg-body-font);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--nlpg-primary);
}

.woocommerce div.product .product_title{
	font-family: var(--nlpg-heading-font) !important;
	font-weight: 800 !important;
	font-size: clamp(2rem, 3.6vw, 3rem) !important;
	letter-spacing: -0.025em;
	color: var(--nlpg-text);
	margin: 0 0 18px !important;
	line-height: 1.05;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price{
	font-family: var(--nlpg-heading-font) !important;
	font-weight: 700 !important;
	font-size: 1.25rem !important;
	color: var(--nlpg-text) !important;
	margin: 0 0 24px !important;
	display: flex;
	align-items: baseline;
	gap: 10px;
}

/* Gratis-label: groene chip ipv €0,00 */
.nlpg-price-free{
	display: inline-flex;
	align-items: center;
	padding: 5px 12px;
	background: color-mix(in srgb, #1f7a4d 12%, transparent);
	color: #1f7a4d;
	border-radius: 999px;
	font-family: var(--nlpg-body-font);
	font-size: .9rem;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
}
.woocommerce div.product .price ins{ background: transparent; text-decoration: none; }
.woocommerce div.product .price del{ color: var(--nlpg-faint); font-size: .95rem; opacity: .7; }
.woocommerce div.product .price .woocommerce-Price-amount{ font-family: inherit; }

/* USP-rij — geen kaders, alleen tekst met kleine check */
.nlpg-usps{
	list-style: none;
	margin: 0 0 28px !important;
	padding: 20px 0 !important;
	border-top: 1px solid var(--nlpg-border);
	border-bottom: 1px solid var(--nlpg-border);
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
}
.nlpg-usps li{
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-family: var(--nlpg-body-font);
	font-size: .92rem;
	font-weight: 600;
	color: var(--nlpg-text);
	margin: 0 !important;
	padding: 0 !important;
}
.nlpg-usps li::before{ display: none !important; }
.nlpg-usps__check{
	display: inline-block;
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	position: relative;
}
.nlpg-usps__check::after{
	content: "";
	position: absolute;
	left: 1px; top: 4px;
	width: 9px; height: 5px;
	border-left: 2px solid var(--nlpg-primary);
	border-bottom: 2px solid var(--nlpg-primary);
	transform: rotate(-45deg);
}

/* Intro tekst */
.nlpg-intro{
	margin: 0 0 32px;
	color: var(--nlpg-text);
	font-size: 1.02rem;
	line-height: 1.7;
}
.nlpg-intro p{ margin: 0; }

/* Verberg de standaard WC short description (we renderen onze eigen intro). */
.woocommerce div.product .woocommerce-product-details__short-description{
	display: none !important;
}

/* Section eyebrow boven de calendar widget */
.nlpg-section-eyebrow{
	margin: 0 0 14px !important;
	font-family: var(--nlpg-body-font);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--nlpg-muted);
}

/* ─────────────────── Compacte calendar widget op productpagina ───────────────────
   Editorial-clean: geen achtergrond, geen kaders. Mini-maand grid met 30px cellen. */
.nlpg-leadform.nlpg-leadform--product{
	/* Bastiaens huisstijl overrides — lead-form.css zet hier defaults voor een blauw
	   schema (#1f2c5c). Op de productpagina willen we exact hetzelfde rood/goud +
	   Gilroy/Lato palet als de cursuskalender, zodat dropdown, slots en submit in
	   één visuele taal vallen. Hoofdkleur valt terug op Elementor global voor klanten
	   met andere huisstijl; expliciete fallback is Bastiaens-rood. */
	--nlpg-primary: var(--e-global-color-primary, #B8000B);
	--nlpg-text: var(--e-global-color-text, #1a1a1a);
	--nlpg-muted: #6b7280;
	--nlpg-soft: #fafafa;
	--nlpg-border: #ececef;
	--nlpg-border-strong: #d4d4d8;

	margin: 0 0 22px;
	background: transparent;
	box-shadow: none;
	padding: 0;
	border-radius: 0;
	overflow: visible;
	font-family: var(--nlpg-body-font);
	color: var(--nlpg-text);
}
.nlpg-leadform--product .nlpg-leadform__form{ gap: 16px; }
.nlpg-leadform--product .nlpg-leadform__section{ gap: 0; }

/* Calendar container fungeert als dropdown wrapper op de productpagina. */
.nlpg-leadform--product .nlpg-leadform__calendar{
	background: transparent !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	overflow: visible !important;
}

/* ─────────────────── Rich custom datum dropdown ─────────────────── */
.nlpg-dropdown{
	position: relative;
	width: 100%;
	font-family: var(--nlpg-body-font);
}

/* Trigger: pill met icoon, label, chevron */
.nlpg-leadform.nlpg-leadform--product .nlpg-dropdown__trigger,
.nlpg-leadform.nlpg-leadform--product .nlpg-dropdown__trigger:hover{
	display: flex !important;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 14px 16px !important;
	background: #fff !important;
	border: 1px solid var(--nlpg-border) !important;
	border-radius: 12px !important;
	color: var(--nlpg-text) !important;
	font-family: inherit !important;
	font-size: .95rem !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-shadow: none !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
	text-align: left !important;
}
.nlpg-leadform.nlpg-leadform--product .nlpg-dropdown__trigger:hover{
	border-color: var(--nlpg-border-strong) !important;
}
.nlpg-leadform.nlpg-leadform--product .nlpg-dropdown__trigger:focus{
	border-color: var(--nlpg-primary) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--nlpg-primary) 12%, transparent) !important;
}
/* Open state — trigger en list smelten samen tot één card: gedeelde rode rand,
   geen gap, geen losse focus-ring op de trigger (de doorlopende rode border
   communiceert het open-zijn al). Onderhoeken van de trigger vlak zodat de list
   er direct op aansluit. */
.nlpg-leadform.nlpg-leadform--product .nlpg-dropdown.is-open .nlpg-dropdown__trigger,
.nlpg-leadform.nlpg-leadform--product .nlpg-dropdown.is-open .nlpg-dropdown__trigger:focus{
	border-color: var(--nlpg-primary) !important;
	border-bottom-left-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
	outline: none !important;
	box-shadow: none !important;
}
.nlpg-dropdown__trigger-icon{
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: color-mix(in srgb, var(--nlpg-primary) 10%, transparent);
	color: var(--nlpg-primary);
}
.nlpg-dropdown__label{
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	line-height: 1.15;
	gap: 1px;
}
.nlpg-dropdown__trigger-placeholder{
	color: var(--nlpg-muted);
	font-weight: 500;
	font-size: .95rem;
}
.nlpg-dropdown__trigger-day{
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .14em;
	color: var(--nlpg-muted);
	text-transform: uppercase;
}
.nlpg-dropdown__trigger-date{
	font-family: var(--nlpg-heading-font);
	font-size: 1rem;
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.01em;
	text-transform: capitalize;
}
.nlpg-dropdown__chevron{
	flex-shrink: 0;
	color: var(--nlpg-muted);
	transition: transform .18s cubic-bezier(.32,.72,.32,1);
}
.nlpg-dropdown.is-open .nlpg-dropdown__chevron{ transform: rotate(180deg); color: var(--nlpg-primary); }

/* List wrapper — sluit direct aan op de trigger zonder gap, deelt dezelfde border-
   kleur en hoekradius zodat trigger + list visueel één doorlopende card vormen.
   Geen losse drop-shadow: het is geen zwevend popover, het is de onderkant van
   het input-veld dat zich uitvouwt. */
.nlpg-dropdown__list{
	position: absolute;
	top: 100%;
	left: 0; right: 0;
	z-index: 50;
	padding: 0;
	background: #fff;
	border: 1px solid var(--nlpg-primary);
	border-top: 0;
	border-radius: 0 0 12px 12px;
	box-shadow: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
	overflow: hidden;
}
.nlpg-dropdown.is-open .nlpg-dropdown__list{
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

/* Options scroll container */
.nlpg-dropdown__options{
	list-style: none;
	margin: 0 !important;
	padding: 6px;
	max-height: 340px;
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: var(--nlpg-border-strong) transparent;
}
.nlpg-dropdown__options::-webkit-scrollbar{ width: 8px; }
.nlpg-dropdown__options::-webkit-scrollbar-thumb{ background: var(--nlpg-border-strong); border-radius: 4px; }
.nlpg-dropdown__options::-webkit-scrollbar-track{ background: transparent; }

/* Month group divider */
.nlpg-dropdown__group{
	padding: 10px 12px 6px;
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--nlpg-faint);
	pointer-events: none;
}
.nlpg-dropdown__group:first-child{ padding-top: 4px; }

/* Single option: 3-kolom grid (date tile | body | arrow) */
.nlpg-dropdown__option{
	display: grid;
	grid-template-columns: 48px 1fr auto;
	align-items: center;
	gap: 14px;
	padding: 10px 12px;
	border-radius: 10px;
	cursor: pointer;
	transition: background .12s ease, transform .12s ease;
	margin: 0 !important;
	list-style: none;
}
.nlpg-dropdown__option + .nlpg-dropdown__option{ margin-top: 2px !important; }
.nlpg-dropdown__option:hover,
.nlpg-dropdown__option:focus-visible{
	background: var(--nlpg-soft);
	outline: none;
}
.nlpg-dropdown__option:hover .nlpg-dropdown__opt-arrow{
	transform: translateX(2px);
	color: var(--nlpg-primary);
}
.nlpg-dropdown__option.is-selected{
	background: color-mix(in srgb, var(--nlpg-deep) 7%, transparent);
}
.nlpg-dropdown__option.is-selected .nlpg-dropdown__opt-date{
	/* Selected day-tile = donkerrode tegel met witte cijfers, identiek aan
	   .nlpg-ck-daytile op de cursuskalender. */
	background: var(--nlpg-deep);
	color: #fff;
	border-color: var(--nlpg-deep);
}

/* Datum tegel links */
.nlpg-dropdown__opt-date{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 52px;
	background: #fff;
	border: 1px solid var(--nlpg-border);
	border-radius: 10px;
	line-height: 1;
	transition: background .12s ease, color .12s ease, border-color .12s ease;
}
.nlpg-dropdown__opt-day{
	font-size: .6rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--nlpg-muted);
	margin-bottom: 2px;
}
.nlpg-dropdown__option.is-selected .nlpg-dropdown__opt-day,
.nlpg-dropdown__option:hover .nlpg-dropdown__opt-day{ color: inherit; }
.nlpg-dropdown__opt-num{
	font-family: var(--nlpg-heading-font);
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--nlpg-text);
	letter-spacing: -0.02em;
}
.nlpg-dropdown__option.is-selected .nlpg-dropdown__opt-num{ color: #fff; }

/* Body midden */
.nlpg-dropdown__opt-body{
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.nlpg-dropdown__opt-title{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--nlpg-heading-font);
	font-size: .98rem;
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.01em;
	text-transform: capitalize;
}
.nlpg-dropdown__opt-badge{
	/* Goud-accent badge — mirror van .nlpg-ck-dayhead__today op de cursuskalender,
	   zodat "Vandaag/Morgen/Deze week" overal hetzelfde voelt. */
	display: inline-flex;
	padding: 2px 8px;
	background: var(--nlpg-accent);
	color: #1f1f1f;
	border-radius: 999px;
	font-family: var(--nlpg-body-font);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.nlpg-dropdown__opt-meta{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: .82rem;
	color: var(--nlpg-muted);
	font-weight: 600;
}
.nlpg-dropdown__opt-count{ position: relative; }
.nlpg-dropdown__opt-range{
	position: relative;
	padding-left: 12px;
	font-variant-numeric: tabular-nums;
}
.nlpg-dropdown__opt-range::before{
	content: "";
	position: absolute;
	left: 0; top: 50%;
	width: 4px; height: 4px;
	border-radius: 50%;
	background: var(--nlpg-border-strong);
	transform: translateY(-50%);
}

/* Pijl rechts */
.nlpg-dropdown__opt-arrow{
	color: var(--nlpg-faint);
	transition: color .12s ease, transform .12s ease;
}

/* Mobiel: tap-friendly */
@media (max-width: 640px){
	.nlpg-leadform.nlpg-leadform--product .nlpg-dropdown__trigger{ padding: 14px 14px !important; }
	.nlpg-dropdown__list{ left: 0; right: 0; }
	.nlpg-dropdown__option{ grid-template-columns: 44px 1fr auto; gap: 12px; padding: 12px 10px; }
	.nlpg-dropdown__opt-date{ width: 44px; height: 48px; }
	.nlpg-dropdown__opt-num{ font-size: 1.15rem; }
	.nlpg-dropdown__opt-meta{ font-size: .78rem; gap: 8px; }
}

/* Slot pills compacter */
.nlpg-leadform--product .nlpg-leadform__slots-wrap{
	gap: 6px;
	margin-top: 10px;
	min-height: 0;
}
.nlpg-leadform.nlpg-leadform--product button.nlpg-leadform__slot{
	padding: 7px 13px;
	font-size: .85rem;
	border-radius: 6px;
	border-width: 1px;
}
.nlpg-leadform--product .nlpg-leadform__slots-empty{
	margin-top: 10px;
	padding: 9px 12px;
	font-size: .82rem;
	background: transparent;
	border: 1px dashed var(--nlpg-border);
	color: var(--nlpg-faint);
}

/* ─────────────────── "Reserveer proefles" knop ─────────────────── */
/* Elementor zet form.cart op display:flex;flex-wrap:nowrap waardoor onze stappen
   en instructeur kaart als smalle flex-kinderen rechts naast de knop terechtkomen.
   Forceer block layout zodat alles netjes onder elkaar staat. */
.woocommerce div.product form.cart,
.woocommerce div.product form.cart:not(.grouped_form):not(.variations_form){
	display: block !important;
	flex-wrap: initial !important;
	margin: 28px 0 0;
}
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart button.single_add_to_cart_button:hover{
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background-color: var(--nlpg-primary) !important;
	color: #fff !important;
	border: 0 !important;
	padding: 17px 30px !important;
	border-radius: 10px !important;
	font-family: var(--nlpg-body-font) !important;
	font-size: .98rem !important;
	font-weight: 700 !important;
	letter-spacing: .03em !important;
	text-transform: none !important;
	text-shadow: none !important;
	box-shadow: none !important;
	transition: filter .15s ease, transform .15s ease !important;
	width: 100%;
	max-width: 100%;
	cursor: pointer;
}
.woocommerce div.product form.cart .single_add_to_cart_button::after{
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate(45deg);
	margin-left: 2px;
	transition: margin-left .15s ease;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover:not(:disabled){
	filter: brightness(1.08);
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover:not(:disabled)::after{
	margin-left: 6px;
}
.woocommerce div.product form.cart .single_add_to_cart_button:disabled{
	opacity: .4 !important;
	cursor: not-allowed !important;
	filter: none !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button:disabled::after{ opacity: .6; }

.woocommerce div.product form.cart div.quantity{ display: none !important; }

/* ─────────────────── Hoe-het-werkt strip (na cart knop) ───────────────────
   Hoge specificiteit + !important omdat Elementor form.cart op flex zet
   en WC standaard `ol li` defaults toepast die anders onze grid breken. */
.woocommerce div.product .nlpg-steps,
ol.nlpg-steps{
	list-style: none !important;
	margin: 26px 0 0 !important;
	padding: 22px 0 0 !important;
	border-top: 1px solid var(--nlpg-border);
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 18px !important;
	width: 100% !important;
	clear: both !important;
	float: none !important;
}
.woocommerce div.product .nlpg-steps li.nlpg-steps__item,
ol.nlpg-steps li.nlpg-steps__item{
	display: flex !important;
	align-items: flex-start !important;
	gap: 12px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	background: transparent !important;
}
.nlpg-steps li.nlpg-steps__item::before,
.nlpg-steps li.nlpg-steps__item::marker{
	content: none !important;
	display: none !important;
}
.nlpg-steps__num{
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--nlpg-text);
	color: #fff !important;
	font-family: var(--nlpg-heading-font);
	font-weight: 700;
	font-size: .8rem;
	line-height: 1;
}
.nlpg-steps__body{
	display: flex !important;
	flex-direction: column;
	gap: 2px;
	font-size: .82rem;
	line-height: 1.45;
	color: var(--nlpg-muted);
	min-width: 0;
}
.nlpg-steps__body strong{
	color: var(--nlpg-text);
	font-size: .87rem;
	font-weight: 700;
	letter-spacing: -0.005em;
}

/* ─────────────────── Instructeur kaart (onder hoe-het-werkt) ─────────────────── */
.nlpg-instructor{
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 22px 0 0;
	padding: 16px 18px;
	background: var(--nlpg-soft);
	border-radius: 12px;
}
.nlpg-instructor__avatar{
	width: 56px;
	height: 56px;
	flex-shrink: 0;
	border-radius: 50%;
	overflow: hidden;
	background: var(--nlpg-border);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.nlpg-instructor__avatar img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.nlpg-instructor__avatar--placeholder{
	background: var(--nlpg-primary);
	color: #fff;
	font-family: var(--nlpg-heading-font);
	font-weight: 800;
	font-size: 1.4rem;
}
.nlpg-instructor__body{ display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nlpg-instructor__name{
	margin: 0 !important;
	font-family: var(--nlpg-heading-font);
	font-size: .98rem;
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.005em;
}
.nlpg-instructor__quote{
	margin: 0 !important;
	font-size: .85rem;
	color: var(--nlpg-muted);
	line-height: 1.45;
}

/* ─────────────────── Vertrouwens-strip (na cart form) ─────────────────── */
.nlpg-trust{
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 22px 0 0;
	padding: 18px 0 0;
	border-top: 1px solid var(--nlpg-border);
}
.nlpg-trust__stars{
	font-size: 1rem;
	letter-spacing: .12em;
	color: var(--nlpg-accent);
	line-height: 1;
	flex-shrink: 0;
}
.nlpg-trust__text{
	font-size: .85rem;
	color: var(--nlpg-muted);
	line-height: 1.5;
}
.nlpg-trust__text strong{
	color: var(--nlpg-text);
	font-weight: 800;
	margin-right: 4px;
}

/* Verberg de standaard product_meta (categorie/sku) — we maken het rustiger */
.woocommerce div.product .product_meta{ display: none !important; }

/* ─────────────────── Klant-quotes onder fold ─────────────────── */
.nlpg-quotes{
	grid-column: 1 / -1;
	max-width: 1200px;
	margin: 56px auto 0;
	padding: 0 24px;
}
.nlpg-quotes__eyebrow{
	margin: 0 0 22px !important;
	font-family: var(--nlpg-body-font);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--nlpg-muted);
}
.nlpg-quotes__grid{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}
.nlpg-quotes__card{
	margin: 0;
	padding: 24px 22px 20px;
	background: var(--nlpg-soft);
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.nlpg-quotes__stars{
	color: var(--nlpg-accent);
	font-size: .92rem;
	letter-spacing: .15em;
	line-height: 1;
}
.nlpg-quotes__card blockquote{
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--nlpg-heading-font);
	font-size: 1.02rem;
	font-weight: 500;
	color: var(--nlpg-text);
	line-height: 1.45;
	letter-spacing: -0.01em;
	quotes: none;
}
.nlpg-quotes__card blockquote::before,
.nlpg-quotes__card blockquote::after{ content: none; }
.nlpg-quotes__card figcaption{
	font-size: .8rem;
	color: var(--nlpg-muted);
	font-weight: 600;
	letter-spacing: .01em;
}

@media (max-width: 900px){
	.nlpg-quotes{ margin-top: 36px; padding: 0 18px; }
	.nlpg-quotes__grid{ grid-template-columns: 1fr; gap: 12px; }
	.nlpg-quotes__card{ padding: 20px 18px 18px; }
}

/* ─────────────────── WooCommerce gallery thumbs (compact, editorial) ─────────────────── */
.woocommerce-product-gallery ol.flex-control-nav.flex-control-thumbs{
	margin: 14px 0 0 !important;
	padding: 0 !important;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	list-style: none;
}
.woocommerce-product-gallery ol.flex-control-nav.flex-control-thumbs li{
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}
.woocommerce-product-gallery ol.flex-control-nav.flex-control-thumbs li img{
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 10px;
	cursor: pointer;
	opacity: .55;
	transition: opacity .15s ease, transform .15s ease;
	border: 2px solid transparent;
}
.woocommerce-product-gallery ol.flex-control-nav.flex-control-thumbs li img:hover{
	opacity: 1;
}
.woocommerce-product-gallery ol.flex-control-nav.flex-control-thumbs li img.flex-active{
	opacity: 1;
	border-color: var(--nlpg-primary);
}

/* ─────────────────── Mobiele sticky CTA bottom ─────────────────── */
.nlpg-sticky-cta{
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 9000;
	display: none;
	align-items: center;
	gap: 14px;
	padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
	background: #fff;
	border-top: 1px solid var(--nlpg-border);
	box-shadow: 0 -4px 18px -8px rgba(0,0,0,.18);
	transform: translateY(105%);
	transition: transform .25s cubic-bezier(.32,.72,.32,1);
	pointer-events: none;
}
.nlpg-sticky-cta.is-visible{
	transform: translateY(0);
	pointer-events: auto;
}
.nlpg-sticky-cta__info{
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
	line-height: 1.25;
}
.nlpg-sticky-cta__title{
	font-family: var(--nlpg-heading-font);
	font-weight: 700;
	font-size: .95rem;
	color: var(--nlpg-text);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	letter-spacing: -0.005em;
}
.nlpg-sticky-cta__price{
	font-size: .82rem;
	color: var(--nlpg-muted);
	font-weight: 600;
}
.nlpg-sticky-cta__price .amount,
.nlpg-sticky-cta__price .woocommerce-Price-amount{ color: inherit; font-weight: 600; }
.nlpg-sticky-cta__btn{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
	padding: 12px 20px;
	background: var(--nlpg-primary);
	color: #fff;
	border: 0;
	border-radius: 10px;
	font-family: var(--nlpg-body-font);
	font-size: .95rem;
	font-weight: 700;
	cursor: pointer;
	text-shadow: none;
	box-shadow: none;
	letter-spacing: .02em;
	transition: filter .15s ease;
}
.nlpg-sticky-cta__btn:hover{ filter: brightness(1.08); }
@media (max-width: 900px){
	.single-product .nlpg-sticky-cta{ display: flex; }
}

/* ─────────────────── Product tabs (lange beschrijving) ─────────────────── */

.woocommerce div.product .woocommerce-tabs{
	margin: 72px auto 0;
	max-width: 1200px;
	padding: 0 24px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs{
	border: 0 !important;
	border-bottom: 1px solid var(--nlpg-border) !important;
	padding: 0 !important;
	margin: 0 0 28px !important;
	background: transparent !important;
	display: flex;
	gap: 6px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
	background: transparent !important;
	border-radius: 0 !important;
	border: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{ display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
	padding: 14px 4px !important;
	margin-right: 28px !important;
	font-family: var(--nlpg-body-font) !important;
	font-weight: 700 !important;
	color: var(--nlpg-muted) !important;
	text-transform: uppercase !important;
	letter-spacing: .08em !important;
	font-size: .74rem !important;
	border-bottom: 2px solid transparent !important;
	transition: color .15s ease, border-color .15s ease;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{
	color: var(--nlpg-text) !important;
	border-bottom-color: var(--nlpg-text) !important;
}
.woocommerce div.product .woocommerce-tabs .panel{
	padding: 8px 0 0 !important;
	font-size: 1rem;
	color: var(--nlpg-text);
	line-height: 1.7;
	max-width: 760px;
}
.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce div.product .woocommerce-tabs .panel h3{
	font-family: var(--nlpg-heading-font);
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.015em;
}
.woocommerce div.product .woocommerce-tabs .panel h2{ font-size: 1.6rem; margin: 0 0 14px; }
.woocommerce div.product .woocommerce-tabs .panel h3{ font-size: 1.15rem; margin: 24px 0 8px; }
.woocommerce div.product .woocommerce-tabs .panel ul{ padding-left: 1.2em; }
.woocommerce div.product .woocommerce-tabs .panel ul li{ margin-bottom: 6px; }

/* Related/upsells header */
.woocommerce .related > h2,
.woocommerce .upsells > h2{
	font-family: var(--nlpg-heading-font);
	font-weight: 700;
	font-size: 1.6rem;
	color: var(--nlpg-text);
	margin: 48px 0 18px;
	letter-spacing: -0.015em;
}
.woocommerce .related,
.woocommerce .upsells{
	max-width: 1200px;
	margin: 48px auto !important;
	padding: 0 24px;
}

/* ─────────────────── Checkout summary block ─────────────────── */

/* Reservation summary — compact, in de rechter order-review kolom */
.nlpg-checkout-summary{
	margin: 0 0 18px;
	padding: 18px;
	background: #fff;
	border: 1px solid var(--nlpg-border);
	border-radius: 12px;
}
.nlpg-checkout-summary__label{
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px !important;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--nlpg-primary);
	font-family: var(--nlpg-body-font);
}
.nlpg-checkout-summary__label::before{ display: none; }
.nlpg-checkout-summary__list{ margin: 0 !important; padding: 0 !important; list-style: none; }
.nlpg-checkout-summary__item{
	display: flex !important;
	align-items: center;
	gap: 12px;
	padding: 4px 0 !important;
	margin: 0 !important;
}
.nlpg-checkout-summary__list .nlpg-checkout-summary__item + .nlpg-checkout-summary__item{
	margin-top: 12px !important;
	padding-top: 14px !important;
	border-top: 1px dashed var(--nlpg-border);
}
.nlpg-checkout-summary__photo{
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: 10px;
	overflow: hidden;
	background: var(--nlpg-soft);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.nlpg-checkout-summary__photo img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.nlpg-checkout-summary__body{
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.nlpg-checkout-summary__course{
	font-family: var(--nlpg-heading-font);
	font-size: 1rem;
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.01em;
	line-height: 1.2;
}
.nlpg-checkout-summary__when{
	font-size: .82rem;
	color: var(--nlpg-muted);
	font-weight: 600;
	text-transform: capitalize;
	line-height: 1.35;
}
.nlpg-checkout-summary__note{
	margin: 14px 0 0 !important;
	padding-top: 14px;
	border-top: 1px solid var(--nlpg-border);
	font-size: .8rem;
	color: var(--nlpg-muted);
	line-height: 1.5;
}

/* ─────────────────── Checkout — Premium 2-koloms layout ─────────────────── */

/* Container: laat WC checkout page volle breedte ademen */
.woocommerce-checkout .entry-content,
.woocommerce-checkout main,
.woocommerce-checkout #content,
.woocommerce-checkout .page-content{
	max-width: 1200px;
	margin: 0 auto;
	padding: 40px 24px 80px;
}

/* WC default "is toegevoegd aan winkelmand" notice + winkelmand-link weg op checkout */
.woocommerce-checkout .woocommerce-notices-wrapper .woocommerce-message{ display: none; }

/* Elementor sticky CTA ("Gratis Auto Proefles") op mobile niet meer tonen tijdens checkout */
body.woocommerce-checkout .elementor-element-5aeb67f,
body.woocommerce-checkout [data-id="5aeb67f"]{ display: none !important; }

/* Geen horizontale scroll op checkout — vangt eventuele wide elementen (notices, plug-in UI) op. */
body.woocommerce-checkout{ overflow-x: hidden; }
body.woocommerce-checkout .entry-content,
body.woocommerce-checkout #content,
body.woocommerce-checkout main{ max-width: 100%; overflow-x: clip; }

/* Eyebrow boven de form */
.nlpg-checkout-eyebrow{
	margin: 0 0 14px !important;
	font-family: var(--nlpg-body-font);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--nlpg-primary);
}

/* Grid: links form, rechts samenvatting+bestelling (1 sticky kolom) */
form.woocommerce-checkout.checkout{
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 0 48px;
	align-items: start;
}
form.woocommerce-checkout > *{ grid-column: 1; }
form.woocommerce-checkout > #order_review_heading{ display: none !important; }
form.woocommerce-checkout > #order_review{
	grid-column: 2;
	grid-row: 1 / span 99;
	position: sticky;
	top: 100px;
	align-self: start;
}

#customer_details{
	background: transparent;
	border: 0;
	padding: 0;
}
#customer_details .col2-set{
	display: flex;
	flex-direction: column;
	gap: 0;
}
#customer_details .col-1,
#customer_details .col-2{
	width: 100% !important;
	float: none !important;
}

.woocommerce-checkout h3{
	font-family: var(--nlpg-heading-font);
	font-weight: 800;
	font-size: 1.05rem;
	color: var(--nlpg-text);
	letter-spacing: -0.005em;
	margin: 0 0 18px !important;
}
#order_review_heading{
	font-family: var(--nlpg-body-font);
	font-size: .72rem !important;
	font-weight: 800 !important;
	letter-spacing: .2em !important;
	text-transform: uppercase;
	color: var(--nlpg-muted) !important;
}

/* Billing form: pair fields side-by-side */
.woocommerce-billing-fields__field-wrapper{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px 16px;
}
/* Reset WC's eigen float/width zodat de grid de positie bepaalt. */
.woocommerce-billing-fields__field-wrapper .form-row{
	float: none !important;
	width: auto !important;
	max-width: none !important;
	clear: none !important;
}
.woocommerce-billing-fields__field-wrapper .form-row-wide,
.woocommerce-billing-fields__field-wrapper .form-row.notes{ grid-column: 1 / -1; }
.woocommerce-billing-fields__field-wrapper .form-row-first{ grid-column: 1; }
.woocommerce-billing-fields__field-wrapper .form-row-last{ grid-column: 2; }

/* Postcode + Huisnummer naast elkaar (50/50). Sterke selectoren met body class
   zodat WC's NL-locale die soms form-row-wide injecteert verslagen wordt; ook
   width/float reset om classic-theme defaults te overrulen.
   form-row-first/last classes blijven aanwezig — deze regels zijn de fail-safe. */
body.woocommerce-checkout #billing_postcode_field,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper #billing_postcode_field{
	grid-column: 1 / 2 !important;
	width: 100% !important;
	float: none !important;
	clear: none !important;
}
body.woocommerce-checkout #billing_house_number_field,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper #billing_house_number_field{
	grid-column: 2 / 3 !important;
	width: 100% !important;
	float: none !important;
	clear: none !important;
}

/* Hidden adres-velden — straat, plaats, toevoeging, bedrijf, land. Input blijft
   in de DOM (WC valideert/saved), maar de klant ziet 'm niet. JS of server-side
   PDOK lookup vullen straat + plaats automatisch. */
body.woocommerce-checkout .form-row.nlpg-cf-hidden,
body.woocommerce-checkout #billing_address_1_field.nlpg-cf-hidden,
body.woocommerce-checkout #billing_address_2_field.nlpg-cf-hidden,
body.woocommerce-checkout #billing_city_field.nlpg-cf-hidden,
body.woocommerce-checkout #billing_company_field.nlpg-cf-hidden,
body.woocommerce-checkout #billing_country_field.nlpg-cf-hidden{
	display: none !important;
}

/* Adres-review onder huisnummer — tile-stijl card met huisje-icoon, in lijn met
   .nlpg-ck-slot op de cursuskalender (auto 1fr layout, soft achtergrond, geen
   brand-accent strip). Element is een <p class="form-row"> zodat WC's country-
   select sort 'm op data-priority 47 behoudt — overrule daarom de generieke
   .form-row margin/padding/display. */
.woocommerce-billing-fields__field-wrapper .form-row.nlpg-address-review,
.nlpg-address-review{
	grid-column: 1 / -1 !important;
	margin: 4px 0 0 !important;
	padding: 14px 16px !important;
	display: grid !important;
	grid-template-columns: auto 1fr auto;
	gap: 14px;
	align-items: center;
	background: var(--nlpg-soft);
	border: 1px solid var(--nlpg-border);
	border-radius: 12px;
	font-family: var(--nlpg-body-font);
	transition: background .15s ease, border-color .15s ease;
}
.nlpg-address-review__icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	flex-shrink: 0;
	background: #fff;
	border: 1px solid var(--nlpg-border);
	border-radius: 10px;
	color: var(--nlpg-deep);
	transition: color .15s ease, background .15s ease;
}
.nlpg-address-review__body{ display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.nlpg-address-review__label{
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--nlpg-muted);
}
.nlpg-address-review__value{
	font-family: var(--nlpg-heading-font);
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.01em;
	line-height: 1.3;
}
.nlpg-address-review--empty{ display: none !important; }
.nlpg-address-review--loading .nlpg-address-review__value{
	color: var(--nlpg-muted);
	font-weight: 600;
	font-family: var(--nlpg-body-font);
	font-size: .92rem;
	letter-spacing: 0;
}
.nlpg-address-review--error{
	background: color-mix(in srgb, var(--nlpg-primary) 6%, var(--nlpg-soft));
	border-color: color-mix(in srgb, var(--nlpg-primary) 24%, var(--nlpg-border));
}
.nlpg-address-review--error .nlpg-address-review__icon{
	background: #fff;
	color: var(--nlpg-primary);
	border-color: color-mix(in srgb, var(--nlpg-primary) 24%, var(--nlpg-border));
}
.nlpg-address-review--error .nlpg-address-review__label{ color: var(--nlpg-primary); }
.nlpg-address-review--error .nlpg-address-review__value{
	color: var(--nlpg-primary);
	font-family: var(--nlpg-body-font);
	font-size: .92rem;
	font-weight: 600;
	letter-spacing: 0;
}

/* "Wijzig" knop op de adres-review — alleen zichtbaar bij success (bij empty/
   loading/error is er niets te wijzigen, of zijn de velden al open). Subtiel
   maar duidelijk klikbaar. */
.nlpg-address-review__edit{
	display: none;
	align-items: center;
	gap: 6px;
	padding: 6px 12px !important;
	background: #fff !important;
	border: 1px solid var(--nlpg-border) !important;
	border-radius: 999px !important;
	color: var(--nlpg-text) !important;
	font-family: var(--nlpg-body-font) !important;
	font-size: .78rem !important;
	font-weight: 700 !important;
	letter-spacing: .02em !important;
	text-transform: none !important;
	text-shadow: none !important;
	box-shadow: none !important;
	cursor: pointer;
	white-space: nowrap;
	transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.nlpg-address-review__edit svg{ flex-shrink: 0; }
.nlpg-address-review--success .nlpg-address-review__edit{ display: inline-flex; }
.nlpg-address-review__edit:hover{
	background: var(--nlpg-soft) !important;
	border-color: var(--nlpg-deep) !important;
	color: var(--nlpg-deep) !important;
}
.nlpg-address-review__edit:focus-visible{
	outline: 2px solid var(--nlpg-primary);
	outline-offset: 2px;
}

/* Mobiel: knop op eigen rij onder het adres, niet overlappen. */
@media (max-width: 540px){
	.woocommerce-billing-fields__field-wrapper .form-row.nlpg-address-review,
	.nlpg-address-review{
		grid-template-columns: auto 1fr !important;
	}
	.nlpg-address-review--success .nlpg-address-review__edit{
		grid-column: 1 / -1;
		justify-self: stretch;
		justify-content: center;
		margin-top: 4px;
	}
}

/* Fallback: bij PDOK-fout OF na klik op Wijzig toont JS de straat- en plaats-
   velden alsnog zodat de klant ze handmatig kan vullen — anders zit-ie vast
   of kan-ie een verkeerd BAG-record niet corrigeren. */
body.woocommerce-checkout.nlpg-show-manual-address #billing_address_1_field.nlpg-cf-hidden,
body.woocommerce-checkout.nlpg-show-manual-address #billing_city_field.nlpg-cf-hidden{
	display: block !important;
}

/* Lege state-veld verbergen voor NL */
.woocommerce-billing-fields__field-wrapper #billing_state_field:has(select[aria-hidden="true"]),
.woocommerce-billing-fields__field-wrapper #billing_state_field:empty,
.woocommerce-billing-fields__field-wrapper .form-row.validate-state:not(.validate-required){ display: none !important; }

.woocommerce form .form-row{
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce form .form-row label{
	font-size: .78rem;
	font-weight: 700;
	color: var(--nlpg-text);
	margin: 0 0 6px;
	display: block;
	letter-spacing: -0.005em;
}
.woocommerce form .form-row .required{ color: var(--nlpg-primary); text-decoration: none; }
.woocommerce form .form-row .optional{ color: var(--nlpg-faint); font-weight: 500; font-size: .7rem; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select:not(.select2-hidden-accessible){
	width: 100% !important;
	padding: 13px 14px !important;
	border: 1px solid var(--nlpg-border) !important;
	border-radius: 10px !important;
	background: #fff;
	font-size: .95rem;
	font-family: var(--nlpg-body-font);
	color: var(--nlpg-text);
	box-shadow: none !important;
	line-height: 1.4;
	transition: border-color .15s ease, box-shadow .15s ease;
}
/* Select2 hidden native select: terug naar 1px accessibility-only — geen viewport overflow. */
.woocommerce form .form-row select.select2-hidden-accessible{
	width: 1px !important;
	max-width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
}
.woocommerce form .form-row input.input-text::placeholder,
.woocommerce form .form-row textarea::placeholder{ color: var(--nlpg-faint); }
.woocommerce form .form-row input.input-text:hover,
.woocommerce form .form-row textarea:hover,
.woocommerce form .form-row select:hover{ border-color: var(--nlpg-border-strong) !important; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{
	border-color: var(--nlpg-primary) !important;
	outline: none;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--nlpg-primary) 12%, transparent) !important;
}

/* WC validation states */
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select{
	border-color: var(--nlpg-error, #b32d2e) !important;
}
.woocommerce form .form-row.woocommerce-validated input.input-text{
	border-color: color-mix(in srgb, var(--nlpg-border-strong) 60%, var(--nlpg-success, #1f7a4d) 40%) !important;
}

/* ── Select2 (Land dropdown) huisstijl ── */
.woocommerce form .form-row .select2-container{ width: 100% !important; }
.woocommerce form .form-row .select2-container--default .select2-selection--single{
	height: auto !important;
	min-height: 50px;
	padding: 0 !important;
	background: #fff !important;
	border: 1px solid var(--nlpg-border) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	transition: border-color .15s ease, box-shadow .15s ease;
	display: flex;
	align-items: center;
}
.woocommerce form .form-row .select2-container--default .select2-selection--single:hover{
	border-color: var(--nlpg-border-strong) !important;
}
.woocommerce form .form-row .select2-container--default.select2-container--open .select2-selection--single,
.woocommerce form .form-row .select2-container--default.select2-container--focus .select2-selection--single{
	border-color: var(--nlpg-primary) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--nlpg-primary) 12%, transparent) !important;
}
.woocommerce form .form-row .select2-container--default .select2-selection--single .select2-selection__rendered{
	padding: 13px 40px 13px 14px !important;
	line-height: 1.4 !important;
	color: var(--nlpg-text) !important;
	font-family: var(--nlpg-body-font) !important;
	font-size: .95rem !important;
	font-weight: 500 !important;
}
.woocommerce form .form-row .select2-container--default .select2-selection--single .select2-selection__placeholder{
	color: var(--nlpg-faint) !important;
}
.woocommerce form .form-row .select2-container--default .select2-selection--single .select2-selection__arrow{
	height: 100% !important;
	width: 36px !important;
	top: 0 !important;
	right: 0 !important;
	background: transparent !important;
	border: 0 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
}
/* Vervang de default arrow met onze eigen chevron */
.woocommerce form .form-row .select2-container--default .select2-selection--single .select2-selection__arrow b{
	display: none !important;
}
.woocommerce form .form-row .select2-container--default .select2-selection--single .select2-selection__arrow::after{
	content: "";
	position: absolute;
	left: 50%; top: 50%;
	width: 8px; height: 8px;
	border-right: 2px solid var(--nlpg-muted);
	border-bottom: 2px solid var(--nlpg-muted);
	transform: translate(-50%, -70%) rotate(45deg);
	transition: transform .18s cubic-bezier(.32,.72,.32,1), border-color .15s ease;
}
.woocommerce form .form-row .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow::after{
	transform: translate(-50%, -30%) rotate(-135deg);
	border-color: var(--nlpg-primary);
}

/* Select2 dropdown popup */
.select2-container--default .select2-dropdown{
	background: #fff !important;
	border: 1px solid var(--nlpg-border) !important;
	border-radius: 12px !important;
	box-shadow: 0 18px 40px -20px rgba(15,23,42,.22), 0 4px 12px -4px rgba(15,23,42,.08) !important;
	overflow: hidden;
	margin-top: 6px;
}
.select2-container--default .select2-search--dropdown{
	padding: 8px;
	background: var(--nlpg-soft);
	border-bottom: 1px solid var(--nlpg-border);
}
.select2-container--default .select2-search--dropdown .select2-search__field{
	padding: 10px 12px !important;
	border: 1px solid var(--nlpg-border) !important;
	border-radius: 8px !important;
	background: #fff !important;
	font-family: var(--nlpg-body-font) !important;
	font-size: .9rem !important;
	color: var(--nlpg-text) !important;
	box-shadow: none !important;
	outline: none;
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus{
	border-color: var(--nlpg-primary) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--nlpg-primary) 12%, transparent) !important;
}
.select2-container--default .select2-results > .select2-results__options{
	padding: 6px !important;
	max-height: 280px;
}
.select2-container--default .select2-results__option{
	padding: 9px 12px !important;
	border-radius: 8px !important;
	font-family: var(--nlpg-body-font) !important;
	font-size: .92rem !important;
	color: var(--nlpg-text) !important;
	font-weight: 500;
	margin: 0 !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted{
	background: var(--nlpg-soft) !important;
	color: var(--nlpg-text) !important;
}
.select2-container--default .select2-results__option[aria-selected="true"]{
	background: color-mix(in srgb, var(--nlpg-primary) 8%, transparent) !important;
	color: var(--nlpg-primary) !important;
	font-weight: 600;
}
.select2-container--default .select2-results__option--disabled{
	color: var(--nlpg-faint) !important;
}

/* ── Order summary card (rechts, sticky) — bevat reservation summary + order tabel + knop ── */
#order_review{
	background: #fff;
	border: 1px solid var(--nlpg-border);
	border-radius: 16px;
	padding: 22px 24px 20px;
}
.woocommerce-checkout-review-order-table{
	border: 0 !important;
	background: transparent !important;
	width: 100% !important;
	margin: 0 !important;
}
.woocommerce-checkout-review-order-table thead{ display: none !important; }
.woocommerce-checkout-review-order-table tbody{ background: transparent; }
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td{
	border: 0 !important;
	padding: 8px 0 !important;
	background: transparent !important;
}
.woocommerce-checkout-review-order-table tbody tr:not(:last-child){
	border-bottom: 1px dashed var(--nlpg-border-strong);
}
.woocommerce-checkout-review-order-table tbody td,
.woocommerce-checkout-review-order-table tbody th{ padding: 14px 0 !important; }
.woocommerce-checkout-review-order-table .product-name{
	font-family: var(--nlpg-heading-font);
	font-size: 1rem;
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.005em;
	line-height: 1.35;
}
.woocommerce-checkout-review-order-table .product-name .product-quantity{
	color: var(--nlpg-faint);
	font-weight: 500;
	font-family: var(--nlpg-body-font);
	margin-left: 6px;
	font-size: .85rem;
}
/* Meta-rows (proefles datum/tijd) verbergen in de WC tabel — staat al in de JOUW RESERVERING card */
.woocommerce-checkout-review-order-table .product-name dl.variation,
.woocommerce-checkout-review-order-table .product-name dl{ display: none !important; }
.woocommerce-checkout-review-order-table .product-total,
.woocommerce-checkout-review-order-table .product-subtotal{
	text-align: right;
	font-family: var(--nlpg-heading-font);
	font-weight: 700;
	color: var(--nlpg-text);
	font-size: .98rem;
	white-space: nowrap;
	vertical-align: top;
}

/* Verberg de "GRATIS" chip op product-row en subtotaal-row: alleen op de totaal-row houden we hem. */
.woocommerce-checkout-review-order-table tbody tr.cart_item .product-total,
.woocommerce-checkout-review-order-table tbody tr.cart_item .product-subtotal{ display: none !important; }
.woocommerce-checkout-review-order-table tbody tr.cart_item .product-name{ padding-right: 0 !important; }
.woocommerce-checkout-review-order-table tfoot tr.cart-subtotal{ display: none !important; }
.woocommerce-checkout-review-order-table tfoot{ background: transparent !important; }
.woocommerce-checkout-review-order-table tfoot tr{ border-top: 1px solid var(--nlpg-border-strong); }
.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td{
	padding: 10px 0 !important;
	font-size: .9rem;
	font-family: var(--nlpg-body-font);
	color: var(--nlpg-muted);
}
.woocommerce-checkout-review-order-table tfoot th{ font-weight: 700; text-align: left; }
.woocommerce-checkout-review-order-table tfoot td{ text-align: right; }
.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td,
.woocommerce-checkout-review-order-table .order-total .amount{
	font-family: var(--nlpg-heading-font);
	font-weight: 800;
	font-size: 1.05rem;
	color: var(--nlpg-text);
}
.woocommerce-checkout-review-order-table .order-total td{ font-size: 1.1rem; }
.woocommerce-checkout-review-order-table .nlpg-price-free{ font-size: .85rem; padding: 4px 10px; }

/* Payment section */
#payment.woocommerce-checkout-payment{
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	margin-top: 16px;
}
#payment ul.payment_methods{
	background: transparent !important;
	padding: 0 !important;
	margin: 0 0 12px !important;
	border: 0 !important;
	list-style: none;
}
#payment ul.payment_methods li{
	padding: 0 !important;
	background: transparent !important;
	margin-bottom: 6px;
}
#payment ul.payment_methods li input[type="radio"]{ display: none; }
#payment ul.payment_methods li label{
	display: flex;
	align-items: center;
	padding: 12px 14px;
	background: #fff;
	border: 1px solid var(--nlpg-border);
	border-radius: 10px;
	font-weight: 600;
	color: var(--nlpg-text);
	cursor: pointer;
	transition: border-color .12s ease, background .12s ease;
}
#payment ul.payment_methods li input[type="radio"]:checked + label{
	border-color: var(--nlpg-primary);
	background: color-mix(in srgb, var(--nlpg-primary) 6%, #fff);
}
#payment div.payment_box{
	background: transparent !important;
	color: var(--nlpg-muted);
	font-size: .85rem;
	padding: 10px 14px !important;
	margin: 6px 0 0 !important;
	border: 0 !important;
}
#payment div.payment_box::before{ display: none !important; }
.woocommerce-terms-and-conditions-wrapper{ margin: 12px 0; }
.woocommerce-terms-and-conditions-wrapper label{ font-size: .85rem; color: var(--nlpg-muted); }

/* Plaats bestelling knop */
.nlpg-checkout-consent{
	margin: 14px 0 12px !important;
	font-size: .82rem;
	color: var(--nlpg-muted);
	line-height: 1.5;
}
.nlpg-checkout-consent strong{ color: var(--nlpg-text); }
#payment #place_order,
.woocommerce-page #payment #place_order,
.woocommerce-checkout #place_order{
	display: block;
	width: 100%;
	background-color: var(--nlpg-primary) !important;
	color: #fff !important;
	border: 0 !important;
	padding: 16px 28px !important;
	border-radius: 12px !important;
	font-family: var(--nlpg-body-font) !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	letter-spacing: .03em !important;
	text-transform: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	cursor: pointer;
	transition: filter .15s ease, transform .12s ease !important;
}
#payment #place_order:hover,
.woocommerce-checkout #place_order:hover{ filter: brightness(1.08); }
#payment #place_order:active,
.woocommerce-checkout #place_order:active{ transform: translateY(1px); }
.woocommerce-privacy-policy-text{
	margin-top: 12px !important;
	font-size: .78rem;
	color: var(--nlpg-faint);
	line-height: 1.5;
}
.woocommerce-privacy-policy-text a{ color: var(--nlpg-muted); text-decoration: underline; }


/* Notices polish */
.woocommerce-info,
.woocommerce-message,
.woocommerce-error{
	background: #fff;
	color: var(--nlpg-text);
	border: 1px solid var(--nlpg-border);
	border-left: 4px solid var(--nlpg-primary);
	border-radius: 12px;
	padding: 14px 18px;
	font-size: .9rem;
	margin: 0 0 20px;
	list-style: none;
}
.woocommerce-error{ border-left-color: var(--nlpg-error, #b32d2e); }
.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error::before{ color: var(--nlpg-primary); top: 14px; }

/* Trust strip onder de form */
.nlpg-checkout-trust{
	grid-column: 1 / -1;
	margin: 36px 0 0;
	padding: 24px 28px;
	background: #fff;
	border: 1px solid var(--nlpg-border);
	border-radius: 16px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.nlpg-checkout-trust__item{ display: flex; align-items: flex-start; gap: 14px; }
.nlpg-checkout-trust__icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: 10px;
	background: color-mix(in srgb, var(--nlpg-primary) 10%, transparent);
	color: var(--nlpg-primary);
}
.nlpg-checkout-trust__icon svg{ display: block; }
.nlpg-checkout-trust__body{ display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nlpg-checkout-trust__body strong{
	font-family: var(--nlpg-heading-font);
	font-size: .95rem;
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.005em;
}
.nlpg-checkout-trust__body span{
	font-size: .82rem;
	color: var(--nlpg-muted);
	line-height: 1.45;
}

/* ── Mobiel checkout ── */
@media (max-width: 900px){
	form.woocommerce-checkout.checkout{
		display: block;
	}
	form.woocommerce-checkout > #order_review_heading{
		margin-top: 28px !important;
	}
	form.woocommerce-checkout > #order_review{ position: static; }
	.nlpg-checkout-trust{ grid-template-columns: 1fr; gap: 18px; padding: 22px; }
}
@media (max-width: 640px){
	.woocommerce-checkout .entry-content,
	.woocommerce-checkout #content{ padding: 24px 16px 60px; }
	#customer_details{ padding: 0; }
	.woocommerce-billing-fields__field-wrapper{ grid-template-columns: 1fr !important; gap: 12px !important; }
	.woocommerce-billing-fields__field-wrapper .form-row,
	.woocommerce-billing-fields__field-wrapper .form-row-first,
	.woocommerce-billing-fields__field-wrapper .form-row-last,
	.woocommerce-billing-fields__field-wrapper #billing_postcode_field,
	.woocommerce-billing-fields__field-wrapper #billing_city_field{ grid-column: 1 / -1 !important; }
	#order_review{ padding: 18px 16px 18px; border-radius: 14px; }
	.nlpg-checkout-summary{ padding: 14px 16px; }
	.nlpg-checkout-summary__photo{ width: 48px; height: 48px; }
	.nlpg-checkout-trust{ padding: 18px 16px; }
}

/* ─────────────────── Bedankt pagina ───────────────────
   Editorial confirmatie in Bastiaens-stijl: rood/goud palet, Gilroy/Lato, dunne
   1px borders i.p.v. dikke cards, datum-tile zoals .nlpg-ck-daytile, voelt als
   een natuurlijke pagina van de site i.p.v. een geïsoleerd "after-checkout"
   scherm. Bevat een editorial 7/5 hero met foto. */
.nlpg-thankyou{
	max-width: 1100px;
	margin: 40px auto 64px;
	padding: 0 16px;
	font-family: var(--nlpg-body-font);
	color: var(--nlpg-text);
}
.nlpg-thankyou *,
.nlpg-thankyou *::before,
.nlpg-thankyou *::after{ box-sizing: border-box; }

/* Hero — 2-koloms editorial: tekst links, foto rechts. */
.nlpg-thankyou__hero{
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 48px;
	align-items: start;
	padding: 0 0 40px;
	border-bottom: 1px solid var(--nlpg-border);
	margin-bottom: 44px;
}
.nlpg-thankyou__hero-text{ min-width: 0; }

.nlpg-thankyou__eyebrow{
	margin: 0 0 14px !important;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--nlpg-body-font);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--nlpg-deep);
}
.nlpg-thankyou__eyebrow-mark{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	background: var(--nlpg-deep);
	color: #fff;
	border-radius: 50%;
}

.nlpg-thankyou__title{
	margin: 0 0 18px !important;
	font-family: var(--nlpg-heading-font);
	font-size: clamp(2rem, 3.8vw, 2.85rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	color: var(--nlpg-text);
	line-height: 1.05;
}
.nlpg-thankyou__lede{
	margin: 0 0 32px !important;
	font-size: 1.02rem;
	line-height: 1.6;
	color: var(--nlpg-text);
	max-width: 56ch;
}

/* Facts (datum + locatie) — editorial typografische rijen i.p.v. cards */
.nlpg-thankyou__facts{
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}
.nlpg-thankyou__fact{
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 20px;
	align-items: center;
	padding: 22px 0;
	border-top: 1px solid var(--nlpg-border);
}
.nlpg-thankyou__fact:last-child{ border-bottom: 1px solid var(--nlpg-border); }
.nlpg-thankyou__fact-body{ display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nlpg-thankyou__fact-body dt{
	font-family: var(--nlpg-body-font);
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--nlpg-muted);
	margin: 0;
}
.nlpg-thankyou__fact-body dd{ margin: 0; display: flex; flex-direction: column; gap: 2px; }
.nlpg-thankyou__fact-body dd strong{
	font-family: var(--nlpg-heading-font);
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.015em;
	line-height: 1.1;
	text-transform: capitalize;
}
.nlpg-thankyou__fact-body dd span{
	font-size: .92rem;
	color: var(--nlpg-muted);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
.nlpg-thankyou__fact-pill{
	display: inline-flex;
	align-items: center;
	padding: 6px 14px;
	background: var(--nlpg-accent);
	color: #1f1f1f;
	border-radius: 999px;
	font-family: var(--nlpg-body-font);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

/* Datum-tile — visueel identiek aan .nlpg-ck-daytile op cursuskalender (rode bg,
   witte cijfers, Gilroy, tabular-nums) — herkenbaarheid van site-vibe. */
.nlpg-thankyou__daytile{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 72px;
	min-width: 72px;
	padding: 10px 4px;
	background: var(--nlpg-deep);
	color: #fff;
	border-radius: 12px;
	line-height: 1;
}
.nlpg-thankyou__daytile-day{
	font-family: var(--nlpg-heading-font);
	font-size: 2.1rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}
.nlpg-thankyou__daytile-month{
	margin-top: 5px;
	font-family: var(--nlpg-body-font);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	opacity: .95;
}

.nlpg-thankyou__locicon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	min-width: 72px;
	height: 72px;
	background: var(--nlpg-soft);
	color: var(--nlpg-deep);
	border-radius: 12px;
}

.nlpg-thankyou__route{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	background-color: var(--nlpg-deep);
	color: #fff !important;
	text-decoration: none !important;
	border-radius: 8px;
	font-family: var(--nlpg-body-font);
	font-weight: 700;
	font-size: .9rem;
	letter-spacing: .02em;
	text-transform: uppercase;
	transition: filter .15s ease, transform .15s ease;
	white-space: nowrap;
	box-shadow: none;
}
.nlpg-thankyou__route:hover{ filter: brightness(1.12); }
.nlpg-thankyou__route svg{ width: 14px; height: 14px; transition: transform .15s ease; }
.nlpg-thankyou__route:hover svg{ transform: translateX(2px); }

/* Hero-foto (rechterkolom) */
.nlpg-thankyou__hero-figure{
	margin: 0;
	position: relative;
	border-radius: 18px;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	background: var(--nlpg-soft);
}
.nlpg-thankyou__hero-figure img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.nlpg-thankyou__hero-caption{
	position: absolute;
	left: 16px; right: 16px; bottom: 16px;
	padding: 14px 16px;
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.nlpg-thankyou__hero-caption-label{
	font-family: var(--nlpg-body-font);
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--nlpg-muted);
}
.nlpg-thankyou__hero-caption-name{
	font-family: var(--nlpg-heading-font);
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.01em;
}
.nlpg-thankyou__hero-caption-line{
	font-size: .82rem;
	color: var(--nlpg-muted);
	font-weight: 500;
	line-height: 1.4;
}

/* Extra items (meervoudige boeking) */
.nlpg-thankyou__extra{
	margin: 0 0 44px;
	padding: 22px 24px;
	background: var(--nlpg-soft);
	border-radius: 12px;
}
.nlpg-thankyou__extra-list{
	list-style: none;
	margin: 8px 0 0 !important;
	padding: 0 !important;
}
.nlpg-thankyou__extra-list li{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px;
	padding: 8px 0;
	border-bottom: 1px solid var(--nlpg-border);
	font-size: .92rem;
}
.nlpg-thankyou__extra-list li:last-child{ border-bottom: 0; }
.nlpg-thankyou__extra-list li strong{ font-family: var(--nlpg-heading-font); font-weight: 700; }
.nlpg-thankyou__extra-list li span{ color: var(--nlpg-muted); font-weight: 600; }

/* Twee-koloms onder de hero: voorbereiden + timeline */
.nlpg-thankyou__columns{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	margin-bottom: 48px;
}
.nlpg-thankyou__column{ min-width: 0; }

.nlpg-thankyou__section-eyebrow{
	margin: 0 0 10px !important;
	font-family: var(--nlpg-body-font);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--nlpg-deep);
}
.nlpg-thankyou__section-title{
	margin: 0 0 22px !important;
	font-family: var(--nlpg-heading-font);
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: -0.015em;
	color: var(--nlpg-text);
	line-height: 1.15;
}

.nlpg-thankyou__checklist{
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.nlpg-thankyou__checklist li{
	display: grid;
	grid-template-columns: 24px 1fr;
	gap: 14px;
	align-items: flex-start;
	padding: 0;
	margin: 0;
	font-size: .98rem;
	line-height: 1.55;
	color: var(--nlpg-text);
}
.nlpg-thankyou__checklist li::before,
.nlpg-thankyou__checklist li::marker{ display: none !important; content: none !important; }
.nlpg-thankyou__check{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	margin-top: 2px;
	background: var(--nlpg-deep);
	color: #fff;
	border-radius: 50%;
	flex-shrink: 0;
}

/* Timeline — editorial: tabular nummering 01/02/03 met dunne dividers */
.nlpg-thankyou__timeline{
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
}
.nlpg-thankyou__timeline li{
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 18px;
	align-items: flex-start;
	padding: 16px 0;
	margin: 0;
	border-top: 1px solid var(--nlpg-border);
	background: transparent;
}
.nlpg-thankyou__timeline li:first-child{ padding-top: 4px; border-top: 0; }
.nlpg-thankyou__timeline li:last-child{ padding-bottom: 4px; }
.nlpg-thankyou__timeline li::before,
.nlpg-thankyou__timeline li::marker{ display: none !important; content: none !important; }
.nlpg-thankyou__timeline-num{
	font-family: var(--nlpg-heading-font);
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--nlpg-deep);
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.nlpg-thankyou__timeline-body{
	display: flex;
	flex-direction: column;
	gap: 3px;
	line-height: 1.5;
}
.nlpg-thankyou__timeline-body strong{
	font-family: var(--nlpg-heading-font);
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.005em;
}
.nlpg-thankyou__timeline-body span{
	font-size: .92rem;
	color: var(--nlpg-muted);
	font-weight: 500;
}

/* Footer-contact: editorial strip met telefoonnummer prominent */
.nlpg-thankyou__footer{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 28px 0 0;
	border-top: 1px solid var(--nlpg-border);
}
.nlpg-thankyou__footer-text{ flex: 1 1 320px; min-width: 0; }
.nlpg-thankyou__footer-text .nlpg-thankyou__section-eyebrow{ margin-bottom: 8px !important; }
.nlpg-thankyou__footer-line{
	margin: 0 !important;
	font-size: .98rem;
	color: var(--nlpg-text);
	line-height: 1.5;
	max-width: 56ch;
}
.nlpg-thankyou__footer-phone{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 22px;
	background: #fff;
	color: var(--nlpg-deep) !important;
	border: 2px solid var(--nlpg-deep);
	border-radius: 999px;
	font-family: var(--nlpg-heading-font);
	font-size: 1.15rem;
	font-weight: 800;
	letter-spacing: -.005em;
	text-decoration: none !important;
	font-variant-numeric: tabular-nums;
	transition: background .15s ease, color .15s ease;
}
.nlpg-thankyou__footer-phone:hover{
	background: var(--nlpg-deep);
	color: #fff !important;
}
.nlpg-thankyou__footer-phone svg{ flex-shrink: 0; }

/* Tablet */
@media (max-width: 900px){
	.nlpg-thankyou{ margin: 28px auto 48px; }
	.nlpg-thankyou__hero{
		grid-template-columns: 1fr;
		gap: 32px;
		padding-bottom: 32px;
		margin-bottom: 36px;
	}
	.nlpg-thankyou__hero-figure{ aspect-ratio: 16 / 10; max-height: 360px; }
	.nlpg-thankyou__columns{ gap: 40px; margin-bottom: 36px; }
}

/* Mobiel */
@media (max-width: 640px){
	.nlpg-thankyou{ padding: 0 12px; margin: 20px auto 40px; }
	.nlpg-thankyou__title{ font-size: 1.7rem; }
	.nlpg-thankyou__lede{ font-size: .95rem; margin-bottom: 24px !important; }
	.nlpg-thankyou__fact{
		grid-template-columns: auto 1fr;
		gap: 14px;
		padding: 18px 0;
	}
	.nlpg-thankyou__fact-pill{
		grid-column: 1 / -1;
		justify-self: start;
	}
	.nlpg-thankyou__route{
		grid-column: 1 / -1;
		justify-self: start;
		padding: 10px 18px;
		font-size: .85rem;
	}
	.nlpg-thankyou__daytile,
	.nlpg-thankyou__locicon{ width: 58px; min-width: 58px; }
	.nlpg-thankyou__daytile-day{ font-size: 1.7rem; }
	.nlpg-thankyou__locicon{ height: 58px; }
	.nlpg-thankyou__fact-body dd strong{ font-size: 1.15rem; }
	.nlpg-thankyou__columns{ grid-template-columns: 1fr; gap: 36px; }
	.nlpg-thankyou__section-title{ font-size: 1.3rem; margin-bottom: 18px !important; }
	.nlpg-thankyou__hero-caption{ left: 12px; right: 12px; bottom: 12px; padding: 12px 14px; }
	.nlpg-thankyou__footer{ padding-top: 22px; gap: 18px; }
	.nlpg-thankyou__footer-phone{ width: 100%; justify-content: center; font-size: 1.05rem; }
}

/* Eigen bestelgegevens-blok (vervangt de standaard WC tabel + factuuradres) —
   subtiele typografische grid in huisstijl. Eyebrow + dt/dd cellen met dunne
   lijntjes ertussen, dezelfde editorial taal als de rest van de bedankt-pagina. */
.nlpg-thankyou__details{
	margin-top: 56px;
	padding-top: 32px;
	border-top: 1px solid var(--nlpg-border);
}
.nlpg-thankyou__details .nlpg-thankyou__section-eyebrow{ margin-bottom: 20px !important; }
.nlpg-thankyou__details-grid{
	margin: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	border-top: 1px solid var(--nlpg-border);
}
.nlpg-thankyou__details-cell{
	padding: 16px 20px 16px 0;
	border-bottom: 1px solid var(--nlpg-border);
	min-width: 0;
}
.nlpg-thankyou__details-cell dt{
	margin: 0 0 6px;
	font-family: var(--nlpg-body-font);
	font-size: .64rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--nlpg-muted);
}
.nlpg-thankyou__details-cell dd{
	margin: 0;
	font-family: var(--nlpg-heading-font);
	font-size: 1rem;
	font-weight: 700;
	color: var(--nlpg-text);
	letter-spacing: -0.005em;
	line-height: 1.4;
	word-break: break-word;
}

@media (max-width: 900px){
	.nlpg-thankyou__details-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px){
	.nlpg-thankyou__details{ margin-top: 40px; padding-top: 24px; }
	.nlpg-thankyou__details-grid{ grid-template-columns: 1fr; }
	.nlpg-thankyou__details-cell{ padding: 14px 0; }
}

/* WC standaard bedankt-rommel verbergen. Let op: onze .nlpg-thankyou ZIT BINNEN
   <section class="woocommerce-order-details"> (de hook woocommerce_order_details_
   before_order_table runt daar), dus we mogen die section niet zelf verbergen —
   alleen de WC-eigen children (titel + tabel) plus de paragraaf en overview-ul
   die ervóór staan, en de aparte customer-details sectie erna. */
body.woocommerce-order-received p.woocommerce-thankyou-order-received,
body.woocommerce-order-received ul.woocommerce-thankyou-order-details,
body.woocommerce-order-received ul.order_details,
body.woocommerce-order-received .woocommerce-order-details > .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-order-details > table.shop_table,
body.woocommerce-order-received section.woocommerce-customer-details{
	display: none !important;
}
/* De wrapper-section zelf moet wel zichtbaar blijven (onze content zit erbinnen),
   maar mag geen eigen card-styling meer hebben. */
body.woocommerce-order-received section.woocommerce-order-details{
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	border: 0 !important;
}

/* ─────────────────── Mobiel ─────────────────── */
@media (max-width: 900px){
	.woocommerce div.product,
	.woocommerce-page div.product{
		grid-template-columns: 1fr;
		gap: 36px;
		margin: 28px auto 56px !important;
		padding: 0 18px;
	}
	.woocommerce div.product .images,
	.woocommerce-page div.product .images{
		position: static;
		max-width: 520px;
		margin: 0 auto !important;
	}
	.woocommerce div.product .woocommerce-tabs,
	.woocommerce .related,
	.woocommerce .upsells{ margin-top: 40px !important; padding: 0 18px; }
}
@media (max-width: 640px){
	.nlpg-checkout-summary{ padding: 18px 18px; }
	.woocommerce div.product .product_title{ font-size: 1.85rem !important; }
	.woocommerce div.product p.price{ font-size: 1.1rem !important; }
	.nlpg-usps{ gap: 6px 20px; padding: 16px 0 !important; margin: 0 0 22px !important; }
	.nlpg-usps li{ font-size: .85rem; }
	.nlpg-intro{ font-size: .96rem; margin: 0 0 26px; }
	.woocommerce div.product .nlpg-steps,
	ol.nlpg-steps{ grid-template-columns: 1fr !important; gap: 12px !important; padding-top: 18px !important; margin-top: 22px !important; }
	.nlpg-instructor{ padding: 14px; }
	.nlpg-instructor__avatar{ width: 48px; height: 48px; }
	.woocommerce-product-gallery ol.flex-control-nav.flex-control-thumbs{ grid-template-columns: repeat(4, 1fr); gap: 8px; }
	/* extra padding bottom op single-product zodat sticky CTA niet over content valt */
	body.single-product{ padding-bottom: 78px; }
}

/* ─────────────────── Geen UPPERCASE op checkout + bedankt-pagina ───────────────────
   User-keuze: zachtere typografie op deze pagina's. Override alle plugin-eigen
   eyebrows/labels/buttons naar sentence-case + neutrale letter-spacing. */
body.woocommerce-checkout .nlpg-checkout-eyebrow,
body.woocommerce-checkout .nlpg-section-eyebrow,
body.woocommerce-checkout .nlpg-address-review__label,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout .nlpg-checkout-summary__label,
body.woocommerce-checkout .nlpg-checkout-trust__body strong,
body.woocommerce-order-received .nlpg-thankyou__eyebrow,
body.woocommerce-order-received .nlpg-thankyou__section-eyebrow,
body.woocommerce-order-received .nlpg-thankyou__fact-body dt,
body.woocommerce-order-received .nlpg-thankyou__fact-pill,
body.woocommerce-order-received .nlpg-thankyou__daytile-month,
body.woocommerce-order-received .nlpg-thankyou__hero-caption-label,
body.woocommerce-order-received .nlpg-thankyou__details-cell dt,
body.woocommerce-order-received .nlpg-thankyou__route{
	text-transform: none !important;
	letter-spacing: .02em !important;
}

/* Labels op de checkout-form (Voornaam, Achternaam, etc) — Lato is ook
   geen uppercase font, maar lead-form.css zet eyebrow-classes wel uppercase. */
body.woocommerce-checkout .nlpg-leadform__label-text{
	text-transform: none !important;
	letter-spacing: .02em !important;
}

/* ─────────────────── Lege winkelmand pagina ───────────────────
   Vervangt WC's standaard "Je winkelwagen is leeg" notice + Terug-knop met een
   editorial Bastiaens-blok dat de bezoeker actief richting een proefles boeken. */

/* Hide WC defaults op cart-empty state */
body.woocommerce-cart .wc-empty-cart-message,
body.woocommerce-cart .cart-empty.woocommerce-info,
body.woocommerce-cart p.return-to-shop,
body.woocommerce-cart .woocommerce-notices-wrapper:empty{
	display: none !important;
}

.nlpg-cart-empty{
	max-width: 720px;
	margin: 56px auto 80px;
	padding: 56px 32px 52px;
	text-align: center;
	background: var(--nlpg-soft);
	border: 1px solid var(--nlpg-border);
	border-radius: 18px;
	font-family: var(--nlpg-body-font);
	color: var(--nlpg-text);
}
.nlpg-cart-empty *,
.nlpg-cart-empty *::before,
.nlpg-cart-empty *::after{ box-sizing: border-box; }

.nlpg-cart-empty__icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	margin-bottom: 24px;
	background: #fff;
	color: var(--nlpg-deep);
	border: 1px solid var(--nlpg-border);
	border-radius: 50%;
}
.nlpg-cart-empty__eyebrow{
	margin: 0 0 8px !important;
	font-family: var(--nlpg-body-font);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .02em;
	color: var(--nlpg-deep);
	text-transform: none;
}
.nlpg-cart-empty__title{
	margin: 0 0 14px !important;
	font-family: var(--nlpg-heading-font);
	font-size: clamp(1.7rem, 3.4vw, 2.4rem);
	font-weight: 800;
	letter-spacing: -0.025em;
	color: var(--nlpg-text);
	line-height: 1.1;
}
.nlpg-cart-empty__lede{
	margin: 0 auto 32px !important;
	max-width: 52ch;
	font-size: 1.02rem;
	color: var(--nlpg-muted);
	line-height: 1.6;
}

.nlpg-cart-empty__actions{
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 22px;
}
.nlpg-cart-empty .nlpg-cart-empty__primary,
.nlpg-cart-empty .nlpg-cart-empty__primary:hover{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 26px;
	background-color: var(--nlpg-deep);
	color: #fff !important;
	text-decoration: none !important;
	border: 0;
	border-radius: 10px;
	font-family: var(--nlpg-body-font);
	font-weight: 700;
	font-size: .95rem;
	letter-spacing: .015em;
	box-shadow: none;
	transition: filter .15s ease, transform .15s ease;
}
.nlpg-cart-empty .nlpg-cart-empty__primary:hover{ filter: brightness(1.12); }
.nlpg-cart-empty .nlpg-cart-empty__primary svg{ transition: transform .15s ease; }
.nlpg-cart-empty .nlpg-cart-empty__primary:hover svg{ transform: translateX(2px); }

.nlpg-cart-empty .nlpg-cart-empty__secondary,
.nlpg-cart-empty .nlpg-cart-empty__secondary:hover{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--nlpg-deep) !important;
	background: transparent;
	border: 0;
	padding: 6px 0;
	font-family: var(--nlpg-body-font);
	font-weight: 700;
	font-size: .92rem;
	letter-spacing: .01em;
	text-decoration: none !important;
}
.nlpg-cart-empty .nlpg-cart-empty__secondary:hover{ text-decoration: underline !important; }

@media (max-width: 640px){
	.nlpg-cart-empty{ margin: 32px 12px 56px; padding: 44px 22px 40px; }
	.nlpg-cart-empty__icon{ width: 64px; height: 64px; margin-bottom: 20px; }
	.nlpg-cart-empty__actions{ flex-direction: column; gap: 14px; width: 100%; }
	.nlpg-cart-empty .nlpg-cart-empty__primary{ width: 100%; justify-content: center; }
}

/* ─────────────────── Verwijder-link in checkout order-review ───────────────────
   Tekstuele "Verwijderen" link met prullenbak-icoon ervoor. Icoon via CSS
   mask-image i.p.v. inline SVG, omdat WC's wp_kses op cart_item_name inline
   SVG-paths uitsloopt. Past in deep-red Bastiaens stijl. */
body.woocommerce-checkout a.nlpg-review-remove{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-left: 10px;
	padding: 3px 10px 3px 8px;
	background: transparent;
	color: var(--nlpg-deep) !important;
	border: 1px solid color-mix(in srgb, var(--nlpg-deep) 28%, var(--nlpg-border));
	border-radius: 999px;
	font-family: var(--nlpg-body-font);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: none;
	line-height: 1.4;
	text-decoration: none !important;
	box-shadow: none !important;
	vertical-align: baseline;
	transition: background .12s ease, color .12s ease, border-color .12s ease;
}
body.woocommerce-checkout a.nlpg-review-remove:hover,
body.woocommerce-checkout a.nlpg-review-remove:focus-visible{
	background: var(--nlpg-deep);
	color: #fff !important;
	border-color: var(--nlpg-deep);
	outline: none;
}
body.woocommerce-checkout .nlpg-review-remove__icon{
	display: inline-block;
	width: 12px;
	height: 13px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6h18M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M10 11v6M14 11v6'/></svg>") no-repeat center / contain;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6h18M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M10 11v6M14 11v6'/></svg>") no-repeat center / contain;
	flex-shrink: 0;
}
body.woocommerce-checkout .nlpg-review-remove__label{ display: inline-block; }
body.woocommerce-checkout .nlpg-checkout-summary a.nlpg-review-remove,
body.woocommerce-checkout .nlpg-checkout-summary__course a.nlpg-review-remove{ display: none; }
