/* ================================================================
   HistorieCheck — base.css
   Alle globale stijlen, extraheerd uit middeleeuwen-preview.html
   Overschrijf :root-variabelen per tijdvak in een apart CSS-bestand.
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@400;700;900&family=Cinzel:wght@400;500;600;700;800;900&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap');

/* ── 1. DESIGN TOKENS ────────────────────────────────────────── */
:root {
  /* Goud-palette */
  --gold:     #C9A84C;
  --gold-l:   #D4AF37;
  --gold-b:   #FFD700;

  /* Achtergrondlagen */
--bg-0: #07111C;
--bg-1: #0B1825;
--bg-2: #112233;
--bg-3: #162B40;

--bdr:   #2A5070;
--bdr-l: #3A7099;

--t-cream: #F0EEE8;
--t-muted: #8AAEC8;
--t-dim: #5A7A94;
  /* Randkleuren */
  --bdr:      #5c4a2e;
  --bdr-l:    #8B7355;

  /* Tekstkleuren */
  --t-cream:  #E8D5B0;
  --t-muted:  #B8956A;
  --t-dim:    #8B7355;

  /* Typografie-stacks */
  --fd: 'Cinzel Decorative', serif;   /* display / logo */
  --fh: 'Cinzel', serif;              /* koppen / nav */
  --fb: 'Cormorant Garamond', serif;  /* bodytekst */

  /* Hero-afbeelding (overschrijven per tijdvak) */
  --hero-bg-image: none;

  /* Accentkleur (overschrijven per tijdvak) */
  --accent: var(--gold);
}

/* ── 2. RESET & BASIS ────────────────────────────────────────── */
*, *::before, *::after {
  margin: 0; padding: 0; box-sizing: border-box;
}
html { scroll-behavior: smooth; }

body {
  background: var(--bg-1);
  color: var(--t-cream);
  font-family: var(--fb);
  overflow-x: hidden;
}

body::before {
  content: '';
  position: fixed; inset: 0;
  background:
    radial-gradient(ellipse at 10% 20%, rgba(201,168,76,.03) 0%, transparent 50%),
    radial-gradient(ellipse at 90% 80%, rgba(201,168,76,.02) 0%, transparent 50%);
  pointer-events: none; z-index: 0;
}

::selection { background: rgba(201,168,76,.3); color: var(--t-cream); }

::-webkit-scrollbar        { width: 8px; }
::-webkit-scrollbar-track  { background: var(--bg-0); }
::-webkit-scrollbar-thumb  { background: var(--bdr); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--gold); }

a { transition: color .3s, border-color .3s; }
img { display: block; max-width: 100%; height: auto; }

/* ── 3. LAYOUT-HULPKLASSEN ───────────────────────────────────── */
.wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative; z-index: 1;
}
.wrap-narrow {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative; z-index: 1;
}

/* ── 4. HEADER ───────────────────────────────────────────────── */
.header {
  background: var(--bg-0);
  border-bottom: 2px solid var(--bdr-l);
  padding: 12px 0;
  position: relative;
}
.header::before {
  content: ''; position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(42,31,16,.3) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 0%, rgba(201,168,76,.05) 0%, transparent 70%);
  pointer-events: none;
}
.hdr-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative; z-index: 1;
}
.logo { display: flex; align-items: center; gap: 12px; }
.shield {
  width: 50px; height: 55px;
  background: linear-gradient(135deg, var(--bg-2), var(--bg-0));
  border: 2px solid var(--gold);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px;
  clip-path: polygon(0% 0%, 100% 0%, 100% 75%, 50% 100%, 0% 75%);
  padding-bottom: 6px;
  box-shadow: 0 2px 10px rgba(0,0,0,.5);
}
.logo-t {
  font-family: var(--fd);
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  color: var(--gold-l);
  letter-spacing: 2px;
  text-shadow: 2px 2px 8px rgba(0,0,0,.7);
}

/* Taalvlaggen */
.flags { display: flex; gap: 8px; }
.flag {
  width: 30px; height: 20px;
  border: 1px solid var(--bdr);
  border-radius: 2px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 10px;
  font-family: var(--fh);
  color: var(--gold);
  background: var(--bg-2);
  transition: all .3s;
}
.flag:hover { border-color: var(--gold); transform: scale(1.1); }

