@charset "UTF-8";
/* Vendors - include bootrap
========================================================================== */
/* Helpers - helpers Variable file along with starting point Mixins and Placeholders.
========================================================================== */
/*
 * Variables
 */
:root {
  /* family: */
  --font-family-text: "Inter", "Noto Sans JP", "Hiragino Sans" , "ヒラギノ角ゴ ProN", Hiragino Kaku Gothic ProN, "メイリオ", Meiryo, "游ゴシック Medium", YuGothic, YuGothicM, sans-serif;
  --font-family-title: "Inter", "Noto Sans JP", "Hiragino Sans" , "ヒラギノ角ゴ ProN", Hiragino Kaku Gothic ProN, "メイリオ", Meiryo, "游ゴシック Medium", YuGothic, YuGothicM, sans-serif;
  --font-family-en: "Inter", "Noto Sans JP", "Hiragino Sans" , "ヒラギノ角ゴ ProN", Hiragino Kaku Gothic ProN, "メイリオ", Meiryo, "游ゴシック Medium", YuGothic, YuGothicM, sans-serif;
  /* Colors: */
  --text-color: #051B46;
  --text-dark-color: #CECECE;
  --loud-color: #DE3556;
  --title-color: #051B46;
  --menu-color: #171E26;
  --primary-btn-color: #FFFFFF;
  /* background: */
  --background-primary-btn: #1778F2;
  --background-primary-btn-dark: #8D8D8D;
  --background-loud: #00AB94;
  /* size */
  --base-font-size: 1.6rem;
  --h1-font-size: 3.2rem;
  --h2-font-size: 2rem;
  --h3-font-size: 1.8rem; }

/*
 * Function
 */
/*
* mixins
*/
@media (min-width: 768px) and (max-width: 991px) {
  .class {
    width: 60%; } }

/*
 * Placeholders
 */
/* Base - reset and typography.
========================================================================== */
/*
 * reset
 */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }
  blockquote:before, blockquote:after, q:before, q:after {
    content: '';
    content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

button {
  background-color: transparent;
  outline: none;
  border: 0;
  cursor: pointer; }

/*
 * Typography
 */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-family-title);
  font-weight: 700;
  color: var(--title-color);
  line-height: 1.4; }

h1 {
  font-size: var(--h1-font-size); }

h2 {
  font-size: var(--h2-font-size);
  margin-bottom: 1.6rem; }

h3 {
  font-size: var(--h3-font-size); }

/* Components - Re-usable site elements.
========================================================================== */
a {
  color: var(--text-color);
  text-decoration: none; }
  a:visited {
    color: var(--text-color);
    text-decoration: none; }
  a:hover, a:visited:hover {
    color: var(--loud-color);
    text-decoration: none; }
  a:focus {
    outline: none;
    text-decoration: none; }

input {
  font-family: var(--font-family-text); }

.more {
  transition: all 300ms ease-in-out;
  -webkit-transition: all 300ms ease-in-out;
  -moz-transition: all 300ms ease-in-out;
  -o-transition: all 300ms ease-in-out; }

.btn-primary {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  padding: 0 2rem;
  width: auto;
  height: 5rem;
  background: #32A7E4;
  border-radius: 1rem;
  font-size: 1.5rem;
  color: #FFFFFF !important;
  font-weight: 700;
  font-family: var(--font-family-text); }
  .btn-primary:hover {
    opacity: 0.7; }

@-webkit-keyframes notificationHidden {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    right: -10px;
    display: none;
    pointer-events: none; } }

@keyframes notificationHidden {
  0% {
    opacity: 1; }
  100% {
    opacity: 0;
    right: -10px;
    display: none;
    pointer-events: none; } }

/* Layout - Structure and layout files.
========================================================================== */
/* -------------------->>> COMMON <<<-------------------- */
* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

html {
  font-size: 10px; }

body {
  background: #F7F7F7;
  font-family: var(--font-family-title);
  color: var(--text-color);
  font-size: var(--base-font-size);
  line-height: 1.5;
  overflow-x: hidden;
  font-weight: 400;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  text-align: justify;
  text-justify: inter-ideograph;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: 0.05em;
  width: 100%; }

hr {
  -moz-border-bottom-colors: none;
  -moz-border-left-colors: none;
  -moz-border-right-colors: none;
  -moz-border-top-colors: none;
  border-color: #000 -moz-use-text-color -moz-use-text-color;
  -o-border-image: none;
     border-image: none;
  border-style: solid none none;
  border-width: 0.2em 0 0 0;
  margin: 0; }

.container {
  width: 100%;
  max-width: 131rem;
  padding: 0 1.5rem;
  margin: 0 auto; }

p {
  margin-bottom: 1.5rem; }

input {
  font-family: var(--font-family-text); }

input:focus {
  outline: none; }

a img {
  transition: all 400ms ease-in-out;
  -webkit-transition: all 400ms ease-in-out;
  -moz-transition: all 400ms ease-in-out;
  -o-transition: all 400ms ease-in-out; }
  a img:hover {
    opacity: 0.7; }

img {
  width: auto;
  height: auto;
  max-width: 100%;
  vertical-align: middle; }

.hidden {
  display: none !important; }

