/* =========================================
   GLOBALE STYLES (Gedeeld over alle pagina's)
   ========================================= */
:root {
  --forest: #1F3A2E;
  --forest-dark: #152A21;
  --amber: #E8A33D;
  --red: #D6402F;
  --paper: #F7F1DE;
  --ink: #24261F;
  --blue: #4C86A8;
  --white: #FFFDF7;
  
  /* Kleuren voor afdelingen */
  --paars: #7B4B94;
  --geel: #F2B705;
  --groen: #3A8C52;
  --donkerblauw: #1B3B6F;
  --oranje: #E8791A;
}

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

body { 
  font-family: 'Work Sans', sans-serif; 
  background: var(--paper); 
  color: var(--ink); 
  line-height: 1.6; 
}

h1, h2, h3, .display { 
  font-family: 'Bebas Neue', sans-serif; 
  letter-spacing: 0.02em; 
  line-height: 1.02; 
  text-transform: uppercase; 
}

a { 
  color: inherit; 
  text-decoration: none; 
}

img { 
  max-width: 100%; 
  display: block; 
}

.wrap { 
  max-width: 1120px; 
  margin: 0 auto; 
  padding: 0 28px; 
}

/* =========================================
   HEADER & NAVIGATIE
   ========================================= */
header { 
  position: sticky; 
  top: 0; 
  z-index: 50; 
  background: var(--paper); 
  border-bottom: 2px solid var(--ink); 
}

.navbar { 
  display: flex; 
  align-items: center; 
  justify-content: space-between; 
  padding: 16px 28px; 
  max-width: 1120px; 
  margin: 0 auto; 
}

.logo { 
  display: flex; 
  align-items: center; 
  gap: 10px; 
  font-family: 'Bebas Neue'; 
  font-size: 26px; 
  letter-spacing: 0.03em; 
}

.logo .sun { 
  width: 34px; 
  height: 34px; 
  border-radius: 50%; 
  background: var(--amber); 
  position: relative; 
  flex: none; 
}

.logo .sun::before { 
  content: ""; 
  position: absolute; 
  inset: -6px; 
  border-radius: 50%; 
  border: 2px dashed var(--red); 
  animation: spin 20s linear infinite; 
}

@keyframes spin { 
  to { transform: rotate(360deg); } 
}

nav ul { 
  list-style: none; 
  display: flex; 
  gap: 28px; 
  font-weight: 600; 
  font-size: 15px; 
}

nav a { 
  padding: 6px 2px; 
  border-bottom: 2px solid transparent; 
}

nav a.active, nav a:hover { 
  border-color: var(--red); 
}

.nav-cta { 
  background: var(--red); 
  color: var(--white); 
  padding: 9px 18px; 
  border-radius: 6px; 
  font-weight: 700; 
  font-size: 14px; 
}

.nav-cta:hover { 
  background: #b6331f; 
}

.menu-toggle { 
  display: none; 
  font-family: 'Bebas Neue'; 
  font-size: 16px; 
  background: none; 
  border: 2px solid var(--ink); 
  border-radius: 6px; 
  padding: 6px 12px; 
  cursor: pointer; 
}

/* =========================================
   GLOBALE COMPONENTEN & BUTTONS
   ========================================= */
.btn { 
  display: inline-flex; 
  align-items: center; 
  gap: 8px; 
  font-weight: 700; 
  font-size: 15px; 
  padding: 13px 26px; 
  border-radius: 6px; 
  border: 2px solid transparent; 
}

.btn-primary { background: var(--red); color: var(--white); }
.btn-primary:hover { background: #b6331f; }

.btn-outline { border-color: var(--white); color: var(--white); }
.btn-outline:hover { background: var(--white); color: var(--red); }

.btn.btn-dark { border-color: var(--ink); color: var(--ink); }
.btn.btn-dark:hover { background: var(--ink); color: var(--white); border-color: var(--ink); }

.kicker { 
  font-weight: 700; 
  font-size: 13px; 
  letter-spacing: 0.1em; 
  text-transform: uppercase; 
  color: var(--amber); 
}

.fill { 
  background: #FCEFD4; 
  color: #8a5f14; 
  padding: 1px 6px; 
  border-radius: 4px; 
  font-weight: 600; 
  font-size: 0.9em; 
}

.grid2 { 
  display: grid; 
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); 
  gap: 24px; 
}

