/* ==========================================================================
   HOMEPAGE PRESENTATION PASS (index.html only). Loaded after the inline
   <style>, so equal-specificity rules here win the cascade. Copy, figures,
   links, ids and interaction hooks in the markup are untouched.

   Alignment system: one 1280px column (--maxw) for header, hero, section
   headings, grids and footer. The shared header block widens itself to
   --maxw-header (1440px) for sub-pages; on the homepage that put the logo
   80px left of every heading beneath it, so it is pinned to the body column
   here. The nav row still clears the 1180px drawer breakpoint (measured).
   ========================================================================== */
.site-header .wrap { max-width: var(--maxw); }
.site-header:not(.is-solid) { box-shadow: none; }
.nav-links { gap: clamp(.85rem, 4.4vw - 2.6rem, 1.75rem); }

::selection { background: var(--rose); color: var(--green-deep); }
.section { padding-block: clamp(3.5rem, 6.5vw, 5.75rem); }
.section h2 { text-wrap: balance; }
.btn { min-height: 44px; }

/* ---- Hero -----------------------------------------------------------------
   Text and photograph as two balanced columns. The photograph is a plain,
   substantial rectangle on one flat mist panel offset behind it; the loose
   doodle frame, blurred glow and organic blob are gone. A 16/10 crop of the
   885x475 source keeps every officer in frame (the outermost figures sit
   inside the crop by a comfortable margin) and drops only chairs and wall.
   The stat card sits on the chair rows at the lower-left of the photo, the
   one corner with no face, and on phones drops beneath the photo instead. */
.hero { min-height: auto; padding-block: calc(var(--header-h) + clamp(2.5rem, 5vw, 4rem)) clamp(3rem, 5vw, 4.5rem);
  --focus: var(--green-deep); }
.hero .wrap { padding-block: 0; grid-template-columns: minmax(0, 10fr) minmax(0, 11fr);
  gap: clamp(2.5rem, 6vw, 5.5rem); align-items: center; }
.hero h1 { font-size: clamp(2.6rem, 5vw, 4.25rem); max-width: 12ch; text-wrap: balance; }
.hero .hero-sub { font-size: 1.125rem; line-height: 1.7; max-width: 44ch; margin-top: 1.25rem; }
.hero-cta { margin-top: 1.75rem; }
.hero-badge { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--line);
  max-width: 22rem; color: var(--ink); font-size: .875rem; letter-spacing: .01em; }
.hero-badge svg { stroke: var(--green); }
.hero-photo { position: relative; min-width: 0; width: 100%; margin: 0; padding: 0; isolation: isolate; }
.hero-photo::before, .hero-photo::after { content: none; }
.hero-blob { aspect-ratio: 16 / 10; border-radius: var(--radius); background: var(--mist);
  box-shadow: 0 24px 40px -28px rgba(28, 42, 39, .45); }
.hero-blob img { object-fit: cover; }
.hero-stat-card { position: absolute; inset: auto auto -1.25rem -1.25rem; z-index: 2;
  display: grid; grid-template-columns: 2.75rem auto; column-gap: .875rem; row-gap: .125rem; align-items: center;
  width: max-content; min-width: 0; margin: 0; padding: .875rem 1.375rem .875rem 1rem;
  border-radius: var(--radius); background: var(--paper); border: 1px solid var(--line);
  box-shadow: 0 18px 36px -22px rgba(28, 42, 39, .4); }
