/* ============================================
   NYDK Program Sayfaları - Modern Education SaaS
   ============================================ */

.program-page {
  --program-h1: 48px;
  --program-h2: 36px;
  --program-h3: 22px;
  --program-body: 17px;
  --program-radius: 20px;
  --program-radius-btn: 14px;
  --program-section-padding: 100px;
  --program-bg-alt: #f8fafc;
  --program-bg-gradient: linear-gradient(180deg, #ffffff 0%, #f0f7ff 100%);
  font-size: var(--program-body);
  line-height: 1.65;
}

/* Typography */
.program-page .program-h1 { font-size: clamp(2rem, 5vw, var(--program-h1)); font-weight: 700; margin: 0; line-height: 1.2; color: var(--secondary); }
.program-page .program-h2 { font-size: clamp(1.75rem, 3.5vw, var(--program-h2)); font-weight: 600; margin: 0 0 1rem; color: var(--secondary); }
.program-page .program-h3 { font-size: var(--program-h3); font-weight: 600; margin: 0 0 0.5rem; color: var(--secondary); }
.program-page .program-lead { font-size: 1.125rem; color: #555; max-width: 42rem; margin: 0 auto; line-height: 1.6; }

/* Section spacing & background alternation */
.program-page .program-section {
  padding-top: var(--program-section-padding);
  padding-bottom: var(--program-section-padding);
}
.program-page .program-section:nth-of-type(odd) { background: #fff; }
.program-page .program-section:nth-of-type(even) { background: var(--program-bg-alt); }
.program-page .program-section.program-section-gradient { background: var(--program-bg-gradient); }
.program-page .program-section.program-section-navy {
  background: linear-gradient(135deg, #0f2847 0%, #152a47 50%, #1a3255 100%);
  color: #fff;
}
.program-page .program-section.program-section-navy .program-h2,
.program-page .program-section.program-section-navy .program-h3,
.program-page .program-section.program-section-navy .program-lead { color: #fff; }
.program-page .program-section.program-section-navy .program-lead { color: rgba(255,255,255,.88); }

.program-page .program-container { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; }

/* Primary button override for program pages */
.program-page .btn-program-primary {
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: var(--program-radius-btn);
  padding: 0.85rem 1.75rem;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(139, 30, 45, 0.35);
}
.program-page .btn-program-primary:hover {
  background: var(--accent-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(139, 30, 45, 0.4);
}
.program-page .btn-program-outline {
  background: transparent;
  color: var(--secondary);
  border: 2px solid var(--secondary);
  border-radius: var(--program-radius-btn);
  padding: 0.8rem 1.6rem;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
  cursor: pointer;
}
.program-page .btn-program-outline:hover {
  background: var(--secondary);
  color: #fff;
  transform: translateY(-2px);
}

/* ----- HERO ----- */
.program-hero {
  padding-top: calc(var(--program-section-padding) + 1rem);
  padding-bottom: var(--program-section-padding);
  background: var(--program-bg-gradient);
  position: relative;
  overflow: hidden;
}
.program-hero::before {
  content: '';
  position: absolute;
  top: -30%;
  right: -15%;
  width: 55%;
  max-width: 520px;
  height: 140%;
  background: radial-gradient(ellipse at center, rgba(15, 46, 71, 0.08) 0%, transparent 70%);
  pointer-events: none;
}
.program-hero .program-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
  position: relative;
  z-index: 1;
}
.program-hero-content h1 { margin-bottom: 1rem; }
.program-hero-content .program-hero-desc {
  font-size: 1.125rem;
  color: #4b5563;
  margin: 0 0 2rem;
  max-width: 32rem;
  line-height: 1.65;
}
.program-hero-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.program-hero-visual {
  min-height: 280px;
  border-radius: var(--program-radius);
  background: linear-gradient(145deg, rgba(15, 46, 71, 0.06) 0%, rgba(139, 30, 45, 0.04) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 20px 50px -12px rgba(15, 31, 58, 0.12);
  border: 1px solid rgba(15, 31, 58, 0.06);
  overflow: hidden;
}
.program-hero-visual-placeholder {
  opacity: 0.2;
  color: var(--secondary);
}
.program-hero-visual-placeholder .nydk-icon { width: 4rem; height: 4rem; }
.program-hero-visual-img {
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  border-radius: inherit;
  display: block;
}

/* ----- FEATURE CARDS (Program Özellikleri) ----- */
.program-features .program-section-title { text-align: center; margin-bottom: 0.5rem; }
.program-features .program-lead { text-align: center; margin-bottom: 3rem; }
.program-features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 2rem;
}
.program-feature-card {
  background: #fff;
  border-radius: var(--program-radius);
  padding: 1.75rem 1.5rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(15, 31, 58, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.program-feature-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px -8px rgba(15, 31, 58, 0.15);
}
.program-feature-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--section-bg) 0%, #eef2f7 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  margin-bottom: 1rem;
  color: var(--secondary);
}
.program-feature-icon .nydk-icon { width: 26px; height: 26px; }
.program-feature-card h3 { margin-bottom: 0.4rem; }
.program-feature-card p {
  margin: 0;
  font-size: 0.95rem;
  color: #6b7280;
  line-height: 1.55;
}

/* ----- TIMELINE (Nasıl İlerliyoruz) ----- */
.program-timeline .program-section-title { text-align: center; margin-bottom: 0.5rem; }
.program-timeline .program-lead { text-align: center; margin-bottom: 3rem; }
.program-timeline-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-top: 2rem;
  position: relative;
}
.program-timeline-step {
  background: #fff;
  border-radius: var(--program-radius);
  padding: 2rem 1.5rem;
  text-align: center;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(15, 31, 58, 0.06);
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.program-timeline-step:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px -8px rgba(15, 31, 58, 0.12);
}
.program-timeline-step-num {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-weight: 700;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1rem;
}
.program-timeline-step h3 { margin-bottom: 0.35rem; }
.program-timeline-step p {
  margin: 0;
  font-size: 0.9rem;
  color: #6b7280;
  line-height: 1.5;
}

/* ----- TARGET AUDIENCE (Kimler İçin) ----- */
.program-audience .program-section-title { text-align: center; margin-bottom: 0.5rem; }
.program-audience .program-lead { text-align: center; margin-bottom: 3rem; }
.program-audience-cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 2rem;
}
.program-audience-col {
  background: #fff;
  border-radius: var(--program-radius);
  padding: 2rem 1.75rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(15, 31, 58, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.program-audience-col:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px -8px rgba(15, 31, 58, 0.12);
}
.program-audience-col h3 { margin-bottom: 0.75rem; }
.program-audience-col ul {
  margin: 0;
  padding-left: 1.25rem;
  color: #4b5563;
  font-size: 0.95rem;
  line-height: 1.7;
}
.program-audience-col li { margin-bottom: 0.4rem; }

/* ----- STATS ----- */
.program-stats .program-section-title { text-align: center; margin-bottom: 0.5rem; }
.program-stats .program-lead { text-align: center; margin-bottom: 3rem; }
.program-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-top: 2rem;
}
.program-stat-item {
  text-align: center;
  padding: 2rem 1rem;
}
.program-stat-value {
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 700;
  color: var(--accent);
  line-height: 1.2;
  margin-bottom: 0.35rem;
}
.program-stat-label {
  font-size: 1rem;
  color: var(--secondary);
  font-weight: 500;
}

/* ----- FAQ Accordion ----- */
.program-faq .program-section-title { text-align: center; margin-bottom: 0.5rem; }
.program-faq .program-lead { text-align: center; margin-bottom: 3rem; }
.program-faq-list { max-width: 720px; margin: 0 auto; }
.program-faq-item {
  background: #fff;
  border-radius: 16px;
  margin-bottom: 0.75rem;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(15, 31, 58, 0.06);
  overflow: hidden;
  transition: box-shadow 0.3s ease;
}
.program-faq-item:hover { box-shadow: 0 8px 24px -4px rgba(15, 31, 58, 0.1); }
.program-faq-item summary {
  padding: 1.25rem 1.5rem;
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--secondary);
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.program-faq-item summary::-webkit-details-marker { display: none; }
.program-faq-item summary::after {
  content: '+';
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--accent);
  flex-shrink: 0;
}
.program-faq-item[open] summary::after { content: '−'; }
.program-faq-item .program-faq-answer {
  padding: 0 1.5rem 1.25rem;
  color: #4b5563;
  font-size: 0.95rem;
  line-height: 1.65;
  border-top: 1px solid rgba(15, 31, 58, 0.06);
}
.program-faq-item[open] summary { border-bottom: 1px solid rgba(15, 31, 58, 0.06); }

/* ----- FINAL CTA ----- */
.program-cta-final {
  text-align: center;
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.program-cta-final .program-h2 { margin-bottom: 0.75rem; }
.program-cta-final .program-lead { margin-bottom: 2rem; color: rgba(255,255,255,.9); }
.program-cta-final .btn-program-primary {
  background: #fff;
  color: var(--secondary);
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
.program-cta-final .btn-program-primary:hover {
  background: #f8fafc;
  color: var(--secondary);
  box-shadow: 0 8px 28px rgba(0,0,0,0.2);
}

/* Scroll-in animations (reduce-motion respected) */
@media (prefers-reduced-motion: no-preference) {
  .program-page .program-animate {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.5s ease, transform 0.5s ease;
  }
  .program-page .program-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Responsive */
@media (max-width: 1024px) {
  .program-hero .program-container { grid-template-columns: 1fr; text-align: center; }
  .program-hero-content .program-hero-desc { margin-left: auto; margin-right: auto; }
  .program-hero-btns { justify-content: center; }
  .program-hero-visual { min-height: 220px; }
  .program-features-grid { grid-template-columns: repeat(2, 1fr); }
  .program-timeline-steps { grid-template-columns: repeat(2, 1fr); }
  .program-stats-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .program-page .program-section { padding-top: 60px; padding-bottom: 60px; }
  .program-features-grid,
  .program-audience-cols { grid-template-columns: 1fr; }
  .program-timeline-steps { grid-template-columns: 1fr; }
  .program-stats-grid { grid-template-columns: 1fr; }
  .program-hero-btns { flex-direction: column; align-items: center; }
}
