#free {
  margin-top: 13.6rem;

  .free-page-header {
    z-index: 20000;
    position: sticky;
    top: 13.6rem;
    display: flex;
    justify-content: center;
    width: 100%;
    background-color: var(--color-white);
    padding-bottom: var(--spacing-2xl);

    .free-page-header__wrapper {
      position: relative;
      display: flex;
      flex-direction: column;
      gap: var(--spacing-lg);
      max-width: 40rem;
      width: 100%;
      padding: var(--spacing-lg);
      background-color: var(--color-white);
      border-radius: 1.5rem;
      box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;

      .free-page-header__header {
        display: flex;
        justify-content: space-between;
        align-items: center;

        .free-page-header__title {
          font-size: var(--font-label-large-size);
          font-weight: var(--font-label-large-m-weight);
          line-height: var(--font-label-large-line-height);
          letter-spacing: var(--font-label-large-letter-spacing);
        }

        .free-page-header__remote-wrapper {
          cursor: pointer;
          display: flex;
          justify-content: flex-start;
          align-items: center;
          width: 3.6rem;
          height: 2rem;
          border-radius: 1rem;
          padding-inline: 0.2rem;
          background-color: var(--color-gray-400);

          .free-page-header__remote {
            width: 1.5rem;
            aspect-ratio: 1/1;
            border-radius: 50%;
            background-color: var(--color-white);
          }
        }
      }

      .swiper-button-prev,
      .swiper-button-next {
        display: none;
        top: 8.2rem;
        right: 0rem;
        width: 2.4rem;
        height: 2.4rem;
        color: var(--color-font-primary);
      }

      .free-page-header__nav {
        padding-inline: var(--spacing-lg);

        .swiper {
          height: 100%;
        }

        .nav__item {
          cursor: pointer;
          display: flex;
          align-items: center;
          gap: var(--spacing-md);
          width: 3rem;
          height: 4rem;
          padding: var(--spacing-sm);
          padding-left: var(--spacing-lg);
          border-radius: 2rem;
          border: 0.1rem solid var(--color-border-primary);

          .nav__icon {
            width: 2.4rem;
            aspect-ratio: 1/1;
            border-radius: 50%;
            overflow: hidden;
            color: var(--color-green-100);
          }
        }

        .nav__item--selected {
          color: var(--color-white);
          background-color: #46d6ff;

          .nav__icon {
            color: var(--color-white);
          }
        }

        .nav__label {
          font-size: var(--font-label-small-size);
          font-weight: var(--font-label-small-m-weight);
          line-height: var(--font-label-small-line-height);
          letter-spacing: var(--font-label-small-letter-spacing);
        }
      }
    }

    .free-page-header__wrapper--active {
      .free-page-header__header {
        .free-page-header__remote-wrapper {
          justify-content: flex-end;
          background-color: var(--color-warning);
        }
      }

      .swiper-button-prev,
      .swiper-button-next {
        display: block;
      }

      .swiper-button-disabled {
        display: none;
      }
    }

    .free-page-header__wrapper .free-page-header__header ~ .free-page-header__nav {
      display: none;
    }

    .free-page-header__wrapper--active .free-page-header__header ~ .free-page-header__nav {
      display: block;
    }
  }

  .free-page-header.hidden {
    display: none;
  }

  @media (max-width: 640px) {
    .free-page-header {
      padding-inline: var(--spacing-lg);
    }

    .content__wrapper {
      padding-top: var(--spacing-lg);
      padding-bottom: var(--spacing-xl);
    }
  }

  @media (min-width: 640px) and (max-width: 1024px) {
    .free-page-header {
      padding-inline: var(--spacing-xl);
    }

    .content__wrapper {
      padding-top: var(--spacing-xl);
      padding-bottom: var(--spacing-2xl);
    }
  }

  @media (min-width: 1024px) and (max-width: 1280px) {
    .free-page-header {
      padding-inline: var(--spacing-xl);
    }

    .content__wrapper {
      padding-top: var(--spacing-xl);
      padding-bottom: var(--spacing-2xl);
    }
  }

  @media (min-width: 1280px) {
    .free-page-header {
      padding-inline: var(--spacing-2xl);
    }

    .content__wrapper {
      padding-top: var(--spacing-2xl);
      padding-bottom: var(--spacing-3xl);
    }
  }
}
