.program-intro { background: var(--cream); }
.program-intro-inner { max-width: 900px; margin: 0 auto; }
.program-intro-inner > p {
  font-size: 1.1rem; font-weight: 300; color: var(--charcoal-light); line-height: 1.9; margin-bottom: 1.2rem;
}
.distinction-box {
  background: var(--white); border-left: 4px solid var(--crimson);
  padding: 2rem 2.5rem; margin: 2.5rem 0;
}
.distinction-box p {
  font-family: var(--font-display); font-size: 1.25rem; font-weight: 400;
  font-style: italic; color: var(--charcoal); line-height: 1.6;
}

.why-section { background: var(--warm-white); }
.why-inner { max-width: 900px; margin: 0 auto; }
.why-inner > p {
  font-size: 1.1rem; font-weight: 300; color: var(--charcoal-light); line-height: 1.9; margin-bottom: 1.2rem;
}

.photo-banner { padding: 0; background: var(--charcoal); }
.photo-banner img {
  display: block; width: 100%; max-height: 520px; object-fit: cover; object-position: center;
}

.signs-section { background: var(--charcoal); color: var(--white); position: relative; }
.signs-section::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(90,107,47,0.06) 0%, transparent 40%);
}
.signs-inner { max-width: 1000px; margin: 0 auto; position: relative; z-index: 1; }
.signs-inner .section-title { color: var(--white); }
.signs-label { color: var(--gold-light); }
.signs-inner > p {
  font-weight: 300; font-size: 1.05rem; color: rgba(255,255,255,0.7); line-height: 1.8; margin-bottom: 1rem;
}
.signs-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 2.5rem; }
.sign-item {
  padding: 1.5rem 1.8rem; border: 1px solid rgba(255,255,255,0.06);
  background: rgba(255,255,255,0.02); transition: background 0.3s;
}
.sign-item:hover { background: rgba(255,255,255,0.05); }
.sign-item p {
  font-family: var(--font-display); font-weight: 500; font-size: 1.1rem; color: var(--gold-light); margin: 0;
}
.signs-note {
  margin-top: 2.5rem; font-family: var(--font-display); font-style: italic;
  font-size: 1.2rem; color: rgba(255,255,255,0.85);
}

.how-section { background: var(--cream); }
.how-inner { max-width: 900px; margin: 0 auto; }
.how-inner > p {
  font-size: 1.05rem; font-weight: 300; color: var(--charcoal-light); line-height: 1.8; margin-bottom: 1rem;
}
.how-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 2rem; }
.how-card {
  padding: 1.5rem 2rem; background: var(--white); border: 1px solid var(--cream-dark); transition: all 0.3s;
}
.how-card:hover { box-shadow: 0 8px 30px rgba(0,0,0,0.06); transform: translateY(-2px); }
.how-card p {
  font-family: var(--font-display); font-weight: 500; font-size: 1.15rem; color: var(--charcoal); margin: 0;
}
.how-note { margin-top: 2rem; }

.modules-section { background: var(--warm-white); }
.modules-inner { max-width: 850px; margin: 0 auto; }
.timeline { position: relative; padding-left: 3rem; margin-top: 2.5rem; }
.timeline::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
  background: linear-gradient(180deg, var(--crimson), var(--olive-light), var(--gold));
}
.timeline-item { position: relative; padding-bottom: 2.2rem; }
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item::before {
  content: ''; position: absolute; left: -3rem; top: 0.35rem;
  width: 10px; height: 10px; border-radius: 50%; background: var(--crimson);
  transform: translateX(-4px); box-shadow: 0 0 0 4px rgba(196,30,92,0.12);
}
.timeline-item .date {
  display: block; font-weight: 500; font-size: 0.72rem; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--olive); margin-bottom: 0.2rem;
}
.timeline-item h3 { font-family: var(--font-display); font-weight: 500; font-size: 1.3rem; color: var(--charcoal); margin-bottom: 0.4rem; }
.timeline-item p { font-weight: 300; font-size: 0.95rem; color: var(--charcoal-light); line-height: 1.7; margin-bottom: 0.4rem; }
.timeline-item .concepts { font-size: 0.85rem; color: var(--olive-dark); }
.timeline-item .concepts strong { font-weight: 500; }

.follow-section { background: var(--cream); }
.follow-inner { max-width: 900px; margin: 0 auto; }
.follow-block { margin-bottom: 3rem; }
.follow-block:last-child { margin-bottom: 0; }
.follow-block h3 {
  font-family: var(--font-display); font-weight: 500; font-size: 1.6rem; color: var(--charcoal); margin-bottom: 1rem;
}
.follow-block p {
  font-size: 1.05rem; font-weight: 300; color: var(--charcoal-light); line-height: 1.9; margin-bottom: 1rem;
}

.service-cta { background: var(--olive-dark); text-align: center; padding: 5rem 2rem; }
.service-cta h2 { font-family: var(--font-display); font-weight: 300; font-size: clamp(1.8rem, 3vw, 2.5rem); color: var(--white); margin-bottom: 1.5rem; }
.service-cta p { font-weight: 300; color: rgba(255,255,255,0.65); margin-bottom: 2rem; max-width: 550px; margin-left: auto; margin-right: auto; }

@media (max-width: 768px) {
  .signs-grid { grid-template-columns: 1fr; }
  .how-grid { grid-template-columns: 1fr; }
  .photo-banner img { max-height: 320px; }
}
