/* ============================================================
   Kapittel van Sint Servaas — ontwerpsysteem
   Ceremonieel: nacht en ivoor, wijnrood en bladgoud, hoog-contrast
   Bodoni voor de grote letter, Cinzel voor het opschrift.
   ============================================================ */

:root{
  /* --- papier & inkt --- */
  --paper:        #FAF7F0;
  --paper-2:      #F2ECE0;
  --paper-3:      #E6DCC8;
  --ink:          #171310;
  --ink-2:        #463D31;
  --muted:        #857A67;

  /* --- wijn --- */
  --wine:         #6E141C;
  --wine-2:       #8C1D24;
  --wine-deep:    #4A0D14;
  --wine-glow:    rgba(140,29,36,.30);

  /* --- goud --- */
  --gold:         #B8912E;
  --gold-2:       #D4AF37;
  --gold-3:       #EBD48A;
  --gold-dim:     rgba(184,145,46,.42);
  --gold-grad: linear-gradient(100deg,#8A6A1E 0%,#C79F33 22%,#F3E3A8 44%,#D4AF37 60%,#9C7822 82%,#C79F33 100%);

  /* --- nacht --- */
  --night:        #120F0B;
  --night-2:      #1C1712;
  --night-3:      #262019;

  --rule:         rgba(23,19,16,.16);
  --rule-soft:    rgba(23,19,16,.09);
  --rule-gold:    rgba(184,145,46,.34);
  --rule-light:   rgba(235,212,138,.22);

  /* --- maatvoering --- */
  --container:    1280px;
  --container-narrow: 780px;
  --container-wide:   1600px;
  --gutter:       clamp(20px, 5vw, 60px);
  --section-y:    clamp(76px, 11vw, 172px);
  --section-y-sm: clamp(54px, 7vw, 100px);

  /* --- typografie --- */
  --display: 'Fraunces', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --serif:   'Newsreader', 'Iowan Old Style', Georgia, serif;
  --caps:    'Cinzel', 'Trajan Pro', Georgia, serif;

  --fs-display-xl: clamp(38px, 5.4vw, 86px);
  --fs-display-l:  clamp(33px, 4.6vw, 66px);
  --fs-display-m:  clamp(27px, 3.5vw, 50px);
  --fs-display-s:  clamp(21px, 2.1vw, 30px);
  --fs-lead:       clamp(19px, 1.45vw, 23px);
  --fs-body:       18px;
  --fs-small:      15.5px;
  --fs-meta:       12px;

  --header-h:  82px;

  --ease:      cubic-bezier(.22,.61,.36,1);
  --ease-soft: cubic-bezier(.33,.02,.18,1);
}

/* ============================================================
   Reset & basis
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;padding-top:var(--header-h);
  background:var(--paper);color:var(--ink);
  font-family:var(--serif);font-size:var(--fs-body);font-weight:400;
  line-height:1.72;font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;overflow-x:hidden;
}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,h5{
  font-family:var(--display);font-weight:500;line-height:1.04;
  letter-spacing:-.014em;margin:0 0 .5em;text-wrap:balance;
  /* Fraunces' opsz-as loopt van 9 (zacht, stevige schreven) naar 144
     (display, haarlijnen). Boven ~90 verdwijnt de dwarsbalk van een H op
     donkere grond; 60 houdt elegantie zónder dat risico. */
  font-variation-settings:'opsz' 60;
}
h3,h4,h5{font-weight:600;letter-spacing:-.008em;font-variation-settings:'opsz' 32}
p{margin:0 0 1.15em}
p:last-child{margin-bottom:0}
a{color:inherit;text-decoration:none}
ul,ol{margin:0 0 1.15em;padding-left:1.25em}
li{margin-bottom:.35em}
blockquote{margin:0}
hr{border:0;border-top:1px solid var(--rule);margin:var(--section-y-sm) 0}
::selection{background:var(--wine);color:var(--gold-3)}
:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px;border-radius:2px}

/* ============================================================
   Lay-out
   ============================================================ */
