/* Generated by tools/build-css.mjs — edit source files, not this bundle. */

/* Source: assets/css/fonts.css */
@font-face {
  font-family: "IBM Plex Sans Variable";
  src: url("../fonts/ibm-plex-sans-latin-wght-normal.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "IBM Plex Sans Variable";
  src: url("../fonts/ibm-plex-sans-latin-ext-wght-normal.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "IBM Plex Sans Condensed";
  src: url("../fonts/ibm-plex-sans-condensed-latin-400-normal.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Sans Condensed";
  src: url("../fonts/ibm-plex-sans-condensed-latin-600-normal.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* Source: assets/css/icons.css */
/**
 * Phosphor icon subset used by the ITB Civil theme.
 * Keeping only the glyph mappings referenced by templates removes more than
 * 3,000 unused selectors from the render path while retaining the same font.
 */
@font-face {
  font-family: "Phosphor";
  src: url("../vendor/phosphor/Phosphor.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

.ph {
  font-family: "Phosphor" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  letter-spacing: 0;
  font-feature-settings: "liga";
  font-variant-ligatures: discretionary-ligatures;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ph.ph-arrow-right::before { content: "\e06c"; }
.ph.ph-arrow-square-out::before { content: "\e5de"; }
.ph.ph-arrow-up-right::before { content: "\e092"; }
.ph.ph-books::before { content: "\e758"; }
.ph.ph-buildings::before { content: "\e102"; }
.ph.ph-calendar-dots::before { content: "\e7b4"; }
.ph.ph-caret-down::before { content: "\e136"; }
.ph.ph-check::before { content: "\e182"; }
.ph.ph-check-circle::before { content: "\e184"; }
.ph.ph-clock::before { content: "\e19a"; }
.ph.ph-envelope::before { content: "\e214"; }
.ph.ph-facebook-logo::before { content: "\e226"; }
.ph.ph-file-dashed::before { content: "\e704"; }
.ph.ph-file-pdf::before { content: "\e702"; }
.ph.ph-flask::before { content: "\e79e"; }
.ph.ph-graduation-cap::before { content: "\e62c"; }
.ph.ph-info::before { content: "\e2ce"; }
.ph.ph-instagram-logo::before { content: "\e2d0"; }
.ph.ph-link::before { content: "\e2e2"; }
.ph.ph-linkedin-logo::before { content: "\e2ee"; }
.ph.ph-list::before { content: "\e2f0"; }
.ph.ph-magnifying-glass::before { content: "\e30c"; }
.ph.ph-map-pin::before { content: "\e316"; }
.ph.ph-paper-plane-tilt::before { content: "\e398"; }
.ph.ph-phone::before { content: "\e3b8"; }
.ph.ph-shield-check::before { content: "\e40c"; }
.ph.ph-translate::before { content: "\e4a2"; }
.ph.ph-users-three::before { content: "\e68e"; }
.ph.ph-warning-circle::before { content: "\e4e2"; }
.ph.ph-whatsapp-logo::before { content: "\e5d0"; }
.ph.ph-x::before { content: "\e4f6"; }
.ph.ph-x-logo::before { content: "\e4bc"; }
.ph.ph-youtube-logo::before { content: "\e4fc"; }

/* Source: assets/css/tokens.css */
:root {
  --color-primary: #005aab;
  --color-primary-dark: #003e78;
  --color-primary-deep: #082d55;
  --color-primary-light: oklch(96% 0.028 249);
  --color-white: #ffffff;
  --color-gray-50: oklch(98.5% 0.003 250);
  --color-gray-100: oklch(96.5% 0.004 250);
  --color-gray-200: oklch(91.5% 0.008 250);
  --color-gray-400: oklch(67% 0.016 250);
  --color-gray-600: oklch(43% 0.018 250);
  --color-gray-750: oklch(29% 0.018 250);
  --color-gray-900: oklch(19% 0.015 250);
  --color-success: #1f7044;
  --color-warning: #8b5d00;
  --color-error: #a72a22;

  --font-body: "IBM Plex Sans Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-display: "IBM Plex Sans Condensed", "IBM Plex Sans Variable", ui-sans-serif, system-ui, sans-serif;

  /* Role-based fluid type scale. Component aliases remain for compatibility. */
  --text-caption: clamp(0.8125rem, 0.79rem + 0.08vw, 0.875rem);
  --text-body: clamp(1rem, 0.97rem + 0.15vw, 1.125rem);
  --text-lead: clamp(1.125rem, 1.04rem + 0.32vw, 1.375rem);
  --text-heading: clamp(1.5rem, 1.3rem + 0.75vw, 2rem);
  --text-title: clamp(2rem, 1.66rem + 1.35vw, 3rem);
  --text-display: clamp(2.75rem, 2.05rem + 2.8vw, 4.75rem);

  --step--1: var(--text-caption);
  --step-0: var(--text-body);
  --step-1: var(--text-lead);
  --step-2: var(--text-heading);
  --step-3: var(--text-title);
  --step-4: var(--text-display);

  --leading-display: 1.1;
  --leading-title: 1.18;
  --leading-heading: 1.32;
  --leading-body: 1.68;
  --weight-regular: 400;
  --weight-medium: 550;
  --weight-semibold: 600;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 2.75rem;
  --space-8: 3.75rem;
  --space-9: 4.75rem;
  --space-10: 6rem;

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-pill: 999px;

  --container: 87.5rem;
  --content: 75ch;
  --transition: 260ms cubic-bezier(0.16, 1, 0.3, 1);

  --z-sticky: 20;
  --z-backdrop: 40;
  --z-modal: 50;
  --z-tooltip: 60;
}

/* Source: assets/css/base.css */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  color-scheme: light;
  scroll-behavior: smooth;
  scroll-padding-top: 6rem;
}

body {
  margin: 0;
  background: var(--color-white);
  color: var(--color-gray-900);
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body:has(dialog[open]) {
  overflow: hidden;
}

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

img {
  height: auto;
}

a {
  color: inherit;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.2em;
}

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

button,
a {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

button {
  cursor: pointer;
}

:focus-visible {
  outline: 3px solid var(--color-primary);
  outline-offset: 3px;
}

h1,
h2,
h3,
h4,
p {
  margin-top: 0;
}

h1,
h2,
h3,
h4 {
  font-family: var(--font-display);
  font-weight: 650;
  letter-spacing: -0.025em;
  line-height: 1.05;
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

ul,
ol {
  margin: 0;
  padding: 0;
}

[hidden] {
  display: none !important;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

section[id],
footer[id] {
  scroll-margin-top: 6rem;
}

.skip-link {
  position: fixed;
  top: var(--space-4);
  left: var(--space-4);
  z-index: var(--z-tooltip);
  padding: 0.75rem 1rem;
  transform: translateY(-200%);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  color: var(--color-primary-dark);
  font-weight: 650;
  transition: transform var(--transition);
}

.skip-link:focus {
  transform: translateY(0);
}

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

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* Source: assets/css/layout.css */
.container {
  width: min(100% - 3rem, var(--container));
  margin-inline: auto;
}

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

.utility-bar {
  background: var(--color-primary-deep);
  color: var(--color-white);
  font-size: var(--step--1);
}

.utility-bar__inner,
.utility-bar__links {
  display: flex;
  align-items: center;
}

.utility-bar__inner {
  min-height: 2.5rem;
  justify-content: space-between;
  gap: var(--space-5);
}

.utility-bar__links {
  gap: var(--space-5);
}

.utility-bar a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: color-mix(in srgb, var(--color-white) 88%, transparent);
  text-decoration: none;
}

.utility-bar a:hover {
  color: var(--color-white);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  border-bottom: 1px solid transparent;
  background: color-mix(in srgb, var(--color-white) 97%, transparent);
  transition: none;
}

.site-header--compact {
  border-bottom-color: var(--color-gray-200);
  background: var(--color-white);
}

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

.desktop-nav ul {
  display: flex;
  align-items: center;
  gap: clamp(0.75rem, 1.15vw, 1.65rem);
  list-style: none;
}

.desktop-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: var(--color-gray-750);
  font-size: 1rem;
  font-weight: 560;
  text-decoration: none;
  white-space: nowrap;
}

.desktop-nav a::after {
  position: absolute;
  right: 0;
  bottom: 0.2rem;
  left: 0;
  height: 2px;
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  background: var(--color-primary);
  transition: transform var(--transition);
}

.desktop-nav a:hover::after,
.desktop-nav a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.hero {
  position: relative;
  display: grid;
  min-height: min(47rem, calc(100dvh - 7.75rem));
  overflow: hidden;
  align-items: center;
  color: var(--color-white);
  isolation: isolate;
}

.hero__image,
.hero__scrim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero__image {
  z-index: -2;
  object-fit: cover;
  object-position: center;
}

.hero__scrim {
  z-index: -1;
  background: linear-gradient(90deg, rgb(3 24 44 / 0.9) 0%, rgb(3 24 44 / 0.62) 38%, rgb(3 24 44 / 0.08) 72%);
}

.hero__content {
  padding-block: clamp(2.5rem, 6vh, 4rem);
}

.hero__content > * {
  max-width: 46rem;
}

.hero h1 {
  margin-bottom: var(--space-5);
  font-size: var(--step-4);
  letter-spacing: -0.035em;
}

.hero p {
  max-width: 40rem;
  margin-bottom: var(--space-6);
  color: color-mix(in srgb, var(--color-white) 92%, transparent);
  font-size: var(--step-1);
  line-height: 1.5;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.quick-access {
  padding-block: var(--space-7);
  background: var(--color-primary);
  color: var(--color-white);
}

.quick-access h2 {
  margin-bottom: var(--space-5);
  font-family: var(--font-body);
  font-size: var(--step--1);
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.quick-access__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid rgb(255 255 255 / 0.28);
}

.about-layout,
.research-layout,
.events-layout,
.facilities-layout {
  display: grid;
  align-items: start;
}

.about-layout {
  grid-template-columns: minmax(0, 0.9fr) minmax(22rem, 1.1fr);
  gap: clamp(3rem, 7vw, 6.5rem);
}

.about-layout__copy {
  padding-top: var(--space-5);
}

.section--research,
.section--facilities {
  background: var(--color-gray-50);
}

.research-layout {
  grid-template-columns: minmax(18rem, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(3rem, 7vw, 6rem);
}

.research-layout__intro {
  position: sticky;
  top: 8rem;
}

.section-heading-row {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-6);
  margin-bottom: var(--space-7);
}

.section-heading-row .section-heading {
  margin-bottom: 0;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
}

.news-card:nth-child(1) {
  grid-column: span 6;
}

.news-card:nth-child(2),
.news-card:nth-child(3) {
  grid-column: span 3;
}

.section--events {
  border-top: 1px solid var(--color-gray-200);
}

.events-layout {
  grid-template-columns: minmax(18rem, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(3rem, 7vw, 6.5rem);
}

.facilities-layout {
  grid-template-columns: minmax(18rem, 0.72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 6.5rem);
}

.research-highlight {
  padding-block: var(--space-8);
  background: var(--color-primary-deep);
  color: var(--color-white);
}

.research-highlight__inner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1.75rem, 4vw, 3.5rem);
}

.external-links__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: var(--space-7);
  border-top: 1px solid var(--color-gray-200);
}

.site-footer {
  padding-top: var(--space-9);
  background: var(--color-gray-900);
  color: var(--color-white);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 0.7fr 0.9fr 1.2fr;
  gap: clamp(2rem, 4vw, 4rem);
}

.site-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  margin-top: var(--space-8);
  padding-block: var(--space-5);
  border-top: 1px solid rgb(255 255 255 / 0.16);
}

@supports (animation-timeline: view()) {
  .reveal {
    animation: section-reveal 1ms cubic-bezier(0.16, 1, 0.3, 1) both;
    animation-range: entry 5% cover 24%;
    animation-timeline: view();
  }

  @keyframes section-reveal {
    from {
      transform: translateY(1.5rem);
    }
    to {
      transform: translateY(0);
    }
  }
}

/* Source: assets/css/components.css */
.brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--color-gray-900);
  text-decoration: none;
}

.brand img {
  width: 3.5rem;
  height: 3.5rem;
  object-fit: contain;
}

.brand__copy {
  display: grid;
  gap: 0.05rem;
  line-height: 1.18;
}

.brand__copy > span {
  color: var(--color-gray-600);
  font-size: 0.8225rem;
}

.brand__copy strong {
  max-width: 14rem;
  font-family: var(--font-display);
  font-size: 1.1125rem;
  font-weight: 650;
  letter-spacing: -0.015em;
}

.language-switch {
  display: inline-flex;
  min-height: 2.25rem;
  align-items: center;
  gap: var(--space-2);
  color: rgb(255 255 255 / 0.55);
}

.language-switch button,
.language-switch a {
  display: inline-flex;
  min-width: 2rem;
  min-height: 2.25rem;
  align-items: center;
  gap: 0.35rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgb(255 255 255 / 0.72);
  text-decoration: none;
  font-size: 0.8425rem;
  font-weight: 650;
}

.language-switch button[aria-pressed="true"],
.language-switch a[aria-current="page"] {
  color: var(--color-white);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.3rem;
}

.language-switch__flag {
  width: 1.15rem;
  height: 0.78rem;
  object-fit: cover;
  box-shadow: 0 0 0 1px rgb(255 255 255 / 0.3);
}

.button {
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  padding: 0.75rem 0.75rem 0.75rem 1.25rem;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  font-size: 1.0125rem;
  font-weight: 650;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
}

.button:active {
  transform: scale(0.98);
}

.button__icon {
  display: inline-grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: var(--radius-pill);
  transition: transform var(--transition);
}

.button:hover .button__icon {
  transform: translateX(0.16rem);
}

.button--primary {
  background: var(--color-primary);
  color: var(--color-white);
}

.button--primary .button__icon {
  background: rgb(255 255 255 / 0.14);
}

.button--primary:hover {
  background: var(--color-primary-dark);
}

.button--light {
  background: var(--color-white);
  color: var(--color-primary-deep);
}

.button--light .button__icon {
  background: var(--color-primary-light);
}

.button--light:hover {
  background: var(--color-primary-light);
}

.button--ghost-light {
  padding-inline: 1.25rem;
  border-color: rgb(255 255 255 / 0.54);
  color: var(--color-white);
}

.button--ghost-light:hover {
  border-color: var(--color-white);
  background: rgb(255 255 255 / 0.1);
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-primary-dark);
  font-size: 0.9425rem;
  font-weight: 650;
  text-decoration: none;
}

.text-link > span {
  display: inline-flex;
  align-items: center;
  font-size: 1rem;
  transition: transform var(--transition);
}

.text-link:hover {
  color: var(--color-primary);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.28rem;
}

.text-link:hover > span {
  transform: translateX(0.22rem);
}

.text-button {
  min-height: 2.75rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-white);
  text-decoration: underline;
  text-underline-offset: 0.25rem;
}

.icon-button {
  display: inline-grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-pill);
  background: var(--color-white);
  color: var(--color-gray-900);
  font-size: 1.35rem;
  transition: background-color var(--transition), color var(--transition), transform var(--transition);
}

.icon-button:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

.icon-button:active {
  transform: scale(0.96);
}

.menu-button {
  display: none;
}

.nav-dropdown {
  position: relative;
}

.nav-dropdown summary {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-gray-750);
  font-size: 1rem;
  font-weight: 560;
  list-style: none;
  cursor: pointer;
}

.nav-dropdown summary::-webkit-details-marker {
  display: none;
}

.nav-dropdown summary i {
  font-size: 0.8125rem;
  transition: transform var(--transition);
}

.nav-dropdown[open] summary i {
  transform: rotate(180deg);
}

.nav-parent--active .nav-dropdown > summary {
  color: var(--color-primary-dark);
}

.nav-dropdown__panel {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 50%;
  display: grid;
  min-width: 13rem;
  padding: var(--space-2);
  transform: translateX(-50%);
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  box-shadow: 0 1.25rem 3rem rgb(7 27 48 / 0.14);
}

.desktop-nav .nav-dropdown__panel a {
  min-height: 2.8rem;
  padding-inline: var(--space-3);
  border-radius: 4px;
}

.desktop-nav .nav-dropdown__panel a:hover,
.desktop-nav .nav-dropdown__panel a[aria-current="page"] {
  background: var(--color-primary-light);
  color: var(--color-primary-dark);
}

.desktop-nav .nav-dropdown__panel a::after {
  display: none;
}

.mobile-menu {
  width: min(100% - 1.5rem, 34rem);
  max-height: calc(100dvh - 1.5rem);
  margin: 0.75rem 0.75rem 0.75rem auto;
  padding: var(--space-5);
  border: 0;
  border-radius: var(--radius-lg);
  background: var(--color-primary-deep);
  color: var(--color-white);
  overscroll-behavior: contain;
}

.mobile-menu::backdrop,
.seasonal-popup::backdrop {
  background: rgb(8 22 36 / 0.72);
}

.mobile-menu__top,
.mobile-menu__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}

.mobile-menu .brand {
  color: var(--color-white);
}

.mobile-menu .brand__copy strong {
  color: var(--color-white);
}

.mobile-menu .icon-button {
  border-color: rgb(255 255 255 / 0.18);
  background: transparent;
  color: var(--color-white);
}

.mobile-menu nav {
  margin-block: var(--space-7);
}

.mobile-menu nav ul {
  list-style: none;
}

.mobile-menu nav a {
  display: flex;
  min-height: 3.75rem;
  align-items: center;
  border-bottom: 1px solid rgb(255 255 255 / 0.16);
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-weight: 570;
  text-decoration: none;
}

.mobile-menu .nav-dropdown summary {
  display: flex;
  min-height: 3.75rem;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgb(255 255 255 / 0.16);
  color: var(--color-white);
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-weight: 570;
}

