
/* Bridging Training V2 — redesigned public-site layer */
:root {
  --bt-ink: #172721;
  --bt-primary: #20352e;
  --bt-secondary: #2b463d;
  --bt-moss: #496354;
  --bt-accent: #84996d;
  --bt-accent-dark: #657b55;
  --bt-accent-soft: #e4ebdc;
  --bt-surface: #ffffff;
  --bt-surface-soft: #f4f6f1;
  --bt-surface-warm: #fbfaf6;
  --bt-line: #dce4db;
  --bt-copy: #35473f;
  --bt-muted: #6a7770;
  --bt-shadow: 0 18px 50px rgba(23,39,33,.10);
  --bt-shadow-small: 0 8px 24px rgba(23,39,33,.08);
  --bt-radius: 18px;
  --bt-radius-small: 12px;
}

html { scroll-padding-top: 96px; }

body.v2-site {
  background: var(--bt-surface-warm);
  color: var(--bt-copy);
}

body.v2-site h1,
body.v2-site h2,
body.v2-site h3,
body.v2-site h4,
body.v2-site h5,
body.v2-site h6 {
  color: var(--bt-ink);
  letter-spacing: -.025em;
}

body.v2-site p,
body.v2-site li {
  line-height: 1.72;
}

body.v2-site a {
  transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease;
}

body.v2-site #sidebar {
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid rgba(32,53,46,.10);
  box-shadow: 0 5px 24px rgba(23,39,33,.06);
  height: auto;
  left: 0;
  overflow: visible;
  padding: 0;
  position: sticky;
  text-align: left;
  top: 0;
  width: 100%;
  z-index: 10000;
  backdrop-filter: blur(14px);
}

body.v2-site #sidebar > .inner {
  align-items: center;
  display: flex;
  flex-direction: row;
  gap: 24px;
  justify-content: space-between;
  margin: 0 auto;
  min-height: 84px;
  min-width: 0;
  max-width: 1240px;
  padding: 10px 28px;
  width: 100%;
}

body.v2-site .academy-mark {
  background: transparent;
  border-radius: 0;
  flex: 0 0 190px;
  margin: 0;
  min-height: 0;
  padding: 0;
  width: 190px;
}

body.v2-site .academy-mark-logo {
  height: auto;
  margin: 0;
  max-height: 58px;
  max-width: 190px;
  object-fit: contain;
  width: auto;
}

body.v2-site #sidebar nav {
  flex: 1 1 auto;
  width: auto;
}

body.v2-site #sidebar nav > ul {
  align-items: center;
  display: flex;
  gap: 4px;
  justify-content: flex-end;
  margin: 0;
}

body.v2-site #sidebar nav > ul > li {
  margin: 0;
  opacity: 1;
  transform: none;
}

body.v2-site #sidebar nav a {
  border: 0;
  border-radius: 999px;
  color: #405049;
  display: block;
  font-size: .79rem;
  font-weight: 700;
  letter-spacing: .02em;
  padding: .76rem .78rem;
  text-transform: none;
}

body.v2-site #sidebar nav a:before,
body.v2-site #sidebar nav a:after {
  display: none !important;
}

body.v2-site #sidebar nav a:hover,
body.v2-site #sidebar nav a.active {
  background: var(--bt-surface-soft);
  color: var(--bt-primary);
}

body.v2-site #sidebar nav .nav-portal a {
  border: 1px solid var(--bt-line);
  margin-left: 4px;
}

body.v2-site #sidebar nav .nav-register a {
  background: var(--bt-accent);
  color: var(--bt-ink);
  margin-left: 4px;
  padding-left: 1rem;
  padding-right: 1rem;
}

body.v2-site #sidebar nav .nav-register a:hover {
  background: var(--bt-accent-soft);
}

body.v2-site .mobile-menu-toggle {
  background: var(--bt-primary);
  color: #fff;
}

body.v2-site #sidebar + #wrapper,
body.v2-site #sidebar + #wrapper + #footer {
  margin-left: 0 !important;
}

body.v2-site #sidebar + #wrapper {
  padding-top: 0 !important;
}

body.v2-site .wrapper > .inner,
body.v2-site #footer > .inner {
  margin: 0 auto;
  max-width: 1180px;
  padding-left: 28px;
  padding-right: 28px;
  width: 100%;
}

body.v2-site .wrapper {
  border: 0;
}

body.v2-site .wrapper.style1 {
  background: var(--bt-primary);
  color: rgba(255,255,255,.86);
}

body.v2-site .wrapper.style1 h1,
body.v2-site .wrapper.style1 h2,
body.v2-site .wrapper.style1 h3,
body.v2-site .wrapper.style1 h4 {
  color: #fff;
}

body.v2-site .wrapper.style2 {
  background: var(--bt-surface);
  color: var(--bt-copy);
}

body.v2-site .wrapper.style3 {
  background: var(--bt-surface-soft);
  color: var(--bt-copy);
}

body.v2-site .wrapper.style2 h1,
body.v2-site .wrapper.style2 h2,
body.v2-site .wrapper.style2 h3,
body.v2-site .wrapper.style3 h1,
body.v2-site .wrapper.style3 h2,
body.v2-site .wrapper.style3 h3 {
  color: var(--bt-ink);
}

body.v2-site .page-hero {
  background:
    radial-gradient(circle at 78% 28%, rgba(132,153,109,.28), transparent 27%),
    linear-gradient(135deg, #20352e 0%, #2b463d 55%, #29483c 100%);
  min-height: 0;
  padding: 7rem 0 6rem;
}

body.v2-site .page-hero .inner {
  max-width: 1180px;
}

body.v2-site .page-hero h1 {
  font-size: clamp(2.6rem, 5vw, 4.9rem);
  line-height: 1.03;
  max-width: 930px;
}

body.v2-site .page-hero .lead {
  color: rgba(255,255,255,.82);
  font-size: clamp(1.05rem, 1.8vw, 1.28rem);
  max-width: 820px;
}

body.v2-site .eyebrow {
  color: var(--bt-accent);
  font-size: .78rem;
  letter-spacing: .17em;
}

body.v2-site .style1 .eyebrow {
  color: #c8d5b9;
}

body.v2-site .button,
body.v2-site button,
body.v2-site input[type="submit"] {
  border-radius: 999px;
  box-shadow: none;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .03em;
}

body.v2-site .button.primary,
body.v2-site button.primary,
body.v2-site input[type="submit"].primary {
  background: var(--bt-accent);
  color: var(--bt-ink) !important;
}

body.v2-site .button.primary:hover,
body.v2-site button.primary:hover,
body.v2-site input[type="submit"].primary:hover {
  background: #9bad84;
  transform: translateY(-1px);
}

body.v2-site .style2 .button:not(.primary),
body.v2-site .style3 .button:not(.primary) {
  border-color: #cbd6cc;
  color: var(--bt-primary) !important;
}

body.v2-site .academy-grid,
body.v2-site .course-option-grid {
  gap: 20px;
}

body.v2-site .academy-card {
  background: #fff;
  border: 1px solid var(--bt-line);
  border-radius: var(--bt-radius);
  box-shadow: var(--bt-shadow-small);
  color: var(--bt-copy);
  padding: 1.65rem;
}

body.v2-site .academy-card h2,
body.v2-site .academy-card h3 {
  color: var(--bt-ink);
}

body.v2-site .style1 .academy-card {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.15);
  box-shadow: none;
  color: rgba(255,255,255,.82);
}

body.v2-site .style1 .academy-card h3 {
  color: #fff;
}

body.v2-site .notice {
  background: #fff;
  border: 1px solid var(--bt-line);
  border-left: 4px solid var(--bt-accent);
  border-radius: var(--bt-radius-small);
  box-shadow: none;
  color: var(--bt-copy);
}

body.v2-site .notice strong {
  color: var(--bt-ink);
}

body.v2-site .style1 .notice {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.16);
  color: rgba(255,255,255,.84);
}

body.v2-site .style1 .notice strong {
  color: #fff;
}

body.v2-site .program-stat {
  background: #fff;
  border: 1px solid var(--bt-line);
  border-left: 4px solid var(--bt-accent);
  border-radius: var(--bt-radius-small);
  box-shadow: var(--bt-shadow-small);
  color: var(--bt-copy);
}

body.v2-site .program-stat strong {
  color: var(--bt-primary);
}

body.v2-site .check-list li:before {
  color: var(--bt-accent-dark);
}

body.v2-site .inner > h2 {
  font-size: clamp(2rem, 3.5vw, 3rem);
}

