/* Shared finishing layer for a calmer, more polished visual system. */
:root {
  --red: #e31825;
  --red-dk: #b70e1b;
  --orange: #ff7138;
  --surface: #fff8f4;
  --surface2: #fff0e7;
  --border: #efdfd9;
  --text: #17212f;
  --muted: #647184;
  --light-r: #fff0ed;
  --r: 14px;
  --shadow-soft: 0 12px 32px rgba(23, 33, 47, .07);
}

html { scroll-padding-top: 82px; }
body { color: var(--text); letter-spacing: .005em; }
::selection { background: rgba(201, 22, 32, .16); color: var(--text); }

:focus-visible {
  outline: 3px solid #e56b32;
  outline-offset: 3px;
}

a { text-underline-offset: 3px; }

.topbar {
  min-height: 38px;
  gap: 14px;
  padding: 7px clamp(18px, 4vw, 64px);
  background: #b70e1b;
  letter-spacing: .02em;
}

.tb-l,
.tb-r {
  min-width: 0;
  gap: clamp(8px, 1.5vw, 20px);
}

#navbar {
  position: sticky;
  isolation: isolate;
  gap: 28px;
  padding-inline: clamp(18px, 4vw, 64px);
  height: 68px;
  min-height: 68px;
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid rgba(23, 33, 47, .08);
  box-shadow: 0 8px 26px rgba(23, 33, 47, .06);
  backdrop-filter: blur(14px);
}

#navbar > img {
  width: clamp(122px, 12vw, 150px) !important;
  height: auto;
  flex: 0 0 auto;
}

.nav-links {
  margin-left: auto;
  gap: 5px;
}

.nav-links > li > a {
  display: flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 13px;
  color: var(--muted);
  font-size: 13.5px;
  font-weight: 600;
  border-radius: 8px;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.nav-links > li > a:hover { transform: translateY(-1px); }

.nav-links .nav-cta {
  min-height: 40px;
  padding: 9px 22px;
  color: #fff;
  background: var(--red);
  box-shadow: 0 7px 16px rgba(201, 22, 32, .18);
}

#navbar .nav-links > li > a:hover {
  color: var(--red);
  background: var(--light-r);
}

#navbar .nav-links > li > .nav-cta,
#navbar .nav-links > li > .nav-cta:hover {
  color: #fff;
  background: var(--red);
}

#navbar .nav-links > li > .nav-cta:hover { background: var(--red-dk); }

