/*
 * Academy Theme R2 foundation and Designing Designers composition.
 * Mobile-first, dependency-free, and route-scoped to the migrated homepage.
 */

:root {
  /* Color */
  --academy-color-canvas: #ffffff;
  --academy-color-surface: #f3f8ff;
  --academy-color-ink: #111111;
  --academy-color-ink-soft: #343740;
  --academy-color-muted: #5f6470;
  --academy-color-border: #d9dee8;
  --academy-color-brand-deep: #1c0b7a;
  --academy-color-brand-night: #040211;
  --academy-color-action: #0044ba;
  --academy-color-action-hover: #003895;
  --academy-color-action-contrast: #ffffff;
  --academy-color-success: #2f9f72;
  --academy-color-success-soft: #e0f4eb;
  --academy-color-danger: #c62828;
  --academy-color-danger-soft: #fde8e8;

  /* Global typography. Licensed JUST Sans files can be added centrally later. */
  --academy-font-sans: "JUST Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --academy-text-caption: 0.75rem;
  --academy-text-small: 0.875rem;
  --academy-text-body: 1rem;
  --academy-text-body-lg: 1.125rem;
  --academy-text-lead: clamp(1.125rem, 0.9rem + 1vw, 1.75rem);
  --academy-text-h6: 1rem;
  --academy-text-h5: 1.25rem;
  --academy-text-h4: 1.5rem;
  --academy-text-h3: clamp(1.5rem, 1.35rem + 0.5vw, 1.75rem);
  --academy-text-h2: clamp(2.125rem, 1.75rem + 1.5vw, 2.875rem);
  --academy-text-h1: clamp(2.5rem, 2.1rem + 1.8vw, 3.75rem);
  --academy-text-display: clamp(3.5rem, 1.5rem + 8vw, 8.375rem);
  --academy-text-price: clamp(2rem, 7vw, 3.5rem);

  --academy-leading-caption: 1.45;
  --academy-leading-small: 1.5;
  --academy-leading-body: 1.6;
  --academy-leading-body-lg: 1.5;
  --academy-leading-lead: 1.3;
  --academy-leading-heading-sm: 1.3;
  --academy-leading-heading: 1.3;
  --academy-leading-display: 1.08;
  --academy-leading-control: 1.2;

  --academy-weight-regular: 400;
  --academy-weight-medium: 500;
  --academy-weight-semibold: 600;
  --academy-weight-bold: 700;

  --academy-tracking-body: 0;
  --academy-tracking-eyebrow: 0.08em;
  --academy-tracking-heading: 0;
  --academy-tracking-display: 0;

  --academy-measure-narrow: 40ch;
  --academy-measure-standard: 65ch;
  --academy-measure-wide: 75ch;

  /* Compatibility aliases for existing components. */
  --academy-font-size-xs: var(--academy-text-caption);
  --academy-font-size-sm: var(--academy-text-small);
  --academy-font-size-body: var(--academy-text-body);
  --academy-font-size-lead: var(--academy-text-lead);
  --academy-font-size-h3: var(--academy-text-h4);
  --academy-font-size-h2: var(--academy-text-h2);
  --academy-font-size-display: var(--academy-text-display);
  --academy-line-height-tight: var(--academy-leading-heading);
  --academy-line-height-heading: var(--academy-leading-heading-sm);
  --academy-line-height-body: var(--academy-leading-body);
  --academy-letter-spacing-tight: var(--academy-tracking-heading);

  /* Spacing */
  --academy-space-1: 0.25rem;
  --academy-space-2: 0.5rem;
  --academy-space-3: 0.75rem;
  --academy-space-4: 1rem;
  --academy-space-5: 1.25rem;
  --academy-space-6: 1.5rem;
  --academy-space-7: 1.75rem;
  --academy-space-8: 2rem;
  --academy-space-10: 2.5rem;
  --academy-space-12: 3rem;
  --academy-space-16: 4rem;
  --academy-space-20: 5rem;
  --academy-space-24: 6rem;
  --academy-space-28: 7rem;
  --academy-space-32: 8rem;

  /* Repeated Figma spacing roles. Values scale down deliberately on small screens. */
  --academy-space-section-sm: clamp(3rem, 3.35vw, 3.5rem);
  --academy-space-section-md: clamp(3.25rem, 4.17vw, 3.75rem);
  --academy-space-section-lg: clamp(3.75rem, 5vw, 4.75rem);
  --academy-space-section-xl: clamp(4rem, 5.85vw, 5.25rem);
  --academy-space-content-sm: 0.75rem;
  --academy-space-content-md: 1.5rem;
  --academy-space-content-lg: clamp(2rem, 2.8vw, 2.5rem);
  --academy-gap-grid-sm: 1rem;
  --academy-gap-grid-md: clamp(1.25rem, 1.7vw, 1.5rem);
  --academy-gap-grid-lg: clamp(2rem, 2.8vw, 2.5rem);

  /* Layout */
  --academy-container-standard: 71.25rem;
  --academy-container-wide: 79.25rem;
  --academy-container-reading: 45rem;
  --academy-gutter: clamp(1rem, 4vw, 2rem);
  --academy-section-space: var(--academy-space-section-md);
  --academy-grid-gap: var(--academy-gap-grid-md);

  /* Reference breakpoints: small 30rem, medium 48rem, large 64rem, wide 80rem. */
  --academy-breakpoint-small: 30rem;
  --academy-breakpoint-medium: 48rem;
  --academy-breakpoint-large: 64rem;
  --academy-breakpoint-wide: 80rem;

  /* Shape, depth, and focus */
  --academy-radius-sm: 0.375rem;
  --academy-radius-md: 0.75rem;
  --academy-radius-lg: 1rem;
  --academy-radius-pill: 999px;
  --academy-shadow-card: 0 1rem 2.5rem rgba(14, 18, 32, 0.08);
  --academy-shadow-action: 0 0.75rem 1.75rem rgba(0, 68, 186, 0.24);
  --academy-focus-color: #0b6ee8;
  --academy-focus-ring: 0 0 0 0.2rem rgba(11, 110, 232, 0.35);
  --academy-border-width: 1px;
  --academy-transition-fast: 160ms ease;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  color-scheme: light;
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

body {
  margin: 0;
  background: var(--academy-color-canvas);
  color: var(--academy-color-ink);
  font-family: var(--academy-font-sans);
  font-size: var(--academy-font-size-body);
  line-height: var(--academy-line-height-body);
  font-weight: var(--academy-weight-regular);
  letter-spacing: var(--academy-tracking-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img,
svg,
video,
iframe {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
}

button,
input,
select,
textarea {
  font: inherit;
}

a {
  color: var(--academy-color-action);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

a:hover {
  color: var(--academy-color-action-hover);
}

:where(a, button, input, select, textarea, summary):focus-visible {
  border-radius: var(--academy-radius-sm);
  outline: 0.15rem solid var(--academy-focus-color);
  outline-offset: 0.2rem;
  box-shadow: var(--academy-focus-ring);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-block: 0 var(--academy-space-4);
  color: var(--academy-color-ink);
  font-weight: var(--academy-weight-bold);
  letter-spacing: var(--academy-tracking-heading);
  line-height: var(--academy-leading-heading);
}

h1 {
  font-size: var(--academy-text-h1);
}

h2 {
  font-size: var(--academy-text-h2);
}

h3 {
  font-size: var(--academy-text-h3);
  line-height: var(--academy-leading-heading-sm);
}

h4 {
  font-size: var(--academy-text-h4);
  line-height: var(--academy-leading-heading-sm);
}

h5 {
  font-size: var(--academy-text-h5);
  line-height: var(--academy-leading-heading-sm);
}

h6 {
  font-size: var(--academy-text-h6);
  font-weight: var(--academy-weight-semibold);
  line-height: var(--academy-leading-heading-sm);
}

p,
ul,
ol,
blockquote {
  margin-block: 0 var(--academy-space-6);
}

p,
li {
  font-size: var(--academy-text-body);
  line-height: var(--academy-leading-body);
}

small,
.academy-text-caption {
  font-size: var(--academy-text-caption);
  line-height: var(--academy-leading-caption);
}

.academy-text-small {
  font-size: var(--academy-text-small);
  line-height: var(--academy-leading-small);
}

.academy-text-body-lg {
  font-size: var(--academy-text-body-lg);
  line-height: var(--academy-leading-body-lg);
}

.academy-text-lead {
  font-size: var(--academy-text-lead);
  line-height: var(--academy-leading-lead);
}

.academy-text-measure--narrow {
  max-width: var(--academy-measure-narrow);
}

.academy-text-measure--standard {
  max-width: var(--academy-measure-standard);
}

.academy-text-measure--wide {
  max-width: var(--academy-measure-wide);
}

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.academy-skip-link {
  position: fixed;
  z-index: 9999;
  inset: var(--academy-space-3) auto auto var(--academy-space-3);
  padding: var(--academy-space-3) var(--academy-space-4);
  border-radius: var(--academy-radius-sm);
  background: var(--academy-color-ink);
  color: var(--academy-color-canvas);
  transform: translateY(-200%);
}

.academy-skip-link:focus {
  color: var(--academy-color-canvas);
  transform: translateY(0);
}

.academy-container {
  width: min(100% - (2 * var(--academy-gutter)), var(--academy-container-standard));
  margin-inline: auto;
}

.academy-container--wide {
  width: min(100% - (2 * var(--academy-gutter)), var(--academy-container-wide));
}

.academy-container--reading {
  max-width: var(--academy-container-reading);
}

.academy-main {
  min-height: 50vh;
}

.academy-section {
  padding-block: var(--academy-section-space);
}

.academy-section--canvas {
  background: var(--academy-color-canvas);
}

.academy-section--surface {
  background: var(--academy-color-surface);
}

.academy-section--brand,
.academy-section--night {
  color: var(--academy-color-action-contrast);
}

.academy-section--brand {
  background: var(--academy-color-brand-deep);
}

.academy-section--night {
  background: var(--academy-color-brand-night);
}

.academy-section--brand :where(h1, h2, h3),
.academy-section--night :where(h1, h2, h3) {
  color: inherit;
}

/* Global header and footer */
.academy-site-header {
  position: sticky;
  z-index: 20;
  top: 0;
  background: var(--academy-color-canvas);
  border-bottom: var(--academy-border-width) solid var(--academy-color-border);
}

.academy-site-header--landing {
  position: sticky;
  z-index: 20;
  top: 0;
  right: 0;
  left: 0;
  background: transparent;
  border-bottom: 0;
  color: #fff;
  margin-bottom: -7rem;
}

.academy-site-header--landing.academy-site-header--stuck {
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid rgba(12, 18, 32, 0.08);
  box-shadow: 0 0.35rem 1.25rem rgba(12, 18, 32, 0.1);
  color: var(--academy-color-ink);
  mix-blend-mode: normal;
}

.academy-site-header--landing .academy-site-header__inner {
  min-height: 7rem;
}

.academy-site-header__logo {
  display: inline-flex;
  width: 5.25rem;
}

.academy-site-header__logo img {
  display: block;
  width: 100%;
  height: auto;
  filter: invert(1);
}

.academy-site-header--stuck .academy-site-header__logo img {
  filter: none;
}

.academy-site-header__inner {
  display: flex;
  min-height: 4.5rem;
  align-items: center;
  justify-content: space-between;
  gap: var(--academy-space-6);
}

.academy-site-header__brand,
.academy-site-header__brand .custom-logo-link {
  display: inline-flex;
  align-items: center;
}

.academy-site-header__brand .custom-logo {
  width: auto;
  max-height: 3rem;
}

.academy-site-header__name {
  color: var(--academy-color-ink);
  font-weight: var(--academy-weight-bold);
  text-decoration: none;
}

.academy-menu {
  display: flex;
  flex-wrap: wrap;
  gap: var(--academy-space-4) var(--academy-space-6);
  padding: 0;
  margin: 0;
  list-style: none;
}

.academy-menu a {
  color: inherit;
  font-size: var(--academy-font-size-sm);
  font-weight: var(--academy-weight-semibold);
  line-height: var(--academy-leading-small);
  text-decoration: none;
}

.academy-menu a:focus-visible,
.academy-site-footer a:focus-visible {
  outline: 3px solid var(--academy-color-action);
  outline-offset: 3px;
}

.academy-site-footer {
  padding-block: var(--academy-space-8);
  background: var(--academy-color-canvas);
  border-top: var(--academy-border-width) solid var(--academy-color-border);
}

.academy-site-footer__inner {
  display: grid;
  gap: var(--academy-space-5);
}

@media (min-width: 48rem) {
  .academy-site-footer__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 34rem);
    column-gap: clamp(3rem, 9vw, 9rem);
    row-gap: var(--academy-space-8);
    align-items: start;
  }

  .academy-site-footer__intro {
    grid-column: 1;
    grid-row: 1;
  }

  .academy-site-footer__columns {
    grid-column: 2;
    grid-row: 1 / span 2;
    justify-self: end;
    width: 100%;
  }

  .academy-site-footer__copyright {
    grid-column: 1;
    grid-row: 2;
    align-self: end;
  }
}

.academy-site-footer__intro {
  display: grid;
  gap: 0.5rem;
}

.academy-site-footer__brand {
  color: var(--academy-color-ink);
  font-size: var(--academy-text-h3);
  font-weight: var(--academy-weight-bold);
  text-decoration: none;
}

.academy-site-footer__intro p {
  margin: 0;
  color: var(--academy-color-muted);
  font-size: 1rem;
}

.academy-site-footer__columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--academy-space-8);
  padding-block: var(--academy-space-5);
}

