/*
 * KB Café — Over ons pagina
 * Donkere hero, crème/witte secties, donkere CTA
 */

/* ─── HERO ───────────────────────────────────────────────── */
body.kbc-over-page .kbc-ov-hero {
  background: var(--ink2);
  background-size: cover; background-position: center;
  position: relative; overflow: hidden;
}
body.kbc-over-page .kbc-ov-hero::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg,
    rgba(14,11,20,0.92) 0%,
    rgba(26,20,40,0.80) 50%,
    rgba(14,11,20,0.65) 100%
  );
}
body.kbc-over-page .kbc-ov-hero::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; z-index: 3;
  background: linear-gradient(90deg, transparent, var(--purple), var(--teal), transparent);
}
body.kbc-over-page .kbc-ov-hero .kbc-container {
  position: relative; z-index: 2;
  padding-top: clamp(80px, 10vw, 130px);
  padding-bottom: clamp(56px, 7vw, 96px);
}
body.kbc-over-page .kbc-ov-hero-content { max-width: 620px; }

body.kbc-over-page .kbc-ov-eyebrow {
  font-size: 11px; font-weight: 600; letter-spacing: 3px;
  text-transform: uppercase; color: var(--teal);
  margin-bottom: 16px; display: block;
}
body.kbc-over-page .kbc-ov-title {
  font-family: var(--font-display);
  font-size: clamp(40px, 5.5vw, 76px);
  font-weight: 700; line-height: 1.0; color: #fff; margin-bottom: 20px;
}
body.kbc-over-page .kbc-ov-title em { font-style: italic; color: var(--teal); display: block; }
body.kbc-over-page .kbc-ov-sub {
  font-size: 16px; line-height: 1.8;
  color: rgba(255,255,255,0.55); font-weight: 300; max-width: 480px;
}

/* ─── GEDEELDE LABELS & TITELS ───────────────────────────── */
body.kbc-over-page .kbc-ov-section-label {
  font-size: 11px; font-weight: 600; letter-spacing: 3px;
  text-transform: uppercase; color: var(--teal);
  margin-bottom: 14px; display: block;
}
body.kbc-over-page .kbc-ov-section-title {
  font-family: var(--font-display);
  font-size: clamp(30px, 4vw, 52px);
  font-weight: 700; line-height: 1.05; color: var(--ink); margin-bottom: 20px;
}
body.kbc-over-page .kbc-ov-section-title em { font-style: italic; color: var(--purple); }
body.kbc-over-page .kbc-ov-body-text {
  font-size: 16px; line-height: 1.85; color: #555; font-weight: 300; margin-bottom: 32px;
}

/* ─── MISSIE ─────────────────────────────────────────────── */
body.kbc-over-page .kbc-ov-missie {
  background: var(--cream); padding: clamp(64px, 8vw, 112px) 0;
}
body.kbc-over-page .kbc-ov-missie-inner {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(48px, 7vw, 96px); align-items: center;
}
@media (max-width: 860px) {
  body.kbc-over-page .kbc-ov-missie-inner { grid-template-columns: 1fr; }
}

/* Foto */
body.kbc-over-page .kbc-ov-missie-img {
  border-radius: 6px; overflow: hidden;
  aspect-ratio: 3/4; position: relative;
}
body.kbc-over-page .kbc-ov-missie-img img {
  width: 100%; height: 100%; object-fit: cover;
}
body.kbc-over-page .kbc-ov-img-placeholder {
  width: 100%; height: 100%; background: var(--cream2); min-height: 400px;
}

/* Waarden */
body.kbc-over-page .kbc-ov-waarden {
  display: flex; flex-direction: column; gap: 20px;
}
body.kbc-over-page .kbc-ov-waarde {
  display: flex; align-items: flex-start; gap: 14px;
}
body.kbc-over-page .kbc-ov-waarde-icon {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--cream2); display: flex; align-items: center;
  justify-content: center; font-size: 20px; flex-shrink: 0;
}
body.kbc-over-page .kbc-ov-waarde strong {
  display: block; font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 3px;
}
body.kbc-over-page .kbc-ov-waarde p {
  font-size: 13px; color: #888; line-height: 1.6; font-weight: 300;
}

/* ─── TIJDLIJN ───────────────────────────────────────────── */
body.kbc-over-page .kbc-ov-tijdlijn {
  background: white; padding: clamp(64px, 8vw, 112px) 0;
  border-top: 1px solid var(--cream2);
}
body.kbc-over-page .kbc-ov-tijdlijn-header { margin-bottom: 56px; }

body.kbc-over-page .kbc-ov-tijdlijn-items {
  position: relative; max-width: 800px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 0;
}

