:root {
  --color-bg: #030816; /* Deep Midnight Navy from DS Logo */
  --color-bg-secondary: #0a1128;
  --color-bg-tertiary: #111a3a;
  
  --color-primary: #00d2ff; /* Electric Cyan from DS Logo */
  --color-primary-dark: #0088aa;
  
  --color-accent: #ffcc00; /* Vibrant Gold from ErrolE */
  --color-accent-hover: #ffda33;
  
  --color-text: #ffffff;
  --color-text-muted: #94a3b8;
  
  --font-heading: 'Montserrat', sans-serif;
  --font-body: 'Inter', sans-serif;
  
  --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* Base Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  /* nav is position: sticky/top: 0, so any #anchor jump lands its target flush against
     the viewport top -- directly behind the nav bar. This offset keeps anchor targets
     (e.g. curriculum.html's lane-title H2s) visible below it instead of hidden underneath. */
  scroll-padding-top: 5.5rem;
}

body {
  font-family: var(--font-body);
  background-color: var(--color-bg);
  color: var(--color-text);
  line-height: 1.6;
  overflow-x: hidden;
}

.container {
  width: 85%;
  max-width: 100rem;
  margin: 0 auto;
}

/* Typography */
h1, h2, h3, h4, .logo {
  font-family: var(--font-heading);
  font-weight: 800;
  letter-spacing: -0.0312rem;
}

h2 {
  font-size: 2.5rem;
  margin-bottom: 1rem;
}

p {
  margin-bottom: 1rem;
}

a {
  text-decoration: none;
  color: var(--color-text);
  transition: var(--transition);
}

.center { text-align: center; }
.subtitle { color: var(--color-text-muted); font-size: 1.1rem; max-width: 46rem; margin: 0 auto 3rem auto; }

/* Navigation */
/* Scoped to the site nav specifically (a direct child of <body> on every page) --
   NOT a bare `nav` tag selector, since course pages also have a breadcrumb wrapped
   in its own semantic <nav class="breadcrumb"> further down the DOM. A bare `nav`
   selector made that breadcrumb sticky/z-index:100 too, causing it to pin itself
   on top of the real nav bar while scrolling. */
body > nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 5%;
  background-color: rgba(3, 8, 22, 0.85);
  backdrop-filter: blur(0.625rem);
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 0.0625rem solid rgba(0, 210, 255, 0.1);
}

.logo {
  font-size: 1.4rem;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.125rem;
}

.logo img {
  height: 1.875rem;
  width: auto;
}

.logo span { color: var(--color-primary); }

.nav-links {
  display: flex;
  gap: 1.5rem;
  align-items: center;
}

.nav-links a {
  font-size: 0.9rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.0625rem;
  white-space: nowrap;
}

.nav-links a:hover { color: var(--color-primary); }
.nav-links a.btn { font-weight: 700; letter-spacing: normal; }
.nav-links a.btn:hover { color: #000; }

/* Buttons */
.btn {
  padding: 0.8rem 1.8rem;
  border-radius: 0.25rem;
  font-family: var(--font-heading);
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  cursor: pointer;
  transition: var(--transition);
  border: none;
  display: inline-block;
}
.btn[hidden] { display: none; }

.btn-primary {
  background-color: var(--color-accent);
  color: #000;
}

.btn-primary:hover {
  background-color: var(--color-accent-hover);
  transform: translateY(-0.1875rem);
  box-shadow: 0 0.625rem 1.25rem rgba(255, 204, 0, 0.2);
}

.btn-secondary {
  background-color: transparent;
  color: var(--color-text);
  border: 0.0625rem solid rgba(255, 255, 255, 0.3);
}

.btn-secondary:hover {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: var(--color-text);
  transform: translateY(-0.1875rem);
}

.btn-large {
  padding: 1rem 2.5rem;
  font-size: 1.1rem;
}

/* Sections */
.section { padding: 6rem 0; }
.section.catalog { padding-top: 3rem; }

/* Hero Section */
.hero {
  min-height: calc(100vh - 14.3rem);
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  padding: 3rem 5%;
  box-sizing: border-box;
  background-image: 
    linear-gradient(90deg, rgba(10, 15, 22, 0.92) 0%, rgba(10, 15, 22, 0.75) 45%, rgba(10, 15, 22, 0.25) 100%),
    linear-gradient(180deg, rgba(10, 15, 22, 0.4) 0%, rgba(10, 15, 22, 0.7) 100%),
    url('../images/hero_dynamic_skilling.jpg');
  background-position: center right;
  background-size: cover;
  background-repeat: no-repeat;
}

.hero::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: 
    radial-gradient(circle at 80% 30%, rgba(0, 210, 255, 0.15) 0%, transparent 50%),
    radial-gradient(circle at 10% 50%, rgba(10, 15, 22, 0.7) 0%, transparent 60%);
  z-index: 1;
  pointer-events: none;
}

.hero::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-image: 
    linear-gradient(rgba(0, 210, 255, 0.04) 0.0625rem, transparent 0.0625rem),
    linear-gradient(90deg, rgba(0, 210, 255, 0.04) 0.0625rem, transparent 0.0625rem);
  background-size: 2.5rem 2.5rem;
  z-index: 2;
  pointer-events: none;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 50%, rgba(0,0,0,0));
  -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 50%, rgba(0,0,0,0));
}

.hero-content {
  position: relative;
  z-index: 3;
  max-width: 48rem;
}

.badge {
  display: inline-block;
  padding: 0.4rem 1rem;
  background-color: rgba(0, 210, 255, 0.1);
  color: var(--color-primary);
  border: 0.0625rem solid var(--color-primary);
  border-radius: 3.125rem;
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 1rem;
  letter-spacing: 0.0625rem;
}

.hero h1 {
  font-size: clamp(2.2rem, 4.5vw, 3.5rem);
  line-height: 1.08;
  margin-bottom: 1rem;
  text-transform: none;
  text-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.9);
}

.hero p {
  font-size: 1.1rem;
  color: #e5e7eb;
  max-width: 40.625rem;
  margin-bottom: 1.75rem;
  font-weight: 400;
  line-height: 1.6;
  text-shadow: 0 0.125rem 0.625rem rgba(0, 0, 0, 0.9);
}

.hero-buttons {
  display: flex;
  gap: 1rem;
}

/* Grids */
/* .grid-3 uses flexbox, not CSS grid: with a real grid, a trailing partial row
   (e.g. 4 cards -> a lone 4th card) leaves visibly empty grid cells, because
   auto-fit only collapses tracks that are empty across EVERY row, and earlier
   rows already gave those tracks content. flex-grow is intentionally 0 here --
   cards keep their normal width and just left-align with plain empty space
   after them in a trailing row, rather than stretching to fill it. This also
   plays nicer with curriculum.html's per-card tag/vendor filtering, which hides
   individual cards (not just whole rows) and needs the remaining ones to
   reflow cleanly either way. */
.grid-3 { display: flex; flex-wrap: wrap; gap: 2.5rem; }
.grid-3 > * { flex: 1 1 calc(33.333% - 1.67rem); max-width: calc(33.333% - 1.67rem); box-sizing: border-box; }
.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 25rem), 1fr)); gap: 3rem; }

@media (max-width: 60rem) {
  .grid-3 { gap: 2rem; }
  .grid-3 > * { flex: 1 1 calc(50% - 1.5rem); max-width: calc(50% - 1.5rem); }
  /* Exactly-3-item, fixed grids (unlike curriculum.html's variable-length
     filtered card list) look lopsided as 2-top-1-bottom -- skip straight
     to 1 column instead of the shared 2-column step. */
  .features .grid-3 > * { flex: 1 1 100%; max-width: 100%; }
}

