@charset "UTF-8";
/*
 * Sass    : Dart sass
 * 命名規則 : BEM ベース
 *   [接頭辞]
 *   .-****  : Variant
 *   ._****  : Helpers
 *   .c-**** : 汎用コンポーネント
 *   .l-**** : レイアウト
 *   .f-**** : フォーム系コンポーネント
 */
/**************************************************/
/* helpers */
/**************************************************/
._disp-ib {
  display: inline-block !important;
}

@media (max-width: 1157px) {
  ._view-cw-high {
    display: none !important;
  }
}
@media (min-width: 1158px) {
  ._view-cw-low {
    display: none !important;
  }
}
@media (max-width: 1279px) {
  ._view-xl-high {
    display: none !important;
  }
}
@media (min-width: 1280px) {
  ._view-xl-low {
    display: none !important;
  }
}
@media (max-width: 959px) {
  ._view-lg-high {
    display: none !important;
  }
}
@media (min-width: 960px) {
  ._view-lg-low {
    display: none !important;
  }
}
@media (max-width: 767px) {
  ._view-md-high {
    display: none !important;
  }
}
@media (min-width: 768px) {
  ._view-md-low {
    display: none !important;
  }
}
@media (max-width: 479px) {
  ._view-sm-high {
    display: none !important;
  }
}
@media (min-width: 480px) {
  ._view-sm-low {
    display: none !important;
  }
}
._clearfix {
  zoom: 1;
}
._clearfix:after {
  content: "";
  display: block;
  clear: both;
  overflow: auto;
}

._center {
  text-align: center !important;
}

._left {
  text-align: left !important;
}

._right {
  text-align: right !important;
}

._float-l {
  float: left !important;
}

._float-r {
  float: right !important;
}

._clear {
  clear: both !important;
}

._hidden {
  display: none !important;
}

._disp-ib {
  display: inline-block !important;
}

._margin0 {
  margin: 0 !important;
}

._padding0 {
  padding: 0 !important;
}

._border0 {
  border: none !important;
}

._fixed {
  position: fixed !important;
}

._absolute {
  position: absolute !important;
}

._static {
  position: static !important;
}

._xsmall {
  font-size: 75% !important;
}

._small {
  font-size: 88% !important;
}

._large {
  font-size: 113% !important;
}

._xlarge {
  font-size: 133% !important;
}

._nowrap {
  white-space: nowrap !important;
}

._nobg {
  background: none !important;
}

._full {
  width: 100% !important;
}

/**************************************************/
/* base */
/**************************************************/
:root {
  font-size: 16px;
}

html {
  -webkit-font-smoothing: antialiased;
}

body {
  min-width: 375px;
  padding: 0;
  font-size: 1rem;
  line-height: 1.5;
}
body.-fixed {
  position: fixed;
  width: 100%;
  height: 100%;
}

input,
textarea {
  font-size: 16px;
}

input,
textarea,
select,
button {
  font-family: "Noto Sans JP", "Noto Sans CJK JP", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "ヒラギノ角ゴ Pro", "Hiragino Sans", "游ゴシック体", "YuGothic", "游ゴシック", "Yu Gothic", sans-serif;
}

button,
input[type=button],
input[type=submit] {
  transition: opacity 0.15s ease-out;
}
button:hover,
input[type=button]:hover,
input[type=submit]:hover {
  opacity: 0.7;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: #00A0E8;
  text-decoration: underline;
  transition: opacity 0.15s ease-out;
}
a:hover {
  opacity: 0.7;
}
a:hover {
  text-decoration: none;
}

em {
  font-style: normal;
}

a.-telink,
a.js-telink {
  cursor: default;
  opacity: 1 !important;
}

body._ios a:hover {
  opacity: 1;
}

/**************************************************/
/* pages */
/**************************************************/
.l-main {
  overflow: hidden;
  position: relative;
  padding: 0;
  color: black;
  z-index: 2;
}

