@charset "UTF-8";
/* Scss Document */
/* CSS Document */
/*------------------------------mixin bg------------------------------*/
/*------------------------------mixin flex------------------------------*/
html {
  font-size: 0.694444444vw;
  font-feature-settings: "palt";
}
@media only screen and (max-width: 768px) {
  html {
    font-size: 2.56vw;
  }
}

/*----*/
.campaign_fv {
  background: url(../images/fv_dotted_left.svg) no-repeat top left/100%, url(../images/fv_dotted_right.svg) no-repeat bottom right/100%, url(../images/campaign/campaign_back.svg) no-repeat center center/cover, url(../images/campaign/campaign_background.webp) no-repeat bottom center/cover;
}
@media only screen and (min-width: 769px) {
  .campaign_fv {
    background: url(../images/fv_dotted_left.svg) no-repeat top left/50rem, url(../images/fv_dotted_right.svg) no-repeat bottom right/50rem, url(../images/campaign/campaign_back.svg) no-repeat center center/cover, url(../images/campaign/campaign_background.webp) no-repeat center/cover;
  }
}
.campaign_fv .inner {
  padding: 1.5rem 3rem 2.5rem;
}
@media only screen and (min-width: 769px) {
  .campaign_fv .inner {
    padding: 5rem 0;
  }
}
.campaign_fv .fv_wrap {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
@media only screen and (min-width: 769px) {
  .campaign_fv .fv_wrap {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 2rem;
  }
}
.campaign_fv .fv_wrap .fv_device {
  position: relative;
  text-align: center;
}
.campaign_fv .fv_wrap .fv_device picture {
  position: relative;
  z-index: 2;
}
.campaign_fv .fv_wrap .fv_device picture img {
  width: 29.5rem;
}
@media only screen and (min-width: 769px) {
  .campaign_fv .fv_wrap .fv_device picture img {
    width: 41rem;
  }
}
.campaign_fv .fv_wrap .fv_device .value {
  position: absolute;
  font-family: "BIZ UDGothic", sans-serif;
  color: #fff;
  top: 0;
  right: 2rem;
  font-size: 1.6rem;
  line-height: 1.1;
  width: 15rem;
  height: 15rem;
  border-radius: 50%;
  border: solid 1.5px #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-shadow: 0 0 3px #FD4DFF;
}
@media only screen and (min-width: 769px) {
  .campaign_fv .fv_wrap .fv_device .value {
    right: 0;
    font-size: 2.2rem;
    width: 21rem;
    height: 21rem;
  }
}
.campaign_fv .fv_wrap .fv_device .value .strong {
  font-size: 190%;
}
@media only screen and (min-width: 769px) {
  .campaign_fv .fv_wrap .main_catch {
    width: 50rem;
  }
}
.campaign_fv .fv_wrap .main_catch .catch {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}
@media only screen and (min-width: 769px) {
  .campaign_fv .fv_wrap .main_catch .catch {
    width: 90%;
    margin: 0 auto;
  }
}
.campaign_fv .fv_wrap .main_catch .catch .monthly {
  text-align: center;
  font-size: 1.5rem;
  line-height: 1;
  background: #01245A;
  color: #fff;
  padding: 0.4em;
  border-radius: 3px;
  font-weight: 700;
}
@media only screen and (min-width: 769px) {
  .campaign_fv .fv_wrap .main_catch .catch .monthly {
    font-size: 2rem;
  }
}
.campaign_fv .fv_wrap .main_catch .catch .monthly .strong {
  font-size: 220%;
}
.campaign_fv .fv_wrap .main_catch .catch .discount {
  font-size: 7.4rem;
  line-height: 1;
  color: #F61C93;
  text-shadow: 2px 2px 0 #fff;
  letter-spacing: -0.07em;
  font-weight: 900;
}
@media only screen and (min-width: 769px) {
  .campaign_fv .fv_wrap .main_catch .catch .discount {
    font-size: 10rem;
  }
}
.campaign_fv .fv_wrap .main_catch .catch .discount .small {
  font-size: 66%;
  display: inline-block;
  margin: 0 0.25rem 0 0.5rem;
}
@media only screen and (min-width: 769px) {
  .campaign_fv .fv_wrap .main_catch .cta {
    margin-top: 1.5rem;
  }
}
@media only screen and (max-width: 768px) {
  .campaign_fv .cta {
    margin-top: 1.5rem;
  }
}
.campaign_fv .note {
  color: #fff;
  margin-top: 1.6em;
  text-shadow: 0 0 4px rgba(0, 0, 0, 0.4);
}
@media only screen and (min-width: 769px) {
  .campaign_fv .note {
    text-align: center;
  }
}
.campaign_fv .note a {
  text-decoration: underline;
}

/* -------------------- ▼ クーポン // #coupon -------------------- */
#coupon {
  background: url(../images/coupon_back.svg) no-repeat top -8rem center/100%, url(../images/back_snow.svg) no-repeat top/100%, #FFF4FE;
  position: relative;
}
@media only screen and (min-width: 769px) {
  #coupon {
    background: url(../images/coupon_back.svg) no-repeat top -22rem center/cover, url(../images/back_snow.svg) no-repeat top/100%, #FFF4FE;
  }
}
#coupon::before {
  content: "COUPON";
  position: absolute;
  left: 0;
  top: -3.3rem;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 20rem;
  font-weight: bold;
  color: #FFE8FD;
  line-height: 1;
}
@media only screen and (max-width: 768px) {
  #coupon::before {
    font-size: 8rem;
    top: -1.4rem;
  }
}
#coupon::after {
  position: absolute;
  content: "";
  background: url(../images/campaign/coupon_back.svg) no-repeat;
  background-position: top -27rem left;
  background-size: cover;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