.mobile-menu .nav-dropdown__panel {
  position: static;
  gap: 0;
  min-width: 0;
  padding: 0 0 var(--space-3) var(--space-4);
  transform: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.mobile-menu .nav-dropdown__panel a {
  min-height: 3rem;
  color: rgb(255 255 255 / 0.78);
  font-family: var(--font-body);
  font-size: 1.0225rem;
}

.mobile-menu__footer {
  padding-top: var(--space-5);
  border-top: 1px solid rgb(255 255 255 / 0.16);
}

.mobile-menu__footer > a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--step--1);
  text-decoration: none;
}

.quick-link {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  min-height: 9.5rem;
  align-items: start;
  gap: var(--space-4);
  padding: var(--space-5);
  border-right: 1px solid rgb(255 255 255 / 0.28);
  color: var(--color-white);
  text-decoration: none;
  transition: background-color var(--transition);
}

.quick-link:first-child {
  border-left: 1px solid rgb(255 255 255 / 0.28);
}

.quick-link:hover {
  background: rgb(0 0 0 / 0.12);
}

.quick-link > i:first-child {
  margin-top: 0.15rem;
  font-size: 1.65rem;
}

.quick-link > i:last-child {
  margin-top: 0.3rem;
  transition: transform var(--transition);
}

.quick-link:hover > i:last-child {
  transform: translateX(0.25rem);
}

.quick-link span {
  display: grid;
  gap: var(--space-2);
}

.quick-link strong {
  font-family: var(--font-display);
  font-size: 1.4rem;
  line-height: 1.1;
}

.quick-link small {
  color: rgb(255 255 255 / 0.78);
  font-size: 0.9625rem;
  line-height: 1.5;
}

.section-heading {
  max-width: 48rem;
  margin-bottom: var(--space-6);
}

.section-heading h2 {
  margin-bottom: var(--space-4);
  font-size: var(--step-3);
}

.section-heading > p:not(.component-label) {
  max-width: 62ch;
  margin-bottom: 0;
  color: var(--color-gray-600);
}

.component-label {
  margin-bottom: var(--space-3);
  color: var(--color-primary-dark);
  font-size: var(--step--1);
  font-weight: 650;
}

.badge {
  display: inline-flex;
  min-height: 1.75rem;
  align-items: center;
  padding-inline: 0.65rem;
  border-radius: var(--radius-pill);
  background: var(--color-primary-light);
  color: var(--color-primary-dark);
  font-size: 0.8225rem;
  font-weight: 650;
}

.badge--prototype {
  gap: var(--space-2);
  background: color-mix(in srgb, var(--color-warning) 10%, var(--color-white));
  color: var(--color-warning);
}

.filter-bar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.filter-bar--compact {
  max-width: 34rem;
  margin-block: var(--space-5) var(--space-7);
}

.search-field {
  position: relative;
  display: block;
  flex: 1;
}

.search-field i {
  position: absolute;
  top: 50%;
  left: var(--space-4);
  transform: translateY(-50%);
  color: var(--color-gray-600);
}

.search-field input,
.select-field select {
  width: 100%;
  min-height: 3rem;
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-sm);
  background-color: var(--color-gray-50);
  color: var(--color-gray-900);
  transition: border-color var(--transition), background-color var(--transition);
}

.search-field input {
  padding: 0.75rem 1rem 0.75rem 2.75rem;
}

.select-field {
  position: relative;
  display: block;
  min-width: 11rem;
  color: var(--color-gray-750);
  font-size: 0.9125rem;
  font-weight: 650;
}

.select-field select {
  appearance: none;
  padding-inline: 0.9rem 2.5rem;
}

.select-field__icon {
  position: absolute;
  top: 50%;
  right: var(--space-4);
  transform: translateY(-50%);
  color: var(--color-primary-dark);
  pointer-events: none;
}

.search-field:focus-within input,
.select-field:focus-within select {
  border-color: var(--color-primary);
  background: var(--color-white);
  outline: 3px solid color-mix(in srgb, var(--color-primary) 14%, transparent);
  outline-offset: 1px;
}

.catalog-language-note {
  display: flex;
  max-width: 68rem;
  align-items: flex-start;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
  color: var(--color-gray-600);
  font-size: 0.9225rem;
}

.catalog-language-note i {
  margin-top: 0.25rem;
  color: var(--color-primary);
}

.catalog-tools-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  margin-block: var(--space-6) var(--space-7);
  padding-block: var(--space-4);
  border-top: 1px solid var(--color-gray-200);
  border-bottom: 1px solid var(--color-gray-200);
}

.catalog-tools-row .catalog-language-note {
  flex: 0 1 38rem;
  margin: 0;
}

.catalog-tools-row > .filter-bar,
.catalog-tools-row > .catalog-toolbar {
  flex: 1 1 36rem;
}

.empty-state {
  display: grid;
  min-height: 15rem;
  place-items: center;
  padding: var(--space-6);
  border: 1px dashed var(--color-gray-400);
  color: var(--color-gray-600);
  text-align: center;
}

.empty-state i {
  font-size: 2rem;
}

.empty-state p {
  margin: var(--space-3) 0 0;
}

.research-card,
.facility-card,
.person-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-sm);
  background: var(--color-white);
}

.research-card__image,
.facility-card__image {
  display: block;
  overflow: hidden;
  background: var(--color-gray-100);
}

.research-card__image img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.facility-card__image img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.research-card__body,
.facility-card__body,
.person-card__body {
  padding: var(--space-5);
}

.research-card,
.person-card {
  display: flex;
  height: 100%;
  flex-direction: column;
  transition: border-color var(--transition), transform var(--transition);
}

.research-card:hover,
.person-card:hover {
  transform: translateY(-0.18rem);
  border-color: color-mix(in srgb, var(--color-primary) 42%, var(--color-gray-200));
}

.research-card__body,
.person-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
}

.research-card__copy,
.person-card__identity {
  width: 100%;
}

.research-card__topics {
  display: none;
}

.research-card__code,
.person-card__group {
  margin-bottom: var(--space-2);
  color: var(--color-primary-dark);
  font-size: 0.8425rem;
  font-weight: 650;
}

.research-card h3,
.facility-card h3,
.person-card h3 {
  margin-bottom: var(--space-3);
  font-size: var(--step-1);
}

.research-card h3,
.person-card h3 {
  min-height: 2.5em;
}

.research-card h3 a,
.facility-card h3 a {
  text-decoration: none;
}

.research-card__copy > p:not(.research-card__code),
.facility-card__body > p:not(.component-label),
.person-card__identity > p:not(.person-card__group) {
  color: var(--color-gray-600);
  font-size: 0.9825rem;
}

.research-card .text-link,
.facility-card .text-link,
.person-card .text-link {
  margin-top: auto;
  padding-top: var(--space-5);
}

.person-card__photo {
  overflow: hidden;
  background: var(--color-gray-100);
}

.person-card__photo img {
  width: 100%;
  aspect-ratio: 5 / 6;
  object-fit: cover;
  object-position: center 22%;
}

.person-card .badge {
  margin-bottom: var(--space-3);
}

.person-card__identity > p:not(.person-card__group) {
  min-height: 3.4em;
}

.form-field {
  display: grid;
  gap: var(--space-2);
}

.form-field label {
  color: var(--color-gray-750);
  font-size: 0.9625rem;
  font-weight: 650;
}

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  min-height: 3rem;
  padding: 0.72rem 0.9rem;
  border: 1px solid var(--color-gray-400);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  color: var(--color-gray-900);
}

.form-field textarea {
  min-height: 8rem;
  resize: vertical;
}

.form-field input::placeholder,
.form-field textarea::placeholder {
  color: var(--color-gray-600);
}

.form-field input:focus-visible,
.form-field select:focus-visible,
.form-field textarea:focus-visible {
  border-color: var(--color-primary);
  outline: 3px solid color-mix(in srgb, var(--color-primary) 24%, transparent);
  outline-offset: 1px;
}

.form-field__help,
.form-field__error {
  margin: 0;
  font-size: 0.9025rem;
}

.form-field__help {
  color: var(--color-gray-600);
}

.form-field__error {
  color: var(--color-error);
}

.lead-copy {
  max-width: 62ch;
  margin-bottom: var(--space-6);
  color: var(--color-gray-600);
  font-size: var(--step-1);
}

.about-layout .lead-copy {
  font-size: var(--step-0);
  line-height: 1.65;
}

.editorial-figure {
  margin: 0;
}

.editorial-figure img {
  width: 100%;
  aspect-ratio: 5 / 4;
  border-radius: var(--radius-md);
  object-fit: cover;
}

.editorial-figure figcaption {
  max-width: 55ch;
  margin-top: var(--space-3);
  color: var(--color-gray-600);
  font-size: var(--step--1);
}

.research-list {
  border-top: 1px solid var(--color-gray-200);
}

.research-row {
  display: grid;
  grid-template-columns: 2.5rem minmax(12rem, 0.9fr) minmax(16rem, 1.1fr) auto;
  align-items: center;
  gap: var(--space-5);
  min-height: 7.5rem;
  border-bottom: 1px solid var(--color-gray-200);
}

.research-row__index {
  color: var(--color-primary);
  font-family: var(--font-display);
  font-size: 0.9425rem;
  font-weight: 650;
}

.research-row h3 {
  margin-bottom: 0;
  font-size: var(--step-1);
}

.research-row p {
  margin-bottom: 0;
  color: var(--color-gray-600);
  font-size: 1.0125rem;
}

.research-row > a {
  display: inline-grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border-radius: var(--radius-pill);
  color: var(--color-primary-dark);
  text-decoration: none;
  transition: background-color var(--transition), color var(--transition), transform var(--transition);
}

.research-row:hover > a {
  transform: translateX(0.2rem);
  background: var(--color-primary);
  color: var(--color-white);
}

.news-card {
  border-top: 3px solid var(--color-primary);
}

.news-card__image {
  display: block;
  margin-top: var(--space-3);
  overflow: hidden;
  border-radius: var(--radius-sm);
  background: var(--color-gray-100);
}

.news-card__image img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.news-card:first-child .news-card__image img {
  transform: scale(1.1);
}

.news-card__content {
  padding-top: var(--space-4);
}

.news-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  margin-bottom: var(--space-3);
  color: var(--color-gray-600);
  font-size: 0.8425rem;
}

.news-card__meta span {
  color: var(--color-primary-dark);
  font-weight: 650;
}

.news-card h3 {
  margin-bottom: var(--space-3);
  font-size: var(--step-1);
}

.news-card h3 a {
  text-decoration: none;
}

.news-card h3 a:hover {
  color: var(--color-primary);
}

.news-card__content > p:not(.news-card__meta) {
  color: var(--color-gray-600);
  font-size: 1.0025rem;
}

.news-card .text-link {
  font-size: 0.9625rem;
}

.events-list {
  border-top: 1px solid var(--color-gray-200);
}

.event-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-6);
  padding-block: var(--space-5);
  border-bottom: 1px solid var(--color-gray-200);
}

.event-date {
  display: grid;
  width: 4.5rem;
  min-height: 4.75rem;
  place-content: center;
  border: 1px solid color-mix(in srgb, var(--color-primary) 35%, transparent);
  border-radius: var(--radius-sm);
  color: var(--color-primary-dark);
  text-align: center;
}

.event-date strong {
  font-family: var(--font-display);
  font-size: 1.8rem;
  line-height: 1;
}

.event-date span {
  font-size: 0.8225rem;
  font-weight: 650;
}

.event-row__category {
  margin-bottom: var(--space-2);
  color: var(--color-primary-dark);
  font-size: 0.8425rem;
  font-weight: 650;
}

.event-row h3 {
  margin-bottom: var(--space-2);
  font-size: var(--step-1);
}

.event-row h3 a {
  text-decoration: none;
}

.event-row__meta {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: 0;
  color: var(--color-gray-600);
  font-size: 0.9425rem;
}

.event-row__action {
  display: inline-grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border-radius: var(--radius-pill);
  color: var(--color-primary-dark);
  text-decoration: none;
  transition: background-color var(--transition), color var(--transition), transform var(--transition);
}

.event-row:hover .event-row__action {
  transform: translateX(0.2rem);
  background: var(--color-primary);
  color: var(--color-white);
}

.map-figure {
  margin: 0;
  padding: var(--space-5);
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-md);
  background: var(--color-white);
}

.map-figure img {
  width: 100%;
  max-height: 34rem;
  object-fit: contain;
}

.facility-list {
  display: grid;
  gap: 0;
  max-width: 48rem;
  margin-bottom: var(--space-6);
  list-style: none;
  border-top: 1px solid var(--color-gray-200);
}

.facility-list li {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 3.75rem;
  border-bottom: 1px solid var(--color-gray-200);
}

.facility-list i {
  color: var(--color-primary);
  font-size: 1.3rem;
}

.research-highlight__mark {
  display: grid;
  width: 5.5rem;
  height: 5.5rem;
  place-items: center;
  border: 1px solid rgb(255 255 255 / 0.3);
  border-radius: var(--radius-pill);
  font-family: var(--font-display);
  font-size: 1.8rem;
  font-weight: 650;
}

.research-highlight h2 {
  max-width: 44rem;
  margin-bottom: var(--space-3);
  font-size: var(--step-3);
}

.research-highlight p {
  max-width: 64ch;
  margin-bottom: 0;
  color: rgb(255 255 255 / 0.78);
}

.external-links__grid a {
  display: flex;
  min-height: 4.5rem;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding-inline: var(--space-4);
  border-bottom: 1px solid var(--color-gray-200);
  text-decoration: none;
  transition: background-color var(--transition), color var(--transition);
}

.external-links__grid a:nth-child(odd) {
  border-right: 1px solid var(--color-gray-200);
}

.external-links__grid a:hover {
  background: var(--color-primary-light);
  color: var(--color-primary-dark);
}

.external-links__grid i {
  transition: transform var(--transition);
}

.external-links__grid a:hover i {
  transform: translate(0.15rem, -0.15rem);
}

.site-footer h2 {
  margin-bottom: var(--space-3);
  font-size: var(--step-2);
}

.site-footer h3 {
  margin-bottom: var(--space-4);
  color: rgb(255 255 255 / 0.58);
  font-family: var(--font-body);
  font-size: 0.8825rem;
  font-weight: 650;
}

.site-footer p,
.site-footer address {
  color: rgb(255 255 255 / 0.7);
}

.site-footer address {
  max-width: 32ch;
  margin-bottom: var(--space-4);
  font-style: normal;
}

.site-footer ul {
  display: grid;
  gap: var(--space-3);
  list-style: none;
}

.site-footer li a,
.site-footer__grid > div > a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: rgb(255 255 255 / 0.82);
  font-size: 0.9625rem;
  text-decoration: none;
}

.site-footer li a:hover,
.site-footer__grid > div > a:hover {
  color: var(--color-white);
  text-decoration: underline;
}

.site-footer__brand img {
  margin-bottom: var(--space-4);
}

.site-footer__brand p {
  max-width: 34ch;
}

.social-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-5);
}

.social-links a {
  display: inline-grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border: 1px solid rgb(255 255 255 / 0.2);
  border-radius: var(--radius-pill);
  color: var(--color-white);
  text-decoration: none;
  transition: background-color var(--transition), border-color var(--transition);
}

.social-links a:hover {
  border-color: var(--color-primary);
  background: var(--color-primary);
}

.site-footer__bottom p {
  margin-bottom: 0;
  font-size: 0.8825rem;
}

.seasonal-popup {
  width: min(100% - 2rem, 56rem);
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-lg);
  background: var(--color-white);
  color: var(--color-gray-900);
  overscroll-behavior: contain;
}

.seasonal-popup[open] {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
}

.seasonal-popup__close {
  position: absolute;
  top: var(--space-4);
  right: var(--space-4);
}

.seasonal-popup__visual {
  position: relative;
  display: grid;
  min-height: 28rem;
  place-content: center;
  overflow: hidden;
  background: var(--color-primary);
}

.seasonal-popup__visual::before,
.seasonal-popup__visual::after {
  position: absolute;
  border: 1px solid rgb(255 255 255 / 0.24);
  border-radius: var(--radius-pill);
  content: "";
}

.seasonal-popup__visual::before {
  width: 22rem;
  height: 22rem;
  transform: translate(-30%, 55%);
}

.seasonal-popup__visual::after {
  top: -5rem;
  right: -8rem;
  width: 18rem;
  height: 18rem;
}

.seasonal-popup__visual img {
  position: relative;
  z-index: 1;
  width: 8rem;
  height: auto;
}

.seasonal-popup__visual span {
  position: absolute;
  right: var(--space-5);
  bottom: var(--space-4);
  color: rgb(255 255 255 / 0.45);
  font-family: var(--font-display);
  font-size: 4rem;
  font-weight: 650;
  line-height: 1;
}

.seasonal-popup__content {
  display: flex;
  min-height: 28rem;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(3rem, 7vw, 5rem);
}

.seasonal-popup h2 {
  margin-bottom: var(--space-4);
  font-size: var(--step-3);
}

.seasonal-popup__content > p:not(.component-label) {
  max-width: 44ch;
  margin-bottom: var(--space-6);
  color: var(--color-gray-600);
}

/* Source: assets/css/pages.css */
.section--soft {
  background: var(--color-gray-50);
}

.section--ink {
  background: var(--color-primary-deep);
  color: var(--color-white);
}

.section--ink .section-heading > p:not(.component-label) {
  color: rgb(255 255 255 / 0.7);
}

.section--ink .component-label {
  color: rgb(255 255 255 / 0.7);
}

.page-hero {
  position: relative;
  display: grid;
  min-height: clamp(30rem, 58vh, 42rem);
  overflow: hidden;
  align-items: end;
  color: var(--color-white);
  isolation: isolate;
}

.page-hero__image,
.page-hero__scrim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.page-hero__image {
  z-index: -2;
  object-fit: cover;
  object-position: center;
}

