/* ==========================================================================
   Premium Partytent 2026 — Design system
   Zwart/goud (tinten uit logo), Montserrat variable, mobile-first.
   ========================================================================== */

/* ---- Font (zelf-gehost, variable 100-900, latin) ---- */
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/montserrat-var.woff2') format('woff2');
}

/* ---- Design tokens ---- */
:root {
	/* Kleuren — goud gesampled uit logo (kern #C09850, gem. #B88F52, crème #F8E8B0) */
	--pp-black: #1B1B1B;
	--pp-black-2: #242424;
	--pp-black-3: #2E2E2E;
	/* Kaartoppervlak — iets lichter dan de body, licht doorschijnend zodat de
	   grain van de body er subtiel doorheen zichtbaar blijft. Gedeeld door alle
	   cards (formaten, pakketten, accessoires) voor kleursamenhang. */
	--pp-surface: rgba(45, 45, 50, .82);
	--pp-surface-2: rgba(56, 56, 62, .82);
	--pp-gold: #C49A54;
	--pp-gold-2: #E5C983;
	--pp-gold-deep: #9C7838;
	--pp-cream: #F8E8B0;
	--pp-white: #F5F5F5;
	--pp-muted: #D3D3D3;
	--pp-line: rgba(196, 154, 84, .22);
	--pp-line-soft: rgba(245, 245, 245, .11);
	--pp-ok: #58B368;
	--pp-error: #E4572E;

	/* Typografie — responsive schaal met clamp() */
	--fs-12: .75rem;
	--fs-14: .875rem;
	--fs-16: 1rem;
	--fs-18: clamp(1.0625rem, 1rem + .3vw, 1.125rem);
	--fs-22: clamp(1.175rem, 1.05rem + .6vw, 1.375rem);
	--fs-28: clamp(1.45rem, 1.2rem + 1.2vw, 1.75rem);
	--fs-40: clamp(1.85rem, 1.4rem + 2.2vw, 2.5rem);
	--fs-56: clamp(2.25rem, 1.6rem + 3.4vw, 3.5rem);

	/* Ritme & vorm */
	--space-1: .25rem; --space-2: .5rem; --space-3: .75rem; --space-4: 1rem;
	--space-6: 1.5rem; --space-8: 2rem; --space-12: 3rem; --space-16: 4rem; --space-24: 6rem;
	--radius: 14px;
	--radius-sm: 8px;
	--radius-pill: 999px;
	--container: 1200px;
	--shadow-card: 0 10px 40px rgba(0, 0, 0, .45);
	--glow-gold: 0 0 22px rgba(196, 154, 84, .38), 0 4px 14px rgba(0, 0, 0, .5);
	--ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---- Basis ---- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background-color: #101010;
	/* Achtergrond (onderdeel van de body-achtergrond zelf, dus per definitie
	   ACHTER alle content — nooit een waas over tekst/foto's/video):
	   1-2. hoogglans-weerschijn bovenin (glanzend zwart PVC)
	   3-4. subtiele carbon-textuur (fijn diagonaal weefsel)
	   5. spotlight-gloed van bovenaf (podiumspot)
	   6-7. zachte gouden gloedvlekken onderin zodat het zwart leeft */
	background-image:
		linear-gradient(180deg, rgba(255, 255, 255, .07) 0%, rgba(255, 255, 255, .02) 14%, transparent 34%),
		radial-gradient(150% 55% at 50% -4%, rgba(255, 255, 255, .06), transparent 55%),
		repeating-linear-gradient(45deg, rgba(255, 255, 255, .02) 0, rgba(255, 255, 255, .02) 1px, transparent 1px, transparent 3px),
		repeating-linear-gradient(-45deg, rgba(0, 0, 0, .22) 0, rgba(0, 0, 0, .22) 1px, transparent 1px, transparent 3px),
		radial-gradient(1150px 780px at 50% -14%, rgba(196, 154, 84, .17), transparent 60%),
		radial-gradient(720px 600px at 86% 102%, rgba(196, 154, 84, .06), transparent 70%),
		radial-gradient(720px 600px at 8% 92%, rgba(196, 154, 84, .05), transparent 70%);
	background-size: auto;
	background-repeat: no-repeat, no-repeat, repeat, repeat, no-repeat, no-repeat, no-repeat;
	background-attachment: fixed;
	color: var(--pp-white);
	font-family: 'Montserrat', system-ui, -apple-system, sans-serif;
	font-size: var(--fs-16);
	font-weight: 400;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
img, video { max-width: 100%; height: auto; display: block; }

/* Mobiel: (1) background-attachment:fixed rendert fout op iOS (schaalt naar de
   héle paginahoogte). (2) De fijne carbon-diagonalen (1px per 3px) aliasen op
   high-DPI schermen tot zichtbare diagonale strepen. Daarom op touch-schermen
   meescrollen én de twee carbon-lagen weglaten; alleen de zachte gloed-,
   spotlight- en hoogglans-lagen blijven → strak, premium zwart. */
@media (max-width: 768px) {
	body {
		background-attachment: scroll;
		background-image:
			linear-gradient(180deg, rgba(255, 255, 255, .07) 0%, rgba(255, 255, 255, .02) 14%, transparent 34%),
			radial-gradient(150% 55% at 50% -4%, rgba(255, 255, 255, .06), transparent 55%),
			radial-gradient(1150px 780px at 50% -14%, rgba(196, 154, 84, .17), transparent 60%),
			radial-gradient(720px 600px at 86% 102%, rgba(196, 154, 84, .06), transparent 70%),
			radial-gradient(720px 600px at 8% 92%, rgba(196, 154, 84, .05), transparent 70%);
		background-repeat: no-repeat;
	}
}
a { color: var(--pp-gold-2); text-decoration: none; }
a:hover { color: var(--pp-cream); }

h1, h2, h3, h4 { margin: 0 0 .5em; line-height: 1.15; font-weight: 800; letter-spacing: -.015em; overflow-wrap: break-word; }
h1 { font-size: var(--fs-56); }
h2 { font-size: var(--fs-40); }
h3 { font-size: var(--fs-28); }
h4 { font-size: var(--fs-22); }
p { margin: 0 0 1em; }
.pp-sub { color: var(--pp-muted); font-size: var(--fs-18); }

/* Goud-accent in koppen — het belangrijkste woord krijgt goud + lichte gloed.
   Gebruik: <h1>Opblaasbare <span class="pp-accent">partytent</span> huren</h1> */
.pp-accent,
.pp-accent-grad {
	background: linear-gradient(100deg, var(--pp-gold), var(--pp-gold-2) 45%, var(--pp-cream) 75%, var(--pp-gold-2));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	filter: drop-shadow(0 0 9px rgba(196, 154, 84, .28));
}

/* ---- Layout ---- */
.pp-container { max-width: var(--container); margin-inline: auto; padding-inline: clamp(1rem, 4vw, 2rem); }
.pp-section { padding-block: clamp(3.5rem, 8vw, 6.5rem); position: relative; }

/* Drie sectie-achtergronden die we om en om rouleren voor ritme.
   Alle semi-transparant, zodat de grain van de body overal zichtbaar blijft.
   A = plain (geen class): donkere body + gouden gloedvlekken.
   B = --alt: een tint LICHTER (neutrale lift).
   C = --tint: warm-goud. */
.pp-section--alt {
	background: linear-gradient(180deg, rgba(245, 245, 245, .06), rgba(245, 245, 245, .035) 70%, rgba(245, 245, 245, .012));
}
.pp-section--tint {
	background: linear-gradient(180deg, rgba(196, 154, 84, .10), rgba(196, 154, 84, .05) 70%, rgba(196, 154, 84, .02));
}

/* Subtiele gouden gloed bovenin een sectie (spaarzaam gebruiken: hero, pakketten, final CTA) */
.pp-section--glow::before {
	content: '';
	position: absolute;
	inset: 0 0 auto 0;
	height: min(420px, 70%);
	pointer-events: none;
	background: radial-gradient(55% 100% at 50% 0%, rgba(196, 154, 84, .10), transparent 72%);
}

/* Gouden sectiescheiding: subtiele gradient, in het midden iets dikker en
   naar de randen smal uitlopend (lens-vorm), zonder ornament. */
.pp-divider { border: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--pp-line), transparent); margin: 0; }
.pp-divider--ornament {
	position: relative;
	border: 0;
	margin-block: 0;
	margin-inline: auto;
	width: min(72%, 780px);
	height: 4px;
	background: radial-gradient(ellipse 50% 100% at 50% 50%, rgba(196, 154, 84, .38) 0%, rgba(196, 154, 84, .14) 45%, transparent 80%);
}
.pp-divider--ornament::before {
	content: '';
	position: absolute;
	left: 50%; top: 50%;
	transform: translate(-50%, -50%);
	width: 52%; height: 1px;
	background: linear-gradient(90deg, transparent, rgba(229, 201, 131, .45) 50%, transparent);
}

/* Sectiekop-patroon: eyebrow + kop + subtekst */
.pp-eyebrow {
	display: inline-flex; align-items: center; gap: .5rem;
	margin-bottom: 1.1rem;
	font-size: var(--fs-12); font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	color: var(--pp-gold);
}
.pp-eyebrow::before { content: ''; width: 22px; height: 1px; background: var(--pp-gold); }

/* Sectiekop links uitgelijnd i.p.v. gecentreerd */
.pp-section-head--left { text-align: left; max-width: 620px; margin-inline: 0; }

/* ---- Knoppen ---- */
.pp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 48px; padding: .8rem 1.7rem;
	border-radius: var(--radius-pill);
	font: 700 var(--fs-16)/1.2 'Montserrat', sans-serif;
	letter-spacing: .01em;
	cursor: pointer; border: 0;
	transition: transform .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease), color .18s var(--ease);
}
.pp-btn:focus-visible { outline: 2px solid var(--pp-gold-2); outline-offset: 3px; }

/* Primair: gouden gradient met subtiele gloed */
.pp-btn--primary {
	background: linear-gradient(135deg, var(--pp-gold-deep) 0%, var(--pp-gold) 45%, var(--pp-gold-2) 100%);
	color: #14100A;
	box-shadow: var(--glow-gold);
	position: relative;
}
.pp-btn--primary:hover {
	transform: translateY(-2px) scale(1.015);
	box-shadow: 0 0 30px rgba(196, 154, 84, .5), 0 8px 20px rgba(0, 0, 0, .55);
	color: #14100A;
}
.pp-btn--primary:active { transform: translateY(0) scale(.99); }

/* Secundair: rustige outline/ghost */
.pp-btn--ghost {
	background: transparent;
	color: var(--pp-white);
	box-shadow: inset 0 0 0 1.5px var(--pp-line);
}
.pp-btn--ghost:hover { box-shadow: inset 0 0 0 1.5px var(--pp-gold); color: var(--pp-gold-2); }

/* ---- Cards ---- */
.pp-card {
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line-soft);
	border-radius: var(--radius);
	padding: clamp(1.25rem, 3vw, 2rem);
	box-shadow: var(--shadow-card);
	position: relative;
}
.pp-card--gold { border-color: var(--pp-line); }
/* Gouden hoeklijn-accent */
.pp-card--corner::before {
	content: '';
	position: absolute; inset: -1px auto auto -1px;
	width: 44px; height: 44px;
	border-top: 2px solid var(--pp-gold);
	border-left: 2px solid var(--pp-gold);
	border-top-left-radius: var(--radius);
	pointer-events: none;
}

/* Badge / chip */
.pp-badge {
	display: inline-flex; align-items: center; gap: .4rem;
	padding: .3rem .85rem;
	border-radius: var(--radius-pill);
	border: 1px solid var(--pp-line);
	color: var(--pp-gold-2);
	font-size: var(--fs-12); font-weight: 600; letter-spacing: .04em;
	background: rgba(196, 154, 84, .07);
}
.pp-badge--solid { background: var(--pp-gold); color: #14100A; border-color: var(--pp-gold); font-weight: 700; }

/* Prijs-patroon */
.pp-price { display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; }
.pp-price__old { color: var(--pp-muted); text-decoration: line-through; font-size: var(--fs-18); font-weight: 500; }
.pp-price__now { font-size: var(--fs-40); font-weight: 800; color: var(--pp-cream); letter-spacing: -.02em; }
.pp-price__per { color: var(--pp-muted); font-size: var(--fs-14); }

/* Checklijst (pakket-inhoud) */
.pp-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.pp-list li { display: flex; gap: .65rem; align-items: baseline; font-size: var(--fs-16); }
.pp-list .is-in::before { content: '✓'; color: var(--pp-gold); font-weight: 800; }
.pp-list .is-out { color: var(--pp-muted); }
.pp-list .is-out::before { content: '✕'; color: #5a5a5a; font-weight: 700; }

/* Stat-blok */
.pp-stat { text-align: center; }
.pp-stat__value { font-size: var(--fs-40); font-weight: 800; color: var(--pp-gold); line-height: 1; }
.pp-stat__label { color: var(--pp-muted); font-size: var(--fs-14); margin-top: .35rem; }

/* FAQ-accordion */
.pp-faq { border: 1px solid var(--pp-line-soft); border-radius: var(--radius-sm); background: var(--pp-black-2); }
.pp-faq + .pp-faq { margin-top: .5rem; }
.pp-faq summary {
	list-style: none; cursor: pointer;
	display: flex; justify-content: space-between; align-items: center; gap: .9rem;
	padding: .8rem 1.1rem;
	font-weight: 700; font-size: var(--fs-16);
}
.pp-faq summary::-webkit-details-marker { display: none; }
.pp-faq summary::after { content: '+'; color: var(--pp-gold); font-size: 1.25rem; font-weight: 400; transition: transform .2s var(--ease); flex: none; }
.pp-faq[open] summary::after { transform: rotate(45deg); }
.pp-faq__body { padding: 0 1.1rem 1rem; color: var(--pp-muted); font-size: var(--fs-14); }
.pp-faq__body p { margin: 0; }
.pp-faq__body a { text-decoration: underline; text-underline-offset: 3px; }

/* ---- FAQ-sectie: WhatsApp-contactkaart + accordion ---- */
.pp-faq-layout {
	display: grid;
	gap: clamp(1.25rem, 3vw, 2.25rem);
	margin-top: clamp(2rem, 4vw, 3rem);
}
@media (min-width: 920px) {
	.pp-faq-layout { grid-template-columns: minmax(0, 340px) minmax(0, 1fr); align-items: start; }
}
/* Mobiel: eerst de vragen, dan pas de WhatsApp-contactkaart */
@media (max-width: 919px) {
	.pp-faq-list { order: 1; }
	.pp-faq-contact { order: 2; }
}

.pp-faq-contact {
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line-soft);
	border-radius: var(--radius);
	padding: clamp(1.5rem, 3vw, 2rem);
}
@media (min-width: 920px) {
	.pp-faq-contact { position: sticky; top: 96px; }
}
.pp-faq-contact__status {
	display: inline-flex; align-items: center; gap: .5rem;
	color: var(--pp-ok); font-size: var(--fs-12); font-weight: 700;
	text-transform: uppercase; letter-spacing: .14em;
}
.pp-faq-contact__status::before {
	content: ''; width: 8px; height: 8px; border-radius: 50%;
	background: var(--pp-ok); box-shadow: 0 0 8px var(--pp-ok);
	animation: pp-faq-pulse 2s ease-in-out infinite;
}
@keyframes pp-faq-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.pp-faq-contact__title { margin: 1rem 0 .6rem; font-size: var(--fs-22); }
.pp-faq-contact__text { color: var(--pp-muted); margin: 0 0 1.4rem; font-size: var(--fs-16); }

.pp-btn--wa {
	width: 100%;
	background: var(--pp-ok); color: #08210E; border: 0; font-weight: 800;
	box-shadow: 0 8px 22px rgba(88, 179, 104, .28);
}
.pp-btn--wa:hover { background: #66C176; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(88, 179, 104, .38); }
.pp-btn--wa__icon { display: inline-flex; }
.pp-btn--wa__icon svg { width: 20px; height: 20px; }

.pp-faq-contact__phone { margin: 1rem 0 0; text-align: center; color: var(--pp-muted); font-size: var(--fs-14); }
.pp-faq-contact__phone a { color: var(--pp-gold-2); font-weight: 700; text-decoration: none; }
.pp-faq-contact__phone a:hover { text-decoration: underline; }

.pp-faq-list { min-width: 0; }
.pp-faq-more { text-align: center; margin-top: clamp(1.75rem, 4vw, 2.75rem); }

/* Antwoord-opmaak (lijsten/links) voor beide FAQ-varianten */
.pp-faq__body ul, .pp-faq__body ol { margin: .6rem 0 0; padding-left: 1.2rem; }
.pp-faq__body li { margin-bottom: .3rem; }
.pp-faq__body li strong { color: var(--pp-white); }

/* ---- Pagina: FAQ (gecategoriseerd) ---- */
.pp-faqpage__col { max-width: 860px; margin-inline: auto; }
.pp-faqpage__intro { text-align: center; max-width: 66ch; margin: 0 auto clamp(2rem, 4vw, 3rem); }
.pp-faq-group { margin-bottom: clamp(1.75rem, 4vw, 2.5rem); }
.pp-faq-group__label {
	display: inline-block; margin: 0 0 1rem;
	font-size: var(--fs-12); font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
	color: var(--pp-gold-2);
	padding: .45rem .9rem; border-radius: var(--radius-sm);
	background: rgba(196, 154, 84, .1); border: 1px solid var(--pp-line);
}
.pp-faq-group__items { display: grid; gap: .5rem; }
.pp-faqpage__cta {
	margin: clamp(2rem, 4vw, 3rem) 0 0; text-align: center;
	padding: 1.1rem 1.5rem; border-radius: var(--radius);
	background: rgba(196, 154, 84, .07); border: 1px solid var(--pp-line);
	color: var(--pp-muted);
}
.pp-faqpage__cta a { color: var(--pp-gold-2); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* ---- Pagina: B2B (bedrijfsfeest organiseren) ---- */
.pp-b2b-intro__grid { display: grid; gap: clamp(1.75rem, 4vw, 3rem); align-items: center; }
@media (min-width: 900px) { .pp-b2b-intro__grid { grid-template-columns: 1.1fr .9fr; } }
.pp-b2b-intro__content .pp-section-head { margin-bottom: 1.25rem; }
.pp-b2b-intro__text { max-width: 60ch; }
.pp-b2b-intro__text .pp-sub + .pp-sub { margin-top: 1rem; }
.pp-b2b-intro__btns { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.75rem; }
.pp-b2b-intro__media img { width: 100%; height: auto; border-radius: var(--radius); border: 1px solid var(--pp-line-soft); box-shadow: 0 20px 50px rgba(0, 0, 0, .5); }
.pp-b2b-logos { margin-top: clamp(2.5rem, 5vw, 3.5rem); text-align: center; }
.pp-b2b-logos .pp-logos__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(1.25rem, 4vw, 2.75rem); margin-top: 1rem; }
.pp-b2b-logos img { height: 48px; width: auto; }

/* Showcase-band met echte bedrijfsevent-foto's */
.pp-b2b-showcase { display: grid; grid-template-columns: 1fr; gap: clamp(1rem, 2.5vw, 1.5rem); margin-top: clamp(2rem, 4vw, 2.75rem); }
@media (min-width: 720px) { .pp-b2b-showcase { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pp-b2b-showcase figure { position: relative; margin: 0; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--pp-line-soft); box-shadow: 0 14px 34px rgba(0, 0, 0, .4); }
.pp-b2b-showcase img { display: block; width: 100%; height: 100%; aspect-ratio: 3 / 4; object-fit: cover; transition: transform .35s var(--ease); }
.pp-b2b-showcase figure:hover img { transform: scale(1.04); }
.pp-b2b-showcase figcaption { position: absolute; inset: auto 0 0 0; padding: 1.75rem 1rem .9rem; background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .82)); color: #fff; font-weight: 700; font-size: var(--fs-14); }

/* ---- Events-archief ---- */
.pp-events__filters { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; margin-bottom: clamp(2rem, 4vw, 3rem); }
.pp-events__tab {
	padding: .55rem 1.15rem; border-radius: var(--radius-pill);
	background: transparent; border: 1px solid var(--pp-line-soft); color: var(--pp-muted);
	font-weight: 700; font-size: var(--fs-14); cursor: pointer;
	transition: color .16s var(--ease), background .16s var(--ease), border-color .16s var(--ease);
}
.pp-events__tab:hover { color: var(--pp-gold-2); border-color: var(--pp-line); }
.pp-events__tab.is-active { background: var(--pp-gold); color: #14100A; border-color: var(--pp-gold); }

.pp-events__grid { display: grid; grid-template-columns: 1fr; gap: clamp(1.25rem, 3vw, 1.75rem); }
@media (min-width: 620px) { .pp-events__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .pp-events__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.pp-event-card__media {
	position: relative; display: block; aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden;
	border: 1px solid var(--pp-line-soft);
}
.pp-event-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s var(--ease); }
.pp-event-card:hover .pp-event-card__media img { transform: scale(1.05); }
.pp-event-card__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .12) 0%, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, .78) 100%); pointer-events: none; }
.pp-event-card__badge {
	position: absolute; top: .75rem; right: .75rem; z-index: 2;
	padding: .35rem .85rem; border-radius: var(--radius-pill);
	background: var(--pp-gold); color: #14100A; font-weight: 800; font-size: var(--fs-12);
}
.pp-event-card__photos {
	position: absolute; top: .75rem; left: .75rem; z-index: 2;
	padding: .35rem .8rem; border-radius: var(--radius-pill);
	background: rgba(27, 27, 27, .8); color: var(--pp-white); font-weight: 700; font-size: var(--fs-12);
	border: 1px solid var(--pp-line-soft);
}
.pp-event-card__title {
	position: absolute; left: 1rem; right: 1rem; bottom: 1rem; z-index: 2;
	color: #fff; font-weight: 800; font-size: var(--fs-18); line-height: 1.2;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .6);
}
.pp-event-card__link { display: inline-block; margin-top: .85rem; color: var(--pp-gold-2); font-weight: 700; text-decoration: none; }
.pp-event-card__link:hover { color: var(--pp-gold); }
.pp-events__more { text-align: center; margin-top: clamp(2rem, 4vw, 2.75rem); }