.academy-site-footer__columns h2 {
  margin: 0 0 var(--academy-space-3);
  color: var(--academy-color-muted);
  font-size: var(--academy-font-size-sm);
  font-weight: var(--academy-weight-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.academy-site-footer__columns .academy-menu {
  display: grid;
  gap: var(--academy-space-3);
}

.academy-site-footer__columns .academy-menu a {
  font-size: 1rem;
  font-weight: var(--academy-weight-medium);
}

.academy-site-footer__copyright {
  margin: 0;
  color: var(--academy-color-muted);
  font-size: var(--academy-font-size-sm);
}

@media (max-width: 40rem) {
  .academy-site-header__inner {
    min-height: 4rem;
  }

  .academy-menu {
    gap: var(--academy-space-3) var(--academy-space-4);
  }

  .academy-menu a {
    font-size: 0.9375rem;
  }

  .academy-site-footer__columns {
    grid-template-columns: 1fr;
    gap: var(--academy-space-6);
  }
}

/* Primitives */
.academy-button {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  gap: var(--academy-space-2);
  padding: var(--academy-space-3) var(--academy-space-6);
  border: var(--academy-border-width) solid transparent;
  border-radius: var(--academy-radius-sm);
  cursor: pointer;
  font-size: var(--academy-text-small);
  font-weight: var(--academy-weight-medium);
  line-height: var(--academy-leading-control);
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--academy-transition-fast), border-color var(--academy-transition-fast), color var(--academy-transition-fast), transform var(--academy-transition-fast);
}

.academy-button:hover {
  transform: translateY(-1px);
}

.academy-button--primary {
  background: var(--academy-color-action);
  box-shadow: var(--academy-shadow-action);
  color: var(--academy-color-action-contrast);
}

.academy-button--primary:hover {
  background: var(--academy-color-action-hover);
  color: var(--academy-color-action-contrast);
}

.academy-button--secondary {
  border-color: var(--academy-color-action);
  background: transparent;
  color: var(--academy-color-action);
}

.academy-button--ghost {
  background: var(--academy-color-surface);
  color: var(--academy-color-action);
}

.academy-button--inverse {
  background: var(--academy-color-canvas);
  color: var(--academy-color-brand-deep);
}

.academy-button--small {
  min-height: 2.25rem;
  padding: var(--academy-space-2) var(--academy-space-4);
  font-size: var(--academy-font-size-sm);
}

.academy-button--large {
  min-height: 3.25rem;
  padding-inline: var(--academy-space-8);
}

.academy-badge {
  display: inline-flex;
  align-items: center;
  padding: var(--academy-space-1) var(--academy-space-3);
  border-radius: var(--academy-radius-pill);
  background: var(--academy-color-surface);
  color: var(--academy-color-ink-soft);
  font-size: var(--academy-font-size-xs);
  font-weight: var(--academy-weight-bold);
  line-height: var(--academy-leading-caption);
}

.academy-badge--brand {
  background: rgba(0, 68, 186, 0.1);
  color: var(--academy-color-action);
}

.academy-badge--success {
  background: var(--academy-color-success-soft);
  color: var(--academy-color-success);
}

.academy-badge--danger {
  background: var(--academy-color-danger-soft);
  color: var(--academy-color-danger);
}

.academy-icon {
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 auto;
}

.academy-checklist {
  display: grid;
  gap: var(--academy-space-3);
  padding: 0;
  margin: 0;
  list-style: none;
}

.academy-checklist__item {
  display: flex;
  align-items: flex-start;
  gap: var(--academy-space-3);
}

.academy-checklist__icon {
  display: inline-flex;
  width: 1.5rem;
  height: 1.5rem;
  flex: 0 0 1.5rem;
  align-items: center;
  justify-content: center;
  border-radius: var(--academy-radius-pill);
  background: var(--academy-color-success-soft);
  color: var(--academy-color-success);
}

.academy-checklist--danger .academy-checklist__icon {
  background: var(--academy-color-danger-soft);
  color: var(--academy-color-danger);
}

/* Content */
.academy-section-heading {
  max-width: var(--academy-container-reading);
  margin-bottom: var(--academy-space-10);
}

.academy-section-heading--center {
  margin-inline: auto;
  text-align: center;
}

.academy-section-heading__eyebrow,
.academy-eyebrow {
  margin-bottom: var(--academy-space-3);
  color: var(--academy-color-action);
  font-size: var(--academy-font-size-sm);
  font-weight: var(--academy-weight-bold);
  letter-spacing: var(--academy-tracking-eyebrow);
  line-height: var(--academy-leading-small);
  text-transform: uppercase;
}

.academy-section-heading__title {
  font-size: var(--academy-font-size-h2);
}

.academy-section-heading__description {
  color: var(--academy-color-muted);
  font-size: var(--academy-font-size-lead);
  line-height: var(--academy-leading-lead);
}

.academy-split-content {
  display: grid;
  gap: var(--academy-grid-gap);
}

.academy-split-content--reverse-mobile .academy-split-content__primary {
  order: 2;
}

.academy-feature-grid,
.academy-curriculum-grid {
  display: grid;
  gap: var(--academy-grid-gap);
}

.academy-feature-card,
.academy-curriculum-card,
.academy-pricing-card {
  padding: var(--academy-space-6);
  border: var(--academy-border-width) solid var(--academy-color-border);
  border-radius: var(--academy-radius-md);
  background: var(--academy-color-canvas);
}

.academy-feature-card__icon {
  display: inline-flex;
  padding: var(--academy-space-2);
  margin-bottom: var(--academy-space-4);
  border-radius: var(--academy-radius-sm);
  background: var(--academy-color-surface);
  color: var(--academy-color-action);
}

.academy-feature-card__title,
.academy-outcome-list__heading,
.academy-curriculum-card__title,
.academy-pricing-card__title,
.academy-instructor-profile__name {
  font-size: var(--academy-font-size-h3);
}

.academy-feature-card__text,
.academy-curriculum-card__description,
.academy-pricing-card__description {
  color: var(--academy-color-muted);
}

.academy-media-block {
  margin: 0;
}

.academy-media-block__media {
  overflow: hidden;
  border-radius: var(--academy-radius-md);
}

.academy-media-block__media > :where(img, video, iframe) {
  width: 100%;
}

.academy-media-block__caption {
  margin-top: var(--academy-space-3);
  color: var(--academy-color-muted);
  font-size: var(--academy-font-size-sm);
}

.academy-final-cta {
  padding: clamp(2rem, 7vw, 5rem);
  border-radius: var(--academy-radius-lg);
  text-align: center;
}

.academy-final-cta--brand {
  background: var(--academy-color-brand-deep);
  color: var(--academy-color-action-contrast);
}

.academy-final-cta--brand .academy-final-cta__heading {
  color: inherit;
}

.academy-final-cta--light {
  background: var(--academy-color-surface);
}

.academy-final-cta__content {
  max-width: var(--academy-container-reading);
  margin-inline: auto;
}

.academy-final-cta__heading {
  font-size: var(--academy-font-size-h2);
}

.academy-final-cta__action {
  margin-top: var(--academy-space-8);
}

/* Commerce */
.academy-regional-price {
  display: grid;
  gap: var(--academy-space-1);
}

.academy-regional-price__label {
  color: var(--academy-color-muted);
  font-size: var(--academy-font-size-sm);
  font-weight: var(--academy-weight-semibold);
  line-height: var(--academy-leading-small);
}

.academy-regional-price__value {
  color: var(--academy-color-ink);
  font-size: var(--academy-text-price);
  font-weight: var(--academy-weight-bold);
  line-height: var(--academy-line-height-tight);
}

.academy-regional-price__value :where(.amount, ins, del) {
  color: inherit;
  text-decoration-thickness: 0.08em;
}

.academy-regional-price__value del {
  margin-right: var(--academy-space-2);
  color: var(--academy-color-muted);
  font-size: 0.6em;
  opacity: 0.8;
}

.academy-regional-price__value ins {
  text-decoration: none;
}

.academy-regional-price--loading .academy-regional-price__value {
  min-width: 8rem;
  min-height: 2.75rem;
  border-radius: var(--academy-radius-sm);
  background: var(--academy-color-surface);
  color: transparent;
}

.academy-pricing-card {
  display: grid;
  gap: var(--academy-space-6);
  box-shadow: var(--academy-shadow-card);
}

.academy-pricing-card__header > :last-child,
.academy-pricing-card__benefits > :last-child {
  margin-bottom: 0;
}

/* Course foundation shells; no course content is included in R1. */
.academy-curriculum-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}

