/* ===== TOKENS ===== */
:root {
  --green:       #122C21;
  --green-2:     #2F6349;
  --bone:        #F5F3EF;
  --bone-2:      #EAE7E0;
  --ink:         #141816;
  --muted:       rgba(18,44,33,.62);
  --line:        rgba(18,44,33,.14);
  --line-2:      rgba(18,44,33,.28);
  --accent:      #D6F04A;
  --accent-soft: rgba(214,240,74,.14);
  --maxw:        1120px;
  --pad:         22px;
  --r-sm:        2px;
  --r-md:        6px;
  --r-full:      999px;
  --dur-fast:    150ms;
  --dur-mid:     220ms;
  --dur-slow:    340ms;
  --ease:        cubic-bezier(.4,0,.2,1);
}

/* ===== BASE ===== */
*, *::before, *::after { box-sizing: border-box }
html { scroll-behavior: smooth }
body {
  margin: 0;
  background: var(--bone);
  color: var(--ink);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
p { margin: 0 0 1em }
img { display: block; max-width: 100% }
a:focus-visible, button:focus-visible {
  outline: 2px solid var(--green-2);
  outline-offset: 3px;
  border-radius: 2px;
}

/* ===== LAYOUT ===== */
.wrap { max-width: var(--maxw); margin: 0 auto; padding-left: var(--pad); padding-right: var(--pad) }

/* ===== TYPOGRAPHY ===== */
h1, h2, h3, h4 {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -.01em;
  margin: 0;
  color: var(--green);
}
h2 { font-size: clamp(21px,3vw,33px); margin-bottom: 14px }
.lead { font-size: 17px; color: var(--ink); max-width: 54ch }
.micro { font-size: 13.5px; color: var(--muted); margin-top: 13px; max-width: 46ch }

/* ===== IMAGES ===== */
/* Definitieve fotografie-slots. Exporteer Canva-crop op exact de slot-ratio.
   Vervang de .media-slot div door <img class="media-slot" ...> — geen extra CSS nodig. */
.media-slot { width:100%; background:var(--bone-2); border-radius:var(--r-sm) }

/* ===== SECTIONS ===== */
section { padding: 56px 0 }
@media (max-width: 640px) { section { padding: 40px 0 } }
.alt-bg { background: var(--bone-2) }

/* ===== PAGE HERO — inner pages ===== */
.page-hero { padding: 64px 0 48px; background: var(--green); color: var(--bone) }
.page-hero h1 {
  color: var(--bone);
  font-size: clamp(28px,4.5vw,44px);
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.1;
}
.page-hero .lead { color: rgba(245,243,239,.84); max-width: 56ch; margin-top: 16px }

/* ===== NAVIGATION ===== */
header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(245,243,239,.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
  transition:
    background var(--dur-slow) var(--ease),
    border-color var(--dur-slow) var(--ease);
}
header.nav-dark {
  background: rgba(12,28,20,.72);
  border-bottom-color: rgba(245,243,239,.1);
}

.bar { display: flex; align-items: center; justify-content: space-between; height: 76px; gap: 20px }
.logo { display: flex; align-items: center; text-decoration: none; flex: 0 0 auto; line-height: 0 }
.logo svg {
  height: 36px;
  width: auto;
  display: block;
  transition: filter var(--dur-slow) var(--ease);
}
@media (min-width: 900px) { .logo svg { height: 42px } }
header.nav-dark .logo svg { filter: brightness(0) invert(1) }

.nav-primary { display: flex; align-items: center; gap: 44px }

nav { display: none; gap: 26px; font-size: 14.5px }
nav a {
  text-decoration: none;
  color: var(--muted);
  position: relative;
  transition: color var(--dur-fast) var(--ease);
}
nav a::after {
  content: "";
  position: absolute;
  bottom: -3px; left: 0;
  width: 0; height: 1.5px;
  background: var(--accent);
  transition: width var(--dur-mid) var(--ease), background var(--dur-slow) var(--ease);
}
nav a:hover::after, nav a.current::after { width: 100% }
nav a:hover { color: var(--green) }
nav a.current { color: var(--green); font-weight: 600 }

header.nav-dark nav a { color: #ffffff }
header.nav-dark nav a::after { background: var(--accent) }
header.nav-dark nav a:hover,
header.nav-dark nav a.current { color: #ffffff }

.burger {
  width: 24px; height: 13px;
  position: relative;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0;
  flex-shrink: 0;
}
.burger i {
  position: absolute; left: 0; right: 0;
  height: 2px;
  background: var(--green);
  border-radius: 1px;
  transition:
    transform var(--dur-mid) var(--ease),
    opacity var(--dur-mid) var(--ease),
    background var(--dur-slow) var(--ease);
}
header.nav-dark .burger i { background: var(--bone) }
.burger i:nth-child(1) { top: 0 }
.burger i:nth-child(2) { top: 5.5px }
.burger i:nth-child(3) { top: 11px }
body.nav-open .burger i:nth-child(1) { transform: translateY(5.5px) rotate(45deg) }
body.nav-open .burger i:nth-child(2) { opacity: 0 }
body.nav-open .burger i:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg) }

.login-m {
  font-size: 14px;
  color: var(--muted);
  text-decoration: none;
  position: relative;
  transition: color var(--dur-fast) var(--ease);
}
.login-m::after {
  content: "";
  position: absolute;
  bottom: -2px; left: 0;
  width: 0; height: 1.5px;
  background: var(--accent);
  transition: width var(--dur-mid) var(--ease);
}
.login-m:hover::after { width: 100% }
.login-m:hover { color: var(--green) }
header.nav-dark .login-m { color: #ffffff }
header.nav-dark .login-m:hover { color: #ffffff }

.nav-login {
  display: none;
  font-size: 14.5px;
  text-decoration: none;
  color: var(--muted);
  position: relative;
  transition: color var(--dur-fast) var(--ease);
}
.nav-login::after {
  content: "";
  position: absolute;
  bottom: -3px; left: 0;
  width: 0; height: 1.5px;
  background: var(--accent);
  transition: width var(--dur-mid) var(--ease);
}
.nav-login:hover::after { width: 100% }
.nav-login:hover { color: var(--green) }
header.nav-dark .nav-login { color: #ffffff }
header.nav-dark .nav-login:hover { color: #ffffff }

.mob-wrap { display: flex; align-items: center; gap: 16px }
@media (min-width: 900px) { nav { display: flex } .mob-wrap { display: none } .nav-login { display: block } .bar { gap: 0 } }

.nav-mobile {
  display: none;
  position: fixed;
  inset: 0;
  top: 76px;
  background: var(--bone);
  z-index: 45;
  flex-direction: column;
  overflow-y: auto;
  border-top: 1px solid var(--line);
}
body.nav-open .nav-mobile { display: flex }
body.nav-open { overflow: hidden }
.nav-mobile a {
  text-decoration: none;
  color: var(--ink);
  font-size: 18px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
  transition: color var(--dur-fast) var(--ease);
}
.nav-mobile a:hover { color: var(--green) }
@media (min-width: 900px) { .nav-mobile { display: none !important } }

/* ===== BUTTONS ===== */
.btn {
  display: inline-block;
  text-align: center;
  text-decoration: none;
  background: var(--green);
  color: var(--bone);
  font-weight: 600;
  font-size: 15px;
  padding: 15px 28px;
  border-radius: var(--r-full);
  border: 1px solid var(--green);
  cursor: pointer;
  font-family: inherit;
  transition:
    background var(--dur-mid) var(--ease),
    color var(--dur-mid) var(--ease),
    border-color var(--dur-mid) var(--ease);
}
.btn:hover { background: var(--accent); border-color: var(--accent); color: var(--ink) }

.btn-light { background: var(--bone); color: var(--green); border-color: var(--bone) }
.btn-light:hover { background: var(--accent); border-color: var(--accent); color: var(--ink) }

.btn-ghost { background: transparent; color: var(--green); border-color: rgba(18,44,33,.22) }
.btn-ghost:hover { background: var(--accent-soft); border-color: var(--accent); color: var(--green) }

.btn-ghost-light { background: transparent; color: var(--bone); border-color: rgba(245,243,239,.45) }
.btn-ghost-light:hover { background: var(--accent); border-color: var(--accent); color: var(--ink) }

.btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px }

/* ===== SECTION COLOUR VARIANTS ===== */
.closer { background: var(--green); color: var(--bone) }
.closer h2 { color: var(--bone) }
.closer .lead { color: rgba(245,243,239,.84) }
.closer .micro { color: rgba(245,243,239,.6) }

/* ===== SHARED ABOUT GRID ===== */
.about-grid { display: grid; gap: 34px }
@media (min-width: 820px) { .about-grid { grid-template-columns: .85fr 1.15fr; align-items: start } }

/* ===== CREDENTIALS ===== */
.creds { border-top: 1px solid var(--line); margin-top: 26px; padding-top: 20px }
.creds .lbl {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  display: block;
  margin-bottom: 8px;
}
.creds p { margin: 0; font-size: 15px; color: var(--ink); line-height: 1.75 }

/* ===== SOCIAL BUTTONS ===== */
.social { display: flex; gap: 12px; margin-top: 14px }
.social a, .social span {
  width: 36px; height: 36px;
  border: 1px solid var(--line);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 11.5px;
  text-decoration: none;
  color: var(--muted);
  background: var(--bone-2);
  transition:
    border-color var(--dur-fast) var(--ease),
    color var(--dur-fast) var(--ease),
    background var(--dur-fast) var(--ease);
}
.social a:hover { border-color: var(--accent); color: var(--green); background: var(--accent-soft) }
.social span { opacity: .42; cursor: default }

/* ===== GOOGLE BADGE ===== */
.gbadge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
  border: 1px solid var(--line);
  border-radius: var(--r-full);
  padding: 10px 18px;
  font-size: 13.5px;
  text-decoration: none;
  color: var(--muted);
  background: var(--bone-2);
  transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.gbadge:hover { border-color: var(--accent); color: var(--green) }
.gbadge b { color: var(--green) }
.stars { color: var(--green-2); letter-spacing: 2px; font-size: 13px }
.alt-bg .gbadge { background: var(--bone) }

/* ===== FOOTER ===== */
footer { padding: 46px 0 58px; font-size: 15.5px; color: var(--ink); background: var(--bone) }
.foot { display: flex; flex-wrap: wrap; gap: 30px; justify-content: space-between }
footer p { color: var(--ink) }
footer b { color: var(--green); font-weight: 600 }
footer a {
  color: var(--ink);
  text-decoration: none;
  position: relative;
  transition: color var(--dur-fast) var(--ease);
}
footer a::after {
  content: "";
  position: absolute;
  bottom: -1px; left: 0;
  width: 0; height: 1px;
  background: var(--green);
  transition: width var(--dur-mid) var(--ease);
}
footer a:hover::after { width: 100% }
footer a:hover { color: var(--green) }

/* ===== ACCESSIBILITY ===== */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 6px;
  background: var(--green);
  color: var(--bone);
  padding: 8px 14px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  z-index: 100;
}
.skip-link:focus { left: 6px }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important }
  html { scroll-behavior: auto }
}