.kap-wrap{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.kap-wrap--narrow{max-width:var(--container-narrow)}
.kap-wrap--wide{max-width:var(--container-wide)}
.kap-section{padding-block:var(--section-y);position:relative}
.kap-section--sm{padding-block:var(--section-y-sm)}
.kap-section--paper2{background:var(--paper-2)}
.kap-section--ruled{border-top:1px solid var(--rule)}
.kap-bleed{width:100vw;margin-left:50%;transform:translateX(-50%)}

/* nachtsecties — het ceremoniële register */
.kap-section--night{
  background:
    radial-gradient(120% 90% at 50% -10%, rgba(110,20,28,.42) 0%, rgba(18,15,11,0) 62%),
    radial-gradient(90% 70% at 50% 120%, rgba(184,145,46,.14) 0%, rgba(18,15,11,0) 60%),
    var(--night);
  color:#EFE7D6;
}
.kap-section--night h1,.kap-section--night h2,.kap-section--night h3{color:#F6EFE0;font-weight:500}
.kap-section--night p{color:rgba(239,231,214,.78)}
.kap-section--wine{
  background:
    radial-gradient(100% 80% at 50% 0%, rgba(140,29,36,.55) 0%, rgba(74,13,20,0) 70%),
    var(--wine-deep);
  color:#F6E9D8;
}
.kap-section--wine h2,.kap-section--wine h3{color:#FBF3E4;font-weight:500}
.kap-section--wine p{color:rgba(246,233,216,.80)}

/* ============================================================
   Goud: lijnen, tekst, ornament
   ============================================================ */
.kap-rule-gold{
  height:1px;border:0;margin:0;
  background:var(--gold-grad);
  opacity:.85;
  transform-origin:left center;
}
.kap-goldtext{
  background:var(--gold-grad);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
/* fleuron — ceremoniële scheiding */
.kap-fleuron{
  display:flex;align-items:center;gap:18px;
  color:var(--gold);margin-block:clamp(28px,4vw,52px);
}
.kap-fleuron::before,.kap-fleuron::after{
  content:"";height:1px;flex:1;background:var(--gold-grad);opacity:.6;
}
.kap-fleuron span{
  font-family:var(--caps);font-size:14px;letter-spacing:.3em;
  line-height:1;color:var(--gold);
}
.kap-section--night .kap-fleuron span,
.kap-section--wine .kap-fleuron span{color:var(--gold-3)}

/* ============================================================
   Typografische bouwstenen
   ============================================================ */
.kap-eyebrow{
  font-family:var(--caps);font-size:var(--fs-meta);font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;color:var(--gold);
  margin:0 0 1.4em;display:flex;align-items:center;gap:.95em;
}
.kap-eyebrow::before{content:"";width:30px;height:1px;background:var(--gold-grad);flex:none}
.kap-eyebrow--center{justify-content:center}
.kap-eyebrow--plain::before{display:none}
.kap-section--night .kap-eyebrow,.kap-section--wine .kap-eyebrow{color:var(--gold-3)}

.kap-num{
  font-family:var(--caps);font-size:var(--fs-meta);font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
  display:flex;align-items:baseline;gap:.95em;margin:0 0 1.6em;
}
.kap-num b{font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums}

.kap-display-xl{font-family:var(--display);font-size:var(--fs-display-xl);line-height:.98;letter-spacing:-.022em}
.kap-display-l{font-family:var(--display);font-size:var(--fs-display-l);line-height:1.02;letter-spacing:-.018em}
.kap-display-m{font-family:var(--display);font-size:var(--fs-display-m);line-height:1.08;letter-spacing:-.014em}
.kap-display-s{font-family:var(--display);font-size:var(--fs-display-s);line-height:1.2;letter-spacing:-.008em;font-variation-settings:'opsz' 32}
.kap-lead{font-size:var(--fs-lead);line-height:1.62;color:var(--ink-2)}
.kap-small{font-size:var(--fs-small)}
.kap-meta{font-family:var(--caps);font-size:var(--fs-meta);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.kap-italic{font-style:italic}
.kap-accent{color:var(--wine-2)}

.kap-first{font-size:var(--fs-lead);line-height:1.6}
.kap-first::first-letter{
  float:left;font-family:var(--display);font-size:3.3em;line-height:.84;
  padding:.04em .12em 0 0;color:var(--wine);font-weight:800;
  font-variation-settings:'opsz' 14;
}
.kap-columns-2{columns:2;column-gap:clamp(28px,4vw,64px)}
@media (max-width:820px){.kap-columns-2{columns:1}}

/* ============================================================
   Knoppen
   ============================================================ */
.kap-btn{
  font-family:var(--caps);font-size:12.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:.7em;
  padding:16px 32px;border:1px solid transparent;cursor:pointer;line-height:1;
  position:relative;overflow:hidden;
  transition:color .35s var(--ease),border-color .35s var(--ease),
             background-color .35s var(--ease),transform .35s var(--ease),
             box-shadow .35s var(--ease);
}
.kap-btn:hover{transform:translateY(-2px)}
.kap-btn--gold{
  background:var(--gold-grad);color:#2A1B06;
  box-shadow:0 8px 26px -14px rgba(184,145,46,.9);
}
.kap-btn--gold:hover{box-shadow:0 14px 34px -14px rgba(212,175,55,.95)}
.kap-btn--wine{background:var(--wine);color:#F6E9D8;border-color:var(--wine)}
.kap-btn--wine:hover{background:var(--wine-deep);border-color:var(--gold);color:var(--gold-3)}
.kap-btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule)}
.kap-btn--ghost:hover{border-color:var(--gold);color:var(--wine)}
.kap-btn--light{background:transparent;color:var(--gold-3);border-color:var(--rule-light)}
.kap-btn--light:hover{border-color:var(--gold-2);background:rgba(212,175,55,.10);color:#fff}
.kap-btn--ink{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.kap-btn--ink:hover{background:transparent;color:var(--ink)}

.kap-link{
  font-family:var(--caps);font-size:12px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:.6em;padding-bottom:6px;
  border-bottom:1px solid var(--gold-dim);color:var(--ink);
  transition:border-color .3s var(--ease),color .3s var(--ease);
}
.kap-link::after{content:"→";transition:transform .3s var(--ease)}
.kap-link:hover{border-color:var(--gold-2);color:var(--wine)}
.kap-link:hover::after{transform:translateX(5px)}
.kap-section--night .kap-link,.kap-section--wine .kap-link{color:var(--gold-3)}
.kap-section--night .kap-link:hover,.kap-section--wine .kap-link:hover{color:#fff;border-color:var(--gold-2)}

.kap-prose a:not(.kap-btn):not(.kap-link){
  color:var(--wine-2);
  background-image:linear-gradient(var(--gold-2),var(--gold-2));
  background-size:100% 1px;background-repeat:no-repeat;background-position:0 100%;
  padding-bottom:1px;transition:background-size .3s var(--ease),color .3s var(--ease);
}
.kap-prose a:not(.kap-btn):not(.kap-link):hover{background-size:0% 1px;color:var(--wine)}

/* ============================================================
   Kop van de site
   ============================================================ */
/* Vast, niet plakkend: boven de donkere hero moet de kop erover liggen,
   niet erboven staan. Pagina's zonder hero krijgen de hoogte als padding. */
.kap-header{
  position:fixed;top:0;left:0;right:0;z-index:80;
  background:rgba(250,247,240,.90);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--rule-soft);
  transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);
}
.kap-header::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:var(--gold-grad);opacity:0;transition:opacity .4s var(--ease);
}
.kap-header.is-scrolled{box-shadow:0 10px 40px -30px rgba(23,19,16,.7)}
.kap-header.is-scrolled::after{opacity:.7}

/* over een donkere hero staat de kop transparant */
.kap-header.is-over-dark{background:transparent;border-bottom-color:transparent;backdrop-filter:none}
.kap-header.is-over-dark .kap-brand__name{color:#F6EFE0}
.kap-header.is-over-dark .kap-brand__sub{color:var(--gold-3)}
.kap-header.is-over-dark .kap-nav a{color:rgba(246,239,224,.86)}
.kap-header.is-over-dark .kap-nav a:hover{color:var(--gold-3)}
.kap-header.is-over-dark .kap-burger span{background:#F6EFE0}
.kap-header.is-over-dark .kap-btn--ghost{color:var(--gold-3);border-color:var(--rule-light)}

.kap-header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:82px;padding-block:12px}
.kap-brand{display:flex;align-items:center;gap:15px;flex:none}
/* Het wapen is één object: het reliëf mét zijn gouden plaat. */
.kap-brand__crest{
  width:auto;height:54px;flex:none;
  box-shadow:0 2px 10px -3px rgba(23,19,16,.55), 0 0 0 1px rgba(184,145,46,.55);
  transition:height .4s var(--ease),box-shadow .4s var(--ease);
}
.kap-brand:hover .kap-brand__crest{box-shadow:0 6px 18px -4px rgba(184,145,46,.6), 0 0 0 1px rgba(212,175,55,.9)}
.kap-header.is-scrolled .kap-brand__crest{height:42px}
.kap-brand:hover .kap-brand__crest{transform:translateY(-1px) scale(1.04)}
.kap-brand__txt{line-height:1.18}
.kap-brand__name{
  font-family:var(--caps);font-size:14.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;display:block;color:var(--ink);
}
.kap-brand__sub{
  font-family:var(--serif);font-style:italic;font-size:12.5px;
  color:var(--gold);display:block;letter-spacing:.06em;
}

.kap-nav ul{display:flex;align-items:center;gap:clamp(14px,1.9vw,30px);list-style:none;margin:0;padding:0}
.kap-nav li{margin:0;position:relative}
.kap-nav a{
  font-family:var(--caps);font-size:12px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);
  padding:8px 0;display:inline-block;position:relative;transition:color .25s var(--ease);
}
.kap-nav a::after{
  content:"";position:absolute;left:0;bottom:2px;height:1px;width:0;
  background:var(--gold-grad);transition:width .35s var(--ease);
}
.kap-nav a:hover{color:var(--wine)}
.kap-nav a:hover::after{width:100%}
.kap-nav .current-menu-item>a,.kap-nav .current_page_ancestor>a{color:var(--wine)}
.kap-nav .current-menu-item>a::after,.kap-nav .current_page_ancestor>a::after{width:100%}

.kap-nav .sub-menu{
  position:absolute;top:100%;left:-18px;min-width:250px;
  background:var(--night);border:1px solid var(--rule-gold);padding:10px 0;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;
  box-shadow:0 30px 60px -30px rgba(0,0,0,.75);
}
.kap-nav li:hover>.sub-menu,.kap-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.kap-nav .sub-menu li{width:100%}
.kap-nav .sub-menu a{display:block;padding:11px 22px;letter-spacing:.13em;width:100%;color:rgba(239,231,214,.82)}
.kap-nav .sub-menu a::after{display:none}
.kap-nav .sub-menu a:hover{background:rgba(184,145,46,.12);color:var(--gold-3)}

.kap-header__cta{flex:none}
.kap-header__cta .kap-btn{padding:13px 24px;font-size:11.5px}

.kap-burger{display:none;background:none;border:0;cursor:pointer;width:46px;height:46px;padding:0;position:relative;flex:none}
.kap-burger span{position:absolute;left:12px;width:22px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease),opacity .2s var(--ease)}
.kap-burger span:nth-child(1){top:17px}
.kap-burger span:nth-child(2){top:23px}
.kap-burger span:nth-child(3){top:29px}
.kap-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.kap-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.kap-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.kap-mobile{
  position:fixed;inset:0;z-index:79;background:var(--night);
  padding:110px var(--gutter) 40px;overflow-y:auto;
  opacity:0;visibility:hidden;transform:translateY(-12px);
  transition:opacity .34s var(--ease),transform .34s var(--ease),visibility .34s;
}
.kap-mobile.is-open{opacity:1;visibility:visible;transform:none}
.kap-mobile ul{list-style:none;margin:0;padding:0}
.kap-mobile>ul>li{border-bottom:1px solid var(--rule-light)}
.kap-mobile a{display:block;padding:17px 0;font-family:var(--display);font-size:clamp(26px,7vw,38px);line-height:1.2;color:#F6EFE0}
.kap-mobile a:hover{color:var(--gold-3)}
.kap-mobile .sub-menu{padding:0 0 14px 18px}
.kap-mobile .sub-menu a{font-family:var(--caps);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-3);padding:9px 0}
body.kap-menu-open{overflow:hidden}
@media (max-width:1120px){.kap-nav,.kap-header__cta{display:none}.kap-burger{display:block}}

/* ============================================================
   Hero — ceremonieel, met het wapen als middelpunt
   ============================================================ */
body.home{padding-top:0}
.kap-hero{
  position:relative;min-height:100svh;display:flex;align-items:center;
  padding:calc(var(--header-h) + clamp(22px,3vw,44px)) 0 clamp(92px,10vw,132px);
  overflow:hidden;background:var(--night);color:#F1E9D8;isolation:isolate;
}
.kap-hero__bg{position:absolute;inset:0;z-index:-3;overflow:hidden}
.kap-hero__bg img{
  width:100%;height:118%;object-fit:cover;object-position:center 38%;
  filter:contrast(1.07) saturate(.86);will-change:transform;
}
/* Donker waar tekst en wapen staan, licht in het gat ertussen: zo leest de
   architectuur mee zonder ergens met de inhoud te vechten. */
.kap-hero__bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,
      rgba(18,15,11,.95) 0%, rgba(18,15,11,.80) 30%,
      rgba(18,15,11,.42) 54%, rgba(18,15,11,.66) 74%, rgba(18,15,11,.88) 100%),
    radial-gradient(92% 78% at 52% 44%, rgba(18,15,11,0) 0%, rgba(18,15,11,.48) 70%, rgba(18,15,11,.94) 100%),
    linear-gradient(180deg, rgba(74,13,20,.40) 0%, rgba(18,15,11,.20) 42%, rgba(18,15,11,.92) 100%);
}
/* fijne gouden lijst binnen de hero */
.kap-hero__frame{
  position:absolute;z-index:-1;pointer-events:none;
  top:calc(var(--header-h) + clamp(10px,1.4vw,18px));
  left:clamp(16px,2.4vw,32px);
  right:clamp(16px,2.4vw,32px);
  bottom:clamp(18px,2.4vw,30px);
  border:1px solid var(--rule-light);
}
.kap-hero__frame::before,.kap-hero__frame::after{
  content:"";position:absolute;left:0;right:0;height:1px;background:var(--gold-grad);opacity:.5;
}
.kap-hero__frame::before{top:-1px}
.kap-hero__frame::after{bottom:-1px}

.kap-hero__inner{
  display:grid;grid-template-columns:1fr;gap:clamp(34px,5vw,64px);
  align-items:center;text-align:center;justify-items:center;width:100%;
}
@media (min-width:1000px){
  .kap-hero__inner{grid-template-columns:1fr auto;text-align:left;justify-items:start;gap:clamp(48px,6vw,96px)}
}
.kap-hero__eyebrow{
  font-family:var(--caps);font-size:12px;font-weight:600;letter-spacing:.42em;
  text-transform:uppercase;color:var(--gold-3);margin:0 0 clamp(20px,2.6vw,30px);
}
/* De hero krijgt de brede maat: met de standaardcontainer wordt de
   tekstkolom naast het wapen zo smal dat de kop in drie regels breekt. */
.kap-hero .kap-wrap{max-width:var(--container-wide)}
.kap-hero h1{margin:0;color:#FBF5E7;font-size:var(--fs-display-xl);line-height:1.0;max-width:min(1100px,100%)}
.kap-hero h1 em{font-style:italic;font-weight:500}
.kap-hero__lead{
  max-width:52ch;margin:clamp(22px,2.8vw,32px) 0 0;
  font-family:var(--serif);font-size:var(--fs-lead);line-height:1.62;
  color:rgba(241,233,216,.78);
}
.kap-hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:clamp(28px,3.4vw,42px);justify-content:center}
@media (min-width:1000px){.kap-hero__actions{justify-content:flex-start}}
.kap-hero__scroll{
  position:absolute;left:50%;bottom:clamp(34px,4.4vw,54px);transform:translateX(-50%);
  font-family:var(--caps);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;
  color:rgba(235,212,138,.78);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:2;
}
/* Op één kolom botst de aanwijzing met de knoppen — en op een touchscreen
   hoef je niet uit te leggen dat je kunt scrollen. */
@media (max-width:999px){.kap-hero__scroll{display:none}}
.kap-hero__scroll::after{content:"";width:1px;height:38px;background:linear-gradient(var(--gold-2),transparent);animation:kapDrop 2.4s var(--ease) infinite}
@keyframes kapDrop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---- het wapen in 3D ---- */
.kap-crest3d{
  perspective:1100px;width:clamp(196px,23vw,344px);flex:none;
  position:relative;
}
/* Op één kolom staat het wapen bovenaan: het is het merkteken, dus het hoort
   meteen in beeld — onderaan viel het buiten het scherm. */
@media (max-width:999px){
  .kap-crest3d{order:-1;width:clamp(158px,34vw,260px)}
}
@media (max-width:560px){
  .kap-crest3d{width:clamp(140px,38vw,196px)}
}
.kap-crest3d__inner{
  position:relative;
  transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);
  transform-style:preserve-3d;
  transition:transform .5s var(--ease-soft);
  will-change:transform;
}
.kap-crest3d img{
  width:100%;position:relative;z-index:2;display:block;
  box-shadow:
    0 0 0 1px rgba(212,175,55,.85),
    0 0 0 10px rgba(18,15,11,.55),
    0 0 0 11px rgba(184,145,46,.45),
    0 34px 70px -22px rgba(0,0,0,.8);
}
/* gouden lichtstreep die met de kanteling meebeweegt */
.kap-crest3d__sheen{
  position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;
  background:linear-gradient(105deg,
    transparent 38%,
    rgba(255,247,214,.30) 47%,
    rgba(255,252,235,.55) 50%,
    rgba(255,247,214,.30) 53%,
    transparent 62%);
  mix-blend-mode:screen;
  opacity:0;
  transform:translateX(calc(var(--sheen,0) * 1%));
  transition:opacity .5s var(--ease);
}
.kap-crest3d.is-live .kap-crest3d__sheen{opacity:1}
/* aureool achter het wapen */
.kap-crest3d::before{
  content:"";position:absolute;inset:-24% -18%;z-index:0;
  background:radial-gradient(closest-side, rgba(184,145,46,.30), rgba(140,29,36,.16) 52%, transparent 76%);
  filter:blur(6px);
}