@media (max-width: 48rem) {
  .grid-3 { gap: 1.5rem; }
  .grid-3 > * { flex: 1 1 100%; max-width: 100%; }
  .grid-2 { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* Features */
.features { background-color: var(--color-bg-secondary); padding: 6rem 0; }

.feature-card {
  padding: 3rem 2rem;
  background-color: var(--color-bg-tertiary);
  border: 0.0625rem solid rgba(255, 255, 255, 0.05);
  border-radius: 0.75rem;
  transition: var(--transition);
  text-align: center;
}

.feature-card:hover {
  transform: translateY(-0.3125rem);
  border-color: var(--color-primary);
  box-shadow: 0 0.625rem 1.875rem rgba(0, 210, 255, 0.05);
}

.feature-card .icon {
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
}

.feature-card h3 {
  font-size: 1.3rem;
  margin-bottom: 1rem;
}

.feature-card p {
  color: var(--color-text-muted);
  font-size: 0.95rem;
}

/* Profiles */
.profile-card {
  background: var(--color-bg-tertiary);
  border-radius: 0.75rem;
  overflow: hidden;
  border: 0.0625rem solid rgba(255,255,255,0.05);
  border-top: 0.1875rem solid var(--profile-accent, var(--color-primary));
  box-shadow: 0 0.5rem 1.25rem rgba(0,0,0,0.25);
  transition: var(--transition);
  display: flex;
  flex-direction: column;
  height: 100%;
}
.profile-card:hover {
  transform: translateY(-0.3125rem);
  box-shadow: 0 0.9375rem 3.125rem rgba(0,0,0,0.4), 0 0 2.5rem rgba(var(--profile-accent-rgb, 0, 210, 255), 0.12);
}

/* Per-person accent -- set once per card, everything else (ring, role color, badges)
   reads from these two custom properties instead of hardcoding cyan/gold twice. */
.profile-card.accent-cyan { --profile-accent: #00d2ff; --profile-accent-rgb: 0, 210, 255; }
.profile-card.accent-gold { --profile-accent: #ffcc00; --profile-accent-rgb: 255, 204, 0; }

.img-headshot {
  width: 10.5rem;
  aspect-ratio: 1 / 1;
  margin: 1.75rem auto 0 auto;
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 0 0 0.1875rem rgba(var(--profile-accent-rgb, 0, 210, 255), 0.35);
  flex-shrink: 0;
}

.img-headshot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  display: block;
}

.profile-header {
  padding: 1.1rem 2rem 1rem;
  text-align: center;
}

.profile-header h3 {
  font-size: 1.6rem;
  margin-bottom: 0.4rem;
}

.role {
  color: var(--profile-accent, var(--color-primary));
  font-weight: 600;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.0625rem;
}

.profile-body {
  padding: 0 2rem 2rem 2rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.profile-body p {
  color: var(--color-text-muted);
  font-size: 0.98rem;
  line-height: 1.6;
  margin-bottom: 1.1rem;
}

.skill-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}

.skill-list li {
  color: var(--color-text);
  margin-bottom: 0;
  display: flex;
  align-items: center;
  font-size: 0.95rem;
  line-height: 1.4;
}

.skill-list li::before {
  content: '▸';
  color: var(--profile-accent, var(--color-primary));
  margin-right: 0.5rem;
  font-weight: bold;
  flex-shrink: 0;
}

.cred-badges {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  margin-top: auto;
}
.cred-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--profile-accent-rgb, 0, 210, 255), 0.1);
  color: var(--profile-accent, var(--color-primary));
  border: 0.0625rem solid rgba(var(--profile-accent-rgb, 0, 210, 255), 0.25);
  border-radius: 0.25rem;
  padding: 0.35rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-align: center;
  min-width: 0;
}

/* Homepage "meet the team" teaser -- deliberately NOT a duplicate of the about.html
   bios (that was the whole problem this replaced). One punchy line + a link through
   to the real bio, so the homepage sells the click instead of restating the page. */
.teaser-card {
  background: var(--color-bg-tertiary);
  border-radius: 0.75rem;
  border: 0.0625rem solid rgba(255,255,255,0.05);
  border-top: 0.1875rem solid var(--profile-accent, var(--color-primary));
  padding: 2rem;
  position: relative;
  text-decoration: none;
  display: block;
  box-shadow: 0 0.625rem 2.5rem rgba(0,0,0,0.3);
  transition: var(--transition);
}
.teaser-avatar {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  width: 3.75rem;
  height: 3.75rem;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 20%;
  box-shadow: 0 0 0 0.125rem rgba(var(--profile-accent-rgb, 0, 210, 255), 0.4);
}
.teaser-card:hover {
  transform: translateY(-0.3125rem);
  box-shadow: 0 0.9375rem 3.125rem rgba(0,0,0,0.4), 0 0 2.5rem rgba(var(--profile-accent-rgb, 0, 210, 255), 0.12);
  border-color: rgba(var(--profile-accent-rgb, 0, 210, 255), 0.5);
}
.teaser-card.accent-cyan { --profile-accent: #00d2ff; --profile-accent-rgb: 0, 210, 255; }
.teaser-card.accent-gold { --profile-accent: #ffcc00; --profile-accent-rgb: 255, 204, 0; }
.teaser-card h3 {
  font-size: 1.4rem;
  margin: 0 0 0.25rem 0;
  color: #fff;
  padding-right: 4.5rem; /* don't overlap corner avatar */
}
.teaser-card .role {
  display: block;
  font-size: 0.8rem;
  letter-spacing: 0.0625rem;
  margin-bottom: 1.25rem;
  padding-right: 4.5rem;
}
.teaser-card p { color: var(--color-text-muted); margin-bottom: 1.5rem; line-height: 1.6; }
.teaser-card .teaser-link {
  color: var(--profile-accent, var(--color-primary));
  font-weight: 600;
  font-size: 0.95rem;
}
.teaser-card:hover .teaser-link { text-decoration: underline; }

/* Process Section */
.process { background-color: var(--color-bg-secondary); padding: 6rem 0; }

.process-flex {
  display: flex;
  align-items: center;
  gap: 4.5rem;
}

.process-text { flex: 1; }
.process-text h2 {
  font-size: clamp(1.65rem, 2.6vw, 2.15rem);
  margin-bottom: 1rem;
  line-height: 1.2;
}
.process-text p {
  color: var(--color-text-muted);
  font-size: 0.95rem;
  line-height: 1.55;
}

.check-list { list-style: none; margin: 1.25rem 0; padding: 0; }
.check-list li {
  margin-bottom: 0.85rem;
  padding-left: 2rem;
  position: relative;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--color-text-muted);
}
.check-list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 0;
  width: 1.35rem;
  height: 1.35rem;
  background: rgba(0, 210, 255, 0.12);
  border: 0.0625rem solid rgba(0, 210, 255, 0.35);
  border-radius: 50%;
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 800;
}
.check-list strong { color: #fff; font-weight: 600; }

.process-summary {
  margin-top: 1.1rem;
  padding: 0.7rem 1.1rem;
  background: rgba(0, 210, 255, 0.06);
  border-left: 0.2rem solid var(--color-primary);
  border-radius: 0 0.5rem 0.5rem 0;
  font-style: italic;
  color: #fff;
  font-size: 0.85rem;
}

.process-visual { flex: 1; perspective: 62.5rem; }
.workflow-container {
  background: var(--color-bg-tertiary);
  border: 0.0625rem solid rgba(0, 210, 255, 0.25);
  border-radius: 0.85rem;
  overflow: hidden;
  box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.4), 0 0 1.5rem rgba(0, 210, 255, 0.06);
  display: flex;
  flex-direction: column;
}

.workflow-tabs {
  display: flex;
  background: rgba(0,0,0,0.3);
  border-bottom: 0.0625rem solid rgba(255,255,255,0.06);
}

.workflow-tab {
  flex: 1;
  padding: 1.15rem 0.85rem;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--color-text-muted);
  cursor: pointer;
  border-bottom: 0.125rem solid transparent;
  transition: var(--transition);
  text-transform: uppercase;
  letter-spacing: 0.0312rem;
}

.workflow-tab:hover {
  background: rgba(255,255,255,0.03);
  color: #fff;
}

.workflow-tab.active {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
  background: rgba(0, 210, 255, 0.08);
}

.workflow-content {
  display: grid;
  background: radial-gradient(circle at top right, rgba(0,210,255,0.08), transparent 65%);
}

.workflow-pane {
  grid-area: 1 / 1;
  padding: 2.25rem 2rem;
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.625rem);
  transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.workflow-pane.active {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.workflow-pane h3 {
  font-size: 1.5rem;
  color: #fff;
  margin-bottom: 1rem;
}

.workflow-pane p {
  color: var(--color-text-muted);
  font-size: 1.05rem;
  line-height: 1.8;
}

.workflow-icon {
  font-size: 2.5rem;
  margin-bottom: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  background: rgba(0, 210, 255, 0.1);
  border-radius: 0.75rem;
  border: 0.0625rem solid rgba(0, 210, 255, 0.2);
}

/* CTA */
.cta-section {
  background: linear-gradient(135deg, var(--color-bg), var(--color-bg-secondary));
  border-top: 0.0625rem solid rgba(0, 210, 255, 0.1);
  border-bottom: 0.0625rem solid rgba(0, 210, 255, 0.1);
}
.cta-section h2 { font-size: 3rem; }
.cta-section p { font-size: 1.2rem; color: var(--color-text-muted); max-width: 46rem; margin: 0 auto 2.5rem auto; }

/* Footer */
footer {
  background-color: var(--color-bg);
  padding: 4rem 0 2rem 0;
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 4rem;
}

.footer-brand p {
  color: var(--color-text-muted);
  margin-top: 1rem;
}

.footer-links h4 {
  font-size: 1rem;
  margin-bottom: 1rem;
}

.footer-links a {
  display: block;
  color: var(--color-text-muted);
  margin-bottom: 0.5rem;
  text-decoration: none;
}

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

.footer-bottom {
  border-top: 0.0625rem solid rgba(255,255,255,0.05);
  padding-top: 2rem;
  text-align: center;
  color: var(--color-text-muted);
  font-size: 0.9rem;
}

/* Mobile hamburger nav -- see js/nav.js for the toggle behavior. Hidden above
   the 75rem breakpoint; below it, replaces the nav's old behavior of wrapping
   "About Us / Course Catalog / Case Studies / FAQ / Book Consultation" into
   two crowded centered rows under the logo. */
.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 0.3125rem;
  width: 2.25rem;
  height: 2.25rem;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
}
.nav-toggle span {
  display: block;
  width: 100%;
  height: 0.125rem;
  background: #fff;
  border-radius: 0.125rem;
  transition: var(--transition);
}
.nav-toggle.open span:nth-child(1) { transform: translateY(0.4375rem) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: translateY(-0.4375rem) rotate(-45deg); }

