@import url('https://fonts.googleapis.com/css2?family=Libre+Franklin:wght@400;600&family=Unbounded:wght@500;700&display=swap');
:root { --card-radius: 1.25rem; }
html, body { min-height: 100%; }
.site-bg { background: linear-gradient(160deg, rgba(0,0,0,.35), rgba(0,0,0,.6)), url('../img/background.png'); background-size: cover; background-position: center; background-repeat: no-repeat; background-attachment: fixed; }
.brand-logo { width: 250px; height: auto; max-height: 72px; filter: drop-shadow(0 6px 12px rgba(0,0,0,.35)); object-fit: contain; }
.brand-text { color: #f4f6f8; }
.text-light-50 { color: rgba(255,255,255,.65); }
.text-light-75 { color: rgba(255,255,255,.8); }
.bg-gradient-dark { background: radial-gradient(1200px circle at 10% 10%, rgba(88,101,242,.25), transparent 40%),
                              radial-gradient(900px circle at 80% 30%, rgba(34,197,94,.20), transparent 45%),
                              radial-gradient(800px circle at 30% 90%, rgba(236,72,153,.18), transparent 40%),
                              #0b0f14; }

.hero-grid { background: linear-gradient(120deg, rgba(0,0,0,.82), rgba(0,0,0,.9)), url('../img/background.png'); background-size: cover; background-position: center; position: relative; box-shadow: 0 24px 80px rgba(0,0,0,.55); }
.hero-glow { position:absolute; inset:0; background: radial-gradient(900px circle at 10% 10%, rgba(34,197,94,.24), transparent 45%), radial-gradient(1000px circle at 80% 30%, rgba(59,130,246,.18), transparent 45%); pointer-events:none; }
.hero-logo { filter: drop-shadow(0 8px 16px rgba(0,0,0,.35)); }
.hero-slide { min-height: 360px; height: 100%; width: 100%; background-size: cover; background-position: center; background-repeat: no-repeat; }
.carousel-item { min-height: 360px; }
.pillars-rail { background: rgba(0,0,0,.35); padding: 1rem; border: 1px solid rgba(255,255,255,.08); }
.pillars-track { scroll-snap-type: x mandatory; overflow-x: auto; padding-bottom: .5rem; }
.pillars-track::-webkit-scrollbar { height: 8px; }
.pillars-track::-webkit-scrollbar-thumb { background: rgba(255,255,255,.25); border-radius: 999px; }
.pillar-card-visual { width: min(320px, 80vw); min-height: 260px; scroll-snap-align: start; overflow: hidden; }
.pillar-bg { position:absolute; inset:0; background-size: cover; background-position: center; filter: brightness(.7); transition: transform .4s ease; }
.pillar-overlay { position:absolute; inset:0; background: linear-gradient(180deg, transparent 20%, rgba(0,0,0,.75)); }
.pillar-card-visual:hover .pillar-bg { transform: scale(1.05); }

.glass-card { background: rgba(0,0,0,.55); backdrop-filter: blur(8px); }
.glow-card { background: rgba(0,0,0,.55); border: 1px solid rgba(255,255,255,.08); box-shadow: 0 20px 60px rgba(0,0,0,.35); }
.step-number { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(120deg, #22c55e, #0ea5e9); color: #0b0f14; font-weight: 700; }
.edu-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 1rem; padding: 1rem 1.25rem; }
.pdf-frame { background: #0f141b; }

.card { border-radius: var(--card-radius); }
.sidebar { width: 260px; min-height: 100vh; background: #0b0f14; }
.nav-link { border-radius: .75rem; }
.nav-link:hover { background: rgba(255,255,255,.06); }

.img-card { border-radius: var(--card-radius); overflow:hidden; border: 1px solid rgba(255,255,255,.15); }
.img-card img { width:100%; height: 100%; object-fit: cover; display:block; }
.section-media { border-radius: var(--card-radius); overflow:hidden; border:1px solid rgba(255,255,255,.15); }
.section-media img { width:100%; height:auto; display:block; }
.pillar-card { transition: transform .2s ease, border-color .2s ease; }
.pillar-card:hover { transform: translateY(-4px); border-color: rgba(34,197,94,.5); }
.cta-panel { box-shadow: 0 20px 60px rgba(0,0,0,.45); }
.cta-glow { position:absolute; inset:0; background: radial-gradient(700px circle at 10% 50%, rgba(34,197,94,.25), transparent 45%), radial-gradient(700px circle at 90% 40%, rgba(14,165,233,.22), transparent 45%); pointer-events:none; }
.navbar.bg-dark { background: rgba(0,0,0,.7) !important; backdrop-filter: blur(8px); }

.program-page { font-family: "Libre Franklin", "Segoe UI", sans-serif; }
.program-hero { background: linear-gradient(135deg, rgba(8,10,12,.95), rgba(10,14,18,.88)), radial-gradient(700px circle at 10% 20%, rgba(245,158,11,.18), transparent 45%), radial-gradient(800px circle at 90% 30%, rgba(20,184,166,.18), transparent 40%); }
.program-hero-glow { position:absolute; inset:0; background: radial-gradient(700px circle at 15% 15%, rgba(245,158,11,.22), transparent 45%), radial-gradient(900px circle at 80% 40%, rgba(20,184,166,.18), transparent 45%); pointer-events:none; }
.program-eyebrow { letter-spacing: .2em; font-size: .75rem; color: rgba(245,158,11,.95); }
.program-title { font-family: "Unbounded", "Segoe UI", sans-serif; font-size: clamp(2.2rem, 2.6vw + 1.4rem, 3.6rem); }
.program-lead { font-size: clamp(1.1rem, 1.2vw + .9rem, 1.6rem); color: rgba(255,255,255,.8); }
.program-callout { background: rgba(245,158,11,.14); border: 1px solid rgba(245,158,11,.35); color: #f6f3eb; padding: .9rem 1rem; border-radius: 999px; font-weight: 600; display: inline-flex; align-items: center; gap: .5rem; }
.program-card { background: rgba(12,16,21,.9); border: 1px solid rgba(255,255,255,.08); border-radius: 1.25rem; box-shadow: 0 20px 60px rgba(0,0,0,.35); }
.program-card-title { font-weight: 600; font-size: 1.05rem; }
.program-mini-title { text-transform: uppercase; letter-spacing: .18em; font-size: .65rem; color: rgba(245,158,11,.8); }
.program-checklist { list-style: none; padding-left: 0; margin: 0; display: grid; gap: .5rem; color: rgba(255,255,255,.75); }
.program-checklist li { position: relative; padding-left: 1.6rem; }
.program-checklist li::before { content: "•"; position: absolute; left: 0; color: #f59e0b; font-size: 1.1rem; line-height: 1; }
.program-step { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); }
.program-step-number { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(120deg, #f59e0b, #14b8a6); color: #0b0f14; font-weight: 700; flex: 0 0 auto; }
.program-quote { background: rgba(20,184,166,.12); border: 1px solid rgba(20,184,166,.4); padding: 1rem 1.25rem; border-radius: 1rem; color: rgba(255,255,255,.85); }
.program-video-card { background: rgba(8,10,12,.8); border: 1px solid rgba(255,255,255,.08); border-radius: 1.25rem; }
.program-video-card iframe { border: 0; width: 100%; height: 100%; }
.program-carousel .carousel-control-prev-icon,
.program-carousel .carousel-control-next-icon { filter: drop-shadow(0 8px 16px rgba(0,0,0,.8)); }
.program-pdf { background: rgba(10,14,18,.85); border: 1px solid rgba(255,255,255,.08); }
.program-pdf iframe { border: 0; width: 100%; height: 100%; }
.program-disclaimer { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); }
.program-cta { background: linear-gradient(120deg, rgba(245,158,11,.18), rgba(20,184,166,.16)); border: 1px solid rgba(245,158,11,.35); }

.cta-pulse { position: relative; overflow: hidden; }
.cta-pulse::after {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 999px;
  border: 2px solid rgba(245,158,11,.65);
  animation: ctaPulse 2.4s ease-in-out infinite;
  pointer-events: none;
}
.cta-pulse::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(255,255,255,.18), rgba(255,255,255,0));
  opacity: 0;
  animation: ctaSheen 3s ease-in-out infinite;
  pointer-events: none;
}
@keyframes ctaPulse {
  0% { transform: scale(.96); opacity: .9; }
  70% { transform: scale(1.07); opacity: 0; }
  100% { transform: scale(1.07); opacity: 0; }
}
@keyframes ctaSheen {
  0% { opacity: 0; transform: translateX(-30%); }
  35% { opacity: .35; }
  60% { opacity: 0; transform: translateX(30%); }
  100% { opacity: 0; transform: translateX(30%); }
}

@media (max-width: 575.98px) {
  .program-callout { border-radius: 1rem; }
}
