#gift-campaign {
  z-index: 0;
  width: 100%;
  padding-block: 64px;
  position: relative;
  overflow: hidden;
  display: block;
  @media (max-width: 768px) {
    width: 100%;
    padding: 50px 20px 12px;
  }

  .content {
    width: calc(100% - 80px);
    max-width: 1000px;
    margin-inline: auto;

    @media (max-width: 768px) {
      width: 100%;
    }
  }
}

.gift-campaign-heading {
  margin: 0 auto 4rem;

  @media (max-width: 768px) {
    margin: 0 auto 2.4rem;
  }
}

.gift-campaign-heading::after {
  content: '';
  display: block;

  width: 4rem;
  height: 0.2rem;
  margin-top: 2.2rem;
  margin-inline: auto;

  background: #1a1a1a;
}

.gift-campaign-heading h2 {
  font-size: 3.2rem;
  font-weight: 700;
  text-align: center;
  color: #1a1a1a;
}

.gift-campaign-title p {
  font-size: min(calc(100vw * (32 / 1440)), 32px);
  font-weight: 400;
  text-align: center;
  line-height: 1.5;
  position: relative;
  color: #181930;
}

#gift-campaign .video-wrapper {
  margin: 4rem auto 0;
  display: flex;
  justify-content: center;
}

.gift-campaign-title {
  width: fit-content;
  margin-inline: auto;
}

.gift-campaign-title p::after,
.gift-campaign-title p::before {
  content: '';
  display: block;
  width: 6rem;
  height: 15rem;
  background: url(../../img/gift-campaign/title-line.svg);
  z-index: 1;
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
}

.gift-campaign-title p::before {
  top: 0;
  left: -8%;
  transform: scale(-1, 1);

  @media (max-width: 999px) {
    top: auto;
    bottom: -4rem;
    left: -11%;
  }
}

.gift-campaign-title p::after {
  right: -8%;
  top: 0;

  @media (max-width: 999px) {
    right: -11%;
    top: auto;
    bottom: -4rem;
  }
}

.gift-campaign-engineer {
  padding: 0 1.2rem;
  margin-inline: 0.8rem;
  background: var(--Dify-thema-gradation-blue);

  color: #fff;
  font-size: min(calc(100vw * (28 / 1440)), 28px);
  font-weight: bold;
  line-height: 1;

  @media (max-width: 768px) {
    padding: 0 0.3rem;
    margin-inline: 0.3rem;
    font-size: 1.4rem;
  }
}

.gift-campaign-course {
  padding: 0 1.2rem;
  margin-inline: 0.8rem;

  background: #34949b;

  color: #fff;
  font-size: 2.8rem;
  font-weight: bold;
  line-height: 1;

  @media (max-width: 768px) {
    padding: 0 0.3rem;
    margin-inline: 0.3rem;
    font-size: 1.4rem;
  }
}

#gift-campaign .bold {
  font-weight: 900;
}

#gift-campaign .semi-bold {
  font-weight: 700;
}

#gift-campaign .light-bold {
  font-weight: 700;
}

#gift-campaign .line {
  border-bottom: 1px solid;
}

#gift-campaign .lg-font {
  font-size: min(calc(100vw * (40 / 1440)), 40px);
}

#gift-campaign .md-font {
  font-size: 3.2rem;
}

.gift-campaign-desc {
  width: 100%;
  margin-top: 40px;
  border-radius: 4px;
  border: 1px solid #181930;
  background: #fff;

  @media (max-width: 768px) {
    margin-top: 20px;
    border-radius: 2.04px;
  }
}

.gift-campaign-desc .head {
  width: 100%;
  color: #e9d171;
  background: #112142;
  font-weight: bold;
  text-align: center;
  font-size: 2.8rem;
  letter-spacing: 5%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-block: 9.1px;

  @media (max-width: 768px) {
    font-size: 1.6rem;
    padding-block: 3.5px;
  }
}

.gift-campaign-desc .head::before {
  content: '';
  background: url('../../img/gift-campaign/bell_icon.svg');
  display: block;
  background-size: contain;
  background-repeat: no-repeat;
}

.gift-campaign-desc .text {
  font-size: 2.2rem;
  font-style: normal;
  padding: 20px 20px 26px;
  line-height: 1.5;
  text-align: center;
}