.top-mv {
  background: #bae2f8;
}
.top-mv__visual-img {
  display: block;
  max-width: 1920px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  margin: 0 auto;
}
.top-mv__visual-img img {
  width: 100%;
}
.top-mv__bnr {
  margin: 15px 0 0 0;
  display: block;
}
.top-mv__bnr img {
  width: 100%;
}

.top-detail {
  padding: 120px 30px 200px;
  overflow: hidden;
  background: url(../img/bg_detail02.png) no-repeat top right 15px/415px auto, url(../img/bg_detail01.png) no-repeat top left 60px/392px auto;
}
.top-detail__inner {
  max-width: 1130px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  z-index: 2;
}
.top-detail__inner > *:first-child {
  margin-top: 0 !important;
}
.top-detail__item {
  margin: 100px auto 0;
  max-width: 1000px;
}
.top-detail__head {
  margin: auto;
  text-align: center;
  max-width: 16.3125rem;
}
.top-detail__body {
  margin: 30px auto 0;
}
.top-detail__text {
  color: #FF6783;
  font-weight: 500;
  margin: 0;
  font-size: 1.625rem;
  line-height: 1.6;
}
.top-detail__text sup {
  color: black;
}
.top-detail__note {
  margin: 30px 0 0;
  padding-top: 20px;
  font-size: 1rem;
  line-height: 2;
  border-top: dotted 2px #5a5a5a;
  padding-left: 2.5em;
  text-indent: -2.5em;
}
.top-detail__list, .top-detail__list2 {
  display: flex;
  flex-direction: column;
  list-style: none;
  gap: 5px;
  margin: 12px 0 0 0;
  padding: 0;
  font-size: 1.25rem;
  line-height: 1.6;
}
.top-detail__list > li, .top-detail__list2 > li {
  display: block;
  padding-left: 1em;
  position: relative;
}
.top-detail__list > li::before, .top-detail__list2 > li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}
.top-detail__list2 {
  font-size: 1.625rem;
  color: #FF6783;
  font-weight: 500;
  gap: 1.875rem;
}
.top-detail__list2 a {
  color: #0000ff;
}
.top-detail__btn {
  margin-top: 160px;
}
.top-detail__btn > a {
  display: block;
  width: 100%;
  box-sizing: border-box;
}
@media (max-width: 1900px) {
  .top-detail {
    background: url(../img/bg_detail02.png) repeat-y top right 5px/20% auto, url(../img/bg_detail01.png) repeat-y top left 15px/18% auto;
    position: relative;
  }
  .top-detail::before {
    pointer-events: none;
    width: 100%;
    height: 20%;
    bottom: 0;
    left: 0;
    background: white;
    content: "";
    position: absolute;
  }
}
@media (max-width: 1279px) {
  .top-detail {
    background: url(../img/bg_detail02.png) repeat-y top right 5px/16% auto, url(../img/bg_detail01.png) repeat-y top left 15px/14% auto;
  }
}
@media (max-width: 959px) {
  .top-detail {
    padding: 80px 30px 100px;
  }
  .top-detail__head {
    max-width: 220px;
  }
  .top-detail__text {
    font-size: 1.25rem;
  }
  .top-detail__note {
    font-size: 0.875rem;
  }
  .top-detail__list, .top-detail__list2 {
    font-size: 1.125rem;
  }
  .top-detail__list2 {
    font-size: 1.25rem;
  }
  .top-detail__btn {
    margin-top: 100px;
  }
}
@media (max-width: 767px) {
  .top-detail {
    padding: 40px 15px 65px;
    background: none;
  }
  .top-detail::before {
    display: none;
  }
  .top-detail__item {
    margin-top: 50px;
  }
  .top-detail__head {
    max-width: 160px;
  }
  .top-detail__body {
    margin-top: 15px;
  }
  .top-detail__text {
    font-size: 1rem;
  }
  .top-detail__note {
    margin-top: 14px;
    padding-top: 10px;
    font-size: 0.6875rem;
    line-height: 1.7;
  }
  .top-detail__list, .top-detail__list2 {
    font-size: 0.875rem;
    text-align: left;
  }
  .top-detail__list2 {
    font-size: 1rem;
    gap: 1em;
  }
  .top-detail__btn {
    margin-top: 50px;
  }
}

