/* ------------------------------
   campaign
---------------------------------*/
.campaign {
  overflow: hidden;
  width: 100%;
}

/* intro */
.campaign__intro {
  width: 78.6%;
  margin: min(5.36vw, 7.5rem) auto 0;
  max-width: calc(90rem + 14.3%);
  padding: 0 7.15%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}
.campaign__intro-tit {
  font-size: min(2.07vw, 2.9rem);
  line-height: 1.72;
  border-bottom: 2px solid #fe9927;
  padding-bottom: min(1.07vw, 1.5rem);
}
.campaign__intro-text {
  font-size: min(1.28vw, 1.8rem);
  line-height: 2.39;
  margin-top: min(1.07vw, 1.5rem);
}
.campaign__intro--color {
  font-weight: bold;
  color: #fe9927;
}
.campaign__intro-text.campaign__intro--color {
  margin-top: min(2.14vw, 3rem);
}

/* campaign__content */
.campaign__content {
  margin-top: min(5.71vw, 8rem);
}
.campaign__heading {
  background-color: #008cd6;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: min(2.86vw, 3rem) 0;
}
.campaign__heading-text {
  font-size: min(2.79vw, 3.9rem);
  line-height: 1.5;
  color: #fff;
  font-weight: bold;
  width: 100%;
  text-align: center;
  position: relative;
}
.campaign__heading-text::before {
  content: "";
  display: inline-block;
  width: min(10.71vw, 15rem);
  height: min(10.71vw, 15rem);
  background-image: url(../../imgs/8campaign/campaign_titile_illust_01.png);
  background-size: contain;
  position: absolute;
  bottom: 0;
  left: 0;
  top: 0;
  margin: auto;
}
.campaign__heading-text::after {
  content: "";
  display: inline-block;
  width: min(10.71vw, 15rem);
  height: min(10.71vw, 15rem);
  background-image: url(../../imgs/8campaign/campaign_titile_illust_02.png);
  background-size: contain;
  position: absolute;
  bottom: 0;
  right: 0;
  top: 0;
  margin: auto;
}
.campaign__heading span {
  display: block;
  background-color: #fff;
  color: #008cd6;
  font-size: min(1.43vw, 2rem);
  line-height: 2.5;
  margin: min(1.07vw, 1.5rem) auto 0;
  font-weight: 400;
  width: 24.6em;
}
.campaign__inner {
  width: 78.6%;
  margin: auto;
  max-width: calc(90rem + 14.3%);
}
.campaign__content-tit {
  font-size: min(2.07vw, 2.9rem);
  line-height: 1.4;
  font-weight: bold;
  color: #fff;
  background-color: #fe9927;
  border-radius: 1.1rem;
  position: relative;
  padding: min(0.71vw, 1rem) 0;
  display: flex;
  justify-content: center;
}
.campaign__content-tit-pic {
  position: absolute;
  bottom: 0;
  left: 7%;
  width: min(17.5%, 15rem);
}

/* campaign__list */
.campaign__content-list {
  display: flex;
  flex-direction: column;
  gap: min(2.86vw, 4rem);
  margin-top: min(2.14vw, 3rem);
}
.campaign__content-flex {
  display: flex;
  margin-top: min(1.43vw, 2rem);
  gap: min(2.86vw, 4rem);
}
.campaign__item-pic {
  position: relative;
  overflow: hidden;
  flex: 1;
}
.campaign__item-pic::before {
  content: "";
  display: block;
  padding-top: 93%;
}
.campaign__item-img {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  object-fit: cover;
  transition: 0.5s all;
}
.campaign__item-info {
  flex: 1;
  flex-direction: column;
  display: flex;
  gap: min(1.43vw, 2rem);
}
.campaign__item-tit {
  font-size: min(1.43vw, 2rem);
  line-height: 1.5;
  font-weight: bold;
  color: #008cd6;
}
.campaign__item-text {
  font-size: min(1.14vw, 1.6rem);
  line-height: 1.85;
}
.campaign__item-price-box {
  flex-direction: column;
  display: flex;
  gap: min(0.71vw, 1rem);
  text-align: right;
}
.campaign__item-price-before {
  font-size: min(1.43vw, 2rem);
  line-height: 1.5;
  color: #008cd6;
  font-weight: bold;
}
.campaign__item-price {
  font-size: min(2.5vw, 3.5rem);
  line-height: 1.46;
  color: #fe9927;
  font-weight: bold;
}
.campaign__item-price span {
  font-size: min(1.07vw, 1.5rem);
}
.campaign__item-price-time {
  font-size: min(1.43vw, 2rem);
  line-height: 1.5;
}

