@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/back_snow.svg) no-repeat top/100%, url(../images/snow.svg) no-repeat top 2rem left 2rem/35%, url(../images/snow_bottom_right.svg) no-repeat bottom 2rem right 2rem/35%, linear-gradient(to bottom, #0377DA, #C1F0F8);
  padding: 11.3rem 27rem 4rem;
}
@media only screen and (max-width: 768px) {
  .campaign_fv {
    background: url(../images/back_snow.svg) no-repeat top/200%, url(../images/snow.svg) no-repeat top 2rem left 2rem/80%, url(../images/snow_bottom_right.svg) no-repeat bottom 2rem right 2rem/80%, linear-gradient(to bottom, #0377DA, #C1F0F8);
    padding: 9rem 4rem 3rem;
  }
}
@media only screen and (min-width: 769px) {
  .campaign_fv .main {
    display: flex;
    align-items: flex-end;
    gap: 2.5rem;
  }
}
.campaign_fv .main .catch {
  width: 55rem;
}
@media only screen and (max-width: 768px) {
  .campaign_fv .main .catch {
    width: 110%;
    margin-left: -5%;
  }
}
.campaign_fv .main .catch h2 {
  text-align: center;
}
.campaign_fv .main .catch h2 p {
  margin-top: -3.8rem;
  background: url(../images/ribbon.svg) no-repeat center/contain;
  width: 100%;
  height: 10rem;
}
@media only screen and (max-width: 768px) {
  .campaign_fv .main .catch h2 p {
    margin-top: -2.5rem;
    height: 6.2rem;
  }
}
.campaign_fv .main .catch h2 p .ribbon_wrap {
  color: #822A0B;
  font-size: 2.6rem;
  margin-top: -1em;
}
@media only screen and (max-width: 768px) {
  .campaign_fv .main .catch h2 p .ribbon_wrap {
    font-size: 1.6rem;
  }
}
.campaign_fv .main .catch h2 p .ribbon_wrap .strong {
  font-size: 185%;
}
.campaign_fv .main .catch h1 {
  text-align: center;
}
.campaign_fv .main .catch h1 img {
  vertical-align: bottom;
}
@media only screen and (max-width: 768px) {
  .campaign_fv .main .catch + div {
    margin-top: 2rem;
  }
}
.campaign_fv .main .device {
  position: relative;
  width: 32.5rem;
}
@media only screen and (max-width: 768px) {
  .campaign_fv .main .device {
    width: 100%;
  }
}
@media only screen and (max-width: 768px) {
  .campaign_fv .main .device figure {
    width: 22rem;
    margin: 0 auto;
  }
}
.campaign_fv .main .device figure img {
  vertical-align: bottom;
}
.campaign_fv .main .device .price_wrap {
  position: absolute;
  top: 2rem;
  left: 0;
  display: flex;
  align-items: center;
  font-size: 1.6rem;
}
.campaign_fv .main .device .price_wrap .monthly {
  writing-mode: vertical-rl;
}
.campaign_fv .main .device .price_wrap .price_main {
  display: flex;
  align-items: flex-end;
}
.campaign_fv .main .device .price_wrap .price_main .ff_barlow {
  font-size: 300%;
  line-height: 1;
  background: linear-gradient(180deg, #FFF 15.09%, #FFF 57.55%, #C1DEE3 58.4%, #FFF 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.campaign_fv .main .device .price_wrap .price_main .yen {
  display: inline-block;
  position: relative;
}
.campaign_fv .main .device .price_wrap .price_main .yen .tax {
  white-space: nowrap;
  position: absolute;
  bottom: 2em;
  left: 0.2em;
  font-size: 1rem;
}
.campaign_fv .main + .bottom {
  margin-top: 1rem;
}
@media only screen and (max-width: 768px) {
  .campaign_fv .main + .bottom {
    margin-top: 2rem;
  }
}
@media only screen and (min-width: 769px) {
  .campaign_fv .bottom {
    display: flex;
    align-items: center;
  }
}
.campaign_fv .bottom .link_btn {
  width: 60%;
  margin: 0 auto;
}
@media only screen and (max-width: 768px) {
  .campaign_fv .bottom .link_btn {
    width: 100%;
  }
}
.campaign_fv .bottom .link_btn a {
  cursor: pointer;
  position: relative;
  display: block;
  background: #EDF7FF;
  color: #014983;
  font-size: 2rem;
  text-align: center;
  padding: 0.75em 0;
  width: 80%;
  margin: 0 auto;
  border-radius: 5px;
}
@media only screen and (max-width: 768px) {
  .campaign_fv .bottom .link_btn a {
    font-size: 1.4rem;
    width: 100%;
  }
}
.campaign_fv .bottom .link_btn a::after {
  position: absolute;
  content: "";
  background: url(../images/icon_confirmation.svg) no-repeat center/contain;
  top: 50%;
  right: 1em;
  width: 1.75em;
  height: 1.75em;
  transform: translateY(-50%);
}
.campaign_fv .bottom .price_wrap {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-size: 3.4rem;
}
@media only screen and (min-width: 769px) {
  .campaign_fv .bottom .price_wrap {
    width: 40%;
  }
}
.campaign_fv .bottom .price_wrap .monthly {
  writing-mode: vertical-rl;
}
.campaign_fv .bottom .price_wrap .price_main {
  display: flex;
  align-items: flex-end;
}
.campaign_fv .bottom .price_wrap .price_main .ff_barlow {
  font-size: 300%;
  line-height: 1;
  background: linear-gradient(180deg, #FFF 15.09%, #FFF 57.55%, #C1DEE3 58.4%, #FFF 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.campaign_fv .bottom .price_wrap .price_main .yen {
  display: inline-block;
  position: relative;
}
.campaign_fv .bottom .price_wrap .price_main .yen .tax {
  white-space: nowrap;
  position: absolute;
  bottom: 2.8em;
  left: 0.2em;
  font-size: 1.4rem;
}
.campaign_fv .note {
  font-size: 1.2rem;
  font-weight: 400;
}

/* -------------------- ▼ クーポン // #coupon -------------------- */
#coupon {
  padding: 11.5rem 32rem 5rem;
  position: relative;
  background: url(../images/coupon_back.svg) no-repeat top -22rem center/cover, url(../images/back_snow.svg) no-repeat top/100%, linear-gradient(180deg, #64BBE9 0%, #CCF1F8 100%);
}
@media only screen and (max-width: 768px) {
  #coupon {
    background: url(../images/coupon_back.svg) no-repeat top -8rem center/100%, url(../images/back_snow.svg) no-repeat top/100%, linear-gradient(180deg, #64BBE9 0%, #CCF1F8 100%);
    padding: 6rem 3rem 3rem;
  }
}
#coupon::before {
  content: "COUPON";
  position: absolute;
  left: 0;
  top: -3.3rem;
  font-family: "Barlow Condensed", sans-serif;
  font-size: 20rem;
  font-weight: bold;
  color: rgba(255, 255, 255, 0.2);
  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 {
  position: relative;
  z-index: 1;
}
#coupon .inner .top_wrap {
  position: relative;
}
#coupon .inner .top_wrap .limited {
  position: absolute;
  top: -1.1rem;
  left: 4.2rem;
  background: url(../images/star_blue.svg) no-repeat center center/contain;
  width: 14.5rem;
  height: 14.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 1;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .limited {
    top: -1.5rem;
    left: -3rem;
    width: 8.75rem;
    height: 8.75rem;
  }
}
#coupon .inner .top_wrap .limited span {
  color: #F5DD33;
  font-size: 3.2rem;
  line-height: 1.2;
  font-weight: 600;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .limited span {
    font-size: 2rem;
  }
}
#coupon .inner .top_wrap .period {
  text-align: center;
  color: #014983;
  line-height: 1;
  font-size: 4rem;
  transform: rotate(-5deg);
  margin-bottom: 1.5rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .period {
    margin-left: 0.6rem;
    margin-bottom: 1.5rem;
    font-size: 2.4rem;
  }
}
#coupon .inner .top_wrap .period .ja {
  font-family: "Noto Sans JP", sans-serif;
}
#coupon .inner .top_wrap .period .small {
  font-size: 2.4rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .period .small {
    font-size: 1.4rem;
  }
}
#coupon .inner .top_wrap .coupon_image {
  transform: rotate(-5deg);
  width: 53.7rem;
  margin: 0 auto;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .coupon_image {
    width: 100%;
  }
}
#coupon .inner .top_wrap .coupon_image + div {
  margin-top: 4rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .coupon_image + div {
    margin-top: 2rem;
  }
}
#coupon .inner .top_wrap .code {
  display: flex;
  gap: 2rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .code {
    display: block;
  }
}
#coupon .inner .top_wrap .code dl {
  border-radius: 0.5rem;
  overflow: hidden;
  border: solid 2px #014983;
  background: #fff;
  display: flex;
  align-items: center;
  text-align: center;
  line-height: 1.2;
  width: 60%;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .code dl {
    width: 100%;
  }
}
#coupon .inner .top_wrap .code dl dt {
  width: 25%;
  background: #014983;
  color: #fff;
  padding: 0.5em 0;
  font-size: 1.6rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .code dl dt {
    font-size: 1.4rem;
  }
}
#coupon .inner .top_wrap .code dl dd {
  width: 75%;
  font-size: 3rem;
  color: #014983;
  font-weight: 600;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .code dl dd {
    font-size: 2.4rem;
  }
}
#coupon .inner .top_wrap .code .click_copy {
  cursor: pointer;
  position: relative;
  background: #d9d9d9;
  border: solid 1px #fff;
  border-radius: 0.5rem;
  font-size: 1.4rem;
  line-height: 1.2;
  font-weight: 600;
  width: 40%;
  text-align: center;
  padding: 0.75em 0;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .code .click_copy {
    width: 100%;
    font-size: 1.2rem;
    margin-top: 1rem;
  }
}
#coupon .inner .top_wrap .code .click_copy::after {
  position: absolute;
  content: "";
  top: 50%;
  right: 1.5em;
  width: 1.5em;
  height: 1.5em;
  background: url(../images/campaign/icon_copy.svg) no-repeat center/contain;
  transform: translateY(-50%);
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .code .click_copy::after {
    right: 3.6em;
  }
}
#coupon .inner .top_wrap .code + div {
  margin-top: 5rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .code + div {
    margin-top: 3rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap {
  margin-top: 4rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .accordion_wrap {
    margin-top: 3rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap .accordion {
  background: #000018;
  color: #fff;
  text-align: center;
  padding: 0.5em 0;
  cursor: pointer;
  border-radius: 6px;
}
#coupon .inner .top_wrap .accordion_wrap .accordion.detail {
  position: relative;
  font-size: 1.6rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .accordion_wrap .accordion.detail {
    font-size: 1.4rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap .accordion.detail::before {
  content: "";
  background: url("../../images/icon_down_1.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.show {
  border-radius: 6px 6px 0 0;
}
#coupon .inner .top_wrap .accordion_wrap .accordion.detail.show::before {
  transform: translate3d(0, -50%, 0) scale3d(-1, -1, -1);
}
#coupon .inner .top_wrap .accordion_wrap .box {
  background: #fff;
  display: none;
  line-height: 1.6;
  padding: 2rem 2.5rem 2.5rem 2.5rem;
  border-radius: 0 0 6px 6px;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .accordion_wrap .box {
    padding: 1.5rem 1.5rem 2.5rem 1.5rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content {
  width: 85%;
  margin: 0 auto;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content {
    width: 100%;
  }
}
#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: 4rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .note_wrap + div {
    margin-top: 3rem;
  }
}
#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;
  padding: 2.5rem 4rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap {
    padding: 2rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex {
  width: calc(50% - 1.75rem);
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .accordion_wrap .box.how_to_use .content .monthly_fee .content_wrap .ex {
    width: 100%;
  }
}
#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;
}
#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 .ff_barlow {
  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: 600;
}
#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 .ff_barlow {
  font-size: 2rem;
}
#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: 2.5rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .accordion_wrap + .accordion_wrap {
    margin-top: 2rem;
  }
}
#coupon .inner .top_wrap .accordion_wrap + .cv-btn {
  margin-top: 5rem;
}
@media only screen and (max-width: 768px) {
  #coupon .inner .top_wrap .accordion_wrap + .cv-btn {
    margin-top: 3rem;
  }
}

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

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