.mv {
  position: relative;
}

:where(.mv) {
  .mv__girl {
    position: absolute;
    width: calc(var(--vw) * 315);
    top: calc(var(--vw) * 144);
    right: 0;
    z-index: 1;
    @media screen and (min-width: 769px) {
      width: min(682px, calc(var(--vw) * 682));
      top: min(39px, calc(var(--vw) * 39));
      right: min(21px, calc(var(--vw) * 21));
    }
  }
  .mv__text {
    font-weight: bold;
    position: absolute;
    z-index: 3;
    color: #FFF;
    @media screen and (min-width: 769px) {
      top: calc(var(--vw) * 229);
      font-size: calc(var(--rem) * 50);
      letter-spacing: 7.5px;
      line-height: 87px;
      left: calc(var(--vw) * 268);
    }
    @media screen and (max-width: 1322px) {
      font-size: calc(var(--rem) * 40);
      letter-spacing: 6px;
      line-height: 71px;
    }
    @media screen and (max-width: 1079px) {
      font-size: calc(var(--rem) * 32);
      letter-spacing: 6px;
      line-height: 55px;
    }
    @media screen and (max-width: 768px) {
      top: calc(var(--vw) * 312);
      font-size: calc(var(--rem) * 32);
      left: 0;
      letter-spacing: 4.8px;
      line-height: 56px;
      margin-left: 5px;
    }
    @media screen and (min-width: 422px) and (max-width: 768px) {
      top: calc(var(--vw) * 365);
    }
  }
  .mv__open {
    position: absolute;
    width: calc(var(--vw) * 141);
    right: calc(var(--vw) * -5);
    bottom: calc(var(--vw) * 32);
    z-index: 2;
    @media screen and (min-width: 769px) {
      width: calc(var(--vw) * 302);
      right: calc(var(--vw) * 54);
      bottom: calc(var(--vw) * 32);
    }
  }
}

.mv {
  margin-bottom: 43px;
  @media screen and (max-width: 768px) {
    margin-bottom: 30px;
  }
}

.mv:has(+ .banner),
.mv:has(~ .banner) {
  @media screen and (max-width: 768px) {
    margin-bottom: 0;
  }
}

.banner {
  margin: 0 auto 22px;
  @media screen and (min-width: 769px) {
    margin: 0 auto 31px;
    width: min(888px, calc(var(--vw) * 888));
  }
}

.form {
  margin: 0 auto 40px auto;
  width: calc(var(--vw) * 340);
  @media screen and (min-width: 769px) {
    margin: 0 auto 40px auto;
    width: min(803px, calc(var(--vw) * 803));
  }
}

.intro {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top;
  background-image: url("../../images/bg_intro-sp.webp");

  @media screen and (min-width: 769px) {
    height: calc(var(--vw) * 744);
    padding: calc(var(--vw) * 140) 0 calc(var(--vw) * 30) 0;
    background-image: url("../../images/bg_intro.webp");
  }

  @media screen and (max-width: 1214px) {
    padding: calc(var(--vw) * 50) 0 calc(var(--vw) * 50) 0;
  }

  @media screen and (max-width: 768px) {
    padding: calc(var(--vw) * 94) 0 calc(var(--vw) * 43) calc(var(--vw) * 43);
  }
}