.hero-stat-card .hsc-icon { grid-row: 1 / 3; margin: 0; width: 2.75rem; height: 2.75rem; background: var(--mist); }
.hero-stat-card .hsc-n { font-size: 1.75rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.hero-stat-card .hsc-l { margin: 0; font-size: .875rem; line-height: 1.4; }
.hero-stat-card .hsc-rule { display: none; }

/* ---- Impact figures ---------------------------------------------------------
   A partner scanning this page reads the figures before the prose, so the row
   gets real height, tabular numerals that stay aligned while three of the six
   count up, and micro-cap labels in the page's own label face instead of soft
   sentence-case body text. The rose underline beneath each label was a third
   mark competing with the numeral and the divider; the dividers now run the
   full cell height and carry the separation alone. */
.impact { padding-block: clamp(2rem, 3.2vw, 2.75rem) clamp(2.25rem, 3.6vw, 3rem); }
.impact .grid { gap: 1.75rem 0; }
.impact .stat { padding-inline: .75rem; }
.impact .stat:not(:first-child)::before { top: 0; bottom: 0; }
.impact .n { font-variant-numeric: tabular-nums; letter-spacing: -.01em;
  font-size: clamp(1.9rem, 3vw, 2.75rem); }
.impact .l { margin-top: .625rem; font-family: var(--label); font-weight: 600;
  text-transform: uppercase; letter-spacing: .11em; font-size: .6875rem; }
.impact .l::after { display: none; }

/* Compact single-row reel; keep the partner band in its existing position. */
.partner-band { background: var(--paper); border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line); padding-block: 1.5rem; }
.partner-label { text-align: left; font-size: .6875rem; letter-spacing: .15em;
  color: var(--green); margin: 0 0 1rem; }
.partner-band .marquee { overflow: hidden;
  --marquee-fade: clamp(20px, 5vw, 64px);
  mask-image: linear-gradient(to right, transparent, #000 var(--marquee-fade), #000 calc(100% - var(--marquee-fade)), transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 var(--marquee-fade), #000 calc(100% - var(--marquee-fade)), transparent);
  border: 0; background: none; }
.partner-band .marquee-track { display: flex; flex-wrap: nowrap; width: max-content;
  animation: fv-marquee 46s linear infinite; }
.partner-band .marquee-row { display: flex; flex-wrap: nowrap; flex: 0 0 auto;
  align-items: center; gap: 1.5rem; padding: 0 .75rem; margin: 0; }
.partner-band .marquee-row[aria-hidden="true"] { display: flex; }
.partner-band .marquee:hover .marquee-track,
.partner-band .marquee:focus-within .marquee-track { animation-play-state: paused; }
.partner-band .chip { flex: 0 0 140px; width: 140px; min-width: 0; display: grid; place-items: center;
  padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.partner-band .chip a { display: grid; place-items: center; width: 100%; min-height: 44px;
  border-radius: 6px; }
.partner-band .chip img { width: 100%; max-width: 150px; height: 42px; object-fit: contain; }
/* Optical sizing: these five carry heavy internal padding or a tiny wordmark,
   so a shared box renders them noticeably smaller than the rest. Matched by
   filename, so adding a partner needs no change here. */
.partner-band .chip img[src*="partner-vce"],
.partner-band .chip img[src*="partner-vcu"],
.partner-band .chip img[src*="partner-brightbeats"],
.partner-band .chip img[src*="partner-riserva"],
.partner-band .chip img[src*="partner-lighthope"] { height: 56px; }
.partner-band .chip:hover { transform: none; background: none; }
.partner-band .chip a { transition: opacity .2s ease; }
.partner-band .chip a:hover { opacity: .62; }

/* One corner radius on every photographic surface, so the page reads as one
   system rather than four. */
.purpose-photo, .wwd-media, .wwd-media--pair, #map, .hero-blob { border-radius: var(--radius); }

/* ---- Purpose + What we do -------------------------------------------------- */
.purpose-grid { gap: clamp(2rem, 5vw, 4.5rem); }
.purpose-photo { aspect-ratio: 4 / 3; }
.purpose-grid h2 { max-width: 20ch; }
.wwd-grid { gap: 3rem 2.5rem; }
.wwd-cell { min-width: 0; }
.wwd-cell h3 { font-size: clamp(1.5rem, 2.2vw, 2rem); margin-block: .625rem .875rem; text-wrap: balance; }
.wwd-cell .kick { display: block; margin-top: 1.125rem; font-size: .75rem; }
.wwd-cell p { max-width: 55ch; line-height: 1.75; font-size: 1.0625rem; }
.wwd-media, .wwd-media--pair { aspect-ratio: 16 / 10; }
.wwd-media--pair { gap: .375rem; }
.wwd-media--pair img { min-width: 0; border-radius: 0; }

/* Purpose and programs form distinct reading groups without extra card shells. */
#purpose { background: var(--wash); }
#purpose .purpose-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
#purpose .purpose-photo { aspect-ratio: 3 / 2; border-radius: var(--radius); }
#purpose .purpose-grid h2 { max-width: 23ch; font-size: clamp(2rem, 3.3vw, 3rem); line-height: 1.15; }
#purpose .purpose-grid .lead { font-size: 1.125rem; line-height: 1.75; }
#purpose .purpose-grid p + p { font-size: 1.0625rem; line-height: 1.75; }
#programs .programs-intro { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: 2rem; align-items: end; margin-bottom: clamp(2rem, 4vw, 3rem); }
#programs .programs-intro .lead { margin: 0; max-width: 58ch; font-size: 1.125rem; line-height: 1.75; }
#programs .wwd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#programs .wwd-cell { padding-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
#programs .wwd-cell h3 a { display: inline-block; padding-block: .25rem; color: var(--green-deep);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em;
  text-decoration-color: var(--line-strong); transition: color 180ms ease, text-decoration-color 180ms ease; }
#programs .wwd-cell h3 a:hover { color: var(--green); text-decoration-color: currentColor; }
#programs .wwd-cell h3 a:focus-visible { outline: 2px solid var(--green-deep); outline-offset: 4px; border-radius: 2px; }
/* The images are evidence, not controls: avoid zooming when hovering plain text. */
#programs .wwd-cell:hover .wwd-media img { transform: none; }
@media (max-width: 860px) {
  #purpose .purpose-grid { grid-template-columns: minmax(0, 1fr); }
  #purpose .purpose-photo { max-width: 680px; width: 100%; }
  #purpose .purpose-grid h2 { max-width: 28ch; }
  #programs .programs-intro { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
}
@media (max-width: 860px) {
  #programs .wwd-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  #programs .wwd-cell h3 a { min-height: 44px; }
  #programs .wwd-cell .kick { margin-top: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  #programs .wwd-cell h3 a { transition: none; }
}

/* ---- In action: full-bleed dark band, asymmetric photo mosaic -------------
   These five photographs have five different native shapes: a near-square
   group shot, two 16/9 room scenes, a 3/2 lecture, and a 3/4 portrait. Five
   equal columns cropped against all of them and left the caption stranded in
   a stripe underneath. The mosaic gives each photo a cell close to its own
   proportion and sets the line inside the composition, in the cell the
   photographs leave open. Placement is by nth-of-type, so the markup order,
   alt text and lazy loading are untouched. */
.strip { display: block; height: auto; background: var(--green-deep);
  box-shadow: none; filter: none; padding-block: clamp(3rem, 5.5vw, 4.5rem); }
.strip-grid { max-width: var(--maxw); margin-inline: auto; padding-inline: var(--pad);
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: repeat(2, clamp(140px, 13vw, 175px)) clamp(185px, 16vw, 225px);
  gap: .5rem; }
.strip img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover;
  border-radius: var(--radius); background: var(--slot-b); }
