@charset "utf-8";
/*---------- html/body ----------*/
html {
  scroll-behavior: smooth;
  background: var(--color_base);
}
body {
  overflow-x: hidden;
  padding-top: var(--site-header_height);
  background: #fff;
}

html,body {
  width: 100%;
  height: 100%;
  font-family: var(--font_body);
  font-weight: 500;
  color: var(--color_txt_base);
}
html,body,
:where(p, h1, h2, h3, h4, h5, h6) {
  line-height: 1.4;
  font-size: 3.47vw;
}
main {
  overflow: hidden;
}

@media screen and (min-width: 376px) {
  html, body,
  :where(p, h1, h2, h3, h4, h5, h6) {
    font-size: 13px; /* スマートフォン基準 */
  }
}
@media screen and (min-width: 768px) {
  html, body,
  :where(p, h1, h2, h3, h4, h5, h6) {
    font-size: 14px; /* タブレット基準 */
  }
}
@media screen and (min-width: 1001px) {
  html, body,
  :where(p, h1, h2, h3, h4, h5, h6) {
    font-size: 15px; /* デスクトップ基準 */
  }
}
@media screen and (min-width: 1201px) {
  html, body,
  :where(p, h1, h2, h3, h4, h5, h6) {
    font-size: 16px; /* デスクトップ基準 */
  }
}
/*---------- link ----------*/
a {
  outline: none;
  text-decoration: none;
  color: var(--color_txt_base);
  transition: .3s;
}

/*---------- マウスオーバー ----------*/
.ov{
  display:inline-block;
}

@media (hover: hover) and (pointer: fine) {
  .ov{
    transition: .3s ease;
    cursor: pointer;
  }
  .ov:hover{
    opacity: .75;
    text-decoration: none;
  }
  .ov_line{
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
    transition: text-decoration-color 0.3s ease;
  }
  .ov_line:hover{
    text-decoration-color: currentColor;
  }
}
/*---------- font ----------*/
.font_regular {
  font-weight: 400;
}
.font_medium {
  font-weight: 500;
}
.font_bold {
  font-weight: 700;
}
.font_josefin { /*google font*/
  font-family: 'Josefin Sans', 'Yu Gothic medium', YuGothic, 'Hiragino Sans', Meiryo, sans-serif;
}
.font_gothic { /*google font*/
  font-family: 'Yu Gothic medium', YuGothic, 'Hiragino Sans', Meiryo, sans-serif;
}
.font_mincho { /*google font*/
  font-family: YuMincho, 'Yu Mincho', 'Hiragino Mincho ProN', serif;
}
.font_size50 {
  font-weight: inherit;
  font-size: 50%;
}
.font_size60 {
  font-weight: inherit;
  font-size: 60%;
}
.font_size70 {
  font-weight: inherit;
  font-size: 70%;
}
.font_size75 {
  font-weight: inherit;
  font-size: 75%;
}
.font_size80 {
  font-weight: inherit;
  font-size: 80%;
}
.font_size85 {
  font-weight: inherit;
  font-size: 85%;
}
.font_size90 {
  font-weight: inherit;
  font-size: 90%;
}
.font_size95 {
  font-weight: inherit;
  font-size: 95%;
}
.font_size100 {
  font-weight: inherit;
  font-size: 100%;
}
.font_size110 {
  font-weight: inherit;
  font-size: 110%;
}
.font_size120 {
  font-weight: inherit;
  font-size: 120%;
}
.font_size130 {
  font-weight: inherit;
  font-size: 130%;
}
.font_size140 {
  font-weight: inherit;
  font-size: 140%;
}
.font_size150 {
  font-weight: inherit;
  font-size: 150%;
}
.font_size160 {
  font-weight: inherit;
  font-size: 160%;
}
.font_size170 {
  font-weight: inherit;
  font-size: 170%;
}
.font_size180 {
  font-weight: inherit;
  font-size: 180%;
}
.font_size200 {
  font-weight: inherit;
  font-size: 200%;
}
/*---------- text ----------*/
.text_center {
  text-align: center;
}

/*---------- color ----------*/
.color_red {
  color: #e60012;
}
.color_navy {
  color: #0a2e6c;
}
.color_blue {
  color: var(--color_main);
}
.color_000 {
  color: #000;
}
.color_333 {
  color: #333;
}

/*---------- indent ----------*/
.ind_1em {
  text-indent: -1em;
  margin-left: 1em;
}

/*---------- display ----------*/
.display_none {
  display: none;
}
.display_block {
  display: block;
}
.inline_block {
  display: inline-block;
}
/*---------- flex ----------*/
.flex {
  display: flex;
  flex-grow: 1;
}

/*---------- margin ----------*/
.mt_00 {
  margin-top: 0 !important;
}
.mt_05em {
  margin-top: .5em !important;
}
.mt_06em {
  margin-top: .6em !important;
}
.mt_07em {
  margin-top: .7em !important;
}
.mt_1em {
  margin-top: 1em !important;
}
.mt_2em {
  margin-top: 2em !important;
}
.mt_3em {
  margin-top: 3em !important;
}
.mt_4em {
  margin-top: 4em !important;
}
.mt_5em {
  margin-top: 5em !important;
}
.ml_1em {
  margin-left: 1em !important;
}

/* -----------------------------------------------------------------
 for_sp / for_pc
----------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  :where(.for_sp) {
    display: block;
  }
  .for_pc {
    display: none;
  }
  .for_pc_inline {
    display: none;
  }
}
@media print, screen and (min-width: 768px) {
  .for_sp {
    display: none;
  }
  .for_sp_inline {
    display: none;
  }
  :where(.for_pc) {
    display: block;
  }
}