/* Responsive */
@media (max-width: 75rem) {
  body > nav { flex-wrap: nowrap; justify-content: space-between; gap: 1rem; }
  .logo { width: auto; font-size: 1.1rem; gap: 0.5rem; flex-shrink: 0; }
  .logo img { width: 1.75rem; height: 1.75rem; }
  .nav-toggle { display: flex; }
  .nav-links {
    position: fixed;
    top: 4.5rem;
    left: 0;
    right: 0;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    /* Fully solid, not translucent -- this is a full-width overlay sitting above
       page content, not the top nav bar's deliberate glass effect. Backdrop-filter
       blur combined with any alpha here let hero text visibly ghost through. */
    background: var(--color-bg-secondary);
    border-bottom: 0.0625rem solid rgba(0, 210, 255, 0.1);
    max-height: 0;
    overflow: hidden;
    padding: 0 5%;
    transition: max-height 0.3s ease;
    z-index: 99;
  }
  .nav-links.open { max-height: 25rem; padding: 1rem 5% 1.5rem 5%; }
  .nav-links a { width: 100%; padding: 0.75rem 0; }
  .nav-links a.btn { width: 100%; text-align: center; margin-top: 0.5rem; box-sizing: border-box; }
  /* .hero h1 clamp handles responsiveness now */
  .hero-buttons { flex-direction: column; }
  .process-flex { flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }

  .workflow-tabs { flex-direction: column; }
  .workflow-tab { border-bottom: none; border-left: 0.125rem solid transparent; justify-content: flex-start; padding: 1rem 1.5rem; }
  .workflow-tab.active { border-left-color: var(--color-primary); border-bottom-color: transparent; background: rgba(0, 210, 255, 0.05); }
}

@media (max-width: 37.5rem) {
  .footer-grid { grid-template-columns: 1fr; }
}

.page-header.page-header--slim {
  padding: 1.75rem 5% 1.25rem 5%;
}
.page-header {
  padding: 3.5rem 5% 2rem 5%;
  text-align: center;
  position: relative;
  overflow: hidden;
  background-color: var(--color-bg-secondary);
  background-image: 
    radial-gradient(ellipse 70% 100% at 50% 0%, rgba(0, 210, 255, 0.07) 0%, transparent 80%);
  border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.05);
}
.page-header::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-image: 
    linear-gradient(rgba(0, 210, 255, 0.04) 0.0625rem, transparent 0.0625rem),
    linear-gradient(90deg, rgba(0, 210, 255, 0.04) 0.0625rem, transparent 0.0625rem);
  background-size: 2.5rem 2.5rem;
  pointer-events: none;
  z-index: 1;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 100%);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 30%, rgba(0,0,0,0) 100%);
}
.page-header h1 {
  font-size: clamp(2.5rem, 5vw, 3.8rem);
  margin-bottom: 1rem;
  color: #fff;
  font-family: var(--font-heading);
  letter-spacing: -0.01rem;
  position: relative;
  z-index: 2;
}
.page-header p {
  font-size: clamp(0.95rem, 1.3vw, 1.15rem);
  color: var(--color-text-muted);
  max-width: 52rem;
  margin: 0 auto;
  line-height: 1.6;
  position: relative;
  z-index: 2;
}
.content-section { padding: 3rem 0 4rem; width: 85%; max-width: 100rem; margin: 0 auto; min-height: 40vh; }
.content-section h2 { color: var(--color-primary); margin-bottom: 3rem; font-size: 2.5rem; text-align: center;}

/* Utility Classes replacing inline styles */
.text-primary { color: var(--color-primary); }
.img-placeholder { width: 100%; aspect-ratio: 16/9; background: rgba(0, 210, 255, 0.05); border-bottom: 0.0625rem solid rgba(255,255,255,0.05); display: flex; align-items: center; justify-content: center; color: var(--color-primary); font-family: var(--font-heading); font-weight: 700; letter-spacing: 0.125rem; }
.delay-2 { animation-delay: 0.4s; }
.delay-3 { animation-delay: 0.6s; }
.btn-outline {
    background: transparent;
    color: var(--color-primary);
    border: 0.0625rem solid var(--color-primary);
    transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease, transform 0.15s ease;
}
.btn-outline::after {
    content: "\2192";
    display: inline-block;
    margin-left: 0.4rem;
    transition: transform 0.2s ease;
}
.btn-outline:hover {
    background: rgba(0, 210, 255, 0.1);
    color: var(--color-primary);
}
.btn-outline:hover::after { transform: translateX(0.2rem); }
.btn-outline:active { transform: scale(0.98); }
.w-100 { width: 100%; }
.container-lg { max-width: 75rem; }
.code-badge { font-family: monospace; background: rgba(255,255,255,0.05); padding: 0.25rem 0.5rem; border-radius: 0.25rem; border: 0.0625rem solid rgba(255,255,255,0.1); }
.mt-3 { margin-top: 3rem; }
.btn-block { width: 100%; text-align: center; padding: 1rem; }
.sidebar-card-muted { border-color: rgba(255,255,255,0.05); box-shadow: none; background: rgba(255,255,255,0.02); }
.text-small-muted { font-size: 0.9rem; color: var(--color-text-muted); line-height: 1.6; }

