
.kf-prog-detail{ background:#fff; padding:0; align-items:stretch; flex-direction:column; min-height:auto; }

.kf-prog-hero{
  position:relative; height:60vh; height:60dvh; min-height:400px; max-height:620px;
  display:flex; align-items:flex-end; overflow:hidden;
}
.kf-prog-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.03); }
.kf-prog-hero::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(4,28,31,.97) 0%, rgba(6,40,44,.9) 30%, rgba(6,40,44,.55) 62%, rgba(6,40,44,.15) 100%);
}
.kf-prog-hero-content{ position:relative; z-index:1; width:100%; padding:0 6% 78px; color:#fff; }
.kf-prog-hero-icon{
  width:64px; height:64px; border-radius:18px; background:rgba(255,255,255,.14); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; font-size:26px; color:var(--secondary-light);
  margin-bottom:18px; border:1px solid rgba(255,255,255,.25);
}
.kf-prog-hero-content h1{
  font-size:clamp(28px,4.4vw,46px); font-weight:900; margin:0 0 10px; color:#fff;
  text-shadow:0 2px 6px rgba(0,0,0,.55), 0 8px 24px rgba(0,0,0,.45);
}
.kf-prog-hero-content p{
  font-size:15.5px; font-weight:700; opacity:1; color:rgba(255,255,255,.95); max-width:580px; margin:0;
  text-shadow:0 2px 8px rgba(0,0,0,.5);
}

.kf-prog-body{ max-width:960px; margin:0 auto; width:100%; padding:0 6% 100px; position:relative; }

.kf-prog-stats{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:16px;
  margin:-58px 0 44px; position:relative; z-index:2;
}
.kf-prog-stat{
  background:#fff; border:1px solid rgba(11,94,101,.08); border-radius:18px; padding:24px 18px; text-align:center;
  box-shadow:0 16px 34px -12px rgba(6,40,44,.28);
}
.kf-prog-stat b{ display:block; font-size:32px; font-weight:900; color:var(--primary); font-variant-numeric:tabular-nums; }
.kf-prog-stat span{ display:block; font-size:12.5px; font-weight:700; color:var(--text-muted); margin-top:4px; }

.kf-prog-prose{ font-size:16px; line-height:2.05; color:#1e293b; font-weight:500; margin-bottom:40px; letter-spacing:.1px; }
.kf-prog-prose h2{ font-size:21px; font-weight:800; color:var(--primary); margin:0 0 16px; position:relative; padding-inline-start:16px; }
.kf-prog-prose h2::before{ content:''; position:absolute; inset-inline-start:0; top:4px; bottom:4px; width:4px; border-radius:4px; background:var(--secondary); }

.kf-prog-photo-note{
  display:flex; align-items:flex-start; gap:10px; background:#f4f8f7; border:1px dashed rgba(11,94,101,.2);
  border-radius:14px; padding:14px 16px; font-size:13px; font-weight:700; color:var(--text-dark); line-height:1.8; margin-bottom:40px;
}
.kf-prog-photo-note i{ color:var(--primary); margin-top:2px; }

.kf-extra-field{ margin-bottom:32px; }
.kf-extra-field h3{ font-size:16px; font-weight:800; color:var(--primary); margin:0 0 10px; }
.kf-extra-field p{ font-size:14.5px; line-height:1.9; color:var(--text-dark); font-weight:500; margin:0; }
.kf-extra-field ul{ margin:0; padding-inline-start:20px; }
.kf-extra-field li{ font-size:14px; line-height:1.9; color:var(--text-dark); font-weight:600; margin-bottom:6px; }

.kf-prog-actions{ display:flex; gap:14px; flex-wrap:wrap; }

.kf-prog-gallery{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; margin-bottom:40px; }
.kf-prog-gallery-item{
  border-radius:16px; overflow:hidden; border:1px solid rgba(11,94,101,.08); box-shadow:0 8px 20px rgba(11,94,101,.06);
  cursor:pointer; background:none; padding:0; text-align:right; font-family:inherit; display:block; width:100%;
  transition:transform .3s ease, box-shadow .3s ease;
}
.kf-prog-gallery-item:hover{ transform:translateY(-4px); box-shadow:0 16px 32px rgba(11,94,101,.14); }
.kf-prog-gallery-item img{ width:100%; height:220px; object-fit:cover; display:block; }
.kf-prog-gallery-caption{ display:block; padding:12px 14px; font-size:12.5px; font-weight:700; color:var(--text-muted); line-height:1.7; }

@media (max-width:700px){
  .kf-prog-hero{ height:44vh; height:44dvh; min-height:300px; }
  .kf-prog-hero-content{ padding-bottom:64px; }
  .kf-prog-stats{ margin-top:-40px; grid-template-columns:repeat(2,1fr); }
}