.top-login,
.top-plan {
  position: relative;
}
.top-login::before,
.top-plan::before {
  background: url(../img/bg_snow.png) no-repeat center center/contain;
  width: 2544px;
  height: 564px;
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
@media (max-width: 959px) {
  .top-login::before,
  .top-plan::before {
    width: 2000px;
    height: 420px;
  }
}
.top-login__inner,
.top-plan__inner {
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  padding: 0 60px;
}
@media (max-width: 767px) {
  .top-login__inner,
  .top-plan__inner {
    padding: 0;
  }
}
.top-login__title,
.top-plan__title {
  position: relative;
  z-index: 2;
}
.top-login__btn,
.top-plan__btn {
  margin-top: 30px;
}
.top-login__btn > a,
.top-plan__btn > a {
  display: block;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  box-sizing: border-box;
  position: relative;
  z-index: 3;
}
.top-login__btn > a img,
.top-plan__btn > a img {
  width: 100%;
}
@media (max-width: 767px) {
  .top-login__btn,
  .top-plan__btn {
    margin-top: 20px;
  }
}

.top-login {
  background: url(../img/deco_wave02.png) repeat-x center bottom/auto 30px, #bae2f8;
  padding: 100px 30px 190px;
  margin-top: 30px;
}
@media (max-width: 959px) {
  .top-login {
    padding: 80px 30px 140px;
  }
}
@media (max-width: 767px) {
  .top-login {
    background: url(../img/deco_wave02.png) repeat-x center bottom/auto 15px, #bae2f8;
    padding: 115px 15px 70px;
    margin-top: 15px;
  }
}
@media (max-width: 767px) {
  .top-login::before {
    background: url(../img/bg_snow_sp1.png) no-repeat center center/contain;
    width: 96%;
    height: 84%;
  }
}
.top-login::after {
  width: 100%;
  height: 30px;
  content: "";
  position: absolute;
  top: -29px;
  left: 50%;
  transform: translateX(-50%);
  background: url(../img/deco_wave01.png) repeat-x center top/auto 30px;
}
@media (max-width: 767px) {
  .top-login::after {
    background: url(../img/deco_wave01.png) repeat-x center top/auto 15px;
    height: 15px;
    top: -14px;
  }
}
.top-login__inner::before {
  position: absolute;
  content: "";
  max-width: 9%;
  width: 113px;
  height: 168px;
  background: url(../img/point5-deco01.png) no-repeat center center/contain;
  left: 20px;
  top: -60px;
}
@media (max-width: 767px) {
  .top-login__inner::before {
    width: 56px;
    height: 84px;
    max-width: none;
    left: auto;
    right: 52%;
    top: -90px;
  }
}
.top-login__inner::after {
  position: absolute;
  content: "";
  max-width: 12%;
  width: 157px;
  height: 197px;
  background: url(../img/point5-deco02.png) no-repeat center center/contain;
  right: 0;
  bottom: -95px;
}
@media (max-width: 1279px) {
  .top-login__inner::after {
    right: -10px;
    bottom: -130px;
  }
}
@media (max-width: 767px) {
  .top-login__inner::after {
    max-width: none;
    width: 77px;
    height: 95px;
    left: 52%;
    right: auto;
    bottom: auto;
    top: -100px;
  }
}
.top-login__title {
  max-width: 590px;
  width: 72%;
  margin: 0 auto;
}
.top-login__title img {
  width: 100%;
}
@media (max-width: 767px) {
  .top-login__title {
    width: 88%;
  }
}

.top-plan {
  padding: 60px 30px 100px;
  background: #fff100;
}
@media (max-width: 959px) {
  .top-plan {
    padding-bottom: 80px;
  }
}
@media (max-width: 767px) {
  .top-plan {
    padding: 80px 15px 60px;
  }
}
@media (max-width: 767px) {
  .top-plan::before {
    background: url(../img/bg_snow_sp2.png) no-repeat center center/contain;
    width: 96%;
    height: 94%;
  }
}
.top-plan::after {
  width: 100%;
  height: 30px;
  content: "";
  position: absolute;
  bottom: -29px;
  left: 50%;
  transform: translateX(-50%);
  background: url(../img/deco_wave03.png) repeat-x center top/auto 30px;
}
@media (max-width: 767px) {
  .top-plan::after {
    background: url(../img/deco_wave03.png) repeat-x center top/auto 15px;
    height: 15px;
    bottom: -14px;
  }
}
.top-plan__inner::before {
  position: absolute;
  content: "";
  max-width: 10%;
  width: 129px;
  height: 239px;
  background: url(../img/point10-deco01.png) no-repeat center center/contain;
  left: 30px;
  top: 10px;
}
@media (max-width: 1279px) {
  .top-plan__inner::before {
    left: -10px;
    top: 40px;
  }
}
@media (max-width: 767px) {
  .top-plan__inner::before {
    max-width: none;
    width: 64px;
    height: 120px;
    left: 40px;
    top: -102px;
  }
}
.top-plan__inner::after {
  position: absolute;
  content: "";
  max-width: 12%;
  width: 156px;
  height: 281px;
  background: url(../img/point10-deco02.png) no-repeat center center/contain;
  right: -5px;
  bottom: -30px;
}
@media (max-width: 1279px) {
  .top-plan__inner::after {
    right: -10px;
    bottom: 80px;
  }
}
@media (max-width: 959px) {
  .top-plan__inner::after {
    bottom: 30px;
  }
}
@media (max-width: 767px) {
  .top-plan__inner::after {
    max-width: none;
    width: 77px;
    height: 140px;
    bottom: auto;
    right: 45px;
    top: -110px;
  }
}
.top-plan__title {
  max-width: 783px;
  margin: 0 auto;
}
.top-plan__title img {
  width: 100%;
}
.top-plan__note {
  padding-left: 1em;
  text-indent: -1em;
  margin: 1em 0 0 0;
  text-align: center;
  letter-spacing: 0.02em;
}
@media (max-width: 959px) {
  .top-plan__note {
    font-size: 0.875rem;
  }
}
@media (max-width: 767px) {
  .top-plan__note {
    font-size: 0.6875rem;
    margin-top: 0.7em;
  }
}

.top-bottom {
  background: url(../img/bg_bottom.png) no-repeat center bottom/cover, white;
  padding: 300px 30px 120px;
}
.top-bottom__inner {
  max-width: 1920px;
  margin-left: auto;
  margin-right: auto;
}
.top-bottom__img {
  margin: 0 auto;
  max-width: 1316px;
}
.top-bottom__img img {
  width: 100%;
}
@media (max-width: 1279px) {
  .top-bottom {
    padding-top: 200px;
  }
}
@media (max-width: 959px) {
  .top-bottom {
    padding-top: 150px;
    padding-bottom: 80px;
  }
}
@media (max-width: 767px) {
  .top-bottom {
    margin-top: -30px;
    padding: 0;
    background: none;
  }
}

.top-fixed {
  display: block;
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 12.2916666667%;
  max-width: 236px;
  transition: all 0.2s ease;
  z-index: 99;
}
.top-fixed__btn {
  display: block;
  z-index: 1;
  transition: all 0.3s ease;
  width: 100%;
}
.top-fixed__btn img {
  width: 100%;
}
.top-fixed__btn:hover {
  opacity: 1;
}
.top-fixed.-hidden {
  opacity: 0;
  visibility: hidden;
}
@media (min-width: 768px) {
  .top-fixed__btn:hover {
    transform: scale(1.05);
  }
}
@media (max-width: 959px) {
  .top-fixed {
    right: 20px;
  }
}
@media (max-width: 767px) {
  .top-fixed {
    bottom: 0;
    left: 0;
    right: auto;
    width: 100%;
    max-width: none;
  }
}