:root {
  /* 1vh 相当の高さを格納する変数 */
  --vh: 1vh;
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
html,
body {
  font-size: 62.5%;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
  font-weight: 400;
  line-height: 1.625;
  letter-spacing: 0.08em;
  color: #333;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  /* 静的な最小ビューポート高さを優先 */
  height: 100svh;
  height: 100vh;
  background-color: #fafafa;
  overflow-wrap: break-word;
  word-wrap: break-word;
  scroll-behavior: smooth;
}
html {
  height: -webkit-fill-available;
}
body {
  min-height: 100vh;
  min-height: -webkit-fill-vailable;
}
.contentsWrap {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
main {
  position: relative;
  display: block;
}

header {
  position: relative;
}
footer {
  margin-top: auto;
}
header a,
footer a {
  text-decoration: none;
}
header li,
footer li {
  list-style: none;
}
.is-desktop {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}
@media screen and (min-width: 960px) {
  .is-desktop {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
}
.is-mobile {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}
@media screen and (min-width: 960px) {
  .is-mobile {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }
}

.is-hamburgerMenu-open {
  transform: translateY(0) !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.pc_none {
  display: none;
}
.sp_none {
  display: none;
}

@media (min-width: 960px) {
  .sp_none {
    display: block;
  }
}