.card { 
  background: var(--white); 
  border: 2px solid var(--ink); 
  border-radius: 14px; 
  padding: 26px 28px; 
}

.card h2 { font-size: 22px; margin-bottom: 12px; }
.card p, .card li { font-size: 15px; }
.card ul { padding-left: 20px; }
.card li { margin-bottom: 6px; }

.cta-box { 
  background: var(--red); 
  color: var(--white); 
  border-radius: 16px; 
  padding: 34px 30px; 
  text-align: center; 
  margin-top: 32px; 
}

.cta-box h2 { 
  font-size: 26px; 
  margin-bottom: 14px; 
}

/* =========================================
   PAGE HEADERS & HERO SECTIES
   ========================================= */
.hero { 
  background: var(--forest); 
  color: var(--white); 
  position: relative; 
  overflow: hidden; 
  padding: 80px 0 60px; 
}

.hero .wrap { position: relative; z-index: 2; }
.hero h1 { font-size: clamp(48px, 8vw, 92px); max-width: 820px; margin-top: 10px; }
.hero h1 span { color: var(--amber); }
.hero p { max-width: 560px; font-size: 18px; color: #DCE6DD; margin: 20px 0 34px; }

.hero-layout { 
  display: grid; 
  grid-template-columns: 1fr 1fr; 
  gap: 40px; 
  align-items: center; 
}

.hero-image img { 
  width: 100%; 
  height: auto; 
  max-height: 450px; 
  object-fit: cover; 
  border-radius: 16px; 
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); 
}

.page-head { 
  background: var(--forest); 
  color: var(--white); 
  padding: 56px 0 40px; 
}

.page-head h1 { font-size: clamp(40px, 7vw, 68px); margin-top: 10px; }
.page-head p { max-width: 560px; color: #DCE6DD; margin-top: 16px; font-size: 16px; }

/* =========================================
   HOMEPAGE SPECIFIEKE COMPONENTEN
   ========================================= */
.trail { position: absolute; inset: 0; z-index: 1; opacity: 0.5; }

.eyebrow { 
  display: inline-flex; 
  align-items: center; 
  gap: 8px; 
  background: rgba(232,163,61,0.16); 
  color: var(--amber); 
  font-weight: 700; 
  font-size: 13px; 
  letter-spacing: 0.08em; 
  text-transform: uppercase; 
  padding: 6px 14px; 
  border-radius: 100px; 
  margin-bottom: 22px; 
}

.eyebrow::before { content: "●"; font-size: 8px; }

.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }

.strip { background: var(--amber); color: var(--forest-dark); padding: 14px 0; }
.strip .wrap { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; font-weight: 600; font-size: 15px; }
.strip .tag { background: var(--forest-dark); color: var(--amber); font-family: 'Bebas Neue'; font-size: 14px; letter-spacing: 0.05em; padding: 5px 12px; border-radius: 4px; }

section { padding: 56px 0 80px; }
.section-head { max-width: 560px; margin-bottom: 48px; }
.section-head h2 { font-size: clamp(32px, 5vw, 48px); margin-top: 8px; }

.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }

.patch { 
  background: var(--white); 
  border: 2px solid var(--ink); 
  border-radius: 14px; 
  padding: 30px 26px; 
  position: relative; 
  transition: transform 0.15s ease; 
  display: flex; 
  flex-direction: column; 
  height: 100%; 
}

.patch:hover { transform: translateY(-4px); }

.patch-icon { 
  width: 52px; 
  height: 52px; 
  border-radius: 50%; 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  font-family: 'Bebas Neue'; 
  font-size: 20px; 
  color: var(--white); 
  margin-bottom: 18px; 
}