.academy-curriculum-card__header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--academy-space-2);
  margin-bottom: var(--academy-space-8);
}

.academy-curriculum-card__outcome {
  padding-top: var(--academy-space-6);
  margin-top: auto;
  font-weight: var(--academy-weight-bold);
}

.academy-instructor-profile {
  display: grid;
  gap: var(--academy-grid-gap);
}

.academy-instructor-profile__role {
  margin-bottom: var(--academy-space-2);
  color: var(--academy-color-muted);
}

.academy-instructor-profile__link {
  display: inline-block;
  margin-bottom: var(--academy-space-6);
}

.academy-instructor-profile__media {
  overflow: hidden;
  border-radius: var(--academy-radius-md);
}

.academy-instructor-profile__media img {
  width: 100%;
}

.academy-audience-checklist {
  padding: clamp(1.5rem, 5vw, 4rem);
  border-radius: var(--academy-radius-lg);
}

.academy-audience-checklist--include {
  background: var(--academy-color-brand-deep);
  color: var(--academy-color-action-contrast);
}

.academy-audience-checklist--include .academy-audience-checklist__heading {
  color: inherit;
}

.academy-audience-checklist--exclude {
  background: var(--academy-color-surface);
}

.academy-audience-checklist__heading {
  margin-bottom: var(--academy-space-8);
  font-size: var(--academy-font-size-h2);
}

/* Conventional fallback content */
.academy-legacy-content,
.academy-post-list,
.academy-empty-state {
  padding-block: var(--academy-section-space);
}

.academy-entry__header,
.academy-archive__header {
  margin-bottom: var(--academy-space-10);
}

.academy-entry__title,
.academy-empty-state h1 {
  font-size: var(--academy-font-size-h2);
}

.academy-entry__content > :where(img, figure, video, iframe) {
  max-width: 100%;
}

.academy-post-list {
  display: grid;
  gap: var(--academy-space-8);
}

.academy-post-summary {
  padding-bottom: var(--academy-space-8);
  border-bottom: var(--academy-border-width) solid var(--academy-color-border);
}