/* ── 5. HOOFDNAVIGATIE ───────────────────────────────────────── */
.mnav {
  background: linear-gradient(180deg, #15100a, var(--bg-0));
  border-bottom: 1px solid var(--bdr);
}
.nav-l {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.nav-l a {
  color: var(--gold);
  font-family: var(--fh);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-weight: 600;
  text-decoration: none;
  padding: 13px 20px;
  border-right: 1px solid rgba(92,74,46,.4);
  transition: all .3s;
  position: relative;
}
.nav-l a:last-child { border-right: none; }
.nav-l a::after {
  content: ''; position: absolute;
  bottom: 0; left: 50%; width: 0; height: 2px;
  background: var(--gold-b);
  transition: all .3s;
  transform: translateX(-50%);
}
.nav-l a:hover { color: var(--gold-b); background: rgba(201,168,76,.04); }
.nav-l a:hover::after { width: 60%; }

/* ── 6. TIJDLIJN-BALK ────────────────────────────────────────── */
.tl-bar {
  background: linear-gradient(180deg, var(--bg-2), var(--bg-1));
  border-bottom: 1px solid var(--bdr);
  padding: 8px 0;
}
.tl-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
}
.tl-inner a {
  color: var(--t-muted);
  font-family: var(--fb);
  font-size: 15px;
  text-decoration: none;
  padding: 5px 12px;
  transition: color .3s;
}
.tl-inner a:hover,
.tl-inner a.active { color: var(--gold-b); font-weight: 600; }
.tl-inner .ar { color: var(--bdr); font-size: 13px; padding: 0 2px; }

/* ── 7. HERO ─────────────────────────────────────────────────── */
.hero {
  position: relative;
  min-height: 420px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
}
.hero-bg {
  position: absolute; inset: 0;
  background:
    var(--hero-bg-image, linear-gradient(135deg,
      #1a1209 0%, #3d2e18 30%, #5c4a2e 50%, #3d2e18 70%, #1a1209 100%));
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.hero-bg::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(
    180deg,
    rgba(26,18,9,.2)  0%,
    rgba(26,18,9,.1)  40%,
    rgba(26,18,9,.85) 85%,
    var(--bg-1)       100%
  );
  z-index: 1;
}
.hero-bg::before {
  content: ''; position: absolute;
  top: 10%; left: 50%; transform: translateX(-50%);
  width: 80%; height: 70%;
  background: radial-gradient(ellipse at center, rgba(92,74,46,.25) 0%, transparent 70%);
  z-index: 1;
}
.hero-content {
  position: relative; z-index: 2;
  padding: 60px 20px 40px;
  animation: fadeUp .8s ease-out;
}
.hero h1 {
  font-family: var(--fd);
  font-size: clamp(36px, 5vw, 56px);
  font-weight: 700;
  color: var(--t-cream);
  letter-spacing: 2px;
  text-shadow: 3px 3px 15px rgba(0,0,0,.9), 0 0 40px rgba(0,0,0,.5);
  line-height: 1.1;
}
.hero .sub {
  font-family: var(--fb);
  font-size: clamp(16px, 2vw, 20px);
  font-style: italic;
  color: var(--gold);
  letter-spacing: 1px;
  margin-top: 8px;
  text-shadow: 2px 2px 10px rgba(0,0,0,.8);
}
.hero-placeholder {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  color: var(--bdr-l);
  font-family: var(--fb);
  font-size: 15px; font-style: italic;
  z-index: 1; text-align: center; opacity: .6;
}

/* ── 8. INTRO-TEKST ──────────────────────────────────────────── */
.intro {
  padding: 45px 0;
  animation: fadeIn .8s ease-out .2s both;
}
.intro p {
  font-family: var(--fb);
  font-size: 19px;
  line-height: 1.85;
  color: var(--t-cream);
  text-align: left;
}
.intro p + p { margin-top: 18px; }

/* ── 9. SECTIE-DIVIDER ───────────────────────────────────────── */
.sdiv {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 30px 0 15px;
}
.sdiv .l     { flex: 1; height: 1px; }
.sdiv .ll    { background: linear-gradient(90deg, transparent, var(--bdr)); }
.sdiv .lr    { background: linear-gradient(90deg, var(--bdr), transparent); }
.sdiv h2 {
  font-family: var(--fh);
  font-size: clamp(18px, 2.2vw, 24px);
  font-weight: 700;
  color: var(--gold);
  letter-spacing: 3px;
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: 0 0 20px rgba(201,168,76,.12);
}

/* ── 10. ONDERZOEK-KAARTEN ───────────────────────────────────── */
.cards {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
  padding: 20px 0 40px;
}
.card {
  background: rgba(13,10,5,.75);
  border: 1px solid var(--bdr);
  border-radius: 5px;
  overflow: hidden;
  transition: all .35s;
  cursor: pointer;
}
.card:hover {
  border-color: var(--gold);
  transform: translateY(-4px);
  box-shadow: 0 10px 30px rgba(0,0,0,.5);
}
.card-img {
  width: 100%; aspect-ratio: 4/3;
  background: linear-gradient(135deg, var(--bg-2), var(--bg-3), var(--bg-2));
  display: flex; align-items: center; justify-content: center;
  color: var(--bdr-l);
  font-family: var(--fb);
  font-size: 28px; text-align: center;
  position: relative;
}
.card-img img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.card-img::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(13,10,5,.6));
}
.card-body { padding: 14px 12px 16px; }
.card-body h5 {
  font-family: var(--fh);
  font-size: 14px; font-weight: 700;
  color: var(--t-cream);
  margin-bottom: 8px; line-height: 1.3;
}
.card-body p {
  font-family: var(--fb);
  font-size: 13px;
  color: var(--t-muted);
  font-style: italic;
  line-height: 1.5;
}

/* ── 11. KRANT-KAARTEN ───────────────────────────────────────── */
.krant-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
  padding: 20px 0 40px;
}
.krant-card {
  background: rgba(13,10,5,.75);
  border: 1px solid var(--bdr);
  border-radius: 5px;
  padding: 20px 22px;
  transition: all .3s;
}
.krant-card:hover {
  border-color: var(--gold);
  box-shadow: 0 5px 20px rgba(0,0,0,.4);
}
.krant-head {
  display: flex; align-items: center;
  gap: 8px; margin-bottom: 14px;
}
.krant-head .ic  { color: var(--gold); font-size: 16px; }
.krant-head h4   {
  font-family: var(--fh);
  font-size: 16px; font-weight: 700;
  color: var(--t-cream); letter-spacing: 1px;
}
.krant-head .yr  {
  font-weight: 400; color: var(--t-muted);
  font-family: var(--fb); font-style: italic;
  font-size: 14px; margin-left: 4px;
}
.krant-inner {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 15px; align-items: start;
}
.krant-thumb {
  width: 120px; height: 85px;
  background: linear-gradient(135deg, var(--bg-2), var(--bg-3));
  border: 1px solid var(--bdr);
  border-radius: 3px;
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; color: var(--bdr-l);
  overflow: hidden;
}
.krant-thumb img {
  width: 100%; height: 100%; object-fit: cover;
}
.krant-txt h5 {
  font-family: var(--fh);
  font-size: 14px; font-weight: 600;
  color: var(--gold); margin-bottom: 6px;
}
.krant-txt p {
  font-family: var(--fb);
  font-size: 14px; font-style: italic;
  color: var(--t-muted); line-height: 1.6;
}

