:root{
  --green:#2f6b3c;
  --green-dark:#244f2d;
  --green-soft:#f2f6f3; /* lichte kleur uit logo */
  --bg:#f2f6f3;
  --text:#1f2d1f;
  --card:#ffffff;
  --border:#dbe6df;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.65}
a{color:var(--green);font-weight:600;text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1100px;margin:0 auto;padding:0 20px}
header{background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;flex-wrap:wrap}
.nav img{height:48px;width:auto}
nav a{margin-left:14px}
.hero{position:relative;min-height:52vh;display:flex;align-items:flex-end}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .overlay{position:absolute;inset:0;background:rgba(0,0,0,.35)}
.hero .content{position:relative;color:#fff;padding:44px 0}
.hero h1{margin:0 0 10px;font-size:2.2rem}
.hero p{margin:0 0 18px;font-size:1.1rem;max-width:60ch}
.btns{display:flex;gap:10px;flex-wrap:wrap}
.btn{display:inline-block;background:var(--green);color:#fff;padding:10px 14px;border-radius:999px}
.btn.alt{background:#a85b2a}
.section{padding:34px 0}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:var(--card);border:1px solid var(--border);border-radius:18px;overflow:hidden}
.card img{width:100%;height:180px;object-fit:cover}
.card .pad{padding:14px}
h2{margin:0 0 12px}
footer{background:var(--green);color:#fff;margin-top:30px}
footer a{color:#fff}
.footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:22px 0}
.page-hero{border-radius:22px;overflow:hidden;border:1px solid var(--border)}
.page-hero img{width:100%;height:360px;object-fit:cover;display:block}
.smallgrid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:start}
@media (max-width:900px){
  .grid{grid-template-columns:1fr}
  .smallgrid{grid-template-columns:1fr}
  .hero{min-height:46vh}
}


/* Header branding */
header{
  background:var(--green);
  border-bottom:none;
}
.nav a{color:#ffffff}
.nav a:hover{text-decoration:underline}
.nav img{
  height:56px;
  background:#ffffff;
  padding:6px 10px;
  border-radius:12px;
}

/* Body background aligned with brand */
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.65}

/* Hero overlay tweak for contrast */
.hero .overlay{
  background:rgba(0,0,0,.45);
}


/* Large logo on homepage */
.home-hero-logo{
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:20px;
}
.home-hero-logo img{
  height:120px;
  width:auto;
  background:#ffffff;
  padding:12px 18px;
  border-radius:18px;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}
@media (max-width:700px){
  .home-hero-logo img{height:90px}
}


  body.loaded .hero .content{animation:none !important;}
}


/* Header watermark */
.hero{
  position:relative;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:url("assets/logo-samengoed-header.png") center/420px no-repeat;
  opacity:0.06;
  pointer-events:none;
}
@media (max-width:700px){
  .hero::after{
    background-size:260px;
  }
}

/* Remove header logo prominence */
.nav img{
  height:42px;
  background:transparent;
  padding:0;
  box-shadow:none;
}

/* Language flags */
.lang.flags{
  display:flex;
  gap:8px;
  align-items:center;
}
.lang.flags img{
  width:28px;
  height:auto;
  border-radius:3px;
  box-shadow:0 1px 2px rgba(0,0,0,.15);
}

/* menu hoogte blijft gelijk */
}
.nav img{
  height: 92px; /* groter logo */
  width: auto;
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-58%); /* laat logo over de header vallen */
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: drop-shadow(0 2px 10px rgba(0,0,0,.35));
  z-index: 3;
}
/* Zorg dat links niet onder het logo vallen */
.nav .links, .nav ul{
  padding-left: 170px;
}

/* === Language selector stays on the right === */
.nav{
  display: flex;
  align-items: center;
}
.nav .lang,
.nav .languages,
.nav .flags{
  margin-left: auto;
  position: relative;
  z-index: 4;
}
/* Make sure logo never wraps language flags */
/* === Logo-slider: alleen desktop + iets groter === */
@media (max-width: 900px){
  }
@media (min-width: 901px){
  /* groter op desktop */
}

@media (min-width: 901px){
  .nav img{ height: 102px; } /* headerlogo iets groter */
  .nav .links, .nav ul{ padding-left: 182px; }
}

/* === Fix: logo blijft links, talen zichtbaar & klikbaar === */
/* Alleen het header-logo (eerste link in de nav) mag geen pointer-events hebben */

/* Taalvlaggen moeten juist klikbaar blijven */
header .nav .lang a,
header .nav .lang img,
header .nav .flags a,
header .nav .flags img,
header .nav .languages a,
header .nav .languages img{
  pointer-events: auto !important;
}