/* ============================================================
   Feitenstrook
   ============================================================ */
.kap-facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule-gold);margin-right:-1px}
.kap-facts__item{
  padding:clamp(28px,3.6vw,48px) clamp(12px,2vw,28px);
  border-right:1px solid var(--rule-gold);text-align:center;position:relative;
}
.kap-facts__n{
  display:block;font-family:var(--display);font-size:clamp(32px,4vw,60px);
  line-height:1;letter-spacing:-.02em;margin-bottom:.36em;
  font-variant-numeric:lining-nums tabular-nums;color:var(--wine);
}
.kap-section--night .kap-facts__n,.kap-section--wine .kap-facts__n{
  background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
.kap-facts__l{
  font-family:var(--caps);font-size:11px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);line-height:1.65;display:block;
}
.kap-section--night .kap-facts__l,.kap-section--wine .kap-facts__l{color:rgba(239,231,214,.6)}
@media (max-width:760px){
  .kap-facts{grid-template-columns:repeat(2,1fr)}
  .kap-facts__item:nth-child(-n+2){border-bottom:1px solid var(--rule-gold)}
}

/* ============================================================
   Pagina-kop
   ============================================================ */
.kap-pagehead{
  padding-top:clamp(52px,6vw,96px);padding-bottom:clamp(38px,4.6vw,70px);
  border-bottom:1px solid var(--rule);position:relative;
}
.kap-pagehead::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--gold-grad);opacity:.5}
.kap-pagehead__inner{display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,44px)}
.kap-pagehead h1{margin:0;font-size:var(--fs-display-l)}
.kap-pagehead__lead{max-width:62ch;font-size:var(--fs-lead);line-height:1.6;color:var(--ink-2)}
@media (min-width:900px){.kap-pagehead__inner{grid-template-columns:1.15fr .85fr;align-items:end}}
.kap-crumbs{font-family:var(--caps);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:1.5em}
.kap-crumbs a:hover{color:var(--wine)}
.kap-crumbs span{margin-inline:.6em;color:var(--gold-dim)}