/* Redesigned homepage */
.v2-home-hero {
  background:
    radial-gradient(circle at 78% 24%, rgba(132,153,109,.28), transparent 27%),
    radial-gradient(circle at 92% 85%, rgba(219,227,210,.12), transparent 22%),
    linear-gradient(135deg, #172721 0%, #20352e 52%, #2b463d 100%);
  color: rgba(255,255,255,.84);
  padding: 6.2rem 0 5.3rem;
}

.v2-home-hero .inner {
  max-width: 1180px;
}

.v2-hero-grid {
  align-items: center;
  display: grid;
  gap: clamp(2rem, 5vw, 5rem);
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
}

.v2-home-hero h1 {
  color: #fff !important;
  font-size: clamp(3rem, 6.2vw, 5.6rem);
  line-height: .99;
  margin-bottom: 1.4rem;
  max-width: 850px;
}

.v2-home-hero .lead {
  color: rgba(255,255,255,.82);
  font-size: clamp(1.08rem, 2vw, 1.3rem);
  max-width: 760px;
}

.v2-hero-actions {
  margin-top: 2rem;
}

.v2-hero-proof {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 24px;
  box-shadow: 0 24px 70px rgba(0,0,0,.18);
  padding: 1.7rem;
}

.v2-proof-label {
  color: #cbd8be;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.v2-proof-stat {
  border-top: 1px solid rgba(255,255,255,.13);
  margin-top: 1rem;
  padding-top: 1rem;
}

.v2-proof-stat strong {
  color: #fff;
  display: block;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 2rem;
  line-height: 1.05;
}

.v2-proof-stat span {
  color: rgba(255,255,255,.7);
  font-size: .9rem;
}

.v2-trust-strip {
  background: #fff;
  border-bottom: 1px solid var(--bt-line);
}

.v2-trust-strip .inner {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, 1fr);
  padding-bottom: 0;
  padding-top: 0;
}

.v2-trust-item {
  border-left: 1px solid var(--bt-line);
  padding: 1.25rem 1.4rem;
}

.v2-trust-item:first-child { border-left: 0; }

.v2-trust-item strong {
  color: var(--bt-primary);
  display: block;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: .95rem;
}

.v2-trust-item span {
  color: var(--bt-muted);
  font-size: .84rem;
}

.v2-section-heading {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  margin-bottom: 2rem;
}

.v2-section-heading p:last-child {
  color: var(--bt-muted);
  font-size: 1.03rem;
  margin-top: .4rem;
}

.v2-program-feature {
  display: grid;
  gap: 22px;
  grid-template-columns: 1.25fr .75fr;
}

.v2-program-main,
.v2-program-side {
  border-radius: 22px;
  padding: clamp(1.5rem, 3vw, 2.4rem);
}

.v2-program-main {
  background: var(--bt-primary);
  color: rgba(255,255,255,.84);
}

.v2-program-main h3,
.v2-program-main strong {
  color: #fff;
}

.v2-program-side {
  background: var(--bt-accent-soft);
  border: 1px solid #d1dcc7;
}

.v2-metric-row {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, 1fr);
  margin: 1.7rem 0;
}

.v2-metric {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 14px;
  padding: 1rem;
}

.v2-metric strong {
  display: block;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 1.45rem;
}

.v2-step-grid {
  counter-reset: v2steps;
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(4, 1fr);
}

.v2-step {
  background: #fff;
  border: 1px solid var(--bt-line);
  border-radius: 18px;
  box-shadow: var(--bt-shadow-small);
  counter-increment: v2steps;
  padding: 1.45rem;
}

.v2-step:before {
  align-items: center;
  background: var(--bt-accent-soft);
  border-radius: 50%;
  color: var(--bt-primary);
  content: counter(v2steps);
  display: flex;
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 700;
  height: 2.25rem;
  justify-content: center;
  margin-bottom: 1rem;
  width: 2.25rem;
}

.v2-step h3 {
  font-size: 1.05rem;
  margin-bottom: .55rem;
}

.v2-resource-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(3, 1fr);
}

.v2-resource-card {
  background: #fff;
  border: 1px solid var(--bt-line);
  border-radius: 18px;
  box-shadow: var(--bt-shadow-small);
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 1.45rem;
}

.v2-resource-card a {
  font-weight: 700;
  margin-top: auto;
}

.v2-ecosystem {
  background: linear-gradient(135deg, #eef2ea, #f7f8f4);
  border: 1px solid var(--bt-line);
  border-radius: 24px;
  padding: clamp(1.6rem, 4vw, 3rem);
}

/* Cohort cards */
body.v2-site .cohort-public-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.v2-site .cohort-public-card,
body.v2-site .next-cohort-card {
  border-top: 5px solid var(--bt-accent);
}

body.v2-site .cohort-seat-badge {
  background: var(--bt-accent-soft);
  color: var(--bt-primary);
}

/* Forms / public registration */
body.v2-site input[type="text"],
body.v2-site input[type="email"],
body.v2-site input[type="tel"],
body.v2-site select,
body.v2-site textarea {
  background: #fff;
  border: 1px solid #cad5cc;
  border-radius: 10px;
  color: var(--bt-ink);
}

body.v2-site input[type="text"]:focus,
body.v2-site input[type="email"]:focus,
body.v2-site input[type="tel"]:focus,
body.v2-site select:focus,
body.v2-site textarea:focus {
  border-color: var(--bt-accent);
  box-shadow: 0 0 0 3px rgba(132,153,109,.18);
}

.v2-registration-layout {
  align-items: start;
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(0, 1fr) 310px;
}

.v2-registration-aside {
  background: var(--bt-surface-soft);
  border: 1px solid var(--bt-line);
  border-radius: 18px;
  padding: 1.4rem;
  position: sticky;
  top: 110px;
}

.v2-registration-aside h3 {
  font-size: 1.05rem;
}

.v2-registration-aside ol {
  margin: 0;
  padding-left: 1.2rem;
}

.v2-registration-aside li {
  margin: .55rem 0;
}

.v2-registration-aside .policy-links {
  border-top: 1px solid var(--bt-line);
  margin-top: 1rem;
  padding-top: 1rem;
}

body.v2-site .bt-registration-form {
  background: #fff;
  border: 1px solid var(--bt-line);
  border-radius: 20px;
  box-shadow: var(--bt-shadow-small);
  padding: clamp(1.3rem, 3vw, 2rem);
}

body.v2-site .bt-cohort-summary {
  background: var(--bt-surface-soft);
  border-color: var(--bt-line);
}

body.v2-site .bt-acknowledgments label {
  background: var(--bt-surface-soft);
  border: 1px solid var(--bt-line);
  border-radius: 12px;
  color: var(--bt-copy);
  margin-bottom: 10px;
  padding: 12px 14px;
}

/* Footer */
body.v2-site .v2-footer {
  background: var(--bt-ink);
  color: rgba(255,255,255,.68);
  padding: 4.5rem 0 2rem;
}

body.v2-site .v2-footer h3 {
  color: #fff;
  font-size: .96rem;
  letter-spacing: .01em;
}

.v2-footer-grid {
  display: grid;
  gap: 34px;
  grid-template-columns: 1.45fr .8fr .8fr .9fr;
}

.v2-footer-brand img {
  background: #fff;
  border-radius: 10px;
  display: block;
  margin-bottom: 1.2rem;
  max-width: 190px;
  padding: 7px;
}

.v2-footer .footer-nav {
  list-style: none;
  margin: 0;
  padding: 0;
}

.v2-footer .footer-nav li {
  margin: .42rem 0;
}

.v2-footer a {
  border-bottom: 0 !important;
  color: rgba(255,255,255,.78);
}

.v2-footer a:hover {
  color: #fff;
}

.v2-footer-bottom {
  align-items: center;
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex;
  gap: 20px;
  justify-content: space-between;
  margin-top: 2.5rem;
  padding-top: 1.4rem;
}

.v2-footer-bottom p {
  font-size: .78rem;
  margin: 0;
}

.v2-footer-bottom nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
}

.v2-footer-bottom nav a {
  font-size: .76rem;
}

