  html, body {
    height: 100%;
  } 
 body {
      font-family: 'Poppins', sans-serif;
      background-color: #f9fafb;
      display: flex;
      flex-direction: column;
    }

  main {
    flex: 1 0 auto;
  }

  footer {
    flex-shrink: 0;
  }

 :root{
      --primary: #3E8B4C;
      --secondary: #1F5D35;
      --accent: #A9D478;
    }
    .bg-primary-custom { background-color: var(--primary) !important;
        font-size: 1.125rem;
        line-height: 1.75rem;
    }
    .bg-secondary-custom { background-color: var(--secondary) !important; }
    .text-primary-custom { color: var(--primary) !important; }
    .text-secondary-custom { color: var(--secondary) !important; }
    .bg-accent { background-color: var(--accent) !important; }
    .hero-gradient {
      background: linear-gradient(135deg, var(--accent) 0%, #D1FAE5 100%);
    }
    /* Card hover */
    .benefit-card {
      transition: transform .3s ease, box-shadow .3s ease;
    }
    .benefit-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1), 0 10px 10px -5px rgba(0,0,0,0.04);
    }
    /* Floating animation */
    .floating {
      animation: floating 3s ease-in-out infinite;
    }
    @keyframes floating {
      0% { transform: translateY(0px); }
      50% { transform: translateY(-15px); }
      100% { transform: translateY(0px); }
    }
    /* Small helpers */
    .icon-circle {
      width: 48px;
      height: 48px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border-radius:50%;
    }
    /* Footer inputs */
    .newsletter-input:focus, .newsletter-btn:focus {
      box-shadow: 0 0 0 .25rem rgba(16,185,129,0.25);
      outline: none;
    }
    /* Make sure hero text scales nicely */
    @media (min-width: 992px) {
      .hero-title-lg { font-size: 3rem; }
      .hero-sub-lg { font-size: 2.25rem; }
    }
.hero-title-lg {    
    font-size: 2.25rem;
    font-weight: 800 !important;
    letter-spacing: -0.025em;
}
.hero-sub-lg { 
    font-size: 60px;
    font-Weight: 800;
    color: rgb(16, 185, 129);
    display: block;
    visibility: visible;
    opacity: 1;
    text-Align: center;
    line-Height: 60px;
     }    
.sub-muted {
    font-Size: 20px;
    font-Weight: 400;
    text-align: center;
    line-Height: 28px;
}     
@media (min-width: 768px) {
    .hero-title-lg {
        font-size: 3.75rem;
        line-height: 1;
    }
}    
h3.fw-bold {
    color:rgb(17, 24, 39);
    font-size: 2.25rem;
    line-height: 2.5rem;
}
#aanmeldtekst {
    font-size: 2.25rem;
    line-height: 2.25rem;
    color:#fff!important;
}
.vh-45 {
    height: 45vh !important;
}
.intro-hero {
   position: relative;
   overflow: hidden;
}
a {
    color: inherit;
    text-decoration: underline;    
}
a:hover {
    color: inherit;
    text-decoration: none;
}
.icon-wrapper {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}