/* Zorg dat de taalkeuze rechts zichtbaar blijft */
header .nav{
  display:flex;
  align-items:center;
  gap: 14px;
}
header .nav .links, header .nav ul{
  flex: 1 1 auto;
}
header .nav .lang, header .nav .flags, header .nav .languages{
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  z-index: 6;
}
/* Maak vlaggen niet onzichtbaar op donkere header */
header .nav .lang img,
header .nav .flags img,
header .nav .languages img{
  width: 28px;
  height: auto;
  filter: drop-shadow(0 1px 6px rgba(0,0,0,.35));
}

/* Logo-slider blijft links aan de pagina (alleen verticale slide) */
#logo-slider.is-visible{
  transform: translateY(var(--logo-slide, 0px)) !important;
}

/* === Desktop header layout: logo links, menu centered, language flags right === */
@media (min-width: 901px){
  header .nav{
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    column-gap: 18px;
  }
  header .nav > a:first-child{
    grid-column: 1;
    position: relative;
    z-index: 4;
  }
  header .nav > nav{
    grid-column: 2;
    justify-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    flex-wrap: nowrap;
  }
  header .nav > span.lang{
    grid-column: 3;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 8;
  }
}

/* === Language flags: always visible + clickable === */
header .nav > span.lang,
header .nav > span.lang *{
  pointer-events: auto !important;
}
header .nav > span.lang a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 34px;
  border-radius: 10px;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.22);
  backdrop-filter: blur(3px);
}
header .nav > span.lang a:hover{
  background: rgba(255,255,255,.28);
}
header .nav > span.lang img{
  width: 28px;
  height: auto;
  opacity: 1 !important;
  filter: drop-shadow(0 1px 7px rgba(0,0,0,.35));
}

/* Ensure header logo does not block anything */
header .nav > a:first-child img{
  pointer-events: none;
}

/* On smaller screens keep existing layout but keep flags tappable */
@media (max-width: 900px){
  header .nav > span.lang{
    position: relative;
    z-index: 8;
  }
  header .nav > span.lang a{
    background: rgba(255,255,255,.20);
    border: 1px solid rgba(255,255,255,.22);
  }
}

/* === Logo position & size fix (initial load) === */

/* Header logo: bigger, lower, more to the left */
@media (min-width: 901px){
  header .nav > a:first-child img{
    height: 120px;           /* bigger */
    left: 6px;               /* closer to left edge */
    top: 64%;                /* move logo down */
    transform: translateY(-50%);
  }

  /* Ensure header has enough visual space for logo overlap */
  header{
    padding-top: 18px;
  }
}

/* Logo-slider initial position (fully visible on load) */
/* Safety: prevent clipping */
header, .nav{
  overflow: visible;
}

/* === Header layout (desktop): logo links, menu gecentreerd, vlaggen rechts (zonder overlap) === */
@media (min-width: 901px){
  header .nav{
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    column-gap: 18px;
    min-height: 72px; /* menu hoogte blijft netjes */
  }

  /* Logo links */
  header .nav > a:first-child{
    grid-column: 1;
    display: inline-flex;
    align-items: center;
  }
  header .nav > a:first-child img{
    position: static !important;
    height: 88px !important; /* groter, maar geen overlap */
    width: auto !important;
    margin: 0 !important;
    transform: none !important;
    filter: drop-shadow(0 2px 10px rgba(0,0,0,.35));
  }

  /* Menu in het midden */
  header .nav > nav{
    grid-column: 2;
    justify-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
  }

  /* Vlaggen rechts */
  header .nav > span.lang,
  header .nav > .lang,
  header .nav > span.flags,
  header .nav > .flags,
  header .nav > span.languages,
  header .nav > .languages{
    grid-column: 3;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 5;
  }
}

/* === Vlaggen centreren in hun vakjes (alle schermen) === */
header .nav span.lang a,
header .nav .lang a,
header .nav .flags a,
header .nav .languages a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 34px;
  border-radius: 10px;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.22);
}

header .nav span.lang img,
header .nav .lang img,
header .nav .flags img,
header .nav .languages img{
  display: block;
  width: 28px;
  height: auto;
  margin: 0 auto;
  filter: drop-shadow(0 1px 7px rgba(0,0,0,.35));
}

/* Mobile/tablet: keep things usable */
@media (max-width: 900px){
  header .nav > a:first-child img{
    position: static !important;
    height: 76px !important;
    transform: none !important;
  }
}
