/* ========================================
 * Base Reset
 * ======================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
  padding: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

body {
  font-family: "Noto Sans JP", Arial, "Hiragino Sans", Meiryo, sans-serif;
  line-height: 1.5;
  color: #222;
  background-color: #fff;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

button,
input,
select,
textarea {
  font: inherit;
}

/* ========================================
 * Utility
 * ======================================== */

.w-full {
  width: 100%;
}

.mx-auto {
  margin-inline: auto;
}

.text-center,
.u-center {
  text-align: center;
}

.u-left {
  text-align: left;
}

.u-right {
  text-align: right;
}

.img-fluid {
  display: block;
  width: 100%;
  height: auto;
}

/* ========================================
 * Accessibility
 * ======================================== */

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ========================================
 * Responsive Utility
 * ======================================== */

/* SPのみ改行 */
.sp-br {
  display: none;
}

@media screen and (max-width: 767px) {
  .sp-br {
    display: block;
  }
}

/* PCのみ改行 */
.pc-br {
  display: block;
}

@media screen and (max-width: 767px) {
  .pc-br {
    display: none;
  }
}

/* SPだけ非表示 */
.sp-none {
  display: block;
}

@media screen and (max-width: 767px) {
  .sp-none {
    display: none !important;
  }
}

/* PCだけ非表示 */
.pc-none {
  display: none;
}

@media screen and (max-width: 767px) {
  .pc-none {
    display: block;
  }
}

/* SPだけ中央寄せ */
@media screen and (max-width: 767px) {
  .u-sp-center {
    text-align: center;
  }
}

/* PC/SP表示切替 */
.only-sp {
  display: none;
}

.only-pc {
  display: block;
}

@media screen and (max-width: 767px) {
  .only-sp {
    display: block;
  }

  .only-pc {
    display: none;
  }
}