@charset "UTF-8";
/* Common CSS */
/* ___________________Font */
body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
code,
form,
fieldset,
legend,
input,
textarea,
p,
blockquote,
th,
td {
  color: #3e3e3e;
  font-weight: 500;
  margin: 0;
  padding: 0;
}

/* Smartphones (portrait and landscape) */
@media screen and (max-width: 780px) {
  .pc {
    display: none;
  }
  .sp_bg_wrap {
    background-color: #AFDDFF;
    position: relative;
    /* 疑似要素共通設定 */
    /* 右→左の移動アニメーション */
  }
  .sp_bg_wrap .sp_bg {
    position: fixed;
    inset: 0;
    overflow: hidden;
    z-index: -1;
    background-image: url(../images/common/sp_login_bg_btm.png);
    background-repeat: repeat-x;
    background-size: contain;
    background-position: center bottom;
  }
  .sp_bg_wrap .walker01,
  .sp_bg_wrap .walker02 {
    position: absolute;
    bottom: 20px;
    pointer-events: none;
    z-index: -1;
  }
  .sp_bg_wrap .walker01 {
    right: -130px;
    width: 120px;
    height: 90px;
    animation: walk-rl 18s linear infinite;
    animation-delay: 0s;
  }
  .sp_bg_wrap .walker02 {
    right: -90px;
    width: 80px;
    height: 126px;
    animation: walk-rl 20s linear infinite;
    animation-delay: 6s;
  }
  @keyframes walk-rl {
    0% {
      transform: translateX(0);
    }
    100% {
      transform: translateX(-150vw);
      /* 画面幅よりさらに左に出る */
    }
  }
  .sp_wrapper {
    width: 100%;
    padding: 75px 20px 110px;
  }
  #header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 99;
  }
  #header #menu_wrap {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    overflow-x: hidden;
    pointer-events: none;
  }
  #header #menu_wrap #menu {
    position: absolute;
    top: 0;
    right: -100vw;
    height: 100vh;
  }
  #header #menu_wrap.open {
    pointer-events: auto;
  }
  #header #menu_wrap.open #menu {
    transform: translateX(-100vw);
  }
  #header #menu_wrap.close #menu {
    transform: translateX(0);
  }
  #footer {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 98;
  }
  #footer::before {
    content: "";
    width: 100%;
    height: 10px;
    background-image: url("../images/common/footer_w.png");
    background-size: cover;
    display: block;
    position: absolute;
    top: -3px;
  }
  .spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid #f39800;
    border-radius: 50%;
    animation: spin 1s linear infinite;
  }
  @keyframes spin {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  }
}
/* ___________________PC layout */
@media screen and (min-width: 781px) {
  .sp {
    display: none;
  }
  .pc_bg {
    background-image: url("../images/common/pc_bg.png");
    background-size: cover;
    background-position: bottom center;
    background-repeat: repeat-x;
    position: fixed;
    inset: 0;
    min-height: 100vh;
  }
  /* 疑似要素共通設定 */
  .pc_bg::before,
  .pc_bg::after {
    content: "";
    position: absolute;
    bottom: 40px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center bottom;
    pointer-events: none;
    z-index: -1;
  }
  .pc_bg::before {
    right: -350px;
    width: 335px;
    height: 254px;
    background-image: url("../images/common/walker01.png");
    animation: walk-rl 30s linear infinite;
    animation-delay: 0s;
  }
  .pc_bg::after {
    right: -190px;
    width: 184px;
    height: 286px;
    background-image: url("../images/common/walker02.png");
    animation: walk-rl 35s linear infinite;
    animation-delay: 10s;
  }
  /* 右→左の移動アニメーション */
  @keyframes walk-rl {
    0% {
      transform: translateX(0);
    }
    /* 画面右端から開始 */
    25% {
      transform: translateX(-30vw) translateY(-4px);
    }
    50% {
      transform: translateX(-60vw) translateY(0);
    }
    75% {
      transform: translateX(-90vw) translateY(-4px);
    }
    100% {
      transform: translateX(-120vw);
    }
    /* 画面左外まで移動 */
  }
  .sp_wrapper {
    position: relative;
    overflow: hidden;
    width: 480px;
    min-height: 100vh;
    margin-left: auto;
    margin-right: auto;
    padding: 80px 20px;
    overflow-x: hidden;
  }
  .pc_login {
    align-items: center;
  }
  #header {
    position: fixed;
    top: 0;
    transform: translateX(-50%);
    left: 50%;
    width: 480px;
    z-index: 99;
  }
  #header #menu_wrap {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    overflow-x: hidden;
    pointer-events: none;
  }
  #header #menu_wrap #menu {
    position: absolute;
    top: 0;
    right: -480px;
    height: 100vh;
  }
  #header #menu_wrap.open {
    pointer-events: auto;
  }
  #header #menu_wrap.open #menu {
    transform: translateX(-480px);
  }
  #header #menu_wrap.close #menu {
    transform: translateX(0);
  }
  #footer {
    position: fixed;
    bottom: 0;
    transform: translateX(-50%);
    left: 50%;
    width: 480px;
    z-index: 98;
  }
  #footer::before {
    content: "";
    width: 100%;
    height: 10px;
    background-image: url("../images/common/footer_w.png");
    background-size: cover;
    display: block;
    position: absolute;
    top: -3px;
  }
  .spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid #f39800;
    border-radius: 50%;
    animation: spin 1s linear infinite;
  }
  @keyframes spin {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  }
}