/* Logo Wall */
.logo-wall-section {
  padding: 2.25rem 0;
  background: var(--color-bg-secondary);
  border-top: 0.0625rem solid rgba(255,255,255,0.05);
  border-bottom: 0.0625rem solid rgba(255,255,255,0.05);
  overflow: hidden;
}
.logo-wall-title {
  text-align: center;
  color: var(--color-text-muted);
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.125rem;
  margin-bottom: 1.25rem;
}
.logo-marquee-container {
  display: flex;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.logo-marquee-container::before, .logo-marquee-container::after {
  content: '';
  position: absolute;
  top: 0;
  width: 10rem;
  height: 100%;
  z-index: 2;
}
.logo-marquee-container::before {
  left: 0;
  background: linear-gradient(to right, var(--color-bg-secondary), transparent);
}
.logo-marquee-container::after {
  right: 0;
  background: linear-gradient(to left, var(--color-bg-secondary), transparent);
}
.logo-marquee {
  display: flex;
  gap: 4rem;
  align-items: center;
  animation: marquee 55s linear infinite;
  white-space: nowrap;
}
.logo-marquee img {
    height: 2.5rem;
    width: auto;
    max-width: 12rem;
    object-fit: contain;
    opacity: 0.5;
    filter: brightness(0) invert(1);
    transition: var(--transition);
}
.logo-marquee img:hover {
    opacity: 1;
    filter: brightness(0) invert(1);
}
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Case Studies UI */
        
        .case-study {
            background: var(--color-bg-tertiary);
            border: 0.0625rem solid rgba(255,255,255,0.05);
            border-radius: 1rem;
            margin-bottom: 4rem;
            display: grid;
            grid-template-columns: 2fr 1fr;
            overflow: hidden;
            box-shadow: 0 1.25rem 2.5rem rgba(0,0,0,0.3);
            position: relative;
        }

        /* Small founder avatar in the corner of a case-study card, matching
           the homepage teaser-avatar treatment. Only used where the card
           copy names a specific founder. */
        .cs-avatar {
            position: absolute;
            top: 1.25rem;
            right: 1.25rem;
            width: 2.75rem;
            height: 2.75rem;
            border-radius: 50%;
            object-fit: cover;
            object-position: center 20%;
            box-shadow: 0 0 0 0.125rem rgba(0, 210, 255, 0.4);
            z-index: 2;
        }

        .cs-content {
            padding: 4rem;
        }

        /* Marks a case study as founder track record delivered outside/prior to Dynamic
           Skilling (e.g. via a prior employer), so it's never mistaken for a DS client
           engagement -- distinct treatment from the plain case-study content above it. */
        .track-record-badge {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            background: rgba(255, 204, 0, 0.1);
            color: #ffcc00;
            border: 0.0625rem solid rgba(255, 204, 0, 0.3);
            border-radius: 2rem;
            padding: 0.4rem 1rem;
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.0625rem;
            font-weight: 700;
            margin-bottom: 1.5rem;
        }

        .cs-content h2 {
            font-size: 2.2rem;
            color: #fff;
            margin-bottom: 2rem;
            line-height: 1.2;
        }

        .cs-content h3 {
            font-size: 1rem;
            color: var(--color-primary);
            text-transform: uppercase;
            letter-spacing: 0.0625rem;
            margin-bottom: 0.5rem;
            margin-top: 2rem;
        }

        .cs-content p {
            color: var(--color-text-muted);
            font-size: 1.1rem;
            line-height: 1.8;
            margin-bottom: 1.5rem;
        }

        .cs-metrics {
            background: linear-gradient(135deg, rgba(0, 210, 255, 0.05), rgba(0,0,0,0.2));
            border-left: 0.0625rem solid rgba(0, 210, 255, 0.1);
            padding: 4rem 3rem;
            display: flex;
            flex-direction: column;
            justify-content: center;
            gap: 3rem;
        }

        .metric-value {
            font-family: var(--font-heading);
            font-size: 3.5rem;
            font-weight: 800;
            color: var(--color-accent);
            line-height: 1;
            margin-bottom: 0.5rem;
        }

        .metric-label {
            color: var(--color-text);
            font-size: 1.1rem;
            font-weight: 600;
        }
        
        .metric-context {
            color: var(--color-text-muted);
            font-size: 0.9rem;
            margin-top: 0.25rem;
        }

        /* Inline gold stat highlight -- used in prose in place of separate
           metric boxes (2x2 case studies grid). */
        .stat-highlight {
            color: var(--color-accent);
            font-weight: 700;
        }

        @media (max-width: 56.25rem) {
            .case-study { grid-template-columns: 1fr; }
            .cs-content { padding: 2.5rem; }
            .cs-metrics { padding: 2.5rem; border-left: none; border-top: 0.0625rem solid rgba(0, 210, 255, 0.1); }
        }

        /* 2x2 case studies grid -- 2 blocks across, 2 rows. Each card is
           restyled to stack content over a horizontal metrics row so it
           reads well at half-page width. */
        .case-studies-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 2.5rem;
        }

        .case-studies-grid .case-study {
            grid-template-columns: 1fr;
            margin-bottom: 0;
        }

        .case-studies-grid .cs-content {
            padding: 2.5rem;
        }

        .case-studies-grid .cs-content h2 {
            font-size: 1.6rem;
            margin-bottom: 1.25rem;
        }

        .case-studies-grid .cs-content h3 {
            font-size: 0.85rem;
            margin-top: 1.25rem;
        }

        .case-studies-grid .cs-content p {
            font-size: 0.95rem;
            line-height: 1.65;
            margin-bottom: 1rem;
        }

        .case-studies-grid .cs-metrics {
            flex-direction: row;
            flex-wrap: wrap;
            border-left: none;
            border-top: 0.0625rem solid rgba(0, 210, 255, 0.1);
            padding: 2rem;
            gap: 1.5rem;
        }

        .case-studies-grid .metric {
            flex: 1 1 30%;
            min-width: 8rem;
        }

        .case-studies-grid .metric-value {
            font-size: 2.25rem;
        }

        @media (max-width: 68.75rem) {
            .case-studies-grid { grid-template-columns: 1fr; }
        }

        /* Scoped compact overrides for the impact.html case-studies grid only
           -- denser card padding/type so all 4 cards read well together.
           The page-header itself stays the same size as every other page. */
        .content-section.is-compact {
            padding: 1.25rem 0;
        }

        .content-section.is-compact .case-studies-grid {
            gap: 1.25rem;
        }

        .content-section.is-compact .case-study {
            height: 100%;
            margin-bottom: 0;
        }

        .content-section.is-compact .cs-content {
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            height: 100%;
        }

        .content-section.is-compact .cs-content {
            padding: 1.25rem 1.5rem;
        }

        .content-section.is-compact .cs-content h2 {
            font-size: 1.15rem;
            margin-bottom: 0.6rem;
        }

        .content-section.is-compact .case-study:has(.cs-avatar) .cs-content h2 {
            padding-right: 3.25rem;
        }

        .content-section.is-compact .cs-content h3 {
            font-size: 0.65rem;
            margin-top: 0.6rem;
            margin-bottom: 0.15rem;
        }

        .content-section.is-compact .cs-content p {
            font-size: 0.78rem;
            line-height: 1.42;
            margin-bottom: 0.35rem;
        }

        .content-section.is-compact .track-record-badge {
            font-size: 0.6rem;
            padding: 0.3rem 0.7rem;
            margin-top: 0.75rem;
            margin-bottom: 0;
            align-self: flex-start;
        }

        /* Impact at a Glance -- aggregate stat band above the detailed
           case studies, surfacing headline numbers from across the full
           portfolio (not just the 4 featured cards below). */
        .impact-glance {
            padding-top: 3rem;
            padding-bottom: 1rem;
            min-height: 0;
        }

        .impact-glance-grid {
            display: grid;
            grid-template-columns: repeat(8, 1fr);
            gap: 1rem;
        }

        .glance-stat {
            background: var(--color-bg-tertiary);
            border: 0.0625rem solid rgba(255, 255, 255, 0.05);
            border-radius: 0.75rem;
            padding: 1.25rem 0.5rem;
            text-align: center;
        }

        .glance-value {
            font-family: var(--font-heading);
            font-size: 1.4rem;
            font-weight: 800;
            color: var(--color-accent);
            line-height: 1;
            margin-bottom: 0.5rem;
        }

        .glance-label {
            color: var(--color-text-muted);
            font-size: 0.68rem;
            line-height: 1.25;
        }

        @media (max-width: 75rem) {
            .impact-glance-grid { grid-template-columns: repeat(4, 1fr); }
        }

        @media (max-width: 40rem) {
            .impact-glance-grid { grid-template-columns: repeat(2, 1fr); }
        }