/* Verticale lijn */
body.kbc-over-page .kbc-ov-tl-lijn {
  position: absolute; top: 0; bottom: 0; left: 50%;
  width: 1px; background: var(--cream2); transform: translateX(-50%);
  z-index: 0;
}

body.kbc-over-page .kbc-ov-tl-item {
  display: grid; grid-template-columns: 1fr 40px 1fr;
  align-items: center; gap: 0; padding: 24px 0;
  position: relative; z-index: 1;
}

/* Jaar */
body.kbc-over-page .kbc-ov-tl-jaar {
  font-family: var(--font-display); font-size: 22px; font-weight: 700;
  color: var(--purple); line-height: 1;
}
body.kbc-over-page .kbc-ov-tl-item.rechts .kbc-ov-tl-jaar {
  grid-column: 3; grid-row: 1; text-align: left;
}
body.kbc-over-page .kbc-ov-tl-item.links .kbc-ov-tl-jaar { text-align: right; }

/* Dot */
body.kbc-over-page .kbc-ov-tl-dot {
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--purple); border: 3px solid white;
  box-shadow: 0 0 0 2px var(--purple);
  margin: 0 auto; grid-column: 2; grid-row: 1;
  align-self: center; justify-self: center;
}

/* Content */
body.kbc-over-page .kbc-ov-tl-content { padding: 0 24px; }
body.kbc-over-page .kbc-ov-tl-item.links .kbc-ov-tl-content {
  grid-column: 3; grid-row: 1; text-align: left;
}
body.kbc-over-page .kbc-ov-tl-item.rechts .kbc-ov-tl-content {
  grid-column: 1; grid-row: 1; text-align: right;
}
body.kbc-over-page .kbc-ov-tl-content h3 {
  font-family: var(--font-display); font-size: 18px; font-weight: 700;
  color: var(--ink); margin-bottom: 6px;
}
body.kbc-over-page .kbc-ov-tl-content p {
  font-size: 13px; color: #888; line-height: 1.7; font-weight: 300;
}

/* Mobiel: alles links */
@media (max-width: 640px) {
  body.kbc-over-page .kbc-ov-tl-lijn { left: 20px; }
  body.kbc-over-page .kbc-ov-tl-item {
    grid-template-columns: 40px 1fr; padding-left: 0;
  }
  body.kbc-over-page .kbc-ov-tl-item.links .kbc-ov-tl-jaar,
  body.kbc-over-page .kbc-ov-tl-item.rechts .kbc-ov-tl-jaar {
    grid-column: 2; grid-row: 1; text-align: left; font-size: 18px;
  }
  body.kbc-over-page .kbc-ov-tl-dot { grid-column: 1; }
  body.kbc-over-page .kbc-ov-tl-item.links .kbc-ov-tl-content,
  body.kbc-over-page .kbc-ov-tl-item.rechts .kbc-ov-tl-content {
    grid-column: 2; grid-row: 2; text-align: left; padding-left: 0;
  }
}

/* ─── TEAM ───────────────────────────────────────────────── */
body.kbc-over-page .kbc-ov-team {
  background: var(--cream); padding: clamp(64px, 8vw, 112px) 0;
}
body.kbc-over-page .kbc-ov-team-header {
  max-width: 560px; margin-bottom: 52px;
}
body.kbc-over-page .kbc-ov-team-sub {
  font-size: 15px; color: #888; font-weight: 300; line-height: 1.7; margin-top: -8px;
}
body.kbc-over-page .kbc-ov-team-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
@media (max-width: 1000px) {
  body.kbc-over-page .kbc-ov-team-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  body.kbc-over-page .kbc-ov-team-grid { grid-template-columns: 1fr; }
}

body.kbc-over-page .kbc-ov-team-card {
  background: white; border-radius: 6px; overflow: hidden;
  border: 1px solid #e8e2d8;
  transition: transform 0.25s, box-shadow 0.25s;
}
body.kbc-over-page .kbc-ov-team-card:hover {
  transform: translateY(-6px); box-shadow: 0 20px 40px rgba(92,52,128,0.10);
}

body.kbc-over-page .kbc-ov-team-foto {
  aspect-ratio: 3/4; overflow: hidden; background: var(--cream2);
}
body.kbc-over-page .kbc-ov-team-foto img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.4s ease;
}
body.kbc-over-page .kbc-ov-team-card:hover .kbc-ov-team-foto img {
  transform: scale(1.05);
}
body.kbc-over-page .kbc-ov-team-foto-placeholder {
  width: 100%; height: 100%; min-height: 280px;
  background: linear-gradient(135deg, var(--purple) 0%, var(--ink2) 100%);
  display: flex; align-items: center; justify-content: center;
}
body.kbc-over-page .kbc-ov-team-foto-placeholder span {
  font-family: var(--font-display); font-size: 64px; font-weight: 700;
  color: rgba(255,255,255,0.3);
}