@media screen and (max-width: 1100px) {
  body.v2-site #sidebar > .inner {
    min-height: 76px;
  }

  body.v2-site .mobile-menu-toggle {
    display: inline-flex;
  }

  body.v2-site #sidebar nav {
    background: #fff;
    border: 1px solid var(--bt-line);
    border-radius: 16px;
    box-shadow: var(--bt-shadow);
    display: none;
    left: 20px;
    padding: 10px;
    position: absolute;
    right: 20px;
    top: calc(100% + 8px);
  }

  body.v2-site #sidebar.menu-open nav {
    display: block;
  }

  body.v2-site #sidebar nav > ul {
    align-items: stretch;
    display: grid;
    gap: 3px;
  }

  body.v2-site #sidebar nav a {
    padding: .8rem 1rem;
  }

  body.v2-site #sidebar nav .nav-portal a,
  body.v2-site #sidebar nav .nav-register a {
    margin-left: 0;
  }

  .v2-hero-grid,
  .v2-program-feature,
  .v2-section-heading,
  .v2-registration-layout {
    grid-template-columns: 1fr;
  }

  .v2-registration-aside {
    position: static;
  }

  .v2-trust-strip .inner,
  .v2-metric-row,
  .v2-step-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .v2-footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .v2-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media screen and (max-width: 736px) {
  body.v2-site #sidebar > .inner {
    min-height: 70px;
    padding: 8px 18px;
  }

  body.v2-site .academy-mark {
    flex-basis: 154px;
    width: 154px;
  }

  body.v2-site .academy-mark-logo {
    max-height: 48px;
    max-width: 154px;
  }

  body.v2-site .wrapper > .inner,
  body.v2-site #footer > .inner {
    padding-left: 20px;
    padding-right: 20px;
  }

  body.v2-site .page-hero {
    padding: 4.6rem 0 4rem;
  }

  .v2-home-hero {
    padding: 4.5rem 0 4rem;
  }

  .v2-home-hero h1 {
    font-size: clamp(2.65rem, 12vw, 4.1rem);
  }

  .v2-trust-strip .inner,
  .v2-metric-row,
  .v2-step-grid,
  .v2-resource-grid,
  body.v2-site .cohort-public-grid,
  .v2-footer-grid {
    grid-template-columns: 1fr;
  }

  .v2-trust-item {
    border-left: 0;
    border-top: 1px solid var(--bt-line);
    padding-left: 0;
    padding-right: 0;
  }

  .v2-trust-item:first-child {
    border-top: 0;
  }

  .v2-hero-proof {
    padding: 1.25rem;
  }

  .v2-footer-bottom nav {
    display: grid;
  }
}

/* Homepage hero refinement — live review 2026-10-03 */
.v2-home-hero .inner {
  box-sizing: border-box;
  margin: 0 auto;
  max-width: 1240px;
  padding-left: 40px;
  padding-right: 40px;
  width: 100%;
}

.v2-hero-grid {
  align-items: center;
  gap: clamp(2.25rem, 4vw, 4.25rem);
  grid-template-columns: minmax(0, 1.18fr) minmax(300px, .82fr);
}

.v2-home-hero h1 {
  font-size: clamp(3rem, 4.55vw, 4.55rem);
  line-height: 1.015;
  max-width: 760px;
}

.v2-home-hero .lead {
  font-size: clamp(1.02rem, 1.45vw, 1.2rem);
  max-width: 720px;
}

.v2-hero-proof {
  justify-self: end;
  max-width: 360px;
  width: 100%;
}

.v2-home-hero {
  padding-bottom: 4.8rem;
  padding-top: 5rem;
}

@media screen and (max-width: 1100px) {
  .v2-home-hero .inner {
    padding-left: 28px;
    padding-right: 28px;
  }

  .v2-hero-grid {
    grid-template-columns: 1fr;
  }

  .v2-hero-proof {
    justify-self: start;
    max-width: 620px;
  }

  .v2-home-hero h1 {
    max-width: 820px;
  }
}

@media screen and (max-width: 736px) {
  .v2-home-hero .inner {
    padding-left: 20px;
    padding-right: 20px;
  }

  .v2-home-hero {
    padding-bottom: 3.7rem;
    padding-top: 3.8rem;
  }

  .v2-home-hero h1 {
    font-size: clamp(2.55rem, 11vw, 3.75rem);
    line-height: 1.02;
  }
}

/* Center the two-line Training Portal navigation button label. */
body.v2-site #sidebar nav .nav-portal a {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: 58px;
  text-align: center;
}

/* Normalize and center every primary navigation item. */
body.v2-site #sidebar nav > ul > li {
  align-items: stretch;
  display: flex;
}

body.v2-site #sidebar nav a {
  align-items: center;
  display: flex;
  justify-content: center;
  line-height: 1.2;
  min-height: 58px;
  text-align: center;
  width: 100%;
}

/* Keep pill-style actions centered with the same baseline as the other links. */
body.v2-site #sidebar nav .nav-portal a,
body.v2-site #sidebar nav .nav-register a {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: 58px;
  text-align: center;
}

@media screen and (max-width: 1100px) {
  body.v2-site #sidebar nav > ul > li {
    display: block;
  }

  body.v2-site #sidebar nav a {
    justify-content: flex-start;
    min-height: 0;
    text-align: left;
  }

  body.v2-site #sidebar nav .nav-portal a,
  body.v2-site #sidebar nav .nav-register a {
    justify-content: flex-start;
    min-height: 0;
    text-align: left;
  }
}

/* Provider-program dark card contrast and heading refinement. */
body.v2-site .v2-program-main,
body.v2-site .wrapper.style2 .v2-program-main,
body.v2-site .wrapper.style3 .v2-program-main {
  color: rgba(255,255,255,.88);
}

body.v2-site .v2-program-main h2,
body.v2-site .v2-program-main h3,
body.v2-site .v2-program-main h4,
body.v2-site .v2-program-main strong,
body.v2-site .wrapper.style2 .v2-program-main h2,
body.v2-site .wrapper.style2 .v2-program-main h3,
body.v2-site .wrapper.style2 .v2-program-main h4,
body.v2-site .wrapper.style2 .v2-program-main strong,
body.v2-site .wrapper.style3 .v2-program-main h2,
body.v2-site .wrapper.style3 .v2-program-main h3,
body.v2-site .wrapper.style3 .v2-program-main h4,
body.v2-site .wrapper.style3 .v2-program-main strong {
  color: #fff;
}

body.v2-site .v2-program-main .course-format,
body.v2-site .wrapper.style2 .v2-program-main .course-format,
body.v2-site .wrapper.style3 .v2-program-main .course-format {
  color: #cbd8be;
}

body.v2-site .v2-program-main p,
body.v2-site .v2-program-main li,
body.v2-site .v2-program-main span {
  color: rgba(255,255,255,.86);
}

body.v2-site .v2-program-main .v2-metric {
  background: rgba(255,255,255,.09);
  border-color: rgba(255,255,255,.17);
}

body.v2-site .v2-program-main .v2-metric strong {
  color: #fff;
}

body.v2-site .v2-program-main .button:not(.primary),
body.v2-site .wrapper.style2 .v2-program-main .button:not(.primary),
body.v2-site .wrapper.style3 .v2-program-main .button:not(.primary) {
  border-color: rgba(255,255,255,.34);
  color: #fff !important;
}

body.v2-site .v2-program-main .button:not(.primary):hover,
body.v2-site .wrapper.style2 .v2-program-main .button:not(.primary):hover,
body.v2-site .wrapper.style3 .v2-program-main .button:not(.primary):hover {
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.55);
  color: #fff !important;
}

body.v2-site .v2-section-heading h2 br {
  display: block;
}

/* V2 navigation architecture — Programs / Requirements / Resources / About */
body.v2-site #sidebar > .inner {
  overflow: visible;
}

body.v2-site #academy-navigation {
  overflow: visible;
}

body.v2-site #sidebar nav > ul.nav-primary {
  align-items: center;
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  overflow: visible;
}

body.v2-site #sidebar nav > ul.nav-primary > li {
  align-items: stretch;
  display: flex;
  margin: 0;
  opacity: 1;
  position: relative;
  transform: none;
}

body.v2-site #sidebar nav > ul.nav-primary > li > a,
body.v2-site #sidebar .nav-dropdown-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 999px;
  box-shadow: none;
  color: #405049;
  cursor: pointer;
  display: inline-flex;
  font-family: inherit;
  font-size: .79rem;
  font-weight: 700;
  gap: 6px;
  justify-content: center;
  letter-spacing: .02em;
  line-height: 1.2;
  min-height: 52px;
  padding: .72rem .88rem;
  text-align: center;
  text-transform: none;
  white-space: nowrap;
  width: auto;
}

body.v2-site #sidebar .nav-dropdown-toggle:hover,
body.v2-site #sidebar .nav-dropdown-toggle:focus-visible,
body.v2-site #sidebar nav > ul.nav-primary > li > a:hover,
body.v2-site #sidebar nav > ul.nav-primary > li > a:focus-visible,
body.v2-site #sidebar .nav-dropdown.active > .nav-dropdown-toggle,
body.v2-site #sidebar .nav-direct > a.active {
  background: var(--bt-surface-soft);
  color: var(--bt-primary);
}