:where(.intro) {
  .intro__head {
    display: flex;

    @media screen and (min-width: 769px) {
      gap: min(96px, calc(var(--vw) * 96));
      margin-bottom: 56px;
    }

    @media screen and (max-width: 1214px) {
      margin-bottom: 40px;
    }

    @media screen and (max-width: 768px) {
      flex-direction: column;
    }
  }

  .intro__head-title {
    font-weight: bold;
    color: #FFF;
    position: relative;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 33);
      letter-spacing: 3.3px;
      line-height: 65px;
      padding-left: calc(var(--vw) * 215);
    }

    @media screen and (max-width: 1214px) {
      font-size: calc(var(--rem) * 22);
      letter-spacing: 2.2px;
      line-height: 38px;
      padding-left: calc(var(--vw) * 100);
    }

    @media screen and (max-width: 768px) {
      font-size: calc(var(--rem) * 22);
      letter-spacing: 2.2px;
      line-height: 38px;
      padding-left: 0;
      margin-bottom: calc(var(--vw) * 30);
    }

    &::before {
      position: absolute;
      left: 20px;
      content: "";
      display: inline-block;
      background-size: cover;
      background-repeat: no-repeat;
      background-position: top;
      background-image: url("../../images/icon_check.svg");
      width: 29px;
      height: 28px;

      @media screen and (min-width: 769px) {
        left: calc(var(--vw) * 160);
        top: 21px;
      }

      @media screen and (max-width: 1214px) {
        left: calc(var(--vw) * 42);
        top: 7px;
      }

      @media screen and (max-width: 768px) {
        left: 0;
        top: calc(var(--vw) * -36);
      }
    }
  }

  .intro__head-text {
    font-weight: bold;
    color: #FFF;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 15);
      letter-spacing: 1.5px;
      line-height: 30px;
    }

    @media screen and (max-width: 1214px) {
      font-size: calc(var(--rem) * 12);
      letter-spacing: 1.2px;
      line-height: 28px;
    }

    @media screen and (max-width: 768px) {
      font-size: calc(var(--rem) * 13);
      letter-spacing: 1.3px;
      line-height: 28px;
    }
  }

  .intro__head-annotation {
    display: block;
    font-size: calc(var(--rem) * 8);
    letter-spacing: 0.8px;

    @media screen and (min-width: 769px) {
      margin-top: 20px;
    }

    @media screen and (max-width: 768px) {
      line-height: 17px;
      margin-top: 15px;
    }
  }

  .event__mv {
    @media screen and (max-width: 768px) {
      margin-left: calc(var(--vw) * -43);
    }
  }
}

.charm {
  padding: 43px 25px 70px;

  @media screen and (min-width: 769px) {
    padding: 70px 0 60px 0;
  }
}

:where(.charm) {
  .charm__title {
    font-weight: bold;
    text-align: center;
    font-size: calc(var(--rem) * 22);
    letter-spacing: 2.2px;
    margin-bottom: 70px;
    line-height: 34px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 31);
      letter-spacing: 3.1px;
      margin-bottom: 90px;
    }
  }

  .charm__item-title {
    font-weight: bold;
    text-align: center;
    position: relative;
    font-size: calc(var(--rem) * 18);
    letter-spacing: 1.8px;
    line-height: 27px;
    margin-bottom: 11px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 20);
      letter-spacing: 2px;
      line-height: 28px;
      margin-bottom: 30px;
    }

    &::before {
      position: absolute;
      content: "";
      display: inline-block;
      background-size: cover;
      background-repeat: no-repeat;
      background-position: top;
      background-image: url("../../images/icon_check-blue.svg");
      width: 28px;
      height: 27px;
      top: -34px;
      left: 50%;
      transform: translateX(-50%);

      @media screen and (min-width: 769px) {
        width: 27px;
        height: 26px;
        top: -45px;
      }
    }
  }

  .charm__list {
    @media screen and (max-width: 768px) {
      display: flex;
      flex-direction: column;
      gap: 82px;
    }

    @media screen and (min-width: 769px) {
      place-content: center;
      display: grid;
      column-gap: min(100px, calc(var(--vw) * 100));
      grid-template-columns: min(288px, calc(var(--vw) * 288)) min(288px, calc(var(--vw) * 288)) min(288px, calc(var(--vw) * 288));
    }
  }

  .charm__item {
    display: flex;
    flex-direction: column;
  }

  .charm__item-image {
    @media screen and (max-width: 768px) {
      width: calc(var(--vw) * 230);
      margin: 0 auto 13px auto;
    }

    @media screen and (min-width: 769px) {
      margin-bottom: 23px;
    }
  }

  .charm__item-text {
    font-weight: bold;
    text-align: center;
    color: #454545;
    font-size: calc(var(--rem) * 13);
    letter-spacing: 1.3px;
    line-height: 20px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 14);
      letter-spacing: 1.4px;
      line-height: 26px;
    }
  }
}