.academy-post-summary__title {
  font-size: var(--academy-font-size-h3);
}

.academy-post-summary__title a {
  color: inherit;
  text-decoration: none;
}

@media (min-width: 48rem) {
  .academy-site-footer__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 34rem);
    align-items: start;
  }

  .academy-split-content {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
  }

  .academy-split-content--wide-primary {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
  }

  .academy-split-content--wide-secondary {
    grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
  }

  .academy-split-content--reverse-mobile .academy-split-content__primary {
    order: initial;
  }

  .academy-feature-grid,
  .academy-curriculum-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .academy-instructor-profile {
    grid-template-columns: minmax(0, 1.5fr) minmax(15rem, 0.5fr);
    align-items: start;
  }
}

@media (min-width: 64rem) {
  .academy-feature-grid--3,
  .academy-curriculum-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .academy-feature-grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .academy-feature-card,
  .academy-curriculum-card,
  .academy-pricing-card {
    padding: var(--academy-space-8);
  }
}

/* Designing Designers — approved R2 composition */
.academy-dd {
  overflow: clip;
  background: #fff;
  color: #101116;
}

.academy-dd-container {
  width: min(calc(100% - 2rem), 71.25rem);
  margin-inline: auto;
}

.academy-dd-container--wide {
  width: min(calc(100% - (2 * var(--academy-gutter))), var(--academy-container-wide));
  max-width: 79.25rem;
}

.academy-dd-container--reading-wide {
  max-width: 56.25rem;
}

.academy-dd-section {
  padding-block: var(--academy-space-section-md);
}

.academy-dd :where(h1, h2, h3, p) {
  text-wrap: pretty;
}

.academy-dd :where(h2) {
  font-size: var(--academy-text-h2);
  font-weight: var(--academy-weight-medium);
  line-height: var(--academy-leading-heading);
  letter-spacing: var(--academy-tracking-heading);
}

.academy-dd :where(h3) {
  font-size: var(--academy-text-h3);
  font-weight: var(--academy-weight-medium);
  line-height: var(--academy-leading-heading-sm);
  letter-spacing: var(--academy-tracking-heading);
}