/* ---- Single event ---- */
.pp-event-single__grid { display: grid; gap: clamp(1.75rem, 4vw, 3rem); align-items: start; }
@media (min-width: 900px) { .pp-event-single__grid { grid-template-columns: .95fr 1.05fr; } }
.pp-event-single__media img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--radius); border: 1px solid var(--pp-line-soft); box-shadow: 0 20px 50px rgba(0, 0, 0, .5); }
.pp-event-single__content h1 { margin: .75rem 0 1rem; }
.pp-event-single__badges { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.25rem; }
.pp-event-single__desc { color: var(--pp-muted); line-height: 1.8; }
.pp-event-single__desc p { margin: 0 0 1rem; }
.pp-event-single__desc strong { color: var(--pp-white); }

.pp-event-gallery__title { text-align: left; margin: 0 0 1.5rem; }
.pp-event-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.75rem, 2vw, 1.15rem); }
@media (min-width: 720px) { .pp-event-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pp-event-gallery__item { display: block; width: 100%; padding: 0; margin: 0; cursor: zoom-in; aspect-ratio: 1 / 1; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--pp-line-soft); background: none; }
.pp-event-gallery__item:focus-visible { outline: 2px solid var(--pp-gold-2); outline-offset: 3px; }
.pp-event-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s var(--ease); }
.pp-event-gallery__item:hover img { transform: scale(1.05); }
.pp-event-gallery__item--video { cursor: default; }
.pp-event-gallery__item video { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---- Lightbox (vergroten van galerij-afbeeldingen) ---- */
.pp-lightbox[hidden] { display: none; }
.pp-lightbox { position: fixed; inset: 0; z-index: 1300; display: flex; align-items: center; justify-content: center; gap: 1rem; padding: clamp(1rem, 4vw, 3rem); background: rgba(8, 7, 5, .93); backdrop-filter: blur(4px); }
body.pp-lightbox-open { overflow: hidden; }
.pp-lightbox__fig { margin: 0; display: flex; align-items: center; justify-content: center; max-width: min(1100px, 92vw); max-height: 88vh; }
.pp-lightbox__img { display: block; max-width: 100%; max-height: 88vh; width: auto; height: auto; border-radius: 12px; box-shadow: 0 20px 60px rgba(0, 0, 0, .6); }
.pp-lightbox__close { position: absolute; top: 1.1rem; right: 1.3rem; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--pp-line); background: rgba(0, 0, 0, .45); color: var(--pp-cream); font-size: 1.7rem; line-height: 1; cursor: pointer; transition: border-color .15s, color .15s; }
.pp-lightbox__close:hover { border-color: var(--pp-gold); color: var(--pp-gold-2); }
.pp-lightbox__nav { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--pp-line); background: rgba(0, 0, 0, .45); color: var(--pp-cream); font-size: 1.9rem; line-height: 1; cursor: pointer; transition: border-color .15s, color .15s; }
.pp-lightbox__nav:hover { border-color: var(--pp-gold); color: var(--pp-gold-2); }
@media (max-width: 640px) { .pp-lightbox { gap: 0; } .pp-lightbox__nav { position: absolute; bottom: 1.4rem; width: 44px; height: 44px; } .pp-lightbox__nav--prev { left: 28%; } .pp-lightbox__nav--next { right: 28%; } }
.pp-event-cta__logo { height: 64px; width: auto; margin-bottom: 1rem; }

/* ---- Product PDP (tenten + accessoires, zelfde template) ---- */
/* Eerste sectie: eigen, iets donkerdere achtergrond dan de body */
.pp-pdp {
	position: relative;
	background:
		radial-gradient(110% 80% at 50% 0%, rgba(196, 154, 84, .06), rgba(196, 154, 84, 0) 55%),
		linear-gradient(180deg, #141414 0%, #171717 100%);
	border-bottom: 1px solid var(--pp-line-soft);
}
.pp-pdp__crumb { margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.pp-pdp__top { display: grid; gap: clamp(1.75rem, 4vw, 3rem); align-items: start; }
@media (min-width: 900px) { .pp-pdp__top { grid-template-columns: 1fr 1fr; } }

/* Galerij */
.pp-pdp-gallery__main {
	position: relative; border-radius: var(--radius); overflow: hidden;
	background: linear-gradient(180deg, #272B33, #1f2229); border: 1px solid var(--pp-line-soft);
	aspect-ratio: 1 / 1; display: grid; place-items: center;
}
.pp-pdp-gallery__main img { width: 100%; height: 100%; object-fit: contain; }
.pp-pdp-gallery__thumbs { display: flex; gap: .6rem; margin-top: .75rem; flex-wrap: wrap; }
.pp-pdp-gallery__thumb {
	width: 68px; height: 68px; border-radius: var(--radius-sm); overflow: hidden; cursor: pointer;
	background: #272B33; border: 1px solid var(--pp-line-soft); padding: 3px;
	transition: border-color .16s var(--ease);
}
.pp-pdp-gallery__thumb img { width: 100%; height: 100%; object-fit: contain; }
.pp-pdp-gallery__thumb.is-active, .pp-pdp-gallery__thumb:hover { border-color: var(--pp-gold); }

/* Info + prijs */
.pp-pdp__info h1 { margin: .35rem 0 1rem; }
.pp-pdp__short { color: var(--pp-muted); line-height: 1.7; margin-bottom: 1.5rem; }
.pp-pdp__short strong { color: var(--pp-white); }
.pp-pdp__price {
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line); border-radius: var(--radius);
	padding: clamp(1.15rem, 3vw, 1.6rem); margin-bottom: 1.25rem;
}
.pp-pdp__price-value { display: block; font-size: var(--fs-40); font-weight: 800; color: var(--pp-gold-2); line-height: 1; }
.pp-pdp__price-note { margin: .75rem 0 0; color: var(--pp-muted); font-size: var(--fs-14); }
.pp-pdp__price-note strong { color: var(--pp-cream); }
.pp-pdp__cta { width: 100%; }
.pp-pdp__usps { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: .7rem; }
.pp-pdp__usps li { position: relative; padding-left: 1.9rem; color: var(--pp-muted); }
.pp-pdp__usps li::before {
	content: '✓'; position: absolute; left: 0; top: -1px;
	width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: rgba(196, 154, 84, .15); color: var(--pp-gold-2); font-size: .75rem; font-weight: 800;
}

/* Over + specificaties */
.pp-pdp__detail { display: grid; gap: clamp(1.75rem, 4vw, 3rem); align-items: start; }
@media (min-width: 900px) { .pp-pdp__detail { grid-template-columns: 1.4fr .9fr; } }
.pp-pdp__about h2 { margin: 0 0 1.25rem; }
.pp-pdp__specs h2 { margin: 0 0 1.1rem; }
.pp-spec-table { width: 100%; border-collapse: collapse; background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2)); border: 1px solid var(--pp-line-soft); border-radius: var(--radius); overflow: hidden; }
.pp-spec-table tr + tr { border-top: 1px solid var(--pp-line-soft); }
.pp-spec-table th, .pp-spec-table td { padding: .8rem 1.1rem; text-align: left; font-size: var(--fs-14); vertical-align: top; }
.pp-spec-table th { color: var(--pp-gold-2); font-weight: 700; white-space: nowrap; width: 42%; }
.pp-spec-table td { color: var(--pp-muted); }

/* Overige huurproducten: carousel met homepage-productkaarten (mobiel 2, desktop 4) */
.pp-carousel { position: relative; margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.pp-carousel__track {
	display: flex; gap: clamp(.85rem, 2vw, 1.25rem);
	overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	/* ruimte boven/onder zodat de hover-lift + gloed niet wordt afgeknipt */
	padding: 14px 3px 18px; scroll-padding-left: 3px; scrollbar-width: none;
}
.pp-carousel__track::-webkit-scrollbar { display: none; }
.pp-carousel__item { flex: 0 0 calc((100% - clamp(.85rem, 2vw, 1.25rem)) / 2); scroll-snap-align: start; }
@media (min-width: 640px) { .pp-carousel__item { flex-basis: calc((100% - 2 * clamp(.85rem, 2vw, 1.25rem)) / 3); } }
@media (min-width: 960px) { .pp-carousel__item { flex-basis: calc((100% - 3 * clamp(.85rem, 2vw, 1.25rem)) / 4); } }
.pp-carousel__item .pp-product { height: 100%; }
.pp-carousel__arrow {
	position: absolute; top: 40%; transform: translateY(-50%); z-index: 3;
	width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: var(--pp-gold); color: #14100A; border: 0; cursor: pointer;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .4); transition: transform .16s var(--ease), opacity .16s var(--ease);
}
.pp-carousel__arrow svg { width: 20px; height: 20px; }
.pp-carousel__arrow:hover { transform: translateY(-50%) scale(1.08); }
.pp-carousel__arrow:disabled { opacity: .3; cursor: default; }
.pp-carousel__arrow--prev { left: -8px; }
.pp-carousel__arrow--next { right: -8px; }
@media (min-width: 1100px) { .pp-carousel__arrow--prev { left: -22px; } .pp-carousel__arrow--next { right: -22px; } }

/* Pakketten-rijen */
.pp-pkg-rows { display: grid; gap: .75rem; margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.pp-pkg-row {
	display: flex; align-items: center; gap: 1rem; text-decoration: none;
	padding: 1.1rem 1.35rem; border-radius: var(--radius);
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line-soft);
	transition: transform .18s var(--ease), border-color .18s var(--ease);
}
.pp-pkg-row:hover { transform: translateY(-2px); border-color: var(--pp-gold); }
.pp-pkg-row.is-featured { border-color: var(--pp-gold); background: linear-gradient(180deg, #322b1e, #2a2519); }
.pp-pkg-row__main { flex: 1 1 auto; display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.pp-pkg-row__head { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.pp-pkg-row__name { color: var(--pp-white); font-weight: 800; font-size: var(--fs-18); }
.pp-pkg-row__flag { padding: .15rem .6rem; border-radius: var(--radius-pill); background: var(--pp-gold); color: #14100A; font-size: var(--fs-12); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.pp-pkg-row__summary { color: var(--pp-muted); font-size: var(--fs-14); }
.pp-pkg-row__price { text-align: right; flex: none; }
.pp-pkg-row__amount { display: block; color: var(--pp-gold-2); font-weight: 800; font-size: var(--fs-22); line-height: 1; }
.pp-pkg-row__per { color: var(--pp-muted); font-size: var(--fs-12); }
.pp-pkg-row__arrow { flex: none; color: var(--pp-gold); font-size: 1.25rem; }
.pp-pkg-rows__note { margin: 1.1rem 0 0; color: var(--pp-muted); font-size: var(--fs-12); font-style: italic; }
@media (max-width: 560px) { .pp-pkg-row__arrow { display: none; } .pp-pkg-row__summary { display: none; } }

@media (min-width: 900px) { .pp-b2b-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.pp-b2b-uses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.75rem, 2vw, 1.15rem); margin-top: clamp(2rem, 4vw, 2.75rem); }
@media (min-width: 760px) { .pp-b2b-uses { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pp-b2b-use {
	display: flex; align-items: center; gap: .9rem;
	padding: 1rem 1.15rem; border-radius: var(--radius);
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line-soft);
	transition: transform .18s var(--ease), border-color .18s var(--ease);
}
.pp-b2b-use:hover { transform: translateY(-2px); border-color: var(--pp-line); }
.pp-b2b-use__icon {
	flex: none; display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border-radius: 12px;
	background: rgba(196, 154, 84, .12); color: var(--pp-gold-2); border: 1px solid var(--pp-line);
}
.pp-b2b-use__icon svg { width: 22px; height: 22px; }
.pp-b2b-use__label { font-weight: 700; color: var(--pp-white); font-size: var(--fs-16); min-width: 0; overflow-wrap: break-word; }

/* ---- Final CTA met discobal ---- */
.pp-finalcta { position: relative; overflow: hidden; text-align: center; }
/* Opvallende gouden spotlight achter de content */
.pp-finalcta::before {
	content: ''; position: absolute; left: 50%; top: -18%;
	width: min(1000px, 116%); height: 150%; transform: translateX(-50%);
	background:
		radial-gradient(46% 44% at 50% 30%, rgba(248, 232, 176, .34), rgba(229, 201, 131, .12) 42%, rgba(229, 201, 131, 0) 68%),
		radial-gradient(70% 60% at 50% 34%, rgba(196, 154, 84, .16), rgba(196, 154, 84, 0) 72%);
	pointer-events: none;
}
/* Warme gloed-vloer onderaan de sectie */
.pp-finalcta::after {
	content: ''; position: absolute; left: 50%; bottom: -40%;
	width: 120%; height: 70%; transform: translateX(-50%);
	background: radial-gradient(50% 100% at 50% 100%, rgba(196, 154, 84, .14), rgba(196, 154, 84, 0) 70%);
	pointer-events: none; z-index: 0;
}
.pp-finalcta__inner {
	position: relative; z-index: 2;
	max-width: 780px; margin-inline: auto;
	display: flex; flex-direction: column; align-items: center;
}
.pp-finalcta__badge { text-transform: uppercase; letter-spacing: .16em; font-weight: 700; margin-bottom: 1.35rem; }
.pp-finalcta__title { margin: 0 0 1rem; }
.pp-finalcta__sub { max-width: 46ch; }
.pp-finalcta__cta { margin-top: 2rem; padding: 1rem 2.2rem; font-size: var(--fs-18); }

/* Discobal (SVG-spiegelbol) */
.pp-disco { --s: clamp(92px, 12vw, 136px); display: flex; flex-direction: column; align-items: center; margin-bottom: 1.5rem; }
.pp-disco__cord {
	width: 2px; height: clamp(16px, 3vw, 30px);
	background: linear-gradient(to bottom, rgba(229, 201, 131, .6), rgba(229, 201, 131, .08));
}
.pp-disco__ball {
	position: relative; width: var(--s); height: var(--s); border-radius: 50%;
	overflow: hidden; isolation: isolate;
	/* dubbele gouden halo rond de bol */
	filter:
		drop-shadow(0 0 18px rgba(248, 232, 176, .55))
		drop-shadow(0 0 42px rgba(196, 154, 84, .5))
		drop-shadow(0 14px 30px rgba(0, 0, 0, .5));
}
.pp-disco__svg { display: block; width: 100%; height: 100%; }
/* Draaiende lichtveeg over de facetten = bol tolt */
.pp-disco__sheen {
	position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
	background: linear-gradient(105deg, transparent 34%, rgba(255, 255, 255, .32) 50%, transparent 66%);
	mix-blend-mode: screen;
	background-size: 260% 100%;
	animation: pp-disco-sheen 4.5s linear infinite;
}
@keyframes pp-disco-sheen { to { background-position: -260% 0; } }

/* Lichtspots die de bol door de sectie werpt */
.pp-finalcta__spots {
	position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		radial-gradient(circle, rgba(248, 232, 176, .55) 0 2px, transparent 3px) 12% 26%,
		radial-gradient(circle, rgba(255, 255, 255, .5) 0 2px, transparent 3px) 84% 20%,
		radial-gradient(circle, rgba(229, 201, 131, .5) 0 3px, transparent 4px) 22% 74%,
		radial-gradient(circle, rgba(255, 255, 255, .45) 0 2px, transparent 3px) 74% 78%,
		radial-gradient(circle, rgba(229, 201, 131, .4) 0 2px, transparent 3px) 63% 60%,
		radial-gradient(circle, rgba(255, 255, 255, .35) 0 2px, transparent 3px) 34% 46%;
	background-repeat: no-repeat;
	animation: pp-disco-twinkle 3.2s ease-in-out infinite;
}
.pp-finalcta__spots::after {
	content: ''; position: absolute; inset: 0;
	background:
		radial-gradient(circle, rgba(255, 255, 255, .4) 0 2px, transparent 3px) 8% 58%,
		radial-gradient(circle, rgba(248, 232, 176, .4) 0 2px, transparent 3px) 92% 52%,
		radial-gradient(circle, rgba(229, 201, 131, .35) 0 2px, transparent 3px) 44% 84%,
		radial-gradient(circle, rgba(255, 255, 255, .35) 0 3px, transparent 4px) 58% 34%;
	background-repeat: no-repeat;
	animation: pp-disco-twinkle 3.2s ease-in-out infinite;
	animation-delay: -1.6s;
}

@media (prefers-reduced-motion: reduce) {
	.pp-disco__sheen, .pp-finalcta__spots, .pp-finalcta__spots::after { animation: none !important; }
}

/* Ster-rij */
.pp-stars { color: var(--pp-gold); letter-spacing: .12em; }

/* ---- Pakketten-sectie ---- */
.pp-pkg-grid {
	display: grid;
	gap: 1.25rem;
	align-items: stretch;
	max-width: var(--container);
	margin-inline: auto;
	/* ruimte voor de "Meest gekozen"-vlag + de opgeschaalde kaart */
	margin-top: 2.5rem;
}
@media (min-width: 900px) {
	.pp-pkg-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: 4.75rem; }
}
.pp-pkg {
	display: flex;
	flex-direction: column;
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line-soft);
	border-radius: var(--radius);
	padding: clamp(1.4rem, 2.5vw, 2rem);
	box-shadow: var(--shadow-card);
	position: relative;
	transition: transform .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);
}
/* Hover-glow, zelfde stijl als de formaatkaarten */
.pp-pkg:hover {
	transform: translateY(-5px);
	border-color: var(--pp-line);
	box-shadow: 0 0 26px rgba(196, 154, 84, .18), var(--shadow-card);
}
@media (min-width: 900px) {
	.pp-pkg--featured:hover {
		transform: scale(1.045) translateY(-5px);
		box-shadow: 0 0 40px rgba(196, 154, 84, .24), var(--shadow-card);
	}
}
.pp-pkg__name { margin-bottom: .35rem; }
.pp-pkg__desc { color: var(--pp-muted); font-size: var(--fs-14); min-height: 3.2em; }
.pp-pkg .pp-list { margin-block: 1.15rem; flex: 1; }
.pp-pkg .pp-btn { width: 100%; }
.pp-pkg__deal { align-self: flex-start; margin-bottom: .8rem; }
.pp-pkg__cta { margin: 1.1rem 0 0; }
.pp-pkg__note { color: var(--pp-muted); font-size: var(--fs-12); text-align: center; margin: .75rem 0 0; }
.pp-pkg-grid__footer { text-align: center; margin: 2.5rem 0 0; }

/* Uitgelicht pakket (Club Deluxe): gouden rand, gloed, iets groter, top-glans */
.pp-pkg--featured {
	border: 1px solid rgba(196, 154, 84, .55);
	background:
		radial-gradient(80% 40% at 50% 0%, rgba(196, 154, 84, .12), transparent 70%),
		linear-gradient(180deg, #322b1e, var(--pp-surface-2));
	box-shadow: 0 0 34px rgba(196, 154, 84, .16), var(--shadow-card);
}
@media (min-width: 900px) {
	.pp-pkg--featured { transform: scale(1.045); z-index: 2; }
}
.pp-pkg__flag {
	position: absolute;
	top: 0; left: 50%;
	transform: translate(-50%, -50%);
	white-space: nowrap;
	background: linear-gradient(135deg, var(--pp-gold-deep), var(--pp-gold) 50%, var(--pp-gold-2));
	color: #14100A;
	font-size: var(--fs-12);
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .35rem 1.1rem;
	border-radius: var(--radius-pill);
	box-shadow: 0 0 16px rgba(196, 154, 84, .45);
}

/* ---- Formuliervelden (funnel/contact) ---- */
.pp-field { display: grid; gap: .4rem; }
.pp-field label { font-size: var(--fs-14); font-weight: 600; }
.pp-input, .pp-select, .pp-textarea {
	width: 100%;
	min-height: 48px;
	padding: .7rem 1rem;
	background: var(--pp-black-2);
	border: 1px solid var(--pp-line-soft);
	border-radius: var(--radius-sm);
	color: var(--pp-white);
	font: 500 var(--fs-16)/1.4 'Montserrat', sans-serif;
	transition: border-color .18s var(--ease), box-shadow .18s var(--ease);
}
.pp-input::placeholder, .pp-textarea::placeholder { color: #6f6f6f; }
.pp-input:focus, .pp-select:focus, .pp-textarea:focus {
	outline: none;
	border-color: var(--pp-gold);
	box-shadow: 0 0 0 3px rgba(196, 154, 84, .18);
}
.pp-field--error .pp-input { border-color: var(--pp-error); }
.pp-field__error { color: var(--pp-error); font-size: var(--fs-12); }

/* Aantal-stepper (extra's) */
.pp-qty { display: inline-flex; align-items: center; gap: .25rem; border: 1px solid var(--pp-line-soft); border-radius: var(--radius-pill); padding: .2rem; }
.pp-qty button {
	width: 38px; height: 38px;
	border: 0; border-radius: 50%;
	background: transparent;
	color: var(--pp-gold-2);
	font-size: 1.15rem; font-weight: 700;
	cursor: pointer;
	transition: background .15s var(--ease);
}
.pp-qty button:hover { background: rgba(196, 154, 84, .12); }
.pp-qty span { min-width: 2.2em; text-align: center; font-weight: 700; }

/* ---- Waarom 500+ klanten ons kozen (over/verhaal + stats) ---- */
.pp-waarom { display: grid; gap: clamp(2rem, 4vw, 3.5rem); align-items: center; }
@media (min-width: 900px) { .pp-waarom { grid-template-columns: .85fr 1.15fr; } }
.pp-waarom__media { position: relative; }
.pp-waarom__media img,
.pp-waarom__media video {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 22px;
	border: 1px solid var(--pp-line);
	box-shadow: 0 0 30px rgba(196, 154, 84, .12), var(--shadow-card);
}
.pp-waarom__sign {
	position: absolute;
	left: 1rem; bottom: 1rem;
	display: grid;
	padding: .65rem 1.1rem;
	border-radius: var(--radius);
	background: rgba(27, 27, 27, .82);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	border: 1px solid var(--pp-line);
}
.pp-waarom__sign strong { color: var(--pp-white); font-weight: 800; }
.pp-waarom__sign span { color: var(--pp-gold-2); font-size: var(--fs-12); }
.pp-waarom__text { max-width: 60ch; }
.pp-waarom__text strong { color: var(--pp-white); font-weight: 800; }
.pp-waarom__cta { margin: 1.5rem 0 2rem; }

/* Stat-blok: 2x2 met gouden fade-kruis-scheiding, zoals het voorbeeld */
.pp-waarom__stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border: 1px solid var(--pp-line-soft);
	border-radius: var(--radius);
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	overflow: hidden;
}
.pp-waarom__stats .pp-stat { position: relative; padding: clamp(1.4rem, 3vw, 2rem) 1rem; }
.pp-waarom__stats .pp-stat:nth-child(odd)::after {
	content: ''; position: absolute; right: 0; top: 16%; bottom: 16%; width: 1px;
	background: linear-gradient(180deg, transparent, rgba(196, 154, 84, .35), transparent);
}
.pp-waarom__stats .pp-stat:nth-child(1)::before, .pp-waarom__stats .pp-stat:nth-child(2)::before {
	content: ''; position: absolute; left: 12%; right: 12%; bottom: 0; height: 1px;
	background: linear-gradient(90deg, transparent, rgba(196, 154, 84, .35), transparent);
}

/* ---- Reviews (Trustindex-widget) ---- */
.pp-reviews { margin-top: 2.5rem; }
/* Trustindex laadt zijn eigen witte review-cards; wij zorgen alleen voor ruimte. */

/* ---- Stappen (Zo werkt het reserveren) ---- */
.pp-steps { display: grid; gap: 1.75rem 1.25rem; counter-reset: stap; margin-top: 2.75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .pp-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; } }
.pp-step { counter-increment: stap; text-align: center; padding: 1rem .5rem; position: relative; }
@media (min-width: 900px) { .pp-step { padding: 1rem; } }
.pp-step__num {
	width: 52px; height: 52px;
	margin: 0 auto .85rem;
	display: grid; place-items: center;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--pp-gold-deep), var(--pp-gold) 55%, var(--pp-gold-2));
	color: #14100A;
	font-weight: 800; font-size: var(--fs-18);
	box-shadow: 0 0 18px rgba(196, 154, 84, .35);
	position: relative; z-index: 1;
}
.pp-step__num::before { content: counter(stap); }
/* Verbindingslijn tussen de stappen (alleen desktop) */
@media (min-width: 900px) {
	.pp-step:not(:last-child)::after {
		content: '';
		position: absolute;
		top: calc(1rem + 26px);
		left: calc(50% + 40px);
		width: calc(100% - 80px);
		height: 1px;
		background: linear-gradient(90deg, rgba(196, 154, 84, .45), rgba(196, 154, 84, .12));
	}
}
.pp-step h3 { margin: 0 0 .3rem; font-size: var(--fs-18); }
.pp-step p { color: var(--pp-muted); font-size: var(--fs-14); margin: 0; }
.pp-steps__foot { text-align: center; margin-top: 2.75rem; }
.pp-steps__note { font-size: var(--fs-14); margin: .9rem 0 0; }

/* ---- Accessoire-/productkaart ---- */
.pp-product {
	display: flex; flex-direction: column;
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line-soft);
	border-radius: var(--radius);
	overflow: hidden;
	color: var(--pp-white);
	transition: transform .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.pp-product:hover {
	transform: translateY(-5px);
	border-color: var(--pp-line);
	box-shadow: 0 0 26px rgba(196, 154, 84, .16), var(--shadow-card);
	color: var(--pp-white);
}
/* Cutout-productfoto: groot en gecentreerd, met 3D-zweefschaduw */
.pp-product__media {
	display: grid; place-items: center;
	aspect-ratio: 1 / 1;
	background: #272B33;
	padding: 1.1rem;
}
/* Alle productfoto's in een gelijk vierkant kader (contain) → zelfde grootte, groot */
.pp-product__media img {
	width: 88%; height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	filter: drop-shadow(0 18px 14px rgba(0, 0, 0, .5)) drop-shadow(0 5px 7px rgba(0, 0, 0, .4));
}
.pp-product__body { padding: 1.1rem 1.2rem 1.3rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; text-align: center; }
/* Titel reserveert 2 regels en staat bovenaan uitgelijnd zodat koppen, prijs
   en knop over alle kaarten op gelijke hoogte staan */
.pp-product__title { font-size: var(--fs-16); font-weight: 700; margin: 0; min-height: 2.7em; }
.pp-product__price { color: var(--pp-cream); font-weight: 800; font-size: var(--fs-18); }
.pp-product__price small { color: var(--pp-muted); font-weight: 500; font-size: var(--fs-12); }
/* Subtielere "Bekijk product"-knop (kaart is toch volledig klikbaar) */
.pp-product__cta {
	margin-top: auto;
	min-height: 42px;
	padding-block: .5rem;
	box-shadow: inset 0 0 0 1px var(--pp-line-soft);
	color: var(--pp-muted);
	font-weight: 600;
}
.pp-product:hover .pp-product__cta { box-shadow: inset 0 0 0 1px var(--pp-line); color: var(--pp-gold-2); }

/* Accessoires-grid: mobiel 2x2, desktop 4 kolommen + CTA eronder */
.pp-accessoires {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 2.75rem;
}
@media (min-width: 900px) { .pp-accessoires { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; } }
.pp-accessoires__cta { text-align: center; margin: 2.25rem 0 0; }

/* Product-categorie hub (accessoires) */
.pp-cathub__intro { text-align: center; max-width: 62ch; margin: 0 auto clamp(1.5rem, 4vw, 2.5rem); }
.pp-cathub .pp-accessoires { margin-top: 0; }

/* ---- Stadspagina (partytent-huren-in) ---- */
.pp-city-hero__grid { display: grid; gap: clamp(1.75rem, 4vw, 3rem); align-items: center; }
@media (min-width: 900px) { .pp-city-hero__grid { grid-template-columns: 1.05fr .95fr; } }
.pp-city-hero__content h1 { margin: .4rem 0 1rem; }
.pp-city-hero__ctas { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.75rem; }
.pp-city-hero__trust { margin: 1.5rem 0 0; color: var(--pp-muted); font-size: var(--fs-14); }
.pp-city-hero__trust .pp-stars { color: var(--pp-gold); letter-spacing: .1em; margin-right: .3rem; }
.pp-city-hero__trust strong { color: var(--pp-white); }
.pp-city-hero__media img { width: 100%; height: auto; border-radius: var(--radius); border: 1px solid var(--pp-line-soft); box-shadow: 0 20px 50px rgba(0, 0, 0, .5); }

.pp-city-body { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; }
@media (min-width: 900px) { .pp-city-body { grid-template-columns: 1.5fr .85fr; } }
.pp-city-body__main h2 { margin: 0 0 1.25rem; }
.pp-city-omliggende { position: sticky; top: 96px; background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2)); border: 1px solid var(--pp-line-soft); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 1.75rem); }
.pp-city-omliggende h3 { margin: 0 0 .6rem; font-size: var(--fs-18); color: var(--pp-gold-2); }
.pp-city-omliggende p { margin: 0; color: var(--pp-muted); line-height: 1.7; }
@media (max-width: 899px) { .pp-city-omliggende { position: static; } }