.patch-icon i { font-size: 24px; }
.patch:nth-child(1) .patch-icon { background: var(--red); }
.patch:nth-child(2) .patch-icon { background: var(--forest); }
.patch:nth-child(3) .patch-icon { background: var(--blue); }
.patch:nth-child(4) .patch-icon { background: var(--amber); color: var(--forest-dark); }

.patch h3 { font-size: 24px; margin-bottom: 10px; }
.patch p { font-size: 15px; color: #4B4B41; margin-bottom: 20px; flex-grow: 1; }
.patch a { font-weight: 700; font-size: 14px; border-bottom: 2px solid var(--ink); align-self: flex-start; }

.kamp { 
  background: var(--forest); 
  color: var(--white); 
  border-radius: 20px; 
  overflow: hidden; 
  display: grid; 
  grid-template-columns: 1.1fr 1fr; 
  align-items: center; 
}

.kamp-text { padding: 56px 48px; }
.kamp-text h2 { font-size: clamp(30px, 4vw, 44px); margin: 10px 0 16px; }
.kamp-text p { color: #DCE6DD; margin-bottom: 26px; max-width: 440px; }
.kamp-visual { background: var(--forest-dark); height: 100%; min-height: 280px; position: relative; }

.signup { 
  background: var(--red); 
  color: var(--white); 
  border-radius: 20px; 
  padding: 56px 48px; 
  display: flex; 
  align-items: center; 
  justify-content: space-between; 
  gap: 32px; 
  flex-wrap: wrap; 
}
.signup h2 { font-size: clamp(30px, 4vw, 44px); max-width: 480px; }

/* =========================================
   AGENDA PAGINA
   ========================================= */
.filters { display: flex; gap: 10px; flex-wrap: wrap; padding: 28px 0 8px; }
.filter { 
  border: 2px solid var(--ink); 
  border-radius: 100px; 
  padding: 8px 18px; 
  font-weight: 600; 
  font-size: 14px; 
  background: var(--white); 
  cursor: pointer; 
  display: inline-flex; 
  align-items: center; 
  gap: 8px; 
}
.filter .fdot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; background: var(--ink); }
.filter.active { background: var(--ink); color: var(--white); }

/* Afdelingskleuren voor filters */
.filter.f-ribbel { border-color: var(--paars); } 
.filter.f-ribbel .fdot { background: var(--paars); }
.filter.f-ribbel.active, .filter.f-ribbel:hover { background: var(--paars); color: var(--white); border-color: var(--paars); }

.filter.f-speelclub { border-color: var(--geel); } 
.filter.f-speelclub .fdot { background: var(--geel); }
.filter.f-speelclub.active, .filter.f-speelclub:hover { background: var(--geel); color: var(--ink); border-color: var(--geel); }

.filter.f-rakwi { border-color: var(--groen); } 
.filter.f-rakwi .fdot { background: var(--groen); }
.filter.f-rakwi.active, .filter.f-rakwi:hover { background: var(--groen); color: var(--white); border-color: var(--groen); }

.filter.f-tito { border-color: var(--red); } 
.filter.f-tito .fdot { background: var(--red); }
.filter.f-tito.active, .filter.f-tito:hover { background: var(--red); color: var(--white); border-color: var(--red); }

.filter.f-keti { border-color: var(--donkerblauw); } 
.filter.f-keti .fdot { background: var(--donkerblauw); }
.filter.f-keti.active, .filter.f-keti:hover { background: var(--donkerblauw); color: var(--white); border-color: var(--donkerblauw); }

.filter.f-aspi { border-color: var(--oranje); } 
.filter.f-aspi .fdot { background: var(--oranje); }
.filter.f-aspi.active, .filter.f-aspi:hover { background: var(--oranje); color: var(--white); border-color: var(--oranje); }

.agenda-list { display: flex; flex-direction: column; gap: 16px; margin-top: 24px; }
.agenda-item { 
  display: grid; 
  grid-template-columns: 100px 1fr auto; 
  gap: 20px; 
  align-items: center; 
  background: var(--white); 
  border: 2px solid var(--ink); 
  border-radius: 14px; 
  padding: 20px 24px; 
}

.date-badge { 
  background: var(--forest); 
  color: var(--white); 
  border-radius: 10px; 
  padding: 10px 0; 
  text-align: center; 
}
.date-badge .day { font-family: 'Bebas Neue'; font-size: 30px; line-height: 1; }
.date-badge .month { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--amber); margin-top: 2px; }