.academy-dd .academy-button {
  width: min(100%, 14.25rem);
  height: 3.25rem;
  min-height: 3.25rem;
  padding: 0 3.25rem;
  border-radius: 0.3125rem;
  background: radial-gradient(120% 180% at 50% 0%, #2e72ed 0%, #0044ba 70%);
  box-shadow: inset 0 0 0.625rem rgba(255, 255, 255, 0.33), 0 1.125rem 1.25rem -0.625rem rgba(17, 87, 209, 0.54);
  color: #fff;
  font-size: var(--academy-text-small);
}

.academy-dd .academy-button:hover {
  background: radial-gradient(120% 180% at 50% 0%, #3d7df0 0%, #003895 74%);
  color: #fff;
}

.academy-dd-hero {
  display: grid;
  min-height: 43.75rem;
  place-items: center;
  padding: 10rem 1rem 4rem;
  background:
    radial-gradient(ellipse at 50% 14%, rgba(54, 31, 149, 0.43), transparent 43%),
    linear-gradient(180deg, #0e053c 0%, #07021e 52%, #000 100%);
  color: #fff;
  text-align: center;
}

.academy-dd-hero__inner {
  width: min(100%, 75rem);
}

.academy-dd-hero__logo {
  width: 4.5rem;
  height: auto;
  margin: 0 auto 3rem;
}

.academy-dd-hero__eyebrow {
	width: fit-content;
	padding: 0.3rem 2rem;
	margin-inline: auto;
	border: 1px solid rgba(56, 102, 235, 0.62);
	border-radius: 999px;
  margin-bottom: 0.75rem;
  color: #c9c4df;
  font-size: clamp(var(--academy-text-small), 1.5vw, var(--academy-text-body-lg));
  font-weight: var(--academy-weight-semibold);
  letter-spacing: var(--academy-tracking-eyebrow);
  line-height: var(--academy-leading-small);
  text-transform: none;
}

.academy-dd-hero__title {
  margin-bottom: 1.5rem;
  color: #fff;
  font-size: var(--academy-text-display);
  font-weight: var(--academy-weight-bold);
  line-height: var(--academy-leading-display);
  letter-spacing: var(--academy-tracking-display);
  white-space: nowrap;
}

.academy-dd-hero__lead {
  max-width: 43rem;
  margin: 0 auto clamp(2rem, 5vw, 4.5rem);
  color: #ddd9eb;
  font-size: var(--academy-text-lead);
  line-height: var(--academy-leading-lead);
}

.academy-dd-hero__byline {
  margin: 1.5rem 0 0;
  color: #aba5c1;
  font-size: 0.8125rem;
  line-height: 1.28;
}

.academy-dd-hero__byline strong {
  color: #fff;
}

.academy-dd-split {
  display: grid;
  gap: var(--academy-gap-grid-lg);
}

.academy-dd-problem {
  padding-block: var(--academy-space-section-lg);
  background: #fff;
}

.academy-dd-problem h2 {
  max-width: 47.75rem;
  margin-bottom: 2.1875rem;
  font-size: var(--academy-text-h3);
}

.academy-dd-problem .academy-dd-dot-list {
  gap: 0;
  margin: 0 0 1.9375rem;
}

.academy-dd-problem .academy-dd-dot-list li {
  line-height: 1.8;
}

.academy-dd-dot-list,
.academy-dd-number-list {
  display: grid;
  gap: 1rem;
  padding: 0;
  margin: 2rem 0;
  list-style: none;
}

.academy-dd-dot-list li {
  position: relative;
  padding-left: 1.25rem;
}

.academy-dd-dot-list li::before {
  position: absolute;
  top: 0.68em;
  left: 0;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: #101116;
  content: "";
}

.academy-dd-problem__close {
  max-width: 29rem;
  color: #333;
  font-size: 1.375rem;
  font-weight: var(--academy-weight-regular);
  line-height: 1.3;
}

.academy-dd-text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #004bcb;
  font-size: var(--academy-text-body);
  font-weight: var(--academy-weight-bold);
  line-height: var(--academy-leading-control);
  text-decoration: none;
}

.academy-dd-text-link--center {
  display: flex;
  width: max-content;
  margin: 2.5rem auto 0;
}

.academy-video-media {
  margin: 0;
  align-self: center;
}

.academy-video-media__surface {
  position: relative;
  display: grid;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  place-items: center;
  border-radius: 0.25rem;
  background: #d9d9d9;
}

.academy-video-media__surface > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.academy-video-media__play {
  position: absolute;
  width: clamp(3.5rem, 8vw, 5rem);
  aspect-ratio: 1;
  border: 0.125rem solid rgba(255, 255, 255, 0.94);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(0.25rem);
}

.academy-video-media__play::after {
  position: absolute;
  top: 50%;
  left: 53%;
  border-block: 0.5rem solid transparent;
  border-left: 0.8rem solid #fff;
  content: "";
  transform: translate(-50%, -50%);
}

.academy-dd-cost {
  padding-bottom: 0;
  background: #f1f7ff;
}

.academy-dd-cost__statement {
  margin: var(--academy-space-section-md) 0 0;
  padding: var(--academy-space-section-sm) 1rem;
  background: #090325;
  color: #fff;
  font-size: var(--academy-text-h2);
  font-weight: var(--academy-weight-medium);
  line-height: var(--academy-leading-heading);
  text-align: center;
}

.academy-dd-cost h3 {
  font-weight: var(--academy-weight-regular);
}

.academy-dd-transformation {
  background: #fff;
}

.academy-dd-centered-heading {
  max-width: 58rem;
  margin: 0 auto var(--academy-space-content-lg);
  text-align: center;
}

.academy-dd-centered-heading p {
  color: #626773;
  font-size: var(--academy-text-body-lg);
  line-height: var(--academy-leading-body-lg);
}

.academy-dd-transformation__grid {
  max-width: 60rem;
  margin-inline: auto;
}

.academy-dd-transformation .academy-feature-card {
  padding: var(--academy-space-8);
  border: 0;
  border-radius: 0.75rem;
  background: #f3f8ff;
}

.academy-dd-transformation .academy-feature-card__icon {
  display: none;
}

.academy-dd-transformation .academy-feature-card__title {
  margin-bottom: 0.65rem;
  font-size: var(--academy-text-h5);
}

.academy-dd-transformation .academy-feature-card__text {
  margin: 0;
}

.academy-dd-intro {
  background: #f1f7ff;
}

.academy-dd-kicker {
  margin-bottom: 0.4rem;
  color: #004bcb;
  font-size: var(--academy-text-h6);
  font-weight: var(--academy-weight-bold);
  letter-spacing: var(--academy-tracking-eyebrow);
  line-height: var(--academy-leading-heading-sm);
  text-transform: uppercase;
}

.academy-dd-intro h2 {
  margin-bottom: 1.75rem;
}

.academy-dd-intro h3 {
  margin-top: 2rem;
}

.academy-dd-package {
  width: min(100%, 35rem);
  justify-self: center;
  filter: drop-shadow(0 1.75rem 2.25rem rgba(13, 18, 42, 0.18));
}

.academy-dd-end-outcomes {
  background: #fff;
}

.academy-dd .academy-checklist {
  gap: 1.25rem;
}

.academy-dd .academy-checklist__item {
  gap: 0.875rem;
  font-size: var(--academy-text-body-lg);
  line-height: var(--academy-leading-body-lg);
}

.academy-dd .academy-checklist__icon {
  margin-top: 0.08rem;
  background: #004bcb;
  color: #fff;
}

.academy-dd-process-band {
  padding: var(--academy-space-section-sm) 1rem;
  background: linear-gradient(110deg, #0a042c 0%, #210d92 100%);
  color: #fff;
  text-align: center;
}

.academy-dd-process-band p {
  margin-bottom: 0.75rem;
  color: #c9c5dc;
}

.academy-dd-process-band strong {
  font-size: var(--academy-text-h2);
  line-height: var(--academy-leading-heading);
}

.academy-dd-instructor {
  background: #fff;
}

.academy-dd-section-title--center {
  max-width: 55rem;
  margin: 0 auto var(--academy-space-content-lg);
  text-align: center;
}

.academy-dd .academy-instructor-profile {
  max-width: 63rem;
  margin-inline: auto;
  gap: var(--academy-gap-grid-lg);
}

.academy-dd .academy-instructor-profile__name {
	margin-bottom: 0.35rem;
	font-size: var(--academy-text-h3);
}

.academy-dd .academy-instructor-profile__role {
	margin: 0 0 0.75rem;
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	line-height: 1.25;
	color: #34363b;
}

.academy-dd .academy-instructor-profile__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 2rem;
}

.academy-dd .academy-instructor-profile__pill {
	padding: 0.45rem 1.25rem;
	border-radius: 999px;
	background: #dfeaff;
	color: #1559c8;
	font-size: 1rem;
	line-height: 1.25;
}

.academy-dd .academy-instructor-profile__bio {
	font-size: 1.15rem;
	line-height: 1.6;
}

.academy-dd .academy-instructor-profile__bio p {
	margin: 0 0 1rem;
}

.academy-dd .academy-instructor-profile__highlights-heading {
	margin: 2rem 0 1.25rem;
	font-size: clamp(1.8rem, 3.2vw, 2.35rem);
	line-height: 1.15;
}

.academy-dd .academy-instructor-profile__bio {
  color: #4e525c;
}

.academy-dd .academy-instructor-profile__media {
  max-width: 18rem;
  justify-self: center;
  border-radius: 0.75rem;
  background: #e9eff6;
}

.academy-dd .academy-instructor-profile__media img {
  aspect-ratio: 714 / 1280;
  object-fit: cover;
}

.academy-dd-curriculum {
  padding-top: 3.125rem;
  padding-bottom: 4.3125rem;
  background: #f1f7ff;
}

.academy-dd-curriculum__heading {
  display: grid;
  width: 100%;
  max-width: 57.875rem;
  gap: 1rem;
  margin-bottom: clamp(2.5rem, 8.9vw, 8rem);
  margin-inline: auto;
}

.academy-dd-curriculum__heading p {
  max-width: 26.375rem;
  margin-bottom: 0;
  color: #525762;
  font-size: var(--academy-text-body-lg);
  line-height: 1.7;
}

.academy-dd-curriculum__heading p strong {
  font-size: 1.375rem;
  font-weight: var(--academy-weight-semibold);
}

.academy-dd .academy-curriculum-grid--asymmetric {
  grid-template-columns: 1fr;
  gap: 1rem;
}

.academy-dd .academy-curriculum-card {
  min-width: 0;
  padding: clamp(1.5rem, 3vw, 2rem);
  border: 0;
  border-radius: 1.04rem;
  box-shadow: 0 1.25rem 2.75rem rgba(29, 41, 78, 0.08);
}

.academy-dd .academy-curriculum-card__header {
  margin-bottom: var(--academy-space-content-lg);
}

.academy-dd .academy-curriculum-card .academy-badge {
  background: #edf4ff;
  color: #004bcb;
}

.academy-dd .academy-curriculum-card__title {
  font-size: 1.1875rem;
  font-weight: var(--academy-weight-medium);
  line-height: 1.7;
}

.academy-dd .academy-curriculum-card__outcome {
  padding-top: 1.5rem;
  border-top: 1px solid #dbe2ec;
  color: #101116;
}

.academy-dd .academy-curriculum-card--featured {
  background: linear-gradient(130deg, #0e0644 0%, #1f0c8d 100%);
  color: #fff;
}

.academy-dd .academy-curriculum-card--featured :where(h3, .academy-curriculum-card__description, .academy-curriculum-card__outcome) {
  color: inherit;
}

.academy-dd .academy-curriculum-card--featured .academy-curriculum-card__outcome {
  border-color: rgba(255, 255, 255, 0.22);
}

.academy-dd .academy-curriculum-card--featured .academy-badge {
  background: rgba(255, 255, 255, 0.13);
  color: #fff;
}

.academy-dd-centered-action {
  display: grid;
  justify-items: center;
  margin-top: var(--academy-space-content-lg);
  text-align: center;
}

.academy-dd-centered-action p {
  margin: 1.25rem 0 0;
  color: #626773;
  font-size: var(--academy-text-small);
  line-height: var(--academy-leading-small);
}

.academy-dd-learning {
  background: #fff;
}

.academy-dd-learning__list {
  max-width: 50rem;
  margin-inline: auto;
}

.academy-dd-learning__list span {
  color: #656a74;
}

.academy-dd-audience {
  padding-block: var(--academy-space-section-sm);
}

.academy-dd-audience--include {
  background: #f1f7ff;
}

.academy-dd-audience--exclude {
  background: #fff;
}

.academy-dd-audience__card {
  max-width: 68rem;
  margin-inline: auto;
  padding: clamp(2rem, 2.8vw, 2.5rem);
  border-radius: 1rem;
}

.academy-dd .academy-audience-checklist--include {
  background: linear-gradient(120deg, #0a042c 0%, #210d92 100%);
}

.academy-dd .academy-audience-checklist--exclude {
  border: 1px solid #dfe6ef;
  background: #f7faff;
}

.academy-dd .academy-audience-checklist__heading {
  max-width: 49rem;
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

.academy-dd .academy-audience-checklist--include .academy-checklist__icon {
  background: #fff;
  color: #15096b;
}

.academy-dd .academy-audience-checklist--exclude .academy-checklist__icon {
  background: #fde8e8;
  color: #c62828;
}

.academy-dd-post-outcomes {
  background: #f1f7ff;
}

.academy-dd-purchase {
  background: #fff;
}

.academy-dd-purchase__layout {
  display: grid;
  gap: var(--academy-gap-grid-lg);
  align-items: center;
}

.academy-dd-purchase__content h2 strong {
  color: #004bcb;
}

.academy-dd-purchase__content > h3 {
  margin-top: 2.25rem;
}

.academy-dd-number-list {
  counter-reset: academy-dd-includes;
}

.academy-dd-number-list li {
  display: grid;
  grid-template-columns: 2rem 1fr;
  gap: 0.75rem;
  align-items: start;
  counter-increment: academy-dd-includes;
}

.academy-dd-number-list li::before {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 50%;
  background: #edf4ff;
  color: #004bcb;
  content: counter(academy-dd-includes);
  font-size: var(--academy-text-caption);
  font-weight: var(--academy-weight-bold);
  line-height: var(--academy-leading-caption);
}

.academy-dd-purchase__commerce {
  display: grid;
  gap: 1.5rem;
  padding-top: 2rem;
  margin-top: 2rem;
  border-top: 1px solid #dce2e9;
}

.academy-dd .academy-regional-price__value {
  color: #004bcb;
}

.academy-dd-purchase__commerce p {
  margin: 1rem 0 0;
  color: #656a74;
  font-size: var(--academy-text-small);
  line-height: var(--academy-leading-small);
}

.academy-dd-faq-section {
  padding-top: var(--academy-space-section-sm);
  background: #f1f7ff;
}

.academy-dd-faq-section .academy-dd-section-title {
  font-size: clamp(2.125rem, 1.75rem + 1.25vw, 2.625rem);
  font-weight: var(--academy-weight-bold);
  line-height: 1;
}

.academy-faq {
  max-width: 55rem;
  margin-inline: auto;
  border-top: 1px solid #cfd8e4;
}

.academy-faq__item {
  border-bottom: 1px solid #cfd8e4;
}

.academy-faq__summary {
  display: flex;
  min-height: 4.75rem;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  cursor: pointer;
  font-size: var(--academy-text-body-lg);
  font-weight: var(--academy-weight-bold);
  line-height: var(--academy-leading-body-lg);
  list-style: none;
}

.academy-faq__summary::-webkit-details-marker {
  display: none;
}

.academy-faq__marker {
  position: relative;
  width: 1rem;
  height: 1rem;
  flex: 0 0 1rem;
}

.academy-faq__marker::before,
.academy-faq__marker::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 0.1rem;
  background: #101116;
  content: "";
  transform: translate(-50%, -50%);
}

.academy-faq__marker::after {
  transform: translate(-50%, -50%) rotate(90deg);
  transition: transform var(--academy-transition-fast);
}

.academy-faq__item[open] .academy-faq__marker::after {
  transform: translate(-50%, -50%) rotate(0);
}

.academy-faq__answer {
  max-width: 45rem;
  padding: 0 3rem 1.5rem 0;
  color: #5f6470;
}

.academy-dd-final {
  padding-block: var(--academy-space-section-xl);
  background: #fff;
}

.academy-dd-final-cta {
  position: relative;
  display: grid;
  overflow: hidden;
  min-height: 25rem;
  place-items: center;
  padding: clamp(4.25rem, 9vw, 6.5rem) 1.25rem;
  isolation: isolate;
  border-radius: 1rem;
  background: #0a042c url("../images/final-cta-base.svg") center / cover no-repeat;
}

.academy-dd-final-cta .academy-final-cta__content {
  max-width: 48rem;
}

.academy-dd-final-cta .academy-final-cta__heading {
  color: #fff;
  font-size: var(--academy-text-h2);
  font-weight: var(--academy-weight-medium);
  line-height: var(--academy-leading-heading);
  letter-spacing: var(--academy-tracking-heading);
}

.academy-dd-final-cta .academy-button--inverse {
  background: #fff;
  box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.24);
  color: #160967;
}

.academy-dd-final-cta .academy-final-cta__action {
  margin-top: 4.75rem;
}

.academy-dd-final-cta .academy-final-cta__support {
  margin: 1.25rem 0 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: var(--academy-text-small);
  line-height: var(--academy-leading-small);
  text-align: center;
}

.academy-dd + .academy-site-footer {
  border-top: 1px solid #e2e6ec;
}

/* Explorer One product page */
.academy-product-header {
  position: sticky;
  z-index: 100;
  top: 0;
  background: rgba(9, 7, 19, 0.96);
  border-bottom: var(--academy-border-width) solid rgba(255, 255, 255, 0.08);
  color: #fff;
  backdrop-filter: blur(0.875rem);
}

.academy-product-header__inner {
  display: flex;
  width: calc(100% - (2 * var(--academy-space-6)));
  max-width: none;
  min-height: 6.25rem;
  align-items: center;
  gap: var(--academy-space-6);
}

.academy-product-header__brand {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: var(--academy-space-4);
  color: #fff;
  text-decoration: none;
}

.academy-product-header__brand img {
  width: 3rem;
  height: 3rem;
  flex: 0 0 auto;
  border-radius: var(--academy-radius-md);
}

.academy-product-header__identity {
  display: grid;
  gap: var(--academy-space-1);
  line-height: var(--academy-leading-control);
}

.academy-product-header__identity strong {
  font-size: var(--academy-text-h5);
  font-weight: var(--academy-weight-bold);
}

.academy-product-header__identity small {
  color: #9999ac;
  font-size: var(--academy-text-caption);
  letter-spacing: var(--academy-tracking-eyebrow);
  text-transform: uppercase;
}

.academy-product-header__actions {
  display: flex;
  align-items: center;
  gap: var(--academy-space-4);
  margin-left: auto;
}

.academy-product-header .academy-button {
  min-height: 3.25rem;
  padding-inline: var(--academy-space-8);
  border-radius: var(--academy-radius-sm);
  font-size: var(--academy-text-small);
  font-weight: var(--academy-weight-medium);
}

.academy-product-header .academy-button--ghost {
  border: var(--academy-border-width) solid rgba(255, 255, 255, 0.24);
  background: transparent;
  color: #fff;
}

.academy-product-header .academy-button--ghost:hover {
  background: rgba(255, 255, 255, 0.07);
  color: #fff;
}

.academy-product-header .academy-button--primary {
  background: #5e7cff;
  box-shadow: none;
}

.academy-product-header .academy-button--primary:hover {
  background: #4d69ea;
}

.academy-eo {
  --eo-bg: #090713;
  --eo-bg-soft: #0f0b20;
  --eo-text: #f7f8fc;
  --eo-muted: #a4a6b7;
  --eo-line: rgba(255, 255, 255, 0.11);
  --eo-accent: #5e7cff;
  --eo-paper: #f5f7fb;
  --eo-ink: #11131a;
  --eo-ink-muted: #636a77;
  --eo-paper-line: #dfe4ed;
  background: var(--eo-bg);
  color: var(--eo-text);
  font-family: var(--academy-font-sans);
}

.academy-eo :where(h1, h2, h3, p, li) {
  margin-top: 0;
  color: inherit;
}

.academy-eo :where(h1, h2, h3) {
  font-family: var(--academy-font-sans);
  font-weight: var(--academy-weight-bold);
  letter-spacing: var(--academy-tracking-heading);
}

.academy-eo :where(p, li) {
  font-size: var(--academy-text-body);
  line-height: var(--academy-leading-body);
}

.academy-eo .academy-button {
  min-height: 3.25rem;
  padding: 0 var(--academy-space-8);
  border-radius: 0.3125rem;
  font-size: var(--academy-text-small);
  font-weight: var(--academy-weight-medium);
}

.academy-eo-eyebrow {
  margin-bottom: var(--academy-space-4);
  color: #91a7ff;
  font-size: var(--academy-text-caption);
  font-weight: var(--academy-weight-bold);
  letter-spacing: var(--academy-tracking-eyebrow);
  text-transform: uppercase;
}

.academy-eo-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--academy-space-3);
  margin-top: var(--academy-space-7);
}

.academy-eo .academy-button--ghost {
  border: var(--academy-border-width) solid rgba(255, 255, 255, 0.24);
  background: transparent;
  color: #fff;
}

.academy-eo .academy-button--ghost:hover {
  background: rgba(255, 255, 255, 0.07);
}

.academy-eo .academy-button[disabled] {
  cursor: not-allowed;
  opacity: 0.72;
  transform: none;
}

.academy-eo-hero {
  overflow: hidden;
  padding: clamp(5rem, 8vw, 7.5rem) 0 0;
  background: radial-gradient(53rem 27rem at 50% -5%, rgba(65, 46, 173, 0.27), transparent 67%), var(--eo-bg);
}

.academy-eo-hero__copy {
  max-width: 54rem;
  margin-inline: auto;
  text-align: center;
}

.academy-eo-hero h1 {
  margin-bottom: 0;
  color: #fff;
  font-size: clamp(3.5rem, 8vw, 6.5rem);
  font-weight: var(--academy-weight-bold);
  line-height: var(--academy-leading-display);
}

.academy-eo-hero__lead {
  max-width: 40.625rem;
  margin: var(--academy-space-6) auto 0;
  color: #b9bac8;
  font-size: var(--academy-text-body-lg);
  line-height: var(--academy-leading-lead);
}

.academy-eo-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--academy-space-2) var(--academy-space-5);
  margin: var(--academy-space-4) 0 0;
  color: #7f8295;
  font-size: var(--academy-text-caption);
}