/* ── 12. CTA-SECTIE ──────────────────────────────────────────── */
.cta-section { padding: 30px 0 55px; text-align: center; }
.cta-section .q {
  font-family: var(--fb);
  font-size: 20px; color: var(--t-cream); line-height: 1.7;
}
.cta-section .link {
  font-family: var(--fb);
  font-size: 22px; font-style: italic; font-weight: 600;
  color: var(--gold); margin-top: 5px;
}
.btn-cta {
  display: inline-block;
  font-family: var(--fh);
  font-size: 14px; font-weight: 700;
  letter-spacing: 2px;
  color: var(--gold);
  text-decoration: none;
  padding: 14px 45px;
  border: 2px solid var(--gold);
  border-radius: 3px;
  background: rgba(201,168,76,.08);
  margin-top: 25px;
  transition: all .3s;
}
.btn-cta:hover {
  color: var(--bg-0);
  background: var(--gold);
  box-shadow: 0 0 25px rgba(201,168,76,.3);
}

/* ── 13. FOOTER ──────────────────────────────────────────────── */
.footer {
  background: var(--bg-0);
  border-top: 1px solid var(--bdr);
  padding: 35px 0;
}
.ft-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 40px;
}
.ft-grid h4 {
  font-family: var(--fd);
  font-size: 20px; font-weight: 700;
  color: var(--gold); margin-bottom: 10px;
}
.ft-grid h5 {
  font-family: var(--fh);
  font-size: 13px; text-transform: uppercase;
  letter-spacing: 1.5px; font-weight: 600;
  color: var(--gold); margin-bottom: 10px;
}
.ft-grid p {
  font-family: var(--fb);
  font-size: 14px; color: var(--t-dim); line-height: 1.7;
}
.ft-links a {
  display: block;
  color: var(--t-dim);
  font-family: var(--fb);
  font-size: 14px;
  text-decoration: none;
  padding: 3px 0;
  transition: color .3s;
}
.ft-links a:hover { color: var(--gold); }
.ft-copy {
  text-align: center;
  padding-top: 25px;
  margin-top: 25px;
  border-top: 1px solid var(--bdr);
  font-family: var(--fb);
  font-size: 13px;
  color: var(--t-dim);
  font-style: italic;
}

