/* ===== HERO (Override: Full-height, bottom-aligned) ===== */
.hero { height:100vh; min-height:700px; align-items:flex-end; justify-content:flex-start; }
.hero-bg img { object-position:center 25%; }
.hero-bg::after { background:linear-gradient(to top, rgba(10,10,8,0.55) 0%, rgba(10,10,8,0.15) 40%, rgba(10,10,8,0) 65%, rgba(10,10,8,0.08) 100%); }
.hero-content { text-align:left; padding:0 4rem 18rem; width:100%; max-width:1400px; margin:0 auto; opacity:1; animation:none; }
.hero-label { margin-bottom:0.8rem; opacity:0; animation:slideUp 0.7s ease forwards 0.6s; }
.hero h1 { font-size:clamp(2.4rem,4.5vw,3.8rem); line-height:1.08; margin-bottom:1.5rem; max-width:750px; opacity:0; animation:slideUp 0.8s ease forwards 0.8s; }
.hero h1 em { font-style:normal; color:#fff; }
.hero-sub { color:rgba(255,255,255,0.7); max-width:480px; margin:0; margin-bottom:0.75rem; opacity:0; animation:slideUp 0.8s ease forwards 1s; }
.hero-tags { display:flex; gap:0.75rem; flex-wrap:wrap; margin-bottom:2.5rem; opacity:0; animation:slideUp 0.7s ease forwards 1.2s; }
.hero-tag { font-size:0.75rem; font-weight:500; letter-spacing:0.04em; text-transform:uppercase; color:#fff; border:1px solid rgba(255,255,255,0.25); padding:0.45rem 1.1rem; }
.hero-cta-row { margin-top:1.5rem; opacity:0; animation:slideUp 0.7s ease forwards 1.4s; }

/* ===== BLOK 1: HERKEN JE DIT ===== */
.herken { background:var(--white); }
.herken-centered { max-width:680px; margin:0 auto; text-align:center; }
.herken-centered h2 { font-weight:600; font-size:clamp(2rem,3.2vw,2.6rem); line-height:1.2; margin-bottom:1.5rem; letter-spacing:-0.02em; }
.herken-centered h2 em { font-style:normal; color:var(--accent); }
.accent-line { width:40px; height:2px; background:var(--accent); margin:0 auto 2.5rem; }
.herken-prose { text-align:center; }
.herken-prose p { font-size:1.05rem; color:var(--gray-dark); line-height:1.85; margin-bottom:1.1rem; }

.herken-cta-box { text-align:center; margin-top:2.5rem; padding-top:2.5rem; border-top:1px solid var(--sand); }
.herken-cta-box p { font-size:1.05rem; color:var(--black); line-height:1.8; margin-bottom:1.5rem; }

/* ===== BLOK 2: VERWACHT ===== */
.verwacht { background:var(--sand-light); position:relative; overflow:hidden; }
.verwacht-header { margin-bottom:3.5rem; text-align:center; }
.verwacht-header h2 { font-weight:600; font-size:clamp(2rem,3.2vw,2.6rem); line-height:1.2; letter-spacing:-0.02em; margin-bottom:1.25rem; }
.verwacht-intro { font-size:1.02rem; color:var(--gray-dark); line-height:1.85; max-width:620px; margin:0 auto; }
.verwacht-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
.verwacht-card { background:var(--white); padding:2.5rem; transition:transform 0.4s,box-shadow 0.4s; }
.verwacht-card:hover { transform:translateY(-3px); box-shadow:0 16px 40px rgba(10,10,8,0.06); }
.verwacht-card-num { font-weight:700; font-size:2.2rem; color:var(--sand); line-height:1; margin-bottom:1rem; letter-spacing:-0.02em; }
.verwacht-card h3 { font-weight:600; font-size:1.1rem; margin-bottom:0.6rem; letter-spacing:-0.01em; }
.verwacht-card p { font-size:1rem; color:var(--gray-dark); line-height:1.8; }

/* ===== COACH SECTION ===== */
.coach { background:var(--white); }
.coach-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.coach-img { position:relative; }
.coach-img img { width:100%; display:block; }
.coach-text h2 { font-weight:600; font-size:clamp(1.6rem,2.5vw,2rem); line-height:1.2; margin-bottom:1.5rem; letter-spacing:-0.02em; }
.coach-text h2 em { font-style:normal; color:var(--accent); }
.coach-text p { font-size:1.02rem; color:var(--gray-dark); line-height:1.85; margin-bottom:1rem; }
.verwacht-title { font-weight:600; font-size:1.1rem; margin-top:2rem; margin-bottom:1.25rem; letter-spacing:-0.01em; }
.verwacht-lijst { list-style:none; padding:0; }
.verwacht-lijst li { margin-bottom:0.6rem; padding-left:1rem; position:relative; font-size:0.95rem; color:var(--gray-dark); line-height:1.7; }
.verwacht-lijst li::before { content:'·'; position:absolute; left:0; font-weight:700; color:var(--accent); }
.verwacht-lijst li strong { font-weight:600; color:var(--black); }

/* ===== BLOK 3: RESULTATEN ===== */
.resultaten { background:var(--moss); position:relative; overflow:hidden; }
.resultaten::after { content:''; position:absolute; bottom:-20%; left:-10%; width:40vw; height:40vw; border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,0.03) 0%,transparent 70%); pointer-events:none; }
.resultaten-header { margin-bottom:3.5rem; position:relative; z-index:1; text-align:center; }
.resultaten-header h2 { font-weight:600; font-size:clamp(2rem,3.2vw,2.6rem); line-height:1.2; color:#fff; letter-spacing:-0.02em; }
.resultaten-list { display:grid; grid-template-columns:repeat(2,1fr); gap:0; position:relative; z-index:1; }
.resultaat-item { padding:2.25rem 2.5rem; border-top:1px solid rgba(255,255,255,0.12); border-left:1px solid rgba(255,255,255,0.12); transition:background 0.4s; }
.resultaat-item:nth-child(odd) { border-left:none; }
.resultaat-item:nth-child(1),.resultaat-item:nth-child(2) { border-top:none; }
.resultaat-item:last-child { border-left:1px solid rgba(255,255,255,0.12); }
.resultaat-item:hover { background:rgba(255,255,255,0.04); }
.resultaat-title { font-weight:600; font-size:1.05rem; color:rgba(255,255,255,0.95); margin-bottom:0.4rem; }
.resultaat-text { font-size:0.98rem; color:rgba(255,255,255,0.6); line-height:1.7; max-width:420px; }

/* ===== BLOK 4: AANBOD ===== */
.aanbod { background:var(--white); }
.aanbod-header { text-align:center; margin-bottom:3.5rem; max-width:580px; margin-left:auto; margin-right:auto; }
.aanbod-header h2 { font-weight:600; font-size:clamp(2rem,3.2vw,2.6rem); line-height:1.2; margin-bottom:0.75rem; letter-spacing:-0.02em; }
.aanbod-header p { font-size:1.02rem; color:var(--gray-dark); line-height:1.8; }
.aanbod-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; align-items:stretch; }