body.v2-site #sidebar .nav-chevron {
  color: var(--bt-accent-dark);
  font-size: .72rem;
  line-height: 1;
  transform: translateY(-1px);
  transition: transform .18s ease;
}

body.v2-site #sidebar .nav-dropdown.submenu-open > .nav-dropdown-toggle .nav-chevron,
body.v2-site #sidebar .nav-dropdown:hover > .nav-dropdown-toggle .nav-chevron,
body.v2-site #sidebar .nav-dropdown:focus-within > .nav-dropdown-toggle .nav-chevron {
  transform: rotate(180deg);
}

body.v2-site #sidebar .nav-dropdown-panel {
  background: #fff;
  border: 1px solid var(--bt-line);
  border-radius: 16px;
  box-shadow: 0 18px 50px rgba(23,39,33,.16);
  display: none;
  left: 50%;
  min-width: 315px;
  padding: 9px;
  position: absolute;
  top: calc(100% + 8px);
  transform: translateX(-50%);
  z-index: 10020;
}

body.v2-site #sidebar .nav-dropdown-panel-wide {
  min-width: 355px;
}

body.v2-site #sidebar .nav-dropdown-panel-about {
  min-width: 320px;
}

body.v2-site #sidebar .nav-dropdown:hover > .nav-dropdown-panel,
body.v2-site #sidebar .nav-dropdown:focus-within > .nav-dropdown-panel,
body.v2-site #sidebar .nav-dropdown.submenu-open > .nav-dropdown-panel {
  display: grid;
}

body.v2-site #sidebar .nav-dropdown-panel a {
  align-items: flex-start;
  border: 0;
  border-radius: 11px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  justify-content: flex-start;
  min-height: 0;
  padding: 10px 12px;
  text-align: left;
  white-space: normal;
  width: 100%;
}

body.v2-site #sidebar .nav-dropdown-panel a:hover,
body.v2-site #sidebar .nav-dropdown-panel a:focus,
body.v2-site #sidebar .nav-dropdown-panel a[aria-current="page"] {
  background: var(--bt-surface-soft);
}

body.v2-site #sidebar .nav-dropdown-panel a strong {
  color: var(--bt-ink);
  font-size: .83rem;
  line-height: 1.3;
}

body.v2-site #sidebar .nav-dropdown-panel a span {
  color: var(--bt-muted);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.35;
}

body.v2-site #sidebar nav .nav-portal a {
  border: 1px solid var(--bt-line);
  margin-left: 8px;
  min-width: 128px;
}

body.v2-site #sidebar nav .nav-register a {
  background: var(--bt-accent);
  color: var(--bt-ink) !important;
  min-width: 92px;
  padding-left: 1rem;
  padding-right: 1rem;
}

body.v2-site #sidebar nav .nav-register a:hover,
body.v2-site #sidebar nav .nav-register a:focus-visible,
body.v2-site #sidebar nav .nav-register.active a {
  background: #9bad84;
}

@media screen and (min-width: 1101px) {
  body.v2-site #sidebar .nav-dropdown-panel:before {
    border-bottom: 7px solid #fff;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    content: "";
    left: 50%;
    position: absolute;
    top: -7px;
    transform: translateX(-50%);
  }
}

@media screen and (max-width: 1100px) {
  body.v2-site #sidebar nav > ul.nav-primary {
    align-items: stretch;
    display: grid;
    gap: 4px;
  }

  body.v2-site #sidebar nav > ul.nav-primary > li {
    display: block;
  }

  body.v2-site #sidebar nav > ul.nav-primary > li > a,
  body.v2-site #sidebar .nav-dropdown-toggle {
    border-radius: 10px;
    justify-content: space-between;
    min-height: 0;
    padding: .82rem 1rem;
    text-align: left;
    width: 100%;
  }

  body.v2-site #sidebar .nav-dropdown-panel,
  body.v2-site #sidebar .nav-dropdown-panel-wide,
  body.v2-site #sidebar .nav-dropdown-panel-about {
    background: var(--bt-surface-soft);
    border: 0;
    border-radius: 10px;
    box-shadow: none;
    left: auto;
    margin: 3px 0 8px;
    min-width: 0;
    padding: 6px;
    position: static;
    top: auto;
    transform: none;
    width: 100%;
  }

  body.v2-site #sidebar .nav-dropdown:hover > .nav-dropdown-panel,
  body.v2-site #sidebar .nav-dropdown:focus-within > .nav-dropdown-panel {
    display: none;
  }

  body.v2-site #sidebar .nav-dropdown.submenu-open > .nav-dropdown-panel {
    display: grid;
  }

  body.v2-site #sidebar .nav-dropdown-panel a {
    padding: 9px 11px;
  }

  body.v2-site #sidebar nav .nav-portal a,
  body.v2-site #sidebar nav .nav-register a {
    justify-content: center;
    margin: 5px 0 0;
    min-width: 0;
    text-align: center;
  }
}

/* Navigation visibility + action-button correction.
   Explicitly override legacy template button/link rules. */
body.v2-site #sidebar .nav-dropdown-toggle,
body.v2-site #sidebar button.nav-dropdown-toggle {
  -webkit-appearance: none;
  appearance: none;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #405049 !important;
  font-family: inherit !important;
  font-size: .79rem !important;
  font-weight: 700 !important;
  height: auto !important;
  letter-spacing: .02em !important;
  line-height: 1.2 !important;
  min-width: 0 !important;
  padding: .72rem .88rem !important;
  text-indent: 0 !important;
  text-shadow: none !important;
  text-transform: none !important;
}

body.v2-site #sidebar .nav-dropdown-toggle > span:first-child {
  color: #405049 !important;
  display: inline !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  opacity: 1 !important;
  text-indent: 0 !important;
  visibility: visible !important;
}

body.v2-site #sidebar .nav-dropdown-toggle:hover > span:first-child,
body.v2-site #sidebar .nav-dropdown-toggle:focus-visible > span:first-child,
body.v2-site #sidebar .nav-dropdown.active > .nav-dropdown-toggle > span:first-child {
  color: var(--bt-primary) !important;
}

body.v2-site #sidebar .nav-chevron {
  color: var(--bt-accent-dark) !important;
  display: inline-block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Restore explicit action-button treatments. */
body.v2-site #sidebar nav > ul.nav-primary > li.nav-portal > a {
  align-items: center !important;
  background: #fff !important;
  border: 1px solid var(--bt-line) !important;
  border-radius: 999px !important;
  color: var(--bt-primary) !important;
  display: flex !important;
  justify-content: center !important;
  margin-left: 8px !important;
  min-height: 52px !important;
  min-width: 128px !important;
  padding: .72rem 1rem !important;
  text-align: center !important;
}

body.v2-site #sidebar nav > ul.nav-primary > li.nav-portal > a:hover,
body.v2-site #sidebar nav > ul.nav-primary > li.nav-portal > a:focus-visible {
  background: var(--bt-surface-soft) !important;
  border-color: #cbd6cc !important;
}

body.v2-site #sidebar nav > ul.nav-primary > li.nav-register > a {
  align-items: center !important;
  background: var(--bt-accent) !important;
  border: 1px solid var(--bt-accent) !important;
  border-radius: 999px !important;
  color: var(--bt-ink) !important;
  display: flex !important;
  justify-content: center !important;
  margin-left: 0 !important;
  min-height: 52px !important;
  min-width: 92px !important;
  padding: .72rem 1.05rem !important;
  text-align: center !important;
}

body.v2-site #sidebar nav > ul.nav-primary > li.nav-register > a:hover,
body.v2-site #sidebar nav > ul.nav-primary > li.nav-register > a:focus-visible {
  background: #9bad84 !important;
  border-color: #9bad84 !important;
}

/* Keep direct navigation visually aligned with dropdown controls. */
body.v2-site #sidebar nav > ul.nav-primary > li.nav-direct > a {
  min-height: 52px !important;
  padding: .72rem .88rem !important;
}

@media screen and (max-width: 1100px) {
  body.v2-site #sidebar .nav-dropdown-toggle,
  body.v2-site #sidebar button.nav-dropdown-toggle {
    justify-content: space-between !important;
    padding: .82rem 1rem !important;
    width: 100% !important;
  }

  body.v2-site #sidebar nav > ul.nav-primary > li.nav-portal > a,
  body.v2-site #sidebar nav > ul.nav-primary > li.nav-register > a {
    margin: 5px 0 0 !important;
    min-width: 0 !important;
    width: 100% !important;
  }
}