.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 42px;
  padding: 0 15px;
  border: 1px solid var(--border, #e2e6ed);
  border-radius: 7px;
  background: #fff;
  color: var(--text, #1a2332);
  font: 700 14px 'Barlow', sans-serif;
  cursor: pointer;
}

.nav-toggle:hover,
.nav-toggle[aria-expanded="true"] {
  border-color: var(--red, #e8151b);
  color: var(--red, #e8151b);
}

.nav-toggle-icon,
.nav-toggle-icon::before,
.nav-toggle-icon::after {
  display: block;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
}

.nav-toggle-icon {
  position: relative;
}

.nav-toggle-icon::before,
.nav-toggle-icon::after {
  position: absolute;
  left: 0;
  content: '';
}

.nav-toggle-icon::before { top: -6px; }
.nav-toggle-icon::after { top: 6px; }

.ticker-wrap {
  min-height: 36px;
  background: linear-gradient(90deg, var(--red-dk), var(--red) 54%, var(--orange));
}

.ticker {
  padding-block: 9px;
  font-size: 12px;
}

.hero-sub,
.sec-sub {
  text-wrap: pretty;
}

.hero {
  min-height: min(780px, 86vh);
  padding-inline: clamp(24px, 6vw, 96px);
  background: radial-gradient(ellipse at 78% 16%, rgba(255, 113, 56, .17), transparent 31%),
    linear-gradient(120deg, #fff 0%, #fff4ec 48%, #fff9f3 100%);
  isolation: isolate;
}

.hero::before {
  background-image: linear-gradient(rgba(201, 22, 32, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201, 22, 32, .04) 1px, transparent 1px);
  background-size: 48px 48px;
}

.hero-accent {
  width: 5px;
  background: linear-gradient(180deg, var(--red), #ef9b61);
}

.hero-content { max-width: 790px; }

.hero h1 {
  font-size: clamp(3.2rem, 6.4vw, 5.7rem);
  letter-spacing: -.025em;
  line-height: .96;
}

.hero-kicker {
  border-radius: 999px;
  letter-spacing: 1.5px;
}

.btn-red,
.btn-outline-red {
  min-height: 50px;
  border-radius: 9px;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.btn-red { box-shadow: 0 8px 20px rgba(201, 22, 32, .17); }
.btn-red:hover { box-shadow: 0 12px 26px rgba(201, 22, 32, .24); }
.btn-outline-red { border-width: 1.5px; }

.sec {
  padding: clamp(62px, 7vw, 100px) clamp(20px, 5vw, 76px);
}

.sec-gray {
  background-color: #fff8f4;
  background-image:
    radial-gradient(ellipse at 2% 6%, rgba(227, 24, 37, .08), transparent 28%),
    radial-gradient(ellipse at 98% 92%, rgba(255, 113, 56, .1), transparent 32%);
}

.sec-title { letter-spacing: -.015em; }

.course-card,
.prog-card,
.why-card,
.rev-card,
.diploma-card {
  border-radius: 14px;
  box-shadow: 0 3px 14px rgba(23, 33, 47, .035);
}

.course-card,
.why-card,
.rev-card {
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.course-card:hover,
.why-card:hover,
.rev-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-soft);
}

.course-card:nth-child(3n + 2),
.why-card:nth-child(3n + 2),
.rev-card:nth-child(3n + 2) { transition-delay: 35ms; }

.course-card:nth-child(3n),
.why-card:nth-child(3n),
.rev-card:nth-child(3n) { transition-delay: 70ms; }

.rev-photo { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.reviews-status { grid-column: 1 / -1; padding: 28px; text-align: center; color: var(--muted); background: #fff; border: 1px dashed var(--border); border-radius: 14px; }

.cat-header { border-bottom-width: 1px; }

.bim-section {
  padding: clamp(62px, 7vw, 100px) clamp(20px, 5vw, 76px);
  border-top: 0;
  background: radial-gradient(ellipse at 90% 10%, rgba(255, 113, 56, .3), transparent 35%),
    linear-gradient(135deg, #17212f, #202d40 68%, #28231e);
}

.bim-mc,
.bim-topic { border-radius: 12px; }

.bim-topic { transition: transform .24s ease, background .24s ease; }
.bim-topic:hover { transform: translateX(5px); }

.contact-grid { gap: clamp(30px, 5vw, 70px); }

.c-item {
  border-radius: 12px;
  transition: border-color .2s ease, background .2s ease;
}

.c-item:hover { border-color: rgba(201, 22, 32, .24); background: #fff; }

.form-box {
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.fg input,
.fg select,
.fg textarea { border-radius: 9px; }

.fg input:focus,
.fg select:focus,
.fg textarea:focus {
  border-color: var(--red);
  box-shadow: 0 0 0 4px rgba(201, 22, 32, .08);
}

footer { background: #121a25; }

.wa-float {
  width: 56px;
  height: 56px;
  border: 3px solid #fff;
  box-shadow: 0 8px 24px rgba(20, 40, 29, .25);
}

/* Purpose-built geometric marks replace platform-dependent emoji artwork. */
.l1-ico,
.l2-dot,
.cc-icon,
.course-icon,
.why-icon,
.cat-icon-big,
.mc-ico,
.c-icon {
  position: relative;
  color: transparent !important;
  font-size: 0 !important;
  overflow: hidden;
}

.l1-ico::before,
.l2-dot::before,
.cc-icon::before,
.course-icon::before,
.why-icon::before,
.cat-icon-big::before,
.mc-ico::before,
.c-icon::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 48%;
  aspect-ratio: 1;
  content: '';
  transform: translate(-50%, -50%) rotate(45deg);
  border: 2px solid currentColor;
  border-radius: 3px;
  color: var(--mark, var(--red));
}

.l1-ico {
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-right: 7px;
  vertical-align: -4px;
  border-radius: 5px;
  background: var(--light-r);
}

.l1-ico::before { width: 7px; height: 7px; border-width: 1.5px; }

.l1-row:nth-child(1) { --mark: #c91620; }
.l1-row:nth-child(2) { --mark: #26739e; }
.l1-row:nth-child(3) { --mark: #b17a28; }
.l1-row:nth-child(4) { --mark: #7258b7; }
.l1-row:nth-child(5) { --mark: #537c35; }
.l1-row:nth-child(6) { --mark: #23806b; }

.l2-dot {
  border-radius: 9px;
  background: rgba(255, 255, 255, .72);
}

.l2-dot::before { width: 38%; border-radius: 2px; }
.dot-mech { --mark: #c91620; }
.dot-civil { --mark: #26739e; }
.dot-arch { --mark: #b17a28; }
.dot-elec { --mark: #7258b7; }
.dot-proj { --mark: #537c35; }
.dot-it { --mark: #23806b; }
.dot-ai { --mark: #a3428d; }

.cc-icon,
.course-icon,
.why-icon,
.cat-icon-big,
.mc-ico {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: var(--light-r);
  --mark: var(--red);
}

.cc-icon::before,
.course-icon::before,
.why-icon::before,
.cat-icon-big::before,
.mc-ico::before {
  width: 16px;
  border-width: 2px;
  box-shadow: 8px 8px 0 -5px var(--mark);
}

/* Give the actual software logos a full-width, readable frame in course cards. */
.course-grid .cc-icon:has(img) {
  position: relative;
  display: block;
  width: 100%;
  height: 96px;
  min-height: 96px;
  margin: 0 0 14px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
  --mark: transparent;
}

.course-grid .cc-icon:has(img)::before { display: none; }

.course-grid .cc-icon img {
  position: absolute;
  inset: 8px 12px;
  display: block;
  width: calc(100% - 24px);
  height: calc(100% - 16px);
  max-width: none;
  object-fit: contain;
  object-position: center;
}

.c-icon { --mark: var(--red); }
.c-icon::before { width: 15px; height: 11px; aspect-ratio: auto; border-radius: 2px; transform: translate(-50%, -50%); }
.c-icon::after { position: absolute; top: 50%; left: 50%; width: 7px; height: 7px; content: ''; border-top: 1.5px solid var(--mark); border-left: 1.5px solid var(--mark); transform: translate(-50%, -66%) rotate(45deg); }

.hero-card-mark {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  overflow: hidden;
  border-radius: 9px;
  background: #fff;
  position: relative;
  color: transparent;
  font-size: 0;
}

.hero-card-mark img {
  display: block;
  width: 30px;
  height: 22px;
  max-width: none;
  object-fit: contain;
}

.hero-card-mark::before,
.hero-card-mark::after {
  position: absolute;
  top: 50%;
  left: 50%;
  content: '';
  border: 1.5px solid rgba(255, 255, 255, .92);
  transform: translate(-50%, -50%) rotate(45deg);
}

.hero-card-mark::before,
.hero-card-mark::after { display: none; }

.hero-card-mark::before { width: 10px; height: 10px; }
.hero-card-mark::after { width: 19px; height: 19px; opacity: .55; }

.bim-badge::before,
.l2-diploma-label::before,
.hot-badge::before,
.hero-kicker::before {
  width: 7px;
  height: 7px;
  content: '';
  display: inline-block;
  margin-right: 2px;
  background: currentColor;
  transform: rotate(45deg);
  vertical-align: 1px;
}

.ticker { letter-spacing: .04em; }

.tb-l li { list-style: none; }

/* Desktop course flyouts open inward from the right side of the header. */
@media (min-width: 1171px) {
  #navbar .mega-l2 {
    left: auto;
    right: calc(100% + 2px);
    border-radius: var(--r) 0 var(--r) var(--r);
  }
}

.hero-card {
  position: absolute;
  z-index: 3;
  top: 50%;
  right: clamp(28px, 5vw, 76px);
  width: min(350px, 29vw);
  padding: 26px;
  transform: translateY(-44%);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 16px;
  background: linear-gradient(150deg, #202c40, #141c2a 75%);
  box-shadow: 0 28px 70px rgba(26, 35, 50, .2);
  color: #fff;
  animation: card-float 7s ease-in-out infinite;
}

@keyframes card-float {
  0%, 100% { transform: translateY(-44%); }
  50% { transform: translateY(calc(-44% - 8px)); }
}

.hero-blob { animation: blob-breathe 12s ease-in-out infinite alternate; }

@keyframes blob-breathe {
  from { transform: scale(.94) translate3d(0, 0, 0); opacity: .72; }
  to { transform: scale(1.08) translate3d(-18px, 14px, 0); opacity: 1; }
}

/* Scroll entrances are activated by navigation.js; content stays visible without JS. */
.motion-ready .motion-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .65s ease, transform .65s cubic-bezier(.2, .7, .2, 1);
}

.motion-ready .motion-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.motion-ready .motion-stagger > * {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .48s ease, transform .48s cubic-bezier(.2, .7, .2, 1);
}

.motion-ready .motion-stagger.is-visible > * {
  opacity: 1;
  transform: translateY(0);
}

.motion-ready .motion-stagger.is-visible > *:nth-child(2) { transition-delay: 60ms; }
.motion-ready .motion-stagger.is-visible > *:nth-child(3) { transition-delay: 120ms; }
.motion-ready .motion-stagger.is-visible > *:nth-child(4) { transition-delay: 180ms; }
.motion-ready .motion-stagger.is-visible > *:nth-child(5) { transition-delay: 240ms; }
.motion-ready .motion-stagger.is-visible > *:nth-child(6) { transition-delay: 300ms; }

/* Program landing pages */
.program-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  align-items: center;
  gap: clamp(35px, 7vw, 100px);
  min-height: 510px;
  padding: clamp(64px, 8vw, 112px) clamp(24px, 7vw, 100px);
  overflow: hidden;
  isolation: isolate;
  background: radial-gradient(ellipse at 76% 12%, rgba(255, 113, 56, .2), transparent 32%),
    linear-gradient(120deg, #fff 0%, #fff1e8 52%, #fff9ed 100%);
}

.program-hero::before,
.program-hero::after {
  position: absolute;
  z-index: -1;
  content: '';
  pointer-events: none;
}

.program-hero::before {
  top: -190px;
  right: -90px;
  width: 560px;
  aspect-ratio: 1;
  border: 1px solid rgba(201, 22, 32, .11);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(201, 22, 32, .025), 0 0 0 84px rgba(201, 22, 32, .02);
  animation: orbit-drift 18s ease-in-out infinite alternate;
}

.program-hero::after {
  right: 8%;
  bottom: -130px;
  width: 230px;
  height: 230px;
  border-radius: 36% 64% 65% 35% / 40% 35% 65% 60%;
  background: linear-gradient(145deg, rgba(229, 107, 50, .15), rgba(201, 22, 32, .04));
  transform: rotate(-24deg);
}

@keyframes orbit-drift {
  to { transform: translate(-24px, 20px) rotate(10deg); }
}

.program-hero-grid {
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: .42;
  background-image: linear-gradient(rgba(201, 22, 32, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(201, 22, 32, .035) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(100deg, black, transparent 78%);
}

.program-hero-copy { position: relative; max-width: 730px; }

.program-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.program-eyebrow span {
  width: 8px;
  height: 8px;
  border: 2px solid currentColor;
  transform: rotate(45deg);
}

.program-hero h1,
.program-band h2 {
  margin: 0;
  color: var(--text);
  font: 900 clamp(2.7rem, 5.8vw, 5.2rem)/.97 'Barlow Condensed', sans-serif;
  letter-spacing: -.035em;
  text-transform: uppercase;
}

.program-hero h1 em,
.program-band h2 em,
.program-section-head h2 em {
  color: var(--red);
  font-style: normal;
}

.program-intro {
  max-width: 610px;
  margin: 23px 0 28px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}

.program-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.program-text-link { color: var(--text); font-size: 14px; font-weight: 700; }
.program-text-link span { margin-left: 7px; color: var(--red); }

.program-proof {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 38px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
}

.program-proof span { color: var(--text); font-size: 12px; font-weight: 800; }
.program-proof i { width: 3px; height: 3px; margin: 0 5px; border-radius: 50%; background: var(--red); }

.program-orbit-card {
  position: relative;
  justify-self: center;
  width: min(100%, 350px);
  padding: 26px 30px 24px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 20px;
  background: linear-gradient(145deg, #202d40, #121a25);
  box-shadow: 0 30px 70px rgba(23, 33, 47, .2);
  color: #fff;
  transform: rotate(2deg);
  animation: card-float 7s ease-in-out infinite;
}

.orbit-label { color: rgba(255,255,255,.55); font-size: 10px; font-weight: 800; letter-spacing: 1.7px; text-transform: uppercase; }

.orbit-ring {
  position: relative;
  display: grid;
  width: 176px;
  aspect-ratio: 1;
  place-items: center;
  margin: 24px auto;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  box-shadow: 0 0 0 20px rgba(255,255,255,.025), 0 0 0 42px rgba(255,255,255,.02);
}

.orbit-ring::before,
.orbit-ring::after { position: absolute; content: ''; border: 1px solid rgba(229,107,50,.42); border-radius: 50%; }
.orbit-ring::before { inset: 18px; }
.orbit-ring::after { inset: 38px; border-color: rgba(255,255,255,.12); }

.orbit-core {
  z-index: 1;
  display: grid;
  width: 62px;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 18px;
  background: var(--red);
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1px;
  transform: rotate(-45deg);
}

.orbit-node { position: absolute; z-index: 2; display: grid; width: 30px; aspect-ratio: 1; place-items: center; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; background: #202d40; color: #ff9a83; font-size: 9px; }
.node-one { top: 4px; left: 24px; }
.node-two { top: 32px; right: 0; }
.node-three { bottom: 6px; left: 30px; }
.program-orbit-card > p { margin: 0; color: rgba(255,255,255,.57); font-size: 12px; line-height: 1.7; text-align: center; }
.program-orbit-card > p strong { color: #fff; font-size: 15px; }

.program-section {
  padding: clamp(64px, 8vw, 108px) clamp(20px, 5vw, 76px);
  background: radial-gradient(ellipse at 4% 4%, rgba(255, 113, 56, .1), transparent 30%), #fff8f4;
}

.program-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  margin: 0 0 34px;
}

.program-section-head h2 { margin: 0; color: var(--text); font: 900 clamp(2rem,4vw,3.2rem)/1 'Barlow Condensed',sans-serif; text-transform: uppercase; }
.program-section-head > p { max-width: 380px; margin: 0 0 3px; color: var(--muted); font-size: 14px; line-height: 1.75; }

.program-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }

.pathway-card,
.pathway-next-card {
  position: relative;
  display: flex;
  min-height: 260px;
  flex-direction: column;
  align-items: flex-start;
  padding: 25px 25px 22px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(23,33,47,.035);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.pathway-card::before { position: absolute; top: 0; left: 0; width: 42px; height: 3px; content: ''; background: linear-gradient(90deg,var(--red),var(--orange)); transition: width .3s ease; }
.pathway-card:hover { transform: translateY(-5px) rotate(-.25deg); border-color: rgba(201,22,32,.28); box-shadow: 0 18px 38px rgba(23,33,47,.09); }
.pathway-card:hover::before { width: 100%; }
.pathway-card:nth-child(6n + 1) { background: linear-gradient(145deg,#fff,#fff0eb); }
.pathway-card:nth-child(6n + 2) { background: linear-gradient(145deg,#fff,#fff4e2); }
.pathway-card:nth-child(6n + 3) { background: linear-gradient(145deg,#fff,#fff0e6); }
.pathway-card:nth-child(6n + 4) { background: linear-gradient(145deg,#fff,#f1f5ff); }
.pathway-card:nth-child(6n + 5) { background: linear-gradient(145deg,#fff,#fff6df); }
.pathway-card:nth-child(6n) { background: linear-gradient(145deg,#fff,#f2f0ff); }
.pathway-featured { border-color: rgba(227,24,37,.3); box-shadow: 0 12px 30px rgba(227,24,37,.08); }
.pathway-index { display:flex; align-items:center; gap:12px; margin-bottom:20px; color:var(--red); font:800 13px 'Barlow Condensed',sans-serif; letter-spacing:1px; }
.pathway-index span { padding:4px 8px; border-radius:4px; background:var(--light-r); font:800 9px 'Barlow',sans-serif; letter-spacing:1px; }
.pathway-card h3 { margin:0 0 8px; color:var(--text); font-size:19px; font-weight:800; line-height:1.2; }
.pathway-card p { margin:0 0 16px; color:var(--muted); font-size:13px; line-height:1.65; }
.pathway-tags { display:flex; flex-wrap:wrap; gap:6px; margin: auto 0 17px; }
.pathway-tags span { padding:4px 8px; border:1px solid #f1d7ce; border-radius:5px; background:rgba(255,255,255,.82); color:#59677a; font-size:10px; font-weight:600; }
.pathway-card > a { display:flex; align-items:center; justify-content:space-between; width:100%; padding-top:12px; border-top:1px solid var(--border); color:var(--red); font-size:12px; font-weight:800; }
.pathway-card > a b { font-size:16px; transition:transform .2s ease; }
.pathway-card > a:hover b { transform:translate(3px,-3px); }

.pathway-next-card { justify-content:center; gap:15px; border-style:dashed; background:transparent; color:var(--muted); }
.pathway-next-card strong { color:var(--text); font-size:18px; }
.pathway-next-card > b { color:var(--red); font-size:12px; }
.pathway-next-mark { display:grid; width:42px; aspect-ratio:1; place-items:center; border-radius:13px; background:var(--red); color:#fff; font-size:20px; }

.program-band {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  padding: clamp(48px, 6vw, 76px) clamp(24px, 7vw, 100px);
  overflow:hidden;
  background: radial-gradient(ellipse at 90% 20%,rgba(255,113,56,.32),transparent 35%),linear-gradient(125deg,#17212f,#202d40);
}

.program-band .program-eyebrow { color:#ff9a83; }
.program-band h2 { color:#fff; font-size:clamp(2.1rem,4vw,3.6rem); }
.program-band h2 em { color:#ff9a83; }
.program-band .btn-red { flex:0 0 auto; }

@media (max-width: 900px) {
  .program-hero { grid-template-columns:1fr; min-height:0; }
  .program-orbit-card { display:none; }
  .program-section-head { align-items:flex-start; flex-direction:column; }
  .program-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 640px) {
  .program-hero { padding:58px 20px 50px; }
  .program-hero h1 { font-size:clamp(2.65rem,12vw,3.6rem); }
  .program-intro { font-size:15px; }
  .program-proof { gap:7px; margin-top:28px; }
  .program-proof i { margin-inline:2px; }
  .program-card-grid { grid-template-columns:1fr; }
  .pathway-card,.pathway-next-card { min-height:0; }
  .program-band { align-items:flex-start; flex-direction:column; }
}

.hero-card-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  color: rgba(255, 255, 255, .68);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.3px;
  text-transform: uppercase;
}

.hero-card-mark {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 9px;
  background: var(--red, #e8151b);
  color: #fff;
  font-size: 12px;
  letter-spacing: -.5px;
}

.hero-card h2 {
  max-width: 260px;
  margin-bottom: 18px;
  color: #fff;
  font: 800 25px/1.12 'Barlow Condensed', sans-serif;
}

.hero-pathway {
  display: grid;
  grid-template-columns: 30px 1fr 16px;
  align-items: center;
  gap: 10px;
  padding: 12px 0;
  border-top: 1px solid rgba(255, 255, 255, .12);
}

.hero-pathway-number {
  color: #ff8c7f;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .6px;
}

.hero-pathway strong,
.hero-pathway small {
  display: block;
}

.hero-pathway strong {
  font-size: 13px;
}

.hero-pathway small {
  margin-top: 2px;
  color: rgba(255, 255, 255, .58);
  font-size: 10.5px;
}

.hero-pathway-arrow {
  color: #ff8c7f;
  font-size: 16px;
}

.hero-card-location {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  color: rgba(255, 255, 255, .65);
  font-size: 11px;
}

.hero-card-location span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #5dd69a;
  box-shadow: 0 0 0 4px rgba(93, 214, 154, .13);
}

.course-card,
.prog-card,
.why-card,
.rev-card,
.diploma-card {
  box-shadow: 0 2px 10px rgba(26, 35, 50, .035);
}

.course-card:focus-visible,
.nav-links a:focus-visible {
  outline-offset: 2px;
}

@media (max-width: 1170px) {
  #navbar {
    height: 64px;
    min-height: 64px;
  }

  .nav-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  #navbar .nav-links {
    display: none;
    position: absolute;
    top: calc(100% + 3px);
    right: 0;
    left: 0;
    z-index: 700;
    max-height: min(72vh, 560px);
    overflow-y: auto;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    margin: 0;
    padding: 12px clamp(18px, 4vw, 64px) 18px;
    border-bottom: 1px solid var(--border, #e2e6ed);
    background: #fff;
    box-shadow: 0 16px 30px rgba(26, 35, 50, .14);
  }

  #navbar.menu-open .nav-links {
    display: flex;
  }

  #navbar .nav-links > li {
    width: 100%;
  }

  #navbar .nav-links > li > a {
    min-height: 44px;
    padding: 10px 12px;
    white-space: normal;
  }

  #navbar .nav-links .nav-cta {
    justify-content: center;
    margin-top: 4px;
  }

  #navbar .mega-l1,
  #navbar .dd {
    display: none !important;
  }

  .tb-l > span:not(.tb-sep),
  .tb-l > .tb-sep {
    display: none;
  }

  .topbar {
    justify-content: center;
  }

  .tb-l,
  .tb-r {
    gap: 14px;
  }

  .hero-card {
    display: none;
  }

  .hero-content { max-width: 820px; }
}

@media (max-width: 640px) {
  .topbar {
    min-height: 36px;
    padding: 6px 14px;
    font-size: 11.5px;
  }

  .tb-r {
    display: none;
  }

  .tb-l {
    display: flex !important;
  }

  #navbar {
    height: 60px;
    padding-inline: 16px;
  }

  #navbar > img {
    width: 118px !important;
  }

  #navbar .nav-links {
    padding-inline: 16px;
  }

  .ticker {
    font-size: 11px;
  }

  .hero {
    min-height: auto;
    padding: 58px 20px 48px;
  }

  .hero h1 {
    font-size: clamp(2.55rem, 12vw, 3.4rem);
    line-height: .98;
  }

  .hero-sub {
    font-size: 15px;
  }

  .hero-actions { gap: 9px; }

  .hero-actions a {
    justify-content: center;
    width: 100%;
  }

  .hero-stats {
    margin-top: 34px;
    padding-top: 26px;
  }

  .sec {
    padding: 58px 20px;
  }

  .bim-section {
    padding: 58px 20px;
  }

  .form-box {
    padding: 22px 18px;
  }

  .course-grid,
  .prog-grid,
  .why-grid,
  .reviews-grid,
  .diploma-grid { grid-template-columns: 1fr; }

  .bim-meta { grid-template-columns: 1fr; }

  .tab-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 8px;
    scrollbar-width: thin;
  }

  .tab-btn { flex: 0 0 auto; }

  .wa-float {
    right: 16px;
    bottom: 16px;
    width: 52px;
    height: 52px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}


/* Mobile course navigation: keep nested course links reachable on touch screens. */
@media (max-width: 1170px) {
  #navbar .nav-links > li:has(.mega-l1) {
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border, #e2e6ed);
  }

  #navbar .mega-l1 {
    display: block !important;
    position: static;
    min-width: 0;
    padding: 4px 0 0 10px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }

  #navbar .l1-row {
    display: block;
    padding: 8px 10px;
    white-space: normal;
    background: var(--surface, #f7f8fa);
    margin: 5px 0;
  }

  #navbar .l1-row .l1-arr {
    display: none;
  }

  #navbar .mega-l2 {
    display: block !important;
    position: static;
    width: 100%;
    min-width: 0;
    margin-top: 6px;
    padding: 8px;
    border: 1px solid var(--border, #e2e6ed);
    border-radius: 8px;
    box-shadow: none;
    background: #fff;
  }

  #navbar .l2-head {
    gap: 10px;
    flex-wrap: wrap;
  }

  #navbar .l2-grid {
    grid-template-columns: 1fr;
    padding: 4px 0;
  }

  #navbar .l2-item {
    min-width: 0;
    padding: 9px 6px;
  }

  #navbar .l2-diploma {
    gap: 8px;
    flex-wrap: wrap;
  }

  #navbar .dd {
    display: block !important;
    position: static;
    min-width: 0;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    border: 0;
    box-shadow: none;
    padding: 0 0 0 12px;
  }
}

@media (max-width: 640px) {
  #navbar .mega-l2 {
    padding: 7px;
  }

  #navbar .l2-head-title {
    font-size: 13px;
  }

  #navbar .l2-desc {
    overflow-wrap: anywhere;
  }
}

