*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
/* Kleuren uit de huisstijl (hoofdkleur #3787f5, graadkleuren als accent); lettertype Plus Jakarta Sans */
:root{
  --hh:#3787f5;        /* hoofdkleur school */
  --hh-deep:#1d63d6;   /* iets donkerder: leesbare tekst en vlakken */
  --hh-night:#164ea8;
  --g1:#0fe8be; --g2:#fadc32; --g3:#a05aff; --kl:#ff4b5a;  /* graadkleuren */
  --ink:#1b2333;
  --muted:#5b6475;
  --line:#e3e7ee;
  --paper:#f5f7fb;
  --r1:#c8dff0; --r2:#5b9bd5; --r3:#2c4a8f;  /* legende van het wiel */
  --font:'Plus Jakarta Sans',system-ui,'Segoe UI',Arial,sans-serif;
  --font-bold:var(--font);
}
body{font-family:var(--font);color:var(--ink);background:var(--paper);line-height:1.6;font-size:1.0625rem;-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:2px solid var(--g2);outline-offset:3px}
h1,h2,b,.btn,.more,.menu a{font-family:var(--font-bold);font-weight:700}
h1,h2{line-height:1.12;color:var(--ink);letter-spacing:-0.015em;word-spacing:0.06em}
h2{font-size:1.55rem;margin-bottom:10px}
.wrap{max-width:70rem;margin:0 auto;padding:0 clamp(16px,4vw,32px)}

/* Kop: wit met logo; bovenaan een dun lijntje in de graadkleuren */
body::before{content:'';display:block;height:4px;background:linear-gradient(90deg,var(--hh) 0 52%,var(--g1) 52% 64%,var(--g2) 64% 76%,var(--g3) 76% 88%,var(--kl) 88%)}
.top{background:#fff;border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand img{height:46px;width:auto;display:block}
.tag{font-family:var(--font-bold);font-weight:700;font-size:0.95rem;color:var(--hh-deep);border-left:1px solid var(--line);padding-left:14px}
.menu{display:flex;gap:28px;flex-wrap:wrap}
.menu a{text-decoration:none;font-size:0.98rem;color:var(--muted);display:inline-flex;align-items:center;gap:5px;padding:26px 0 24px;border-bottom:2px solid transparent}
.menu a:hover{color:var(--ink)}
.menu a[aria-current]{color:var(--ink);border-bottom-color:var(--hh)}
.ext{width:12px;height:12px}

/* Opening: schoolblauw, het icoon groot en licht op de achtergrond */
.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--hh-night) 0%,var(--hh-deep) 55%,#2a74e6 100%);color:#fff}
.hero::before{content:'';position:absolute;left:max(-120px,calc((100vw - 70rem) / 2 - 220px));bottom:-170px;width:620px;height:620px;background:url(/brand/icoon-512.png) center/contain no-repeat;filter:brightness(0) invert(1);opacity:0.06;pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr);gap:clamp(32px,6vw,80px);align-items:center;padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(120px,12vw,150px)}
.hero h1{font-size:clamp(2.4rem,4.8vw,3.7rem);margin-bottom:18px;color:#fff}
.lead{font-size:1.2rem;color:rgba(255,255,255,0.92);max-width:34rem}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.btn{display:inline-flex;align-items:center;text-decoration:none;font-size:0.98rem;padding:13px 22px;border-radius:8px;transition:background .15s,border-color .15s}
.hero .btn-main{background:var(--g2);color:var(--ink)}
.hero .btn-main:hover{background:#ffe566}
.btn-alt{color:#fff;border:1px solid rgba(255,255,255,0.6)}
.btn-alt:hover{background:rgba(255,255,255,0.1);border-color:#fff}
.btn-main{background:var(--hh-deep);color:#fff}
.btn-main:hover{background:var(--hh-night)}
.hero-wheel{display:block;justify-self:end;width:min(100%,410px);border-radius:10px;box-shadow:0 24px 50px rgba(6,26,70,0.35);transition:transform .3s ease}
.hero-wheel:hover{transform:translateY(-3px)}
.hero-wheel img{display:block;width:100%;height:auto;border-radius:10px;border:5px solid #fff}

/* Kaarten: vallen een stukje over het blauw */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:-72px;position:relative}
.card{background:#fff;border-radius:10px;padding:clamp(22px,3vw,32px);box-shadow:0 10px 30px rgba(20,50,110,0.10);border-top:4px solid var(--hh)}
.c-pas{border-top-color:var(--g2);display:flex;flex-direction:column;align-items:flex-start}
.pas-btn{margin-top:auto}
.c-pas p{margin-bottom:24px}
.card p{color:var(--muted);max-width:34rem}
.icons{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 4px}
.icons img{width:32px;height:32px;object-fit:contain;background:var(--paper);border-radius:6px;padding:3px}
.more{display:inline-block;margin-top:16px;color:var(--hh-deep);text-decoration:none;border-bottom:2px solid rgba(29,99,214,0.3);padding-bottom:1px}
.more:hover{border-bottom-color:var(--hh-deep)}

/* Zo lees je het wiel */
.row{padding:clamp(48px,7vw,80px) 0 clamp(32px,4vw,48px)}
.row p,.sub{color:var(--muted);max-width:36rem}
.rings{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px)}
.rings h2{color:var(--hh-deep)}
.ring-list{list-style:none;display:flex;flex-direction:column;gap:20px}
.ring-list li{display:flex;gap:14px;align-items:flex-start}
.ring-list p{margin-top:2px}
.dot{flex-shrink:0;width:20px;height:20px;border-radius:50%;margin-top:3px}
.d1{background:var(--r1);box-shadow:inset 0 0 0 2px #7bafd4}
.d2{background:var(--r2);box-shadow:inset 0 0 0 2px #2c7ab5}
.d3{background:var(--r3);box-shadow:inset 0 0 0 2px #1a2e60}

.note{padding:20px 24px;background:#fff;border-left:4px solid var(--g3);border-radius:0 10px 10px 0}
.note p{color:var(--ink)}

/* Mis je een app: blauwe band onderaan */
.missing{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin:clamp(40px,6vw,64px) 0;padding:clamp(24px,4vw,36px);border-radius:10px;background:var(--hh-deep);color:#fff}
.missing h2{color:#fff}
.missing p{color:rgba(255,255,255,0.88);max-width:34rem}
.missing .btn-main{background:#fff;color:var(--hh-deep)}
.missing .btn-main:hover{background:#eaf1fe}

.foot{background:#fff;border-top:1px solid var(--line);color:var(--muted);font-size:0.92rem}
.foot-in{display:flex;justify-content:space-between;gap:16px;padding-top:22px;padding-bottom:22px}
.foot a{color:var(--muted)}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Tablet en gsm */
@media (max-width:860px){
  .hero-grid,.cards,.rings{grid-template-columns:1fr}
  .hero-wheel{justify-self:start;width:min(100%,340px)}
  .cards{margin-top:-56px}
}
@media (max-width:560px){
  .top-in{flex-direction:column;align-items:flex-start;gap:4px;padding-top:14px}
  .menu{gap:20px}
  .menu a{padding:10px 0 12px}
  .brand img{height:40px}
  .btn{width:100%;justify-content:center}
}
