/* =============================================================================
   DACC New Theme — Bio Page
   Pass 44C — Kelsey / Academic Program visual alignment

   Canonical path:
   /_assets/css/main-theme/new/overrides/templates/bio.css

   Ownership:
   - Foundation owns Bio structure, layout behavior and responsive mechanics.
   - New owns the visual treatment below.
   - The shared Program CTA component remains the CTA renderer/DOM contract.

   Design source:
   Academic Program New-theme treatment: primary-blue tabs, soft-blue panels,
   gold accents, offset panel shadows, strong editorial spacing and the
   full-width primary -> crimson footer CTA.
   ============================================================================= */

.bio-page {
  --bio-program-blue: var(--color-primary, #164f86);
  --bio-program-blue-dark: var(--color-primary-dark, #0d376c);
  --bio-program-crimson: var(--color-accent, #8b1e41);
  --bio-program-gold: var(--color-gold, #f2c94c);
  --bio-program-white: var(--color-white, #ffffff);
  --bio-program-soft-blue: hsl(210, 42%, 95%);
  --bio-program-border: var(--color-border, #d8dee8);
  --bio-program-text: var(--color-text, #202833);
  --bio-program-muted: var(--color-muted, #5a6573);

  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-block: clamp(2rem, 5vw, 4rem) 0;
  color: var(--bio-program-text);
}

/* --------------------------------------------------------------------------
   Profile composition — adapted from the Program About treatment
   -------------------------------------------------------------------------- */

.bio-page__card {
  position: relative;
  width: min(100% - 2rem, var(--container-lg, 75rem));
  margin-inline: auto;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.bio-page__card::before {
  content: none;
}

.bio-page__profile {
  position: relative;
  display: grid;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
  overflow: hidden;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 0;
  border-radius: var(--radius-xl, 1.25rem);
  background: var(--bio-program-soft-blue);
  box-shadow: 5px 5px 0 var(--bio-program-border);
}

.bio-page__profile::after {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  block-size: 0.35rem;
  background: var(--bio-program-gold);
}

.bio-page__intro,
.bio-page__media {
  min-inline-size: 0;
}

.bio-page__intro {
  max-inline-size: 52rem;
}

/* Program-style section tab. */
.bio-page__eyebrow {
  display: inline-flex;
  width: fit-content;
  margin: 0 0 var(--space-lg, 1.5rem);
  padding: var(--space-sm, 0.5rem) clamp(1.25rem, 3vw, 2.5rem);
  border-radius: var(--radius-md, 0.65rem)
    var(--radius-md, 0.65rem)
    var(--radius-pill, 999px)
    var(--radius-sm, 0.35rem);
  background: var(--bio-program-blue);
  color: var(--bio-program-white);
  box-shadow: 4px 4px 0 rgba(13, 55, 108, 0.24);
  font-size: 0.8125rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
}

.bio-page__name {
  max-inline-size: 17ch;
  margin: 0;
  color: var(--bio-program-blue-dark);
  font-size: clamp(2.45rem, 6.5vw, 4.75rem);
  font-weight: 800;
  line-height: 0.98;
  letter-spacing: -0.045em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.bio-page__meta {
  display: grid;
  gap: 0.35rem;
  margin-block-start: var(--space-lg, 1.5rem);
  padding-inline-start: var(--space-md, 1rem);
  border-inline-start: 0.3rem solid var(--bio-program-gold);
}

.bio-page__title,
.bio-page__affiliation {
  margin: 0;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.bio-page__title {
  color: var(--bio-program-blue);
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  font-weight: 800;
}

.bio-page__affiliation {
  color: var(--bio-program-muted);
  font-size: 1rem;
  font-weight: 650;
}

/* --------------------------------------------------------------------------
   Portrait
   -------------------------------------------------------------------------- */

.bio-page__media {
  position: relative;
  margin: 0;
}

.bio-page__image {
  display: block;
  inline-size: 100%;
  max-inline-size: 21rem;
  max-block-size: 28rem;
  aspect-ratio: 4 / 5;
  margin-inline: auto;
  border: 0.35rem solid var(--bio-program-white);
  border-radius: var(--radius-lg, 1rem);
  object-fit: cover;
  object-position: center;
  box-shadow:
    0 0 0 0.16rem var(--bio-program-gold),
    0 1rem 2rem rgba(15, 23, 42, 0.18);
}

.bio-page__caption {
  max-inline-size: 21rem;
  margin: var(--space-sm, 0.5rem) auto 0;
  padding: 0.7rem 0.85rem;
  border-radius: var(--radius-md, 0.65rem);
  background: var(--bio-program-blue-dark);
  color: var(--bio-program-white);
  font-size: 0.9rem;
  line-height: 1.45;
  text-align: center;
  overflow-wrap: anywhere;
}

/* --------------------------------------------------------------------------
   Biography — clean editorial panel using Program card language
   -------------------------------------------------------------------------- */

.bio-page__body,
.bio-page__empty {
  width: min(100% - 2rem, 82ch);
  margin: clamp(1.75rem, 4vw, 3rem) auto 0;
  padding: clamp(1.35rem, 3vw, 2.5rem);
  border: 1px solid var(--bio-program-border);
  border-radius: var(--radius-xl, 1.25rem);
  background: var(--bio-program-white);
  box-shadow: 5px 5px 0 var(--bio-program-border);
}

.bio-page__body {
  color: var(--bio-program-text);
  font-size: clamp(1rem, 1.35vw, 1.1rem);
  line-height: 1.75;
  overflow-wrap: anywhere;
}

.bio-page__body > :first-child {
  margin-block-start: 0;
}

.bio-page__body > :last-child {
  margin-block-end: 0;
}

.bio-page__body h2,
.bio-page__body h3,
.bio-page__body h4 {
  color: var(--bio-program-blue-dark);
  line-height: 1.2;
  text-wrap: balance;
}

.bio-page__body h2 {
  margin-block: 2.25rem 0.8rem;
  font-size: clamp(1.55rem, 3vw, 2.1rem);
}

.bio-page__body h2:first-child {
  margin-block-start: 0;
}

.bio-page__body h2::after {
  content: "";
  display: block;
  inline-size: 3.75rem;
  block-size: 0.3rem;
  margin-block-start: 0.7rem;
  border-radius: var(--radius-pill, 999px);
  background: var(--bio-program-gold);
}

.bio-page__body h3 {
  margin-block: 1.75rem 0.65rem;
  color: var(--bio-program-blue);
  font-size: clamp(1.25rem, 2.3vw, 1.55rem);
}

.bio-page__body a,
.bio-page__body a:visited {
  color: var(--bio-program-blue);
  font-weight: 750;
  text-decoration-thickness: 0.1em;
  text-underline-offset: 0.18em;
}

.bio-page__body a:hover,
.bio-page__body a:focus {
  color: var(--bio-program-crimson);
}

.bio-page__body a:focus-visible {
  outline: 3px solid var(--bio-program-gold);
  outline-offset: 3px;
}

.bio-page__body blockquote {
  margin-inline: 0;
  padding: clamp(1rem, 2vw, 1.4rem) clamp(1.15rem, 2.5vw, 1.7rem);
  border-inline-start: 0.4rem solid var(--bio-program-gold);
  border-radius: 0 var(--radius-lg, 1rem) var(--radius-lg, 1rem) 0;
  background: var(--bio-program-soft-blue);
  color: var(--bio-program-blue-dark);
  font-size: 1.05em;
  font-weight: 650;
}

.bio-page__body img,
.bio-page__body video,
.bio-page__body iframe {
  max-inline-size: 100%;
}

.bio-page__empty {
  color: var(--bio-program-muted);
  font-style: italic;
}

/* --------------------------------------------------------------------------
   CTA ownership — Pass 44D

   Bio CTA appearance now comes from the canonical New program-cta component.
   The Bio template intentionally does not reskin CTA Block markup.
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   Layout variants
   -------------------------------------------------------------------------- */

.bio-page--centered .bio-page__profile,
.bio-page--no-image .bio-page__profile {
  justify-items: center;
  text-align: center;
}

.bio-page--centered .bio-page__eyebrow,
.bio-page--no-image .bio-page__eyebrow,
.bio-page--centered .bio-page__name,
.bio-page--no-image .bio-page__name {
  margin-inline: auto;
}

.bio-page--centered .bio-page__meta,
.bio-page--no-image .bio-page__meta {
  width: fit-content;
  margin-inline: auto;
  text-align: start;
}

@media (min-width: 760px) {
  .bio-page--image-left .bio-page__profile,
  .bio-page--image-right .bio-page__profile {
    grid-template-columns: minmax(14rem, 21rem) minmax(0, 1fr);
  }

  .bio-page--image-right .bio-page__media {
    grid-column: 2;
    grid-row: 1;
  }

  .bio-page--image-right .bio-page__intro {
    grid-column: 1;
    grid-row: 1;
  }

}

@media (max-width: 759.98px) {
  .bio-page {
    padding-block-start: var(--space-xl, 2rem);
  }

  .bio-page__card {
    width: min(100% - 1rem, var(--container-lg, 75rem));
  }

  .bio-page__profile {
    gap: var(--space-xl, 2rem);
    padding: 1.35rem;
  }

  .bio-page__image {
    max-inline-size: min(100%, 18rem);
    max-block-size: none;
    aspect-ratio: 1 / 1;
  }

  .bio-page__body,
  .bio-page__empty {
    width: calc(100% - 1rem);
    padding: 1.25rem;
  }

}

@media (prefers-reduced-motion: reduce) {
  .bio-page *,
  .bio-page *::before,
  .bio-page *::after {
    scroll-behavior: auto;
    transition-duration: 0.01ms;
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
  }
}
