:root{
  --blue:#0258A6; --blue-dark:#023d73; --blue-ink:#012a52;
  --red:#E84225; --coral:#ED705A; --pink:#F9CFC8;
  --sky:#A7C5E0; --green:#8FB924; --goud:#FECA01;
  --ink:#1e2733; --muted:#5c6773; --line:#e6ecf3;
  --bg:#ffffff; --soft:#f4f8fc;
  --radius:20px; --radius-sm:14px;
  --shadow:0 18px 40px -22px rgba(2,58,115,.35);
  --shadow-sm:0 8px 22px -14px rgba(2,58,115,.4);
  --wrap:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Poppins',system-ui,sans-serif; line-height:1.15; color:var(--blue-ink); margin:0 0 .5em}
h1{font-size:clamp(2.4rem,5.5vw,4rem); font-weight:800; letter-spacing:-.02em}
h2{font-size:clamp(1.7rem,3.4vw,2.5rem); font-weight:700; letter-spacing:-.015em}
h3{font-size:1.2rem; font-weight:600}
p{margin:0 0 1rem}
a{color:var(--blue); text-decoration:none}
img{max-width:100%; display:block}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 24px}
.eyebrow{font-family:'Poppins'; font-weight:600; text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; color:var(--red)}
.section{padding:88px 0}
.section-soft{background:var(--soft)}
.btn{
  display:inline-flex; align-items:center; gap:.55em; font-family:'Poppins'; font-weight:600;
  font-size:1rem; padding:.85em 1.5em; border-radius:999px; cursor:pointer; border:2px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--red); color:#fff; box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:#d5391e}