/* Form Status */
.form-status { margin-top: 1rem; margin-bottom: 1rem; font-weight: 500; display: block; color: #fff; }
.form-status.hidden { display: none; }
.form-status.status-success { color: #4ade80; }
.form-status.status-error { color: #ef4444; }

/* Inquiry Drawer -- slide-out panel mirroring the NobleProg booking widget pattern.
   Triggered from course page sidebar buttons (see build_courses.py); markup/JS shared
   via js/inquiry-drawer.js so every course page gets the same behavior from one file. */
.inquiry-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 999;
}
.inquiry-overlay.active { opacity: 1; visibility: visible; }

.inquiry-drawer {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(30rem, 100vw);
    background: var(--color-bg-secondary);
    border-left: 0.0625rem solid rgba(255, 255, 255, 0.08);
    box-shadow: -1rem 0 3rem rgba(0, 0, 0, 0.4);
    transform: translateX(100%);
    transition: transform 0.35s ease;
    z-index: 1000;
    overflow-y: auto;
    padding: 2.5rem 2rem 3rem 2rem;
    box-sizing: border-box;
}
.inquiry-drawer.open { transform: translateX(0); }

.inquiry-drawer-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.inquiry-drawer-header h3 {
    margin: 0;
    font-size: 1.3rem;
    line-height: 1.35;
    color: #fff;
}
.inquiry-drawer-close {
    background: none;
    border: none;
    color: var(--color-text-muted);
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
    flex-shrink: 0;
}
.inquiry-drawer-close:hover { color: #fff; }

.inquiry-form { display: none; }
.inquiry-form.active { display: block; }

.inquiry-form .form-group { margin-bottom: 1.25rem; }
.inquiry-form .form-group label {
    display: block;
    margin-bottom: 0.4rem;
    color: #fff;
    font-weight: 500;
    font-size: 0.9rem;
}
.inquiry-form .form-group input:not([type="radio"]):not([type="checkbox"]),
.inquiry-form .form-group select,
.inquiry-form .form-group textarea {
    width: 100%;
    padding: 0.75rem;
    background: rgba(0, 0, 0, 0.2);
    border: 0.0625rem solid rgba(255, 255, 255, 0.1);
    border-radius: 0.25rem;
    color: #fff;
    font-family: var(--font-body);
    box-sizing: border-box;
}
.inquiry-form .form-group textarea {
    resize: vertical;
    min-height: 4.5rem;
}
.inquiry-form .form-group select option { background: var(--color-bg-tertiary); color: #fff; }
.inquiry-form .form-group input:focus,
.inquiry-form .form-group select:focus,
.inquiry-form .form-group textarea:focus { outline: none; border-color: var(--color-primary); }

.inquiry-form .radio-group { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 0.5rem; }
.inquiry-form .radio-group label {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
    font-weight: 400;
    color: var(--color-text);
    margin: 0;
}
.inquiry-form .radio-group .tier-note {
    flex-basis: 100%;
    margin: 0.15rem 0 0 1.6rem;
    font-size: 0.78rem;
    font-weight: 400;
    color: var(--color-text-muted);
}
.inquiry-form .radio-group input[type="radio"] {
    width: 1.1rem;
    height: 1.1rem;
    flex: 0 0 auto;
    margin: 0;
}
.inquiry-form .checkbox-group { display: flex; align-items: flex-start; gap: 0.5rem; margin-bottom: 1.25rem; }
.inquiry-form .checkbox-group label { font-weight: 400; font-size: 0.85rem; color: var(--color-text-muted); margin: 0; }
.inquiry-privacy-note { font-size: 0.8rem; color: var(--color-text-muted); margin-bottom: 1.25rem; line-height: 1.5; }
.inquiry-privacy-note a { color: var(--color-primary); }
.paypal-button-container {
    margin-top: 1rem;
    background: transparent;
    padding: 0;
    box-shadow: none;
}
#paypal-sdk-render-target {
    background: #ffffff;
    border-radius: 0.5rem;
    padding: 0.5rem 0.5rem 0 0.5rem;
    box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.4);
    overflow: hidden;
    max-height: 700px;
}
.paypal-button-container iframe {
    color-scheme: light !important;
}
.paypal-reset-btn {
    display: none;
    width: 100%;
    margin-top: 0.75rem;
    padding: 0.5rem 1rem;
    background: rgba(0, 210, 255, 0.08);
    color: var(--color-primary);
    border: 0.0625rem solid rgba(0, 210, 255, 0.3);
    border-radius: 0.375rem;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    text-align: center;
    transition: var(--transition);
}
.paypal-reset-btn:hover {
    background: rgba(0, 210, 255, 0.2);
    color: #fff;
}
.paypal-button-container.is-expanded .paypal-reset-btn {
    display: block;
}

@media (max-width: 30rem) {
    .inquiry-drawer { width: 100vw; padding: 2rem 1.25rem 2.5rem 1.25rem; }
}

/* Sidebar Course Outline Card */
.sidebar-outline-card {
    background: var(--color-bg-secondary);
    border: 0.0625rem solid rgba(255, 255, 255, 0.1);
    border-radius: 0.75rem;
    padding: 1.5rem;
    margin-top: 1.5rem;
}
.sidebar-outline-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.08);
}
.sidebar-outline-header svg {
    color: var(--color-primary);
}
.sidebar-module-list {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}
.sidebar-module-item {
    background: rgba(255, 255, 255, 0.025);
    border: 0.0625rem solid rgba(255, 255, 255, 0.06);
    border-left: 0.1875rem solid var(--color-primary);
    border-radius: 0.5rem;
    padding: 0.85rem 1rem;
    transition: var(--transition);
}
.sidebar-module-item:hover {
    background: rgba(0, 210, 255, 0.05);
    border-color: rgba(0, 210, 255, 0.2);
    border-left-color: var(--color-primary);
}
.sidebar-module-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.35;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}
.sidebar-module-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 210, 255, 0.12);
    color: var(--color-primary);
    border: 0.0625rem solid rgba(0, 210, 255, 0.3);
    font-size: 0.7rem;
    font-weight: 800;
    border-radius: 0.25rem;
    padding: 0.1rem 0.35rem;
    flex-shrink: 0;
    line-height: 1;
}
.sidebar-module-desc {
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--color-text-muted);
    margin-top: 0.4rem;
    padding-left: 1.65rem;
}

/* Sidebar Promise Card */
.sidebar-promise-card {
    background: var(--color-bg-tertiary);
    border: 0.0625rem solid rgba(255, 255, 255, 0.1);
    border-radius: 0.75rem;
    padding: 1.5rem;
    margin-top: 1.5rem;
}
.sidebar-promise-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1rem;
}
.sidebar-promise-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}
.sidebar-promise-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 0.4rem;
    background: rgba(0, 210, 255, 0.1);
    border: 0.0625rem solid rgba(0, 210, 255, 0.25);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 0.1rem;
}
.sidebar-promise-item strong {
    display: block;
    color: #ffffff;
    font-size: 0.88rem;
    font-weight: 700;
}
.sidebar-promise-item p {
    color: var(--color-text-muted);
    font-size: 0.8rem;
    line-height: 1.45;
    margin: 0.2rem 0 0 0;
}

/* Price Calculator -- Top of Sidebar Hero Pricing Widget */
.price-calc {
    background: linear-gradient(135deg, rgba(var(--accent-r, 0), var(--accent-g, 210), var(--accent-b, 255), 0.16) 0%, rgba(10, 17, 40, 0.95) 100%);
    border: 0.125rem solid rgba(var(--accent-r, 0), var(--accent-g, 210), var(--accent-b, 255), 0.5);
    box-shadow: 0 0.75rem 2.5rem rgba(var(--accent-r, 0), var(--accent-g, 210), var(--accent-b, 255), 0.18);
    border-radius: 0.75rem;
    padding: 1.75rem;
    position: relative;
    overflow: hidden;
    margin-bottom: 2rem;
    text-align: center;
}
.price-calc-header-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #030816;
    background: rgb(var(--accent-r, 0), var(--accent-g, 210), var(--accent-b, 255));
    padding: 0.25rem 0.6rem;
    border-radius: 1rem;
    margin-bottom: 1.25rem;
}
.price-hero-display {
    text-align: center;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.08);
}
.price-hero-amount {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    font-weight: 800;
    color: #ffffff;
    line-height: 1;
}
.price-hero-unit {
    font-size: 0.9rem;
    color: var(--color-text-muted);
    font-weight: 500;
    margin-left: 0.25rem;
}
.price-hero-caption {
    display: inline-block;
    margin-top: 0.5rem;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--color-text-muted);
    background: rgba(255, 255, 255, 0.06);
    border: 0.0625rem solid rgba(255, 255, 255, 0.1);
    border-radius: 1rem;
    padding: 0.2rem 0.65rem;
}
.price-calc-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}
.price-calc-label { font-size: 0.85rem; color: var(--color-text-muted); }
.price-calc-stepper {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
.price-calc-step {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    border: 0.0625rem solid rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.05);
    color: #fff;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
}
.price-calc-step:hover { background: rgba(0, 210, 255, 0.15); border-color: var(--color-primary); }
.price-calc-count {
    font-size: 1.3rem;
    font-weight: 700;
    color: #fff;
    width: 3.5rem;
    text-align: center;
    background: transparent;
    border: none;
    border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.15);
    font-family: var(--font-body);
    padding: 0 0 0.15rem 0;
    transition: border-color 0.2s ease;
}
.price-calc-count:focus { outline: none; border-color: var(--color-primary); }
/* Hide the native spinner arrows -- the +/- buttons already do that job, and
   the arrows crowd a 3.5rem-wide field. */
.price-calc-count::-webkit-outer-spin-button,
.price-calc-count::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.price-calc-count[type="number"] { -moz-appearance: textfield; }

.price-calc-modes {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 1.5rem;
    margin-bottom: 1.25rem;
}
/* When nested inside a .price-calc-row (Format/Discovery Consultation toggles), the
   row's own margin-bottom already provides the gap to the next element -- without this,
   flex children's margins don't collapse with the container's, so the two 1.25rem
   margins stack into a ~2.5rem gap instead of the intended 1.25rem. */
.price-calc-row .price-calc-modes { margin-bottom: 0; }
.price-calc-modes label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: var(--color-text);
    cursor: pointer;
}
.price-calc-modes input[type="radio"] { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; margin: 0; }

