:root {
  --ger-bg: #f7fbff;
  --ger-bg-alt: #edf6fb;
  --ger-panel: rgba(255, 255, 255, 0.84);
  --ger-panel-strong: rgba(255, 255, 255, 0.96);
  --ger-panel-border: rgba(25, 91, 141, 0.14);
  --ger-primary: #0877b9;
  --ger-primary-2: #185fb8;
  --ger-accent: #d46a1d;
  --ger-success: #2d8c57;
  --ger-text: #193044;
  --ger-muted: #5f7485;
  --ger-heading: #09243a;
  --ger-shadow: 0 20px 55px rgba(24, 76, 118, 0.14);
  --agi-red: #c42d38;
  --agi-yellow: #c88a09;
  --agi-green: #337a45;
  --agi-blue: #214f96;
  --agi-sky: #187fb7;
}

html, body {
  background:
    radial-gradient(circle at 8% 0%, rgba(112, 186, 230, 0.22), transparent 30%),
    radial-gradient(circle at 88% 12%, rgba(245, 210, 71, 0.18), transparent 24%),
    linear-gradient(180deg, #ffffff 0%, var(--ger-bg) 42%, #edf7f6 100%);
  color: var(--ger-text);
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  scroll-behavior: smooth;
}

.site-shell {
  overflow-x: hidden;
}

.site-shell .text-white,
.site-shell .text-light {
  color: var(--ger-text) !important;
}

.site-shell .text-info-emphasis {
  color: var(--ger-primary) !important;
}

.yellow-text {
  color: var(--agi-yellow);
}

.ger-nav {
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(25, 91, 141, 0.12);
  box-shadow: 0 10px 35px rgba(23, 78, 120, 0.08);
}

.navbar-brand img {
  width: auto;
  max-width: min(320px, 64vw);
  object-fit: contain;
}

.brand-mark {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2ca8d2 0%, #61b96c 44%, #ef9b2f 100%);
  box-shadow: 0 10px 24px rgba(31, 127, 183, 0.26);
}

.brand-text {
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.brand-text strong,
.brand-text span {
  display: block;
  font-size: .9rem;
}

.brand-text span {
  color: var(--ger-primary);
}

.navbar-light .navbar-nav .nav-link {
  color: rgba(9, 36, 58, .76);
  font-weight: 650;
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus {
  color: var(--ger-primary-2);
}

.navbar-toggler {
  border-color: rgba(25, 91, 141, 0.18);
}

.btn-ger-primary {
  background: linear-gradient(135deg, var(--ger-primary), var(--ger-primary-2));
  border: 1px solid rgba(255, 255, 255, .42);
  color: #fff;
  box-shadow: 0 14px 30px rgba(24, 95, 184, 0.22);
}

.btn-ger-primary:visited {
  color: #fff;
}

.btn-ger-primary:hover,
.btn-ger-primary:focus {
  color: var(--agi-yellow);
  filter: brightness(1.05);
  transform: translateY(-1px);
}

.btn-outline-light {
  color: #fff;
  border-color: rgba(24, 95, 184, 0.34);
  background: rgba(24, 95, 184, 0.82);
  box-shadow: 0 12px 26px rgba(24, 95, 184, 0.16);
}

.btn-outline-light:visited {
  color: #fff;
}

.btn-outline-light:hover,
.btn-outline-light:focus {
  color: var(--agi-yellow);
  background: var(--ger-primary-2);
  border-color: var(--ger-primary-2);
}

.hero-section {
  background-size: cover;
  background-position: center;
  position: relative;
}

.hero-section:not(.hero-section--video)::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, .28), rgba(255, 255, 255, .08) 42%, rgba(255, 255, 255, 0)),
    linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(247, 251, 255, .28));
}

.hero-section--video {
  min-height: 74vh;
  overflow: hidden;
  background: #eaf5fb;
}

.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
}

.hero-backdrop {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, .24) 0%, rgba(255, 255, 255, .08) 42%, rgba(255, 255, 255, 0) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(247, 251, 255, .03) 48%, rgba(247, 251, 255, .34) 100%);
}

.hero-section--video::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 180px;
  background: linear-gradient(180deg, rgba(247, 251, 255, 0), rgba(247, 251, 255, .42));
}

.hero-content {
  position: relative;
  z-index: 1;
}

.min-vh-50 {
  min-height: 62vh;
}

.hero-panel {
  max-width: 760px;
}

.hero-row--initiative {
  min-height: 56vh;
}

.hero-section--video .hero-content {
  max-width: 1320px;
}

