/* 365+ scroll story: one sticky stage and one shared four-state timeline. */
.wp-site-blocks:has([data-f4-perspectives]) {
  overflow: clip;
}
.f4-perspectives-track {
  --f4-story-top: calc(var(--site-header-space, 80px) + var(--anchor-admin-bar-offset, 0px));
  --f4-story-height: calc(100svh - var(--f4-story-top));
  display: block !important;
  position: relative;
  height: calc(var(--f4-story-height) * 4);
  gap: 0;
}
.f4-perspectives-stage {
  position: sticky;
  top: var(--f4-story-top);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  align-items: center;
  gap: clamp(24px, 3vw, 64px);
  width: 100%;
  height: var(--f4-story-height);
  margin: 0;
}
.f4-perspectives-stage > .wp-block-column {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  margin: 0;
}
.f4-perspectives-stage > .wp-block-column:has([data-f4-perspectives]) {
  height: 100%;
  min-height: 0;
  padding-inline: 0;
}
.f4-perspectives-stage [class~="365plus-animation-container"],
.f4-perspectives-stage [data-f4-perspectives] {
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0;
}
.f4-perspectives-stage [class~="365plus-animation-container"] {
  padding-inline: 0;
}
/* Measured against the usable viewport, excluding the scrollbar. */
.f4-perspectives-stage [data-f4-perspectives] {
  width: var(--f4-viz-width, 100%);
  /* Override WordPress constrained-layout auto margins. */
  margin-left: var(--f4-viz-offset, 0px) !important;
  margin-right: 0 !important;
  padding-inline: 0;
}
.f4-perspectives-viz {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.f4-perspectives-viz canvas {
  display: block;
  width: 100%;
  height: 100%;
}
.f4-perspectives-labels {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.f4-perspectives-labels .lbl__inner {
  transform-origin: 50% 50%;
  text-align: center;
  white-space: nowrap;
  font-family: inherit;
}
.f4-perspectives-labels .lbl__num {
  font-size: 10px;
  letter-spacing: .18em;
  color: rgb(11 11 11 / 38%);
  margin-bottom: 6px;
}
.f4-perspectives-labels .lbl__name {
  font-size: 56px;
  line-height: .94;
  font-weight: 500;
  letter-spacing: -.035em;
  color: #0b0b0b;
}
.f4-perspectives-labels .lbl--core .lbl__inner {
  color: #fff;
  font-weight: 600;
  letter-spacing: -.02em;
  font-size: 26px;
  line-height: 1.06;
}
.f4-perspectives-copy {
  width: 100%;
  min-width: 0;
  margin: 0;
  max-height: calc(var(--f4-story-height) - 48px);
  overflow-y: auto;
}
/* Disable independent Swiper movement: scroll owns this presentation. */
.f4-perspectives-copy .swiper-wrapper {
  display: grid;
  width: 100% !important;
  height: auto !important;
  transform: none !important;
  transition: none !important;
}
.f4-perspectives-copy .swiper-slide {
  grid-area: 1 / 1;
  box-sizing: border-box;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  align-self: center;
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(16px);
  transition: opacity 220ms ease, transform 220ms ease, visibility 220ms;
}
.f4-perspectives-copy .swiper-slide.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.f4-perspectives-copy :is(.swiper-pagination, .swiper-button-prev, .swiper-button-next) {
  display: none;
}
.f4-perspectives-track.is-fallback {
  height: auto;
}
.f4-perspectives-track.is-fallback .f4-perspectives-stage {
  position: static;
  display: block;
  height: auto;
}
.f4-perspectives-track.is-fallback .f4-perspectives-copy {
  max-height: none;
}
.f4-perspectives-track.is-fallback .swiper-wrapper {
  display: block;
}
.f4-perspectives-track.is-fallback .swiper-slide {
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
  margin-bottom: 2rem !important;
}
.f4-perspectives-track.is-fallback .wp-block-column:has([data-f4-perspectives]) {
  display: none;
}
@media (max-width: 1024px) {
  .f4-perspectives-stage {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    gap: 12px;
    padding-top: 24px;
    box-sizing: border-box;
  }
  .f4-perspectives-copy {
    max-height: calc(var(--f4-story-height) * .45);
  }
}
@media (prefers-reduced-motion: reduce) {
  .f4-perspectives-copy .swiper-slide {
    transition: none;
    transform: none;
  }
}