/* ── 14. ANIMATIES ───────────────────────────────────────────── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(25px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.card:nth-child(1) { animation: fadeUp .5s ease-out .10s both; }
.card:nth-child(2) { animation: fadeUp .5s ease-out .18s both; }
.card:nth-child(3) { animation: fadeUp .5s ease-out .26s both; }
.card:nth-child(4) { animation: fadeUp .5s ease-out .34s both; }
.card:nth-child(5) { animation: fadeUp .5s ease-out .42s both; }

/* ── 15. INTAKE-FORMULIER ────────────────────────────────────── */
.intake-wrap {
  max-width: 760px;
  margin: 50px auto;
  padding: 0 20px 60px;
}
.intake-wrap h1 {
  font-family: var(--fd);
  font-size: clamp(24px, 3.5vw, 38px);
  color: var(--gold-l);
  text-align: center;
  margin-bottom: 6px;
}
.intake-wrap .intake-sub {
  font-family: var(--fb);
  font-size: 18px; font-style: italic;
  color: var(--t-muted);
  text-align: center; margin-bottom: 40px;
}
/* Stap-indicator */
.steps-bar {
  display: flex;
  justify-content: center;
  gap: 0;
  margin-bottom: 40px;
}
.step-dot {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--bg-2);
  border: 2px solid var(--bdr);
  color: var(--t-dim);
  font-family: var(--fh);
  font-size: 13px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  transition: all .3s;
  position: relative; z-index: 1;
}
.step-dot.active  { border-color: var(--gold); color: var(--gold); background: rgba(201,168,76,.1); }
.step-dot.done    { border-color: var(--gold); background: var(--gold); color: var(--bg-0); }
.step-line {
  flex: 1; height: 2px;
  background: var(--bdr);
  margin-top: 17px;
  max-width: 60px;
  transition: background .3s;
}
.step-line.done { background: var(--gold); }
/* Formulier-kaart */
.intake-card {
  background: rgba(13,10,5,.8);
  border: 1px solid var(--bdr);
  border-radius: 6px;
  padding: 36px 40px;
}
.intake-card h2 {
  font-family: var(--fh);
  font-size: 20px; font-weight: 700;
  color: var(--gold);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.intake-card .step-desc {
  font-family: var(--fb);
  font-size: 16px; font-style: italic;
  color: var(--t-muted);
  margin-bottom: 28px;
}
.field { margin-bottom: 22px; }
.field label {
  display: block;
  font-family: var(--fh);
  font-size: 12px; font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--t-muted);
  margin-bottom: 8px;
}
.field input,
.field select,
.field textarea {
  width: 100%;
  background: var(--bg-2);
  border: 1px solid var(--bdr);
  border-radius: 3px;
  color: var(--t-cream);
  font-family: var(--fb);
  font-size: 16px;
  padding: 11px 14px;
  outline: none;
  transition: border-color .25s, box-shadow .25s;
}
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,.12);
}
.field textarea { resize: vertical; min-height: 110px; }
.field select { appearance: none; cursor: pointer; }
.field .hint {
  font-family: var(--fb);
  font-size: 13px; font-style: italic;
  color: var(--t-dim);
  margin-top: 5px;
}
/* Radio/checkbox groepen */
.radio-group { display: flex; flex-direction: column; gap: 10px; }
.radio-opt {
  display: flex; align-items: center; gap: 12px;
  cursor: pointer;
}
.radio-opt input[type="radio"],
.radio-opt input[type="checkbox"] {
  width: 18px; height: 18px;
  accent-color: var(--gold);
  cursor: pointer;
}
.radio-opt span {
  font-family: var(--fb);
  font-size: 16px;
  color: var(--t-cream);
}
/* Navigatie-knoppen */
.btn-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 32px;
  gap: 12px;
}
.btn-prev, .btn-next, .btn-submit {
  font-family: var(--fh);
  font-size: 13px; font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 12px 32px;
  border-radius: 3px;
  border: 2px solid var(--gold);
  cursor: pointer;
  transition: all .3s;
}
.btn-prev {
  background: transparent;
  color: var(--t-muted);
  border-color: var(--bdr);
}
.btn-prev:hover { border-color: var(--gold); color: var(--gold); }
.btn-next, .btn-submit {
  background: rgba(201,168,76,.1);
  color: var(--gold);
}
.btn-next:hover, .btn-submit:hover {
  background: var(--gold);
  color: var(--bg-0);
  box-shadow: 0 0 20px rgba(201,168,76,.3);
}
/* Bevestigingsbericht */
.intake-success {
  text-align: center;
  padding: 50px 20px;
  display: none;
}
.intake-success .ic { font-size: 56px; margin-bottom: 20px; }
.intake-success h2 {
  font-family: var(--fd);
  font-size: 28px;
  color: var(--gold);
  margin-bottom: 12px;
}
.intake-success p {
  font-family: var(--fb);
  font-size: 18px; font-style: italic;
  color: var(--t-muted);
}