.page-hero__scrim {
  z-index: -1;
  background: linear-gradient(90deg, rgb(3 24 44 / 0.94), rgb(3 24 44 / 0.7) 48%, rgb(3 24 44 / 0.18));
}

.page-hero__content {
  padding-block: clamp(3rem, 7vw, 5rem);
}

.page-hero__content > * {
  max-width: 52rem;
}

.page-hero__eyebrow {
  margin-bottom: var(--space-4);
  color: rgb(255 255 255 / 0.75);
  font-size: var(--step--1);
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-hero h1 {
  margin-bottom: var(--space-5);
  font-size: clamp(2rem, 1.55rem + 2vw, 3.25rem);
}

.page-hero__content > p:last-child {
  max-width: 44rem;
  margin-bottom: 0;
  color: rgb(255 255 255 / 0.82);
  font-size: var(--step-0);
  line-height: 1.55;
}

.page-hero--people .page-hero__image {
  object-position: 72% 24%;
  filter: saturate(0.8);
}

.page-hero--news .page-hero__scrim,
.page-hero--events .page-hero__scrim {
  background: linear-gradient(90deg, rgb(3 24 44 / 0.96), rgb(0 68 127 / 0.75) 55%, rgb(3 24 44 / 0.22));
}

.page-hero--article .page-hero__scrim {
  background: linear-gradient(90deg, rgb(27 24 19 / 0.96), rgb(27 24 19 / 0.7) 55%, rgb(27 24 19 / 0.16));
}

.page-hero--alumni .page-hero__scrim {
  background: linear-gradient(90deg, rgb(23 33 46 / 0.95), rgb(23 33 46 / 0.65) 55%, rgb(23 33 46 / 0.15));
}

.breadcrumb {
  border-bottom: 1px solid var(--color-gray-200);
  background: var(--color-white);
}

.breadcrumb ol {
  display: flex;
  min-height: 3.5rem;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  list-style: none;
  color: var(--color-gray-600);
  font-size: 0.8825rem;
}

.breadcrumb li:not(:last-child)::after {
  margin-left: var(--space-2);
  color: var(--color-gray-400);
  content: "/";
}

.breadcrumb a {
  text-decoration: none;
}

.breadcrumb a:hover {
  color: var(--color-primary-dark);
  text-decoration: underline;
}

.local-nav {
  position: sticky;
  top: 5.25rem;
  z-index: 12;
  border-bottom: 1px solid var(--color-gray-200);
  background: color-mix(in srgb, var(--color-white) 97%, transparent);
}

.local-nav .container {
  display: flex;
  min-height: 3.8rem;
  align-items: center;
  gap: var(--space-6);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
}

.local-nav span {
  flex: 0 0 auto;
  color: var(--color-gray-600);
  font-size: 0.8425rem;
  font-weight: 650;
}

.local-nav ul {
  display: flex;
  gap: var(--space-5);
  list-style: none;
}

.local-nav a {
  display: inline-flex;
  min-height: 3.8rem;
  align-items: center;
  color: var(--color-gray-750);
  font-size: 0.9225rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.local-nav a:hover {
  color: var(--color-primary);
}

.people-grid,
.facility-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-6);
}

.people-grid--leaders {
  max-width: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.people-grid--leaders .person-card {
  display: grid;
  grid-template-columns: minmax(11rem, 0.72fr) minmax(0, 1.28fr);
}

.people-grid--leaders .person-card__photo img {
  height: 100%;
  aspect-ratio: 4 / 5;
}

.facility-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.research-card-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: stretch;
}

.research-card-grid .research-card {
  grid-column: span 4;
}

.research-card-grid .research-card:first-child {
  display: grid;
  height: 32rem;
  grid-column: span 8;
  grid-template-columns: minmax(0, 1.12fr) minmax(18rem, 0.88fr);
}

.research-card-grid .research-card:first-child .research-card__image img {
  height: 100%;
  aspect-ratio: auto;
}

.research-card-grid .research-card:first-child .research-card__body {
  padding: clamp(2rem, 4vw, 3.5rem) clamp(2rem, 4vw, 3.5rem) var(--space-5);
}

.research-card-grid .research-card:first-child .research-card__topics {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-5);
  padding: 0;
  list-style: none;
}

.research-card-grid .research-card:first-child .research-card__topics li {
  padding: 0.38rem 0.6rem;
  border: 1px solid var(--color-gray-200);
  color: var(--color-gray-700);
  font-size: 0.8125rem;
  line-height: 1.25;
}

.catalog-more {
  margin-top: var(--space-7);
}

#dosen .filter-bar {
  margin-block: var(--space-6) var(--space-7);
}

.organization-chart {
  margin: var(--space-7) 0 0;
  padding: clamp(1.5rem, 4vw, 3.5rem);
  border: 1px solid var(--color-gray-200);
  background: var(--color-white);
}

.organization-chart__tier {
  position: relative;
  display: grid;
  gap: var(--space-5);
}

.organization-chart__tier--top {
  max-width: 31rem;
  margin-inline: auto;
}

.organization-chart__tier--leadership {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.organization-chart__tier--support {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.organization-chart__tier--leadership::before,
.organization-chart__tier--support::before {
  position: absolute;
  top: calc(var(--space-5) * -1);
  border-top: 1px solid var(--color-gray-300);
  content: "";
}

.organization-chart__tier--leadership::before {
  right: 25%;
  left: 25%;
}

.organization-chart__tier--support::before {
  right: 12.5%;
  left: 12.5%;
}

.organization-chart__node {
  position: relative;
  display: flex;
  min-height: 7.5rem;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-5);
  border: 1px solid var(--color-gray-300);
  background: var(--color-gray-50);
}

.organization-chart__tier:not(.organization-chart__tier--top) .organization-chart__node::before {
  position: absolute;
  bottom: 100%;
  left: 50%;
  width: 1px;
  height: var(--space-5);
  background: var(--color-gray-300);
  content: "";
}

.organization-chart__node span {
  color: var(--color-primary);
  font-size: 0.8125rem;
  font-weight: 650;
  letter-spacing: 0.08em;
}

.organization-chart__node strong {
  font-family: var(--font-display);
  font-size: var(--step-0);
  line-height: 1.25;
}

.organization-chart__node--primary {
  border-color: var(--color-primary);
  background: var(--color-primary-deep);
  color: var(--color-white);
}

.organization-chart__node--primary span {
  color: rgb(255 255 255 / 0.68);
}

.organization-chart__connector {
  width: 1px;
  height: calc(var(--space-7) + var(--space-3));
  margin-inline: auto;
  background: var(--color-gray-300);
}

.organization-chart figcaption {
  margin-top: var(--space-6);
  color: var(--color-gray-600);
  font-size: 0.8825rem;
  text-align: center;
}

.welcome-layout,
.vision-layout,
.map-layout,
.about-calendar-layout,
.program-split,
.accreditation-layout,
.detail-intro-layout,
.profile-detail-layout,
.event-detail-layout,
.form-layout {
  display: grid;
  align-items: start;
}

.welcome-layout {
  grid-template-columns: minmax(16rem, 0.55fr) minmax(0, 1.45fr);
  gap: clamp(2.5rem, 6vw, 5.5rem);
}

.welcome-layout__portrait {
  margin: 0;
}

.welcome-layout__portrait img {
  width: 100%;
  max-height: 33rem;
  border-radius: var(--radius-sm);
  object-fit: cover;
}

.welcome-layout__portrait p {
  margin-top: var(--space-3);
  color: var(--color-gray-600);
  font-size: 0.8825rem;
}

.welcome-layout__copy > p {
  max-width: 72ch;
  color: var(--color-gray-750);
}

.welcome-layout__copy > p:first-of-type {
  font-size: var(--step-1);
}

.vision-layout {
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
  gap: clamp(3rem, 7vw, 6.5rem);
}

.vision-block__index {
  display: block;
  margin-bottom: var(--space-6);
  color: var(--color-primary);
  font-family: var(--font-display);
  font-size: var(--step-3);
  font-weight: 650;
}

.mission-block ol {
  border-top: 1px solid var(--color-gray-200);
  list-style: none;
}

.mission-block li {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--space-4);
  padding-block: var(--space-4);
  border-bottom: 1px solid var(--color-gray-200);
}

.mission-block li span {
  color: var(--color-primary);
  font-family: var(--font-display);
  font-size: 0.9025rem;
  font-weight: 650;
}

.mission-block li p {
  margin: 0;
}

.timeline {
  position: relative;
  display: grid;
  max-width: 68rem;
  gap: 0;
  margin-top: var(--space-7);
  margin-left: auto;
  list-style: none;
}

.timeline::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 7.25rem;
  width: 1px;
  background: rgb(255 255 255 / 0.22);
  content: "";
}

.timeline li {
  position: relative;
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  gap: var(--space-7);
  padding-block: var(--space-5);
}

.timeline li::before {
  position: absolute;
  top: 2rem;
  left: 6.95rem;
  width: 0.65rem;
  height: 0.65rem;
  border: 2px solid var(--color-primary-deep);
  border-radius: 50%;
  background: var(--color-white);
  content: "";
}

.timeline time {
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-weight: 650;
}

.timeline p {
  max-width: 66ch;
  margin: 0;
  color: rgb(255 255 255 / 0.74);
}

.map-layout {
  grid-template-columns: minmax(18rem, 0.7fr) minmax(0, 1.3fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 6.5rem);
}

.map-panel {
  margin: 0;
  padding: var(--space-5);
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-sm);
  background: var(--color-white);
}

.map-panel img {
  width: 100%;
  max-height: 35rem;
  object-fit: contain;
}

.contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
}

.contact-card {
  display: flex;
  min-height: 20rem;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(2rem, 5vw, 4rem);
  border-top: 3px solid var(--color-primary);
  background: var(--color-gray-50);
}

.contact-card--large > i {
  margin-bottom: var(--space-6);
  color: var(--color-primary);
  font-size: 2rem;
}

.contact-card h2,
.contact-card h3 {
  margin-bottom: var(--space-4);
  font-size: var(--step-2);
}

.contact-card address {
  max-width: 46ch;
  margin-bottom: var(--space-5);
  color: var(--color-gray-600);
  font-style: normal;
}

.contact-card a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-2);
  color: var(--color-primary-dark);
  text-decoration: none;
}

.contact-card a:hover {
  text-decoration: underline;
}

.about-calendar-layout {
  grid-template-columns: minmax(18rem, 0.68fr) minmax(0, 1.32fr);
  gap: clamp(3rem, 7vw, 6.5rem);
}

.compact-event-list {
  border-top: 1px solid var(--color-gray-200);
}

.compact-event > a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-5);
  padding-block: var(--space-4);
  border-bottom: 1px solid var(--color-gray-200);
  text-decoration: none;
}

.compact-event > a:hover strong {
  color: var(--color-primary);
}

.compact-event > a > span {
  display: grid;
}

.compact-event small {
  color: var(--color-primary-dark);
  font-size: 0.8225rem;
  font-style: normal;
  font-weight: 650;
}

.compact-event strong {
  margin-block: var(--space-1);
  font-family: var(--font-display);
  font-size: 1.1425rem;
  line-height: 1.2;
}

.compact-event em {
  color: var(--color-gray-600);
  font-size: 0.8425rem;
  font-style: normal;
}

.date-block {
  display: grid;
  width: 4.75rem;
  min-height: 5.25rem;
  place-content: center;
  border: 1px solid color-mix(in srgb, var(--color-primary) 34%, transparent);
  border-radius: var(--radius-sm);
  color: var(--color-primary-dark);
  text-align: center;
}

.date-block strong {
  font-family: var(--font-display);
  font-size: 1.9rem;
  line-height: 0.95;
}

.date-block span,
.date-block small {
  font-size: 0.7625rem;
  font-weight: 650;
}

.pathway-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
}

.pathway-grid article {
  min-height: 17rem;
  padding: var(--space-6);
  border-top: 3px solid var(--color-primary);
  background: var(--color-gray-50);
}

.pathway-grid article > span {
  color: var(--color-primary);
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-weight: 650;
}

.pathway-grid h2 {
  margin-top: var(--space-6);
  font-size: var(--step-2);
}

.pathway-grid p {
  color: var(--color-gray-600);
}

.program-split {
  grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr);
  gap: clamp(3rem, 7vw, 6.5rem);
}

.program-note {
  display: flex;
  gap: var(--space-4);
  padding: var(--space-5);
  border-top: 3px solid var(--color-primary);
  background: var(--color-primary-light);
}

.program-note i {
  color: var(--color-primary-dark);
  font-size: 1.35rem;
}

.program-note p {
  margin: 0;
  color: var(--color-gray-750);
  font-size: 0.9825rem;
}

.course-catalog {
  border-top: 1px solid var(--color-gray-200);
}

.course-catalog__top {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-4);
  padding-block: var(--space-4);
}

.course-list {
  display: grid;
  border-top: 1px solid var(--color-gray-200);
}

.course-row {
  display: grid;
  grid-template-columns: 6rem minmax(0, 1fr) 6rem 6rem;
  align-items: center;
  gap: var(--space-4);
  min-height: 5rem;
  padding-inline: var(--space-3);
  border-bottom: 1px solid var(--color-gray-200);
  background: var(--color-white);
}

.course-row > span,
.course-row small {
  color: var(--color-gray-600);
  font-size: 0.8825rem;
}

.course-row h3,
.course-row p {
  margin: 0;
}

.course-row h3 {
  font-family: var(--font-body);
  font-size: 1.0425rem;
  font-weight: 650;
}

.course-row p {
  font-size: 0.9225rem;
}

.official-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
}

.official-card {
  min-height: 16rem;
  padding: var(--space-6);
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-sm);
}

.official-card > i {
  margin-bottom: var(--space-7);
  color: var(--color-primary);
  font-size: 1.8rem;
}

.official-card h3 {
  margin-bottom: var(--space-3);
  font-size: var(--step-1);
}

.official-card p {
  color: var(--color-gray-600);
}

.official-card a,
.document-card a {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-primary-dark);
  font-weight: 650;
  text-decoration: none;
}

.accreditation-layout {
  grid-template-columns: minmax(18rem, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(3rem, 7vw, 6.5rem);
}

.document-list {
  display: grid;
  gap: var(--space-4);
}

.document-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-5);
  padding: var(--space-5);
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-sm);
}

.document-card > i {
  color: var(--color-primary);
  font-size: 2rem;
}

.document-card h3 {
  margin-bottom: var(--space-3);
  font-size: var(--step-1);
}

.detail-intro-layout {
  grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr);
  gap: clamp(3rem, 7vw, 6.5rem);
}

.topic-panel {
  padding: var(--space-6);
  border-top: 3px solid var(--color-primary);
  background: var(--color-gray-50);
}

.topic-panel ul {
  border-top: 1px solid var(--color-gray-200);
  list-style: none;
}

.topic-panel li {
  display: flex;
  gap: var(--space-3);
  padding-block: var(--space-3);
  border-bottom: 1px solid var(--color-gray-200);
}

.topic-panel i {
  margin-top: 0.3rem;
  color: var(--color-primary);
}

.related-link-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--color-gray-200);
}

.related-link-list a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 7rem;
  align-content: center;
  gap: var(--space-2) var(--space-4);
  padding: var(--space-4);
  border-right: 1px solid var(--color-gray-200);
  border-bottom: 1px solid var(--color-gray-200);
  text-decoration: none;
}

.related-link-list a > span {
  color: var(--color-primary-dark);
  font-size: 0.8225rem;
  font-weight: 650;
}

.related-link-list strong {
  font-family: var(--font-display);
  font-size: var(--step-1);
}

.related-link-list i {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
}

.detail-back {
  margin-top: var(--space-7);
}

.profile-hero {
  padding-block: var(--space-8);
  background: var(--color-primary-deep);
  color: var(--color-white);
}

.profile-hero__grid {
  display: grid;
  grid-template-columns: minmax(13rem, 20rem) minmax(0, 1fr);
  align-items: center;
  gap: clamp(2.5rem, 6vw, 5.5rem);
}

.profile-hero__photo {
  overflow: hidden;
  border-radius: var(--radius-sm);
  background: var(--color-white);
}

.profile-hero__photo img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.profile-hero__copy h1 {
  max-width: 18ch;
  margin-bottom: var(--space-4);
  font-size: var(--step-4);
}

.profile-hero__copy > p:not(.component-label) {
  max-width: 52ch;
  color: rgb(255 255 255 / 0.76);
  font-size: var(--step-1);
}

.profile-hero__copy .component-label {
  color: rgb(255 255 255 / 0.68);
}

.profile-hero__copy .badge {
  margin-right: var(--space-2);
}

.profile-detail-layout {
  grid-template-columns: minmax(16rem, 0.65fr) minmax(0, 1.35fr);
  gap: clamp(3rem, 7vw, 6.5rem);
}

.profile-section {
  padding-block: var(--space-5);
  border-top: 1px solid var(--color-gray-200);
}

.profile-section h2 {
  margin-bottom: var(--space-4);
  color: var(--color-gray-600);
  font-family: var(--font-body);
  font-size: 0.8625rem;
  font-weight: 650;
}

.profile-section p,
.profile-section li {
  max-width: 68ch;
}

.profile-section ul {
  display: grid;
  gap: var(--space-3);
  padding-left: 1.2rem;
}

.profile-section a {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
  color: var(--color-primary-dark);
  text-decoration: none;
}

.newsroom-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(20rem, 0.75fr);
  align-items: stretch;
  overflow: hidden;
  border-top: 4px solid var(--color-primary);
  background: var(--color-gray-50);
}

.newsroom-lead > a {
  overflow: hidden;
}

.newsroom-lead img {
  width: 100%;
  height: 100%;
  min-height: 30rem;
  object-fit: cover;
}

.newsroom-lead > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(2rem, 4.5vw, 4rem);
}

