/* Overige informatiepagina's Van Yild Tegels (api/vy_paginas.py): moodboards, projecten, veelgestelde
   vragen, juridisch, bedankpagina, 404 en de SEO-landingspagina's met hun archieven.
   Bouwt voort op info.css (tokens --vi-*, secties .vi-*). Hier staat alleen wat daar ontbreekt;
   alles onder .vp (de wrapper heeft de klassen "vi vp"). Documentatie: docs/ONTWERP.md, deel 8. */

/* ------------------------------------------------------------------ kop met opmaak */
.vp .vi-hero__intro strong,.vp-hero__meer strong,.vp .vi-tmb__tekst strong,.vp-dienst strong{font-weight:600;color:var(--vy-navy)}
.vp-hero__meer{margin:16px 0 0!important;max-width:60ch}
.vp-hero__meta{margin:18px 0 0!important}
.vp-hero__meta+.vi-hero__intro{margin-top:18px!important}
.vp-datum{margin:18px 0 0!important;font-size:.875rem!important;color:var(--vi-zacht)!important;font-variant-numeric:tabular-nums}

/* Moodboard: het staande bord is het beeld, niet een uitsnede ervan */
.vp-hero--mood .vi-hero__raster{grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:start}
.vp-hero--mood .vi-hero__tekst{padding-top:clamp(0px,3vw,48px)}
.vp-mood__beeld{display:block;aspect-ratio:1810/2560;border-radius:var(--vi-r-l) var(--vi-r-l) var(--vi-r-l) 120px;overflow:hidden;background:var(--vi-kalk-2);box-shadow:var(--vi-schaduw);cursor:zoom-in}
.vp-mood__beeld img{object-fit:cover;transition:transform .9s var(--vi-ease)}
.vp-mood__beeld:hover img{transform:scale(1.02)}

/* ------------------------------------------------------------------ productkaarten van de webshop */
.vp-producten{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.8vw,24px)}
.vp-producten[data-aantal="2"]{grid-template-columns:repeat(2,minmax(0,1fr));max-width:880px}
.vp-producten>.vp-prodwrap{display:flex;flex-direction:column;width:100%;max-width:none;min-width:0;margin:0;padding:0;overflow:visible}
.vp-producten>.vp-prodwrap>.vy-col__kaart{flex:1 1 auto;width:100%;height:100%}
.vp-producten .vy-col__foto img{height:auto;aspect-ratio:1/1}

/* ------------------------------------------------------------------ badge op een foto, vinklijst */
.vp-badge{position:absolute;left:-14px;bottom:9%;display:flex;flex-direction:column;gap:2px;margin:0!important;padding:16px 22px 15px;border-radius:var(--vi-r-m) var(--vi-r-m) 4px var(--vi-r-m);background:var(--vy-navy);color:#fff!important;line-height:1.15!important;box-shadow:0 22px 40px -20px rgba(1,15,57,.6)}
.vp-badge strong{font-size:1.9rem;font-weight:600;letter-spacing:-.02em;color:#fff}
.vp-badge span{font-size:.8125rem;font-weight:400;color:rgba(255,255,255,.82)}
.vp-vink{display:grid;margin-top:26px!important;border-top:1px solid var(--vi-lijn)}
.vp-vink li{display:flex;align-items:center;gap:14px;min-height:56px;padding:12px 0;border-bottom:1px solid var(--vi-lijn);font-size:1.0625rem;font-weight:500;color:var(--vy-navy)}
.vp-vink li::before{content:"";flex:none;width:8px;height:8px;background:var(--vy-blauw)}

/* ------------------------------------------------------------------ dienstblok en fotostrook */
.vp-sec--dienst .vi-kop{margin-bottom:24px}
.vp-dienst{max-width:72ch;margin-bottom:clamp(32px,4vw,56px)}
.vp-galerij{position:relative}
.vp-strook{display:flex;gap:clamp(12px,1.4vw,20px);margin:0 calc(-1 * var(--vi-goot))!important;padding:4px var(--vi-goot) 8px!important;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding:0 var(--vi-goot)}
.vp-strook::-webkit-scrollbar{display:none}
.vp-strook:focus-visible{outline:2px solid var(--vy-blauw);outline-offset:4px}
.vp-strook li{flex:0 0 auto;width:clamp(220px,23vw,320px);scroll-snap-align:start}
.vp-strook li:nth-child(even){margin-top:0}   /* op een lijn, op verzoek van de klant */
.vp-strook a,.vp-raster a{display:block;aspect-ratio:4/5;border-radius:var(--vi-r-m);overflow:hidden;background:var(--vi-kalk-2);cursor:zoom-in}
.vp-strook img,.vp-raster img{transition:transform .9s var(--vi-ease)}
.vp-strook a:hover img,.vp-raster a:hover img{transform:scale(1.045)}
.vp-strook a:focus-visible,.vp-raster a:focus-visible,.vp-mood__beeld:focus-visible{outline:2px solid var(--vy-blauw);outline-offset:3px}
.vp-strook__pijlen{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}
.vp-strook__pijlen[hidden]{display:none}
.vp-rond{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--vy-navy);box-shadow:inset 0 0 0 1.5px rgba(1,15,57,.28);cursor:pointer;transition:box-shadow .3s var(--vi-ease),background-color .3s var(--vi-ease),opacity .3s var(--vi-ease)}
.vp-rond:hover{box-shadow:inset 0 0 0 1.5px var(--vy-navy);background:rgba(1,15,57,.04)}
.vp-rond:disabled{opacity:.32;cursor:default}
.vp-rond .vi-pijl{width:20px;height:20px}
.vp-rond[data-vp-schuif="-1"] .vi-pijl{transform:rotate(180deg)}

/* Projectgalerij: raster met een dominante eerste foto */
.vp-raster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.2vw,18px)}
.vp-raster a{aspect-ratio:1/1}
.vp-raster li:first-child{grid-column:span 2;grid-row:span 2}
.vp-raster li:first-child a{height:100%;border-radius:var(--vi-r-l) var(--vi-r-l) var(--vi-r-l) 120px}