body.kbc-over-page .kbc-ov-team-info {
  padding: 20px 22px 24px;
  border-top: 1px solid var(--cream2);
}
body.kbc-over-page .kbc-ov-team-info h3 {
  font-family: var(--font-display); font-size: 20px; font-weight: 700;
  color: var(--ink); margin-bottom: 4px;
}
body.kbc-over-page .kbc-ov-team-functie {
  font-size: 11px; font-weight: 600; letter-spacing: 1.5px;
  text-transform: uppercase; color: var(--teal); display: block; margin-bottom: 10px;
}
body.kbc-over-page .kbc-ov-team-info p {
  font-size: 13px; color: #888; line-height: 1.7; font-weight: 300;
}
body.kbc-over-page .kbc-ov-team-placeholder {
  color: #aaa; font-size: 14px; grid-column: 1/-1;
}

/* ─── CTA ────────────────────────────────────────────────── */
body.kbc-over-page .kbc-ov-cta {
  background: var(--ink2); background-size: cover; background-position: center;
  position: relative; overflow: hidden; min-height: 300px;
}
body.kbc-over-page .kbc-ov-cta::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg,
    rgba(14,11,20,0.92) 0%,
    rgba(26,20,40,0.80) 50%,
    rgba(14,11,20,0.65) 100%
  );
}
body.kbc-over-page .kbc-ov-cta .kbc-container {
  position: relative; z-index: 2;
  padding-top: clamp(56px, 7vw, 88px);
  padding-bottom: clamp(56px, 7vw, 88px);
}
body.kbc-over-page .kbc-ov-cta-inner { max-width: 560px; }
body.kbc-over-page .kbc-ov-cta-title {
  font-family: var(--font-display);
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 700; line-height: 1.05; color: white; margin: 14px 0 12px;
}
body.kbc-over-page .kbc-ov-cta-title em { font-style: italic; color: var(--teal); }
body.kbc-over-page .kbc-ov-cta-sub {
  font-size: 15px; color: rgba(255,255,255,0.5);
  font-weight: 300; line-height: 1.7; margin-bottom: 32px;
}
body.kbc-over-page .kbc-ov-cta-btn {
  font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
  color: var(--ink); background: var(--teal); padding: 16px 36px; border-radius: 2px;
  text-decoration: none; display: inline-block;
  transition: background 0.2s, transform 0.15s;
}
body.kbc-over-page .kbc-ov-cta-btn:hover {
  background: var(--teal-d); color: white; transform: translateY(-2px);
}

/* ─── DUURZAAMHEID ───────────────────────────────────────── */
body.kbc-over-page .kbc-ov-duurzaam {
  background: var(--ink); padding: 96px 0;
  border-top: 1px solid rgba(255,255,255,.06);
}
body.kbc-over-page .kbc-ov-duurzaam-header {
  text-align: center; max-width: 640px; margin: 0 auto 56px;
}
body.kbc-over-page .kbc-ov-duurzaam-intro {
  font-size: 16px; color: rgba(255,255,255,.55); line-height: 1.7; margin-top: 16px;
}
body.kbc-over-page .kbc-ov-duurzaam-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
}
@media (max-width: 768px) {
  body.kbc-over-page .kbc-ov-duurzaam-grid { grid-template-columns: 1fr; }
}
body.kbc-over-page .kbc-ov-duurzaam-card {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px; padding: 36px 28px; text-align: center;
  transition: border-color .25s, transform .25s;
}
body.kbc-over-page .kbc-ov-duurzaam-card:hover {
  border-color: rgba(59,191,191,.3); transform: translateY(-4px);
}
body.kbc-over-page .kbc-ov-duurzaam-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: rgba(59,191,191,.1); border: 1px solid rgba(59,191,191,.25);
  display: flex; align-items: center; justify-content: center;
  color: var(--teal); margin: 0 auto 20px;
}
body.kbc-over-page .kbc-ov-duurzaam-stat {
  font-family: var(--font-display); font-size: 48px; font-weight: 700;
  color: var(--teal); line-height: 1; margin-bottom: 12px;
}
body.kbc-over-page .kbc-ov-duurzaam-card h3 {
  font-size: 17px; font-weight: 600; color: var(--cream); margin-bottom: 12px;
}
body.kbc-over-page .kbc-ov-duurzaam-card p {
  font-size: 14px; color: rgba(255,255,255,.5); line-height: 1.7; margin: 0;
}