/* ============================================================
   Redactionele blokken
   ============================================================ */
.kap-split{display:grid;gap:clamp(32px,5vw,84px);align-items:center;grid-template-columns:1fr}
@media (min-width:900px){
  .kap-split{grid-template-columns:1.05fr .95fr}
  .kap-split--reverse .kap-split__media{order:2}
  .kap-split--wide-text{grid-template-columns:1.25fr .75fr}
}
.kap-split__media{position:relative}
.kap-split__media img{width:100%;object-fit:cover}
/* gouden kaderlijn achter het beeld */
.kap-split__media--framed::before{
  content:"";position:absolute;inset:18px -18px -18px 18px;
  border:1px solid var(--gold-dim);z-index:-1;
}
.kap-split__media figcaption,.kap-figcaption{
  font-family:var(--caps);font-size:11px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);padding-top:13px;line-height:1.7;
}

.kap-hang{display:grid;gap:clamp(24px,4vw,64px);grid-template-columns:1fr}
@media (min-width:960px){.kap-hang{grid-template-columns:210px 1fr}.kap-hang__aside{position:sticky;top:calc(var(--header-h) + 34px);align-self:start}}
.kap-hang__aside{
  font-family:var(--caps);font-size:11.5px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);line-height:1.9;
}
.kap-hang__aside::after{content:"";display:block;width:36px;height:1px;background:var(--gold-grad);margin-top:16px}

.kap-sechead{display:grid;gap:clamp(16px,2.6vw,40px);grid-template-columns:1fr;margin-bottom:clamp(38px,5vw,76px)}
@media (min-width:900px){.kap-sechead{grid-template-columns:1fr .9fr;align-items:end}}
.kap-sechead h2{margin:0;font-size:var(--fs-display-m)}
.kap-sechead__lead{color:var(--ink-2);font-size:var(--fs-lead);line-height:1.6;max-width:52ch}
.kap-section--night .kap-sechead__lead,.kap-section--wine .kap-sechead__lead{color:rgba(239,231,214,.74)}
.kap-sechead--center{text-align:center;grid-template-columns:1fr;justify-items:center}
.kap-sechead--center .kap-sechead__lead{margin-inline:auto}

/* ============================================================
   Rasters & kaarten
   ============================================================ */
.kap-grid{display:grid;gap:0;border-top:1px solid var(--rule);margin-right:-1px}
.kap-grid>*{border-bottom:1px solid var(--rule);border-right:1px solid var(--rule)}
.kap-section--night .kap-grid,.kap-section--wine .kap-grid{border-top-color:var(--rule-light)}
.kap-section--night .kap-grid>*,.kap-section--wine .kap-grid>*{border-color:var(--rule-light)}
.kap-grid--2{grid-template-columns:repeat(2,1fr)}
.kap-grid--3{grid-template-columns:repeat(3,1fr)}
.kap-grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.kap-grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){.kap-grid--3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:680px){.kap-grid--2,.kap-grid--3,.kap-grid--4{grid-template-columns:1fr}}
.kap-cell{padding:clamp(26px,3.2vw,46px);position:relative}

.kap-pillar__n{
  font-family:var(--caps);font-size:12px;font-weight:700;letter-spacing:.24em;
  color:var(--gold);display:block;margin-bottom:1.7em;
}
.kap-pillar h3{font-size:var(--fs-display-s);margin-bottom:.55em}
.kap-pillar p{color:var(--ink-2);font-size:var(--fs-small);line-height:1.7;margin:0}
.kap-section--night .kap-pillar p,
.kap-section--wine .kap-pillar p,
.kap-section--night .kap-cell p,
.kap-section--wine .kap-cell p{color:rgba(239,231,214,.76)}
.kap-section--wine .kap-pillar__n,.kap-section--night .kap-pillar__n{color:var(--gold-3)}