.newsroom-lead h2 {
  margin-bottom: var(--space-4);
  font-size: var(--step-3);
}

.newsroom-lead h2 a,
.newsroom-card h3 a,
.editorial-card h3 a,
.event-card h3 a,
.alumni-activity-card h3 a {
  text-decoration: none;
}

.newsroom-lead > div > p:not(.newsroom-card__meta) {
  color: var(--color-gray-600);
}

.newsroom-lead .badge,
.newsroom-card .badge,
.editorial-card .badge,
.alumni-activity-card .badge {
  margin-right: var(--space-3);
}

.card-footer {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: auto;
  padding-top: var(--space-5);
}

.newsroom-catalog {
  display: grid;
  gap: var(--space-8);
}

.newsroom-secondary,
.newsroom-grid {
  display: grid;
  gap: var(--space-6);
}

.newsroom-secondary {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.newsroom-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.newsroom-card {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  transition: border-color var(--transition), transform var(--transition);
}

.newsroom-card:hover {
  transform: translateY(-0.18rem);
  border-color: color-mix(in srgb, var(--color-primary) 42%, var(--color-gray-200));
}

.newsroom-card--secondary {
  display: grid;
  grid-template-columns: minmax(10rem, 0.72fr) minmax(0, 1.28fr);
}

.newsroom-card__image {
  display: block;
  overflow: hidden;
}

.newsroom-card__image img {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.newsroom-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: var(--space-5);
}

.newsroom-card__copy {
  width: 100%;
}

.newsroom-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  margin-bottom: var(--space-3);
  color: var(--color-gray-600);
  font-size: 0.8425rem;
}

.newsroom-card__meta span {
  color: var(--color-primary-dark);
  font-weight: 650;
}

.newsroom-card h3 {
  margin-bottom: var(--space-3);
  font-size: var(--step-1);
}

.newsroom-card__copy > p:not(.newsroom-card__meta) {
  display: -webkit-box;
  overflow: hidden;
  color: var(--color-gray-600);
  font-size: 0.9825rem;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.newsroom-card--secondary .newsroom-card__body {
  padding: var(--space-5);
}

.newsroom-card--secondary .newsroom-card__image img {
  aspect-ratio: auto;
}

.newsroom-card--secondary h3 {
  font-size: var(--step-2);
}

.editorial-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: stretch;
}

.editorial-card {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  border-top: 1px solid var(--color-gray-400);
}

.editorial-card--feature {
  grid-column: 1 / span 7;
  grid-row: span 2;
  border-top: 0;
  background: var(--color-gray-50);
}

.editorial-card--side {
  display: grid;
  grid-column: span 5;
  grid-template-columns: minmax(12rem, 0.9fr) minmax(0, 1.1fr);
}

.editorial-card--wide {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(18rem, 0.55fr) minmax(0, 1.45fr);
  border-bottom: 1px solid var(--color-gray-200);
}

.editorial-card__image {
  display: block;
  overflow: hidden;
}

.editorial-card__image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.editorial-card--feature .editorial-card__image img {
  aspect-ratio: 16 / 10;
}

.editorial-card--side .editorial-card__image img,
.editorial-card--wide .editorial-card__image img {
  height: 100%;
  aspect-ratio: auto;
}

.editorial-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: var(--space-5) 0;
}

.editorial-card--feature .editorial-card__body {
  padding: clamp(2rem, 4vw, 3.5rem);
}

.editorial-card--side .editorial-card__body,
.editorial-card--wide .editorial-card__body {
  padding: var(--space-5);
}

.editorial-card__copy {
  width: 100%;
}

.editorial-card__topic {
  color: var(--color-warning);
  font-size: 0.8425rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.editorial-card h3 {
  margin-bottom: var(--space-4);
  font-size: var(--step-1);
}

.editorial-card--feature h3 {
  font-size: var(--step-3);
}

.editorial-card--wide h3 {
  font-size: var(--step-2);
}

.editorial-card__copy > p:not(.editorial-card__topic) {
  color: var(--color-gray-600);
}

.editorial-card__byline {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  margin-block: var(--space-4);
  color: var(--color-gray-600);
  font-size: 0.8225rem;
}

.editorial-grid--related .editorial-card {
  grid-column: span 4;
  grid-row: auto;
}

.editorial-grid--related .editorial-card,
.editorial-grid--related .editorial-card--side,
.editorial-grid--related .editorial-card--wide {
  display: flex;
  grid-template-columns: none;
}

.editorial-grid--related .editorial-card__image img {
  height: auto;
  aspect-ratio: 4 / 3;
}

.story-header {
  padding-block: clamp(3.5rem, 8vw, 6rem) var(--space-8);
  background: var(--color-primary-deep);
  color: var(--color-white);
}

.story-detail--article .story-header {
  background: #26231e;
}

.story-detail--alumni .story-header {
  background: #243345;
}

.story-header__inner {
  max-width: 74rem;
}

.story-header .component-label {
  color: rgb(255 255 255 / 0.65);
}

.story-header h1 {
  max-width: 18ch;
  margin-bottom: var(--space-5);
  font-size: var(--step-4);
}

.story-header__excerpt {
  max-width: 62ch;
  color: rgb(255 255 255 / 0.76);
  font-size: var(--step-1);
}

.story-header__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3) var(--space-5);
  color: rgb(255 255 255 / 0.7);
  font-size: 0.9025rem;
}

.story-featured {
  margin-top: var(--space-8);
}

.story-featured img {
  width: 100%;
  max-height: 46rem;
  border-radius: var(--radius-sm);
  object-fit: cover;
}

.story-body-layout {
  display: grid;
  grid-template-columns: 16rem minmax(0, 48rem);
  justify-content: center;
  gap: clamp(2.5rem, 6vw, 5rem);
  padding-block: var(--space-8) var(--space-10);
}

.story-body-layout > aside {
  color: var(--color-gray-600);
  font-size: 0.8825rem;
}

.story-category {
  display: inline-flex;
  margin: 0;
  padding: 0.42rem 0.7rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent);
  border-radius: var(--radius-pill);
  background: var(--color-primary-light);
  color: var(--color-primary-dark);
  font-weight: 650;
  line-height: 1;
}

.story-share {
  margin-top: var(--space-5);
}

.story-share__actions {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.story-share button,
.story-share a {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  border: 1px solid var(--color-gray-200);
  border-radius: 50%;
  background: var(--color-white);
  color: var(--color-primary-dark);
  text-decoration: none;
  transition: border-color var(--transition), background-color var(--transition), color var(--transition);
}

.story-share button:hover,
.story-share a:hover {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: var(--color-white);
}

.story-share button.is-copied {
  background: var(--color-primary-light);
  color: var(--color-primary-dark);
}

.story-body p {
  font-size: 1.1425rem;
  line-height: 1.85;
}

.story-body p:first-child {
  font-size: var(--step-1);
}

.catalog-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}

.catalog-toolbar .filter-bar {
  flex: 1;
}

.view-switch {
  display: flex;
  flex: 0 0 auto;
  margin: 0;
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-sm);
  background: var(--color-white);
}

.view-switch button {
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  gap: var(--space-2);
  padding-inline: var(--space-4);
  border: 0;
  background: transparent;
  font-size: 0.9225rem;
  font-weight: 650;
}

.view-switch button[aria-pressed="true"] {
  background: var(--color-primary);
  color: var(--color-white);
}

.event-catalog {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
}

.event-card {
  display: flex;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--color-gray-200);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  transition: border-color var(--transition), transform var(--transition);
}

.event-card:hover {
  transform: translateY(-0.18rem);
  border-color: color-mix(in srgb, var(--color-primary) 42%, var(--color-gray-200));
}

.event-card__image {
  display: block;
  overflow: hidden;
}

.event-card__image img {
  width: 100%;
  aspect-ratio: 16 / 8;
  object-fit: cover;
}

.event-card__content {
  display: grid;
  flex: 1;
  grid-template-columns: auto minmax(0, 1fr);
  align-content: stretch;
  align-items: start;
  gap: var(--space-4);
  padding: var(--space-6);
}

.event-card__copy {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
}

.event-card__labels {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
  color: var(--color-primary-dark);
  font-size: 0.8225rem;
  font-weight: 650;
}

.event-card__status {
  padding-left: var(--space-2);
  border-left: 1px solid var(--color-gray-400);
  color: var(--color-success);
}

.event-card h3 {
  margin-bottom: var(--space-4);
  font-size: var(--step-1);
}

.event-card__copy > p:not(.event-card__excerpt) {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
  color: var(--color-gray-600);
  font-size: 0.8825rem;
}

.event-card__excerpt {
  display: -webkit-box;
  overflow: hidden;
  margin-top: var(--space-3);
  color: var(--color-gray-600);
  font-size: 0.9425rem;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.event-catalog[data-event-view="calendar"] {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.event-catalog[data-event-view="calendar"] .event-card {
  display: flex;
}

.event-catalog[data-event-view="calendar"] .event-card__image {
  display: none;
}

.event-catalog[data-event-view="calendar"] .event-card__content {
  display: flex;
  flex: 1;
  flex-direction: column;
}

.event-catalog[data-event-view="calendar"] .date-block {
  margin-bottom: var(--space-5);
}

.event-catalog[data-event-view="calendar"] .event-card__copy {
  flex: 1;
}

.event-catalog[data-event-view="calendar"] .event-card h3 {
  min-height: 2.5em;
}

.event-detail-hero {
  position: relative;
  display: grid;
  min-height: 38rem;
  align-items: end;
  overflow: hidden;
  color: var(--color-white);
  isolation: isolate;
}

.event-detail-hero > picture,
.event-detail-hero__scrim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.event-detail-hero > picture {
  z-index: -2;
}

.event-detail-hero > picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.event-detail-hero__scrim {
  z-index: -1;
  background: linear-gradient(0deg, rgb(3 24 44 / 0.95), rgb(3 24 44 / 0.35));
}

.event-detail-hero__content {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  gap: var(--space-6);
  padding-block: var(--space-8);
}

.event-detail-hero .date-block {
  border-color: rgb(255 255 255 / 0.45);
  background: rgb(255 255 255 / 0.94);
}

.event-detail-hero h1 {
  max-width: 18ch;
  margin-bottom: var(--space-4);
  font-size: var(--step-4);
}

.event-detail-hero__content > div > p:not(.component-label) {
  max-width: 58ch;
  color: rgb(255 255 255 / 0.78);
}

.event-detail-hero .component-label {
  color: rgb(255 255 255 / 0.72);
}

.event-detail-layout {
  grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
  gap: clamp(3rem, 7vw, 6.5rem);
}

.event-facts {
  padding: var(--space-6);
  border-top: 4px solid var(--color-primary);
  background: var(--color-gray-50);
}

.event-facts dl {
  margin: 0 0 var(--space-6);
}

.event-facts dl > div {
  padding-block: var(--space-3);
  border-bottom: 1px solid var(--color-gray-200);
}

.event-facts dt {
  color: var(--color-gray-600);
  font-size: 0.8225rem;
  font-weight: 650;
}

.event-facts dd {
  margin: var(--space-1) 0 0;
}

.event-catalog--related {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.event-catalog--related .event-card {
  display: flex;
}

.event-catalog--related .event-card__image img {
  min-height: 0;
  aspect-ratio: 3 / 2;
}

.mock-action-message {
  margin: var(--space-4) 0 0;
  color: var(--color-warning);
  font-size: 0.8825rem;
}

.alumni-org-grid {
  display: grid;
  max-width: 52rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
}

.alumni-org-grid article {
  display: grid;
  grid-template-columns: 8rem minmax(0, 1fr);
  align-items: center;
  gap: var(--space-5);
  padding: var(--space-4);
  border-top: 3px solid var(--color-primary);
  background: var(--color-gray-50);
}

.alumni-org-grid img {
  width: 8rem;
  height: 9.5rem;
  object-fit: cover;
}

.alumni-org-grid h3 {
  margin: var(--space-3) 0 var(--space-2);
  font-size: var(--step-1);
}

.alumni-org-grid p {
  margin: 0;
  color: var(--color-gray-600);
  font-size: 0.9425rem;
}

.alumni-activity-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-7);
}

.alumni-activity-card {
  display: grid;
  grid-template-columns: minmax(12rem, 0.9fr) minmax(0, 1.1fr);
  gap: var(--space-5);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-gray-400);
}

.alumni-activity-card img {
  width: 100%;
  height: 100%;
  min-height: 20rem;
  object-fit: cover;
}

.alumni-activity-card time {
  color: var(--color-gray-600);
  font-size: 0.8425rem;
}

.alumni-activity-card h3 {
  margin-block: var(--space-3);
  font-size: var(--step-2);
}

.alumni-activity-card p {
  color: var(--color-gray-600);
  font-size: 0.9825rem;
}

.form-layout {
  grid-template-columns: minmax(18rem, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(3rem, 7vw, 6.5rem);
}

.contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

.contact-form .form-field:has(textarea),
.contact-form .form-field:nth-child(5),
.contact-form > .button,
.form-success {
  grid-column: 1 / -1;
}

.contact-form [aria-invalid="true"] {
  border-color: var(--color-error);
}

.form-success {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4);
  border-top: 3px solid var(--color-success);
  background: color-mix(in srgb, var(--color-success) 8%, var(--color-white));
  color: var(--color-success);
}

.form-success i {
  margin-top: 0.2rem;
  font-size: 1.3rem;
}

.form-success p {
  margin: 0;
}

.contact-form > .button {
  justify-self: start;
}

.not-found {
  display: grid;
  min-height: 60vh;
  place-items: center;
  padding-block: var(--space-10);
  background: var(--color-gray-50);
}

.not-found .container {
  max-width: 48rem;
  text-align: center;
}

.not-found h1 {
  margin-bottom: var(--space-4);
  font-size: var(--step-4);
}

.not-found p:not(.component-label) {
  color: var(--color-gray-600);
  font-size: var(--step-1);
}

.not-found .button {
  margin-top: var(--space-4);
}

/* Source: assets/css/responsive.css */
@media (max-width: 75rem) {
  .desktop-nav ul {
    gap: 0.85rem;
  }

  .desktop-nav a {
    font-size: 0.86rem;
  }

  .brand__copy > span {
    display: none;
  }

  .news-card:nth-child(1) {
    grid-column: span 6;
  }

  .news-card:nth-child(2),
  .news-card:nth-child(3) {
    grid-column: span 3;
  }
}