.btn-blue{background:var(--blue); color:#fff; box-shadow:var(--shadow-sm)}
.btn-blue:hover{background:var(--blue-dark)}
.btn-ghost{background:transparent; color:var(--blue); border-color:var(--sky)}
.btn-ghost:hover{background:var(--soft)}
.btn-white{background:#fff; color:var(--blue)}

/* ---------- Header ---------- */
header{position:sticky; top:0; z-index:50; background:#fff; box-shadow:0 3px 20px -6px rgba(1,42,82,.16)}
header::after{content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:linear-gradient(90deg,var(--blue) 0%,var(--sky) 20%,var(--green) 40%,var(--goud) 60%,var(--coral) 80%,var(--red) 100%)}
.nav{position:relative; display:flex; align-items:center; justify-content:flex-end; height:76px}
.brand{position:absolute; left:0; top:8px; z-index:60; display:flex; align-items:center; line-height:0}
.brand img{height:108px; filter:drop-shadow(0 12px 16px rgba(1,42,82,.20)); transition:transform .18s ease}
.brand:hover img{transform:translateY(-2px) scale(1.02)}
.nav-links{display:flex; align-items:center; gap:4px}
.nav-links a{font-family:'Poppins'; font-weight:600; color:var(--blue-ink); padding:.55em .95em; border-radius:10px; font-size:.98rem; position:relative}
.nav-links > a:not(.btn)::after{content:""; position:absolute; left:.95em; right:.95em; bottom:.3em; height:2px; background:var(--red); border-radius:2px; transform:scaleX(0); transform-origin:left; transition:transform .18s ease}
.nav-links > a:not(.btn):hover::after{transform:scaleX(1)}
.nav-links a:hover{color:var(--blue)}
.nav-links a.active{color:var(--blue)}
.nav-links a.active::after{transform:scaleX(1)}
.nav-links .btn{margin-left:10px; padding:.62em 1.2em}
.hamburger{display:none; background:none; border:0; cursor:pointer; padding:8px}
.hamburger span{display:block; width:26px; height:3px; background:var(--blue-ink); border-radius:3px; margin:5px 0; transition:.2s}

/* ---------- Hero ---------- */
.hero{position:relative; overflow:hidden; background:
   radial-gradient(60% 90% at 88% 0%, rgba(167,197,224,.35), transparent 60%),
   radial-gradient(50% 70% at 0% 100%, rgba(249,207,200,.5), transparent 60%);}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; padding:76px 0 90px}
.hero-text .eyebrow{margin-bottom:18px; display:block}
.hero-text p.lead{font-size:1.2rem; color:var(--muted); max-width:34ch; margin:.4em 0 1.8em}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap}
.hero-visual{position:relative}
.hero-visual .frame{position:relative; border-radius:28px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/3.2}
.hero-visual .frame img{width:100%; height:100%; object-fit:cover}
.blob{position:absolute; border-radius:50%; z-index:-1}
.blob.a{width:180px; height:180px; background:var(--goud); top:-34px; right:-30px}
.blob.b{width:130px; height:130px; background:var(--green); bottom:-30px; left:-24px}
.badge{position:absolute; bottom:18px; left:18px; background:#fff; border-radius:16px; padding:12px 16px; box-shadow:var(--shadow-sm); display:flex; align-items:center; gap:10px; font-family:'Poppins'; font-weight:600; color:var(--blue-ink)}
.badge .dot{width:12px; height:12px; border-radius:50%; background:var(--green)}

/* ---------- Page hero (interior) ---------- */
.page-hero{position:relative; overflow:hidden; padding:60px 0 48px; background:
   radial-gradient(55% 130% at 92% -20%, rgba(167,197,224,.4), transparent 60%),
   radial-gradient(45% 100% at -5% 120%, rgba(249,207,200,.45), transparent 60%);}
.page-hero h1{font-size:clamp(2rem,4.6vw,3.15rem)}
.page-hero .lead{font-size:1.18rem; color:var(--muted); max-width:62ch; margin:.2em 0 0}
.breadcrumb{font-size:.85rem; color:var(--muted); margin-bottom:14px; font-family:'Poppins'; font-weight:500}
.breadcrumb a{color:var(--muted)} .breadcrumb a:hover{color:var(--blue)}

/* ---------- Prose / lead ---------- */
.prose{max-width:760px}
.prose.center{margin:0 auto}
.prose p{color:var(--ink)}
.prose p.big{font-size:1.2rem; color:var(--muted)}

/* ---------- Stats ---------- */
.stats{background:var(--blue); color:#fff}
.stats .wrap{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding:40px 24px}
.stat{text-align:center}
.stat b{font-family:'Poppins'; font-weight:800; font-size:2.4rem; display:block; line-height:1}
.stat span{opacity:.85; font-size:.98rem}

/* ---------- Cards / pijlers ---------- */
.pillars{background:var(--soft)}
.head-center{text-align:center; max-width:640px; margin:0 auto 52px}
.head-center p{color:var(--muted)}
.cards{display:grid; grid-template-columns:repeat(4,1fr); gap:22px}
.card{background:#fff; border-radius:var(--radius); padding:28px 24px; box-shadow:var(--shadow-sm); border:1px solid var(--line); position:relative; transition:transform .18s ease, box-shadow .18s ease}
.card:hover{transform:translateY(-5px); box-shadow:var(--shadow)}
.card .ico{width:52px; height:52px; border-radius:14px; display:grid; place-items:center; margin-bottom:16px}
.card .ico svg{width:26px; height:26px; stroke:#fff; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round}
.card h3{margin-bottom:.35em}
.card p{font-size:.95rem; color:var(--muted); margin:0 0 1rem}
.card a.more{font-family:'Poppins'; font-weight:600; font-size:.92rem; display:inline-flex; align-items:center; gap:.35em}
.card a.more:hover{gap:.6em}

/* ---------- Value rows (waar staan wij voor) ---------- */
.values{max-width:860px; margin:0 auto}
.value{display:grid; grid-template-columns:60px 1fr; gap:22px; align-items:start; padding:30px 0; border-top:1px solid var(--line)}
.value:first-child{border-top:0}
.value .vico{width:60px; height:60px; border-radius:16px; display:grid; place-items:center}
.value .vico svg{width:30px; height:30px; stroke:#fff; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round}
.value h3{font-size:1.35rem; margin-bottom:.3em}
.value p{color:var(--muted); margin:0}
.value p + p{margin-top:.6em}

/* ---------- Koers cards ---------- */
.koers-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:18px; margin-top:34px}
.koers{background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:24px; box-shadow:var(--shadow-sm); border-top:4px solid var(--blue)}
.koers:nth-child(5n+1){border-top-color:var(--red)}
.koers:nth-child(5n+2){border-top-color:var(--green)}
.koers:nth-child(5n+3){border-top-color:var(--blue)}
.koers:nth-child(5n+4){border-top-color:var(--goud)}
.koers:nth-child(5n+5){border-top-color:var(--coral)}
.koers h4{font-family:'Poppins'; color:var(--blue-ink); margin:0 0 .4em; font-size:1.05rem}
.koers p{color:var(--muted); font-size:.92rem; margin:0}

/* ---------- Gold band ---------- */
.gold-band{background:linear-gradient(135deg,#FFDA4E,var(--goud)); color:var(--blue-ink); text-align:center}
.gold-band .wrap{max-width:820px}
.gold-band .eyebrow{color:#8a6a00}
.gold-band h2{color:var(--blue-ink)}
.gold-band h2.flourish{font-family:'Great Vibes',cursive; font-weight:400; font-size:clamp(2.8rem,6.5vw,4.4rem); line-height:1.05; letter-spacing:0; color:var(--blue-ink)}
.gold-band p{font-size:1.25rem; color:#3a3417}

/* ---------- Missie band ---------- */
.mission{background:linear-gradient(135deg,var(--blue),var(--blue-dark)); color:#fff; text-align:center}
.mission .wrap{max-width:900px}
.mission h2{color:#fff}
.mission p{font-size:1.35rem; line-height:1.6; color:rgba(255,255,255,.94)}
.mission .quotemark{font-family:'Poppins'; font-size:4rem; line-height:.4; color:var(--goud); font-weight:800}

/* ---------- Scholen ---------- */
.schools-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:18px}
.school{background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:22px 14px 16px;
  display:flex; flex-direction:column; align-items:center; gap:14px;
  box-shadow:0 8px 20px -14px rgba(2,58,115,.55); transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
  position:relative; overflow:hidden}
.school::before{content:""; position:absolute; top:0; left:0; right:0; height:4px; background:var(--blue);
  transform:scaleX(0); transform-origin:left; transition:transform .2s ease}
.school:hover{transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--sky)}
.school:hover::before{transform:scaleX(1)}
.school:nth-child(6n+1)::before{background:var(--blue)}
.school:nth-child(6n+2)::before{background:var(--red)}
.school:nth-child(6n+3)::before{background:var(--green)}
.school:nth-child(6n+4)::before{background:var(--goud)}
.school:nth-child(6n+5)::before{background:var(--coral)}
.school:nth-child(6n+6)::before{background:var(--sky)}
.school .logo{height:60px; width:100%; display:grid; place-items:center}
.school img{max-height:60px; max-width:100%; width:auto; object-fit:contain}
.school .meta{display:flex; flex-direction:column; align-items:center; gap:2px}
.school .name{font-family:'Poppins'; font-weight:600; font-size:.82rem; line-height:1.2; color:var(--blue-ink); text-align:center}
.school .plaats{font-family:'Inter'; font-weight:500; font-size:.72rem; color:var(--muted); display:flex; align-items:center; gap:3px}
.school .plaats svg{width:11px; height:11px; stroke:var(--red); fill:none; stroke-width:2}
.schools-more{text-align:center; margin-top:44px}

/* ---------- Contact ---------- */
.contact-cards{display:grid; grid-template-columns:1.15fr .85fr; gap:26px; max-width:940px}
.contact-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:32px; box-shadow:var(--shadow-sm)}
.contact-card.tint{background:var(--soft)}
.contact-row{display:flex; gap:14px; align-items:flex-start; margin-bottom:18px}
.contact-row:last-child{margin-bottom:0}
.contact-row .ci{width:44px; height:44px; border-radius:12px; background:#eef4fb; display:grid; place-items:center; flex:none}
.contact-row .ci svg{width:20px; height:20px; stroke:var(--blue); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round}
.contact-row .cl{font-family:'Poppins'; font-weight:600; color:var(--blue-ink); font-size:.95rem}
.contact-row .cv{color:var(--muted); font-size:.95rem}

/* ---------- Scholenkaart ---------- */
.school-map{height:480px; width:100%; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); border:3px solid #efe4c8; z-index:0; background:#fbf6e9}
.school-map.compact{height:400px; margin-bottom:40px}
.leaflet-container{font-family:'Inter',system-ui,sans-serif}
.school-map.leaflet-container{background:#cfe4ef}
.map-tip{font-family:'Poppins',sans-serif; font-weight:600; font-size:.75rem; color:var(--blue-ink); background:#fff; border:1px solid #efe4c8; border-radius:8px; box-shadow:var(--shadow-sm); padding:3px 8px}
.map-tip::before{border-top-color:#efe4c8}
.leaflet-popup-content-wrapper{border-radius:12px; box-shadow:var(--shadow-sm)}
.leaflet-popup-content{margin:12px 16px}
.mappop{display:flex; flex-direction:column; gap:2px; text-align:left}
.mappop strong{font-family:'Poppins'; color:var(--blue-ink); font-size:.98rem}
.mappop span{color:var(--muted); font-size:.85rem}
.mappop a{font-family:'Poppins'; font-weight:600; font-size:.85rem; margin-top:5px; color:var(--blue)}

/* ---------- Werken bij ---------- */
.work{background:linear-gradient(135deg,#F04A2C,var(--red) 55%,#c9371c); color:#fff}
.work .wrap{display:grid; grid-template-columns:1.3fr .7fr; gap:40px; align-items:center}
.work h2{color:#fff}
.work p{color:rgba(255,255,255,.95); max-width:52ch}
.work .side{text-align:right}

/* ---------- Footer ---------- */
footer{background:var(--blue-ink); color:#cfe0f0; padding:64px 0 28px; font-size:.96rem}
.foot-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.1fr; gap:38px}
footer h4{color:#fff; font-size:1rem; margin-bottom:1em; font-family:'Poppins'}
footer a{color:#cfe0f0} footer a:hover{color:#fff}
.foot-logo{background:#fff; border-radius:14px; padding:14px 16px; display:inline-block; margin-bottom:18px}
.foot-logo img{height:40px}
.foot-links{display:flex; flex-direction:column; gap:.5em}
.foot-contact div{margin-bottom:.5em}
.foot-bottom{border-top:1px solid rgba(255,255,255,.13); margin-top:44px; padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; color:#9fb8d2; font-size:.88rem}

/* ---------- Prose page ---------- */
.page-body{padding:56px 0 20px}
.page-body .wrap{max-width:820px}
.page-body h2{margin-top:1.4em; font-size:1.5rem}
.page-body h2:first-child{margin-top:0}
.page-body p{color:var(--ink)}
.page-body ul{margin:0 0 1.2em; padding-left:1.2em}
.page-body li{margin-bottom:.5em; color:var(--ink)}
.doc-actions{display:flex; flex-wrap:wrap; gap:12px; margin:18px 0 6px}
.callout{background:var(--soft); border-left:4px solid var(--blue); border-radius:0 var(--radius-sm) var(--radius-sm) 0; padding:18px 22px; margin:20px 0}
.callout strong{color:var(--blue-ink)}

/* ---------- Link cards ---------- */
.linkcards{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px}
.linkcard{display:block; background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:26px; box-shadow:var(--shadow-sm); border-left:4px solid var(--blue); transition:transform .16s ease, box-shadow .16s ease}
.linkcard:hover{transform:translateY(-4px); box-shadow:var(--shadow)}
.linkcard h3{margin-bottom:.3em}
.linkcard p{color:var(--muted); font-size:.92rem; margin:0}
.linkcard .go{font-family:'Poppins'; font-weight:600; font-size:.9rem; color:var(--blue); display:inline-block; margin-top:.8em}
.linkcard:nth-child(4n+2){border-left-color:var(--red)}
.linkcard:nth-child(4n+3){border-left-color:var(--green)}
.linkcard:nth-child(4n+4){border-left-color:var(--goud)}

/* ---------- Jaarverslagen ---------- */
.doclist{display:flex; flex-direction:column; gap:12px; max-width:780px}
.doc{display:flex; align-items:center; justify-content:space-between; gap:16px; background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:16px 20px; box-shadow:var(--shadow-sm); flex-wrap:wrap}
.doc .dj{font-family:'Poppins'; font-weight:700; color:var(--blue-ink); font-size:1.05rem; display:flex; align-items:center; gap:14px}
.doc .yr{background:var(--soft); border-radius:10px; padding:5px 14px; color:var(--blue); font-size:1rem}
.doc .dl{display:flex; gap:10px; flex-wrap:wrap}
.pill{display:inline-flex; align-items:center; gap:7px; font-family:'Poppins'; font-weight:600; font-size:.85rem; padding:.5em 1em; border-radius:999px; border:1px solid var(--sky); color:var(--blue); background:#fff}
.pill:hover{background:var(--soft); transform:translateY(-1px)}
.pill svg{width:16px; height:16px; stroke:var(--red); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:none}

/* ---------- Info table (ANBI) ---------- */
.info-table{width:100%; border-collapse:collapse; max-width:660px; margin:6px 0 20px}
.info-table td{padding:11px 0; border-bottom:1px solid var(--line); vertical-align:top}
.info-table td:first-child{font-family:'Poppins'; font-weight:600; color:var(--blue-ink); width:42%; padding-right:16px}
.info-table td:last-child{color:var(--muted)}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .schools-grid{grid-template-columns:repeat(4,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr; gap:32px}
}
@media(max-width:760px){
  .section{padding:64px 0}
  .nav{height:70px}
  .brand{top:7px}
  .brand img{height:80px}
  .hero-grid{grid-template-columns:1fr; gap:36px; padding:48px 0 60px}
  .hero-visual{order:-1}
  .stats .wrap{grid-template-columns:1fr; gap:18px; padding:32px 24px}
  .mission p{font-size:1.15rem}
  .work .wrap,.foot-grid,.contact-cards{grid-template-columns:1fr}
  .work .side{text-align:left}
  .school-map{height:340px}
  .school-map.compact{height:320px}
  .nav-links{position:fixed; inset:70px 0 auto 0; background:#fff; flex-direction:column; align-items:stretch; gap:2px; padding:14px 20px 22px; border-bottom:1px solid var(--line); box-shadow:var(--shadow-sm); transform:translateY(-140%); transition:transform .25s ease; z-index:40}
  .nav-links.open{transform:translateY(0)}
  .nav-links a{padding:.8em .6em}
  .nav-links a:not(.btn)::after{display:none}
  .nav-links .btn{margin:6px 0 0}
  .hamburger{display:block}
}
@media(max-width:460px){ .schools-grid{grid-template-columns:repeat(2,1fr)} }
