/* design-2026.css: 1-op-1 kopie van premiumpartytent.nl (actuele versie, gesynchroniseerd 9 okt 2026). Bovenaan het --pp-palet (staat bij PPT in main.css). */
:root{--pp-black:#191817;--pp-black-2:#222120;--pp-black-3:#2E2C2A;--pp-surface:rgba(66, 63, 57, .97);--pp-surface-2:rgba(46, 44, 40, .97);--pp-gold:#C49A54;--pp-gold-2:#E5C983;--pp-gold-deep:#9C7838;--pp-cream:#F8E8B0;--pp-white:#F6F3EA;--pp-muted:#CFC9C0;--pp-line:rgba(196, 154, 84, .26);--pp-line-soft:rgba(250, 245, 235, .10);--pp-ok:#58B368;--pp-error:#E4572E;--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);--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)}
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/montserrat-var.woff2') format('woff2');
}
/* ==========================================================================
   PREMIUM PARTYTENT — DESIGNSYSTEEM 2026
   ==========================================================================

   Zo zit het ontwerp in elkaar. Lees dit voordat je iets wijzigt; de meeste
   aanpassingen hoeven maar op één plek te gebeuren.

   ---------------------------------------------------------------------------
   1. KLEUR
   ---------------------------------------------------------------------------
   Basis blijft zwart/goud uit het logo (--pp-gold, --pp-gold-2, --pp-cream).
   Nieuw is --cx-paper: een warme crème voor "feiten"-secties. Ritme van de
   pagina: donker (sfeer) → crème (feiten) → donker. Puur wit gebruiken we
   nooit als vlak; dat leest als een gat in de pagina.

   ---------------------------------------------------------------------------
   2. HET GOUDEN VLAK  (.cx-blok + .cx-blok__vlak)
   ---------------------------------------------------------------------------
   Het handelsmerk van dit ontwerp: achter een beeld of kaart ligt een gouden
   vlak dat --cx-off naar rechtsonder uitsteekt (9px desktop, 7px mobiel).

   REGELS:
   - Het vlak zit ALTIJD om precies één beeld of één kaart. Nooit om een blok
     waar ook losse tekst in staat, anders loopt het goud achter je tekst door.
   - Het element met .cx-blok moet zelf een border-radius hebben: het vlak erft
     die met `border-radius: inherit`. Vergeet je dat, dan krijg je een
     rechthoek achter een afgeronde kaart.
   - Kinderen die zelf absoluut gepositioneerd zijn (stickers, vlaggetjes)
     krijgen `data-los`, anders duwt de stapelregel ze in de flow.
   - Voor losse elementen (badge, overzichtspaneel) mag het ook met
     box-shadow: 9px 9px 0 goud — zelfde effect, minder markup.

   ---------------------------------------------------------------------------
   3. TYPOGRAFIE
   ---------------------------------------------------------------------------
   Montserrat voor alles, Caveat voor de handgeschreven accenten (.cx-hand).
   - Koppen (.cx-h2, .cx-paginakop) staan in gewone zinsvorm: alleen de eerste
     letter een hoofdletter. Kapitalen zijn voorbehouden aan de kleine labels
     (eyebrows, pills, kruimelpad, knoplabels), niet aan koppen.
     Eén accentwoord per kop staat in Josefin Sans (.cx-mark), niet in de pen van
     handgeschreven taglines, in goud. Meestal het laatste woord. Let op de
     line-height van .72: die houdt de regelhoogte gelijk aan de rest van de
     kop. Zonder dat duwt het grotere font tweeregelige koppen uit elkaar.
   - Elke sectie opent met dezelfde opbouw: handgeschreven regel → kop →
     optionele zin. Gebruik cx_kop() zodat dat ritme overal gelijk is.
   - De handgeschreven regel staat 1.6rem boven de kop: de rotatie eet een
     deel van die ruimte op, vandaar meer dan je zou verwachten.

   ---------------------------------------------------------------------------
   4. KNOPPEN
   ---------------------------------------------------------------------------
   - .cx-btn--goud   hoofdactie: gouden pill, harde zwarte schaduw, pijl naar
                     rechtsboven (via ::after, volgt de tekstkleur).
   - .cx-btn--lijn   tweede keus: zelfde vorm, gouden rand op een derde
                     dekking, witte letters, geen schaduw.
   - .cx-btn--zwart  voor lichte secties.
   - .cx-link        derde niveau: geen knop maar een tekstlink in kapitalen
                     met pijl naar rechts. Gebruik deze naast een hoofdknop.
   Regel: per blok één hoofdactie. Een knop die niets kan doen tonen we niet;
   dan komt er een zin die uitlegt wat er eerst moet gebeuren.

   ---------------------------------------------------------------------------
   5. SECTIES EN RASTERS
   ---------------------------------------------------------------------------
   .cx-sec (donker) / .cx-sec--donker (paneel) / .cx-sec--licht (crème).
   .cx-wrap is de container (max --container, 1340px voor de pakketten).
   Rasters altijd met minmax(0,1fr) en min-width:0 op de kinderen: anders
   duwt lange inhoud de kolom breder dan het scherm.

   ---------------------------------------------------------------------------
   6. MOBIEL
   ---------------------------------------------------------------------------
   Let op bij het omdraaien van de volgorde op mobiel: de stickers (.cx-st)
   staan absoluut en steken 24px boven hun blok uit, en het gouden vlak achter
   .cx-blok loopt --cx-off (9px) naar rechtsonder. Schuift zo'n blok onder een
   knop of kop, geef het dan margin-top mee, anders valt de sticker daar
   overheen. Zie de regel bij .cx-over > .cx-blok in het 899px-blok.
   ---------------------------------------------------------------------------
   De meeste bezoekers komen op hun telefoon. Vaste afspraken:
   - Productkaarten blijven twee naast elkaar, ook op 375px.
   - In de hero staat de tekst boven het beeld.
   - Knoppen over de volle breedte, terug-links eronder.
   - Nooit horizontale overloop: controleer met
     document.documentElement.scrollWidth - clientWidth === 0.

   ---------------------------------------------------------------------------
   7. WAT NIET VAN ONS IS
   ---------------------------------------------------------------------------
   De funnel (.pp-bk-*), de checkout (WooCommerce) en de galerij (.pp-gallery)
   houden hun oorspronkelijke markup, omdat daar JavaScript aan hangt die
   rekent, valideert en verstuurt. Wij zetten daar alleen een nieuwe laag
   overheen. Let op: eigen display-waarden kunnen het hidden-attribuut
   overrulen dat die scripts gebruiken — vandaar .cx-funnel [hidden].
   ========================================================================== */

/* Zelf gehost: Caveat staat sinds het accentwoord in de koppen zelf, en een
   externe font-request laat de kop dan zichtbaar omspringen. */
@font-face {
	font-family: 'Caveat';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/caveat.woff2') format('woff2');
}

/* Figtree, zelf gehost (variabel 300-900, latin-subset, 20 KB per snit).
   Alleen in gebruik op de previewpagina, zie het blok onderaan dit bestand. */
@font-face {
	font-family: 'Figtree';
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url('../fonts/figtree-var.woff2') format('woff2');
}
@font-face {
	font-family: 'Figtree';
	font-style: italic;
	font-weight: 300 900;
	font-display: swap;
	src: url('../fonts/figtree-italic-var.woff2') format('woff2');
}

/* Accentwoord in de koppen. Variabel font (100-700), latin-subset, 28 KB. */
@font-face {
	font-family: 'Josefin Sans';
	font-style: normal;
	font-weight: 100 700;
	font-display: swap;
	src: url('../fonts/josefin-var.woff2') format('woff2');
}

/* ==========================================================================
   Vormtaal "cx". Volledig los van de live stylesheet: alles begint
   met .cx- of staat binnen .cx-page, zodat de rest van de site niets merkt.
   ========================================================================== */
.cx-page {
	--cx-ink: #100F0E;
	--cx-ink-2: #1A1917;
	--cx-paper: #F2ECDF;      /* warm crème, geen steriel wit */
	--cx-paper-2: #E7DFCD;
	--cx-goud: var(--pp-gold);
	--cx-goud-2: var(--pp-gold-2);
	--cx-off: 9px;            /* hoeveel het vlak achter een blok uitsteekt */
}

/* ---- bouwsteen 1: het verschoven vlak ---------------------------------- */
.cx-blok { position: relative; }
.cx-blok > .cx-blok__vlak { position: absolute; inset: 0; z-index: 0; border-radius: inherit;
	transform: translate(var(--cx-off), var(--cx-off));
	background: linear-gradient(150deg, var(--cx-goud-2), var(--cx-goud) 55%, var(--pp-gold-deep)); }
.cx-blok > *:not(.cx-blok__vlak):not([data-los]) { position: relative; z-index: 1; }

/* ---- bouwsteen 2: handgeschreven tagline ------------------------------- */
.cx-hand { display: block; font-family: 'Caveat', 'Segoe Script', cursive; font-weight: 700;
	font-size: clamp(1.15rem, 1.8vw, 1.5rem); line-height: 1; color: var(--cx-goud-2);
	transform: rotate(-2.5deg); margin-bottom: 1.6rem; }

/* ---- bouwsteen 3: kop met gemarkeerd accentwoord ----------------------- */
.cx-h2 { font-size: clamp(1.85rem, 1.2rem + 2.6vw, 3rem); font-weight: 800;
	letter-spacing: -.015em; line-height: 1.05; margin: 0; overflow-wrap: break-word; }
/* Het accentwoord: een gouden baan over de onderste helft, de tekst houdt de
   kleur van de kop. Bewust geen doos meer: de site heeft al veel goud in
   vlakvorm (het offset-vlak achter elk blok, de knoppen, de spec-tegels), en
   een blok mét padding duwde bij tweeregelige koppen tegen de regel erboven.
   Deze baan heeft geen padding in de hoogte, dus de regelafstand blijft heel. */
/* Het accentwoord in Josefin Sans: een geometrisch art deco-font dat de
   gouden lijnen op de site volgt. Gewicht 600, want lichter valt het naast
   Montserrat 800 weg. De contour van .012em vult de streek nog iets aan.
   Josefin heeft een lage x-hoogte, dus 1.06em om optisch gelijk te lopen. */
.cx-mark { font-family: 'Josefin Sans', 'Century Gothic', sans-serif; font-weight: 600;
	font-size: 1.06em; line-height: .95; letter-spacing: .02em;
	color: var(--cx-goud-2); padding: 0 .04em;
	-webkit-text-stroke: .012em var(--cx-goud-2); paint-order: stroke fill; }
.cx-kop { max-width: 720px; margin-bottom: clamp(2rem, 4vw, 3rem); }
.cx-kop--mid { margin-inline: auto; text-align: center; }
.cx-kop--mid .cx-hand { transform: rotate(-2.5deg) translateX(0); }
.cx-h2 + p, .cx-h2 + .cx-kop__tekst, .cx-kop__tekst { margin-top: 1.4rem; }
.cx-kop__tekst { margin-bottom: 0; color: var(--pp-muted); font-size: var(--fs-16); max-width: 58ch; }
.cx-kop--mid .cx-kop__tekst { margin-inline: auto; }

/* ---- bouwsteen 4: knoppen met harde schaduw ---------------------------- */
.cx-btn { display: inline-flex; align-items: center; gap: .55rem; padding: .9rem 1.7rem;
	border-radius: 999px; font-weight: 800; font-size: var(--fs-15, .95rem); letter-spacing: .01em;
	border: 2px solid #14130F; text-decoration: none; cursor: pointer;
	transition: transform .12s var(--ease), box-shadow .12s var(--ease); }
.cx-btn--goud { background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F;
	box-shadow: 5px 5px 0 #14130F; }
/* pijl naar rechtsboven, als masker zodat hij altijd de tekstkleur volgt */
.cx-btn--goud::after, .cx-btn--zwart::after, .cx-btn--lijn::after { content: ''; flex: none; width: .78em; height: .78em;
	background: currentColor; transition: transform .12s var(--ease);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7'/%3E%3Cpath d='M8 7h9v9'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7'/%3E%3Cpath d='M8 7h9v9'/%3E%3C/svg%3E") center/contain no-repeat; }
.cx-btn--goud:hover::after, .cx-btn--zwart:hover::after, .cx-btn--lijn:hover::after { transform: translate(1px,-1px); }
.cx-btn--goud:hover { transform: translate(3px,3px); box-shadow: 2px 2px 0 #14130F; color: #14130F; }
.cx-btn--lijn { background: transparent; color: rgba(246,243,234,.85); border-color: rgba(196,154,84,.34);
	box-shadow: none; }
.cx-btn--lijn:hover { background: rgba(196,154,84,.1); border-color: rgba(196,154,84,.7); color: var(--cx-goud-2); }
.cx-btn--zwart { background: #14130F; color: var(--cx-goud-2); box-shadow: 5px 5px 0 var(--cx-goud); }
.cx-btn--zwart:hover { transform: translate(3px,3px); box-shadow: 2px 2px 0 var(--cx-goud); color: var(--cx-goud-2); }
.cx-cta-rij { display: flex; gap: 1.4rem 1rem; flex-wrap: wrap; align-items: center; }
/* tweede actie: geen knop maar een tekstlink onder de hoofdknop */
.cx-acties { display: flex; align-items: center; gap: .8rem 1.6rem; flex-wrap: wrap; }
.cx-link { display: inline-flex; align-items: center; gap: .5rem; font-size: .82rem; font-weight: 800;
	letter-spacing: .09em; text-transform: uppercase; color: rgba(246,243,234,.78); text-decoration: none;
	padding-bottom: 3px; border-bottom: 1px solid transparent; transition: color .15s, border-color .15s; }
.cx-link::after { content: ''; flex: none; width: .95em; height: .95em; background: currentColor;
	transition: transform .14s var(--ease);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat; }
.cx-link:hover { color: var(--cx-goud-2); border-bottom-color: rgba(196,154,84,.5); }
.cx-link:hover::after { transform: translateX(3px); }
.cx-sec--licht .cx-link { color: #46413A; }
.cx-sec--licht .cx-link:hover { color: #14130F; border-bottom-color: var(--cx-goud); }

/* ---- secties ----------------------------------------------------------- */
.cx-sec { padding-block: clamp(3.5rem, 7vw, 6rem); position: relative; }
.cx-sec--licht { background: var(--cx-paper); color: #14130F; }
.cx-sec--licht .cx-kop__tekst { color: #5A544A; }
.cx-sec--licht .cx-hand { color: var(--pp-gold-deep); }
.cx-sec--licht .cx-mark { color: var(--pp-gold-deep); -webkit-text-stroke-color: var(--pp-gold-deep); }
.cx-sec--donker { background: linear-gradient(180deg, rgba(26,25,23,.94), rgba(20,19,17,.94)); }
.cx-wrap { max-width: var(--container); margin-inline: auto; padding-inline: clamp(1rem, 4vw, 2rem); }

/* ==========================================================================
   2. hero
   ========================================================================== */
.cx-hero { padding-block: clamp(1.8rem, 4vw, 3.4rem); }
.cx-hero__grid { display: grid; grid-template-columns: minmax(0,1.04fr) minmax(0,.96fr);
	gap: clamp(1.6rem, 4vw, 3.4rem); align-items: center; }
.cx-hero__label { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.cx-pill { display: inline-flex; align-items: center; gap: .5rem; color: rgba(246,243,234,.86);
	font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase;
	padding: .36rem .95rem; border-radius: 999px; border: 1px solid rgba(246,243,234,.45); }
.cx-hero__label .cx-hand { margin: 0; font-size: clamp(1.05rem, 1.6vw, 1.3rem); color: rgba(229,201,131,.85); transform: rotate(-3deg); }
/* de zoekterm zit nu in de pill: die is meteen de H1 */
h1.cx-pill { margin: 0; font-size: .7rem; font-weight: 700; letter-spacing: .15em; line-height: 1.3; }
/* Het pilletje in de hero is geen <h1> meer (die zit nu op de grote kop),
   dus dezelfde maatvoering ook op de <p>-variant. */
.cx-hero__label .cx-pill { margin: 0; font-size: .7rem; font-weight: 700; letter-spacing: .15em; line-height: 1.3; }
/* h1 erft anders de browsermarge; de rest van de opmaak staat al op .cx-hero__display. */
h1.cx-hero__display { margin: 0; }
.cx-hero__display { margin: 0; font-size: clamp(2.45rem, 1.4rem + 3.4vw, 3.3rem); font-weight: 800;
	line-height: 1.14; letter-spacing: -.02em; max-width: 17ch; }
.cx-hero__sub { color: var(--pp-muted); margin: 1.4rem 0 2rem; max-width: 48ch; font-size: var(--fs-15,.95rem); }
.cx-hero__trust { list-style: none; margin: 2rem 0 0; padding: 1.4rem 0 0; display: flex;
	align-items: center; gap: .7rem 1.6rem; flex-wrap: wrap;
	border-top: 1px solid var(--pp-line-soft); font-size: .76rem; color: var(--pp-muted); }
.cx-hero__trust li { display: flex; align-items: center; gap: .45rem; }
.cx-hero__trust li > span:first-child { display: grid; place-content: center; width: 22px; height: 22px;
	border-radius: 7px; background: rgba(196,154,84,.16); color: var(--cx-goud-2); flex: none; }
.cx-hero__trust svg { width: 13px; height: 13px; }
.cx-hero__trust b { color: rgba(246,243,234,.92); font-weight: 700; }

/* ===========================================================================
   Hero van de homepage, versie 6 okt 2026.
   Google-badge boven de slogan, slogan groot in hoofdletters met het
   accentwoord goud cursief, en daaronder de H1 met het zoekwoord en de prijs.
   ======================================================================== */
.cx-hero__badge { display: inline-flex; align-items: center; gap: .55rem; background: #fff; color: #14130F;
  border-radius: 12px; padding: .55rem .85rem; font-weight: 700; font-size: .84rem; text-decoration: none;
  margin: 0 0 1.2rem; box-shadow: 0 6px 20px rgba(0,0,0,.25); }
.cx-hero__badge b { font-weight: 800; }
.cx-hero__badge:hover { transform: translateY(-1px); }
.cx-hero__badge-sterren { color: #F5B50A; letter-spacing: .04em; }
.cx-hero__badge-streep { opacity: .3; }
.cx-hero__badge-g { font-weight: 800; letter-spacing: -.01em; }
.cx-hero__badge-g span:nth-child(1){color:#4285F4}.cx-hero__badge-g span:nth-child(2){color:#DB4437}
.cx-hero__badge-g span:nth-child(3){color:#F4B400}.cx-hero__badge-g span:nth-child(4){color:#4285F4}
.cx-hero__badge-g span:nth-child(5){color:#0F9D58}.cx-hero__badge-g span:nth-child(6){color:#DB4437}

.cx-hero__slogan { margin: 0; font-weight: 900; text-transform: uppercase; line-height: .92;
  letter-spacing: -.02em; color: #F7F2E8; font-size: clamp(2.4rem, 10vw, 5rem); text-wrap: balance; }
@media (min-width: 900px) { .cx-hero__slogan { font-size: clamp(3rem, 4.6vw, 4.4rem); max-width: 11ch; } }
.cx-hero__slogan em { font-style: italic; color: var(--cx-goud); }

.cx-hero__h1 { margin: 1.05rem 0 0; font-weight: 800; line-height: 1.35; color: #F0E4CC;
  font-size: clamp(1rem, 3.4vw, 1.2rem); }
/* De knoppen volgen direct op de H1, dus daar hoort meer lucht tussen dan de
   32px die bedoeld was voor als er nog een alinea tussen stond. */
.cx-hero__h1 + .cx-acties { margin-top: 2.6rem; }

/* Het beeld is vierkant, op telefoon en desktop hetzelfde. De homepage heeft
   een video, de stadspagina's een foto, vandaar de aparte modifier. */
.cx-hero .cx-beeld__kader video { aspect-ratio: 1 / 1; }
/* height:auto is nodig: de pagina-eigen hero's (.cx-b2bhero, .cx-nchero,
   .cx-tfhero, .cx-fohero, .cx-brhero) zetten height:100% op dit beeld, en dan
   zou de aspect-ratio niets doen. */
.cx-hero--vk .cx-beeld__kader img { aspect-ratio: 1 / 1; height: auto; object-fit: cover; }
/* Op een stadspagina blijft de H1 de grote kop, dus daar hoort de badge wat
   dichter op de labelregel te staan dan op de homepage. */
.cx-hero--vk .cx-hero__badge { margin-bottom: .9rem; }

.cx-beeld { position: relative; }
.cx-beeld__kader { position: relative; z-index: 1; border-radius: 30px; overflow: hidden;
	border: 3px solid rgba(20,19,17,.9); box-shadow: 0 24px 60px rgba(0,0,0,.55); }
.cx-beeld__kader video, .cx-beeld__kader img { display: block; width: 100%; aspect-ratio: 9/10; object-fit: cover; }
.cx-beeld .cx-blok__vlak { border-radius: 34px; }

.cx-st { position: absolute; z-index: 3; font-weight: 800; line-height: 1.15; text-align: center;
	box-shadow: 0 10px 26px rgba(0,0,0,.45); text-decoration: none; }
.cx-st--wit { background: #fff; color: #14130F; }
/* Compacter dan het oorspronkelijke blok: het wit eiste te veel aandacht op
   naast het beeld, terwijl de reviews juist ondersteunend horen te zijn.
   De onderdelen zijn hier gescoped op --reviews, want cx-st__groot en
   __klein worden ook gebruikt door de badges op de andere hero's. */
.cx-st--reviews { border-radius: 13px; padding: .7rem .85rem .75rem; min-width: 104px; display: block;
	border: 1px solid rgba(20,19,17,.5);
	box-shadow: 4px 4px 0 var(--cx-goud), 8px 10px 18px rgba(0,0,0,.45); }
.cx-st--reviews .cx-st__groot { font-size: 1.15rem; }
.cx-st--reviews .cx-st__klein { font-size: .54rem; letter-spacing: .08em; }
.cx-st--reviews .cx-st__g { font-size: .62rem; }
.cx-st--reviews .cx-st__sterren { font-size: .62rem; margin: .2rem 0 .1rem; }
.cx-st__groot { display: block; font-size: var(--fs-18); line-height: 1.05; white-space: nowrap; }
.cx-st__klein { display: block; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; opacity: .85; margin-top: .2rem; }
.cx-st__g { display: block; font: 800 .72rem/1 'Montserrat', system-ui, sans-serif; }
.cx-st__g span:nth-child(1){color:#4285f4} .cx-st__g span:nth-child(2){color:#ea4335}
.cx-st__g span:nth-child(3){color:#fbbc05} .cx-st__g span:nth-child(4){color:#4285f4}
.cx-st__g span:nth-child(5){color:#34a853} .cx-st__g span:nth-child(6){color:#ea4335}
.cx-st__sterren { display: block; color: #f5a623; font-size: .72rem; letter-spacing: .1em; margin: .3rem 0 .15rem; }
.cx-st--wit .cx-st__klein { opacity: .6; }
.cx-st--lb { top: -14px; left: -14px; transform: rotate(-5deg) skewY(-1deg); }
.cx-st--wit:hover { transform: rotate(-5deg) skewY(-1deg) scale(1.03); }

/* ==========================================================================
   3. logobalk
   ========================================================================== */
.cx-logos { padding-block: 3.2rem; border-block: 1px solid var(--pp-line-soft); }
.cx-logos__label { text-align: center; font-size: .68rem; letter-spacing: .18em; text-transform: uppercase;
	color: var(--pp-muted); margin: 0 0 1.2rem; }
.cx-logos__rij { display: flex; align-items: center; justify-content: center; gap: clamp(1.8rem, 5vw, 4rem); flex-wrap: wrap; }
.cx-logos__rij img { height: clamp(48px, 5.5vw, 76px); width: auto; opacity: .95; transition: opacity .2s, transform .2s; }
.cx-logos__rij img:hover { opacity: 1; transform: scale(1.05); }

/* ==========================================================================
   4. de korte versie (licht)
   ========================================================================== */
.cx-kort { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: clamp(2rem,5vw,4rem); align-items: center; }
.cx-kort__badge { display: inline-block; background: #14130F; color: var(--cx-goud-2); font-size: .64rem;
	font-weight: 800; letter-spacing: .22em; padding: .3rem .7rem; border-radius: 4px; margin-bottom: .9rem; }
h2.cx-kort__lead { font-size: clamp(1.15rem, .9rem + 1vw, 1.55rem); font-weight: 800; line-height: 1.3;
	color: #14130F; margin: 0 0 1.1rem; letter-spacing: -.01em; }
.cx-kort__lead em { font-style: normal; font-family: 'Josefin Sans', 'Century Gothic', sans-serif;
	font-weight: 600; font-size: 1.06em; line-height: .95; letter-spacing: .02em; padding: 0 .04em;
	color: var(--pp-gold-deep);
	-webkit-text-stroke: .012em var(--pp-gold-deep); paint-order: stroke fill; }
.cx-kort__tekst { color: #5A544A; font-size: var(--fs-15, .95rem); margin: 0; max-width: 52ch; }
.cx-specs { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: 1fr; gap: 1.1rem; }
.cx-spec { position: relative; padding: 1.15rem 1.2rem 1.3rem; border: 2px solid #14130F; border-radius: 6px;
	box-shadow: 7px 7px 0 #14130F; min-width: 0; }
.cx-spec:nth-child(1) { background: #fff; transform: rotate(-1.2deg); }
.cx-spec:nth-child(2) { background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); transform: rotate(1deg); }
.cx-spec:nth-child(3) { background: #14130F; box-shadow: 7px 7px 0 var(--cx-goud); transform: rotate(.8deg); }
.cx-spec:nth-child(4) { background: #fff; transform: rotate(-.6deg); }
.cx-spec__label { display: block; font-family: 'Caveat','Segoe Script',cursive; font-size: 1.1rem; font-weight: 700;
	line-height: 1; margin-bottom: .45rem; color: var(--pp-gold-deep); }
.cx-spec:nth-child(2) .cx-spec__label { color: #6B4E18; }
.cx-spec:nth-child(3) .cx-spec__label { color: var(--cx-goud-2); }
.cx-spec__waarde { display: block; font-size: clamp(1.35rem, 1rem + 1.4vw, 1.9rem); font-weight: 800;
	line-height: 1; color: #14130F; letter-spacing: -.02em; }
.cx-spec:nth-child(3) .cx-spec__waarde { color: #fff; }
.cx-spec__waarde small { font-size: .58em; font-weight: 800; letter-spacing: .02em; }
.cx-spec__oud { font-size: .8rem; color: #8A8378; text-decoration: line-through; font-weight: 700; margin-left: .35rem; }
.cx-spec__extra { display: block; margin-top: .3rem; font-size: .7rem; font-weight: 600; color: #6B6459; }
.cx-spec:nth-child(3) .cx-spec__extra { color: rgba(246,243,234,.6); }
.cx-spec__vlag { position: absolute; top: -12px; right: -10px; background: #14130F; color: var(--cx-goud-2);
	font-size: .58rem; font-weight: 800; letter-spacing: .1em; padding: .28rem .6rem; border-radius: 999px;
	border: 2px solid var(--cx-goud); }

/* ==========================================================================
   5. formaten
   ========================================================================== */
.cx-form { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(1.6rem,4vw,3rem); align-items: center; }
/* display:block omdat dit ook een <a> kan zijn (klikbare sfeerfoto); inline zou
   de hoogte en de afgeronde hoeken laten verspringen. */
.cx-form__foto { display: block; border-radius: 20px; overflow: hidden; border: 3px solid rgba(20,19,17,.9); }
.cx-form__foto img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.cx-form .cx-blok__vlak { border-radius: 24px; }
.cx-maten { display: grid; gap: .55rem; }
.cx-maat { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 1rem;
	padding: .95rem 1.15rem; border: 1px solid var(--pp-line); border-radius: 12px; text-decoration: none;
	background: rgba(46,44,40,.55); transition: border-color .15s, transform .15s, background .15s; }
.cx-maat:hover { border-color: var(--cx-goud); background: rgba(196,154,84,.1); transform: translateX(4px); }
/* De maatnaam is op de homepage een h3 en elders een span. Deze regels maken
   dat visueel niet uit te maken: geen marge, geen eigen lettergrootte. */
.cx-maat__tekst { min-width: 0; }
.cx-maat__naam { font-weight: 800; color: var(--pp-white); font-size: var(--fs-16);
  margin: 0; line-height: 1.25; letter-spacing: 0; }
h3.cx-maat__naam { font-family: inherit; }
.cx-maat__meta { display: block; font-weight: 400; font-size: .74rem; color: var(--pp-muted); margin-top: .12rem; }
.cx-maat__pers { font-size: .74rem; font-weight: 700; color: var(--cx-goud-2); white-space: nowrap; }
.cx-props { display: flex; gap: .55rem; flex-wrap: wrap; margin-top: 1.4rem; }
.cx-props span { display: inline-flex; align-items: center; gap: .42rem; }
.cx-props span svg { width: 15px; height: 15px; flex: none; color: var(--cx-goud); }
.cx-props span { font-size: .7rem; font-weight: 700; letter-spacing: .04em; padding: .32rem .8rem;
	border-radius: 999px; border: 1px solid var(--pp-line); color: var(--pp-muted); }

/* ==========================================================================
   6. pakketten
   ========================================================================== */
.cx-pak-wrap { max-width: 1340px; }
.cx-pak { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 2rem; align-items: stretch; }
.cx-pakkaart { display: flex; }
.cx-pakkaart { border-radius: 16px; width: 100%; }
.cx-pakkaart .cx-blok__vlak { border-radius: 18px; background: linear-gradient(150deg, rgba(196,154,84,.5), rgba(156,120,56,.35)); }
.cx-pakkaart--top .cx-blok__vlak { background: linear-gradient(150deg, var(--cx-goud-2), var(--cx-goud) 55%, var(--pp-gold-deep)); }
.cx-pakkaart__in { background: var(--pp-surface-2); border: 2px solid rgba(20,19,17,.9); border-radius: 16px;
	padding: 2rem 1.9rem 2.1rem; display: flex; flex-direction: column; height: 100%; min-width: 0;
	flex: 1 1 auto; width: 100%; }
.cx-pakkaart--top .cx-pakkaart__in { border-color: var(--cx-goud);
	background-color: var(--pp-surface-2);
	background-image: linear-gradient(168deg, rgba(196,154,84,.09), rgba(196,154,84,0) 42%);
	box-shadow: 0 0 22px rgba(196,154,84,.08); }
.cx-pakkaart__vlag { position: absolute; top: -13px; left: 1.3rem; z-index: 2;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F;
	font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
	padding: .3rem .8rem; border-radius: 999px; border: 2px solid #14130F; transform: rotate(-2deg); }
.cx-pakkaart__tier { font-family: 'Caveat','Segoe Script',cursive; font-size: 1.35rem; font-weight: 700;
	color: var(--cx-goud-2); line-height: 1; }
.cx-pakkaart__naam { font-size: var(--fs-28); font-weight: 800; margin: .35rem 0 .6rem; letter-spacing: -.015em; }
.cx-pakkaart__desc { font-size: .92rem; line-height: 1.55; color: var(--pp-muted); margin: 0 0 1.3rem;
	flex: 1 0 auto; }
.cx-pakkaart__prijs { display: flex; align-items: baseline; gap: .5rem; margin-bottom: 1.1rem;
	padding-bottom: 1.1rem; border-bottom: 1px solid var(--pp-line-soft); }
.cx-pakkaart__prijs b { font-size: clamp(2rem,1.5rem+1.6vw,2.6rem); font-weight: 800; letter-spacing: -.02em; line-height: 1; }
.cx-pakkaart__prijs s { color: var(--pp-muted); font-size: 1rem; opacity: .7; }
.cx-pakkaart__prijs em { font-style: normal; font-size: .78rem; color: var(--pp-muted); margin-left: auto; }
.cx-feats { list-style: none; margin: 0 0 1.7rem; padding: 0; display: grid; gap: .62rem; flex: 0 0 auto;
	align-content: start; }
.cx-feats li { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: .7rem; align-items: start;
	font-size: .94rem; line-height: 1.45; color: var(--pp-white); }
.cx-feats li[data-uit] { color: rgba(207,201,192,.7); text-decoration: line-through;
	text-decoration-color: rgba(207,201,192,.55); }
.cx-feats i { font-style: normal; font-weight: 800; font-size: 1rem; color: var(--cx-goud-2);
	display: grid; place-content: center; width: 22px; height: 1.5em; line-height: 1; }
.cx-feats li[data-uit] i { color: rgba(207,201,192,.55); text-decoration: none; }
.cx-pakkaart__in .cx-btn { justify-content: center; padding: .95rem 1.4rem; font-size: 1rem; }
.cx-pak__voet { text-align: center; margin-top: 2.4rem; font-size: .82rem; color: var(--pp-muted); }

/* ==========================================================================
   7. usp's
   ========================================================================== */
.cx-usps { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1.2rem; }
.cx-usp { border: 1px solid var(--pp-line); border-radius: 14px; padding: 1.4rem 1.3rem; min-width: 0;
	background: rgba(46,44,40,.55); transition: transform .18s var(--ease), border-color .18s; }
.cx-usp:hover { transform: translateY(-4px); border-color: var(--cx-goud); }
.cx-usp__icoon { display: grid; place-content: center; width: 42px; height: 42px; border-radius: 12px;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F; margin-bottom: .9rem; }
.cx-usp__icoon svg { width: 21px; height: 21px; }
.cx-usp h3 { font-size: var(--fs-16); font-weight: 800; margin: 0 0 .35rem; }
.cx-usp p { font-size: .82rem; color: var(--pp-muted); margin: 0; }

/* ==========================================================================
   8. stappen (licht)
   ========================================================================== */
.cx-stappen { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); grid-auto-rows: 1fr; gap: 1.3rem;
	align-items: stretch; padding-bottom: 1.6rem; }
.cx-stap { position: relative; background: #fff; border: 2px solid #14130F; border-radius: 18px;
	padding: 1.4rem 1.35rem 1.5rem; box-shadow: 8px 8px 0 #14130F; min-width: 0;
	transition: transform .16s var(--ease), box-shadow .16s var(--ease); }
.cx-stap:nth-child(even) { top: 1.6rem; }
.cx-stap:hover { transform: translate(4px,4px); box-shadow: 4px 4px 0 #14130F; }
.cx-sec--donker .cx-stap, .cx-page > .cx-sec:not(.cx-sec--licht) .cx-stap { box-shadow: 7px 7px 0 var(--cx-goud); }
.cx-sec--donker .cx-stap:hover, .cx-page > .cx-sec:not(.cx-sec--licht) .cx-stap:hover { box-shadow: 4px 4px 0 var(--cx-goud); }
.cx-sec--donker .cx-stappen__voet span { color: #CFC9C0; }
.cx-stap__nr { display: block; font-size: 2.4rem; font-weight: 800; line-height: 1; letter-spacing: -.03em;
	color: rgba(196,154,84,.5); margin-bottom: .6rem; }
.cx-stap__punt { position: absolute; top: 1.5rem; right: 1.35rem; width: 11px; height: 11px; border-radius: 50%;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); border: 1px solid #14130F; }
.cx-stap h3 { font-size: var(--fs-16); font-weight: 800; color: #14130F; margin: 0 0 .35rem; }
.cx-stap p { font-size: .82rem; color: #5A544A; margin: 0; }
.cx-stappen__voet { display: flex; align-items: center; justify-content: center; gap: 1.2rem;
	flex-wrap: wrap; margin-top: 2.6rem; }
.cx-stappen__voet span { font-size: .78rem; color: #5A544A; font-weight: 600; }

/* ==========================================================================
   9. reviews
   ========================================================================== */
.cx-reviews__in { margin-top: 1rem; }

/* ==========================================================================
   10. evenementen
   ========================================================================== */
.cx-even { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.85fr); gap: clamp(1.6rem,4vw,3rem); align-items: center; }
.cx-even__lijst { list-style: none; margin: 0 0 1.8rem; padding: 0; display: grid; gap: .6rem; }
.cx-even__lijst li { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: .8rem; align-items: center;
	padding: .7rem .9rem; border-radius: 12px; border: 1px solid var(--pp-line-soft); background: rgba(46,44,40,.45);
	font-size: .88rem; font-weight: 600; }
.cx-even__ico { display: grid; place-content: center; width: 34px; height: 34px; border-radius: 10px;
	background: rgba(196,154,84,.16); color: var(--cx-goud-2); }
.cx-even__ico svg { width: 17px; height: 17px; }
.cx-even__beeld { border-radius: 20px; overflow: hidden; border: 3px solid rgba(20,19,17,.9); }
.cx-even__beeld img, .cx-even__beeld video { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.cx-even .cx-blok__vlak { border-radius: 24px; }

/* ==========================================================================
   11. accessoires
   ========================================================================== */
.cx-acc { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1.2rem; }
/* Zelfde opbouw als op de live site: groot productvlak, naam en prijs
   gecentreerd, knop onderin. Alleen de kleuren volgen de nieuwe vormtaal. */
.cx-acckaart { display: flex; flex-direction: column; border: 2px solid rgba(20,19,17,.9); border-radius: 16px;
	overflow: hidden; background: linear-gradient(180deg, rgba(58,55,50,.75), rgba(38,36,33,.9));
	text-decoration: none; min-width: 0; text-align: center;
	transition: transform .18s var(--ease), border-color .18s, box-shadow .18s var(--ease); }
.cx-acckaart:hover { transform: translateY(-5px); border-color: var(--cx-goud);
	box-shadow: 0 14px 34px rgba(0,0,0,.5); }
.cx-acckaart__foto { aspect-ratio: 1; flex: none; display: flex; align-items: center; justify-content: center;
	padding: 1.2rem; overflow: hidden;
	background: radial-gradient(60% 55% at 50% 45%, rgba(196,154,84,.18), transparent 70%); }
.cx-acckaart__foto img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.cx-acckaart__in { padding: 1.1rem 1rem 1.2rem; display: flex; flex-direction: column; gap: .55rem;
	flex: 1; border-top: 1px solid var(--pp-line-soft); }
/* twee regels ruimte voor de naam, zodat prijs en knop overal gelijk liggen */
.cx-acckaart__naam { font-size: .92rem; font-weight: 800; color: var(--pp-white); line-height: 1.3;
	min-height: 2.6em; display: flex; align-items: center; justify-content: center; }
.cx-acckaart__prijs { font-size: .95rem; font-weight: 800; color: var(--cx-goud-2); }
.cx-acckaart__prijs small { font-size: .78rem; font-weight: 400; color: var(--pp-muted); margin-left: .2rem; }
.cx-acckaart__knop { margin-top: auto; padding: .62rem 1rem; border: 1px solid var(--pp-line);
	border-radius: 999px; font-size: .84rem; font-weight: 700; color: var(--pp-white);
	transition: background .18s, border-color .18s; }
.cx-acckaart:hover .cx-acckaart__knop { background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
	border-color: var(--cx-goud); color: #14130F; }

/* ==========================================================================
   12. galerij
   ========================================================================== */
/* de galerij gebruikt de coverflow van de live site (.pp-gallery) */

/* ==========================================================================
   13. over ons
   ========================================================================== */
.cx-over { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: clamp(1.6rem,4vw,3.2rem); align-items: center; }
.cx-over__foto { border-radius: 20px; overflow: hidden; border: 3px solid rgba(20,19,17,.9); }
.cx-over__foto img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.cx-over .cx-blok__vlak { border-radius: 24px; }
.cx-over__tekst { color: var(--pp-muted); font-size: var(--fs-15,.95rem); }
.cx-over__tekst strong { color: var(--pp-white); }
.cx-over__wie { display: flex; align-items: center; gap: .6rem; margin: 1.2rem 0 1.6rem; font-size: .8rem; }
.cx-over__wie b { color: var(--pp-white); }
.cx-over__wie span { color: var(--pp-muted); }
.cx-stats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .9rem; margin-top: 1.8rem; }
.cx-stat { border-top: 2px solid var(--cx-goud); padding-top: .7rem; min-width: 0; }
.cx-stat b { display: block; font-size: clamp(1.2rem,1rem+.8vw,1.6rem); font-weight: 800; line-height: 1; }
.cx-stat span { display: block; font-size: .68rem; color: var(--pp-muted); margin-top: .3rem; }

/* ==========================================================================
   14. faq (licht)
   ========================================================================== */
.cx-faq { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); gap: clamp(1.8rem,4vw,3.2rem); align-items: start; }
.cx-faq__lijst { border: 2px solid #14130F; border-radius: 18px; overflow: hidden; box-shadow: 9px 9px 0 #14130F; background: #fff; }
.cx-faq details { border-bottom: 2px solid #14130F; }
.cx-faq details:last-child { border-bottom: 0; }
.cx-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: 1.05rem 1.3rem; cursor: pointer; list-style: none; font-weight: 800; font-size: .95rem; color: #14130F; }
.cx-faq summary::-webkit-details-marker { display: none; }
.cx-faq summary::after { content: '+'; flex: none; width: 30px; height: 30px; border-radius: 50%;
	border: 2px solid #14130F; display: grid; place-content: center; font-size: 1.05rem; font-weight: 700;
	line-height: 1; transition: background .15s, color .15s; }
.cx-faq details[open] summary::after { content: '×'; background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); }
.cx-faq details[open] summary { padding-bottom: .3rem; }
.cx-faq__a { padding: 0 1.3rem 1.15rem; font-size: .88rem; color: #5A544A; }
.cx-faq__a a { color: var(--pp-gold-deep); text-decoration: underline; }
.cx-faq__zij .cx-hand { color: var(--pp-gold-deep); }
.cx-faq__zij .cx-h2 { color: #14130F; }
.cx-faq__zij p { color: #5A544A; font-size: .92rem; margin-bottom: 1.6rem; }
.cx-faq__wa { display: inline-flex; align-items: center; gap: .5rem; font-weight: 800; font-size: .85rem;
	color: #14130F; text-decoration: none; border-bottom: 2px solid var(--cx-goud); padding-bottom: 2px; }
.cx-faq__wa:hover { color: var(--pp-gold-deep); }
.cx-faq__tel { display: block; margin-top: 1rem; font-size: .8rem; color: #5A544A; }
.cx-faq__tel a { color: #14130F; font-weight: 800; }

/* ==========================================================================
   15. slot-cta
   ========================================================================== */
.cx-slot { text-align: center; }
.cx-slot h2 { font-size: clamp(2rem,1.3rem+3vw,3.4rem); font-weight: 800; letter-spacing: -.015em;
	line-height: 1.08; margin: 0 auto; max-width: 21ch; }
.cx-slot p { color: var(--pp-muted); margin: 1.4rem auto 2rem; max-width: 44ch; }
.cx-acties--mid { justify-content: center; }

/* ==========================================================================
   mobiel
   ========================================================================== */
@media (max-width: 1023px) {
	.cx-usps, .cx-acc, .cx-stappen { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.cx-pak { grid-template-columns: minmax(0,1fr); gap: 2rem; }
	.cx-stap:nth-child(even) { top: 0; }
	.cx-stappen { padding-bottom: 0; }
}
@media (max-width: 899px) {
	.cx-page { --cx-off: 7px; }
	.cx-hero__grid, .cx-kort, .cx-form, .cx-even, .cx-over, .cx-faq { grid-template-columns: minmax(0,1fr); }
	/* Mobiel: eerst lezen, dan kijken. Op over-ons staat het beeld als eerste
	   in de opmaak, wat op één kolom betekent dat je door een foto heen moet
	   scrollen voordat je weet waar de sectie over gaat. Staat de tekst al
	   eerst, dan verandert deze regel niets. */
	.cx-over > .cx-blok, .cx-even > .cx-blok, .cx-stad > .cx-stad__fotos { order: 2; }
	.cx-over > .cx-blok, .cx-even > .cx-blok, .cx-stad > .cx-stad__fotos { margin-top: 2.4rem; }
	.cx-hero__grid > *, .cx-kort > *, .cx-form > *, .cx-even > *, .cx-over > *, .cx-faq > * { min-width: 0; }
	.cx-beeld { margin-top: 2rem; }
	.cx-hero__display { max-width: none; line-height: 1.1; }
	.cx-beeld__kader video, .cx-beeld__kader img { aspect-ratio: 1/1; }
	.cx-st--lb { left: -10px; } .cx-st--rm { right: -10px; } .cx-st--lo { left: -8px; }
	.cx-st--reviews { min-width: 96px; padding: .6rem .75rem .65rem; box-shadow: 3px 4px 0 var(--cx-goud), 6px 9px 16px rgba(0,0,0,.45); }
	.cx-form__wrap { order: 2; margin-top: 1.6rem; }
	.cx-even__beeld { order: -1; }
	.cx-stats { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 767px) {
	/* logo's in een net raster van drie in plaats van een rafelige rij */
	.cx-logos__rij { display: grid; grid-template-columns: repeat(3, minmax(0,1fr));
		gap: .7rem .35rem; place-items: center; }
	.cx-logos__rij img { height: clamp(48px, 15vw, 60px); max-width: 100%; }
}
@media (max-width: 599px) {
	.cx-usps, .cx-stappen, .cx-specs { grid-template-columns: minmax(0,1fr); }
	.cx-acc { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem; }
	.cx-acckaart__foto { padding: .7rem; }
	.cx-acckaart__in { padding: .8rem .7rem .9rem; gap: .4rem; }
	.cx-acckaart__naam { font-size: .8rem; min-height: 3.2em; }
	.cx-acckaart__prijs { font-size: .86rem; }
	.cx-acckaart__prijs small { display: block; margin: .1rem 0 0; }
	.cx-acckaart__knop { padding: .5rem .6rem; font-size: .76rem; }
	.cx-spec { transform: none !important; }
	.cx-faq__lijst { box-shadow: 6px 6px 0 #14130F; }
}
@media (prefers-reduced-motion: reduce) {
	.cx-btn, .cx-stap, .cx-usp, .cx-acckaart { transition: none; }
}


/* ==========================================================================
   Header (header-club.php)
   ========================================================================== */
/* ---- gedeelde tokens: ook de page en de footer lezen hieruit ---- */
:root {
	--cx-ink: #100F0E;
	--cx-paper: #F2ECDF;
	--cx-goud: var(--pp-gold);
	--cx-goud-2: var(--pp-gold-2);
	--cx-off: 9px;
}

/* ================= topbalk ================= */
.cxh-top { background: #0B0A09; border-bottom: 1px solid rgba(196,154,84,.22); }
.cxh-top__in { max-width: var(--container); margin-inline: auto; padding: .5rem clamp(1rem,4vw,2rem);
	display: flex; align-items: center; justify-content: center; gap: .6rem; text-align: center; }
/* De actiebalk mag gezien worden: iets groter dan een voetnoot, en het bedrag
   in goud zodat het oog daar landt in plaats van op "zomeractie".
   De regels liggen gestapeld in één grid-cel: zo houdt de balk de hoogte van
   de langste regel aan en springt hij niet tijdens het wisselen. */
.cxh-top__slider { display: grid; }
.cxh-top__slider > * { grid-area: 1 / 1; }
.cxh-top p { margin: 0; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
	color: rgba(246,243,234,.92); opacity: 0; transition: opacity .45s var(--ease); pointer-events: none; }
.cxh-top p.is-actief { opacity: 1; pointer-events: auto; }
/* Eén regel: geen animatie nodig, gewoon tonen. */
.cxh-top__slider:not([data-topslider]) p { opacity: 1; }
/* Wie beweging liever vermijdt ziet alleen de eerste regel; het script start
   dan niet. Deze regel moet ná de definitie hierboven staan, anders verliest
   hij het in de cascade. */
@media (prefers-reduced-motion: reduce) {
	.cxh-top p { transition: none; }
}
.cxh-top__bedrag { color: var(--cx-goud-2); font-weight: 900; font-size: 1.18em; letter-spacing: .01em; }
@media (max-width: 599px) {
	.cxh-top p { font-size: .72rem; letter-spacing: .05em; }
	.cxh-top__bedrag { font-size: 1.2em; }
}

/* ================= header ================= */
.cxh { position: sticky; top: 0; z-index: 200; background: rgba(16,15,14,.92);
	backdrop-filter: saturate(140%) blur(12px); -webkit-backdrop-filter: saturate(140%) blur(12px);
	border-bottom: 1px solid rgba(196,154,84,.18); }
.cxh__in { max-width: var(--container); margin-inline: auto; padding: .7rem clamp(1rem,4vw,2rem);
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.4rem; }
.cxh__logo { flex: none; display: block; }
.cxh__logo img { height: 46px; width: auto; }

/* De header is sticky en ongeveer 90px hoog. Zonder deze regel landt elke
   ankerlink (#pakketten, #formaten) met zijn kop onder de header. */
html { scroll-padding-top: 108px; }
@media (max-width: 979px) { html { scroll-padding-top: 84px; } }

.cxh__nav { justify-self: center; }
.cxh__nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 1.6rem; }
.cxh__nav a { position: relative; font-size: .72rem; font-weight: 800; letter-spacing: .13em;
	text-transform: uppercase; color: rgba(246,243,234,.8); text-decoration: none; padding: .35rem 0;
	transition: color .15s; }
.cxh__nav a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 0; height: 2px;
	background: linear-gradient(90deg, var(--cx-goud-2), var(--cx-goud)); transition: right .18s var(--ease); }
.cxh__nav a:hover { color: var(--pp-white); }
.cxh__nav a:hover::after { right: 0; }

.cxh__cta { display: inline-flex; align-items: center; gap: .5rem; justify-self: end;
	padding: .62rem 1.3rem; border-radius: 999px; border: 2px solid #14130F;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F;
	font-size: .82rem; font-weight: 800; text-decoration: none; box-shadow: 4px 4px 0 #14130F;
	transition: transform .12s var(--ease), box-shadow .12s var(--ease); }
.cxh__cta::after, .cxh__cta-mob::after { content: ''; flex: none; width: .78em; height: .78em;
	background: currentColor;
	-webkit-mask: var(--cxh-pijl) center/contain no-repeat; mask: var(--cxh-pijl) center/contain no-repeat; }
.cxh__cta:hover { transform: translate(2px,2px); box-shadow: 2px 2px 0 #14130F; color: #14130F; }

.cxh__mob { display: none; grid-column: 2 / -1; justify-self: end; align-items: center; gap: .7rem; }
.cxh__burger { width: 44px; height: 40px; display: grid; place-content: center; gap: 5px;
	background: transparent; border: 1px solid rgba(196,154,84,.4); border-radius: 12px; cursor: pointer; padding: 0; }
.cxh__burger span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--cx-goud-2); }

@media (max-width: 979px) {
	.cxh__nav, .cxh__cta { display: none; }
	.cxh__in { grid-template-columns: auto 1fr; }
	.cxh__mob { display: flex; }
	.cxh__logo img { height: 40px; }
	.cxh__cta-mob { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem 1.05rem; border-radius: 999px;
		border: 2px solid #14130F; background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
		color: #14130F; font-size: .8rem; font-weight: 800; text-decoration: none; box-shadow: 3px 3px 0 #14130F; }
}

/* ==========================================================================
   Footer (footer-club.php)
   ========================================================================== */
.cxf { position: relative; background: linear-gradient(180deg, #131211, #0B0A09); border-top: 1px solid rgba(196,154,84,.2); }
.cxf__wrap { max-width: var(--container); margin-inline: auto; padding-inline: clamp(1rem,4vw,2rem); }
.cxf a { text-decoration: none; }

/* ---- contactband: het signature-vlak, nu als afsluiter ---- */
.cxf__band { padding-block: clamp(2.6rem,5vw,4rem); }
.cxf__kaart { position: relative; border-radius: 20px; }
.cxf__kaart-vlak { position: absolute; inset: 0; z-index: 0; border-radius: 22px;
	transform: translate(var(--cx-off,9px), var(--cx-off,9px));
	background: linear-gradient(150deg, var(--cx-goud-2), var(--cx-goud) 55%, var(--pp-gold-deep)); }
.cxf__kaart-in { position: relative; z-index: 1; border: 2px solid rgba(20,19,17,.9); border-radius: 20px;
	background: linear-gradient(160deg, rgba(58,55,50,.85), rgba(30,28,26,.95));
	padding: clamp(1.8rem,4vw,2.8rem); display: flex; align-items: center; justify-content: space-between;
	gap: 1.6rem; flex-wrap: wrap; }
.cxf__hand { display: block; font-family: 'Caveat','Segoe Script',cursive; font-weight: 700;
	font-size: clamp(1.15rem,1.8vw,1.5rem); line-height: 1; color: var(--cx-goud-2);
	transform: rotate(-2.5deg); margin-bottom: .9rem; }
.cxf__titel { margin: 0; font-size: clamp(1.5rem,1.1rem+1.6vw,2.2rem); font-weight: 800;
	letter-spacing: -.015em; line-height: 1.1; }
.cxf__sub { margin: .8rem 0 0; color: var(--pp-muted); font-size: .92rem; max-width: 46ch; }
.cxf__acties { display: flex; align-items: center; gap: .8rem 1.5rem; flex-wrap: wrap; }
.cxf__btn { display: inline-flex; align-items: center; gap: .55rem; padding: .9rem 1.7rem; border-radius: 999px;
	border: 2px solid #14130F; background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
	color: #14130F; font-weight: 800; font-size: .95rem; box-shadow: 5px 5px 0 #14130F;
	transition: transform .12s var(--ease), box-shadow .12s var(--ease); }
.cxf__btn:hover { transform: translate(3px,3px); box-shadow: 2px 2px 0 #14130F; color: #14130F; }
.cxf__btn svg { width: 17px; height: 17px; }
.cxf__link { display: inline-flex; align-items: center; gap: .5rem; font-size: .82rem; font-weight: 800;
	letter-spacing: .09em; text-transform: uppercase; color: rgba(246,243,234,.78);
	padding-bottom: 3px; border-bottom: 1px solid transparent; transition: color .15s, border-color .15s; }
.cxf__link:hover { color: var(--cx-goud-2); border-bottom-color: rgba(196,154,84,.5); }
.cxf__link svg { width: 15px; height: 15px; }

/* ---- kolommen ---- */
.cxf__grid { display: grid; grid-template-columns: minmax(0,1.5fr) repeat(3, minmax(0,1fr));
	gap: clamp(1.6rem,4vw,3rem); padding-bottom: clamp(2rem,4vw,3rem);
	border-top: 1px solid rgba(196,154,84,.16); padding-top: clamp(2rem,4vw,3rem); }
.cxf__logo img { height: 66px; width: auto; }
.cxf__about { margin: 1.1rem 0 1.3rem; color: var(--pp-muted); font-size: .86rem; max-width: 40ch; }
.cxf__socials { display: flex; gap: .6rem; }
.cxf__socials a { display: grid; place-content: center; width: 38px; height: 38px; border-radius: 12px;
	border: 1px solid rgba(196,154,84,.32); color: var(--cx-goud-2); transition: background .15s, border-color .15s; }
.cxf__socials a:hover { background: rgba(196,154,84,.14); border-color: var(--cx-goud); }
.cxf__socials svg { width: 17px; height: 17px; }

.cxf__kop { margin: 0 0 1rem; font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase;
	color: var(--pp-white); display: flex; align-items: center; gap: .55rem; }
.cxf__kop::before { content: ''; width: 16px; height: 2px; border-radius: 2px;
	background: linear-gradient(90deg, var(--cx-goud-2), var(--cx-goud)); }
.cxf__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.cxf__col a, .cxf__col span { font-size: .86rem; color: var(--pp-muted); }
.cxf__col a:hover { color: var(--cx-goud-2); }
.cxf__data li { display: grid; grid-template-columns: 26px minmax(0,1fr); gap: .5rem; align-items: center; }
.cxf__ico { display: grid; place-content: center; width: 26px; height: 26px; border-radius: 8px;
	background: rgba(196,154,84,.14); color: var(--cx-goud-2); }
.cxf__ico svg { width: 13px; height: 13px; }
.cxf__data strong { color: rgba(246,243,234,.9); font-weight: 700; }

/* ---- onderbalk ---- */
.cxf__bar { border-top: 1px solid rgba(196,154,84,.16); }
.cxf__bar-in { max-width: var(--container); margin-inline: auto; padding: 1.1rem clamp(1rem,4vw,2rem);
	display: flex; align-items: center; justify-content: space-between; gap: .6rem 1.5rem; flex-wrap: wrap; }
.cxf__bar p { margin: 0; font-size: .74rem; color: rgba(207,201,192,.6); }
.cxf__bar a { color: var(--cx-goud-2); }

@media (max-width: 899px) {
	.cxf__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.cxf__grid > *:first-child { grid-column: 1 / -1; }
	.cxf__kaart-in { flex-direction: column; align-items: flex-start; }
	.cxf__bar-in { justify-content: center; text-align: center; }
}
@media (max-width: 519px) {
	.cxf__grid { grid-template-columns: minmax(0,1fr); }
}


/* ==========================================================================
   Extra bouwstenen voor de losse pagina's
   ========================================================================== */
.cx-usps--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.cx-specs--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.cx-punch { margin: 1.4rem 0 1.8rem; font-family: 'Caveat','Segoe Script',cursive; font-weight: 700;
	font-size: clamp(1.3rem,1.9vw,1.65rem); line-height: 1.1; color: var(--cx-goud-2); transform: rotate(-1.5deg); }
.cx-loc { display: inline-flex; align-items: center; gap: .7rem; margin: 1.6rem 0 0;
	padding: .7rem 1.1rem; border-radius: 14px; border: 1px solid var(--pp-line); background: rgba(46,44,40,.5); }
.cx-loc__ico { display: grid; place-content: center; width: 34px; height: 34px; border-radius: 10px;
	background: rgba(196,154,84,.16); color: var(--cx-goud-2); flex: none; }
.cx-loc__ico svg { width: 16px; height: 16px; }
.cx-loc b { display: block; font-size: .88rem; color: var(--pp-white); }
.cx-loc span span { display: block; font-size: .74rem; color: var(--pp-muted); }
/* beeld dat niet bijgesneden mag worden (kaart, plattegrond) */
/* Deze variant snijdt niet bij (het is een kaartje, geen sfeerfoto), dus het
   frame moet de verhouding van de afbeelding zelf aannemen. Anders blijft er
   lege ruimte over waar de gouden lijst doorheen schijnt. */
.cx-even__beeld--vrij { display: flex; }
.cx-even__beeld--vrij img { height: auto; object-fit: contain; background: rgba(255,255,255,.04); }
.cx-hero h1.cx-h2 { margin: 0 0 0; }

@media (max-width: 1023px) {
	.cx-usps--3 { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.cx-specs--4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 599px) {
	.cx-usps--3, .cx-specs--4 { grid-template-columns: minmax(0,1fr); }
}

/* ---- kop van een subpagina: rustiger dan de homepage-hero ---- */
.cx-paginahero { padding-block: clamp(2.2rem, 4vw, 3.4rem); }
.cx-kruimel { display: flex; align-items: center; gap: .5rem; margin-bottom: 1.1rem;
	font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--pp-muted); }
.cx-kruimel a { color: var(--pp-muted); text-decoration: none; }
.cx-kruimel a:hover { color: var(--cx-goud-2); }
.cx-kruimel span[aria-hidden] { color: rgba(196,154,84,.55); }
.cx-paginakop { max-width: min(100%, 28ch); }
@media (max-width: 599px) { .cx-paginakop { max-width: 100%; } }
.cx-paginahero .cx-kop__tekst { margin-top: 1.3rem; }


/* ==========================================================================
   Contact
   ========================================================================== */
.cx-contact { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr); gap: clamp(1.6rem,4vw,3rem); align-items: start; }
.cx-contact__form { border-radius: 18px; }
.cx-kaart { position: relative; z-index: 1; border: 2px solid rgba(20,19,17,.9); border-radius: 18px;
	background: var(--pp-surface-2); padding: clamp(1.5rem,3vw,2.2rem); }
.cx-h3 { font-size: var(--fs-28); font-weight: 800; letter-spacing: -.015em;
	line-height: 1.1; margin: 0; }
.cx-kaart .cx-kop__tekst { margin-top: .9rem; }
.cx-formulier { margin-top: 1.6rem; }
/* het FluentForms-formulier in de nieuwe stijl zetten */
.cx-formulier .ff-el-input--label label { font-size: .8rem; font-weight: 700; letter-spacing: .04em; color: var(--pp-white); }
.cx-formulier input[type=text], .cx-formulier input[type=email], .cx-formulier input[type=tel],
.cx-formulier textarea, .cx-formulier select {
	width: 100%; background: rgba(20,19,17,.5); border: 1px solid var(--pp-line); border-radius: 12px;
	padding: .8rem 1rem; color: var(--pp-white); font: inherit; font-size: .92rem; }
.cx-formulier input:focus, .cx-formulier textarea:focus, .cx-formulier select:focus {
	outline: none; border-color: var(--cx-goud); box-shadow: 0 0 0 3px rgba(196,154,84,.16); }
.cx-formulier .ff-btn-submit, .cx-formulier button[type=submit] {
	display: inline-flex; align-items: center; gap: .55rem; padding: .9rem 1.7rem; border-radius: 999px;
	border: 2px solid #14130F; background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
	color: #14130F !important; font-weight: 800; font-size: .95rem; box-shadow: 5px 5px 0 #14130F; cursor: pointer;
	transition: transform .12s var(--ease), box-shadow .12s var(--ease); }
.cx-formulier .ff-btn-submit:hover, .cx-formulier button[type=submit]:hover {
	transform: translate(3px,3px); box-shadow: 2px 2px 0 #14130F; }

.cx-contact__lead { color: var(--pp-muted); font-size: var(--fs-15,.95rem); margin: 0 0 1.4rem; }
.cx-contact__wa { margin-bottom: 2rem; }
.cx-kop__label { margin: 0 0 1rem; font-size: .7rem; font-weight: 800; letter-spacing: .16em;
	text-transform: uppercase; color: var(--pp-white); display: flex; align-items: center; gap: .55rem; }
.cx-kop__label::before { content: ''; width: 16px; height: 2px; border-radius: 2px;
	background: linear-gradient(90deg, var(--cx-goud-2), var(--cx-goud)); }
.cx-gegevens { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; gap: .8rem; }
.cx-gegevens li { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: .8rem; align-items: center; }
.cx-gegevens__ico { display: grid; place-content: center; width: 34px; height: 34px; border-radius: 10px;
	background: rgba(196,154,84,.14); color: var(--cx-goud-2); }
.cx-gegevens__ico svg { width: 16px; height: 16px; }
.cx-gegevens__label { display: block; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--pp-muted); }
.cx-gegevens a, .cx-gegevens__waarde { font-size: .88rem; color: var(--pp-white); overflow-wrap: anywhere; }
.cx-gegevens a:hover { color: var(--cx-goud-2); }
.cx-promo { display: inline-block; margin: 0; padding: .55rem 1.1rem; border-radius: 999px;
	border: 1px dashed rgba(196,154,84,.55); background: rgba(196,154,84,.08);
	font-size: .78rem; font-weight: 700; color: var(--cx-goud-2); }

@media (max-width: 899px) {
	.cx-contact { grid-template-columns: minmax(0,1fr); }
	.cx-contact > * { min-width: 0; }
	.cx-contact__zij { order: -1; }
}


/* ==========================================================================
   FAQ-pagina (alle vragen, per onderwerp)
   ========================================================================== */
.cx-faq__zij--sticky { position: sticky; top: 90px; }
.cx-faq__intro { color: #5A544A; font-size: .92rem; margin: 0 0 1.8rem; }
.cx-kop__label--donker { color: #14130F; }
.cx-sprong { list-style: none; margin: 0 0 1.8rem; padding: 0; display: grid; gap: .3rem; }
.cx-sprong a { display: block; padding: .5rem .8rem; border-radius: 10px; font-size: .86rem; font-weight: 700;
	color: #46413A; text-decoration: none; transition: background .15s, color .15s; }
.cx-sprong a:hover { background: rgba(196,154,84,.16); color: #14130F; }
.cx-faq__groepen { display: grid; gap: 2.4rem; min-width: 0; }
.cx-faq__groepkop { margin: 0 0 1rem; font-size: var(--fs-22); font-weight: 800;
	letter-spacing: -.015em; color: #14130F; display: flex; align-items: center; gap: .7rem; }
.cx-faq__groepkop::before { content: ''; width: 22px; height: 3px; border-radius: 3px; flex: none;
	background: linear-gradient(90deg, var(--cx-goud-2), var(--cx-goud)); }
.cx-faq__a p:last-child, .cx-faq__a ul:last-child { margin-bottom: 0; }
.cx-faq__a ul { margin: .6rem 0; padding-left: 1.1rem; }
.cx-faq__a li { margin-bottom: .3rem; }
.cx-faq__slot { margin: 0; font-size: .9rem; color: #5A544A; }
.cx-faq__slot a { color: var(--pp-gold-deep); font-weight: 700; text-decoration: underline; }

@media (max-width: 899px) {
	.cx-faq__zij--sticky { position: static; }
	.cx-sprong { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 519px) {
	.cx-sprong { grid-template-columns: minmax(0,1fr); }
}


/* ==========================================================================
   Productpagina
   ========================================================================== */
.cx-pdp { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(1.6rem,4vw,3rem);
	align-items: start; margin-top: 1.8rem; }
.cx-pdp__kader { border-radius: 20px; }
.cx-pdp__hoofd { position: relative; z-index: 1; border-radius: 20px; overflow: hidden;
	border: 2px solid rgba(20,19,17,.9);
	background: linear-gradient(165deg, #FBF7EE, var(--cx-paper) 60%, var(--cx-paper-2)); }
.cx-pdp__hoofd img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: contain; display: block; padding: 4%; border-radius: 14px; }
.cx-pdp__thumbs { position: relative; z-index: 1; display: flex; gap: .6rem; margin-top: .9rem; flex-wrap: wrap; }
.cx-pdp__thumbs button { width: 68px; height: 68px; padding: 0; border-radius: 12px; cursor: pointer;
	overflow: hidden; border: 1px solid var(--pp-line); background: var(--cx-paper); }
.cx-pdp__thumbs button.is-active { border-color: var(--cx-goud); }
.cx-pdp__thumbs img { width: 100%; height: 100%; object-fit: contain; display: block; padding: 3px; border-radius: 9px; }

.cx-pdp__info .cx-h2 { margin: .3rem 0 0; }
.cx-pdp__kort { color: var(--pp-muted); font-size: var(--fs-15,.95rem); margin: 1.2rem 0 0; }
.cx-pdp__kort p:last-child { margin-bottom: 0; }
.cx-pdp__prijs { display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; margin: 1.6rem 0 .5rem;
	padding-top: 1.4rem; border-top: 1px solid var(--pp-line-soft); }
.cx-pdp__bedrag { font-size: clamp(1.9rem,1.4rem+1.6vw,2.5rem); font-weight: 800; letter-spacing: -.02em;
	line-height: 1; color: var(--cx-goud-2); }
.cx-pdp__per { font-size: .8rem; color: var(--pp-muted); }
.cx-pdp__note { font-size: .82rem; color: var(--pp-muted); margin: 0 0 1.6rem; max-width: 44ch; }
.cx-pdp__note strong { color: var(--pp-white); }
.cx-pdp__info .cx-hero__trust { margin-top: 1.8rem; }

.cx-pdp__detail { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,.65fr); gap: clamp(1.6rem,4vw,3rem); align-items: start; }
.cx-prose { color: #46413A; font-size: .95rem; }
.cx-prose h2, .cx-prose h3 { color: #14130F; font-size: var(--fs-22); margin: 1.6rem 0 .6rem; }
.cx-prose ul { padding-left: 1.1rem; }
.cx-prose a { color: var(--pp-gold-deep); text-decoration: underline; }
.cx-speckaart { background: #fff; border: 2px solid #14130F; border-radius: 18px; box-shadow: 7px 7px 0 #14130F;
	padding: 1.4rem 1.5rem 1.6rem; min-width: 0; }
.cx-speclijst { margin: 0; display: grid; gap: .1rem; }
.cx-speclijst > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1rem;
	padding: .6rem 0; border-bottom: 1px solid rgba(20,19,17,.1); }
.cx-speclijst > div:last-child { border-bottom: 0; }
.cx-speclijst dt { font-size: .8rem; font-weight: 700; color: #5A544A; margin: 0; }
.cx-speclijst dd { font-size: .84rem; font-weight: 700; color: #14130F; margin: 0; }

/* pakketten als rijen */
.cx-pkg { display: grid; gap: .8rem; }
.cx-pkg__rij { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1.2rem; align-items: center;
	padding: 1.15rem 1.4rem; border-radius: 16px; border: 1px solid var(--pp-line); text-decoration: none;
	background: rgba(46,44,40,.55); transition: border-color .15s, transform .15s, background .15s; }
.cx-pkg__rij:hover { border-color: var(--cx-goud); background: rgba(196,154,84,.1); transform: translateX(4px); }
.cx-pkg__rij.is-top { border-color: rgba(196,154,84,.6); background: rgba(196,154,84,.08); }
.cx-pkg__naam { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; font-size: var(--fs-18);
	font-weight: 800; color: var(--pp-white); }
.cx-pkg__vlag { font-size: .6rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
	padding: .22rem .6rem; border-radius: 999px; color: #14130F;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); }
.cx-pkg__tekst { display: block; margin-top: .25rem; font-size: .84rem; color: var(--pp-muted); }
.cx-pkg__prijs { text-align: right; white-space: nowrap; }
.cx-pkg__prijs b { display: block; font-size: var(--fs-22); font-weight: 800; color: var(--cx-goud-2); line-height: 1; }
.cx-pkg__prijs span { font-size: .7rem; color: var(--pp-muted); }
/* oude pakketprijs (actie), doorgestreept boven de nieuwe */
.cx-pkg__prijs s { display: block; margin-bottom: .2rem; font-size: .8rem; font-weight: 700; color: var(--pp-muted); opacity: .75; }
.cx-pdp__note s { color: var(--pp-muted); opacity: .75; font-weight: 600; }

@media (max-width: 899px) {
	.cx-pdp, .cx-pdp__detail { grid-template-columns: minmax(0,1fr); }
	.cx-pdp > *, .cx-pdp__detail > * { min-width: 0; }
	.cx-pkg__rij { grid-template-columns: minmax(0,1fr); gap: .6rem; }
	.cx-pkg__prijs { text-align: left; }
}


/* ==========================================================================
   Categorie-overzicht: zelfde kaart als op de homepage, ruimer raster
   ========================================================================== */
/* Het hub-raster vult zichzelf, maar onder de 230px-drempel zou dat op mobiel
   één kaart per rij worden. Productkaarten staan daar altijd met z'n tweeën.
   Deze media query moet ná de algemene mobiele blokken staan, anders wint de
   auto-fill hierboven alsnog. */
.cx-acc--hub { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
@media (max-width: 639px) {
	.cx-acc--hub { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem; }
}
.cx-acckaart__foto { position: relative; }
/* de bestaande productbadge (bv. "Populair") op de kaart houden */
.cx-acckaart__foto .pp-product__badge, .cx-acckaart__foto [class*="badge"] { position: absolute; top: .6rem; left: .6rem; z-index: 2; }


/* ==========================================================================
   Stadspagina
   ========================================================================== */
.cx-stad { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,.65fr); gap: clamp(1.6rem,4vw,3rem); align-items: start; }
.cx-stad__omliggend { margin-top: 2rem; padding: 1.2rem 1.4rem; border-radius: 16px;
	border: 2px solid #14130F; background: #fff; box-shadow: 6px 6px 0 #14130F; }
.cx-stad__omliggend h3 { margin: 0 0 .5rem; font-size: .78rem; font-weight: 800; letter-spacing: .12em;
	text-transform: uppercase; color: #14130F; }
.cx-stad__omliggend p { margin: 0; font-size: .88rem; color: #5A544A; }
.cx-stad__fotos { display: grid; gap: 1.6rem; }
.cx-stad__foto { border-radius: 18px; }
.cx-stad__kader { position: relative; z-index: 1; border-radius: 18px; overflow: hidden;
	border: 2px solid rgba(20,19,17,.9); }
.cx-stad__kader img { width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; }

/* plaatsen in de buurt */
.cx-chips { display: flex; flex-wrap: wrap; gap: .55rem; }
.cx-chip { padding: .5rem 1rem; border-radius: 999px; border: 1px solid var(--pp-line);
	background: rgba(46,44,40,.55); font-size: .82rem; font-weight: 700; color: var(--pp-white);
	text-decoration: none; transition: border-color .15s, background .15s; }
.cx-chip:hover { border-color: var(--cx-goud); background: rgba(196,154,84,.12); color: var(--cx-goud-2); }
.cx-chips__voet { display: flex; gap: 1.5rem; flex-wrap: wrap; margin: 1.8rem 0 0; }

@media (max-width: 899px) {
	.cx-stad { grid-template-columns: minmax(0,1fr); }
	.cx-stad > * { min-width: 0; }
	.cx-stad__fotos { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 519px) {
	.cx-stad__fotos { grid-template-columns: minmax(0,1fr); }
}


/* ==========================================================================
   Locatie-overzicht
   ========================================================================== */
.cx-specs--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.cx-regios { display: grid; gap: clamp(1.8rem,3vw,2.6rem); }
.cx-regio { padding-bottom: clamp(1.6rem,3vw,2.2rem); border-bottom: 1px solid var(--pp-line-soft); }
.cx-regio:last-child { border-bottom: 0; padding-bottom: 0; }
.cx-regio__kop { display: flex; align-items: center; gap: .8rem; margin: 0 0 .5rem;
	font-size: var(--fs-22); font-weight: 800; letter-spacing: -.015em; }
.cx-regio__kop a { color: var(--pp-white); text-decoration: none; border-bottom: 2px solid transparent; }
.cx-regio__kop a:hover { color: var(--cx-goud-2); border-bottom-color: var(--cx-goud); }
.cx-regio__aantal { display: grid; place-content: center; min-width: 26px; height: 22px; padding: 0 .45rem;
	border-radius: 999px; background: rgba(196,154,84,.16); color: var(--cx-goud-2);
	font-size: .68rem; font-weight: 800; letter-spacing: 0; }
.cx-regio__tekst { margin: 0 0 1.1rem; font-size: .88rem; color: var(--pp-muted); max-width: 70ch; }

@media (max-width: 899px) { .cx-specs--3 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 599px) { .cx-specs--3 { grid-template-columns: minmax(0,1fr); } }


/* ==========================================================================
   B2B
   ========================================================================== */
.cx-gebruik { display: flex; flex-wrap: wrap; gap: .7rem; }
.cx-gebruik__item { display: inline-flex; align-items: center; gap: .7rem; padding: .7rem 1.1rem;
	border-radius: 14px; border: 1px solid var(--pp-line-soft); background: rgba(46,44,40,.5);
	font-size: .88rem; font-weight: 600; color: var(--pp-white); }
.cx-showcase { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.6rem; }
.cx-showcase__item { margin: 0; }
.cx-showcase__wrap { display: block; border-radius: 18px; }
.cx-showcase__kader { display: block; position: relative; z-index: 1; border-radius: 18px; overflow: hidden;
	border: 2px solid rgba(20,19,17,.9); }
.cx-showcase__kader img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.cx-showcase figcaption { margin-top: 1.1rem; font-size: .84rem; color: var(--pp-muted); }

@media (max-width: 899px) {
	.cx-showcase { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 599px) {
	.cx-showcase { grid-template-columns: minmax(0,1fr); }
}


/* ==========================================================================
   Funnel — de markup is gelijk aan live (pp-bk-*), alleen de opmaak is nieuw.
   ========================================================================== */
/* De funnel toont en verbergt regels met het hidden-attribuut. Een eigen
   display-waarde wint daarvan, dus dat expliciet terugzetten. */
/* Laagopbouw van de funnel.
   De vlakken lagen alle drie binnen een luminantie van .005 tot .013, dus het
   verschil tussen sectie, stapkaart en keuzeblok was met 1,12 contrast praktisch
   onzichtbaar: je zag ze alleen aan hun randen. Deze drie tinten trappen met
   ruim 1,4 per stap, wat de kaarten leesbaar maakt als losse, aanraakbare vlakken
   zonder de donkere sfeer op te geven. Warme ondertoon vasthouden, geen grijs.
   Draai je hieraan, houd dan de volgorde 0 < gesloten < 1 < 2 aan. */
:root {
	--cx-laag-1: #302D29;        /* stapkaart, open        */
	--cx-laag-1-dicht: #211F1C;  /* stapkaart, vergrendeld */
	--cx-laag-2: #443F39;        /* keuzeblok en invoerveld op de stapkaart */
}

.cx-funnel [hidden] { display: none !important; }
.cxh--kaal { position: static; }
.cxh__in--kaal { display: flex; align-items: center; justify-content: space-between; gap: 1.4rem; }
.cxh__kaal-links { display: flex; align-items: center; gap: 1.2rem; }
.cxh__terug { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; font-weight: 700;
	letter-spacing: .06em; text-transform: uppercase; color: var(--pp-muted); text-decoration: none; }
.cxh__terug:hover { color: var(--cx-goud-2); }
.cxh__usps { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.4rem; flex-wrap: wrap;
	font-size: .76rem; color: var(--pp-muted); }
.cxh__usps strong { color: var(--pp-white); }
.cxh__sterren { color: var(--cx-goud-2); letter-spacing: .06em; }
@media (max-width: 767px) { .cxh__usps li:not(:first-child) { display: none; } }

.cx-funnel .pp-bk__grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,.5fr);
	gap: clamp(1.4rem,3vw,2.4rem); align-items: start; }
.cx-funnel .pp-bk__steps { display: grid; gap: 1.2rem; min-width: 0; }

/* stapkaart */
/* De stapkaart moet los komen van de paginakleur: een tint lichter en een
   rand die je ziet in plaats van een die wegvalt in het zwart. */
.cx-funnel .pp-bk-step { background: var(--cx-laag-1); border: 1px solid rgba(246,243,234,.14);
	border-radius: 18px; overflow: hidden; }
.cx-funnel .pp-bk-step__head { display: flex; align-items: flex-start; gap: .8rem; padding: 1.1rem 1.4rem; }
.cx-funnel .pp-bk-step__head > div { flex: 1 1 auto; min-width: 0; }
/* De bol met het stapnummer: altijd goud, zodat de nummering rustig en
   herkenbaar blijft. Vergrendelde stappen dempen we met opacity in plaats van
   met een andere kleur, dan blijft de reeks 1 t/m 4 in één oogopslag leesbaar. */
.cx-funnel .pp-bk-step__num {
	display: grid !important; place-content: center; flex: none;
	width: 30px; height: 30px; border-radius: 50%;
	font-size: .84rem; font-weight: 800; line-height: 1;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)) !important;
	color: #14130F !important; border: 0 !important; box-shadow: none !important;
	transition: opacity .18s var(--ease); }
.cx-funnel .pp-bk-step.is-vergrendeld .pp-bk-step__num { opacity: .4; }

.cx-funnel .pp-bk-step__head { display: flex; align-items: flex-start; gap: .8rem; padding: 1.1rem 1.4rem; }
.cx-funnel .pp-bk-step__head > div { flex: 1 1 auto; min-width: 0; }
/* De bol met het stapnummer: rustig bij een vergrendelde stap, gouden rand als
   hij open is, gevuld zodra er een keuze in staat. */
.cx-funnel .pp-bk-step__num { display: grid; place-content: center; flex: none;
	width: 30px; height: 30px; border-radius: 50%; font-size: .82rem; font-weight: 800;
	border: 1px solid rgba(246,243,234,.22); color: var(--pp-muted);
	background: none; box-shadow: none;
	transition: background .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease); }
.cx-funnel .pp-bk-step.cx-actueel .pp-bk-step__num {
	border-color: var(--cx-goud); color: var(--pp-white); }
.cx-funnel .pp-bk-step.is-klaar .pp-bk-step__num {
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
	border-color: var(--cx-goud); color: #14130F; }
.cx-funnel .pp-bk-step.is-vergrendeld .pp-bk-step__num {
	border-color: rgba(246,243,234,.12); color: rgba(207,201,192,.45); background: none; }
.cx-funnel .pp-bk-step__title { margin: 0; font-size: var(--fs-18); font-weight: 800;
	letter-spacing: -.015em; }
.cx-funnel .pp-bk-step__hint { margin: .25rem 0 0; font-size: .8rem; color: var(--pp-muted); }
.cx-funnel .pp-bk-step__opt { font-size: .7rem; font-weight: 700; color: var(--pp-muted); text-transform: none; letter-spacing: 0; }
.cx-funnel .pp-bk-step__lock { color: var(--pp-muted); opacity: .6; }
.cx-funnel .pp-bk-step__body { padding: 1.3rem 1.4rem 1.4rem; }
.cx-funnel .pp-bk-step.is-open { border-color: rgba(196,154,84,.4); }
.cx-funnel .pp-bk-step.is-open .pp-bk-step__head { border-bottom: 1px solid var(--pp-line-soft); }

/* pakketten */
.cx-funnel .pp-bk-pkgs { display: grid; grid-template-columns: minmax(0,1fr); gap: .9rem; margin-top: 0; }
/* Compacter dan eerst: drie kaarten onder elkaar werden anders een muur.
   De rand is dunner, de vulling krapper en de tekst een maat kleiner. */
.cx-funnel .pp-bk-pkg { position: relative; padding: 1rem 1.15rem; border-radius: 14px; cursor: pointer;
	border: 1px solid rgba(246,243,234,.16); background: var(--cx-laag-2);
	display: grid; grid-template-columns: minmax(0,1fr) auto; column-gap: 1.5rem; align-items: start;
	transition: border-color .15s, background .15s, transform .15s; }
.cx-funnel .pp-bk-pkg:hover { transform: translateX(3px); }
/* Uitgelicht pakket even breed als de rest: het accent zit in rand en label. */
.cx-funnel .pp-bk-pkg.is-featured,
.cx-funnel .pp-bk-pkg.is-featured:hover { transform: none; }
.cx-funnel .pp-bk-pkg.is-featured:hover { transform: translateX(3px); }
.cx-funnel .pp-bk-pkg.is-featured { border-color: rgba(196,154,84,.55); }
.cx-funnel .pp-bk-pkg:hover { border-color: rgba(196,154,84,.7); }
.cx-funnel .pp-bk-pkg.is-selected { border-color: var(--cx-goud); background: rgba(196,154,84,.12); }
.cx-funnel .pp-bk-pkg__flag { position: absolute; top: -11px; left: 1.3rem; z-index: 2; padding: .22rem .7rem; border-radius: 999px;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F; border: 2px solid #14130F;
	font-size: .58rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.cx-funnel .pp-bk-pkg__radio { position: absolute; top: auto; bottom: 1rem; right: 1.15rem; left: auto;
	width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--pp-line); }
.cx-funnel .pp-bk-pkg.is-selected .pp-bk-pkg__radio { border-color: var(--cx-goud); background: radial-gradient(circle, var(--cx-goud) 45%, transparent 46%); }
.cx-funnel .pp-bk-pkg__name { grid-column: 1; grid-row: 1; font-weight: 800; font-size: var(--fs-18);
	letter-spacing: -.015em; line-height: 1.15; }
.cx-funnel .pp-bk-pkg__price { grid-column: 2; grid-row: 1 / span 2; text-align: right; white-space: nowrap;
	font-size: clamp(1.25rem,1rem+.8vw,1.6rem); font-weight: 800; color: var(--cx-goud-2); line-height: 1.1; }
.cx-funnel .pp-bk-pkg__price s { display: block; color: var(--pp-muted); font-size: .82rem; font-weight: 400; opacity: .7; }
.cx-funnel .pp-bk-pkg__desc { grid-column: 1; grid-row: 2; margin-top: .3rem; font-size: .82rem; color: var(--pp-muted); }
.cx-funnel .pp-bk-pkg__details { grid-column: 1; grid-row: 3; margin-top: .8rem; font-size: .8rem; color: var(--pp-muted); }
.cx-funnel .pp-bk-pkg__details summary { cursor: pointer; color: var(--cx-goud-2); font-weight: 600; }
.cx-funnel .pp-bk-pkg__details ul { margin: .5rem 0 0; padding-left: 1.1rem; }

/* tenten + extra's */
.cx-funnel .pp-bk-tents { display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px,1fr)); gap: .8rem; }
/* De accessoires staan als brede rijen: foto links, naam in het midden, prijs
   rechts. Op een telefoon onder elkaar (een halve rij is te smal voor foto,
   naam en prijs naast elkaar), vanaf 720 px twee naast elkaar. */
.cx-funnel .pp-bk-extras { display: grid; grid-template-columns: minmax(0,1fr); gap: .55rem; }
@media (min-width: 720px) {
	.cx-funnel .pp-bk-extras { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .6rem; }
}
.cx-funnel .pp-bk-tent { position: relative; padding: .8rem; border-radius: 14px;
	border: 1px solid rgba(246,243,234,.16); background: var(--cx-laag-2); cursor: pointer; text-align: center;
	color: var(--pp-white); font: inherit; transition: border-color .15s, background .15s; }
.cx-funnel .pp-bk-extra { position: relative; display: grid;
	grid-template-columns: 56px minmax(0,1fr) auto 22px; align-items: center; gap: .55rem .8rem;
	padding: .6rem .8rem; border-radius: 14px; border: 1px solid rgba(246,243,234,.16);
	background: var(--cx-laag-2); cursor: pointer; text-align: left;
	color: var(--pp-white); font: inherit; transition: border-color .15s, background .15s; }
.cx-funnel .pp-bk-tent:hover, .cx-funnel .pp-bk-extra:hover { border-color: rgba(196,154,84,.7); }
.cx-funnel .pp-bk-tent.is-selected, .cx-funnel .pp-bk-extra.is-active {
	border-color: var(--cx-goud); background: rgba(196,154,84,.12); }
.cx-funnel .pp-bk-extra__media { display: block; width: 56px; height: 56px; margin: 0; border-radius: 10px;
	background: rgba(246,243,234,.05); overflow: hidden; }
.cx-funnel .pp-bk-extra__media img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: contain;
	display: block; padding: 3px; }
.cx-funnel .pp-bk-extra__info { min-width: 0; display: flex; flex-direction: column;
	align-items: flex-start; gap: .25rem; }
/* De productbadge zat als gouden vlag op de foto; in een rij van 56 px is die
   onleesbaar, dus staat hij nu als tekstlabel onder de naam. */
.cx-funnel .pp-bk-extra .pp-imgbadge { position: static; padding: .12rem .45rem; font-size: .6rem;
	font-weight: 800; letter-spacing: .05em; text-transform: uppercase; box-shadow: none; }
.cx-funnel .pp-bk-tent__size { display: block; font-size: .84rem; font-weight: 800; }
.cx-funnel .pp-bk-extra__name { display: block; font-size: .88rem; font-weight: 800; line-height: 1.3; }
.cx-funnel .pp-bk-tent__price { display: block; margin-top: .2rem; font-size: .8rem;
	font-weight: 700; color: var(--cx-goud-2); }
.cx-funnel .pp-bk-extra__price { display: block; margin: 0; font-size: .88rem; font-weight: 800;
	color: var(--cx-goud-2); text-align: right; white-space: nowrap; }
.cx-funnel .pp-bk-extra__price s { color: var(--pp-muted); font-weight: 400; opacity: .7; }
.cx-funnel .pp-bk-extra__per { color: var(--pp-muted); font-weight: 400; font-size: .7rem; }
.cx-funnel .pp-bk-extra__tip { display: inline-block; margin-left: .3rem; padding: .1rem .4rem; border-radius: 999px;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F;
	font-size: .55rem; font-weight: 800; letter-spacing: .08em; }
.cx-funnel .pp-bk-tent__check { position: absolute; top: .6rem; right: .6rem;
	width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--pp-line); background: rgba(20,19,17,.6); }
.cx-funnel .pp-bk-extra__check { position: relative; top: auto; right: auto; left: auto; bottom: auto;
	width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--pp-line);
	background: rgba(20,19,17,.6); justify-self: end; align-self: center; }
.cx-funnel .pp-bk-tent.is-selected .pp-bk-tent__check,
.cx-funnel .pp-bk-extra.is-active .pp-bk-extra__check { border-color: var(--cx-goud);
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); }
.cx-funnel .pp-bk-extra.is-active .pp-bk-extra__check::after { content: ''; position: absolute;
	left: 6px; top: 2px; width: 5px; height: 9px; border: solid #14130F;
	border-width: 0 2px 2px 0; transform: rotate(45deg); }
.cx-funnel .pp-bk-extra__qty { grid-column: 2 / -1; display: inline-flex; align-items: center; gap: .5rem;
	margin-top: .1rem; justify-self: start; }
.cx-funnel .pp-bk-qty__btn { width: 26px; height: 26px; border-radius: 8px; border: 1px solid var(--pp-line);
	background: rgba(20,19,17,.5); color: var(--pp-white); cursor: pointer; font-weight: 800; }
.cx-funnel .pp-bk-extra__num { grid-column: 2 / -1; display: flex; align-items: center; gap: .55rem;
	margin-top: .1rem; font-size: .72rem; color: var(--pp-muted); }
.cx-funnel .pp-bk-extra__num input { width: 5.5rem; margin-top: 0; padding: .45rem .6rem; border-radius: 8px;
	border: 1px solid var(--pp-line); background: rgba(20,19,17,.6); color: var(--pp-white); text-align: center; font: inherit; }

/* formulier */
.cx-funnel .pp-bk-notice { display: flex; align-items: center; gap: .8rem; padding: .9rem 1.1rem; margin-bottom: 1.2rem;
	border-radius: 14px; border: 1px dashed rgba(196,154,84,.5); background: rgba(196,154,84,.08); font-size: .84rem; }
.cx-funnel .pp-bk-notice__icon { color: var(--cx-goud-2); flex: none; }
.cx-funnel .pp-bk-fieldset { border: 0; padding: 0; margin: 0 0 1.4rem; }
.cx-funnel .pp-bk-fieldset legend { padding: 0; font-size: .72rem; font-weight: 800; letter-spacing: .14em;
	text-transform: uppercase; color: var(--pp-white); }
.cx-funnel .pp-bk-fieldset__note { margin: .35rem 0 .9rem; font-size: .76rem; color: var(--pp-muted); }
.cx-funnel .pp-bk-form__row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem; }
.cx-funnel .pp-bk-form__row--pchn { grid-template-columns: minmax(0,2fr) minmax(0,1fr); }
.cx-funnel .pp-bk-field { display: block; margin-bottom: .8rem; }
.cx-funnel .pp-bk-field > span { display: block; margin-bottom: .3rem; font-size: .76rem; font-weight: 700; color: var(--pp-muted); }
.cx-funnel .pp-bk-field input, .cx-funnel .pp-bk-field select { width: 100%; padding: .75rem .95rem; border-radius: 12px;
	border: 1px solid rgba(246,243,234,.18); background: var(--cx-laag-2); color: var(--pp-white); font: inherit; font-size: .9rem; }
.cx-funnel .pp-bk-field input:focus, .cx-funnel .pp-bk-field select:focus { outline: none;
	border-color: var(--cx-goud); box-shadow: 0 0 0 3px rgba(196,154,84,.16); }
.cx-funnel .pp-bk-address-status { margin: 0 0 .8rem; font-size: .78rem; color: var(--cx-goud-2); }

/* samenvatting */
.cx-funnel .pp-bk-summary { position: sticky; top: 20px; min-width: 0; }
.cx-funnel .pp-bk-summary__inner { border: 2px solid rgba(20,19,17,.9); border-radius: 18px;
	background: linear-gradient(170deg, rgba(58,55,50,.92), rgba(26,25,23,.97)); padding: 1.5rem 1.5rem 1.7rem;
	box-shadow: 9px 9px 0 var(--cx-goud), 14px 18px 34px rgba(0,0,0,.5); }
.cx-funnel .pp-bk-summary__title { margin: 0 0 1rem; font-size: var(--fs-18); font-weight: 800; letter-spacing: -.015em; }
.cx-funnel .pp-bk-summary__empty { font-size: .84rem; color: var(--pp-muted); margin: 0; }
.cx-funnel .pp-bk-summary__lines { display: grid; gap: .5rem; font-size: .84rem; }
.cx-funnel .pp-bk-summary__meta { display: grid; gap: .45rem; font-size: .82rem; color: var(--pp-muted); }
/* pas een scheidingslijn zodra er echt regels staan */
.cx-funnel .pp-bk-summary__meta:has(.pp-bk-summary__row:not([hidden])) { margin-top: 1rem; padding-top: 1rem;
	border-top: 1px solid var(--pp-line-soft); }
.cx-funnel .pp-bk-summary__row { display: flex; justify-content: space-between; gap: 1rem; }
.cx-funnel .pp-bk-summary__row--discount { color: var(--pp-ok); }
.cx-funnel .pp-bk-summary__total { display: flex; justify-content: space-between; align-items: baseline;
	margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--pp-line-soft); font-weight: 800; }
.cx-funnel .pp-bk-summary__amount { font-size: clamp(1.5rem,1.2rem+1vw,2rem); color: var(--cx-goud-2); letter-spacing: -.02em; }
.cx-funnel .pp-bk-summary__vat { margin: .2rem 0 1.2rem; font-size: .72rem; color: var(--pp-muted); text-align: right; }
.cx-funnel .pp-bk-calc, .cx-funnel .pp-bk-submit { display: flex; width: 100%; justify-content: center;
	align-items: center; gap: .5rem; padding: .9rem 1.4rem; border-radius: 999px; border: 2px solid #14130F;
	font-weight: 800; font-size: .92rem; cursor: pointer; margin-bottom: .7rem; }
.cx-funnel .pp-bk-calc { background: transparent; border-color: rgba(196,154,84,.34); color: rgba(246,243,234,.85); }
.cx-funnel .pp-bk-calc:hover { background: rgba(196,154,84,.1); border-color: rgba(196,154,84,.7); color: var(--cx-goud-2); }
.cx-funnel .pp-bk-submit { background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F;
	box-shadow: 5px 5px 0 #14130F; }
.cx-funnel .pp-bk-submit:hover:not(:disabled) { transform: translate(3px,3px); box-shadow: 2px 2px 0 #14130F; }
.cx-funnel .pp-bk-submit:disabled { opacity: .45; cursor: not-allowed; box-shadow: 3px 3px 0 rgba(20,19,17,.6); }
.cx-funnel .pp-bk-summary__reassure { font-size: .74rem; color: var(--pp-muted); text-align: center;
	margin: .9rem 0 0; line-height: 1.5; }
.cx-funnel .pp-bk-summary__reassure strong { color: var(--cx-goud-2); }
.cx-funnel .pp-bk-summary__empty { font-size: .84rem; color: var(--pp-muted); margin: 0; }

@media (max-width: 1023px) {
	.cx-funnel .pp-bk__grid { grid-template-columns: minmax(0,1fr); }
	.cx-funnel .pp-bk-summary { position: static; }
}
@media (max-width: 599px) {
	.cx-funnel .pp-bk-form__row { grid-template-columns: minmax(0,1fr); }
	.cx-funnel .pp-bk-form__row--pchn { grid-template-columns: minmax(0,2fr) minmax(0,1fr); }
	.cx-funnel .pp-bk-tents { grid-template-columns: repeat(2, minmax(0,1fr)); }
}


/* geruststellingsbalk */
.cx-gerust { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem 1.6rem; margin: 1.6rem 0 1.8rem; padding: .8rem 1.2rem;
	border-radius: 999px; background: rgba(196,154,84,.1); border: 1px solid rgba(196,154,84,.28);
	font-size: .76rem; font-weight: 700; color: var(--cx-goud-2); justify-content: center; }
.cx-gerust li { display: flex; align-items: center; gap: .4rem; }
.cx-gerust li::before { content: '✓'; font-weight: 800; }
.cx-gerust li.cx-gerust__score::before { content: none; }
.cx-gerust__sterren { color: var(--cx-goud-2); letter-spacing: .04em; font-size: .72rem; }
.cx-gerust__kort { display: none; }
.cx-gerust__score strong { color: var(--pp-white); }

@media (max-width: 767px) {
	.cx-gerust { border-radius: 999px; justify-content: flex-start; flex-wrap: nowrap;
		overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none;
		gap: .75rem; padding: .65rem .9rem; font-size: .65rem; }
	.cx-gerust::-webkit-scrollbar { display: none; }
	.cx-gerust li { flex: 0 0 auto; white-space: nowrap; }
	.cx-gerust__lang { display: none; }
	.cx-gerust__kort { display: inline; }
	.cx-gerust__sterren { display: none; }
	.cx-gerust { gap: .8rem; }
	.cx-gerust__sterren { font-size: .64rem; }
}

@media (max-width: 599px) {
	.cx-funnel .pp-bk-pkg { grid-template-columns: minmax(0,1fr); }
	.cx-funnel .pp-bk-pkg__price { grid-column: 1; grid-row: 2; text-align: left; margin-top: .3rem; }
	.cx-funnel .pp-bk-pkg__price s { display: inline; margin-right: .4rem; }
	.cx-funnel .pp-bk-pkg__desc { grid-row: 3; }
	.cx-funnel .pp-bk-pkg__details { grid-row: 4; }
}


/* ---- één stap tegelijk ---- */
/* Alle stappen staan onder elkaar op de pagina; alleen de inhoud van de
   actieve stap is uitgeklapt. Zo zie je in één blik hoeveel er nog komt,
   kun je terugscrollen naar wat je koos, en blijft het scherm rustig. */
.cx-funnel .pp-bk-step { display: block; }
.cx-funnel .pp-bk-step__body { display: none; }
.cx-funnel .pp-bk-step.cx-actueel > .pp-bk-step__body { display: block; }
.cx-funnel .pp-bk-step.cx-actueel { border-color: rgba(196,154,84,.4); }

/* afgerond: klikbaar, met een vinkje voor de titel */
.cx-funnel .pp-bk-step.is-klaar { border-color: rgba(196,154,84,.22); }

/* nog niet aan de beurt: gedempt, geen muisaanwijzer */
/* Vergrendeld: gedempt maar leesbaar. Met opacity .5 werd de tekst grijs op
   grijs en verdween ook de rand. */
.cx-funnel .pp-bk-step.is-vergrendeld { opacity: 1; background: var(--cx-laag-1-dicht);
	border-color: rgba(246,243,234,.06); }
.cx-funnel .pp-bk-step.is-vergrendeld .pp-bk-step__hint { color: rgba(207,201,192,.7); }
.cx-funnel .pp-bk-step.is-vergrendeld .pp-bk-step__head { cursor: default; }

/* Nog niet aan de beurt: zichtbaar maar duidelijk buiten bereik. */
.cx-funnel .pp-bk-step.is-vergrendeld .pp-bk-step__title { color: var(--pp-muted); }
.cx-stapnav { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	margin-top: 1.6rem; padding-top: 1.3rem; border-top: 1px solid var(--pp-line-soft); }
.cx-stapnav__door { display: inline-flex; align-items: center; gap: .5rem; padding: .85rem 1.7rem;
	border-radius: 999px; border: 2px solid #14130F; background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
	color: #14130F; font: inherit; font-weight: 800; font-size: .95rem; cursor: pointer;
	box-shadow: 5px 5px 0 #14130F; transition: transform .12s var(--ease), box-shadow .12s var(--ease); }
.cx-stapnav__door:hover:not(:disabled) { transform: translate(3px,3px); box-shadow: 2px 2px 0 #14130F; }
.cx-stapnav__door:disabled { opacity: .45; cursor: not-allowed; box-shadow: 3px 3px 0 rgba(20,19,17,.6); }
.cx-stapnav__terug { background: none; border: 0; padding: .4rem 0; color: var(--pp-muted); cursor: pointer;
	font: inherit; font-size: .82rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cx-stapnav__terug:hover { color: var(--cx-goud-2); }
.cx-stapnav__hint { font-size: .8rem; color: var(--pp-muted); }
/* Verwijst naar het overzicht zonder een richting te noemen: dat staat op
   desktop rechts en op mobiel onder de stappen. */
.cx-stapnav__naar { display: inline-flex; align-items: center; gap: .4rem; background: none;
	border: 0; padding: .4rem 0; font: inherit; font-size: .8rem; font-weight: 700;
	color: var(--cx-goud-2); cursor: pointer; }
.cx-stapnav__naar:hover { color: var(--pp-white); }
.cx-stapnav__naar svg { transition: transform .15s var(--ease); }
.cx-stapnav__naar:hover svg { transform: translateX(3px); }
@media (max-width: 1023px) { .cx-stapnav__naar:hover svg { transform: translateY(3px); } }


/* ---- tentmaten als rijen ---- */
.cx-funnel .pp-bk-tents { grid-template-columns: minmax(0,1fr); gap: .7rem; }
.cx-funnel .pp-bk-tent { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center;
	column-gap: 1.2rem; padding: 1rem 1.3rem; text-align: left; border-radius: 14px; }
.cx-funnel .pp-bk-tent__size { grid-column: 1; grid-row: 1; font-size: var(--fs-18); font-weight: 800; }
.cx-funnel .pp-bk-tent__gasten { grid-column: 1; grid-row: 2; margin-top: .2rem; font-size: .88rem;
	font-weight: 600; color: var(--cx-goud-2); }
.cx-funnel .pp-bk-tent__price { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; font-size: var(--fs-18);
	white-space: nowrap; padding-right: 2rem; }
.cx-funnel .pp-bk-tent__check { top: 50%; right: 1.2rem; transform: translateY(-50%); }

/* knop die nog niet kan: gedempt, maar wel klikbaar (brengt je naar de stap) */
.cx-funnel .pp-bk-calc.cx-wacht { opacity: .6; border-style: dashed; }
.cx-funnel .pp-bk-calc.cx-wacht:hover { opacity: 1; }

/* rustige uitleg in het overzicht zolang er nog geen knop nodig is */
.cx-funnel .cx-overzicht-hint { margin: 0 0 .2rem; font-size: .78rem; color: var(--pp-muted); text-align: center; }
/* Laagopbouw van de funnel.
   De vlakken lagen alle drie binnen een luminantie van .005 tot .013, dus het
   verschil tussen sectie, stapkaart en keuzeblok was met 1,12 contrast praktisch
   onzichtbaar: je zag ze alleen aan hun randen. Deze drie tinten trappen met
   ruim 1,4 per stap, wat de kaarten leesbaar maakt als losse, aanraakbare vlakken
   zonder de donkere sfeer op te geven. Warme ondertoon vasthouden, geen grijs.
   Draai je hieraan, houd dan de volgorde 0 < gesloten < 1 < 2 aan. */
:root {
	--cx-laag-1: #302D29;        /* stapkaart, open        */
	--cx-laag-1-dicht: #211F1C;  /* stapkaart, vergrendeld */
	--cx-laag-2: #443F39;        /* keuzeblok en invoerveld op de stapkaart */
}

.cx-funnel [hidden] { display: none !important; }


/* ==========================================================================
   Footer van de funnel: rustig afsluiten, niets om op weg te klikken
   ========================================================================== */
.cxf-kaal { border-top: 1px solid rgba(196,154,84,.2); background: #0B0A09; margin-top: clamp(3rem,6vw,5rem); }
.cxf-kaal__in { max-width: var(--container); margin-inline: auto; padding: 1.6rem clamp(1rem,4vw,2rem);
	display: grid; gap: .8rem; justify-items: center; text-align: center; }
.cxf-kaal__links { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 1.4rem; }
.cxf-kaal__links a { font-size: .78rem; color: var(--pp-muted); text-decoration: none; }
.cxf-kaal__links a:hover { color: var(--cx-goud-2); }
.cxf-kaal__copy { margin: 0; font-size: .72rem; color: rgba(207,201,192,.55); }
/* geen zwevende WhatsApp-knop tijdens het boeken */
.cx-funnel ~ .ppt-wa-float, body:has(.cx-funnel) .ppt-wa-float { display: none; }


/* ==========================================================================
   Funnel op mobiel — de meeste bezoekers komen hier op hun telefoon binnen
   ========================================================================== */
@media (max-width: 899px) {
	/* gouden vlak achter het overzicht subtieler */
	.cx-funnel .pp-bk-summary__inner { box-shadow: 5px 5px 0 var(--cx-goud), 10px 14px 24px rgba(0,0,0,.45);
		padding: 1.2rem 1.2rem 1.4rem; }
	.cx-funnel .pp-bk-summary { margin-top: 1.4rem; }
}

@media (max-width: 599px) {
	.cx-funnel .pp-bk-step__head { padding: 1rem 1.1rem; }
	.cx-funnel .pp-bk-step__body { padding: 1.1rem 1.1rem 1.2rem; }

	/* pakketkaart: naam, prijs, tekst, dan het rondje rechtsonder */
	.cx-funnel .pp-bk-pkg { padding: .95rem 1.05rem 2.4rem; }
	.cx-funnel .pp-bk-pkg__name { font-size: var(--fs-18); }
	.cx-funnel .pp-bk-pkg__price { font-size: 1.3rem; }
	.cx-funnel .pp-bk-pkg__radio { bottom: .85rem; right: 1.05rem; }
	.cx-funnel .pp-bk-pkg__flag { left: 1.1rem; }

	/* tentmaten: maat en personen links, prijs rechts */
	.cx-funnel .pp-bk-tent { padding: .9rem 3rem .9rem 1.1rem; }
	.cx-funnel .pp-bk-tent__size { font-size: var(--fs-16); }
	.cx-funnel .pp-bk-tent__price { font-size: var(--fs-16); padding-right: 0; }
	.cx-funnel .pp-bk-tent__check { right: .9rem; }

	/* extra's blijven ook op een telefoon brede rijen */
	.cx-funnel .pp-bk-extras { grid-template-columns: minmax(0,1fr); gap: .5rem; }

	/* knoprij onder de stap */
	.cx-stapnav { flex-wrap: wrap; gap: .8rem; }
	.cx-stapnav__door { width: 100%; justify-content: center; order: -1; }
	.cx-stapnav__terug { width: 100%; text-align: center; }

	/* stappenbalk compact: alleen bollen, actieve stap met naam */
}


/* ---- kop en funnel dichter op elkaar ---- */
.cx-funnel .cx-paginahero { padding-block: clamp(1.8rem,3vw,2.6rem) clamp(1rem,2vw,1.4rem); }
.cx-funnel .pp-bk { padding-block: 0 clamp(2.5rem,5vw,4rem); }


/* ==========================================================================
   Checkout (/boeking-afronden/)
   ========================================================================== */
.cx-ck__body { margin-top: 1.6rem; }
.cx-checkout .woocommerce { display: block; }
.cx-checkout form.checkout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr);
	gap: clamp(1.4rem,3vw,2.4rem); align-items: start; }
.cx-checkout #customer_details { min-width: 0; }
.cx-checkout #customer_details, .cx-checkout .woocommerce-checkout-review-order {
	background: var(--pp-surface-2); border: 2px solid rgba(20,19,17,.9); border-radius: 18px;
	padding: clamp(1.3rem,3vw,1.9rem); }
.cx-checkout #order_review { position: sticky; top: 20px; background: var(--pp-surface-2);
	border: 2px solid rgba(20,19,17,.9); border-radius: 18px; padding: clamp(1.3rem,3vw,1.9rem);
	box-shadow: 9px 9px 0 var(--cx-goud), 14px 18px 34px rgba(0,0,0,.5); }
.cx-checkout #order_review_heading { margin: 0 0 1.1rem; padding-bottom: .9rem;
	border-bottom: 1px solid var(--pp-line-soft); }
.cx-checkout .woocommerce-checkout-review-order { background: none; border: 0; padding: 0; }
.cx-checkout h3, .cx-checkout .woocommerce-billing-fields h3 { font-size: var(--fs-18); font-weight: 800;
	letter-spacing: -.015em; margin: 0 0 1.1rem; }
.cx-checkout label { font-size: .76rem; font-weight: 700; color: var(--pp-muted); }
.cx-checkout .form-row { margin-bottom: .9rem; }
.cx-checkout input[type=text], .cx-checkout input[type=email], .cx-checkout input[type=tel],
.cx-checkout textarea, .cx-checkout select, .cx-checkout .select2-selection {
	width: 100%; padding: .75rem .95rem; border-radius: 12px; border: 1px solid var(--pp-line);
	background: rgba(20,19,17,.5); color: var(--pp-white); font: inherit; font-size: .9rem; }
.cx-checkout input:focus, .cx-checkout textarea:focus, .cx-checkout select:focus {
	outline: none; border-color: var(--cx-goud); box-shadow: 0 0 0 3px rgba(196,154,84,.16); }
.cx-checkout table.shop_table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.cx-checkout table.shop_table th, .cx-checkout table.shop_table td { padding: .55rem 0; text-align: left;
	border-bottom: 1px solid var(--pp-line-soft); }
.cx-checkout table.shop_table tfoot .order-total th, .cx-checkout table.shop_table tfoot .order-total td {
	border-bottom: 0; padding-top: 1rem; font-size: var(--fs-18); font-weight: 800; color: var(--cx-goud-2); }
.cx-checkout #place_order, .cx-checkout .button.alt {
	display: block; width: 100%; margin-top: 1.2rem; padding: 1rem 1.6rem; border-radius: 999px;
	border: 2px solid #14130F; background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
	color: #14130F !important; font: inherit; font-weight: 800; font-size: 1rem; cursor: pointer;
	box-shadow: 5px 5px 0 #14130F; transition: transform .12s var(--ease), box-shadow .12s var(--ease); }
.cx-checkout #place_order:hover { transform: translate(3px,3px); box-shadow: 2px 2px 0 #14130F; }
.cx-checkout .woocommerce-privacy-policy-text, .cx-checkout .woocommerce-terms-and-conditions-wrapper {
	font-size: .78rem; color: var(--pp-muted); }
.cx-checkout .woocommerce-info, .cx-checkout .woocommerce-error, .cx-checkout .woocommerce-message {
	border-radius: 14px; border: 1px solid var(--pp-line); background: rgba(196,154,84,.08);
	padding: .9rem 1.1rem; font-size: .86rem; list-style: none; margin: 0 0 1.2rem; }
/* WooCommerce zet in zo'n melding zijn eigen knop ('Bekijk winkelwagen'), die
   standaard wit is. Hem meteen in de vormtaal trekken, anders springt er een
   witte blok uit een verder zwart/gouden pagina. */
.cx-checkout .woocommerce-info .button, .cx-checkout .woocommerce-error .button,
.cx-checkout .woocommerce-message .button, .cx-checkout .wc-forward {
	display: inline-flex; align-items: center; gap: .4rem; padding: .5rem 1.1rem; border-radius: 999px;
	border: 1px solid var(--cx-goud); background: transparent; color: var(--cx-goud-2) !important;
	font: inherit; font-weight: 700; font-size: .82rem; text-decoration: none; cursor: pointer;
	box-shadow: none; transition: background .15s var(--ease), color .15s var(--ease); }
.cx-checkout .woocommerce-message .button:hover, .cx-checkout .wc-forward:hover {
	background: var(--cx-goud); color: #14130F !important; }

@media (max-width: 1023px) {
	.cx-checkout form.checkout { grid-template-columns: minmax(0,1fr); }
	.cx-checkout #order_review { position: static;
		box-shadow: 5px 5px 0 var(--cx-goud), 10px 14px 24px rgba(0,0,0,.45); }
}

/* ==========================================================================
   Bevestiging (thankyou.php)
   ========================================================================== */
.cx-bevestiging .pp-thanks { max-width: 720px; margin-inline: auto; text-align: center; }
.cx-bevestiging .pp-thanks__title { font-size: clamp(1.9rem,1.3rem+2.4vw,2.8rem); font-weight: 800;
	letter-spacing: -.02em; line-height: 1.1; margin: 0 0 1rem; }
.cx-bevestiging .pp-thanks__lead { color: var(--pp-muted); font-size: var(--fs-16); margin: 0 auto 2rem; max-width: 52ch; }
.cx-bevestiging .pp-thanks__lead strong { color: var(--pp-white); }
.cx-bevestiging .pp-thanks__card { position: relative; text-align: left; border: 2px solid rgba(20,19,17,.9);
	border-radius: 18px; background: var(--pp-surface-2); padding: clamp(1.3rem,3vw,1.8rem);
	box-shadow: 9px 9px 0 var(--cx-goud), 14px 18px 34px rgba(0,0,0,.5); margin-bottom: 2.6rem; }
.cx-bevestiging .pp-thanks__card-head { display: flex; align-items: baseline; justify-content: space-between;
	gap: 1rem; margin-bottom: 1rem; padding-bottom: .9rem; border-bottom: 1px solid var(--pp-line-soft);
	font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.cx-bevestiging .pp-thanks__ordernr { color: var(--cx-goud-2); }
.cx-bevestiging .pp-thanks__rows { margin: 0; display: grid; gap: .5rem; font-size: .9rem; }
.cx-bevestiging .pp-thanks__rows > div { display: flex; justify-content: space-between; gap: 1rem; }
.cx-bevestiging .pp-thanks__rows dt { color: var(--pp-muted); margin: 0; }
.cx-bevestiging .pp-thanks__rows dd { margin: 0; text-align: right; }
.cx-bevestiging .pp-thanks__total { margin-top: .6rem; padding-top: .8rem; border-top: 1px solid var(--pp-line-soft);
	font-weight: 800; font-size: var(--fs-18); }
.cx-bevestiging .pp-thanks__total dd { color: var(--cx-goud-2); }
.cx-bevestiging .pp-thanks__note { margin: 1.1rem 0 0; font-size: .78rem; color: var(--pp-muted); }
/* De markup is: <div class=steps><h2>kop</h2><ol><li>…</li></ol></div>.
   Eerder mikte deze CSS op "elk direct kind is een kaart", waardoor de kop
   zelf een kolom werd, alle stappen in de tweede kolom geperst raakten en de
   derde kolom leeg bleef. Nu staat de kop bóven het raster en is elk <li> de
   kaart. */
.cx-bevestiging .pp-thanks__steps { text-align: left; margin-bottom: 2.4rem; }
.cx-bevestiging .pp-thanks__steps h2 { font-size: var(--fs-22); font-weight: 800;
	letter-spacing: -.015em; margin: 0 0 1.1rem; }
.cx-bevestiging .pp-thanks__steps ol { list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: minmax(0,1fr); gap: .8rem; }
/* Icoon links, tekst rechts: de rij is nu breed, dus naast elkaar leest beter
   dan onder elkaar en het houdt de drie kaarten laag. */
.cx-bevestiging .pp-thanks__steps li { min-width: 0; border: 1px solid var(--pp-line); border-radius: 16px;
	background: rgba(46,44,40,.55); padding: 1.1rem 1.3rem;
	display: grid; grid-template-columns: auto minmax(0,1fr); gap: 1rem; align-items: start; }
.cx-bevestiging .pp-thanks__steps li.is-done { border-color: rgba(196,154,84,.55); }
.cx-bevestiging .pp-thanks__steps li > div { display: grid; gap: .25rem; }
.cx-bevestiging .pp-thanks__steps li strong { font-size: var(--fs-16); font-weight: 800;
	color: var(--pp-white); line-height: 1.3; }
.cx-bevestiging .pp-thanks__steps li span:not(.pp-thanks__step-ico) { font-size: .84rem;
	color: var(--pp-muted); line-height: 1.5; overflow-wrap: break-word; }
.cx-bevestiging .pp-thanks__step-ico { display: grid; place-content: center; width: 38px; height: 38px;
	border-radius: 12px; background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
	color: #14130F; }
.cx-bevestiging .pp-thanks__step-ico svg { width: 19px; height: 19px; }
.cx-bevestiging .pp-thanks__contact-btns { display: flex; justify-content: center; gap: .8rem 1.2rem;
	flex-wrap: wrap; margin: 1rem 0 1.4rem; }
.cx-bevestiging .pp-thanks__home { font-size: .82rem; font-weight: 800; letter-spacing: .08em;
	text-transform: uppercase; color: var(--pp-muted); text-decoration: none; }
.cx-bevestiging .pp-thanks__home:hover { color: var(--cx-goud-2); }

@media (max-width: 767px) {
	.cx-bevestiging .pp-thanks__card { box-shadow: 5px 5px 0 var(--cx-goud), 10px 14px 24px rgba(0,0,0,.45); }
}


/* ==========================================================================
   Blog
   ========================================================================== */
.cx-chips--tabs { margin-bottom: 2rem; }
.cx-chip.is-actief { border-color: var(--cx-goud); background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F; }
.cx-posts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.6rem; }
.cx-post { display: flex; flex-direction: column; border: 2px solid rgba(20,19,17,.9); border-radius: 18px;
	overflow: hidden; background: rgba(46,44,40,.55); text-decoration: none; min-width: 0;
	transition: transform .18s var(--ease), border-color .18s, box-shadow .18s var(--ease); }
.cx-post:hover { transform: translateY(-5px); border-color: var(--cx-goud); box-shadow: 0 14px 34px rgba(0,0,0,.5); }
.cx-post__beeld { position: relative; display: block; background: rgba(255,255,255,.04); }
.cx-post__beeld img { width: 100%; aspect-ratio: 3/2; object-fit: cover; display: block; }
.cx-post__cat { position: absolute; top: .8rem; left: .8rem; padding: .28rem .8rem; border-radius: 999px;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F; border: 2px solid #14130F;
	font-size: .6rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.cx-post__in { display: flex; flex-direction: column; gap: .5rem; padding: 1.2rem 1.3rem 1.4rem; flex: 1; }
.cx-post__titel { font-size: var(--fs-18); font-weight: 800; color: var(--pp-white); line-height: 1.25; }
.cx-post__meta { margin-top: auto; font-size: .76rem; color: var(--pp-muted); }

.cx-paginatie { margin-top: 2.6rem; }
.cx-paginatie .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; }
.cx-paginatie .page-numbers { display: grid; place-content: center; min-width: 42px; height: 42px; padding: 0 .8rem;
	border-radius: 999px; border: 1px solid var(--pp-line); color: var(--pp-white); text-decoration: none;
	font-size: .86rem; font-weight: 700; }
.cx-paginatie .page-numbers:hover { border-color: var(--cx-goud); color: var(--cx-goud-2); }
.cx-paginatie .page-numbers.current { background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
	color: #14130F; border-color: #14130F; }
.cx-paginatie .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* brede prose op lichte achtergrond (voorwaarden, privacy) */
.cx-prose--breed { max-width: 78ch; margin-inline: auto; }
.cx-prose--breed h2, .cx-prose--breed h3 { text-transform: none; letter-spacing: 0; }

@media (max-width: 899px) { .cx-posts { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 599px) { .cx-posts { grid-template-columns: minmax(0,1fr); } }


/* ==========================================================================
   Blogartikel
   ========================================================================== */
.cx-postkop { position: relative; padding-block: clamp(3rem,7vw,5.5rem); overflow: hidden; }
.cx-postkop__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.cx-postkop__waas { position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(180deg, rgba(16,15,14,.72), rgba(16,15,14,.93)); }
.cx-postkop__in { position: relative; z-index: 2; }
.cx-postkop__cat { display: inline-block; margin-bottom: .9rem; padding: .3rem .9rem; border-radius: 999px;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F;
	font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cx-postkop h1 { font-size: clamp(1.9rem,1.3rem+2.6vw,3rem); font-weight: 800;
	letter-spacing: -.02em; line-height: 1.1; margin: 0 0 1.1rem; max-width: 22ch; }
.cx-postkop .cx-kruimel { margin: 0; }

.cx-postauteur { display: flex; align-items: center; gap: .7rem; padding-block: 1.2rem;
	font-size: .82rem; color: var(--pp-muted); border-bottom: 1px solid var(--pp-line-soft); }
.cx-postauteur strong { color: var(--pp-white); }
.cx-postauteur__ico { display: grid; place-content: center; width: 34px; height: 34px; border-radius: 50%;
	background: rgba(196,154,84,.16); color: var(--cx-goud-2); flex: none; }

.cx-postbody { padding-block: clamp(2rem,4vw,3rem); }
.cx-post__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.34fr); gap: clamp(1.6rem,4vw,3rem); align-items: start; }
.cx-post__hoofd { min-width: 0; }
.cx-post__prose { color: var(--pp-muted); font-size: var(--fs-16); }
.cx-post__prose h2, .cx-post__prose h3 { color: var(--pp-white); margin-top: 2rem; }
.cx-post__prose a { color: var(--cx-goud-2); text-decoration: underline; }
.cx-post__prose img { border-radius: 14px; }

.cx-tldr { border-left: 3px solid var(--cx-goud); border-radius: 0 14px 14px 0;
	background: rgba(196,154,84,.08); padding: 1.1rem 1.3rem; margin-bottom: 1.8rem; }
.cx-tldr__label { display: block; margin-bottom: .35rem; font-size: .66rem; font-weight: 800;
	letter-spacing: .14em; text-transform: uppercase; color: var(--cx-goud-2); }
.cx-tldr__tekst { margin: 0; font-size: .95rem; color: var(--pp-white); }

.cx-toc { border: 1px solid var(--pp-line); border-radius: 14px; background: rgba(46,44,40,.5);
	padding: .9rem 1.1rem; margin-bottom: 1.8rem; }
.cx-toc summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer;
	list-style: none; font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cx-toc summary::-webkit-details-marker { display: none; }
.cx-toc__pijl { width: 8px; height: 8px; border-right: 2px solid var(--cx-goud-2);
	border-bottom: 2px solid var(--cx-goud-2); transform: rotate(45deg); transition: transform .2s; }
.cx-toc[open] .cx-toc__pijl { transform: rotate(-135deg); }
.cx-toc ol { list-style: none; margin: .9rem 0 0; padding: 0; display: grid; gap: .4rem; }
.cx-toc a { display: flex; gap: .5rem; font-size: .84rem; color: var(--pp-muted); text-decoration: none; }
.cx-toc a:hover { color: var(--cx-goud-2); }
.cx-toc__nr { color: var(--cx-goud-2); font-weight: 800; flex: none; }
.cx-toc__item--n3 { padding-left: 1rem; }
/* De zijkolom plakt als geheel. Alleen de inhoudsopgave sticky maken ging mis
   bij lange artikelen: die bleef staan terwijl de CTA-kaart eronder gewoon
   meescrollde en dwars over de lijst heen liep. Nu is de kolom één sticky blok
   met een eigen maximum, zodat inhoudsopgave en kaart altijd bij elkaar staan. */
.cx-toc--vast { position: static; }
.cx-toc--inline { display: block; }
@media (min-width: 900px) { .cx-toc--inline { display: none; } }

.cx-bloglocaties { margin-top: 2.4rem; padding-top: 1.6rem; border-top: 1px solid var(--pp-line-soft); }
.cx-bloglocaties__titel { display: block; margin-bottom: .9rem; font-size: .78rem; font-weight: 800;
	letter-spacing: .12em; text-transform: uppercase; }
.cx-chip--alle { border-color: var(--cx-goud); color: var(--cx-goud-2); }

.cx-postnav { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; margin-top: 2.4rem; }
.cx-postnav__link { display: grid; gap: .3rem; padding: 1.1rem 1.3rem; border-radius: 16px;
	border: 1px solid var(--pp-line); background: rgba(46,44,40,.5); text-decoration: none;
	transition: border-color .15s, background .15s; }
.cx-postnav__link:hover { border-color: var(--cx-goud); background: rgba(196,154,84,.1); }
.cx-postnav__link--next { text-align: right; }
.cx-postnav__richting { font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--cx-goud-2); }
.cx-postnav__titel { font-size: .9rem; font-weight: 700; color: var(--pp-white); }

.cx-post__zij { display: grid; gap: 1.4rem; min-width: 0; }
.cx-post__cta { border: 2px solid rgba(20,19,17,.9); border-radius: 18px;
	background: linear-gradient(180deg, rgba(58,55,50,.75), rgba(38,36,33,.9));
	padding: 1.4rem 1.4rem 1.6rem; text-align: center; box-shadow: 7px 7px 0 var(--cx-goud); }
.cx-post__cta-logo { margin: 0 auto .8rem; }
.cx-post__cta strong { display: block; margin-bottom: .5rem; font-size: var(--fs-16); }
.cx-post__cta p { font-size: .84rem; color: var(--pp-muted); margin: 0 0 1.1rem; }

@media (max-width: 899px) {
	.cx-post__grid { grid-template-columns: minmax(0,1fr); }
	.cx-toc--vast { display: none; }
	.cx-postnav { grid-template-columns: minmax(0,1fr); }
	.cx-postnav__link--next { text-align: left; }
	.cx-post__cta { box-shadow: 5px 5px 0 var(--cx-goud); }
}


/* ==========================================================================
   Events en drankspellen
   ========================================================================== */
.cx-eventfilters { margin-bottom: 2rem; }
.cx-eventfilters .cx-chip { cursor: pointer; font: inherit; font-size: .82rem; font-weight: 700; }
.cx-events, .cx-spellen { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.6rem; }
.cx-event, .cx-spel { display: flex; flex-direction: column; border: 2px solid rgba(20,19,17,.9);
	border-radius: 18px; overflow: hidden; background: rgba(46,44,40,.55); text-decoration: none; min-width: 0;
	transition: transform .18s var(--ease), border-color .18s, box-shadow .18s var(--ease); }
.cx-event:hover, .cx-spel:hover { transform: translateY(-5px); border-color: var(--cx-goud); box-shadow: 0 14px 34px rgba(0,0,0,.5); }
.cx-event__beeld, .cx-spel__beeld { position: relative; display: block; }
.cx-event__beeld img, .cx-spel__beeld img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.cx-event__badge, .cx-event__fotos { position: absolute; top: .8rem; padding: .28rem .8rem; border-radius: 999px;
	font-size: .6rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.cx-event__badge { left: .8rem; background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
	color: #14130F; border: 2px solid #14130F; }
.cx-event__fotos { right: .8rem; background: rgba(20,19,17,.9); color: var(--cx-goud-2); border: 1px solid rgba(214,170,94,.5); }
.cx-event__titel, .cx-spel__titel { display: block; padding: 1rem 1.2rem 0; font-size: var(--fs-18);
	font-weight: 800; color: var(--pp-white); line-height: 1.25; }
.cx-event__link, .cx-spel__cta { display: block; padding: .8rem 1.2rem 1.2rem; margin-top: auto;
	font-size: .82rem; font-weight: 800; letter-spacing: .06em; color: var(--cx-goud-2); text-decoration: none; }
.cx-spel__in, .cx-spel__tekst { padding: 0 1.2rem; font-size: .86rem; color: var(--pp-muted); }

@media (max-width: 899px) { .cx-events, .cx-spellen { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 599px) { .cx-events, .cx-spellen { grid-template-columns: minmax(0,1fr); } }


/* ==========================================================================
   Single event + single drankspel
   De galerij (pp-event-gallery) en het spel (pp-game) houden hun eigen
   klassen: daar hangt JS aan. Hier alleen de omlijsting in onze vormtaal.
   ========================================================================== */
.cx-chips--stil { margin: 1.4rem 0 1.3rem; }
.cx-chips--stil .cx-chip { cursor: default; pointer-events: none; }
/* Let op: geen .cx-prose gebruiken in deze hero. Die is voor de lichte
   secties en zet donkergrijze tekst, die op zwart wegvalt. */
.cx-event__tekst { margin-bottom: 1.6rem; color: var(--pp-muted); font-size: var(--fs-16); line-height: 1.65; }
.cx-event__tekst p { margin: 0 0 .9rem; }
.cx-event__tekst p:last-child { margin-bottom: 0; }
.cx-event__tekst strong { color: var(--pp-white); }
.cx-event__tekst a { color: var(--cx-goud-2); text-decoration: underline; }

/* Spelkaart op het gouden vlak; de stage zelf wordt door JS gevuld. */
.cx-spel__speel { display: grid; gap: 1.4rem; max-width: 760px; }
.cx-spel__speel .pp-game__intro { margin: 0; }
.cx-spel__speel .pp-game__card { border: 1px solid rgba(246,243,234,.14); border-radius: 18px;
	background: var(--cx-laag-1); padding: clamp(1.4rem,3vw,2.2rem);
	box-shadow: 6px 6px 0 var(--cx-goud), 12px 18px 34px rgba(0,0,0,.5); }
.cx-spel__speel .pp-game__num { display: inline-block; padding: .3rem .8rem; border-radius: 999px;
	background: rgba(196,154,84,.16); border: 1px solid rgba(196,154,84,.4);
	color: var(--cx-goud-2); font-size: .68rem; letter-spacing: .12em; margin-bottom: 1.1rem; }
.cx-spel__speel .pp-game__q h3 { font-size: clamp(1.15rem,1rem+.9vw,1.5rem); line-height: 1.32;
	letter-spacing: -.015em; margin-bottom: 1.6rem; }
.cx-spel__speel .pp-game__answers { gap: .65rem; }
.cx-spel__speel .pp-game__ans { background: var(--cx-laag-2); border: 1px solid rgba(246,243,234,.16);
	padding: 1.05rem 1.3rem; border-radius: 14px; text-align: left;
	transition: border-color .15s var(--ease), background .15s var(--ease), transform .15s var(--ease); }
.cx-spel__speel .pp-game__ans:hover:not(:disabled) { border-color: var(--cx-goud);
	background: rgba(196,154,84,.12); transform: translateX(3px); }
.cx-spel__speel .pp-game__ans.is-correct { border-color: var(--pp-ok); background: rgba(88,179,104,.18); }
.cx-spel__speel .pp-game__ans.is-wrong { border-color: #d9534f; background: rgba(217,83,79,.18); }
.cx-spel__speel .pp-game__intro { text-align: center; max-width: 54ch; margin-inline: auto; }
.cx-spel__speel .pp-game__disclaimer { margin: 0; font-size: .78rem; color: var(--pp-muted); }

@media (max-width: 599px) {
	.cx-spel__speel .pp-game__card { padding: 1.1rem; }
}


/* De vier spec-tegels in "in het kort" blijven ook op mobiel met z'n tweeën:
   de waarden zijn kort en vier tegels onder elkaar maakt de sectie onnodig lang.
   Deze regel moet ná het algemene mobiele blok staan dat .cx-specs op één kolom
   zet. */
@media (max-width: 599px) {
	.cx-kort .cx-specs { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem; }
	.cx-kort .cx-spec { padding: .9rem .85rem 1rem; }
	.cx-kort .cx-spec__label { font-size: .95rem; }
	.cx-kort .cx-spec__waarde { font-size: 1.25rem; }
	.cx-kort .cx-spec__oud { display: block; margin: .1rem 0 0; font-size: .72rem; }
	.cx-kort .cx-spec__extra { font-size: .64rem; }
	.cx-kort .cx-spec__vlag { top: -10px; right: -6px; }
}


/* Vangnet: .cx-prose is voor de lichte secties gemaakt (donkergrijze tekst op
   crème). Belandt hij toch in een donkere sectie of hero, dan keren we de
   kleuren om. Zonder dit valt de tekst weg in het zwart. */
.cx-sec--donker .cx-prose, .cx-hero .cx-prose, .cx-page > .cx-sec:not(.cx-sec--licht) .cx-prose {
	color: var(--pp-muted); }
.cx-sec--donker .cx-prose h2, .cx-sec--donker .cx-prose h3,
.cx-hero .cx-prose h2, .cx-hero .cx-prose h3,
.cx-page > .cx-sec:not(.cx-sec--licht) .cx-prose h2,
.cx-page > .cx-sec:not(.cx-sec--licht) .cx-prose h3 { color: var(--pp-white); }
.cx-sec--donker .cx-prose strong, .cx-hero .cx-prose strong,
.cx-page > .cx-sec:not(.cx-sec--licht) .cx-prose strong { color: var(--pp-white); }
.cx-sec--donker .cx-prose a, .cx-hero .cx-prose a,
.cx-page > .cx-sec:not(.cx-sec--licht) .cx-prose a { color: var(--cx-goud-2); }


/* Vangnet lange klantinvoer: e-mailadressen en URL's zijn aaneengesloten
   strings die zonder dit de kaart uit lopen. */
.cx-bevestiging .pp-thanks__rows dd,
.cx-bevestiging .pp-thanks__card,
.cx-funnel .pp-bk-summary__value,
.cx-funnel .pp-bk-summary li { overflow-wrap: anywhere; }


/* .pp-accent is het accent uit de oude stylesheet (gradient in de letters zelf)
   en staat nog in een paar koppen. Binnen onze pagina's krijgt het dezelfde
   marker; de text-fill moet expliciet terug, anders blijven de letters
   doorzichtig door de background-clip uit main.css. */
.cx-page .pp-accent {
	-webkit-text-fill-color: currentColor; color: inherit;
	-webkit-background-clip: border-box; background-clip: border-box;
	background: none;
	font-family: 'Josefin Sans', 'Century Gothic', sans-serif; font-weight: 600;
	font-size: 1.06em; line-height: .95; letter-spacing: .02em; padding: 0 .04em;
	color: var(--cx-goud-2) !important; -webkit-text-fill-color: var(--cx-goud-2);
	-webkit-text-stroke: .012em var(--cx-goud-2); paint-order: stroke fill; }
.cx-page .cx-sec--licht .pp-accent {
	color: var(--pp-gold-deep) !important; -webkit-text-fill-color: var(--pp-gold-deep);
	-webkit-text-stroke-color: var(--pp-gold-deep); }


/* Toetsenbordfocus in de huisstijl; de blauwe standaardring van de browser
   viel uit de toon op dit donkere ontwerp. */
.cx-funnel :focus-visible, .cx-page :focus-visible {
	outline: 2px solid var(--cx-goud-2); outline-offset: 2px; border-radius: 4px; }

/* Op desktop staat het overzicht naast de funnel; deze knop heeft daar geen
   functie. Alleen op smalle schermen tonen, waar het overzicht eronder valt. */
.cx-stapnav--slot { display: none; }
@media (max-width: 1023px) {
	.cx-stapnav--slot { display: flex; justify-content: flex-end; margin-top: 1.2rem; }
}

/* Het aanbevolen pakket had alleen een gouden randje en viel daardoor
   nauwelijks op tussen de twee andere kaarten. Een warme onderlaag met een
   zweem goud zet het apart zonder de rustige, donkere opzet te breken. */
.cx-funnel .pp-bk-pkg.is-featured {
	background: linear-gradient(165deg, rgba(196,154,84,.14), var(--cx-laag-2) 58%);
	border-color: rgba(196,154,84,.75); }
.cx-funnel .pp-bk-pkg.is-featured:hover { border-color: var(--cx-goud); }
.cx-funnel .pp-bk-pkg.is-featured .pp-bk-pkg__name { color: var(--pp-white); }

/* ==========================================================================
   Melding linksonder (social proof)
   Stond nog in de oude vormtaal: vlakke kaart, zachte schaduw, drie regels
   waarvan de middelste afbrak. Nu de cx-signatuur (gouden offset-schaduw,
   dezelfde laagkleur als de funnelkaarten) en compacter: naam op regel 1,
   pakket en tijd samen op regel 2.
   ========================================================================== */
.ppt-proof {
	gap: .8rem; padding: .85rem 2.4rem .85rem .85rem; border-radius: 16px;
	background: var(--cx-laag-1); border: 1px solid rgba(196,154,84,.34);
	box-shadow: 5px 5px 0 var(--cx-goud), 10px 16px 30px rgba(0,0,0,.5);
	width: min(320px, calc(100vw - 24px)); align-items: center; }
.ppt-proof__icon { width: 34px; height: 34px; border: 0;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F; }
.ppt-proof__icon svg { width: 17px; height: 17px; stroke-width: 3; }
.ppt-proof__name { font-size: .92rem; font-weight: 800; letter-spacing: -.01em; }
.ppt-proof__act { font-size: .82rem; color: var(--pp-muted);
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ppt-proof__act b { color: var(--cx-goud-2); font-weight: 700; }
.ppt-proof__body { display: flex; flex-wrap: wrap; align-items: baseline;
	column-gap: .5rem; row-gap: .12rem; }
.ppt-proof__name { flex: 0 0 100%; }
.ppt-proof__act { flex: 0 1 auto; }
.ppt-proof__time { flex: 0 0 100%; margin-top: .18rem; font-size: .7rem; }
.ppt-proof__close { top: .5rem; right: .55rem; font-size: 1.05rem; }
@media (max-width: 599px) {
	.ppt-proof { width: min(300px, calc(100vw - 20px)); padding: .75rem 2.2rem .75rem .75rem;
		box-shadow: 4px 4px 0 var(--cx-goud), 8px 12px 24px rgba(0,0,0,.5); }
	.ppt-proof__icon { width: 30px; height: 30px; }
	.ppt-proof__name { font-size: .86rem; }
	.ppt-proof__act { font-size: .76rem; } }

/* Gelegenheden onder de plaatslinks op een stadspagina. */
.cx-gelegenheden { margin-top: 1.8rem; padding-top: 1.6rem; border-top: 1px solid var(--pp-line-soft); }
.cx-gelegenheden__kop { margin: 0 0 .9rem; font-size: .9rem; font-weight: 700; color: var(--pp-muted); }
.cx-chip--goud { border-color: rgba(196,154,84,.6); color: var(--cx-goud-2); }

/* Knoppen binnen lopende tekst.
   .cx-prose a kleurt en onderstreept elke link in de tekst, en pakte daarmee
   ook de knop in de tussenliggende banner: goudkleurige letters op een gouden
   vlak, mét onderstreping. Knoppen zijn geen tekstlinks, dus die uitzonderen. */
.cx-prose a.pp-btn, .cx-prose a.cx-btn,
.cx-sec--donker .cx-prose a.pp-btn, .cx-sec--donker .cx-prose a.cx-btn,
.cx-page > .cx-sec:not(.cx-sec--licht) .cx-prose a.pp-btn { text-decoration: none; }
.cx-prose a.pp-btn--primary, .cx-prose a.cx-btn--goud,
.cx-sec--donker .cx-prose a.pp-btn--primary, .cx-sec--donker .cx-prose a.cx-btn--goud,
.cx-page > .cx-sec:not(.cx-sec--licht) .cx-prose a.pp-btn--primary { color: #14130F; }
.cx-prose a.pp-btn--lijn, .cx-prose a.cx-btn--lijn,
.cx-sec--donker .cx-prose a.cx-btn--lijn { color: var(--pp-white); }

/* Vragen die iemand nog tegenhouden, onder de plaats- en gelegenheidslinks. */
.cx-bezwaren { margin-top: 1.6rem; padding-top: 1.4rem; border-top: 1px solid var(--pp-line-soft); }
.cx-bezwaren__lijst { list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .5rem 1.6rem; }
.cx-bezwaren__lijst a { color: var(--pp-cream); text-decoration: none; font-size: .92rem;
	display: inline-flex; align-items: baseline; gap: .45rem; }
.cx-bezwaren__lijst a::before { content: '\2192'; color: var(--cx-goud-2); flex: none; }
.cx-bezwaren__lijst a:hover { color: var(--cx-goud-2); }
@media (max-width: 599px) { .cx-bezwaren__lijst { grid-template-columns: minmax(0,1fr); } }

/* Ruimte voor de vlag op het aanbevolen pakket.
   De vlag hangt over de bovenrand van de kaart en had bij een korte tekst net
   genoeg lucht. Met een langere tekst ("70% kiest deze upgrade") botste hij
   tegen de pakketnaam eronder. De kaart krijgt daarom bovenaan extra ruimte,
   en de vlag zelf wordt compacter zodat hij binnen de kaartbreedte blijft. */
.cx-funnel .pp-bk-pkg.is-featured { padding-top: 1.75rem; }
.cx-funnel .pp-bk-pkg__flag { letter-spacing: .06em; white-space: nowrap;
	max-width: calc(100% - 2.6rem); overflow: hidden; text-overflow: ellipsis; }
.cx-pakkaart__vlag { letter-spacing: .07em; white-space: nowrap;
	max-width: calc(100% - 2.6rem); }
@media (max-width: 599px) {
	.cx-funnel .pp-bk-pkg.is-featured { padding-top: 1.6rem; }
	.cx-funnel .pp-bk-pkg__flag { font-size: .54rem; letter-spacing: .04em; padding: .22rem .6rem; } }

/* Spelkaarten op het drankspel-archief en de speltype-pagina's.
   De knop heeft een slagschaduw van 5px, maar er stond 2px ruimte onder en de
   kaart knipt af (overflow: hidden): de schaduw viel weg en de knop leek af te
   lopen. Titels van één of twee regels maakten de rijen bovendien ongelijk. */
.cx-spel__in { padding-bottom: 1.5rem; }
.cx-spel__titel { display: block; min-height: 2.6em; }
.cx-spel .pp-game-card__cta { margin-top: auto; align-self: flex-start; }
@media (max-width: 599px) { .cx-spel__titel { min-height: 0; } }

/* ==========================================================================
   Rekentools in de cx-vormtaal (7 pagina's: tentmaat, drank, bier, hapjes,
   budget, playlist, uitnodiging).

   Ze stonden nog in de oude opmaak: halfdoorzichtige invoervelden op een
   grijze kaart, een gewone slagschaduw en een klein radius. Nu dezelfde
   laagopbouw als de funnel (kaart op laag 1, velden op laag 2, allebei
   dekkend) en de gouden offset-schaduw die de rest van de site gebruikt.
   De uitkomst is het hart van een rekentool en krijgt daarom het meeste
   gewicht: die stond eerder als een fluisterzacht vlak onderaan.
   ========================================================================== */
.pp-tool-wrap { max-width: 820px; }
/* Tools met twee kolommen hebben meer breedte nodig; op 820px werd elke
   kolom zo smal dat de knoppen gingen breken. */
.pp-tool-wrap--breed { max-width: 1140px; }

.cx-page .pp-tool {
	background: var(--cx-laag-1);
	border: 1px solid rgba(246,243,234,.14);
	border-radius: 18px;
	padding: clamp(1.4rem,3vw,2.2rem);
	box-shadow: 6px 6px 0 var(--cx-goud), 12px 18px 34px rgba(0,0,0,.5);
}

/* Invoer: dekkend, zelfde tint als de keuzeblokken in de funnel. */
.cx-page .pp-tool__field input,
.cx-page .pp-tool__field select {
	background: var(--cx-laag-2);
	border: 1px solid rgba(246,243,234,.18);
	border-radius: 12px;
	height: 52px;
}
.cx-page .pp-tool__field input:focus,
.cx-page .pp-tool__field select:focus {
	border-color: var(--cx-goud);
	box-shadow: 0 0 0 3px rgba(196,154,84,.16);
}
.cx-page .pp-tool__field label { font-size: .82rem; letter-spacing: -.005em; }

.cx-page .pp-tool__chip {
	background: var(--cx-laag-2);
	border: 1px solid rgba(246,243,234,.16);
	border-radius: 12px;
	padding: .7rem .85rem;
}
.cx-page .pp-tool__chip:hover { border-color: var(--cx-goud); }
.cx-page .pp-tool__chip:has(input:checked) {
	border-color: var(--cx-goud);
	background: rgba(196,154,84,.16);
}

/* De uitkomst: het antwoord waarvoor iemand de pagina opende. */
.cx-page .pp-tool__result {
	margin-top: 1.6rem;
	padding: 1.4rem 1.5rem;
	border-radius: 16px;
	background: linear-gradient(165deg, rgba(196,154,84,.14), var(--cx-laag-2) 62%);
	border: 1px solid rgba(196,154,84,.45);
}
.cx-page .pp-tool__result h3 {
	font-size: clamp(1.3rem,1.1rem+1vw,1.75rem);
	letter-spacing: -.02em;
	color: var(--cx-goud-2);
	margin-bottom: .7rem;
}
.cx-page .pp-tool__result p { font-size: .95rem; }

/* Knoppen: dezelfde vorm als de rest van de site. */
.cx-page .ppt-cta {
	padding: .85rem 1.4rem;
	border-radius: 999px;
	border: 1px solid rgba(196,154,84,.4);
	font-size: .92rem;
	transition: border-color .15s var(--ease), background .15s var(--ease), transform .15s var(--ease);
}
.cx-page .ppt-cta:hover { border-color: var(--cx-goud); background: rgba(196,154,84,.1); }
.cx-page .ppt-cta.primary {
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
	color: #14130F;
	border-color: var(--cx-goud);
	box-shadow: 3px 3px 0 #14130F;
}
.cx-page .ppt-cta.primary:hover { transform: translate(2px,2px); box-shadow: 1px 1px 0 #14130F; }
.cx-page .pp-tool__submit, .cx-page .pp-tool #berekenBtn { margin-top: 1.4rem; }

/* De uitleg onder de tool. */
.cx-page .pp-tool-content h2 { letter-spacing: -.02em; }
.cx-page .pp-tool-content { max-width: 720px; }
.cx-page .pp-tool__trust { gap: 1.2rem; margin-top: 1.3rem; }

@media (max-width: 599px) {
	.cx-page .pp-tool { padding: 1.15rem; border-radius: 16px;
		box-shadow: 4px 4px 0 var(--cx-goud), 8px 12px 24px rgba(0,0,0,.5); }
	.cx-page .pp-tool__result { padding: 1.15rem 1.2rem; }
}
/* ==========================================================================
   Vijf rekentools met een eigen prefix (dc = drank, bc = bier, ec = hapjes,
   pg = playlist, ug = uitnodiging). Ze delen dezelfde opbouw maar hebben elk
   hun eigen inline CSS in de template, waardoor ze uit elkaar zijn gegroeid.
   Hier één vormtaal overheen. De .cx-page ervoor is nodig omdat de inline
   <style> in de template anders wint van dit bestand.
   ========================================================================== */

/* Keuzeknoppen en velden: dekkend op laag 2, net als in de funnel. Ze stonden
   op rgba(0,0,0,.30), waardoor de sectie erachter doorschemerde. */
.cx-page .dc-opt, .cx-page .bc-opt, .cx-page .ec-opt, .cx-page .pg-opt, .cx-page .ug-opt,
.cx-page .dc-check, .cx-page .pg-check,
.cx-page .ug-in {
	background: var(--cx-laag-2);
	border: 1px solid rgba(246,243,234,.16);
	border-radius: 12px;
	transition: border-color .15s var(--ease), background .15s var(--ease);
}
.cx-page .dc-opt:hover, .cx-page .bc-opt:hover, .cx-page .ec-opt:hover,
.cx-page .pg-opt:hover, .cx-page .ug-opt:hover { border-color: var(--cx-goud); }
.cx-page .dc-opt.is-active, .cx-page .bc-opt.is-active, .cx-page .ec-opt.is-active,
.cx-page .pg-opt.is-active, .cx-page .ug-opt.is-active,
.cx-page .dc-opt[aria-pressed="true"], .cx-page .bc-opt[aria-pressed="true"],
.cx-page .ec-opt[aria-pressed="true"], .cx-page .pg-opt[aria-pressed="true"] {
	border-color: var(--cx-goud);
	background: rgba(196,154,84,.18);
}

/* De uitkomst: dat is waarvoor iemand de pagina opende, dus die mag opvallen. */
.cx-page .dc-result, .cx-page .bc-result, .cx-page .ec-result,
.cx-page .pg-result, .cx-page .ug-results {
	background: linear-gradient(165deg, rgba(196,154,84,.14), var(--cx-laag-1) 62%);
	border: 1px solid rgba(196,154,84,.45);
	border-radius: 18px;
	padding: clamp(1.2rem,3vw,1.7rem);
	box-shadow: 5px 5px 0 var(--cx-goud), 10px 16px 30px rgba(0,0,0,.45);
}
.cx-page .dc-result-title, .cx-page .bc-result-title,
.cx-page .ec-result-title, .cx-page .pg-result-title {
	color: var(--cx-goud-2);
	letter-spacing: -.02em;
}

/* Losse regels binnen de uitkomst (per drankje, per hapje, per fase). */
.cx-page .dc-drink, .cx-page .bc-drink, .cx-page .ec-item,
.cx-page .pg-phase, .cx-page .ug-card {
	background: var(--cx-laag-2);
	border: 1px solid rgba(246,243,234,.14);
	border-radius: 12px;
}

/* Het totaal onderaan: het getal waar het om draait. */
.cx-page .dc-totals, .cx-page .bc-totals, .cx-page .ec-totals {
	border-top: 1px solid rgba(196,154,84,.35);
	margin-top: 1rem;
	padding-top: 1rem;
}
.cx-page .dc-totals-val, .cx-page .bc-totals-val, .cx-page .ec-totals-val {
	color: var(--cx-goud-2);
	font-weight: 800;
	letter-spacing: -.02em;
}

/* De knop naar de boekingspagina. */
.cx-page .dc-btn-book, .cx-page .bc-btn-book, .cx-page .ec-btn-book,
.cx-page .pg-btn-book, .cx-page .ug-btn-book {
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud));
	color: #14130F;
	border: 0;
	border-radius: 999px;
	padding: .95rem 1.5rem;
	font-weight: 800;
	box-shadow: 3px 3px 0 #14130F;
	transition: transform .15s var(--ease), box-shadow .15s var(--ease);
}
.cx-page .dc-btn-book:hover, .cx-page .bc-btn-book:hover, .cx-page .ec-btn-book:hover,
.cx-page .pg-btn-book:hover, .cx-page .ug-btn-book:hover {
	transform: translate(2px,2px);
	box-shadow: 1px 1px 0 #14130F;
}

/* Schuifregelaar in de merkkleur. */
.cx-page .dc-range, .cx-page .bc-range, .cx-page .ec-range, .cx-page .pg-range {
	background: rgba(196,154,84,.22);
	height: 7px;
}
.cx-page .dc-val, .cx-page .bc-val, .cx-page .ec-val, .cx-page .pg-val {
	color: var(--cx-goud-2);
	font-weight: 800;
}

@media (max-width: 599px) {
	.cx-page .dc-result, .cx-page .bc-result, .cx-page .ec-result,
	.cx-page .pg-result, .cx-page .ug-results {
		box-shadow: 4px 4px 0 var(--cx-goud), 8px 12px 22px rgba(0,0,0,.45);
	}
}
/* Het <details>-blok met "Pakketinhoud bekijken" liep als blokelement door
   over de volle kaartbreedte. Alles rechts van die tekst reageerde daardoor
   niet op een klik, terwijl de hele kaart selecteerbaar hoort te zijn. */
.cx-funnel .pp-bk-pkg__details { width: -moz-fit-content; width: fit-content; max-width: 100%; }
.cx-funnel .pp-bk-pkg__details[open] { width: 100%; }
.cx-funnel .pp-bk-pkg { cursor: pointer; }
.cx-funnel .pp-bk-pkg__details summary { cursor: pointer; }

/* Meer ontdekken: de linkkolommen onderin de footer. */
.cxf__ontdek { padding-block: 2.2rem; margin-top: 2.2rem; border-top: 1px solid var(--pp-line-soft); }
.cxf__ontdek-kop { margin: 0 0 1.4rem; font-size: .7rem; font-weight: 800; letter-spacing: .16em;
	text-transform: uppercase; color: var(--pp-muted); }
.cxf__ontdek-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.8rem 2rem; }
.cxf__ontdek-col ul { list-style: none; margin: 0; padding: 0;
	columns: 2; column-gap: 1.6rem; }
.cxf__ontdek-col li { break-inside: avoid; margin-bottom: .5rem; }
.cxf__ontdek-col li:last-child { margin-bottom: 0; }
.cxf__ontdek-col a { font-size: .84rem; color: var(--pp-muted); }
.cxf__ontdek-col a:hover { color: var(--cx-goud-2); }
.cxf__ontdek-meer { color: var(--cx-goud-2) !important; font-weight: 700; }
@media (max-width: 899px) { .cxf__ontdek-grid { grid-template-columns: minmax(0,1fr); gap: 1.6rem; } }
@media (max-width: 479px) {
	.cxf__ontdek-col ul { columns: 1; }
	.cxf__ontdek-col--locaties ul { columns: 2 5rem; column-gap: 1rem; } }

/* De gelegenheidslabels bevatten een plaatsnaam en zijn daardoor te lang voor
   twee kolommen; die breken af en maken de lijst rommelig. Eén kolom dus. */
.cxf__ontdek-col--gelegenheden ul { columns: 1; }

/* Beeldblokken op de photobooth-pagina hetzelfde gouden vlak geven als de
   homepage (.cx-blok__vlak), zonder de opbouw in de template te wijzigen. */
.pp-city-hero__media, .pp-pb-showcase__media, .pp-pb-custom__media, .pp-pb-occ__media { position: relative; align-self: start; }
.pp-city-hero__media::before, .pp-pb-showcase__media::before,
.pp-pb-custom__media::before, .pp-pb-occ__media::before {
	content: ''; position: absolute; inset: 0; border-radius: 24px; z-index: 0;
	background: linear-gradient(150deg, var(--cx-goud-2), var(--cx-goud) 55%, var(--pp-gold-deep));
	transform: translate(10px, 10px); }
.pp-city-hero__media > *, .pp-pb-showcase__media > *,
.pp-pb-custom__media > *, .pp-pb-occ__media > * { position: relative; z-index: 1; }

/* ==========================================================================
   Ruimte tussen een tekstblok en de knoppen eronder
   .cx-kop__tekst staat op margin-bottom:0 en .cx-acties heeft zelf geen marge,
   dus een knop die daar direct op volgt plakte tegen de laatste regel aan.
   Dezelfde 2rem als in de hero (.cx-hero__sub), nu overal waar het patroon
   voorkomt. Knoppen die direct op tekst volgen hebben altijd lucht nodig.
   ========================================================================== */
.cx-kop__tekst + .cx-acties,
.cx-kop__tekst + .cx-btn,
.cx-kop__tekst + a.cx-btn,
.cx-over__tekst + .cx-acties,
.cx-over__tekst + .cx-btn,
.cx-prose + .cx-acties,
.cx-kop + .cx-acties,
p + .cx-acties { margin-top: 2rem; }
/* En dezelfde lucht boven een losse knop na een alinea in de secties. */
.cx-sec p + .cx-btn, .cx-sec p + a.cx-btn { margin-top: 2rem; display: inline-flex; }

/* ==========================================================================
   De photobooth-onderdelen op een crème sectie
   Deze blokken zijn gebouwd voor de donkere basis en dragen lichte tekst.
   Op .cx-sec--licht leverde dat contrasten van 1,0 tot 1,4 op.
   ========================================================================== */
.cx-sec--licht .pp-pb-check li,
.cx-sec--licht .pp-pb-showcase__content li,
.cx-sec--licht .pp-pb-value__content li,
.cx-sec--licht .pp-pb-value__content p,
.cx-sec--licht .pp-pb-showcase__content p { color: #46413A; }
.cx-sec--licht .pp-media-ph { background: rgba(20,19,17,.06); border-color: rgba(20,19,17,.16); }
.cx-sec--licht .pp-media-ph__label { color: #6B665F; }
.cx-sec--licht .pp-media-ph__icon { opacity: .5; }
/* Knoppen met alleen een omlijning verdwenen volledig: witte letters op crème. */
.cx-sec--licht .cx-btn--lijn { color: #14130F; border-color: rgba(20,19,17,.35); }
.cx-sec--licht .cx-btn--lijn:hover { border-color: var(--cx-goud); background: rgba(196,154,84,.12); }
/* Het goud van de accenten is op crème te licht; een tint dieper leest wel. */
.cx-sec--licht .cx-hand, .cx-sec--licht .cx-mark { color: #7A5B22; }
.cx-sec--licht .cx-mark { -webkit-text-stroke-color: #7A5B22; }
.cx-sec--licht .pp-pb-check svg, .cx-sec--licht .pp-pb-check span { color: #46413A; }
/* Blokken met een eigen donker paneel houden hun lichte tekst, ook binnen
   een crème sectie. Anders wordt donker op donker gezet. */
.cx-sec--licht .pp-pb-chart__time { color: rgba(246,243,234,.72); }
.cx-sec--licht .pp-pb-chart, .cx-sec--licht .pp-pb-chart * { --cx-op-donker: 1; }

/* Beeldverhouding photobooth, gelijk aan de homepage. Zonder dit rekt een
   staande telefoonfoto tot de volle kolomhoogte uit. */
.pp-city-hero__media img, .pp-city-hero__media video,
.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; aspect-ratio: 1/1; object-fit: cover; display: block;
}
@media (max-width: 860px) {
	.pp-city-hero__media img, .pp-city-hero__media video,
	.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 { aspect-ratio: 4/3; }
}

/* Photobooth-sectie: vierkant beeld (de foto is een staande opname, die
   zou in 3/4 te hoog worden naast een korte tekst). */
.cx-even--vk .cx-even__beeld img, .cx-even--vk .cx-even__beeld video { aspect-ratio: 1/1; }
.cx-pblijst { list-style: none; margin: 0 0 1.8rem; padding: 0; display: grid; gap: .7rem; }
.cx-pblijst li { position: relative; padding-left: 1.9rem; line-height: 1.5; color: #46413A; }
.cx-pblijst li::before { content: '\2713'; position: absolute; left: 0; top: 0;
	color: var(--pp-gold-deep, #7A5B22); font-weight: 700; }

/* ==========================================================================
   Funnel: pakketten naast elkaar, subtiele rand als rust, goud als keuze
   ========================================================================== */
@media (min-width: 768px) {
	.cx-funnel .pp-bk-pkgs { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.1rem; }
	.cx-funnel .pp-bk-pkg { grid-template-columns: minmax(0,1fr); align-content: start; }
	.cx-funnel .pp-bk-pkg__price { grid-column: 1; grid-row: auto; text-align: left; margin: .1rem 0 0; }
	.cx-funnel .pp-bk-pkg__price s { display: inline; margin-right: .4rem; }
	.cx-funnel .pp-bk-pkg__radio { position: absolute; top: 1rem; right: 1rem; }
}

/* Rust: alles draagt dezelfde onopvallende rand. */
.cx-funnel .pp-bk-pkg,
.cx-funnel .pp-bk-tent,
.cx-funnel .pp-bk-extra { border: 1.5px solid rgba(246,243,234,.14); }

/* Het uitgelichte pakket onderscheidt zich via de vlag en een lichte waas,
   niet via een gouden rand: dat leest anders als "al gekozen". */
.cx-funnel .pp-bk-pkg.is-featured { border-color: rgba(246,243,234,.2);
	background: linear-gradient(168deg, rgba(196,154,84,.13), var(--cx-laag-2) 60%); }

/* Keuze: goud, duidelijk en overal hetzelfde. */
.cx-funnel .pp-bk-pkg.is-selected,
.cx-funnel .pp-bk-tent.is-selected,
.cx-funnel .pp-bk-extra.is-active { border: 2px solid var(--cx-goud-2);
	box-shadow: 0 0 0 3px rgba(196,154,84,.22), 0 8px 24px rgba(196,154,84,.14); }
.cx-funnel .pp-bk-pkg.is-selected { background: linear-gradient(168deg, rgba(196,154,84,.16), var(--cx-laag-2) 60%); }

.cx-funnel .pp-bk-pkg:hover,
.cx-funnel .pp-bk-tent:hover,
.cx-funnel .pp-bk-extra:hover { border-color: rgba(196,154,84,.55); }

/* De pakketinhoud staat voortaan open in plaats van achter een link. */
.cx-funnel .pp-bk-pkg__feats { list-style: none; margin: .9rem 0 0; padding: .9rem 0 0; display: grid; gap: .5rem;
	font-size: .86rem; border-top: 1px solid rgba(246,243,234,.14); }
.cx-funnel .pp-bk-pkg__feats li { display: grid; grid-template-columns: 18px minmax(0,1fr); gap: .55rem;
	align-items: start; color: var(--pp-white); }
.cx-funnel .pp-bk-pkg__feats i { font-style: normal; font-weight: 800; color: var(--cx-goud-2); text-align: center; }
.cx-funnel .pp-bk-pkg__feats li.is-alles span { font-weight: 700; }
/* De kaartinhoud op een lijn: subgrid geeft alle drie de kaarten dezelfde
   rijen, dus de prijzen staan op gelijke hoogte ook als de tekst verschilt. */
@media (min-width: 768px) {
	.cx-funnel .pp-bk-pkgs { grid-template-rows: auto auto auto 1fr; align-items: stretch; }
	.cx-funnel .pp-bk-pkg { grid-template-rows: subgrid; grid-row: span 4; row-gap: 0; }
	.cx-funnel .pp-bk-pkg__name  { grid-row: 1; align-self: start; }
	.cx-funnel .pp-bk-pkg__desc  { grid-row: 2; align-self: start; margin: .35rem 0 0; }
	.cx-funnel .pp-bk-pkg__price { grid-row: 3; grid-column: 1; align-self: end; text-align: left; margin: .7rem 0 0; }
	.cx-funnel .pp-bk-pkg__feats { grid-row: 4; align-self: start; }
}
/* De ruimte voor de vlag krijgen alle kaarten, anders begint de naam van het
   uitgelichte pakket lager dan die van de buren. */
@media (min-width: 768px) {
	.cx-funnel .pp-bk-pkg { padding-top: 1.75rem; }
}

/* "Gratis" in het overzicht: zelfde accent als een korting. */
.cx-funnel .pp-bk-summary__gratis { color: var(--pp-ok); font-weight: 700; }

/* Verwijzing naar het algemene aanbod onder de lokale tekst. */
.cx-stad__meer { margin: 1.2rem 0 0; font-size: .95rem; }
.cx-sec--licht .cx-stad__meer { color: #46413A; }
.cx-stad__meer a { color: #8A6520; font-weight: 700; text-underline-offset: 3px; }
.cx-stad__meer a:hover { color: #5A4512; }

/* Blogkaart zonder uitgelichte afbeelding: de badge staat in de tekstkolom
   in plaats van absoluut over een beeldvlak dat er niet is. */
.cx-post__cat--plat { position: static; align-self: flex-start; margin-bottom: .1rem; }

/* Praktische vragen op de bedrijfsfeestpagina: twee kolommen met wat ruimer
   tekstblok, want deze antwoorden zijn langer dan een USP-regel. */
.cx-prak { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.4rem; margin-top: 2rem; }
@media (max-width: 800px) { .cx-prak { grid-template-columns: minmax(0,1fr); } }
.cx-prak__kaart { background: #FFFFFF; border: 1.5px solid #E6E1D6; border-radius: 16px;
	padding: 1.5rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .5rem; }
.cx-prak__icoon { width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border-radius: 10px;
	background: rgba(196,154,84,.14); color: #8A6520; }
.cx-prak__icoon svg { width: 18px; height: 18px; }
.cx-prak__kaart h3 { margin: .2rem 0 0; font-size: 1.05rem; font-weight: 800; color: #14130F; }
.cx-prak__kaart p { margin: 0; font-size: .92rem; line-height: 1.6; color: #46413A; }
.cx-prak__kaart .cx-link { margin-top: auto; padding-top: .5rem; color: #8A6520; font-weight: 700; font-size: .88rem; }

/* Capaciteitstabel op de bedrijfsfeestpagina. Op mobiel klapt de tabel om
   naar rijen met labels, want vier kolommen passen daar niet. */
.cx-cap { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap: 1.6rem; align-items: start; margin-top: 2rem; }
@media (max-width: 900px) { .cx-cap { grid-template-columns: minmax(0,1fr); } }
.cx-cap__tabel { width: 100%; border-collapse: collapse; font-size: .92rem; }
.cx-cap__tabel th { text-align: left; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
	color: var(--cx-goud-2); padding: 0 .8rem .6rem; font-weight: 800; }
.cx-cap__tabel td { padding: .75rem .8rem; border-top: 1px solid rgba(246,243,234,.14); color: var(--pp-white); }
.cx-cap__tabel tbody tr:hover td { background: rgba(196,154,84,.06); }
.cx-cap__meer { background: var(--cx-laag-1); border: 1.5px solid rgba(196,154,84,.35); border-radius: 16px;
	padding: 1.4rem 1.5rem 1.5rem; }
.cx-cap__meer h3 { margin: 0 0 .5rem; font-size: 1.02rem; font-weight: 800; color: var(--cx-goud-2); }
.cx-cap__meer p { margin: 0; font-size: .9rem; line-height: 1.6; color: var(--pp-muted); }
@media (max-width: 620px) {
	.cx-cap__tabel thead { display: none; }
	.cx-cap__tabel tr { display: grid; gap: .2rem; padding: .8rem 0; border-top: 1px solid rgba(246,243,234,.14); }
	.cx-cap__tabel td { border: 0; padding: .1rem .2rem; display: flex; justify-content: space-between; gap: 1rem; }
	.cx-cap__tabel td::before { content: attr(data-label); color: var(--pp-muted); font-size: .8rem; }
}

/* --- hero bedrijfsfeest -------------------------------------------------- */
.cx-b2bhero { padding-block: clamp(1.6rem, 3vw, 2.6rem) clamp(2.4rem, 5vw, 4rem); }
.cx-b2bhero .cx-kruimel { margin-bottom: clamp(1.2rem, 3vw, 2rem); }
.cx-b2bhero .cx-hero__grid { align-items: center; }
.cx-b2bhero .cx-hero__display { margin-bottom: .9rem; }
.cx-b2bhero .cx-hero__sub { margin-bottom: 1.2rem; }
.cx-b2bhero__punten { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; gap: .55rem; }
.cx-b2bhero__punten li { position: relative; padding-left: 1.9rem; font-size: var(--fs-15, .95rem);
	color: #CFC9C0; line-height: 1.5; }
.cx-b2bhero__punten li::before { content: ''; position: absolute; left: 0; top: .18em; width: 1.15rem; height: 1.15rem;
	border-radius: 50%; background: var(--cx-goud); }
.cx-b2bhero__punten li::after { content: ''; position: absolute; left: .36rem; top: .42em; width: .3rem; height: .55rem;
	border: solid #14130F; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.cx-b2bhero .cx-beeld__kader img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cx-b2bhero .cx-st--lb { position: absolute; top: auto; bottom: -22px; left: auto; right: -18px;
	width: max-content; display: grid; gap: .1rem; text-align: center; padding: .75rem 1.1rem;
	border-radius: 14px; }
.cx-b2bhero .cx-st__groot { font-size: 1.5rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.cx-b2bhero .cx-st__klein { font-size: .68rem; font-weight: 600; letter-spacing: .02em; }
@media (max-width: 860px) {
	.cx-b2bhero__punten li { font-size: .88rem; }
	/* badge stond met de rechterrand precies op de viewportgrens */
	.cx-b2bhero .cx-st--lb { right: 8px; bottom: -16px; padding: .6rem .9rem; }
	.cx-b2bhero .cx-st__groot { font-size: 1.25rem; }
}

/* --- leesblok (intro zonder beeld) --------------------------------------- */
.cx-uitleg { columns: 2; column-gap: clamp(1.8rem, 4vw, 3.2rem); max-width: 62rem; margin: 0 auto; }
.cx-uitleg p { margin: 0 0 1rem; break-inside: avoid; color: #CFC9C0; font-size: var(--fs-16, 1rem); line-height: 1.65; }
.cx-uitleg p:last-child { margin-bottom: 0; }
.cx-sec--licht .cx-uitleg p { color: #46413A; }
.cx-acties--mid { justify-content: center; margin-top: 1.8rem; }
@media (max-width: 780px) { .cx-uitleg { columns: 1; } }

/* --- contrast kaartlabels ------------------------------------------------ */
/* goud op wit haalde 4.07 (label) en 2.59 (stapnummer); norm is 4.5 en 3. */
.cx-spec__label { color: #86671C; }
.cx-stap__nr { color: rgba(134, 103, 28, .62); }
.cx-spec:nth-child(2) .cx-spec__extra { color: #57422A; }

/* --- hero feest organiseren --------------------------------------------- */
.cx-fohero { padding-block: clamp(1.8rem, 3.5vw, 3rem) clamp(2.4rem, 5vw, 4rem); }
.cx-fohero .cx-hero__grid { align-items: center; }
.cx-fohero .cx-hero__display { margin-bottom: .9rem; }
.cx-fohero .cx-hero__sub { margin-bottom: 1.2rem; }
.cx-fohero .cx-beeld__kader img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cx-fohero .cx-st--lb { position: absolute; top: auto; bottom: -22px; left: auto; right: -18px;
	width: max-content; max-width: 190px; display: grid; gap: .1rem; text-align: center;
	padding: .75rem 1.1rem; border-radius: 14px; }
.cx-fohero .cx-st__groot { font-size: 1.7rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.cx-fohero .cx-st__klein { font-size: .62rem; font-weight: 600; letter-spacing: .04em; white-space: normal; }
@media (max-width: 860px) {
	.cx-fohero .cx-st--lb { right: 8px; bottom: -16px; padding: .6rem .9rem; max-width: 160px; }
	.cx-fohero .cx-st__groot { font-size: 1.35rem; }
}

/* --- feest organiseren: stapsecties -------------------------------------- */
.cx-fostap { margin-top: 2.2rem; }
.cx-fostap__slot { margin-top: 1.6rem; padding: 1.3rem 1.5rem; border-radius: 16px;
	background: rgba(196,154,84,.13); border: 1.5px solid rgba(196,154,84,.4); }
.cx-fostap__slot h3 { margin: 0 0 .35rem; font-size: 1.02rem; font-weight: 800; color: #14130F; }
.cx-fostap__slot p { margin: 0; font-size: .93rem; line-height: 1.6; color: #46413A; }
@media (max-width: 760px) { .cx-prak { grid-template-columns: minmax(0,1fr); } }

/* --- feest organiseren: binnen vs buiten --------------------------------- */
.cx-fokolommen { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.4rem; margin-top: 2.2rem; }
.cx-fokolom { display: flex; flex-direction: column; gap: .9rem; padding: 1.5rem 1.6rem 1.6rem;
	border-radius: 18px; border: 1.5px solid rgba(196,154,84,.3); background: rgba(246,243,234,.035); }
.cx-fokolom__kop { display: flex; align-items: center; gap: .7rem; }
.cx-fokolom__icoon { flex: none; width: 2.2rem; height: 2.2rem; display: grid; place-items: center;
	border-radius: 10px; background: rgba(196,154,84,.16); color: var(--cx-goud-2); }
.cx-fokolom__icoon svg { width: 18px; height: 18px; }
.cx-fokolom__kop h3 { margin: 0; font-size: 1.15rem; font-weight: 800; letter-spacing: -.01em; }
.cx-fokolom__intro { margin: 0; font-size: .95rem; line-height: 1.6; color: #CFC9C0; }
.cx-fokolom__lijst { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.cx-fokolom__lijst li { position: relative; padding-left: 1.7rem; font-size: .92rem; line-height: 1.5; color: #CFC9C0; }
.cx-fokolom__lijst li::before { content: ''; position: absolute; left: 0; top: .16em; width: 1.05rem; height: 1.05rem;
	border-radius: 50%; background: var(--cx-goud); }
.cx-fokolom__lijst li::after { content: ''; position: absolute; left: .33rem; top: .36em; width: .27rem; height: .5rem;
	border: solid #14130F; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.cx-fokolom__let { margin-top: auto; padding: .85rem 1rem; border-radius: 12px;
	background: rgba(20,19,17,.42); border-left: 3px solid var(--cx-goud); display: grid; gap: .2rem; }
.cx-fokolom__let strong { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--cx-goud-2); }
.cx-fokolom__let span { font-size: .88rem; line-height: 1.55; color: #BFB8AC; }
.cx-sec--licht .cx-fokolom { background: #fff; border-color: #E6E1D6; }
.cx-sec--licht .cx-fokolom__intro, .cx-sec--licht .cx-fokolom__lijst li { color: #46413A; }
@media (max-width: 760px) { .cx-fokolommen { grid-template-columns: minmax(0,1fr); } }

/* --- feest organiseren: ruimte per persoon ------------------------------- */
.cx-foruimte { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr);
	gap: 1.4rem; margin-top: 2.2rem; align-items: start; }
.cx-foruimte__tabel { background: #fff; border: 1.5px solid #E6E1D6; border-radius: 16px; overflow: hidden; }
.cx-foruimte__tabel .cx-cap__tabel { margin: 0; }
.cx-forekens { display: flex; flex-direction: column; gap: .9rem; padding: 1.4rem 1.5rem 1.5rem;
	border-radius: 16px; background: #14130F; color: #F6F3EA; }
.cx-forekens h3 { margin: 0; font-size: 1.05rem; font-weight: 800; color: var(--cx-goud-2); }
.cx-forekens__lijst { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.cx-forekens__lijst li { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .1rem .8rem;
	padding-bottom: .55rem; border-bottom: 1px solid rgba(246,243,234,.14); }
.cx-forekens__lijst li:last-child { border-bottom: 0; padding-bottom: 0; }
.cx-forekens__naam { font-size: .9rem; font-weight: 700; }
.cx-forekens__uit { font-size: 1.05rem; font-weight: 800; color: var(--cx-goud-2); grid-row: span 2; align-self: center; }
.cx-forekens__som { font-size: .78rem; color: #A79F92; }
.cx-forekens__slot { margin: 0; font-size: .86rem; line-height: 1.6; color: #BFB8AC; }
.cx-forekens .cx-btn--lijn { align-self: flex-start; color: var(--cx-goud-2); border-color: rgba(196,154,84,.5); }
@media (max-width: 860px) { .cx-foruimte { grid-template-columns: minmax(0,1fr); } }

/* cx-cap__tabel is voor donkere secties; hier staat hij op wit */
.cx-foruimte__tabel .cx-cap__tabel th { color: #6B6459; border-bottom-color: #E6E1D6; }
.cx-foruimte__tabel .cx-cap__tabel td { color: #46413A; border-top-color: #E6E1D6; }
.cx-foruimte__tabel .cx-cap__tabel td strong { color: #14130F; }
.cx-foruimte__tabel .cx-cap__tabel tbody tr:hover td { background: rgba(196,154,84,.09); }

/* --- feest organiseren: kosten ------------------------------------------- */
.cx-fokosten { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 1rem; margin-top: 2.2rem; }
.cx-fokosten__kaart { display: flex; flex-direction: column; gap: .45rem; padding: 1.2rem 1.1rem 1.3rem;
	border-radius: 16px; border: 1.5px solid rgba(196,154,84,.3); background: rgba(246,243,234,.035); }
.cx-fokosten__icoon { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 9px;
	background: rgba(196,154,84,.16); color: var(--cx-goud-2); }
.cx-fokosten__icoon svg { width: 16px; height: 16px; }
.cx-fokosten__kaart h3 { margin: .25rem 0 0; font-size: .92rem; font-weight: 800; letter-spacing: -.01em; }
.cx-fokosten__bedrag { margin: 0; font-size: 1.02rem; font-weight: 800; color: var(--cx-goud-2); letter-spacing: -.01em; }
.cx-fokosten__text { margin: 0; font-size: .8rem; line-height: 1.5; color: #A79F92; }
.cx-fototaal { margin-top: 1.4rem; padding: 1.5rem 1.7rem; border-radius: 18px;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F;
	display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 1rem 1.8rem; align-items: center; }
.cx-fototaal__label { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .1em;
	text-transform: uppercase; color: #5E4718; margin-bottom: .15rem; }
.cx-fototaal__cijfer strong { font-size: clamp(1.4rem, 1rem + 1.5vw, 1.95rem); font-weight: 800;
	line-height: 1; letter-spacing: -.02em; white-space: nowrap; }
.cx-fototaal__note { margin: 0; font-size: .85rem; line-height: 1.55; color: #4A3A16; }
.cx-fototaal .cx-btn--goud { background: #14130F; color: var(--cx-goud-2); box-shadow: 4px 4px 0 rgba(20,19,17,.35); }
.cx-fototaal .cx-btn--goud:hover { color: #fff; box-shadow: 2px 2px 0 rgba(20,19,17,.35); }
.cx-fostap--drie { grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 1000px) {
	.cx-fokosten { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.cx-fostap--drie { grid-template-columns: minmax(0,1fr); }
	.cx-fototaal { grid-template-columns: minmax(0,1fr); text-align: left; }
}
@media (max-width: 560px) { .cx-fokosten { grid-template-columns: minmax(0,1fr); } }

/* --- feest organiseren: weerplan ----------------------------------------- */
.cx-foweer { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.3rem; margin-top: 2.2rem; }
.cx-foweer__kaart { display: flex; flex-direction: column; gap: .75rem; padding: 1.4rem 1.5rem 1.5rem;
	border-radius: 18px; border: 1.5px solid rgba(196,154,84,.3); background: rgba(246,243,234,.035); }
.cx-foweer__kop { display: flex; align-items: center; gap: .7rem; }
.cx-foweer__icoon { flex: none; width: 2.1rem; height: 2.1rem; display: grid; place-items: center;
	border-radius: 10px; background: rgba(196,154,84,.16); color: var(--cx-goud-2); }
.cx-foweer__icoon svg { width: 17px; height: 17px; }
.cx-foweer__kop h3 { margin: 0; font-size: 1.05rem; font-weight: 800; letter-spacing: -.01em; }
.cx-foweer__text { margin: 0; font-size: .9rem; line-height: 1.6; color: #BFB8AC; }
.cx-foweer__lijst { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.cx-foweer__lijst li { position: relative; padding-left: 1.1rem; font-size: .85rem; line-height: 1.5; color: #CFC9C0; }
.cx-foweer__lijst li::before { content: ''; position: absolute; left: 0; top: .52em; width: .4rem; height: .4rem;
	border-radius: 50%; background: var(--cx-goud); }
.cx-fostap__slot--donker { background: rgba(196,154,84,.12); border-color: rgba(196,154,84,.4); }
.cx-fostap__slot--donker h3 { color: var(--cx-goud-2); }
.cx-fostap__slot--donker p { color: #CFC9C0; }
@media (max-width: 760px) { .cx-foweer { grid-template-columns: minmax(0,1fr); } }

/* --- feest organiseren: tijdlijn ----------------------------------------- */
.cx-fotijd { list-style: none; margin: 2.4rem 0 0; padding: 0 0 0 1.4rem; position: relative; display: grid; gap: 1.5rem; }
.cx-fotijd::before { content: ''; position: absolute; left: 0; top: .5rem; bottom: .5rem; width: 2px;
	background: linear-gradient(180deg, var(--cx-goud), rgba(196,154,84,.25)); }
.cx-fotijd__stap { position: relative; display: grid; grid-template-columns: minmax(0,.28fr) minmax(0,1fr);
	gap: .4rem 1.6rem; align-items: start; padding-left: 1.5rem; }
.cx-fotijd__stap::before { content: ''; position: absolute; left: -1.4rem; top: .28rem; width: .82rem; height: .82rem;
	border-radius: 50%; background: var(--cx-goud); border: 2px solid var(--cx-paper);
	transform: translateX(calc(-50% + 1px)); }
.cx-fotijd__label { font-size: .95rem; font-weight: 800; color: #14130F; letter-spacing: -.01em; }
.cx-fotijd__taken { list-style: none; margin: 0; padding: 0; display: grid;
	grid-template-columns: repeat(2, minmax(0,1fr)); gap: .35rem 1.2rem; }
.cx-fotijd__taken li { position: relative; padding-left: 1.5rem; font-size: .88rem; line-height: 1.5; color: #46413A; }
.cx-fotijd__taken li::before { content: ''; position: absolute; left: 0; top: .1em; width: .95rem; height: .95rem;
	border-radius: 4px; border: 1.5px solid rgba(20,19,17,.3); background: #fff; }
.cx-fotijd__taken li::after { content: ''; position: absolute; left: .3rem; top: .25em; width: .26rem; height: .48rem;
	border: solid var(--pp-gold-deep, #86671C); border-width: 0 2px 2px 0; transform: rotate(45deg); }
@media (max-width: 820px) {
	.cx-fotijd__stap { grid-template-columns: minmax(0,1fr); gap: .5rem; }
	.cx-fotijd__taken { grid-template-columns: minmax(0,1fr); }
}

/* --- hero tuinfeest ------------------------------------------------------ */
.cx-tfhero { padding-block: clamp(1.8rem, 3.5vw, 3rem) clamp(2.4rem, 5vw, 4rem); }
.cx-tfhero .cx-hero__grid { align-items: center; }
.cx-tfhero .cx-hero__display { margin-bottom: .9rem; }
.cx-tfhero .cx-hero__sub { margin-bottom: 1.2rem; }
.cx-tfhero .cx-beeld__kader img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cx-tfhero .cx-st--lb { position: absolute; top: auto; bottom: -22px; left: auto; right: -18px;
	width: max-content; max-width: 190px; display: grid; gap: .1rem; text-align: center;
	padding: .75rem 1.1rem; border-radius: 14px; }
.cx-tfhero .cx-st__groot { font-size: 1.6rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.cx-tfhero .cx-st__klein { font-size: .64rem; font-weight: 600; letter-spacing: .04em; white-space: normal; }
@media (max-width: 860px) {
	.cx-tfhero .cx-st--lb { right: 8px; bottom: -16px; padding: .6rem .9rem; max-width: 160px; }
	.cx-tfhero .cx-st__groot { font-size: 1.3rem; }
}

/* --- tuinfeest: past het in jouw tuin ------------------------------------ */
.cx-tfpast { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr);
	gap: 1.4rem; margin-top: 2.2rem; align-items: start; }
.cx-tfpast__tabel { background: #fff; border: 1.5px solid #E6E1D6; border-radius: 16px; overflow: hidden; }
.cx-tfpast__tabel .cx-cap__tabel { margin: 0; }
.cx-tfpast__tabel .cx-cap__tabel th { color: #6B6459; border-bottom-color: #E6E1D6; }
.cx-tfpast__tabel .cx-cap__tabel td { color: #46413A; border-top-color: #E6E1D6; }
.cx-tfpast__tabel .cx-cap__tabel td strong { color: #14130F; }
.cx-tfpast__tabel .cx-cap__tabel tbody tr:hover td { background: rgba(196,154,84,.09); }
.cx-tfpast__tuin { color: #86671C !important; }
.cx-tfpast__zij { display: grid; gap: 1rem; }
.cx-tfpast__let { padding: 1.1rem 1.3rem; border-radius: 14px; background: rgba(196,154,84,.14);
	border-left: 3px solid var(--cx-goud); display: grid; gap: .3rem; }
.cx-tfpast__let strong { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: #6B4E18; }
.cx-tfpast__let p { margin: 0; font-size: .88rem; line-height: 1.6; color: #46413A; }
.cx-tfpast__tip { padding: 1.3rem 1.4rem 1.4rem; border-radius: 16px; background: #14130F; color: #F6F3EA;
	display: grid; gap: .55rem; justify-items: start; }
.cx-tfpast__tip h3 { margin: 0; font-size: 1rem; font-weight: 800; color: var(--cx-goud-2); }
.cx-tfpast__tip p { margin: 0; font-size: .88rem; line-height: 1.6; color: #BFB8AC; }
.cx-tfpast__tip .cx-btn--lijn { color: var(--cx-goud-2); border-color: rgba(196,154,84,.5); margin-top: .2rem; }
@media (max-width: 860px) { .cx-tfpast { grid-template-columns: minmax(0,1fr); } }

/* --- tuinfeest: komt de tent door de poort ------------------------------- */
.cx-tfpoort { list-style: none; margin: 2.2rem 0 0; padding: 0;
	display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.3rem; }
.cx-tfpoort__stap { position: relative; display: flex; flex-direction: column; gap: .55rem;
	padding: 1.5rem 1.5rem 1.6rem; border-radius: 18px;
	border: 1.5px solid rgba(196,154,84,.3); background: rgba(246,243,234,.035); }
.cx-tfpoort__nr { position: absolute; top: 1.1rem; right: 1.3rem; font-size: 2.1rem; font-weight: 800;
	line-height: 1; letter-spacing: -.03em; color: rgba(196,154,84,.34); }
.cx-tfpoort__icoon { width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border-radius: 10px;
	background: rgba(196,154,84,.16); color: var(--cx-goud-2); }
.cx-tfpoort__icoon svg { width: 18px; height: 18px; }
.cx-tfpoort__stap h3 { margin: .2rem 0 0; font-size: 1.05rem; font-weight: 800; letter-spacing: -.01em;
	padding-right: 2rem; }
.cx-tfpoort__stap p { margin: 0; font-size: .9rem; line-height: 1.6; color: #BFB8AC; }
@media (max-width: 860px) { .cx-tfpoort { grid-template-columns: minmax(0,1fr); } }

/* --- tuinfeest: pakketten ------------------------------------------------ */
.cx-tfpak { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.3rem;
	margin-top: 2.2rem; align-items: stretch; }
.cx-tfpak__kaart { position: relative; display: flex; flex-direction: column; gap: .6rem;
	padding: 1.6rem 1.5rem 1.6rem; border-radius: 18px; background: #fff;
	border: 1.5px solid #E6E1D6; }
.cx-tfpak__kaart.is-uit { border-color: var(--cx-goud); box-shadow: 0 0 0 3px rgba(196,154,84,.16); }
.cx-tfpak__vlag { position: absolute; top: -.7rem; left: 1.4rem; background: #14130F; color: var(--cx-goud-2);
	font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
	padding: .3rem .7rem; border-radius: 999px; }
.cx-tfpak__kaart h3 { margin: 0; font-size: 1.15rem; font-weight: 800; color: #14130F; letter-spacing: -.01em; }
.cx-tfpak__voor { margin: 0; font-size: .84rem; line-height: 1.45; color: #6B6459; }
.cx-tfpak__prijs { margin: .3rem 0 .2rem; font-size: 1.75rem; font-weight: 800; color: #14130F;
	line-height: 1; letter-spacing: -.02em; display: flex; align-items: baseline; gap: .4rem; }
.cx-tfpak__prijs small { font-size: .68rem; font-weight: 600; color: #6B6459; letter-spacing: 0; }
.cx-tfpak__lijst { list-style: none; margin: .3rem 0 1.1rem; padding: 0; display: grid; gap: .4rem; }
.cx-tfpak__lijst li { position: relative; padding-left: 1.5rem; font-size: .87rem; line-height: 1.5; color: #46413A; }
.cx-tfpak__lijst li::before { content: ''; position: absolute; left: 0; top: .12em; width: 1rem; height: 1rem;
	border-radius: 50%; background: var(--cx-goud); }
.cx-tfpak__lijst li::after { content: ''; position: absolute; left: .32rem; top: .3em; width: .26rem; height: .48rem;
	border: solid #14130F; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.cx-tfpak__kaart .cx-btn { margin-top: auto; justify-content: center; }
.cx-tfpak__note { margin: 1.1rem 0 0; text-align: center; font-size: .8rem; color: #6B6459; }
.cx-tfpoort--licht .cx-tfpoort__stap { background: #fff; border-color: #E6E1D6; }
.cx-tfpoort--licht .cx-tfpoort__stap h3 { color: #14130F; }
.cx-tfpoort--licht .cx-tfpoort__stap p { color: #46413A; }
.cx-tfpoort--licht .cx-tfpoort__nr { color: rgba(134,103,28,.3); }
.cx-tfpoort--licht .cx-tfpoort__icoon { background: rgba(196,154,84,.18); color: #86671C; }
.cx-sec:not(.cx-sec--licht) .cx-tfpast__tabel { background: rgba(246,243,234,.04); border-color: rgba(196,154,84,.28); }
.cx-sec:not(.cx-sec--licht) .cx-tfpast__tabel .cx-cap__tabel th { color: #A79F92; border-bottom-color: rgba(246,243,234,.14); }
.cx-sec:not(.cx-sec--licht) .cx-tfpast__tabel .cx-cap__tabel td { color: #CFC9C0; border-top-color: rgba(246,243,234,.12); }
.cx-sec:not(.cx-sec--licht) .cx-tfpast__tabel .cx-cap__tabel td strong { color: #F6F3EA; }
.cx-sec:not(.cx-sec--licht) .cx-tfpast__tuin { color: var(--cx-goud-2) !important; }
.cx-sec:not(.cx-sec--licht) .cx-tfpast__let { background: rgba(196,154,84,.13); }
.cx-sec:not(.cx-sec--licht) .cx-tfpast__let strong { color: var(--cx-goud-2); }
.cx-sec:not(.cx-sec--licht) .cx-tfpast__let p { color: #CFC9C0; }
@media (max-width: 900px) { .cx-tfpak { grid-template-columns: minmax(0,1fr); } }

/* --- tuinfeest: galerij en faq ------------------------------------------- */
.cx-tfgal { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: .9rem; margin-top: 2.2rem; }
.cx-tfgal__item { margin: 0; border-radius: 16px; overflow: hidden; border: 2px solid rgba(20,19,17,.85);
	box-shadow: 5px 5px 0 rgba(196,154,84,.5); }
.cx-tfgal__item:nth-child(1) { grid-column: span 3; }
.cx-tfgal__item:nth-child(2) { grid-column: span 3; }
.cx-tfgal__item:nth-child(n+3) { grid-column: span 2; }
.cx-tfgal__item img { display: block; width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; }
@media (max-width: 860px) {
	.cx-tfgal { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.cx-tfgal__item:nth-child(1), .cx-tfgal__item:nth-child(2),
	.cx-tfgal__item:nth-child(n+3) { grid-column: span 1; }
}

/* tabel tuinfeest: meer lucht rondom en in de cellen */
.cx-tfpast__tabel { padding: .6rem 1.2rem 1rem; }
.cx-tfpast__tabel .cx-cap__tabel th { padding: 1rem .9rem .8rem; }
.cx-tfpast__tabel .cx-cap__tabel td { padding: 1.05rem .9rem; }
@media (max-width: 600px) { .cx-tfpast__tabel { padding: .4rem .8rem .7rem; } }

/* --- contrast faq-links -------------------------------------------------- */
/* pp-gold-deep haalde 4.07 op wit, norm is 4.5 voor lopende tekst. */
.cx-faq__a a { color: #86671C; }
.cx-faq__a a:hover { color: #14130F; }

/* --- hero opblaasbare nachtclub ------------------------------------------ */
.cx-nchero { padding-block: clamp(1.8rem, 3.5vw, 3rem) clamp(2.4rem, 5vw, 4rem); }
.cx-nchero .cx-hero__grid { align-items: center; }
.cx-nchero .cx-hero__display { margin-bottom: .9rem; }
.cx-nchero .cx-hero__sub { margin-bottom: 1.2rem; }
.cx-nchero .cx-beeld__kader img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cx-nchero .cx-st--lb { position: absolute; top: auto; bottom: -22px; left: auto; right: -18px;
	width: max-content; max-width: 190px; display: grid; gap: .1rem; text-align: center;
	padding: .75rem 1.1rem; border-radius: 14px; }
.cx-nchero .cx-st__groot { font-size: 1.6rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.cx-nchero .cx-st__klein { font-size: .64rem; font-weight: 600; letter-spacing: .04em; white-space: normal; }
@media (max-width: 860px) {
	.cx-nchero .cx-st--lb { right: 8px; bottom: -16px; padding: .6rem .9rem; max-width: 160px; }
	.cx-nchero .cx-st__groot { font-size: 1.3rem; }
}

/* --- nachtclub: wat is het ----------------------------------------------- */
.cx-ncwat { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,.65fr);
	gap: 1.6rem; margin-top: 2.2rem; align-items: start; }
.cx-ncwat__tekst { columns: 1; max-width: none; margin: 0; }
.cx-ncwat__kort { padding: 1.5rem 1.6rem 1.6rem; border-radius: 18px; background: #14130F;
	color: #F6F3EA; display: grid; gap: .6rem; justify-items: start; }
.cx-ncwat__kort h3 { margin: 0; font-size: 1.05rem; font-weight: 800; color: var(--cx-goud-2); }
.cx-ncwat__kort p { margin: 0; font-size: .9rem; line-height: 1.65; color: #BFB8AC; }
.cx-ncwat__kort .cx-btn { margin-top: .3rem; }
@media (max-width: 900px) { .cx-ncwat { grid-template-columns: minmax(0,1fr); } }

/* --- nachtclub: de clubbeleving ------------------------------------------ */
.cx-ncbeleving { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1.2rem; margin-top: 2.2rem; }
.cx-ncbeleving__kaart { display: flex; flex-direction: column; gap: .6rem; padding: 1.5rem 1.4rem 1.6rem;
	border-radius: 18px; border: 1.5px solid rgba(196,154,84,.3); background: rgba(246,243,234,.035); }
.cx-ncbeleving__icoon { width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border-radius: 11px;
	background: rgba(196,154,84,.16); color: var(--cx-goud-2); }
.cx-ncbeleving__icoon svg { width: 19px; height: 19px; }
.cx-ncbeleving__kaart h3 { margin: .2rem 0 0; font-size: 1.02rem; font-weight: 800; letter-spacing: -.01em; }
.cx-ncbeleving__kaart p { margin: 0; font-size: .88rem; line-height: 1.6; color: #BFB8AC; }
@media (max-width: 1000px) { .cx-ncbeleving { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 560px) { .cx-ncbeleving { grid-template-columns: minmax(0,1fr); } }

/* --- nachtclub: gelegenheden en werkwijze -------------------------------- */
.cx-ncgel { grid-template-columns: repeat(4, minmax(0,1fr)); }
.cx-ncwrk { grid-template-columns: repeat(4, minmax(0,1fr)); }
@media (max-width: 1000px) { .cx-ncgel { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 560px) { .cx-ncgel { grid-template-columns: minmax(0,1fr); } }

/* --- hero bruiloft ------------------------------------------------------- */
.cx-brhero { padding-block: clamp(1.8rem, 3.5vw, 3rem) clamp(2.4rem, 5vw, 4rem); }
.cx-brhero .cx-hero__grid { align-items: center; }
.cx-brhero .cx-hero__display { margin-bottom: .9rem; }
.cx-brhero .cx-hero__sub { margin-bottom: 1.2rem; }
.cx-brhero .cx-beeld__kader img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cx-brhero .cx-st--lb { position: absolute; top: auto; bottom: -22px; left: auto; right: -18px;
	width: max-content; max-width: 190px; display: grid; gap: .1rem; text-align: center;
	padding: .75rem 1.1rem; border-radius: 14px; }
.cx-brhero .cx-st__groot { font-size: 1.6rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.cx-brhero .cx-st__klein { font-size: .64rem; font-weight: 600; letter-spacing: .04em; white-space: normal; }
@media (max-width: 860px) {
	.cx-brhero .cx-st--lb { right: 8px; bottom: -16px; padding: .6rem .9rem; max-width: 160px; }
	.cx-brhero .cx-st__groot { font-size: 1.3rem; }
}

/* het kader in cx-fokolom was voor donkere secties gemaakt */
.cx-sec--licht .cx-fokolom__let { background: rgba(196,154,84,.14); }
.cx-sec--licht .cx-fokolom__let strong { color: #6B4E18; }
.cx-sec--licht .cx-fokolom__let span { color: #46413A; }
.cx-sec--licht .cx-fokolom__kop h3 { color: #14130F; }
.cx-sec--licht .cx-fokolom__icoon { background: rgba(196,154,84,.18); color: #86671C; }

/* --- iOS: geen auto-zoom op formuliervelden ------------------------------ */
/* iOS zoomt in op velden met een lettergrootte onder 16px. Op mobiel dus
   16px aanhouden; op desktop mag het kleiner blijven. */
@media (max-width: 860px) {
	.cx-funnel .pp-bk-field input,
	.cx-funnel .pp-bk-field select,
	.cx-funnel .pp-bk-field textarea,
	.cx-funnel .pp-bk-extra__num input,
	.cx-funnel input[type="text"],
	.cx-funnel input[type="tel"],
	.cx-funnel input[type="email"],
	.cx-funnel input[type="number"],
	.cx-funnel input[type="date"],
	.cx-funnel input[type="search"],
	.cx-funnel select,
	.cx-funnel textarea { font-size: 16px; }
}

/* De rechterkolom van het prijsoverzicht: elk bedrag en elk aantal wit en vet.
   Gedempt grijs las te zwak bij de bedragen waar de klant juist op let. De
   labels links houden hun gewicht 400 (en in de meta-rijen hun gedempte
   grijs), zodat het contrast het oog naar rechts trekt. De doorgestreepte oude prijs houdt zijn lagere dekking, anders
   concurreert hij met de prijs die er echt toe doet. */
.cx-funnel .pp-bk-line__val,
.cx-funnel .pp-bk-summary__row > span:last-child,
.cx-funnel .pp-bk-summary__gratis {
	color: var(--pp-white); font-weight: 700;
}

/* De stappenbalk op /boeking-afronden/. De markup stond er nog van de oude
   funnel, maar de opmaak verdween bij de herbouw; zonder css viel de <ol>
   terug op de browserlijst en las het als "1. 1Samenstellen". Drie stappen,
   bollen met een lijn ertussen en de namen eronder, zodat het op 375px past. */
.cx-stapper {
	list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0 0 1.6rem; padding: 0; counter-reset: none;
}
.cx-stapper__item { position: relative; min-width: 0; text-align: center; }

/* De verbindingslijn loopt vanaf het midden van deze bol naar de volgende. */
.cx-stapper__item::before {
	content: ''; position: absolute; top: 13px; left: 50%; width: 100%; height: 2px;
	background: rgba(196, 154, 84, .22);
}
.cx-stapper__item:last-child::before { display: none; }
.cx-stapper__item.is-klaar::before { background: var(--cx-goud); }

.cx-stapper__knop { display: grid; justify-items: center; gap: .45rem; position: relative; z-index: 1; }

.cx-stapper__bol {
	display: grid; place-content: center; width: 28px; height: 28px; border-radius: 50%;
	font-size: .78rem; font-weight: 800; line-height: 1;
	border: 2px solid rgba(196, 154, 84, .35); background: var(--cx-ink); color: var(--pp-muted);
}
.cx-stapper__naam {
	font-size: .68rem; line-height: 1.25; color: var(--pp-muted);
	overflow-wrap: break-word; hyphens: auto;
}

/* Afgerond: gevulde bol met een vinkje in plaats van het cijfer. */
.cx-stapper__item.is-klaar .cx-stapper__bol {
	background: var(--cx-goud); border-color: var(--cx-goud); color: var(--cx-ink); font-size: 0;
}
.cx-stapper__item.is-klaar .cx-stapper__bol::after { content: '\2713'; font-size: .82rem; }

/* Waar je nu bent: open bol in goud, naam wit en vet. */
.cx-stapper__item.is-actief .cx-stapper__bol { border-color: var(--cx-goud-2); color: var(--cx-goud-2); }
.cx-stapper__item.is-actief .cx-stapper__naam { color: var(--pp-white); font-weight: 700; }

@media (min-width: 600px) {
	.cx-stapper { margin-bottom: 2rem; }
	.cx-stapper__bol { width: 32px; height: 32px; font-size: .85rem; }
	.cx-stapper__item::before { top: 15px; }
	.cx-stapper__naam { font-size: .82rem; }
}

@media (min-width: 900px) {
	/* Staat bewust achteraan: eerder in dit bestand zet ".cx-post__zij" zich
	   op display grid, en bij gelijke specificiteit wint de laatste regel.
	   De kolom als geheel liet scrollen kapte de kaart eronder af zodra de
	   inhoudsopgave lang werd, en het scrollgebied sneed ook de gouden
	   slagschaduw weg. Nu krimpt alleen de lijst: de kaart houdt altijd zijn
	   volle hoogte en de kolom zelf heeft geen overflow meer. */
	.cx-post__zij { position: sticky; top: 90px;
		display: flex; flex-direction: column; gap: 1.4rem;
		max-height: calc(100vh - 110px); }
	.cx-post__zij .cx-toc--vast { flex: 0 1 auto; min-height: 0; overflow-y: auto;
		scrollbar-width: thin; scrollbar-color: var(--cx-goud) transparent; }
	.cx-post__zij .cx-toc--vast::-webkit-scrollbar { width: 6px; }
	.cx-post__zij .cx-toc--vast::-webkit-scrollbar-thumb { background: rgba(196,154,84,.5); border-radius: 6px; }
	.cx-post__zij .cx-post__cta { flex: none; }
}

/* ==========================================================================
   Rekenhulpen: de hub /feest-calculators/ en het blok dat op de organiseer-
   pagina's en onder blogposts meeloopt. Geen productfoto's, dus de kaart moet
   het van tekst hebben: een label bovenin geeft in een oogopslag het onderwerp.
   ========================================================================== */
.cx-calc { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: clamp(.9rem, 2vw, 1.3rem); }
.cx-calckaart { display: flex; flex-direction: column; min-width: 0;
	border: 2px solid rgba(20,19,17,.9); border-radius: 16px;
	background: linear-gradient(180deg, rgba(58,55,50,.75), rgba(38,36,33,.9));
	padding: 1.3rem 1.3rem 1.4rem; text-decoration: none;
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.cx-calckaart:hover { transform: translateY(-3px); border-color: var(--cx-goud);
	box-shadow: 0 14px 30px rgba(0,0,0,.45); }
.cx-calckaart__label { align-self: flex-start; font-size: .62rem; font-weight: 800;
	letter-spacing: .16em; text-transform: uppercase; color: var(--cx-goud-2);
	border: 1px solid rgba(196,154,84,.4); border-radius: 999px; padding: .22rem .6rem;
	margin-bottom: .9rem; }
.cx-calckaart__naam { font-size: var(--fs-16); font-weight: 800; line-height: 1.25;
	color: var(--pp-white); margin-bottom: .45rem; }
.cx-calckaart__tekst { font-size: .84rem; line-height: 1.5; color: var(--pp-muted);
	margin-bottom: 1.1rem; }
.cx-calckaart__knop { margin-top: auto; font-size: .78rem; font-weight: 800;
	letter-spacing: .04em; color: var(--cx-goud-2); }
.cx-calckaart:hover .cx-calckaart__knop { color: var(--cx-goud-2); }

/* Lichte sectie: dezelfde kaart, maar leesbaar op crème. */
.cx-sec--licht .cx-calckaart { background: #fff; border-color: #E6E1D6; }
.cx-sec--licht .cx-calckaart__label { color: #7A5B22; border-color: rgba(122,91,34,.35); }
.cx-sec--licht .cx-calckaart__naam { color: #14130F; }
.cx-sec--licht .cx-calckaart__tekst { color: #46413A; }
.cx-sec--licht .cx-calckaart__knop { color: #7A5B22; }

/* Onder een blogartikel staat het blok in de smalle kolom. */
.cx-post__calc { margin-top: 2.4rem; padding-top: 2rem; border-top: 1px solid var(--pp-line); }
.cx-post__calc h2 { font-size: var(--fs-18); font-weight: 800; margin: 0 0 1.1rem; color: var(--pp-white); }
.cx-post__calc .cx-calc { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }


/* ==========================================================================
   Rekenhulpen: gedeelde vormgeving.

   Elke calculator heeft zijn eigen klasseprefix (dc- drank, pg- playlist,
   bc- bier, ec- eten, ug- uitnodiging) omdat ze los van elkaar zijn gebouwd.
   De opmaak was daardoor overal net anders en nergens in de vormtaal van de
   site. Hieronder staat die opmaak een keer, met alle prefixen expliciet
   genoemd zodat het duidelijk blijft waar een regel op slaat.
   ========================================================================== */

/* ---- labels ---- */
.pp-tool .dc-label, .pp-tool .pg-label, .pp-tool .bc-label,
.pp-tool .ec-label, .pp-tool .ug-label {
	display: block; font-size: .8rem; font-weight: 800; letter-spacing: .01em;
	color: var(--pp-white); margin-bottom: .7rem;
}
.pp-tool .dc-label small, .pp-tool .pg-label small, .pp-tool .bc-label small,
.pp-tool .ec-label small, .pp-tool .ug-label small {
	font-weight: 400; color: var(--pp-muted); font-size: .74rem; letter-spacing: 0;
}
.pp-tool .dc-field, .pp-tool .pg-field, .pp-tool .bc-field,
.pp-tool .ec-field, .pp-tool .ug-field { margin-bottom: 1.5rem; }

/* ---- schuifregelaars ---- */
.pp-tool .dc-range, .pp-tool .pg-range, .pp-tool .bc-range,
.pp-tool .ec-range, .pp-tool .ug-range {
	background: linear-gradient(90deg, rgba(196,154,84,.55), rgba(196,154,84,.14));
	height: 6px; border-radius: 999px;
}
.pp-tool .dc-range::-webkit-slider-thumb, .pp-tool .pg-range::-webkit-slider-thumb,
.pp-tool .bc-range::-webkit-slider-thumb, .pp-tool .ec-range::-webkit-slider-thumb,
.pp-tool .ug-range::-webkit-slider-thumb {
	width: 24px; height: 24px;
	background: linear-gradient(160deg, var(--cx-goud-2), var(--cx-goud));
	box-shadow: 0 3px 10px rgba(0,0,0,.5); transition: transform .15s ease;
}
.pp-tool .dc-range::-moz-range-thumb, .pp-tool .pg-range::-moz-range-thumb,
.pp-tool .bc-range::-moz-range-thumb, .pp-tool .ec-range::-moz-range-thumb,
.pp-tool .ug-range::-moz-range-thumb {
	width: 24px; height: 24px;
	background: linear-gradient(160deg, var(--cx-goud-2), var(--cx-goud));
	box-shadow: 0 3px 10px rgba(0,0,0,.5);
}
.pp-tool .dc-val, .pp-tool .pg-val, .pp-tool .bc-val,
.pp-tool .ec-val, .pp-tool .ug-val {
	min-width: 62px; font-size: 1.1rem; font-weight: 800; color: var(--cx-goud-2);
	letter-spacing: -.01em;
}

/* ---- keuzeknoppen ---- */
.pp-tool .dc-opt, .pp-tool .pg-opt, .pp-tool .bc-opt,
.pp-tool .ec-opt, .pp-tool .ug-opt {
	padding: 1rem .6rem .85rem; border-radius: 14px;
	background: linear-gradient(180deg, rgba(58,55,50,.6), rgba(28,26,24,.85));
	border: 2px solid rgba(20,19,17,.9);
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.pp-tool .dc-opt:hover, .pp-tool .pg-opt:hover, .pp-tool .bc-opt:hover,
.pp-tool .ec-opt:hover, .pp-tool .ug-opt:hover {
	border-color: var(--cx-goud); transform: translateY(-2px);
}
.pp-tool .dc-opt.selected, .pp-tool .pg-opt.selected, .pp-tool .bc-opt.selected,
.pp-tool .ec-opt.selected, .pp-tool .ug-opt.selected {
	border-color: var(--cx-goud);
	background: linear-gradient(180deg, rgba(196,154,84,.2), rgba(120,90,40,.14));
	box-shadow: 0 8px 20px rgba(0,0,0,.4);
}
.pp-tool .dc-opt span, .pp-tool .pg-opt span, .pp-tool .bc-opt span,
.pp-tool .ec-opt span, .pp-tool .ug-opt span { font-size: .78rem; font-weight: 800; }
.pp-tool .dc-opt small, .pp-tool .pg-opt small, .pp-tool .bc-opt small,
.pp-tool .ec-opt small, .pp-tool .ug-opt small { font-size: .64rem; line-height: 1.3; text-align: center; }

/* ---- aanvinkbare pillen ---- */
.pp-tool .dc-check, .pp-tool .pg-check, .pp-tool .bc-check,
.pp-tool .ec-check, .pp-tool .ug-check {
	padding: .6rem 1rem; border-radius: 999px; font-size: .82rem;
	background: rgba(20,19,17,.5); border: 2px solid rgba(20,19,17,.9);
	transition: border-color .18s ease, background .18s ease;
}
.pp-tool .dc-check:hover, .pp-tool .pg-check:hover, .pp-tool .bc-check:hover,
.pp-tool .ec-check:hover, .pp-tool .ug-check:hover { border-color: var(--cx-goud); }
.pp-tool .dc-check:has(input:checked), .pp-tool .pg-check:has(input:checked),
.pp-tool .bc-check:has(input:checked), .pp-tool .ec-check:has(input:checked),
.pp-tool .ug-check:has(input:checked) { border-color: var(--cx-goud); background: rgba(196,154,84,.14); }

/* ---- uitkomstblok ---- */
.pp-tool .dc-result, .pp-tool .pg-result, .pp-tool .bc-result,
.pp-tool .ec-result, .pp-tool .ug-results, .cx-page .pp-tool__result {
	padding: 1.5rem 1.4rem 1.6rem; border-radius: 18px;
	background: linear-gradient(180deg, rgba(58,55,50,.7), rgba(30,28,25,.92));
	border: 2px solid rgba(196,154,84,.4);
}
.pp-tool .dc-result-title, .pp-tool .pg-result-title, .pp-tool .bc-result-title,
.pp-tool .ec-result-title {
	font-size: 1.15rem; font-weight: 800; color: var(--pp-white);
	margin: 0 0 .2rem; letter-spacing: -.015em;
}
.pp-tool .dc-result-sub, .pp-tool .pg-result-sub, .pp-tool .bc-result-sub,
.pp-tool .ec-result-sub { font-size: .78rem; color: var(--pp-muted); margin: 0 0 1.2rem; }

/* ---- afsluitende promo ---- */
.pp-tool .dc-promo, .pp-tool .pg-promo, .pp-tool .bc-promo,
.pp-tool .ec-promo, .pp-tool .ug-promo {
	margin-top: 1.1rem; border-radius: 18px; padding: 1.4rem;
	background: radial-gradient(ellipse at top, rgba(196,154,84,.14) 0%, transparent 62%), rgba(20,19,17,.6);
	border: 2px solid rgba(20,19,17,.9);
}
.pp-tool .dc-btn-book, .pp-tool .pg-btn-book, .pp-tool .bc-btn-book,
.pp-tool .ec-btn-book, .pp-tool .ug-btn-book {
	padding: .8rem 1.6rem; border-radius: 999px; font-size: .84rem; font-weight: 800;
	background: linear-gradient(180deg, var(--cx-goud-2), var(--cx-goud));
	transition: transform .18s ease, box-shadow .18s ease;
}
.pp-tool .dc-btn-book:hover, .pp-tool .pg-btn-book:hover, .pp-tool .bc-btn-book:hover,
.pp-tool .ec-btn-book:hover, .pp-tool .ug-btn-book:hover {
	transform: translateY(-2px); box-shadow: 0 10px 22px rgba(196,154,84,.28);
}

/* --------------------------------------------------------------------------
   Twee kolommen zodra er ruimte is: links invullen, rechts de uitkomst.
   Daarvoor stond de uitkomst onder het hele formulier, zodat je moest
   scrollen om te zien wat je keuzes deden. De volgorde in de HTML blijft
   ongewijzigd, dus op mobiel valt alles vanzelf weer onder elkaar.
   -------------------------------------------------------------------------- */
@media (min-width: 900px) {
	#pg.pg, #bc.bc, #ec.ec, #ug.ug {
		display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr);
		column-gap: clamp(1.6rem, 3vw, 2.6rem); align-items: start;
	}
	.pg-form, .bc-form, .ec-form, .ug-form { grid-column: 1; grid-row: 1 / span 2; margin-bottom: 0; }
	.pg-result, .bc-result, .ec-result, .ug-results { grid-column: 2; grid-row: 1; margin-bottom: 0; }
	.pg-promo, .bc-promo, .ec-promo, .ug-promo { grid-column: 2; grid-row: 2; }
}

/* Deze twee tools tonen hun uitkomst pas na een klik, dus daar heeft een
   tweede kolom geen zin: die zou bij het openen leeg zijn. Ze krijgen wel de
   ruimere opmaak en een breder veldenraster. */
.cx-page .pp-tool__grid { gap: 1.1rem; }
.cx-page .pp-tool__result { margin-top: 1.6rem; }
@media (min-width: 900px) {
	.cx-page .pp-tool__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cx-page .pp-tool__field--full { grid-column: 1 / -1; }
}

/* Hero en toolsectie hadden allebei de volle sectiepadding: samen tot 12rem
   lege ruimte tussen de titel en de eerste vraag. Staat hier gedeeld, want
   niet elke calculator heeft een eigen style-blok. */
.cx-page .pp-tool-wrap--breed { padding-top: 0; }
.cx-page .cx-sec:has(> .pp-tool-wrap--breed) { padding-top: clamp(1rem, 2vw, 1.8rem); }
.cx-page .pp-tool-lead { max-width: 62ch; margin-left: auto; margin-right: auto; text-align: center; }

/* --------------------------------------------------------------------------
   "In het kort" op mobiel: eerst de cijfers, dan het verhaal.

   In de opmaak staat de tekstkolom voor de tegels, wat op twee kolommen klopt.
   Op een telefoon betekende het dat je 2,4 schermen moest scrollen voordat je
   de prijs, de opbouwtijd, de maten en de capaciteit zag: bijna 300px tekst
   stond ervoor. De kop blijft wel bovenaan, want die introduceert de sectie.

   display:contents haalt de tekstkolom als wrapper weg, zodat badge, kop,
   tegels en tekst allemaal directe items worden en los te ordenen zijn.
   -------------------------------------------------------------------------- */
@media (max-width: 899px) {
	/* gap 0: de kolomafstand van het raster zou hier tussen elk los onderdeel
	   komen te staan. De elementen hebben hun eigen ondermarge al. */
	.cx-kort { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
	.cx-kort > div:first-child { display: contents; }
	.cx-kort .cx-kort__badge { order: 1; align-self: flex-start; }
	.cx-kort .cx-hand        { order: 2; }
	.cx-kort .cx-kort__lead  { order: 3; }
	.cx-kort .cx-specs       { order: 4; margin-bottom: 1.6rem; }
	.cx-kort .cx-kort__tekst { order: 5; }
}

/* Inhoudsopgave op documentpagina's (voorwaarden, privacy). Die staan op
   de creme achtergrond, waar de donkere blogvariant niet op past. */
.cx-toc--doc { background: #fff; border-color: #E6E1D6; max-width: 640px;
	margin: 0 0 2.4rem; box-shadow: 4px 4px 0 rgba(196,154,84,.28); }
.cx-toc--doc summary { color: #14130F; }
.cx-toc--doc .cx-toc__pijl { border-color: var(--pp-gold-deep); }
.cx-toc--doc a { color: #46413A; text-decoration: none; }
.cx-toc--doc a:hover { color: #14130F; }
/* Geen eigen nummers: de koppen heten al "Artikel 1", "Artikel 2".
   Twee nummeringen naast elkaar liepen bovendien uit de pas, omdat de
   documenttitel als eerste kop meetelde. */
.cx-toc--doc .cx-toc__nr { display: none; }
.cx-toc--doc li { list-style: none; }
.cx-toc--doc ol { padding-left: 0; }
/* Ankerlinks landen anders onder de vaste kopbalk. */
.cx-prose--breed h2[id], .cx-prose--breed h3[id] { scroll-margin-top: 100px; }

/* --------------------------------------------------------------------------
   Documentpagina's met veel artikelen: inhoudsopgave links, tekst rechts.
   Onder elkaar werkte niet: de lijst met 24 artikelen was 744px hoog, dus
   je scrolde eerst door een volledige inhoudsopgave voor de tekst begon.
   De lijst plakt nu mee, zodat je vanaf elk punt in het document naar een
   ander artikel kunt springen.
   -------------------------------------------------------------------------- */
@media (min-width: 900px) {
	.cx-doc { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
		gap: clamp(2rem, 4vw, 3.4rem); align-items: start; }
	.cx-doc .cx-toc--doc { position: sticky; top: 96px; margin: 0;
		max-height: calc(100vh - 130px); overflow-y: auto;
		scrollbar-width: thin; scrollbar-color: var(--cx-goud) transparent; }
	.cx-doc .cx-toc--doc::-webkit-scrollbar { width: 6px; }
	.cx-doc .cx-toc--doc::-webkit-scrollbar-thumb { background: rgba(196,154,84,.5); border-radius: 6px; }
	.cx-doc .cx-toc--doc summary { position: sticky; top: 0; background: #fff; z-index: 1;
		margin: -.9rem -1.1rem .4rem; padding: .9rem 1.1rem .5rem; }
	.cx-doc__tekst { max-width: 70ch; }
}
/* Op een telefoon staat de lijst gewoon boven de tekst, ingeklapt zodat hij
   niet het halve scherm inneemt. */
@media (max-width: 899px) {
	.cx-doc .cx-toc--doc { max-height: 46vh; overflow-y: auto; }
}

/* ==========================================================================
   /boeking-afronden/ opgeschoond
   De paginakop is eruit: op de laatste stap wil je meteen zien waar je bent
   en wat je invult, niet nog een titel. De stappenbalk staat nu bovenaan en
   loopt over de volle breedte van de kolom, in lijn met de balk eronder.
   ========================================================================== */

.cx-funnel .cx-checkout__top { padding-block: clamp(1.6rem, 3vw, 2.4rem) clamp(2rem, 4vw, 3rem); }

/* De bollen stonden midden in hun eigen derde, waardoor de balk smaller oogde
   dan de rest van de pagina. Nu staat de eerste bol op de linkerrand en de
   laatste op de rechterrand, met een doorlopende lijn ertussen. */
.cx-stapper {
	display: flex; justify-content: space-between; align-items: flex-start;
	position: relative; grid-template-columns: none;
}
.cx-stapper::before {
	content: ''; position: absolute; top: 13px; left: 14px; right: 14px; height: 2px;
	background: rgba(196, 154, 84, .22);
}
.cx-stapper--klaar::before { background: var(--cx-goud); }

/* De lijn zit nu op de balk zelf, dus de losse lijn per stap kan weg. */
.cx-stapper__item::before { content: none; }
.cx-stapper__item { z-index: 1; max-width: 34%; }

/* Eerste en laatste stap tegen de rand, de middelste blijft gecentreerd. */
.cx-stapper__item:first-child .cx-stapper__knop { justify-items: start; }
.cx-stapper__item:last-child .cx-stapper__knop { justify-items: end; }
.cx-stapper__item:first-child .cx-stapper__naam { text-align: left; }
.cx-stapper__item:last-child .cx-stapper__naam { text-align: right; }

@media (min-width: 600px) {
	/* Grotere bollen, dus de lijn begint en eindigt een halve bol verder. */
	.cx-stapper::before { top: 15px; left: 16px; right: 16px; }
}

/* De regels onder het product in het overzicht: label vet in de eerste kolom,
   waarde in de tweede. Zo staan de datums en het formaat netjes onder elkaar
   in plaats van als doorlopende tekst. */
.cx-checkout .variation,
.cx-checkout .wc-item-meta {
	display: grid; grid-template-columns: auto minmax(0, 1fr);
	gap: .18rem .5rem; align-items: baseline;
	margin: .55rem 0 0; padding: 0; list-style: none;
	font-size: .84rem; line-height: 1.45;
}
.cx-checkout .variation dt,
.cx-checkout .wc-item-meta strong,
.cx-checkout .wc-item-meta .wc-item-meta-label {
	margin: 0; padding: 0; font-weight: 800; color: var(--pp-white); white-space: nowrap;
}
.cx-checkout .variation dd,
.cx-checkout .wc-item-meta li { margin: 0; padding: 0; color: var(--pp-muted); }
.cx-checkout .variation dd p,
.cx-checkout .wc-item-meta li p { margin: 0; }

/* De drie zekerheden onder de stappenbalk. Op een telefoon passen ze niet
   naast elkaar; ze schoven daar in een scrollbalk die je niet zag. Nu lopen ze
   rond. De tweede set in de markup is een kopie: op het moment dat de rij
   precies de helft is opgeschoven staat die kopie exact waar het origineel
   begon, waardoor de lus geen sprong maakt. De items gebruiken een marge in
   plaats van gap, anders klopt die halve verschuiving niet. */
.cx-gerust--loop { display: block; overflow: hidden; padding-inline: 0; }
.cx-gerust--loop .cx-gerust__spoor {
	list-style: none; display: flex; flex-wrap: wrap; justify-content: center;
	margin: 0; padding: 0 1.2rem;
}
.cx-gerust--loop .cx-gerust__spoor > li { margin-right: 1.6rem; }
.cx-gerust--loop .cx-gerust__spoor > li:last-child { margin-right: 0; }

/* Op een breed scherm passen ze gewoon; de kopie is daar overbodig. */
.cx-gerust--loop .cx-gerust__spoor > li[aria-hidden] { display: none; }

@media (max-width: 767px) {
	.cx-gerust--loop { padding: .65rem 0; overflow-x: hidden;
		mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
		-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
	.cx-gerust--loop .cx-gerust__spoor {
		flex-wrap: nowrap; justify-content: flex-start; width: max-content; padding: 0;
		animation: cx-gerust-loop 22s linear infinite;
	}
	.cx-gerust--loop .cx-gerust__spoor > li,
	.cx-gerust--loop .cx-gerust__spoor > li:last-child {
		flex: 0 0 auto; white-space: nowrap; margin-right: 1.4rem;
	}
	.cx-gerust--loop .cx-gerust__spoor > li[aria-hidden] { display: flex; }
}

@keyframes cx-gerust-loop {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

/* Wie beweging heeft uitgezet krijgt gewoon een rij die je zelf kunt vegen. */
@media (prefers-reduced-motion: reduce) {
	.cx-gerust--loop .cx-gerust__spoor { animation: none; }
	@media (max-width: 767px) {
		.cx-gerust--loop { overflow-x: auto; scrollbar-width: none; }
		.cx-gerust--loop::-webkit-scrollbar { display: none; }
		.cx-gerust--loop .cx-gerust__spoor > li[aria-hidden] { display: none; }
	}
}

/* ==========================================================================
   Cijfers per plaats op de stadspagina's.
   Vier korte feiten die per stad verschillen, zodat een bezoeker meteen ziet
   wat bezorgen bij hem kost en de pagina niet langer inwisselbaar is met de
   42 andere steden.
   ========================================================================== */

.cx-stadcijfers .cx-h3 { margin: 0 0 1.4rem; }
.cx-cijfers {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: clamp(.7rem, 2vw, 1.1rem); margin: 0 0 1.4rem;
}
.cx-cijfer {
	background: var(--pp-surface-2); border: 1px solid var(--pp-line);
	border-left: 3px solid var(--cx-goud); border-radius: 14px;
	padding: clamp(.9rem, 2vw, 1.2rem) clamp(1rem, 2vw, 1.3rem);
	display: flex; flex-direction: column; gap: .2rem; min-width: 0;
}
.cx-cijfer__waarde {
	font-size: clamp(1.4rem, 3.4vw, 1.9rem); font-weight: 800; line-height: 1.05;
	color: var(--cx-goud-2); letter-spacing: -.02em; overflow-wrap: break-word;
}
.cx-cijfer__label { font-size: .78rem; color: var(--pp-muted); line-height: 1.35; }
.cx-stadcijfers__uitleg {
	color: var(--pp-muted); font-size: .88rem; max-width: 68ch; margin: 0;
}

/* ==========================================================================
   De uitgebreide tekst over de plaats staat sinds 18-08-2026 onderaan de
   stadspagina in plaats van vlak onder de kop. Wie hier komt wil eerst zien
   wat er te huur is en wat het kost; deze tekst is naslag.

   Het blok stond eerder op de crème achtergrond en had daar donkere letters.
   Op de donkere sectie moeten die mee omklappen, anders lees je het niet.
   ========================================================================== */

.cx-stadtekst .cx-prose { color: var(--pp-muted); }
.cx-stadtekst .cx-prose h2,
.cx-stadtekst .cx-prose h3,
.cx-stadtekst .cx-prose strong { color: var(--pp-white); }
.cx-stadtekst .cx-prose a { color: var(--cx-goud-2); }
.cx-stadtekst .cx-stad__meer { color: var(--pp-muted); }
.cx-stadtekst .cx-stad__meer a { color: var(--cx-goud-2); }
.cx-stadtekst .cx-stad__meer a:hover { color: var(--cx-goud); }

/* Iets rustiger dan de secties erboven: dit is de afsluiting, geen etalage. */
.cx-stadtekst .cx-h3 { font-size: var(--fs-28); }
.cx-stadtekst .cx-prose { font-size: .92rem; line-height: 1.7; }

/* Het cijferblok staat sinds 18-08-2026 op de creme achtergrond, voor de
   afwisseling tussen de secties. De kaartjes en de letters moeten dan mee
   omklappen: op donker waren ze licht, hier moeten ze donker zijn. */
.cx-sec--licht.cx-stadcijfers .cx-cijfer {
	background: #fff; border-color: rgba(20, 19, 17, .14);
	border-left-color: var(--pp-gold-deep);
	box-shadow: 4px 4px 0 rgba(20, 19, 17, .07);
}
.cx-sec--licht.cx-stadcijfers .cx-cijfer__waarde { color: var(--pp-gold-deep); }
.cx-sec--licht.cx-stadcijfers .cx-cijfer__label { color: #5A544A; }
.cx-sec--licht.cx-stadcijfers .cx-stadcijfers__uitleg { color: #46413A; }

/* De knop onder de reviews, naar het Google-profiel met alle recensies. */
.cx-reviews__meer { text-align: center; margin-top: clamp(1.4rem, 3vw, 2rem); }

/* Doorloopknop onder de accessoires.
   Op een telefoon is dat blok ruim een scherm hoog, waardoor het formulier
   eronder ongezien bleef: van de 27 bezoekers die een tent kozen kwamen er
   maar 4 bij het invullen. Deze knop brengt ze er in één tik naartoe. */
.pp-bk-verder { margin-top: clamp(1.2rem, 3vw, 1.8rem); text-align: center; }
.pp-bk-verder__knop { width: 100%; justify-content: center; }

@media (min-width: 700px) {
	/* Op een breed scherm staat het formulier al bijna in beeld; daar hoeft de
	   knop niet de volle breedte te vullen. */
	.pp-bk-verder__knop { width: auto; }
}

/* ==========================================================================
   /goed-om-te-weten/
   Bewust een andere opzet dan de voorwaardenpagina: geen lopende tekst met
   een inhoudsopgave, maar losse blokken die je scant terwijl je in de tuin
   staat. Groen is wat kan, rood is wat de borg kost.
   ========================================================================== */

.cx-vb__hero { padding-block: clamp(2rem, 4vw, 3.2rem) clamp(1.6rem, 3vw, 2.4rem); }
.cx-vb__lead { max-width: 62ch; margin: 1.1rem 0 0; color: var(--pp-muted); font-size: var(--fs-18); line-height: 1.6; }
.cx-vb__pillen { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.4rem 0 0; padding: 0; }
.cx-vb__pillen li {
	font-size: .74rem; font-weight: 700; letter-spacing: .03em; padding: .38rem .9rem;
	border-radius: 999px; border: 1px solid rgba(196,154,84,.32); color: var(--cx-goud-2);
	background: rgba(196,154,84,.08);
}
.cx-vb__sub { color: var(--pp-muted); max-width: 62ch; margin: .5rem 0 1.6rem; }
.cx-sec--licht .cx-vb__sub { color: #5A544A; }

/* Vier genummerde kaarten: wat er klaar moet staan. */
.cx-vb__kaarten { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: clamp(.8rem, 2vw, 1.2rem); }
.cx-vbkaart {
	position: relative; background: #fff; border: 2px solid #14130F; border-radius: 16px;
	padding: 1.4rem 1.3rem 1.2rem; box-shadow: 5px 5px 0 rgba(20,19,17,.1); min-width: 0;
}
.cx-vbkaart__nr {
	position: absolute; top: -13px; right: 16px; width: 28px; height: 28px; border-radius: 50%;
	display: grid; place-content: center; background: var(--cx-goud); color: #14130F;
	font-size: .8rem; font-weight: 800; border: 2px solid #14130F;
}
.cx-vbkaart__icoon { display: inline-flex; color: var(--pp-gold-deep); margin-bottom: .6rem; }
.cx-vbkaart__icoon svg { width: 26px; height: 26px; }
.cx-vbkaart h3 { margin: 0 0 .35rem; font-size: 1rem; font-weight: 800; color: #14130F; }
.cx-vbkaart p { margin: 0; font-size: .88rem; line-height: 1.55; color: #46413A; }

/* Twee kolommen naast elkaar: wat werkt en wat niet. */
.cx-vb__duo { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(.9rem, 2vw, 1.4rem); }
.cx-vblijst { border-radius: 16px; padding: 1.3rem 1.4rem; border: 1px solid var(--pp-line); background: var(--pp-surface-2); }
.cx-vblijst h3 { margin: 0 0 .8rem; font-size: .95rem; font-weight: 800; display: flex; align-items: center; gap: .5rem; }
.cx-vblijst h3 span { display: grid; place-content: center; width: 22px; height: 22px; border-radius: 50%; font-size: .75rem; }
.cx-vblijst ul { margin: 0; padding-left: 1.1rem; }
.cx-vblijst li { margin-bottom: .5rem; font-size: .89rem; line-height: 1.55; color: var(--pp-muted); }
.cx-vblijst li:last-child { margin-bottom: 0; }
.cx-vblijst--ja { border-left: 3px solid #4E9A5F; }
.cx-vblijst--ja h3 { color: #7BC98C; }
.cx-vblijst--ja h3 span { background: rgba(78,154,95,.18); color: #7BC98C; }
.cx-vblijst--nee { border-left: 3px solid #C4564E; }
.cx-vblijst--nee h3 { color: #E08A84; }
.cx-vblijst--nee h3 span { background: rgba(196,86,78,.18); color: #E08A84; }

.cx-vb__noot {
	margin: 1.3rem 0 0; padding: .9rem 1.1rem; border-radius: 12px;
	background: rgba(196,154,84,.09); border: 1px solid rgba(196,154,84,.26);
	color: var(--pp-muted); font-size: .88rem; line-height: 1.6; max-width: 76ch;
}

/* Blokken met korte regels: titel vet, uitleg eronder. */
.cx-vbblok { border-radius: 16px; padding: 1.3rem 1.4rem; background: rgba(20,19,17,.4); border: 1px solid var(--pp-line); }
.cx-vbblok h3 { margin: 0 0 1rem; font-size: .95rem; font-weight: 800; }
.cx-vbblok--ja { border-top: 3px solid #4E9A5F; }
.cx-vbblok--ja h3 { color: #7BC98C; }
.cx-vbblok--nee { border-top: 3px solid #C4564E; }
.cx-vbblok--nee h3 { color: #E08A84; }
.cx-vbregel { padding: .6rem 0; border-top: 1px solid var(--pp-line-soft); }
.cx-vbregel:first-of-type { border-top: 0; padding-top: 0; }
.cx-vbregel strong { display: block; color: var(--pp-white); font-size: .92rem; margin-bottom: .12rem; }
.cx-vbregel span { color: var(--pp-muted); font-size: .87rem; line-height: 1.55; }
.cx-vbregel--los { border-top: 0; padding: .55rem 0; }
.cx-sec--licht .cx-vbregel--los strong { color: #14130F; }
.cx-sec--licht .cx-vbregel--los span { color: #46413A; }

/* De blower: het enige dat echt niet mag misgaan. */
.cx-vb__let {
	display: flex; gap: .9rem; align-items: flex-start; margin-top: 1.4rem;
	padding: 1.1rem 1.3rem; border-radius: 14px;
	background: rgba(196,154,84,.1); border: 1px solid rgba(196,154,84,.34);
}
.cx-vb__let-icoon { color: var(--cx-goud-2); flex: none; }
.cx-vb__let-icoon svg { width: 22px; height: 22px; }
.cx-vb__let p { margin: 0; color: var(--pp-white); font-size: .9rem; line-height: 1.6; }

/* Weer en na afloop naast elkaar. */
.cx-vb__twee { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(1.6rem, 4vw, 3rem); align-items: start; }
.cx-vb__na { list-style: none; margin: 1rem 0 0; padding: 0; }
.cx-vb__na li { display: flex; gap: .75rem; padding: .65rem 0; border-top: 1px solid rgba(20,19,17,.1); font-size: .89rem; line-height: 1.55; color: #46413A; }
.cx-vb__na li:first-child { border-top: 0; padding-top: 0; }
.cx-vb__na strong { color: #14130F; }
.cx-vb__na-icoon { color: var(--pp-gold-deep); flex: none; }
.cx-vb__na-icoon svg { width: 19px; height: 19px; }

/* Slot. */
.cx-vb__slot { text-align: center; }
.cx-vb__slot p { color: var(--pp-muted); max-width: 52ch; margin-inline: auto; }
.cx-vb__knoppen { display: flex; gap: .7rem; justify-content: center; flex-wrap: wrap; margin: 1.4rem 0 1.2rem; }
.cx-vb__klein { font-size: .8rem; color: var(--pp-muted); }
.cx-vb__klein a { color: var(--cx-goud-2); }

@media (max-width: 560px) {
	.cx-vbkaart { padding: 1.2rem 1.1rem 1rem; }
	.cx-vb__knoppen .cx-btn { width: 100%; justify-content: center; }
}

/* Tussenmaten: 4 kaarten naast elkaar wordt 3+1 en dat oogt scheef. */
@media (max-width: 900px) {
	.cx-vb__kaarten { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
	.cx-vb__kaarten { grid-template-columns: minmax(0, 1fr); }
	.cx-vbkaart__nr { right: 14px; }
}

/* ==========================================================================
   Pakketinhoud dichtgeklapt (stap 1 van de funnel)
   De drie kenmerkenlijsten vulden samen ruim 400 px. Daardoor werd stap 1
   anderhalf telefoonscherm hoog en begon stap 2 pas op 1.464 px, buiten beeld.
   De inhoud zit nu achter een samenvatting die de klant zelf openklapt.
   ========================================================================== */
.cx-funnel .pp-bk-pkg__details { margin-top: .85rem; padding-top: .8rem;
	border-top: 1px solid rgba(246,243,234,.14); width: 100%; max-width: 100%; }
.cx-funnel .pp-bk-pkg__details[open] { width: 100%; }

.cx-funnel .pp-bk-pkg__details summary {
	display: flex; align-items: center; justify-content: space-between; gap: .6rem;
	cursor: pointer; list-style: none; padding: .1rem 0;
	font-size: .84rem; font-weight: 600; color: var(--cx-goud-2);
}
.cx-funnel .pp-bk-pkg__details summary::-webkit-details-marker { display: none; }
.cx-funnel .pp-bk-pkg__details summary::marker { content: ''; }
.cx-funnel .pp-bk-pkg__details summary:focus-visible { outline: 2px solid var(--cx-goud-2); outline-offset: 3px; border-radius: 4px; }
.cx-funnel .pp-bk-pkg__samenvatting { min-width: 0; }

/* Chevron die meedraait; los element zodat de tekst kan aflopen. */
.cx-funnel .pp-bk-pkg__pijl { flex: none; width: 9px; height: 9px; margin-right: 2px;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translate(-2px, -2px); transition: transform .18s var(--ease, ease); }
.cx-funnel .pp-bk-pkg__details[open] .pp-bk-pkg__pijl { transform: rotate(-135deg) translate(-3px, -3px); }

/* De lijst zelf houdt zijn eigen opmaak: de bestaande regel
   `.pp-bk-pkg__details ul` is specifieker dan `.pp-bk-pkg__feats` en zou hem
   anders terugzetten naar een gewone opsomming met inspringing. */
.cx-funnel .pp-bk-pkg__details .pp-bk-pkg__feats {
	margin: .75rem 0 0; padding: 0; border-top: 0; list-style: none;
	display: grid; gap: .5rem; font-size: .86rem;
}

@media (prefers-reduced-motion: reduce) {
	.cx-funnel .pp-bk-pkg__pijl { transition: none; }
}

/* main.css zet nog een chevron-teken via ::after op de summary, uit de vorige
   opzet. Wij tekenen er zelf een met .pp-bk-pkg__pijl, dus die oude moet weg,
   anders staan er twee pijltjes naast elkaar. */
.cx-funnel .pp-bk-pkg__details summary::after { content: none; }

/* Uit de vorige opzet stond `.pp-bk-pkg__details { grid-row: 3 }`, uit een tijd
   dat de kaart een andere indeling had. Op desktop deelt de kaart nu een
   subgrid met de andere twee, en rij 3 is daar de prijs: de inhoudsregel kwam
   daardoor bovenop de prijs te staan. De plaatsing volgt weer de volgorde in de
   HTML, zodat de inhoud onderaan de kaart blijft. */
.cx-funnel .pp-bk-pkg__details { grid-row: auto; grid-column: auto; }

/* main.css zet op elke li binnen __details een eigen vinkje via ::before, plus
   een padding-left om daar ruimte voor te maken. Dat stamt uit de opzet van
   voor de <i>-iconen in de HTML; sinds de kenmerkenlijst in een <details> is
   gewikkeld stonden er twee vinkjes naast elkaar en sprong de tekst in. */
.cx-funnel .pp-bk-pkg__details .pp-bk-pkg__feats li::before { content: none; }
.cx-funnel .pp-bk-pkg__details .pp-bk-pkg__feats li { padding-left: 0; position: static; }

/* De chevron stond scheef zodra de lijst openging: de translate in dezelfde
   transform draait mee met de rotatie, dus hij verschoof in de gedraaide
   richting in plaats van recht omhoog. Nu alleen roteren, en de optische
   uitlijning met een marge die niet meedraait. */
.cx-funnel .pp-bk-pkg__pijl {
	transform: rotate(45deg);
	margin-top: -3px;
	margin-right: 3px;
}
.cx-funnel .pp-bk-pkg__details[open] .pp-bk-pkg__pijl {
	transform: rotate(-135deg);
	margin-top: 3px;
}

/* De USP-rij stond vast op vier kolommen. Sinds er een vijfde punt bij is
   ("Het hele jaar door") viel dat vijfde kaartje alleen op een tweede rij.
   Met auto-fit verdeelt de rij zich naar het aantal punten: vijf naast elkaar
   als het past, anders netjes afbreken. Zo hoeft de indeling niet opnieuw
   aangepast te worden als er ooit een punt bij komt of afgaat. */
.cx-usps { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
@media (min-width: 1100px) {
	.cx-usp { padding: 1.3rem 1.1rem; }
	.cx-usp p { font-size: .8rem; }
}

/* Brede spec-tegel onder de 2x2 (seizoen): zelfde opmaak als de andere
   tegels, alleen over beide kolommen zodat de 2x2 heel blijft. */
.cx-spec--breed { grid-column: 1 / -1; background: #fff; box-shadow: 7px 7px 0 var(--cx-goud);
	transform: rotate(-.5deg); }

/* Matenlijst op de productpagina. Dezelfde lijst als op de homepage, maar
   die staat op een donkere ondergrond met lichte tekst; hier is de sectie
   papierkleur, dus achtergrond, rand en tekstkleuren gaan allemaal om.
   Op breed scherm twee kolommen, want er staat geen foto naast. */
.cx-maten--pdp .cx-maat { background: #fff; border-color: rgba(20,19,15,.16); }
.cx-maten--pdp .cx-maat:hover { background: rgba(196,154,84,.12); border-color: var(--cx-goud); }
.cx-maten--pdp .cx-maat__naam { color: var(--cx-ink); }
.cx-maten--pdp .cx-maat__meta { color: #6B6459; }
/* Donkerder dan --pp-gold-deep: dat haalt op wit maar 4,07 contrast en dit
   label is klein (0,74rem), dus geen "grote tekst". #8E6B2E geeft 4,89. */
.cx-maten--pdp .cx-maat__pers { color: #8E6B2E; }
@media (min-width: 760px) { .cx-maten--pdp { grid-template-columns: repeat(2, minmax(0,1fr)); } }

/* Horizontale scroll door de Google-reviewswidget (Trustindex).
   Die zet negen kaarten van 248px in een rij met flex-wrap:nowrap. Zijn eigen
   regel die dat afkapt (.ti-widget.ti-goog .ti-reviews-container-wrapper
   {overflow:hidden}) wordt overschreven door een specifiekere regel van
   dezelfde plugin (.ti-widget.ti-goog .ti-reviews-container
   .ti-reviews-container-wrapper {overflow:visible}), en er staat geen
   javascript van de widget op de pagina die er een slider van maakt. Netto:
   een rij van 2232px die de hele pagina liet meescrollen.
   Niet dichttimmeren met overflow:hidden, want dan zijn recensie 2 tot 9
   onbereikbaar. In plaats daarvan houden we het scrollen binnen de rij zelf,
   met snap-punten zodat het op mobiel als vegen voelt. Een klasse extra voor
   de specificiteit, anders wint de pluginregel. */
.cx-reviews__in .ti-widget.ti-goog .ti-reviews-container .ti-reviews-container-wrapper {
	overflow-x: auto; overflow-y: hidden;
	scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
	scrollbar-width: none; overscroll-behavior-x: contain; }
.cx-reviews__in .ti-reviews-container-wrapper::-webkit-scrollbar { display: none; }
.cx-reviews__in .ti-review-item { scroll-snap-align: start; }

/* Bronvermelding onder het contactformulier. Klein en gedempt: het is een
   verplichte mededeling, geen boodschap die om aandacht mag vragen. */
.ppt-recaptcha-vermelding { margin: .9rem 0 0; font-size: .72rem; line-height: 1.5; color: var(--pp-muted); }
.ppt-recaptcha-vermelding a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.ppt-recaptcha-vermelding a:hover { color: var(--cx-goud-2); }

/* Regel direct onder de H1 in de hero (sept 2026). Bewust een <p>, geen kop,
   zodat de H1 zuiver het zoekwoord blijft. Crème en niet goud: het goud zit al
   in het handschrift erboven, en twee gouden regels rond de kop heffen elkaar op.
   Gemeten op 375 px: past op een regel tot ongeveer 32 tekens. */
.cx-hero__tagline { margin: .55rem 0 0; line-height: 1.12; font-family: 'Josefin Sans', 'Century Gothic', sans-serif;
	font-weight: 600; font-size: clamp(1.3rem, .9rem + 1.5vw, 1.85rem); letter-spacing: .015em;
	color: rgba(246,243,234,.82); overflow-wrap: break-word; }

/* ---- stadspagina: feest geven in {stad} ----------------------------------
   Vraag, groot antwoord, een regel toelichting. 2x2 op desktop, onder elkaar
   op mobiel. Geen kaarten: alleen een gouden lijn boven elk punt. */
.cx-weten__raster { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.2rem clamp(1.6rem, 4vw, 3.4rem); margin-top: 2rem; }
.cx-weten__punt { min-width: 0; padding-top: 1.1rem; border-top: 2px solid rgba(196,154,84,.45); }
.cx-weten__vraag { display: flex; gap: .6rem; align-items: baseline; margin: 0 0 .45rem; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--pp-muted); line-height: 1.4; }
.cx-weten__vraag span { color: var(--cx-goud-2); font-weight: 800; }
.cx-weten__antwoord { margin: 0 0 .5rem; font-size: clamp(1.25rem, 1rem + 1vw, 1.6rem); font-weight: 800; line-height: 1.2; letter-spacing: -.01em; color: #F6F3EA; }
.cx-weten__tekst { margin: 0; font-size: .9rem; line-height: 1.6; color: var(--pp-muted); }
.cx-weten__tekst a { color: var(--cx-goud-2); }
.cx-weten__bron { margin: 2rem 0 0; font-size: .74rem; color: var(--pp-muted); opacity: .85; }
.cx-weten__bron a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 760px) {
	.cx-weten__raster { grid-template-columns: minmax(0, 1fr); gap: 1.6rem; margin-top: 1.4rem; }
}

/* ---- smalle PVC-bar onder de logo's ---------------------------------------
   Goudgetint vlak (variant E, gekozen sept 2026). Tekst via ACF. */
.cx-pvcbar { padding: .85rem 0; font-size: .82rem; line-height: 1.45; background: rgba(196,154,84,.16); }
.cx-pvcbar .cx-wrap { display: flex; align-items: center; justify-content: center; gap: .5rem 1.4rem; flex-wrap: wrap; text-align: center; }
.cx-pvcbar__tekst { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; color: #F6F3EA; }
.cx-pvcbar svg { width: 16px; height: 16px; flex: none; color: var(--cx-goud-2); }
.cx-pvcbar__link { color: var(--cx-goud-2); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
@media (max-width: 599px) {
	.cx-pvcbar { font-size: .78rem; padding: .75rem 0; }
}

/* ==========================================================================
   PVC-pagina in homepage-vormtaal (sept 2026), prefix pvc3-. Alleen wat de
   homepage-bouwstenen (cx_kop, cx-blok, cx-hero, cx-slot) niet al doen.
   ========================================================================== */
.pvc3 .cx-beeld__kader img { display: block; width: 100%; aspect-ratio: 9 / 10; object-fit: cover; object-position: 50% 62%; }
.pvc3-icoon { display: grid; place-content: center; width: 48px; height: 48px; border-radius: 13px; background: rgba(196,154,84,.16); color: var(--cx-goud-2); flex: none; }
.pvc3-icoon svg { width: 22px; height: 22px; }
.cx-sec--licht .pvc3-icoon { background: #14130F; color: var(--cx-goud-2); }
.pvc3-icoon--klein { width: 40px; height: 40px; border-radius: 11px; }
.pvc3-icoon--klein svg { width: 18px; height: 18px; }

/* 2. drie punten: kolommen met gouden lijn, geen kaartjes */
.pvc3-punten { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.4rem, 3vw, 2.6rem); margin-top: 2rem; }
.pvc3-punt { min-width: 0; padding-top: 1.3rem; border-top: 2px solid var(--pp-gold-deep, #A7823F); }
.pvc3-punt__label { display: block; margin-top: 1rem; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--pp-gold-deep, #A7823F); }
.pvc3-punt__kop { margin: .25rem 0 .55rem; font-size: clamp(1.3rem, 1rem + 1vw, 1.6rem); line-height: 1.2; color: #14130F; }
.pvc3-punt p { margin: 0; color: #46413A; line-height: 1.6; }

/* 3. twee kolommen: stof gedempt, PVC in een cx-blok met goud vlak */
.pvc3-vergelijk { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.2rem, 3vw, 2.4rem); margin-top: 2rem; align-items: start; }
.pvc3-kolom h3 { margin: 0 0 1rem; font-size: .8rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.pvc3-kolom ul { list-style: none; margin: 0; padding: 0; }
.pvc3-kolom li { display: flex; gap: .7rem; padding: .85rem 0; border-top: 1px solid var(--pp-line-soft); line-height: 1.5; font-size: .94rem; }
.pvc3-kolom li:first-child { border-top: 0; }
.pvc3-kolom li b { display: block; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; margin-bottom: .1rem; }
.pvc3-kolom i { font-style: normal; font-weight: 800; flex: none; }
.pvc3-kolom--stof { padding: 1.6rem 1.5rem; border: 1px solid var(--pp-line-soft); border-radius: 20px; color: var(--pp-muted); }
.pvc3-kolom--stof h3, .pvc3-kolom--stof b { color: #9A948A; }
.pvc3-kolom--stof i { color: #B5564B; }
.pvc3-kolom__in { position: relative; z-index: 1; padding: 1.6rem 1.5rem; border-radius: 20px; background: #1A1917; border: 1px solid rgba(196,154,84,.55); color: #F6F3EA; }
.pvc3-kolom--pvc h3, .pvc3-kolom--pvc b, .pvc3-kolom--pvc i { color: var(--cx-goud-2); }
.pvc3-kolom--pvc li { border-top-color: rgba(196,154,84,.2); }

/* 4. zijramen: lijst met iconen, video rechts */
.pvc3-ramen { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: clamp(1.6rem, 4vw, 3.6rem); align-items: center; }
.pvc3-standen { list-style: none; margin: 1.6rem 0 0; padding: 0; }
.pvc3-standen li { display: flex; gap: 1rem; align-items: flex-start; padding: 1.1rem 0; border-top: 1px solid var(--pp-line-soft); }
.pvc3-standen li:first-child { border-top: 0; }
.pvc3-standen li { border-top-color: rgba(20,19,17,.1); }
.pvc3-standen b { display: block; font-size: var(--fs-18, 1.1rem); color: #14130F; }
.pvc3-standen div span { display: block; margin-top: .2rem; color: #5A544A; line-height: 1.55; }
.pvc3 .cx-beeld__kader video { display: block; width: 100%; aspect-ratio: 9 / 10; object-fit: cover; background: #111; }

/* 5. waarom stof + prijskaartje (schaduw via filter: clip-path snijdt box-shadow weg) */
.pvc3-waarom { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(1.6rem, 4vw, 3.6rem); align-items: center; }
.pvc3-kaartje-schaduw { justify-self: center; width: min(100%, 380px); transform: rotate(-3deg); filter: drop-shadow(var(--cx-off) var(--cx-off) 0 var(--cx-goud)) drop-shadow(0 20px 30px rgba(0,0,0,.45)); }
.pvc3-kaartje { position: relative; padding: 2rem 1.8rem 1.8rem 3.4rem; background: var(--cx-paper); color: #14130F; border-radius: 0 20px 20px 0; clip-path: polygon(0 20%, 11% 0, 100% 0, 100% 100%, 11% 100%, 0 80%); }
.pvc3-kaartje__gat { position: absolute; left: 1.1rem; top: 50%; width: 14px; height: 14px; margin-top: -7px; border-radius: 50%; background: #1A1917; }
.pvc3-kaartje h3 { margin: 0 0 .5rem; font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #8A8378; }
.pvc3-kaartje p { margin: 0; font-size: 1.1rem; font-weight: 700; line-height: 1.45; }

/* 6. quote */
.pvc3-quote { margin: 0 auto; max-width: 42ch; text-align: center; }
.pvc3-quote blockquote { margin: 0; font-size: clamp(1.35rem, 1rem + 1.3vw, 1.9rem); font-weight: 800; line-height: 1.35; color: #14130F; }
.pvc3-quote blockquote::before { content: '\201C'; display: block; font-size: 4rem; line-height: .6; margin-bottom: .5rem; color: var(--pp-gold-deep, #A7823F); }
.pvc3-quote figcaption { margin-top: 1.2rem; display: grid; gap: .15rem; justify-items: center; color: #5A544A; font-size: .85rem; }

@media (max-width: 899px) {
	.pvc3-punten, .pvc3-vergelijk, .pvc3-ramen, .pvc3-waarom { grid-template-columns: minmax(0, 1fr); }
}

/* Het gouden vlak erft zijn hoeken van .cx-blok (die er geen heeft): zelf gelijkzetten
   met het blok ervoor, anders steken er rechte hoeken uit. */
.pvc3-kolom--pvc > .cx-blok__vlak { border-radius: 20px; }

/* kop: tekening van de tent in de regen */
.pvc3-regenbeeld { position: relative; aspect-ratio: 400 / 322; }
.pvc3-regen { position: absolute; inset: 0 0 12% 0; overflow: hidden; }
.pvc3-regen i { position: absolute; left: var(--x); top: -20%; width: 2px; height: 20px; border-radius: 2px; background: linear-gradient(to bottom, transparent, rgba(207,227,234,.75)); transform: rotate(10deg); animation: pvc3-val var(--d) linear var(--v) infinite; }
@keyframes pvc3-val { to { top: 110%; } }
.pvc3-tent { position: relative; display: block; width: 100%; height: auto; }
.pvc3-tent__lijf { fill: #1A1917; }
.pvc3-tent__naad path { fill: none; stroke: rgba(229,201,131,.24); stroke-width: 1.6; }
.pvc3-tent__rand { fill: none; stroke: var(--cx-goud-2); stroke-width: 3; stroke-linejoin: round; }
.pvc3-tent__logo { fill: #14130F; stroke: var(--cx-goud-2); stroke-width: 2; }
.pvc3-tent__bol { fill: var(--cx-goud-2); }
.pvc3-tent__deur { fill: #0B0A09; stroke: var(--cx-goud-2); stroke-width: 2.4; stroke-linejoin: round; }
.pvc3-tent__paal { stroke: var(--cx-goud-2); stroke-width: 3; stroke-linecap: round; }
.pvc3-tent__loper { fill: #8E2A26; }
.pvc3-tent__koord { fill: none; stroke: #B23A33; stroke-width: 3.2; stroke-linecap: round; }
.pvc3-tent__grond { stroke: rgba(229,201,131,.45); stroke-width: 2; stroke-linecap: round; }
/* Ronde, zwevende stempel (kop: "Binnen droog", vergelijking: "Beste keuze"). */
.pvc3-stempel { position: absolute; z-index: 2; display: grid; place-content: center; justify-items: center; gap: .1rem;
	width: clamp(92px, 11vw, 116px); aspect-ratio: 1; border-radius: 50%; padding: .6rem; text-align: center;
	background: linear-gradient(140deg, var(--cx-goud-2), var(--cx-goud)); color: #14130F;
	font-size: clamp(.72rem, .6rem + .35vw, .86rem); font-weight: 800; line-height: 1.15;
	box-shadow: 0 0 0 4px #100F0E, 0 0 0 5px rgba(196,154,84,.5), 0 14px 28px rgba(0,0,0,.45);
	transform: rotate(-8deg); animation: pvc3-zweef 4.5s ease-in-out infinite; }
.pvc3-stempel b, .pvc3-kolom--pvc .pvc3-stempel b { font-size: 1.35em; line-height: 1; color: #14130F; }
.pvc3-droog { right: 2%; top: 2%; }
.pvc3-stempel--keuze { top: -2.2rem; right: -1.2rem; width: clamp(84px, 9vw, 100px); box-shadow: 0 0 0 4px #1A1917, 0 0 0 5px rgba(196,154,84,.5), 0 14px 28px rgba(0,0,0,.45); }
.pvc3-kolom--pvc { margin-top: 1.2rem; }
@media (max-width: 599px) {
	.pvc3-stempel--keuze { right: -.2rem; }
	/* Op mobiel een tikje kleiner (Cas, sept 2026). */
	.pvc3-stempel { width: 80px; padding: .5rem; font-size: .68rem; }
	.pvc3-stempel--keuze { width: 74px; top: -1.8rem; }
}
@keyframes pvc3-zweef { 0%, 100% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-7px); } }
@media (max-width: 899px) {
	.pvc3-regenbeeld { max-width: 440px; margin-inline: auto; }
}
@media (prefers-reduced-motion: reduce) {
	.pvc3-regen i { animation: none; top: calc(var(--x) * .6); }
	.pvc3-stempel { animation: none; }
}

/* ---- rustiger accentwoord (PREVIEW homepage, sept 2026) ------------------
   .cx-mark stond in Josefin Sans, lichter en wijder dan de kop zelf, met een
   gouden contour eromheen. Daardoor leek het een ander lettertype midden in
   de zin. Hier is het gewoon hetzelfde woord in dezelfde letter, alleen goud. */
.cx-rustig .cx-mark { font-family: inherit; font-weight: inherit; font-size: inherit;
	line-height: inherit; letter-spacing: inherit; padding: 0;
	-webkit-text-stroke: 0; paint-order: normal; }

/* ---- PREVIEW kortere homepage ---------------------------------------------
   De pakketten tonen op mobiel gewoon alles (keuze Cas): een half pakket
   nodigt niet uit. Alleen de FAQ is ingekort, met de knop naar alle vragen. */
@media (max-width: 899px) {
	.cx-rustig .cx-faq__lijst details:nth-child(n+7) { display: none; }
}

/* Het handschrift boven de koppen blijft zoals het was: dat vindt Cas juist
   het karakter van de site. Alleen het accentwoord is rustiger gemaakt. */

/* Klikbare hero-video (PREVIEW): de hint verschijnt onderin het beeld, zodat
   duidelijk is dat er iets gebeurt als je erop klikt. */
.cx-beeld__kader--klik { display: block; position: relative; cursor: pointer; }
.cx-beeld__hint { position: absolute; left: 50%; bottom: 1rem; transform: translateX(-50%);
	display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap;
	padding: .5rem 1rem; border-radius: 999px; background: rgba(16,15,14,.82);
	border: 1px solid rgba(196,154,84,.55); color: var(--cx-goud-2);
	font-size: .78rem; font-weight: 800; letter-spacing: .02em;
	backdrop-filter: blur(4px); transition: transform .2s, background .2s; }
.cx-beeld__kader--klik:hover .cx-beeld__hint { transform: translateX(-50%) translateY(-3px); background: rgba(16,15,14,.92); }
@media (max-width: 599px) { .cx-beeld__hint { font-size: .72rem; padding: .42rem .8rem; bottom: .7rem; } }

/* ---- PREVIEW: meer afwisseling, dus ook formaten en USP's op creme --------
   Die rijen en kaarten zijn voor donker gemaakt; op creme krijgen ze een witte
   kaart, donkere tekst en een donker icoonvlak. */
.cx-rustig .cx-sec--licht .cx-maat { background: #fff; border-color: rgba(20,19,17,.12); }
.cx-rustig .cx-sec--licht .cx-maat:hover { background: rgba(196,154,84,.14); border-color: var(--pp-gold-deep, #A7823F); }
.cx-rustig .cx-sec--licht .cx-maat__naam { color: #14130F; }
.cx-rustig .cx-sec--licht .cx-maat__meta { color: #5A544A; }
.cx-rustig .cx-sec--licht .cx-maat__pers { color: var(--pp-gold-deep, #A7823F); }
.cx-rustig .cx-sec--licht .cx-props span { color: #46413A; border-color: rgba(20,19,17,.14); background: #fff; }
.cx-rustig .cx-sec--licht .cx-props span svg { color: var(--pp-gold-deep, #A7823F); }
.cx-rustig .cx-sec--licht .cx-form__foto { border-color: rgba(20,19,17,.12); }
.cx-rustig .cx-sec--licht .cx-usp { background: #fff; border-color: rgba(20,19,17,.1); }
.cx-rustig .cx-sec--licht .cx-usp h3 { color: #14130F; }
.cx-rustig .cx-sec--licht .cx-usp p { color: #46413A; }
.cx-rustig .cx-sec--licht .cx-usp__icoon { background: #14130F; color: var(--cx-goud-2); }

/* ---- PREVIEW: drie donkere sectievarianten als alternatief voor creme -----
   1 paneel  : grijzig antraciet met een dunne gouden lijn boven en onder
   2 goudtint: hetzelfde vlak als de PVC-bar, iets warmer
   (de variant "diep" (#0B0A09) is er weer uit: volledig zwart is te hard)
   Tekst en kaarten blijven de donkere opmaak gebruiken, dus niets te fixen. */
.cx-sec--paneel { background: #1F1D1A; border-block: 1px solid rgba(196,154,84,.35); }
/* De goudtint stond op .20 en oogde daardoor bleek, bijna beige. De live site
   gebruikt .10 aflopend naar .02; dit zit daar dichtbij, met een donkere basis
   eronder zodat het diep goud blijft in plaats van licht. */
.cx-sec--goud { background-color: #14120F;
	background-image: linear-gradient(180deg, rgba(196,154,84,.11), rgba(196,154,84,.04) 70%, rgba(196,154,84,.02)); }

/* ==========================================================================
   PREVIEW: Figtree als huisletter (21 sep 2026)
   Alleen op /home-preview/, herkenbaar aan de body-class van WordPress. Het
   handschrift (Caveat) blijft staan; het accentwoord wordt gewoon dezelfde
   letter, schuin en goud, in plaats van een tweede lettertype met een contour.
   ========================================================================== */
body,
body *:not(.cx-hand):not(.cx-hand *):not(.cx-label):not(.cxfp__label) {
	font-family: 'Figtree', system-ui, sans-serif;
}
/* De cookiebanner van CookieYes en de reviewwidget van Trustindex brengen hun
   eigen lettertype mee. Hier alleen de letter gelijkgetrokken; de vormgeving
   van de banner pakken we apart aan. */
.cky-consent-container *,
.cky-modal * { font-family: 'Figtree', system-ui, sans-serif !important; }
/* De reviewwidget van Trustindex brengt zijn eigen Poppins mee. */
.ti-widget,
.ti-widget * { font-family: 'Figtree', system-ui, sans-serif !important; }
/* De labelregels staan weer in Figtree, net als de rest van de pagina. */
.cx-hand,
.cx-label,
.cxfp__label { font-family: 'Figtree', system-ui, sans-serif; }

/* Het accentwoord: dezelfde letter, schuin en goud. Geen contour, geen
   afwijkende regelhoogte, dus de kop blijft één geheel. */
.cx-mark {
	font-style: italic;
	font-weight: inherit;
	font-size: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	padding: 0;
	color: var(--cx-goud-2);
	-webkit-text-stroke: 0;
	paint-order: normal;
}
.cx-hero__tagline { font-weight: 600; }

/* ==========================================================================
   PREVIEW: de typografie afgestemd op Figtree (21 sep 2026)
   Figtree heeft een hogere x-hoogte en rondere vormen dan Montserrat. Bij
   dezelfde instellingen oogt de tekst daardoor groter en de koppen losser.
   Hieronder staan de correcties: koppen strakker, lopende tekst iets rustiger.
   ========================================================================== */
/* Gemeten naast de live homepage (mobiel 375 px): de koppen stonden op exact
   dezelfde pixelmaat, maar Figtree is iets smaller dan Montserrat en ik had de
   letterruimte strakker gezet (-0,77 px tegen -0,44 px) met een kortere
   regelafstand. Daardoor oogden ze kleiner. Nu dezelfde letterruimte en
   regelafstand als live, plus 4% grootte erbij zodat ze optisch gelijk lopen. */
.cx-hero__display,
p.cx-hero__display {
	font-size: clamp(2.55rem, 1.45rem + 3.55vw, 3.43rem);
	letter-spacing: -.02em; line-height: 1.14; font-weight: 800; }
.cx-h2 {
	font-size: clamp(1.92rem, 1.25rem + 2.7vw, 3.12rem);
	letter-spacing: -.015em; line-height: 1.05; }
.cx-h3 { letter-spacing: -.015em; line-height: 1.1; }
body p,
body li { line-height: 1.62; }
.cx-kop__tekst,
.cx-hero__sub { color: rgba(246,243,234,.74); }
.cx-sec--licht .cx-kop__tekst { color: #4A443B; }
/* Kapitale labels hebben in Figtree iets meer lucht nodig om niet te plakken. */
.cx-link,
.cx-eyebrow { letter-spacing: .12em; }

/* ---- Eén knopstijl, zonder verloop en zonder harde slagschaduw ------------
   Het verloop plus de 5 px zwarte blokschaduw gaf de knoppen een speelgoed-
   uitstraling. Vlak goud met een donkere rand leest rustiger en duurder; de
   knop beweegt bij hover nog steeds, dus hij blijft voelen als een knop. */
.cx-btn { border-width: 1px; }
.cx-btn--goud {
	background: var(--cx-goud-2); background-image: none; box-shadow: none;
	border-color: rgba(20,19,17,.25); }
.cx-btn--goud:hover {
	transform: none; background: var(--cx-goud); box-shadow: none; }
.cx-btn--zwart {
	background: #14130F; box-shadow: none; border-color: rgba(196,154,84,.45); }
.cx-btn--zwart:hover {
	transform: none; box-shadow: none; border-color: var(--cx-goud-2); }

/* ---- Kenmerken als vlakke labels in plaats van gevulde pillen ------------- */
.cx-props span {
	background: none; border: 1px solid rgba(246,243,234,.16); box-shadow: none; }
.cx-sec--licht .cx-props span {
	border-color: rgba(20,19,17,.18); }

/* ==========================================================================
   PREVIEW: labelregels in plaats van handschrift (21 sep 2026)
   Boven elke kop stond een handgeschreven regel in Caveat. Die is vervangen
   door hetzelfde label als in de hero: een kort gouden streepje en dan de
   tekst in kapitalen. Eén letter, één vorm, over de hele pagina.
   De ACF-teksten blijven dezelfde, ze worden alleen anders getoond.
   ========================================================================== */
.cx-hand,
.cx-label {
	display: inline-flex; align-items: center; gap: .6rem;
	font-family: 'Figtree', system-ui, sans-serif; font-size: .72rem; font-weight: 700;
	letter-spacing: .16em; text-transform: uppercase; color: var(--cx-goud-2);
	transform: none; margin: 0 0 .9rem; }
/* Een kort streepje voor de handgeschreven regel, op de hoogte van het
   midden van de letters. */
.cx-hand::before,
.cx-label::before,
.cxfp__label::before {
	content: ''; flex: none; width: 16px; height: 2px; background: currentColor;
	-webkit-mask: none; mask: none; }
.cx-kop--mid .cx-hand { justify-content: center; }
.cx-sec--licht .cx-hand,
.cx-sec--licht .cx-label { color: var(--pp-gold-deep); }

/* De grote regel onder de H1 is nu een <p>, dus hij moet de maatvoering van
   de oude kop overnemen. */
p.cx-hero__display {
	font-size: clamp(2.55rem, 1.45rem + 3.55vw, 3.43rem); font-weight: 800;
	line-height: 1.14; letter-spacing: -.02em; max-width: 17ch; margin: 0; }

/* Het accentwoord op de crèmesectie stond in het lichte goud en verdween
   daardoor bijna in de achtergrond. Op licht gebruiken we het diepe goud. */
.cx-sec--licht .cx-mark { color: var(--pp-gold-deep); }

/* ==========================================================================
   PREVIEW: afgeronde events als cases + iets grotere lopende tekst
   ========================================================================== */
/* Figtree oogt bij dezelfde pixelmaat kleiner dan Montserrat. De hele schaal
   voor lopende tekst gaat daarom 7% omhoog; koppen blijven ongemoeid. */
body {
	--fs-14: .94rem;
	--fs-15: 1.02rem;
	--fs-16: 1.07rem;
	--fs-18: clamp(1.14rem, 1.05rem + .3vw, 1.2rem);
}
.cx-hero__sub,
.cx-kop__tekst,
.cx-faq__lijst p { font-size: 1.07rem; }

.cxcase-kop { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.cxcase-kop .cx-kop { margin-bottom: 1.6rem; }
.cxcase-kop__btn { display: none; flex: none; }
.cxcase-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.cxcase { display: block; min-width: 0; text-decoration: none; color: inherit;
	border: 1px solid rgba(246,243,234,.14); border-radius: 12px; overflow: hidden;
	background: rgba(246,243,234,.02); transition: border-color .15s; }
.cxcase:hover { border-color: var(--cx-goud-2); }
.cxcase__foto { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.cxcase__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cxcase__tekst { display: block; padding: .85rem .9rem 1rem; }
.cxcase__label { display: block; font-size: .64rem; font-weight: 700; letter-spacing: .14em;
	text-transform: uppercase; color: var(--cx-goud-2); }
.cxcase__titel { display: block; margin-top: .35rem; font-size: .95rem; font-weight: 700;
	line-height: 1.25; letter-spacing: -.01em; }
.cxcase-onder { margin-top: 1.6rem; }

@media (min-width: 900px) {
	.cxcase-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
	.cxcase__titel { font-size: 1.05rem; }
	.cxcase-kop__btn { display: inline-flex; }
	.cxcase-onder { display: none; }
}

/* ==========================================================================
   PREVIEW: afgeronde events als cases + iets grotere lopende tekst
   ========================================================================== */
/* Figtree oogt bij dezelfde pixelmaat kleiner dan Montserrat. De hele schaal
   voor lopende tekst gaat daarom 7% omhoog; koppen blijven ongemoeid. */
body {
	--fs-14: .94rem;
	--fs-15: 1.02rem;
	--fs-16: 1.07rem;
	--fs-18: clamp(1.14rem, 1.05rem + .3vw, 1.2rem);
}
.cx-hero__sub,
.cx-kop__tekst,
.cx-faq__lijst p { font-size: 1.07rem; }

.cxcase-kop { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; }
.cxcase-kop .cx-kop { margin-bottom: 1.6rem; }
.cxcase-kop__btn { display: none; flex: none; }
.cxcase-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.cxcase { display: block; min-width: 0; text-decoration: none; color: inherit;
	border: 1px solid rgba(246,243,234,.14); border-radius: 12px; overflow: hidden;
	background: rgba(246,243,234,.02); transition: border-color .15s; }
.cxcase:hover { border-color: var(--cx-goud-2); }
.cxcase__foto { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.cxcase__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cxcase__tekst { display: block; padding: .85rem .9rem 1rem; }
.cxcase__label { display: block; font-size: .64rem; font-weight: 700; letter-spacing: .14em;
	text-transform: uppercase; color: var(--cx-goud-2); }
.cxcase__titel { display: block; margin-top: .35rem; font-size: .95rem; font-weight: 700;
	line-height: 1.25; letter-spacing: -.01em; }
.cxcase-onder { margin-top: 1.6rem; }

@media (min-width: 900px) {
	.cxcase-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
	.cxcase__titel { font-size: 1.05rem; }
	.cxcase-kop__btn { display: inline-flex; }
	.cxcase-onder { display: none; }
}

/* PREVIEW: de vier stappen vlak. Live zijn het witte dozen met een zwarte
   rand en een blokschaduw van 8 px, en staan de even kaarten 1,6rem lager.
   Hier: hetzelfde raster, maar rustig en op de telefoon twee naast twee. */
.cx-stappen {
	grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; gap: .8rem; padding-bottom: 0; }
/* De gouden blokschaduw komt uit een regel met vier klassen, dus hier moet
   .cx-page erbij om er overheen te gaan. */
/* De stappenkaarten (B2B, fotobooth, stadspagina's): wit met een haarlijn,
   zonder blokschaduw en zonder de gouden plaat erachter. Het nummer is een
   klein goudkleurig label, de tekst staat in de donkere inktkleur. */
.cx-page > .cx-sec .cx-stap,
.cx-sec--donker .cx-stap,
.cx-page > .cx-sec:not(.cx-sec--licht) .cx-stap {
	position: static; background: #fff; border: 1px solid rgba(20,19,17,.1);
	border-radius: 12px; box-shadow: none; padding: 1.2rem 1.1rem 1.3rem; }
.cx-page > .cx-sec .cx-stap:hover,
.cx-sec--donker .cx-stap:hover,
.cx-page > .cx-sec:not(.cx-sec--licht) .cx-stap:hover {
	transform: none; box-shadow: none; border-color: rgba(196,154,84,.65); }
.cx-stap__punt { display: none; }
.cx-stap__nr {
	font-size: .78rem; font-weight: 700; letter-spacing: .14em; color: var(--pp-gold-deep);
	margin-bottom: .55rem; }
.cx-page .cx-stap h3 { color: #14130F; font-size: 1rem; }
.cx-page .cx-stap p { color: #5A544A; font-size: .88rem; }
@media (min-width: 900px) {
	.cx-stappen { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; }
}

/* ==========================================================================
   PREVIEW: de vier stappen als route (21 sep 2026)
   Witte kaarten met het nummer in een gouden rondje dat half over de bovenrand
   hangt, en een gouden pijl tussen de stappen. Mobiel van boven naar beneden,
   vanaf 900 px van links naar rechts.
   ========================================================================== */
.pvstap { list-style: none; display: grid; gap: 2.4rem; margin: 0; padding: 0; }
.pvstap__item { position: relative; background: #fff; border: 1px solid rgba(20,19,17,.1);
	border-radius: 16px; padding: 1.5rem 1.3rem 1.4rem; min-width: 0; }
/* Het nummer hangt half over de rand, als een stempel op de kaart. */
.pvstap__nr { position: absolute; top: -18px; left: 1.3rem; display: grid; place-content: center;
	width: 36px; height: 36px; border-radius: 50%; background: var(--cx-goud);
	color: #14130F; font-size: 1.05rem; font-weight: 800; }
.pvstap__titel { margin: .7rem 0 .4rem; font-size: 1.05rem; font-weight: 800; color: #14130F;
	letter-spacing: -.015em; }
.pvstap__uitleg { margin: 0; font-size: .92rem; line-height: 1.55; color: #5A544A; }
/* Tussen twee stappen een gestippelde lijn met een lichte waas, zodat hij de
   volgorde aangeeft zonder de aandacht te pakken. */
.pvstap__item::after { content: ''; position: absolute; left: 50%; bottom: -1.95rem;
	width: 3px; height: 1.5rem; transform: translateX(-50%);
	background-image: linear-gradient(rgba(154,120,56,.85) 45%, transparent 0);
	background-size: 3px 9px; filter: blur(.7px); opacity: .85; }
.pvstap__item:last-child::after { content: none; }
.pvstap__voet { display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
	gap: .9rem 1.4rem; margin-top: 3rem; }
.pvstap__voet span { font-size: .82rem; font-weight: 600; color: #5A544A; }

@media (min-width: 900px) {
	.pvstap { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.6rem; }
	.pvstap__item::after { left: auto; right: -2.05rem; bottom: auto; top: 50%;
		width: 1.5rem; height: 3px; transform: translateY(-50%);
		background-image: linear-gradient(90deg, rgba(154,120,56,.85) 45%, transparent 0);
		background-size: 9px 3px; }
}

/* De hoofdknop krijgt een zachte gloed in zijn eigen kleur, zodat hij van het
   donker af komt zonder dat het een neonknop wordt. Alleen de gouden knop;
   de lijnknop en de tekstlinks blijven vlak. */
.cx-btn--goud,
.cxh__cta,
.cxh__cta-mob {
	box-shadow: 0 8px 26px -8px rgba(196,154,84,.55); }
.cx-btn--goud:hover,
.cxh__cta:hover,
.cxh__cta-mob:hover {
	box-shadow: 0 10px 30px -8px rgba(196,154,84,.7); }

/* ==========================================================================
   PREVIEW: "voor elk type feest" (21 sep 2026)
   Links de video in het gouden kader, rechts de kop en één lopende tekst
   waarin alle soorten avonden voorkomen.
   ========================================================================== */
.cxgel { display: grid; gap: 2rem; align-items: center; }
.cxgel__beeld { --cx-off: 9px; border-radius: 20px; }
.cxgel__beeld > .cx-blok__vlak { border-radius: 20px; }
/* Eigen achtergrond, anders schijnt het gouden vlak erachter door zolang de
   video nog niet is ingeladen. */
.cxgel__kader { position: relative; margin: 0; border-radius: 20px; overflow: hidden;
	border: 3px solid rgba(20,19,17,.9); background: #14130F; }
.cxgel__kader video, .cxgel__kader img { display: block; width: 100%; aspect-ratio: 4 / 5;
	object-fit: cover; }
.cxgel__tekst .cx-kop { margin-bottom: 1.3rem; }
.cxgel__verhaal { margin: 0; font-size: 1.07rem; line-height: 1.68; color: var(--pp-muted); }
.cxgel__cta { margin-top: 1.9rem; }

@media (min-width: 900px) {
	.cxgel { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 3.2rem; }
}

/* Voetnoot onder de maatrijen: klein en gedempt, het is een verduidelijking
   en geen verkoopargument. */
.cx-maten__noot { margin: .9rem 0 0; font-size: .78rem; color: rgba(246,243,234,.5); }
.cx-sec--licht .cx-maten__noot { color: #6B655B; }

/* ==========================================================================
   PREVIEW: nieuwe footer (21 sep 2026)
   Adviesblok met twee contactkaarten, daaronder vier kolommen en een
   onderbalk. Vlakke kaders met een haarlijn, geen gouden platen.
   ========================================================================== */
.cxfp__adviesrand { padding-block: clamp(2.2rem, 4vw, 3.4rem); }
/* Het adviesblok is een eigen paneel binnen de footercontainer, met een
   haarlijn eromheen; de twee contactkaarten liggen daar weer een tint
   donkerder in, zodat de nesting te zien is. */
.cxfp__advies { display: grid; gap: 2rem; border: 1px solid rgba(246,243,234,.12);
	border-radius: 22px; background: rgba(246,243,234,.03);
	padding: clamp(1.6rem, 3.2vw, 2.6rem); }
.cxfp__label { display: inline-flex; align-items: center; gap: .6rem;
	font-family: 'Figtree', system-ui, sans-serif; font-size: .72rem; font-weight: 700;
	letter-spacing: .16em; text-transform: uppercase; color: var(--cx-goud-2); margin-bottom: .9rem; }
.cxfp__label::before { content: ''; flex: none; width: 16px; height: 2px; background: currentColor; }
p.cxfp__titel,
.cxfp__titel { margin: 0; font-size: clamp(1.7rem, 1.2rem + 2.2vw, 2.6rem); font-weight: 800;
	letter-spacing: -.026em; line-height: 1.06; }
.cxfp__titel em { font-style: italic; color: var(--cx-goud-2); }
.cxfp__tekst { margin: 1rem 0 0; max-width: 52ch; color: var(--pp-muted); line-height: 1.62; }
.cxfp__kaarten { display: grid; gap: 1rem; align-content: start; }
.cxfp__kaart { border: 1px solid rgba(246,243,234,.12); border-radius: 16px;
	background: rgba(14,13,11,.55); padding: 1.3rem 1.3rem 1.4rem; }
.cxfp__kaart-kop { margin: 0 0 .55rem; font-size: 1rem; font-weight: 800; letter-spacing: -.01em;
	color: #F6F3EA; }
.cxfp__kaart-tekst { margin: 0 0 .9rem; font-size: .88rem; line-height: 1.55; color: var(--pp-muted); }
.cxfp__kaart-link { font-size: .88rem; font-weight: 700; color: var(--cx-goud-2); text-decoration: none; }
.cxfp__kaart-link:hover { color: #F6F3EA; }

.cxfp__grid { display: grid; gap: 2.4rem; padding-block: clamp(2.2rem, 4vw, 3rem);
	border-top: 1px solid rgba(246,243,234,.12); }
.cxfp__adres { margin: 1.1rem 0 .8rem; font-size: .86rem; line-height: 1.6; color: var(--pp-muted); }
.cxfp__adres strong { color: rgba(246,243,234,.9); }
.cxfp__klein { margin: 0 0 1.2rem; font-size: .78rem; line-height: 1.6; color: rgba(246,243,234,.45); }
.cxfp__col .cxfp__kop,
.cxfp__col .cxfp__kop { font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	color: var(--cx-goud-2); margin: 0 0 1rem; display: flex; align-items: center; gap: .6rem; }
/* Geen streepje voor de kolomlabels: dat hoort bij de sectielabels. */
.cxfp__col .cxfp__kop::before { content: none; }
.cxfp__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.cxfp__col a { color: rgba(246,243,234,.78); text-decoration: none; font-size: .92rem; }
.cxfp__col a:hover { color: var(--cx-goud-2); }
.cxfp__contact li { display: grid; grid-template-columns: 26px minmax(0,1fr); gap: .7rem; align-items: start; }
/* Ook de regel zonder link op dezelfde maat als de links ernaast. */
.cxfp__contact li > span { font-size: .92rem; line-height: 1.5; }
.cxfp__contact em { display: block; margin-top: .15rem; font-style: normal; font-size: .78rem;
	color: rgba(246,243,234,.45); }
.cxfp__col a.cxfp__score,
.cxfp__score { display: inline-flex; align-items: center; gap: .6rem; margin-top: 1.4rem;
	border: 1px solid rgba(246,243,234,.14); border-radius: 12px; padding: .6rem .9rem;
	font-size: .82rem; color: rgba(246,243,234,.75); text-decoration: none; }
.cxfp__score:hover { border-color: var(--cx-goud-2); }
.cxfp__score strong { color: #F6F3EA; }
.cxfp__sterren { color: var(--cx-goud-2); letter-spacing: .08em; }
.cxfp .cxf__bar-in a { color: rgba(246,243,234,.6); text-decoration: none; }
.cxfp .cxf__bar-in a:hover { color: var(--cx-goud-2); }

@media (min-width: 760px) {
	.cxfp__kaarten { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 980px) {
	.cxfp__advies { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3.5rem; align-items: start; }
	.cxfp__grid { grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 3rem; }
}

/* De tweede actie naast de hoofdknop stond in kapitalen met veel letterruimte;
   dat leest als een label in plaats van als een link. */
.cx-link {
	text-transform: none; letter-spacing: .01em; font-size: .95rem; font-weight: 700; }

/* PREVIEW: ivoor in plaats van crème voor de lichte secties. Warm maar bijna
   wit, zodat de witte kaarten er nog net op uitkomen. Eén variabele, dus alles
   wat crème gebruikte (achtergrond, randen, het vlak achter cijfers) loopt mee.
   Bevalt het niet, dan is koel lichtgrijs #F3F2EF de volgende stap. */
.cx-page, .cxf, .cxfp, .cx-funnel {
	--cx-paper: #F3F2EF;
	--cx-paper-2: #E8E7E3;
}

/* PREVIEW: het tierwoord boven de pakketnaam klein houden. Stond in Caveat op
   1,35rem en werd met Figtree een tweede kop naast de pakketnaam. Deze regel
   was eerder gesneuveld bij een blokvervanging; daarom staat hij nu apart. */
.cx-pakkaart__tier {
	font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	line-height: 1.2; color: var(--cx-goud-2); }

/* De rij met locaties en artikelen onderaan de footer: één regel per groep,
   links in de gedempte tekstkleur. Puur voor de interne links, dus rustig. */
.cxfp__ontdek { display: grid; gap: .6rem; padding-block: 1.2rem;
	border-top: 1px solid rgba(246,243,234,.1); }
.cxfp__ontdek-rij { font-size: .78rem; line-height: 1.7; color: rgba(246,243,234,.4); }
.cxfp__ontdek-kop { display: block; font-size: .68rem; font-weight: 700; letter-spacing: .14em;
	text-transform: uppercase; color: rgba(246,243,234,.5); margin-bottom: .2rem; }
.cxfp__ontdek-rij a { color: rgba(246,243,234,.55); text-decoration: none; }
.cxfp__ontdek-rij a:hover { color: var(--cx-goud-2); }
/* De verzamelpagina is de ingang naar alle plaatsen, dus die mag opvallen
   tussen de vijf losse steden. */
.cxfp__ontdek-rij a.cxfp__ontdek-meer { font-weight: 800; color: var(--cx-goud-2);
	border-bottom: 1px solid rgba(196,154,84,.4); padding-bottom: 1px; }
.cxfp__ontdek-rij a.cxfp__ontdek-meer:hover { border-bottom-color: var(--cx-goud); }

/* ==========================================================================
   De cijferkaarten ("in cijfers") recht en in één stijl (21 sep 2026)
   Ze stonden elk een graad gedraaid, met vier verschillende vlakken (wit,
   goud, zwart, wit) en een blokschaduw van 7 px. Nu vier gelijke kaarten met
   een haarlijn; het goud zit alleen nog in het kleine label.
   ========================================================================== */
.cx-spec,
.cx-spec:nth-child(1),
.cx-spec:nth-child(2),
.cx-spec:nth-child(3),
.cx-spec:nth-child(4) {
	background: #fff; background-image: none; border: 1px solid rgba(20,19,17,.1);
	border-radius: 12px; box-shadow: none; transform: none; }
.cx-spec__label,
.cx-spec:nth-child(2) .cx-spec__label,
.cx-spec:nth-child(3) .cx-spec__label {
	font-family: 'Figtree', system-ui, sans-serif; font-size: .7rem; font-weight: 700;
	letter-spacing: .16em; text-transform: uppercase; line-height: 1.2;
	color: var(--pp-gold-deep); margin-bottom: .55rem; }
.cx-spec__waarde,
.cx-spec:nth-child(3) .cx-spec__waarde { color: #14130F; }
.cx-spec__extra,
.cx-spec:nth-child(3) .cx-spec__extra { color: #5A544A; }
.cx-spec__vlag { background: var(--cx-goud); color: #14130F; border: 0; }

/* De labelregel bleef op gecentreerde koppen gedraaid staan: die rotatie
   kwam uit de oude handgeschreven stijl en won op specificiteit. Alle labels
   staan nu recht, ook in de footer en op de stadspagina's. */
.cx-kop .cx-hand,
.cx-kop--mid .cx-hand,
.cx-hand, .cx-label, .cxfp__label { transform: none; }

/* Verder nergens meer gedraaide elementen: het badgetje boven het aanbevolen
   pakket, de handgeschreven regels die nog in de footer en op de
   stadspagina's stonden, en de punchregel. Alles recht en in Figtree. */
.cx-pakkaart__vlag { transform: none; }
.cxf__hand, .cx-punch {
	transform: none; font-family: 'Figtree', system-ui, sans-serif; }
.cxf__hand { font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.cx-punch { font-size: clamp(1.05rem, .95rem + .5vw, 1.25rem); font-weight: 700; letter-spacing: -.01em; }

/* Niets meer scheef: de labelregel in elke hero (ook B2B en fotobooth), de
   zwevende stickers en hun hover. Eén regel met genoeg gewicht, zodat de
   oudere rotaties er niet meer doorheen komen. */
.cx-page .cx-hero__label .cx-hand,
.cx-page .cx-kop--mid .cx-hand,
.cx-page .cx-hand,
.cx-page .cx-label { transform: none; }
.cx-page .cx-st--lb,
.cx-page .cx-st--rm,
.cx-page .cx-st--lo,
.cx-page .cx-st--wit:hover,
.cx-b2bhero .cx-st--lb,
.cx-fohero .cx-st--lb { transform: none; }
.cx-page .cx-st--wit:hover { transform: scale(1.02); }

/* De labelregel in de hero stond nog op de oude, grote handschriftmaat
   (tot 1,3rem). Overal dezelfde maat als de andere labels. */
.cx-page .cx-hero__label .cx-hand,
.cx-page .cx-faq__zij .cx-hand,
.cx-page .cx-kop .cx-hand {
	font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	line-height: 1.2; }

/* Stadspagina: de lokale tekst staat op licht (21 sep 2026), zodat de
   onderste secties afwisselen. De tekstkleuren waren op donker afgestemd. */
.cx-sec--licht.cx-stadtekst .cx-prose { color: #5A544A; }
.cx-sec--licht.cx-stadtekst .cx-prose h2,
.cx-sec--licht.cx-stadtekst .cx-prose h3,
.cx-sec--licht.cx-stadtekst .cx-prose strong { color: #14130F; }
.cx-sec--licht.cx-stadtekst .cx-prose a { color: #8A6A22; }
.cx-sec--licht.cx-stadtekst .cx-stad__meer { color: #5A544A; }
.cx-sec--licht.cx-stadtekst .cx-stad__meer a { color: #8A6A22; }
.cx-sec--licht.cx-stadtekst .cx-stad__omliggend { background: #fff;
	border-color: rgba(20,19,17,.1); }
.cx-sec--licht.cx-stadtekst .cx-stad__omliggend h3 { color: #14130F; }
.cx-sec--licht.cx-stadtekst .cx-stad__omliggend p { color: #5A544A; }

/* Funnel: "per stuk" onder de prijs in plaats van ernaast (21 sep 2026). */
/* Absoluut eronder, zodat de prijs zelf even hoog blijft als het bolletje. */
.cx-funnel .pp-bk-extra__price { position: relative; }
.cx-funnel .pp-bk-extra__price .pp-bk-extra__per { position: absolute; top: 100%; right: 0;
	margin-top: .05rem; font-size: .7rem; line-height: 1.2; white-space: nowrap; }

/* Footer: icoon voor de kop van de twee contactkaarten (22 sep 2026). */
.cxfp__kaart-kop { display: flex; align-items: center; gap: .65rem; }
.cxfp__kaart-ic { display: grid; place-content: center; width: 32px; height: 32px; flex: none;
	border-radius: 9px; background: rgba(196,154,84,.16); color: var(--cx-goud-2); }
.cxfp__kaart-ic svg { width: 16px; height: 16px; }

/* ==========================================================================
   Pakketten: bij het uitgelichte pakket loopt een gouden lichtje langzaam
   rond over de rand, met een zachte gloed die meebeweegt (22 sep 2026).
   De rand zelf is een ronddraaiend verloop (conic-gradient); de hoek wordt
   geanimeerd via @property. Browsers zonder @property tonen een stilstaande
   gouden rand. Bij "minder beweging" staat alles stil.
   ========================================================================== */
@property --ppt-hoek { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes ppt-randloop { to { --ppt-hoek: 360deg; } }

.cx-pakkaart--top .cx-pakkaart__in {
	border: 2px solid transparent;
	background:
		linear-gradient(168deg, rgba(196,154,84,.09), rgba(196,154,84,0) 42%) padding-box,
		linear-gradient(var(--pp-surface-2), var(--pp-surface-2)) padding-box,
		conic-gradient(from var(--ppt-hoek),
			rgba(196,154,84,.5) 0deg, rgba(196,154,84,.5) 225deg,
			#FFF0C2 290deg, rgba(196,154,84,.5) 355deg) border-box;
	animation: ppt-randloop 7s linear infinite;
}
/* De gloed ligt tussen het gouden plaatje en de kaart: het midden valt
   achter de kaart weg, alleen de rand eromheen licht zacht op. */
.cx-pakkaart--top::after {
	content: ''; position: absolute; inset: -4px; z-index: 0; border-radius: 20px;
	pointer-events: none; opacity: .75; filter: blur(14px);
	background: conic-gradient(from var(--ppt-hoek),
		transparent 0deg, transparent 230deg, rgba(247,228,170,.95) 290deg, transparent 350deg);
	animation: ppt-randloop 7s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
	.cx-pakkaart--top .cx-pakkaart__in,
	.cx-pakkaart--top::after { animation: none; }
}

/* Lijnknop: de rand heeft altijd dezelfde kleur als de knoptekst, ook bij
   hover en op lichte secties (22 sep 2026, wens Cas). */
.cx-btn--lijn,
.cx-btn--lijn:hover,
.cx-sec--licht .cx-btn--lijn,
.cx-sec--licht .cx-btn--lijn:hover,
.cx-forekens .cx-btn--lijn,
.cx-tfpast__tip .cx-btn--lijn { border-color: currentColor; }

/* Events-sectie: de knop rechts staat op dezelfde hoogte als de kop, niet
   als het label (22 sep 2026). Label, kop en tekst worden rijen in hetzelfde
   raster als de knop; de knop zit in de rij van de kop en centreert daarop,
   ook als de kop over twee regels loopt. Onder 900 px staat de knop onder
   de kaarten, daar geldt dit niet. */
@media (min-width: 900px) {
	.cxcase-kop { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 2rem; row-gap: 0;
		align-items: center; margin-bottom: 1.6rem; }
	.cxcase-kop > div,
	.cxcase-kop .cx-kop { display: contents; }
	.cxcase-kop .cx-hand { grid-column: 1; grid-row: 1; justify-self: start; }
	.cxcase-kop .cx-h2 { grid-column: 1; grid-row: 2; max-width: 720px; }
	.cxcase-kop .cx-kop__tekst { grid-column: 1; grid-row: 3; max-width: 720px; }
	.cxcase-kop__btn { grid-column: 2; grid-row: 2; align-self: center; }
}

/* Afsluitende CTA: het accentwoord krijgt een zachte gouden gloed, zodat de
   kop oplicht zonder dat er iets beweegt (22 sep 2026, na de spotlights die
   te druk waren). Alleen in het slotblok, niet bij de andere accentwoorden. */
.cx-slot h2 .cx-mark {
	text-shadow: 0 0 18px rgba(229,201,131,.45), 0 0 44px rgba(196,154,84,.28);
}

/* ==========================================================================
   Eventpagina: kop
   Mobiel leest van boven naar beneden zoals het in de opmaak staat: eerst het
   kruimelpad, dan het sfeerbeeld, dan de tekst. Vanaf 900 px staat het
   kruimelpad bovenaan over de volle breedte, met de tekst links en het beeld
   rechts (25 sep 2026, wens Cas).
   ========================================================================== */
.cx-event-kop { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1.4rem, 4vw, 2.2rem); }
.cx-event-kop__kruimel { margin-bottom: 0; }
.cx-event-kop .cx-beeld { margin-top: 0; }
@media (min-width: 900px) {
	/* De tekst begint bovenaan, direct onder het kruimelpad. Stond hij
	   gecentreerd, dan viel er bij een kort verhaal een gat onder de kruimels
	   omdat de foto ernaast veel hoger is. De foto blijft wel gecentreerd. */
	.cx-event-kop { grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
		column-gap: clamp(1.6rem, 4vw, 3.4rem); row-gap: 1.1rem; align-items: start; }
	.cx-event-kop__beeld { align-self: center; }
	.cx-event-kop__kruimel { grid-column: 1 / -1; grid-row: 1; }
	.cx-event-kop__tekst { grid-column: 1; grid-row: 2; }
	.cx-event-kop__beeld { grid-column: 2; grid-row: 2; }
}

/* Eventoverzicht: korte tekst onder de kop (25 sep 2026). */
.cx-paginahero__sub { max-width: 62ch; margin: 1rem 0 0; color: var(--pp-muted); font-size: 1.05rem; line-height: 1.6; }

/* Het verhaalblok op de stadspagina's. Donkere sectie tussen de reviews en de
   FAQ, zodat er niet drie lichte vlakken achter elkaar staan. */
.cx-stadverhaal .cx-h3 { color: var(--pp-white); margin-bottom: 1.1rem; }
.cx-stadverhaal p { max-width: 72ch; margin: 0 0 1.1rem; color: var(--pp-muted);
	font-size: 1.02rem; line-height: 1.75; }
.cx-stadverhaal p:last-child { margin-bottom: 0; }
.cx-stadverhaal__introlijst { margin: 1.6rem 0 .8rem; font-size: 1.02rem; font-weight: 700;
	color: var(--cx-goud-2); }
.cx-stadverhaal__lijst { list-style: none; margin: 0 0 1.4rem; padding: 0; display: grid;
	gap: .5rem 1.6rem; grid-template-columns: minmax(0, 1fr); max-width: 72ch; }
@media (min-width: 620px) { .cx-stadverhaal__lijst { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cx-stadverhaal__lijst li { position: relative; padding-left: 1.3rem; color: var(--pp-muted);
	font-size: .97rem; line-height: 1.6; }
.cx-stadverhaal__lijst li::before { content: ''; position: absolute; left: 0; top: .6rem;
	width: .45rem; height: .45rem; border-radius: 50%; background: var(--cx-goud); }
.cx-stadverhaal__grid { display: grid; gap: clamp(1.6rem, 4vw, 3rem); align-items: start;
	grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) {
	.cx-stadverhaal__grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); align-items: center; }
}
.cx-stadverhaal__tekst { min-width: 0; }

/* De link naar het algemene aanbod onder het stadsverhaal. Donkere sectie, dus
   goud in plaats van bruin, net als bij .cx-stadtekst .cx-stad__meer. */
.cx-stadverhaal__meer { margin: 1.2rem 0 0; font-size: .95rem; color: var(--pp-muted); }
.cx-stadverhaal__meer a { color: var(--cx-goud-2); font-weight: 700; text-underline-offset: 3px; }
.cx-stadverhaal__meer a:hover { color: var(--cx-goud); }
/* Zelfde opbouw als het hero-beeld: de gouden vorm erft de ronding van de
   container, dus die moet hier ook staan. Alleen de verhouding wijkt af,
   want naast tekst staat een vierkant beeld rustiger dan een staand. */
.cx-stadverhaal__beeld { position: relative; min-width: 0; border-radius: 30px; }
.cx-stadverhaal__beeld .cx-beeld__kader { display: block; }
.cx-stadverhaal__beeld img { aspect-ratio: 1 / 1; }
@media (max-width: 899px) { .cx-stadverhaal__beeld img { aspect-ratio: 16 / 10; } }

/* ---- servicebadge over het hero-beeld (6 okt 2026) ----------------------
   Geen pil maar een balk over de bovenkant van de foto, met een verloop dat
   naar beneden wegvalt. Rustiger dan een vlak: er komt geen extra vorm bij in
   een hero die al een badge, een slogan, een knop en een trustrij heeft. Wit
   met een gouden vinkje, zodat hij leesbaar blijft op een lichte lucht. De
   actieknop "Bekijk tentformaten" staat onderaan hetzelfde beeld, dus boven
   en onder botsen niet. De tekst komt uit ACF (Content > Homepage > Hero);
   leeg laten haalt de balk weg. */
.cx-beeld__merk { position: absolute; top: 0; left: 0; right: 0; z-index: 3;
	display: flex; align-items: center; gap: .45rem;
	padding: .95rem 1.1rem 1.5rem; border: 0; border-radius: 0;
	background: linear-gradient(to bottom, rgba(10,9,8,.92), rgba(10,9,8,0));
	color: #fff; font-size: .76rem; font-weight: 800; letter-spacing: .01em;
	line-height: 1.25; }
.cx-beeld__merk svg { flex: 0 0 auto; color: var(--cx-goud-2); }
@media (max-width: 599px) {
	.cx-beeld__merk { padding: .8rem .9rem 1.4rem; font-size: .69rem; }
}

/* ---- zachte tekstlink (6 okt 2026) --------------------------------------
   Een link in een lopende alinea die niet als knop of gouden link moet
   opvallen. Zelfde kleur als de tekst eromheen, met een dunne onderlijn die
   bij hover oplicht. Bewust niet volledig onzichtbaar: een link die een
   bezoeker niet kan zien is onbruikbaar, en een zoekmachine beloont een
   verborgen link niet. */
.cx-zacht { color: inherit; text-decoration: none; text-underline-offset: .22em;
	text-decoration-thickness: 1px; transition: text-decoration-color .2s, color .2s; }
/* Onderlijn pas bij hover en bij toetsenbordfocus. Zonder die focusregel kan
   iemand die met Tab navigeert niet zien waar hij staat, en dat is wel zo
   netjes. Keuze Cas, 6 okt: de regel is bedoeld als interne link, niet als
   doorklik voor de bezoeker. */
.cx-zacht:hover, .cx-zacht:focus-visible { color: var(--cx-goud-2);
	text-decoration: underline; text-decoration-color: var(--cx-goud); }

/* ==========================================================================
   BINNENKIJKER (7 okt 2026)
   Sectie "zo ziet het eruit van binnen", tussen de formaten en de pakketten.
   Aanleiding: klantfeedback dat er nergens beeld van de binnenkant stond.

   Bewust geen kaartjes: losse foto's met een afgesneden hoek rechtsonder (de
   vorm die ook op de PVC-pagina terugkomt) en het bijschrift eronder, niet in
   een doos. Mobiel 2x2 volgens de afspraak voor vier items, desktop vier naast
   elkaar waarbij de even nummers zakken zodat het geen rij blokken wordt.
   Rasters met minmax(0,1fr) en min-width:0, anders duwt een lang bijschrift
   de kolom breder dan het scherm.
   ========================================================================== */
.bkz { list-style: none; margin: 2.4rem 0 0; padding: 0;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1rem; }
.bkz__item { min-width: 0; margin: 0; }

/* De foto. aspect-ratio houdt de strook gelijk, ook al is één bronfoto liggend
   en zijn de andere drie staand. object-fit: cover doet de rest. */
.bkz__beeld { display: block; position: relative; overflow: hidden;
	aspect-ratio: 3 / 4; background: #14130F; border-radius: 14px;
	clip-path: polygon(0 0, 100% 0, 100% 86%, 86% 100%, 0 100%); }
.bkz__beeld img { width: 100%; height: 100%; object-fit: cover; display: block; }

.bkz__bij { display: block; margin-top: .65rem; line-height: 1.35;
	font-size: clamp(.82rem, .78rem + .2vw, .95rem); color: #5A544A; }
.cx-sec--donker .bkz__bij, .cx-sec--paneel .bkz__bij { color: #CFC9C0; }

/* Kenmerken onder de strook: geen chips met een rand, maar een regel met
   gouden ruitjes ertussen. Loopt op smalle schermen netjes door. */
.bkz-specs { list-style: none; margin: 1.8rem 0 0; padding: 0;
	display: flex; flex-wrap: wrap; justify-content: center;
	gap: .4rem 1.1rem; font-weight: 600;
	font-size: clamp(.85rem, .8rem + .2vw, 1rem); color: #46413A; }
.cx-sec--donker .bkz-specs, .cx-sec--paneel .bkz-specs { color: #CFC9C0; }
.bkz-specs li { display: inline-flex; align-items: center; gap: 1.1rem; }
.bkz-specs li::after { content: ''; width: 6px; height: 6px; flex: none;
	transform: rotate(45deg); background: var(--cx-goud); }
.bkz-specs li:last-child::after { display: none; }

.bkz-voet { margin: 1.6rem 0 0; text-align: center; }

@media (min-width: 900px) {
	.bkz { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.4rem; margin-top: 3rem; }
	/* De even foto's zakken een stukje. Het bijschrift zakt mee, dus de regels
	   staan niet op één lijn: dat is de bedoeling, het breekt de rij. */
	.bkz__item:nth-child(even) { margin-top: 2.4rem; }
}

/* Kenmerken: op mobiel 2x2 met een ruitje vóór de tekst, net als de foto's
   erboven. Een rij met scheidingsruiten tussen de items liet bij het afbreken
   een losse ruit aan het regeleinde achter. Vanaf 700px wel één rij met de
   ruiten ertussen, want daar past het op één regel. */
.bkz-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
	justify-content: start; gap: .7rem 1rem; text-align: left; }
.bkz-specs li { min-width: 0; gap: .55rem; }
.bkz-specs li::after { display: none; }
.bkz-specs li::before { content: ''; width: 6px; height: 6px; flex: none;
	transform: rotate(45deg); background: var(--cx-goud); }

@media (min-width: 700px) {
	.bkz-specs { display: flex; justify-content: center; gap: .4rem 1.1rem; text-align: center; }
	.bkz-specs li { gap: 1.1rem; }
	.bkz-specs li::before { display: none; }
	.bkz-specs li::after { display: block; }
	.bkz-specs li:last-child::after { display: none; }
}

/* ==========================================================================
   BINNENKIJKER, varianten 2 t/m 4 (7 okt 2026)
   duo    = dichte tent naast de binnenkant
   breed  = een binnenfoto over de volle breedte met de kop eroverheen
   schuif = schuifbalk van buiten naar binnen
   ========================================================================== */

/* ---- variant 2: duo --------------------------------------------------- */
.bkzd { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.2rem; margin-top: 2.4rem; }
.bkzd__kant { position: relative; margin: 0; min-width: 0; }
.bkzd__beeld { display: block; overflow: hidden; aspect-ratio: 4 / 3;
	border-radius: 16px; background: #14130F;
	clip-path: polygon(0 0, 100% 0, 100% 88%, 90% 100%, 0 100%); }
.bkzd__beeld img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Het label ligt op de foto, niet eronder: zo lees je het verschil in één blik. */
.bkzd__label { position: absolute; top: .9rem; left: .9rem; z-index: 2;
	display: inline-block; padding: .34rem .85rem; border-radius: 999px;
	font-size: clamp(.72rem, .68rem + .2vw, .85rem); font-weight: 700;
	letter-spacing: .08em; text-transform: uppercase;
	background: rgba(20, 19, 17, .78); color: var(--pp-white);
	backdrop-filter: blur(4px); }
.bkzd__label--goud { background: var(--cx-goud); color: #14130F; }

/* De drie overige binnenfoto's eronder, klein. Drie items dus op mobiel geen
   2x2 maar gewoon drie naast elkaar: ze dragen geen tekst, dus dat kan. */
.bkzd-rij { list-style: none; margin: 1.2rem 0 0; padding: 0;
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.bkzd-rij li { min-width: 0; }
.bkzd-rij__beeld { display: block; overflow: hidden; aspect-ratio: 1 / 1;
	border-radius: 12px; background: #14130F;
	clip-path: polygon(0 0, 100% 0, 100% 84%, 84% 100%, 0 100%); }
.bkzd-rij__beeld img { width: 100%; height: 100%; object-fit: cover; display: block; }

@media (min-width: 800px) {
	.bkzd { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem; margin-top: 3rem; }
	.bkzd__beeld { aspect-ratio: 3 / 4; }
	.bkzd-rij { gap: 1.1rem; margin-top: 1.6rem; }
}

/* ---- variant 3: breed -------------------------------------------------- */
/* De sectie heeft zelf geen padding boven: de foto begint strak onder de
   vorige sectie en loopt van rand tot rand. */
.bkzb-sec { padding-top: 0; overflow: hidden; }
.bkzb { position: relative; width: 100%; min-height: 78vh; display: grid; }
.bkzb__foto { grid-area: 1 / 1; width: 100%; height: 100%; object-fit: cover;
	display: block; min-height: 78vh; }
/* Scrim: zonder deze laag is de kop onleesbaar op een foto vol lasers. */
.bkzb__over { grid-area: 1 / 1; position: relative; z-index: 1;
	display: flex; align-items: center; justify-content: center;
	padding-block: clamp(3rem, 8vw, 6rem);
	background: linear-gradient(180deg, rgba(14,13,11,.55), rgba(14,13,11,.82)); }
.bkzb__over .cx-kop { max-width: 46rem; margin-inline: auto; }
.bkzb__over .cx-h2, .bkzb__over .cx-kop__tekst { color: var(--pp-white); }

.bkzb-rij { list-style: none; margin: 2.2rem 0 0; padding: 0;
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.bkzb-rij li { min-width: 0; }
.bkzb-rij__beeld { display: block; overflow: hidden; aspect-ratio: 3 / 4;
	border-radius: 12px; background: #14130F;
	clip-path: polygon(0 0, 100% 0, 100% 86%, 86% 100%, 0 100%); }
.bkzb-rij__beeld img { width: 100%; height: 100%; object-fit: cover; display: block; }

@media (min-width: 800px) {
	.bkzb, .bkzb__foto { min-height: 62vh; }
	.bkzb-rij { gap: 1.2rem; margin-top: 3rem; }
}

/* ---- variant 4: schuif ------------------------------------------------- */
.bkzs { position: relative; margin-top: 2.4rem; display: grid;
	border-radius: 18px; overflow: hidden; background: #14130F;
	aspect-ratio: 4 / 5; }
.bkzs__onder, .bkzs__boven { grid-area: 1 / 1; width: 100%; height: 100%;
	object-fit: cover; display: block; }
/* De bovenste foto wordt afgesneden op de stand van de schuif. */
.bkzs__boven { clip-path: inset(0 calc(100% - var(--bkzs-pos)) 0 0); }
.bkzs__lijn { position: absolute; top: 0; bottom: 0; z-index: 2;
	left: var(--bkzs-pos); width: 2px; margin-left: -1px;
	background: var(--cx-goud); pointer-events: none; }
.bkzs__greep { position: absolute; top: 50%; left: 50%; width: 44px; height: 44px;
	transform: translate(-50%, -50%); border-radius: 50%;
	background: var(--cx-goud); box-shadow: 0 2px 14px rgba(0,0,0,.45); }
/* Twee pijltjes in de greep, puur met randen getekend. */
.bkzs__greep::before, .bkzs__greep::after { content: ''; position: absolute; top: 50%;
	width: 0; height: 0; border-block: 5px solid transparent; }
.bkzs__greep::before { left: 11px; transform: translateY(-50%); border-right: 7px solid #14130F; }
.bkzs__greep::after { right: 11px; transform: translateY(-50%); border-left: 7px solid #14130F; }

.bkzs__label { position: absolute; top: .9rem; z-index: 2;
	padding: .34rem .85rem; border-radius: 999px;
	font-size: clamp(.72rem, .68rem + .2vw, .85rem); font-weight: 700;
	letter-spacing: .08em; text-transform: uppercase; }
.bkzs__label--links { left: .9rem; background: var(--cx-goud); color: #14130F; }
.bkzs__label--rechts { right: .9rem; background: rgba(20,19,17,.78); color: var(--pp-white); }

/* De range ligt onzichtbaar over het hele kader. De duim is zo breed als de
   greep, zodat je precies op de lijn pakt. */
.bkzs__input { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%;
	margin: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none;
	background: transparent; }
.bkzs__input::-webkit-slider-thumb { -webkit-appearance: none; width: 48px; height: 100vh; }
.bkzs__input::-moz-range-thumb { width: 48px; height: 100vh; border: 0; opacity: 0; }
/* Zichtbare focus voor toetsenbordgebruik: de ring komt op het kader, niet op
   de onzichtbare input zelf. */
.bkzs:has(.bkzs__input:focus-visible) { outline: 3px solid var(--cx-goud); outline-offset: 3px; }

@media (min-width: 800px) {
	.bkzs { aspect-ratio: 16 / 9; margin-top: 3rem; }
}

/* De brede band was op mobiel 78vh hoog terwijl de kop maar de bovenste helft
   vult: daaronder bleef een donker gat staan. 64vh sluit strak om de tekst. */
.bkzb, .bkzb__foto { min-height: 64vh; }

/* De schuifbalk stond op desktop op 16:9. Beide bronfoto's zijn staand, dus die
   verhouding sneed precies het onderwerp weg: links alleen het plafond met de
   discobal, rechts alleen lucht. 3:2 plus een object-position iets onder het
   midden laat de tent en de dansvloer zien. */
.bkzs__onder, .bkzs__boven { object-position: center 58%; }
@media (min-width: 800px) {
	.bkzs { aspect-ratio: 3 / 2; }
}

/* Over de volle containerbreedte werd de schuifbalk op desktop 827 px hoog en
   duwde hij de rest van de sectie buiten beeld. Smaller en gecentreerd. */
@media (min-width: 800px) {
	.bkzs { max-width: 900px; margin-inline: auto; }
}

/* ---- variant 5: naast -------------------------------------------------- */
/* Twee kolommen: links de kop met opsommingstekens, rechts de vier foto's in
   zigzag. Mobiel onder elkaar in dezelfde volgorde als desktop, dus geen
   order-trucs. Rasters met minmax(0,1fr) zodat een lange regel de kolom niet
   breder duwt dan het scherm. */
.bkzn { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.2rem; align-items: center; }
.bkzn__tekst { min-width: 0; }
.bkzn__tekst .cx-kop { text-align: left; margin-inline: 0; }
.bkzn__voet { margin: 1.6rem 0 0; }

/* De opsomming: gouden vinkje in plaats van een bolletje, twee kolommen zodat
   vier punten niet als een lange lijst lezen. */
.bkzn-lijst { list-style: none; margin: 1.6rem 0 0; padding: 0;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem 1rem;
	font-weight: 600; font-size: clamp(.9rem, .85rem + .2vw, 1.02rem); }
.bkzn-lijst li { position: relative; min-width: 0; padding-left: 1.7rem; line-height: 1.35; }
.bkzn-lijst li::before { content: ''; position: absolute; left: 0; top: .3em;
	width: 9px; height: 5px; border-left: 2px solid var(--cx-goud);
	border-bottom: 2px solid var(--cx-goud); transform: rotate(-45deg); }
.cx-sec--licht .bkzn-lijst { color: #14130F; }

/* Het raster rechts: 2x2, de even foto's een halve kaart lager (de zigzag). */
.bkzn-raster { list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
.bkzn-raster__item { min-width: 0; }
.bkzn-raster__beeld { display: block; overflow: hidden; aspect-ratio: 3 / 4;
	border-radius: 12px; background: #14130F;
	clip-path: polygon(0 0, 100% 0, 100% 86%, 86% 100%, 0 100%); }
.bkzn-raster__beeld img { width: 100%; height: 100%; object-fit: cover; display: block; }

@media (min-width: 900px) {
	.bkzn { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(2.4rem, 4vw, 4rem); }
	.bkzn-raster { gap: 1.1rem; }
	/* De zigzag. De marge boven duwt de hele kolom omlaag, dus compenseren we
	   die onderaan weer, anders staat de sectie scheef in zijn padding. */
	.bkzn-raster__item:nth-child(even) { margin-top: 2.6rem; margin-bottom: -2.6rem; }
}

/* ---- variant 5, finetune (7 okt 2026) ---------------------------------
   Wens Cas: foto's iets kleiner, gewoon ronde hoeken in plaats van de
   afgesneden hoek, en de opsomming gaat nu over wat er IN de tent staat
   (disco verlichting, lasers, rookmachine, geluid) in plaats van over de
   tent zelf. Zes punten dus, onder elkaar met ruimte, want twee kolommen
   werd met de langere namen en het labeltje te druk. */

/* Gewone ronde hoek, geen afgesneden punt meer. */
.bkzn-raster__beeld { clip-path: none; border-radius: 16px; }

/* Iets kleiner: de beeldkolom krijgt minder breedte dan de tekstkolom en het
   raster zelf een maximum, zodat de foto's niet meegroeien op brede schermen. */
@media (min-width: 900px) {
	.bkzn { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
	.bkzn-raster { max-width: 460px; margin-left: auto; gap: .9rem; }
	.bkzn-raster__item:nth-child(even) { margin-top: 2.1rem; margin-bottom: -2.1rem; }
}

/* De opsomming: één kolom met wat meer lucht, zodat elke regel een eigen
   belofte is in plaats van een rijtje steekwoorden. */
.bkzn-lijst { grid-template-columns: minmax(0, 1fr); gap: .72rem; margin-top: 1.8rem; }
.bkzn-lijst li { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem; padding-left: 1.8rem; }
/* Het labeltje achter een punt dat pas in een hoger pakket zit. Bewust klein en
   grijs: het mag de belofte niet overschreeuwen, maar het moet er wel staan. */
.bkzn-lijst__extra { font-weight: 600; font-size: .74em; letter-spacing: .04em;
	text-transform: uppercase; color: #8A8276;
	padding: .14rem .5rem; border: 1px solid rgba(138,130,118,.4); border-radius: 999px; }

@media (min-width: 560px) {
	.bkzn-lijst { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .72rem 1.2rem; }
}
@media (min-width: 900px) {
	.bkzn-lijst { grid-template-columns: minmax(0, 1fr); }
}

/* ---- variant 5, tweede finetune (7 okt 2026) --------------------------
   Wens Cas: de punten naast elkaar in plaats van onder elkaar, en de link
   onderaan wijst naar de pakketten met een pijl omlaag. */

/* Twee kolommen op elke breedte, ook op 375 px. Zes punten worden dan 2x3.
   minmax(0,1fr) zodat "JBL geluidsinstallatie" netjes afbreekt in plaats van
   de kolom breder te duwen. */
.bkzn-lijst { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; }
@media (min-width: 560px) { .bkzn-lijst { gap: .8rem 1.4rem; } }
@media (min-width: 900px) { .bkzn-lijst { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Op smalle schermen scheelt het net genoeg om het vinkje dichterbij te zetten
   en het labeltje op een eigen regel te laten vallen. */
.bkzn-lijst li { padding-left: 1.5rem; gap: .4rem; }
@media (max-width: 420px) {
	.bkzn-lijst { font-size: .88rem; }
	.bkzn-lijst__extra { font-size: .68em; padding: .1rem .42rem; }
}

/* Pijl omlaag in plaats van naar rechts: je blijft op dezelfde pagina en gaat
   naar de sectie eronder. Het icoon van .cx-link is een mask, dus een rotatie
   volstaat; bij hover zakt hij in plaats van naar rechts te schuiven. */
.cx-link--omlaag::after { transform: rotate(90deg); }
.cx-link--omlaag:hover::after { transform: rotate(90deg) translateX(3px); }

/* ---- variant 5: zigzag ook op mobiel (7 okt 2026, wens Cas) ------------
   Stond eerst alleen vanaf 900px. Op een telefoon is de kolom ~165px breed,
   dus een kleinere sprong: 1.5rem in plaats van 2,1rem, anders zakt de rechter
   kolom zover dat de twee rijen niet meer als een raster lezen.
   De negatieve margin-bottom haalt de sprong er onderaan weer af, zodat de
   sectie niet scheef in zijn eigen padding komt te staan. */
.bkzn-raster__item:nth-child(even) { margin-top: 1.5rem; margin-bottom: -1.5rem; }

@media (min-width: 560px) {
	.bkzn-raster__item:nth-child(even) { margin-top: 2rem; margin-bottom: -2rem; }
}

/* De labeltjes "vanaf Deluxe" en "vanaf Neon" waren te dominant naast de
   punten zelf (wens Cas, 7 okt). Kleiner, strakker en een lichtere rand: het
   is een voetnoot bij de belofte, niet de belofte zelf. */
.bkzn-lijst__extra { font-size: .6em; letter-spacing: .03em; font-weight: 700;
	padding: .08rem .38rem; border-color: rgba(138,130,118,.3); }
@media (max-width: 420px) {
	.bkzn-lijst__extra { font-size: .56em; padding: .06rem .32rem; }
}

/* Op een smal scherm paste "Disco bal" met zijn label nog net op een regel en
   "UV-blacklight" niet, waardoor de twee rijen ongelijk hoog werden. Onder
   560px zet het label daarom altijd op een eigen regel: twee gelijke rijen
   leest rustiger dan een die net wel en een die net niet past. */
@media (max-width: 559px) {
	.bkzn-lijst__extra { flex-basis: 100%; margin-left: 0; }
}

/* Met flex-basis:100% rekte het labeltje over de hele kolombreedte uit tot een
   lange pil. Als grid krijgt het een eigen rij en houdt justify-self:start het
   op zijn eigen breedte. */
@media (max-width: 559px) {
	.bkzn-lijst li { display: grid; grid-template-columns: minmax(0, 1fr); gap: .3rem; }
	.bkzn-lijst__extra { flex-basis: auto; justify-self: start; }
}

/* ---- formaten zonder sfeerfoto (7 okt 2026) ---------------------------
   Opt-in via cx_sec_formaten( array( 'geen_foto' => true ) ). De hero toont al
   een tent van buiten en de binnenkijker eronder de binnenkant; een derde
   buitenfoto hier voegde niets toe en maakte de sectie onnodig lang.
   Zonder foto zouden de vijf maatrijen over de volle breedte uitrekken, dus
   gaan ze vanaf 760px over twee kolommen (3 links, 2 rechts). Dat scheelt
   ongeveer de helft van de hoogte. */
.cx-form--solo { grid-template-columns: minmax(0, 1fr); }
.cx-maten--breed { grid-template-columns: minmax(0, 1fr); }

@media (min-width: 760px) {
	.cx-maten--breed { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem .8rem; }
	/* De voetnoot en de eigenschappen lopen onder beide kolommen door. */
	.cx-form--solo .cx-maten__noot, .cx-form--solo .cx-props { grid-column: 1 / -1; }
}

/* ---- formaten als kaarten (7 okt 2026, wens Cas) ----------------------
   De twee kolommen met brede rijen oogden op desktop rommelig. Nu zes gelijke
   kaarten: vijf maten en een zesde met de eigenschappen die voor alle maten
   gelden. Mobiel twee naast elkaar (vaste afspraak voor kaarten, ook op 375px),
   vanaf 760px drie. Zo staat het raster altijd vol: 2x3 of 3x2. */
.cx-maten--breed { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
@media (min-width: 760px) {
	.cx-maten--breed { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; }
}

/* De kaart zelf: tekst onder elkaar in plaats van links en rechts op een regel,
   en bij hover omhoog in plaats van opzij (een kaart in een raster die naar
   rechts schuift botst tegen zijn buurman). */
.cx-maten--breed .cx-maat { grid-template-columns: minmax(0, 1fr); align-items: start;
	gap: .9rem; padding: 1.15rem 1.2rem 1.1rem; border-radius: 14px; min-height: 100%; }
.cx-maten--breed .cx-maat:hover { transform: translateY(-3px); }
.cx-maten--breed .cx-maat__naam { font-size: clamp(1.02rem, .95rem + .35vw, 1.22rem); }
.cx-maten--breed .cx-maat__meta { margin-top: .22rem; }
/* Het aantal personen komt onderaan de kaart te staan, met een haarlijn erboven
   zodat elke kaart dezelfde ritmiek heeft, ook als de titel afbreekt. */
.cx-maten--breed .cx-maat__pers { align-self: end; white-space: normal;
	padding-top: .7rem; border-top: 1px solid var(--pp-line); width: 100%;
	font-size: .78rem; }

/* De zesde kaart: geen link, dus geen hover-effect. Lichte gouden tint zodat
   hij herkenbaar anders is dan de vijf maten zonder uit de toon te vallen. */
.cx-maat--usp { background: rgba(196,154,84,.08); border-color: rgba(196,154,84,.3); }
.cx-maat--usp:hover { transform: none; background: rgba(196,154,84,.08); border-color: rgba(196,154,84,.3); }
.cx-maat__usps { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; align-self: start; }
.cx-maat__usps li { display: flex; align-items: center; gap: .5rem; min-width: 0;
	font-size: .78rem; font-weight: 600; color: var(--pp-muted); line-height: 1.3; }
.cx-maat__usps li svg { width: 15px; height: 15px; flex: none; color: var(--cx-goud); }

/* Op een lichte sectie (stadspagina's gebruiken die variant) moet de zesde
   kaart ook leesbaar blijven. */
.cx-rustig .cx-sec--licht .cx-maat--usp { background: rgba(196,154,84,.1); border-color: rgba(167,130,63,.35); }
.cx-rustig .cx-sec--licht .cx-maat__usps li { color: #46413A; }

/* De zesde kaart is hoger dan een maatkaart, waardoor de onderste rij hoger
   werd dan de bovenste. Met gelijke rijen staan alle zes even hoog en leest
   het raster rustiger. */
.cx-maten--breed { grid-auto-rows: 1fr; }

/* De gouden tint van de usp-kaart was op het donkere vlak nauwelijks te zien.
   Iets sterker, plus een gouden haarlijn bovenaan zodat je in een oogopslag
   ziet dat dit geen maat is maar een eigenschappenkaart. */
.cx-maat--usp { background: rgba(196,154,84,.13); border-color: rgba(196,154,84,.45); position: relative; }
.cx-maat--usp:hover { background: rgba(196,154,84,.13); border-color: rgba(196,154,84,.45); }
.cx-maat--usp::before { content: ''; position: absolute; inset: 0 auto auto 0;
	width: 100%; height: 3px; border-radius: 14px 14px 0 0;
	background: linear-gradient(90deg, var(--cx-goud-2), var(--cx-goud)); }
.cx-maat--usp .cx-maat__naam { color: var(--cx-goud-2); font-size: .8rem;
	letter-spacing: .06em; text-transform: uppercase; }
.cx-maat__usps li { font-size: .82rem; color: var(--pp-white); }

/* Gelijke rijhoogte alleen vanaf 760px. Op een telefoon is de kolom half zo
   breed, dus de usp-kaart met vier regels is daar veel hoger dan een maatkaart
   met twee; alle zes even hoog maken leverde een gat van ~70px in elke
   maatkaart op. Onder 760px dus gewoon de natuurlijke hoogte. */
.cx-maten--breed { grid-auto-rows: auto; }
@media (min-width: 760px) {
	.cx-maten--breed { grid-auto-rows: 1fr; }
}
/* Het kopje van de usp-kaart brak op smalle schermen over twee regels. */
@media (max-width: 759px) {
	.cx-maat--usp .cx-maat__naam { font-size: .72rem; letter-spacing: .04em; }
	.cx-maten--breed .cx-maat { padding: 1rem 1rem .95rem; gap: .75rem; }
}

/* ---- schetsje in de maatkaart (7 okt 2026, wens Cas) ------------------
   Plattegrond met een maatpijl onder (lengte) en rechts (breedte). Alle vijf
   staan op dezelfde schaal, 7 px per meter, dus 8x6 is zichtbaar het dubbele
   van 4x4. De viewBox is voor alle vijf gelijk (op de 8x6 gebaseerd), anders
   zou elk schetsje apart passend geschaald worden en valt het verschil weg. */
.cx-maten--breed .cx-maat { grid-template-columns: minmax(0, 1fr) auto; }
.cx-maten--breed .cx-maat__tekst { grid-column: 1; }
.cx-maten--breed .cx-maat__pers { grid-column: 1 / -1; }

.cx-schets { grid-column: 2; grid-row: 1; width: 104px; height: auto; flex: none;
	align-self: start; color: var(--cx-goud); overflow: visible; }
.cx-schets__vlak { fill: rgba(196,154,84,.14); stroke: var(--cx-goud); stroke-width: 1.2; }
.cx-schets__maat line { stroke: currentColor; stroke-width: .9; }
.cx-schets__label { fill: var(--pp-muted); font-size: 8px; font-weight: 700;
	font-family: inherit; letter-spacing: .02em; }

/* Mobiel: de kaart is daar maar ~165px breed, dus het schetsje past niet naast
   de tekst. Het zakt eronder en wordt kleiner. */
@media (max-width: 759px) {
	.cx-maten--breed .cx-maat { grid-template-columns: minmax(0, 1fr); }
	.cx-maten--breed .cx-maat__tekst, .cx-schets, .cx-maten--breed .cx-maat__pers { grid-column: 1; }
	.cx-schets { grid-row: auto; width: 88px; margin-top: .15rem; }
}

/* De usp-kaart heeft geen schetsje en dus ook geen tweede kolom nodig. */
.cx-maat--usp { grid-template-columns: minmax(0, 1fr) !important; }

/* Het schetsje stond op een vaste 104px. Op schermen rond de 800-1100px werd de
   kaart daardoor zo smal dat "4x4 meter" over twee regels brak. Nu schaalt het
   mee, met een ondergrens: onder ~84px worden de maatlabels onleesbaar klein,
   want die schalen mee met de svg. */
.cx-schets { width: clamp(84px, 7.5vw, 112px); }
.cx-schets__label { font-size: 9px; }
.cx-maten--breed .cx-maat__naam { text-wrap: balance; }
@media (max-width: 759px) { .cx-schets { width: 88px; } }

/* De schets is nu de tentvorm zelf: voorgevel met puntdak, zijvlak en dakvlak.
   Drie tinten goud geven het volume aan zonder dat er een kleur bijkomt die
   niet van de site is. De deuropening is donker, zoals op de foto's. */
.cx-schets__gevel { fill: rgba(196,154,84,.2); stroke: var(--cx-goud); stroke-width: 1.1; stroke-linejoin: round; }
.cx-schets__zij   { fill: rgba(196,154,84,.1); stroke: var(--cx-goud); stroke-width: 1.1; stroke-linejoin: round; }
.cx-schets__dak   { fill: rgba(196,154,84,.3); stroke: var(--cx-goud); stroke-width: 1.1; stroke-linejoin: round; }
.cx-schets__deur  { fill: rgba(14,13,11,.72); stroke: var(--cx-goud); stroke-width: .7; }
/* De oude plattegrond-rechthoek bestaat niet meer. */
.cx-schets__vlak  { display: none; }

/* Het zijraam: lichter dan het zijvlak eromheen, zodat het als glas leest.
   Met een stijl in het midden, anders oogt het als een lichte vlek. */
.cx-schets__raam  { fill: rgba(196,154,84,.42); stroke: var(--cx-goud); stroke-width: .8; stroke-linejoin: round; }
.cx-schets__stijl { stroke: var(--cx-goud); stroke-width: .7; }

/* Het raam is nu een klein vast vakje in plaats van een meegroeiend vlak, dus
   een dunnere lijn en geen stijl meer in het midden: bij dit formaat was dat
   alleen maar ruis. */
.cx-schets__raam  { stroke-width: .6; }
.cx-schets__stijl { display: none; }

/* De gouden balk bovenop de usp-kaart stak aan de bovenhoeken buiten de ronding
   uit: de balk had border-radius 14px terwijl de binnenrand van de kaart door de
   1px border 13px is, dus de hoeken van de balk piepten eruit. Weg ermee. De
   kaart valt al genoeg op door de gouden tint; een hele gouden rand is rustiger
   dan een losse streep en volgt de ronding netjes. */
.cx-maat--usp::before { content: none; }
.cx-maat--usp,
.cx-maat--usp:hover { border-color: rgba(196,154,84,.55); }

/* ---- gouden vlak achter de hoekfoto's (7 okt 2026, wens Cas) -----------
   De eerste en de laatste foto krijgen het offsetvlak dat ook achter de
   hero-foto en de over-ons-foto staat. Daardoor loopt er een gouden diagonaal
   door het raster en sluit het blok aan bij de rest van de vormtaal.
   Het raster krijgt rechts en onder ruimte ter grootte van de verschuiving,
   anders steekt het vlak buiten de container en krijg je horizontale overloop. */
.bkzn-raster { padding-right: var(--cx-off, 9px); padding-bottom: var(--cx-off, 9px); }
.bkzn-raster__item:first-child,
.bkzn-raster__item:nth-child(4) { position: relative; }
.bkzn-raster__item:first-child::before,
.bkzn-raster__item:nth-child(4)::before {
	content: ''; position: absolute; inset: 0; z-index: 0; border-radius: 16px;
	transform: translate(var(--cx-off, 9px), var(--cx-off, 9px));
	background: linear-gradient(150deg, var(--cx-goud-2), var(--cx-goud) 55%, var(--pp-gold-deep));
}
.bkzn-raster__beeld { position: relative; z-index: 1; }

/* Op een telefoon is de kolom half zo breed; een vlak van 9px is daar naar
   verhouding fors, dus iets subtieler. */
@media (max-width: 559px) {
	.bkzn-raster { padding-right: 6px; padding-bottom: 6px; }
	.bkzn-raster__item:first-child::before,
	.bkzn-raster__item:nth-child(4)::before { transform: translate(6px, 6px); }
}

/* Het gouden offsetvlak achter de hoekfoto's was te nadrukkelijk (oordeel Cas):
   op mobiel, waar de foto's onder elkaar staan, werd het een gouden blok naast
   de foto in plaats van een accent erachter. Vervangen door een zachte schaduw
   op dezelfde twee foto's, zodat ze net iets naar voren komen zonder dat er een
   vorm bijkomt. */
.bkzn-raster { padding-right: 0; padding-bottom: 0; }
.bkzn-raster__item:first-child::before,
.bkzn-raster__item:nth-child(4)::before { content: none; }
.bkzn-raster__item:first-child .bkzn-raster__beeld,
.bkzn-raster__item:nth-child(4) .bkzn-raster__beeld {
	box-shadow: 0 14px 28px rgba(20, 19, 17, .22), 0 3px 8px rgba(20, 19, 17, .12);
}
/* Op een donkere sectie valt een zwarte schaduw weg; daar iets diepere waarden. */
.cx-sec--donker .bkzn-raster__item:first-child .bkzn-raster__beeld,
.cx-sec--donker .bkzn-raster__item:nth-child(4) .bkzn-raster__beeld {
	box-shadow: 0 14px 30px rgba(0, 0, 0, .5);
}

/* Subtekst onder een paginakop (7 okt 2026). Eerst gebruikt op de
   boekingspagina, waar de handgeschreven regel boven de kop verdween en de
   belofte hieronder meer ruimte kreeg. Iets breder dan de kop zelf, want dit
   is een lopende zin en geen titel. */
.cx-paginasub { max-width: min(100%, 54ch); margin: 1rem 0 0;
	color: var(--pp-muted); font-size: clamp(.95rem, .9rem + .25vw, 1.08rem);
	line-height: 1.55; }
.cx-sec--licht .cx-paginasub { color: #5A544A; }

/* De twee kolommen met kenmerken waren elk 1fr, dus elk de helft van de
   tekstkolom. Met korte punten als "Rookmachine" stond er dan ruim 250px lucht
   tussen de kolommen (8 okt 2026). Nu sluiten de kolommen om hun inhoud en
   bepaalt de gap de afstand. minmax(0, max-content) zodat een lang punt nog
   steeds mag afbreken in plaats van de kolom breder te duwen dan het kader. */
@media (min-width: 900px) {
	.bkzn-lijst { grid-template-columns: repeat(2, minmax(0, max-content));
		justify-content: start; column-gap: 2.4rem; }
}

/* 50/50 en het fotoraster zonder breedtelimiet (8 okt 2026, wens Cas).
   Stond op 1.08fr / 0.92fr met max-width:460px op het raster. Die limiet was de
   echte rem: op een container van 1200px bleef het raster op 460 steken terwijl
   zijn kolom 557 breed was, dus de foto's groeiden niet mee. Nu vult het raster
   zijn halve kolom en worden de tegels ~275 in plaats van 223 px.
   De tekstkolom verandert nauwelijks (579 -> 568), dus de leesbaarheid blijft. */
@media (min-width: 900px) {
	.bkzn { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bkzn-raster { max-width: none; }
}

/* 55/45 in plaats van 50/50 (8 okt 2026): met gelijke helften werden de foto's
   net te dominant naast de tekst. De tekstkolom krijgt de extra ruimte. */
@media (min-width: 900px) {
	.bkzn { grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); }
}