@media (max-width: 64rem) {
  .container {
    width: min(100% - 2.5rem, var(--container));
  }

  .utility-bar__links a:nth-child(2) {
    display: none;
  }

  .desktop-nav {
    display: none;
  }

  .menu-button {
    display: inline-grid;
  }

  .catalog-tools-row {
    align-items: stretch;
    flex-direction: column;
  }

  .catalog-tools-row > .catalog-language-note,
  .catalog-tools-row > .filter-bar,
  .catalog-tools-row > .catalog-toolbar {
    width: 100%;
    flex: 0 1 auto;
  }

  .quick-access__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .quick-link:nth-child(2) {
    border-right: 1px solid rgb(255 255 255 / 0.28);
  }

  .quick-link:nth-child(3) {
    border-left: 1px solid rgb(255 255 255 / 0.28);
    border-top: 1px solid rgb(255 255 255 / 0.28);
  }

  .quick-link:nth-child(4) {
    border-top: 1px solid rgb(255 255 255 / 0.28);
  }

  .about-layout,
  .research-layout,
  .events-layout,
  .facilities-layout {
    grid-template-columns: 1fr;
    gap: var(--space-7);
  }

  .about-layout {
    grid-template-columns: minmax(0, 0.85fr) minmax(20rem, 1.15fr);
  }

  .research-layout__intro {
    position: static;
  }

  .research-row {
    grid-template-columns: 2.5rem minmax(10rem, 0.8fr) minmax(14rem, 1.2fr) auto;
  }

  .news-card:nth-child(1),
  .news-card:nth-child(2),
  .news-card:nth-child(3) {
    grid-column: span 4;
  }

  .research-highlight__inner {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .research-highlight .button {
    grid-column: 2;
    justify-self: start;
  }

  .site-footer__grid {
    grid-template-columns: 1.2fr 0.8fr 1fr;
  }

  .site-footer__grid > div:last-child {
    grid-column: 1 / -1;
    padding-top: var(--space-5);
    border-top: 1px solid rgb(255 255 255 / 0.16);
  }

	.people-grid,
	.facility-grid,
	.newsroom-secondary,
	.newsroom-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .research-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .research-card-grid .research-card {
    grid-column: auto;
  }

  .research-card-grid .research-card:first-child {
    height: auto;
    grid-column: 1 / -1;
  }

  .people-grid--leaders {
    max-width: none;
  }

  .organization-chart__tier--support {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .organization-chart__tier--support::before,
  .organization-chart__tier--support .organization-chart__node::before {
    display: none;
  }

  .welcome-layout,
  .vision-layout,
  .map-layout,
  .about-calendar-layout,
  .program-split,
  .accreditation-layout,
  .detail-intro-layout,
  .profile-detail-layout,
  .event-detail-layout,
  .form-layout,
  .newsroom-lead,
  .editorial-card--feature {
    gap: var(--space-7);
  }

  .editorial-card--feature,
  .editorial-card--wide {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .editorial-card--side {
    display: flex;
    grid-column: span 6;
  }

  .event-catalog,
  .event-catalog[data-event-view="calendar"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .event-catalog--related {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

	.alumni-activity-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 48rem) {
  .container {
    width: calc(100% - 2rem);
  }

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

  .utility-bar__links a:not(:first-child) {
    display: none;
  }

  .utility-bar__links a:first-child {
    overflow: hidden;
    max-width: 15rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .site-header__inner {
    min-height: 4.5rem;
  }

  .brand img {
    width: 3rem;
    height: 3rem;
  }

  .brand__copy strong {
    max-width: 11rem;
    font-size: 0.98rem;
  }

  .hero {
    min-height: min(43rem, calc(100dvh - 7rem));
    align-items: center;
  }

  .hero__image {
    object-position: 62% center;
  }

  .hero__scrim {
    background: linear-gradient(0deg, rgb(3 24 44 / 0.94) 0%, rgb(3 24 44 / 0.62) 54%, rgb(3 24 44 / 0.08) 82%);
  }

  .hero__content {
    padding-block: 3rem;
  }

  .hero h1 {
    font-size: clamp(2.7rem, 13vw, 4.1rem);
  }

  .hero p {
    font-size: 1.1rem;
  }

  .hero__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .hero__actions .button {
    width: 100%;
  }

  .quick-access__grid {
    grid-template-columns: 1fr;
  }

  .quick-link,
  .quick-link:first-child,
  .quick-link:nth-child(2),
  .quick-link:nth-child(3),
  .quick-link:nth-child(4) {
    min-height: 7.5rem;
    border: 0;
    border-top: 1px solid rgb(255 255 255 / 0.28);
  }

  .quick-link:last-child {
    border-bottom: 1px solid rgb(255 255 255 / 0.28);
  }

  .about-layout,
  .research-layout,
  .events-layout,
  .facilities-layout {
    grid-template-columns: 1fr;
    gap: var(--space-7);
  }

  .section-heading-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .research-row {
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    gap: var(--space-3);
    padding-block: var(--space-5);
  }

  .research-row p {
    grid-column: 2 / -1;
  }

  .research-row > a {
    grid-column: 3;
    grid-row: 1;
  }

  .news-grid {
    grid-template-columns: 1fr;
    gap: var(--space-7);
  }

  .news-card:nth-child(1),
  .news-card:nth-child(2),
  .news-card:nth-child(3) {
    grid-column: auto;
  }

  .event-row {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: var(--space-4);
  }

  .event-row__action {
    display: none;
  }

  .map-figure {
    padding: var(--space-3);
  }

  .research-highlight__inner {
    grid-template-columns: 1fr;
  }

  .research-highlight__mark {
    width: 4.5rem;
    height: 4.5rem;
  }

  .research-highlight .button {
    grid-column: 1;
    width: 100%;
  }

  .external-links__grid {
    grid-template-columns: 1fr;
  }

  .external-links__grid a:nth-child(odd) {
    border-right: 0;
  }

  .site-footer__grid {
    grid-template-columns: 1fr 1fr;
  }

  .site-footer__brand,
  .site-footer__grid > div:last-child {
    grid-column: 1 / -1;
  }

  .site-footer__bottom {
    align-items: flex-start;
    flex-direction: column;
  }

  .seasonal-popup[open] {
    grid-template-columns: 1fr;
  }

  .seasonal-popup__visual {
    min-height: 12rem;
  }

  .seasonal-popup__visual img {
    width: 5.5rem;
  }

  .seasonal-popup__visual span {
    font-size: 2.5rem;
  }

  .seasonal-popup__content {
    min-height: auto;
    padding: 2rem;
  }

  .seasonal-popup__close {
    border-color: rgb(255 255 255 / 0.35);
    background: rgb(0 0 0 / 0.18);
    color: var(--color-white);
  }

  .page-hero {
    min-height: 32rem;
  }

  .page-hero__scrim,
  .page-hero--news .page-hero__scrim,
  .page-hero--events .page-hero__scrim,
  .page-hero--article .page-hero__scrim,
  .page-hero--alumni .page-hero__scrim {
    background: linear-gradient(0deg, rgb(3 24 44 / 0.96), rgb(3 24 44 / 0.64) 60%, rgb(3 24 44 / 0.18));
  }

  .page-hero__content {
    padding-block: var(--space-8);
  }

  .page-hero h1 {
    font-size: clamp(2rem, 8vw, 2.75rem);
  }

  .story-header h1,
  .profile-hero__copy h1,
  .event-detail-hero h1,
  .not-found h1 {
    font-size: clamp(2.25rem, 11vw, 3.35rem);
  }

  .breadcrumb ol {
    min-height: 3rem;
  }

  .local-nav {
    top: 4.5rem;
    overflow: hidden;
  }

  .local-nav .container {
    width: 100%;
    max-width: 100%;
    padding-inline: 1rem;
    gap: var(--space-4);
  }

  .people-grid,
  .people-grid--leaders,
  .facility-grid,
  .research-card-grid,
  .newsroom-grid,
  .pathway-grid,
  .official-grid,
  .event-catalog,
  .event-catalog[data-event-view="calendar"],
  .event-catalog--related,
  .alumni-org-grid,
  .alumni-activity-grid {
    grid-template-columns: 1fr;
  }

  .research-card-grid .research-card,
  .research-card-grid .research-card:first-child {
    display: flex;
    grid-column: auto;
  }

  .people-grid--leaders .person-card {
    display: flex;
  }

  .organization-chart__tier--leadership,
  .organization-chart__tier--support {
    grid-template-columns: 1fr;
  }

  .organization-chart__tier::before,
  .organization-chart__tier .organization-chart__node::before {
    display: none;
  }

  .organization-chart__connector {
    height: var(--space-4);
  }

  .organization-chart__node {
    min-height: 6rem;
  }

  .welcome-layout,
  .vision-layout,
  .map-layout,
  .about-calendar-layout,
  .program-split,
  .accreditation-layout,
  .detail-intro-layout,
  .profile-detail-layout,
  .event-detail-layout,
  .form-layout,
  .newsroom-lead,
  .editorial-card--feature,
  .profile-hero__grid,
  .story-body-layout {
    grid-template-columns: 1fr;
    gap: var(--space-7);
  }

  .welcome-layout__portrait,
  .profile-hero__photo {
    max-width: 18rem;
  }

  .timeline::before {
    left: 4.25rem;
  }

  .timeline li {
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: var(--space-5);
  }

  .timeline li::before {
    left: 3.95rem;
  }

  .contact-grid {
    grid-template-columns: 1fr;
  }

  .contact-card {
    min-height: auto;
    padding: var(--space-6);
  }

  .compact-event > a {
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-4);
  }

  .compact-event > a > i {
    display: none;
  }

  .date-block {
    width: 4rem;
    min-height: 4.5rem;
  }

  .course-catalog {
    overflow: hidden;
  }

  .course-catalog__top {
    align-items: flex-start;
    flex-direction: column;
  }

  .course-row {
    grid-template-columns: 4.75rem minmax(0, 1fr);
    gap: var(--space-2) var(--space-3);
    padding-block: var(--space-4);
  }

  .course-row > :nth-child(3),
  .course-row > :nth-child(4) {
    grid-column: 2;
  }

  .related-link-list {
    grid-template-columns: 1fr;
  }

  .profile-hero {
    padding-block: var(--space-7);
  }

  .profile-hero__photo img {
    max-height: 25rem;
  }

  .editorial-card,
  .editorial-card--feature,
  .editorial-card--side,
  .editorial-card--wide,
  .editorial-grid--related .editorial-card {
    display: block;
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .editorial-card--side .editorial-card__image img,
  .editorial-card--wide .editorial-card__image img {
    height: auto;
    aspect-ratio: 16 / 10;
  }

  .story-header {
    padding-block: var(--space-9) var(--space-7);
  }

  .story-featured {
    margin-top: var(--space-6);
  }

  .story-body-layout {
    padding-block: var(--space-7) var(--space-9);
  }

  .story-body-layout > aside {
    padding-bottom: var(--space-5);
    border-bottom: 1px solid var(--color-gray-200);
  }

  .catalog-tools-row,
  .catalog-toolbar,
  .filter-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .catalog-tools-row {
    gap: var(--space-4);
  }

  .catalog-tools-row > .catalog-language-note,
  .catalog-tools-row > .filter-bar,
  .catalog-tools-row > .catalog-toolbar {
    width: 100%;
    flex: 0 1 auto;
  }

  .filter-bar,
  .filter-bar--compact {
    max-width: none;
  }

  .select-field {
    min-width: 0;
  }

  .view-switch {
    width: 100%;
    margin-bottom: 0;
  }

  .view-switch button {
    flex: 1;
    justify-content: center;
  }

  .event-card,
  .event-catalog[data-event-view="calendar"] .event-card {
    display: block;
  }

  .newsroom-secondary {
    grid-template-columns: 1fr;
  }

  .newsroom-card--secondary {
    display: block;
  }

  .newsroom-card--secondary .newsroom-card__image img {
    height: auto;
    aspect-ratio: 16 / 10;
  }

  .event-card__image img {
    min-height: 0;
    aspect-ratio: 3 / 2;
  }

  .event-card__content {
    grid-template-columns: auto minmax(0, 1fr);
    padding: var(--space-4);
  }

  .event-detail-hero {
    min-height: 36rem;
  }

  .event-detail-hero__content {
    grid-template-columns: 1fr;
    gap: var(--space-4);
    padding-block: var(--space-7);
  }

  .event-facts {
    padding: var(--space-5);
  }

  .alumni-org-grid article,
  .alumni-activity-card {
    grid-template-columns: 1fr;
  }

  .alumni-org-grid img {
    width: 100%;
    height: auto;
    max-height: 22rem;
  }

  .alumni-activity-card img {
    min-height: 0;
    aspect-ratio: 3 / 2;
  }

  .contact-form {
    grid-template-columns: 1fr;
  }

  .contact-form .form-field,
  .contact-form .form-field:has(textarea),
  .contact-form .form-field:nth-child(5),
  .contact-form > .button,
  .form-success {
    grid-column: 1;
  }

  .contact-form > .button,
  .contact-card .button {
    width: 100%;
  }
}

@media (max-width: 24rem) {
  .brand__copy strong {
    max-width: 9rem;
    font-size: 0.84rem;
  }

  .utility-bar__links a:first-child {
    max-width: 12rem;
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
  }

  .site-footer__grid > div {
    grid-column: 1;
  }
}

/* Source: style.css */
/*
Theme Name: ITB Civil
Theme URI: https://ftsl.itb.ac.id/
Description: Custom theme for the ITB Civil Engineering study program website. Pixel-faithful port of the approved frontend slicing (IBM Plex Sans, ITB blue #005aab). Requires the "ITB Civil Core" companion plugin.
Author: By Sasana Digital
Version: 2.2.0
Requires at least: 6.4
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: itb-civil
*/

/* --- WordPress compatibility layer (does not alter approved design) --- */

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Pagination uses the existing text-link language for visual parity. */
.itb-pagination,
.pagination,
.nav-links {
	display: flex;
	gap: var(--space-3);
	align-items: center;
	justify-content: center;
	margin-top: var(--space-6);
}

.pagination .page-numbers,
.nav-links .page-numbers {
	color: var(--color-gray-750);
	text-decoration: none;
	font-weight: 560;
	padding: 0.25rem 0.5rem;
	border-radius: var(--radius-sm);
}

.pagination .page-numbers.current,
.nav-links .page-numbers.current {
	background: var(--color-primary);
	color: var(--color-white);
}

.pagination .page-numbers:hover,
.nav-links .page-numbers:hover {
	background: var(--color-gray-100);
}

.form-error {
	display: flex;
	gap: var(--space-2);
	align-items: center;
	margin-bottom: var(--space-4);
	padding: var(--space-3) var(--space-4);
	border: 1px solid color-mix(in srgb, var(--color-error) 35%, transparent);
	background: color-mix(in srgb, var(--color-error) 8%, transparent);
	border-radius: var(--radius-md);
	color: var(--color-error);
	font-size: var(--step--1);
}

/* WordPress content images keep the approved fluid behaviour. */
.story-body img,
.entry-content img {
	max-width: 100%;
	height: auto;
	border-radius: var(--radius-md);
}

/* Popup dengan gambar terpasang dari Pengaturan Situs (CMS) */
.seasonal-popup__visual.has-image {
	place-content: stretch;
}

.seasonal-popup__visual.has-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ------------------------------------------------------------------
   Role-based typography. Display text stays compact; reading text gets
   the breathing room it needs. A blanket 1.5 heading leading made the
   production hierarchy visibly looser than the approved staging build.
------------------------------------------------------------------- */
h1 {
	line-height: var(--leading-display);
}

h2 {
	line-height: var(--leading-title);
}

h3 {
	line-height: var(--leading-heading);
}

h4, h5, h6 {
	line-height: 1.4;
}

p, ul, ol, dl, dd, address, figcaption {
	line-height: var(--leading-body);
}

/* Wrapped supporting copy keeps a comfortable minimum leading. */
.research-card-grid .research-card:first-child .research-card__topics li,
.event-row__meta,
.newsroom-card__meta,
.editorial-card__byline,
.course-row small,
.profile-section li,
.welcome-layout__copy p {
	line-height: 1.6;
}

/* ==================================================================
   PREMIUM POLISH LAYER
   Synthesised from: better-typography · high-end-visual-design ·
   ui-ux-pro-max.
   Scope: additive refinement only — the approved design direction,
   layout and identity are untouched. Loaded last in the cascade.
=================================================================== */

/* ---------- Semantic design tokens ---------- */
:root {
	--itb-ring:            0 0 0 3px rgb(0 90 171 / 0.28);
	--itb-border-hairline: rgb(8 45 85 / 0.10);
	--itb-shadow-sm:       0 1px 2px rgb(8 45 85 / 0.05), 0 1px 1px rgb(8 45 85 / 0.03);
	--itb-shadow-md:       0 6px 16px -2px rgb(8 45 85 / 0.10), 0 2px 6px rgb(8 45 85 / 0.05);
	--itb-shadow-lg:       0 24px 48px -12px rgb(8 45 85 / 0.16), 0 8px 20px rgb(8 45 85 / 0.06);
	--itb-ease-out:        cubic-bezier(0.32, 0.72, 0, 1);
}

/* ---------- Typography (better-typography) ---------- */

/* Balanced heading wrapping — no orphan words on display lines */
h1, h2, h3, h4,
.section-heading h2,
.section-heading h3,
.page-hero h1,
.story-header h1,
.event-detail-hero h1 {
	text-wrap: balance;
}

.hero h1 {
	max-inline-size: 14ch;
}

.section-heading h2,
.research-highlight h2 {
	max-inline-size: 22ch;
}

/* Pretty paragraph rag — avoids lone short words on final lines */
p, .lead-copy, .story-body li, .profile-section li {
	text-wrap: pretty;
}

.lead-copy,
.section-heading p,
.hero__content > p,
.page-hero p {
	max-inline-size: 66ch;
}

/* Cap the reading measure on long-form content */
.story-body {
	max-width: 68ch;
}

/* Digits that change or align: dates, times, codes */
.date-block strong,
.date-block small,
.event-date,
.event-row__meta,
.compact-event em,
.course-row span,
.course-row p,
.editorial-card__byline,
.story-header__meta,
.profile-section li {
	font-variant-numeric: tabular-nums;
}

/* Micro-typography on display lines */
.hero h1,
.page-hero h1,
.story-header h1 {
	letter-spacing: -0.03em;
}

.section-heading h2 {
	letter-spacing: -0.01em;
}

.component-label {
	letter-spacing: 0.14em;
}

/* Underlines drawn from the font's own metrics */
.text-link:hover,
.story-body a,
p a {
	text-decoration-skip-ink: auto;
	text-underline-offset: 0.22em;
}

/* Crisper rendering for the variable face; weights are real, never synthetic */
body {
	font-synthesis: none;
	text-rendering: optimizeLegibility;
}

/* ---------- Focus system (ui-ux-pro-max · accessibility P1) ---------- */
:focus-visible {
	outline: none;
	box-shadow: var(--itb-ring);
	border-radius: var(--radius-sm);
}

.button:focus-visible,
.quick-link:focus-visible,
.icon-button:focus-visible {
	box-shadow: var(--itb-ring);
	border-radius: var(--radius-pill);
}

/* ---------- Card language (shadcn · soft elevation) ---------- */
.news-card,
.newsroom-card,
.editorial-card,
.event-card,
.person-card,
.research-card,
.facility-card,
.alumni-activity-card,
.research-row,
.official-card,
.document-card,
.contact-card,
.compact-event {
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline), var(--itb-shadow-sm);
	transition:
		transform var(--transition),
		box-shadow var(--transition);
}

.news-card:hover,
.newsroom-card:hover,
.editorial-card:hover,
.event-card:hover,
.facility-card:hover,
.alumni-activity-card:hover,
.official-card:hover,
.document-card:hover,
.contact-card:hover,
.compact-event a:hover {
	transform: translateY(-3px);
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline), var(--itb-shadow-lg);
}

.person-card:hover,
.research-card:hover {
	transform: translateY(-2px);
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline), var(--itb-shadow-md);
}

/* Person photos gain quiet depth instead of sitting flat */
.person-card__photo img,
.alumni-org-grid img {
	box-shadow: var(--itb-shadow-md);
}

/* ---------- Buttons (high-end-visual-design · press physics) ---------- */
.button {
	box-shadow: var(--itb-shadow-sm);
}

.button--primary {
	box-shadow: 0 1px 2px rgb(0 62 120 / 0.24), 0 4px 14px -4px rgb(0 90 171 / 0.45);
}

.button--primary:hover {
	box-shadow: 0 2px 4px rgb(0 62 120 / 0.28), 0 8px 22px -6px rgb(0 90 171 / 0.55);
}

.button:active {
	transform: scale(0.98);
}

.button__icon {
	transition: transform var(--transition);
}

.button:hover .button__icon {
	transform: translateX(2px);
}

/* ---------- Forms & filters (consistent focus + hairlines) ---------- */
.search-field input,
.select-field select,
.form-field input,
.form-field select,
.form-field textarea {
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline);
	transition: box-shadow var(--transition);
	background-color: var(--color-white);
}

.search-field:focus-within input,
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
	box-shadow: inset 0 0 0 1px rgb(0 90 171 / 0.55), var(--itb-ring);
	outline: none;
}

/* ---------- Dialogs (softer, deeper glass) ---------- */
.mobile-menu,
.seasonal-popup {
	box-shadow: var(--itb-shadow-lg);
}

/* ---------- Header (hairline separation, no hard gray rule) ---------- */
.site-header--compact {
	box-shadow: 0 1px 0 rgb(8 45 85 / 0.08), 0 8px 24px -16px rgb(8 45 85 / 0.12);
}

.site-footer {
	box-shadow: none;
}

/* ---------- Scroll reveal stays, but respects user preference ---------- */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.reveal {
		animation: none;
	}

	.news-card:hover,
	.newsroom-card:hover,
	.editorial-card:hover,
	.event-card:hover,
	.facility-card:hover,
	.alumni-activity-card:hover,
	.official-card:hover,
	.document-card:hover,
	.contact-card:hover,
	.person-card:hover,
	.research-card:hover {
		transform: none;
	}
}