/* erfgoedkaart — 3D-lift bij hover */
.kap-card{
  display:flex;flex-direction:column;height:100%;position:relative;
  transform-style:preserve-3d;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),background-color .5s var(--ease);
}
.kap-card::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0;
  border:1px solid transparent;
  background:linear-gradient(var(--gold-2),var(--gold-2)) no-repeat left top/0% 1px,
             linear-gradient(var(--gold-2),var(--gold-2)) no-repeat right bottom/0% 1px;
  transition:opacity .35s var(--ease),background-size .55s var(--ease);
}
.kap-card:hover{transform:translateY(-6px);background:var(--paper);box-shadow:0 30px 60px -40px rgba(23,19,16,.55);z-index:2}
.kap-card:hover::after{opacity:1;background-size:100% 1px,100% 1px}
.kap-card__media{overflow:hidden;background:var(--paper-3);aspect-ratio:4/3;position:relative}
.kap-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .7s var(--ease)}
.kap-card__media::after{
  content:"";position:absolute;inset:0;opacity:0;transition:opacity .6s var(--ease);
  background:linear-gradient(180deg,rgba(74,13,20,0) 40%,rgba(74,13,20,.42) 100%);
}
.kap-card:hover .kap-card__media img{transform:scale(1.06)}
.kap-card:hover .kap-card__media::after{opacity:1}
.kap-card__media--object{background:var(--paper-3);padding:clamp(16px,2vw,28px)}
.kap-card__media--object img{object-fit:contain}
.kap-card:hover .kap-card__media--object img{transform:scale(1.035)}
.kap-card__body{padding:clamp(22px,2.6vw,36px);display:flex;flex-direction:column;flex:1;gap:.6em}
.kap-card__tag{font-family:var(--caps);font-size:10.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--wine-2)}
.kap-card h3{font-size:var(--fs-display-s);margin:0}
.kap-card p{color:var(--ink-2);font-size:var(--fs-small);line-height:1.68;margin:0}
.kap-card__foot{margin-top:auto;padding-top:1.4em}

/* ============================================================
   Agenda
   ============================================================ */
.kap-agenda{border-top:1px solid var(--rule)}
.kap-agenda__item{
  display:grid;grid-template-columns:1fr;gap:8px;
  padding:clamp(22px,3vw,36px) 0;border-bottom:1px solid var(--rule);
  transition:padding-left .4s var(--ease);position:relative;
}
.kap-agenda__item::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--gold-grad);transform:scaleY(0);transform-origin:center;
  transition:transform .4s var(--ease);
}
.kap-agenda__item:hover{padding-left:22px}
.kap-agenda__item:hover::before{transform:scaleY(1)}
@media (min-width:800px){.kap-agenda__item{grid-template-columns:158px 1fr 196px;gap:clamp(20px,3vw,46px);align-items:baseline}}
.kap-agenda__date{font-family:var(--caps);font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--wine-2);font-variant-numeric:tabular-nums}
.kap-agenda__title{font-family:var(--display);font-size:clamp(20px,2vw,28px);line-height:1.22;margin:0 0 .3em;transition:color .3s var(--ease)}
.kap-agenda__excerpt{font-size:var(--fs-small);color:var(--ink-2);margin:0;line-height:1.64}
.kap-agenda__where{font-family:var(--caps);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.kap-agenda__item:hover .kap-agenda__title{color:var(--wine)}
.kap-empty{padding:clamp(36px,5vw,64px) 0;color:var(--muted);font-style:italic;border-bottom:1px solid var(--rule)}

/* ============================================================
   Downloads
   ============================================================ */
.kap-downloads{display:grid;gap:0;border-top:1px solid var(--rule);margin-right:-1px}
.kap-downloads>*{border-bottom:1px solid var(--rule);border-right:1px solid var(--rule)}
@media (min-width:700px){.kap-downloads{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.kap-downloads{grid-template-columns:repeat(4,1fr)}}
.kap-dl{
  padding:clamp(24px,2.8vw,38px);display:flex;flex-direction:column;gap:.65em;
  position:relative;transition:background-color .4s var(--ease),transform .4s var(--ease);
}
.kap-dl:hover{background:var(--paper);transform:translateY(-4px)}
.kap-dl__lang{font-family:var(--caps);font-size:10.5px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
.kap-dl h3{font-family:var(--display);font-size:20px;line-height:1.24;margin:0}
.kap-dl p{font-size:14.5px;color:var(--ink-2);line-height:1.62;margin:0;flex:1}
.kap-dl__cta{font-family:var(--caps);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--wine);display:inline-flex;gap:.55em;align-items:center;margin-top:.8em}
.kap-dl__cta::after{content:"↓";transition:transform .3s var(--ease)}
.kap-dl:hover .kap-dl__cta::after{transform:translateY(4px)}

/* ============================================================
   Citaat
   ============================================================ */
.kap-quote{text-align:center;max-width:min(880px,100%);margin-inline:auto;position:relative}
.kap-quote blockquote{
  font-family:var(--display);font-size:var(--fs-display-m);line-height:1.24;
  letter-spacing:-.012em;font-style:italic;font-weight:500;margin:0 0 1.1em;
  /* Fraunces' opsz-as loopt van 9 (zacht, stevige schreven) naar 144
     (display, haarlijnen). Boven ~90 verdwijnt de dwarsbalk van een H op
     donkere grond; 60 houdt elegantie zónder dat risico. */
  font-variation-settings:'opsz' 60;
}
.kap-quote cite{font-family:var(--caps);font-style:normal;font-size:11px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-3)}
.kap-quote--wide{max-width:min(1000px,100%)}

/* ============================================================
   Tijdlijn
   ============================================================ */
.kap-timeline{border-top:1px solid var(--rule);position:relative}
.kap-tl{display:grid;grid-template-columns:1fr;gap:6px;padding:clamp(22px,2.8vw,34px) 0;border-bottom:1px solid var(--rule);position:relative}
@media (min-width:820px){.kap-tl{grid-template-columns:140px 1fr;gap:clamp(24px,4vw,60px);align-items:baseline}}
.kap-tl__year{font-family:var(--caps);font-size:14px;font-weight:700;letter-spacing:.1em;color:var(--gold);font-variant-numeric:tabular-nums}
.kap-tl h3{font-family:var(--display);font-size:clamp(19px,1.7vw,24px);margin:0 0 .35em;line-height:1.25}
.kap-tl p{margin:0;font-size:var(--fs-small);color:var(--ink-2);line-height:1.68;max-width:70ch}

/* ============================================================
   Banken-labels
   ============================================================ */
.kap-bank p{color:var(--ink-2);font-size:var(--fs-small);line-height:1.68;margin:0}
.kap-bank .kap-num{margin-bottom:1.1em;font-size:10.5px;letter-spacing:.18em}
.kap-bank h3{margin:0 0 .6em}
.kap-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:1.5em}
.kap-chip{font-family:var(--caps);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold-dim);padding:6px 11px;line-height:1}

/* ============================================================
   Partners
   ============================================================ */