.gift-campaign-texts .decotation {
  display: flex;
  justify-content: center;
  align-items: baseline;
}

.gift-campaign-texts .decotation::before {
  transform: scale(-1, 1);
}

.gift-campaign-button {
  display: grid;
  place-items: center;

  max-width: 65rem;
  width: 100%;
  height: 6.5rem;
  margin-block: 2rem 0;
  margin-inline: auto;

  border-radius: 0.89rem;
  background: linear-gradient(90deg, #309da4 0%, #2368a7 100%);
}

.gift-campaign-button a {
  color: #fff;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  display: block;
}

.gift-campaign-button-engineer {
  font-size: 2.4rem;
}

.gift-campaign-button-course {
  font-size: 2.2rem;
}

@media (min-width: 1000px) {
  #gift-campaign .lg_none {
    display: none;
  }
}

@media (min-width: 769px) {
  .gift-campaign-desc .head::before {
    width: 33px;
    height: 33px;
  }
  #application .gift-campaign-texts .decotation::after,
  #application .gift-campaign-texts .decotation::before {
    width: 1.6rem;
    height: 1.6rem;
  }
  #gift-campaign .sp_only {
    display: none;
  }
}

@media (max-width: 768px) {
  .gift-campaign-title p {
    font-size: 1.4rem;
    font-weight: 400;
    text-align: center;
    line-height: 1.5;
    position: relative;
  }
  #gift-campaign .lg-font {
    font-size: 1.8rem;
  }
  #gift-campaign .md-font {
    font-size: 1.8rem;
  }

  .gift-campaign-title p::after,
  .gift-campaign-title p::before {
    content: '';
    display: block;
    width: 3rem;
    height: 5.5rem;
    background: url(../../img/gift-campaign/title-line.svg);
    z-index: 1;
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
  }

  .gift-campaign-title p::before {
    bottom: 0;
    left: -2rem;
    top: auto;
  }

  .gift-campaign-title p::after {
    right: -2rem;
    bottom: 0;
    top: auto;
  }

  .gift-campaign-desc {
    width: 100%;
    max-width: 650px;
    margin: 2rem auto 0;
    border-radius: 0.4rem;
    background: #fff;
  }
  .gift-campaign-desc .text {
    font-size: 1.4rem;
    font-style: normal;
    padding: 1rem;
    line-height: 1.5;
    text-align: center;
  }
  #gift-campaign .sample {
    width: 100%;
  }
  .gift-campaign-desc .head::before {
    width: 16.84px;
    height: 16.84px;
  }
  #gift-campaign .video-wrapper {
    margin: 2.4em auto 0;
  }
  #gift-campaign .is_sp_block {
    display: block;
  }
  .gift-campaign-button {
    height: 5.9rem;
  }
  .gift-campaign-button a {
    font-size: 1.6rem;
    line-height: 1.25;
  }
}

#application .gift-campaign-texts {
  display: flex;
  justify-content: center;
  text-align: center;
  font-weight: 700;
  margin: 3.2rem auto;
  /* line-height: 2.5; */
}

#application .gift-campaign-texts .underline {
  border-bottom: 1px solid;
  line-height: 1.5;
}

#application .gift-campaign-texts .big {
  color: #181930;
  font-size: 2.5rem;
  font-style: normal;
  font-weight: 900;
  line-height: normal;
}

#application .gift-campaign-texts .decotation::after,
#application .gift-campaign-texts .decotation::before {
  content: '';
  background: url('../img/gift-campaign/title_decotation.svg');
  display: block;
  background-size: contain;
  background-repeat: no-repeat;
  position: relative;
  top: -0.9rem;
}

#application .gift-campaign-texts .middle {
  color: #181930;
  font-size: 2.4rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

#application .bg_yellow {
  background-color: #e9d171;
  color: #181930;
  font-size: 2.4rem;
  font-weight: bold;
  line-height: 42px;
  height: 42px;
  margin-top: 6px;

  @media (max-width: 768px) {
    font-size: 1.6rem;
    line-height: 36px;
    height: 36px;
    margin-bottom: 3px;
  }
}

.text_wrapper {
  @media (max-width: 768px) {
    padding-inline: 20px;
  }
}