/* ---------- Font family & rendering refinements ---------- */
:root {
	--font-body: "IBM Plex Sans Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-display: "IBM Plex Sans Condensed", "IBM Plex Sans Variable", ui-sans-serif, system-ui, sans-serif;
}

body {
	font-optical-sizing: auto;
}

h1, h2, h3, h4, h5, h6 {
	font-weight: var(--weight-semibold);
}

@media (max-width: 47.99rem) {
	input,
	select,
	textarea {
		font-size: 1rem;
	}

	.hero h1 {
		max-inline-size: 12ch;
	}

	.section-heading h2,
	.research-highlight h2 {
		max-inline-size: 18ch;
	}
}

/* ==================================================================
   UNIFIED CONTENT CARDS V4
   Every catalog now uses the same vertical media/content anatomy. Equal
   row heights come from grid stretch, not percentage-height images.
=================================================================== */

.news-grid,
.newsroom-secondary,
.newsroom-grid,
.editorial-grid,
.event-catalog,
.research-card-grid,
.people-grid,
.facility-grid,
.alumni-activity-grid {
	align-items: stretch;
}

.news-card,
.newsroom-card,
.newsroom-card--secondary,
.editorial-card,
.editorial-card--feature,
.editorial-card--side,
.editorial-card--wide,
.event-card,
.research-card,
.person-card,
.facility-card,
.alumni-activity-card {
	display: flex;
	height: 100%;
	min-height: 0;
	max-height: none;
	align-self: stretch;
	flex-direction: column;
	gap: 0;
	overflow: hidden;
	padding: 0.5rem;
	border: 0;
	border-radius: var(--itb-radius-card);
	background: color-mix(in srgb, var(--color-primary) 5%, var(--color-white));
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline), var(--itb-shadow-sm);
}

.news-card__image,
.newsroom-card__image,
.editorial-card__image,
.event-card__image,
.research-card__image,
.facility-card__image,
.alumni-activity-card > a:first-child {
	display: block;
	min-height: 0;
	overflow: hidden;
	border-radius: var(--itb-radius-card-inner);
	background: var(--color-gray-100);
}

.news-card__image img,
.news-card:first-child .news-card__image img,
.newsroom-card__image img,
.newsroom-card--secondary .newsroom-card__image img,
.editorial-card__image img,
.editorial-card--feature .editorial-card__image img,
.editorial-card--side .editorial-card__image img,
.editorial-card--wide .editorial-card__image img,
.event-card__image img,
.research-card__image img,
.research-card-grid .research-card:first-child .research-card__image img,
.facility-card__image img,
.alumni-activity-card img {
	width: 100%;
	height: auto;
	min-height: 0;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transform: none;
}

.news-card__content,
.newsroom-card__body,
.newsroom-card--secondary .newsroom-card__body,
.editorial-card__body,
.editorial-card--feature .editorial-card__body,
.editorial-card--side .editorial-card__body,
.editorial-card--wide .editorial-card__body,
.event-card__content,
.research-card__body,
.research-card-grid .research-card:first-child .research-card__body,
.facility-card__body,
.person-card__body,
.alumni-activity-card > div {
	display: flex;
	height: auto;
	min-height: 0;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	overflow: visible;
	padding: var(--itb-card-pad);
	border-radius: var(--itb-radius-card-inner);
	background: var(--color-white);
}

.news-card h3,
.newsroom-card h3,
.editorial-card h3,
.event-card h3,
.research-card h3,
.facility-card h3,
.person-card h3,
.alumni-activity-card h3 {
	display: -webkit-box;
	min-height: 2.6em;
	overflow: hidden;
	font-size: clamp(1.25rem, 1.12rem + 0.35vw, 1.55rem);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.news-card__content > p:not(.news-card__meta),
.newsroom-card__copy > p:not(.newsroom-card__meta),
.editorial-card__copy > p:not(.editorial-card__topic),
.event-card__excerpt,
.research-card__copy > p:not(.research-card__code),
.facility-card__body > p:not(.component-label),
.person-card__identity > p:not(.person-card__group),
.alumni-activity-card p {
	display: -webkit-box;
	overflow: hidden;
	line-height: 1.65;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.news-card .text-link,
.research-card .text-link,
.facility-card .text-link,
.person-card .text-link,
.alumni-activity-card .text-link,
.card-footer {
	margin-top: auto;
	padding-top: var(--space-5);
}

.news-card:nth-child(1),
.news-card:nth-child(2),
.news-card:nth-child(3),
.research-card-grid .research-card,
.research-card-grid .research-card:first-child {
	display: flex;
	height: 100%;
	min-height: 0;
	max-height: none;
	grid-column: span 4;
	grid-template-columns: none;
}

.research-card__topics,
.research-card-grid .research-card:first-child .research-card__topics {
	display: none;
}

.editorial-card--feature,
.editorial-card--side,
.editorial-card--wide {
	grid-column: span 6;
	grid-row: auto;
	grid-template-columns: none;
}

.research-card-grid .research-card,
.research-card-grid .research-card:first-child {
	display: flex;
	height: 100%;
	min-height: 0;
	max-height: none;
	grid-column: span 4;
	grid-template-columns: none;
}

.alumni-experience .filter-bar {
	margin-bottom: var(--space-7);
	padding: 0.5rem;
	border-radius: var(--itb-radius-card);
	background: color-mix(in srgb, var(--color-primary) 5%, var(--color-white));
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline), var(--itb-shadow-sm);
}

.alumni-activity-grid {
	gap: var(--space-6);
}

.alumni-activity-card time {
	margin-bottom: var(--space-3);
	font-variant-numeric: tabular-nums;
}

.contact-form[aria-busy="true"] .button,
.contact-form .button:disabled {
	cursor: wait;
	opacity: 0.72;
}

@media (max-width: 64rem) {
	.news-card:nth-child(1),
	.news-card:nth-child(2),
	.news-card:nth-child(3),
	.research-card-grid .research-card,
	.research-card-grid .research-card:first-child,
	.editorial-card--feature,
	.editorial-card--side,
	.editorial-card--wide {
		grid-column: span 6;
	}
}

@media (max-width: 47.99rem) {
	.news-card:nth-child(1),
	.news-card:nth-child(2),
	.news-card:nth-child(3),
	.research-card-grid .research-card,
	.research-card-grid .research-card:first-child,
	.editorial-card--feature,
	.editorial-card--side,
	.editorial-card--wide {
		grid-column: 1 / -1;
	}

	.news-card,
	.newsroom-card,
	.editorial-card,
	.event-card,
	.research-card,
	.person-card,
	.facility-card,
	.alumni-activity-card {
		height: auto;
	}

	.alumni-experience .filter-bar {
		margin-bottom: var(--space-6);
	}
}

/* ==================================================================
   CONTENT EXPERIENCE V2
   Soft Structuralism + asymmetrical editorial grids. This layer fixes
   empty-looking program sections, restores real card padding, and keeps
   archive/detail typography proportional to its location.
=================================================================== */

:root {
	--itb-radius-card: 1.25rem;
	--itb-radius-card-inner: 0.875rem;
	--itb-card-pad: clamp(1.35rem, 2.2vw, 2rem);
	--itb-surface-blue: color-mix(in srgb, var(--color-primary-light) 68%, var(--color-white));
}

/* Section headings are titles, not page-level display text. */
.section-heading h2 {
	font-size: clamp(1.75rem, 1.5rem + 1vw, 2.375rem);
	line-height: var(--leading-title);
}

.section-heading > p:not(.component-label) {
	max-inline-size: 62ch;
	font-size: clamp(1rem, 0.96rem + 0.12vw, 1.075rem);
	line-height: var(--leading-body);
}

.component-label {
	font-size: 0.8125rem;
	line-height: 1.4;
}

/* ---------- Program pages: complete, compact and CMS-safe ---------- */
#penerimaan {
	background:
		radial-gradient(circle at 82% 18%, rgb(0 90 171 / 0.07), transparent 23rem),
		var(--color-gray-50);
}

.program-split {
	align-items: stretch;
	gap: clamp(1.5rem, 4vw, 3rem);
}

.program-split > div:first-child,
.program-note,
.pathway-grid article,
.course-catalog,
.official-card,
.document-card,
.program-empty-card {
	border: 0;
	border-radius: var(--itb-radius-card);
	background: var(--color-white);
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline), var(--itb-shadow-sm);
}

.program-split > div:first-child {
	padding: var(--itb-card-pad);
}

.program-split .section-heading {
	margin-bottom: var(--space-5);
}

.program-note {
	position: relative;
	align-items: flex-start;
	padding: var(--itb-card-pad);
	background: linear-gradient(145deg, var(--color-primary-light), var(--color-white));
}

.program-note::before,
.pathway-grid article::before {
	position: absolute;
	inset: 0 auto 0 0;
	width: 0.25rem;
	border-radius: var(--itb-radius-card) 0 0 var(--itb-radius-card);
	background: var(--color-primary);
	content: "";
}

.program-note i {
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	flex: 0 0 auto;
	place-items: center;
	border-radius: var(--radius-pill);
	background: rgb(0 90 171 / 0.1);
}

.pathway-grid article {
	position: relative;
	min-height: 14rem;
	padding: var(--itb-card-pad);
}

.pathway-grid h2 {
	margin-top: var(--space-5);
	font-size: clamp(1.4rem, 1.25rem + 0.5vw, 1.8rem);
}

.course-catalog {
	overflow: hidden;
	padding: clamp(0.75rem, 1.5vw, 1.25rem);
}

.course-catalog__top {
	padding: var(--space-3) var(--space-3) var(--space-5);
}

.course-list {
	overflow: hidden;
	border: 0;
	border-radius: var(--itb-radius-card-inner);
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline);
}

.course-row {
	min-height: 5.5rem;
	padding: var(--space-4) var(--space-5);
	border-color: var(--itb-border-hairline);
}

.official-card {
	min-height: 17rem;
	padding: var(--itb-card-pad);
}

.official-card > i {
	display: grid;
	width: 3.25rem;
	height: 3.25rem;
	place-items: center;
	margin-bottom: var(--space-7);
	border-radius: var(--radius-pill);
	background: var(--color-primary-light);
}

.document-card {
	padding: var(--itb-card-pad);
}

.program-empty-card {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: var(--space-4);
	padding: var(--itb-card-pad);
	background: linear-gradient(145deg, var(--color-white), var(--color-gray-50));
}

.program-empty-card > i {
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	place-items: center;
	border-radius: var(--radius-pill);
	background: var(--color-primary-light);
	color: var(--color-primary-dark);
	font-size: 1.25rem;
}

.program-empty-card h3 {
	margin-bottom: var(--space-2);
	font-size: 1.2rem;
}

.program-empty-card p {
	max-width: 58ch;
	margin: 0;
	color: var(--color-gray-600);
}

/* ---------- Shared archive surface ---------- */
.section--catalog-modern {
	background:
		linear-gradient(180deg, rgb(0 90 171 / 0.025), transparent 20rem),
		var(--color-gray-50);
}

.section--catalog-modern-alt {
	background: color-mix(in srgb, var(--color-primary-light) 32%, var(--color-gray-50));
}

.catalog-shell > .section-heading {
	margin-bottom: var(--space-7);
}

.catalog-tools-row {
	margin-bottom: var(--space-7);
	padding: var(--space-3);
	border-radius: var(--itb-radius-card);
	background: rgb(255 255 255 / 0.78);
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline), var(--itb-shadow-sm);
}

.filter-bar--compact {
	max-width: 43rem;
	margin-bottom: var(--space-7);
}

.search-field input,
.select-field select {
	min-height: 3.5rem;
	border: 0;
	border-radius: 0.9rem;
}

/* ---------- Research archive + research detail ---------- */
.research-card {
	position: relative;
	min-height: 0;
	overflow: hidden;
	padding: 0.5rem;
	border: 0;
	border-radius: var(--itb-radius-card);
	background: color-mix(in srgb, var(--color-primary) 5%, var(--color-white));
}

.research-card__image {
	display: block;
	overflow: hidden;
	border-radius: var(--itb-radius-card-inner);
}

.research-card__image img {
	width: 100%;
	transition: transform 650ms var(--itb-ease-out);
}

.research-card:hover .research-card__image img {
	transform: scale(1.025);
}

.research-card__body {
	padding: var(--itb-card-pad);
	border-radius: var(--itb-radius-card-inner);
	background: var(--color-white);
}

.research-card h3 {
	min-height: 0;
	font-size: clamp(1.35rem, 1.2rem + 0.45vw, 1.7rem);
}

.research-card__copy > p:not(.research-card__code) {
	font-size: 1rem;
	line-height: var(--leading-body);
}

.research-card-grid .research-card:first-child {
	height: clamp(27rem, 34vw, 32rem);
	min-height: 27rem;
	max-height: 32rem;
}

.research-card-grid .research-card:first-child .research-card__body {
	padding: clamp(1.6rem, 3vw, 2.25rem);
}

.research-card-grid .research-card:first-child .research-card__topics li {
	border: 0;
	border-radius: var(--radius-pill);
	background: var(--color-gray-50);
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline);
}

.section--detail-summary {
	background:
		radial-gradient(circle at 88% 12%, rgb(0 90 171 / 0.08), transparent 24rem),
		var(--color-gray-50);
}

.detail-intro-layout {
	gap: clamp(1.5rem, 4vw, 3rem);
}

.detail-intro-layout > div,
.topic-panel {
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border: 0;
	border-radius: var(--itb-radius-card);
	background: var(--color-white);
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline), var(--itb-shadow-sm);
}

.detail-intro-layout .section-heading {
	margin-bottom: var(--space-5);
}

.detail-intro-layout .story-body,
.detail-intro-layout .story-body p,
.detail-intro-layout .story-body p:first-child {
	max-width: 66ch;
	font-size: 1.0625rem;
	line-height: 1.72;
}

.topic-panel {
	position: relative;
	background: linear-gradient(145deg, var(--color-white), var(--itb-surface-blue));
}

.topic-panel::before {
	position: absolute;
	inset: 0 auto 0 0;
	width: 0.25rem;
	border-radius: var(--itb-radius-card) 0 0 var(--itb-radius-card);
	background: var(--color-primary);
	content: "";
}

.topic-panel li {
	padding-block: var(--space-4);
	font-size: 0.975rem;
	line-height: 1.62;
}

.topic-panel__empty {
	margin: 0;
	color: var(--color-gray-600);
	font-size: 0.95rem;
}

/* ---------- Home news: one feature + two stacked supporting cards ---------- */
.news-card {
	display: flex;
	height: auto;
	flex-direction: column;
	overflow: hidden;
	padding: 0.5rem;
	border: 0;
	border-radius: var(--itb-radius-card);
	background: color-mix(in srgb, var(--color-primary) 5%, var(--color-white));
}

.news-card__image {
	margin: 0;
	border-radius: var(--itb-radius-card-inner);
}

.news-card:first-child .news-card__image img {
	transform: none;
}

.news-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: var(--itb-card-pad);
	border-radius: var(--itb-radius-card-inner);
	background: var(--color-white);
}

.news-card h3 {
	font-size: clamp(1.25rem, 1.1rem + 0.4vw, 1.6rem);
}

.news-card__content > p:not(.news-card__meta) {
	font-size: 0.975rem;
	line-height: var(--leading-body);
}

.news-card .text-link {
	margin-top: auto;
	padding-top: var(--space-5);
}

/* ---------- News, article and agenda catalogs ---------- */
.newsroom-lead {
	gap: 0.5rem;
	padding: 0.5rem;
	border: 0;
	border-radius: calc(var(--itb-radius-card) + 0.25rem);
	background: color-mix(in srgb, var(--color-primary) 7%, var(--color-white));
	box-shadow: var(--itb-shadow-md);
}

.newsroom-lead > a,
.newsroom-lead > div {
	border-radius: var(--itb-radius-card);
}

.newsroom-lead img {
	min-height: 27rem;
	border-radius: var(--itb-radius-card);
}

.newsroom-lead > div {
	background: var(--color-white);
}

.newsroom-lead h2 {
	font-size: clamp(1.65rem, 1.35rem + 0.9vw, 2.35rem);
}

.newsroom-card,
.editorial-card,
.event-card {
	overflow: hidden;
	padding: 0.5rem;
	border: 0;
	border-radius: var(--itb-radius-card);
	background: color-mix(in srgb, var(--color-primary) 5%, var(--color-white));
}

.newsroom-card__image,
.editorial-card__image,
.event-card__image {
	border-radius: var(--itb-radius-card-inner);
}

.newsroom-card__body,
.editorial-card__body,
.event-card__content {
	border-radius: var(--itb-radius-card-inner);
	background: var(--color-white);
}

.newsroom-card__body,
.newsroom-card--secondary .newsroom-card__body,
.editorial-card__body,
.editorial-card--feature .editorial-card__body,
.editorial-card--side .editorial-card__body,
.editorial-card--wide .editorial-card__body {
	padding: var(--itb-card-pad);
}