.price-calc-express-note {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    font-style: italic;
    margin: -0.5rem 0 1rem 0;
}
.price-calc-breakdown {
    background: rgba(0, 0, 0, 0.2);
    border: 0.0625rem solid rgba(255, 255, 255, 0.1);
    border-radius: 0.5rem;
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
}
.price-calc-line {
    display: flex;
    justify-content: space-between;
    font-size: 0.85rem;
    color: var(--color-text-muted);
    padding: 0.3rem 0;
}
.price-calc-line-total {
    border-top: 0.0625rem solid rgba(255, 255, 255, 0.1);
    margin-top: 0.25rem;
    padding-top: 0.6rem;
    font-weight: 700;
    font-size: 1.05rem;
    color: #fff;
}
.price-calc-total { font-size: 1.15rem; font-weight: 700; color: #fff; }
.price-calc-book { margin-bottom: 0.5rem; cursor: pointer; }
.price-calc-book-caption { text-align: center; font-size: 0.75rem; color: var(--color-text-muted); margin: -0.25rem 0 1rem 0; }
.price-calc-book-caption a { color: var(--color-primary); }
.price-calc-actions { display: flex; flex-direction: column; gap: 0.85rem; margin-bottom: 1rem; }
.price-calc-actions .btn { font-size: 0.8rem; padding: 0.65rem 1.5rem; }
.price-calc-action-caption { text-align: center; font-size: 0.75rem; color: var(--color-text-muted); margin: 0.35rem 0 0 0; }


.logo-marquee .text-logo {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    color: white;
    opacity: 0.5;
    white-space: nowrap;
    transition: var(--transition);
}
.logo-marquee .text-logo:hover {
    opacity: 1;
}

/* ==========================================================================
   Page-Specific Styles (migrated from inline <head><style> blocks)
   Every page used to carry its own inline <style> tag instead of using this
   shared stylesheet -- that's why some of the below is oddly page-specific.
   Consolidated here so there's one place to look for any rule on the site,
   and so a shared change (e.g. the earlier unclosed-@keyframes bug) doesn't
   have to be hunted down separately per page.
   ========================================================================== */

/* --- curriculum.html --- */
.lane-title {
    font-size: 2rem;
    color: var(--color-primary);
    border-bottom: 0.0625rem solid rgba(0, 210, 255, 0.2);
    padding-bottom: 0.5rem;
    margin: 4rem 0 1rem 0;
}
.lane-desc { color: var(--color-text-muted); margin-bottom: 2.5rem; font-size: 1.1rem; }

.filter-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: rgba(0, 210, 255, 0.08);
    border: 0.0625rem solid rgba(0, 210, 255, 0.3);
    border-radius: 0.5rem;
    padding: 1rem 1.5rem;
    margin-bottom: 2.5rem;
    color: #fff;
    font-size: 0.95rem;
}
/* [hidden] and .filter-banner are equal specificity, and author stylesheets always
   win over the UA sheet -- without this, display:flex above always wins and the
   banner shows regardless of the hidden attribute's actual state. */
.filter-banner[hidden] { display: none; }
.filter-banner a {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 600;
    white-space: nowrap;
}
.filter-banner a:hover { color: #fff; }

/* Catalog Filter Bar */
.catalog-filters {
    background: var(--color-bg-tertiary);
    border: 0.0625rem solid rgba(255, 255, 255, 0.1);
    border-radius: 0.75rem;
    padding: 1.25rem 1.5rem;
    margin-bottom: 2rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
}
.filter-group {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    flex: 1 1 11rem;
    min-width: 10rem;
}
.filter-group label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
    color: var(--color-text-muted);
}
.filter-group select, .filter-group input {
    background: var(--color-bg-secondary);
    border: 0.0625rem solid rgba(255, 255, 255, 0.15);
    border-radius: 0.375rem;
    color: #fff;
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    outline: none;
    transition: border-color 0.2s ease;
}
.filter-group select:focus, .filter-group input:focus {
    border-color: var(--color-primary);
}
.filter-reset-btn {
    align-self: flex-end;
    margin-top: auto;
    padding: 0.55rem 1rem;
    font-size: 0.8rem;
    cursor: pointer;
}

.course-card.is-filtered-out { display: none; }
/* Same [hidden]-vs-author-stylesheet specificity trap as .filter-banner above. */
.grid-3[hidden] { display: none; }

a.course-card {
    display: block;
    text-decoration: none;
    background: var(--color-bg-tertiary);
    padding: 2rem;
    border-radius: 0.5rem;
    border: 0.0625rem solid rgba(255,255,255,0.05);
    transition: var(--transition);
}
a.course-card:hover {
    border-color: var(--color-primary);
    transform: translateY(-0.3125rem);
    box-shadow: 0 0.625rem 1.25rem rgba(0, 210, 255, 0.05);
}
.course-card h4 {
    font-size: 1.1rem;
    margin-bottom: 0.8rem;
    color: #fff;
    line-height: 1.4;
}
.card-meta-top {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-bottom: 0.8rem;
}
.card-meta-top .level-badge {
    margin-bottom: 0;
    flex-basis: 100%;
}
.course-card .level-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.0625rem;
    font-weight: 700;
}
/* Scoped to .course-card specifically -- course detail pages (build_courses.py)
   have their own identically-named .level-foundation/.level-builder/.level-architect
   badges in their sidebar, but only color the dots, not the whole label. Keeping
   these curriculum.html rules scoped means merging both into one stylesheet can't
   make the two contexts bleed into each other. */