/* ------------------------------------------------------------------ lichtbak */
.vp-bak{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(1,8,30,.94);color:#fff;overflow:hidden}
.vp-bak::backdrop{background:rgba(1,8,30,.6)}
.vp-bak[open]{display:grid;grid-template-columns:72px minmax(0,1fr) 72px;align-items:center}
.vp-bak__figuur{grid-column:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;height:100%;margin:0;padding:64px 0 28px;min-height:0}
.vp-bak__beeld{display:block;max-width:100%;max-height:calc(100% - 40px);width:auto;height:auto;object-fit:contain;border-radius:var(--vi-r-s);background:rgba(255,255,255,.04)}
.vp-bak__onder{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;font:400 .9375rem/1.4 var(--vy-font);color:rgba(255,255,255,.82);text-align:center}
.vp-bak__teller{font-variant-numeric:tabular-nums;color:rgba(255,255,255,.6)}
.vp-bak__knop{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;justify-self:center;transition:background-color .3s var(--vi-ease)}
.vp-bak__knop:hover{background:rgba(255,255,255,.22)}
.vp-bak__knop:focus-visible{outline:2px solid #9CC1FF;outline-offset:2px}
.vp-bak__knop svg{width:22px;height:22px}
.vp-bak__sluit{position:absolute;top:14px;right:14px;z-index:2}
.vp-bak__vorige{grid-column:1;grid-row:1}
.vp-bak__vorige svg{transform:rotate(180deg)}
.vp-bak__volgende{grid-column:3;grid-row:1}
.vp-bak--enkel .vp-bak__vorige,.vp-bak--enkel .vp-bak__volgende{visibility:hidden}
html.vp-bak-open{overflow:hidden}

/* ------------------------------------------------------------------ vorige / volgende */
.vp-buren{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px 32px;margin-top:clamp(48px,6vw,88px);padding-top:28px;border-top:1px solid var(--vi-lijn)}
.vp-buren__link{display:flex;flex-direction:column;gap:4px;min-height:64px;justify-content:center;text-decoration:none;color:var(--vy-navy)}
.vp-buren--volgende{text-align:right;align-items:flex-end}
.vp-buren__label{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--vy-blauw)}
.vp-buren--vorige .vi-pijl{transform:rotate(180deg)}
.vp-buren--volgende .vp-buren__label{flex-direction:row-reverse}
.vp-buren__titel{font-size:1.125rem;font-weight:600;line-height:1.3}
.vp-buren__link:hover .vp-buren__titel{color:var(--vy-blauw)}
.vp-buren--volgende:hover .vi-pijl{transform:translateX(5px)}
.vp-buren--vorige:hover .vi-pijl{transform:rotate(180deg) translateX(5px)}
.vp-buren__midden{justify-self:center}

/* ------------------------------------------------------------------ verwante pagina's, archieven */
.vp-verwant ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(20px,3vw,48px);border-top:1px solid var(--vi-lijn)}
.vp-verwant a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:14px 4px;border-bottom:1px solid var(--vi-lijn);font-size:1.0625rem;font-weight:500;color:var(--vy-navy);text-decoration:none;transition:color .3s var(--vi-ease),padding-left .45s var(--vi-ease)}
.vp-verwant a:hover{color:var(--vy-blauw);padding-left:12px}
.vp-verwant .vi-pijl{color:var(--vy-blauw)}
.vp-verwant a:hover .vi-pijl{transform:translateX(5px)}
.vp-verwant .vi-catlinks__titel{font-size:clamp(1.5rem,1.2rem + 1vw,2rem);letter-spacing:-.015em;margin-bottom:24px!important}
.vp-sec--verwant .vi-catlinks{margin-top:clamp(40px,5vw,72px)}

