
:root{
  --paars:#4e1f78; --paars-d:#2c0f47; --paars-l:#7a4aa6;
  --oranje:#e1621b; --oranje-d:#b8460c; --goud:#c99a3a; --goud-l:#f3dc9a;
  --papier:#fdf8ef; --papier-2:#f6ecdb; --inkt:#24131f; --zacht:#6c5a66;
  --schaduw:0 18px 40px -18px rgba(44,15,71,.45);
  --serif:"Fraunces",Georgia,serif; --script:"Lobster",Georgia,serif; --sans:"Nunito Sans",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--papier);color:var(--inkt);font:17px/1.65 var(--sans);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--paars)}
.wrap{width:min(1140px,100% - 32px);margin:0 auto}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;background:#fff;padding:8px 12px;z-index:99}

/* kop */
.kop{position:sticky;top:0;z-index:50;background:rgba(253,248,239,.94);backdrop-filter:blur(8px);border-bottom:3px solid var(--oranje)}
.kop .wrap{display:flex;align-items:center;gap:18px;min-height:74px}
.kop .merk{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--paars-d)}
.kop .merk img{width:92px}
.kop .merk span{font:800 .78rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--oranje-d)}
.kop nav{margin-left:auto;display:flex;gap:22px}
.kop nav a{color:var(--paars-d);text-decoration:none;font-weight:800;font-size:.95rem}
.kop nav a:hover{color:var(--oranje)}
.knop{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.4rem;border-radius:999px;font:800 1rem/1 var(--sans);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s}
.knop:hover{transform:translateY(-2px)}
.knop-paars{background:var(--paars);color:#fff;box-shadow:0 10px 22px -10px var(--paars)}
.knop-oranje{background:var(--oranje);color:#fff;box-shadow:0 10px 22px -10px var(--oranje)}
.knop-lijn{border-color:var(--paars);color:var(--paars);background:transparent}
.knop svg{width:20px;height:20px}

/* hero */
.hero{position:relative;padding:clamp(40px,6vw,80px) 0 clamp(60px,8vw,110px);overflow:hidden;
  background:radial-gradient(900px 500px at 85% 10%,rgba(201,154,58,.18),transparent 60%),radial-gradient(700px 500px at 0% 100%,rgba(78,31,120,.10),transparent 60%)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center}
.kicker{display:inline-flex;align-items:center;gap:.5rem;font:800 .8rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--oranje-d)}
.kicker svg{width:22px;height:16px;color:var(--goud)}
.hero h1{font:400 clamp(3.4rem,8vw,6.2rem)/.95 var(--script);color:var(--paars);margin:.6rem 0 .2rem;text-shadow:3px 3px 0 var(--goud-l)}
.hero h1 small{display:block;font:800 clamp(1.4rem,3vw,2rem)/1.1 var(--serif);color:var(--paars-d);text-shadow:none;margin-top:.4rem}
.hero .by{font:400 clamp(1.4rem,2.6vw,1.8rem)/1 var(--script);color:var(--oranje);margin:.5rem 0 1.2rem}
.hero .lead{font-size:1.15rem;max-width:34em;color:#3d2a37}
.medailles{display:flex;flex-wrap:wrap;gap:10px;margin:1.4rem 0}
.medaille{display:flex;align-items:center;gap:.55rem;background:#fff;border:2px solid var(--goud-l);border-radius:999px;padding:.45rem .9rem .45rem .5rem;font-weight:800;font-size:.9rem;color:var(--paars-d)}
.medaille i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#f7e3a3,#c99a3a 55%,#9a7020);color:#fff;font-style:normal;font-size:.8rem;box-shadow:inset 0 -2px 0 rgba(0,0,0,.15)}
.acties{display:flex;flex-wrap:wrap;gap:12px;margin-top:.4rem}
.status{display:inline-flex;align-items:center;gap:.55rem;margin-top:1.3rem;font-weight:800;color:var(--paars-d);background:var(--papier-2);padding:.5rem .9rem;border-radius:12px}
.status i{width:11px;height:11px;border-radius:50%;background:#aaa}
.status.open i{background:#2fa84f;box-shadow:0 0 0 5px rgba(47,168,79,.18)}
.status.dicht i{background:var(--oranje)}

/* zak-kader zoals op de zak */
.zak{position:relative;background:#fff;border-radius:26px;padding:16px;box-shadow:var(--schaduw)}
.zak::before{content:"";position:absolute;inset:7px;border:2px solid var(--oranje);border-radius:20px;pointer-events:none}
.zak::after{content:"";position:absolute;inset:12px;border:1px solid var(--oranje);border-radius:16px;pointer-events:none;opacity:.55}
.zak img{border-radius:14px;width:100%;height:100%;object-fit:cover}
.hero .beeld{position:relative}
.hero .beeld .zak{transform:rotate(1.6deg)}
.hero .beeld .zak img{aspect-ratio:4/5}
.hero .logo-zegel{position:absolute;left:-34px;bottom:-30px;width:min(250px,46%);background:var(--papier);border-radius:22px;padding:10px 14px;box-shadow:var(--schaduw);transform:rotate(-4deg)}
.hero .goud-zegel{position:absolute;right:-18px;top:-18px;width:118px;height:118px;border-radius:50%;display:grid;place-items:center;text-align:center;
  background:radial-gradient(circle at 35% 30%,#fff3c9,#e2bf62 45%,#a8781f 100%);color:#4a2c00;font:800 .72rem/1.15 var(--sans);letter-spacing:.06em;text-transform:uppercase;box-shadow:0 12px 26px -10px rgba(120,80,0,.7),inset 0 0 0 5px rgba(255,255,255,.35);transform:rotate(8deg)}
.hero .goud-zegel b{display:block;font:400 1.5rem/1 var(--script);text-transform:none;letter-spacing:0;color:#5a2d00}

/* golfrand */
.golf{display:block;width:100%;height:28px;color:var(--paars)}
section{padding:clamp(60px,8vw,104px) 0}
.paars{background:var(--paars);color:#fff;position:relative}
.paars a{color:var(--goud-l)}
.sectiekop{max-width:44em;margin-bottom:2.2rem}
.sectiekop .kicker{color:var(--oranje)}
.paars .sectiekop .kicker{color:var(--goud-l)}
h2{font:800 clamp(2rem,4.4vw,3rem)/1.08 var(--serif);color:var(--paars-d);margin:.5rem 0 .8rem}
h2 em{font:400 1.12em/1 var(--script);color:var(--oranje);font-style:normal}
.paars h2{color:#fff}.paars h2 em{color:var(--goud-l)}
.lead{font-size:1.12rem;color:var(--zacht)}
.paars .lead{color:#e9dcf5}

/* goud */
.goud-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,64px);align-items:center}
.goud-grid .zak img{aspect-ratio:3/4}
.citaat{font:600 clamp(1.15rem,2.2vw,1.4rem)/1.5 var(--serif);color:#fff;border-left:4px solid var(--goud);padding-left:1.2rem;margin:1.4rem 0}
.slogan{display:inline-block;margin-top:1rem;font:400 clamp(1.6rem,3vw,2.2rem)/1.1 var(--script);color:var(--goud-l)}

/* traditie */
.trad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:2rem}
.trad-grid figure{border-radius:18px;overflow:hidden;box-shadow:var(--schaduw);background:#fff}
.trad-grid img{aspect-ratio:4/5;object-fit:cover;width:100%}
.trad-grid figcaption{padding:.8rem 1rem;font-weight:700;color:var(--paars-d);font-size:.95rem}

/* generaties */
.gen-sec{background:var(--papier-2);position:relative}
.tijdlijn{position:relative;display:grid;gap:clamp(34px,5vw,56px);margin-top:2.6rem}
.tijdlijn::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:4px;margin-left:-2px;background:repeating-linear-gradient(to bottom,var(--oranje) 0 14px,transparent 14px 24px);border-radius:4px}
.stap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,80px);align-items:center;position:relative}
.stap::after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--goud);border:4px solid var(--papier-2);box-shadow:0 0 0 3px var(--oranje)}
.stap:nth-child(even) .foto{order:2}
.stap .foto .zak{max-width:420px}
.stap:nth-child(odd) .foto .zak{margin-left:auto;transform:rotate(-1.4deg)}
.stap:nth-child(even) .foto .zak{transform:rotate(1.4deg)}
.stap .jaar{font:400 1.5rem/1 var(--script);color:var(--oranje)}
.stap h3{font:800 clamp(1.4rem,2.6vw,1.8rem)/1.15 var(--serif);color:var(--paars-d);margin:.35rem 0 .5rem}
.stap p{color:#4a3644}
.sw{filter:sepia(.25) contrast(1.02)}

/* tijden */
.tijd-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,44px)}
.kaart{background:#fff;border-radius:22px;padding:clamp(22px,3vw,34px);box-shadow:var(--schaduw);position:relative}
.kaart h3{font:800 1.45rem/1.2 var(--serif);color:var(--paars-d);margin-bottom:1rem}
.seizoen{display:inline-block;background:var(--paars);color:#fff;font-weight:800;border-radius:10px;padding:.35rem .8rem;margin-bottom:1rem}
table.tijden{width:100%;border-collapse:collapse}
.tijden td{padding:.6rem 0;border-bottom:1px dashed #e4d6c3}
.tijden td:last-child{text-align:right;font-weight:800;font-variant-numeric:tabular-nums}
.tijden tr.vandaag td{color:var(--oranje-d)}
.tijden tr.vandaag td:first-child::after{content:" · vandaag";font-weight:800;font-size:.8rem}
.extra{margin-top:1.2rem;display:grid;gap:.5rem}
.extra div{display:flex;justify-content:space-between;gap:1rem;background:var(--papier-2);border-radius:12px;padding:.6rem .9rem}
.extra b{font-variant-numeric:tabular-nums}
.plek p{margin-bottom:.8rem}
.plek .adres{font:800 1.25rem/1.3 var(--serif);color:var(--paars-d)}
.kaart-laden{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;width:100%;aspect-ratio:16/10;border:0;border-radius:16px;background:var(--papier-2);color:var(--paars-d);font:800 1rem var(--sans);cursor:pointer;margin:1rem 0;text-align:center;padding:1rem}
.kaart-laden small{font-weight:600;color:var(--zacht);max-width:30ch}
iframe.kaart-geladen{width:100%;aspect-ratio:16/10;border:0;border-radius:16px;margin:1rem 0}

/* bestellen */
.best-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,64px);align-items:start}
.regels{display:grid;gap:12px;margin-top:1.4rem}
.regel{display:flex;gap:14px;align-items:flex-start;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:1rem 1.1rem}
.regel i{flex:none;width:40px;height:40px;border-radius:12px;background:var(--goud);color:var(--paars-d);display:grid;place-items:center;font:800 1.05rem var(--serif);font-style:normal}
.regel b{display:block;color:#fff}
.regel span{color:#e9dcf5;font-size:.95rem}
form.bestel{background:#fff;color:var(--inkt);border-radius:24px;padding:clamp(22px,3vw,34px);box-shadow:0 24px 50px -20px rgba(0,0,0,.5)}
form.bestel h3{font:800 1.45rem/1.2 var(--serif);color:var(--paars-d);margin-bottom:.3rem}
form.bestel .uitleg{color:var(--zacht);font-size:.95rem;margin-bottom:1rem}
.veld{display:grid;gap:.3rem;margin-bottom:.9rem}
.veld label{font-weight:800;font-size:.92rem;color:var(--paars-d)}
.veld input,.veld textarea{font:inherit;font-size:1rem;border:2px solid #e8dccb;border-radius:12px;padding:.7rem .85rem;background:var(--papier);color:var(--inkt)}
.veld input:focus,.veld textarea:focus{outline:none;border-color:var(--paars-l);background:#fff}
.twee{display:grid;grid-template-columns:1fr 1fr;gap:12px}
form.bestel .knop{width:100%;justify-content:center;margin-top:.4rem}
.klein{font-size:.85rem;color:var(--zacht);margin-top:.8rem}

/* familie */
.fam{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,48px);align-items:center;background:#fff;border-radius:26px;padding:clamp(24px,4vw,44px);box-shadow:var(--schaduw)}
.fam img{width:min(300px,40vw)}

/* voet */
footer{background:var(--paars-d);color:#d9c9e6;padding:56px 0 110px;font-size:.95rem}
footer .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px}
footer h4{font:800 1.05rem var(--serif);color:#fff;margin-bottom:.6rem}
footer a{color:var(--goud-l)}
footer .logo{width:170px;margin-bottom:.8rem;background:var(--papier);border-radius:16px;padding:8px 12px}
footer .onder{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:18px;font-size:.85rem;color:#b9a6c9}

/* mobiele balk */
.mobiel{display:none}
@media (max-width:900px){
  .kop nav{display:none}
  .kop .knop{margin-left:auto;padding:.7rem 1rem}
  .hero .wrap,.goud-grid,.tijd-grid,.best-grid{grid-template-columns:1fr}
  .hero .beeld{max-width:460px;margin:30px auto 0}
  .hero .logo-zegel{left:-8px}
  .hero .goud-zegel{right:-4px}
  .trad-grid{grid-template-columns:1fr 1fr}
  .trad-grid figure:last-child{display:none}
  .tijdlijn::before{left:14px}
  .stap{grid-template-columns:1fr;padding-left:44px;gap:18px}
  .stap::after{left:14px;top:22px}
  .stap:nth-child(even) .foto{order:0}
  .stap .foto .zak{margin:0!important;max-width:360px}
  .fam{grid-template-columns:1fr;text-align:center}.fam img{margin:0 auto}
  footer .wrap{grid-template-columns:1fr}
  .mobiel{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--paars-d);border-top:3px solid var(--oranje)}
  .mobiel a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 0 12px;color:#fff;text-decoration:none;font:800 .72rem var(--sans);letter-spacing:.08em;text-transform:uppercase}
  .mobiel svg{width:22px;height:22px}
}
@media (max-width:520px){
  body{font-size:16px}
  .twee{grid-template-columns:1fr}
  .kop .merk span{display:none}
  .hero .goud-zegel{width:96px;height:96px;font-size:.62rem}
  .hero .goud-zegel b{font-size:1.25rem}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.knop{transition:none}}

/* juridische pagina's + voet */
.pagina{padding:clamp(40px,6vw,80px) 0}
.pagina .wrap{max-width:860px}
.pagina h1{font:800 clamp(2rem,5vw,3rem)/1.1 var(--serif);color:var(--paars-d);margin:.4rem 0 .8rem}
.pagina .intro{font-size:1.1rem;color:var(--zacht);margin-bottom:2rem}
.pagina h2{font-size:clamp(1.3rem,2.6vw,1.7rem);margin:2rem 0 .6rem}
.pagina p,.pagina li{margin-bottom:.6rem}
.pagina ul{padding-left:1.3rem}
.tabel-scroll{overflow-x:auto}
.kb-tabel{width:100%;border-collapse:collapse;margin:1rem 0 1.4rem;font-size:.95rem;background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--schaduw)}
.kb-tabel th{background:var(--paars);color:#fff;text-align:left;padding:.7rem .9rem}
.kb-tabel td{padding:.65rem .9rem;border-bottom:1px solid #eadfcf;vertical-align:top}
footer .wrap>*{min-width:0}
footer .juridisch{display:flex;flex-wrap:wrap;gap:.2rem 1rem;margin-top:.4rem}
footer .credit{display:block;margin-top:.4rem}
.fout{text-align:center;padding:clamp(60px,10vw,120px) 0}
.fout h1{font:400 clamp(3rem,8vw,5rem)/1 var(--script);color:var(--paars)}