.aanbod-card { background:var(--cream); padding:2.25rem 1.75rem 1.75rem; display:flex; flex-direction:column; position:relative; transition:transform 0.4s,box-shadow 0.4s; border:1px solid transparent; }
.aanbod-card:hover { transform:translateY(-4px); box-shadow:0 20px 50px rgba(10,10,8,0.07); }

.aanbod-card.featured { background:var(--moss); border:none; }
.aanbod-card.featured .card-name { color:#fff; }
.aanbod-card.featured .card-sub { color:rgba(255,255,255,0.6); }
.aanbod-card.featured .card-desc { color:rgba(255,255,255,0.65); }
.aanbod-card.featured .detail-label { color:rgba(255,255,255,0.45); }
.aanbod-card.featured .detail-value { color:rgba(255,255,255,0.8); }
.aanbod-card.featured .card-details { border-color:rgba(255,255,255,0.12); }
.aanbod-card.featured .card-pricing { border-color:rgba(255,255,255,0.12); }
.aanbod-card.featured .price-label { color:rgba(255,255,255,0.45); }
.aanbod-card.featured .price-amount { color:#fff; }
.aanbod-card.featured .price-secondary { color:rgba(255,255,255,0.5); }
.aanbod-card.featured .price-note { color:rgba(255,255,255,0.6); }

.card-badge { position:absolute; top:0; right:0; background:var(--accent); color:#fff; font-size:0.68rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; padding:0.4rem 0.9rem; }
.card-name { font-weight:700; font-size:1.3rem; color:var(--black); margin-bottom:0.2rem; letter-spacing:-0.02em; }
.card-sub { font-size:0.8rem; color:var(--accent); margin-bottom:1.25rem; font-weight:500; }
.card-desc { font-size:0.92rem; color:var(--gray-dark); line-height:1.7; margin-bottom:1.25rem; flex-grow:1; }
.card-details { border-top:1px solid var(--sand); padding-top:1rem; margin-bottom:1rem; }
.card-detail { display:flex; justify-content:space-between; align-items:baseline; padding:0.25rem 0; font-size:0.85rem; }
.detail-label { color:var(--gray); font-weight:400; }
.detail-value { color:var(--black); font-weight:500; text-align:right; }
.card-pricing { border-top:1px solid var(--sand); padding-top:1rem; margin-top:auto; }
.price-row { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:0.15rem; }
.price-label { font-size:0.8rem; color:var(--gray); }
.price-amount { font-weight:700; font-size:1.4rem; color:var(--black); letter-spacing:-0.02em; }
.price-secondary { font-weight:400; font-size:1rem; color:var(--gray); }
.price-note { font-size:0.78rem; color:var(--accent); font-style:italic; margin-top:0.4rem; }

/* ===== BLOK 5: VERVOLG ===== */
.vervolg { background:var(--sand-light); }
.vervolg-box { display:flex; align-items:center; justify-content:space-between; gap:3rem; padding:3rem 3.5rem; background:var(--white); flex-wrap:wrap; }
.vervolg-text h3 { font-weight:600; font-size:1.3rem; margin-bottom:0.6rem; letter-spacing:-0.01em; }
.vervolg-text p { font-size:0.98rem; color:var(--gray-dark); line-height:1.75; max-width:480px; }
.vervolg-pricing { text-align:right; }
.vervolg-pricing .price-amount { font-size:1.6rem; }
.vervolg-note { max-width:1100px; margin:1.75rem auto 0; font-size:0.82rem; color:var(--gray); line-height:1.7; text-align:center; }

/* ===== RESPONSIVE ===== */
@media (max-width:1024px) {
  .hero-content { padding:0 3rem 4rem; }
  .aanbod-grid { gap:1rem; }
}
@media (max-width:860px) {
  .hero-content { padding:0 2rem 3.5rem; }
  .verwacht-grid { grid-template-columns:1fr; }
  .coach-grid { grid-template-columns:1fr; gap:2.5rem; }
  .coach-img { order:-1; }
  .resultaten-list { grid-template-columns:1fr; }
  .resultaat-item { border-left:none !important; }
  .resultaat-item:nth-child(2) { border-top:1px solid rgba(255,255,255,0.12); }
  .resultaat-item:last-child { grid-column:auto; }
  .aanbod-grid { grid-template-columns:1fr; max-width:460px; margin-left:auto; margin-right:auto; }
  .vervolg-box { flex-direction:column; text-align:center; padding:2.5rem 2rem; }
  .vervolg-pricing { text-align:center; }
}
@media (max-width:520px) {
  .hero { align-items:flex-start; }
  .hero-content { padding:7rem 2rem 2rem; }
  .hero-bg img { object-position:65% 70%; }
  .hero-bg::after { background:linear-gradient(to bottom, rgba(10,10,8,0.7) 0%, rgba(10,10,8,0.35) 40%, rgba(10,10,8,0.1) 65%, rgba(10,10,8,0.15) 100%); }
  .hero-sub { color:rgba(255,245,235,0.8); }
  .hero h1 { font-size:2.4rem; }
}