.pp-city-faq { max-width: 820px; margin-inline: auto; }
.pp-city-faq__list { display: grid; gap: .5rem; margin-top: clamp(1.5rem, 3vw, 2.25rem); }

.pp-city-photos { display: grid; grid-template-columns: 1fr; gap: clamp(1rem, 2.5vw, 1.5rem); margin-top: clamp(1.75rem, 4vw, 2.75rem); }
@media (min-width: 700px) { .pp-city-photos { grid-template-columns: 1fr 1fr; } }
.pp-city-photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); border: 1px solid var(--pp-line-soft); box-shadow: 0 14px 34px rgba(0, 0, 0, .4); }

/* ---- Blog (single + categorie) ---- */
.pp-post { max-width: 840px; }
.pp-post__cover { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius); border: 1px solid var(--pp-line-soft); margin-bottom: clamp(1.5rem, 4vw, 2.5rem); }
.pp-post__body { max-width: none; }
.pp-post-grid { display: grid; grid-template-columns: 1fr; gap: clamp(1.25rem, 3vw, 1.75rem); }
@media (min-width: 640px) { .pp-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .pp-post-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pp-post-card { display: flex; flex-direction: column; background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2)); border: 1px solid var(--pp-line-soft); border-radius: var(--radius); overflow: hidden; color: var(--pp-white); transition: transform .2s var(--ease), border-color .2s var(--ease); }
.pp-post-card:hover { transform: translateY(-4px); border-color: var(--pp-line); }
.pp-post-card__media { display: block; position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: #272B33; }
.pp-post-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pp-post-card__media .pp-cover-fallback { position: absolute; inset: 0; }
.pp-post-card__body { display: flex; flex-direction: column; gap: .5rem; padding: 1.1rem 1.2rem 1.3rem; flex: 1; }
.pp-post-card__tag { align-self: flex-start; font-size: var(--fs-12); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--pp-gold-2); }
.pp-post-card__title { font-size: var(--fs-18); font-weight: 700; line-height: 1.25; }
.pp-post-card__more { margin-top: auto; color: var(--pp-gold-2); font-weight: 700; font-size: var(--fs-14); }
.pp-post-pagination { margin-top: clamp(2rem, 4vw, 3rem); }
.pp-post-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem; }
.pp-post-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 .6rem; border-radius: var(--radius-sm); border: 1px solid var(--pp-line-soft); color: var(--pp-muted); text-decoration: none; }
.pp-post-pagination .page-numbers.current { background: var(--pp-gold); color: #14100A; border-color: var(--pp-gold); }
.pp-post-pagination a.page-numbers:hover { border-color: var(--pp-gold); color: var(--pp-gold-2); }

/* ---- Drankspel (single quiz) ---- */
.pp-game { max-width: 680px; margin-inline: auto; text-align: center; }
.pp-game__intro { color: var(--pp-muted); line-height: 1.7; margin-bottom: clamp(1.5rem, 4vw, 2.25rem); }
.pp-game__intro p { margin: 0 0 .6rem; }
.pp-game__card { background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2)); border: 1px solid var(--pp-line); border-radius: var(--radius); padding: clamp(1.5rem, 4vw, 2.5rem); box-shadow: 0 0 40px rgba(196, 154, 84, .1); }
.pp-game__num { display: inline-block; font-size: var(--fs-12); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--pp-gold-2); margin-bottom: .75rem; }
.pp-game__q h3 { margin: 0 0 1.5rem; font-size: var(--fs-22); }
.pp-game__answers { display: grid; gap: .75rem; }
.pp-game__ans { padding: 1rem 1.25rem; border-radius: var(--radius-sm); border: 1px solid var(--pp-line-soft); background: rgba(27, 27, 27, .5); color: var(--pp-white); font: 700 var(--fs-16)/1.3 'Montserrat', sans-serif; cursor: pointer; transition: border-color .16s var(--ease), background .16s var(--ease); }
.pp-game__ans:hover:not(:disabled) { border-color: var(--pp-gold); }
.pp-game__ans.is-correct { border-color: var(--pp-ok); background: rgba(88, 179, 104, .15); }
.pp-game__ans.is-wrong { border-color: #d9534f; background: rgba(217, 83, 79, .15); }
.pp-game__ans:disabled { cursor: default; }
.pp-game__result { margin: 1.25rem 0 0; font-weight: 800; font-size: var(--fs-18); }
.pp-game__result.is-good { color: var(--pp-ok); }
.pp-game__result.is-bad { color: #e57373; }
.pp-game__nav { margin-top: 1.5rem; }
.pp-game__done h3 { margin: 0 0 .5rem; }
.pp-game__done p { color: var(--pp-muted); margin: 0 0 1.25rem; }
.pp-game__disclaimer { margin: 1.25rem 0 0; color: var(--pp-muted); font-size: var(--fs-12); }

/* Drankspel-hub grid */
.pp-game-grid { display: grid; grid-template-columns: 1fr; gap: clamp(1.25rem, 3vw, 1.75rem); margin-top: clamp(2rem, 4vw, 2.75rem); }
@media (min-width: 620px) { .pp-game-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .pp-game-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pp-game-card { display: flex; flex-direction: column; background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2)); border: 1px solid var(--pp-line-soft); border-radius: var(--radius); overflow: hidden; color: var(--pp-white); transition: transform .2s var(--ease), border-color .2s var(--ease); }
.pp-game-card:hover { transform: translateY(-4px); border-color: var(--pp-gold); }
.pp-game-card__media { display: block; aspect-ratio: 3 / 2; background: #272B33; }
.pp-game-card__media img { width: 100%; height: 100%; object-fit: cover; }
.pp-game-card__body { display: flex; flex-direction: column; gap: 1rem; padding: 1.25rem; flex: 1; align-items: flex-start; }
.pp-game-card__title { font-size: var(--fs-18); font-weight: 800; }
.pp-game-card__cta { margin-top: auto; padding: .55rem 1.2rem; min-height: 42px; font-size: var(--fs-14); }
@media (max-width: 560px) {
	.pp-product__body { padding: .85rem .8rem 1rem; }
	.pp-product__title { font-size: var(--fs-14); }
	.pp-product__price { font-size: var(--fs-16); }
	.pp-product .pp-btn { font-size: var(--fs-14); }
}

/* ---- Formaatkaarten (5 tentmaten + eigenschappen-kaart, 3x2; mobiel 2 kolommen) ---- */
.pp-sizes { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .pp-sizes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; } }
@media (max-width: 899px) {
	.pp-size__name { font-size: var(--fs-16); }
	.pp-size__body { padding: .7rem .6rem 1rem; }
	.pp-size__media { padding: .8rem .8rem 1rem; }
}
.pp-size {
	display: block;
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line-soft);
	border-radius: var(--radius);
	overflow: hidden;
	text-align: center;
	color: var(--pp-white);
	transition: transform .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.pp-size:hover {
	transform: translateY(-4px);
	border-color: var(--pp-line);
	box-shadow: 0 0 22px rgba(196, 154, 84, .14), var(--shadow-card);
	color: var(--pp-white);
}
/* Productfoto in kaart: volledig zichtbaar, iets kleiner dan het vlak,
   met 3D-zweefschaduw eronder (zelfde patroon straks voor accessoires). */
.pp-size__media {
	display: grid;
	place-items: center;
	aspect-ratio: 3 / 2;
	background: #272B33;
	padding: 1.2rem 1.2rem 1.5rem;
}
.pp-size__media img {
	width: auto;
	height: auto;
	max-width: 82%;
	max-height: 100%;
	/* cutout-foto's: schaduw volgt de tentvorm (3D-grondschaduw) */
	filter: drop-shadow(0 22px 16px rgba(0, 0, 0, .55)) drop-shadow(0 6px 8px rgba(0, 0, 0, .4));
}
/* Desktop: foto 25% kleiner (mobiel behoudt 82%) */
@media (min-width: 900px) {
	.pp-size__media img { max-width: 61.5%; }
}
.pp-size__body { display: block; padding: .9rem 1rem 1.25rem; }
.pp-size__name { display: block; margin: 0; font-size: var(--fs-22); font-weight: 800; }
.pp-size__pers {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	gap: .45rem;
	margin-top: .7rem;
	padding: .35rem .95rem;
	border: 1px solid var(--pp-line);
	border-radius: var(--radius-pill);
	background: rgba(196, 154, 84, .07);
	color: var(--pp-gold-2);
	font-size: var(--fs-14);
	font-weight: 600;
}
.pp-size__pers svg { width: 15px; height: 15px; flex: none; }
@media (max-width: 640px) {
	.pp-size__pers { font-size: var(--fs-12); padding: .3rem .75rem; gap: .35rem; }
	.pp-size__pers svg { width: 13px; height: 13px; }
}
@media (max-width: 480px) {
	.pp-size__pers { font-size: .68rem; padding: .25rem .55rem; gap: .3rem; }
	.pp-size__pers svg { width: 12px; height: 12px; }
}
.pp-sizes { margin-top: 2.75rem; }

/* Eigenschappen-kaart als zesde tegel */
.pp-size-props {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1.1rem;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-radius: var(--radius);
	border: 1px solid var(--pp-line);
	background:
		radial-gradient(120% 90% at 85% 8%, rgba(196, 154, 84, .16), transparent 65%),
		linear-gradient(180deg, #221d12, #1a170f);
	box-shadow: var(--shadow-card);
}
.pp-size-props__label {
	color: var(--pp-gold);
	font-size: var(--fs-14);
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.pp-size-props ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.pp-size-props li { display: flex; align-items: center; gap: .8rem; font-size: var(--fs-16); min-width: 0; }
/* Smalle kolommen: kaart blijft gewoon naast de tent staan,
   maar met compactere typografie zodat alles binnen de kaart past. */
@media (max-width: 899px) {
	.pp-size-props { padding: 1.1rem 1rem; gap: .85rem; }
	.pp-size-props__label { font-size: .7rem; letter-spacing: .12em; }
	.pp-size-props ul { gap: .65rem; }
	.pp-size-props li { font-size: var(--fs-12); gap: .5rem; }
	.pp-size-props__check { width: 22px; height: 22px; font-size: .6rem; border-width: 1px; }
}
@media (max-width: 480px) {
	.pp-size-props { padding: 1rem .8rem; }
	.pp-size-props li { font-size: .72rem; gap: .45rem; }
	.pp-size-props__check { width: 20px; height: 20px; }
}
.pp-size-props__check {
	display: grid;
	place-items: center;
	width: 30px; height: 30px;
	border-radius: 50%;
	border: 1.5px solid var(--pp-gold);
	color: var(--pp-gold-2);
	font-size: .8rem;
	font-weight: 800;
	background: rgba(196, 154, 84, .08);
	flex: none;
}
.pp-sizes__note { text-align: center; font-style: italic; font-size: var(--fs-16); margin: 2.25rem 0 0; }

/* Sectiekop gecentreerd met max-breedte */
.pp-section-head { text-align: center; max-width: 640px; margin-inline: auto; }

/* ---- Google reviews bar: witte balk, Google-woordmerk, gele sterren ---- */
.ppt-gbar {
	display: inline-flex; align-items: center; gap: .55rem;
	background: #FFFFFF;
	color: #17171C;
	border-radius: 14px;
	padding: .55rem 1.05rem;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .38);
	font-size: var(--fs-16);
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	transition: transform .18s var(--ease), box-shadow .18s var(--ease);
}
.ppt-gbar:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(0, 0, 0, .5); color: #17171C; }
.ppt-gbar__logo { font-weight: 600; letter-spacing: -.02em; font-size: 1.15em; }
.ppt-gbar__logo span:nth-child(1) { color: #4285F4; }
.ppt-gbar__logo span:nth-child(2) { color: #EA4335; }
.ppt-gbar__logo span:nth-child(3) { color: #FBBC05; }
.ppt-gbar__logo span:nth-child(4) { color: #4285F4; }
.ppt-gbar__logo span:nth-child(5) { color: #34A853; }
.ppt-gbar__logo span:nth-child(6) { color: #EA4335; }
.ppt-gbar__stars { color: #FBBC05; font-size: 1.2em; letter-spacing: .06em; }
.ppt-gbar__sep { color: #C9C9CF; font-weight: 400; }
@media (max-width: 480px) {
	.ppt-gbar { font-size: var(--fs-14); padding: .45rem .85rem; gap: .45rem; border-radius: 12px; }
}

/* ---- Galerij-carousel: middelste kaart groot, buren kleiner ---- */
/* Boxed binnen de container (niet full-width): buren clippen op de containerrand */
.pp-gallery {
	position: relative;
	overflow: hidden;
	padding-block: 1rem;
	max-width: var(--container);
	margin-inline: auto;
	border-radius: var(--radius);
}
/* Itembreedte gedeeld door track-hoogte, zodat ze altijd matchen */
.pp-gallery { --pp-gallery-w: clamp(290px, 34vw, 360px); }
.pp-gallery__track {
	position: relative;
	height: calc(var(--pp-gallery-w) * 4 / 3);
}
.pp-gallery__item {
	position: absolute;
	left: 50%; top: 50%;
	width: var(--pp-gallery-w);
	aspect-ratio: 3 / 4;
	border-radius: var(--radius);
	overflow: hidden;
	border: 1px solid var(--pp-line-soft);
	cursor: pointer;
	/* positie/schaal wordt door JS gezet (circulaire loop, licht overlappend) */
	transform: translate(-50%, -50%) scale(.78);
	opacity: .45;
	transition: transform .45s var(--ease), opacity .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease);
}
.pp-gallery__item img { width: 100%; height: 100%; object-fit: cover; }
.pp-gallery__item.is-active {
	opacity: 1;
	border-color: var(--pp-line);
	box-shadow: 0 0 26px rgba(196, 154, 84, .16), var(--shadow-card);
}
.pp-gallery__item.is-near { opacity: .7; }
.pp-gallery__nav {
	display: flex; justify-content: center; gap: .9rem;
	margin-top: 1.5rem;
}
.pp-gallery__btn {
	width: 48px; height: 48px;
	border-radius: 50%;
	border: 1.5px solid var(--pp-line);
	background: rgba(28, 28, 28, .9);
	color: var(--pp-gold-2);
	font-size: 1.25rem;
	display: grid; place-items: center;
	cursor: pointer;
	transition: background .18s var(--ease), border-color .18s var(--ease), transform .18s var(--ease);
}
.pp-gallery__btn:hover { border-color: var(--pp-gold); background: rgba(196, 154, 84, .14); transform: translateY(-2px); }
.pp-gallery__btn:focus-visible { outline: 2px solid var(--pp-gold-2); outline-offset: 3px; }

/* ---- Klantlogobalk (Gekozen door toonaangevende bedrijven & artiesten) ---- */
.pp-logos { text-align: center; }
.pp-logos__label {
	color: var(--pp-muted);
	font-size: var(--fs-14);
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	margin: 0 0 2.25rem;
}
.pp-logos__row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: clamp(1.75rem, 5vw, 4.5rem);
}
.pp-logos__row img {
	height: clamp(48px, 7vw, 72px);
	width: auto;
	opacity: 1;
	transition: opacity .2s var(--ease), transform .2s var(--ease);
}
.pp-logos__row img:hover { transform: translateY(-2px); }
/* Mobiel: logo's in trechtervorm (4 boven, 2 gecentreerd eronder) */
@media (max-width: 640px) {
	.pp-logos__row {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 1.4rem 1rem;
	}
	.pp-logos__row img {
		height: 44px;
		flex: 0 0 calc(25% - .6rem);
		max-width: calc(25% - .6rem);
		object-fit: contain;
	}
}

/* ---- USP's (Wij regelen alles. Jij geniet.) — kolommen met icoontegel ---- */
.pp-usps {
	display: grid;
	gap: 0;
	margin-top: 2.75rem;
	grid-template-columns: repeat(2, minmax(0, 1fr)); /* mobiel: 2x2 */
}
/* Scheidingen tussen de USP's = subtiele gouden fade-lijntjes (pseudo-elementen).
   Mobiel: kruis (verticaal + horizontaal). Desktop: verticale lijnen tussen kolommen. */
.pp-usp { position: relative; padding: clamp(1.25rem, 4vw, 1.75rem); }
@media (max-width: 991px) {
	/* verticale lijn rechts van de linkerkolom (kind 1 & 3) */
	.pp-usp:nth-child(odd)::after {
		content: ''; position: absolute; right: 0; top: 10%; bottom: 10%; width: 1px;
		background: linear-gradient(180deg, transparent, rgba(196, 154, 84, .35), transparent);
	}
	/* horizontale lijn onder de bovenste rij (kind 1 & 2) */
	.pp-usp:nth-child(1)::before, .pp-usp:nth-child(2)::before {
		content: ''; position: absolute; left: 8%; right: 8%; bottom: 0; height: 1px;
		background: linear-gradient(90deg, transparent, rgba(196, 154, 84, .35), transparent);
	}
}
@media (min-width: 992px) {
	.pp-usps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.pp-usp { padding: 0 2rem; }
	.pp-usp:first-child { padding-left: 0; }
	.pp-usp:last-child { padding-right: 0; }
	/* verticale fade-lijn links van kolom 2, 3 en 4 */
	.pp-usp:not(:first-child)::before {
		content: ''; position: absolute; left: 0; top: 6%; bottom: 6%; width: 1px;
		background: linear-gradient(180deg, transparent, rgba(196, 154, 84, .35), transparent);
	}
}
.pp-usp__icon {
	width: 60px; height: 60px;
	display: grid; place-items: center;
	border-radius: 16px;
	border: 1px solid var(--pp-line);
	background: rgba(196, 154, 84, .08);
	box-shadow: 0 0 18px rgba(196, 154, 84, .16);
	color: var(--pp-gold-2);
	margin-bottom: 1.25rem;
	transition: box-shadow .2s var(--ease), transform .2s var(--ease);
}
.pp-usp:hover .pp-usp__icon { transform: translateY(-3px); box-shadow: 0 0 26px rgba(196, 154, 84, .28); }
.pp-usp__icon svg { width: 27px; height: 27px; }
.pp-usp__title { font-size: var(--fs-18); margin-bottom: .5rem; }
.pp-usp p { color: var(--pp-muted); font-size: var(--fs-16); margin: 0; }
@media (max-width: 560px) {
	.pp-usp__icon { width: 48px; height: 48px; border-radius: 13px; margin-bottom: 1rem; }
	.pp-usp__icon svg { width: 22px; height: 22px; }
	.pp-usp__title { font-size: var(--fs-16); }
	.pp-usp p { font-size: var(--fs-14); }
}

/* ---- "Geschikt voor elk type feest" — grote kaart met eventlijst + foto ---- */
.pp-events-card {
	display: grid;
	gap: 2rem;
	background:
		radial-gradient(70% 50% at 12% 0%, rgba(196, 154, 84, .09), transparent 70%),
		linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line-soft);
	border-radius: 22px;
	padding: clamp(1.5rem, 4vw, 3.5rem);
	box-shadow: var(--shadow-card);
}
@media (min-width: 900px) {
	.pp-events-card { grid-template-columns: 1.1fr 1fr; align-items: center; gap: clamp(2rem, 5vw, 4.5rem); }
}
.pp-events-card__media {
	border-radius: var(--radius);
	overflow: hidden;
	border: 1px solid var(--pp-line);
	box-shadow: 0 0 26px rgba(196, 154, 84, .12);
}
.pp-events-card__media img, .pp-events-card__media video { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 1 / 1; }
.pp-event-list { list-style: none; margin: 1.5rem 0 2rem; padding: 0; display: grid; gap: .85rem; }
.pp-event-list li { display: flex; align-items: center; gap: .8rem; font-size: var(--fs-16); }
.pp-event-list__icon {
	flex: none;
	width: 36px; height: 36px;
	display: grid; place-items: center;
	border-radius: 10px;
	border: 1px solid var(--pp-line);
	background: rgba(196, 154, 84, .07);
	color: var(--pp-gold-2);
}
.pp-event-list__icon svg { width: 18px; height: 18px; }

/* ---- WhatsApp-contactblok ---- */
.pp-wa {
	display: flex; align-items: center; gap: 1rem;
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line-soft);
	border-radius: var(--radius);
	padding: 1.25rem 1.4rem;
}
.pp-wa__foto { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 2px solid var(--pp-gold); flex: none; }
.pp-wa__status { display: inline-flex; align-items: center; gap: .4rem; color: var(--pp-ok); font-size: var(--fs-12); font-weight: 700; }
.pp-wa__status::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--pp-ok); box-shadow: 0 0 8px var(--pp-ok); }

/* ---- Hero (homepage): links content, rechts video-kaart met zwevende quote ---- */
.pp-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: min(88svh, 900px);
	padding-block: clamp(4rem, 8vw, 6.5rem) clamp(4.5rem, 9vw, 7.5rem);
	overflow: hidden;
}

/* Twee spotlight-lichtbundels vanaf de bovenrand (achter de content) */
.pp-hero::before,
.pp-hero::after {
	content: '';
	position: absolute;
	top: -12%;
	width: clamp(180px, 22vw, 320px);
	height: 120%;
	pointer-events: none;
	background: linear-gradient(to bottom, rgba(248, 232, 176, .17), rgba(248, 232, 176, .05) 48%, transparent 72%);
	filter: blur(26px);
}
.pp-hero::before { left: 6%; transform: rotate(16deg); transform-origin: top center; }
.pp-hero::after { right: 10%; transform: rotate(-14deg); transform-origin: top center; }
.pp-hero__grid {
	display: grid;
	gap: clamp(2.5rem, 5vw, 4.5rem);
	align-items: center;
	width: 100%;
	/* Boven de grain-overlay (body::before, z-index 1): geen waas over hero-content en video. */
	position: relative;
	z-index: 2;
}
@media (min-width: 992px) {
	.pp-hero__grid { grid-template-columns: 1.05fr .95fr; }
}
/* Display-kop (groot, visueel) + kleine H1-kicker eronder */
.pp-hero__display {
	margin: 0 0 .9rem;
	font-size: var(--fs-56);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -.015em;
	overflow-wrap: break-word;
}
.pp-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	margin: 0 0 1.1rem;
	font-size: var(--fs-14);
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--pp-gold);
	line-height: 1.4;
}
.pp-hero__kicker::before { content: ''; width: 26px; height: 1px; background: var(--pp-gold); flex: none; }

.pp-hero__text { max-width: 560px; }
.pp-hero__cta {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	margin: 2rem 0 1.75rem;
}
/* Reviewbar staat bovenaan de hero-content, boven de display-kop */
.pp-hero .ppt-gbar { margin-bottom: 1.7rem; }
@media (max-width: 640px) {
	.pp-hero .ppt-gbar { margin-bottom: 1.4rem; }
}
.pp-hero__badges {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .6rem 1.8rem;
	color: var(--pp-muted);
	font-size: var(--fs-14);
	font-weight: 600;
}
.pp-hero__badges li { display: flex; align-items: center; gap: .55rem; }
.pp-hero__badges strong { color: var(--pp-white); font-weight: 800; }
.pp-hero__badge-icon {
	display: grid;
	place-items: center;
	width: 30px; height: 30px;
	border-radius: 50%;
	border: 1px solid var(--pp-line);
	background: rgba(196, 154, 84, .08);
	color: var(--pp-gold-2);
	flex: none;
}
.pp-hero__badge-icon svg { width: 15px; height: 15px; }

.pp-hero__media { position: relative; }
.pp-hero__media-frame {
	border-radius: 22px;
	overflow: hidden;
	border: 1px solid var(--pp-line);
	box-shadow: 0 0 34px rgba(196, 154, 84, .14), var(--shadow-card);
	transform: rotate(-1deg);
}
.pp-hero__video {
	width: 100%;
	height: 100%;
	aspect-ratio: 1 / 1.05;
	object-fit: cover;
	display: block;
}
@media (max-width: 991px) {
	.pp-hero__video { aspect-ratio: 1 / 1; }
}
.pp-hero__quote {
	position: absolute;
	right: clamp(-12px, -1vw, -8px);
	bottom: clamp(-20px, -1.5vw, -14px);
	max-width: min(58%, 250px);
	margin: 0;
	padding: .8rem 1rem;
	/* Bewust dekkend (niet doorschijnend), zodat de video er niet doorheen schemert */
	background: linear-gradient(180deg, #2D2D32, #38383E);
	border: 1px solid var(--pp-line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	font-size: var(--fs-14);
}
.pp-hero__quote-label {
	color: var(--pp-gold-2);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.pp-hero__quote blockquote { margin: .4rem 0 .25rem; font-style: italic; color: var(--pp-white); }
.pp-hero__quote figcaption { color: var(--pp-muted); font-size: var(--fs-12); }
@media (max-width: 640px) {
	.pp-hero__quote { max-width: 50%; padding: .5rem .65rem; font-size: .72rem; right: -6px; bottom: -12px; }
	.pp-hero__quote .pp-stars { font-size: .6rem; }
	.pp-hero__quote-label { font-size: .58rem; }
	.pp-hero__quote blockquote { margin: .3rem 0 .2rem; }
	.pp-hero__quote figcaption { font-size: .62rem; }
}

/* Compactere sectie (logobalk e.d.) */
.pp-section--compact { padding-block: clamp(2.5rem, 5vw, 4rem); }
/* Sectie die dicht op de vorige aansluit (bv. banner onder de logobalk) */
.pp-section--flush-top { padding-top: 0; }

/* ---- Zomer-urgentiebanner (binnen de logo-sectie) ---- */
.pp-banner-wrap { margin-top: clamp(2rem, 5vw, 3.25rem); }
.pp-banner {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2.5vw, 1.5rem);
	padding: clamp(1.1rem, 2.5vw, 1.6rem) clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--pp-line);
	border-radius: var(--radius);
	background:
		radial-gradient(120% 140% at 0% 0%, rgba(196, 154, 84, .10), transparent 60%),
		linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	box-shadow: var(--shadow-card);
}
.pp-banner__icon {
	position: relative;
	flex: none;
	display: grid;
	place-items: center;
	width: 56px; height: 56px;
	border-radius: 14px;
	border: 1px solid var(--pp-line);
	background: rgba(196, 154, 84, .08);
	color: var(--pp-gold-2);
	box-shadow: 0 0 16px rgba(196, 154, 84, .14);
}
.pp-banner__icon svg { width: 26px; height: 26px; }
.pp-banner__dot {
	position: absolute;
	top: -4px; right: -4px;
	width: 12px; height: 12px;
	border-radius: 50%;
	background: var(--pp-error);
	border: 2px solid var(--pp-black-2);
	box-shadow: 0 0 8px rgba(228, 87, 46, .7);
}
.pp-banner__body { min-width: 0; }
.pp-banner__label {
	display: block;
	color: var(--pp-gold);
	font-size: var(--fs-12);
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin-bottom: .35rem;
}
.pp-banner__body p { margin: 0; color: var(--pp-muted); font-size: var(--fs-16); }
.pp-banner__body p strong { color: var(--pp-white); font-weight: 700; }
@media (max-width: 560px) {
	.pp-banner { align-items: flex-start; }
	.pp-banner__icon { width: 46px; height: 46px; border-radius: 12px; }
	.pp-banner__icon svg { width: 22px; height: 22px; }
	.pp-banner__body p { font-size: var(--fs-14); }
}

/* ---- Topbalk (aankondiging, gouden gloed) ---- */
.ppt-topbar {
	position: relative; z-index: 101; overflow: hidden;
	text-align: center;
	background: linear-gradient(90deg, var(--pp-gold-deep), var(--pp-gold) 50%, var(--pp-gold-deep));
	color: #1a1206;
	box-shadow: 0 2px 24px rgba(196, 154, 84, .55);
}
.ppt-topbar::before {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(105deg, transparent 42%, rgba(255, 255, 255, .4) 50%, transparent 58%);
	background-size: 220% 100%;
	animation: ppt-topbar-shimmer 5.5s linear infinite;
}
.ppt-topbar__text {
	position: relative;
	margin: 0; padding: .5rem 1rem;
	font-size: var(--fs-14); font-weight: 800; letter-spacing: .01em; line-height: 1.35;
}
@keyframes ppt-topbar-shimmer { to { background-position: -220% 0; } }

/* ---- Header (sticky) ---- */
.ppt-header {
	position: sticky; top: 0; z-index: 100;
	background: rgba(27, 27, 27, .85);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--pp-line-soft);
}
.ppt-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 70px; }
.ppt-header__logo img { height: 52px; width: auto; }
.ppt-nav { display: none; }
@media (min-width: 992px) {
	.ppt-nav { display: flex; gap: 1.75rem; list-style: none; margin: 0; padding: 0; }
	.ppt-nav a { color: var(--pp-white); font-weight: 600; font-size: var(--fs-14); }
	.ppt-nav a:hover { color: var(--pp-gold-2); }
}

