@charset "UTF-8";
/* ==========================================================================
  ELEMENT RESET
========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  font-family: serif;
}
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #3c3c3c;
  font-weight: 400;
}
h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1em;
  -webkit-margin-before: 0;
  -webkit-margin-after: 0;
}
ol,
ul,
dl {
  margin-top: 0;
  margin-bottom: 0;
}
dd {
  margin-left: 0;
}
ol,
ul {
  margin: 0;
  padding-left: 0;
  list-style: none;
}
a {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
a {
  outline: 0;
}
a:focus,
button:focus {
  outline: 0;
}
em {
  font-style: normal;
}
figure {
  margin: 0;
}
table {
  border-collapse: collapse;
}
button {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
}
button:focus {
  outline: none;
}
input,
button,
select,
textarea {
  line-height: inherit;
}
textarea {
  resize: vertical;
}
fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
legend {
  display: block;
  width: 100%;
  margin-bottom: 0;
  padding: 0;
  line-height: inherit;
}
hr {
  margin: 0;
}
hr {
  margin: 1.5rem 0;
  border: 1px rgb(240, 240, 240) solid;
}

img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
/* ==========================================================================
  UTILL
========================================================================== */
/* 画像置換 */
.u-ir {
  display: block;
  overflow: hidden;
  font: 0/0 a;
  white-space: nowrap;
  text-indent: 100%;
}
/* PC、タブレットで画像置換 */
@media all and (min-width: 768px), print {
  .u-ir--tab-pc {
    display: block;
    overflow: hidden;
    font: 0/0 a;
    white-space: nowrap;
    text-indent: 100%;
  }
}
/* --------------------------------------------------------------------------
  svg
-------------------------------------------------------------------------- */
.c-svg {
  position: relative;
  display: block;
  width: 100%;
}
.c-svg::before {
  display: block;
  padding-top: 100%;
  content: '';
}
.c-svg > svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/* --------------------------------------------------------------------------
  非表示
-------------------------------------------------------------------------- */
/* PCで非表示 */
@media all and (min-width: 1025px), print {
  .u-hide-pc {
    display: none;
  }
}
/* PC、タブレットで非表示 */
@media all and (min-width: 768px), print {
  .u-hide-tab-pc {
    display: none;
  }
}
/* タブレットのみ非表示 */
@media all and (min-width: 768px) and (max-width: 1024px) {
  .u-hide-tab {
    display: none;
  }
}
/* SPで非表示 */
@media all and (max-width: 767px) {
  .u-hide-sp {
    display: none;
  }
}
.u-hide {
  display: none !important;
}
/* --------------------------------------------------------------------------
  カラー
-------------------------------------------------------------------------- */
.u-color-primary {
  color: #0aad75 !important;
}
.u-color-secondary {
  color: #61b53b !important;
}

/* --------------------------------------------------------------------------
  フォント
-------------------------------------------------------------------------- */
@font-face {
  font-family: Noto_Sans_JP;
  font-style: normal;
  font-weight: 100;
  font-display:swap;
  src: url(../fonts/Noto_Sans_JP/NotoSansJP-Thin.otf) format("opentype");
}
@font-face {
  font-family: Noto_Sans_JP;
  font-style: normal;
  font-weight: 300;
  font-display:swap;
  src: url(../fonts/Noto_Sans_JP/NotoSansJP-Light.otf) format("opentype");
}
@font-face {
  font-family: Noto_Sans_JP;
  font-style: normal;
  font-weight: 400;
  font-display:swap;
  src: url(../fonts/Noto_Sans_JP/NotoSansJP-Regular.otf) format("opentype");
}
@font-face {
  font-family: Noto_Sans_JP;
  font-style: normal;
  font-weight: 500;
  font-display:swap;
  src: url(../fonts/Noto_Sans_JP/NotoSansJP-Medium.otf) format("opentype");
}
@font-face {
  font-family: Noto_Sans_JP;
  font-style: normal;
  font-weight: 700;
  font-display:swap;
  src: url(../fonts/Noto_Sans_JP/NotoSansJP-Bold.otf) format("opentype");
}
@font-face {
  font-family: Noto_Sans_JP;
  font-style: normal;
  font-weight: 900;
  src: url(../fonts/Noto_Sans_JP/NotoSansJP-Black.otf) format("opentype");
}

@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 100;
  font-display:swap;
  src: url(../fonts/Roboto/Roboto-Thin.ttf) format("truetype");
}
@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 300;
  font-display:swap;
  src: url(../fonts/Roboto/Roboto-Light.ttf) format("truetype");
}
@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 400;
  font-display:swap;
  src: url(../fonts/Roboto/Roboto-Regular.ttf) format("truetype");
}
@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 500;
  font-display:swap;
  src: url(../fonts/Roboto/Roboto-Medium.ttf) format("truetype");
}
@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 700;
  font-display:swap;
  src: url(../fonts/Roboto/Roboto-Bold.ttf) format("truetype");
}
@font-face {
  font-family: Roboto;
  font-style: normal;
  font-weight: 900;
  src: url(../fonts/Roboto/Roboto-Black.ttf) format("truetype");
}


/* --------------------------------------------------------------------------
  行揃え
-------------------------------------------------------------------------- */
.u-center {
  text-align: center;
}
/* TAB,PCのみテキストセンター */
@media all and (min-width: 768px), print {
  .u-center-tab-pc {
    text-align: center;
  }
}
/* SPのみテキストセンター */
@media all and (max-width: 767px) {
  .u-center-sp {
    text-align: center;
  }
}
.u-justify {
  text-align: justify;
  text-justify: inter-ideograph;
}
.u-combine {
  text-combine-upright: all;
  -webkit-text-combine: horizontal;
  -ms-text-combine-horizontal: all;
}
/* --------------------------------------------------------------------------
  強調
-------------------------------------------------------------------------- */
.u-strong {
  font-weight: 700;
}
.u-em {
  color: #0aad75;
  font-weight: 700;
}
.u-bold {
  font-weight: 700;
}
strong {
  font-weight: 700;
}
.u-caution {
  color: #f72364;
  font-weight: 700;
}
.u-red {
  color: #f72364;
}
body,
button,
input,
optgroup,
select,
textarea {
  font-family: Noto_Sans_JP, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 700;
}
.u-font-en {
  font-family: Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* --------------------------------------------------------------------------
  ROOT FONT SIZE
-------------------------------------------------------------------------- */
/* 16px */
html {
  font-size: 16px;
}
body {
  font-size: 1rem;
}

.js-accordion-toggle::before {
  transition: all 0.3s ease-out;
}
.js-accordion-toggle::after {
  transition: all 0.2s ease-out 0.1s;
}
.is-accordion-active .js-accordion-toggle::before {
  transform: rotate(270deg);
}
.is-accordion-active .js-accordion-toggle::after {
  transform: rotate(180deg);
}