/* campaign__item-table */
.campaign__item-table {
  font-size: min(1.43vw, 2rem);
  line-height: 1.5;
}
.campaign__item-table tr {
  border-bottom: 1px solid #008cd6;
}
.campaign__item-table td {
  text-align: right;
  padding: min(0.71vw, 1rem) 0;
}

/*--------------------------------
    TB用
----------------------------------- */
@media all and (max-width: 960px) {
  /* -----------------------------
    campaign 
  -------------------------------*/
  .campaign__intro {
    width: 90%;
  }
  .campaign__inner {
    width: 90%;
  }
}

/*--------------------------------
    SP用
----------------------------------- */
@media all and (max-width: 530px) {
  /* -----------------------------
    campaign
  -------------------------------*/
  .campaign__intro {
    margin-top: min(8vw, 3rem);
    width: 100%;
    padding: 0 2.7%;
  }
  .campaign__intro-tit {
    font-size: min(6.13vw, 2.3rem);
    padding-bottom: min(2.67vw, 1rem);
  }
  .campaign__intro-text {
    font-size: min(4.27vw, 1.6rem);
    margin-top: min(2.67vw, 1rem);
  }
  .campaign__intro-text.campaign__intro--color {
    margin-top: min(8vw, 3rem);
  }

  /* campaign__content */
  .campaign__content {
    margin-top: min(10.67vw, 4rem);
  }
  .campaign__heading {
    padding: min(8vw, 3rem) 0;
  }

  .campaign__heading-text {
    font-size: min(8vw, 3rem);
  }
  .campaign__heading span {
    font-size: min(4.27vw, 1.6rem);
    margin-top: min(4vw, 1.5rem);
    width: 85%;
  }
  .campaign__heading-text::before {
    display: none;
  }
  .campaign__heading-text::after {
    display: none;
  }
  .campaign__inner {
    width: 100%;
  }
  .campaign__content-tit {
    font-size: min(5.87vw, 2.2rem);
    padding: min(2.67vw, 1rem) 0;
  }
  .campaign__content-tit-pic {
    left: 2%;
    width: min(24.25%, 8.6rem);
  }

  /* campaign__list */
  .campaign__content-list {
    gap: min(8vw, 3rem);
    margin-top: min(8vw, 3rem);
  }
  .campaign__content-flex {
    flex-direction: column;
    gap: min(2.67vw, 1rem);
    width: 85%;
    margin: min(5.33vw, 2rem) auto 0;
  }
  .campaign__item-info {
    gap: min(4vw, 1.5rem);
  }
  .campaign__item-tit {
    font-size: min(4.8vw, 1.8rem);
  }
  .campaign__item-text {
    font-size: min(3.73vw, 1.4rem);
    line-height: 2;
  }
  .campaign__item-price-box {
    gap: min(2.13vw, 0.8rem);
  }
  .campaign__item-price-before {
    font-size: min(4.8vw, 1.8rem);
  }
  .campaign__item-price {
    font-size: min(12vw, 4.5rem);
  }
  .campaign__item-price span {
    font-size: min(5.33vw, 2rem);
  }
  .campaign__item-price-time {
    font-size: min(4.8vw, 1.8rem);
  }

  /* campaign__item-table */
  .campaign__item-table {
    font-size: min(4.8vw, 1.8rem);
  }
  .campaign__item-table td {
    padding: min(2.67vw, 1rem) 0;
  }
  .campaign .contact_buner {
    margin: min(8vw, 3rem) auto 0;
  }
}