/* Mobiele actiegroep (CTA + burger), alleen < 992px */
.ppt-header__mobile { display: flex; align-items: center; gap: .55rem; }
.ppt-header__cta-mobile { padding: .5rem 1.05rem; min-height: 42px; font-size: var(--fs-14); }
@media (min-width: 992px) { .ppt-header__mobile { display: none; } }
@media (max-width: 991px) { .ppt-header__cta { display: none; } }

/* Strak hamburger-icoon (middellijn korter) */
.ppt-burger {
	display: inline-flex; flex-direction: column; justify-content: center; align-items: center;
	gap: 5px; width: 44px; height: 44px; padding: 0;
	background: transparent; border: 0; cursor: pointer;
}
.ppt-burger span {
	display: block; height: 2px; width: 24px; border-radius: 2px;
	background: var(--pp-gold-2);
	transition: transform .25s var(--ease), opacity .2s var(--ease), width .25s var(--ease);
}
.ppt-burger span:nth-child(2) { width: 16px; }
.ppt-burger:hover span:nth-child(2) { width: 24px; }
.ppt-burger[aria-expanded="true"] span { width: 24px; }
.ppt-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ppt-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.ppt-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (min-width: 992px) { .ppt-burger { display: none; } }

/* ---- Mobiel slide-out menu (drawer) ---- */
.ppt-drawer-backdrop {
	position: fixed; inset: 0; z-index: 998;
	background: rgba(0, 0, 0, .6);
	opacity: 0; transition: opacity .3s var(--ease);
}
.ppt-drawer-backdrop.is-open { opacity: 1; }
body.ppt-drawer-open { overflow: hidden; }

.ppt-drawer {
	position: fixed; top: 0; right: 0; z-index: 999;
	width: 90%; max-width: 400px; height: 100dvh;
	display: flex; flex-direction: column;
	background: linear-gradient(180deg, #212126, #1b1b1b);
	border-left: 1px solid rgba(196, 154, 84, .28);
	box-shadow: -22px 0 50px rgba(0, 0, 0, .55);
	transform: translateX(100%);
	transition: transform .32s var(--ease);
	padding: 1.1rem clamp(1.1rem, 5vw, 1.6rem) calc(1.4rem + env(safe-area-inset-bottom));
	overflow-y: auto;
}
.ppt-drawer.is-open { transform: translateX(0); }
@media (min-width: 992px) { .ppt-drawer, .ppt-drawer-backdrop { display: none; } }

.ppt-drawer__head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid var(--pp-line-soft); }
.ppt-drawer__logo img { height: 46px; width: auto; }
.ppt-drawer__close {
	display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; background: transparent;
	border: 1px solid var(--pp-line-soft); border-radius: var(--radius-sm);
	color: var(--pp-gold-2); cursor: pointer;
}
.ppt-drawer__close svg { width: 20px; height: 20px; }

.ppt-drawer__nav { margin-top: .35rem; }
.ppt-drawer__group { margin-top: 1.35rem; }
.ppt-drawer__group:first-child { margin-top: .5rem; }
.ppt-drawer__group-label { display: block; font-size: var(--fs-12); font-weight: 800; text-transform: uppercase; letter-spacing: .16em; color: var(--pp-gold-2); margin-bottom: .1rem; }
.ppt-drawer__list { list-style: none; margin: 0; padding: 0; display: grid; }
.ppt-drawer__list a {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .95rem .25rem;
	color: var(--pp-white); font-weight: 700; font-size: var(--fs-18);
	border-bottom: 1px solid var(--pp-line-soft);
	transition: color .15s var(--ease);
}
.ppt-drawer__list li:last-child a { border-bottom: 0; }
.ppt-drawer__arrow { flex: 0 0 auto; color: var(--pp-muted); transition: color .15s var(--ease), transform .15s var(--ease); }
.ppt-drawer__list a:hover { color: var(--pp-gold-2); }
.ppt-drawer__list a:hover .ppt-drawer__arrow { color: var(--pp-gold-2); transform: translateX(3px); }

.ppt-drawer__foot { margin-top: auto; padding-top: 1.5rem; display: grid; gap: 1rem; }
.ppt-drawer__reviews { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; text-decoration: none; color: var(--pp-muted); font-size: var(--fs-14); }
.ppt-drawer__stars { color: var(--pp-gold); letter-spacing: .1em; }
.ppt-drawer__reviews-text strong { color: var(--pp-white); }
.ppt-drawer__cta { width: 100%; }
.ppt-drawer__promo {
	position: relative; overflow: hidden; text-align: left; padding: 1.05rem 1.15rem; border-radius: var(--radius);
	background: radial-gradient(120% 120% at 90% 8%, rgba(196, 154, 84, .22), transparent 55%), linear-gradient(180deg, rgba(32, 27, 18, .6), rgba(20, 17, 11, .82));
	border: 1px solid rgba(196, 154, 84, .5);
	box-shadow: 0 0 24px rgba(196, 154, 84, .22);
}
.ppt-drawer__promo-pill { display: inline-block; margin-bottom: .55rem; padding: .3rem .72rem; font-size: var(--fs-12); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--pp-gold-2); background: rgba(196, 154, 84, .14); border: 1px solid rgba(196, 154, 84, .4); border-radius: var(--radius-pill); }
.ppt-drawer__promo-head { display: block; color: var(--pp-cream); font-weight: 800; font-size: var(--fs-18); line-height: 1.25; }