.gift-campaign-text-flex {
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media (min-width: 769px) {
  #application .gift-campaign-texts {
    font-size: 2rem;
  }
  #application .gift-campaign-texts .big {
    font-size: 2.5rem;
  }
  #application .gift-campaign-texts .middle {
    font-size: 2.4rem;
  }
}

@media (max-width: 768px) {
  #application .gift-campaign-texts {
    margin: 3.2rem 0;
    font-size: 1.6rem;
  }
  #application .gift-campaign-texts .big {
    font-size: 2rem;
  }
  #application .gift-campaign-texts .middle {
    font-size: 2rem;
  }
  #application .wrapper .form_wrapper .top {
    margin-bottom: 0 !important;
  }
  #application .gift-campaign-texts .decotation::after,
  #application .gift-campaign-texts .decotation::before {
    width: 1.6rem;
    height: 1.6rem;
    top: -3px;
    position: relative;
  }
}

#gift-campaign iframe.youtube-16-9 {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  max-width: 65rem;
}
#application .user_flow {
  max-width: 380px;
  width: 100%;
  background-color: #f5f5f5;
  border-radius: 4.38px;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 auto 40px;
  padding: 12px 0;
  gap: 12px;
}
#application .user_flow p {
  font-size: 16px;
  color: #1a1a1a;
  font-weight: bold;
  line-height: 100%;
  letter-spacing: 0;
}
#application .user_flow a {
  font-size: unset;
}
#application .user_flow a .red_box {
  text-align: center;
  max-width: 259px;
  width: 100%;
  border-radius: 3px;
  padding: 6px 9px;
  border: #e73354 1px solid;
  background-color: #ffffff;
  color: #e73354;
  display: flex;
  align-items: center;
  gap: 5.6px;
  justify-content: center;
  font-size: 11px;
  font-weight: bold;
}
#application .user_flow a .red_box::after {
  width: 9px;
  height: 8.4px;
  background-image: url('../img/gift-campaign/training_pink_arrow.webp');
  content: '';
  display: block;
  background-size: contain;
  background-repeat: no-repeat;
  margin-top: 2px;
}
@media (max-width: 1024px) {
  #application .user_flow a .red_box::after {
    margin-top: 1px;
  }
}
@media (max-width: 768px) {
  #application .user_flow {
    max-width: 89.3vw;
    width: 100%;
    border-radius: 1.168vw;
    margin: 0 auto 8.53vw;
    padding: 3.2vw 0;
    gap: 3, 2vw;
  }
  #application .user_flow p {
    font-size: 4.26vw;
  }
  #application .user_flow a {
    width: 100%;
    max-width: 69vw;
  }
  #application .user_flow a .red_box {
    max-width: 69vw;
    width: 100%;
    border-radius: 0.8vw;
    padding: 1.6vw 0;
    border: #e73354 0.36vw solid;
    gap: 1.49vw;
    letter-spacing: 0.13vw;
    font-size: 2.9vw;
    font-weight: bold;
  }
  #application .user_flow a .red_box::after {
    width: 2.4vw;
    height: 2.44vw;
  }
}
@media (min-width: 769px) and (max-width: 999px) {
  .gift-campaign-title p {
    font-size: 2.4rem;
  }
  #gift-campaign .lg-font {
    font-size: 3.2rem;
  }
  #gift-campaign .md-font {
    font-size: 2.4rem;
  }
}

.please_note {
  width: 100%;
  color: #fff;
  padding: 1.6rem 0;
  background: #1a1f4a;
  font-size: 1.2rem;
  text-align: center;

  @media (max-width: 768px) {
    text-align: center;
    line-height: 1.5;
    padding: calc(100vw * (16 / 375)) calc(100vw * (22.4 / 375));
    font-size: calc(100vw * (12 / 375));
  }

  .pc-none {
    display: none;

    @media (max-width: 768px) {
      display: block;
    }
  }
}

@media (min-width: 769px) {
  .is_sp {
    display: none;
  }
}