.course-card .level-dots { letter-spacing: 0.0625rem; }
.course-card .level-foundation { color: #10b981; }
.course-card .level-builder { color: #00d2ff; }
.course-card .level-architect { color: #a855f7; }
.course-card .course-desc {
    font-size: 0.9rem;
    color: var(--color-text-muted);
    line-height: 1.5;
    margin: 0 0 1rem 0;
}
.tags {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}
.tag {
    font-size: 0.75rem;
    background: rgba(0, 210, 255, 0.1);
    color: var(--color-primary);
    padding: 0.25rem 0.5rem;
    border-radius: 0.25rem;
    border: 0.0625rem solid rgba(0, 210, 255, 0.2);
    text-transform: uppercase;
    letter-spacing: 0.0625rem;
    font-weight: 600;
}
.tag-duration {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.15);
}
.tag-express {
    background: rgba(255, 204, 0, 0.15);
    color: #ffcc00;
    border-color: rgba(255, 204, 0, 0.3);
}

/* --- contact.html --- */
.contact-form {
    background: var(--color-bg-tertiary);
    padding: 4rem;
    border-radius: 0.75rem;
    border: 0.0625rem solid rgba(255,255,255,0.05);
    max-width: 50rem;
    margin: 0 auto;
}
.contact-form .form-group { margin-bottom: 1.5rem; }
.contact-form .form-group label {
    display: block;
    margin-bottom: 0.5rem;
    color: #fff;
    font-weight: 500;
}
.contact-form .form-group input,
.contact-form .form-group textarea,
.contact-form .form-group select {
    width: 100%;
    padding: 1rem;
    background: rgba(0,0,0,0.2);
    border: 0.0625rem solid rgba(255,255,255,0.1);
    border-radius: 0.25rem;
    color: #fff;
    font-family: var(--font-body);
    resize: vertical;
}
.contact-form .form-group input:focus,
.contact-form .form-group textarea:focus,
.contact-form .form-group select:focus {
    outline: none;
    border-color: var(--color-primary);
}
.contact-form .form-group select option {
    background: var(--color-bg-tertiary);
    color: #fff;
}

/* --- faq.html --- */
.faq-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    max-width: 62.5rem;
    margin: 0 auto;
}
.faq-item {
    background: var(--color-bg-tertiary);
    border-radius: 0.5rem;
    border: 0.0625rem solid rgba(255,255,255,0.05);
    transition: var(--transition);
    overflow: hidden;
}
.faq-item:hover { border-color: var(--color-primary); }
.faq-question {
    padding: 2rem;
    font-size: 1.2rem;
    font-weight: 600;
    color: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}
.faq-question .icon {
    color: var(--color-primary);
    font-size: 1.5rem;
    transition: transform 0.3s ease;
    font-weight: 300;
}
.faq-item.active .faq-question .icon { transform: rotate(45deg); }
.faq-answer {
    padding: 0 2rem;
    color: var(--color-text-muted);
    line-height: 1.6;
    max-height: 0;
    transition: max-height 0.4s cubic-bezier(0, 1, 0, 1), padding 0.4s ease;
}
.faq-item.active .faq-answer {
    padding: 0 2rem 2rem 2rem;
    max-height: 62.5rem;
    transition: max-height 0.4s ease-in-out, padding 0.4s ease;
}

/* --- privacy.html --- */
.content-section p, .content-section ul { font-size: 1.1rem; line-height: 1.8; color: var(--color-text-muted); margin-bottom: 1.5rem; }
.content-section ul { padding-left: 2rem; }
.content-section li { margin-bottom: 0.5rem; }


/* ==========================================================================
   Course Detail Pages (build_courses.py) -- migrated from a <style> block
   duplicated identically across all 23 generated course pages. The one
   per-category variation (accent color) now comes from three CSS custom
   properties -- --accent-r/-g/-b -- set once per page via a small <style>
   block in <head> (see build_courses.py's TEMPLATE), instead of the whole
   ruleset below being Python-interpolated and re-duplicated into every
   single page.
   ========================================================================== */
        .course-hero {
            padding: 2.5rem 0 1.5rem 0;
            border-bottom: none;
            text-align: left;
            background: linear-gradient(135deg, rgba(var(--accent-r, 0), var(--accent-g, 210), var(--accent-b, 255), 0.10) 0%, rgba(0, 0, 0, 0) 100%), radial-gradient(circle at 20% 0%, rgba(var(--accent-r, 0), var(--accent-g, 210), var(--accent-b, 255), 0.22) 0%, transparent 60%);
        }
        .hero-grid {
            display: grid;
            grid-template-columns: 1fr 22rem;
            gap: 3rem;
            align-items: start;
        }
        .hero-details-card {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 1.25rem 1.5rem;
            background: transparent;
            border: none;
            padding: 0;
        }
        .hero-details-card h3 { display: none; }
        @media (max-width: 60rem) {
            .hero-grid { grid-template-columns: 1fr; gap: 2rem; }
            .hero-right { margin-top: 0; }
        }
        @media (max-width: 60rem) {
            .hero-grid {
                grid-template-columns: 1fr;
                gap: 2rem;
            }
        }
        .course-hero h1 {
            font-family: var(--font-heading);
            font-size: clamp(2rem, 3.2vw, 3.1rem);
            max-width: 68.75rem;
            margin: 0;
            line-height: 1.2;
            color: #fff;
        }
        .breadcrumb {
            margin-bottom: 2rem;
            font-size: 0.85rem;
            color: var(--color-text-muted);
        }
        .breadcrumb a { color: var(--color-accent); text-decoration: none; }
        .breadcrumb a:hover { color: #fff; }
        .breadcrumb .crumb-sep { margin: 0 0.5rem; opacity: 0.4; }
        .breadcrumb .crumb-current { color: #fff; font-weight: 500; }

        .layout-grid {
            display: grid;
            grid-template-columns: 2fr 1fr;
            gap: 4rem;
            width: 85%;
            max-width: 100rem;
            margin: 0 auto;
            padding: 3rem 0 4rem 0;
        }

        /* Left Column: Markdown Content Section Cards */
        .markdown-content {
            background: transparent;
            padding: 0;
            border-radius: 0;
            border: none;
            box-shadow: none;
            display: flex;
            flex-direction: column;
            gap: 1.75rem;
        }
        .course-section-card {
            background: var(--color-bg-secondary);
            border: 0.0625rem solid rgba(255, 255, 255, 0.1);
            border-radius: 0.85rem;
            padding: 2rem 2.25rem;
            box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.3);
            transition: var(--transition);
        }
        .course-section-card:hover {
            border-color: rgba(0, 210, 255, 0.25);
            box-shadow: 0 0.75rem 2.5rem rgba(0, 0, 0, 0.4);
        }
        .section-card-header {
            display: flex;
            align-items: center;
            gap: 0.75rem;
            margin-bottom: 1.25rem;
            padding-bottom: 0.75rem;
            border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.08);
        }
        .section-card-header h2 {
            font-family: var(--font-heading);
            font-size: 1.4rem;
            font-weight: 700;
            color: #ffffff;
            margin: 0;
            padding: 0;
            border: none;
        }
        .section-card-icon {
            width: 2.25rem;
            height: 2.25rem;
            border-radius: 0.5rem;
            background: rgba(0, 210, 255, 0.1);
            border: 0.0625rem solid rgba(0, 210, 255, 0.25);
            color: var(--color-primary);
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }
        .course-section-card p {
            color: var(--color-text-muted);
            font-size: 1.02rem;
            line-height: 1.75;
            margin-bottom: 1.25rem;
        }
        .course-section-card p strong {
            color: #ffffff;
            font-weight: 600;
        }
        .course-section-card ul {
            list-style: none;
            padding-left: 0;
            margin-bottom: 1rem;
        }
        .course-section-card li {
            position: relative;
            padding-left: 2rem;
            margin-bottom: 0.75rem;
            color: var(--color-text-muted);
            font-size: 0.98rem;
            line-height: 1.6;
        }
        .course-section-card li::before {
            content: "▸";
            position: absolute;
            left: 0;
            top: 0;
            color: var(--color-primary);
            font-weight: bold;
        }

        /* Tables */
        .markdown-content table { width: 100%; border-collapse: collapse; margin-bottom: 2.5rem; background: rgba(0,0,0,0.2); border-radius: 0.5rem; overflow: hidden; }
        .markdown-content th, .markdown-content td { border: 0.0625rem solid rgba(255,255,255,0.05); padding: 1.2rem; text-align: left; }
        .markdown-content th { background: rgba(0, 210, 255, 0.05); color: var(--color-primary); font-weight: 600; text-transform: uppercase; font-size: 0.85rem; letter-spacing: 0.0625rem; }
        .markdown-content tr:hover td { background: rgba(0, 210, 255, 0.02); }

        /* Right Column: Sidebar */
        .sidebar {
            position: sticky;
            top: 6.25rem;
        }
        .sidebar-card {
            background: var(--color-bg-tertiary);
            padding: 2.5rem;
            border-radius: 0.75rem;
            border: 0.0625rem solid rgba(0, 210, 255, 0.2);
            box-shadow: 0 0.625rem 2.5rem rgba(0, 210, 255, 0.05);
            margin-bottom: 2rem;
        }
        .sidebar-card h3 {
            font-size: 1.2rem;
            color: #fff;
            margin-bottom: 2rem;
            border-bottom: 0.0625rem solid rgba(255,255,255,0.05);
            padding-bottom: 1rem;
            font-family: var(--font-heading);
            letter-spacing: 0.0312rem;
        }

        /* Learning Track banner: deliberately not styled like a sidebar-card/tag --
           this isn't a label, it's telling the visitor which mastery path this course
           sits on. Sits above .layout-grid (not inside the sidebar column) so the
           sidebar's Course Details -- pricing, duration, level -- is visible at a
           glance without this banner pushing it down first.
           NOTE: unrelated to curriculum.html's course-card grid -- naming these
           "track-card" originally caused confusion between two different things. */
        .learning-track-banner {
            background: linear-gradient(135deg, rgba(var(--accent-r),var(--accent-g),var(--accent-b),0.16) 0%, rgba(var(--accent-r),var(--accent-g),var(--accent-b),0.04) 100%);
            border: 0.0625rem solid rgba(var(--accent-r),var(--accent-g),var(--accent-b),0.4);
            border-radius: 0.75rem;
            padding: 1.5rem 1.75rem;
            margin: 0 0 2rem 0;
            display: flex;
            flex-direction: column;
            gap: 0.85rem;
        }
        .learning-track-banner .track-eyebrow {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.0625rem;
            font-weight: 700;
            color: rgb(var(--accent-r),var(--accent-g),var(--accent-b));
            margin-bottom: 0.25rem;
        }
        .learning-track-banner h4 {
            font-size: 1.15rem;
            color: #fff;
            margin: 0;
            font-family: var(--font-heading);
            line-height: 1.3;
        }
        .learning-track-banner p {
            font-size: 0.9rem;
            color: var(--color-text-muted);
            line-height: 1.6;
            margin: 0;
        }
        .learning-track-banner a {
            font-size: 0.85rem;
            font-weight: 600;
            color: rgb(var(--accent-r),var(--accent-g),var(--accent-b));
            text-decoration: none;
            align-self: flex-start;
            margin-top: 0.25rem;
        }
        .learning-track-banner a:hover { text-decoration: underline; }
        .meta-item { min-width: 0; }
        .meta-item-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
        @media (max-width: 26rem) {
            .meta-item-row { grid-template-columns: 1fr; }
        }
        .meta-label { font-size: 0.8rem; text-transform: uppercase; color: var(--color-accent); letter-spacing: 0.0625rem; font-weight: 600; margin-bottom: 0.5rem; display: block; }
        .meta-value { font-size: 1.05rem; color: #fff; font-weight: 500; }
        .meta-icon { vertical-align: text-bottom; margin-right: 0.25rem; }
        .meta-note { font-size: 0.85rem; color: var(--color-text-muted); margin: 0.5rem 0 0 0; line-height: 1.5; }
        .meta-note a { color: var(--color-primary); text-decoration: none; }
        .meta-note a:hover { color: #fff; }

        .level-badge { display: inline-flex; align-items: center; gap: 0.45rem; }
        .level-dots { display: inline-flex; align-items: center; vertical-align: middle; }
        .level-dots svg { display: block; }
        .level-foundation .level-dots { color: #10b981; }
        .level-builder .level-dots { color: #00d2ff; }
        .level-architect .level-dots { color: #a855f7; }

        .tags-container { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.8rem; }
        a.meta-tag {
            background: rgba(0, 210, 255, 0.1);
            color: var(--color-primary);
            padding: 0.3125rem 0.75rem;
            border-radius: 0.25rem;
            font-size: 0.8rem;
            border: 0.0625rem solid rgba(0, 210, 255, 0.2);
            font-weight: 600;
            text-decoration: none;
            transition: var(--transition, background 0.2s ease);
        }
        a.meta-tag:hover { background: rgba(0, 210, 255, 0.25); color: #fff; }

        /* Vendor tag: a different axis than Focus Areas ("what it teaches" vs "who it's
           built on"), so it gets its own warm accent instead of reusing the cyan tag color. */
        a.vendor-tag {
            background: rgba(255, 204, 0, 0.1);
            color: #ffcc00;
            padding: 0.3125rem 0.75rem;
            border-radius: 0.25rem;
            font-size: 0.8rem;
            border: 0.0625rem solid rgba(255, 204, 0, 0.25);
            font-weight: 600;
            text-decoration: none;
            transition: var(--transition, background 0.2s ease);
        }
        a.vendor-tag:hover { background: rgba(255, 204, 0, 0.25); color: #fff; }

        .promise-list { list-style: none; padding: 0; margin: 1rem 0 0 0; }
        .promise-list li { font-size: 0.9rem; color: var(--color-text-muted); margin-bottom: 1rem; line-height: 1.5; }
        .promise-list li strong { color: #fff; }

        .promise-banner-section {
            background: linear-gradient(180deg, rgba(3, 8, 22, 0.4) 0%, var(--color-bg-secondary) 100%);
            border-top: 0.0625rem solid rgba(255, 255, 255, 0.06);
            padding: 6rem 0;
            margin-top: 3rem;
        }
        .promise-banner-header {
            text-align: center;
            max-width: 44rem;
            margin: 0 auto 3rem auto;
        }
        .promise-banner-header h3 {
            font-size: 1.85rem;
            color: #fff;
            margin-bottom: 0.6rem;
            font-family: var(--font-heading);
            letter-spacing: -0.02rem;
        }
        .promise-banner-header p {
            font-size: 1.05rem;
            color: var(--color-text-muted);
            margin: 0;
            line-height: 1.6;
        }
        .promise-banner-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 2rem;
            width: 85%;
            max-width: 100rem;
            margin: 0 auto;
        }
        .promise-card-full {
            background: var(--color-bg-tertiary);
            border: 0.0625rem solid rgba(255, 255, 255, 0.06);
            border-radius: 0.75rem;
            padding: 2rem 1.75rem;
            text-align: center;
            transition: var(--transition, all 0.3s ease);
        }
        .promise-card-full:hover {
            border-color: rgba(var(--accent-r), var(--accent-g), var(--accent-b), 0.4);
            transform: translateY(-0.3125rem);
            box-shadow: 0 0.625rem 2rem rgba(0, 0, 0, 0.3);
        }
        .promise-card-full .promise-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 3.5rem;
            height: 3.5rem;
            border-radius: 50%;
            background: rgba(0, 210, 255, 0.08);
            border: 0.0625rem solid rgba(0, 210, 255, 0.25);
            margin-bottom: 1.25rem;
            color: var(--color-primary);
            box-shadow: 0 0 1rem rgba(0, 210, 255, 0.1);
        }
        .promise-card-full h4 {
            font-size: 1.15rem;
            color: #fff;
            margin-bottom: 0.6rem;
            font-family: var(--font-heading);
        }
        .promise-card-full p {
            font-size: 0.9rem;
            color: var(--color-text-muted);
            margin: 0;
            line-height: 1.6;
        }
        @media (max-width: 48rem) {
            .promise-banner-grid { grid-template-columns: 1fr; }
        }

        @media (max-width: 56.25rem) {
            .layout-grid { grid-template-columns: 1fr; }
            .sidebar { position: relative; top: 0; }
        }

/* Pricing Comparison Section (homepage) */
.pricing-comparison-header { text-align: center; max-width: 48rem; margin: 0 auto 2.5rem auto; }
.pricing-comparison-table-wrap { overflow-x: auto; margin-bottom: 2.5rem; }
.pricing-comparison-table {
    width: 100%;
    max-width: 45rem;
    margin: 0 auto;
    border-collapse: collapse;
    background: rgba(0, 0, 0, 0.2);
    border: 0.0625rem solid rgba(255, 255, 255, 0.1);
    border-radius: 0.5rem;
    overflow: hidden;
}
.pricing-comparison-table th,
.pricing-comparison-table td {
    padding: 0.85rem 1.25rem;
    text-align: center;
    border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.08);
}
.pricing-comparison-table th:first-child,
.pricing-comparison-table td:first-child { text-align: left; color: var(--color-text-muted); font-size: 0.9rem; }
.pricing-comparison-table thead th { color: var(--color-text-muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 700; }
.pricing-comparison-table tbody tr:last-child td { border-bottom: none; }
.pricing-comparison-table td:last-child { color: #fff; font-weight: 700; }
.savings-tag {
    display: inline-block;
    margin-left: 0.4rem;
    font-size: 0.65rem;
    font-weight: 700;
    color: #05070a;
    background: var(--color-accent);
    padding: 0.15rem 0.5rem;
    border-radius: 1rem;
    vertical-align: middle;
}
.pricing-example-card {
    max-width: 45rem;
    margin: 0 auto;
    background: rgba(0, 0, 0, 0.2);
    border: 0.0625rem solid rgba(255, 255, 255, 0.1);
    border-radius: 0.75rem;
    padding: 2rem;
    text-align: center;
}
.pricing-example-card h3 { margin-top: 0; font-size: 1.1rem; }
.pricing-example-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin: 1.5rem 0;
}
.pricing-example-col { border-right: 0.0625rem solid rgba(255, 255, 255, 0.1); }
.pricing-example-col:last-child { border-right: none; }
.pricing-example-label { display: block; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-muted); margin-bottom: 0.35rem; }
.pricing-example-amount { display: block; font-family: var(--font-heading); font-size: 2rem; font-weight: 800; color: #fff; }
.pricing-example-col:first-child .pricing-example-amount {
    color: var(--color-accent);
    font-size: 2.5rem;
    text-shadow: 0 0 1.5rem rgba(255, 204, 0, 0.35);
}
.pricing-example-col:last-child .pricing-example-amount { color: var(--color-text-muted); text-decoration: line-through; text-decoration-color: rgba(255, 255, 255, 0.3); }
.pricing-example-detail { font-size: 0.8rem; color: var(--color-text-muted); margin-top: 0.5rem; }
.pricing-example-savings { font-size: 0.95rem; color: var(--color-text); margin: 0; }
.pricing-example-savings strong { color: var(--color-primary); }

@media (max-width: 30rem) {
    .pricing-example-grid { grid-template-columns: 1fr; }
    .pricing-example-col { border-right: none; border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.1); padding-bottom: 1rem; }
    .pricing-example-col:last-child { border-bottom: none; padding-bottom: 0; }
    .pricing-comparison-table th, .pricing-comparison-table td { padding: 0.6rem 0.75rem; font-size: 0.85rem; }
}

/* Privacy Policy page -- was plain default-styled headings/paragraphs/bullets with
   no visual structure, unlike every other content page on the site. */
.policy-section { display: flex; justify-content: center; }
.policy-card {
    max-width: 75rem;
    width: 100%;
    background: rgba(0, 0, 0, 0.2);
    border: 0.0625rem solid rgba(255, 255, 255, 0.1);
    border-radius: 0.75rem;
    padding: 2.5rem 3rem;
}
.policy-updated {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: var(--color-text-muted);
    background: rgba(255, 255, 255, 0.06);
    border: 0.0625rem solid rgba(255, 255, 255, 0.1);
    border-radius: 1rem;
    padding: 0.3rem 0.85rem;
    margin-bottom: 1.5rem;
}
.policy-card h2 {
    text-align: left;
    font-size: 1.4rem;
    color: var(--color-primary);
    margin: 2rem 0 1rem 0;
    padding-bottom: 0.6rem;
    border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.1);
}
.policy-card h2:first-of-type { margin-top: 0; }
.policy-card .check-list { margin: 1rem 0 1.5rem 0; }
.policy-last { margin-bottom: 0; }

@media (max-width: 37.5rem) {
    .policy-card { padding: 2rem 1.5rem; }
}