/* ── 16. RESPONSIVE ──────────────────────────────────────────── */
@media (max-width: 1024px) {
  .cards       { grid-template-columns: repeat(3, 1fr); }
  .krant-grid  { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .hdr-inner          { flex-direction: column; gap: 8px; }
  .flags              { position: absolute; top: 10px; right: 20px; }
  .nav-l a            { padding: 10px 14px; font-size: 12px; border-right: none; }
  .tl-inner .ar       { display: none; }
  .tl-inner a         { font-size: 13px; padding: 4px 8px; }
  .hero               { min-height: 300px; }
  .cards              { grid-template-columns: repeat(2, 1fr); }
  .krant-inner        { grid-template-columns: 1fr; }
  .krant-thumb        { width: 100%; height: 120px; }
  .ft-grid            { grid-template-columns: 1fr; gap: 25px; }
  .intake-card        { padding: 24px 20px; }
}
@media (max-width: 480px) {
  .cards      { grid-template-columns: 1fr 1fr; gap: 12px; }
  .card-body h5 { font-size: 13px; }
  .card-body p  { font-size: 12px; }
  .btn-row    { flex-direction: column; }
  .btn-prev, .btn-next, .btn-submit { width: 100%; text-align: center; }
}
/* ── LOGO RING & SUB (artikel header) ── */
.logo-ring {
  width: 52px; height: 52px;
  border-radius: 50%;
  border: 2px solid var(--gold);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  background: var(--bg-2);
  flex-shrink: 0;
}
.logo-ring img {
  width: 100%; height: 100%; object-fit: cover;
}
.logo-naam {
  display: block;
  font-family: var(--fd);
  font-size: clamp(20px, 2.8vw, 32px);
  font-weight: 700;
  color: var(--gold-l);
  letter-spacing: 3px;
  text-transform: uppercase;
}
.logo-sub {
  display: block;
  font-family: var(--fb);
  font-size: 13px;
  font-style: italic;
  color: var(--t-muted);
  letter-spacing: 2px;
  margin-top: 2px;
}


/* ── ARTIKEL LAYOUT STIJLEN ── */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  --navy-0:  #07101A;
  --navy-1:  #0E1A26;
  --navy-2:  #152233;
  --navy-3:  #1C2E42;
  --navy-4:  #243650;
  --navy-5:  #2C4260;   /* lichtste blauw — leesvenster achtergrond */

  --gold:    #C6A85A;
  --gold-l:  #D4B870;
  --gold-d:  #A8893A;
  --gold-glow: rgba(198,168,90,.15);

  /* Lees-tekst: warmer en beter leesbaar op blauw */
  --read-fg:   #D9E8F5;   /* hoofdtekst in leesvenster */
  --read-sub:  #A8C4DC;   /* subtekst in leesvenster */
  --read-dim:  #7A9BB8;   /* labels, meta in leesvenster */

  --cream:   #E8D9B8;
  --muted:   #9EAFC2;
  --dim:     #5C7A96;

  --bdr:     rgba(198,168,90,.15);
  --bdr-l:   rgba(198,168,90,.32);
  --bdr-read:rgba(198,168,90,.2);

  --fd: 'Cinzel Decorative', serif;
  --fh: 'Cinzel', serif;
  --fc: 'Cormorant Garamond', serif;
  --fb: 'Inter', sans-serif;
}

html{scroll-behavior:smooth}
body{
  background:var(--navy-1);
  color:var(--cream);
  font-family:var(--fb);
  font-size:16px;line-height:1.7;
  overflow-x:hidden;
}
body::before{
  content:'';position:fixed;inset:0;
  background:
    radial-gradient(ellipse 70% 40% at 15% 5%,rgba(198,168,90,.04) 0%,transparent 60%),
    radial-gradient(ellipse 50% 60% at 88% 90%,rgba(7,16,26,.55) 0%,transparent 60%),
    repeating-linear-gradient(0deg,transparent,transparent 70px,rgba(255,255,255,.005) 70px,rgba(255,255,255,.005) 71px);
  pointer-events:none;z-index:0;
}

::selection{background:rgba(198,168,90,.28);color:var(--cream)}
::-webkit-scrollbar{width:7px}
::-webkit-scrollbar-track{background:var(--navy-0)}
::-webkit-scrollbar-thumb{background:var(--navy-3);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--gold-d)}

.wrap{max-width:1200px;margin:0 auto;padding:0 24px;position:relative;z-index:1}
a{color:inherit;transition:color .25s}

/* ===== HEADER ===== */
.header{
  background:var(--navy-0);
  border-bottom:1px solid var(--bdr-l);
  padding:14px 0;
  position:sticky;top:0;z-index:100;
}
.header::after{
  content:'';position:absolute;bottom:-1px;left:0;right:0;
  height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.35;
}
.hdr-inner{display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{display:flex;align-items:center;gap:14px;text-decoration:none}
.shield{
  width:46px;height:52px;
  background:linear-gradient(160deg,var(--navy-3),var(--navy-0));
  border:1.5px solid var(--gold-d);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;
  clip-path:polygon(0% 0%,100% 0%,100% 75%,50% 100%,0% 75%);
  padding-bottom:5px;
  box-shadow:0 0 18px rgba(198,168,90,.12),inset 0 1px 0 rgba(198,168,90,.08);
}
.logo-t{
  font-family:var(--fd);font-size:clamp(20px,2.5vw,28px);font-weight:700;
  color:var(--gold);letter-spacing:2px;text-shadow:0 0 30px rgba(198,168,90,.25);
}
.flags{display:flex;gap:6px}
.flag{
  padding:4px 10px;border:1px solid var(--bdr);border-radius:2px;
  font-family:var(--fh);font-size:11px;letter-spacing:1px;
  color:var(--muted);cursor:pointer;background:transparent;transition:all .25s;
}
.flag:hover,.flag.active{border-color:var(--gold);color:var(--gold);background:var(--gold-glow)}

/* ===== MAIN NAV ===== */
.mnav{background:linear-gradient(180deg,var(--navy-0),var(--navy-1));border-bottom:1px solid var(--bdr)}
.nav-l{display:flex;justify-content:center;flex-wrap:wrap}
.nav-l a{
  color:var(--muted);font-family:var(--fh);font-size:12px;
  text-transform:uppercase;letter-spacing:1.8px;font-weight:600;
  text-decoration:none;padding:14px 20px;
  border-right:1px solid var(--bdr);transition:all .25s;position:relative;
}
.nav-l a:last-child{border-right:none}
.nav-l a::after{
  content:'';position:absolute;bottom:0;left:50%;
  width:0;height:2px;background:var(--gold);transition:all .3s;transform:translateX(-50%);
}
.nav-l a:hover,.nav-l a.active{color:var(--gold);background:rgba(198,168,90,.04)}
.nav-l a:hover::after,.nav-l a.active::after{width:55%}

/* ===== TIJDLIJN BAR ===== */
.tl-bar{background:var(--navy-2);border-bottom:1px solid var(--bdr);padding:8px 0}
.tl-inner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}
.tl-inner a{
  color:var(--dim);font-family:var(--fc);font-size:15px;font-style:italic;
  text-decoration:none;padding:4px 11px;transition:color .25s;
}
.tl-inner a:hover,.tl-inner a.active{color:var(--gold);font-weight:600;font-style:normal}
.tl-inner .ar{color:var(--bdr-l);font-size:12px;padding:0 2px}