.agenda-info h3 { font-family: 'Work Sans'; text-transform: none; letter-spacing: 0; font-weight: 700; font-size: 17px; margin-bottom: 4px; }
.agenda-info p { font-size: 14px; color: #4B4B41; }

.badge { 
  display: inline-block; 
  font-size: 11px; 
  font-weight: 700; 
  text-transform: uppercase; 
  letter-spacing: 0.05em; 
  padding: 4px 10px; 
  border-radius: 100px; 
  margin-right: 8px; 
}

.badge-alle { background: #EDEAE0; color: var(--ink); }
.badge-ribbel { background: #EEE2F3; color: var(--paars); }
.badge-speelclub { background: #FBEEC2; color: #8a6d05; }
.badge-rakwi { background: #DFEFE4; color: var(--groen); }
.badge-tito { background: #FBE1DA; color: var(--red); }
.badge-keti { background: #DEE5F0; color: var(--donkerblauw); }
.badge-aspi { background: #FBE3D2; color: var(--oranje); }
.badge-kamp { background: var(--ink); color: var(--white); }

.agenda-time { font-weight: 700; font-size: 15px; text-align: right; white-space: nowrap; }
.agenda-time span { display: block; font-size: 12px; font-weight: 500; color: #4B4B41; }

.legend { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 36px; font-size: 13px; color: #4B4B41; }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }

.kamp-cta { 
  background: var(--red); 
  color: var(--white); 
  border-radius: 20px; 
  padding: 44px 40px; 
  margin-top: 56px; 
  display: flex; 
  align-items: center; 
  justify-content: space-between; 
  gap: 24px; 
  flex-wrap: wrap; 
}
.kamp-cta h2 { font-size: clamp(26px, 4vw, 36px); max-width: 440px; }

/* --- AGENDA: BELANGRIJKE DATA KAARTEN --- */
.agenda-filters-section { padding-top: 40px; padding-bottom: 20px; }
.belangrijke-data-section { padding-top: 20px; padding-bottom: 40px; }
.subtitle-text { margin-top: 8px; font-size: 15px; color: #4B4B41; }
.highlight-text { margin-top: 4px; font-size: 14px; font-weight: 600; color: var(--red); }
.data-title { margin-bottom: 12px; }
.data-icon { color: var(--red); margin-right: 8px; }
.data-intro { margin-bottom: 32px; max-width: 800px; }

.agenda-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.agenda-card h3 {
  margin-top: 0;
  font-size: 24px;
  margin-bottom: 8px;
}
.agenda-card-date {
  font-weight: 600;
  margin-bottom: 12px;
  font-size: 14px;
}
.agenda-card p {
  margin: 0;
  font-size: 15px;
  flex-grow: 1; 
}

/* Agenda kaart rand kleuren */
.card-oranje { border-top: 4px solid var(--oranje); }
.card-oranje .agenda-card-date { color: var(--oranje); }

.card-paars { border-top: 4px solid var(--paars); }
.card-paars .agenda-card-date { color: var(--paars); }

.card-geel { border-top: 4px solid var(--geel); }
.card-geel .agenda-card-date { color: var(--geel); }

.card-groen { border-top: 4px solid var(--groen); }
.card-groen .agenda-card-date { color: var(--groen); }

.card-ink { border-top: 4px solid var(--ink); }
.card-ink .agenda-card-date { color: var(--ink); }

.card-donkerblauw { border-top: 4px solid var(--donkerblauw); }
.card-donkerblauw .agenda-card-date { color: var(--donkerblauw); }


/* =========================================
   LEIDING PAGINA
   ========================================= */
.afdeling { margin-bottom: 48px; }
.afdeling-head { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.afdeling-dot { width: 16px; height: 16px; border-radius: 50%; flex: none; }
.afdeling-head h2 { font-size: 26px; }
.afdeling-head span { font-size: 13px; color: #4B4B41; font-weight: 600; }
.leiders { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }

.leider-card { 
  background: var(--white); 
  border: 2px solid var(--ink); 
  border-top-width: 6px; 
  border-radius: 12px; 
  padding: 18px 20px; 
}
.leider-card h3 { font-family: 'Work Sans'; text-transform: none; letter-spacing: 0; font-weight: 700; font-size: 16px; margin-bottom: 6px; }
.leider-card p { font-size: 13px; color: #4B4B41; }
.leider-card a { font-size: 13px; font-weight: 600; color: var(--red); }


/* =========================================
   PRAKTISCHE INFO PAGINA
   ========================================= */
.info-block { 
  background: var(--white); 
  border: 2px solid var(--ink); 
  border-radius: 14px; 
  padding: 26px 28px; 
  margin-bottom: 20px; 
}
.info-block h2 { font-size: 22px; margin-bottom: 10px; }
.info-block p { font-size: 15px; margin-bottom: 8px; }
.info-block ul { padding-left: 20px; font-size: 15px; }
.info-block li { margin-bottom: 4px; }


/* =========================================
   KAMP PAGINA
   ========================================= */
.hero svg { position: absolute; right: -40px; bottom: -30px; width: 260px; opacity: 0.9; }


/* =========================================
   CONTACT & FOOTER
   ========================================= */
.social-row { display: flex; gap: 12px; margin-top: 14px; }
.social-row a { 
  width: 42px; 
  height: 42px; 
  border: 2px solid var(--ink); 
  border-radius: 50%; 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  font-weight: 700; 
  font-size: 13px; 
  transition: 0.3s ease; 
}
.social-row a:hover { background: var(--red); color: var(--white); border-color: var(--red); }
.social-row a i { font-size: 20px; }

footer { background: var(--forest-dark); color: #B9C6BB; padding: 40px 0; font-size: 13px; }
footer .wrap { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; max-width: 1120px; }
.footer-top { display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; margin-bottom: 40px; width: 100%; }
.footer-brand { font-family: 'Bebas Neue'; font-size: 26px; color: var(--white); }
.footer-cols { display: flex; gap: 56px; flex-wrap: wrap; }
.footer-col h4 { font-family: 'Work Sans'; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--amber); margin-bottom: 14px; }
.footer-col ul { list-style: none; font-size: 14px; display: flex; flex-direction: column; gap: 8px; }
.footer-col a:hover { color: var(--white); }

.social { display: flex; gap: 12px; margin-top: 6px; }
.social a { 
  width: 36px; 
  height: 36px; 
  border: 1px solid #3A5548; 
  border-radius: 50%; 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  font-size: 13px; 
  font-weight: 700; 
  color: var(--white); 
  transition: 0.3s ease; 
}
.social a:hover { background: var(--amber); color: var(--forest-dark); border-color: var(--amber); }
.social a i { font-size: 16px; } 

.footer-bottom { border-top: 1px solid #2E4739; padding-top: 20px; font-size: 13px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; width: 100%; }


/* =========================================
   MEDIA QUERIES (Mobiele weergave)
   ========================================= */
@media (max-width: 760px) {
  nav ul { 
    display: none; 
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: var(--paper);
    flex-direction: column;
    padding: 20px 0;
    border-bottom: 2px solid var(--ink);
    text-align: center;
  }
  
  nav ul.active { display: flex; }

  .menu-toggle { display: inline-block; }
  .nav-cta { display: none; }
  
  .kamp { grid-template-columns: 1fr; }
  .kamp-visual { min-height: 180px; }
  
  .grid2 { grid-template-columns: 1fr; }
  .hero-layout { grid-template-columns: 1fr; gap: 32px; }
}

@media (max-width: 640px) {
  .agenda-item { grid-template-columns: 70px 1fr; row-gap: 8px; }
  .agenda-time { grid-column: 1 / -1; text-align: left; }
}