.kap-partners{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--rule)}
.kap-partners span{
  font-family:var(--caps);font-size:12px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-2);
  padding:18px 28px 18px 0;margin-right:28px;border-bottom:1px solid var(--rule-soft);
  flex:1 1 auto;white-space:nowrap;transition:color .3s var(--ease);
}
.kap-partners span:hover{color:var(--wine)}

/* ============================================================
   Contact
   ============================================================ */
.kap-contact{display:grid;gap:clamp(36px,5vw,84px);grid-template-columns:1fr}
@media (min-width:940px){.kap-contact{grid-template-columns:.85fr 1.15fr}}
.kap-ci{border-top:1px solid var(--rule-gold)}
.kap-ci__row{padding:19px 0;border-bottom:1px solid var(--rule-soft);display:grid;gap:5px}
.kap-ci__k{font-family:var(--caps);font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.kap-ci__v{font-size:var(--fs-small);line-height:1.6}
.kap-ci__v a:hover{color:var(--wine)}
.kap-map{margin-top:clamp(24px,3vw,38px);border:1px solid var(--rule-gold);aspect-ratio:16/10}
.kap-map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(1) sepia(.22) contrast(1.04)}

.kap-form{display:grid;gap:22px}
.kap-form__row{display:grid;gap:22px;grid-template-columns:1fr}
@media (min-width:620px){.kap-form__row{grid-template-columns:1fr 1fr}}
.kap-field{display:grid;gap:9px}
.kap-field label{font-family:var(--caps);font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.kap-field input,.kap-field textarea,.kap-field select{
  font-family:var(--serif);font-size:17px;color:var(--ink);background:transparent;
  border:0;border-bottom:1px solid var(--rule);padding:12px 0;width:100%;
  transition:border-color .3s var(--ease);
}
.kap-field input:focus,.kap-field textarea:focus,.kap-field select:focus{outline:none;border-bottom-color:var(--gold-2)}
.kap-field textarea{resize:vertical;min-height:136px;line-height:1.6}
.kap-field input::placeholder,.kap-field textarea::placeholder{color:var(--muted);opacity:.6}
.kap-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.kap-form__note{font-size:13.5px;color:var(--muted);line-height:1.6}
.kap-form__note a{color:var(--wine-2);border-bottom:1px solid var(--gold-dim)}
.kap-form__note a:hover{border-color:var(--gold-2)}
.kap-notice{padding:17px 22px;border-left:2px solid var(--wine);background:var(--paper-2);font-size:var(--fs-small)}
.kap-notice--ok{border-left-color:var(--gold);background:rgba(184,145,46,.10)}

/* ============================================================
   Voettekst
   ============================================================ */
.kap-footer{
  background:
    radial-gradient(90% 70% at 50% 0%, rgba(110,20,28,.30) 0%, rgba(18,15,11,0) 62%),
    var(--night);
  color:#EFE7D6;padding-block:clamp(60px,7vw,104px) 0;position:relative;
}
.kap-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--gold-grad);opacity:.6}
.kap-footer a{color:rgba(239,231,214,.78);transition:color .25s var(--ease)}
.kap-footer a:hover{color:var(--gold-3)}
.kap-footer__top{display:grid;gap:clamp(32px,4vw,60px);grid-template-columns:1fr;padding-bottom:clamp(42px,5vw,72px)}
@media (min-width:900px){.kap-footer__top{grid-template-columns:1.3fr 1fr 1fr}}
.kap-footer__crest{
  width:auto;height:132px;margin-bottom:26px;
  box-shadow:0 18px 44px -18px rgba(0,0,0,.85), 0 0 0 1px rgba(184,145,46,.6);
}
.kap-footer__name{font-family:var(--display);font-size:clamp(24px,2.2vw,32px);line-height:1.14;margin:0 0 .55em;color:#F6EFE0}
.kap-footer__addr{font-size:var(--fs-small);color:rgba(239,231,214,.62);line-height:1.8;font-style:normal}
.kap-footer h4{font-family:var(--caps);font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin:0 0 1.6em}
.kap-footer ul{list-style:none;margin:0;padding:0}
.kap-footer li{margin-bottom:.8em;font-size:var(--fs-small)}
.kap-footer__bottom{border-top:1px solid var(--rule-light);padding-block:28px;display:flex;flex-wrap:wrap;gap:14px 28px;justify-content:space-between;align-items:center}
.kap-footer__fine{font-family:var(--caps);font-size:10.5px;letter-spacing:.14em;color:rgba(239,231,214,.42);line-height:1.8}
.kap-footer__legal ul{display:flex;gap:24px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.kap-footer__legal li{margin:0}
.kap-footer__legal a{font-family:var(--caps);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}

/* ============================================================
   Lopende tekst
   ============================================================ */
.kap-prose{max-width:74ch}
.kap-prose h2{font-family:var(--display);font-size:var(--fs-display-m);margin-top:1.7em;margin-bottom:.5em}
.kap-prose h3{font-family:var(--display);font-size:var(--fs-display-s);margin-top:1.6em;margin-bottom:.45em}
.kap-prose h4{font-family:var(--caps);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:1.9em;margin-bottom:.8em}
.kap-prose>*:first-child{margin-top:0}
.kap-prose figure{margin:clamp(28px,4vw,54px) 0}
.kap-prose figcaption{font-family:var(--caps);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:12px;line-height:1.7}
.kap-prose blockquote{border-left:2px solid var(--gold);padding-left:clamp(20px,3vw,36px);margin:clamp(28px,4vw,50px) 0;font-family:var(--display);font-size:var(--fs-lead);font-style:italic;line-height:1.45}
.kap-prose table{width:100%;border-collapse:collapse;font-size:var(--fs-small);margin:2em 0}
.kap-prose th,.kap-prose td{text-align:left;padding:13px 15px 13px 0;border-bottom:1px solid var(--rule-soft)}
.kap-prose th{font-family:var(--caps);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}

/* paginering */
.kap-pager{margin-top:clamp(40px,5vw,72px);border-top:1px solid var(--rule);padding-top:24px}
.kap-pager ul{display:flex;gap:6px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.kap-pager li{margin:0}
.kap-pager a,.kap-pager span{
  font-family:var(--caps);font-size:11.5px;letter-spacing:.12em;
  display:inline-flex;align-items:center;justify-content:center;
  min-width:42px;height:42px;padding:0 13px;border:1px solid var(--rule);
  transition:border-color .25s var(--ease),color .25s var(--ease),background-color .25s var(--ease);
}
.kap-pager a:hover{border-color:var(--gold);color:var(--wine)}
.kap-pager .current{background:var(--wine);color:var(--gold-3);border-color:var(--wine)}

/* ============================================================
   Beweging
   ============================================================ */
.kap-reveal{opacity:1;transform:none}
.kap-js [data-anim]{will-change:transform,opacity}
.kap-js .kap-reveal,
.kap-js [data-anim="rise"]{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease-soft),transform .9s var(--ease-soft)}
.kap-js [data-anim="fade"]{opacity:0;transition:opacity 1.1s var(--ease-soft)}
.kap-js [data-anim="tilt"]{opacity:0;transform:perspective(1200px) rotateX(9deg) translateY(34px);transition:opacity .9s var(--ease-soft),transform 1s var(--ease-soft)}
.kap-js [data-anim="draw"]{transform:scaleX(0);transition:transform 1.2s var(--ease-soft)}
.kap-js .kap-reveal.is-in,
.kap-js [data-anim].is-in{opacity:1;transform:none}
.kap-js [data-anim="draw"].is-in{transform:scaleX(1)}
/* getrapte kinderen */
.kap-js [data-stagger]>*{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease-soft),transform .8s var(--ease-soft)}
.kap-js [data-stagger].is-in>*{opacity:1;transform:none}
.kap-js [data-parallax]{will-change:transform}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  .kap-js .kap-reveal,.kap-js [data-anim],.kap-js [data-stagger]>*{opacity:1 !important;transform:none !important}
  html{scroll-behavior:auto}
}

