:root{
  --blue:   #1E2D4D;
  --yellow: #E5E500;
  --gray:   #e0e2e9;
  --bg:     #f2f2f2;
}

*{ box-sizing:border-box; }

html{ font-size:16px; line-height:1.4; }
html,body{
  margin:0; padding:0;
  background:var(--bg);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
}

/* Afbeeldingen schalen altijd binnen hun container */
img{ max-width:100%; height:auto; }

/* Skip link voor toetsenbordgebruikers */
.skip{ position:absolute; left:-9999px; }
.skip:focus{ left:16px; top:12px; background:#fff; color:var(--blue); padding:8px 12px; border-radius:8px; }

/* Visueel verborgen (toch toegankelijk) */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ===== Balk met logo + menu (GRID, logo midden, menu rechts) ===== */
.bar{
  background:var(--blue);
  padding:12px 0;
  padding-top:max(12px, env(safe-area-inset-top)); /* iOS safe-area */
  position:sticky; top:0; z-index:10;
}
.bar-inner{
  display:grid;
  grid-template-columns: 44px 1fr auto; /* ghost | logo | menu */
  align-items:center;
  gap:12px;
  width:min(92vw, 720px);
  margin:0 auto;
  padding:0;
}
/* Linker “ghost”-kolom om het logo optisch te centreren t.o.v. menuknop */
.bar-inner::before{
  content:"";
  width:44px; height:44px;
}

/* Logo in de middelste kolom, perfect gecentreerd */
.logo{
  grid-column:2;           /* middenkolom */
  justify-self:center;
  width:min(92vw, 720px);
  height:auto;
  margin:0;
}

/* ===== Drie-puntjes popup-menu ===== */
.menu{
  grid-column:3;             /* rechterkolom */
  position:relative;         /* anker voor het paneel */
  justify-self:end;
}

/* verberg standaard marker van summary */
.menu summary::-webkit-details-marker { display:none; }

/* knopje met de drie puntjes */
.menu summary{
  list-style:none;
  cursor:pointer;
  display:grid; place-items:center;
  width:44px; height:44px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.7);
  background:rgba(255,255,255,.08);
  transition:background .15s ease, border-color .15s ease;
  color: black;
}
.menu summary:hover{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.9);
  color: var(--blue);
}

/* popup-paneel */
.menu-panel{
  position:absolute;
  top:100%;
  right:0;
  margin-top:8px;
  min-width:220px;
  background:#fff;
  color:#1E2D4D;
  border:1.5px solid #1E2D4D;          /* duidelijke blauwe rand */
  border-radius:12px;
  box-shadow:0 12px 30px rgba(16,33,68,.18);
  display:none;
  overflow:hidden;
  z-index:20;
}
.menu[open] .menu-panel{ display:block; }

/* menu-items met duidelijke blauwe scheidslijnen via pseudo-element */
.menu-panel > a{
  display:block;
  padding:12px 16px;
  text-decoration:none;
  color:#1E2D4D;
  font-weight:700;
  position:relative;
  background:#fff;
}
.menu-panel > a:hover{ background:#eef2f9; }
.menu-panel > a:focus-visible{ outline:3px solid #ffbf47; outline-offset:-3px; }

/* 1px blauwe lijn boven elk item behalve de eerste */
.menu-panel > a + a::before{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:1px;
  background:#1E2D4D;
  opacity:.95;
}

/* ===== Knoppenblok (homepage) ===== */
.cta{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  justify-content:center;
  margin:24px auto;
  width:min(1800px, 90vw);
  padding:0 16px;
}
.btn{
  display:inline-block;
  padding:16px 24px;
  border-radius:16px;
  font-weight:700;
  font-size:clamp(16px,2.8vw,20px);
  text-align:center;
  text-decoration:none;
  min-width:260px;
  border:2px solid transparent;
  color:var(--blue);
  transition:filter .15s ease, transform .05s ease;
}
.btn:hover{ filter:brightness(0.97); }
.btn:active{ transform:translateY(1px); }
.btn:focus-visible{ outline:3px solid #ffbf47; outline-offset:2px; }

.btn-primary{ background:var(--yellow); color:var(--blue); border-color:var(--blue); }
.btn-outline{ background:#fff; color:var(--blue); border-color:var(--blue); }
.btn-secondary{ background:var(--gray); color:var(--blue); border-color:var(--blue); }

/* ===== Hero-afbeelding / geodriehoek ===== */
.art{
  display:flex;
  justify-content:center;
  margin:16px 0 24px;
}
.art img{
  width:min(1800px, 90vw);
  height:auto;
  display:block;
}

/* ===== Container voor subpagina's (zoals Extra's) ===== */
.page{ max-width:720px; margin:32px auto; padding:0 16px; }

/* ===== Cards-grid voor snelle sectienavigatie (Extra's) ===== */
.cards{
  list-style:none; margin:16px 0 8px; padding:0;
  display:grid; gap:12px;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}
.cards a{
  display:block; padding:12px 14px; text-decoration:none;
  border:2px solid var(--blue); border-radius:12px; background:#fff;
  font-weight:600; text-align:center;
}
.cards a:hover{ filter:brightness(0.98); }
.cards a:focus-visible{ outline:3px solid #ffbf47; outline-offset:2px; }

/* ===== Inklapbare blokken (<details>) ===== */
details{
  border:1px solid #dfe3ea; border-radius:10px; background:#fff;
  padding:8px 12px; margin:10px 0;
}
details > summary{ cursor:pointer; }
details[open]{ background:#f9fafc; }

/* Accessibility/consistency tweaks */
summary::marker{ content:""; }
.menu summary{ color:#fff; }

/* Centering adjustment for subpages */
main.page {
  max-width: 60ch;
  margin-left: auto;
  margin-right: auto;
}

/* Wider layout for designated pages */
main.page.wide {
  max-width: 90ch;
}