.feature {
  padding: 26px 20px;
  background-repeat: repeat;
  background-size: contain;
  background-position: top;
  background-image: url(../../images/bg_line.webp);

  @media screen and (min-width: 769px) {
    padding: 75px 25px;
  }
}

:where(.feature) {
  .feature__title {
    text-align: center;
    font-weight: bold;
    margin-bottom: 21px;
    font-size: calc(var(--rem) * 25);
    letter-spacing: 2.5px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 30);
      letter-spacing: 3px;
      margin-bottom: 50px;
    }
  }

  .feature__sub-title {
    text-align: center;
    font-weight: bold;
    font-family: 'Geograph';
    margin-bottom: 8px;
    font-size: calc(var(--rem) * 12);
    letter-spacing: 1.2px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 20);
      letter-spacing: 2px;
      line-height: 26px;
      margin-bottom: 13px;
    }
  }

  .feature__title--strong {
    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 50);
      letter-spacing: 5px;
      padding-left: 10px;
    }
  }

  .feature__item {
    background: #FFF;
    position: relative;
    margin: 0 auto;
    display: flex;

    @media screen and (max-width: 768px) {
      flex-direction: column;
      padding: calc(var(--vw) * 40) calc(var(--vw) * 20);
    }

    @media screen and (min-width: 769px) {
      width: min(1273px, calc(var(--vw) * 1273));
      padding: calc(var(--vw) * 83) calc(var(--vw) * 100);
      align-items: center;
      justify-content: space-between;
      gap: 15px;
    }
  }

  .feature__item:nth-child(even) {
    @media screen and (min-width: 769px) {
      flex-direction: row-reverse;
    }
  }

  .feature__item+.feature__item {
    margin-top: 30px;

    @media screen and (min-width: 769px) {
      margin-top: 20px;
    }
  }

  .feature__item-num {
    width: 52px;
    height: 60px;
  }

  .feature__item-lead {
    font-weight: bold;
    font-size: calc(var(--rem) * 22);
    letter-spacing: 2.2px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 30);
      letter-spacing: 3px;
    }
  }

  .feature__item--wrap {
    display: flex;
    align-items: center;
    gap: 21px;
    margin-bottom: 21px;

    @media screen and (min-width: 769px) {
      gap: 21px;
      margin-bottom: 26px;
      align-items: end;
    }
  }

  .feature__item-copy {
    font-weight: bold;
    font-size: calc(var(--rem) * 16);
    letter-spacing: 1.6px;
    line-height: 27px;
    margin-bottom: 22px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 22);
      letter-spacing: 2.2px;
      margin-bottom: 27px;
    }
  }

  .feature__item-text {
    font-weight: bold;
    color: #454545;
    font-size: calc(var(--rem) * 13);
    letter-spacing: 1.3px;
    line-height: 25px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 14);
      letter-spacing: 1.4px;
      line-height: 31px;
    }
  }

  .feature__image {
    @media screen and (max-width: 768px) {
      margin-bottom: 22px;
    }

    @media screen and (min-width: 769px) {
      width: min(500px, calc(var(--vw) * 500));
    }
  }

  .feature__corner-right {
    position: absolute;
    right: 13px;
    top: 14px;
    width: min(120px, calc(var(--vw) * 120));

    @media screen and (min-width: 769px) {
      right: 33px;
      top: 26px;
      width: min(163px, calc(var(--vw) * 163));
    }
  }

  .feature__corner-left {
    position: absolute;
    left: 33px;
    bottom: 26px;

    @media screen and (min-width: 769px) {
      width: min(163px, calc(var(--vw) * 163));
    }
  }
}

.up {
  padding: 25px 10px 70px 10px;

  @media screen and (min-width: 769px) {
    padding: 60px 0 0 0;
  }
}