/* ============================================================
   Toegankelijkheid
   ============================================================ */
.kap-skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--wine);color:var(--gold-3);padding:13px 22px;font-family:var(--caps);font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.kap-skip:focus{left:8px;top:8px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* WP-kern */
.alignwide{max-width:var(--container-wide)}
.alignfull{max-width:none}
.wp-block-image img{width:100%}
.aligncenter{margin-inline:auto;text-align:center}

/* kleine schermen */
@media (max-width:560px){
  :root{--header-h:68px}
  .kap-brand{gap:11px}
  .kap-brand__crest{height:40px}
  .kap-brand__name{font-size:12px;letter-spacing:.1em}
  .kap-brand__sub{font-size:11px}
  .kap-header__inner{min-height:68px}
}

/* ============================================================
   Donker register — componenten die óók op nacht of wijn staan
   Losse componentregels (.kap-dl p, .kap-tl p …) hebben dezelfde
   specificiteit als .kap-section--night p en winnen op volgorde;
   daarom hier expliciet, met de sectieklasse ervoor.
   ============================================================ */
.kap-section--night :is(.kap-dl,.kap-tl,.kap-agenda__item,.kap-cell,.kap-card) p,
.kap-section--wine  :is(.kap-dl,.kap-tl,.kap-agenda__item,.kap-cell,.kap-card) p,
.kap-section--night .kap-agenda__excerpt,
.kap-section--wine  .kap-agenda__excerpt{color:rgba(239,231,214,.74)}

.kap-section--night :is(.kap-dl,.kap-tl,.kap-card) h3,
.kap-section--wine  :is(.kap-dl,.kap-tl,.kap-card) h3,
.kap-section--night .kap-agenda__title,
.kap-section--wine  .kap-agenda__title{color:#F6EFE0}

.kap-section--night :is(.kap-dl__cta,.kap-dl__lang,.kap-card__tag,.kap-agenda__date,.kap-tl__year,.kap-ci__k),
.kap-section--wine  :is(.kap-dl__cta,.kap-dl__lang,.kap-card__tag,.kap-agenda__date,.kap-tl__year,.kap-ci__k){color:var(--gold-3)}

.kap-section--night :is(.kap-agenda__where,.kap-facts__l,.kap-figcaption),
.kap-section--wine  :is(.kap-agenda__where,.kap-facts__l,.kap-figcaption){color:rgba(239,231,214,.52)}

.kap-section--night :is(.kap-downloads,.kap-agenda,.kap-timeline,.kap-partners,.kap-ci),
.kap-section--wine  :is(.kap-downloads,.kap-agenda,.kap-timeline,.kap-partners,.kap-ci){border-top-color:var(--rule-light)}
.kap-section--night :is(.kap-downloads>*,.kap-agenda__item,.kap-tl,.kap-ci__row,.kap-empty),
.kap-section--wine  :is(.kap-downloads>*,.kap-agenda__item,.kap-tl,.kap-ci__row,.kap-empty){border-color:var(--rule-light)}

.kap-section--night :is(.kap-dl,.kap-card):hover,
.kap-section--wine  :is(.kap-dl,.kap-card):hover{background:rgba(184,145,46,.09)}

.kap-section--night .kap-chip,.kap-section--wine .kap-chip{color:var(--gold-3);border-color:var(--rule-light)}
.kap-section--night .kap-partners span,.kap-section--wine .kap-partners span{color:rgba(239,231,214,.8);border-bottom-color:var(--rule-light)}
.kap-section--night .kap-empty,.kap-section--wine .kap-empty{color:rgba(239,231,214,.55)}
.kap-section--night .kap-hang__aside,.kap-section--wine .kap-hang__aside{color:var(--gold-3)}
.kap-section--night .kap-num,.kap-section--wine .kap-num{color:rgba(239,231,214,.55)}
.kap-section--night .kap-num b,.kap-section--wine .kap-num b{color:var(--gold-3)}
.kap-section--night .kap-lead,.kap-section--wine .kap-lead{color:rgba(239,231,214,.78)}
.kap-section--night .kap-first::first-letter,
.kap-section--wine  .kap-first::first-letter{color:var(--gold-3)}
.kap-section--night .kap-prose strong,.kap-section--wine .kap-prose strong{color:#F6EFE0}

/* ============================================================
   E-boekband — de Masterkans, hoog op de pagina
   ============================================================ */
.kap-ebook{
  display:grid;gap:clamp(28px,4vw,64px);grid-template-columns:1fr;align-items:center;
}
@media (min-width:960px){.kap-ebook{grid-template-columns:1fr 1.05fr}}
.kap-ebook__title{font-family:var(--display);font-size:clamp(26px,3.1vw,44px);line-height:1.08;margin:0 0 .5em;color:#FBF3E4}
.kap-ebook__lead{font-size:var(--fs-lead);line-height:1.58;color:rgba(246,233,216,.82);margin:0}
.kap-ebook__langs{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--rule-light);border:1px solid var(--rule-light);
  box-shadow:0 20px 50px -30px rgba(0,0,0,.9);
}
.kap-ebook__cta{
  font-family:var(--caps);font-size:10.5px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--gold-3);margin:0 0 1.1em;display:block;
}
@media (min-width:620px){.kap-ebook__langs{grid-template-columns:repeat(4,1fr)}}
.kap-lang{
  display:flex;flex-direction:column;gap:.5em;
  padding:clamp(22px,2.7vw,34px) clamp(12px,1.6vw,20px);
  background:var(--wine-deep);
  transition:background-color .35s var(--ease),transform .35s var(--ease);
  text-align:center;align-items:center;
}
.kap-lang:hover{background:var(--wine);transform:translateY(-3px)}
.kap-lang__code{
  font-family:var(--caps);font-size:clamp(19px,1.6vw,24px);font-weight:700;letter-spacing:.12em;
  background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;line-height:1;
}
.kap-lang__name{font-family:var(--caps);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(246,233,216,.66);line-height:1.5}
.kap-lang__dl{font-family:var(--caps);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-3);display:inline-flex;gap:.4em;align-items:center;margin-top:.3em}
.kap-lang__dl::after{content:"↓";transition:transform .3s var(--ease)}
.kap-lang:hover .kap-lang__dl::after{transform:translateY(3px)}

/* ============================================================
   Verwante instellingen — uitgaande verwijzingen als drieluik
   ============================================================ */
.kap-linkgrid{display:grid;gap:clamp(18px,2.2vw,28px);grid-template-columns:1fr}
@media (min-width:820px){.kap-linkgrid{grid-template-columns:repeat(3,1fr)}}
.kap-extlink{
  display:flex;flex-direction:column;gap:.7em;position:relative;
  padding:clamp(26px,3vw,40px);
  border:1px solid var(--rule-gold);
  background:linear-gradient(160deg, rgba(184,145,46,.06) 0%, rgba(18,15,11,0) 55%);
  transition:border-color .4s var(--ease),background-color .4s var(--ease),transform .4s var(--ease);
}
.kap-extlink::before{
  content:"";position:absolute;inset:6px;border:1px solid transparent;
  transition:border-color .4s var(--ease);pointer-events:none;
}
.kap-extlink:hover{transform:translateY(-5px);border-color:var(--gold-2)}
.kap-extlink:hover::before{border-color:var(--rule-gold)}
.kap-extlink__place{
  font-family:var(--caps);font-size:10px;font-weight:700;letter-spacing:.28em;
  text-transform:uppercase;color:var(--gold);
}
.kap-extlink h3{
  font-family:var(--display);font-size:clamp(20px,1.9vw,26px);line-height:1.2;margin:0;
  font-variation-settings:'opsz' 32;
}
.kap-extlink p{font-size:var(--fs-small);line-height:1.66;margin:0;flex:1}
.kap-extlink__go{
  font-family:var(--caps);font-size:10px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;display:inline-flex;align-items:center;gap:.6em;
  margin-top:.8em;color:var(--gold-3);
}
.kap-extlink__go::after{content:"↗";transition:transform .3s var(--ease)}
.kap-extlink:hover .kap-extlink__go::after{transform:translate(3px,-3px)}

/* ============================================================
   Het wapen ontleed — onderdelen die oplichten en optillen
   ============================================================ */
.kap-blazon{
  display:grid;gap:clamp(30px,4.5vw,72px);grid-template-columns:1fr;align-items:center;
}
@media (min-width:1000px){.kap-blazon{grid-template-columns:.92fr 1.08fr}}

.kap-blazon__stage{
  position:relative;width:min(100%,460px);margin-inline:auto;
  aspect-ratio:900/1196;perspective:1300px;perspective-origin:50% 45%;
}
.kap-blazon__base,
.kap-blazon__layer{
  position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
}
.kap-blazon__base{
  z-index:1;
  box-shadow:0 0 0 1px rgba(212,175,55,.8), 0 0 0 9px rgba(18,15,11,.6),
             0 0 0 10px rgba(184,145,46,.45), 0 30px 64px -24px rgba(0,0,0,.85);
  transition:filter .55s var(--ease);
}
.kap-blazon__layer{
  z-index:2;pointer-events:none;opacity:0;
  transform:translate3d(0,0,0) scale(1);
  transition:opacity .05s linear, transform .6s var(--ease-soft), filter .6s var(--ease);
}
/* het opgetilde onderdeel: naar voren, iets groter, met een gouden gloed */
.kap-blazon[data-active] .kap-blazon__base{filter:brightness(.40) saturate(.62) contrast(.92)}
/* Echte diepte in plaats van alleen schaal: translateZ binnen de perspective
   van de stage tilt het onderdeel naar de kijker toe. */
.kap-blazon__layer.is-lifted{
  opacity:1;
  transform:translate3d(0,-3%,92px);
  filter:drop-shadow(0 40px 40px rgba(0,0,0,.85)) drop-shadow(0 0 30px rgba(212,175,55,.42));
}

/* de merktekens op het wapen */
.kap-blazon__hot{
  position:absolute;z-index:4;transform:translate(-50%,-50%);
  width:38px;height:38px;padding:0;cursor:pointer;
  background:rgba(18,15,11,.72);border:1px solid var(--gold-dim);
  color:var(--gold-3);font-family:var(--caps);font-size:11px;font-weight:700;
  letter-spacing:.04em;line-height:1;border-radius:50%;
  display:grid;place-items:center;
  backdrop-filter:blur(3px);
  transition:background-color .3s var(--ease),border-color .3s var(--ease),
             transform .35s var(--ease),color .3s var(--ease),opacity .35s var(--ease);
}
/* Zodra een onderdeel omhoog komt wijken de merktekens: ze mogen het
   opgetilde stuk niet afdekken. Het actieve teken verdwijnt helemaal. */
.kap-blazon[data-active] .kap-blazon__hot{opacity:.3}
.kap-blazon[data-active] .kap-blazon__hot:hover{opacity:.85}
.kap-blazon__hot[aria-pressed="true"]{opacity:0;pointer-events:none}
.kap-blazon__hot::after{
  content:"";position:absolute;inset:-7px;border-radius:50%;
  border:1px solid rgba(212,175,55,.35);opacity:0;transition:opacity .35s var(--ease),transform .35s var(--ease);
  transform:scale(.8);
}
.kap-blazon__hot:hover,.kap-blazon__hot:focus-visible,.kap-blazon__hot[aria-pressed="true"]{
  background:var(--gold-grad);color:#2A1B06;border-color:transparent;
  transform:translate(-50%,-50%) scale(1.12);
}
.kap-blazon__hot:hover::after,.kap-blazon__hot[aria-pressed="true"]::after{opacity:1;transform:scale(1)}

/* het uitlegpaneel */
.kap-blazon__panel{position:relative;min-height:1px}
.kap-blazon__item{
  display:none;
}
.kap-blazon__item.is-open{display:block;animation:kapFadeUp .55s var(--ease-soft) both}
@keyframes kapFadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.kap-blazon__n{
  font-family:var(--caps);font-size:11px;font-weight:700;letter-spacing:.28em;
  text-transform:uppercase;color:var(--gold);display:block;margin-bottom:1.1em;
}
.kap-blazon__item h3{
  font-family:var(--display);font-size:clamp(24px,2.7vw,38px);line-height:1.1;
  margin:0 0 .55em;color:#F6EFE0;font-variation-settings:'opsz' 60;
}
.kap-blazon__item p{font-size:var(--fs-small);line-height:1.75;color:rgba(239,231,214,.78);margin:0 0 1em}
.kap-blazon__item p:last-child{margin-bottom:0}
.kap-blazon__item em{color:var(--gold-3);font-style:italic}
.kap-blazon__meta{
  margin-top:1.6em;padding-top:1.2em;border-top:1px solid var(--rule-light);
  font-family:var(--caps);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(239,231,214,.42);line-height:1.9;
}
/* keuzelijst onder het paneel — ook zonder muis bruikbaar */
.kap-blazon__tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(22px,2.6vw,34px)}
.kap-blazon__tab{
  font-family:var(--caps);font-size:10px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(239,231,214,.6);
  border:1px solid var(--rule-light);background:transparent;padding:10px 15px;cursor:pointer;
  transition:color .3s var(--ease),border-color .3s var(--ease),background-color .3s var(--ease);
}
.kap-blazon__tab:hover{color:var(--gold-3);border-color:var(--gold-dim)}
.kap-blazon__tab[aria-pressed="true"]{background:var(--gold-grad);color:#2A1B06;border-color:transparent}

@media (max-width:999px){
  .kap-blazon__hot{width:32px;height:32px;font-size:10px}
}