.hero-section--video .hero-panel {
  max-width: 920px;
  background: rgba(255, 255, 255, 0.76);
  border-color: rgba(255, 255, 255, 0.84);
  backdrop-filter: blur(12px);
}

.hero-panel--initiative {
  --hero-accent: var(--agi-sky);
  max-width: 760px;
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--hero-accent) 10%, rgba(255, 255, 255, 0.96)), rgba(255, 255, 255, 0.88)),
    radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--hero-accent) 20%, transparent), transparent 42%);
  border-color: color-mix(in srgb, var(--hero-accent) 30%, rgba(25, 91, 141, .12));
  backdrop-filter: blur(10px);
}

.hero-panel--initiative::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--hero-accent) 88%, white), color-mix(in srgb, var(--hero-accent) 46%, transparent));
}

.hero-panel--sky { --hero-accent: var(--agi-sky); }
.hero-panel--blue { --hero-accent: var(--agi-blue); }
.hero-panel--green { --hero-accent: var(--agi-green); }
.hero-panel--yellow { --hero-accent: var(--agi-yellow); }
.hero-panel--red { --hero-accent: var(--agi-red); }

.hero-highlight-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .75rem;
}

.hero-highlight-list li {
  position: relative;
  padding-left: 1.1rem;
  color: var(--ger-text);
}

.hero-highlight-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55rem;
  width: .45rem;
  height: .45rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--hero-accent) 85%, white);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--hero-accent) 18%, transparent);
}

.display-4 {
  letter-spacing: -.03em;
}

.primary-text {
  color: var(--ger-primary);
}

.glass-panel,
.pillar-card,
.list-card,
.stat-card,
.content-shell {
  background: var(--ger-panel);
  border: 1px solid var(--ger-panel-border);
  backdrop-filter: blur(14px);
  box-shadow: var(--ger-shadow);
  border-radius: 1.25rem;
}

.section-dark {
  background: transparent;
}

.section-dark-alt {
  background: linear-gradient(180deg, rgba(237, 246, 251, .78), rgba(255, 255, 255, .28));
}

.section-toplift {
  margin-top: -3.25rem;
  position: relative;
  z-index: 5;
}

.home-overlap-band {
  margin-top: -8.5rem;
  z-index: 7;
}

.home-overlap-band .glass-panel {
  background: var(--ger-panel-strong);
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: clamp(1.1rem, 2vw, 2rem);
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--ger-primary);
  font-weight: 800;
  margin-bottom: 1rem;
}

.feature-list {
  padding-left: 1.1rem;
  margin-bottom: 0;
}

.feature-list li {
  margin-bottom: .9rem;
  color: var(--ger-text);
}

.feature-list li:last-child {
  margin-bottom: 0;
}

.bg-image-card {
  background-size: cover;
  background-position: center;
}

.bg-image-card .eyebrow {
  color: var(--ger-primary);
}

.bg-image-card .primary-text {
  color: var(--ger-primary);
}

.pillar-card {
  text-decoration: none;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
  height: 100%;
}

.pillar-card:hover {
  transform: translateY(-6px);
  border-color: color-mix(in srgb, var(--pillar-accent, var(--ger-primary)) 38%, rgba(25, 91, 141, .12));
  box-shadow: 0 26px 70px color-mix(in srgb, var(--pillar-accent, var(--ger-primary)) 18%, rgba(24, 76, 118, 0.18));
}

.pillar-card--icon {
  --pillar-accent: var(--agi-sky);
  --pillar-accent-soft: color-mix(in srgb, var(--agi-sky) 16%, transparent);
  text-align: center;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--pillar-accent) 10%, rgba(255, 255, 255, 0.96)), rgba(255, 255, 255, 0.88)),
    radial-gradient(circle at 50% 0%, var(--pillar-accent-soft), transparent 65%);
  border-color: color-mix(in srgb, var(--pillar-accent) 28%, rgba(25, 91, 141, .12));
  box-shadow: 0 18px 44px color-mix(in srgb, var(--pillar-accent) 12%, rgba(24, 76, 118, .12));
}

.pillar-card--icon .card-body {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.pillar-card--icon h3 {
  line-height: 1.2;
  margin-bottom: .55rem;
}

.pillar-card--icon p {
  max-width: 24ch;
}

.icon-badge {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(8, 119, 185, .12), rgba(212, 106, 29, .1));
  border: 1px solid rgba(25, 91, 141, .14);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .84);
}