/* Explicit Home navigation item. */
body.v2-site #sidebar .nav-home > a.active {
  background: var(--bt-surface-soft);
  color: var(--bt-primary) !important;
}

/* ============================================================
   Bridging Training V2 — Global Typography System
   Overrides legacy HTML5 UP large-screen body sizing.
   ============================================================ */

body.v2-site {
  font-size: 17px !important;
  line-height: 1.65;
}

/* Prevent the legacy template from increasing normal UI/form text to 16.5pt
   on wide desktop screens. */
body.v2-site input,
body.v2-site select,
body.v2-site textarea {
  font-size: 16px !important;
  line-height: 1.5;
}

/* Base reading copy */
body.v2-site p,
body.v2-site li,
body.v2-site dd,
body.v2-site dt,
body.v2-site address,
body.v2-site table {
  font-size: 1rem;
  line-height: 1.65;
}

/* Keep supporting/intro copy readable without becoming oversized. */
body.v2-site .lead,
body.v2-site .v2-section-heading p,
body.v2-site .page-intro,
body.v2-site .intro {
  font-size: 1.02rem;
  line-height: 1.65;
}

/* Section-title scale. Hero titles keep their dedicated larger rules. */
body.v2-site .v2-section-heading h2,
body.v2-site .inner > h2:not(.hero-title) {
  font-size: clamp(2rem, 2.35vw, 2.4rem);
  line-height: 1.16;
}

/* Standard card typography */
body.v2-site .academy-card h3,
body.v2-site .v2-resource-card h3,
body.v2-site .v2-step h3,
body.v2-site .cohort-public-card h3,
body.v2-site .next-cohort-card h3,
body.v2-site .v2-registration-aside h3 {
  font-size: 1.12rem;
  line-height: 1.3;
}

body.v2-site .academy-card p,
body.v2-site .academy-card li,
body.v2-site .v2-resource-card p,
body.v2-site .v2-resource-card li,
body.v2-site .v2-step p,
body.v2-site .v2-step li,
body.v2-site .cohort-public-card p,
body.v2-site .cohort-public-card li,
body.v2-site .next-cohort-card p,
body.v2-site .next-cohort-card li,
body.v2-site .v2-registration-aside p,
body.v2-site .v2-registration-aside li {
  font-size: .96rem;
  line-height: 1.6;
}

/* Card/action links should read like controls, not body-size headlines. */
body.v2-site .v2-resource-card > a,
body.v2-site .academy-card > a,
body.v2-site .cohort-public-card a,
body.v2-site .next-cohort-card a {
  font-size: .94rem;
  line-height: 1.4;
}

/* Buttons and action controls */
body.v2-site .button,
body.v2-site a.button,
body.v2-site button:not(.nav-dropdown-toggle):not(.mobile-menu-toggle),
body.v2-site input[type="submit"] {
  font-size: .82rem;
  line-height: 1.2;
}

/* Form labels and helper text */
body.v2-site label,
body.v2-site .bt-field label {
  font-size: .94rem;
  line-height: 1.4;
}

body.v2-site small,
body.v2-site .muted,
body.v2-site .helper-text,
body.v2-site .form-help {
  font-size: .84rem;
  line-height: 1.5;
}

/* Eyebrows / overlines remain intentionally compact. */
body.v2-site .eyebrow,
body.v2-site .course-format,
body.v2-site .v2-proof-label {
  font-size: .74rem;
  line-height: 1.35;
}

/* Metrics stay prominent without inheriting body inflation. */
body.v2-site .v2-metric strong,
body.v2-site .program-stat strong {
  font-size: 1.25rem;
}

body.v2-site .v2-metric span,
body.v2-site .program-stat span {
  font-size: .9rem;
  line-height: 1.45;
}

/* Footer should stay compact. */
body.v2-site .v2-footer,
body.v2-site .v2-footer p,
body.v2-site .v2-footer li,
body.v2-site .v2-footer address {
  font-size: .9rem;
  line-height: 1.55;
}

body.v2-site .v2-footer h3 {
  font-size: .94rem;
}

/* Tablet */
@media screen and (max-width: 1100px) {
  body.v2-site {
    font-size: 16.5px !important;
  }

  body.v2-site .v2-section-heading h2,
  body.v2-site .inner > h2:not(.hero-title) {
    font-size: clamp(1.9rem, 4vw, 2.25rem);
  }
}

/* Phone */
@media screen and (max-width: 736px) {
  body.v2-site {
    font-size: 16px !important;
  }

  body.v2-site p,
  body.v2-site li,
  body.v2-site dd,
  body.v2-site dt,
  body.v2-site address {
    line-height: 1.62;
  }

  body.v2-site .v2-section-heading h2,
  body.v2-site .inner > h2:not(.hero-title) {
    font-size: clamp(1.75rem, 8vw, 2.05rem);
  }

  body.v2-site .academy-card h3,
  body.v2-site .v2-resource-card h3,
  body.v2-site .v2-step h3,
  body.v2-site .cohort-public-card h3,
  body.v2-site .next-cohort-card h3 {
    font-size: 1.08rem;
  }
}

/* ============================================================
   Bridging Training V2 — Portal-Scale Typography Refinement
   Uses Portal V2's denser 16px reading scale as the benchmark.
   ============================================================ */

body.v2-site {
  font-size: 16px !important;
  line-height: 1.6;
}

body.v2-site input,
body.v2-site select,
body.v2-site textarea {
  font-size: 16px !important;
  line-height: 1.5;
}

/* General reading copy */
body.v2-site p,
body.v2-site li,
body.v2-site dd,
body.v2-site dt,
body.v2-site address,
body.v2-site table {
  font-size: 1rem;
  line-height: 1.6;
}

/* Supporting intro copy */
body.v2-site .lead,
body.v2-site .v2-section-heading p,
body.v2-site .page-intro,
body.v2-site .intro {
  font-size: 1rem;
  line-height: 1.6;
}

/* Public section headings: slightly larger than Portal V2, but same visual density. */
body.v2-site .v2-section-heading h2,
body.v2-site .inner > h2:not(.hero-title) {
  font-size: clamp(1.9rem, 2.15vw, 2.15rem);
  line-height: 1.18;
}

/* Card titles */
body.v2-site .academy-card h3,
body.v2-site .v2-resource-card h3,
body.v2-site .v2-step h3,
body.v2-site .cohort-public-card h3,
body.v2-site .next-cohort-card h3,
body.v2-site .v2-registration-aside h3 {
  font-size: 1.125rem;
  line-height: 1.3;
}

/* Card and panel body copy */
body.v2-site .academy-card p,
body.v2-site .academy-card li,
body.v2-site .v2-resource-card p,
body.v2-site .v2-resource-card li,
body.v2-site .v2-step p,
body.v2-site .v2-step li,
body.v2-site .cohort-public-card p,
body.v2-site .cohort-public-card li,
body.v2-site .next-cohort-card p,
body.v2-site .next-cohort-card li,
body.v2-site .v2-registration-aside p,
body.v2-site .v2-registration-aside li {
  font-size: .98rem;
  line-height: 1.58;
}

/* Card/action links */
body.v2-site .v2-resource-card > a,
body.v2-site .academy-card > a,
body.v2-site .cohort-public-card a,
body.v2-site .next-cohort-card a {
  font-size: .95rem;
  line-height: 1.4;
}

/* Buttons and controls */
body.v2-site .button,
body.v2-site a.button,
body.v2-site button:not(.nav-dropdown-toggle):not(.mobile-menu-toggle),
body.v2-site input[type="submit"] {
  font-size: .875rem;
  line-height: 1.2;
}

/* Labels / helper copy */
body.v2-site label,
body.v2-site .bt-field label {
  font-size: .94rem;
}

body.v2-site small,
body.v2-site .muted,
body.v2-site .helper-text,
body.v2-site .form-help {
  font-size: .84rem;
}

/* Compact visual labels */
body.v2-site .eyebrow,
body.v2-site .course-format,
body.v2-site .v2-proof-label {
  font-size: .74rem;
}

/* Metrics */
body.v2-site .v2-metric strong,
body.v2-site .program-stat strong {
  font-size: 1.2rem;
}

body.v2-site .v2-metric span,
body.v2-site .program-stat span {
  font-size: .88rem;
}

/* Footer */
body.v2-site .v2-footer,
body.v2-site .v2-footer p,
body.v2-site .v2-footer li,
body.v2-site .v2-footer address {
  font-size: .88rem;
  line-height: 1.5;
}

body.v2-site .v2-footer h3 {
  font-size: .94rem;
}

