
  /* ===== KrugerInside v3 — licht & warm (jambo-palet) ===== */
  :root{
    --bg:#F7F2EC;
    --panel:#ECE5DC;
    --white:#FFFFFF;
    --ink:#403429;
    --ink-deep:#33291F;
    --soft:#6B6153;
    --gold:#80621A;
    --gold-tint:#F1E6CC;
    --sage:#587A5D;
    --sage-deep:#425C46;
    --sage-tint:#EDF2ED;
    --line:rgba(64,52,41,.14);
    --disp:'Bricolage Grotesque','Trebuchet MS',Verdana,sans-serif;
    --body:'Figtree','Segoe UI',Arial,sans-serif;
    --quote:'Source Serif 4',Georgia,serif;
    --r:16px;
    --shadow:0 22px 44px -26px rgba(64,52,41,.35);
  }
  *,*::before,*::after{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    margin:0;background:var(--bg);color:var(--ink);
    font-family:var(--body);font-size:1.05rem;line-height:1.65;
    -webkit-font-smoothing:antialiased;
    /* hidden eerst als terugval: overflow-x:clip kent Safari pas vanaf 16, en zonder
       terugval kon de pagina daar zijwaarts meebewegen. clip heeft de voorkeur omdat
       hidden een scrollcontainer maakt (die position:sticky kan breken).*/
    overflow-x:hidden;
    overflow-x:clip;
  }
  h1,h2,h3,h4{font-family:var(--disp);line-height:1.1;text-wrap:balance;margin:0;font-weight:700;color:var(--ink)}
  p{margin:0}
  .wrap{max-width:1160px;margin:0 auto;padding:0 24px}

  .eyebrow{
    font-weight:700;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--sage-deep);
  }
  h2.title{font-size:clamp(1.9rem,3.6vw,2.7rem);font-weight:800;color:var(--gold);letter-spacing:-.01em;margin:12px 0 14px}
  .lede{color:var(--soft);font-size:1.12rem;max-width:62ch}

  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;
    font-family:var(--body);font-weight:700;font-size:.95rem;
    color:#fff;background:var(--sage);
    border:2px solid var(--sage);border-radius:999px;
    padding:14px 30px;cursor:pointer;text-decoration:none;
    transition:background .18s ease,border-color .18s ease,transform .18s ease;
  }
  .btn:hover{background:var(--sage-deep);border-color:var(--sage-deep);transform:translateY(-1px)}
  .btn.outline{background:transparent;color:var(--sage-deep)}
  .btn.outline:hover{background:var(--sage-tint);transform:none}
  .btn.light{background:rgba(255,255,255,.95);border-color:rgba(255,255,255,.95);color:var(--ink)}
  .btn.light:hover{background:#fff;border-color:#fff}
  .btn.ghostlight{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.75);color:#fff;backdrop-filter:blur(4px)}
  .btn.ghostlight:hover{background:rgba(255,255,255,.26)}
  .btn.gold{background:var(--gold);border-color:var(--gold);color:#fff}
  .btn.gold:hover{background:#6A5114;border-color:#6A5114}
  .btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,button:focus-visible{
    outline:3px solid var(--gold);outline-offset:2px;
  }
  .arrow{transition:transform .18s ease}
  .btn:hover .arrow{transform:translateX(3px)}

  /* ---------- header ---------- */
  header.site{
    position:sticky;top:0;z-index:60;
    background:rgba(247,242,236,.95);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  header.site .wrap{
    display:flex;align-items:center;justify-content:space-between;gap:18px;
    padding-top:14px;padding-bottom:14px;flex-wrap:wrap;
  }
  .wordmark{
    font-family:var(--disp);font-weight:800;font-size:1.3rem;letter-spacing:-.01em;
    color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:10px;
  }
  /* .wordmark is een flexbox met gap:10px voor de ruimte tussen icoon en naam.
     Zonder deze wikkel zijn "Kruger" en <em>Inside</em> twee losse flex-items en
     valt die 10px ook tussen de twee woorden — dan staat de naam los geschreven. */
  .wm-naam{white-space:nowrap}
  .wordmark em{font-style:normal;color:var(--sage-deep)}
  /* Logo-animatie in de kopbalk (voorstel 10-10, naar variant 3 van de app-intro; Niek wil hem eerst zien): het merk springt in beeld,
     de zon komt op achter de heuvel, de acacia groeit vanuit zijn stam, een gouden ring tekent zich om het merk en vervaagt weer, en de
     naam schuift ernaast tevoorschijn; samen 1,8 s. Speelt alleen met ?logo=3 (het script onderaan zet html.logo-anim), nooit bij
     minder beweging. De acacia draagt een transform-attribuut: de keyframes herhalen dat, anders springt hij van zijn plek. */
  header.site .wordmark{position:relative}
  .wm-ring{position:absolute;left:-4px;top:50%;width:38px;height:38px;margin-top:-19px;pointer-events:none;overflow:visible}
  .wm-ring rect{fill:none;stroke:var(--gold);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:1}
  html.logo-anim header.site .wordmark>svg{transform-origin:50% 50%;animation:wm-pop .55s cubic-bezier(.3,1.4,.5,1) both}
  html.logo-anim header.site .wordmark>svg circle{animation:wm-zon .8s cubic-bezier(.2,.7,.25,1) .25s both}
  html.logo-anim header.site .wordmark>svg g[fill="#F6F1E6"]{animation:wm-boom .55s cubic-bezier(.3,1.35,.5,1) .5s both}
  html.logo-anim header.site .wm-ring rect{animation:wm-ring .8s cubic-bezier(.5,0,.2,1) .15s both,wm-uit .45s ease 1.35s both}
  html.logo-anim header.site .wm-naam{animation:wm-naam .6s cubic-bezier(.2,.7,.3,1) .55s both}
  @keyframes wm-pop{from{transform:scale(.55);opacity:0}to{transform:none;opacity:1}}
  @keyframes wm-zon{from{transform:translateY(14px)}to{transform:none}}
  @keyframes wm-boom{from{transform:translate(30px,59.84px) scale(.06) translate(0,-44px)}to{transform:translate(30px,59.84px) scale(.36) translate(0,-44px)}}
  @keyframes wm-ring{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes wm-uit{to{opacity:0}}
  @keyframes wm-naam{from{clip-path:inset(0 100% 0 0);transform:translateX(-6px)}to{clip-path:inset(0 0 0 0);transform:none}}
  nav.menu{display:flex;align-items:center;gap:2px;flex-wrap:wrap}
  nav.menu a.mlink{
    font-weight:600;font-size:.94rem;color:var(--soft);text-decoration:none;
    padding:8px 14px;border-radius:999px;position:relative;
  }
  nav.menu a.mlink:hover{color:var(--ink);background:rgba(122,153,125,.12)}
  nav.menu a.mlink[aria-current="page"]{color:var(--ink)}
  nav.menu a.mlink[aria-current="page"]::after{
    content:"";position:absolute;left:15px;right:15px;bottom:2px;height:3px;
    border-radius:3px;background:var(--gold);
  }
  header.site .btn{padding:10px 22px;font-size:.86rem;margin-left:10px}
  .hamb{
    display:none;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:12px;cursor:pointer;flex:0 0 auto;
    background:var(--white);border:1.5px solid var(--line);color:var(--ink);
  }
  .hamb[aria-expanded="true"]{background:var(--sage-tint);border-color:var(--sage)}
  /* Zoeken op de site (wens Niek 10-10): het vergrootglas rechts in de kopbalk opent een zoekvenster (script: "zoeken op de site").
     Op de kamppagina's, die geen router hebben, is het een gewone link naar /?zoek=1. Breed staat het menu rechts en het vergrootglas
     erachter; smal staat het naast de hamburger. */
  header.site .zoekknop{
    display:flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:12px;flex:0 0 auto;
    background:var(--white);border:1.5px solid var(--line);color:var(--ink);text-decoration:none;
  }
  header.site .zoekknop:hover{background:var(--sage-tint);border-color:var(--sage)}
  @media (min-width:1151px){
    nav.menu{margin-left:auto}
    header.site .zoekknop{margin-left:-6px}
  }
  @media (max-width:1150px){
    header.site .zoekknop{margin-left:auto;margin-right:-8px}
  }
  /* De taalkeuze (12-10, wens Niek: een vlaggetje bovenin): op de Nederlandse pagina's een link naar de Engelse pagina /en/, daar terug naar Nederlands.
     Vlaggen als eigen SVG: Windows tekent vlag-emoji als twee letters. */
  header.site .taalknop{display:flex;align-items:center;gap:6px;height:44px;padding:0 11px;border-radius:12px;flex:0 0 auto;
    background:var(--white);border:1.5px solid var(--line);color:var(--ink);text-decoration:none;font:700 .82rem/1 var(--body);letter-spacing:.04em}
  header.site .taalknop:hover{background:var(--sage-tint);border-color:var(--sage)}
  header.site .taalknop svg{border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
  @media (min-width:1151px){ header.site .taalknop{margin-left:-6px} header.site .taalknop + .zoekknop{margin-left:-10px} }
  @media (max-width:1150px){ header.site .taalknop{margin-left:auto} header.site .taalknop + .zoekknop{margin-left:8px} }
  @media (max-width:420px){ header.site .taalknop{padding:0 9px} header.site .taalknop span{display:none} header.site .wrap{gap:8px;padding-left:16px;padding-right:16px} header.site .zoekknop{margin-right:0} }
  @media (max-width:359px){ header.site .wrap{gap:6px;padding-left:12px;padding-right:12px} .wordmark{font-size:1.1rem;gap:8px} header.site .wordmark>svg{width:32px;height:32px} header.site .zoekknop,.hamb,header.site .taalknop{width:40px;height:40px;padding:0;justify-content:center} }
  html.zk-open,html.zk-open body{overflow:hidden}
  .zoeklaag{position:fixed;inset:0;z-index:90;display:flex;justify-content:center;align-items:flex-start;padding:min(9vh,80px) 16px 16px;background:rgba(51,41,31,.45)}
  .zoeklaag[hidden]{display:none}
  .zk-paneel{width:100%;max-width:680px;max-height:100%;display:flex;flex-direction:column;background:var(--bg);border-radius:var(--r);box-shadow:0 30px 60px -20px rgba(51,41,31,.55);overflow:hidden}
  .zk-kop{flex:none;display:flex;align-items:center;gap:8px;padding:10px 10px 10px 18px;background:var(--white);border-bottom:1px solid var(--line)}
  .zk-kop>svg{flex:none;color:var(--soft)}
  #zk-invoer{flex:1;min-width:0;height:44px;border:0;background:transparent;font:500 1.05rem var(--body);color:var(--ink);-webkit-appearance:none;appearance:none;border-radius:8px}
  #zk-invoer:focus{outline:none}
  .zk-kop:focus-within{box-shadow:inset 0 -3px 0 var(--gold)}
  #zk-invoer::-webkit-search-cancel-button,#zk-invoer::-webkit-search-decoration{-webkit-appearance:none;display:none}
  #zk-invoer::placeholder{color:var(--soft)}
  .zk-sluit{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:12px;background:none;color:var(--soft);cursor:pointer}
  .zk-sluit:hover{background:var(--sage-tint);color:var(--ink)}
  .zk-inhoud{overflow:auto;overscroll-behavior:contain;padding:4px 18px 22px}
  .zk-hint{color:var(--soft);margin:16px 0 0}
  .zk-kopje{font:700 .76rem var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--sage-deep);margin:20px 0 8px}
  .zk-voorbeelden{display:flex;flex-wrap:wrap;gap:8px}
  .zk-voorbeelden button{min-height:38px;padding:0 15px;border:1.5px solid var(--line);border-radius:999px;background:var(--white);font:600 .9rem var(--body);color:var(--ink);cursor:pointer}
  .zk-voorbeelden button:hover{background:var(--sage-tint);border-color:var(--sage)}
  .zk-lijst{list-style:none;margin:0;padding:0;background:var(--white);border:1px solid var(--line);border-radius:14px;overflow:hidden}
  .zk-lijst li+li{border-top:1px solid var(--line)}
  .zk-rij{display:block;width:100%;padding:12px 16px;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
  .zk-rij:hover{background:var(--sage-tint)}
  .zk-rij:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
  .zk-titel{display:block;font-weight:700;color:var(--ink-deep);overflow-wrap:anywhere}
  .zk-titel b{font-weight:800}
  .zk-onder{display:block;margin-top:2px;font-size:.9rem;line-height:1.45;color:var(--soft);overflow-wrap:anywhere}
  .zk-onder b{font-weight:700;color:var(--ink)}
  .zk-meer{margin:8px 0 0;padding:6px 0;border:0;background:none;font:700 .92rem var(--body);color:var(--gold);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
  .zk-meer:hover{color:#6A5114}
  @media (max-width:700px){
    .zoeklaag{padding:0}
    .zk-paneel{max-width:none;height:100%;border-radius:0}
    .zk-kop{padding-top:calc(10px + env(safe-area-inset-top,0px))}
  }
  /* waar een treffer heen ging, licht even op */
  .zk-licht{border-radius:10px;animation:zkLicht 2.4s ease-out}
  @keyframes zkLicht{0%,40%{box-shadow:0 0 0 3px var(--gold),0 0 0 10px var(--gold-tint)}100%{box-shadow:0 0 0 3px transparent,0 0 0 10px transparent}}
  @media (prefers-reduced-motion:reduce){.zk-licht{animation:none;box-shadow:0 0 0 3px var(--gold)}}
  @media print{header.site .zoekknop,.zoeklaag{display:none!important}}

  .page{display:none}
  .page.active{display:block}

  /* ---------- hero ---------- */
  .hero{position:relative;min-height:600px;height:86vh;max-height:820px;overflow:hidden;background:#2A241C;display:flex;align-items:flex-end}
  .hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .hero .shade{position:absolute;inset:0;background:
    /* van links: beschermt de kop, die over de lichte lucht valt. Zonder dit haalt de
       kop maar 1,65:1 contrast (norm voor grote tekst is 3:1); hiermee 3,6:1. */
    linear-gradient(90deg,rgba(20,16,10,.55) 0%,rgba(20,16,10,.38) 40%,rgba(20,16,10,0) 72%),
    linear-gradient(180deg,rgba(30,24,16,.10) 0%,rgba(30,24,16,0) 30%,rgba(30,24,16,.46) 100%)}
  .hero .wrap{position:relative;z-index:2;padding-bottom:72px;width:100%}
  .hero .kicker{
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);
    color:#fff;font-weight:600;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
    border-radius:999px;padding:7px 16px;backdrop-filter:blur(6px);
  }
  .hero h1{
    color:#fff;font-size:clamp(2.5rem,5.4vw,4.4rem);font-weight:800;letter-spacing:-.015em;
    margin:20px 0 16px;max-width:15ch;
    text-shadow:0 2px 26px rgba(20,16,10,.45);
  }
  .hero h1 .accent{font-family:var(--quote);font-style:italic;font-weight:600;color:#F4DFA9}
  .hero .sub{color:rgba(255,255,255,.94);font-size:1.16rem;max-width:46ch;text-shadow:0 1px 14px rgba(20,16,10,.5)}
  .hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
  .hero .credit{
    position:absolute;right:26px;bottom:22px;z-index:3;
    display:inline-flex;align-items:center;gap:9px;
    color:rgba(255,255,255,.92);font-size:.78rem;font-weight:600;letter-spacing:.04em;
    background:rgba(30,24,16,.45);border-radius:999px;padding:7px 15px;backdrop-filter:blur(4px);
  }
  .hero .credit .dot{width:8px;height:8px;border-radius:50%;background:#E4534A;animation:pulse 2s ease infinite}
  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

  /* trust strip */
  .truststrip{background:var(--white);border-bottom:1px solid var(--line)}
  .truststrip .wrap{display:flex;gap:12px 44px;justify-content:center;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}
  .truststrip .t{display:flex;align-items:center;gap:10px;font-weight:600;font-size:.94rem;color:var(--ink)}
  .truststrip .t svg{color:var(--sage-deep);flex:0 0 auto}

  /* stats */
  .stats{background:var(--bg)}
  .stats .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding-top:56px;padding-bottom:56px}
  .stat{text-align:center}
  .stat .n{font-family:var(--disp);font-weight:800;font-size:clamp(2rem,3.6vw,2.8rem);color:var(--gold);font-variant-numeric:tabular-nums;line-height:1.05}
  .stat .l{font-size:.92rem;color:var(--soft);font-weight:500;margin-top:6px}

  /* ---------- secties ---------- */
  section{padding:92px 0}
  .sec-head{max-width:720px;margin-bottom:48px}
  .sec-head.center{margin-left:auto;margin-right:auto;text-align:center}

  .cardish{background:var(--white);border:1px solid var(--line);border-radius:var(--r);transition:transform .18s ease,box-shadow .18s ease}
  /* De app kopen (12-10, achter app/verkoop.json) */
  .koopapp{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:22px;margin-top:28px;align-items:start}
  .winkelrij{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 6px}
  .winkelbinnenkort{opacity:.75;cursor:default;pointer-events:none}
  .koopkaart{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:26px 28px}
  .koopkaart.licht{background:transparent}
  .koopkaart h3{margin:0 0 6px}
  .koopprijs{margin:0 0 18px;color:var(--soft)}
  .koopprijs b{font-size:1.5rem;color:var(--ink);margin-right:6px}
  .koopkaart .optcard{margin-bottom:10px}
  .koopmeld{min-height:1.2em;margin:10px 0 0;font-weight:700;color:var(--ink)}
  @media (max-width:820px){.koopapp{grid-template-columns:1fr}.koopkaart{padding:22px 18px}}
  .cardish:hover{transform:translateY(-3px);box-shadow:var(--shadow)}

  /* ---------- kaart & paneel ---------- */
  .mapsec{background:var(--white)}
  .boardwrap{
    position:relative;height:min(80vh,880px);
    width:min(100vw - 48px, 1440px);
    margin-left:calc(50% - min(50vw - 24px, 720px));
    border-radius:20px;overflow:hidden;background:#EFE6C8;
    box-shadow:0 26px 54px -30px rgba(64,52,41,.5);
    border:1px solid rgba(64,52,41,.12);
  }
  .map-intro{text-align:center;font-size:1.02rem;color:var(--soft);max-width:62ch;margin:0 auto 16px}
  .map-note{text-align:center;font-size:.78rem;color:var(--soft);opacity:.75;margin-top:12px}
  .mapzone{opacity:0;transition:opacity .25s ease}
  .mapzone.on{opacity:1}
  .mk{cursor:pointer}
  .mk .hit{fill:transparent}
  .mk circle.pt,.mk rect.pt,.mk path.pt{transition:stroke-width .12s ease}
  .mk:hover circle.pt,.mk:hover rect.pt,.mk:hover path.pt,.mk:focus-visible circle.pt{stroke:#403429;stroke-width:2.5}
  .mk.sel circle.pt,.mk.sel rect.pt,.mk.sel path.pt{stroke:#403429;stroke-width:3}
  .mk text{pointer-events:none}
  #markers text{paint-order:stroke;stroke:#F7F2EC;stroke-width:3.5px;stroke-linejoin:round;vector-effect:non-scaling-stroke}
  .mag{cursor:pointer}
  .mag rect.pt{transition:stroke-width .12s ease,opacity .2s ease}
  .mag:hover rect.pt,.mag:focus-visible rect.pt{stroke:#403429;stroke-width:2.4}
  .mag.sel rect.pt{stroke:#403429;stroke-width:3}
  .mag.dim{opacity:.15;pointer-events:none}
  .mag.off{display:none}
  .poi{cursor:pointer}
  .poi .pt{transition:stroke-width .12s ease}
  .poi:hover .pt,.poi:focus-visible .pt{stroke:#403429;stroke-width:2.2}
  .poi.sel .pt{stroke:#403429;stroke-width:2.6}
  .boekgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
  @media (max-width:720px){ .boekgrid{grid-template-columns:1fr} }
  .poi-boekchip{
    display:inline-flex;align-items:center;gap:7px;margin-top:14px;
    background:var(--gold-tint);color:var(--gold);font-weight:800;font-size:.74rem;
    letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:7px 14px;
  }
  .hutvogels{margin-top:16px}
  .hutvogels>b{display:block;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin-bottom:8px}
  .hv-rij{display:flex;flex-wrap:wrap;gap:6px}
  .hv-chip{display:inline-flex;align-items:center;gap:6px;background:var(--white);border:1.5px solid var(--line);border-radius:999px;padding:5px 11px;font-size:.8rem;font-weight:700;color:var(--ink)}
  .hv-chip i{font-style:normal;font-weight:600;font-size:.7rem;color:var(--soft)}
  /* touch-action geldt ALLEEN voor aanraking, niet voor de muis. De oude regel
     #krugermap.actief{touch-action:none} blokkeerde daarom uitsluitend het scrollen
     met de vinger, zonder iets toe te voegen voor muisgebruikers. Weg dus: op de
     kaart moet je altijd gewoon kunnen vegen om de pagina te scrollen. */
  #krugermap{cursor:grab;touch-action:pan-y;display:block;width:100%;height:100%}
  #krugermap.panning{cursor:grabbing}
  .wheelhint{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    background:rgba(64,52,41,.86);color:#F7F2EC;
    font-family:var(--body);font-weight:700;font-size:.95rem;
    padding:14px 26px;border-radius:999px;pointer-events:none;
    opacity:0;transition:opacity .25s ease;z-index:4;white-space:nowrap;
  }
  .wheelhint.zien{opacity:1}
  .mapzoom{position:absolute;left:14px;top:14px;display:flex;flex-direction:column;gap:6px;z-index:3}
  .daytoggle{
    position:absolute;top:14px;left:50%;transform:translateX(-58%);z-index:3;
    display:flex;gap:4px;background:var(--white);border:1.5px solid var(--line);
    border-radius:999px;padding:4px;box-shadow:0 6px 18px -8px rgba(64,52,41,.35);
  }
  .daytoggle button{
    border:none;background:transparent;cursor:pointer;border-radius:999px;
    font-family:var(--body);font-weight:700;font-size:.84rem;color:var(--soft);
    padding:8px 18px;
  }
  .daytoggle button.on{background:var(--sage);color:#fff}
  /* vaste soortlegenda op de kaart (wens Niek): kleurcodes altijd zichtbaar */
  .maplegend{
    position:absolute;left:14px;bottom:14px;z-index:3;
    display:flex;flex-direction:column;gap:2px;
    background:rgba(255,253,246,.93);border:1.5px solid var(--line);
    border-radius:12px;padding:8px 10px;box-shadow:0 6px 18px -8px rgba(64,52,41,.3);
  }
  .maplegend .mlg{
    border:none;background:transparent;cursor:pointer;display:flex;align-items:center;gap:7px;
    font-family:var(--body);font-weight:700;font-size:.76rem;color:var(--soft);
    padding:2.5px 6px;border-radius:8px;text-align:left;
  }
  .maplegend .mlg:hover{background:var(--panel);color:var(--ink)}
  .maplegend .mlg.on{background:var(--sage);color:#fff}
  /* Vierkantjes, want de markeringen op de kaart zijn vierkantjes: een rect van 11x11
     met rx 1.5 (melding Niek 18-9 -- de legenda had rondjes en klopte dus niet met wat
     je op de kaart ziet). Zelfde maat en zelfde witte randje; de lichte draaiing van de
     markeringen blijft er hier af, die hoort bij het magneetje op het bord en zou in een
     tekstregel alleen maar scheef staan. */
  .maplegend .mlg i{flex:0 0 auto;width:11px;height:11px;border-radius:1.5px;border:1.5px solid #FFFDF6;box-shadow:0 0 0 1px rgba(64,52,41,.25)}
  .plannerstand .maplegend{display:none}
  .plannerstand #hotspot{display:none}
  #hotspot .hotspotzone{cursor:pointer}
  #hotspot .hs-ring{fill:rgba(151,117,33,.10);stroke:#977521;stroke-width:2.2;stroke-dasharray:5 5}
  #hotspot .hotspotzone:hover .hs-ring,#hotspot .hotspotzone:focus .hs-ring{fill:rgba(151,117,33,.2)}
  #hotspot .hs-txt{font-family:Figtree,Arial;font-size:11.5px;font-weight:800;fill:#7A5F3E;pointer-events:none}
  .lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:26px}
  .lightbox[hidden]{display:none}
  .lb-back{position:absolute;inset:0;background:rgba(30,24,16,.9);cursor:pointer}
  .lb-box{position:relative;width:min(960px,96vw);background:var(--bg);border-radius:18px;padding:16px 18px 14px;box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
  .lb-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px}
  .lb-titel{font-family:var(--disp);font-weight:800;font-size:1.05rem}
  .lb-x{border:none;background:var(--panel);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1rem;color:var(--ink);font-family:var(--body);flex:0 0 auto}
  .lb-x:hover{background:var(--gold-tint)}
  .lb-media{aspect-ratio:16/9;min-height:180px;background:#181410;border-radius:12px;overflow:hidden}
  /* foto-stand: natuurlijke hoogte i.p.v. vast 16:9-vak (robuust op alle telefoons, en groter beeld) */
  .lb-media.is-foto{aspect-ratio:auto;min-height:0}
  .lb-media.is-foto .lb-galerij{height:auto}
  .lb-media.is-foto .lb-galerij img{width:100%;height:auto;max-height:70vh;object-fit:contain;display:block}
  .lb-media video,.lb-media iframe{width:100%;height:100%;display:block;border:0}
  .ytwrap{position:relative;width:100%;height:100%;overflow:hidden}
  .yt-klik{position:absolute;left:0;right:0;top:0;bottom:80px;background:none;border:none;cursor:pointer;padding:0}
  .yt-seek{position:absolute;left:16px;right:16px;bottom:54px;z-index:2;display:flex;gap:10px;align-items:center}
  .yt-tijd{font-family:var(--body);font-weight:700;font-size:.74rem;color:#F7F2EC;text-shadow:0 1px 4px rgba(0,0,0,.75);font-variant-numeric:tabular-nums;min-width:34px;text-align:center}
  .yt-track{position:relative;flex:1;height:22px;cursor:pointer}
  .yt-track::before{content:"";position:absolute;left:0;right:0;top:9px;height:4px;border-radius:99px;background:rgba(255,255,255,.38)}
  .yt-vul{position:absolute;left:0;top:9px;height:4px;border-radius:99px;background:#C9973B;width:0;pointer-events:none}
  .yt-bar{
    /* geen VASTE hoogte: bij een smal scherm vielen de knoppen naar een tweede regel
       die onder het videovak uitstak en werd afgeknipt -- de knop "Op YouTube" was zo
       onzichtbaar (gemeld 31-8). Nu groeit de balk mee naar boven. */
    position:absolute;left:0;right:0;bottom:0;min-height:52px;z-index:2;
    display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;
    padding:8px 10px;box-sizing:border-box;
    background:linear-gradient(transparent,rgba(24,20,16,.88) 45%);
  }
  .ytknop{
    display:inline-flex;align-items:center;font-family:var(--body);font-weight:700;font-size:.8rem;
    color:#F7F2EC;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);
    border-radius:999px;padding:7px 14px;cursor:pointer;text-decoration:none;backdrop-filter:blur(3px);
  }
  .ytknop:hover{background:rgba(255,255,255,.28)}
  .ytwrap:fullscreen{background:#000}
  @media (max-width:720px){
    .ytknop{font-size:.72rem;padding:6px 10px}
  }
  .lb-note{font-size:.84rem;color:var(--soft);margin-top:10px;text-align:center}
  .lb-fallback{position:relative;width:100%;height:100%}
  .lb-fallback img{width:100%;height:100%;object-fit:cover;opacity:.35;display:block}
  .lb-fbtekst{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    color:#F7F2EC;font-weight:700;font-size:1rem;text-align:center;line-height:1.6;
    background:rgba(40,32,22,.75);border-radius:14px;padding:16px 24px;width:min(90%,440px);
  }
  .lb-note a{color:var(--sage-deep)}
  .mapzoom button{
    width:38px;height:38px;border-radius:10px;cursor:pointer;
    background:var(--white);border:1.5px solid var(--line);
    font-family:var(--body);font-size:1.15rem;font-weight:700;color:var(--ink);
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 4px 12px -6px rgba(64,52,41,.3);
  }
  .mapzoom button:hover{border-color:var(--sage);color:var(--sage-deep)}
  .spchips{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
  .spchip{
    display:inline-flex;align-items:center;gap:8px;cursor:pointer;
    font-family:var(--body);font-weight:700;font-size:.85rem;color:var(--ink);
    background:var(--white);border:1.5px solid var(--line);border-radius:999px;
    padding:8px 15px;
  }
  .spchip i{width:13px;height:13px;border-radius:3px;display:inline-block;transform:rotate(-4deg);border:1.5px solid #FFFDF6;box-shadow:0 0 0 1px rgba(64,52,41,.15)}
  .spchip:hover{border-color:var(--sage)}
  .spchip.on{border-color:var(--ink);background:var(--gold-tint)}
  .rhino-note{font-size:.84rem;color:var(--soft);font-family:var(--quote);font-style:italic;margin-top:14px}
  .obsfoto{width:100%;max-width:300px;aspect-ratio:1;object-fit:cover;border-radius:14px;margin-top:16px;display:block;box-shadow:0 10px 26px -14px rgba(64,52,41,.5)}
  .obscredit{font-size:.78rem;color:var(--soft);margin-top:8px}
  .obscredit a{color:var(--sage-deep)}

  /* ---------- reisplanner ---------- */
  .plannersec{background:var(--white)}
  .planner-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:44px;align-items:start}
  .pl-stap{
    display:flex;align-items:center;gap:12px;
    font-family:var(--disp);font-weight:800;font-size:1.1rem;margin:30px 0 14px;
  }
  .pl-stap:first-child{margin-top:0}
  /* Stap 2 en 3 zitten sinds de verticale opzet elk in een eigen blok en zijn daar
     :first-child — zonder deze regel pakken ze margin-top:0 en plakt stap 2 tegen
     de keuzekaarten van stap 1. */
  .pl-rij > div > .pl-stap:first-child{margin-top:34px}
  /* Korte gouden puls op de reisopzet zodra alle drie de stappen zijn aangeklikt. */
  @keyframes routefocuspuls{
    0%{box-shadow:0 0 0 0 rgba(151,117,33,.5)}
    70%{box-shadow:0 0 0 15px rgba(151,117,33,0)}
    100%{box-shadow:0 0 0 0 rgba(151,117,33,0)}
  }
  .routefocus{border-radius:20px;animation:routefocuspuls 1.1s ease-out 2}
  @media (prefers-reduced-motion:reduce){
    .routefocus{animation:none;box-shadow:0 0 0 3px rgba(151,117,33,.5)}
  }
  /* Goud i.p.v. sage: sage is de kleur van een AANGEKLIKTE keuze (.seg button.on),
     dus een stap-label in dezelfde kleur leest ten onrechte als "geselecteerd". */
  .pl-stap .fnum{
    flex:0 0 auto;height:34px;padding:0 15px;border-radius:999px;background:var(--gold-tint);color:#7E6119;
    font-family:var(--disp);font-weight:800;font-size:.92rem;display:flex;align-items:center;justify-content:center;white-space:nowrap;
  }
  .doelen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .doel{
    position:relative;text-align:left;cursor:pointer;padding:0;overflow:hidden;
    display:flex;flex-direction:column;align-items:stretch;
    background:var(--white);border:2px solid var(--line);border-radius:16px;
    font-family:var(--body);transition:border-color .15s ease,transform .15s ease;
  }
  .doel:hover{border-color:var(--sage);transform:translateY(-2px)}
  .doel img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
  .doel .dt{display:block;padding:13px 15px 15px}
  .doel .dt b{font-family:var(--disp);font-weight:800;font-size:.98rem;display:block}
  .doel .dt span{font-size:.8rem;color:var(--soft);line-height:1.45;display:block;margin-top:3px}
  .doel.on{border-color:var(--gold)}
  .doel .vink{
    position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;
    background:var(--gold);color:#fff;display:none;align-items:center;justify-content:center;
  }
  .doel.on .vink{display:flex}
  .seg{display:flex;gap:8px;flex-wrap:wrap}
  .seg button{
    font-family:var(--body);font-weight:700;font-size:.88rem;color:var(--soft);
    background:var(--bg);border:1.5px solid var(--line);border-radius:999px;
    padding:10px 20px;cursor:pointer;
  }
  .seg button:hover{border-color:var(--sage);color:var(--sage-deep)}
  .seg button.on{background:var(--sage);border-color:var(--sage);color:#fff}
  .reisopzet{
    position:sticky;top:96px;
    background:var(--bg);border:1.5px solid var(--line);border-radius:20px;
    padding:26px 28px;box-shadow:var(--shadow);
  }
  .ro-kop{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px}
  .ro-kop h3{font-size:1.35rem;font-weight:800}
  .ro-n{
    flex:0 0 auto;font-weight:800;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
    background:var(--gold-tint);color:var(--gold);border-radius:999px;padding:6px 13px;
  }
  .ro-sub{font-size:.9rem;color:var(--soft);margin-bottom:16px}
  .ro-body{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;align-items:start}
  .ro-kaart svg{width:100%;height:auto;display:block}
  .ro-dagen{display:grid;gap:9px}
  .ro-dag{display:flex;gap:11px;align-items:flex-start;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:10px 13px}
  .ro-dag .ro-d{
    flex:0 0 auto;font-weight:800;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;
    background:var(--sage-tint);color:var(--sage-deep);border-radius:8px;padding:5px 9px;margin-top:1px;white-space:nowrap;
  }
  .ro-dag b{font-family:var(--disp);font-weight:800;font-size:.95rem;display:block}
  .ro-dag small{font-size:.8rem;color:var(--soft);display:block;line-height:1.4}
  .ro-hl{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}
  .ro-hl span{background:var(--sage-tint);color:var(--sage-deep);font-weight:700;font-size:.8rem;border-radius:999px;padding:6px 13px}
  .ro-slaap{font-size:.86rem;color:var(--soft);margin-top:14px}
  /* accommodatie-uitklap per kamp in het dagschema */
  .ro-dag .ro-inh{flex:1;min-width:0}
  .acco{margin-top:7px}
  .acco summary{
    list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;
    font-size:.78rem;font-weight:700;color:var(--sage-deep);
    border:1px solid var(--line);border-radius:999px;padding:4px 11px;background:var(--bg);
  }
  .acco summary::-webkit-details-marker{display:none}
  .acco summary:hover{border-color:var(--sage)}
  .acco summary svg{transition:transform .2s}
  .acco[open] summary svg{transform:rotate(180deg)}
  .acco-lijst{display:grid;gap:7px;margin-top:9px}
  .acco-i{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--bg)}
  .acco-i.match{background:var(--gold-tint);border-color:var(--gold)}
  .a-tier{flex:0 0 auto;font-weight:800;font-size:.72rem;color:var(--gold);letter-spacing:.05em;margin-top:2px;min-width:34px}
  .acco-i b{font-size:.82rem;font-weight:700;display:block;font-family:var(--body)}
  .acco-i small{font-size:.76rem;color:var(--soft);line-height:1.45;display:block}
  .a-match{font-style:normal;font-weight:800;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);background:#F1E3C2;border-radius:999px;padding:2px 7px;margin-left:6px;vertical-align:1px}
  .acco-noot{font-size:.76rem;color:#8A5B3C;background:#F7EDDD;border-radius:8px;padding:7px 10px;margin:0}
  .a-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}
  .a-thumb{width:54px;height:40px;border-radius:8px;overflow:hidden;border:1px solid var(--line);padding:0;cursor:pointer;background:none;flex:0 0 auto}
  .a-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .a-thumb:hover{border-color:var(--sage)}
  .a-fotohint{font-size:.68rem;font-weight:700;color:var(--soft);letter-spacing:.04em}
  /* foto-galerij in de lightbox */
  .lb-galerij{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}
  .lb-galerij img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;display:block}
  .lb-pijl{
    position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;
    border:none;background:rgba(30,24,16,.55);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;
    display:flex;align-items:center;justify-content:center;padding-bottom:4px;
  }
  .lb-pijl.vorige{left:10px}
  .lb-pijl.volgende{right:10px}
  .lb-pijl:hover{background:rgba(30,24,16,.82)}
  .lb-teller{
    position:absolute;bottom:10px;left:50%;transform:translateX(-50%);
    color:#fff;font-size:.78rem;font-weight:700;background:rgba(30,24,16,.55);border-radius:999px;padding:3px 11px;
  }
  .ro-tip{
    background:var(--gold-tint);border-radius:12px;padding:13px 16px;margin-top:14px;
    font-family:var(--quote);font-style:italic;font-size:.92rem;color:#5C4A22;
  }
  .ro-tip b{font-family:var(--body);font-style:normal;font-weight:800;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:4px}
  .ro-prijs{background:var(--panel);border-radius:12px;padding:14px 16px;margin-top:14px}
  .ro-prijs > b{font-family:var(--body);font-weight:800;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-deep);display:block;margin-bottom:8px}
  .ro-prijs-rij{display:flex;justify-content:space-between;gap:10px;font-size:.92rem;color:var(--soft);padding:3px 0}
  .ro-prijs-rij b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
  .ro-prijs .linklike{display:inline-block;margin-top:8px;font-size:.86rem}
  .reisopzet .btn{width:100%;justify-content:center;margin-top:18px}
  .ro-klein{text-align:center;font-size:.8rem;color:var(--soft);margin-top:10px}
  .teaserdoelen{display:flex;justify-content:center;flex-wrap:wrap;gap:18px 24px;margin:30px 0 34px}
  .tdoel{display:flex;flex-direction:column;align-items:center;gap:9px;background:none;border:none;cursor:pointer;font-family:var(--body);width:106px;padding:0}
  .tdoel img{width:86px;height:86px;border-radius:50%;object-fit:cover;border:3px solid var(--white);box-shadow:0 12px 26px -14px rgba(64,52,41,.55);transition:transform .15s ease,border-color .15s ease}
  .tdoel:hover img{transform:scale(1.07);border-color:var(--gold)}
  .tdoel span{font-weight:700;font-size:.84rem;color:var(--ink)}
  .teaser-custom{margin:22px 0 0}
  .teaserpreview{
    display:flex;flex-direction:column;gap:16px;text-align:left;cursor:pointer;
    padding:24px 26px;border-width:2px;font-family:var(--body);
  }
  .teaserpreview:hover{border-color:var(--sage)}
  .ts-tag{font-weight:800;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
  .ts-body{display:grid;grid-template-columns:92px minmax(0,1fr);gap:18px;align-items:center}
  .ts-kaart svg{width:100%;height:auto;display:block}
  .ts-chips{display:grid;gap:8px}
  .ts-dag{
    display:flex;align-items:center;gap:10px;
    background:var(--bg);border:1px solid var(--line);border-radius:10px;
    padding:8px 13px;font-size:.88rem;color:var(--ink);
  }
  .ts-dag b{font-weight:800;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sage-deep);background:var(--sage-tint);border-radius:7px;padding:4px 8px;flex:0 0 auto}
  .ts-meer{font-family:var(--quote);font-style:italic;font-size:.84rem;color:var(--soft)}
  .ts-cta{align-self:stretch;justify-content:center}
  .linklike{
    /* padding:0 hoort erbij: een <button> krijgt van de browser 6px links en een
       <a> niet, waardoor knop-links inspringen ten opzichte van de lopende tekst. */
    background:none;border:none;padding:0;cursor:pointer;font-family:var(--body);
    font-weight:700;font-size:.95rem;color:var(--gold);
    text-decoration:underline;text-underline-offset:3px;
  }
  .linklike:hover{color:#6A5114}
  .doelen.paginabreed{grid-template-columns:repeat(6,minmax(0,1fr))}
  .customtrip{
    display:flex;align-items:center;gap:16px;width:100%;margin-top:12px;
    background:var(--gold-tint);border:2px dashed var(--gold);border-radius:16px;
    padding:16px 22px;cursor:pointer;font-family:var(--body);text-align:left;
    transition:border-color .15s ease,background .15s ease;
  }
  .customtrip:hover{border-style:solid}
  .customtrip.on{border-style:solid;background:#EBDCB4}
  .customtrip .ct-ico{flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:var(--gold);color:#fff;display:flex;align-items:center;justify-content:center}
  .customtrip .ct-txt b{font-family:var(--disp);font-weight:800;font-size:1.02rem;display:block;color:var(--ink)}
  .customtrip .ct-txt small{font-size:.84rem;color:#7A6230;display:block;margin-top:2px}
  .customtrip .ct-pijl{margin-left:auto;font-weight:800;color:var(--gold);font-size:1.2rem}
  .mappanel .customveld{
    width:100%;min-height:130px;resize:vertical;margin-top:14px;
    font-family:var(--body);font-size:.96rem;color:var(--ink);
    background:var(--white);border:1.5px solid var(--line);border-radius:12px;padding:13px 15px;
  }
  .mappanel .customveld:focus{border-color:var(--gold);outline:none}
  /* Stap 2 en 3 onder elkaar i.p.v. naast elkaar: samen met stap 1 loopt de planner
     nu als één verticale reeks. De marge van .pl-stap zorgt voor de tussenruimte. */
  .pl-rij{display:grid;grid-template-columns:1fr;gap:6px}
  .plannerstand .daytoggle{display:none}
  .plannerstand .mag{display:none !important}
  .plannerstand .poi{display:none !important}
  #routelijn,#routebadges{display:none}
  .plannerstand #routelijn,.plannerstand #routebadges{display:block}
  .mk.route rect.pt{stroke:#977521;stroke-width:3.5}
  .mk.route path.pt{stroke:#977521;stroke-width:3.2}
  .mappanel .ro-kop h3{font-size:1.3rem}
  .mappanel .btn{width:100%;justify-content:center;margin-top:16px}
  /* Sinds "Over het park" erbij kwam telt het menu zeven items. Gemeten op 1100 px liep
     het menu 173 px over de knop "Plan mijn droomreis" heen en groeide de kop naar
     128 px hoog. Daarom: tussen 1151 en 1340 px strakker zetten, en onder 1150 px
     meteen naar het hamburgermenu in plaats van pas onder 1000. */
  /* 13-10: met de taalknop en "De app" erbij paste het menu op geen enkele breedte meer op één regel (gemeten: de kop 138 px hoog, het
     vergrootglas op een tweede regel, live op 1440 px al sinds de taalknop). Boven 1150 px daarom altijd compact, op één regel, en
     de taalknop alleen met de vlag. Gemeten van 1160 tot 1440 px: alles op één regel, 24 px over. */
  @media (min-width:1151px){
    header.site .wrap{flex-wrap:nowrap;gap:12px}
    nav.menu{gap:0;flex-wrap:nowrap}
    nav.menu a.mlink{font-size:.88rem;padding:8px 9px;white-space:nowrap}
    nav.menu a.mlink[aria-current="page"]::after{left:10px;right:10px}
    header.site .btn{padding:10px 16px;margin-left:6px;white-space:nowrap}
    header.site .taalknop{padding:0 10px}
    header.site .taalknop span{display:none}
  }
  @media (max-width:1150px){
    header.site .wrap{flex-wrap:nowrap}
    .hamb{display:flex}
    nav.menu{
      display:none;position:absolute;top:100%;left:0;right:0;
      flex-direction:column;align-items:stretch;gap:2px;
      background:var(--bg);
      border-bottom:1px solid var(--line);padding:10px 18px 18px;
      box-shadow:0 24px 40px -24px rgba(64,52,41,.4);
    }
    nav.menu.open{display:flex}
    nav.menu a.mlink{font-size:1.05rem;padding:13px 14px;border-radius:12px}
    nav.menu a.mlink[aria-current="page"]{background:var(--sage-tint)}
    nav.menu a.mlink[aria-current="page"]::after{display:none}
    header.site .btn{margin:10px 0 0;justify-content:center}
  }
  @media (max-width:1000px){
    .planner-grid{grid-template-columns:1fr}
    .planner-grid > *{min-width:0}
    .reisopzet{position:static}
    .doelen{grid-template-columns:repeat(2,minmax(0,1fr))}
    .doelen.paginabreed{grid-template-columns:repeat(3,minmax(0,1fr))}
    .pl-rij{grid-template-columns:1fr;gap:6px}
    .pl-rij > div{min-width:0}
  }
  @media (max-width:560px){
    .ro-body{grid-template-columns:72px minmax(0,1fr)}
    .doelen.paginabreed{grid-template-columns:repeat(2,minmax(0,1fr))}
  }
  .magdot{display:inline-block;width:16px;height:16px;border-radius:4px;margin-right:10px;transform:rotate(-4deg);border:2px solid #FFFDF6;box-shadow:0 0 0 1px rgba(64,52,41,.2);vertical-align:-1px}
  .mappanel{
    position:absolute;top:18px;right:18px;bottom:18px;
    width:min(440px,40%);overflow-y:auto;overscroll-behavior:contain;
    background:rgba(247,242,236,.97);border:1px solid var(--line);border-radius:16px;
    padding:26px 28px;box-shadow:0 18px 40px -22px rgba(64,52,41,.4);
  }
  .mappanel .ptype{font-weight:800;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-deep)}
  .mappanel h3{font-size:1.5rem;font-weight:800;margin:6px 0 4px}
  .mappanel .board{padding:20px 20px 17px}
  .mappanel .board-note{font-size:.84rem;margin-top:12px}
  .mappanel .goldbadge{
    display:inline-flex;align-items:center;gap:7px;
    background:var(--gold-tint);color:var(--gold);
    font-weight:800;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;
    border-radius:999px;padding:6px 14px;margin:8px 0 4px;
  }
  .mappanel .pdesc{color:var(--soft);font-size:1rem;margin-top:12px;line-height:1.7}
  .mappanel .kamp-meer{margin-top:14px}
  /* Nieks eigen herinnering bij een kamp: het verhaal dat je nergens anders krijgt,
     dus met een eigen vlak en de accentletter -- niet als gewone alinea ertussen. */
  .mappanel .herinner{margin-top:14px;padding:13px 15px;border-radius:12px;
    background:var(--gold-tint);border:1px solid rgba(151,117,33,.28)}
  .mappanel .herinner b{display:block;font-family:var(--disp);font-weight:800;font-size:.82rem;
    letter-spacing:.06em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
  .mappanel .herinner p{margin:0;font-family:var(--quote);font-style:italic;font-size:1.02rem;
    line-height:1.62;color:var(--ink)}
  .spotlabel{font-weight:800;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:22px 0 10px}
  .spotchips{display:flex;gap:8px;flex-wrap:wrap}
  .spotchips span{
    background:var(--sage-tint);color:var(--sage-deep);
    font-weight:700;font-size:.86rem;border-radius:999px;padding:7px 15px;
  }
  .airbox{
    display:flex;gap:14px;align-items:flex-start;
    background:var(--gold-tint);border-radius:14px;padding:18px 20px;margin-top:22px;
  }
  .airbox svg{flex:0 0 auto;color:var(--gold);margin-top:2px}
  .airbox .al{font-weight:800;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
  .airbox p{font-size:.95rem;color:#5C4A22;margin-top:4px}
  .airbox b{color:var(--ink)}
  .backbtn{
    display:inline-flex;align-items:center;gap:8px;cursor:pointer;
    background:none;border:none;font-family:var(--body);font-weight:700;font-size:.88rem;
    color:var(--sage-deep);padding:0;margin-bottom:14px;
  }
  .backbtn:hover{color:var(--ink)}
  .legendrow{display:grid;gap:12px;margin-top:22px}
  .legendrow span{display:flex;align-items:center;gap:12px;font-size:.94rem;color:var(--soft);font-weight:600}
  .legklik{display:flex;flex-wrap:wrap;gap:9px 18px}
  .legbtn{
    display:inline-flex;align-items:center;gap:9px;background:none;border:none;padding:0;cursor:pointer;
    font-family:var(--body);font-size:.9rem;color:var(--soft);font-weight:600;
  }
  .legbtn:hover{color:var(--ink)}
  /* legenda-flits gebeurt via JS (rAF): CSS/WAAPI-transform-animaties op deze SVG-groepen
     worden door Chromium niet gecomposit — statische transforms wel. */
  .rchips{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}
  .rchip{
    font-family:var(--body);font-weight:700;font-size:.86rem;color:var(--soft);
    background:var(--white);border:1.5px solid var(--line);border-radius:999px;
    padding:9px 18px;cursor:pointer;
  }
  .rchip:hover{border-color:var(--sage);color:var(--sage-deep)}
  .rchip.on{background:var(--sage);border-color:var(--sage);color:#fff}
  .mappanel .hint-klik{font-size:.85rem;color:var(--soft);font-style:italic;font-family:var(--quote);margin-top:20px}
  /* kampfoto's + faciliteiten in het paneel */
  .kampstrip{margin-top:14px}
  .kampstrip .a-thumb{width:86px;height:60px;border-radius:10px}
  .kampvid{
    display:flex;align-items:center;gap:12px;width:100%;margin-top:10px;cursor:pointer;
    background:var(--white);border:1.5px solid var(--line);border-radius:12px;padding:8px 12px 8px 8px;
    font-family:var(--body);font-weight:700;font-size:.84rem;color:var(--ink);text-align:left;
  }
  .kampvid:hover{border-color:var(--sage)}
  .kampvid img{width:74px;height:48px;object-fit:cover;border-radius:8px;flex:0 0 auto}
  .fchips span{font-size:.8rem;padding:6px 12px}
  .fchips .f-geen{background:var(--panel);color:var(--soft)}
  .fac-bron{font-size:.72rem;color:var(--soft);margin-top:8px;opacity:.8}
  .fac-noot{font-size:.84rem;color:#5C4A22;background:var(--gold-tint);border-radius:10px;padding:10px 14px;margin-top:14px}
  /* Een kamp dat tijdelijk dicht is (nu Letaba en Shimuwini, na de overstromingen van de
     winter van 2026). Staat direct onder de kampnaam: wie dit kamp aanklikt moet het zien
     voordat hij verder leest, niet pas onderaan bij de faciliteiten. */
  .mappanel .kampdicht{margin-top:12px;padding:12px 14px;border-radius:12px;
    background:#FBEFEA;border:1px solid rgba(180,85,63,.42);font-size:.88rem;line-height:1.5}
  .mappanel .kampdicht b{display:block;font-family:var(--disp);font-weight:800;font-size:.82rem;
    letter-spacing:.06em;text-transform:uppercase;color:#9A4530;margin-bottom:5px}
  /* prijzen + video's in de accommodatie-uitklap */
  .a-prijs{
    display:inline-block;font-style:normal;font-weight:800;font-size:.72rem;color:var(--sage-deep);
    background:var(--sage-tint);border-radius:999px;padding:2px 9px;margin-left:7px;vertical-align:1px;white-space:nowrap;
  }
  .acco-bron{font-size:.7rem;color:var(--soft);margin:2px 0 0;opacity:.85}
  .a-thumb.vid{position:relative}
  .a-thumb.vid::after{
    content:"▶";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    color:#fff;font-size:.9rem;background:rgba(30,24,16,.35);border-radius:7px;
  }
  /* reisverslagen-grid groeit mee */
  .bloggrid{align-items:stretch}
  /* planner: toon-regel per reisduur + oversteek + aanvraag-formulier */
  .ro-toon{
    font-size:.86rem;color:#5C4A22;background:var(--gold-tint);
    border-radius:10px;padding:9px 13px;margin:0 0 14px;
  }
  .oversteek{
    display:flex;align-items:center;gap:16px;width:100%;margin-top:12px;
    background:var(--sage-tint);border:2px dashed var(--sage-deep);border-radius:16px;
    padding:16px 22px;cursor:pointer;font-family:var(--body);text-align:left;
    transition:border-style .15s ease,background .15s ease;
  }
  .oversteek:hover{border-style:solid}
  .oversteek.on{border-style:solid;background:#DCE8DD}
  .oversteek .ct-ico{flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:var(--sage-deep);color:#fff;display:flex;align-items:center;justify-content:center}
  .oversteek .ct-txt b{font-family:var(--disp);font-weight:800;font-size:1.02rem;display:block;color:var(--ink)}
  .oversteek .ct-txt small{font-size:.84rem;color:var(--sage-deep);display:block;margin-top:2px}
  .oversteek .ct-pijl{margin-left:auto;font-weight:800;color:var(--sage-deep);font-size:1.2rem}
  .aanvraag{display:grid;gap:9px;margin-top:14px;text-align:left}
  .aanvraag input{
    width:100%;font-family:var(--body);font-size:.95rem;color:var(--ink);
    background:var(--white);border:1.5px solid var(--line);border-radius:11px;padding:12px 14px;
  }
  .aanvraag input:focus{border-color:var(--sage);outline:none}
  .aanvraag .opzet-mee{
    font-size:.8rem;color:var(--soft);background:var(--white);border:1.5px dashed var(--line);
    border-radius:11px;padding:10px 13px;max-height:110px;overflow:auto;white-space:pre-line;
  }
  .aanvraag .btn{margin-top:4px}
  .aanvraag-ok{
    background:var(--sage-tint);border:1.5px solid var(--sage);border-radius:14px;
    padding:18px;text-align:center;margin-top:14px;
  }
  .aanvraag-ok b{font-family:var(--disp);font-size:1.05rem;display:block;margin-bottom:4px}
  .aanvraag-ok p{font-size:.88rem;color:var(--soft)}
  /* tijdlijn op Mijn verhaal */
  .tijdlijn{display:grid;gap:0;margin-top:34px;max-width:640px}
  .tl-item{display:grid;grid-template-columns:120px 26px minmax(0,1fr);gap:0 18px;align-items:start}
  .tl-jaar{font-family:var(--disp);font-weight:800;font-size:1.05rem;color:var(--gold);text-align:right;padding-top:2px;font-variant-numeric:tabular-nums}
  .tl-as{position:relative;display:flex;justify-content:center}
  .tl-as::before{content:"";position:absolute;top:6px;bottom:-6px;width:2px;background:var(--line)}
  .tl-item:last-child .tl-as::before{bottom:auto;height:14px}
  .tl-dot{position:relative;z-index:1;width:13px;height:13px;border-radius:50%;background:var(--sage);border:3px solid var(--bg);box-shadow:0 0 0 1.5px var(--sage);margin-top:5px}
  .tl-body{padding-bottom:30px}
  .tl-body b{font-family:var(--disp);font-weight:800;display:block;font-size:1.05rem}
  .tl-body p{font-size:.95rem;color:var(--soft);margin-top:4px;max-width:52ch}
  .tl-body .linklike{font-size:.88rem;margin-top:6px}
  .tl-foto{width:100%;max-width:340px;border-radius:12px;display:block;margin-top:12px;box-shadow:0 12px 28px -16px rgba(64,52,41,.5)}
  .niekquote{max-width:640px;margin:46px auto 8px;text-align:center}
  .niekquote p{font-family:var(--quote);font-style:italic;font-size:clamp(1.2rem,2.6vw,1.55rem);line-height:1.55;color:var(--ink);margin:0}
  .niekquote span{display:block;margin-top:12px;font-weight:800;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
  /* seizoenswijzer */
  .szn-kaart{
    background:var(--white);border:1.5px solid var(--line);border-radius:20px;
    padding:26px 28px;box-shadow:var(--shadow);max-width:880px;margin:0 auto;
  }
  .maanden{justify-content:center;margin-bottom:22px}
  .szn-kop{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:4px}
  .szn-kop h3{font-family:var(--disp);font-weight:800;font-size:1.55rem;margin:0}
  .szn-seizoen{font-weight:800;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;background:var(--gold-tint);color:var(--gold);border-radius:999px;padding:6px 14px}
  .szn-sfeer{font-family:var(--quote);font-style:italic;color:#5C4A22;font-size:1.04rem;margin:6px 0 18px;max-width:58ch}
  .szn-feiten{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
  .szn-feit{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 13px;font-size:.85rem;font-weight:600}
  .szn-feit b{color:var(--sage-deep)}
  .szn-meters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px;margin-bottom:18px}
  .szn-meter{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.9rem;font-weight:600}
  .szn-dots{display:flex;gap:4px}
  .szn-dots i{width:11px;height:11px;border-radius:50%;background:var(--sage);display:block}
  .szn-dots i.uit{background:var(--panel)}
  .szn-blokken{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:16px}
  .szn-blok{background:var(--bg);border-radius:12px;padding:13px 15px}
  .szn-blok b{font-family:var(--disp);font-weight:800;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sage-deep);display:block;margin-bottom:4px}
  .szn-blok p{margin:0;font-size:.88rem}
  .szn-tip{
    background:var(--gold-tint);border-radius:12px;padding:14px 17px;
    font-family:var(--quote);font-style:italic;color:#5C4A22;font-size:.94rem;
  }
  .szn-tip b{font-family:var(--body);font-style:normal;font-weight:800;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:3px}
  .szn-kaart .btn{width:100%;justify-content:center;margin-top:16px}
  .szn-bron{font-size:.72rem;color:var(--soft);margin-top:14px;text-align:center;max-width:72ch;margin-left:auto;margin-right:auto}
  .szn-gekozen{
    display:inline-flex;align-items:center;gap:8px;font-size:.84rem;font-weight:700;
    background:var(--sage-tint);color:var(--sage-deep);border-radius:999px;padding:6px 8px 6px 14px;margin:0 0 12px;
  }
  .szn-gekozen button{border:none;background:rgba(95,125,99,.16);color:var(--sage-deep);width:20px;height:20px;border-radius:50%;cursor:pointer;font-weight:800;line-height:1;padding:0}
  @media (max-width:560px){
    .szn-meters,.szn-blokken{grid-template-columns:1fr}
    .szn-kaart{padding:20px 16px}
  }
  @media (max-width:560px){
    .tl-item{grid-template-columns:64px 22px minmax(0,1fr);gap:0 12px}
    .tl-jaar{font-size:.92rem}
  }

  /* ---------- verhaal ---------- */
  .split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:60px;align-items:center}
  .photo-frame{
    background:var(--white);border:1px solid var(--line);border-radius:var(--r);
    padding:14px;box-shadow:var(--shadow);max-width:430px;
  }
  .photo-frame .ph{
    aspect-ratio:4/5;border-radius:12px;overflow:hidden;position:relative;
    background:linear-gradient(180deg,#EAD9B4 0%,#D9BE8C 60%,#B4A377 100%);
    display:flex;align-items:center;justify-content:center;
  }
  .photo-frame .ph svg{position:absolute;left:0;right:0;bottom:0;width:100%;height:auto;opacity:.75}
  .photo-frame .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .photo-frame .ph .label{
    position:relative;z-index:2;font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;
    color:var(--soft);background:rgba(255,255,255,.92);
    border:1px dashed var(--line);border-radius:999px;padding:8px 16px;
  }
  .photo-frame figcaption{display:flex;justify-content:space-between;gap:10px;font-size:.82rem;font-weight:600;color:var(--soft);padding:12px 6px 2px}
  .story-copy p{margin-bottom:1.15em;max-width:58ch}
  .story-copy .big{font-family:var(--quote);font-style:italic;font-size:1.3rem;line-height:1.55;color:var(--ink)}

  .fieldnote{
    background:var(--gold-tint);border-radius:var(--r);
    padding:26px 28px;max-width:56ch;margin-top:30px;
  }
  .fieldnote .fn-tag{font-weight:800;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:8px}
  .fieldnote p{font-family:var(--quote);font-style:italic;font-size:1.06rem;color:#5C4A22}
  .fieldnote p strong{color:var(--ink);font-style:normal;font-family:var(--body);font-weight:700;font-size:.98rem}

  .roadbadge{
    display:inline-flex;align-items:center;justify-content:center;
    font-weight:800;font-size:.72rem;letter-spacing:.05em;
    color:#fff;background:var(--sage-deep);border-radius:6px;padding:4px 9px;
  }
  .roadbadge.gravel{background:#7A6B52}

  /* sightings-bord */
  .board{background:var(--ink);color:#F3EDE4;border-radius:var(--r);padding:26px;box-shadow:var(--shadow)}
  .board-title{font-weight:800;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:#E3C77E;display:flex;justify-content:space-between;gap:10px}
  .board-title span:last-child{color:rgba(243,237,228,.5);letter-spacing:.06em}
  .board ul{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:9px}
  .board li{display:flex;align-items:center;gap:12px;font-weight:600;font-size:.95rem;border-bottom:1px dashed rgba(243,237,228,.2);padding-bottom:9px}
  .board li:last-child{border-bottom:none;padding-bottom:0}
  .board .dot{width:13px;height:13px;border-radius:50%;flex:0 0 auto}
  .board .spots{margin-left:auto;display:flex;gap:5px}
  .board .spots i{width:7px;height:7px;border-radius:50%;background:rgba(243,237,228,.9);display:block}
  .board .spots i.dim{background:rgba(243,237,228,.22)}
  .board ul.withfoto{gap:7px}
  .board ul.withfoto li{gap:13px;padding-bottom:7px}
  /* uitklapbare soortrijen op het kampbord */
  .board ul.withfoto li.klikbaar{display:block;cursor:pointer}
  .board .sp-rij{display:flex;align-items:center;gap:13px}
  .board .sp-chev{margin-left:6px;font-size:.72rem;opacity:.55;transition:transform .18s ease;flex:0 0 auto}
  .board li.open .sp-chev{transform:rotate(90deg)}
  .board .sp-uit{display:none;padding:9px 2px 3px 53px;font-size:.82rem;line-height:1.6;color:rgba(243,237,228,.85)}
  .board li.open .sp-uit{display:block}
  .board .sp-uit b{color:#E3C77E;font-weight:700}
  .board .sp-uit .linklike{color:#E3C77E;font-size:.8rem}
  .spfoto{
    width:40px;height:40px;border-radius:9px;object-fit:cover;flex:0 0 auto;
    border:2.5px solid;box-shadow:0 2px 10px rgba(0,0,0,.4);background:#FFFDF6;
  }
  .board-title{align-items:baseline}
  .board-title span:first-child{letter-spacing:.12em}
  .board-title span:last-child{white-space:nowrap;flex:0 0 auto}
  .board-note{margin-top:16px;font-size:.9rem;color:rgba(243,237,228,.8);font-family:var(--quote);font-style:italic}

  /* ---------- pakketten ---------- */
  .packs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
  .packs-grid.kanalen{grid-template-columns:repeat(4,minmax(0,1fr))}
  .packs-upgradenote{
    margin-top:26px;text-align:center;color:var(--soft);
    font-family:var(--quote);font-style:italic;font-size:.95rem;
  }
  .wanneerbeginnen{
    margin-top:34px; padding:20px 24px; border-radius:14px;
    background:var(--gold-tint); border:1px solid rgba(201,151,59,.35);
  }
  .wanneerbeginnen > b{font-family:var(--disp);font-weight:800;font-size:1.05rem;display:block;color:var(--ink)}
  .wanneerbeginnen p b{font-weight:700;color:var(--ink)}
  .wanneerbeginnen p{margin:6px 0 0;font-size:.94rem;color:var(--soft);max-width:70ch}
  .garantie{
    margin-top:26px;display:flex;gap:16px;align-items:center;justify-content:flex-start;
    text-align:left;
    background:var(--sage-tint);border:1.5px solid var(--sage);border-radius:16px;
    padding:18px 26px;
  }
  .garantie .g-ico{color:var(--sage-deep);flex:0 0 56px;display:flex;justify-content:center}
  .garantie .niekfoto{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:2px solid var(--line)}
  .garantie b{font-family:var(--disp);font-weight:800;font-size:1.05rem;display:block;color:var(--ink)}
  .garantie span:not(.g-ico){font-size:.92rem;color:var(--soft);display:block;margin-top:2px;max-width:62ch}
  .upgradepad{
    background:var(--gold-tint);border-radius:20px;padding:26px 30px;
    display:flex;flex-wrap:wrap;gap:20px 40px;align-items:center;justify-content:space-between;
  }
  .up-kop b{font-family:var(--disp);font-weight:800;font-size:1.15rem;display:block;color:var(--ink)}
  .up-kop span{font-size:.92rem;color:#7A6230;display:block;margin-top:3px;max-width:44ch}
  .up-flow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  .up-node{
    background:var(--white);border:1.5px solid var(--line);border-radius:14px;
    padding:10px 18px;text-align:center;
  }
  .up-node b{font-family:var(--disp);font-weight:800;font-size:.95rem;display:block}
  .up-node small{font-size:.8rem;color:var(--soft);font-weight:700}
  .up-pijl{display:flex;flex-direction:column;align-items:center;gap:1px;color:var(--gold)}
  .up-pijl i{font-style:normal;font-weight:800;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}
  .up-pijl b{font-weight:800;font-size:.88rem}
  .pack{
    background:var(--white);border:1.5px solid var(--line);border-radius:20px;
    display:flex;flex-direction:column;position:relative;padding:34px 32px 32px;
  }
  .pack .picon{
    width:56px;height:56px;border-radius:50%;background:var(--sage-tint);color:var(--sage-deep);
    display:flex;align-items:center;justify-content:center;margin-bottom:18px;
  }
  .pack-no{font-weight:800;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--soft)}
  .pack h3{font-size:1.55rem;font-weight:800;margin:6px 0 6px}
  .pack .who{font-family:var(--quote);font-style:italic;color:var(--soft);font-size:1rem;min-height:3.2em}
  .pack .price{
    display:flex;align-items:baseline;gap:10px;margin:18px 0 6px;
    font-family:var(--disp);font-weight:800;font-size:2.7rem;color:var(--gold);
    font-variant-numeric:tabular-nums;letter-spacing:-.01em;
  }
  .pack .price small{font-family:var(--body);font-size:.76rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
  .pack .prijstrap-lbl{font-size:.8rem;color:var(--soft);margin:2px 0 6px}
  .pack .prijstrap{list-style:none;margin:0 0 4px;padding:0;display:grid;gap:3px}
  .pack .prijstrap li{display:flex;justify-content:space-between;gap:8px;font-size:.85rem;color:var(--soft)}
  .pack .prijstrap b{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700}
  .pack hr{border:none;border-top:1.5px dashed var(--line);margin:18px 0}
  .pack .krijg{font-weight:800;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-deep);margin-bottom:12px}
  .pack ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
  .pack li{display:flex;gap:11px;font-size:.97rem;line-height:1.5;align-items:flex-start}
  .pack li .chk{
    flex:0 0 auto;width:21px;height:21px;border-radius:50%;background:var(--sage-tint);
    display:flex;align-items:center;justify-content:center;margin-top:2px;color:var(--sage-deep);
  }
  /* Het voorbeeldschema hoort bij de eerste regel van "Dit krijg je": daar staat waar het
     over gaat. Als los tekstvak onder de pakketten las het minder makkelijk (wens Niek, 11-9). */
  .pack li .vbschema{display:inline-block;margin-top:5px;font-weight:700;color:var(--sage-deep);text-decoration:none;border-bottom:2px solid var(--sage-tint)}
  .pack li .vbschema:hover{border-bottom-color:var(--sage-deep)}
  .pack li .vbschema::after{content:' →'}
  .pack li small{display:block;color:var(--soft);font-size:.86rem;line-height:1.45;margin-top:3px}
  .pack .bookbox{
    background:var(--bg);border-radius:12px;padding:14px 16px;margin-top:18px;
    font-size:.9rem;color:var(--soft);
  }
  .pack .bookbox b{color:var(--ink);font-weight:700}
  .pack .btn{margin-top:22px;width:100%}
  .micro{font-size:.8rem;color:var(--soft)}
  .pack .micro{text-align:center;font-size:.8rem;color:var(--soft);margin-top:10px}
  .pack.featured{border:2px solid var(--sage);box-shadow:var(--shadow)}
  .pack.featured .picon{background:var(--sage);color:#fff}
  .flag{
    position:absolute;top:-14px;left:50%;transform:translateX(-50%);
    background:var(--sage);color:#fff;font-weight:800;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
    padding:7px 16px;border-radius:999px;white-space:nowrap;
  }

  /* pakketten teaser (home) */
  .tpack{padding:28px;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--ink)}
  .tpack .pack-no{color:var(--sage-deep)}
  .tpack h3{font-size:1.3rem;font-weight:800}
  .tpack .tp-price{font-family:var(--disp);font-weight:800;font-size:1.9rem;color:var(--gold);font-variant-numeric:tabular-nums}
  .tpack p{color:var(--soft);font-size:.94rem}
  .tpack .go{font-weight:700;font-size:.9rem;color:var(--sage-deep);margin-top:8px}
  .tpack.mid{border:2px solid var(--sage);position:relative}

  /* vergelijkingstabel */
  .compare-wrap{overflow-x:auto;border:1.5px solid var(--line);border-radius:var(--r);background:var(--white)}
  table.compare{width:100%;border-collapse:collapse;min-width:680px;font-size:.95rem}
  table.compare th,table.compare td{padding:14px 18px;text-align:center;border-bottom:1px solid var(--line)}
  table.compare th{font-family:var(--disp);font-weight:800;font-size:1rem}
  table.compare td:first-child,table.compare th:first-child{text-align:left;color:var(--ink);font-weight:600}
  table.compare tr:last-child td{border-bottom:none}
  table.compare .colmid{background:var(--sage-tint)}
  table.compare .chk{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--sage);color:#fff;align-items:center;justify-content:center}
  table.compare .dash{color:var(--line);font-weight:700;font-size:1.1rem}
  table.compare .prijs{font-family:var(--disp);font-weight:800;font-size:1.25rem;color:var(--gold);font-variant-numeric:tabular-nums}

  /* stappen */
  .steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
  .step{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:30px}
  .step .num{
    width:46px;height:46px;border-radius:50%;background:var(--gold-tint);color:var(--gold);
    font-family:var(--disp);font-weight:800;font-size:1.2rem;
    display:flex;align-items:center;justify-content:center;margin-bottom:16px;
  }
  .step h3{font-size:1.12rem;font-weight:800;margin-bottom:8px}
  .step p{color:var(--soft);font-size:.96rem}

  /* ---------- video's ---------- */
  .vid-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
  .vid-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
  .vid{overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;border-radius:var(--r);cursor:pointer}
  .vid .thumb{aspect-ratio:16/9;position:relative;overflow:hidden;background:var(--panel)}
  .vid .thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
  .vid:hover .thumb img{transform:scale(1.05)}
  .vid .play{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.92);
    display:flex;align-items:center;justify-content:center;transition:transform .18s ease;
  }
  .vid:hover .play{transform:translate(-50%,-50%) scale(1.1)}
  .vid .dur{
    position:absolute;right:10px;bottom:10px;background:rgba(40,32,22,.82);color:#fff;
    font-size:.72rem;font-weight:700;border-radius:6px;padding:3px 8px;font-variant-numeric:tabular-nums;
  }
  .vid .rtag{
    position:absolute;left:10px;top:10px;background:rgba(255,255,255,.92);color:var(--ink);
    font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
    border-radius:6px;padding:3px 9px;
  }
  .vid .meta{padding:16px 18px 18px;background:var(--white);border:1px solid var(--line);border-top:none;border-radius:0 0 var(--r) var(--r);flex:1}
  .vid .meta h3{font-size:1rem;font-weight:700;line-height:1.35;margin-bottom:5px}
  .vid .meta p{font-size:.84rem;color:var(--soft);font-weight:500}
  .filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:34px}
  .fbtn{
    font-family:var(--body);font-weight:700;font-size:.88rem;color:var(--soft);
    background:var(--white);border:1.5px solid var(--line);border-radius:999px;
    padding:10px 20px;cursor:pointer;
  }
  .fbtn:hover{border-color:var(--sage);color:var(--sage-deep)}
  .fbtn.on{background:var(--sage);border-color:var(--sage);color:#fff}
  /* regiokaartje naast de streekfilters */
  .filterrij{display:flex;gap:18px;align-items:center}
  .filterrij .filters{flex:1;min-width:0}
  .regiokaartje{flex:0 0 auto;width:56px}
  .regiokaartje svg{display:block;width:100%;height:auto}
  .rk-zone{fill:transparent;cursor:pointer;transition:fill .15s}
  .rk-zone:hover{fill:rgba(151,117,33,.16)}
  .rk-zone.on{fill:rgba(151,117,33,.32)}
  .rk-lijn{stroke:#6B8F4E;stroke-width:3;stroke-dasharray:9 9;pointer-events:none}
  .rk-txt{font-family:var(--body);font-weight:800;font-size:44px;fill:#42542F;pointer-events:none}

  /* blogvoorbeeld */
  .blogcard{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:0;
    background:var(--white);border:1.5px solid var(--line);border-radius:20px;overflow:hidden;
  }
  .blogcard .bimg{position:relative;min-height:260px}
  .blogcard .bimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .blogcard .btxt{padding:36px 40px}
  .btag{
    display:inline-block;background:var(--gold-tint);color:var(--gold);
    font-weight:800;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
    border-radius:999px;padding:6px 14px;margin-bottom:14px;
  }
  .blogcard h3{font-size:1.5rem;font-weight:800;margin-bottom:12px}
  .blogcard .bmeta{font-size:.82rem;color:var(--soft);font-weight:600;margin-bottom:14px}
  .blogcard .btxt p.excerpt{font-family:var(--quote);font-style:italic;font-size:1.05rem;color:#584A38;line-height:1.7}
  .bloggrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:22px}
  .blogmini{overflow:hidden;display:flex;flex-direction:column}
  .blogmini > img{width:100%;aspect-ratio:16/8;object-fit:cover;display:block}
  .bm-body{padding:20px 24px 22px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
  .blogmini h3{font-size:1.2rem;font-weight:800}
  .bm-excerpt{font-family:var(--quote);font-style:italic;font-size:.96rem;color:#584A38;line-height:1.65}
  @media (max-width:1000px){
    .bloggrid{grid-template-columns:1fr}
  }

  /* ---------- zekerheid ---------- */
  .assure{background:var(--panel)}
  .duo{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:stretch;margin-top:40px}
  .duo-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:30px}
  .duo-card h3{font-size:1.1rem;font-weight:800;display:flex;align-items:center;gap:12px;margin-bottom:10px}
  .duo-card h3 svg{color:var(--sage-deep);flex:0 0 auto}
  .duo-card p{color:var(--soft);font-size:.98rem}
  .duo-plus{display:flex;align-items:center;font-family:var(--disp);font-weight:800;font-size:1.8rem;color:var(--gold)}

  /* reviews */
  .revgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
  .revcard{overflow:hidden;display:flex;flex-direction:column}
  .rev-foto{aspect-ratio:16/10;overflow:hidden}
  .rev-foto img{width:100%;height:100%;object-fit:cover;display:block}
  .rev-body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:12px;flex:1}
  .rev-stars{color:var(--gold);font-size:1.05rem;letter-spacing:3px}
  /* Blokken die alleen op de Engelse site (/en/, <html lang="en">) of alleen op de Nederlandse horen (12-10, wens Niek: dezelfde site, vertaald,
     met minimale aanpassingen waar het moet). data-nl op zo'n Engels blok houdt de vertaallaag erbuiten: het staat er al in het Engels. */
  [data-taal="en"]{display:none!important}
  html[lang="en"] [data-taal="en"]{display:block!important}
  html[lang="en"] [data-taal="nl"]{display:none!important}
  .taalnoot{background:var(--sage-tint);border-left:3px solid var(--sage);padding:12px 16px;border-radius:8px;margin:18px 0 0;color:var(--ink);font-size:.95rem}
  .rev-vertaald{font-size:.78rem;color:var(--soft);margin:6px 0 0;font-style:normal}
  .rev-quote{font-family:var(--quote);font-style:italic;font-size:1rem;line-height:1.65;color:#584A38;flex:1}
  .rev-wie{display:flex;align-items:center;gap:12px}
  .rev-avatar{
    flex:0 0 auto;width:42px;height:42px;border-radius:50%;color:#fff;
    font-family:var(--disp);font-weight:800;font-size:.85rem;
    display:flex;align-items:center;justify-content:center;
  }
  .rev-wie b{font-family:var(--disp);font-weight:800;font-size:.95rem;display:block}
  .rev-wie small{font-size:.8rem;color:var(--soft)}
  .rev-note{text-align:center;font-size:.82rem;color:var(--soft);font-family:var(--quote);font-style:italic;margin-top:22px}
  .minirevs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
  .minirev{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
  .minirev .rev-stars{font-size:.9rem;display:block;margin-bottom:8px}
  .minirev p{font-family:var(--quote);font-style:italic;font-size:.94rem;color:#584A38;line-height:1.55}
  .minirev small{display:block;margin-top:10px;font-weight:700;font-size:.78rem;color:var(--soft)}
  @media (max-width:1000px){
    .revgrid,.minirevs{grid-template-columns:1fr;max-width:520px;margin-left:auto;margin-right:auto}
  }

  /* letaba cta-band */
  .videoband{position:relative;overflow:hidden;padding:130px 0;background:#3A2E21}
  .videoband video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .videoband .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,32,20,.35),rgba(42,32,20,.6))}
  .videoband .wrap{position:relative;z-index:2;text-align:center}
  .videoband h2{color:#fff;font-size:clamp(1.9rem,3.6vw,2.8rem);font-weight:800;margin-bottom:14px;text-shadow:0 2px 22px rgba(20,16,10,.5)}
  .videoband p{color:rgba(255,255,255,.92);max-width:50ch;margin:0 auto 30px;font-size:1.1rem;text-shadow:0 1px 12px rgba(20,16,10,.5)}

  /* marquee */
  .marquee{overflow:hidden;white-space:nowrap;background:var(--white);border-top:1px solid var(--line);padding:18px 0}
  .mq-track{display:inline-block;animation:mq 46s linear infinite}
  .mq-track span{
    font-family:var(--quote);font-style:italic;font-weight:500;font-size:1.02rem;
    color:#584A38;padding:0 16px;
  }
  .mq-track span i{font-style:normal;color:rgba(122,153,125,.55);font-size:.95rem;vertical-align:middle;margin-left:16px}
  .mq-ster{color:var(--gold);letter-spacing:2px;font-size:.85rem;margin-right:9px;vertical-align:1px}
  .mq-track em{font-style:normal;font-family:var(--body);font-weight:700;font-size:.82rem;color:var(--soft)}
  @keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* ---------- faq ---------- */
  .faq{max-width:780px}
  /* het promofilmpje van de app (12-10): staand, naast de tekst; op een telefoon eronder */
  .appfilm{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:48px;align-items:center}
  .appfilm .sec-head{margin-bottom:0}
  .appfilm video{display:block;width:100%;height:auto;aspect-ratio:9/16;border-radius:22px;background:#1F3321;box-shadow:0 22px 50px rgba(31,51,33,.28)}
  @media (max-width:860px){.appfilm{grid-template-columns:1fr;gap:30px}.appfilm .filmkolom{width:min(290px,78vw);margin:0 auto}}
  .faq details{background:var(--white);border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px;overflow:hidden}
  .faq summary{
    list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;
    font-family:var(--disp);font-weight:700;font-size:1.05rem;padding:20px 24px;
  }
  .faq summary::-webkit-details-marker{display:none}
  .faq summary .tgl{
    flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:var(--gold-tint);color:var(--gold);
    display:flex;align-items:center;justify-content:center;font-family:var(--body);font-weight:800;transition:transform .2s ease;
  }
  .faq details[open] summary .tgl{transform:rotate(45deg)}
  .faq .a{padding:0 24px 22px;color:var(--soft);max-width:64ch}

  /* ---------- contact ---------- */
  .contact-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:40px;align-items:start}
  .intake{background:var(--white);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:44px}
  .fstep{display:flex;align-items:center;gap:14px;margin:34px 0 18px}
  .fstep:first-child{margin-top:0}
  .fstep .fnum{
    flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:var(--sage);color:#fff;
    font-family:var(--disp);font-weight:800;font-size:1.05rem;display:flex;align-items:center;justify-content:center;
  }
  .fstep h3{font-size:1.2rem;font-weight:800}
  .fstep .fsub{font-size:.86rem;color:var(--soft);font-weight:500}
  form .grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .field{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
  .field>label{font-weight:700;font-size:.9rem;color:var(--ink)}
  .field .hint{color:var(--soft);font-weight:500;font-size:.82rem}
  input[type=text],input[type=email],textarea,select{
    font-family:var(--body);font-size:1rem;color:var(--ink);
    background:var(--bg);border:1.5px solid var(--line);border-radius:12px;
    padding:14px 16px;width:100%;
  }
  input::placeholder,textarea::placeholder{color:#A99C86;font-style:italic}
  input:focus,textarea:focus,select:focus{border-color:var(--sage);background:#fff}
  textarea{min-height:120px;resize:vertical}
  /* Vragenlijsten (promotie/03-testers.md, hoofdstuk 7): een rij per onderdeel met twee korte keuzevelden. */
  .vlrij{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
  .vlrij .vlnaam{flex:1 1 180px;font-weight:700;font-size:.92rem;color:var(--ink)}
  .vlrij select{width:auto;flex:0 0 auto;padding:10px 12px;font-size:.9rem}
  .optlabel{font-weight:700;font-size:.9rem;color:var(--ink);margin:2px 0 10px}
  .optlabel .hint{color:var(--soft);font-weight:500;font-size:.82rem}
  .optcards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}
  .optcards.one{grid-template-columns:1fr}
  .optcard{
    display:flex;align-items:flex-start;gap:11px;cursor:pointer;
    background:var(--bg);border:1.5px solid var(--line);border-radius:12px;
    padding:13px 16px;font-size:.94rem;line-height:1.45;
    transition:border-color .15s ease,background .15s ease;
  }
  .optcard:hover{border-color:var(--sage)}
  .optcard:has(input:checked){border-color:var(--sage);background:var(--sage-tint)}
  .optcard input{accent-color:var(--sage-deep);width:17px;height:17px;margin-top:3px;flex:0 0 auto}
  .optcard em{color:var(--soft);font-style:normal;font-size:.84rem;display:block}
  .form-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:26px}
  .form-foot .note{font-size:.88rem;color:var(--soft);font-family:var(--quote);font-style:italic;max-width:30ch}
  /* Recensieformulier. De sterren zijn met opzet fors: dit vul je op een telefoon in,
     en een ster van 44 px is de kleinste maat die je met een duim goed raakt. */
  .sterren{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:6px 0 4px}
  .sterren .ster{font:inherit;font-size:2.1rem;line-height:1;padding:4px 6px;min-width:44px;
    background:none;border:none;cursor:pointer;color:#D8CEBB;transition:color .12s,transform .12s}
  .sterren .ster:hover{transform:scale(1.08)}
  .sterren .ster.aan{color:var(--gold)}
  .sterren .sterhint{font-size:.82rem;color:var(--soft);margin-left:8px}
  .keuzehint{margin-top:10px;font-size:.9rem;font-weight:700;color:#A6472E}
  .fotokies{display:block;width:100%;font:inherit;font-size:.92rem;color:var(--soft);
    padding:12px;border:1.5px dashed var(--line);border-radius:12px;background:var(--white)}
  .fotovak{display:flex;align-items:center;gap:12px;margin-top:10px;font-size:.88rem;color:var(--soft)}
  .fotovak img{width:72px;height:72px;object-fit:cover;border-radius:10px;flex:0 0 auto;
    border:1px solid var(--line)}
  .fotovak button{font:inherit;font-size:.85rem;font-weight:700;background:none;border:none;
    color:var(--sage-deep);text-decoration:underline;cursor:pointer;padding:0}
  .akkoord{display:flex;gap:10px;align-items:flex-start;margin:18px 0 4px;
    font-size:.92rem;color:var(--soft);line-height:1.55;cursor:pointer}
  .akkoord input{margin-top:3px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--sage-deep)}
  .recdelen{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
  .recdelen-kop{font-family:var(--disp);font-weight:800;color:var(--ink);font-size:1.05rem}
  .recdelen-uitleg{max-width:44ch;margin:6px auto 14px}
  .recplatforms{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px}
  .recplatforms a{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;
    border:1.5px solid var(--line);background:var(--white);color:var(--ink);text-decoration:none;
    font-weight:700;font-size:.92rem}
  .recplatforms a:hover{border-color:var(--sage);color:var(--sage-deep)}
  .success{display:none;text-align:center;padding:26px 8px}
  .success.show{display:block}
  .success .big{font-family:var(--disp);font-weight:800;font-size:1.5rem;color:var(--sage-deep);margin:14px 0 10px}
  .success p{color:var(--soft);max-width:44ch;margin:0 auto}
  .aside-card{padding:28px;margin-bottom:18px}
  .aside-card h3{font-size:1.05rem;font-weight:800;margin-bottom:14px}
  .aside-card ol{margin:0;padding:0;list-style:none;display:grid;gap:14px}
  .aside-card ol li{display:flex;gap:12px;font-size:.94rem;color:var(--soft)}
  .aside-card ol .n{
    flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--gold-tint);color:var(--gold);
    font-weight:800;font-size:.82rem;display:flex;align-items:center;justify-content:center;margin-top:1px;
  }
  .aside-card .sm{font-size:.92rem;color:var(--soft);line-height:1.7}
  /* Elk kanaal draagt zijn eigen tekentje, zodat je in een oogopslag ziet waar je op
     klikt (wens Niek 18-9). Dezelfde rijopbouw als de genummerde stappen in de kaart
     erboven: een vaste kolom en dan de tekst, zodat het regeltje eronder uitlijnt met
     de link en niet met het tekentje. */
  .aside-card .contactrij{display:flex;gap:12px;align-items:flex-start}
  .aside-card .contactrij ~ .contactrij{margin-top:10px}
  .contactrij .ci{flex:0 0 22px;display:flex;justify-content:center;color:var(--sage-deep);margin-top:4px}
  /* Het WhatsApp-logo mag in zijn eigen merkgroen -- gevraagd door Niek (18-9), de andere
     twee (mail, telefoon) blijven in het groen van de site zelf. */
  .contactrij .ci.wa{color:#25D366}
  .contactrij .ci svg{display:block}

  /* ---------- footer ---------- */
  footer.site{background:var(--ink);color:rgba(243,237,228,.78);padding:58px 0 40px;font-size:.94rem}
  footer.site .wrap{display:flex;justify-content:space-between;gap:36px;flex-wrap:wrap;align-items:flex-start}
  /* De footer toont het VOLLEDIGE logo (naam zit er al in), niet het compacte merk
     met losse tekst ernaast — vandaar een eigen klasse in plaats van .wordmark. */
  .footerlogo{display:inline-block;line-height:0;text-decoration:none;max-width:236px}
  .footerlogo svg{width:100%;height:auto;display:block}
  footer.site .wordmark{color:#F3EDE4}
  footer.site .wordmark em{color:#AFC5B1}
  footer.site .cols{display:flex;gap:56px;flex-wrap:wrap}
  footer.site h4{font-weight:800;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#E3C77E;margin:0 0 12px;font-family:var(--body)}
  footer.site a{color:inherit}
  footer.site p{line-height:1.9}
  footer.site .legal{
    width:100%;border-top:1px solid rgba(243,237,228,.16);margin-top:36px;padding-top:20px;
    display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
    font-size:.8rem;color:rgba(243,237,228,.45);
  }

  /* reveal */
  .rv{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}
  .rv.in{opacity:1;transform:none}
  @media (prefers-reduced-motion: reduce){
    .rv{opacity:1;transform:none;transition:none}
    html{scroll-behavior:auto}
    .mq-track{animation:none}
    .hero .credit .dot{animation:none}
  }

  /* ---------- snackbar (mobiele feedback bij kaart-acties) ---------- */
  .snack{
    position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(12px);
    display:flex;align-items:center;gap:9px;
    background:var(--ink);color:#FFFDF6;border-radius:16px;padding:12px 18px;
    font-weight:600;font-size:.9rem;line-height:1.35;text-align:left;
    box-shadow:0 16px 34px -12px rgba(30,24,16,.6);
    z-index:130;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;
    max-width:calc(100vw - 32px);
  }
  .snack.zien{opacity:1;transform:translateX(-50%) translateY(0)}
  .snack i{width:12px;height:12px;border-radius:3px;flex:0 0 auto;transform:rotate(-4deg);border:1.5px solid #FFFDF6}
  #krugermap{scroll-margin-top:82px}
  /* ---- uitkomst van de reisplanner, op volle breedte onder de stappen ---- */
  #plannerUitkomst{margin-top:34px}
  #plannerUitkomst:empty{display:none}
  .ro-stap{display:flex;align-items:center;gap:11px;font-family:var(--display);font-weight:800;
    font-size:1.06rem;color:var(--ink-deep);margin:0 0 13px}
  .ro-stapnr{background:var(--gold-tint);color:var(--gold-deep);font-family:var(--body);
    font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
    padding:5px 10px;border-radius:999px}
  .ro-samenvat{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
    gap:12px;background:var(--panel);border-radius:15px;padding:15px 20px;margin-bottom:22px}
  .ro-keuzes{font-size:.95rem;color:var(--soft)}
  .ro-keuzes b{color:var(--ink);font-weight:700}
  #plannerUitkomst .ro-kop{display:block;margin-bottom:4px}
  #plannerUitkomst .ro-kop h3{font-size:clamp(1.5rem,3.2vw,2rem);line-height:1.15}
  #plannerUitkomst .ro-n{font-family:var(--display);font-weight:800;font-size:1.05rem;
    color:var(--sage-deep);font-variant-numeric:tabular-nums}
  #plannerUitkomst .ro-sub{color:var(--soft);max-width:62ch;margin:0 0 24px}
  #plannerUitkomst .ro-dagen{display:grid;gap:0}
  #plannerUitkomst .ro-dag{display:grid;grid-template-columns:112px minmax(0,1fr);gap:20px;
    background:var(--white);border-radius:16px;padding:19px 21px;box-shadow:0 2px 14px rgba(64,52,41,.07)}
  #plannerUitkomst .ro-d{font-family:var(--display);font-weight:800;font-size:.95rem;
    color:var(--gold-deep);border-right:1.5px solid var(--line);padding-right:16px;
    font-variant-numeric:tabular-nums}
  #plannerUitkomst .ro-inh{min-width:0}
  #plannerUitkomst .ro-inh > b{font-family:var(--display);font-size:1.3rem;display:block}
  #plannerUitkomst .ro-inh > small{color:var(--soft);display:block;margin-bottom:13px}
  .ro-rit{display:flex;align-items:center;gap:11px;padding:12px 0 12px 132px;
    color:var(--soft);font-size:.9rem}
  .ro-ritico{color:var(--gold-deep);font-weight:800}
  .ro-rit b{color:var(--ink);font-weight:700}
  /* accommodatie */
  .ac-top{border:1.5px solid var(--gold);border-radius:14px;overflow:hidden;background:var(--gold-tint)}
  .ac-optie{border:1.5px solid var(--line);border-radius:12px;overflow:hidden;background:var(--white)}
  .ac-knop{display:grid;grid-template-columns:128px minmax(0,1fr) auto;gap:15px;align-items:center;
    width:100%;text-align:left;font:inherit;color:inherit;background:none;border:0;padding:12px;cursor:pointer}
  .ac-knop:hover{background:rgba(201,151,59,.09)}
  .ac-foto{width:128px;height:86px;border-radius:9px;object-fit:cover;display:block;background:var(--panel)}
  .ac-geenfoto{width:128px;height:86px;border-radius:9px;background:var(--panel);display:grid;
    place-items:center;color:var(--soft);font-size:.71rem;text-align:center;padding:8px;line-height:1.35}
  .ac-mid{min-width:0}
  .ac-naam{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
  .ac-naam b{font-family:var(--display);font-weight:800;font-size:1.05rem}
  .ac-om{color:var(--soft);font-size:.92rem;display:block;margin-top:3px}
  .ac-chev{color:var(--gold-deep);font-size:1.1rem;padding:0 5px;transition:transform .18s}
  .open > .ac-knop .ac-chev{transform:rotate(180deg)}
  .ac-detail{display:none;padding:0 12px 14px;border-top:1.5px solid rgba(201,151,59,.3)}
  .open > .ac-detail{display:block}
  .ac-detail-in{padding-top:13px}
  .ac-feit{color:var(--ink);font-size:.9rem;margin-top:11px}
  .ac-leeg{color:var(--soft);font-size:.88rem;font-style:italic;font-family:var(--quote);margin:0}
  .a-match.a-anders{background:var(--panel);color:var(--soft)}
  .ac-noot{font-size:.88rem;color:var(--soft);margin:9px 0 0;font-style:italic;font-family:var(--quote)}
  .ac-meer{margin-top:10px;width:100%;font:inherit;font-size:.9rem;font-weight:700;
    color:var(--gold-deep);background:var(--white);border:1.5px dashed var(--line);
    border-radius:11px;padding:10px 14px;cursor:pointer;text-align:left}
  .ac-meer:hover{border-color:var(--gold);background:var(--gold-tint)}
  .ac-opties{display:none;margin-top:9px;gap:9px;grid-template-columns:1fr}
  .ac-opties.aan{display:grid}
  .ac-optie .ac-foto,.ac-optie .ac-geenfoto{width:104px;height:70px}
  .ac-optie .ac-knop{grid-template-columns:104px minmax(0,1fr) auto;padding:10px}
  @media (max-width:720px){
    #plannerUitkomst .ro-dag{grid-template-columns:1fr;gap:12px;padding:16px}
    #plannerUitkomst .ro-d{border-right:0;border-bottom:1.5px solid var(--line);padding:0 0 9px}
    .ro-rit{padding-left:6px}
    .ac-knop{grid-template-columns:96px minmax(0,1fr);padding:10px}
    .ac-foto,.ac-geenfoto,.ac-optie .ac-foto,.ac-optie .ac-geenfoto{width:96px;height:68px}
    .ac-chev{grid-column:2;justify-self:end;margin-top:-6px}
    .ac-optie .ac-knop{grid-template-columns:96px minmax(0,1fr)}
  }
  /* ---- Over het park ---- */
  .parkcijfers{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
  .parkcijfers > div{background:var(--white);border-radius:14px;padding:18px 20px;
    box-shadow:0 2px 14px rgba(64,52,41,.07)}
  .parkcijfers b{display:block;font-family:var(--display);font-weight:800;font-size:1.85rem;
    color:var(--gold-deep);line-height:1.1;font-variant-numeric:tabular-nums}
  .parkcijfers span{display:block;color:var(--soft);font-size:.92rem;margin-top:5px;line-height:1.5}
  .park{max-width:74ch;margin-top:38px}
  .park h3{font-family:var(--display);font-weight:800;font-size:1.42rem;margin:38px 0 10px;
    color:var(--ink-deep);scroll-margin-top:92px}
  .park h3:first-child{margin-top:0}
  .park p{margin:0 0 12px;color:var(--soft);line-height:1.78}
  .park p b,.park li b{color:var(--ink)}
  .park ul{list-style:none;padding:0;margin:0 0 14px}
  .park li{position:relative;padding-left:26px;margin-bottom:9px;color:var(--soft);line-height:1.7}
  .boomlijst li::before{content:'';position:absolute;left:3px;top:.62em;width:9px;height:9px;
    border-radius:50%;background:var(--sage)}
  .lijstpark li::before{content:'';position:absolute;left:3px;top:.64em;width:8px;height:8px;
    border-radius:2px;background:var(--gold)}
  .park-klein{font-size:.9rem}
  .parkfoto{margin:16px 0 4px}
  .parkfoto img{width:100%;height:auto;border-radius:13px;display:block;
    box-shadow:0 2px 14px rgba(64,52,41,.1)}
  .parkfoto figcaption{font-size:.82rem;color:var(--soft);margin-top:7px}
  .parktabel em{font-style:normal;color:var(--soft);font-size:.86rem;margin-left:5px}
  .park-noot{background:var(--panel);border-radius:11px;padding:13px 17px;font-size:.94rem;margin:14px 0}
  .park-door{margin:6px 0 0}
  .szn2{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:6px 0 14px}
  .szn2 > div{background:var(--white);border-radius:14px;padding:17px 19px;
    box-shadow:0 2px 14px rgba(64,52,41,.07)}
  .szn2 b{display:block;font-family:var(--display);font-weight:800;color:var(--ink-deep);margin-bottom:5px}
  .szn2 p{margin:0;font-size:.94rem}
  .tabelwrap{overflow-x:auto}
  .parktabel{width:100%;border-collapse:collapse;font-size:.94rem;margin:4px 0 10px}
  .parktabel th{text-align:left;font-size:.72rem;font-weight:800;letter-spacing:.1em;
    text-transform:uppercase;color:var(--soft);padding:6px 10px;border-bottom:1.5px solid var(--line)}
  .parktabel td{padding:8px 10px;border-bottom:1px solid var(--line);color:var(--ink);
    font-variant-numeric:tabular-nums}
  .parktabel td:first-child{color:var(--soft)}
  .park-bron{background:var(--panel);border-radius:13px;padding:17px 20px;margin:34px 0 0}
  .park-bron b{display:block;font-size:.72rem;font-weight:800;letter-spacing:.13em;
    text-transform:uppercase;color:var(--gold-deep);margin-bottom:7px}
  .park-bron p{font-size:.9rem;margin-bottom:8px}
  .park-bron p:last-child{margin-bottom:0}
  .park-cta{margin-top:30px;padding-top:22px;border-top:1.5px solid var(--line)}
  .park-cta p{font-family:var(--display);font-weight:800;font-size:1.2rem;color:var(--ink-deep);margin:0 0 12px}

  /* juridische pagina's: leesbaar, geen opsmuk */
  .jur{max-width:74ch}
  .jur h3{font-family:var(--display);font-weight:800;font-size:1.22rem;margin:30px 0 8px;
    color:var(--ink-deep)}
  .jur h3:first-child{margin-top:0}
  .jur p{margin:0 0 11px;color:var(--soft);line-height:1.75}
  .jur p b,.jur li b{color:var(--ink)}
  .jur ul{list-style:none;padding:0;margin:0 0 13px}
  .jur li{position:relative;padding-left:27px;margin-bottom:8px;color:var(--soft);line-height:1.7}
  .vinkjur li::before{content:'✓';position:absolute;left:2px;top:0;color:var(--sage-deep);font-weight:800}
  .kruisjur li::before{content:'×';position:absolute;left:3px;top:-1px;color:var(--gold-deep);
    font-weight:800;font-size:1.1rem}
  .lijstjur li::before{content:'';position:absolute;left:4px;top:.72em;width:7px;height:7px;
    border-radius:50%;background:var(--line)}
  .jur-noot{background:var(--panel);border-radius:11px;padding:13px 17px;font-size:.93rem;
    margin:14px 0 11px}
  .jur-datum{margin-top:32px;padding-top:14px;border-top:1.5px solid var(--line);
    font-size:.84rem;opacity:.8}
  .mappanel{scroll-margin-top:82px}
  #planStart{scroll-margin-top:92px}

  /* ---------- mobiele pakket-vergelijker (vervangt de brede tabel) ---------- */
  .comparemob{display:none}
  .cm-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;background:var(--white);border:1.5px solid var(--line);border-radius:15px;padding:5px}
  .cm-seg button{border:none;background:none;font:inherit;font-weight:700;font-size:.84rem;line-height:1.2;padding:11px 2px;border-radius:10px;cursor:pointer;color:var(--soft)}
  .cm-seg button.on{background:var(--sage);color:#fff}
  .cm-body{background:var(--white);border:1.5px solid var(--line);border-radius:var(--r);padding:22px 20px;margin-top:12px}
  .cm-prijs{font-family:var(--disp);font-weight:800;font-size:1.55rem;color:var(--gold);margin-bottom:16px;font-variant-numeric:tabular-nums}
  .cm-prijs small{font-family:var(--body);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin-left:9px}
  .cm-body ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
  .cm-body li{display:flex;gap:11px;align-items:flex-start;font-size:.95rem;line-height:1.5}
  .cm-body li.uit{color:var(--soft)}
  .cm-ja{display:inline-flex;width:20px;height:20px;border-radius:50%;background:var(--sage);color:#fff;align-items:center;justify-content:center;flex:0 0 auto;margin-top:1px}
  .cm-nee{display:inline-flex;width:20px;justify-content:center;color:var(--line);font-weight:700;flex:0 0 auto}
  .cm-extra{font-style:italic;color:var(--soft);font-size:.85em}
  .cm-bij{display:block;font-style:normal;font-weight:400;color:var(--soft);font-size:.85em;margin-top:2px}

  /* responsive */
  @media (max-width:1000px){
    .split,.contact-grid{grid-template-columns:1fr}
    .boardwrap{height:auto;overflow:visible;background:none;box-shadow:none;border:none}
    #krugermap{height:62vh;min-height:420px;border-radius:16px;background:#EFE6C8;box-shadow:0 18px 40px -24px rgba(64,52,41,.45);border:1px solid rgba(64,52,41,.12)}
    /* Op mobiel staat het paneel gewoon in de pagina. Het mag dan geen eigen
       scrollgebied meer zijn: met overflow-y:auto + overscroll-behavior:contain
       stopte de veeg aan de rand van het vakje in plaats van door te lopen op de
       pagina — precies de klacht dat je "aan de zijkant" moest vegen. */
    .mappanel{position:static;width:100%;margin-top:14px;box-shadow:none;overflow:visible;overscroll-behavior:auto}
    .daytoggle{top:10px;transform:translateX(-50%);max-width:calc(100% - 16px)}
    .daytoggle button{font-size:.72rem;padding:7px 9px;white-space:nowrap}
    .mapzoom{top:10px;left:10px}
    .maplegend{position:static;flex-direction:row;flex-wrap:wrap;gap:1px 6px;margin-top:10px;justify-content:center}
    .packs-grid,.steps,.vid-grid,.vid-grid.four{grid-template-columns:minmax(0,1fr);max-width:560px;margin-left:auto;margin-right:auto}
    .packs-grid.kanalen{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
    .stats .wrap{grid-template-columns:1fr 1fr;gap:28px}
    .duo{grid-template-columns:1fr}
    .duo-plus{justify-content:center;padding:2px 0}
    .photo-frame{margin:0 auto}
    .blogcard{grid-template-columns:1fr}
    .blogcard .bimg{min-height:220px}
    .pack.featured{transform:none}
  }
  @media (max-width:720px){
    section{padding:64px 0}
    .boardwrap{width:calc(100vw - 24px);margin-left:calc(50% - 50vw + 12px)}
    .hero{height:78vh;min-height:520px}
    /* smal scherm: de kop loopt hier tot 87% van de breedte, dus het verloop van
       links dooft niet uit maar houdt over de volle breedte een bodem. Zonder dit
       haalt de kop 2,58:1; hiermee 4,23:1. */
    .hero .shade{background:
      linear-gradient(90deg,rgba(20,16,10,.52) 0%,rgba(20,16,10,.42) 55%,rgba(20,16,10,.32) 100%),
      linear-gradient(180deg,rgba(30,24,16,.10) 0%,rgba(30,24,16,0) 30%,rgba(30,24,16,.46) 100%)}
    .hero .wrap{padding-bottom:56px}
    header.site .wrap{flex-wrap:nowrap}
    .hamb{display:flex}
    nav.menu{
      display:none;position:absolute;top:100%;left:0;right:0;
      flex-direction:column;align-items:stretch;gap:2px;
      background:var(--bg);
      border-bottom:1px solid var(--line);padding:10px 18px 18px;
      box-shadow:0 24px 40px -24px rgba(64,52,41,.4);
    }
    nav.menu.open{display:flex}
    nav.menu a.mlink{font-size:1.05rem;padding:13px 14px;border-radius:12px}
    nav.menu a.mlink[aria-current="page"]{background:var(--sage-tint)}
    nav.menu a.mlink[aria-current="page"]::after{display:none}
    header.site .btn{margin:10px 0 0;justify-content:center}
    .intake{padding:28px 22px}
    form .grid2,.optcards{grid-template-columns:1fr}

    /* hero: hoogte volgt de inhoud — de specialist-badge kan nooit meer wegvallen */
    .hero{height:auto;min-height:0;max-height:none}
    .hero .wrap{padding-top:min(26vh,210px);padding-bottom:56px}
    .hero h1{font-size:clamp(2.05rem,8.6vw,2.6rem)}
    .hero .sub{font-size:1.04rem}
    .hero .kicker{font-size:.7rem;padding:6px 13px}
    .hero-cta{margin-top:22px}
    .hero-cta .ghostlight{display:none}
    .hero-cta .btn{width:100%;justify-content:center;padding:16px 24px}
    .hero .credit{left:12px;right:12px;bottom:10px;justify-content:center;font-size:.7rem;padding:6px 10px}

    .truststrip .wrap{flex-direction:column;align-items:flex-start;gap:9px;padding-top:16px;padding-bottom:16px}
    .truststrip .t{font-size:.88rem}
    .stats .wrap{padding-top:44px;padding-bottom:44px}

    /* kaart-rijen worden swipebare carrousels */
    .revgrid,.minirevs,.bloggrid{
      display:flex;max-width:none;gap:14px;
      overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
      margin-left:-24px;margin-right:-24px;padding:4px 24px 16px;
      scrollbar-width:none;
    }
    .revgrid::-webkit-scrollbar,.minirevs::-webkit-scrollbar,.bloggrid::-webkit-scrollbar{display:none}
    .revcard{flex:0 0 84%;scroll-snap-align:center}
    .minirev{flex:0 0 76%;scroll-snap-align:center}
    .blogmini{flex:0 0 82%;scroll-snap-align:center}

    /* chips en keuzeknoppen: één swipebare rij i.p.v. wrappen */
    .filters,.seg{
      /* flex-start en niet center: bij justify-content:center steekt inhoud die breder
         is dan het vak aan BEIDE kanten uit, en naar links kun je niet scrollen omdat
         scrollLeft niet negatief kan. In de seizoenswijzer waren jan t/m apr daardoor
         onbereikbaar (offsetLeft -274 t/m -56). Hier past de rij toch nooit. */
      justify-content:flex-start;
      flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
      margin-left:-24px;margin-right:-24px;padding-left:24px;padding-right:24px;padding-bottom:6px;
    }
    .filters::-webkit-scrollbar,.seg::-webkit-scrollbar{display:none}
    .filters .fbtn,.seg button{white-space:nowrap;flex:0 0 auto}

    /* upgrade-pad verticaal */
    .upgradepad{padding:22px 20px}
    .up-flow{flex-direction:column;align-items:stretch;gap:10px;width:100%}
    .up-node{padding:12px 16px}
    .up-pijl{flex-direction:row;justify-content:center;gap:7px}
    .up-pijl svg{display:none}
    .up-pijl b::after{content:" ↓"}

    /* vergelijker: brede tabel weg, pakket-kiezer ervoor in de plaats */
    .compare-wrap{display:none}
    .comparemob{display:block}

    footer.site .wrap{flex-direction:column;gap:28px}
    footer.site .cols{gap:28px}
  }
#page-app ul.appwaar{margin:12px 0 0;padding-left:1.1em;display:grid;gap:6px;color:var(--soft)}

  /* ---------- 22-10: lange recensies inklappen, vaste actiebalk op mobiel, regel over de app in de hero ---------- */
  .rev-quote.klem{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:9;line-clamp:9;overflow:hidden;flex:0 0 auto}
  .rev-meer{background:none;border:0;padding:0;margin:0 0 14px;font:inherit;font-weight:700;font-size:.92rem;color:var(--gold);
    text-decoration:underline;text-underline-offset:3px;cursor:pointer;align-self:flex-start;min-height:44px}
  .rev-meer:hover{color:#7E6119}
  .hero-app{margin:16px 0 0;color:#FFFDF6;font-size:.98rem;max-width:46ch}
  .hero-app a{color:#FFFDF6;font-weight:700;text-decoration:underline;text-underline-offset:3px}
  html[lang="en"] [data-alleen-nl]{display:none}
  .mobactie{display:none}
  @media (max-width:700px){
    .mobactie{position:fixed;left:0;right:0;bottom:0;z-index:55;display:flex;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));
      background:rgba(246,241,230,.97);border-top:1px solid var(--line);box-shadow:0 -10px 24px -16px rgba(30,24,16,.45);
      transform:translateY(110%);transition:transform .25s ease;visibility:hidden}
    .mobactie.aan{transform:none;visibility:visible}
    .mobactie .btn{flex:1 1 auto;justify-content:center;min-height:48px}
    .mobactie .wa{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:999px;
      border:1.5px solid var(--sage);color:var(--sage-deep);font-weight:700;text-decoration:none;background:#fff}
    body.mobactie-aan{padding-bottom:72px}
    body.mobactie-aan .snack{bottom:88px}
    /* tikdoelen van minstens 44 px (22-10): knoppen echt groter, de kleine kaartknoppen via een onzichtbaar groter raakvlak */
    footer.site .cols a{display:inline-block;padding:9px 0}
    .seg button,.spchip,.rchip{min-height:44px}
    .szn-bron{font-size:.88rem}
    .maplegend .mlg,.legbtn{position:relative}
    .maplegend .mlg::after,.legbtn::after{content:"";position:absolute;inset:-13px -4px}

  }

/* ---------- kamppagina's ---------- */
/* Eigen regels bovenop de huisstijl van de site. Alles wat hier staat gebruikt de
   variabelen uit het blok hierboven, zodat een kleurwijziging op de site meeloopt. */
/* De leeskolom van de site: .wrap met max-width 720 en margin:0 auto, dus gecentreerd.
   Zo staan deze pagina's precies zo uitgelijnd als "Over het park" en "Pakketten". */
.kamp-kolom{max-width:720px;margin:0 auto;padding:0 24px}
.kamp-kop{padding:0 0 10px}
/* De h1 van een sitepagina is INKT en gewicht 700, niet goud en niet 800 -- goud is voor
   h2.title binnen een sectie. Nagemeten op /over-het-park/: 45px, rgb(64,52,41), 700. */
.kamp-kop h1{font-size:clamp(2.1rem,4.4vw,3.2rem);color:var(--ink);font-weight:700;
  margin:12px 0 14px}
.kamp-body{padding-bottom:10px}
/* Tussenkoppen op de site staan in Figtree (de broodletter) op gewicht 800, niet in de
   displayletter. Nagemeten op /over-het-park/: 22.7px, rgb(51,41,31), 800. */
.kamp-body h2{font-family:var(--body);font-size:1.42rem;font-weight:800;color:var(--ink-deep);
  margin:40px 0 12px;letter-spacing:0}
/* Lopende tekst op de site is de zachte kleur, niet inkt. */
.kamp-body p{margin:0 0 14px;color:var(--soft)}
.kamp-dicht{background:#F7E4DC;border-left:4px solid #A6472E;padding:14px 18px;
  border-radius:0 12px 12px 0;margin:18px 0}
.kamp-dicht b{color:#8C3A24}
.kamp-eigen{background:var(--white);border:1px solid var(--line);border-radius:var(--r);
  padding:22px 26px;margin:16px 0;box-shadow:var(--shadow)}
.kamp-eigen .eyebrow{color:var(--gold);margin-bottom:8px;display:block}
.kamp-eigen p{font-family:var(--quote);font-style:italic;font-size:1.08rem;margin:0}
.kamp-chips{list-style:none;padding:0;margin:8px 0 16px;display:flex;flex-wrap:wrap;gap:8px}
.kamp-chips li{background:var(--gold-tint);border-radius:999px;padding:5px 15px;font-size:.92rem}
.kamp-fac{columns:2;column-gap:34px;padding-left:20px;margin:8px 0}
.kamp-fac li{margin-bottom:5px;break-inside:avoid}
.kamp-bron{font-size:.86rem;color:var(--soft);margin-top:8px}
.kamp-poort{border-collapse:collapse;width:100%;max-width:440px;margin:8px 0 10px}
.kamp-poort td{padding:8px 14px 8px 0;border-bottom:1px solid var(--line)}
.kamp-poort td.t{text-align:right;font-variant-numeric:tabular-nums;color:var(--soft)}
.kamp-sat{border-left:4px solid var(--sage);background:var(--sage-tint);
  padding:16px 20px;border-radius:0 12px 12px 0;margin:0 0 16px}
.kamp-sat h3{font-family:var(--disp);font-size:1.1rem;font-weight:800;margin:0 0 4px;color:var(--sage-deep)}
.kamp-sat .soort{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--soft);font-weight:700;display:block;margin-bottom:6px}
.kamp-sat p{margin:0 0 8px;color:var(--soft)}
.kamp-verslag{border-left:4px solid var(--gold);padding:2px 0 2px 18px;margin:0 0 22px}
.kamp-verslag h3{font-family:var(--disp);font-size:1.1rem;font-weight:800;margin:0 0 4px}
.kamp-verslag .meta{font-size:.86rem;color:var(--soft);margin:0 0 8px}
.kamp-verslag p{color:var(--soft)}
.kamp-buren{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:10px}
/* Links krijgen dezelfde behandeling als .linklike op de site: goud, vet, onderstreept
   met wat lucht eronder. Zonder dit vallen ze terug op het blauw van de browser -- de
   site heeft namelijk geen algemene a{}-regel, alleen klassen per soort link. */
.kamp-body a,.kamp-verslag a{color:var(--gold);font-weight:700;
  text-decoration:underline;text-underline-offset:3px}
.kamp-body a:hover,.kamp-verslag a:hover{color:#7E6119}
/* Een kampnaam is een kop; die onderstreep je niet, maar wel als je erover gaat. */
.kamp-body h3 a{text-decoration:none}
.kamp-body h3 a:hover{text-decoration:underline;text-underline-offset:3px}
/* De chips en de knop houden hun eigen vorm -- staat na de regels hierboven zodat ze winnen. */
.kamp-buren a{display:inline-block;background:var(--white);border:1px solid var(--line);
  border-radius:999px;padding:8px 18px;text-decoration:none;color:var(--ink);font-weight:600}
.kamp-buren a:hover{border-color:var(--sage);background:var(--sage-tint)}
/* Groen uit de huisstijl: --sage, hetzelfde groen als de knoppen en chips elders.
   Eerder stond hier --sage-deep, maar dat is de HOVERkleur en die valt donkerder uit.
   De knop is de bestaande .btn.gold van de site -- geen eigen kleuren meer hier. */
.kamp-cta{background:var(--sage);color:#fff;border-radius:var(--r);
  padding:30px 34px;margin:40px 0 10px}
.kamp-cta h2{font-family:var(--disp);color:#fff;margin:0 0 10px;font-size:1.5rem;font-weight:800}
/* Wit op --sage haalt 3,14:1. Voor gewone tekst is 4,5:1 de norm, voor GROTE tekst 3:1 --
   en groot betekent vanaf 18,66px vet. De regel hieronder zet de alinea daar net boven,
   zodat het groen kan blijven zoals het elders op de site is en de tekst toch leesbaar
   is. Het is een korte oproep van een zin; die mag wat steviger staan. */
.kamp-cta p{color:#fff;margin:0 0 18px;max-width:52ch;font-size:1.2rem;font-weight:700;line-height:1.5}
.kamp-lijst{margin:0 0 30px}
/* Eigen beeld bij het kamp (25-10): een foto (waar Niek er een heeft) en/of zijn eigen
   video van die plek, tussen de kop en de tekst in. Buiten .kamp-body gehouden, want
   .kamp-body a maakt elke link goud-en-onderstreept en dat past niet bij een beeldkaart. */
.kamp-media{display:flex;flex-wrap:wrap;gap:14px;margin:18px 0 8px}
.kamp-media figure{margin:0;flex:1 1 300px;max-width:440px}
.kamp-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);display:block;box-shadow:var(--shadow)}
.kamp-media figcaption{font-size:.84rem;color:var(--soft);margin-top:8px}
.kamp-vid-link{flex:1 1 260px;max-width:360px;display:flex;align-items:center;gap:12px;
  border:1px solid var(--line);border-radius:var(--r);padding:12px;text-decoration:none;
  color:var(--ink);background:var(--white)}
.kamp-vid-link:hover{border-color:var(--sage)}
.kamp-vid-link img{width:110px;height:74px;object-fit:cover;border-radius:8px;flex:0 0 auto;box-shadow:none}
.kamp-vid-link span{font-weight:700;font-size:.96rem}
@media (max-width:620px){ .kamp-fac{columns:1} .kamp-cta{padding:24px 20px} }

/* ---------- inhoudspagina's ---------- */
.kamp-tabel-wrap{overflow-x:auto;margin:10px 0 18px}
.kamp-tabel{border-collapse:collapse;width:100%;min-width:560px;font-size:.95rem}
.kamp-tabel th,.kamp-tabel td{padding:8px 12px 8px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.kamp-tabel thead th{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.kamp-tabel tbody th{font-weight:700;color:var(--ink)}
.kamp-score{letter-spacing:.12em;color:var(--sage);white-space:nowrap}
.kamp-sub{font-family:var(--body);font-weight:600;font-size:.9rem;color:var(--soft)}
.kamp-cta .btn{margin:0 8px 8px 0}
.kamp-body ul{margin:0 0 14px;padding-left:22px;color:var(--soft)}
.kamp-body li{margin-bottom:6px}
.kamp-body ul.kamp-chips{padding-left:0;margin:8px 0 14px}
.kamp-body h3{font-family:var(--disp);font-size:1.1rem;font-weight:800;margin:22px 0 8px}
.kamp-verslag{margin-bottom:26px}
.kamp-verslag h3{margin-top:0}