:where(.up) {
  .up__lead {
    margin: 0 auto 20px auto;

    @media screen and (min-width: 769px) {
      margin: 0 auto 16px auto;
      width: min(467px, calc(var(--vw) * 467));
    }
  }

  .up__image {
    @media screen and (min-width: 769px) {
      margin: 0 auto 69px auto;
      width: min(1158px, calc(var(--vw) * 1158));
    }
  }
}

.secret {
  background-repeat: repeat;
  background-size: contain;
  background-position: top;
  background-image: url("../../images/bg_line.webp");
  display: flex;
  position: relative;

  @media screen and (max-width: 768px) {
    flex-direction: column;
    padding: 33px 25px 50px;
  }

  @media screen and (min-width: 769px) {
    padding: 150px 0 91px;
    gap: min(54px, calc(var(--vw) * 54));
    padding-left: min(157px, calc(var(--vw) * 157));
  }
}

:where(.secret) {
  .secret__more {
    display: block;
    @media screen and (max-width: 768px) {
      margin: 0 auto;
      width: min(325px, calc(var(--vw) * 325));
    }
    @media screen and (min-width: 769px) {
      width: min(351px, calc(var(--vw) * 351));
      margin-bottom: 69px;
      margin-top: 70px;
    }
  }

  .secret__title {
    font-weight: bold;
    font-size: calc(var(--rem) * 16);
    letter-spacing: 1.6px;
    margin-bottom: 15px;

    @media screen and (min-width: 769px) {
      margin-bottom: 20px;
    }
  }

  .secret__lead {
    font-weight: bold;
    font-size: calc(var(--rem) * 20);
    letter-spacing: 2px;
    line-height: 38px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 33);
      letter-spacing: 3.3px;
      line-height: 66px;
    }
  }

  .secret__list {
    @media screen and (max-width: 768px) {
      margin-bottom: 39px;
    }
  }

  .secret__image-1 {
    @media screen and (max-width: 768px) {
      margin-top: 30px;
      width: min(270px, calc(var(--vw) * 270));
      margin-bottom: 26px;
    }

    @media screen and (min-width: 769px) {
      width: min(425px, calc(var(--vw) * 425));
      margin-left: -70px;
    }
  }

  .secret__image-2 {
    @media screen and (max-width: 768px) {
      margin: 0 -25px 27px -25px;
      width: 100vw;
    }

    @media screen and (min-width: 769px) {
      position: absolute;
      right: 16px;
      top: 239px;
      width: min(300px, calc(var(--vw) * 300));
    }
  }

  .secret__image-3 {
    position: absolute;

    @media screen and (min-width: 769px) {
      right: 0;
      bottom: 0;
      width: min(300px, calc(var(--vw) * 300));
    }
  }

  .secret__item {
    position: relative;
    z-index: 1;
  }

  .secret__item+.secret__item {
    margin-top: 38px;

    @media screen and (min-width: 769px) {
      margin-top: 70px;
    }
  }

  .secret__item-title {
    font-weight: bold;
    font-size: calc(var(--rem) * 20);
    letter-spacing: 2px;
    line-height: 32px;
    margin-bottom: 10px;

    @media screen and (min-width: 769px) {
      line-height: 35px;
      margin-bottom: 15px;
    }
  }

  .secret__item-desc {
    font-weight: bold;
    font-size: calc(var(--rem) * 14);
    letter-spacing: 1.4px;
    line-height: 27px;

    @media screen and (min-width: 769px) {
      line-height: 30px;
    }
  }
}

.interview {
  padding: 34px 0 0 0;

  @media screen and (min-width: 769px) {
    padding: 100px 0 0 0;
  }
}