/* Keep phone text at a true 16px for readability and input zoom prevention. */
@media screen and (max-width: 736px) {
  body.v2-site {
    font-size: 16px !important;
  }

  body.v2-site .v2-section-heading h2,
  body.v2-site .inner > h2:not(.hero-title) {
    font-size: clamp(1.75rem, 8vw, 2rem);
  }
}

/* ============================================================
   Bridging Training V2 — Global Button Alignment
   Fixes vertical centering after Portal-scale typography update.
   ============================================================ */

body.v2-site .button,
body.v2-site a.button,
body.v2-site input[type="submit"],
body.v2-site button:not(.nav-dropdown-toggle):not(.mobile-menu-toggle) {
  align-items: center !important;
  box-sizing: border-box;
  display: inline-flex !important;
  justify-content: center !important;
  line-height: 1.2 !important;
  min-height: 52px;
  padding: .82rem 1.5rem !important;
  text-align: center !important;
  vertical-align: middle;
}

/* Keep CTA groups aligned cleanly when buttons have different label lengths. */
body.v2-site ul.actions {
  align-items: stretch;
}

body.v2-site ul.actions li {
  display: flex;
}

body.v2-site ul.actions li > .button {
  align-items: center !important;
  display: inline-flex !important;
  justify-content: center !important;
}

/* Homepage hero CTAs get equal visual height. */
body.v2-site .v2-hero-actions .button {
  min-height: 54px;
}

/* Preserve full-width submit buttons where a form already requests them. */
body.v2-site input[type="submit"].fit,
body.v2-site button.fit,
body.v2-site .button.fit {
  width: 100%;
}

/* ============================================================
   Bridging Training V2 — Legacy Content Component Normalization
   Migrated V1 components originally assumed dark page backgrounds.
   Normalize them when used inside V2 light sections.
   ============================================================ */

/* Numbered requirement/module cards */
body.v2-site .wrapper.style2 .module-list li,
body.v2-site .wrapper.style3 .module-list li {
  background: #fff;
  border: 1px solid var(--bt-line);
  border-radius: 14px;
  box-shadow: var(--bt-shadow-small);
  color: var(--bt-copy);
}

body.v2-site .wrapper.style2 .module-list li strong,
body.v2-site .wrapper.style3 .module-list li strong {
  color: var(--bt-ink) !important;
}

body.v2-site .wrapper.style2 .module-list li:before,
body.v2-site .wrapper.style3 .module-list li:before {
  background: var(--bt-accent);
  color: var(--bt-ink);
}

/* Numbered process / step cards */
body.v2-site .wrapper.style2 .numbered-steps li,
body.v2-site .wrapper.style3 .numbered-steps li {
  background: #fff;
  border: 1px solid var(--bt-line);
  border-radius: 14px;
  box-shadow: var(--bt-shadow-small);
  color: var(--bt-copy);
}

body.v2-site .wrapper.style2 .numbered-steps li strong,
body.v2-site .wrapper.style3 .numbered-steps li strong {
  color: var(--bt-ink) !important;
}

body.v2-site .wrapper.style2 .numbered-steps li:before,
body.v2-site .wrapper.style3 .numbered-steps li:before {
  background: var(--bt-accent);
  color: var(--bt-ink);
}

/* Legacy resource cards */
body.v2-site .wrapper.style2 .resource-card,
body.v2-site .wrapper.style3 .resource-card {
  background: #fff;
  border: 1px solid var(--bt-line);
  border-radius: 14px;
  box-shadow: var(--bt-shadow-small);
  color: var(--bt-copy);
}

body.v2-site .wrapper.style2 .resource-card h2,
body.v2-site .wrapper.style2 .resource-card h3,
body.v2-site .wrapper.style2 .resource-card h4,
body.v2-site .wrapper.style3 .resource-card h2,
body.v2-site .wrapper.style3 .resource-card h3,
body.v2-site .wrapper.style3 .resource-card h4 {
  color: var(--bt-ink) !important;
}

body.v2-site .wrapper.style2 .resource-meta,
body.v2-site .wrapper.style3 .resource-meta {
  color: var(--bt-muted) !important;
}

/* Legacy FAQ accordions */
body.v2-site .wrapper.style2 details.faq-item,
body.v2-site .wrapper.style3 details.faq-item {
  background: #fff;
  border: 1px solid var(--bt-line);
  border-radius: 14px;
  box-shadow: var(--bt-shadow-small);
  color: var(--bt-copy);
}

body.v2-site .wrapper.style2 details.faq-item summary,
body.v2-site .wrapper.style3 details.faq-item summary {
  color: var(--bt-ink) !important;
}

body.v2-site .wrapper.style2 details.faq-item summary:after,
body.v2-site .wrapper.style3 details.faq-item summary:after {
  color: var(--bt-accent-dark);
}

body.v2-site .wrapper.style2 .faq-answer,
body.v2-site .wrapper.style3 .faq-answer {
  border-top-color: var(--bt-line);
  color: var(--bt-copy);
}

/* Light-section direct/contact text */
body.v2-site .wrapper.style2 .contact-direct strong,
body.v2-site .wrapper.style3 .contact-direct strong {
  color: var(--bt-ink) !important;
}

/* Light-section legacy links should remain clearly visible. */
body.v2-site .wrapper.style2 .module-list a,
body.v2-site .wrapper.style2 .numbered-steps a,
body.v2-site .wrapper.style2 .resource-card a,
body.v2-site .wrapper.style3 .module-list a,
body.v2-site .wrapper.style3 .numbered-steps a,
body.v2-site .wrapper.style3 .resource-card a {
  color: var(--bt-primary);
}

/* Mobile: retain readable spacing when two-column legacy lists collapse. */
@media screen and (max-width: 736px) {
  body.v2-site .module-list {
    gap: 12px;
  }

  body.v2-site .module-list li,
  body.v2-site .numbered-steps li {
    padding-right: 1rem;
  }
}

/* ============================================================
   Bridging Training V2 — Light Content + Form Compatibility
   Final override for migrated V1 components on white/light V2 sections.
   ============================================================ */