.icon-orb {
  width: 88px;
  height: 88px;
  margin: 0 auto 1rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 2rem;
  color: #fff;
  background:
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .55), transparent 30%),
    linear-gradient(180deg, color-mix(in srgb, var(--pillar-accent) 76%, white), color-mix(in srgb, var(--pillar-accent) 84%, #173d70));
  border: 2px solid color-mix(in srgb, var(--pillar-accent) 62%, #fff);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--pillar-accent) 12%, transparent), 0 18px 34px color-mix(in srgb, var(--pillar-accent) 24%, rgba(24, 76, 118, .18));
}

.pillar-card--workforce {
  --pillar-accent: var(--agi-sky);
  --pillar-accent-soft: color-mix(in srgb, var(--agi-sky) 18%, transparent);
}

.pillar-card--policy {
  --pillar-accent: var(--agi-yellow);
  --pillar-accent-soft: color-mix(in srgb, var(--agi-yellow) 22%, transparent);
}

.pillar-card--research {
  --pillar-accent: var(--agi-green);
  --pillar-accent-soft: color-mix(in srgb, var(--agi-green) 18%, transparent);
}

.pillar-card--education {
  --pillar-accent: var(--agi-blue);
  --pillar-accent-soft: color-mix(in srgb, var(--agi-blue) 16%, transparent);
}

.pillar-card--collaboration {
  --pillar-accent: var(--agi-red);
  --pillar-accent-soft: color-mix(in srgb, var(--agi-red) 18%, transparent);
}

.stats-grid .stat-card {
  padding: 1.6rem 1.2rem;
  text-align: center;
  height: 100%;
}

.stat-card span {
  display: block;
  font-size: 2rem;
  font-weight: 800;
  color: var(--ger-heading);
}

.stat-card small {
  color: var(--ger-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.focus-card {
  position: relative;
  min-height: 320px;
  border-radius: 1.25rem;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  border: 1px solid rgba(25, 91, 141, 0.14);
  box-shadow: 0 20px 50px rgba(24, 76, 118, .14);
}

.focus-card h3 {
  position: absolute;
  left: 1.25rem;
  right: 1.25rem;
  bottom: 1.15rem;
  color: #fff;
  font-weight: 700;
  margin: 0;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .42);
}

.donate-band {
  background-size: cover;
  background-position: center right;
  border-top: 1px solid rgba(25, 91, 141, .12);
  border-bottom: 1px solid rgba(25, 91, 141, .12);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72);
}

.donate-band .eyebrow,
.donate-band p {
  color: var(--ger-text) !important;
  text-shadow: none;
}

.list-card {
  overflow: hidden;
}

.list-card-image {
  min-height: 240px;
  background-size: cover;
  background-position: center;
}

.content-prose {
  font-size: 1.04rem;
  line-height: 1.8;
}

.content-prose h2,
.content-prose h3,
.content-prose h4 {
  color: var(--ger-heading);
  margin-top: 2rem;
  margin-bottom: .9rem;
  font-weight: 750;
}

.content-prose p,
.content-prose li {
  color: var(--ger-text);
}

.content-prose ul {
  padding-left: 1.2rem;
}

.content-prose strong {
  color: var(--ger-heading);
}

.content-prose a {
  color: var(--ger-primary-2);
}

.accordion-ger {
  --bs-accordion-bg: transparent;
  --bs-accordion-border-color: rgba(25, 91, 141, .14);
  --bs-accordion-btn-bg: rgba(255, 255, 255, .82);
  --bs-accordion-active-bg: rgba(226, 241, 250, .92);
  --bs-accordion-active-color: var(--ger-heading);
  --bs-accordion-color: var(--ger-text);
  --bs-accordion-btn-color: var(--ger-heading);
}

.accordion-ger .accordion-item {
  background: rgba(255, 255, 255, .84);
  border: 1px solid rgba(25, 91, 141, .14);
  border-radius: 1rem !important;
  overflow: hidden;
  margin-bottom: 1rem;
}

.accordion-ger .accordion-button {
  font-weight: 650;
}

.accordion-ger .accordion-button:focus {
  box-shadow: none;
}

.site-footer {
  border-top: 1px solid rgba(25, 91, 141, 0.12);
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(12px);
}

.footer-copy,
.footer-links a {
  color: var(--ger-muted);
  text-decoration: none;
}

.footer-links a:hover {
  color: var(--ger-primary-2);
}

a {
  color: var(--ger-primary-2);
  text-decoration: none;
}

a:hover {
  color: var(--ger-accent);
}

a:visited {
  color: var(--ger-primary-2);
}

@media (max-width: 991.98px) {
  .section-toplift {
    margin-top: 0;
  }

  .home-overlap-band {
    margin-top: -2rem;
  }

  .min-vh-50 {
    min-height: auto;
  }

  .hero-section--video {
    min-height: 68vh;
  }
}
