.programs-hero { position: relative; padding-block: 0; }
.programs-hero-media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.programs-hero-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(1.2) contrast(1.1); }
.programs-hero-layout { display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(0, 1.4fr); gap: var(--space-6); padding-block: var(--space-12); }
.programs-hero-text { max-width: 640px; }
.programs-hero-subtitle { font-size: var(--font-size-md); color: #f3f3f3; }
.programs-hero-cta { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-4); }
.programs-hero-kpi { align-self: center; }

.programs-section-header { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--space-4); margin-bottom: var(--space-6); }
.programs-section-header-cta { display: flex; flex-wrap: wrap; gap: var(--space-3); }

.programs-grid { align-items: stretch; }
.programs-card { display: flex; flex-direction: column; height: 100%; gap: var(--space-3); }
.programs-card-media { margin: -var(--space-4); margin-bottom: var(--space-3); border-bottom: 2px solid var(--color-border); }
.programs-card-media img { width: 100%; height: 220px; object-fit: cover; }
.programs-bullets { font-size: var(--font-size-sm); color: var(--color-text); display: grid; gap: var(--space-1); }
.programs-bullets li::before { content: "■"; display: inline-block; margin-right: 0.4rem; color: var(--color-primary); font-size: 0.7em; vertical-align: middle; }
.programs-card-footer { margin-top: auto; padding-top: var(--space-3); border-top: 2px solid var(--color-border); display: flex; justify-content: flex-start; }

.programs-layout-grid { align-items: start; gap: var(--space-6); }
.programs-layout-media { display: flex; flex-direction: column; gap: var(--space-4); }
.programs-layout-image-card img { height: 260px; object-fit: cover; }
.programs-vip-card { display: flex; flex-direction: column; gap: var(--space-3); }

.programs-format-links { margin-top: var(--space-4); gap: var(--space-4); }
.programs-format-card { display: block; height: 100%; transition: transform var(--transition-base), box-shadow var(--transition-base), background var(--transition-base); }
.programs-format-card:hover { transform: translate(-4px, -4px); box-shadow: var(--shadow-hard-lg); background: var(--color-neutral-50); }
.programs-format-cta { display: inline-flex; margin-top: var(--space-3); font-size: var(--font-size-xs); text-transform: uppercase; letter-spacing: 0.1em; }

.programs-themed { border-top: 3px solid var(--color-border); border-bottom: 3px solid var(--color-border); background: var(--color-neutral-50); }
.programs-themed-grid { align-items: center; gap: var(--space-6); }
.programs-themed-links { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-4); }
.programs-themed-media .gallery-grid { gap: var(--space-3); }

.programs-interactive { background: var(--color-bg); }
.programs-steps { counter-reset: step; display: grid; gap: var(--space-3); font-size: var(--font-size-sm); }
.programs-steps li { position: relative; padding-left: 2.4rem; }
.programs-steps li::before { counter-increment: step; content: counter(step); position: absolute; left: 0; top: 0.1rem; width: 1.8rem; height: 1.8rem; display: flex; align-items: center; justify-content: center; border: 2px solid var(--color-border); background: var(--color-primary); color: #fff; font-family: var(--font-display); font-size: var(--font-size-sm); box-shadow: var(--shadow-hard-sm); }

.programs-cta { background: var(--color-neutral-900); color: #ffffff; }
.programs-cta-card { background: transparent; border-color: #ffffff; box-shadow: none; }
.programs-cta-card::before { border-top-color: var(--color-primary-soft); }
.programs-cta-content { display: flex; flex-wrap: wrap; gap: var(--space-6); align-items: center; }
.programs-cta-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }

@media (max-width: 960px) {
  .programs-hero-layout { grid-template-columns: 1fr; padding-block: var(--space-10); }
  .programs-hero-kpi { order: -1; }
  .programs-section-header { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 720px) {
  .programs-hero-layout { padding-block: var(--space-8); }
  .programs-hero-cta { flex-direction: column; align-items: stretch; }
  .programs-cta-content { flex-direction: column; align-items: flex-start; }
  .programs-cta-actions { width: 100%; }
  .programs-cta-actions .btn { flex: 1 1 auto; justify-content: center; }
}

@media (max-width: 520px) {
  .programs-card-media img { height: 190px; }
}
