/* =============================================================================
   Vermistposters: de ontwerpen van de posterstudio
   -----------------------------------------------------------------------------
   Alles is opgebouwd op een vel van 210 x 297 mm. Tekstmaten staan in em ten
   opzichte van .ps-poster (4mm), zodat het script bij veel tekst het hele vel
   in één keer kan verkleinen. Kleuren komen uit variabelen die het script per
   ontwerp zet, met afgeleide waarden die altijd leesbaar blijven:
     --ps-kleur   gekozen kleur          --ps-op      tekst óp die kleur
     --ps-inkt    kleur als tekst op wit --ps-zacht   lichte tint
     --ps-opzwart kleur als tekst op zwart (of wit als dat niet leesbaar is)
   ============================================================================= */

.ps-poster {
  width: 210mm; height: 297mm;
  position: relative; overflow: hidden;
  display: flex; flex-direction: column;
  background: #fff; color: #161616;
  font-family: 'Figtree', system-ui, -apple-system, sans-serif;
  font-size: 4mm; line-height: 1.3;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
  text-align: left;
}
.ps-poster *, .ps-poster *::before, .ps-poster *::after { box-sizing: border-box; }
.ps-poster p, .ps-poster ul, .ps-poster h3, .ps-poster figure { margin: 0; }
.ps-inhoud { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.ps-poster [data-fit] { white-space: nowrap; overflow: hidden; min-width: 0; }
.ps-foto-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ps-zw .ps-foto-img { filter: grayscale(1) contrast(1.05); }
.ps-poot { width: 1em; height: 1em; fill: currentColor; display: inline-block; vertical-align: -.12em; flex-shrink: 0; }
.ps-kwast { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.ps-qr { background: #fff; line-height: 0; }
.ps-qr svg { display: block; width: 100%; height: auto; }
.ps-qr svg rect { fill: #fff; }
.ps-qr svg path { fill: #141414; }

.ps-spoed {
  flex: none; display: flex; align-items: center; justify-content: center; gap: 2mm;
  background: #b3261e; color: #fff;
  padding: 2.4mm 8mm; font-weight: 800; font-size: 1.05em;
  text-transform: uppercase; letter-spacing: .04em;
}
.ps-spoed .bi { flex: none; }

/* Scheurstrookjes */
.ps-strookjes { flex: none; height: 36mm; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); border-top: .45mm dashed #3a3a3a; background: #fff; }
.ps-strook { display: flex; align-items: center; justify-content: center; overflow: hidden; border-left: .45mm dashed #3a3a3a; color: #161616; }
.ps-strook:first-child { border-left: 0; }
.ps-strook span { writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; font-size: 3.2mm; line-height: 1.2; text-align: center; }
.ps-strook strong { display: block; font-weight: 800; }

/* ═══ 1. Liefdevol ═══════════════════════════════════════════════════════════ */
.ps-t-liefde { color: #2a2a2a; }
.ps-t-liefde .ps-inhoud { padding: 4mm 9mm 4mm; }
.lf-top { flex: none; position: relative; padding: 0 20mm; }
.lf-kop {
  display: block; text-align: center;
  font-family: 'Caveat Brush', 'Kalam', cursive;
  color: var(--ps-inkt); font-size: 7em; line-height: 1; letter-spacing: .02em;
}
.lf-poot { position: absolute; top: 58%; color: var(--ps-inkt); font-size: 3.1em; line-height: 0; }
.lf-poot-l { left: 1mm; transform: translateY(-50%) rotate(-18deg); }
.lf-poot-r { right: 1mm; transform: translateY(-50%) rotate(18deg); }
.lf-hart { position: absolute; top: 2mm; color: var(--ps-inkt); font-size: 1.5em; }
.lf-hart-l { left: 6mm; transform: rotate(-12deg); }
.lf-hart-r { right: 6mm; transform: rotate(12deg); }

.lf-banner { flex: none; position: relative; height: 13mm; margin: 1mm 4mm 3mm; display: flex; align-items: center; justify-content: center; color: var(--ps-op); }
.lf-banner span {
  position: relative; display: block; max-width: 100%; padding: 0 10mm; text-align: center;
  font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 2em; letter-spacing: .02em;
}
.lf-banner .bi { font-size: .62em; margin: 0 .55em; vertical-align: .22em; }

.lf-foto { flex: 1 1 auto; position: relative; min-height: 62mm; margin: 0 -2mm; }
.lf-foto-vlak { position: absolute; inset: 0; clip-path: url(#psScheur); background: var(--ps-zacht); }
.lf-foto-leeg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--ps-kleur); font-size: 9em; opacity: .5; }
.lf-badge {
  position: absolute; top: 5mm; right: 6mm;
  width: 48mm; height: 48mm; border-radius: 50%;
  background: var(--ps-zacht); border: 1.3mm solid #fff;
  box-shadow: 0 1mm 3mm rgba(0, 0, 0, .2);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 6mm; text-align: center; color: var(--ps-inkt);
}
.lf-badge::before { content: ""; position: absolute; inset: 1.8mm; border-radius: 50%; border: .35mm dashed var(--ps-kleur); }
.lf-badge-naam { display: block; max-width: 100%; font-family: 'Kalam', cursive; font-weight: 700; font-size: 3em; line-height: 1.05; }
.lf-badge-sub { font-family: 'Kalam', cursive; font-weight: 700; font-size: 1.15em; line-height: 1.1; color: #3a3a3a; }
.lf-badge .bi { font-size: 1.1em; margin-top: .8mm; }
.lf-insets { position: absolute; left: 7mm; bottom: 6mm; display: flex; gap: 3mm; }
.lf-inset { width: 30mm; height: 30mm; border-radius: 50%; overflow: hidden; border: 1.2mm solid #fff; box-shadow: 0 1mm 3mm rgba(0, 0, 0, .22); background: #eee; }

.lf-intro { flex: none; text-align: center; font-weight: 600; font-size: 1.22em; line-height: 1.28; margin-top: 3mm; padding: 0 4mm; }
.lf-hartje { flex: none; text-align: center; font-family: 'Kalam', cursive; font-weight: 700; color: var(--ps-inkt); font-size: 1.95em; line-height: 1.2; }
.lf-hartje .bi { font-size: .7em; vertical-align: .1em; }

.lf-kolommen { flex: none; display: grid; margin: 3mm 0 2.5mm; }
.lf-k1 { grid-template-columns: 1fr; } .lf-k2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lf-k3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .lf-k4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lf-kolom { min-width: 0; text-align: center; padding: 0 2.5mm; border-left: .4mm dashed color-mix(in srgb, var(--ps-kleur) 55%, #fff); }
.lf-kolom:first-child { border-left: 0; }
.lf-kolom-icoon {
  width: 13mm; height: 13mm; margin: 0 auto 1.5mm; border-radius: 50%;
  background: var(--ps-kleur); color: var(--ps-op);
  display: flex; align-items: center; justify-content: center; font-size: 1.55em;
}
.lf-kolom h3 { font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; color: var(--ps-inkt); font-size: 1.2em; line-height: 1.15; margin-bottom: 1mm; }
.lf-kolom p { font-size: .98em; line-height: 1.3; }
.lf-kolom ul { list-style: none; padding: 0; display: inline-block; text-align: left; font-size: .95em; line-height: 1.3; }
.lf-kolom li { display: flex; gap: 1.4mm; align-items: baseline; }
.lf-kolom li .ps-poot { color: var(--ps-inkt); font-size: .8em; }

.lf-bel { flex: none; position: relative; margin: 1mm -4mm 0; padding: 3.2mm 14mm 3.8mm; text-align: center; color: var(--ps-op); }
.lf-bel-qr { padding-left: 34mm; padding-right: 34mm; }
.lf-bel > :not(svg) { position: relative; }
.lf-bel-vraag { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 1.5em; line-height: 1.1; }
.lf-bel-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 4.3em; line-height: 1.05; letter-spacing: .01em; }
.lf-bel-nr .bi { font-size: .68em; margin-right: .22em; vertical-align: .1em; }
.lf-bel-actie { display: block; font-family: 'Oswald', sans-serif; font-weight: 500; text-transform: uppercase; font-size: 1.2em; }
.lf-qr { position: absolute !important; right: 10mm; top: 50%; transform: translateY(-50%); width: 21mm; }
.lf-qr .ps-qr { padding: 1.6mm; border-radius: 1.5mm; }

.lf-voet { flex: none; display: flex; align-items: center; justify-content: center; gap: 3mm; padding-top: 1.5mm; }
.lf-dank { font-family: 'Kalam', cursive; font-weight: 700; font-size: 1.75em; line-height: 1.2; color: #2a2a2a; }
.lf-poot-klein { color: var(--ps-inkt); font-size: 1.55em; line-height: 0; }

/* ═══ 2. Buurtbord ═══════════════════════════════════════════════════════════ */
.ps-t-buurtbord { background: var(--ps-kleur); color: var(--ps-op); }
.bb-streep { flex: none; height: 6mm; background: repeating-linear-gradient(-45deg, #141414 0 4.5mm, transparent 4.5mm 9mm); }
.bb-kop { flex: none; background: #141414; color: var(--ps-opzwart); padding: 0 8mm; }
.bb-kop span { display: block; text-align: center; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 8.6em; line-height: 1.12; letter-spacing: .04em; }
.bb-sub { flex: none; display: block; text-align: center; padding: 2.5mm 9mm 0; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 1.95em; line-height: 1.15; }
.bb-foto {
  flex: 1 1 auto; min-height: 70mm; margin: 3mm 9mm 0;
  display: grid; gap: 1.5mm; grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr);
  background: #141414; border: 1.5mm solid #141414;
}
.bb-n2 { grid-template-columns: 2fr 1fr; }
.bb-n3 { grid-template-columns: 2fr 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); }
.bb-n3 .bb-f0 { grid-row: span 2; }
.bb-f { position: relative; overflow: hidden; min-height: 0; background: #2a2a2a; }
.bb-f .ps-foto-img { position: absolute; inset: 0; }
.bb-leeg { display: flex; align-items: center; justify-content: center; color: var(--ps-kleur); font-size: 9em; }
.bb-naam { flex: none; display: block; text-align: center; padding: 2mm 9mm 0; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 4.6em; line-height: 1.05; }
.bb-rij { flex: none; display: flex; align-items: center; gap: 6mm; padding: 1.5mm 9mm 3.5mm; }
.bb-feiten { flex: 1; min-width: 0; list-style: none; padding: 0; font-weight: 700; font-size: 1.22em; line-height: 1.3; }
.bb-feiten li { display: flex; gap: 2mm; align-items: baseline; }
.bb-feiten .bi { flex: none; font-size: .9em; }
.bb-qr { flex: none; width: 30mm; padding: 2mm 2mm 1.5mm; background: #fff; border: 1mm solid #141414; color: #141414; text-align: center; font-weight: 800; text-transform: uppercase; font-size: .78em; letter-spacing: .06em; }
.bb-qr span { display: block; margin-top: 1.2mm; }
.bb-bel { flex: none; background: #141414; color: #fff; text-align: center; padding: 2.5mm 9mm 3mm; }
.bb-bel-vraag { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 1.5em; line-height: 1.15; }
.bb-bel-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 4.9em; line-height: 1.05; color: var(--ps-opzwart); }
.bb-bel-nr .bi { font-size: .62em; margin-right: .25em; vertical-align: .12em; }
.bb-bel-actie { display: block; font-family: 'Oswald', sans-serif; font-weight: 500; text-transform: uppercase; font-size: 1.15em; letter-spacing: .03em; }

/* ═══ 3. Fotocollage ═════════════════════════════════════════════════════════ */
.ps-t-collage { color: #1b1b1b; }
.cl-balk {
  flex: none; display: flex; justify-content: space-between; align-items: center; gap: 6mm;
  background: var(--ps-kleur); color: var(--ps-op); padding: 3.2mm 10mm;
  font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 1.35em; letter-spacing: .04em;
}
.cl-balk > span:first-child { flex: 1; }
.cl-kop { flex: none; font-size: 1.85em; letter-spacing: .1em; line-height: 1; }
.cl-titel { flex: none; padding: 5mm 10mm 3.5mm; }
.cl-naam { display: block; font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 4.8em; line-height: 1.02; color: #141414; }
.cl-sub { margin-top: 1.5mm !important; font-size: 1.35em; color: #474747; }
.cl-fotos { flex: 1 1 auto; min-height: 70mm; margin: 0 10mm; display: grid; gap: 2.5mm; grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr); }
.cl-n2 { grid-template-columns: 1fr 1fr; }
.cl-n3 { grid-template-columns: 2fr 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); }
.cl-n3 .cl-f0 { grid-row: span 2; }
.cl-n4 { grid-template-columns: 2fr 1fr; grid-template-rows: repeat(3, minmax(0, 1fr)); }
.cl-n4 .cl-f0 { grid-row: span 3; }
.cl-f { position: relative; overflow: hidden; min-height: 0; border-radius: 3mm; background: var(--ps-zacht); }
.cl-f .ps-foto-img { position: absolute; inset: 0; }
.cl-leeg { display: flex; align-items: center; justify-content: center; color: var(--ps-kleur); font-size: 9em; }
.cl-intro { flex: none; margin: 3.5mm 10mm 0 !important; font-size: 1.22em; line-height: 1.35; }
.cl-kaarten { flex: none; display: grid; gap: 3mm; margin: 3.5mm 10mm 0; }
.cl-k1 { grid-template-columns: 1fr; } .cl-k2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cl-kaart { background: var(--ps-zacht); border-radius: 3mm; padding: 3mm 4mm; min-width: 0; }
.cl-kaart h3 { display: flex; align-items: center; gap: 1.6mm; margin-bottom: 1.2mm; color: var(--ps-inkt); font-size: .92em; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.cl-kaart p, .cl-kaart ul { font-size: 1.05em; line-height: 1.35; }
.cl-kaart ul { padding-left: 4.5mm; }
.cl-beloning { flex: none; display: flex; align-items: center; gap: 2mm; margin: 3mm 10mm 0; padding: 2.2mm 4mm; border: .5mm solid var(--ps-kleur); border-radius: 3mm; font-weight: 700; font-size: 1.15em; }
.cl-beloning .bi { color: var(--ps-inkt); }
.cl-contact { flex: none; display: flex; align-items: center; gap: 6mm; margin-top: 4.5mm; padding: 4mm 10mm 4.5mm; background: #141414; color: #fff; }
.cl-contact > div:first-child { flex: 1; min-width: 0; }
.cl-vraag { display: block; font-weight: 700; font-size: 1.25em; }
.cl-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 4.4em; line-height: 1.05; color: var(--ps-opzwart); }
.cl-actie { display: block; font-size: 1.05em; color: #d9d9d9; }
.cl-qr { flex: none; width: 30mm; text-align: center; font-size: .72em; line-height: 1.25; color: #e6e6e6; }
.cl-qr .ps-qr { padding: 1.8mm; border-radius: 2mm; margin-bottom: 1.5mm; }

/* ═══ 4. Prikbord ════════════════════════════════════════════════════════════ */
.ps-t-prikbord {
  background-color: #ecdfc8;
  background-image: radial-gradient(rgba(110, 80, 40, .09) .45mm, transparent .55mm);
  background-size: 3.2mm 3.2mm;
  color: #2b2118;
}
.ps-t-prikbord .ps-inhoud { padding: 8mm 10mm 7mm; }
.pb-kop { flex: none; display: flex; align-items: center; gap: 6mm; }
.pb-stempel {
  display: block; flex: none; max-width: 62%;
  font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  font-size: 5.4em; line-height: 1.1; color: var(--ps-inkt);
  padding: .5mm 5mm 1mm;
  border: 1.2mm solid var(--ps-inkt);
  box-shadow: inset 0 0 0 .9mm #ecdfc8, inset 0 0 0 1.3mm var(--ps-inkt);
  transform: rotate(-4deg);
}
.pb-sub { flex: 1; min-width: 0; text-align: right; font-family: 'Kalam', cursive; font-weight: 700; font-size: 1.85em; line-height: 1.15; }
.pb-fotos { flex: 1 1 auto; position: relative; min-height: 85mm; margin: 7mm 0 5mm; }
.pb-pola { position: absolute; display: flex; flex-direction: column; background: #fff; padding: 3mm 3mm 13mm; box-shadow: 0 1.2mm 3.5mm rgba(0, 0, 0, .28); }
.pb-beeld { position: relative; flex: 1; min-height: 0; overflow: hidden; background: #ddd; }
.pb-beeld .ps-foto-img { position: absolute; inset: 0; }
.pb-leeg { display: flex; align-items: center; justify-content: center; color: var(--ps-kleur); font-size: 8em; background: #f3ede2; }
.pb-pola figcaption { position: absolute; left: 3mm; right: 3mm; bottom: 2mm; display: block; text-align: center; font-family: 'Kalam', cursive; font-weight: 700; font-size: 2.4em; line-height: 1.2; color: #222; }
.pb-tape { position: absolute; z-index: 2; top: -3.5mm; left: 50%; width: 26mm; height: 8mm; background: color-mix(in srgb, var(--ps-kleur) 50%, transparent); transform: translateX(-50%) rotate(-3deg); }
.pb-n1 .pb-p0 { left: 13%; right: 13%; top: 0; bottom: 0; transform: rotate(-2deg); }
.pb-n2 .pb-p0 { left: 0; width: 62%; top: 0; bottom: 3%; transform: rotate(-3deg); }
.pb-n2 .pb-p1 { right: 1%; width: 42%; top: 16%; height: 66%; transform: rotate(4deg); }
.pb-n3 .pb-p0 { left: 0; width: 60%; top: 0; bottom: 0; transform: rotate(-2.5deg); }
.pb-n3 .pb-p1 { right: 1%; width: 39%; top: 0; height: 49%; transform: rotate(4deg); }
.pb-n3 .pb-p2 { right: 4%; width: 37%; bottom: 0; height: 47%; transform: rotate(-3deg); }
.pb-n2 .pb-p1 figcaption, .pb-n3 .pb-p1 figcaption, .pb-n3 .pb-p2 figcaption { display: none; }
.pb-n2 .pb-p1, .pb-n3 .pb-p1, .pb-n3 .pb-p2 { padding-bottom: 3mm; }

.pb-onder { flex: none; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 7mm; align-items: start; }
.pb-notitie {
  position: relative;
  background-color: #fffdf6;
  background-image: repeating-linear-gradient(transparent 0 6.3mm, rgba(70, 110, 170, .22) 6.3mm 6.6mm);
  background-position: 0 4.6mm;
  padding: 5mm 5mm 4mm;
  box-shadow: 0 1mm 2.5mm rgba(0, 0, 0, .2);
  transform: rotate(-1deg);
  font-family: 'Special Elite', 'Courier New', monospace; font-size: 1em; line-height: 6.6mm;
}
.pb-notitie::before { content: ""; position: absolute; top: -2.5mm; left: 50%; width: 5.5mm; height: 5.5mm; border-radius: 50%; background: var(--ps-kleur); box-shadow: 0 .7mm 1.2mm rgba(0, 0, 0, .35); transform: translateX(-50%); }
.pb-notitie strong { font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: .95em; }
.pb-rechts { min-width: 0; }
.pb-label { position: relative; background: var(--ps-kleur); color: var(--ps-op); text-align: center; padding: 7mm 4mm 4mm; border-radius: 2.5mm; box-shadow: 0 1mm 2.5mm rgba(0, 0, 0, .25); transform: rotate(1.5deg); }
.pb-label::before { content: ""; position: absolute; top: 2.3mm; left: 50%; width: 3.6mm; height: 3.6mm; border-radius: 50%; background: #ecdfc8; transform: translateX(-50%); box-shadow: inset 0 .4mm .8mm rgba(0, 0, 0, .3); }
.pb-vraag { display: block; font-family: 'Kalam', cursive; font-weight: 700; font-size: 1.45em; line-height: 1.15; }
.pb-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 3.2em; line-height: 1.1; }
.pb-actie { display: block; font-weight: 600; font-size: 1em; }
.pb-qr { width: 27mm; margin: 5mm auto 0; padding: 2mm 2mm 1.5mm; background: #fff; text-align: center; box-shadow: 0 1mm 2mm rgba(0, 0, 0, .2); transform: rotate(-2deg); font-family: 'Kalam', cursive; font-weight: 700; font-size: .95em; color: #222; }
.pb-qr span { display: block; margin-top: 1mm; }

/* ═══ 5. Inktzuinig ══════════════════════════════════════════════════════════ */
.ps-t-inkt { color: #111; }
.ps-t-inkt .ps-inhoud { padding: 9mm 11mm 8mm; }
.ik-kop { flex: none; display: block; text-align: center; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 9.8em; line-height: 1; letter-spacing: .02em; color: var(--ps-inkt); }
.ik-regel { flex: none; margin: 2.5mm 0 4mm; padding: 1.8mm 0; border-block: .6mm solid #111; text-align: center; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; font-size: 1.1em; }
.ik-regel span { display: block; }
.ik-regel-leeg { padding: 0; border-bottom: 0; }
.ik-fotos { flex: 1 1 auto; min-height: 70mm; display: grid; gap: 2mm; grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr); }
.ik-n2 { grid-template-columns: 1fr 1fr; }
.ik-n3 { grid-template-columns: 2fr 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); }
.ik-n3 .ik-f0 { grid-row: span 2; }
.ik-f { position: relative; overflow: hidden; min-height: 0; border: .5mm solid #111; }
.ik-f .ps-foto-img { position: absolute; inset: 0; }
.ik-leeg { display: flex; align-items: center; justify-content: center; font-size: 9em; color: #bbb; }
.ik-naam { flex: none; display: block; margin-top: 3.5mm; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 4.7em; line-height: 1.05; }
.ik-intro { flex: none; margin: 1mm 0 3mm !important; font-size: 1.22em; line-height: 1.35; }
.ik-feiten { flex: none; width: 100%; border-collapse: collapse; font-size: 1.05em; }
.ik-feiten th { width: 36mm; padding: 1.8mm 3mm 1.8mm 0; border-top: .3mm solid #111; text-align: left; vertical-align: top; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; font-size: .82em; }
.ik-feiten td { padding: 1.6mm 0; border-top: .3mm solid #111; line-height: 1.35; }
.ik-bel { flex: none; display: flex; align-items: center; gap: 5mm; margin-top: 4mm; padding: 3mm 5mm; border: 1mm solid #111; }
.ik-bel > div:first-child { flex: 1; min-width: 0; }
.ik-vraag { display: block; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: 1.2em; }
.ik-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 4.5em; line-height: 1.05; }
.ik-actie { display: block; font-size: 1em; }
.ik-qr { flex: none; width: 26mm; text-align: center; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: .72em; }
.ik-qr span { display: block; margin-top: 1.2mm; }

/* ═══ 6. Buurtkaart ══════════════════════════════════════════════════════════ */
.ps-t-kaart { color: #16181d; }
.km-kop { flex: none; background: var(--ps-kleur); color: var(--ps-op); padding: 4mm 10mm 4.5mm; }
.km-kop span { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 4.3em; line-height: 1.08; letter-spacing: .02em; }
.km-boven { flex: none; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6mm; height: 92mm; padding: 6mm 10mm 0; }
.km-foto { position: relative; overflow: hidden; border-radius: 3mm; background: var(--ps-zacht); }
.km-foto .ps-foto-img { position: absolute; inset: 0; }
.km-leeg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 8em; color: var(--ps-kleur); }
.km-info { min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
.km-naam { display: block; font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 3.9em; line-height: 1.02; }
.km-sub { margin: 1.5mm 0 2.5mm !important; color: var(--ps-inkt); font-weight: 700; font-size: 1.15em; line-height: 1.25; }
.km-intro { margin-bottom: 2mm !important; font-size: 1.05em; line-height: 1.35; }
.km-info ul { list-style: none; padding: 0; font-size: 1.02em; line-height: 1.4; }
.km-info li { display: flex; gap: 1.5mm; }
.km-info li .bi { color: var(--ps-inkt); flex: none; }
.km-beloning { display: flex; gap: 2mm; align-items: baseline; margin-top: auto; padding: 2mm 3mm; border-radius: 2mm; background: var(--ps-zacht); font-weight: 700; }
.km-beloning .bi { color: var(--ps-inkt); }
.km-strip { flex: none; display: grid; gap: 3mm; height: 30mm; padding: 3mm 10mm 0; }
.km-s1 { grid-template-columns: 1fr 2fr; } .km-s2 { grid-template-columns: repeat(2, 1fr); } .km-s3 { grid-template-columns: repeat(3, 1fr); }
.km-strip > div { position: relative; overflow: hidden; border-radius: 2mm; }
.km-strip .ps-foto-img { position: absolute; inset: 0; }
.km-kaart { flex: 1 1 auto; position: relative; min-height: 50mm; margin: 5mm 10mm 0; overflow: hidden; border-radius: 3mm; border: .4mm solid #cfd6dc; background: #e5e9ec; }
.ps-poster img.km-tegel { position: absolute; width: 256px; height: 256px; max-width: none; display: block; }
.km-cirkel { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 50%; border: 1mm solid var(--ps-kleur); background: color-mix(in srgb, var(--ps-kleur) 22%, transparent); }
.km-kaart-label { position: absolute; left: 3mm; top: 3mm; display: flex; align-items: center; gap: 1.5mm; max-width: calc(100% - 6mm); padding: 1.6mm 3mm; border-radius: 1.5mm; background: #fff; box-shadow: 0 .5mm 1.5mm rgba(0, 0, 0, .2); font-weight: 700; font-size: 1em; }
.km-kaart-label .bi { color: var(--ps-inkt); }
.km-bron { position: absolute; right: 0; bottom: 0; padding: .6mm 1.6mm; background: rgba(255, 255, 255, .88); font-size: .6em; color: #333; }
.km-geen-kaart { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2mm; background: var(--ps-zacht); text-align: center; font-weight: 700; font-size: 1.6em; padding: 6mm; }
.km-geen-kaart .bi { color: var(--ps-inkt); font-size: 2em; }
.km-oproep { flex: none; margin: 3mm 10mm 0 !important; font-weight: 600; font-size: 1.1em; }
.km-voet { flex: none; display: flex; align-items: center; gap: 6mm; padding: 4.5mm 10mm 6mm; }
.km-bel { flex: 1; min-width: 0; }
.km-vraag { display: block; font-weight: 800; font-size: 1.25em; }
.km-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 4.4em; line-height: 1.05; color: var(--ps-inkt); }
.km-nr .bi { font-size: .62em; margin-right: .25em; vertical-align: .12em; }
.km-actie { display: block; color: #454545; }
.km-qr { flex: none; width: 28mm; text-align: center; font-size: .72em; line-height: 1.25; }
.km-qr .ps-qr { margin-bottom: 1.5mm; border: .3mm solid #ddd; padding: 1.5mm; }

/* ═══ Gedeeld door de nieuwe ontwerpen ══════════════════════════════════════ */
.ps-stralen { display: block; width: 100%; height: auto; }
.ps-poster hr { opacity: 1; color: inherit; }
.ps-poster dl, .ps-poster dd, .ps-poster h4 { margin: 0; }

/* ═══ 7. Naambord ════════════════════════════════════════════════════════════ */
.ps-t-naambord { color: #1c1c1c; }
.nb-kop { flex: none; position: relative; background: var(--ps-kleur); color: var(--ps-op); padding: 2mm 30mm 12mm; }
.nb-naam { display: block; text-align: center; font-family: 'Caveat Brush', 'Kalam', cursive; font-size: 11.5em; line-height: 1; }
.nb-poot { position: absolute; top: 44%; font-size: 4.4em; line-height: 0; }
.nb-poot-l { left: 9mm; transform: translateY(-50%) rotate(-16deg); }
.nb-poot-r { right: 9mm; transform: translateY(-50%) rotate(16deg); }
.nb-band { flex: none; position: relative; margin: -10mm 11mm 0; padding: 2.5mm 26mm 3.5mm; color: #fff; display: flex; justify-content: center; }
.nb-band-tekst { position: relative; display: block; text-align: center; font-family: 'Caveat Brush', 'Kalam', cursive; font-size: 5.6em; line-height: 1.05; letter-spacing: .05em; }
.nb-str { position: absolute; top: 50%; width: 11mm; color: #fff; }
.nb-str-l { left: 12mm; transform: translateY(-50%); }
.nb-str-r { right: 12mm; transform: translateY(-50%) scaleX(-1); }
.nb-midden { flex: 1 0 auto; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 6mm; padding: 5mm 9mm 0; }
.nb-foto { position: relative; display: flex; flex-direction: column; padding-bottom: 12mm; min-height: 105mm; }
.nb-foto-vlak { position: relative; flex: 1; overflow: hidden; border-radius: 1.5mm; background: var(--ps-zacht); }
.nb-foto-vlak .ps-foto-img { position: absolute; inset: 0; }
.nb-leeg, .sd-leeg, .ln-leeg, .rm-leeg, .pa-leeg, .fr-leeg, .kr-leeg, .dp-leeg, .fl-leeg, .kj-leeg {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  color: var(--ps-kleur); font-size: 8em; opacity: .5;
}
.nb-geel { position: absolute; left: -3mm; right: 10mm; bottom: 0; padding: 3.5mm 9mm 4.5mm; color: #141414; text-align: center; transform: rotate(-3deg); }
.nb-geel span { position: relative; display: block; font-family: 'Kalam', cursive; font-weight: 700; font-size: 1.85em; line-height: 1.1; }
.nb-geel .bi { font-size: .7em; margin-left: .35em; }
.nb-info { min-width: 0; display: flex; flex-direction: column; gap: 1.6mm; padding-top: 1mm; }
.nb-zin { font-weight: 700; font-size: 1.3em; line-height: 1.2; }
.nb-label { position: relative; align-self: flex-start; max-width: 100%; margin-left: -2mm; padding: 1.4mm 8mm 2mm 6mm; color: var(--ps-op); }
.nb-label span { position: relative; display: block; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 2.05em; line-height: 1.1; }
.nb-omst { font-size: 1em; line-height: 1.3; font-style: italic; color: #3a3a3a; }
.nb-plek { display: flex; gap: 2mm; align-items: flex-start; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 1.6em; line-height: 1.15; }
.nb-plek .bi { flex: none; color: var(--ps-inkt); font-size: 1.15em; line-height: 1; }
.nb-lijn { border: 0; border-top: .6mm solid var(--ps-kleur); width: 60%; margin: 1.5mm auto; }
.nb-lijst { list-style: none; padding: 0; display: grid; gap: .6mm; font-size: 1.12em; line-height: 1.3; }
.nb-lijst li { display: flex; gap: 2mm; align-items: baseline; }
.nb-lijst .ps-poot { color: var(--ps-inkt); font-size: .85em; }
.nb-beloning { font-weight: 700; font-size: 1.1em; }
.nb-beloning .bi { color: var(--ps-inkt); margin-right: 1.5mm; }
.nb-oproep { font-size: 1.1em; line-height: 1.3; }
.nb-tips { font-weight: 800; font-size: 1.1em; line-height: 1.3; }
.nb-gedrag { position: relative; margin-top: auto; padding: 3mm 7mm 3.6mm; color: var(--ps-op); text-align: center; transform: rotate(-1.5deg); }
.nb-gedrag span { position: relative; display: block; font-family: 'Kalam', cursive; font-weight: 700; font-size: 1.4em; line-height: 1.15; }
.nb-gedrag .bi { font-size: .75em; margin-left: .35em; }
.nb-bel { flex: none; display: flex; align-items: center; gap: 5mm; margin-top: 5mm; padding: 4mm 9mm; background: var(--ps-kleur); color: var(--ps-op); }
.nb-bel-icoon { flex: none; width: 21mm; height: 21mm; border-radius: 50%; border: 1.3mm solid currentColor; display: flex; align-items: center; justify-content: center; font-size: 2.5em; }
.nb-bel-midden { flex: 1; min-width: 0; }
.nb-vraag { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 1.55em; line-height: 1.15; margin-bottom: 1.5mm; }
.nb-nummers { display: grid; gap: 2mm; }
.nb-c2, .nb-c3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nb-c3 .nb-nummer:first-child { grid-column: span 2; }
.nb-nummer { display: flex; align-items: baseline; gap: 3mm; min-width: 0; padding: 1mm 4mm; border-radius: 2mm; background: #fff; color: #141414; }
.nb-wie { flex: 0 1 auto; display: block; max-width: 45%; font-weight: 700; font-size: 1.1em; }
.nb-nr { flex: 1 1 auto; display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 3.5em; line-height: 1.1; }
.nb-c2 .nb-nr, .nb-c3 .nb-nr { font-size: 2.3em; }
.nb-c3 .nb-nummer:first-child .nb-nr { font-size: 3em; }
.nb-qr { flex: none; width: 24mm; text-align: center; font-weight: 700; font-size: .8em; text-transform: uppercase; letter-spacing: .04em; }
.nb-qr .ps-qr { padding: 1.5mm; border-radius: 1.5mm; margin-bottom: 1mm; }
.nb-deel { flex: none; display: flex; align-items: center; justify-content: center; gap: 3mm; padding: 2.4mm 9mm 3mm; font-family: 'Kalam', cursive; font-weight: 700; font-size: 1.5em; color: var(--ps-inkt); }
.nb-deel span { display: block; }
.nb-deel .ps-poot { font-size: .9em; }

/* ═══ 8. Spandoek ════════════════════════════════════════════════════════════ */
.ps-t-spandoek { color: #1c1c1c; }
.ps-t-spandoek .ps-inhoud { padding: 6mm 6mm 0; }
.sd-kop { flex: none; display: flex; align-items: center; gap: 4mm; padding: 0 7mm; background: var(--ps-kleur); color: var(--ps-op); }
.sd-kop-tekst { flex: 1; display: block; text-align: center; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 8.4em; line-height: 1.12; letter-spacing: .03em; }
.sd-poot { flex: none; font-size: 3.6em; line-height: 0; transform: rotate(-15deg); }
.sd-poot-r { transform: rotate(15deg); }
.sd-sub { flex: none; display: flex; align-items: center; justify-content: center; gap: 3mm; margin-top: 2.5mm; padding: 0 12mm; font-family: 'Kalam', cursive; font-weight: 700; text-transform: uppercase; font-size: 1.7em; letter-spacing: .06em; line-height: 1.2; }
.sd-sub span { display: block; }
.sd-sub .bi { flex: none; color: var(--ps-inkt); font-size: .7em; }
.sd-naam { flex: none; display: block; text-align: center; padding: 0 6mm; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; color: var(--ps-inkt); font-size: 7em; line-height: 1.08; letter-spacing: .02em; }
.sd-band { flex: none; position: relative; margin: 1.5mm 20mm 4mm; padding: 3mm 16mm 3.6mm; color: #fff; text-align: center; }
.sd-band-tekst { position: relative; }
.sd-band-groot { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 2.3em; line-height: 1.12; }
.sd-band-klein { display: block; font-family: 'Oswald', sans-serif; font-weight: 500; text-transform: uppercase; font-size: 1.15em; line-height: 1.2; }
.sd-str { position: absolute; left: -13mm; top: 50%; width: 10mm; color: var(--ps-inkt); transform: translateY(-50%); }
.sd-str-r { left: auto; right: -13mm; transform: translateY(-50%) scaleX(-1); }
.sd-rij { flex: 1 0 auto; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.15fr) minmax(0, .95fr); gap: 4mm; min-height: 78mm; }
.sd-rij-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.sd-foto { position: relative; overflow: hidden; min-height: 30mm; border-radius: 1mm; background: var(--ps-zacht); }
.sd-foto .ps-foto-img { position: absolute; inset: 0; }
.sd-tekst { min-width: 0; display: flex; flex-direction: column; gap: 2mm; padding-top: .5mm; text-align: center; font-size: 1.02em; line-height: 1.3; }
.sd-rood { color: var(--ps-inkt); font-weight: 700; }
.sd-vet { font-weight: 800; }
.sd-vet .bi { color: var(--ps-inkt); }
.sd-scheiding { display: flex; align-items: center; gap: 2mm; color: var(--ps-inkt); font-size: .8em; }
.sd-scheiding::before, .sd-scheiding::after { content: ""; flex: 1; border-top: .4mm solid #1c1c1c; }
.sd-kaart { margin-top: auto; padding: 2.5mm 3.5mm 3mm; border-radius: 2.5mm; background: var(--ps-zacht); text-align: left; }
.sd-kaart h3 { display: block; text-align: center; margin-bottom: 1.2mm; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; color: var(--ps-diep); font-size: 1.5em; line-height: 1.15; }
.sd-kaart ul { list-style: none; padding: 0; display: grid; gap: .6mm; font-size: .98em; line-height: 1.3; }
.sd-kaart li { display: flex; gap: 1.8mm; align-items: baseline; }
.sd-kaart .ps-poot { font-size: .8em; }
.sd-stapel { display: grid; gap: 4mm; grid-template-rows: repeat(2, minmax(0, 1fr)); }
.sd-s1 { grid-template-rows: minmax(0, 1fr); }
.sd-onder { flex: none; display: flex; align-items: center; gap: 4mm; margin-top: 4mm; }
.sd-hart { flex: none; position: relative; width: 38mm; height: 35mm; display: flex; align-items: center; justify-content: center; text-align: center; color: var(--ps-op); }
.sd-hart .ps-hart { position: absolute; inset: 0; width: 100%; height: 100%; fill: var(--ps-kleur); }
.sd-hart span { position: relative; padding: 0 7mm 6mm; font-family: 'Kalam', cursive; font-weight: 700; font-size: 1.05em; line-height: 1.1; }
.sd-thuis { flex: 1; min-width: 0; text-align: center; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 1.75em; line-height: 1.15; }
.sd-thuis .bi { display: block; margin-top: 1mm; color: var(--ps-inkt); font-size: .7em; }
.sd-contact { flex: 1.2; min-width: 0; display: flex; align-items: center; gap: 3mm; padding: 3mm 4mm; border-radius: 3mm; background: #141414; color: #fff; }
.sd-contact-tekst { flex: 1; min-width: 0; text-align: center; }
.sd-vraag { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 1.25em; line-height: 1.15; }
.sd-actie { display: block; margin: .6mm 0; font-weight: 700; text-transform: uppercase; font-size: .85em; letter-spacing: .04em; color: var(--ps-opzwart); }
.sd-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 2.6em; line-height: 1.1; }
.sd-extra { display: block; font-family: 'Oswald', sans-serif; font-weight: 500; font-size: 1.35em; line-height: 1.2; }
.sd-nr .bi, .sd-extra .bi { font-size: .6em; margin-right: .3em; vertical-align: .15em; }
.sd-qr { flex: none; width: 18mm; }
.sd-qr .ps-qr { padding: 1.2mm; border-radius: 1mm; }
.sd-info { flex: none; display: flex; margin: 4mm -6mm 0; background: var(--ps-kleur); color: var(--ps-op); font-family: 'Oswald', sans-serif; font-weight: 500; text-transform: uppercase; font-size: 1.15em; line-height: 1.2; }
.sd-info > div { flex: 1; min-width: 0; display: flex; align-items: center; gap: 3mm; padding: 2.5mm 8mm; }
.sd-info > div + div { border-left: .5mm solid currentColor; }
.sd-info .bi { flex: none; font-size: 2em; }
.sd-voet { flex: none; display: flex; align-items: center; justify-content: center; gap: 3mm; margin: 0 -6mm; padding: 2.4mm 8mm; background: #141414; color: #fff; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 1.2em; letter-spacing: .03em; }
.sd-voet span { display: block; }

/* ═══ 9. Lint ════════════════════════════════════════════════════════════════ */
.ps-t-lint { background: #fbf4e6; color: #1f1a14; }
.ps-t-lint .ps-inhoud { padding: 5mm 8mm 3.5mm; }
.ln-kop { flex: none; display: flex; align-items: center; gap: 3mm; color: var(--ps-inkt); }
.ln-kop-tekst { flex: 1; display: block; text-align: center; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 10.5em; line-height: 1.08; letter-spacing: .02em; }
.ln-str { flex: none; width: 9mm; align-self: flex-start; margin-top: 6mm; color: #1f1a14; }
.ln-str-r svg { transform: scaleX(-1); }
.ln-lint { flex: none; display: flex; align-items: center; justify-content: center; gap: 4mm; margin: 1mm -3mm 5mm; padding: 2.2mm 16mm 2.6mm; background: #ffd23f; color: #141414; clip-path: polygon(0 0, 100% 0, 97% 50%, 100% 100%, 0 100%, 3% 50%); }
.ln-lint span { display: block; font-weight: 800; font-size: 2.3em; line-height: 1.15; }
.ln-lint .bi { flex: none; color: var(--ps-diep); font-size: 1.3em; }
.ln-midden { flex: 1 0 auto; display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1fr); gap: 5mm; }
.ln-links { min-width: 0; display: flex; flex-direction: column; gap: 4mm; }
.ln-regels { list-style: none; padding: 0; }
.ln-regels li { display: flex; gap: 3mm; align-items: flex-start; padding: 2.2mm 0; border-bottom: .6mm dotted var(--ps-kleur); font-size: 1.08em; line-height: 1.32; }
.ln-regels li:first-child { padding-top: 0; }
.ln-regels li:last-child { border-bottom: 0; }
.ln-icoon { flex: none; width: 9mm; text-align: center; color: var(--ps-diep); font-size: 1.8em; line-height: 1; }
.ln-rood { color: var(--ps-diep); }
.ln-klein { position: relative; flex: 1 1 auto; min-height: 42mm; margin: 0 2mm 2mm; overflow: hidden; border: 1.6mm solid #fff; background: #ddd; box-shadow: 0 1mm 3mm rgba(0, 0, 0, .22); transform: rotate(-2.5deg); }
.ln-klein .ps-foto-img { position: absolute; inset: 0; }
.ln-groot { position: relative; min-height: 100mm; overflow: hidden; border-radius: 2mm; background: var(--ps-zacht); }
.ln-groot .ps-foto-img { position: absolute; inset: 0; }
.ln-naam { position: absolute; left: 4mm; bottom: 4mm; display: block; max-width: calc(100% - 8mm); padding: 1mm 5mm 1.5mm; border-radius: 1.5mm; background: #fff; color: #141414; box-shadow: 0 .6mm 2mm rgba(0, 0, 0, .25); font-family: 'Kalam', cursive; font-weight: 700; font-size: 2.4em; line-height: 1.15; transform: rotate(-2deg); }
.ln-regio { flex: none; display: flex; align-items: center; justify-content: center; gap: 3mm; margin-top: 4mm; padding: 2.4mm 8mm; border-radius: 1.5mm; background: #ffd23f; color: #141414; font-weight: 800; font-size: 1.7em; }
.ln-regio span { display: block; }
.ln-regio .bi { flex: none; color: var(--ps-diep); }
.ln-contact { flex: none; display: flex; align-items: center; gap: 5mm; margin-top: 3mm; padding: 3.5mm 7mm; border-radius: 2mm; background: var(--ps-kleur); color: var(--ps-op); }
.ln-lijst { flex: 1; min-width: 0; }
.ln-titel { display: flex; align-items: center; gap: 4mm; margin-bottom: 1mm; padding-bottom: 1.5mm; border-bottom: .4mm dashed currentColor; font-weight: 800; font-size: 1.8em; }
.ln-titel > span:last-child { display: block; }
.ln-rondje { flex: none; width: 10mm; height: 10mm; border-radius: 50%; background: #fff; color: var(--ps-inkt); display: flex; align-items: center; justify-content: center; font-size: 4.6mm; }
.ln-persoon { display: flex; align-items: center; gap: 3mm; padding: 1.2mm 0; }
.ln-persoon + .ln-persoon { border-top: .4mm dashed currentColor; }
.ln-wie { flex: none; max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 800; font-size: 1.9em; }
.ln-nr { flex: 1; display: block; font-weight: 800; font-size: 2.5em; line-height: 1.1; letter-spacing: .01em; }
.ln-rechts { flex: none; width: 40mm; text-align: center; }
.ln-grote-poot { display: block; font-size: 4.2em; line-height: 1; }
.ln-qr { width: 24mm; margin: 0 auto 1.5mm; }
.ln-qr .ps-qr { padding: 1.5mm; border-radius: 1.5mm; }
.ln-thuis { font-family: 'Kalam', cursive; font-weight: 700; font-size: 1.55em; line-height: 1.1; }
.ln-voet { flex: none; display: flex; align-items: center; justify-content: center; gap: 3mm; padding-top: 2.5mm; font-weight: 800; font-size: 1.3em; }
.ln-voet span { display: block; }
.ln-voet .bi { color: var(--ps-diep); font-size: .8em; }

/* ═══ 10. Raamposter ═════════════════════════════════════════════════════════ */
.ps-t-raam { color: #111; }
.ps-t-raam .ps-inhoud { border: 5mm solid var(--ps-kleur); padding: 0 6mm 5mm; }
.rm-kop { flex: none; margin: 0 -6mm; padding: 0 6mm 1.5mm; background: var(--ps-kleur); color: var(--ps-op); }
.rm-kop span { display: block; text-align: center; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 12.5em; line-height: 1.08; letter-spacing: .04em; }
.rm-foto { flex: 1 1 auto; position: relative; min-height: 85mm; margin-top: 5mm; overflow: hidden; border-radius: 2mm; background: var(--ps-zacht); }
.rm-foto .ps-foto-img { position: absolute; inset: 0; }
.rm-naam { flex: none; display: block; text-align: center; margin-top: 2.5mm; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 7.5em; line-height: 1.08; }
.rm-regel { flex: none; display: block; text-align: center; font-weight: 800; font-size: 2.2em; line-height: 1.2; }
.rm-punt { display: inline-block; width: .32em; height: .32em; margin: 0 .5em; border-radius: 50%; background: var(--ps-kleur); vertical-align: .2em; }
.rm-beloning { flex: none; display: block; text-align: center; margin-top: 1mm; font-weight: 700; font-size: 1.6em; color: var(--ps-inkt); }
.rm-beloning .bi { margin-right: .35em; }
.rm-bel { flex: none; display: flex; align-items: center; gap: 5mm; margin-top: 4mm; padding: 3mm 6mm; border-radius: 2mm; background: #111; color: #fff; }
.rm-bel-tekst { flex: 1; min-width: 0; text-align: center; }
.rm-vraag { display: block; font-weight: 800; font-size: 1.9em; line-height: 1.15; }
.rm-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 8em; line-height: 1.05; color: var(--ps-opzwart); }
.rm-qr { flex: none; width: 26mm; }
.rm-qr .ps-qr { padding: 1.5mm; border-radius: 1.5mm; }

/* ═══ 11. Pastel ═════════════════════════════════════════════════════════════ */
.ps-t-pastel { background: #fcfaff; color: #2a2438; }
.ps-t-pastel .ps-inhoud { position: relative; padding: 9mm 12mm 7mm; }
.pa-vormen { position: absolute; inset: 0; width: 100%; height: 100%; }
.ps-t-pastel .ps-inhoud > :not(.pa-vormen) { position: relative; }
.pa-kop { flex: none; text-align: center; }
.pa-pil { display: inline-block; max-width: 100%; padding: 1.5mm 8mm 1.8mm; border-radius: 99mm; background: var(--ps-diep); color: #fff; font-weight: 800; text-transform: uppercase; letter-spacing: .18em; font-size: 1.7em; line-height: 1.2; vertical-align: top; }
.pa-naam { flex: none; display: block; text-align: center; margin-top: 2mm; font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 8.5em; line-height: 1.02; color: var(--ps-diep); }
.pa-sub { flex: none; text-align: center; margin-top: 1mm !important; font-family: 'Fraunces', Georgia, serif; font-style: italic; font-size: 1.55em; line-height: 1.25; color: #4a4260; }
.pa-fotos { flex: 1 1 auto; position: relative; min-height: 78mm; margin: 5mm 22mm 0; }
.pa-boog { position: absolute; inset: 0; overflow: hidden; border: 2mm solid #fff; border-radius: 90mm 90mm 5mm 5mm; background: #e9e1f7; box-shadow: 0 2mm 6mm rgba(60, 40, 100, .15); }
.pa-boog .ps-foto-img { position: absolute; inset: 0; }
.pa-rondjes { display: contents; }
.pa-rond { position: absolute; width: 30mm; height: 30mm; overflow: hidden; border: 1.5mm solid #fff; border-radius: 50%; background: #dcf1de; box-shadow: 0 1.2mm 4mm rgba(60, 40, 100, .18); }
.pa-rond .ps-foto-img { position: absolute; inset: 0; }
.pa-rond0 { left: -16mm; bottom: 6mm; }
.pa-rond1 { right: -16mm; bottom: 26mm; }
.pa-intro { flex: none; text-align: center; margin-top: 5mm !important; font-size: 1.2em; line-height: 1.35; }
.pa-hartje { flex: none; text-align: center; font-family: 'Kalam', cursive; font-weight: 700; font-size: 1.8em; line-height: 1.2; color: var(--ps-diep); }
.pa-hartje .bi { font-size: .65em; vertical-align: .12em; }
.pa-kaarten { flex: none; display: grid; gap: 4mm; margin-top: 4mm; }
.pa-k1 { grid-template-columns: 1fr; } .pa-k2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pa-k3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pa-kaart { min-width: 0; padding: 3.5mm 4mm; border-radius: 5mm; font-size: 1em; line-height: 1.35; }
.pa-lila { background: #ece5f8; } .pa-blauw { background: #deeefb; } .pa-groen { background: #e0f2e2; }
.pa-kaart h3 { display: flex; align-items: center; gap: 2mm; margin-bottom: 1.5mm; font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 1.2em; color: var(--ps-diep); }
.pa-kaart h3 span { flex: none; width: 8mm; height: 8mm; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; font-size: .8em; }
.pa-kaart ul { padding-left: 4.5mm; }
.pa-kaart p + p { margin-top: 1mm; }
.pa-bel { flex: none; display: flex; align-items: center; gap: 5mm; margin-top: 5mm; padding: 4mm 7mm; border: .6mm solid #e3dcf2; border-radius: 9mm; background: #fff; box-shadow: 0 1.5mm 5mm rgba(60, 40, 100, .14); }
.pa-bel-tekst { flex: 1; min-width: 0; text-align: center; }
.pa-vraag { display: block; font-family: 'Fraunces', Georgia, serif; font-weight: 600; font-size: 1.45em; color: #4a4260; }
.pa-nr { display: block; font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 4.4em; line-height: 1.1; color: var(--ps-diep); }
.pa-actie { display: block; font-size: 1em; color: #4a4260; }
.pa-qr { flex: none; width: 22mm; }
.pa-thuis { flex: none; display: block; text-align: center; margin-top: 3.5mm !important; font-family: 'Kalam', cursive; font-weight: 700; font-size: 1.7em; color: #2a2438; }

/* ═══ 12. Fotoraster ═════════════════════════════════════════════════════════ */
.ps-t-fotoraster { color: #141414; }
.ps-t-fotoraster .ps-inhoud { padding: 7mm 7mm 5mm; }
.fr-kop { flex: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 6mm; margin-bottom: 4mm; }
.fr-kop-tekst { flex: 0 1 auto; display: block; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 7.5em; line-height: 1; color: var(--ps-inkt); }
.fr-naam { flex: 0 1 auto; display: block; font-family: 'Caveat Brush', 'Kalam', cursive; font-size: 6.6em; line-height: 1; }
.fr-raster { flex: 1 1 auto; min-height: 120mm; display: grid; gap: 2.5mm; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr); }
.fr-f { position: relative; overflow: hidden; min-height: 0; grid-column: span 6; background: #eee; }
.fr-f .ps-foto-img { position: absolute; inset: 0; }
.fr-n2 .fr-f { grid-column: span 3; }
.fr-n3 { grid-template-rows: minmax(0, 1.35fr) minmax(0, 1fr); }
.fr-n3 .fr-f1, .fr-n3 .fr-f2 { grid-column: span 3; }
.fr-n4 { grid-template-rows: repeat(2, minmax(0, 1fr)); }
.fr-n4 .fr-f { grid-column: span 3; }
.fr-n5 { grid-template-rows: minmax(0, 1.2fr) minmax(0, 1fr); }
.fr-n5 .fr-f0, .fr-n5 .fr-f1 { grid-column: span 3; }
.fr-n5 .fr-f2, .fr-n5 .fr-f3, .fr-n5 .fr-f4 { grid-column: span 2; }
.fr-n6 { grid-template-rows: repeat(3, minmax(0, 1fr)); }
.fr-n6 .fr-f { grid-column: span 3; }
.fr-voet { flex: none; display: flex; align-items: center; gap: 6mm; margin-top: 4mm; padding: 3.5mm 6mm; background: var(--ps-kleur); color: var(--ps-op); }
.fr-bel { flex: 1; min-width: 0; }
.fr-regel { display: block; font-weight: 700; font-size: 1.35em; line-height: 1.25; }
.fr-vraag { display: block; margin-top: 1mm; font-weight: 800; font-size: 1.3em; }
.fr-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 4.6em; line-height: 1.05; }
.fr-nr small { margin-left: .8em; font-family: 'Figtree', sans-serif; font-weight: 600; font-size: .3em; vertical-align: .45em; }
.fr-qr { flex: none; width: 26mm; text-align: center; font-weight: 700; font-size: .75em; text-transform: uppercase; }
.fr-qr .ps-qr { padding: 1.5mm; border-radius: 1.5mm; margin-bottom: 1mm; }
.fr-deel { flex: none; display: block; text-align: center; padding-top: 2.5mm; font-weight: 700; font-size: 1.2em; }

/* ═══ 13. Buurtkrant ═════════════════════════════════════════════════════════ */
.ps-t-krant { color: #161616; font-family: 'Fraunces', Georgia, serif; }
.ps-t-krant .ps-inhoud { padding: 8mm 11mm 6mm; }
.kr-kop { flex: none; text-align: center; }
.kr-titel { display: block; font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 7.4em; line-height: 1.02; letter-spacing: -.01em; }
.kr-editie { display: flex; justify-content: space-between; gap: 4mm; margin-top: 1.5mm; padding: 1.2mm 0; border-top: 1.2mm double #161616; border-bottom: .4mm solid #161616; font-family: 'Figtree', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .82em; }
.kr-kicker { flex: none; margin-top: 4.5mm; }
.kr-kicker span { display: inline-block; padding: .8mm 3mm; background: var(--ps-kleur); color: var(--ps-op); font-family: 'Figtree', sans-serif; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; font-size: 1.2em; }
.kr-kopregel { flex: none; margin-top: 2mm !important; font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 4.3em; line-height: 1.03; letter-spacing: -.015em; text-wrap: balance; }
.kr-lead { flex: none; margin-top: 2.5mm !important; font-size: 1.35em; line-height: 1.35; font-style: italic; color: #333; }
.kr-midden { flex: 1 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) 58mm; gap: 6mm; margin-top: 4.5mm; }
.kr-foto { display: flex; flex-direction: column; min-width: 0; }
.kr-beeld { position: relative; flex: 1; min-height: 72mm; overflow: hidden; background: #e7e7e7; }
.kr-beeld > .ps-foto-img { position: absolute; inset: 0; }
.kr-inzet { position: absolute; right: 3mm; bottom: 3mm; display: flex; gap: 2mm; }
.kr-inzet > div { position: relative; width: 25mm; height: 25mm; overflow: hidden; border: 1mm solid #fff; background: #ddd; }
.kr-inzet .ps-foto-img { position: absolute; inset: 0; }
.kr-foto figcaption { margin-top: 1.5mm; padding-bottom: 1.5mm; border-bottom: .3mm solid #bbb; font-family: 'Figtree', sans-serif; font-size: .9em; color: #444; }
.kr-kader { min-width: 0; display: flex; flex-direction: column; gap: 2mm; padding: 4mm; border: .8mm solid #161616; border-top: 3mm solid var(--ps-kleur); font-family: 'Figtree', sans-serif; }
.kr-kader h4 { font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 1.5em; line-height: 1.15; }
.kr-persoon { display: flex; flex-direction: column; min-width: 0; }
.kr-wie { font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: .85em; color: #4a4a4a; }
.kr-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 2.7em; line-height: 1.05; }
.kr-extra { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 1.8em; line-height: 1.1; }
.kr-actie { font-size: .95em; }
.kr-qr { display: flex; align-items: center; gap: 2.5mm; margin-top: auto; font-size: .78em; line-height: 1.25; }
.kr-qr .ps-qr { flex: none; width: 20mm; }
.kr-kolommen { flex: none; margin-top: 4mm; column-count: 3; column-gap: 6mm; column-rule: .3mm solid #c8c8c8; font-size: 1em; line-height: 1.4; }
.kr-kolommen p { margin: 0 0 1.5mm; }
.kr-kolommen > p:first-child::first-letter { float: left; padding: .6mm 1.5mm 0 0; font-size: 3.1em; line-height: .85; font-weight: 700; color: var(--ps-inkt); }
.kr-kolommen h4 { margin: 0 0 .5mm; font-family: 'Figtree', sans-serif; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: .8em; color: var(--ps-inkt); break-after: avoid; }
.kr-kolommen ul { margin: 0 0 1.5mm; padding-left: 4mm; }
.kr-voet { flex: none; display: block; text-align: center; margin-top: 3mm; padding-top: 2mm; border-top: .5mm solid #161616; font-family: 'Figtree', sans-serif; font-weight: 700; font-size: 1.1em; }

/* ═══ 14. Dierenpas ══════════════════════════════════════════════════════════ */
.ps-t-dierenpas { color: #15201f; }
.ps-t-dierenpas .ps-inhoud { padding: 8mm 11mm 7mm; }
.dp-kop span { display: block; text-align: center; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 9em; line-height: 1.08; letter-spacing: .06em; color: var(--ps-inkt); }
.dp-kop { flex: none; }
.dp-pas {
  flex: none; position: relative; margin-top: 4mm; overflow: hidden;
  border: .5mm solid color-mix(in srgb, var(--ps-kleur) 45%, #fff); border-radius: 5mm;
  background-color: var(--ps-zacht);
  background-image: repeating-radial-gradient(circle at 88% 115%, transparent 0 2.2mm, rgba(255, 255, 255, .6) 2.2mm 2.6mm);
  box-shadow: 0 1.5mm 5mm rgba(0, 0, 0, .12);
}
.dp-pas-kop { display: flex; justify-content: space-between; align-items: center; gap: 4mm; padding: 3mm 6mm; background: var(--ps-kleur); color: var(--ps-op); font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: 1.05em; }
.dp-pas-kop .ps-poot { margin-right: 2mm; font-size: 1.2em; }
.dp-pas-datum { letter-spacing: .04em; }
.dp-pas-lijf { display: grid; grid-template-columns: 60mm minmax(0, 1fr); gap: 6mm; padding: 5mm 6mm 6mm; }
.dp-pasfoto { position: relative; aspect-ratio: 3 / 4; overflow: hidden; border: 1mm solid #fff; border-radius: 2.5mm; background: #fff; box-shadow: 0 .6mm 2mm rgba(0, 0, 0, .15); }
.dp-pasfoto .ps-foto-img { position: absolute; inset: 0; }
.dp-velden { min-width: 0; display: grid; gap: 2.6mm; align-content: start; }
.dp-rij dt { font-weight: 800; text-transform: uppercase; letter-spacing: .1em; font-size: .74em; color: var(--ps-diep); }
.dp-rij dd { font-size: 1.15em; line-height: 1.3; font-weight: 600; }
.dp-rij dd.dp-naam { display: block; font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 3.6em; line-height: 1.05; }
.dp-stempel { position: absolute; left: 12mm; top: 80mm; padding: .6mm 4mm; border: 1.1mm solid var(--ps-inkt); border-radius: 1.5mm; background: rgba(255, 255, 255, .88); color: var(--ps-inkt); font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: 2.6em; line-height: 1.1; transform: rotate(-11deg); box-shadow: inset 0 0 0 .7mm #fff, inset 0 0 0 1.1mm var(--ps-inkt); }
.dp-weten { flex: none; margin-top: 5mm; padding: 1mm 0 1mm 5mm; border-left: 1.5mm solid var(--ps-kleur); }
.dp-weten h3 { margin-bottom: 1.5mm; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; font-size: .85em; color: var(--ps-inkt); }
.dp-weten p { display: flex; gap: 2.5mm; align-items: baseline; font-size: 1.15em; line-height: 1.35; }
.dp-weten p + p { margin-top: 1mm; }
.dp-weten .bi { flex: none; color: var(--ps-inkt); }
.dp-fotos { flex: 1 1 auto; display: grid; gap: 3mm; margin-top: 5mm; }
.dp-f0 { margin-top: 0; }
.dp-f1 { grid-template-columns: 1fr; } .dp-f2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dp-f3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dp-fotos > div { position: relative; min-height: 28mm; overflow: hidden; border-radius: 3mm; background: #eee; }
.dp-fotos .ps-foto-img { position: absolute; inset: 0; }
.dp-bel { flex: none; display: flex; align-items: center; gap: 6mm; margin-top: 5mm; padding: 4mm 6mm; border-radius: 4mm; background: #15201f; color: #fff; }
.dp-bel-tekst { flex: 1; min-width: 0; }
.dp-vraag { display: block; font-weight: 800; font-size: 1.35em; }
.dp-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 4.2em; line-height: 1.05; color: var(--ps-opzwart); }
.dp-extra { display: block; font-family: 'Oswald', sans-serif; font-weight: 500; font-size: 2em; line-height: 1.15; }
.dp-nr small, .dp-extra small { margin-right: .6em; font-family: 'Figtree', sans-serif; font-weight: 700; font-size: .4em; text-transform: uppercase; letter-spacing: .05em; vertical-align: .35em; color: #fff; }
.dp-qr { flex: none; width: 26mm; text-align: center; font-weight: 700; font-size: .75em; text-transform: uppercase; }
.dp-qr .ps-qr { padding: 1.5mm; border-radius: 1.5mm; margin-bottom: 1mm; }

/* ═══ 15. Flyers: twee A5 liggend op een A4 ══════════════════════════════════ */
.ps-t-flyers { color: #141414; }
.fl-vel { position: relative; flex: 1; min-height: 0; display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); }
.fl-flyer { position: relative; min-height: 0; overflow: hidden; display: grid; grid-template-columns: 76mm minmax(0, 1fr); gap: 6mm; padding: 9mm; }
.fl-foto { position: relative; overflow: hidden; border-radius: 3mm; background: var(--ps-zacht); }
.fl-foto .ps-foto-img { position: absolute; inset: 0; }
.fl-tekst { min-width: 0; display: flex; flex-direction: column; gap: 1.3mm; }
.fl-kop { display: block; align-self: flex-start; max-width: 100%; padding: 0 4mm; background: var(--ps-kleur); color: var(--ps-op); font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 3.4em; line-height: 1.12; letter-spacing: .04em; }
.fl-naam { display: block; font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 3.2em; line-height: 1.05; }
.fl-waar { display: flex; gap: 2mm; align-items: baseline; font-weight: 700; font-size: 1.05em; line-height: 1.25; }
.fl-waar .bi { flex: none; color: var(--ps-inkt); }
.fl-intro { font-size: .98em; line-height: 1.3; }
.fl-km { list-style: none; padding: 0; font-size: .95em; line-height: 1.3; }
.fl-km li { display: flex; gap: 1.6mm; align-items: baseline; }
.fl-km .ps-poot { color: var(--ps-inkt); font-size: .8em; }
.fl-bel { margin-top: auto; display: flex; align-items: center; gap: 3mm; padding-top: 2mm; border-top: .5mm solid var(--ps-kleur); }
.fl-bel-tekst { flex: 1; min-width: 0; }
.fl-vraag { display: block; font-weight: 800; font-size: 1.05em; }
.fl-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 3em; line-height: 1.05; color: var(--ps-inkt); }
.fl-extra { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 1.8em; line-height: 1.1; }
.fl-nr small, .fl-extra small { margin-left: .7em; font-family: 'Figtree', sans-serif; font-weight: 600; font-size: .38em; color: #444; vertical-align: .3em; }
.fl-qr { flex: none; width: 19mm; }
.fl-deel { font-size: .85em; font-weight: 600; color: #444; }
.fl-spoed, .kj-spoed { flex: none; display: flex; align-items: center; justify-content: center; gap: 2mm; padding: 1mm 3mm; border-radius: 1mm; background: #b3261e; color: #fff; font-weight: 800; font-size: .9em; }
.fl-spoed span, .kj-spoed span { display: block; }
.fl-snij { position: absolute; left: 0; right: 0; top: 50%; height: 0; border-top: .45mm dashed #555; }
.fl-snij .bi { position: absolute; left: 6mm; top: 0; padding: 0 1.5mm; background: #fff; color: #555; font-size: 1.3em; line-height: 1; transform: translateY(-55%); }
.fl-snij span { position: absolute; right: 6mm; top: 0; padding: 0 2mm; background: #fff; color: #555; font-size: .7em; text-transform: uppercase; letter-spacing: .1em; transform: translateY(-50%); }

/* ═══ 16. Brievenbuskaartjes: vier A6 op een A4 ══════════════════════════════ */
.ps-t-kaartjes { color: #141414; }
.kj-vel { position: relative; flex: 1; min-height: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); }
.kj-kaart { min-height: 0; overflow: hidden; display: flex; flex-direction: column; gap: 1.5mm; padding: 7mm 7mm 6mm; text-align: center; }
.kj-kop { flex: none; display: block; border-radius: 1.5mm; background: var(--ps-kleur); color: var(--ps-op); font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; font-size: 3.6em; line-height: 1.12; letter-spacing: .05em; }
.kj-foto { flex: 1 1 auto; position: relative; min-height: 30mm; overflow: hidden; border-radius: 2mm; background: var(--ps-zacht); }
.kj-foto .ps-foto-img { position: absolute; inset: 0; }
.kj-naam { flex: none; display: block; font-family: 'Fraunces', Georgia, serif; font-weight: 700; font-size: 3em; line-height: 1.05; }
.kj-regel { flex: none; display: block; font-weight: 700; font-size: 1.05em; }
.kj-bel { flex: none; display: flex; align-items: center; gap: 2.5mm; padding-top: 1.5mm; border-top: .4mm solid #d4d4d4; text-align: left; }
.kj-bel-tekst { flex: 1; min-width: 0; }
.kj-vraag { display: block; font-weight: 700; font-size: .95em; }
.kj-nr { display: block; font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 2.6em; line-height: 1.05; color: var(--ps-inkt); }
.kj-wie { display: block; font-size: .8em; color: #444; }
.kj-qr { flex: none; width: 17mm; }
.kj-snij-h { position: absolute; left: 0; right: 0; top: 50%; border-top: .45mm dashed #555; }
.kj-snij-v { position: absolute; top: 0; bottom: 0; left: 50%; border-left: .45mm dashed #555; }
.kj-schaar { position: absolute; left: 3mm; top: 50%; padding: 0 1mm; background: #fff; color: #555; font-size: 1.2em; line-height: 1; transform: translateY(-55%); }

/* ── Herkomst: "Poster gemaakt via chipreaders.eu" ───────────────────────────
   Witte strook onder elk ontwerp, zodat de tekst op elke achtergrond leesbaar is.
   Bij Flyers en Brievenbuskaartjes staat hij in elk exemplaar, want die worden geknipt. */
.ps-merkbalk { flex: none; display: flex; align-items: center; justify-content: center; padding: 1.3mm 6mm 1.6mm; background: #fff; border-top: .3mm solid rgba(0, 0, 0, .1); }
.ps-merk { display: inline-flex; align-items: center; justify-content: center; gap: 1.6mm; max-width: 100%; color: #3d4250; font-family: 'Figtree', system-ui, sans-serif; font-size: 2.9mm; font-weight: 500; line-height: 1; white-space: nowrap; }
.ps-merk img { display: block; height: 4.4mm; width: auto; flex: none; }
.ps-merk strong { color: #1d57b8; font-weight: 700; }
.ps-zw .ps-merk img { filter: grayscale(1); }
.ps-zw .ps-merk strong { color: #222; }
.fl-merk, .kj-merk { flex: none; align-self: center; margin-top: 1mm; font-size: 2.6mm; }
.fl-merk img, .kj-merk img { height: 3.8mm; }