.media-pr {
  font-size: min(calc(100vw * (32 / 1440)), 32px);
  font-weight: 400;
  color: #181930;
  line-height: 1.6;
  text-align: center;
  position: relative;
  @media (max-width: 768px) {
    font-size: 14px;
  }
  &::before,
  &::after {
    content: '';
    position: absolute;
    width: min(calc(100vw * (48 / 1440)), 48px);
    height: min(calc(100vw * (92 / 1440)), 92px);
    background: url(../../img/gift-campaign/title-line.svg) no-repeat center / contain;
    bottom: 0;
    margin: auto;
    @media (max-width: 768px) {
      width: 33px;
      height: 60px;
    }
  }
  &::before {
    left: min(calc(100vw * (-60 / 1440)), -60px);
    transform: scaleX(-1);
    @media (max-width: 768px) {
      left: -33px;
    }
  }
  &::after {
    right: min(calc(100vw * (-60 / 1440)), -60px);
    @media (max-width: 768px) {
      right: -33px;
    }
  }
  .media-pr__name {
    font-weight: 700;
    span {
      &:first-child {
        font-size: min(calc(100vw * (40 / 1440)), 40px);
        @media (max-width: 768px) {
          font-size: 18px;
        }
      }
      &:last-child {
        font-size: min(calc(100vw * (32 / 1440)), 32px);
        @media (max-width: 768px) {
          font-size: 14px;
        }
      }
    }
  }
  .media-pr__service {
    font-size: min(calc(100vw * (40 / 1440)), 40px);
    font-weight: 900;
    @media (max-width: 768px) {
      font-size: 18px;
    }
  }

  .media-pr__coursename {
    font-weight: 700;
    font-size: min(calc(100vw * (28 / 1440)), 28px);
    padding-inline: min(calc(100vw * (12 / 1440)), 12px);
    margin-inline: min(calc(100vw * (8 / 1440)), 8px);
    color: #fff;
    background: var(--dify, linear-gradient(270deg, #a0adff 0.01%, #1233ff 99.39%));
    display: inline-block;
    @media (max-width: 768px) {
      font-size: 14px;
      line-height: 20px;
      padding: 0 6px;
    }
  }
  .media-pr__comment {
    font-weight: 900;
    @media (max-width: 768px) {
      font-size: 18px;
    }
  }
}

.gift-campaign-body {
  width: 100%;
  margin-inline: auto;

  @media (max-width: 768px) {
    width: 100%;
  }
}

.special-benefits-wrapper {
  padding-block: 6.4rem;
  margin: 0 auto;
  width: 100%;
  background: linear-gradient(90deg, rgba(249, 192, 255, 0.25) 0%, #cce4ff 100%);
  position: relative;
  z-index: 1;

  @media (max-width: 768px) {
    padding-block: 5rem;
  }

  .special-benefits {
    width: calc(100% - 80px);
    max-width: 1036px;
    margin-inline: auto;
    @media (max-width: 768px) {
      width: 100%;
      padding-inline: calc(100vw * (16 / 375));
    }
  }

  .special-benefits-typo {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    @media (min-width: 769px) {
      &::before,
      &::after {
        content: '';
        display: block;
        height: 1px;
        flex-grow: 1;
        background-color: #1a1a1a;
      }
    }
    @media (max-width: 768px) {
      flex-direction: column;
      gap: calc(100vw * (16 / 375));
    }
    .special-benefits-typo__term {
      display: flex;
      align-items: center;
      gap: 1em;
      border: solid 1px #1a1a1a;
      border-radius: 9999px;
      padding-inline: 24px;
      font-weight: 700;
      & span {
        font-size: min(calc(100vw * (16 / 1440)), 16px);
        @media (max-width: 768px) {
          font-size: calc(100vw * (13 / 375));
        }
      }
      & strong {
        font-size: min(calc(100vw * (20 / 1440)), 20px);
        @media (max-width: 768px) {
          font-size: calc(100vw * (16 / 375));
        }
      }
    }
    .special-benefits-typo__reward {
      font-size: min(calc(100vw * (45 / 1440)), 45px);
      font-weight: 700;
      transform: skew(-10deg) translateY(-2px);
      display: flex;
      align-items: baseline;
      line-height: 1;
      @media (max-width: 768px) {
        font-size: calc(100vw * (28 / 375));
        text-align: center;
        display: flex;
        align-items: center;
        width: 100%;
        &::before,
        &::after {
          content: "";
          height: 1px;
          background-color: #1a1a1a;
          flex-grow: 1;
        }
      }
      & i {
        display: inline-block;
        font-size: min(calc(100vw * (48 / 1440)), 48px);
        margin-right: 5px;
        transform: skew(10deg);
        font-style: normal;
        @media (max-width: 768px) {
          font-size: calc(100vw * (33 / 375));
        }
      }
      & strong {
        font-style: normal;
        font-family: "din-2014", sans-serif;
        font-size: min(calc(100vw * (56 / 1440)), 56px);
        transform: translateY(2px);
        @media (max-width: 768px) {
          font-size: calc(100vw * (36 / 375));
        }
      }
      & > div {
        @media (max-width: 768px) {
          padding-inline: 0.25em;
        }
      }
      & .-emsp {
        @media (min-width: 769px) {
          display: none;
        }
      }
    }
  }

  .quick-booking-button {
    width: min(calc(100vw * (420 / 1280)), 420px);
    margin: 32px auto 0;
  }

  @media (max-width: 768px) {
    .quick-booking-button {
      width: 100%;
      padding-inline: calc(100vw * (16 / 375));
      margin-top: calc(100vw * (30 / 375));
    }
  }

  .quick-booking-button a {
    display: flex;
    align-items: center;
    background-color: #f47808;
    color: white;
    width: 100%;
    height: 100%;
    font-weight: 700;
    border-radius: 0.5rem;
    padding: 2rem 0;
    justify-content: center;
    font-size: 2rem;
  }

  .quick-booking-button__caption {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6em;
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 0.8rem;
  }

  @media (max-width: 768px) {
    .quick-booking-button__caption {
      font-size: 1.8rem;
    }
  }

  .quick-booking-button__caption:before,
  .quick-booking-button__caption:after {
    content: '';
    display: block;
    width: 1.25em;
    height: 1.25em;
    background: url('../../../../img/point.svg') top left no-repeat;
    background-size: cover;
  }

  .quick-booking-button__caption:after {
    transform: scaleX(-1);
  }
}

.special-benefits-reward {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 700;
  margin-top: min(calc(100vw * (32 / 1440)), 32px);
  gap: 1em;
  @media (max-width: 768px) {
    flex-direction: column;
    gap: calc(100vw * (10 / 375));
    margin-top: calc(100vw * (24 / 375));
  }
  .special-benefits-reward__counseling {
    width: min(calc(100vw * (390 / 1080)), 390px);
    @media (max-width: 768px) {
      width: 100%;
    }
    .special-benefits-reward__title {
      background: linear-gradient(0deg, #1C4DA4 0%, #1C4DA4 100%), #FFF;
    }
  }
  .special-benefits-reward__and {
    width: min(calc(100vw * (40 / 1080)), 40px);
    height: min(calc(100vw * (40 / 1080)), 40px);
    font-size: min(calc(100vw * (24 / 1080)), 24px);
    font-family: 'futura-pt', sans-serif;
    display: grid;
    place-items: center;
    background-color: #1a1a1a;
    color: #fff;
    border-radius: 50%;
    font-weight: 500;
    @media (max-width: 768px) {
      width: calc(100vw * (40 / 375));
      height: calc(100vw * (40 / 375));
      font-size: calc(100vw * (24 / 375));
    }
  }
  .special-benefits-reward__contract {
    width: min(calc(100vw * (586 / 1080)), 586px);
    @media (max-width: 768px) {
      width: 100%;
    }
    .special-benefits-reward__title {
      background: linear-gradient(0deg, #333678 0%, #333678 100%), linear-gradient(0deg, #1C4DA4 0%, #1C4DA4 100%), #FFF;
    }
    & img {
      @media (min-width: 769px) and (max-width: 1439px) {
        /* min-width: 586px; */
      }
    }
  }
  .special-benefits-reward__title {
    font-size: min(calc(100vw * (16 / 1440)), 16px);
    font-weight: 700;
    color: #fff;
    background: linear-gradient(0deg, #1C4DA4 0%, #1C4DA4 100%), #FFF;
    padding: min(calc(100vw * (16 / 1440)), 16px);
    text-align: center;
    margin-bottom: min(calc(100vw * (16 / 1440)), 16px);
    @media (max-width: 768px) {
      font-size: calc(100vw * (16 / 375));
      padding: calc(100vw * (12 / 375));
      margin-bottom: calc(100vw * (12 / 375));
    }
  }
  .special-benefits-reward__imgwrapper {
    overflow-x: auto;
  }
}