:where(.interview) {
  .interview__title {
    font-weight: bold;
    text-align: center;
    font-size: calc(var(--rem) * 22);
    letter-spacing: 2.2px;
    margin-bottom: 27px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 30);
      letter-spacing: 3px;
      margin-bottom: 50px;
    }
  }

  .interview__q {
    background: #004F92;
    color: #FFF;
    font-weight: bold;
    text-align: center;
    font-size: calc(var(--rem) * 16);
    letter-spacing: 1.6px;
    padding: 9px 0;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 20);
      letter-spacing: 2px;
      padding: 13px 0;
    }
  }

  .interview__icon {
    margin: 0 auto 17px auto;
    width: calc(var(--vw) * 120);

    @media screen and (min-width: 769px) {
      margin: 0 auto 20px auto;
      width: min(176px, calc(var(--vw) * 176));
    }
  }

  .interview__list {
    padding: 24px 0 54px;

    @media screen and (min-width: 769px) {
      display: grid;
      padding: 30px 0 50px;
      place-content: center;
      column-gap: min(313px, calc(var(--vw) * 60));
      grid-template-columns: min(313px, calc(var(--vw) * 313)) min(313px, calc(var(--vw) * 313)) min(313px, calc(var(--vw) * 313));
    }
  }

  .interview__text {
    font-weight: bold;
    color: #454545;
    text-align: center;
    font-size: calc(var(--rem) * 12);
    letter-spacing: 1.2px;
    line-height: 21px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 14);
      letter-spacing: 1.4px;
      line-height: 26px;
    }

    .strong {
      color: #004F92;
    }
  }

  .swiper-pagination-bullet {
    background: #D9D9D9 !important;
    margin: 0 9px !important;
    width: 10px !important;
    height: 10px !important;
    opacity: 1 !important;
  }

  .swiper-pagination-bullet-active {
    background: #004F92 !important;
    margin: 0 9px !important;
    width: 15px !important;
    height: 15px !important;
  }

  .swiper-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .swiper-pagination-bullets {
    bottom: 23px !important;
  }
}

.promise {
  color: #FFF;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top;
  background-image: url("../../images/about/bg_about-promise.webp");
  padding: 60px 0 38px;
  margin-bottom: 40px;

  @media screen and (min-width: 769px) {
    padding: 80px 0 110px;
    margin-bottom: 75px;
  }

  &.is-shown {
    .promise__line {
      width: 100%;
    }
  }
}

:where(.promise) {

  .promise__title {
    font-weight: bold;
    position: relative;
    font-size: calc(var(--rem) * 25);
    letter-spacing: 2.5px;
    padding-left: 59px;
    margin-bottom: 25px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 40);
      letter-spacing: 4px;
      padding-left: 56px;
      margin-left: 132px;
      margin-bottom: 23px;
    }

    &::before {
      position: absolute;
      left: 20px;
      top: 56%;
      transform: translateY(-50%);
      content: "";
      display: inline-block;
      background-size: cover;
      background-repeat: no-repeat;
      background-position: top;
      background-image: url("../../images/icon_check.svg");
      width: 28px;
      height: 27px;

      @media screen and (min-width: 769px) {
        width: 40px;
        height: 39px;
        left: 0;
      }
    }
  }

  .promise__line {
    height: 1.5px;
    width: 0;
    background: #FFF;
    transition: width 0.8s cubic-bezier(0.35, 0, 0, 1);

    @media screen and (max-width: 768px) {
      width: 100%;
      margin-bottom: 35px;
    }

    @media screen and (min-width: 769px) {
      height: 2px;
      width: 0;
      margin-bottom: 75px;
    }
  }

  .promise__list {
    display: grid;
    place-content: center;
    row-gap: 40px;

    @media screen and (min-width: 769px) {
      column-gap: 31px;
      row-gap: 80px;
      grid-template-columns: min(616px, calc(var(--vw) * 616)) min(616px, calc(var(--vw) * 616));
    }
  }

  .promise__item {
    display: flex;
    justify-content: space-between;

    @media screen and (max-width: 768px) {
      width: 100vw;
    }
  }

  .promise__image {
    width: calc(var(--vw) * 117);

    @media screen and (min-width: 769px) {
      width: min(210px, calc(var(--vw) * 210));
    }
  }

  .promise__lead {
    font-weight: bold;
    position: relative;
    font-size: calc(var(--rem) * 16);
    letter-spacing: 1.6px;
    padding-left: 59px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 21);
      letter-spacing: 2.1px;
      padding-left: 35px;
    }

    &::before {
      position: absolute;
      left: 26px;
      top: 5px;
      content: "";
      display: inline-block;
      background-size: cover;
      background-repeat: no-repeat;
      background-position: top;
      background-image: url("../../images/icon_check.svg");
      width: 19px;
      height: 19px;

      @media screen and (min-width: 769px) {
        width: 24px;
        height: 24px;
        left: 0;
      }
    }
  }

  .promise__item-text-wrap {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  .promise__desc {
    font-weight: bold;
    font-size: calc(var(--rem) * 12);
    letter-spacing: 1.2px;
    line-height: 25px;
    padding-left: 59px;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 15);
      letter-spacing: 1.5px;
      line-height: 35px;
      padding-left: 35px;
    }

    .promise__strong {
      color: #FFFF8C;
    }
  }
}