.newsroom-card h3,
.editorial-card h3,
.event-card h3 {
	font-size: clamp(1.2rem, 1.08rem + 0.35vw, 1.5rem);
}

.newsroom-card--secondary h3,
.editorial-card--wide h3 {
	font-size: clamp(1.35rem, 1.2rem + 0.45vw, 1.7rem);
}

.editorial-card--feature {
	border: 0;
	background: color-mix(in srgb, var(--color-warning) 7%, var(--color-white));
}

.editorial-card--feature h3 {
	font-size: clamp(1.65rem, 1.35rem + 0.85vw, 2.25rem);
}

.editorial-card__copy > p:not(.editorial-card__topic),
.newsroom-card__copy > p:not(.newsroom-card__meta),
.event-card__excerpt {
	font-size: 0.975rem;
	line-height: var(--leading-body);
}

.event-card__content {
	padding: var(--itb-card-pad);
}

.event-card__image img {
	aspect-ratio: 16 / 9;
}

.event-card__labels,
.newsroom-card__meta,
.editorial-card__byline {
	font-size: 0.8125rem;
}

/* ---------- Homepage official links: dimensional bento, not a plain table ---------- */
.external-links--modern {
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(135deg, rgb(0 90 171 / 0.09), transparent 42%),
		linear-gradient(315deg, rgb(139 93 0 / 0.05), transparent 34%),
		var(--color-gray-50);
}

.external-links--modern::before {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgb(8 45 85 / 0.035) 1px, transparent 1px),
		linear-gradient(90deg, rgb(8 45 85 / 0.035) 1px, transparent 1px);
	background-size: 3.5rem 3.5rem;
	content: "";
	pointer-events: none;
}

.external-links--modern .container {
	position: relative;
}

.external-links__grid {
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--space-4);
	margin-top: var(--space-7);
	border: 0;
}

.external-links__grid a,
.external-links__grid a:nth-child(odd) {
	min-height: 7.5rem;
	grid-column: span 4;
	padding: var(--space-5) var(--space-6);
	border: 0;
	border-radius: var(--itb-radius-card);
	background: rgb(255 255 255 / 0.9);
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline), var(--itb-shadow-sm);
	transition: transform 520ms var(--itb-ease-out), box-shadow 520ms var(--itb-ease-out), color 520ms var(--itb-ease-out);
}

.external-links__grid a:nth-child(1),
.external-links__grid a:nth-child(6) {
	grid-column: span 7;
}

.external-links__grid a:nth-child(2),
.external-links__grid a:nth-child(7) {
	grid-column: span 5;
}

.external-links__grid a:hover {
	transform: translateY(-0.25rem);
	background: var(--color-white);
	box-shadow: inset 0 0 0 1px rgb(0 90 171 / 0.18), var(--itb-shadow-lg);
}

.external-links__grid span {
	max-width: 28ch;
	font-family: var(--font-display);
	font-size: clamp(1.05rem, 0.98rem + 0.25vw, 1.25rem);
	font-weight: var(--weight-semibold);
	line-height: 1.35;
}

.external-links__grid i {
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	flex: 0 0 auto;
	place-items: center;
	border-radius: var(--radius-pill);
	background: var(--color-primary-light);
	color: var(--color-primary-dark);
}

@media (min-width: 64.01rem) {
	.news-card:nth-child(1) {
		grid-column: span 6;
		grid-row: auto;
	}

	.news-card:nth-child(1) .news-card__image {
		min-height: 0;
		flex: 0 0 auto;
	}

	.news-card:nth-child(1) .news-card__image img {
		height: auto;
		aspect-ratio: 16 / 10;
		object-fit: cover;
	}

	.news-card:nth-child(1) .news-card__content {
		flex: 0 0 auto;
	}

	.news-card:nth-child(2),
	.news-card:nth-child(3) {
		grid-column: span 3;
	}

	.news-card:nth-child(2) .news-card__image img,
	.news-card:nth-child(3) .news-card__image img {
		aspect-ratio: 16 / 10;
	}
}

@media (max-width: 64rem) {
	.news-card:nth-child(1) {
		grid-column: 1 / -1;
	}

	.news-card:nth-child(2),
	.news-card:nth-child(3) {
		grid-column: span 6;
	}

	.external-links__grid a,
	.external-links__grid a:nth-child(odd),
	.external-links__grid a:nth-child(1),
	.external-links__grid a:nth-child(2),
	.external-links__grid a:nth-child(6),
	.external-links__grid a:nth-child(7) {
		grid-column: span 6;
	}
}

@media (max-width: 47.99rem) {
	.program-split > div:first-child,
	.program-note,
	.pathway-grid article,
	.official-card,
	.document-card,
	.detail-intro-layout > div,
	.topic-panel {
		padding: 1.35rem;
	}

	.course-row {
		grid-template-columns: 1fr auto;
		gap: var(--space-2) var(--space-4);
		padding: var(--space-4);
	}

	.course-row > span,
	.course-row h3 {
		grid-column: 1;
	}

	.course-row p,
	.course-row small {
		grid-column: 2;
	}

	.research-card,
	.research-card-grid .research-card:first-child {
		min-height: 0;
	}

	.research-card-grid .research-card:first-child {
		display: flex;
	}

	.news-card:nth-child(1),
	.news-card:nth-child(2),
	.news-card:nth-child(3),
	.external-links__grid a,
	.external-links__grid a:nth-child(odd),
	.external-links__grid a:nth-child(1),
	.external-links__grid a:nth-child(2),
	.external-links__grid a:nth-child(6),
	.external-links__grid a:nth-child(7) {
		grid-column: 1 / -1;
	}

	.newsroom-lead,
	.newsroom-card--secondary,
	.editorial-card--side,
	.editorial-card--wide {
		display: flex;
		flex-direction: column;
	}

	.newsroom-lead img {
		min-height: 0;
		aspect-ratio: 4 / 3;
	}

	.event-card__content {
		grid-template-columns: 1fr;
	}

	.external-links__grid {
		grid-template-columns: 1fr;
	}

	.external-links__grid a {
		min-height: 6rem;
		padding: var(--space-4) var(--space-5);
	}

	.external-links__grid a:nth-child(n) {
		min-height: 6rem;
	}
}

/* ==================================================================
   PROPORTION & RHYTHM V3
   Adds true inner spacing to row-based surfaces, removes cyclic card
   heights, and gives every reading role enough vertical breathing room.
=================================================================== */

/* ---------- Global reading rhythm ---------- */
body {
	line-height: var(--leading-body);
}

.lead-copy,
.story-body p,
.story-body li,
.entry-content p,
.entry-content li,
.profile-section p,
.profile-section li,
.welcome-layout__copy > p,
.contact-card address {
	line-height: 1.72;
}

.news-card h3,
.newsroom-card h3,
.editorial-card h3,
.event-card h3,
.person-card h3,
.research-card h3,
.facility-card h3,
.alumni-activity-card h3,
.research-row h3,
.event-row h3,
.compact-event strong,
.document-card h3,
.official-card h3 {
	line-height: 1.3;
}

.research-row p,
.event-row__meta,
.compact-event em,
.news-card__meta,
.newsroom-card__meta,
.editorial-card__byline,
.event-card__labels,
.person-card__identity > p,
.facility-card__body > p,
.alumni-activity-card p {
	line-height: 1.6;
}

.button,
.text-link,
.quick-link,
.badge,
.filter-chip {
	line-height: 1.35;
}

/* ---------- Inset list surfaces: rows no longer touch the edge ---------- */
.research-list,
.compact-event-list,
.events-list {
	display: grid;
	gap: 2px;
	padding: 0.5rem;
	border: 0;
	border-radius: var(--itb-radius-card);
	background: color-mix(in srgb, var(--color-primary) 5%, var(--color-white));
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline), var(--itb-shadow-sm);
}

.research-row,
.event-row,
.compact-event {
	border: 0;
	box-shadow: none;
}

.research-row,
.event-row,
.compact-event > a {
	padding: clamp(1.15rem, 2vw, 1.65rem) clamp(1.2rem, 2.4vw, 2rem);
	border: 0;
	border-radius: var(--itb-radius-card-inner);
	background: var(--color-white);
}

.research-row,
.event-row {
	min-height: 7rem;
}

.research-row:hover,
.event-row:hover,
.compact-event > a:hover {
	background: color-mix(in srgb, var(--color-primary-light) 34%, var(--color-white));
}

.compact-event strong {
	margin-block: 0.35rem;
}

/* ---------- Content cards: intrinsic, capped, and proportionate ---------- */
.research-card-grid,
.news-grid,
.newsroom-grid,
.newsroom-secondary,
.editorial-grid,
.event-catalog,
.people-grid,
.facility-grid,
.alumni-activity-grid {
	align-items: start;
}

.research-card,
.news-card,
.newsroom-card,
.editorial-card,
.event-card,
.person-card,
.facility-card,
.alumni-activity-card {
	height: auto;
	min-height: 0;
	align-self: start;
}

.research-card-grid .research-card:first-child {
	height: clamp(27rem, 34vw, 32rem);
	min-height: 27rem;
	max-height: 32rem;
	grid-template-columns: minmax(0, 1.08fr) minmax(18rem, 0.92fr);
}

.research-card-grid .research-card:first-child .research-card__image {
	min-height: 0;
}

.research-card-grid .research-card:first-child .research-card__image img {
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	object-fit: cover;
}

.research-card-grid .research-card:first-child .research-card__body {
	height: 100%;
	min-height: 0;
	overflow: auto;
}

.research-card-grid .research-card:not(:first-child) .research-card__image img,
.newsroom-card--grid .newsroom-card__image img,
.editorial-card--feature .editorial-card__image img,
.event-card__image img {
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.newsroom-card--secondary .newsroom-card__image img,
.editorial-card--side .editorial-card__image img,
.editorial-card--wide .editorial-card__image img {
	height: 100%;
	aspect-ratio: auto;
	object-fit: cover;
}

.editorial-card--feature {
	grid-row: auto;
}

.person-card__body,
.facility-card__body,
.news-card__content,
.newsroom-card__body,
.editorial-card__body,
.event-card__content {
	padding: var(--itb-card-pad);
}

.person-card__photo img {
	height: auto;
	aspect-ratio: 4 / 5;
}

.alumni-activity-card img {
	min-height: 0;
	aspect-ratio: 4 / 3;
}

@media (max-width: 64rem) {
	.research-row,
	.event-row,
	.compact-event > a {
		padding: 1.25rem;
	}
}

@media (max-width: 47.99rem) {
	.research-list,
	.compact-event-list,
	.events-list {
		padding: 0.35rem;
		border-radius: 1rem;
	}

	.research-row,
	.event-row,
	.compact-event > a {
		padding: 1rem;
	}

	.research-card-grid .research-card:first-child {
		height: auto;
		min-height: 0;
		max-height: none;
	}

	.research-card-grid .research-card:first-child .research-card__image img {
		height: auto;
		aspect-ratio: 16 / 10;
	}

	.research-card-grid .research-card:first-child .research-card__body {
		height: auto;
		overflow: visible;
	}

	.person-card__body,
	.facility-card__body,
	.news-card__content,
	.newsroom-card__body,
	.editorial-card__body,
	.event-card__content {
		padding: 1.25rem;
	}
}

/* V4 final cascade: V2/V3 remain as historical layers, while these rules
   are the single source of truth for catalog proportions. */
.news-grid,
.newsroom-secondary,
.newsroom-grid,
.editorial-grid,
.event-catalog,
.research-card-grid,
.people-grid,
.facility-grid,
.alumni-activity-grid {
	align-items: stretch;
}

.news-card,
.newsroom-card,
.newsroom-card--secondary,
.editorial-card,
.editorial-card--feature,
.editorial-card--side,
.editorial-card--wide,
.event-card,
.research-card,
.person-card,
.facility-card,
.alumni-activity-card {
	display: flex;
	height: 100%;
	min-height: 0;
	max-height: none;
	align-self: stretch;
	flex-direction: column;
	grid-template-columns: none;
}

.news-card__image img,
.news-card:first-child .news-card__image img,
.newsroom-card__image img,
.newsroom-card--secondary .newsroom-card__image img,
.editorial-card__image img,
.editorial-card--feature .editorial-card__image img,
.editorial-card--side .editorial-card__image img,
.editorial-card--wide .editorial-card__image img,
.event-card__image img,
.research-card__image img,
.research-card-grid .research-card:first-child .research-card__image img,
.facility-card__image img,
.alumni-activity-card img {
	width: 100%;
	height: auto;
	min-height: 0;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.news-card__content,
.newsroom-card__body,
.newsroom-card--secondary .newsroom-card__body,
.editorial-card__body,
.editorial-card--feature .editorial-card__body,
.editorial-card--side .editorial-card__body,
.editorial-card--wide .editorial-card__body,
.event-card__content,
.research-card__body,
.research-card-grid .research-card:first-child .research-card__body,
.facility-card__body,
.person-card__body,
.alumni-activity-card > div {
	display: flex;
	height: auto;
	min-height: 0;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	overflow: visible;
}

.news-card:nth-child(1),
.news-card:nth-child(2),
.news-card:nth-child(3),
.research-card-grid .research-card,
.research-card-grid .research-card:first-child {
	display: flex;
	height: 100%;
	min-height: 0;
	max-height: none;
	grid-column: span 4;
	grid-template-columns: none;
}

.research-card__topics,
.research-card-grid .research-card:first-child .research-card__topics {
	display: none;
}

.editorial-card--feature,
.editorial-card--side,
.editorial-card--wide {
	grid-column: span 6;
	grid-row: auto;
	grid-template-columns: none;
}

.person-card__photo img {
	height: auto;
	aspect-ratio: 4 / 5;
}

@media (max-width: 64rem) {
	.news-card:nth-child(1),
	.news-card:nth-child(2),
	.news-card:nth-child(3),
	.research-card-grid .research-card,
	.research-card-grid .research-card:first-child,
	.editorial-card--feature,
	.editorial-card--side,
	.editorial-card--wide {
		grid-column: span 6;
	}
}

@media (max-width: 47.99rem) {
	.news-card:nth-child(1),
	.news-card:nth-child(2),
	.news-card:nth-child(3),
	.research-card-grid .research-card,
	.research-card-grid .research-card:first-child,
	.editorial-card--feature,
	.editorial-card--side,
	.editorial-card--wide {
		grid-column: 1 / -1;
	}

	.news-card,
	.newsroom-card,
	.editorial-card,
	.event-card,
	.research-card,
	.person-card,
	.facility-card,
	.alumni-activity-card {
		height: auto;
	}
}

@media (min-width: 48rem) {
	.news-card,
	.newsroom-card,
	.editorial-card,
	.event-card,
	.research-card,
	.person-card,
	.facility-card,
	.alumni-activity-card {
		height: 37rem;
	}

	.news-card__image img,
	.news-card:first-child .news-card__image img,
	.newsroom-card__image img,
	.newsroom-card--secondary .newsroom-card__image img,
	.editorial-card__image img,
	.editorial-card--feature .editorial-card__image img,
	.editorial-card--side .editorial-card__image img,
	.editorial-card--wide .editorial-card__image img,
	.event-card__image img,
	.research-card__image img,
	.research-card-grid .research-card:first-child .research-card__image img,
	.facility-card__image img,
	.alumni-activity-card img {
		height: clamp(13rem, 18vw, 16rem);
		aspect-ratio: auto;
	}
}

@media (max-width: 47.99rem) {
	.news-card,
	.newsroom-card,
	.editorial-card,
	.event-card,
	.research-card,
	.person-card,
	.facility-card,
	.alumni-activity-card {
		height: 34rem;
	}
}

/* V5 production QA: featured news and research cards share the catalog rhythm. */
.newsroom-lead {
	height: 100%;
	min-height: 0;
	max-height: none;
}

.newsroom-lead > a {
	min-height: 0;
	overflow: hidden;
}

.newsroom-lead img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	object-fit: cover;
}

.newsroom-lead > div {
	min-height: 0;
	flex: 1;
	overflow: hidden;
}

.newsroom-lead h2 {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-height: 1.18;
	text-wrap: balance;
}

.newsroom-lead > div > p:not(.newsroom-card__meta) {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-height: 1.6;
	text-wrap: pretty;
}

@media (min-width: 48rem) {
	.newsroom-lead,
	.research-card-grid .research-card,
	.research-card-grid .research-card:first-child {
		height: 37rem;
	}
}

@media (max-width: 47.99rem) {
	.newsroom-lead,
	.research-card-grid .research-card,
	.research-card-grid .research-card:first-child {
		height: 34rem;
	}

	.newsroom-lead > a {
		flex: 0 0 13rem;
	}

	.newsroom-lead img {
		height: 13rem;
		aspect-ratio: auto;
	}
}

/* ==================================================================
   RESILIENT CARD SYSTEM V6
   Thin concentric shells, consistent internal spacing, rounded media,
   and content-driven equal tracks prevent future CMS copy from clipping.
=================================================================== */
:root {
	--itb-card-shell: 0.375rem;
	--itb-card-grid-gap: clamp(1rem, 2vw, 1.5rem);
	--itb-card-min-height: 34rem;
}

.news-grid,
.newsroom-secondary,
.newsroom-grid,
.editorial-grid,
.event-catalog,
.research-card-grid,
.people-grid,
.facility-grid,
.alumni-activity-grid {
	grid-auto-rows: 1fr;
	align-items: stretch;
	gap: var(--itb-card-grid-gap);
}

.news-card,
.newsroom-card,
.editorial-card,
.event-card,
.research-card,
.person-card,
.facility-card,
.alumni-activity-card,
.newsroom-lead,
.research-card-grid .research-card,
.research-card-grid .research-card:first-child {
	height: 100%;
	min-height: var(--itb-card-min-height);
	max-height: none;
	align-self: stretch;
	overflow: visible;
	padding: var(--itb-card-shell);
}

.news-card__image,
.newsroom-card__image,
.editorial-card__image,
.event-card__image,
.research-card__image,
.facility-card__image,
.alumni-activity-card > a:first-child {
	display: block;
	width: 100%;
	height: auto;
	min-height: 0;
	flex: 0 0 auto;
	overflow: hidden;
	border-radius: var(--itb-radius-card-inner);
	aspect-ratio: 16 / 10;
}

.news-card__image img,
.news-card:first-child .news-card__image img,
.newsroom-card__image img,
.editorial-card__image img,
.event-card__image img,
.research-card__image img,
.research-card-grid .research-card:first-child .research-card__image img,
.facility-card__image img,
.alumni-activity-card img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	border-radius: inherit;
	aspect-ratio: auto;
	object-fit: cover;
	transform: scale(1.015);
	transition: transform 700ms var(--itb-ease-out);
}

