@import url("https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");

:root {
  --slider-width: 14.5rem;
  --slide-distance: 2rem;
  --slider-duration: 75ms; /* Controls the global animation speed */
  --slider-delay: calc(var(--slider-duration) * 0.5);
  --total-anim-duration: calc(var(--slider-duration) + calc(3.75 * var(--slider-delay)));
  --infographic-duration: var(--total-anim-duration);
  --infographic-delay: calc(var(--infographic-duration) * 0.25);

  --ease-in-quart: cubic-bezier(0.5, 0, 0.75, 0);
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-in-out-quad: cubic-bezier(0.45, 0, 0.55, 1);
}

*, *:before, *:after { box-sizing: border-box; }

html { height: 100vh; }

body {
  margin: 0;
  height: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: "Barlow", sans-serif;
  font-size: 1.125rem;
  line-height: 1.375rem;
  background-color: var(--white);
  color: var(--charcoalBlue);
}

img { display: block; }

/* solutions */
.solutions {
  min-height: 100vh;
  background-image:
    radial-gradient(ellipse at 90% 90%, #0075c6, transparent),
    radial-gradient(ellipse at 10% 90%, #06184b, transparent),
    radial-gradient(ellipse at 1% 1%, #0075c6, transparent),
    radial-gradient(ellipse at 25% 90%, #06184b, transparent),
    radial-gradient(ellipse at 97% 5%, #06184b, transparent),
    radial-gradient(ellipse at 87% 15%, #06184b, transparent);
  padding-block: 5rem;
  color: #f6f6f6;
}

.s-wrapper { padding-inline: 0.9375rem; margin: 0 auto; }
.solutions-main { max-width: 68rem; width: 100%; margin: 0 auto; }
.solutions-header { max-width: 33.5rem; }

.sub-title {
  font-size: 1rem;
  line-height: 1.1875rem;
  font-weight: 700;
  letter-spacing: 0.15rem;
  margin-bottom: 1.8125rem;
}

.section-title {
  font-size: 3.25rem;
  line-height: 3.875rem;
  font-weight: 400;
  margin-bottom: 0.875rem;
}
.section-title span { font-weight: 700; }

.section-desc {
  font-size: 1.375rem;
  line-height: 1.625rem;
}
.solutions-body {
  display: flex;
  flex-direction: row;
  justify-content: center;
}

/* sliders */
.s-slider {
  height: 0;
  width: 0;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  position: relative;
  float: left;
  padding-block: 1.75rem;
  margin-top: 6.5625rem;
  max-width: var(--slider-width);
  will-change: transform;
}

.s-slider:before {
  position: absolute;
  content: '';
  width: 150%;
  height: 0.0625rem;
  left: 0;
  top: 0;
  background-color: #f6f6f660;
}

.s-slider-wrapper {
  position: relative;
  display: grid;
  place-content: center;
  max-width: var(--slider-width);
  padding-bottom: 1rem;
}
.s-slider-wrapper > * { grid-area: 1 / 1; }

.s-slider-wrapper:after {
  position: absolute;
  content: '';
  width: 100%;
  height: 0.0625rem;
  left: 0;
  bottom: 0;
  background-color: #f6f6f660;
}

.s-slider-item {
  min-width: var(--slider-width);
  will-change: transform, opacity;
}
.s-slider-item:not(.active) { opacity: 0; }

/* vanish animations */
.s-slider-item.vanish-to-left .s-icon,
.s-slider-item.vanish-to-right .s-icon {
  animation: var(--slider-duration) var(--ease-in-quart) 0ms forwards;
}
.s-slider-item.vanish-to-left .s-title,
.s-slider-item.vanish-to-right .s-title {
  animation: var(--slider-duration) var(--ease-in-quart) var(--slider-delay) forwards;
}

.s-slider-item.vanish-to-left :is(.s-icon, .s-title) { animation-name: vanishToLeft; }
.s-slider-item.vanish-to-right :is(.s-icon, .s-title) { animation-name: vanishToRight; }

/* appear animations */
.s-slider-item.appear-from-left :is(.s-icon, .s-title),
.s-slider-item.appear-from-right :is(.s-icon, .s-title) {
  opacity: 0;
}

.s-slider-item.appear-from-left .s-icon,
.s-slider-item.appear-from-right .s-icon {
  animation: var(--slider-duration) var(--ease-out-quart) 0ms forwards;
}
.s-slider-item.appear-from-left .s-title,
.s-slider-item.appear-from-right .s-title {
  animation: var(--slider-duration) var(--ease-out-quart) var(--slider-delay) forwards;
}

.s-slider-item.appear-from-left :is(.s-icon, .s-title) { animation-name: appearFromLeft; }
.s-slider-item.appear-from-right :is(.s-icon, .s-title) { animation-name: appearFromRight; }

@keyframes vanishToLeft {
  to { opacity: 0; transform: translate3d(calc(-1 * var(--slide-distance)), 0, 0); }
}
@keyframes vanishToRight {
  to { opacity: 0; transform: translate3d(var(--slide-distance), 0, 0); }
}
@keyframes appearFromLeft {
  from { opacity: 0; transform: translate3d(calc(-1 * var(--slide-distance)), 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes appearFromRight {
  from { opacity: 0; transform: translate3d(var(--slide-distance), 0, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

.s-icon { width: 2.75rem; }
.s-title { width: 13ch; line-height: 1.25; }

/* nav buttons */
.s-nav-btns {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1rem;
}
#slider_status {
  font-size: 0.975rem;
  color: hsla(0, 0%, 96%, 0.5);
  letter-spacing: -0.025rem;
}
.s-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 1rem;
  cursor: pointer;
  opacity: 0.5;
  transform: scale(1);
  transition: 0.25s ease opacity, 0.125s ease transform;
}
.s-nav:hover { opacity: 1; }
.s-nav:active { transform: scale(1.15); transform-origin: center; }

/* infographic */
.infographic-container {
  width: 75%;
  margin: 5rem auto;
  will-change: transform;
}
#infographic {
  display: block;
  width: 100%;
  margin: 0 auto;
  height: 100%;
  will-change: transform;
}

#infographic .s-icon {
  pointer-events: none;
  transition: var(--infographic-duration) var(--ease-in-out-quad) transform;
  transform-origin: center;
  transform-box: fill-box;
}
.s-text {
  transform: scale(0.9);
  transition: var(--infographic-duration) var(--ease-in-out-quad) calc(var(--infographic-delay) * 1.75) transform;
}

.s-text text {
  transition: var(--infographic-duration) var(--ease-in-out-quad) calc(var(--infographic-delay) * 1.75) font-weight;
}

.connector {
  opacity: 0;
  transition: var(--infographic-duration) var(--ease-in-out-quad) var(--infographic-delay) stroke-dashoffset,
              var(--infographic-duration) var(--ease-in-out-quad) var(--infographic-delay) opacity;
  will-change: opacity, stroke-dashoffset;
}

.trigger { cursor: pointer; }

.trigger:hover ~ g .s-icon,
.trigger.hover-active ~ g .s-icon {
  transform: scale(1.375);
}

.trigger:hover ~ .connector,
.trigger.hover-active ~ .connector {
  opacity: 1;
  stroke-dashoffset: 0;
}

.trigger:hover ~ g .s-text,
.trigger.hover-active ~ g .s-text {
  transform: scale(1);
}

:is(#s_0, #s_9, #s_10) .trigger:is(:hover, .hover-active) ~ g text { fill: #1099ac; font-weight: 700 }
:is(#s_1, #s_2, #s_3) .trigger:is(:hover, .hover-active) ~ g text { fill: #076775; font-weight: 700 }
:is(#s_4, #s_5, #s_6, #s_7, #s_8) .trigger:is(:hover, .hover-active) ~ g text { fill: #0077c8; font-weight: 700 }

@media (min-width: 87.5rem) { .s-wrapper { max-width: 71.25rem; } }
@media (min-width: 100rem) { .s-wrapper { max-width: 87.125rem; } }
@media (max-width: 47.9375rem) {
  :root {
    --slider-width: calc(100vw - 2rem);
    --slide-distance: 1rem;
    --slider-duration: 100ms;
    --infographic-duration: calc(var(--slider-duration) * 2);
  }

  .s-slider :is(.s-icon, .s-title) {
    will-change: transform, opacity;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000;
    perspective: 1000;
  }
  .s-slider .s-icon { display: flex; width: 2.75rem; height: 2.75rem }

  .solutions-title { margin-bottom: 1.6875rem; text-align: center }
  .solutions-title .sub-title { margin-bottom: 2.125rem }
  .solutions-title .section-title { margin-bottom: 1rem }

  .solutions-body { display: flex; flex-direction: column-reverse; }
  .s-slider { overflow: hidden; height: auto; width: auto; visibility: visible; opacity: 1; pointer-events: initial; float: none; margin-top: 2rem }
  .s-slider:before { width: 100% }
  .s-slider-wrapper { text-align: center; padding-bottom: .5rem }
  .s-slider-item { display: flex; flex-direction: column; align-items: center }
  .s-title { width: 100% }
  .infographic-container { width: calc(100vw - 2rem ); margin: 2rem auto }
}

.dashed { stroke-opacity: 0.25; stroke-dasharray: 4 2; }