/* ===== ARTIKEL HERO ===== */
.art-hero{
  position:relative;height:380px;overflow:hidden;
  border-bottom:2px solid var(--bdr-l);
}
.art-hero-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 30%;display:block;
  filter:sepia(22%) saturate(0.75) brightness(0.6);
}
.art-hero-fallback{
  position:absolute;inset:0;
  background:linear-gradient(135deg,var(--navy-0) 0%,var(--navy-2) 40%,var(--navy-3) 60%,var(--navy-2) 80%,var(--navy-0) 100%);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--fh);font-size:13px;letter-spacing:3px;color:var(--dim);text-transform:uppercase;
}
.art-hero-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,
      rgba(7,16,26,0)    0%,
      rgba(7,16,26,.1)   30%,
      rgba(7,16,26,.6)   65%,
      rgba(14,26,38,.97) 90%,
      var(--navy-1)      100%
    ),
    linear-gradient(90deg,rgba(7,16,26,.4) 0%,transparent 35%,transparent 65%,rgba(7,16,26,.4) 100%);
  z-index:2;
}
.art-hero-frame{position:absolute;inset:14px;border:1px solid var(--bdr-l);pointer-events:none;z-index:3}
.art-hero-frame::before{content:'';position:absolute;inset:5px;border:1px solid rgba(198,168,90,.1)}
.hero-corner{position:absolute;width:24px;height:24px;z-index:4;pointer-events:none}
.hero-corner::before,.hero-corner::after{content:'';position:absolute;background:var(--gold);opacity:.5}
.hero-corner::before{width:100%;height:1px;top:0;left:0}
.hero-corner::after{width:1px;height:100%;top:0;left:0}
.hc-tl{top:14px;left:14px}
.hc-tr{top:14px;right:14px;transform:scaleX(-1)}
.hc-bl{bottom:14px;left:14px;transform:scaleY(-1)}
.hc-br{bottom:14px;right:14px;transform:scale(-1)}

.art-hero-content{
  position:absolute;bottom:0;left:0;right:0;
  padding:0 60px 40px;z-index:5;
  animation:fadeUp .8s ease-out both;
}
.breadcrumb{
  display:flex;align-items:center;gap:8px;
  margin-bottom:14px;
}
.breadcrumb a{
  font-family:var(--fh);font-size:11px;letter-spacing:2px;
  text-transform:uppercase;color:var(--dim);text-decoration:none;
  transition:color .25s;
}
.breadcrumb a:hover{color:var(--gold)}
.breadcrumb .sep{color:var(--bdr-l);font-size:12px}
.breadcrumb .cur{color:var(--gold-d);font-family:var(--fh);font-size:11px;letter-spacing:2px;text-transform:uppercase}

.art-hero-content h1{
  font-family:var(--fd);
  font-size:clamp(26px,4vw,52px);
  font-weight:700;color:var(--cream);
  letter-spacing:1.5px;line-height:1.08;
  text-shadow:2px 4px 24px rgba(0,0,0,.95),0 0 50px rgba(0,0,0,.7);
}
.art-hero-content .ondertitel{
  font-family:var(--fc);
  font-size:clamp(15px,2vw,20px);font-style:italic;
  color:var(--gold);margin-top:8px;
  text-shadow:1px 2px 12px rgba(0,0,0,.9);
}

/* ===== ARTIKEL LAYOUT ===== */
.art-layout{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:32px;
  max-width:1100px;margin:0 auto;
  padding:0 24px 60px;
  position:relative;z-index:1;
}

/* ===== ARTIKEL LEESVENSTER ===== */
.art-body{
  background:var(--navy-3);
  border:1px solid var(--bdr-read);
  border-radius:6px;
  padding:44px 52px;
  position:relative;
  box-shadow:0 8px 48px rgba(0,0,0,.4),inset 0 1px 0 rgba(198,168,90,.06);
}
/* subtiel glanseffect bovenaan het leesvenster */
.art-body::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(198,168,90,.3),transparent);
  border-radius:6px 6px 0 0;
}

