/* ============================================
   Block: Steps
   ============================================ */

.block-steps {
  padding: calc(var(--space-lg) + 36px) var(--space-md) var(--space-lg);

  & .container {
    padding: 0;
  }

  & .steps-box {
    display: flex;
    border: 2px solid var(--color-red);
    border-radius: var(--border-radius);
    overflow: visible;
    position: relative;
    box-shadow: 8px 8px 0 var(--color-red);
  }

  & .step {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--space-lg) var(--space-md);
    position: relative;
    text-align: center;

    &:not(:last-child)::after {
      content: '';
      position: absolute;
      right: -1px;
      top: 10%;
      bottom: 10%;
      width: 2px;
      background-image: repeating-linear-gradient(
        to bottom,
        var(--color-black) 0,
        var(--color-black) 6px,
        transparent 6px,
        transparent 12px
      );
    }
  }

  & .step-number {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--color-red);
    border: 3px solid var(--color-red);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: 2.25rem;
    color: var(--color-white);
    flex-shrink: 0;
  }

  & .step-title {
    font-family: var(--font-heading);
    font-weight: 900;
    font-size: clamp(1.75rem, 2.75vw, 2.25rem);
    text-transform: uppercase;
    line-height: 1.05;
    margin-bottom: var(--space-sm);
    color: var(--color-black);

    & strong {
      color: var(--color-red);
      font-weight: 900;
    }
  }

  & .step-text {
    font-size: 0.875rem;
    text-transform: uppercase;
    color: var(--color-text);
    line-height: 1.6;
    letter-spacing: 0.02em;
    font-weight: 500;

    & p:last-child {
      margin-bottom: 0;
    }
  }

  @media (max-width: 768px) {
    padding-top: var(--space-md);

    & .steps-box {
      flex-direction: column;
      box-shadow: 10px 10px 0 var(--color-red);
    }

    & .step {
      padding: var(--space-md);

      &:not(:last-child)::after {
        top: auto;
        bottom: -1px;
        left: 5%;
        right: 5%;
        width: auto;
        height: 2px;
        background-image: repeating-linear-gradient(
          to right,
          var(--color-black) 0,
          var(--color-black) 6px,
          transparent 6px,
          transparent 12px
        );
      }
    }

    & .step-number {
      position: relative;
      top: auto;
      left: auto;
      transform: none;
      width: 72px;
      height: 72px;
      font-size: 2.5rem;
      margin-bottom: var(--space-sm);
    }

    & .step-title {
      font-size: 2.75rem;
    }

    & .step-text {
      font-size: 1.5rem;
    }
  }
}