/* ---------- Numbered provider requirements / module lists ---------- */
body.v2-site .module-list {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.v2-site .module-list li {
  background: #fff !important;
  border: 1px solid var(--bt-line) !important;
  border-radius: 14px !important;
  box-shadow: var(--bt-shadow-small) !important;
  color: var(--bt-copy) !important;
  min-height: 92px;
  padding: 1.15rem 1.2rem 1.15rem 4.1rem !important;
}

body.v2-site .module-list li strong {
  color: var(--bt-ink) !important;
  display: block;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.45;
  margin-bottom: .25rem;
}

body.v2-site .module-list li:before {
  align-items: center;
  background: var(--bt-accent) !important;
  color: var(--bt-ink) !important;
  display: flex;
  height: 2.15rem;
  justify-content: center;
  left: 1rem;
  top: 1rem;
  width: 2.15rem;
}

body.v2-site .module-list li,
body.v2-site .module-list li p,
body.v2-site .module-list li span,
body.v2-site .module-list li a {
  font-size: .96rem;
  line-height: 1.55;
}

body.v2-site .module-list li a {
  color: var(--bt-primary) !important;
}

/* ---------- Numbered legacy process lists ---------- */
body.v2-site .numbered-steps li {
  background: #fff !important;
  border: 1px solid var(--bt-line) !important;
  border-radius: 14px !important;
  box-shadow: var(--bt-shadow-small) !important;
  color: var(--bt-copy) !important;
}

body.v2-site .numbered-steps li strong,
body.v2-site .numbered-steps li span {
  color: var(--bt-ink) !important;
}

body.v2-site .numbered-steps li:before {
  background: var(--bt-accent) !important;
  color: var(--bt-ink) !important;
}

/* ---------- Public form labels ---------- */
body.v2-site .wrapper.style2 label,
body.v2-site .wrapper.style3 label,
body.v2-site form label {
  color: var(--bt-ink) !important;
  font-size: .94rem;
  font-weight: 700;
  line-height: 1.4;
}

body.v2-site .wrapper.style2 .required,
body.v2-site .wrapper.style3 .required,
body.v2-site form .required {
  color: var(--bt-accent-dark) !important;
  font-weight: 800;
}

/* Inputs / selects / textareas on light sections */
body.v2-site .wrapper.style2 input[type="text"],
body.v2-site .wrapper.style2 input[type="email"],
body.v2-site .wrapper.style2 input[type="tel"],
body.v2-site .wrapper.style2 select,
body.v2-site .wrapper.style2 textarea,
body.v2-site .wrapper.style3 input[type="text"],
body.v2-site .wrapper.style3 input[type="email"],
body.v2-site .wrapper.style3 input[type="tel"],
body.v2-site .wrapper.style3 select,
body.v2-site .wrapper.style3 textarea {
  background: #fff !important;
  border: 1px solid #cad5cc !important;
  color: var(--bt-ink) !important;
}

body.v2-site .wrapper.style2 select option,
body.v2-site .wrapper.style3 select option {
  background: #fff !important;
  color: var(--bt-ink) !important;
}

body.v2-site .wrapper.style2 input::placeholder,
body.v2-site .wrapper.style2 textarea::placeholder,
body.v2-site .wrapper.style3 input::placeholder,
body.v2-site .wrapper.style3 textarea::placeholder {
  color: #7b8781 !important;
  opacity: 1;
}

/* Checkbox acknowledgments */
body.v2-site .wrapper.style2 .checkbox-block label,
body.v2-site .wrapper.style3 .checkbox-block label {
  color: var(--bt-copy) !important;
  font-size: .92rem;
  font-weight: 500;
  line-height: 1.5;
}

body.v2-site .wrapper.style2 .checkbox-block label a,
body.v2-site .wrapper.style3 .checkbox-block label a {
  color: var(--bt-primary) !important;
}

/* Form helper copy */
body.v2-site .wrapper.style2 .form-help,
body.v2-site .wrapper.style3 .form-help {
  color: var(--bt-muted) !important;
  font-size: .84rem;
}

/* ---------- Direct Contact labels ---------- */
body.v2-site .contact-direct strong {
  color: var(--bt-ink) !important;
  display: block;
  font-weight: 700;
}

body.v2-site .contact-direct span,
body.v2-site .contact-direct a {
  color: var(--bt-copy) !important;
}

/* ---------- Legacy FAQ + resource cards ---------- */
body.v2-site .resource-card,
body.v2-site details.faq-item {
  background: #fff !important;
  border: 1px solid var(--bt-line) !important;
  color: var(--bt-copy) !important;
}

body.v2-site .resource-card h2,
body.v2-site .resource-card h3,
body.v2-site .resource-card h4,
body.v2-site details.faq-item summary {
  color: var(--bt-ink) !important;
}

body.v2-site .resource-meta,
body.v2-site .faq-answer {
  color: var(--bt-copy) !important;
}

/* ---------- Responsive ---------- */
@media screen and (max-width: 736px) {
  body.v2-site .module-list {
    grid-template-columns: 1fr;
  }

  body.v2-site .module-list li {
    min-height: 0;
    padding: 1rem 1rem 1rem 3.8rem !important;
  }

  body.v2-site .module-list li:before {
    left: .9rem;
    top: .9rem;
  }
}

/* ============================================================
   V2 Navigation: standalone Contact + ecosystem secondary CTA
   ============================================================ */

body.v2-site #sidebar .nav-contact > a.active {
  background: var(--bt-surface-soft);
  color: var(--bt-primary) !important;
}

/* Pair ecosystem CTAs: primary green + clearly outlined secondary. */
body.v2-site .v2-ecosystem .ecosystem-secondary,
body.v2-site .v2-ecosystem a.button.ecosystem-secondary {
  background: transparent !important;
  border: 1px solid var(--bt-primary) !important;
  box-shadow: inset 0 0 0 1px var(--bt-primary);
  color: var(--bt-primary) !important;
}

body.v2-site .v2-ecosystem .ecosystem-secondary:hover,
body.v2-site .v2-ecosystem .ecosystem-secondary:focus-visible {
  background: rgba(32,53,46,.06) !important;
  border-color: var(--bt-primary) !important;
  box-shadow: inset 0 0 0 1px var(--bt-primary);
  color: var(--bt-primary) !important;
}

/* ============================================================
   Bridging Training V2 — CTA / Number Badge / Checkbox Polish
   ============================================================ */

/* ---------- Consistent action rows ---------- */
body.v2-site ul.actions {
  align-items: center !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px 14px !important;
  list-style: none !important;
  margin: 1.55rem 0 0 !important;
  padding: 0 !important;
}

