.flow {
  padding-bottom: 1vw;
}

.flow__head {
  padding-bottom: 2vw;
  scroll-margin-top: calc(var(--header-h) + 16px);
}

.flow__rail {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55vw;
}

.flow__node {
  padding: 0.75vw 1.2vw;
  border-radius: var(--radius-pill);
  background: var(--color-gray-3);
  color: var(--color-dark-blue);
  font-size: 1.2vw;
  line-height: 1.2;
}

.flow__node:hover {
  color: var(--color-blue);
}

.flow__node:focus-visible {
  outline: 2px solid var(--color-blue);
  outline-offset: 3px;
}

.flow__node--accent,
.flow__node--accent:hover {
  background: var(--color-blue);
  color: var(--color-white);
}

.flow__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2vw;
  align-items: start;
  padding: 0.7vw 0;
  scroll-margin-top: calc(var(--header-h) + 16px);
}

.flow__row--flip .flow__copy {
  order: 2;
}

.flow__media {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: var(--radius-xl);
  background: var(--color-dark-blue);
}

.flow__photo,
.flow__panel {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.flow__panel {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 2.2vw;
  background:
    radial-gradient(80% 70% at 80% 20%, rgba(50, 50, 243, 0.55), transparent 60%),
    var(--color-dark-blue);
  color: var(--color-white);
}

.flow__panel-title {
  max-width: 8em;
  font-family: var(--font-display);
  font-size: 2.2vw;
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.flow__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.9vw;
  padding: 1.2vw 0.6vw;
}

.flow__title {
  color: var(--color-blue);
  font-family: var(--font-display);
  font-size: 1.7vw;
  font-weight: 500;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

.flow__body {
  color: var(--color-dark);
  font-size: 1.08vw;
  line-height: 1.5;
}

.flow__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4vw;
}

.flow__chip {
  padding: 0.6vw 1vw;
  border-radius: var(--radius-pill);
  background: var(--color-gray-3);
  color: var(--color-dark-blue);
  font-size: 1.15vw;
}

@media (max-width: 1024px) {
  .flow__head {
    padding-bottom: 24px;
  }

  .flow__node,
  .flow__chip {
    padding: 10px 16px;
    font-size: 16px;
  }

  .flow__body {
    font-size: 16px;
  }

  .flow__row {
    gap: 16px;
    padding: 10px 0;
  }

  .flow__media {
    aspect-ratio: 1;
  }

  .flow__panel {
    padding: 24px;
  }

  .flow__panel-title {
    font-size: 32px;
  }

  .flow__title {
    font-size: 24px;
  }
}

@media (max-width: 768px) {
  .flow__row,
  .flow__row--flip {
    grid-template-columns: 1fr;
  }

  .flow__row--flip .flow__copy {
    order: 0;
  }

  .flow__row--flip .flow__media {
    order: 1;
  }
}