.academy-eo-meta span + span::before {
  content: "";
  display: inline-block;
  width: 0.25rem;
  height: 0.25rem;
  margin-right: var(--academy-space-5);
  border-radius: 50%;
  background: #5b6070;
  vertical-align: middle;
}

.academy-eo-media {
  position: relative;
  overflow: hidden;
  margin: 0;
  aspect-ratio: 4 / 3;
  border: var(--academy-border-width) solid rgba(255, 255, 255, 0.12);
  background: #10111a;
}

.academy-eo-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.academy-eo-media--hero {
  margin-top: clamp(3rem, 6vw, 4.125rem);
  aspect-ratio: 16 / 9;
  box-shadow: 0 2.375rem 5.3rem rgba(0, 0, 0, 0.42);
}

.academy-eo-pillars {
  padding: var(--academy-space-section-lg) 0;
}

.academy-eo-pillars__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-block: var(--academy-border-width) solid var(--eo-line);
}

.academy-eo-pillar {
  padding: var(--academy-space-8);
  border-right: var(--academy-border-width) solid var(--eo-line);
}

.academy-eo-pillar:first-child { padding-left: 0; }
.academy-eo-pillar:last-child { padding-right: 0; border-right: 0; }
.academy-eo-pillar > span { display: block; margin-bottom: var(--academy-space-7); color: #777b8d; font-size: var(--academy-text-caption); }
.academy-eo-pillar h2 { margin-bottom: var(--academy-space-2); color: #fff; font-size: var(--academy-text-h4); }
.academy-eo-pillar p { max-width: 26rem; margin-bottom: 0; color: var(--eo-muted); font-size: var(--academy-text-small); }

.academy-eo-product {
  padding: var(--academy-space-section-xl) 0;
  background: var(--eo-paper);
  color: var(--eo-ink);
}

.academy-eo-section-intro {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(2.5rem, 6vw, 4.375rem);
  align-items: end;
  margin-bottom: var(--academy-space-20);
}

.academy-eo-section-intro h2,
.academy-eo-search h2,
.academy-eo-native__intro h2,
.academy-eo-final h2 {
  margin-bottom: 0;
  font-size: clamp(2.75rem, 5.8vw, 4.75rem);
  line-height: 1.02;
}

.academy-eo-section-intro p {
  max-width: 37rem;
  margin-bottom: 0;
  color: var(--eo-ink-muted);
}

.academy-eo-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(18.75rem, 0.65fr);
  gap: clamp(2.5rem, 5vw, 3.875rem);
  align-items: center;
  padding: var(--academy-space-16) 0;
  border-top: var(--academy-border-width) solid var(--eo-paper-line);
}

.academy-eo-feature--reverse {
  grid-template-columns: minmax(18.75rem, 0.65fr) minmax(0, 1.35fr);
}

.academy-eo-feature--reverse .academy-eo-media { order: 2; }
.academy-eo-feature--reverse .academy-eo-feature__copy { order: 1; }
.academy-eo-feature .academy-eo-media { border-color: #d8dde6; background: #e7ebf1; box-shadow: 0 1.25rem 2.625rem rgba(28, 37, 55, 0.08); }
.academy-eo-feature__number { display: block; margin-bottom: var(--academy-space-4); color: #7d8390; font-size: var(--academy-text-caption); letter-spacing: 0.1em; }
.academy-eo-feature__copy h3 { margin-bottom: 0; font-size: clamp(2rem, 3.5vw, 2.875rem); line-height: 1; letter-spacing: -0.04em; }
.academy-eo-feature__copy > p { margin: var(--academy-space-5) 0 0; color: var(--eo-ink-muted); }

.academy-eo-checklist {
  display: grid;
  gap: var(--academy-space-3);
  padding: 0;
  margin: var(--academy-space-6) 0 0;
  list-style: none;
}

.academy-eo-checklist li { display: grid; grid-template-columns: 1.25rem 1fr; gap: var(--academy-space-3); align-items: start; font-size: var(--academy-text-small); }
.academy-eo-checklist li > span { display: grid; width: 1.125rem; height: 1.125rem; place-items: center; border-radius: 50%; background: #e8f0ff; color: #315fd5; font-size: 0.625rem; font-weight: var(--academy-weight-bold); }

.academy-eo-search {
  overflow: hidden;
  padding: var(--academy-space-section-xl) 0;
  background: radial-gradient(47.5rem 28.75rem at 84% 40%, rgba(81, 51, 201, 0.34), transparent 65%), linear-gradient(135deg, #0c081c 0%, #140b3c 58%, #1c0f5b 100%);
}

.academy-eo-search__grid { display: grid; grid-template-columns: 0.72fr 1.28fr; gap: var(--academy-space-16); align-items: center; }
.academy-eo-search__copy > p:not(.academy-eo-eyebrow) { max-width: 31rem; margin: var(--academy-space-5) 0 0; color: #b9b7cb; }
.academy-eo-search .academy-eo-checklist { color: #efedf7; }
.academy-eo-search .academy-eo-checklist li > span { background: rgba(79, 216, 170, 0.12); color: #61e4b8; }
.academy-eo-search__media { box-shadow: 0 1.75rem 4.125rem rgba(0, 0, 0, 0.36); }
.academy-eo-search__media figcaption { position: absolute; top: var(--academy-space-6); right: var(--academy-space-6); display: grid; width: 11.25rem; padding: var(--academy-space-3); border: var(--academy-border-width) solid #e0e4ec; background: #fff; color: #181a22; }
.academy-eo-search__media figcaption small { color: #727887; font-size: 0.625rem; font-weight: var(--academy-weight-bold); letter-spacing: 0.1em; text-transform: uppercase; }
.academy-eo-search__media figcaption strong { margin-top: var(--academy-space-1); }
.academy-eo-search__media figcaption span { margin-top: var(--academy-space-1); color: #697180; font-size: var(--academy-text-caption); }

.academy-eo-native {
  padding: var(--academy-space-section-xl) 0;
  background: #fff;
  color: var(--eo-ink);
}

.academy-eo-native__intro { max-width: 50rem; margin-bottom: var(--academy-space-12); }
.academy-eo-native__intro > p:last-child { max-width: 40rem; margin: var(--academy-space-5) 0 0; color: var(--eo-ink-muted); }
.academy-eo-native__list { border-top: var(--academy-border-width) solid var(--eo-paper-line); }
.academy-eo-native__row { display: grid; grid-template-columns: 3.25rem 1fr 1fr; gap: var(--academy-space-7); align-items: center; padding: var(--academy-space-6) 0; border-bottom: var(--academy-border-width) solid var(--eo-paper-line); }
.academy-eo-native__row > span { color: #8b919e; font-size: var(--academy-text-caption); }
.academy-eo-native__row h3 { margin-bottom: 0; font-size: var(--academy-text-body); }
.academy-eo-native__row p { margin-bottom: 0; color: var(--eo-ink-muted); font-size: var(--academy-text-small); }

.academy-eo-final {
  padding: var(--academy-space-24) 0 var(--academy-space-10);
}

.academy-eo-final__card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.85fr);
  column-gap: clamp(3rem, 6vw, 5rem);
  align-items: center;
  overflow: hidden;
  padding: var(--academy-space-20) clamp(1.5rem, 6vw, 4rem);
  border: var(--academy-border-width) solid var(--eo-line);
  background: radial-gradient(33.75rem 20.625rem at 90% 0%, rgba(95, 50, 215, 0.34), transparent 70%), var(--eo-bg-soft);
  text-align: left;
}


.academy-eo-final .academy-eo-eyebrow { grid-column: 1; margin-bottom: var(--academy-space-6); }
.academy-eo-final h2 { grid-column: 1; grid-row: 2 / span 3; max-width: 44rem; margin: 0; color: #fff; font-size: clamp(3rem, 5.4vw, 4.75rem); }
.academy-eo-final__card > p:not(.academy-eo-eyebrow):not(.academy-eo-final__note) { grid-column: 2; grid-row: 2; max-width: 37.5rem; margin: 0; color: #aaaabc; }
.academy-eo-final .academy-eo-actions { grid-column: 2; grid-row: 3; justify-content: flex-start; margin-top: var(--academy-space-6); }
.academy-eo-final__note { grid-column: 2; grid-row: 4; margin: var(--academy-space-4) 0 0; color: #858899; font-size: var(--academy-text-caption); }

@media (max-width: 61.25rem) {
  .academy-eo-section-intro,
  .academy-eo-search__grid,
  .academy-eo-feature,
  .academy-eo-feature--reverse { grid-template-columns: 1fr; }
  .academy-eo-feature--reverse .academy-eo-media,
  .academy-eo-feature--reverse .academy-eo-feature__copy { order: initial; }
  .academy-eo-feature__copy { max-width: 42.5rem; }
  .academy-eo-final__card { grid-template-columns: 1fr; text-align: center; }
  .academy-eo-final .academy-eo-eyebrow,
  .academy-eo-final h2,
  .academy-eo-final__card > p:not(.academy-eo-eyebrow):not(.academy-eo-final__note),
  .academy-eo-final .academy-eo-actions,
  .academy-eo-final__note { grid-column: 1; grid-row: auto; }
  .academy-eo-final .academy-eo-eyebrow { margin-bottom: var(--academy-space-5); }
  .academy-eo-final h2 { max-width: 50rem; margin-inline: auto; }
  .academy-eo-final__card > p:not(.academy-eo-eyebrow):not(.academy-eo-final__note) { margin: var(--academy-space-5) auto 0; }
  .academy-eo-final .academy-eo-actions { justify-content: center; }
}

@media (max-width: 47.99rem) {
  .academy-product-header__inner { width: calc(100% - (2 * var(--academy-space-4))); min-height: 4.5rem; gap: var(--academy-space-3); }
  .academy-product-header__brand { gap: var(--academy-space-3); }
  .academy-product-header__brand img { width: 2.5rem; height: 2.5rem; }
  .academy-product-header__identity strong { font-size: var(--academy-text-body); }
  .academy-product-header__identity small { font-size: 0.625rem; }
  .academy-product-header__actions { gap: var(--academy-space-2); }
  .academy-product-header .academy-button { min-height: 2.75rem; padding-inline: var(--academy-space-4); }
  .academy-eo-hero { padding-top: var(--academy-space-section-lg); }
  .academy-eo-hero h1 { font-size: clamp(3rem, 13vw, 4.5rem); }
  .academy-eo-media--hero { aspect-ratio: 4 / 3; }
  .academy-eo-pillars__grid { grid-template-columns: 1fr; }
  .academy-eo-pillar { padding: var(--academy-space-6) 0; border-right: 0; border-bottom: var(--academy-border-width) solid var(--eo-line); }
  .academy-eo-pillar:last-child { border-bottom: 0; }
  .academy-eo-pillar > span { margin-bottom: var(--academy-space-3); }
  .academy-eo-product,
  .academy-eo-search,
  .academy-eo-native,
  .academy-eo-final { padding-block: var(--academy-space-section-lg); }
  .academy-eo-section-intro { margin-bottom: var(--academy-space-12); }
  .academy-eo-feature { padding-block: var(--academy-space-12); }
  .academy-eo-native__row { grid-template-columns: 2.25rem 1fr; gap: var(--academy-space-3); }
  .academy-eo-native__row p { grid-column: 2; }
}

@media (max-width: 32.5rem) {
  .academy-product-header__products { display: none; }
  .academy-product-header__identity small { display: none; }
  .academy-product-header .academy-button { font-size: 0.8125rem; }
  .academy-eo-actions { display: grid; }
  .academy-eo-actions .academy-button { width: 100%; }
  .academy-eo-media,
  .academy-eo-media--hero { aspect-ratio: 1 / 1; }
  .academy-eo-search__media figcaption { position: static; width: auto; }
  .academy-eo-meta span + span::before { display: none; }
}

@media (min-width: 48rem) {
  .academy-eo-hero__copy { max-width: 72rem; }
}

@media (min-width: 48rem) {
  .academy-dd-container {
    width: min(calc(100% - 4rem), 71.25rem);
  }

  .academy-dd-container--wide {
    width: min(calc(100% - 4rem), 79.25rem);
  }

  .academy-dd-hero {
    min-height: 47rem;
  }

  .academy-dd-split,
  .academy-dd-purchase__layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
  }

  .academy-dd-problem .academy-dd-split {
    grid-template-columns: minmax(0, 1fr) 31.875rem;
    gap: 4.25rem;
    align-items: start;
  }

  .academy-dd-problem h2 {
    width: 47.75rem;
  }

  .academy-dd-problem .academy-video-media {
    width: 31.875rem;
    margin-top: 6.875rem;
  }

  .academy-dd-split--compact {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  }

  .academy-dd-transformation .academy-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .academy-dd .academy-instructor-profile {
    grid-template-columns: minmax(0, 1.45fr) minmax(15rem, 0.55fr);
    align-items: center;
  }

  .academy-dd-curriculum__heading {
    grid-template-columns: minmax(0, 1fr) 26.375rem;
    align-items: start;
  }

  .academy-dd .academy-curriculum-grid--asymmetric {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .academy-dd-purchase__commerce {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
  }
}

@media (min-width: 64rem) {
  .academy-dd-hero {
    min-height: 50rem;
  }

  .academy-dd .academy-curriculum-grid--asymmetric {
    grid-template-areas:
      "m1 m2 m3"
      "m1 m4 m4"
      "m5 m6 m7";
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
  }

  .academy-curriculum-card--module-1 { grid-area: m1; }
  .academy-curriculum-card--module-2 { grid-area: m2; }
  .academy-curriculum-card--module-3 { grid-area: m3; }
  .academy-curriculum-card--module-4 { grid-area: m4; }
  .academy-curriculum-card--module-5 { grid-area: m5; }
  .academy-curriculum-card--module-6 { grid-area: m6; }
  .academy-curriculum-card--module-7 { grid-area: m7; }

  .academy-dd .academy-curriculum-card--module-4 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(13rem, 0.65fr);
    column-gap: 2.5rem;
  }

  .academy-dd .academy-curriculum-card--module-4 .academy-curriculum-card__header {
    grid-column: 1 / -1;
  }

  .academy-dd .academy-curriculum-card--module-4 .academy-curriculum-card__outcome {
    align-self: stretch;
    padding: 0 0 0 2.5rem;
    margin: 0;
    border-top: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.22);
  }

  .academy-dd-final-cta {
    min-height: 31.125rem;
  }
}

@media (max-width: 22rem) {
  .academy-dd-container {
    width: min(calc(100% - 1.5rem), 71.25rem);
  }

  .academy-dd-hero {
    padding-inline: 0.75rem;
  }

  .academy-dd-hero__title {
    font-size: var(--academy-text-h1);
  }

  .academy-dd .academy-feature-card,
  .academy-dd .academy-curriculum-card,
  .academy-dd-audience__card {
    padding: 1.25rem;
  }
}

@media (max-width: 30rem) {
  .academy-dd-hero__title {
    font-size: clamp(2.25rem, 11.25vw, 3rem);
  }
}