.strip img:nth-of-type(1) { grid-column: 1 / 7;  grid-row: 1 / 3; }
.strip img:nth-of-type(2) { grid-column: 7 / 10; grid-row: 1; }
.strip img:nth-of-type(3) { grid-column: 7 / 10; grid-row: 2; }
.strip img:nth-of-type(4) { grid-column: 6 / 10; grid-row: 3; }
.strip img:nth-of-type(5) { grid-column: 10 / 13; grid-row: 1 / 4; }
.strip p { position: static; grid-column: 1 / 6; grid-row: 3; align-self: end;
  margin: 0; padding: 0; background: none; text-align: left; color: var(--paper);
  font-family: var(--display); font-weight: 300; font-size: clamp(1.15rem, 1.5vw, 1.5rem);
  line-height: 1.35; max-width: 26ch; }
.strip p::before { content: ""; display: block; width: 34px; height: 2px;
  background: var(--rose); margin-bottom: .9rem; }

/* ---- Student voice ---------------------------------------------------------
   The shared .band-rose paints a 26%-tall gradient down from #2A3B37 through
   #6E5C63 before reaching rose: a smear that reads as a dropshadow and muddies
   the band's first third. The green band above is flat, so the rose band is
   flat too and the two meet on a crisp seam. */
/* Softer large-area pink; the original rose token remains for accents. */
#voice.band-rose { background: #F0D3E1; }
.voice { position: relative; box-shadow: none; }
.voice-lead { max-width: 30ch; font-size: clamp(1.75rem, 3.2vw, 2.75rem); }
.voice-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.voice-grid blockquote { padding-top: 1.25rem; border-top: 1px solid var(--green-deep); }
.voice-grid p { font-size: 1.125rem; line-height: 1.7; }
.voice-grid cite { font-size: .75rem; line-height: 1.7; letter-spacing: .08em; }