/* Meta-balk boven het artikel */
.art-meta{
  display:flex;align-items:center;flex-wrap:wrap;gap:16px;
  padding-bottom:20px;
  margin-bottom:28px;
  border-bottom:1px solid var(--bdr-read);
}
.meta-tag{
  font-family:var(--fh);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--gold-d);
  padding:4px 10px;
  border:1px solid var(--bdr);border-radius:2px;
  background:rgba(198,168,90,.06);
}
.meta-date{
  font-family:var(--fc);font-size:14px;font-style:italic;color:var(--read-dim);
}
.meta-auteur{
  font-family:var(--fb);font-size:13px;color:var(--read-dim);font-weight:400;
  margin-left:auto;
}
.meta-auteur strong{color:var(--read-sub);font-weight:600}

/* Doorlopende artikeltekst */
.art-body h2{
  font-family:var(--fh);
  font-size:clamp(16px,2vw,20px);
  font-weight:700;color:var(--gold);
  letter-spacing:1.5px;text-transform:uppercase;
  margin:38px 0 16px;
  padding-bottom:10px;
  border-bottom:1px solid var(--bdr-read);
}
.art-body h2:first-of-type{margin-top:0}

.art-body p{
  font-family:var(--fc);
  font-size:19px;
  line-height:2.05;
  color:var(--read-fg);
  margin-bottom:20px;
}
.art-body p:last-child{margin-bottom:0}

/* Dropcap eerste alinea */
.art-body .dropcap::first-letter{
  font-family:var(--fd);
  font-size:4em;line-height:.72;
  float:left;margin:10px 14px 0 0;
  color:var(--gold);text-shadow:0 0 20px rgba(198,168,90,.25);
}

/* Ingebedde citaat / blockquote */
.art-body blockquote{
  margin:28px 0;
  padding:20px 28px;
  background:var(--navy-4);
  border-left:3px solid var(--gold);
  border-radius:0 4px 4px 0;
}
.art-body blockquote p{
  font-family:var(--fc);font-size:20px;font-style:italic;
  color:var(--gold-l);line-height:1.85;margin:0;
}
.art-body blockquote cite{
  display:block;margin-top:10px;
  font-family:var(--fh);font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--read-dim);font-style:normal;
}

/* Ingebedde afbeelding */
.art-img-block{
  margin:32px 0;
  border:1px solid var(--bdr-read);
  border-radius:4px;overflow:hidden;
  position:relative;
}
.art-img-block img{
  width:100%;display:block;
  filter:sepia(15%) brightness(0.85);
}
.art-img-block .cap{
  background:var(--navy-4);
  padding:10px 16px;
  font-family:var(--fc);font-size:13px;font-style:italic;
  color:var(--read-dim);
}
/* Fallback afbeeldingvak */
.art-img-placeholder{
  width:100%;aspect-ratio:16/7;
  background:linear-gradient(135deg,var(--navy-2),var(--navy-4));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--fh);font-size:12px;letter-spacing:2px;text-transform:uppercase;
  color:var(--dim);
}

/* Feitenkader */
.fact-box{
  margin:28px 0;
  background:var(--navy-2);
  border:1px solid var(--bdr-read);
  border-radius:4px;padding:22px 26px;
}
.fact-box h4{
  font-family:var(--fh);font-size:12px;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--gold-d);margin-bottom:14px;
  padding-bottom:10px;border-bottom:1px solid var(--bdr);
}
.fact-box ul{list-style:none;padding:0}
.fact-box ul li{
  font-family:var(--fc);font-size:16px;color:var(--read-fg);
  padding:6px 0;border-bottom:1px solid rgba(198,168,90,.07);
  display:flex;gap:10px;line-height:1.6;
}
.fact-box ul li:last-child{border-bottom:none}
.fact-box ul li::before{content:'—';color:var(--gold-d);flex-shrink:0}

/* Tags onderaan */
.art-tags{
  margin-top:36px;padding-top:20px;
  border-top:1px solid var(--bdr-read);
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
}
.art-tags .lbl{
  font-family:var(--fh);font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--read-dim);margin-right:4px;
}
.art-tags a{
  font-family:var(--fh);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--muted);text-decoration:none;
  padding:4px 10px;
  border:1px solid var(--bdr);border-radius:2px;
  background:rgba(198,168,90,.04);
  transition:all .25s;
}
.art-tags a:hover{color:var(--gold);border-color:var(--gold-d);background:var(--gold-glow)}

/* ===== SIDEBAR ===== */
.art-sidebar{display:flex;flex-direction:column;gap:22px;padding-top:0}

.sb-card{
  background:var(--navy-2);
  border:1px solid var(--bdr);
  border-radius:4px;
  overflow:hidden;
}
.sb-card-head{
  padding:14px 18px 12px;
  border-bottom:1px solid var(--bdr);
  background:var(--navy-3);
}
.sb-card-head h4{
  font-family:var(--fh);font-size:11px;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--gold-d);
}
.sb-card-body{padding:16px 18px}

