/* ################# ################# ################# ################# ################# ################# */
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;700&family=Noto+Sans+JP:wght@300;400;700&family=Noto+Serif+JP:wght@300;400;700&display=swap');

html {
  font-family: 'Noto Sans JP', "-apple-system", "BlinkMacSystemFont", "Helvetica Neue", "Arial", "Yu Gothic", "Roboto", "Droid Sans", "YuGothic", "Verdana", "Meiryo", "M+ 1p", "sans-serif";
  /* フォントのサイズは  1rem = 12.5～16.5px  でレスポンシブ */
  font-size: calc(12.5px + ((100vw - 320px) / 160));
  color: #333333;
  line-height: 1;
  -webkit-user-select: none;
  user-select: none;
  scroll-behavior: smooth;
  overflow-x: hidden;
  /* overflow-y: hidden; */
}

@media screen and (min-width:960px) {
  html {
    font-size: 16.5px;
  }
}

@media screen and (max-width:320px) {
  html {
    font-size: 12.5px;
  }
}

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
  margin: 0 0 0 0;
}

/* ################# ################# ################# ################# ################# ################# */
/* ################# ################# ################# ################# ################# ################# */

html {
  position: relative;
  width: 100%;
  height: 100%;
}

body {
  position: relative;
  width: 100%;
  height: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* ################# ################# ################# ################# ################# ################# */
.fl_row {
  display: flex;
  justify-content: center;
  align-items: center;
}

.fl_row_re {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: row-reverse;
}

.fl_col {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}

.fl_col_re {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column-reverse;
}

.fl_wrap {
  flex-wrap: wrap;
}

.fl_row_re.left,
.fl_col_re.top,
.fl_row.left,
.fl_col.top {
  justify-content: flex-start;
}

.fl_row_re.right,
.fl_col_re.bottom,
.fl_row.right,
.fl_col.bottom {
  justify-content: flex-end;
}

.fl_row_re.top,
.fl_col_re.left,
.fl_row.top,
.fl_col.left {
  align-items: flex-start;
}

.fl_row_re.bottom,
.fl_col_re.right,
.fl_row.bottom,
.fl_col.right {
  align-items: flex-end;
}

.fl_row_re.x_stretch,
.fl_col_re.y_stretch,
.fl_row.x_stretch,
.fl_col.y_stretch {
  justify-content: stretch;
}

.fl_row_re.y_stretch,
.fl_col_re.x_stretch,
.fl_row.y_stretch,
.fl_col.x_stretch {
  align-items: stretch;
}

.bttn {
  text-decoration: none;
  color: inherit;
  transition: all ease 300ms;
  cursor: pointer;
}

.bttn.flm {
  border-radius: 4px;
  border: 1px solid;
}

.posi_re {
  position: relative;
}

.posi_ab {
  position: absolute;
}

.posi_fx {
  position: fixed;
}

.rad_maru {
  border-radius: 50%;
}

.f_gosi {
  font-family: 'Noto Sans JP', sans-serif;
}

.f_mint {
  font-family: 'Noto Serif JP', serif;
}

.f_udgosi {
  font-family: 'BIZ UDPGothic', sans-serif;
}

.f_udmint {
  font-family: 'BIZ UDPMincho', serif;
}

.f_marug {
  font-family: 'M PLUS Rounded 1c', sans-serif;
}

.f_alpha {
  font-family: 'Lexend', sans-serif;
}

@media print {
  .print_off {
    display: none;
  }
}

@media screen {
  .screen_off {
    visibility: hidden;
    /* width: 0;
    height: 0;
    overflow-x: hidden;
    overflow-y: hidden;
    border: none;
    padding: 0 0 0 0;
    margin: 0 0 0 0; */
  }
}

@media screen {
  .screen_off {
    display: none;
  }
}

input:invalid {
  color: red;
}