/* ---- Chapters + map -------------------------------------------------------- */
.chapters-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 4.5rem); }
#map { height: clamp(320px, 36vw, 460px); box-shadow: none; }
.chapters-foot { gap: 1rem 2rem; }
.chapters-foot .locations { font-size: .9375rem; line-height: 1.7; }

/* ---- Look inside: transform carousel, no native scrollbar --------------
   The viewport clips; the track slides by whole cards under JS control.
   Card widths (3 / 2 / 1-and-a-bit per view) stay in the inline block. */
#look { background: var(--wash); }
.look-viewport { overflow: hidden; touch-action: pan-y; }
.look-track { overflow: visible; scroll-snap-type: none; padding-bottom: 0; cursor: grab;
  transform: translate3d(0, 0, 0); transition: transform .55s var(--ease); will-change: transform; }
.look-track:active { cursor: grabbing; }
.look-card { scroll-snap-align: none; user-select: none; -webkit-user-drag: none; }
.look-card h3 { font-size: 1.375rem; line-height: 1.3; }
.look-card p { line-height: 1.6; }
.stories-ctrl .chev { min-width: 44px; min-height: 44px; border: 1px solid var(--line); }
.stories-ctrl .chev:disabled { opacity: .35; cursor: default; transform: none; background: var(--paper); }
.look-dots { display: flex; justify-content: center; gap: .25rem; margin-top: 1.5rem; }
.look-dot { width: 28px; height: 28px; padding: 0; border: 0; background: none; cursor: pointer;
  display: grid; place-items: center; border-radius: 50%; }
.look-dot::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--line-strong);
  transition: background .2s ease, transform .2s var(--ease); }
.look-dot[aria-current="true"]::before { background: var(--green); transform: scale(1.35); }
.look-dot:hover::before { background: var(--green); }
.look-dots:empty { display: none; }

/* ---- Social, closing CTA, footer ------------------------------------------ */
.social-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 5vw, 4rem); }
.social-band { padding-block: clamp(3rem, 5vw, 4.25rem); }
.phone { width: min(262px, 70vw); transform: none; padding: 8px; border-radius: 30px;
  background: var(--green-deep); box-shadow: 0 20px 40px -30px rgba(28, 42, 39, .45); }