.schedule {
  display: flex;

  @media screen and (max-width: 768px) {
    flex-direction: column;
    padding: 0 25px;
    margin-bottom: 20px;
  }

  @media screen and (min-width: 769px) {
    gap: min(69px, calc(var(--vw) * 69));
    margin-bottom: 30px;
    justify-content: center;
  }

  .c-title-wrap {
    @media screen and (min-width: 769px) {
      align-items: initial;
    }
  }
}
.schedule__anottation {
  text-align: center;
  font-weight: 500;
  margin-bottom: 53px;
  font-size: calc(var(--rem) * 11);
  letter-spacing: 1px;
  line-height: 21px;
  @media screen and (min-width: 769px) {
    margin-bottom: 110px;
    font-size: calc(var(--rem) * 13);
    letter-spacing: 1.3px;
  }
  a {
    text-decoration: underline;
  }
}

:where(.schedule) {

  .schedule__button {
    display: block;
    cursor: pointer;
    background-size: contain;
    background-repeat: no-repeat;

    @media screen and (max-width: 768px) {
      margin: 0 auto;
      width: 255px;
      height: 58px;
      background-image: url(../../images/event/button_event-shedule-sp.webp);
    }

    @media screen and (min-width: 769px) {
      width: 281px;
      height: 69px;
      background-image: url(../../images/event/button_event-shedule.webp);
    }
  }

  .schedule__list {
    display: flex;
    overflow-x: scroll;
    scrollbar-width: none;
    -ms-overflow-style: none;
    flex-direction: column;
    @media screen and (max-width: 768px) {
      margin-bottom: 25px;
    }
  }

  .schedule__list::-webkit-scrollbar {
    display: none;
  }

  .schedule__item {
    flex-shrink: 0;
    border-bottom: 1px solid;
    padding: 18px 10px;
    @media screen and (min-width: 769px) {
      padding: 25px 10px;
      width: calc(var(--vw) * 437);
    }
  }
  .schedule__item:last-child {
    border-bottom: none;
  }

  .schedule__date {
    font-weight: bold;
    font-size: calc(var(--rem) * 13);
    letter-spacing: 1.3px;
    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 16);
      letter-spacing: 1.6px;
    }
  }

  .schedule__title {
    font-weight: bold;

    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 18);
      letter-spacing: 1.8px;
    }
  }

  .schedule__item--empty {
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 18);
      letter-spacing: 1.8px;
      height: 100%;
      margin-bottom: 0;
    }
  }
}