/* Info / tijdvak blok */
.info-row{display:flex;justify-content:space-between;align-items:baseline;padding:7px 0;border-bottom:1px solid rgba(198,168,90,.07)}
.info-row:last-child{border-bottom:none}
.info-row .lbl{font-family:var(--fh);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--dim)}
.info-row .val{font-family:var(--fc);font-size:15px;color:var(--muted);font-style:italic;text-align:right}

/* Gerelateerde artikelen */
.rel-item{
  display:flex;gap:12px;align-items:start;
  padding:10px 0;border-bottom:1px solid rgba(198,168,90,.07);
  text-decoration:none;
}
.rel-item:last-child{border-bottom:none}
.rel-thumb{
  width:52px;height:40px;flex-shrink:0;
  background:linear-gradient(135deg,var(--navy-1),var(--navy-4));
  border:1px solid var(--bdr);border-radius:2px;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;
}
.rel-txt h5{
  font-family:var(--fh);font-size:12px;font-weight:700;
  color:var(--muted);line-height:1.35;margin-bottom:3px;
  transition:color .25s;
}
.rel-item:hover .rel-txt h5{color:var(--gold)}
.rel-txt span{font-family:var(--fc);font-size:12px;font-style:italic;color:var(--dim)}

/* Tijdlijn in sidebar */
.tl-side{list-style:none;padding:0;position:relative}
.tl-side::before{
  content:'';position:absolute;left:11px;top:8px;bottom:8px;
  width:1px;background:linear-gradient(180deg,var(--gold-d),var(--bdr));
}
.tl-side li{
  display:flex;gap:14px;align-items:baseline;
  padding:8px 0;position:relative;
}
.tl-side li .dot{
  width:8px;height:8px;flex-shrink:0;
  border-radius:50%;margin-top:5px;
  border:1.5px solid var(--gold-d);
  background:var(--navy-2);position:relative;z-index:1;
}
.tl-side li.active .dot{background:var(--gold);border-color:var(--gold)}
.tl-side li .yr{
  font-family:var(--fh);font-size:11px;color:var(--gold-d);
  letter-spacing:1px;white-space:nowrap;
}
.tl-side li .ev{
  font-family:var(--fc);font-size:14px;font-style:italic;
  color:var(--read-dim);line-height:1.45;
}
.tl-side li.active .ev{color:var(--read-fg)}

/* ===== NAVIGATIE ONDER ARTIKEL ===== */
.art-nav{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
  max-width:1100px;margin:0 auto;padding:0 24px 60px;
  position:relative;z-index:1;
}
.art-nav-card{
  background:var(--navy-2);border:1px solid var(--bdr);
  border-radius:4px;padding:18px 22px;
  text-decoration:none;display:block;transition:all .3s;
}
.art-nav-card:hover{border-color:var(--gold-d);background:var(--navy-3);transform:translateY(-2px)}
.art-nav-card .dir{
  font-family:var(--fh);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--dim);margin-bottom:6px;display:block;
}
.art-nav-card h4{
  font-family:var(--fh);font-size:13.5px;font-weight:700;color:var(--muted);line-height:1.4;
  transition:color .25s;
}
.art-nav-card:hover h4{color:var(--gold)}
.art-nav-card.next{text-align:right}

/* ===== FOOTER ===== */
.footer{background:var(--navy-0);border-top:1px solid var(--bdr-l);padding:50px 0 30px;position:relative}
.footer::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.3;
}
.ft-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:44px}
.ft-brand h4{font-family:var(--fd);font-size:20px;font-weight:700;color:var(--gold);margin-bottom:14px}
.ft-brand p{font-family:var(--fb);font-size:14px;color:var(--dim);line-height:1.85;font-weight:300}
.ft-col h5{
  font-family:var(--fh);font-size:11px;text-transform:uppercase;
  letter-spacing:2.5px;font-weight:700;color:var(--gold-d);
  margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--bdr);
}
.ft-links a{
  display:block;color:var(--dim);font-family:var(--fb);font-size:14px;
  text-decoration:none;padding:5px 0;transition:all .25s;
  border-bottom:1px solid rgba(198,168,90,.07);
}
.ft-links a:hover{color:var(--gold);padding-left:8px}
.ft-contact p{font-family:var(--fb);font-size:14px;color:var(--dim);line-height:2;font-weight:300}
.ft-bottom{
  margin-top:36px;padding-top:20px;border-top:1px solid var(--bdr);
  text-align:center;font-family:var(--fh);font-size:11px;
  letter-spacing:2px;color:var(--dim);text-transform:uppercase;
}
.ft-bottom a{color:var(--dim);text-decoration:none}
.ft-bottom span{color:var(--gold)}

/* ===== ANIMATIES ===== */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .art-layout{grid-template-columns:1fr}
  .art-sidebar{display:none}/* sidebar verbergen op mobiel of als grid collaps */
}
@media(max-width:768px){
  .art-hero{height:280px}
  .art-hero-content{padding:0 22px 28px}
  .art-body{padding:28px 24px}
  .art-nav{grid-template-columns:1fr}
  .ft-grid{grid-template-columns:1fr;gap:28px}
  .nav-l a{padding:10px 13px;font-size:11px;border-right:none}
}