@media only screen and (max-width: 768px) {
  #coupon::after {
    background-position: top -5.8rem left;
    background-size: 100% 49.1rem;
  }
}
#coupon .inner {
  padding: 6rem 3rem 3rem;
  position: relative;
  z-index: 1;
}
@media only screen and (min-width: 769px) {
  #coupon .inner {
    padding: 11.5rem 32rem 5rem;
  }
}
#coupon .inner .top_wrap {
  position: relative;
}
#coupon .inner .top_wrap .limited {
  position: absolute;
  top: -1.5rem;
  left: -3rem;
  background: url(../images/campaign/star.svg) no-repeat center center/contain;
  width: 8.75rem;
  height: 8.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 1;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .limited {
    top: 0;
    left: 4rem;
    width: 14.5rem;
    height: 14.5rem;
  }
}
#coupon .inner .top_wrap .limited span {
  color: #FFE100;
  font-size: 2rem;
  line-height: 1.2;
  font-weight: 600;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .limited span {
    font-size: 3.2rem;
  }
}
#coupon .inner .top_wrap .period {
  text-align: center;
  color: #FF537E;
  font-weight: 700;
  line-height: 1;
  font-size: 2.4rem;
  transform: rotate(-10deg);
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .period {
    font-size: 4rem;
  }
}
#coupon .inner .top_wrap .period .ja {
  font-family: "Noto Sans JP", sans-serif;
}
#coupon .inner .top_wrap .period .small {
  font-size: 1.4rem;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .period .small {
    font-size: 2.4rem;
  }
}
#coupon .inner .top_wrap .coupon_image {
  transform: rotate(-5deg);
  width: 100%;
  margin: 0 auto;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .coupon_image {
    width: 53.7rem;
  }
}
#coupon .inner .top_wrap .coupon_image + div {
  margin-top: 2rem;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .coupon_image + div {
    margin-top: 4rem;
  }
}
#coupon .inner .top_wrap .code {
  display: block;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .code {
    display: flex;
    gap: 2rem;
  }
}
#coupon .inner .top_wrap .code dl {
  border-radius: 0.5rem;
  overflow: hidden;
  border: solid 2px #FF537E;
  background: #fff;
  display: flex;
  align-items: center;
  text-align: center;
  line-height: 1.2;
  width: 100%;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .code dl {
    width: 60%;
  }
}
#coupon .inner .top_wrap .code dl dt {
  width: 25%;
  background: #FF537E;
  color: #fff;
  padding: 0.5em 0;
  font-size: 1.4rem;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .code dl dt {
    font-size: 1.6rem;
  }
}
#coupon .inner .top_wrap .code dl dd {
  width: 75%;
  font-size: 2.4rem;
  color: #FF537E;
  font-weight: 600;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .code dl dd {
    font-size: 3rem;
  }
}
#coupon .inner .top_wrap .code .click_copy {
  cursor: pointer;
  position: relative;
  background: #d9d9d9;
  border: solid 1px #fff;
  border-radius: 0.5rem;
  width: 100%;
  line-height: 1.2;
  font-weight: 600;
  font-size: 1.2rem;
  text-align: center;
  padding: 0.75em 0;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .code .click_copy {
    margin-top: 1rem;
  }
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .code .click_copy {
    width: 40%;
    font-size: 1.4rem;
  }
}
#coupon .inner .top_wrap .code .click_copy::after {
  position: absolute;
  content: "";
  top: 50%;
  right: 3.6em;
  width: 1.5em;
  height: 1.5em;
  background: url(../images/campaign/icon_copy.svg) no-repeat center/contain;
  transform: translateY(-50%);
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .code .click_copy::after {
    right: 1.5em;
  }
}
#coupon .inner .top_wrap .code + div {
  margin-top: 3rem;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .code + div {
    margin-top: 5rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap {
  margin-top: 3rem;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .accordion_wrap {
    margin-top: 4rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap .accordion {
  background: #000018;
  color: #fff;
  text-align: center;
  padding: 0.5em 0;
  cursor: pointer;
  border-radius: 10rem;
}
#coupon .inner .top_wrap .accordion_wrap .accordion.detail {
  position: relative;
  font-size: 1.4rem;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .accordion_wrap .accordion.detail {
    font-size: 1.6rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap .accordion.detail::before {
  content: "";
  background: url("../images/down_arrow_white.svg") no-repeat center/contain;
  width: 1em;
  height: 1em;
  position: absolute;
  right: 1em;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  transition: 0.4s;
}
#coupon .inner .top_wrap .accordion_wrap .accordion.detail.open {
  border-radius: 6px 6px 0 0;
}
#coupon .inner .top_wrap .accordion_wrap .accordion.detail.open::before {
  transform: translate3d(0, -50%, 0) scale3d(-1, -1, -1);
}
#coupon .inner .top_wrap .accordion_wrap .box {
  background: #fff;
  line-height: 1.6;
  padding: 1.5rem 1.5rem 2.5rem 1.5rem;
  border-radius: 0 0 6px 6px;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .accordion_wrap .box {
    padding: 2rem 2.5rem 2.5rem 2.5rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content {
  width: 100%;
  margin: 0 auto;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content {
    width: 85%;
  }
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .title {
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 0.5em;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .using_image {
  border: solid 1px #ddd;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .note_wrap {
  margin-top: 1em;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .note_wrap + div {
  margin-top: 3rem;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .note_wrap + div {
    margin-top: 4rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee {
  position: relative;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .title {
  position: absolute;
  top: -0.8em;
  left: 50%;
  transform: translateX(-50%);
  margin-bottom: 0;
  white-space: nowrap;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .title span {
  display: inline-block;
  padding: 0 1em;
  background: #fff;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap {
  display: flex;
  justify-content: center;
  border: solid 1px #ddd;
  background: #fff;
  padding: 2rem;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap {
    padding: 2.5rem 4rem;
  }
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex {
    width: calc(50% - 1.75rem);
  }
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex dl div {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex dl div.total {
  border-bottom: solid 1px #ddd;
  padding-bottom: 0.5rem;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex dl div.total dt {
  font-size: 1.4rem;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex dl div.total dd .en {
  font-size: 2.8rem;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex dl div dt {
  font-size: 1.2rem;
  font-weight: 500;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex dl div dt.pink {
  font-weight: 700;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex dl div dd {
  font-size: 1.2rem;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex dl div dd .en {
  font-size: 2rem;
  font-weight: 700;
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex dl div + div {
  margin-top: 0.5rem;
}
#coupon .inner .top_wrap .accordion_wrap .box ul {
  padding-left: 1em;
}
#coupon .inner .top_wrap .accordion_wrap .box ul li {
  font-size: 1.4rem;
  font-weight: 400;
  padding-left: -1em;
  position: relative;
}
#coupon .inner .top_wrap .accordion_wrap .box ul li::before {
  position: absolute;
  content: "・";
  top: 0;
  left: -1em;
  width: 1em;
  height: 1em;
}
#coupon .inner .top_wrap .accordion_wrap + .accordion_wrap {
  margin-top: 2rem;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .accordion_wrap + .accordion_wrap {
    margin-top: 2.5rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap + .cta {
  margin-top: 3rem;
}
@media only screen and (min-width: 769px) {
  #coupon .inner .top_wrap .cta {
    width: 50rem;
    margin: 0 auto;
  }
}

.note_wrap {
  padding-left: 1rem;
  text-align: justify;
  color: #888;
}
@media only screen and (min-width: 769px) {
  .note_wrap {
    padding-left: 1.5rem;
  }
}
.note_wrap .note {
  position: relative;
  font-size: 1rem;
  font-weight: 400;
}
.note_wrap .note::before {
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
  transform: translateX(-100%);
}

/* -------------------- ▲ クーポン // #coupon -------------------- *//*# sourceMappingURL=campaign.css.map */