.cta {
  margin-bottom: 44px;
  @media screen and (min-width: 769px) {
    margin-bottom: 149px;
  }
}
:where(.cta) {
  .cta__wrap {
    @media screen and (min-width: 769px) {
      display: flex;
      justify-content: center;
      gap: 30px;
    }
  }
  .cta__title {
    font-weight: bold;
    text-align: center;
    margin-bottom: 24px;
    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 25);
      letter-spacing: 1.25px;
      margin-bottom: 56px;
    }
  }
  .cta__consultation {
    display: block;
    @media screen and (max-width: 768px) {
      margin: 0 auto 13px auto;
      width: min(316px, calc(var(--vw) * 316));
    }
    @media screen and (min-width: 769px) {
      margin: 0 auto 30px auto;
      width: min(481px, calc(var(--vw) * 481));
    }
  }
  .cta__bottom-wrap {
    display: flex;
    @media screen and (max-width: 768px) {
      flex-direction: column;
    }
    @media screen and (min-width: 769px) {
      gap: 24px;
      justify-content: center;
    }
  }
  .cta__request {
    display: block;
    @media screen and (max-width: 768px) {
      margin: 0 auto 13px auto;
      width: min(316px, calc(var(--vw) * 316));
    }
    @media screen and (min-width: 769px) {
      width: min(487px, calc(var(--vw) * 487));
    }
  }
  .cta__contact {
    display: block;
    @media screen and (max-width: 768px) {
      margin: 0 auto;
      width: min(316px, calc(var(--vw) * 316));
    }
    @media screen and (min-width: 769px) {
      width: min(483px, calc(var(--vw) * 483));
    }
  }
}

.blog {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 59px;
  @media screen and (min-width: 769px) {
    padding: 0 25px 85px;
  }
}
:where(.blog) {
  .blog-list {
    display: grid;
    row-gap: 24px;
    @media screen and (min-width: 769px) {
      grid-template-columns: 315px 315px 315px;
      column-gap: 48px;
      row-gap: 55px;
    }
    @media screen and (min-width: 769px) and (max-width: 1070px) {
      grid-template-columns: 315px 315px;
    }
    @media screen and (max-width: 768px) {
      display: flex;
      gap: 25px;
      margin-left: 25px;
      overflow-x: scroll;
    }
  }
  .blog-item {
    @media screen and (max-width: 768px) {
      flex-shrink: 0;
      width: calc(var(--vw) * 248);
    }
  }
  .blog-item:last-child {
    @media screen and (max-width: 768px) {
      padding-right: 25px;
      box-sizing: content-box;
    }
  }
  .blog-list-wrapper {
    @media screen and (min-width: 769px) {
      margin-bottom: 41px;
    }
    @media screen and (max-width: 768px) {
      width: 100%;
      margin-bottom: 31px;
    }
  }
  .blog-thumb {
    background: #CBCBCB;
    border-radius: 20px;
    overflow: hidden;
    height: calc(var(--vw) * 161);
    margin-bottom: 15px;
    @media screen and (min-width: 769px) {
      height: 189px;
      margin-bottom: 22px;
      border-radius: 30px;
    }
    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
  .blog-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
  }
  .blog-cat {
    border-radius: 50px;
    border: 1.3px solid #004F92;
    font-size: calc(var(--rem) * 11);
    font-weight: bold;
    letter-spacing: 1.1px;
    padding: 4px 13px;
    @media screen and (min-width: 769px) {
      border: 1.5px solid #004F92;
      font-size: calc(var(--rem) * 11);
      font-weight: bold;
      letter-spacing: 1.1px;
      padding: 3px 13px;
    }
  }
  .blog-date {
    font-weight: bold;
    letter-spacing: 0.65px;
    font-size: calc(var(--rem) * 13);
  }
  .blog-title {
    display: block;
    font-size: calc(var(--rem) * 15);
    letter-spacing: 0.75px;
    font-weight: 600;
    overflow: hidden;
    display: -webkit-box;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 18);
      letter-spacing: 0.9px;
    }
  }
  .blog-empty  {
    font-weight: bold;
    text-align: center;
    margin-top: 50px;
    margin-bottom: 20px;
    font-size: calc(var(--rem) * 15);
    letter-spacing: 0.75px;
    @media screen and (min-width: 769px) {
      font-size: calc(var(--rem) * 20);
      letter-spacing: 1.6px;
      margin-top: 10px;
      margin-bottom: 30px;
    }
  }
  .blog__button {
    width: 68%;
    @media screen and (min-width: 769px) {
      width: min(300px, calc(var(--vw) * 300));
    }
  }
}