/* ---- Zwevende WhatsApp-knop ---- */
.ppt-wa-float {
	position: fixed; z-index: 900;
	right: clamp(14px, 4vw, 26px); bottom: clamp(14px, 4vw, 26px);
	width: 56px; height: 56px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: #25D366; color: #fff;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .4);
	transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.ppt-wa-float svg { width: 30px; height: 30px; position: relative; z-index: 1; }
.ppt-wa-float:hover { transform: translateY(-3px) scale(1.05); color: #fff; box-shadow: 0 12px 30px rgba(0, 0, 0, .5); }
.ppt-wa-float__pulse { position: absolute; inset: 0; border-radius: 50%; border: 2px solid #25D366; animation: ppt-wa-pulse 2.4s ease-out infinite; pointer-events: none; }
@keyframes ppt-wa-pulse { 0% { transform: scale(1); opacity: .6; } 100% { transform: scale(1.7); opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	.ppt-topbar::before, .ppt-wa-float__pulse { animation: none !important; }
}

/* ---- Footer ---- */
.ppt-footer { background: var(--pp-black-2); border-top: 1px solid var(--pp-line-soft); color: var(--pp-muted); font-size: var(--fs-14); }

/* Contact-band bovenaan de footer */
.ppt-footer__contact { text-align: center; padding-block: clamp(2.75rem, 7vw, 4.5rem); border-bottom: 1px solid var(--pp-line-soft); }
.ppt-footer__contact-title { margin: 0 0 .5rem; color: var(--pp-white); font-size: var(--fs-40); font-weight: 800; line-height: 1.15; letter-spacing: -.015em; }
.ppt-footer__contact-sub { margin: 0 0 1.9rem; color: var(--pp-gold-2); font-weight: 700; font-size: var(--fs-22); }
.ppt-footer__contact-btns { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
.ppt-footer__contact-btns .pp-btn { min-width: 210px; }
.ppt-footer__btn-ico { display: inline-flex; }
.ppt-footer__btn-ico svg { width: 18px; height: 18px; }
.ppt-footer__btn-ico--gold { color: var(--pp-gold-2); }
.ppt-footer__btn-ico--wa { color: #25D366; }
@media (max-width: 520px) { .ppt-footer__contact-btns .pp-btn { width: 100%; } }
.ppt-footer__grid {
	display: grid; gap: clamp(2rem, 5vw, 3rem);
	padding-block: clamp(2.5rem, 6vw, var(--space-16)) clamp(2rem, 5vw, 3rem);
	grid-template-columns: 1fr;
}
@media (min-width: 720px) { .ppt-footer__grid { grid-template-columns: 1.6fr 1fr 1.3fr 1fr; } }

.ppt-footer__logo img { height: 76px; width: auto; margin-bottom: 1.25rem; }
.ppt-footer__about { max-width: 34ch; line-height: 1.7; margin: 0 0 1.5rem; font-style: italic; }
.ppt-footer__socials { display: flex; gap: .7rem; }
.ppt-footer__socials a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; border-radius: 50%;
	border: 1px solid var(--pp-line-soft); color: var(--pp-gold-2);
	transition: transform .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease), background .18s var(--ease);
}
.ppt-footer__socials a:hover { transform: translateY(-2px); border-color: var(--pp-gold); color: #14100A; background: var(--pp-gold); }
.ppt-footer__socials svg { width: 19px; height: 19px; }

.ppt-footer__head { color: var(--pp-white); font-size: var(--fs-16); font-weight: 800; letter-spacing: .02em; margin: 0 0 1.1rem; }
.ppt-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.ppt-footer__col a { color: var(--pp-muted); transition: color .16s var(--ease); }
.ppt-footer__col a:hover { color: var(--pp-gold-2); }

.ppt-footer__data { }
.ppt-footer__data li { display: flex; align-items: center; gap: .65rem; }
.ppt-footer__ico { flex: none; display: inline-flex; color: var(--pp-gold); }
.ppt-footer__ico svg { width: 18px; height: 18px; }
.ppt-footer__data strong { color: var(--pp-white); font-weight: 700; }

.ppt-footer__bar { border-top: 1px solid var(--pp-line-soft); }
.ppt-footer__bar-inner {
	display: flex; flex-wrap: wrap; gap: .5rem 1.5rem;
	align-items: center; justify-content: space-between;
	padding-block: 1.3rem;
}
.ppt-footer__copy, .ppt-footer__maker { margin: 0; font-size: var(--fs-14); }
.ppt-footer__copy strong { color: var(--pp-white); }
.ppt-footer__maker a { color: var(--pp-gold-2); font-weight: 700; }
.ppt-footer__maker a:hover { color: var(--pp-gold); }
@media (max-width: 600px) { .ppt-footer__bar-inner { flex-direction: column; align-items: flex-start; text-align: left; } }

/* ---- Generieke pagina-prose ---- */
.pp-prose { max-width: 780px; }
.pp-prose h1 { margin: 0 0 1.25rem; }
.pp-prose h2 { margin: 2rem 0 1rem; }
.pp-prose h3 { margin: 1.75rem 0 .75rem; }
.pp-prose p { margin: 0 0 1.1rem; color: var(--pp-muted); line-height: 1.75; }
.pp-prose a { color: var(--pp-gold-2); text-decoration: underline; text-underline-offset: 3px; }
.pp-prose ul, .pp-prose ol { margin: 0 0 1.1rem 1.2rem; color: var(--pp-muted); line-height: 1.75; }
.pp-prose li { margin-bottom: .4rem; }
.pp-prose img { max-width: 100%; height: auto; border-radius: var(--radius); }

/* ---- Herbruikbare pagina-hero + kruimelpad ---- */
.pp-page-hero {
	text-align: center; position: relative; overflow: hidden;
	padding-block: clamp(3.25rem, 7vw, 5.25rem);
	background:
		radial-gradient(62% 58% at 50% 0%, rgba(196, 154, 84, .18), rgba(196, 154, 84, 0) 60%),
		linear-gradient(180deg, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .1) 55%, rgba(0, 0, 0, 0) 100%);
	border-bottom: 1px solid var(--pp-line-soft);
}
/* Subtiele donkere focus achter de titel: gloed komt van bovenaf, niet door de tekst */
.pp-page-hero::before {
	content: ''; position: absolute; left: 50%; top: 52%; width: min(680px, 88%); height: 92%; transform: translate(-50%, -50%);
	background: radial-gradient(50% 50% at 50% 50%, rgba(10, 10, 12, .55), rgba(10, 10, 12, 0) 68%);
	pointer-events: none;
}
.pp-page-hero__inner { position: relative; z-index: 1; }
.pp-page-hero__title { margin: 0 0 1rem; text-shadow: 0 2px 26px rgba(0, 0, 0, .6); }
.pp-breadcrumb { display: inline-flex; align-items: center; gap: .5rem; font-size: var(--fs-14); }
.pp-breadcrumb a { color: var(--pp-muted); }
.pp-breadcrumb a:hover { color: var(--pp-gold-2); }
.pp-breadcrumb__sep { color: var(--pp-gold); }
.pp-breadcrumb__current { color: var(--pp-gold-2); }

/* Herbruikbare overlay-badge op afbeeldingen */
.pp-img-badge {
	position: absolute; left: clamp(.75rem, 2vw, 1.25rem); bottom: clamp(.75rem, 2vw, 1.25rem);
	display: flex; flex-direction: column; gap: .1rem;
	padding: .7rem 1.1rem; border-radius: var(--radius);
	background: linear-gradient(135deg, var(--pp-gold-deep), var(--pp-gold) 60%, var(--pp-gold-2));
	color: #14100A; box-shadow: 0 10px 26px rgba(0, 0, 0, .45);
}
.pp-img-badge strong { font-size: var(--fs-22); font-weight: 800; line-height: 1; }
.pp-img-badge span { font-size: var(--fs-12); font-weight: 700; }

/* ---- Pagina: Over ons ---- */
.pp-over-story { display: grid; gap: clamp(1.75rem, 4vw, 3rem); align-items: center; }
@media (min-width: 900px) { .pp-over-story { grid-template-columns: .9fr 1.1fr; } }
.pp-over-story__media { position: relative; }
.pp-over-story__media img {
	width: 100%; height: auto; border-radius: var(--radius);
	border: 1px solid var(--pp-line-soft); box-shadow: 0 20px 50px rgba(0, 0, 0, .5);
}
.pp-over-story__content h2 { margin: 0 0 1.25rem; }
.pp-over-story__content p { color: var(--pp-muted); line-height: 1.8; margin: 0 0 1.05rem; }
.pp-over-story__punch { color: var(--pp-gold-2) !important; font-size: var(--fs-22); font-weight: 800; font-style: italic; margin-bottom: 1.5rem !important; }

.pp-over-cards { display: grid; gap: clamp(1rem, 2.5vw, 1.5rem); margin-top: clamp(2rem, 4vw, 2.75rem); }
@media (min-width: 800px) { .pp-over-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pp-over-card__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 52px; height: 52px; border-radius: 50%; margin-bottom: 1rem;
	background: rgba(196, 154, 84, .12); color: var(--pp-gold-2); border: 1px solid var(--pp-line);
}
.pp-over-card__icon svg { width: 24px; height: 24px; }
.pp-over-card h3 { margin: 0 0 .6rem; font-size: var(--fs-22); }
.pp-over-card p { margin: 0; color: var(--pp-muted); line-height: 1.7; }

.pp-over-stats { display: grid; gap: clamp(1rem, 2.5vw, 1.5rem); margin-top: clamp(2rem, 4vw, 2.75rem); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 860px) { .pp-over-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pp-over-stat {
	padding: clamp(1.4rem, 3vw, 1.9rem) 1.1rem;
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line-soft); border-radius: var(--radius);
}
.pp-over-stat__text { margin: .7rem 0 0; color: var(--pp-muted); font-size: var(--fs-14); line-height: 1.6; }

.pp-over-delivery { display: grid; gap: clamp(1.75rem, 4vw, 3rem); align-items: center; }
@media (min-width: 900px) { .pp-over-delivery { grid-template-columns: 1.05fr .95fr; } }
.pp-over-delivery__content h2 { margin: 0 0 1.25rem; }
.pp-over-delivery__content p { max-width: 60ch; }
.pp-over-delivery__media { position: relative; }
.pp-over-delivery__media img {
	width: 100%; height: auto; border-radius: var(--radius);
	border: 1px solid var(--pp-line-soft); box-shadow: 0 20px 50px rgba(0, 0, 0, .5);
}
.pp-over-loc {
	display: inline-flex; align-items: center; gap: .75rem; margin-top: 1.5rem;
	padding: .8rem 1.15rem; border-radius: var(--radius);
	background: rgba(196, 154, 84, .08); border: 1px solid var(--pp-line);
}
.pp-over-loc__ico { display: inline-flex; color: var(--pp-gold-2); }
.pp-over-loc__ico svg { width: 22px; height: 22px; }
.pp-over-loc__meta { display: flex; flex-direction: column; }
.pp-over-loc__meta strong { color: var(--pp-white); font-weight: 700; }
.pp-over-loc__meta span { color: var(--pp-muted); font-size: var(--fs-14); }

.pp-over-cta__card {
	max-width: 720px; margin-inline: auto; text-align: center;
	display: flex; flex-direction: column; align-items: center;
	padding: clamp(2rem, 5vw, 3.25rem) clamp(1.25rem, 4vw, 2.5rem);
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line); border-radius: var(--radius);
	box-shadow: 0 0 40px rgba(196, 154, 84, .12);
}
.pp-over-cta__promo { text-transform: uppercase; letter-spacing: .14em; font-weight: 700; margin-bottom: 1.25rem; }
.pp-over-cta__card h2 { margin: 0 0 .8rem; }
.pp-over-cta__btns { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin-top: 1.75rem; }

/* ---- Pagina: Contact ---- */
.pp-contact__lead { text-align: center; max-width: 62ch; margin: 0 auto; }
.pp-contact__grid { display: grid; gap: clamp(1.25rem, 3vw, 2rem); margin-top: clamp(2rem, 4vw, 3rem); align-items: start; }
@media (min-width: 900px) { .pp-contact__grid { grid-template-columns: 1.4fr .95fr; } }
.pp-contact__form h2, .pp-contact__details h2 { margin: 0 0 .5rem; font-size: var(--fs-28); }
.pp-contact__form-intro { color: var(--pp-muted); margin: 0 0 1.5rem; }

.pp-contact__list { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 1.1rem; }
.pp-contact__list li { display: flex; gap: .9rem; align-items: flex-start; }
.pp-contact__ico {
	flex: none; display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; border-radius: 50%;
	background: rgba(196, 154, 84, .12); color: var(--pp-gold-2); border: 1px solid var(--pp-line);
}
.pp-contact__ico svg { width: 19px; height: 19px; }
.pp-contact__meta { display: flex; flex-direction: column; min-width: 0; }
.pp-contact__label { font-size: var(--fs-12); text-transform: uppercase; letter-spacing: .1em; color: var(--pp-muted); }
.pp-contact__value { color: var(--pp-white); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
a.pp-contact__value:hover { color: var(--pp-gold-2); }
.pp-contact__subvalue { color: var(--pp-muted); font-size: var(--fs-14); }
.pp-contact__wa { width: 100%; }
.pp-contact__promo {
	margin-top: 1.25rem; text-align: center; padding: .85rem 1rem; border-radius: var(--radius-sm);
	background: linear-gradient(90deg, rgba(196, 154, 84, .2), rgba(229, 201, 131, .14));
	border: 1px solid rgba(196, 154, 84, .42);
	color: var(--pp-gold-2); font-weight: 800; font-size: var(--fs-14);
	box-shadow: 0 0 20px rgba(196, 154, 84, .22);
}

/* FluentForm in het donker/goud-jasje */
.pp-contact__form-wrap .ff-el-group { margin-bottom: 1.1rem; }
.pp-contact__form-wrap label,
.pp-contact__form-wrap .ff-el-input--label label { color: var(--pp-white); font-weight: 600; margin-bottom: .4rem; }
.pp-contact__form-wrap .ff-el-input--label label .ff-el-is-required { color: var(--pp-gold); }
.pp-contact__form-wrap input[type="text"],
.pp-contact__form-wrap input[type="email"],
.pp-contact__form-wrap input[type="tel"],
.pp-contact__form-wrap textarea,
.pp-contact__form-wrap .ff-el-form-control {
	width: 100%; max-width: 100%; box-sizing: border-box; background: rgba(27, 27, 27, .6);
	border: 1px solid var(--pp-line-soft); border-radius: var(--radius-sm);
	color: var(--pp-white); padding: .75rem .9rem; font: inherit;
	transition: border-color .16s var(--ease), box-shadow .16s var(--ease);
}
.pp-contact__form-wrap textarea { min-height: 130px; resize: vertical; }
.pp-contact__form-wrap input::placeholder,
.pp-contact__form-wrap textarea::placeholder { color: rgba(189, 189, 189, .6); }
.pp-contact__form-wrap .ff-el-form-control:focus,
.pp-contact__form-wrap input:focus,
.pp-contact__form-wrap textarea:focus {
	outline: none; border-color: var(--pp-gold);
	box-shadow: 0 0 0 3px rgba(196, 154, 84, .2);
}
.pp-contact__form-wrap .ff-btn-submit,
.pp-contact__form-wrap button[type="submit"] {
	min-height: 48px; padding: .8rem 1.8rem; border: 0; cursor: pointer;
	border-radius: var(--radius-pill); font: 700 var(--fs-16)/1.2 'Montserrat', sans-serif;
	color: #14100A; background: linear-gradient(135deg, var(--pp-gold-deep) 0%, var(--pp-gold) 45%, var(--pp-gold-2) 100%);
	box-shadow: var(--glow-gold); transition: transform .18s var(--ease), box-shadow .18s var(--ease);
}
.pp-contact__form-wrap .ff-btn-submit:hover,
.pp-contact__form-wrap button[type="submit"]:hover { transform: translateY(-2px) scale(1.015); }
.pp-contact__form-wrap .ff-message-success { color: var(--pp-ok); }

/* ---- Micro-animaties (rustig) ---- */
@media (prefers-reduced-motion: no-preference) {
	.pp-rise { opacity: 0; transform: translateY(14px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
	.pp-rise.is-visible { opacity: 1; transform: none; }
}

/* ---- Toegankelijkheid / diversen ---- */
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
::selection { background: var(--pp-gold); color: #14100A; }

/* ==========================================================================
   Afleidingsvrije header/footer (funnel + checkout)
   ========================================================================== */
.pp-ckhead { background: var(--pp-black); border-bottom: 1px solid var(--pp-line-soft); padding: .65rem 0; }
.pp-ckhead__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.pp-ckhead__left { display: flex; align-items: center; gap: 1.3rem; }
.pp-ckhead__logo { display: inline-flex; }
.pp-ckhead__logo img { display: block; height: 44px; width: auto; }
.pp-ckhead__back { display: inline-flex; align-items: center; gap: .35rem; color: var(--pp-muted); font-size: var(--fs-14); font-weight: 500; transition: color .15s var(--ease); }
.pp-ckhead__back:hover { color: var(--pp-gold-2); }
.pp-ckhead__usps { list-style: none; display: flex; align-items: center; gap: 1.5rem; margin: 0; padding: 0; }
.pp-ckhead__usp { font-size: var(--fs-12); color: var(--pp-muted); }
.pp-ckhead__usp--check::before { content: "✓"; color: var(--pp-gold-2); font-weight: 700; margin-right: .35rem; }
.pp-ckhead__usp--rating strong { color: var(--pp-white); }
.pp-ckhead__stars { color: var(--pp-gold-2); letter-spacing: 1px; }
@media (max-width: 800px) { .pp-ckhead__usps { gap: 1rem; } .pp-ckhead__usp:not(.pp-ckhead__usp--rating) { display: none; } }

.pp-ckfoot { background: var(--pp-black); border-top: 1px solid var(--pp-line-soft); padding: 1.5rem 0; }
.pp-ckfoot__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.5rem; }
.pp-ckfoot__trust { display: inline-flex; align-items: center; gap: .45rem; margin: 0; font-size: var(--fs-14); color: var(--pp-muted); }
.pp-ckfoot__trust svg { color: var(--pp-gold-2); }
.pp-ckfoot__links { display: flex; flex-wrap: wrap; gap: 1rem; }
.pp-ckfoot__links a { font-size: var(--fs-14); color: var(--pp-muted); transition: color .15s var(--ease); }
.pp-ckfoot__links a:hover { color: var(--pp-gold-2); }
.pp-ckfoot__copy { margin: 0; font-size: var(--fs-12); color: var(--pp-muted); opacity: .8; }
@media (max-width: 640px) { .pp-ckfoot__inner { flex-direction: column; text-align: center; } }

/* Checkout-pagina */
.pp-ck__head { text-align: center; margin-bottom: var(--space-8); }
.pp-ck__head h1 { margin: 0 0 .5rem; }
.pp-ck__head .pp-sub { max-width: 56ch; margin-inline: auto; }
.pp-ck__body { max-width: 1080px; margin-inline: auto; }

/* 2-koloms checkout: gegevens links, bestelling rechts (desktop). */
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; max-width: none; }
.woocommerce-checkout #customer_details .col-2:empty { display: none; }
@media (min-width: 900px) {
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: 1.05fr .95fr; column-gap: var(--space-12); align-items: start; }
	.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; min-width: 0; }
	.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; margin-top: 0; }
	.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; min-width: 0; }
}

/* ==========================================================================
   Boekingsfunnel (/boeking-aanvragen/) — donkere body, kaarten
   ========================================================================== */

/* ---- Kop (donker) ---- */
/* Symmetrische hero-padding: content even ver van boven- als onderrand.
   (De losse padding-bottom: var(--space-8) maakte de onderruimte kleiner.) */
.pp-bk-head { text-align: center; }
.pp-bk-head__eyebrow { display: inline-block; margin-bottom: 1.1rem; padding: .5rem 1.05rem; font-size: var(--fs-12); font-weight: 700; text-transform: uppercase; letter-spacing: .18em; color: var(--pp-gold-2); background: rgba(196, 154, 84, .09); border: 1px solid rgba(196, 154, 84, .38); border-radius: 8px; }
.pp-bk-head h1 { margin: 0 0 .7rem; }
.pp-bk-head__tagline { margin: 0; font-style: italic; color: var(--pp-muted); font-size: var(--fs-18); }

/* ---- Funnel-body (donker) ---- */
.pp-bk {
	--bk-card: #303036; --bk-tile: #3B3B43; --bk-ink: var(--pp-white); --bk-ink-soft: #DAD7D0;
	--bk-line: rgba(255, 255, 255, .16); --bk-line-soft: rgba(255, 255, 255, .10);
	--bk-shadow: 0 12px 34px rgba(0, 0, 0, .45); --bk-field: #26262B;
}
.pp-bk__grid { position: relative; display: grid; grid-template-columns: 1fr; gap: var(--space-6); align-items: start; }
@media (min-width: 980px) { .pp-bk__grid { grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-8); } }
.pp-bk__steps { display: flex; flex-direction: column; gap: var(--space-6); min-width: 0; }