body.v2-site ul.actions > li {
  display: flex !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Give CTA rows slightly more breathing room after cards/notices/lists. */
body.v2-site .academy-grid + ul.actions,
body.v2-site .resource-list + ul.actions,
body.v2-site .module-list + ul.actions,
body.v2-site .numbered-steps + ul.actions,
body.v2-site .notice + ul.actions,
body.v2-site .course-option-grid + ul.actions {
  margin-top: 1.75rem !important;
}

/* ---------- Secondary / light buttons ---------- */
body.v2-site .wrapper.style2 a.button:not(.primary),
body.v2-site .wrapper.style3 a.button:not(.primary),
body.v2-site .wrapper.style2 button:not(.primary):not(.nav-dropdown-toggle):not(.mobile-menu-toggle),
body.v2-site .wrapper.style3 button:not(.primary):not(.nav-dropdown-toggle):not(.mobile-menu-toggle) {
  background: transparent !important;
  border: 1px solid var(--bt-primary) !important;
  box-shadow: inset 0 0 0 1px transparent !important;
  color: var(--bt-primary) !important;
}

body.v2-site .wrapper.style2 a.button:not(.primary):hover,
body.v2-site .wrapper.style3 a.button:not(.primary):hover,
body.v2-site .wrapper.style2 a.button:not(.primary):focus-visible,
body.v2-site .wrapper.style3 a.button:not(.primary):focus-visible {
  background: rgba(32,53,46,.06) !important;
  border-color: var(--bt-primary) !important;
  color: var(--bt-primary) !important;
}

/* Secondary buttons on dark sections use a light outline. */
body.v2-site .wrapper.style1 a.button:not(.primary),
body.v2-site .wrapper.style1 button:not(.primary):not(.nav-dropdown-toggle):not(.mobile-menu-toggle) {
  background: transparent !important;
  border: 1px solid rgba(255,255,255,.58) !important;
  color: #fff !important;
}

body.v2-site .wrapper.style1 a.button:not(.primary):hover,
body.v2-site .wrapper.style1 a.button:not(.primary):focus-visible {
  background: rgba(255,255,255,.09) !important;
  border-color: rgba(255,255,255,.82) !important;
  color: #fff !important;
}

/* Ecosystem secondary CTA stays outlined. */
body.v2-site .v2-ecosystem a.button.ecosystem-secondary {
  background: transparent !important;
  border: 1px solid var(--bt-primary) !important;
  box-shadow: none !important;
  color: var(--bt-primary) !important;
}

/* ---------- Provider requirement number circles ---------- */
body.v2-site .module-list {
  counter-reset: modules !important;
}

body.v2-site .module-list li {
  counter-increment: modules !important;
}

body.v2-site .module-list li:before {
  content: counter(modules) !important;
  counter-increment: none !important;
  align-items: center !important;
  display: flex !important;
  justify-content: center !important;
  font-family: Arial, sans-serif !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-align: center !important;
}

/* ---------- V2 checkbox / radio controls ---------- */
/* Remove dependency on the legacy Font Awesome checkmark. */
body.v2-site input[type="checkbox"] + label:before,
body.v2-site input[type="radio"] + label:before {
  background: #fff !important;
  border: 1.5px solid #aebdb1 !important;
  box-sizing: border-box;
  color: #fff !important;
  content: "" !important;
  font-family: Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  height: 20px !important;
  left: 0 !important;
  line-height: 17px !important;
  top: .08rem !important;
  width: 20px !important;
}

body.v2-site input[type="checkbox"] + label:before {
  border-radius: 4px !important;
}

body.v2-site input[type="checkbox"]:checked + label:before {
  background: var(--bt-accent-dark) !important;
  border-color: var(--bt-accent-dark) !important;
  color: #fff !important;
  content: "✓" !important;
}

body.v2-site input[type="radio"] + label:before {
  border-radius: 50% !important;
}

body.v2-site input[type="radio"]:checked + label:before {
  background:
    radial-gradient(circle at center,
      var(--bt-accent-dark) 0 4px,
      #fff 5px 100%) !important;
  border-color: var(--bt-accent-dark) !important;
  content: "" !important;
}

body.v2-site input[type="checkbox"]:focus + label:before,
body.v2-site input[type="radio"]:focus + label:before {
  border-color: var(--bt-accent-dark) !important;
  box-shadow: 0 0 0 3px rgba(132,153,109,.18) !important;
}

/* Keep checkbox copy aligned with the custom control. */
body.v2-site .checkbox-block label {
  min-height: 20px;
  padding-left: 30px !important;
}

/* ---------- Responsive action rows ---------- */
@media screen and (max-width: 736px) {
  body.v2-site ul.actions {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin-top: 1.35rem !important;
  }

  body.v2-site ul.actions > li,
  body.v2-site ul.actions > li > .button,
  body.v2-site ul.actions > li > button {
    width: 100% !important;
  }
}

/* ============================================================
   V2 Feature Icons — replace legacy Font Awesome dependency
   ============================================================ */
body.v2-site .features .feature-icon {
  align-items: center;
  background: var(--bt-accent-soft);
  border: 1px solid #d4dfca;
  border-radius: 50%;
  color: var(--bt-primary);
  display: flex;
  flex: 0 0 44px;
  height: 44px;
  justify-content: center;
  margin: 0;
  width: 44px;
}

body.v2-site .features .feature-icon svg {
  fill: none;
  height: 22px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 22px;
}

body.v2-site .features > section {
  align-items: flex-start;
  display: grid;
  gap: 6px 18px;
  grid-template-columns: 44px minmax(0, 1fr);
}

body.v2-site .features > section > .feature-icon {
  grid-column: 1;
  grid-row: 1 / span 2;
}

body.v2-site .features > section > h3,
body.v2-site .features > section > p {
  grid-column: 2;
  margin-left: 0;
}

body.v2-site .features > section > h3 {
  margin-top: 5px;
}

@media screen and (max-width: 736px) {
  body.v2-site .features > section {
    gap: 5px 14px;
    grid-template-columns: 40px minmax(0, 1fr);
  }

  body.v2-site .features .feature-icon {
    flex-basis: 40px;
    height: 40px;
    width: 40px;
  }

  body.v2-site .features .feature-icon svg {
    height: 20px;
    width: 20px;
  }
}

/* =========================================================
   2026-10-11 Production public-display readability polish
   ========================================================= */

/* Pixelarity's base stylesheet makes <strong> white globally.
   Restore dark readable text inside V2's light surfaces. */
body.v2-site .wrapper.style2 strong,
body.v2-site .wrapper.style3 strong,
body.v2-site .bt-registration-form strong,
body.v2-site .v2-registration-aside strong {
  color: var(--bt-ink);
}

/* Links inside light public panels should remain visible and recognizable. */
body.v2-site .wrapper.style2 a:not(.button),
body.v2-site .wrapper.style3 a:not(.button),
body.v2-site .bt-registration-form a:not(.button),
body.v2-site .v2-registration-aside a:not(.button) {
  color: var(--bt-accent-dark);
  border-bottom-color: rgba(101,123,85,.38);
  font-weight: 700;
}

body.v2-site .wrapper.style2 a:not(.button):hover,
body.v2-site .wrapper.style3 a:not(.button):hover,
body.v2-site .bt-registration-form a:not(.button):hover,
body.v2-site .v2-registration-aside a:not(.button):hover {
  color: var(--bt-primary);
  border-bottom-color: var(--bt-primary);
}

/* Cohort cards */
body.v2-site .cohort-public-card,
body.v2-site .next-cohort-card {
  color: var(--bt-copy);
}

body.v2-site .cohort-public-card .course-format,
body.v2-site .next-cohort-card .course-format {
  color: var(--bt-accent-dark);
  font-weight: 800;
  letter-spacing: .12em;
}

body.v2-site .cohort-public-card .cohort-detail,
body.v2-site .next-cohort-card .cohort-detail {
  color: var(--bt-copy);
}

body.v2-site .cohort-public-card .cohort-detail strong,
body.v2-site .next-cohort-card .cohort-detail strong {
  color: var(--bt-ink);
}

body.v2-site .cohort-public-card .cohort-detail {
  margin: .34rem 0;
}

body.v2-site .cohort-public-card h3,
body.v2-site .next-cohort-card h3 {
  color: var(--bt-ink);
}

/* Registration cohort summary */
body.v2-site .bt-cohort-summary {
  color: var(--bt-copy);
  border-left: 4px solid var(--bt-accent);
  padding: 1.35rem 1.45rem;
}

body.v2-site .bt-cohort-summary h2 {
  color: var(--bt-ink);
  font-size: 1.28rem;
  line-height: 1.3;
  margin-bottom: .8rem;
}

body.v2-site .bt-cohort-summary p {
  color: var(--bt-copy);
  margin: .55rem 0;
}

body.v2-site .bt-cohort-summary .bt-session-title {
  color: var(--bt-ink);
  display: block;
  margin-bottom: .12rem;
}

/* Registration acknowledgments: keep checkbox and all linked text together. */
body.v2-site .bt-acknowledgments label {
  align-items: flex-start;
  grid-template-columns: 20px minmax(0, 1fr);
  line-height: 1.55;
}

body.v2-site .bt-acknowledgments label > input[type="checkbox"] {
  margin-top: .18rem;
}

body.v2-site .bt-acknowledgments label > span {
  color: var(--bt-ink);
  display: block;
  min-width: 0;
}

body.v2-site .bt-acknowledgments label > span a {
  white-space: normal;
}

/* Registration process panel */
body.v2-site .v2-registration-aside {
  color: var(--bt-copy);
}

body.v2-site .v2-registration-aside .eyebrow {
  color: var(--bt-accent-dark);
}

body.v2-site .v2-registration-aside .policy-links strong {
  color: var(--bt-ink);
  display: block;
  margin-bottom: .35rem;
}

@media (max-width: 760px) {
  body.v2-site .bt-cohort-summary {
    padding: 1.15rem;
  }
}

/* =========================================================
   2026-10-11 Registration acknowledgment layout fix v2
   ========================================================= */

/* The legacy template visually hides native checkboxes and expects a
   sibling label. Registration acknowledgments intentionally place the
   checkbox inside the label, so restore a normal accessible checkbox
   specifically in this component. */
body.v2-site .bt-acknowledgments label {
  align-items: flex-start !important;
  display: flex !important;
  gap: 12px !important;
  grid-template-columns: none !important;
  padding: 12px 14px !important;
  text-align: left !important;
}

body.v2-site .bt-acknowledgments label > input[type="checkbox"] {
  -moz-appearance: auto !important;
  -webkit-appearance: checkbox !important;
  appearance: auto !important;
  display: inline-block !important;
  flex: 0 0 auto !important;
  float: none !important;
  height: 18px !important;
  margin: .15rem 0 0 0 !important;
  opacity: 1 !important;
  position: static !important;
  width: 18px !important;
  z-index: auto !important;
}

body.v2-site .bt-acknowledgments label > span {
  color: var(--bt-ink) !important;
  display: inline !important;
  flex: 1 1 auto !important;
  line-height: 1.5 !important;
  min-width: 0 !important;
}

body.v2-site .bt-acknowledgments label > span a {
  display: inline !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

/* Do not create pseudo-checkboxes for the nested registration controls. */
body.v2-site .bt-acknowledgments input[type="checkbox"] + label:before {
  content: none !important;
}

/* =========================================================
   2026-10-11 Homepage cohort cards use Calendar layout
   ========================================================= */

body.v2-site [data-next-cohort] .cohort-public-grid {
  margin-top: 1.25rem;
}

body.v2-site .cohort-home-view-all {
  justify-content: center;
  margin-top: 1.25rem;
}

body.v2-site .cohort-home-view-all > li {
  width: auto;
}

/* Explicitly preserve two cards per row on desktop for both Calendar and Home. */
body.v2-site .cohort-public-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media screen and (max-width: 860px) {
  body.v2-site .cohort-public-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   2026-10-11 Cohort card action-button alignment v5
   ========================================================= */

/* Keep every cohort card as a full-height flex column so its action row
   always sits on the bottom edge, regardless of how many detail rows exist. */
body.v2-site .cohort-public-grid {
  align-items: stretch;
}

body.v2-site .cohort-public-grid > .cohort-public-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

body.v2-site .cohort-public-card .cohort-card-actions {
  margin-top: auto !important;
  padding-top: 1.15rem;
  width: 100%;
}

body.v2-site .cohort-public-card .cohort-card-actions > li {
  display: flex;
  width: 100%;
}

body.v2-site .cohort-public-card .cohort-card-actions .button {
  box-sizing: border-box;
  min-height: 52px;
  width: 100%;
}

/* Closed/full/scheduled/in-progress cards retain the same button footprint
   as Register, but use a light, intentionally non-clickable treatment. */
body.v2-site .cohort-public-card .cohort-card-actions .button.disabled {
  background: #eef2ea !important;
  border: 1px solid #cbd7c6 !important;
  box-shadow: none !important;
  color: #65736b !important;
  cursor: default !important;
  opacity: 1 !important;
  pointer-events: none !important;
}

body.v2-site .cohort-public-card .cohort-card-actions .button.disabled:after {
  display: none !important;
}

