@charset "UTF-8";

/*====================================================================
 * チェックボックス
====================================================================*/
.checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: .5em 4em;
  border: none;
}

.checkbox label {
  display: flex;
  align-items: center;
  gap: 0 .5em;
  position: relative;
  cursor: pointer;
}

.checkbox label::before,
.checkbox label:has(:checked)::after {
  content: '';
}

.checkbox label::before {
  width: 16px;
  height: 16px;
  border-radius: 3px;
  border: 1px solid #cecece;
}

.checkbox label:has(:checked)::before {
  background-color: #357deb;
}

.checkbox label:has(:checked)::after {
  position: absolute;
  top: 2px;
  left: 6px;
  transform: rotate(45deg);
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
}

.checkbox input {
  display: none;
}

@media only screen and (max-width: 820px) {
  .checkbox label::before {
    width: 4.27vw;
    height: 4.27vw;
    border-radius: 0.8vw;
  }

  .checkbox label:has(:checked)::after {
    top: 0.53vw;
    left: 1.6vw;
    width: 1.07vw;
    height: 2.13vw;
    border-width: 0 0.53vw 0.53vw 0;
  }
}

/*====================================================================
 * その他共通パーツ
====================================================================*/
.login input {
  padding: 10px 10px 8px;
  width: 100%;
  font-size: 1.6rem;
  border: 1px solid #cecece;
}

.login input::placeholder {
  color: #cecece;
}

.buttonDefault {
  margin: 30px auto 0;
  padding: 16px 0;
  width: 250px;
  background-color: #db8245;
}

.buttonDefault:hover {
  background-color: #d36d27;
}

.buttonDefault::before {
  display: none;
}

.link {
  display: block;
  margin-top: 28px;
  font-size: 1.4rem;
  text-align: center;
  color: #357deb;
}

.link:hover {
  text-decoration: underline;
}



.buttonDefaultNotScrolled {
  margin: 36px auto 0;
  padding: 16px 0;
  width: 250px;
  background-color: #c0c0c0;
}

.buttonDefaultNotScrolled:hover {
  background-color: #c0c0c0;
}

.buttonDefaultNotScrolled::before {
  display: none;
}

div.notice {
  margin-bottom: 10px;
}

div.reset_notice {
  margin-bottom: 20px;
  text-align: center;
  font-weight: bold;
}

div.success {
  text-align: center;
  color: blue;
  margin-bottom: 10px;
}

div.vspace {
  margin-bottom: 20px;
}

@media only screen and (max-width: 820px) {
  .main.login {
    margin-top: 16.53vw;
  }

  .login input {
    padding: 2.93vw 2.13vw;
    font-size: 3.73vw;
  }

  .buttonDefault {
    margin: 6vw auto 0;
    padding: 4.8vw 0;
    font-size: 4.27vw;
    width: 66.67vw;
  }

  .link {
    margin-top: 5.33vw;
    font-size: 3.73vw;
  }

  .buttonDefaultNotScrolled {
    margin: 8vw auto 0;
    padding: 4.8vw 0;
    font-size: 4.27vw;
    width: 66.67vw;
  }
}

/*====================================================================
 * ログイン
====================================================================*/
.login .main {
  padding: 50px 0 100px;
  background: linear-gradient(90deg, #2348c4 0%, #488bf1 100%);
}

.login .logo {
  margin: 0 auto 50px;
  text-align: center;
  font-size: 5.6rem;
  letter-spacing: 0.05em;
  color: #ffffff;
}

.login .loginBox {
  margin: 0 auto;
  padding: 38px 40px 40px;
  max-width: 600px;
  background: #ffffff;
  border-radius: 20px;
}

.login .loginBoxReset {
  margin: 0 auto;
  padding: 38px 40px 40px;
  max-width: 600px;
  background-color: #ffffff;
  border-radius: 20px;
}

.login .boxTitle {
  margin-bottom: 40px;
  font-size: 2.5rem;
  font-weight: 700;
  text-align: center;
}

.login .inputTitle {
  margin-bottom: 14px;
  font-weight: 700;
}

.login .id,
.login .password {
  margin-bottom: 24px;
}

.login .termsBox {
  padding: 10px;
  max-height: 100px;
  font-size: 1.3rem;
  line-height: 1.7;
  border: 1px solid #cecece;
  overflow: scroll;
}

.login .termsCheckbox {
  margin-top: 20px;
}

.login .checkbox label {
  margin: 0 auto;
}

.terms .pp-txt .link{
  display: inline;
  font-size: unset;
}

div.error {
  color: #f00;
  font-weight: bold;
  padding: 0.5em;
  margin: 0 auto;
  text-align: center;
}

label.not_scrolled {
  color: #c0c0c0;
}

#ankerEnPolicy{
  color: #357deb;
  text-decoration: underline;
  cursor: pointer;
}

.privacy-policy-login{
  font-size: 12px;
  margin-top: 8px;
}

@media only screen and (max-width: 820px) {
  .login .main {
    padding: 8vw 0 16vw;
  }

  .login .logo {
    margin: 0 auto 8vw;
    /*width: 80vw;*/
    font-size: 8vw;
    /*margin: 0 auto 8vw;*/
    /*width: 80vw;*/
  }

  .login {
    margin-top: 4vw;
    font-size: 3.73vw;
  }

  .login .loginBox {
    margin: 0 5.33vw;
    padding: 8vw 4.33vw;
    max-width: 100%;
    border-radius: 2.67vw;
  }

  .login .loginBoxReset {
    margin: 0 5.33vw;
    padding: 18vw 4.33vw;
    max-width: 100%;
    border-radius: 2.67vw;
    background-color: #ffffff;
  }

  .login .boxTitle {
    margin-bottom: 8vw;
    font-size: 5.87vw;
  }

  .login .inputTitle {
    margin-bottom: 3.2vw;
  }

  .login .id,
  .login .password {
    margin-bottom: 5.33vw;
  }

  .login .termsBox {
    padding: 2.67vw;
    font-size: 3.47vw;
    max-height: 26.67vw;
  }

  .login .termsCheckbox {
    margin-top: 5.33vw;
  }
  .privacy-policy-login{
    font-size: 10px;
  }
}