/* ---- Stapkaart ---- */
.pp-bk-step { background: var(--bk-card); border-radius: 18px; box-shadow: var(--bk-shadow); border: 1px solid var(--bk-line-soft); overflow: hidden; transition: opacity .25s var(--ease), border-color .25s var(--ease); }
.pp-bk-step.is-open { border-color: var(--bk-line); }
.pp-bk-step:not(.is-open) { opacity: .55; }
.pp-bk-step__head { position: relative; display: flex; gap: var(--space-4); align-items: flex-start; padding: var(--space-6) var(--space-6) var(--space-4); }
.pp-bk-step__num { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; color: #2A2109; background: linear-gradient(135deg, var(--pp-gold-2), var(--pp-gold)); box-shadow: 0 3px 10px rgba(196, 154, 84, .4); }
.pp-bk-step:not(.is-open) .pp-bk-step__num { background: var(--pp-black-3); color: var(--pp-muted); box-shadow: none; }
.pp-bk-step__title { margin: .25rem 0 .2rem; font-size: var(--fs-22); color: var(--bk-ink); }
.pp-bk-step__opt { font-size: var(--fs-14); font-weight: 500; color: var(--bk-ink-soft); }
.pp-bk-step__hint { margin: 0; color: var(--bk-ink-soft); font-size: var(--fs-14); }
.pp-bk-step__lock { position: absolute; top: var(--space-6); right: var(--space-6); display: inline-flex; align-items: center; color: var(--pp-gold-2); opacity: .75; }
.pp-bk-step.is-open .pp-bk-step__lock { display: none; }
.pp-bk-step__body { padding: 0 var(--space-6) var(--space-6); }
.pp-bk-step:not(.is-open) .pp-bk-step__body { display: none; }

/* ---- Pakketten ---- */
.pp-bk-pkgs { display: grid; grid-template-columns: 1fr; gap: var(--space-4); margin-top: 1.75rem; }
@media (min-width: 640px) { .pp-bk-pkgs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pp-bk-pkg { position: relative; cursor: pointer; display: flex; flex-direction: column; gap: .45rem; padding: 1.2rem 1.1rem; border-radius: 14px; background: var(--bk-tile); border: 1.5px solid var(--bk-line); transition: border-color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease); }
.pp-bk-pkg:hover { transform: translateY(-3px); box-shadow: var(--bk-shadow); }
.pp-bk-pkg:focus-visible { outline: 2px solid var(--pp-gold); outline-offset: 2px; }
.pp-bk-pkg.is-featured {
	border-color: rgba(196, 154, 84, .55);
	background:
		radial-gradient(80% 42% at 50% 0%, rgba(196, 154, 84, .18), transparent 70%),
		linear-gradient(180deg, #3B3220, var(--bk-tile));
	box-shadow: 0 0 30px rgba(196, 154, 84, .18), var(--bk-shadow);
}
@media (min-width: 640px) { .pp-bk-pkg.is-featured { transform: scale(1.04); z-index: 2; } .pp-bk-pkg.is-featured:hover { transform: scale(1.04) translateY(-3px); } }
.pp-bk-pkg.is-selected { border-color: var(--pp-gold); box-shadow: 0 0 0 1.5px var(--pp-gold), var(--bk-shadow); }
.pp-bk-pkg__flag { position: absolute; top: -11px; left: 1.1rem; font-size: var(--fs-12); font-weight: 700; color: #2A2109; background: linear-gradient(135deg, var(--pp-gold-2), var(--pp-gold)); padding: .18rem .6rem; border-radius: var(--radius-pill); box-shadow: 0 4px 10px rgba(196, 154, 84, .35); }
.pp-bk-pkg__radio { position: absolute; top: 1rem; right: 1rem; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--bk-line); transition: border-color .18s, background .18s; }
.pp-bk-pkg.is-selected .pp-bk-pkg__radio { border-color: var(--pp-gold); background: radial-gradient(circle at center, var(--pp-gold) 0 5px, transparent 6px); }
.pp-bk-pkg__name { font-weight: 700; font-size: var(--fs-18); color: var(--pp-cream); padding-right: 1.6rem; }
.pp-bk-pkg__price { font-weight: 700; color: var(--bk-ink); font-size: var(--fs-22); }
.pp-bk-pkg__price s { font-size: .6em; font-weight: 600; color: var(--bk-ink-soft); opacity: .8; margin-right: .25rem; }
.pp-bk-pkg__desc { font-size: var(--fs-14); color: var(--bk-ink-soft); line-height: 1.45; }
.pp-bk-pkg__details { margin-top: auto; padding-top: .55rem; }
.pp-bk-pkg__details summary { list-style: none; cursor: pointer; font-size: var(--fs-14); font-weight: 600; color: var(--pp-gold-2); display: inline-flex; align-items: center; gap: .3rem; }
.pp-bk-pkg__details summary::-webkit-details-marker { display: none; }
.pp-bk-pkg__details summary::after { content: "⌄"; line-height: 1; transition: transform .2s; }
.pp-bk-pkg__details[open] summary::after { transform: rotate(180deg); }
.pp-bk-pkg__details ul { margin: .6rem 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .3rem; }
.pp-bk-pkg__details li { position: relative; padding-left: 1.3rem; font-size: var(--fs-14); color: var(--bk-ink-soft); }
.pp-bk-pkg__details li::before { content: "✓"; position: absolute; left: 0; color: var(--pp-gold-2); font-weight: 700; }

/* ---- Tenten (afbeeldingskaarten, transparante media, contain) ---- */
.pp-bk-tents { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
@media (min-width: 640px) { .pp-bk-tents { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); } }
.pp-bk-tent { position: relative; text-align: center; cursor: pointer; display: flex; flex-direction: column; gap: .12rem; padding: .6rem .6rem 1rem; border-radius: 14px; background: var(--bk-tile); border: 1.5px solid var(--bk-line); transition: border-color .18s var(--ease), box-shadow .18s, transform .18s; }
.pp-bk-tent:hover { transform: translateY(-3px); box-shadow: var(--bk-shadow); }
.pp-bk-tent.is-selected { border-color: var(--pp-gold); box-shadow: 0 0 0 1.5px var(--pp-gold), var(--bk-shadow); }
.pp-bk-tent__check { position: absolute; top: 1rem; right: 1rem; z-index: 2; width: 22px; height: 22px; border-radius: 6px; border: 2px solid rgba(255, 255, 255, .5); background: rgba(0, 0, 0, .3); transition: background .15s, border-color .15s; }
.pp-bk-tent.is-selected .pp-bk-tent__check { border-color: var(--pp-gold); background: var(--pp-gold); }
.pp-bk-tent.is-selected .pp-bk-tent__check::after { content: ""; position: absolute; left: 6px; top: 2px; width: 6px; height: 11px; border: solid #2A2109; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.pp-bk-tent__media { display: block; border-radius: 10px; overflow: hidden; background: transparent; aspect-ratio: 4 / 3; margin-bottom: .6rem; }
.pp-bk-tent__media img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.pp-bk-tent__size { font-weight: 700; color: var(--bk-ink); font-size: var(--fs-14); line-height: 1.3; }
.pp-bk-tent__price { margin-top: .15rem; font-weight: 700; color: var(--pp-gold-2); font-size: var(--fs-14); }

/* ---- Extra's (afbeeldingskaarten, contain) ---- */
.pp-bk-extras { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
@media (min-width: 640px) { .pp-bk-extras { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); } }
.pp-bk-extra { position: relative; text-align: center; cursor: pointer; display: flex; flex-direction: column; gap: .12rem; padding: .6rem .6rem 1rem; border-radius: 14px; background: var(--bk-tile); border: 1.5px solid var(--bk-line); transition: border-color .18s var(--ease), box-shadow .18s, transform .18s; }
.pp-bk-extra:hover { transform: translateY(-3px); box-shadow: var(--bk-shadow); }
.pp-bk-extra.is-active { border-color: var(--pp-gold); box-shadow: 0 0 0 1.5px var(--pp-gold), var(--bk-shadow); }
.pp-bk-extra__check { position: absolute; top: 1rem; right: 1rem; z-index: 2; width: 22px; height: 22px; border-radius: 6px; border: 2px solid rgba(255, 255, 255, .5); background: rgba(0, 0, 0, .3); transition: background .15s, border-color .15s; }
.pp-bk-extra.is-active .pp-bk-extra__check { border-color: var(--pp-gold); background: var(--pp-gold); }
.pp-bk-extra.is-active .pp-bk-extra__check::after { content: ""; position: absolute; left: 6px; top: 2px; width: 6px; height: 11px; border: solid #2A2109; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.pp-bk-extra__media { display: block; border-radius: 10px; overflow: hidden; background: transparent; aspect-ratio: 4 / 3; margin-bottom: .6rem; }
.pp-bk-extra__media img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.pp-bk-extra__name { font-weight: 700; color: var(--bk-ink); font-size: var(--fs-14); line-height: 1.3; }
.pp-bk-extra__tip { font-size: 10px; font-weight: 700; color: #2A2109; background: var(--pp-gold-2); padding: 1px 5px; border-radius: var(--radius-pill); vertical-align: middle; }
.pp-bk-extra__desc { font-size: var(--fs-12); color: var(--bk-ink-soft); line-height: 1.35; }
.pp-bk-extra__price { margin-top: .15rem; font-weight: 700; color: var(--pp-gold-2); font-size: var(--fs-14); }
.pp-bk-extra__per { font-weight: 500; color: var(--bk-ink-soft); }
.pp-bk-extra__qty { margin-top: .5rem; display: inline-flex; align-items: center; gap: .1rem; align-self: center; }
.pp-bk-extra__qty[hidden] { display: none; }
.pp-bk-extra__num { margin-top: .5rem; display: flex; flex-direction: column; gap: .25rem; align-self: center; align-items: center; }
.pp-bk-extra__num[hidden] { display: none; }
.pp-bk-extra__num span { font-size: var(--fs-12); color: var(--bk-ink-soft); }
.pp-bk-extra__num input { width: 84px; padding: .45rem .5rem; text-align: center; border-radius: 8px; background: var(--bk-field); border: 1.5px solid var(--bk-line); color: var(--bk-ink); font: inherit; font-weight: 700; }
.pp-bk-extra__num input:focus { outline: none; border-color: var(--pp-gold); }
.pp-bk-qty__btn { width: 30px; height: 30px; border-radius: 8px; cursor: pointer; font-size: 1.1rem; line-height: 1; background: var(--pp-black-3); border: 1px solid var(--bk-line); color: var(--bk-ink); display: grid; place-items: center; transition: background .15s, border-color .15s; }
.pp-bk-qty__btn:hover { border-color: var(--pp-gold); color: var(--pp-gold-2); }
.pp-bk-qty__val { min-width: 26px; text-align: center; font-weight: 700; color: var(--bk-ink); font-variant-numeric: tabular-nums; }

/* ---- Info-banner (reiskosten) ---- */
.pp-bk-notice { display: flex; gap: .7rem; align-items: center; padding: .85rem 1rem; margin-bottom: var(--space-6); border-radius: 12px; background: linear-gradient(90deg, rgba(196, 154, 84, .16), rgba(196, 154, 84, .05)); border: 1px solid rgba(196, 154, 84, .3); }
.pp-bk-notice__icon { flex: 0 0 auto; color: var(--pp-gold-2); display: inline-flex; }
.pp-bk-notice__text { font-size: var(--fs-14); color: var(--bk-ink); line-height: 1.4; }
.pp-bk-notice__text strong { color: var(--pp-gold-2); }

/* ---- Formulier ---- */
.pp-bk-form { display: flex; flex-direction: column; gap: var(--space-6); }
.pp-bk-fieldset { border: 0; margin: 0; padding: 0; }
.pp-bk-fieldset legend { padding: 0; margin-bottom: .2rem; font-weight: 700; font-size: var(--fs-16); color: var(--bk-ink); }
.pp-bk-fieldset__note { margin: 0 0 .7rem; font-size: var(--fs-12); color: var(--bk-ink-soft); }
.pp-bk-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.pp-bk-form__row--addr { grid-template-columns: 1fr 110px; }
/* Mobiel: datum- en contactvelden onder elkaar (postcode+huisnummer blijven gepaard). */
@media (max-width: 560px) {
	.pp-bk-form__row:not(.pp-bk-form__row--pchn):not(.pp-bk-form__row--addr) { grid-template-columns: minmax(0, 1fr); }
	/* iOS: date-inputs negeren width:100% zonder appearance-reset → ze lopen buiten beeld. */
	.pp-bk-field { min-width: 0; }
	.pp-bk-field input[type="date"] { -webkit-appearance: none; appearance: none; min-width: 0; max-width: 100%; }
}
.pp-bk-field { display: flex; flex-direction: column; gap: .3rem; margin-bottom: .7rem; }
.pp-bk-field > span { font-size: var(--fs-14); color: var(--bk-ink-soft); }
.pp-bk-field input, .pp-bk-field select { width: 100%; min-height: 48px; padding: .7rem .85rem; border-radius: 10px; background: var(--bk-field); border: 1.5px solid var(--bk-line); color: var(--bk-ink); font: inherit; line-height: 1.4; transition: border-color .15s var(--ease); }
.pp-bk-field input:focus, .pp-bk-field select:focus { outline: none; border-color: var(--pp-gold); }
.pp-bk-field input::placeholder { color: rgba(211, 211, 211, .45); }

/* Datumvelden: native date heeft geen placeholder-support. Toon eigen tekst
   ("Selecteer afleverdatum/ophaaldatum") tot er een datum gekozen is (.has-value
   wordt door JS gezet). Zelfde hoogte als de tekstvelden via min-height boven. */
.pp-bk-field input[type="date"] { position: relative; }
.pp-bk-field input[type="date"].pp-bk-date:not(.has-value)::-webkit-datetime-edit { opacity: 0; }
.pp-bk-field input[type="date"].pp-bk-date:not(.has-value)::before {
	content: attr(data-placeholder);
	position: absolute; left: .85rem; top: 50%; transform: translateY(-50%);
	color: rgba(211, 211, 211, .45); pointer-events: none; white-space: nowrap;
}
.pp-bk-field input[type="date"]::-webkit-calendar-picker-indicator { opacity: .55; cursor: pointer; }

/* ---- Samenvatting (sticky) ---- */
.pp-bk-summary { min-width: 0; align-self: stretch; }
@media (min-width: 980px) { .pp-bk-summary__inner { position: sticky; top: 84px; } }
.pp-bk-summary__inner { background: linear-gradient(180deg, var(--pp-black-2), var(--pp-black)); border: 1px solid var(--pp-line); border-radius: 18px; padding: var(--space-6); box-shadow: 0 16px 40px rgba(0, 0, 0, .4); }
.pp-bk-summary__title { font-size: var(--fs-18); margin: 0 0 var(--space-4); padding-bottom: var(--space-3); border-bottom: 1px solid var(--pp-line-soft); color: var(--pp-white); }
.pp-bk-summary__lines { display: flex; flex-direction: column; gap: .5rem; }
.pp-bk-summary__empty { color: var(--pp-muted); font-size: var(--fs-14); margin: 0; }
.pp-bk-line { display: flex; justify-content: space-between; gap: .75rem; font-size: var(--fs-14); }
.pp-bk-line__label { color: var(--pp-white); }
.pp-bk-line__val { color: var(--pp-muted); white-space: nowrap; }
.pp-bk-line__val s { opacity: .5; margin-right: 3px; }
.pp-bk-line__tag { font-size: 10px; font-weight: 700; color: var(--pp-gold-2); border: 1px solid rgba(196, 154, 84, .35); padding: 0 5px; border-radius: var(--radius-pill); }
.pp-bk-summary__meta { margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--pp-line-soft); display: flex; flex-direction: column; gap: .4rem; }
.pp-bk-summary__row { display: flex; justify-content: space-between; font-size: var(--fs-14); color: var(--pp-muted); }
.pp-bk-summary__row--discount { color: var(--pp-ok); }
.pp-bk-summary__per { font-size: .8em; opacity: .7; }
.pp-bk-summary__total { display: flex; justify-content: space-between; align-items: baseline; margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--pp-line); font-weight: 700; font-size: var(--fs-18); color: var(--pp-white); }
.pp-bk-summary__amount { font-size: var(--fs-28); color: var(--pp-gold-2); }
.pp-bk-summary__calc { font-size: var(--fs-16); color: var(--pp-gold-2); font-weight: 600; }
.pp-bk-summary__vat { margin: .3rem 0 var(--space-4); font-size: var(--fs-12); color: var(--pp-muted); }
.pp-bk-calc { width: 100%; margin-bottom: .6rem; background: transparent; color: var(--pp-cream); border: 1.5px solid var(--pp-gold); box-shadow: none; }
.pp-bk-calc:hover { background: rgba(196, 154, 84, .14); color: var(--pp-gold-2); }
.pp-bk-submit { width: 100%; }
.pp-bk-submit:disabled { opacity: .45; pointer-events: none; }
.pp-bk-summary__reassure { margin: var(--space-4) 0 0; text-align: center; font-size: var(--fs-12); color: var(--pp-muted); }

/* ---- Loading overlay ---- */
.pp-bk-loading[hidden] { display: none; }
.pp-bk-loading { position: fixed; inset: 0; z-index: 1200; background: rgba(10, 10, 10, .72); display: grid; place-items: center; backdrop-filter: blur(2px); }
.pp-bk-spinner { width: 44px; height: 44px; border-radius: 50%; border: 3px solid rgba(196, 154, 84, .25); border-top-color: var(--pp-gold-2); animation: pp-spin .8s linear infinite; }
@keyframes pp-spin { to { transform: rotate(360deg); } }

/* ==========================================================================
   WooCommerce checkout (/boeking-afronden/) — zwart/goud
   ========================================================================== */
.woocommerce-checkout .pp-container, body.woocommerce-checkout .entry-content { color: var(--pp-white); }
.woocommerce form .form-row label, .woocommerce-checkout label { color: var(--pp-muted); font-size: var(--fs-14); }
.woocommerce-checkout h3 { color: var(--pp-cream); font-size: var(--fs-22); margin-bottom: var(--space-4); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout select,
.woocommerce .select2-container--default .select2-selection--single {
	background: var(--pp-black); border: 1.5px solid var(--pp-line-soft); color: var(--pp-white);
	border-radius: var(--radius-sm); padding: .7rem .85rem; line-height: 1.4;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce-checkout select:focus { outline: none; border-color: var(--pp-gold); }
.woocommerce .select2-container--default .select2-selection--single { height: auto; }
.woocommerce-checkout #order_review, .woocommerce-checkout .woocommerce-checkout-review-order {
	background: linear-gradient(180deg, var(--pp-black-2), var(--pp-black));
	border: 1px solid var(--pp-line); border-radius: var(--radius); padding: var(--space-6);
}
.woocommerce-checkout #order_review table.shop_table { color: var(--pp-white); border: 0; }
.woocommerce-checkout #order_review th, .woocommerce-checkout #order_review td { border-top: 1px solid var(--pp-line-soft); color: var(--pp-muted); }
.woocommerce-checkout #order_review .order-total .amount,
.woocommerce-checkout #order_review .woocommerce-Price-amount { color: var(--pp-gold-2); font-weight: 700; }
.woocommerce-checkout .wc_payment_methods { list-style: none; margin: 0 0 var(--space-4); padding: 0; }
.woocommerce-checkout .wc_payment_method label { color: var(--pp-cream); font-weight: 600; }
.woocommerce-checkout ul.payment_methods { border-bottom: 1px solid var(--pp-line-soft); }
.woocommerce #payment, .woocommerce-checkout #payment { background: transparent; }
.woocommerce-checkout #payment .payment_box { background: var(--pp-black-3); color: var(--pp-muted); border-radius: var(--radius-sm); }
.woocommerce-checkout #payment .payment_box::before { border-bottom-color: var(--pp-black-3); }
.woocommerce-checkout .ppt-terms-note { color: var(--pp-muted); font-size: var(--fs-12); margin-top: var(--space-3); }
.woocommerce-checkout .ppt-terms-note a { color: var(--pp-gold-2); }
.woocommerce #place_order, .woocommerce-checkout #place_order {
	width: 100%; margin-top: var(--space-4); padding: .95rem 1.5rem; border: 0; cursor: pointer;
	font-weight: 700; font-size: var(--fs-16); border-radius: var(--radius-pill); color: var(--pp-black);
	background: linear-gradient(135deg, var(--pp-gold-2), var(--pp-gold-deep)); box-shadow: var(--glow-gold);
	transition: transform .18s var(--ease);
}
.woocommerce #place_order:hover { transform: translateY(-2px); }
.woocommerce-checkout .woocommerce-info, .woocommerce-checkout .woocommerce-error, .woocommerce-checkout .woocommerce-message {
	background: var(--pp-black-2); border-top: 3px solid var(--pp-gold); color: var(--pp-white); border-radius: var(--radius-sm);
}
/* Order-received (bedankpagina) */
.woocommerce-order .woocommerce-thankyou-order-received { color: var(--pp-cream); font-size: var(--fs-28); }
.woocommerce-order ul.order_details, .woocommerce-order .woocommerce-order-overview {
	list-style: none; padding: var(--space-6); margin: 0 0 var(--space-6); display: flex; flex-wrap: wrap; gap: var(--space-6);
	background: var(--pp-surface); border: 1px solid var(--pp-line); border-radius: var(--radius);
}
.woocommerce-order ul.order_details li { border: 0; color: var(--pp-muted); font-size: var(--fs-12); text-transform: uppercase; letter-spacing: .05em; }
.woocommerce-order ul.order_details li strong { display: block; color: var(--pp-gold-2); font-size: var(--fs-18); text-transform: none; letter-spacing: 0; }
.woocommerce-order .woocommerce-table--order-details { color: var(--pp-white); }
.woocommerce-order .woocommerce-table--order-details th, .woocommerce-order .woocommerce-table--order-details td { border-color: var(--pp-line-soft); color: var(--pp-muted); }

/* ==========================================================================
   Bevestigingspagina (order-received) — feestelijk
   ========================================================================== */
.pp-thanks { max-width: 620px; margin-inline: auto; text-align: center; }
.pp-thanks__celebrate { position: relative; height: 128px; display: grid; place-items: center; margin-bottom: var(--space-4); }
.pp-thanks__badge {
	width: 96px; height: 96px; border-radius: 50%; display: grid; place-items: center; color: #2A2109;
	background: radial-gradient(circle at 35% 30%, var(--pp-gold-2), var(--pp-gold) 55%, var(--pp-gold-deep));
	box-shadow: 0 0 0 10px rgba(196, 154, 84, .12), 0 0 40px rgba(196, 154, 84, .45), 0 14px 30px rgba(0, 0, 0, .5);
	animation: pp-badge-pop .6s var(--ease) both;
}
@keyframes pp-badge-pop { 0% { transform: scale(0); opacity: 0; } 60% { transform: scale(1.12); } 100% { transform: scale(1); opacity: 1; } }
.pp-thanks__badge svg { animation: pp-check-in .5s var(--ease) .35s both; }
@keyframes pp-check-in { from { opacity: 0; transform: scale(.4); } to { opacity: 1; transform: scale(1); } }

/* Confetti */
.pp-confetti { position: absolute; top: 50%; left: 50%; width: 9px; height: 14px; border-radius: 2px; opacity: 0; }
.pp-confetti--1 { background: var(--pp-gold-2); animation: pp-conf-1 1.1s var(--ease) .3s both; }
.pp-confetti--2 { background: var(--pp-cream); animation: pp-conf-2 1.2s var(--ease) .35s both; }
.pp-confetti--3 { background: var(--pp-gold); animation: pp-conf-3 1s var(--ease) .4s both; }
.pp-confetti--4 { background: var(--pp-white); animation: pp-conf-4 1.15s var(--ease) .3s both; }
.pp-confetti--5 { background: var(--pp-gold-2); animation: pp-conf-5 1.25s var(--ease) .45s both; }
.pp-confetti--6 { background: var(--pp-gold-deep); animation: pp-conf-6 1.05s var(--ease) .38s both; }
@keyframes pp-conf-1 { 0% { opacity: 1; transform: translate(0,0) rotate(0); } 100% { opacity: 0; transform: translate(-120px,-46px) rotate(220deg); } }
@keyframes pp-conf-2 { 0% { opacity: 1; transform: translate(0,0) rotate(0); } 100% { opacity: 0; transform: translate(120px,-40px) rotate(-200deg); } }
@keyframes pp-conf-3 { 0% { opacity: 1; transform: translate(0,0) rotate(0); } 100% { opacity: 0; transform: translate(-90px,44px) rotate(180deg); } }
@keyframes pp-conf-4 { 0% { opacity: 1; transform: translate(0,0) rotate(0); } 100% { opacity: 0; transform: translate(96px,48px) rotate(-160deg); } }
@keyframes pp-conf-5 { 0% { opacity: 1; transform: translate(0,0) rotate(0); } 100% { opacity: 0; transform: translate(-150px,10px) rotate(260deg); } }
@keyframes pp-conf-6 { 0% { opacity: 1; transform: translate(0,0) rotate(0); } 100% { opacity: 0; transform: translate(150px,6px) rotate(-240deg); } }

.pp-thanks__title { font-size: var(--fs-40); margin: 0 0 .6rem; }
.pp-thanks__party { -webkit-text-fill-color: initial; }
.pp-thanks__lead { color: var(--pp-muted); font-size: var(--fs-18); max-width: 52ch; margin: 0 auto var(--space-8); }
.pp-thanks__lead strong { color: var(--pp-gold-2); }

/* Samenvattingskaart */
.pp-thanks__card { text-align: left; background: linear-gradient(180deg, var(--pp-black-2), var(--pp-black)); border: 1px solid var(--pp-line); border-radius: 18px; padding: var(--space-6); box-shadow: var(--shadow-card); margin-bottom: var(--space-8); }
.pp-thanks__card-head { display: flex; justify-content: space-between; align-items: center; padding-bottom: var(--space-3); margin-bottom: var(--space-3); border-bottom: 1px solid var(--pp-line-soft); }
.pp-thanks__card-head span:first-child { font-weight: 700; color: var(--pp-cream); }
.pp-thanks__ordernr { font-size: var(--fs-14); color: var(--pp-muted); font-variant-numeric: tabular-nums; }
.pp-thanks__rows { margin: 0; display: flex; flex-direction: column; gap: .55rem; }
.pp-thanks__rows > div { display: flex; justify-content: space-between; gap: 1rem; }
.pp-thanks__rows dt { margin: 0; color: var(--pp-cream); font-size: var(--fs-14); font-weight: 700; }
.pp-thanks__rows dd { margin: 0; color: var(--pp-white); font-size: var(--fs-14); text-align: right; }
.pp-thanks__total { margin-top: .4rem; padding-top: .7rem; border-top: 1px solid var(--pp-line); }
.pp-thanks__total dt { color: var(--pp-white) !important; font-weight: 700; }
.pp-thanks__total dd { color: var(--pp-gold-2) !important; font-weight: 700; font-size: var(--fs-18) !important; }
.pp-thanks__note { margin: var(--space-4) 0 0; font-size: var(--fs-12); color: var(--pp-muted); text-align: center; }

/* Stappen */
.pp-thanks__steps { text-align: left; margin-bottom: var(--space-8); }
.pp-thanks__steps h2 { text-align: center; font-size: var(--fs-22); margin: 0 0 var(--space-6); }
.pp-thanks__steps ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.pp-thanks__steps li { display: flex; gap: var(--space-4); align-items: flex-start; }
.pp-thanks__step-ico { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: var(--pp-gold-2); background: var(--pp-black-3); border: 1px solid var(--pp-line-soft); }
.pp-thanks__steps li.is-done .pp-thanks__step-ico { color: #2A2109; background: linear-gradient(135deg, var(--pp-gold-2), var(--pp-gold)); border-color: transparent; box-shadow: 0 3px 12px rgba(196, 154, 84, .4); }
.pp-thanks__steps li div { display: flex; flex-direction: column; gap: .1rem; }
.pp-thanks__steps li strong { color: var(--pp-white); }
.pp-thanks__steps li span:not(.pp-thanks__step-ico) { color: var(--pp-muted); font-size: var(--fs-14); }

/* Contact */
.pp-thanks__contact { border-top: 1px solid var(--pp-line-soft); padding-top: var(--space-6); }
.pp-thanks__contact > p { color: var(--pp-muted); margin: 0 0 var(--space-4); }
.pp-thanks__contact-btns { display: flex; flex-wrap: wrap; gap: var(--space-3); justify-content: center; margin-bottom: var(--space-4); }
.pp-thanks__home { display: inline-block; color: var(--pp-gold-2); font-size: var(--fs-14); }

@media (prefers-reduced-motion: reduce) {
	.pp-thanks__badge, .pp-thanks__badge svg, .pp-confetti { animation: none; opacity: 1; }
	.pp-thanks__badge { transform: none; }
	.pp-confetti { display: none; }
}

/* ==========================================================================
   Blog — index, archief, kaarten, single (TL;DR, inhoudsopgave, banner)
   ========================================================================== */
.pp-blog__intro { max-width: 62ch; margin: 0 0 1.5rem; }
.pp-blog-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 clamp(1.5rem, 3vw, 2.25rem); }
.pp-blog-tab { padding: .5rem 1.05rem; border-radius: var(--radius-pill); border: 1px solid var(--pp-line-soft); color: var(--pp-muted); font-size: var(--fs-14); font-weight: 600; transition: border-color .15s var(--ease), color .15s var(--ease), background .15s var(--ease); }
.pp-blog-tab:hover { border-color: var(--pp-gold); color: var(--pp-gold-2); }
.pp-blog-tab.is-active { background: var(--pp-gold); color: #14100A; border-color: var(--pp-gold); }

/* Kaart-uitbreiding: tag over de foto, excerpt, meta, fallback */
.pp-post-card__media { position: relative; }
.pp-post-card__media .pp-post-card__tag { position: absolute; top: .7rem; left: .7rem; z-index: 2; align-self: auto; background: rgba(18, 15, 9, .74); padding: .28rem .65rem; border-radius: var(--radius-pill); }
.pp-post-card__excerpt { color: var(--pp-muted); font-size: var(--fs-14); line-height: 1.5; }
.pp-post-card__meta { color: var(--pp-muted); font-size: var(--fs-12); }
.pp-cover-fallback { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: radial-gradient(120% 90% at 30% 20%, rgba(196, 154, 84, .22), transparent 60%), linear-gradient(160deg, #26221A, #14110B); }
.pp-cover-fallback__mark { font-weight: 800; letter-spacing: .12em; text-transform: uppercase; font-size: var(--fs-14); color: rgba(229, 201, 131, .5); }

/* Uitgelicht artikel (blog-index) */
.pp-post-card--featured { margin-bottom: clamp(1.5rem, 3vw, 2rem); }
@media (min-width: 760px) {
	.pp-post-card--featured { flex-direction: row; }
	.pp-post-card--featured .pp-post-card__media { flex: 0 0 52%; aspect-ratio: 16 / 10; }
	.pp-post-card--featured .pp-post-card__body { flex: 1; justify-content: center; padding: clamp(1.5rem, 3vw, 2.5rem); gap: .7rem; }
	.pp-post-card--featured .pp-post-card__title { font-size: var(--fs-28); }
}

/* Single post — hero met hoofdafbeelding */
.pp-postx-hero { position: relative; overflow: hidden; padding: clamp(3rem, 7vw, 5.5rem) 0; text-align: center; background: linear-gradient(155deg, #26221A, #14110B); }
.pp-postx-hero:not(.has-img) { background: radial-gradient(120% 95% at 50% -25%, rgba(196, 154, 84, .13), transparent 58%), linear-gradient(155deg, #201C15, #14110B); }
.pp-postx-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.pp-postx-hero__overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(10, 8, 5, .58) 0%, rgba(10, 8, 5, .8) 100%); }
.pp-postx-hero__in { position: relative; z-index: 2; max-width: 900px; }
.pp-postx-hero__eyebrow { justify-content: center; color: var(--pp-gold-2); }
.pp-postx-hero h1 { margin: .5rem 0 1rem; color: #fff; }
.pp-postx-hero__crumb { font-size: var(--fs-14); color: rgba(255, 255, 255, .78); }
.pp-postx-hero__crumb a { color: var(--pp-gold-2); }
.pp-postx-hero__crumb span { margin: 0 .35rem; }
.pp-postx-hero__crumb-cur { display: inline; color: rgba(255, 255, 255, .7); margin: 0; }

/* Auteur + datum */
.pp-postx-author { display: flex; align-items: center; justify-content: center; gap: .6rem; padding: 1.1rem 1rem; color: var(--pp-muted); font-size: var(--fs-14); border-bottom: 1px solid var(--pp-line-soft); text-align: center; }
.pp-postx-author__avatar { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: var(--pp-black-3); display: grid; place-items: center; color: var(--pp-gold-2); }
.pp-postx-author strong { color: var(--pp-cream); }

.pp-postx-body { padding-top: clamp(2rem, 5vw, 3.5rem); }
.pp-postx__grid { display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
@media (min-width: 1000px) { .pp-postx__grid { grid-template-columns: minmax(0, 1fr) 290px; } }
.pp-postx__main { min-width: 0; }
.pp-postx__prose h2, .pp-postx__prose h3 { scroll-margin-top: 92px; }

/* TL;DR */
.pp-tldr { background: linear-gradient(180deg, rgba(196, 154, 84, .1), rgba(196, 154, 84, .03)); border: 1px solid rgba(196, 154, 84, .3); border-left: 3px solid var(--pp-gold); border-radius: var(--radius-sm); padding: 1.1rem 1.3rem; margin: 0 0 clamp(1.5rem, 3vw, 2rem); }
.pp-tldr__label { display: inline-block; font-size: var(--fs-12); font-weight: 800; letter-spacing: .1em; color: var(--pp-gold-2); margin-bottom: .3rem; }
.pp-tldr__text { margin: 0; color: var(--pp-white); font-size: var(--fs-16); line-height: 1.55; }

/* Inhoudsopgave ("Op deze pagina") — kaart met chevron + nummering */
.pp-toc { border: 1px solid var(--pp-line-soft); border-radius: var(--radius); background: linear-gradient(180deg, var(--pp-black-2), var(--pp-black)); overflow: hidden; }
.pp-toc > summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; font-weight: 700; color: var(--pp-cream); font-size: var(--fs-16); }
.pp-toc > summary::-webkit-details-marker { display: none; }
.pp-toc__chev { flex: 0 0 auto; width: 12px; height: 12px; border-right: 2px solid var(--pp-gold-2); border-bottom: 2px solid var(--pp-gold-2); transform: rotate(-135deg); transition: transform .2s var(--ease); }
.pp-toc[open] .pp-toc__chev { transform: rotate(45deg); }
.pp-toc ol { list-style: none; margin: 0; padding: 0 1rem 1rem; display: flex; flex-direction: column; gap: .05rem; counter-reset: none; }
.pp-toc__item a { display: flex; gap: .55rem; color: var(--pp-muted); font-size: var(--fs-14); text-decoration: none; line-height: 1.4; padding: .34rem .5rem; border-radius: 8px; border-left: 2px solid transparent; transition: color .15s, background .15s; }
.pp-toc__num { flex: 0 0 auto; color: var(--pp-gold-2); font-weight: 700; font-variant-numeric: tabular-nums; }
.pp-toc__item--l3 a { padding-left: 1.4rem; font-size: .82rem; }
.pp-toc__item a:hover { color: var(--pp-cream); background: rgba(196, 154, 84, .08); }
.pp-toc__item.is-active a { color: var(--pp-cream); background: rgba(196, 154, 84, .12); }
.pp-toc--inline { margin: 0 0 1.5rem; }
.pp-postx__aside { display: none; }
@media (min-width: 1000px) {
	.pp-toc--inline { display: none; }
	.pp-postx__aside { display: block; position: sticky; top: 92px; }
}

/* Zijbalk-CTA */
.pp-postx__cta { margin-top: 1.5rem; text-align: center; border: 1px solid var(--pp-line); border-radius: var(--radius); padding: 1.6rem 1.4rem; background: radial-gradient(120% 90% at 50% 0%, rgba(196, 154, 84, .18), transparent 60%), linear-gradient(180deg, var(--pp-black-2), var(--pp-black)); box-shadow: var(--shadow-card); }
.pp-postx__cta-logo { height: 52px; width: auto; margin: 0 auto .8rem; display: block; }
.pp-postx__cta strong { display: block; color: var(--pp-cream); font-size: var(--fs-18); line-height: 1.3; margin-bottom: .5rem; }
.pp-postx__cta p { color: var(--pp-muted); font-size: var(--fs-14); margin: 0 0 1.1rem; }
.pp-postx__cta .pp-btn { width: 100%; }

/* Vorige / volgende */
.pp-postnav { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: clamp(2rem, 4vw, 3rem); padding-top: 1.5rem; border-top: 1px solid var(--pp-line-soft); }
.pp-postnav__link { display: flex; flex-direction: column; gap: .25rem; max-width: 48%; color: var(--pp-white); }
.pp-postnav__link--next { text-align: right; margin-left: auto; }
.pp-postnav__dir { font-size: var(--fs-12); text-transform: uppercase; letter-spacing: .08em; color: var(--pp-gold-2); font-weight: 700; }
.pp-postnav__title { font-weight: 600; font-size: var(--fs-14); line-height: 1.35; }
.pp-postnav__link:hover .pp-postnav__title { color: var(--pp-gold-2); }
@media (max-width: 560px) { .pp-postnav__link { max-width: 100%; } }

/* Homepage-banner midden in het artikel */
.pp-post-banner { margin: clamp(2rem, 4vw, 2.75rem) 0; border-radius: var(--radius); border: 1px solid rgba(196, 154, 84, .35); background: radial-gradient(120% 100% at 0% 0%, rgba(196, 154, 84, .16), transparent 58%), linear-gradient(180deg, var(--pp-black-2), var(--pp-black)); padding: clamp(1.5rem, 3vw, 2.25rem); text-align: center; box-shadow: var(--shadow-card); }
.pp-post-banner__eyebrow { display: block; font-size: var(--fs-12); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--pp-gold-2); margin-bottom: .5rem; }
.pp-post-banner__title { display: block; font-size: var(--fs-22); color: var(--pp-cream); margin-bottom: .5rem; }
.pp-post-banner__text { color: var(--pp-muted); font-size: var(--fs-14); max-width: 48ch; margin: 0 auto 1.15rem; }
/* In de blog-single zit de banner in .pp-prose; .pp-prose p overschrijft anders
   de auto-marge (tekst plakt links). Hogere specificiteit herstelt het centreren. */
.pp-prose .pp-post-banner { text-align: center; }
.pp-prose .pp-post-banner__text { max-width: 48ch; margin: 0 auto 1.15rem; text-align: center; }

.pp-postx__foot { margin-top: clamp(1.5rem, 3vw, 2.5rem); padding-top: 1.3rem; border-top: 1px solid var(--pp-line-soft); }
.pp-postx__back { color: var(--pp-gold-2); font-weight: 600; }

/* Knoppen binnen artikeltekst: prose-linkstijl niet laten overschrijven. */
.pp-prose a.pp-btn { text-decoration: none; }
.pp-prose a.pp-btn--primary { color: #14100A; }
.pp-prose a.pp-btn--ghost { color: var(--pp-gold-2); }

/* Verborgen samenvatting-rijen echt verbergen (class display:flex overschreef [hidden]). */
.pp-bk-summary__row[hidden] { display: none; }

/* Adres-autofill (postcode + huisnr) */
.pp-bk-form__row--pchn { grid-template-columns: 1fr 110px; }
.pp-bk-address-status { margin: -.2rem 0 .8rem; font-size: var(--fs-12); }
.pp-bk-address-status[hidden] { display: none; }
.pp-bk-address-status.is-loading { color: var(--bk-ink-soft); }
.pp-bk-address-status.is-ok { color: var(--pp-ok); }
.pp-bk-address-status.is-warn { color: #E6B25A; }

/* "Totaalprijs berekenen" uit tot alles is ingevuld. */
.pp-bk-calc:disabled { opacity: .45; pointer-events: none; }

/* Ongeldig telefoonnummer in de funnel. */
.pp-bk-field input.is-invalid { border-color: var(--pp-error); }
.pp-bk-field input.is-invalid:focus { border-color: var(--pp-error); }

/* ---- Locaties-overzicht (/locaties/) ---- */
.pp-loc-lead { max-width: 70ch; margin: 0 auto clamp(2rem, 4vw, 3rem); text-align: center; }
.pp-loc-regions { display: grid; gap: clamp(1rem, 2.5vw, 1.5rem); grid-template-columns: 1fr; }
@media (min-width: 720px) { .pp-loc-regions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pp-loc-region { padding: clamp(1.25rem, 3vw, 1.75rem); border-radius: var(--radius); background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2)); border: 1px solid var(--pp-line-soft); }
.pp-loc-region__title { font-size: var(--fs-22); margin: 0 0 .4rem; }
.pp-loc-region__title a { color: var(--pp-white); }
.pp-loc-region__title a:hover { color: var(--pp-gold-2); }
.pp-loc-region__desc { color: var(--pp-muted); font-size: var(--fs-14); margin: 0 0 1rem; line-height: 1.6; }
.pp-loc-cities { display: flex; flex-wrap: wrap; gap: .5rem; }
.pp-loc-city { display: inline-flex; padding: .4rem .85rem; border-radius: var(--radius-pill); background: rgba(196, 154, 84, .09); border: 1px solid rgba(196, 154, 84, .3); color: var(--pp-cream); font-size: var(--fs-14); font-weight: 600; transition: background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease); }
.pp-loc-city:hover { background: var(--pp-gold); color: #14100A; border-color: var(--pp-gold); }

/* ---- Interactieve tools/calculators (.pp-tool) ---- */
.pp-tool-wrap { max-width: 760px; }
.pp-tool { padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--radius); background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2)); border: 1px solid var(--pp-line); box-shadow: var(--bk-shadow, 0 10px 30px rgba(0,0,0,.35)); }
.pp-tool__note { margin: 0 0 1.1rem; font-size: var(--fs-13); color: var(--pp-muted); }
.pp-tool__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
@media (max-width: 560px) { .pp-tool__grid { grid-template-columns: minmax(0, 1fr); } }
.pp-tool__field { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.pp-tool__field--full { grid-column: 1 / -1; }
.pp-tool__field label { font-weight: 700; font-size: var(--fs-13); color: var(--pp-white); }
.pp-tool__field small { color: var(--pp-muted); font-size: var(--fs-12); }
.pp-tool__field input, .pp-tool__field select { width: 100%; min-width: 0; height: 50px; border-radius: 10px; border: 1.5px solid var(--pp-line); background: rgba(0,0,0,.35); color: var(--pp-white); padding: 0 .9rem; font: inherit; font-size: var(--fs-16); transition: border-color .15s var(--ease); }
.pp-tool__field input:focus, .pp-tool__field select:focus { outline: none; border-color: var(--pp-gold); box-shadow: 0 0 0 3px rgba(196,154,84,.22); }
.pp-tool__checks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
@media (max-width: 560px) { .pp-tool__checks { grid-template-columns: minmax(0, 1fr); } }
.pp-tool__chip { display: flex; align-items: center; gap: .5rem; padding: .6rem .75rem; border-radius: 10px; border: 1.5px solid var(--pp-line-soft); background: rgba(0,0,0,.25); cursor: pointer; font-size: var(--fs-14); color: var(--pp-cream); transition: border-color .15s, background .15s; }
.pp-tool__chip:hover { border-color: var(--pp-gold); }
.pp-tool__chip:has(input:checked) { border-color: var(--pp-gold); background: rgba(196,154,84,.12); }
.pp-tool__chip input { accent-color: var(--pp-gold); width: 18px; height: 18px; }
.pp-tool__chip em { color: var(--pp-gold-2); font-style: normal; font-size: var(--fs-12); }
.pp-tool #berekenBtn, .pp-tool__submit { margin-top: 1.2rem; }
.pp-tool__result { margin-top: 1.4rem; padding: 1.25rem; border-radius: 12px; background: rgba(196,154,84,.07); border: 1px solid rgba(196,154,84,.3); }
.pp-tool__result h3 { margin: 0 0 .5rem; color: var(--pp-gold-2); font-size: var(--fs-22); }
.pp-tool__result p { margin: 0 0 .6rem; color: var(--pp-cream); font-size: var(--fs-15); line-height: 1.6; }
.pp-tool__result p.muted { color: var(--pp-muted); font-size: var(--fs-13); }
.pp-tool__result strong { color: var(--pp-white); }
.pp-tool__result a { color: var(--pp-gold-2); }
.ppt-cta-row { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.ppt-cta { display: inline-flex; align-items: center; padding: .6rem 1.1rem; border-radius: var(--radius-pill); border: 1px solid var(--pp-line); color: var(--pp-cream); font-weight: 700; font-size: var(--fs-14); }
.ppt-cta.primary { background: linear-gradient(180deg, var(--pp-gold), var(--pp-gold-deep, #9C7838)); color: #14100A; border-color: var(--pp-gold); }
.pp-tool__trust { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.1rem; color: var(--pp-muted); font-size: var(--fs-13); }
.pp-tool-content { max-width: 760px; margin: 0 auto; }
.pp-tool-content h2 { font-size: var(--fs-28); margin: 2.5rem 0 .8rem; }
.pp-tool-content h3 { font-size: var(--fs-22); margin: 1.75rem 0 .6rem; }
.pp-tool-content p { color: var(--pp-muted); line-height: 1.75; margin: 0 0 1rem; }
.pp-tool-content ul { color: var(--pp-muted); line-height: 1.8; margin: 0 0 1.25rem; padding-left: 1.2rem; }
.pp-tool-content a { color: var(--pp-gold-2); text-decoration: underline; text-underline-offset: 3px; }

.pp-tool-lead { max-width: 640px; margin: 0 auto 1.5rem; text-align: center; }
.pp-tool__result ul { margin: .5rem 0 .75rem; padding-left: 1.2rem; color: var(--pp-cream); }
.pp-tool__result li { margin: .3rem 0; font-size: var(--fs-14); line-height: 1.55; }

/* ---- Content-tabel, tijdlijn, FAQ-accordion (herbruikbaar in gidsen) ---- */
.pp-content-table { width: 100%; border-collapse: collapse; margin: 0 0 1.5rem; font-size: var(--fs-14); }
.pp-content-table th, .pp-content-table td { text-align: left; padding: .7rem .9rem; border-bottom: 1px solid var(--pp-line-soft); color: var(--pp-cream); }
.pp-content-table th { color: var(--pp-gold-2); font-weight: 700; background: rgba(196,154,84,.06); }
.pp-content-table tr:last-child td { border-bottom: none; }
.pp-content-table-wrap { overflow-x: auto; border: 1px solid var(--pp-line); border-radius: 12px; margin: 0 0 1.5rem; }
.pp-content-table-wrap .pp-content-table { margin: 0; }

.pp-todo { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin: 0 0 1.5rem; }
.pp-todo__block { padding: 1.1rem 1.2rem; border-radius: 12px; background: rgba(0,0,0,.30); border: 1px solid var(--pp-line-soft); }
.pp-todo__label { display: inline-block; font-size: var(--fs-12); font-weight: 700; text-transform: uppercase; letter-spacing: .8px; color: var(--pp-gold-2); background: rgba(196,154,84,.10); border: 1px solid rgba(196,154,84,.22); border-radius: 6px; padding: 4px 10px; margin-bottom: .75rem; }
.pp-todo__block ul { margin: 0; padding-left: 1.1rem; color: var(--pp-cream); line-height: 1.7; font-size: var(--fs-14); }

/* Gids-FAQ (feest-organiseren e.d.): eigen namespace .pp-guide-faq zodat het
   NIET botst met de FAQ-pagina/nachtclub/steden die .pp-faq per item gebruiken. */
.pp-guide-faq { max-width: 760px; margin: 0 auto; }
.pp-guide-faq__item { border-bottom: 1px solid var(--pp-line-soft); }
.pp-guide-faq__item summary { list-style: none; cursor: pointer; padding: 1.1rem 2.5rem 1.1rem 0; position: relative; font-weight: 700; color: var(--pp-white); font-size: var(--fs-16); }
.pp-guide-faq__item summary::-webkit-details-marker { display: none; }
.pp-guide-faq__item summary::after { content: "+"; position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: var(--pp-gold-2); transition: transform .2s var(--ease); }
.pp-guide-faq__item[open] summary::after { content: "\2212"; }
.pp-guide-faq__item .pp-faq__a { padding: 0 0 1.2rem; color: var(--pp-muted); line-height: 1.75; font-size: var(--fs-15); }
.pp-guide-faq__item .pp-faq__a ul { margin: .5rem 0; padding-left: 1.2rem; }

/* ---- Social proof: "recent geboekt"-melding linksonder ---- */
.ppt-proof {
	position: fixed; left: clamp(12px, 3vw, 22px); bottom: clamp(12px, 3vw, 22px); z-index: 60;
	width: min(340px, calc(100vw - 24px));
	display: flex; align-items: center; gap: 12px;
	padding: 12px 38px 12px 12px; border-radius: 14px;
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	border: 1px solid var(--pp-line); box-shadow: 0 14px 36px rgba(0, 0, 0, .5);
	color: var(--pp-white);
	transform: translateY(150%); opacity: 0;
	transition: transform .5s var(--ease), opacity .4s var(--ease);
	will-change: transform, opacity;
}
.ppt-proof.is-visible { transform: translateY(0); opacity: 1; }
.ppt-proof__icon { flex: none; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: rgba(196, 154, 84, .16); border: 1px solid var(--pp-gold); color: var(--pp-gold-2); }
.ppt-proof__icon svg { width: 20px; height: 20px; }
.ppt-proof__body { min-width: 0; line-height: 1.35; }
.ppt-proof__name { font-weight: 700; font-size: var(--fs-14); color: var(--pp-white); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ppt-proof__act { font-size: var(--fs-13); color: var(--pp-cream); }
.ppt-proof__act b { color: var(--pp-gold-2); font-weight: 700; }
.ppt-proof__time { display: flex; align-items: center; gap: 5px; margin-top: 3px; font-size: 11px; color: var(--pp-muted); }
.ppt-proof__time svg { width: 12px; height: 12px; flex: none; }
.ppt-proof__close { position: absolute; top: 7px; right: 8px; width: 22px; height: 22px; padding: 0; border: 0; background: none; color: var(--pp-muted); font-size: 17px; line-height: 1; cursor: pointer; border-radius: 6px; }
.ppt-proof__close:hover { color: var(--pp-white); }
@media (max-width: 480px) {
	.ppt-proof { left: 10px; bottom: 10px; width: min(290px, calc(100vw - 20px)); padding: 10px 32px 10px 10px; gap: 10px; border-radius: 12px; }
	.ppt-proof__icon { width: 36px; height: 36px; }
	.ppt-proof__name { font-size: var(--fs-13); }
	.ppt-proof__act { font-size: var(--fs-12); }
}
@media (prefers-reduced-motion: reduce) { .ppt-proof { transition: opacity .35s ease; transform: none; } .ppt-proof:not(.is-visible) { transform: none; } }

.pp-thanks__discount dd { color: var(--pp-gold-2); font-weight: 700; }
.pp-thanks__discount dt { color: var(--pp-muted); }

/* ---- Interne linkstructuur: locatie-chips (stadspagina + blog) ---- */
.pp-city-related { text-align: center; }
.pp-city-related__links { display: flex; flex-wrap: wrap; gap: .55rem; justify-content: center; max-width: 900px; margin: 1.25rem auto 0; }
.pp-city-related__chip { display: inline-flex; align-items: center; padding: .5rem 1rem; border-radius: var(--radius-pill); border: 1px solid var(--pp-line); background: rgba(196, 154, 84, .06); color: var(--pp-cream); font-size: var(--fs-14); font-weight: 600; text-decoration: none; transition: border-color .15s var(--ease), background .15s var(--ease); }
.pp-city-related__chip:hover { border-color: var(--pp-gold); background: rgba(196, 154, 84, .14); color: var(--pp-white); }
.pp-city-related__chip--all { border-color: var(--pp-gold); color: var(--pp-gold-2); }
.pp-city-related__hub { margin: 1.4rem 0 0; color: var(--pp-muted); font-size: var(--fs-14); }
.pp-city-related__hub a { color: var(--pp-gold-2); text-decoration: none; font-weight: 600; }
.pp-city-related__hub a:hover { text-decoration: underline; }
/* Blog-variant */
.pp-blog-locations { margin: 2rem 0; padding: 1.25rem 1.4rem; border-radius: var(--radius); border: 1px solid var(--pp-line-soft); background: rgba(0, 0, 0, .25); }
.pp-blog-locations__title { display: block; color: var(--pp-white); font-size: var(--fs-16); margin-bottom: .9rem; }
.pp-blog-locations .pp-city-related__links { justify-content: flex-start; margin-top: 0; }

/* ============ Photobooth-landingspagina ============ */
/* Emoji-icoon in over-cards (photobooth gebruikt emoji i.p.v. svg) */
.pp-over-card__icon { font-size: 26px; line-height: 1; }

/* Media-placeholder (als er nog geen foto/video is ingesteld via ACF) */
.pp-media-ph {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	gap: .6rem; width: 100%; aspect-ratio: 4 / 3; border-radius: var(--radius);
	border: 1px dashed var(--pp-line); color: var(--pp-gold-2);
	background:
		radial-gradient(120% 120% at 30% 20%, rgba(196, 154, 84, .10), transparent 60%),
		linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
}
.pp-media-ph__icon { font-size: 40px; line-height: 1; opacity: .85; }
.pp-media-ph__label { font-size: var(--fs-14); color: var(--pp-muted); letter-spacing: .02em; }

/* Pakketten */
.pp-pb-pkgs { display: grid; gap: clamp(1rem, 2.5vw, 1.5rem); margin-top: clamp(2rem, 4vw, 2.75rem); }
@media (min-width: 860px) { .pp-pb-pkgs { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 1.5rem; margin-top: 4.25rem; } }
.pp-pb-pkg {
	position: relative; display: flex; flex-direction: column; min-width: 0;
	padding: clamp(1.6rem, 3vw, 2.1rem) clamp(1.3rem, 2.4vw, 1.7rem);
	border-radius: var(--radius); border: 1px solid var(--pp-line-soft);
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
}
.pp-pb-pkg.is-featured {
	border-color: var(--pp-gold); box-shadow: 0 24px 60px rgba(0, 0, 0, .5);
	background:
		radial-gradient(120% 100% at 50% 0%, rgba(196, 154, 84, .16), transparent 55%),
		linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
}
@media (min-width: 860px) { .pp-pb-pkg.is-featured { transform: scale(1.045); z-index: 2; } }
.pp-pb-pkg__badge {
	position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
	padding: .35rem .9rem; border-radius: 999px; white-space: nowrap;
	background: var(--pp-gold); color: #1B1B1B; font-size: var(--fs-14); font-weight: 700;
}
.pp-pb-pkg__tag { color: var(--pp-gold-2); font-size: var(--fs-14); letter-spacing: .08em; text-transform: uppercase; }
.pp-pb-pkg__name { margin: .35rem 0 .5rem; font-size: var(--fs-32, 1.75rem); }
.pp-pb-pkg__price { margin: 0 0 1.2rem; color: var(--pp-white); font-size: 1.9rem; font-weight: 700; line-height: 1.1; }
.pp-pb-pkg__price span { display: block; color: var(--pp-muted); font-size: var(--fs-14); font-weight: 500; }
.pp-pb-pkg__price small { color: var(--pp-muted); font-size: var(--fs-14); font-weight: 500; }
.pp-pb-pkg__feats { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .7rem; }
.pp-pb-pkg__feats li { position: relative; padding-left: 1.7rem; color: var(--pp-muted); line-height: 1.5; }
.pp-pb-pkg__feats li::before {
	content: "\2713"; position: absolute; left: 0; top: 0;
	color: var(--pp-gold-2); font-weight: 700;
}
.pp-pb-pkg__cta { margin-top: auto; text-align: center; }
.pp-pb-note { margin: 1.5rem 0 0; text-align: center; color: var(--pp-muted); font-size: var(--fs-14); }

/* Cross-sell naar discotenten */
.pp-pb-cross { display: grid; gap: clamp(1.75rem, 4vw, 3rem); align-items: center; }
@media (min-width: 900px) { .pp-pb-cross { grid-template-columns: 1.05fr .95fr; } }
.pp-pb-cross__content h2 { margin: 0 0 1.1rem; }
.pp-pb-cross__content .pp-sub { max-width: 56ch; margin-bottom: 1.6rem; }
.pp-pb-cross__media { position: relative; min-width: 0; }
.pp-pb-cross__media img, .pp-pb-cross__media video {
	width: 100%; height: auto; border-radius: var(--radius);
	border: 1px solid var(--pp-line-soft); box-shadow: 0 20px 50px rgba(0, 0, 0, .5);
}
.pp-city-hero__media video { width: 100%; height: auto; border-radius: var(--radius); border: 1px solid var(--pp-line-soft); box-shadow: 0 20px 50px rgba(0, 0, 0, .5); }

/* ---- Photobooth: rijke secties ---- */
/* Hero-bullets */
.pp-pb-herobullets { list-style: none; margin: 1.5rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .55rem 1.4rem; }
.pp-pb-herobullets li { color: var(--pp-white); font-size: var(--fs-14); font-weight: 600; }

/* Trust-strip */
.pp-pb-trust { border-top: 1px solid var(--pp-line-soft); border-bottom: 1px solid var(--pp-line-soft); background: rgba(0, 0, 0, .28); }
.pp-pb-trust__row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .8rem 2.2rem; padding: 1.1rem 0; }
.pp-pb-trust__item { color: var(--pp-white); font-size: var(--fs-14); font-weight: 600; letter-spacing: .01em; }

/* Check-lijst (showcase + maatwerk) */
.pp-pb-check { list-style: none; margin: 1.4rem 0 1.8rem; padding: 0; display: grid; gap: .7rem; }
.pp-pb-check li { position: relative; padding-left: 1.9rem; color: var(--pp-muted); line-height: 1.55; }
.pp-pb-check li::before {
	content: "\2713"; position: absolute; left: 0; top: 0; width: 1.3rem; height: 1.3rem;
	display: inline-flex; align-items: center; justify-content: center; border-radius: 50%;
	background: rgba(196, 154, 84, .14); color: var(--pp-gold-2); font-size: .72rem; font-weight: 700;
}

/* Showcase + maatwerk (2-koloms met media) */
.pp-pb-showcase, .pp-pb-custom, .pp-pb-value, .pp-pb-occ, .pp-pb-advisor {
	display: grid; gap: clamp(1.75rem, 4vw, 3rem); align-items: center;
}
@media (min-width: 900px) {
	.pp-pb-showcase { grid-template-columns: .95fr 1.05fr; }
	.pp-pb-custom, .pp-pb-occ { grid-template-columns: 1.05fr .95fr; }
	.pp-pb-value { grid-template-columns: 1.05fr .95fr; }
	.pp-pb-advisor { grid-template-columns: .5fr 1fr; }
}
.pp-pb-showcase__media, .pp-pb-custom__media, .pp-pb-occ__media, .pp-pb-value, .pp-pb-showcase__content, .pp-pb-custom__content, .pp-pb-occ__content { min-width: 0; }
.pp-pb-showcase__media img, .pp-pb-showcase__media video,
.pp-pb-custom__media img, .pp-pb-custom__media video,
.pp-pb-occ__media img, .pp-pb-occ__media video {
	width: 100%; height: auto; border-radius: var(--radius);
	border: 1px solid var(--pp-line-soft); box-shadow: 0 20px 50px rgba(0, 0, 0, .5);
}
.pp-pb-showcase__content h2, .pp-pb-custom__content h2, .pp-pb-value__content h2, .pp-pb-occ__content h2 { margin: .3rem 0 1rem; }

/* Value-chart (foto's per uur) */
.pp-pb-chart {
	display: flex; align-items: flex-end; justify-content: space-between; gap: .5rem;
	height: clamp(200px, 34vw, 300px); padding: 1.4rem 1.2rem 2.4rem;
	border-radius: var(--radius); border: 1px solid var(--pp-line-soft);
	background: linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
}
.pp-pb-chart__bar {
	position: relative; flex: 1 1 0; min-width: 0; height: var(--h);
	border-radius: 8px 8px 0 0;
	background: linear-gradient(180deg, var(--pp-gold-2), var(--pp-gold));
	box-shadow: 0 0 22px rgba(196, 154, 84, .28);
}
.pp-pb-chart__time { position: absolute; bottom: -1.7rem; left: 0; right: 0; text-align: center; color: var(--pp-muted); font-size: .72rem; }

/* Vergelijkingstabel */
.pp-pb-compare__table {
	margin-top: clamp(2rem, 4vw, 2.75rem); border-radius: var(--radius); overflow: hidden;
	border: 1px solid var(--pp-line-soft);
}
.pp-pb-compare__head, .pp-pb-compare__row {
	display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1.15fr); align-items: center;
}
.pp-pb-compare__head { background: rgba(0, 0, 0, .3); }
.pp-pb-compare__head span { padding: .9rem .8rem; font-size: var(--fs-14); color: var(--pp-muted); font-weight: 700; }
.pp-pb-compare__col--us { color: var(--pp-white); }
.pp-pb-compare__best { display: none; }
@media (min-width: 620px) { .pp-pb-compare__best { display: inline-block; margin-left: .5rem; padding: .15rem .55rem; border-radius: 999px; background: var(--pp-gold); color: #1B1B1B; font-size: .68rem; font-weight: 700; vertical-align: middle; } }
.pp-pb-compare__row { border-top: 1px solid var(--pp-line-soft); }
.pp-pb-compare__row > span { padding: .85rem .8rem; min-width: 0; font-size: var(--fs-14); line-height: 1.4; }
.pp-pb-compare__label { color: var(--pp-white); font-weight: 700; }
.pp-pb-compare__other { color: var(--pp-muted); }
.pp-pb-compare__win { color: var(--pp-white); background: rgba(196, 154, 84, .07); font-weight: 600; }
.pp-pb-compare__x, .pp-pb-compare__v { display: inline-flex; margin-right: .45rem; font-weight: 700; }
.pp-pb-compare__x { color: #C56; }
.pp-pb-compare__v { color: var(--pp-gold-2); }

/* Fotogalerij */
.pp-pb-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.7rem, 2vw, 1.1rem); margin-top: clamp(2rem, 4vw, 2.75rem); }
@media (min-width: 760px) { .pp-pb-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pp-pb-gallery__tile { min-width: 0; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--pp-line-soft); }
.pp-pb-gallery__tile img { width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
.pp-pb-gallery__tile .pp-media-ph { aspect-ratio: 1 / 1; border: none; border-radius: 0; }

/* Gelegenheden-lijst */
.pp-pb-occ__list { list-style: none; margin: 1.3rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem 1rem; }
.pp-pb-occ__list li { color: var(--pp-white); font-weight: 600; font-size: var(--fs-16, 1rem); }

/* Dekking */
.pp-pb-coverage { text-align: center; }
.pp-pb-coverage .pp-city-related__links { justify-content: center; }
.pp-pb-coverage__cta { margin-top: 1.8rem; }

/* Adviseur-kaart */
.pp-pb-advisor__photo { min-width: 0; }
.pp-pb-advisor__photo img { width: 100%; max-width: 260px; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--radius); border: 1px solid var(--pp-line-soft); }
.pp-media-ph--round { aspect-ratio: 1 / 1; max-width: 260px; border-radius: var(--radius); }
.pp-pb-advisor__content h2 { margin: .3rem 0 1rem; }
.pp-pb-advisor__name { margin: 0 0 1.4rem; color: var(--pp-white); font-weight: 700; }
.pp-pb-advisor__name span { display: block; color: var(--pp-muted); font-weight: 500; font-size: var(--fs-14); }

/* Doorgestreepte oude prijs in pakketkaart */
.pp-pb-pkg__price del { color: var(--pp-muted); font-size: 1.1rem; font-weight: 500; }

/* 24 uur inclusief-band */
.pp-pb-day {
	display: grid; gap: clamp(1.5rem, 4vw, 2.6rem); align-items: center;
	padding: clamp(1.8rem, 4vw, 3rem) clamp(1.4rem, 3.5vw, 2.8rem);
	border-radius: var(--radius); border: 1px solid var(--pp-gold);
	background:
		radial-gradient(120% 130% at 12% 20%, rgba(196, 154, 84, .20), transparent 55%),
		linear-gradient(180deg, var(--pp-surface), var(--pp-surface-2));
	box-shadow: 0 24px 60px rgba(0, 0, 0, .45);
}
@media (min-width: 780px) { .pp-pb-day { grid-template-columns: auto 1fr; } }
.pp-pb-day__lead { display: flex; justify-content: center; min-width: 0; }
.pp-pb-day__num {
	display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
	width: clamp(120px, 26vw, 170px); height: clamp(120px, 26vw, 170px); border-radius: 50%;
	background: rgba(196, 154, 84, .10); border: 2px solid var(--pp-gold);
	color: var(--pp-gold-2); font-size: clamp(2.8rem, 8vw, 4rem); font-weight: 800; line-height: 1;
	box-shadow: 0 0 40px rgba(196, 154, 84, .25) inset;
}
.pp-pb-day__num small { font-size: .28em; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--pp-muted); margin-top: .35rem; }
.pp-pb-day__content { min-width: 0; }
.pp-pb-day__content h2 { margin: .3rem 0 1rem; }
.pp-pb-day__content .pp-sub { max-width: 58ch; }
.pp-pb-day__points { list-style: none; margin: 1.3rem 0 1.7rem; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem .9rem; }
.pp-pb-day__points li {
	padding: .5rem .9rem; border-radius: 999px; border: 1px solid var(--pp-line);
	background: rgba(0, 0, 0, .22); color: var(--pp-white); font-size: var(--fs-14); font-weight: 600;
}