.phone .screen { border-radius: 23px; }
.cta-final-btns .btn { min-height: 48px; }
.site-footer a { overflow-wrap: anywhere; }
.f-socials a { min-width: 44px; min-height: 44px; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1180px) {
  .site-header:not(.is-solid) { box-shadow: 0 1px 0 rgba(4, 61, 55, .4); }
}
@media (max-width: 1000px) {
  .hero { padding-block: calc(var(--header-h) + 2rem) 3rem; }
  .hero .wrap { grid-template-columns: 1fr; gap: 2.25rem; }
  .hero h1 { max-width: 16ch; }
  .hero .hero-sub { max-width: 60ch; }
  .hero-photo { max-width: 680px; margin: 0; padding: 0; }
}
@media (max-width: 760px) {
  .voice-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .voice-grid p { max-width: 60ch; }
  .social-grid, .chapters-grid { grid-template-columns: minmax(0, 1fr); }
  .social-grid { gap: 2rem; }
}
@media (max-width: 560px) {
  .hero { padding-block: calc(var(--header-h) + 1.75rem) 2.5rem; }
  .hero .wrap { gap: 1.75rem; }
  .hero h1 { font-size: 2.5rem; }
  .hero .hero-sub { font-size: 1.0625rem; }
  .hero-cta { display: grid; grid-template-columns: 1fr; gap: .75rem; }
  .hero-cta .btn { width: 100%; }
  .hero-blob { box-shadow: none; }
  .hero-stat-card { position: relative; inset: auto; width: auto; margin: 1.25rem 0 0; box-shadow: none;
    padding: .75rem 1rem; }
  .hero-stat-card .hsc-n { font-size: 1.5rem; }
  .wwd-media--pair { aspect-ratio: 4 / 3; }
  .stories-head { align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
  .cta-final-btns { display: grid; }
  .footer-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 420px) {
}
@media (prefers-reduced-motion: reduce) {
  .look-track { transition: none; }
  .look-dot::before { transition: none; }
}

/* The mosaic keeps its shape on tablets on a six-column grid, then becomes a
   two-column stack on phones, where a 2D mosaic would only shrink every face. */
@media (min-width: 620px) and (max-width: 1000px) {
  /* The portrait keeps a full-height column here too: squeezed into a landscape
     cell its hand-lettered sign gets sliced in half. */
  .strip-grid { grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-rows: repeat(3, clamp(115px, 16vw, 155px)) clamp(170px, 24vw, 240px); }
  .strip img:nth-of-type(1) { grid-column: 1 / 5; grid-row: 1 / 3; }
  .strip img:nth-of-type(2) { grid-column: 1 / 3; grid-row: 3; }
  .strip img:nth-of-type(3) { grid-column: 3 / 5; grid-row: 3; }
  .strip img:nth-of-type(4) { grid-column: 1 / 4; grid-row: 4; }
  .strip img:nth-of-type(5) { grid-column: 5 / 7; grid-row: 1 / 4; }
  .strip p { grid-column: 4 / 7; grid-row: 4; align-self: center;
    padding-left: .5rem; max-width: none; }
}
@media (max-width: 619px) {
  .strip-grid { grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none; grid-auto-rows: auto; gap: .375rem; }
  .strip img { height: auto; }
  .strip img:nth-of-type(1) { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 16 / 9; }
  .strip img:nth-of-type(2) { grid-column: 1; grid-row: auto; aspect-ratio: 1; }
  .strip img:nth-of-type(3) { grid-column: 2; grid-row: auto; aspect-ratio: 1; }
  .strip img:nth-of-type(4) { grid-column: 1; grid-row: auto; aspect-ratio: 1; }
  .strip img:nth-of-type(5) { grid-column: 2; grid-row: auto; aspect-ratio: 1; }
  .strip p { grid-column: 1 / -1; grid-row: auto; align-self: start;
    margin-top: .5rem; max-width: none; }
}

/* Partnership hero: real activity photography beside a calm, readable message. */
.hero.hero--partnership {
  background: var(--green-deep);
  color: var(--paper);
  padding-block: calc(var(--header-h) + clamp(2rem, 4vw, 3.5rem)) clamp(2rem, 4vw, 3.5rem);
  --focus: var(--paper);
}
.hero--partnership .wrap {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
}
.hero--partnership h1 {
  color: var(--paper);
  font-size: clamp(3rem, 5.3vw, 4.75rem);
  line-height: 1.06;
  max-width: 13ch;
}
.hero--partnership h1 em { color: var(--rose); }
.hero--partnership .kicker { color: var(--mist); }
.hero--partnership .hero-sub { color: var(--mist); max-width: 43ch; }
.hero--partnership .hero-cta { gap: .875rem; flex-wrap: wrap; }
.hero.hero--partnership .btn {
  --button-fill: #FBFAF8;
  --button-ink: #043D37;
  --button-hover: #E4EDEA;
  --button-outline: #FBFAF8;
  --button-text: #FBFAF8;
  --button-focus: #FBFAF8;
}
.hero--partnership .hero-badge {
  color: var(--mist);
  border-color: rgba(228, 237, 234, .3);
  max-width: none;
}
.hero--partnership .hero-badge svg { stroke: var(--rose); }
.hero--partnership .hero-photo { max-width: none; }
.hero--partnership .hero-blob {
  aspect-ratio: 4 / 3;
  box-shadow: none;
  border-radius: var(--radius);
}
.hero--partnership .hero-blob img { object-position: 50% 65%; }
.hero--partnership .hero-photo-caption {
  color: var(--mist);
  font-size: .8125rem;
  line-height: 1.5;
  margin-top: .875rem;
}
@media (max-width: 860px) {
  .hero--partnership .wrap { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .hero--partnership h1 { max-width: 16ch; font-size: clamp(2.75rem, 7vw, 4rem); }
  .hero--partnership .hero-blob { aspect-ratio: 4 / 3; }
}
@media (max-width: 480px) {
  .hero--partnership .hero-cta .btn { flex: 1 1 100%; }
  .hero--partnership .hero-badge { margin-top: 1.25rem; padding-top: 1rem; }
}

/* Keep every logo available without motion when requested by the visitor. */
@media (prefers-reduced-motion: reduce) {
  .partner-band .marquee { overflow-x: auto; mask-image: none; -webkit-mask-image: none; }
  .partner-band .marquee-track { animation: none; transform: none; }
  .partner-band .marquee-row[aria-hidden="true"] { display: none; }
}

/* Full-width photo hero. Text has its own scrim; the image stays visible on the right. */
.hero.hero--partnership {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: min(900px, 100svh);
  box-sizing: border-box;
  padding-bottom: 0;
}
.hero--partnership > .hero-background {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; object-fit: cover; object-position: center 58%;
}
/* HERO SLIDESHOW (added 2026-09-06, switched from crossfade to a sliding track same day):
   .hero-slides clips (overflow:hidden) a flex row, .hero-slides-track, of full-size
   photos; the inline script below translateX's the track to advance. This replaced an
   opacity-crossfade version that could get stuck invisible if a class toggle and a
   browser paint raced each other, especially on a freshly-loaded/unfocused tab, sliding
   via one continuous transform on a single element sidesteps that. To revert to the
   single static photo: restore .backups/index.html.PRE-HERO-SLIDESHOW-20260906-225047.bak. */
.hero-slides { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hero-slides-track { display: flex; width: 100%; height: 100%;
  transition: transform .6s cubic-bezier(.22,.61,.36,1); }
.hero-slides-track > img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover;
  object-position: center 55%; display: block; }
@media (prefers-reduced-motion: reduce) {
  .hero-slides-track { transition: none; }
}
.hero.hero--partnership::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, rgba(3, 29, 26, .96) 0%, rgba(3, 29, 26, .88) 44%, rgba(3, 29, 26, .32) 76%, rgba(3, 29, 26, .18) 100%);
}
.hero--partnership > .wrap { display: block; margin-block: auto; }
.hero--partnership > .wrap > div { max-width: 560px; }
.hero--partnership .hero-badge { max-width: 27rem; }
.hero--partnership .impact {
  position: relative; width: 100%; margin-top: 2.5rem;
  padding-block: 1.75rem 2rem;
  background: rgba(3, 29, 26, .88);
  border-top: 1px solid rgba(228, 237, 234, .25);
}
.hero--partnership .impact .wrap { display: block; }
.hero--partnership .impact .n { color: var(--paper); }
.hero--partnership .impact .n .plus { color: var(--rose); }
.hero--partnership .impact .l { color: var(--mist); }
.hero--partnership .impact .stat::before { background: rgba(228, 237, 234, .3); }
@media (max-width: 860px) {
  .hero.hero--partnership { min-height: auto; }
  .hero.hero--partnership::after { background: rgba(3, 29, 26, .84); }
  .hero--partnership > .hero-background { object-position: 65% center; }
  .hero--partnership .impact .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem 0; }
  .hero--partnership .impact .stat:nth-child(4)::before { display: none; }
}
@media (max-width: 480px) {
  .hero--partnership .impact .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero--partnership .impact .stat:nth-child(odd)::before { display: none; }
  .hero--partnership .impact .stat:nth-child(4)::before { display: block; }
}