.vp-archief{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(28px,5vw,88px);border-top:1px solid var(--vi-lijn)}
.vp-archief[data-aantal="1"]{grid-template-columns:minmax(0,1fr);max-width:820px}
.vp-archief__item{border-bottom:1px solid var(--vi-lijn)}
.vp-archief__item a{display:flex;flex-direction:column;height:100%;padding:clamp(24px,2.8vw,36px) 0;text-decoration:none}
.vp-archief__titel{font-size:1.375rem;line-height:1.25;letter-spacing:-.01em;margin-bottom:10px!important;transition:color .3s var(--vi-ease)}
.vp-archief__item p{font-size:1rem!important;line-height:1.65!important;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.vp-archief__item a:hover .vp-archief__titel{color:var(--vy-blauw)}
.vp-archief__item a:hover .vi-pijl{transform:translateX(5px)}

/* ------------------------------------------------------------------ reviews op de landingspagina's */
.vp-rev__muur{margin-top:0}

/* ------------------------------------------------------------------ leespagina's (juridisch) */
.vp-hero--lees .vi-hero__intro{max-width:68ch}
.vp-leesblok{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr);gap:clamp(32px,6vw,104px);align-items:start}
.vp-leesblok--kaal{grid-template-columns:minmax(0,1fr);max-width:72ch}
.vp-inhoud{position:sticky;top:calc(var(--vy-balk-h,0px) + 190px);max-height:calc(100vh - var(--vy-balk-h,0px) - 230px);overflow-y:auto;padding-right:8px;scrollbar-width:thin}
.vp-inhoud__kop{margin:0 0 12px!important;font-size:.78rem!important;font-weight:500!important;letter-spacing:.16em;text-transform:uppercase;color:var(--vy-blauw)!important}
.vp-inhoud ol{border-top:1px solid var(--vi-lijn)}
.vp-inhoud a{display:flex;align-items:baseline;gap:12px;min-height:44px;padding:10px 0;border-bottom:1px solid var(--vi-lijn);font-size:.9375rem;line-height:1.4;color:var(--vi-tekst);text-decoration:none;transition:color .3s var(--vi-ease)}
.vp-inhoud a:hover{color:var(--vy-blauw)}
.vp-inhoud__nr{flex:none;min-width:1.6em;color:var(--vy-blauw);font-variant-numeric:tabular-nums}
.vp-prose{max-width:72ch}
.vp-prose section+section{margin-top:2.6em}
.vp-prose h2{scroll-margin-top:calc(var(--vy-balk-h,0px) + 190px);display:flex;align-items:baseline;gap:14px}
.vp-prose h2 .nr{flex:none;font-weight:300;color:var(--vy-blauw);font-variant-numeric:tabular-nums}
.vp-prose section>h2:first-child{margin-top:0}
.vp-prose ol.leden{list-style:none;padding-left:0}
.vp-prose ol.leden>li{display:grid;grid-template-columns:3.2em minmax(0,1fr);margin-bottom:.8em}
.vp-prose ol.leden>li>.nr{color:var(--vy-blauw);font-variant-numeric:tabular-nums;font-weight:500}
.vp-prose ol.leden ul,.vp-prose ol.leden ol{grid-column:2;margin-top:.6em}
.vp-prose dl{margin:0 0 1.4em;border-top:1px solid var(--vi-lijn)}
.vp-prose dl>dt{padding-top:14px;font-weight:600;color:var(--vy-navy)}
.vp-prose dl>dd{margin:0;padding:4px 0 14px;border-bottom:1px solid var(--vi-lijn);color:var(--vi-tekst);font-size:1.0625rem;line-height:1.72}
.vp-prose .vp-feiten{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(20px,3vw,48px);margin:0 0 2.2em}
.vp-prose .vp-feiten>div{padding:14px 0;border-bottom:1px solid var(--vi-lijn)}
.vp-prose .vp-feiten dt{padding:0;font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--vi-zacht)}
.vp-prose .vp-feiten dd{margin:0;padding:4px 0 0;border:0;font-weight:500;color:var(--vy-navy)}
.vp-prose .vp-feiten--kern dt{font-size:1.0625rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--vy-navy)}
.vp-prose .vp-feiten--kern dt::before{content:"";display:block;width:8px;height:8px;margin-bottom:12px;background:var(--vy-blauw)}
.vp-prose .vp-feiten--kern dd{font-weight:400;color:var(--vi-tekst);font-size:1rem;line-height:1.6}
.vp-prose .blok-titel{margin:1.8em 0 .4em!important;font-weight:600!important;color:var(--vy-navy)!important}
.vp-prose .voet{margin-top:2.4em!important;padding-top:20px;border-top:1px solid var(--vi-lijn);font-size:.9375rem!important;color:var(--vi-zacht)!important}
.vp-prose ol.stappen{list-style:none;padding-left:0;counter-reset:vpstap;border-top:1px solid var(--vi-lijn)}
.vp-prose ol.stappen>li{counter-increment:vpstap;display:grid;grid-template-columns:clamp(48px,6vw,72px) minmax(0,1fr);gap:4px 12px;margin:0;padding:20px 0;border-bottom:1px solid var(--vi-lijn)}
.vp-prose ol.stappen>li::before{content:counter(vpstap,decimal-leading-zero);grid-row:span 2;font-size:1.5rem;font-weight:300;line-height:1.1;color:var(--vy-blauw);font-variant-numeric:tabular-nums}
.vp-prose .stap-titel{grid-column:2;font-weight:600;color:var(--vy-navy)}
.vp-prose .stap-tekst{grid-column:2}
.vp-prose ul.lijst--stop{list-style:none;padding-left:0}
.vp-prose ul.lijst--stop li{position:relative;padding-left:26px}
.vp-prose ul.lijst--stop li::before{content:"";position:absolute;left:2px;top:.78em;width:12px;height:1.5px;background:var(--vy-navy)}
.vp-tabel{margin:0 0 1.4em;overflow-x:auto;-webkit-overflow-scrolling:touch}
.vp-tabel table{margin:0;min-width:520px}
.vp-prose th{font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--vi-zacht);border-bottom-color:rgba(1,15,57,.28)}
.vp-prose td:first-child{font-weight:500;color:var(--vy-navy)}
.vp-prose td{color:var(--vi-tekst);line-height:1.6}
.vp-prose .pil{display:inline-block;padding:3px 10px;border-radius:6px;font-size:.8125rem;font-weight:500;white-space:nowrap;background:var(--vi-kalk-2);color:var(--vy-navy)}
.vp-prose .pil--ja{background:#E4F2E9;color:#14532d}
.vp-prose .pil--nee{background:#FBE9E7;color:#8a1c12}
.vp-cookiedeclaratie{margin-top:3em;padding-top:28px;border-top:1px solid var(--vi-lijn);overflow-x:auto}
.vp-cookiedeclaratie:empty{display:none}
.vp-cookiedeclaratie table{font-size:.9375rem}
.vp-sec--faq .vi-catlinks{margin-top:clamp(40px,5vw,72px)}

/* ------------------------------------------------------------------ bedankpagina en 404 */
.vp-dank{display:flex;flex-direction:column;align-items:flex-start;max-width:calc(820px + 2 * var(--vi-goot))}
.vp-hero--dank{padding:clamp(56px,8vw,120px) 0 calc(clamp(56px,8vw,120px) + 44px)}
.vp-dank__vink{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:28px;border-radius:50%;background:var(--vy-navy);color:#fff}
.vp-dank__vink svg{width:30px;height:30px}
.vp-bestelling[hidden]{display:none}
.vp-bestelling{width:100%;max-width:calc(var(--vi-max) + 2 * var(--vi-goot));margin:0 auto;padding:clamp(32px,5vw,72px) var(--vi-goot) calc(clamp(32px,5vw,72px) + 44px)}
.vp-404__zoek{margin-top:32px;max-width:560px}
.vp-404__zoek .vy-zk{width:100%}
.vp-hero--404 .vi-eyebrow{font-variant-numeric:tabular-nums}

/* ------------------------------------------------------------------ tablet */
@media (max-width:1100px){
  .vp-verwant ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vp-raster{grid-template-columns:repeat(3,minmax(0,1fr))}
  .vp-producten{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .vp-hero--mood .vi-hero__raster,.vp-leesblok{grid-template-columns:minmax(0,1fr)}
  .vp-hero--mood .vi-hero__tekst{padding-top:0}
  .vp-hero--mood .vi-hero__media{max-width:560px}
  .vp-mood__beeld{border-radius:var(--vi-r-l) var(--vi-r-l) var(--vi-r-l) 72px}
  .vp-inhoud{position:static;max-height:none;overflow:visible;padding:22px 22px 8px;border-radius:var(--vi-r-m);background:var(--vi-kalk)}
  .vp-inhoud ol{columns:2;column-gap:32px}
  .vp-inhoud li{break-inside:avoid}
  .vp-badge{left:-6px}
  .vp-archief{grid-template-columns:minmax(0,1fr)}
  .vp-raster li:first-child a{border-radius:var(--vi-r-l) var(--vi-r-l) var(--vi-r-l) 72px}
}
/* ------------------------------------------------------------------ mobiel */
@media (max-width:760px){
  .vp-verwant ul{grid-template-columns:minmax(0,1fr)}
  .vp-raster{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vp-producten,.vp-producten[data-aantal="2"]{grid-template-columns:minmax(0,1fr)}
  .vp-strook li{width:68vw;max-width:300px}
  .vp-strook li:nth-child(even){margin-top:0}
  .vp-strook__pijlen{display:none}
  .vp-inhoud ol{columns:1}
  .vp-prose .vp-feiten{grid-template-columns:minmax(0,1fr)}
  .vp-buren{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .vp-buren__midden{grid-column:1/-1;grid-row:2;justify-self:start}
  .vp-buren__titel{font-size:1rem}
  .vp-bak[open]{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}
  .vp-bak__figuur{grid-column:1/-1;grid-row:1;padding:64px 12px 8px}
  .vp-bak__vorige{grid-column:1;grid-row:2;justify-self:end;margin:0 8px 18px 0}
  .vp-bak__volgende{grid-column:2;grid-row:2;justify-self:start;margin:0 0 18px 8px}
  .vp-dank .vi-knop{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .vp-strook img,.vp-raster img,.vp-mood__beeld img{transition:none}
  .vp-strook a:hover img,.vp-raster a:hover img,.vp-mood__beeld:hover img{transform:none}
  .vp-verwant a,.vp-verwant a:hover{transition:none;padding-left:4px}
}
/* Lange koppen van de landingspagina's: niet automatisch afbreken ("Vak-werk"). */
.vp .vi-hero__titel{hyphens:manual;font-size:clamp(2rem,1.15rem + 2.7vw,3.25rem)}
/* Vier projecten: vier kolommen in plaats van drie met een losse vierde */
@media (min-width:1101px){
  .vp .vi-kaarten--portret[data-aantal="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}
  .vp .vi-kaarten--portret[data-aantal="4"] .vi-kaart:nth-child(3n+2){margin-top:0}
  .vp .vi-kaarten--portret[data-aantal="4"] .vi-kaart:nth-child(even){margin-top:0}
  .vp .vi-kaarten--portret[data-aantal="4"] .vi-kaart__titel{font-size:1.1875rem}
}
@media (min-width:761px) and (max-width:1100px){
  .vp .vi-kaarten--portret[data-aantal="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vp .vi-kaarten--portret[data-aantal="4"] .vi-kaart:nth-child(3n+2){margin-top:0}
}
.vp-verhaal{font-size:1.0625rem}
/* Zoekbalk op de 404: een wit veld met rand, zodat hij op de kalk-ondergrond leest als invoerveld */
.vp-404__zoek .vy-zk__pil{min-height:52px;background:#fff;border-radius:var(--vi-r-s);box-shadow:inset 0 0 0 1.5px rgba(1,15,57,.22)}
.vp-404__zoek .vy-zk__pil:focus-within{box-shadow:inset 0 0 0 1.5px var(--vy-blauw)}
