/* Homepage operating capacity: one continuous evidence band, not four cards. */
.home-capacity {
  overflow: hidden;
  padding: var(--section-space-standard) var(--site-edge);
  color: #f8fbff;
  background:
    radial-gradient(circle at 88% 4%, rgba(67, 118, 167, .2), transparent 34%),
    #0c2e54;
}

.capacity-heading {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, .72fr);
  column-gap: clamp(44px, 6vw, 100px);
  align-items: end;
  width: 100%;
  max-width: var(--site-frame);
  margin: 0 auto var(--section-content-gap);
  padding-bottom: var(--section-rule-gap);
  border-bottom: 1px solid rgba(219, 233, 245, .28);
}

.capacity-heading > span {
  grid-column: 1 / -1;
  color: #ff5a64;
}

.capacity-heading h2 {
  grid-column: 1;
  color: #fff;
}

.capacity-heading p {
  grid-column: 2;
  max-width: 32em;
  margin: 0 0 3px;
  color: rgba(232, 241, 249, .72);
  font: 400 clamp(14px, 1vw, 16px)/1.75 var(--body);
  text-align: right;
}

@media (min-width: 901px) {
  .capacity-heading p {
    position: absolute;
    right: 0;
    bottom: 0;
    max-width: none;
    margin: 0;
    padding-left: clamp(20px, 2.2vw, 36px);
    background: #11365f;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
    transform: translateY(50%);
  }
}

.capacity-band {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;
  max-width: var(--site-frame);
  min-height: clamp(290px, 23vw, 370px);
  margin: 0 auto;
  border-top: 2px solid #e1414c;
  border-bottom: 1px solid rgba(219, 233, 245, .2);
  background: #071e38;
}

.capacity-metric {
  position: relative;
  min-width: 0;
  overflow: hidden;
  isolation: isolate;
}

.capacity-metric + .capacity-metric {
  border-left: 1px solid rgba(225, 235, 244, .2);
}

.capacity-metric::before,
.capacity-metric::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  content: '';
  pointer-events: none;
}

.capacity-metric::before {
  background: linear-gradient(180deg, rgba(3, 19, 37, .08) 2%, rgba(4, 24, 45, .26) 42%, rgba(4, 22, 41, .92) 100%);
}

.capacity-metric::after {
  background: linear-gradient(90deg, rgba(6, 29, 53, .2), transparent 58%);
  mix-blend-mode: multiply;
}

.capacity-metric img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(.82) contrast(.98) brightness(.82);
  transform: scale(1.015);
  transition: transform 800ms cubic-bezier(.16, 1, .3, 1), filter 500ms ease;
}

.capacity-metric:nth-child(1) img { object-position: 42% 58%; }
.capacity-metric:nth-child(2) img { object-position: 48% 60%; }
.capacity-metric:nth-child(3) img { object-position: 69% 53%; }
.capacity-metric:nth-child(4) img { object-position: 70% 48%; }

.capacity-metric__content {
  position: absolute;
  right: clamp(20px, 2vw, 34px);
  bottom: clamp(24px, 2.6vw, 42px);
  left: clamp(20px, 2vw, 34px);
  z-index: 2;
}

.capacity-metric__value {
  display: flex;
  align-items: baseline;
  margin-bottom: 10px;
  color: #fff;
  line-height: 1;
}

.capacity-metric__value b {
  min-inline-size: calc(var(--capacity-digits) * .54em);
  font: 650 clamp(48px, 4.25vw, 72px)/.95 var(--display);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.06em;
}

.capacity-metric__value em {
  margin-left: 7px;
  color: #ff5964;
  font: 700 clamp(18px, 1.55vw, 26px)/1 var(--body);
  font-style: normal;
}

.capacity-metric__content > strong {
  display: block;
  color: rgba(245, 249, 253, .9);
  font: 600 clamp(16px, 1.25vw, 20px)/1.45 var(--body);
  letter-spacing: .04em;
}

@media (hover: hover) and (pointer: fine) {
  .capacity-metric:hover img {
    filter: saturate(.92) contrast(1) brightness(.9);
    transform: scale(1.045);
  }
}

.home-capacity.is-motion-ready .capacity-metric img {
  opacity: 0;
  filter: saturate(.64) contrast(.94) brightness(.55);
  transform: scale(1.045);
}

.home-capacity.is-motion-ready .capacity-metric__content {
  opacity: 0;
  transform: translateY(12px);
}

.home-capacity.is-motion-ready.is-visible .capacity-metric img {
  opacity: 1;
  filter: saturate(.82) contrast(.98) brightness(.82);
  transform: scale(1.015);
  transition:
    opacity 780ms ease-out calc(var(--capacity-index) * 85ms),
    transform 1050ms cubic-bezier(.16, 1, .3, 1) calc(var(--capacity-index) * 85ms),
    filter 900ms ease-out calc(var(--capacity-index) * 85ms);
}

.home-capacity.is-motion-ready.is-visible .capacity-metric__content {
  opacity: 1;
  transform: none;
  transition:
    opacity 560ms ease-out calc(240ms + var(--capacity-index) * 85ms),
    transform 700ms cubic-bezier(.16, 1, .3, 1) calc(240ms + var(--capacity-index) * 85ms);
}

@media (max-width: 900px) {
  .capacity-heading {
    display: block;
  }

  .capacity-heading p {
    margin-top: 15px;
    text-align: left;
  }

  .capacity-band {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .capacity-metric {
    min-height: clamp(245px, 42vw, 330px);
  }

  .capacity-metric:nth-child(3) {
    border-left: 0;
  }

  .capacity-metric:nth-child(n + 3) {
    border-top: 1px solid rgba(225, 235, 244, .2);
  }
}

@media (max-width: 520px) {
  .home-capacity { padding-inline: var(--site-edge); }
  .capacity-metric { min-height: 220px; }
  .capacity-metric__content { inset-inline: 17px; bottom: 20px; }
  .capacity-metric__value b { font-size: clamp(38px, 12vw, 52px); }
  .capacity-metric__value em { margin-left: 4px; font-size: 17px; }
  .capacity-metric__content > strong { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .capacity-metric img,
  .capacity-metric__content {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
  }
}