.news-card:first-child .news-card__image img {
	transform: scale(1.08);
}

.news-card:hover .news-card__image img,
.newsroom-card:hover .newsroom-card__image img,
.editorial-card:hover .editorial-card__image img,
.event-card:hover .event-card__image img,
.research-card:hover .research-card__image img,
.facility-card:hover .facility-card__image img,
.alumni-activity-card:hover img {
	transform: scale(1.045);
}

.news-card:first-child:hover .news-card__image img {
	transform: scale(1.1);
}

.news-card__content,
.newsroom-card__body,
.editorial-card__body,
.event-card__content,
.research-card__body,
.facility-card__body,
.person-card__body,
.alumni-activity-card > div,
.newsroom-lead > div {
	min-width: 0;
	min-height: 0;
	flex: 1;
	overflow: visible;
	padding: var(--itb-card-pad);
	border-radius: var(--itb-radius-card-inner);
}

.event-card__copy {
	width: 100%;
	min-width: 0;
	min-height: 0;
	flex: 1;
}

.news-card h3,
.newsroom-card h3,
.editorial-card h3,
.event-card h3,
.research-card h3,
.person-card h3,
.facility-card h3,
.alumni-activity-card h3,
.newsroom-lead h2 {
	display: block;
	min-height: 0;
	overflow: visible;
	-webkit-line-clamp: unset;
	line-height: 1.3;
	overflow-wrap: anywhere;
	text-wrap: balance;
}

.news-card__content > p:not(.news-card__meta),
.newsroom-card__copy > p:not(.newsroom-card__meta),
.editorial-card__copy > p:not(.editorial-card__topic),
.event-card__excerpt,
.research-card__copy > p:not(.research-card__code),
.facility-card__body > p:not(.component-label),
.person-card__identity > p:not(.person-card__group),
.alumni-activity-card p,
.newsroom-lead > div > p:not(.newsroom-card__meta) {
	display: block;
	overflow: visible;
	-webkit-line-clamp: unset;
	line-height: 1.65;
	overflow-wrap: anywhere;
	text-wrap: pretty;
}

.person-card__photo,
.person-card__photo img {
	border-radius: var(--itb-radius-card-inner);
}

.person-card__photo {
	min-width: 0;
	overflow: hidden;
	aspect-ratio: 4 / 5;
}

.person-card__photo img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	object-fit: cover;
}

.people-grid--leaders .person-card__photo {
	height: 100%;
	aspect-ratio: auto;
}

.newsroom-lead > a,
.newsroom-lead > a img {
	border-radius: var(--itb-radius-card-inner);
}

.newsroom-lead > a {
	overflow: hidden;
}

.newsroom-lead > a img {
	transform: scale(1.015);
}

/* Inset row groups use the same visible gap instead of touching borders. */
.research-list,
.compact-event-list,
.events-list,
.course-list,
.related-link-list {
	display: grid;
	gap: 0.5rem;
	padding: var(--itb-card-shell);
	border: 0;
	border-radius: var(--itb-radius-card);
	background: color-mix(in srgb, var(--color-primary) 5%, var(--color-white));
	box-shadow: inset 0 0 0 1px var(--itb-border-hairline), var(--itb-shadow-sm);
}

.research-row,
.event-row,
.compact-event > a,
.course-row,
.related-link-list a {
	border: 0;
	border-radius: var(--itb-radius-card-inner);
	background: var(--color-white);
	box-shadow: none;
}

/* Detail typography: title, deck, and article copy retain distinct roles. */
.event-detail-layout > article > h2 {
	font-size: clamp(1.75rem, 1.55rem + 0.6vw, 2.25rem);
	line-height: 1.18;
}

.event-detail-layout .lead-copy,
.event-detail-layout .story-body p,
.event-detail-layout .story-body p:first-child {
	max-width: 62ch;
	color: var(--color-gray-600);
	font-size: clamp(1.05rem, 1rem + 0.15vw, 1.18rem);
	line-height: 1.72;
}

.story-header__excerpt,
.event-detail-hero__content > div > p:not(.component-label) {
	max-width: 62ch;
	font-size: clamp(1.05rem, 0.98rem + 0.35vw, 1.3rem);
	line-height: 1.65;
}

.story-share button,
.story-share a {
	width: 2.75rem;
	height: 2.75rem;
}

@media (min-width: 48rem) {
	:root {
		--itb-card-min-height: 37rem;
	}
}

@media (max-width: 47.99rem) {
	:root {
		--itb-card-min-height: 0;
	}

	.news-card,
	.newsroom-card,
	.editorial-card,
	.event-card,
	.research-card,
	.person-card,
	.facility-card,
	.alumni-activity-card,
	.newsroom-lead,
	.research-card-grid .research-card,
	.research-card-grid .research-card:first-child {
		height: 100%;
		min-height: 0;
	}

	.news-grid,
	.newsroom-secondary,
	.newsroom-grid,
	.editorial-grid,
	.event-catalog,
	.research-card-grid,
	.people-grid,
	.facility-grid,
	.alumni-activity-grid {
		grid-auto-rows: 1fr;
	}

	.people-grid--leaders .person-card__photo {
		height: auto;
		aspect-ratio: 4 / 5;
	}
}

/* ==================================================================
   QA REMEDIATION V7
   One content-driven catalog system for news, articles, events, research,
   facilities, people, and alumni. Grid tracks provide equal height per row;
   copy remains fully readable and can grow without clipping.
=================================================================== */
:root {
	--itb-card-shell: 0.375rem;
	--itb-card-gap: clamp(1rem, 1.5vw, 1.5rem);
	--itb-card-content-pad: clamp(1.35rem, 1.05rem + 0.8vw, 2rem);
}

.news-grid,
.newsroom-secondary,
.newsroom-grid,
.editorial-grid,
.event-catalog,
.research-card-grid,
.people-grid,
.facility-grid,
.alumni-activity-grid {
	grid-auto-rows: auto;
	align-items: stretch;
	gap: var(--itb-card-gap);
}

.news-card,
.newsroom-card,
.newsroom-card--secondary,
.editorial-card,
.editorial-card--feature,
.editorial-card--side,
.editorial-card--wide,
.event-card,
.research-card,
.person-card,
.facility-card,
.alumni-activity-card {
	display: flex;
	height: 100%;
	min-height: 0;
	max-height: none;
	flex-direction: column;
	gap: 0;
	overflow: hidden;
	padding: var(--itb-card-shell);
	border: 0;
	border-radius: var(--itb-radius-card);
	background: color-mix(in srgb, var(--color-primary) 4%, var(--color-white));
}

.editorial-card--feature,
.editorial-card--side,
.editorial-card--wide {
	grid-column: span 6;
	grid-row: auto;
	grid-template-columns: none;
}

.news-card__image,
.newsroom-card__image,
.editorial-card__image,
.event-card__image,
.research-card__image,
.facility-card__image,
.alumni-activity-card > a:first-child {
	display: block;
	width: 100%;
	height: auto;
	min-height: 0;
	flex: 0 0 auto;
	overflow: hidden;
	border-radius: var(--itb-radius-card-inner);
	background: var(--color-gray-100);
	aspect-ratio: 16 / 10;
}

.news-card__image img,
.news-card:first-child .news-card__image img,
.newsroom-card__image img,
.newsroom-card--secondary .newsroom-card__image img,
.editorial-card__image img,
.editorial-card--feature .editorial-card__image img,
.editorial-card--side .editorial-card__image img,
.editorial-card--wide .editorial-card__image img,
.event-card__image img,
.research-card__image img,
.research-card-grid .research-card:first-child .research-card__image img,
.facility-card__image img,
.alumni-activity-card img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	border-radius: inherit;
	aspect-ratio: auto;
	object-fit: cover;
	transform: none;
}

.news-card:hover .news-card__image img,
.news-card:first-child:hover .news-card__image img,
.newsroom-card:hover .newsroom-card__image img,
.editorial-card:hover .editorial-card__image img,
.event-card:hover .event-card__image img,
.research-card:hover .research-card__image img,
.facility-card:hover .facility-card__image img,
.alumni-activity-card:hover img {
	transform: scale(1.035);
}

.news-card__content,
.newsroom-card__body,
.newsroom-card--secondary .newsroom-card__body,
.editorial-card__body,
.editorial-card--feature .editorial-card__body,
.editorial-card--side .editorial-card__body,
.editorial-card--wide .editorial-card__body,
.event-card__content,
.research-card__body,
.research-card-grid .research-card:first-child .research-card__body,
.facility-card__body,
.person-card__body,
.alumni-activity-card > div {
	display: flex;
	width: 100%;
	height: auto;
	min-width: 0;
	min-height: 0;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	overflow: visible;
	padding: var(--itb-card-content-pad);
	border-radius: var(--itb-radius-card-inner);
	background: var(--color-white);
}

.event-card__content {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: var(--space-4);
}

.event-card__copy {
	display: flex;
	width: 100%;
	min-width: 0;
	min-height: 100%;
	flex-direction: column;
	align-items: flex-start;
}

.news-card h3,
.newsroom-card h3,
.editorial-card h3,
.event-card h3,
.research-card h3,
.person-card h3,
.facility-card h3,
.alumni-activity-card h3 {
	display: block;
	min-height: 0;
	overflow: visible;
	font-size: clamp(1.25rem, 1.14rem + 0.3vw, 1.5rem);
	line-height: 1.32;
	-webkit-line-clamp: unset;
	overflow-wrap: anywhere;
	text-wrap: balance;
}

.news-card__content > p:not(.news-card__meta),
.newsroom-card__copy > p:not(.newsroom-card__meta),
.editorial-card__copy > p:not(.editorial-card__topic),
.event-card__excerpt,
.research-card__copy > p:not(.research-card__code),
.facility-card__body > p:not(.component-label),
.person-card__identity > p:not(.person-card__group),
.alumni-activity-card p {
	display: block;
	overflow: visible;
	font-size: clamp(0.95rem, 0.91rem + 0.12vw, 1.025rem);
	line-height: 1.68;
	-webkit-line-clamp: unset;
	overflow-wrap: anywhere;
	text-wrap: pretty;
}

.news-card .text-link,
.newsroom-card .card-footer,
.editorial-card .card-footer,
.event-card .card-footer,
.research-card .text-link,
.facility-card .text-link,
.person-card .text-link,
.alumni-activity-card .text-link {
	margin-top: auto;
	padding-top: var(--space-5);
}

.editorial-grid--related .editorial-card {
	grid-column: span 4;
}

.newsroom-lead {
	height: auto;
	min-height: 0;
	max-height: none;
	overflow: hidden;
	padding: var(--itb-card-shell);
	border: 0;
	border-radius: var(--itb-radius-card);
	background: color-mix(in srgb, var(--color-primary) 4%, var(--color-white));
}

.newsroom-lead > a,
.newsroom-lead > a img {
	border-radius: var(--itb-radius-card-inner);
}

.newsroom-lead > a img {
	min-height: 0;
	object-fit: cover;
	transform: none;
}

.newsroom-lead > div {
	overflow: visible;
	padding: var(--itb-card-content-pad);
	border-radius: var(--itb-radius-card-inner);
	background: var(--color-white);
}

.story-header__inner {
	max-width: 84rem;
}

.story-header h1,
.event-detail-hero h1 {
	max-width: min(100%, 24ch);
}

.story-header__excerpt,
.event-detail-hero__content > div > p:not(.component-label) {
	max-width: 68ch;
	font-size: clamp(1.05rem, 0.98rem + 0.32vw, 1.25rem);
	line-height: 1.68;
}

@media (max-width: 64rem) {
	.editorial-card--feature,
	.editorial-card--side,
	.editorial-card--wide,
	.editorial-grid--related .editorial-card {
		grid-column: span 6;
	}
}

@media (max-width: 47.99rem) {
	.editorial-card--feature,
	.editorial-card--side,
	.editorial-card--wide,
	.editorial-grid--related .editorial-card {
		grid-column: 1 / -1;
	}

	.event-card__content {
		grid-template-columns: 1fr;
	}

	.newsroom-lead {
		display: flex;
		flex-direction: column;
	}

	.newsroom-lead > a {
		flex: none;
		aspect-ratio: 16 / 10;
	}

	.newsroom-lead > a img {
		height: 100%;
		aspect-ratio: auto;
	}
}

/* v1.9.6 — Card image frame fix.
 * Keep every card image inside a predictable frame without allowing
 * percentage-height rules to expand grid cards indefinitely. */
.news-card__image,
.newsroom-card__image,
.editorial-card__image,
.event-card__image,
.research-card__image,
.facility-card__image,
.person-card__photo,
.alumni-activity-card > a:first-child {
	display: block;
	width: 100%;
	position: relative;
	height: auto;
	aspect-ratio: 16 / 10;
	flex: 0 0 auto;
	overflow: hidden;
}

.news-card__image { aspect-ratio: 3 / 2; }
.editorial-card__image,
.editorial-card--feature .editorial-card__image,
.editorial-card--side .editorial-card__image,
.editorial-card--wide .editorial-card__image { aspect-ratio: 16 / 10; }
.event-card__image { aspect-ratio: 16 / 8; }
.research-card__image { aspect-ratio: 16 / 9; }
.facility-card__image { aspect-ratio: 3 / 2; }
.person-card__photo { aspect-ratio: 5 / 6; }

.newsroom-card__image img,
.news-card__image img,
.editorial-card__image img,
.event-card__image img,
.research-card__image img,
.facility-card__image img,
.person-card__photo img,
.alumni-activity-card img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	position: absolute;
	inset: 0;
	object-fit: cover;
	object-position: center;
	aspect-ratio: auto;
	transform: none;
}

.news-card__image img.card-image--source-crop,
.newsroom-card__image img.card-image--source-crop,
.editorial-card__image img.card-image--source-crop,
.event-card__image img.card-image--source-crop,
.research-card__image img.card-image--source-crop,
.facility-card__image img.card-image--source-crop,
.person-card__photo img.card-image--source-crop,
.alumni-activity-card img.card-image--source-crop {
	transform: scale(1.08);
}

.newsroom-card--secondary .newsroom-card__image {
	height: auto;
	aspect-ratio: 16 / 10;
}
.editorial-card--side .editorial-card__image,
.editorial-card--wide .editorial-card__image {
	height: auto;
	aspect-ratio: 16 / 10;
}
.research-card-grid .research-card:first-child .research-card__image {
	height: auto;
	aspect-ratio: 16 / 9;
}
.people-grid--leaders .person-card__photo {
	height: auto;
	aspect-ratio: 5 / 6;
}

.news-card:first-child .news-card__image img,
.newsroom-card--secondary .newsroom-card__image img,
.editorial-card--feature .editorial-card__image img,
.editorial-card--side .editorial-card__image img,
.editorial-card--wide .editorial-card__image img,
.research-card-grid .research-card:first-child .research-card__image img,
.research-card-grid .research-card:not(:first-child) .research-card__image img {
	height: 100%;
	min-height: 0;
	aspect-ratio: auto;
	position: absolute;
	inset: 0;
}

.alumni-activity-card > a:first-child {
	min-height: 20rem;
}

@media (max-width: 64rem) {
	.editorial-card--side .editorial-card__image,
	.people-grid--leaders .person-card__photo {
		height: auto;
		aspect-ratio: 16 / 10;
	}

	.people-grid--leaders .person-card__photo {
		aspect-ratio: 4 / 5;
	}
}

@media (max-width: 48rem) {
	.editorial-card--side .editorial-card__image,
	.editorial-card--wide .editorial-card__image,
	.newsroom-card--secondary .newsroom-card__image,
	.research-card-grid .research-card:first-child .research-card__image {
		height: auto;
		aspect-ratio: 16 / 10;
	}

	.event-card__image,
	.alumni-activity-card > a:first-child {
		min-height: 0;
		aspect-ratio: 3 / 2;
	}
}

/* Archive catalog layout: three cards per desktop row, two on tablet, one
   on mobile. The article modifier also neutralizes the editorial feature
   spans so every archive card follows the same predictable rhythm. */
.newsroom-grid--archive,
.editorial-grid--archive,
.event-catalog--archive,
.event-catalog--archive[data-event-view="calendar"],
.alumni-activity-grid--archive {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.editorial-grid--archive .editorial-card,
.editorial-grid--archive .editorial-card--feature,
.editorial-grid--archive .editorial-card--side,
.editorial-grid--archive .editorial-card--wide {
	display: flex;
	grid-column: auto;
	grid-row: auto;
	grid-template-columns: none;
}

@media (max-width: 64rem) {
	.newsroom-grid--archive,
	.editorial-grid--archive,
	.event-catalog--archive,
	.event-catalog--archive[data-event-view="calendar"],
	.alumni-activity-grid--archive {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 48rem) {
	.newsroom-grid--archive,
	.editorial-grid--archive,
	.event-catalog--archive,
	.event-catalog--archive[data-event-view="calendar"],
	.alumni-activity-grid--archive {
		grid-template-columns: 1fr;
	}
}