.login-box {
  width: 100vw;
  height: 100vh;
  padding: 8rem 2rem;
  background-image: url("../images/login-bg.webp");
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: cover; }
  .login-box__main {
    width: 100%;
    max-width: 57rem;
    margin: 0 auto;
    background: #FFFFFF;
    padding: 5rem 5rem 2.5rem;
    border-radius: 1rem;
    -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
            box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); }
    .login-box__main--logo {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-align: center;
      -webkit-align-items: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
      -webkit-justify-content: center;
          -ms-flex-pack: center;
              justify-content: center;
      text-align: center;
      gap: 4.3rem;
      margin-bottom: 2.2rem; }
      .login-box__main--logo img {
        width: 100%;
        height: auto; }
      .login-box__main--logo a {
        -webkit-box-flex: 1;
        -webkit-flex: 1 0 0%;
            -ms-flex: 1 0 0%;
                flex: 1 0 0%;
        width: 100%; }
      .login-box__main--logo h3 {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 auto;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        font-size: 2rem;
        line-height: 2.9rem;
        color: #051B46; }
    .login-box__main .form-group {
      position: relative;
      margin-bottom: 2rem; }
      .login-box__main .form-group input {
        width: 100%;
        height: 4.2rem;
        border: none;
        border-radius: 1rem;
        padding: 0 1.2rem;
        -webkit-box-shadow: none;
                box-shadow: none;
        font-size: 1.5rem;
        border: 1px solid #DDDDDD;
        background: #F8F8F8; }
        .login-box__main .form-group input::-webkit-input-placeholder {
          color: var(--text-dark-color); }
        .login-box__main .form-group input::-moz-placeholder {
          color: var(--text-dark-color); }
        .login-box__main .form-group input:-ms-input-placeholder {
          color: var(--text-dark-color); }
        .login-box__main .form-group input::-ms-input-placeholder {
          color: var(--text-dark-color); }
        .login-box__main .form-group input::placeholder {
          color: var(--text-dark-color); }
        .login-box__main .form-group input.error {
          border-color: var(--loud-color); }
      .login-box__main .form-group label {
        display: -webkit-inline-box;
        display: -webkit-inline-flex;
        display: -ms-inline-flexbox;
        display: inline-flex;
        margin-bottom: 1rem;
        font-size: 1.5rem;
        line-height: 2.1rem;
        font-weight: 700; }
      .login-box__main .form-group:last-child {
        text-align: center;
        margin-bottom: 3.8rem; }
        .login-box__main .form-group:last-child p {
          font-size: 1.2rem;
          line-height: 1.7rem; }
    .login-box__main .messenger {
      margin-bottom: 2rem;
      text-align: center;
      font-size: 1.5rem;
      line-height: 2.1rem;
      font-weight: 700; }
      .login-box__main .messenger.error {
        margin-bottom: 1.6rem;
        font-size: 1.6rem;
        line-height: 1.8rem;
        color: var(--loud-color); }
    .login-box__main .more {
      width: 100%;
      margin-bottom: 3.7rem; }
    .login-box__main .partner {
      text-align: center; }
      .login-box__main .partner figure {
        margin-bottom: 2.1rem; }
      .login-box__main .partner p {
        margin-bottom: 0;
        font-size: 1.2rem;
        line-height: 1.7rem; }
    .login-box__main--link {
      display: grid;
      -webkit-box-pack: end;
      -webkit-justify-content: flex-end;
          -ms-flex-pack: end;
              justify-content: flex-end;
      gap: 2rem;
      grid-template-columns: auto auto;
      margin-bottom: 3.5rem; }
      .login-box__main--link a {
        font-size: 1.4rem;
        line-height: 2rem;
        color: #051B46 !important;
        margin-bottom: 0 !important; }
        .login-box__main--link a:last-child {
          color: #DE3556 !important; }
        .login-box__main--link a:hover {
          opacity: 0.4; }
    .login-box__main--copyright {
      text-align: right;
      font-size: 1.2rem;
      line-height: 1.7rem;
      color: #051B46;
      opacity: 0.5; }
  .login-box.--home .login-box__main {
    max-width: 82rem; }
    .login-box.--home .login-box__main--logo {
      margin-bottom: 4rem; }
      .login-box.--home .login-box__main--logo a {
        width: 100%;
        max-width: 45rem; }
      .login-box.--home .login-box__main--logo h3 {
        font-size: 1.8rem;
        line-height: 2.6rem; }
    .login-box.--home .login-box__main .partner {
      display: grid;
      gap: 2rem;
      grid-template-columns: 1fr 1fr;
      margin-bottom: 4.5rem; }
      .login-box.--home .login-box__main .partner figure {
        margin-bottom: 0; }

.content__notification {
  min-width: 41.2rem;
  padding: 0 3.3rem 0 1.5rem;
  height: 5.4rem;
  background: #22b2b2;
  border-radius: 1rem;
  position: fixed;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  top: 1.5rem;
  right: 1rem;
  z-index: 10;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  align-items: center; }
  .content__notification--error {
    background: #de3656; }
  .content__notification--hidden {
    -webkit-animation: notificationHidden 0.3s ease-in-out both;
    animation: notificationHidden 0.3s ease-in-out both; }
  .content__notification p {
    font-size: 1.5rem;
    line-height: 2.1rem;
    font-weight: 700;
    color: #FFFFFF;
    margin-bottom: 0; }
  .content__notification .button--close {
    width: 1.5rem;
    height: 1.5rem;
    background: none;
    background-image: url("../images/icon_close.svg");
    position: absolute;
    top: 50%;
    right: 1.8rem;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    cursor: pointer;
    padding: 0;
    border: none;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none; }

/* layout - Responsive .
========================================================================== */
@media (max-width: 768px) {
  .login-box__main {
    padding: 3rem; }
    .login-box__main .partner {
      grid-template-columns: 1fr !important; }
  .content__notification {
    min-width: auto;
    width: 100%;
    right: 0;
    border-radius: 0; } }
