/* -------------------------------------------------------------------------- */
/*                                   Colors                                   */
/* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */
/*                              Default Functions                             */
/* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */
/*                               Default Mixins                               */
/* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */
/*                                Custom Layout                               */
/* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */
/*                                    Base                                    */
/* -------------------------------------------------------------------------- */
html {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  scroll-padding-top: 8rem;
}

*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
  -moz-box-sizing: inherit;
  box-sizing: inherit;
}

body {
  display: flex;
  flex-flow: column;
  min-width: 1280px;
  min-height: 100vh;
  overflow-x: hidden;
  color: #222222;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(14px, 2.5vw, 16px);
}

main {
  flex: 1 0 auto;
}

footer {
  flex-shrink: 0;
}

[class*=__wrapper-m] {
  width: min(100%, 1080px);
  margin-inline: auto;
  text-align: center;
}

[class*=__wrapper-l] {
  width: min(100%, 1280px);
  margin-inline: auto;
  text-align: center;
}

[class*=__wrapper-xl] {
  width: min(100%, 1920px);
  margin-inline: auto;
  text-align: center;
}

a[href^="tel:"] {
  pointer-events: none;
}

.pc-none {
  display: none !important;
  visibility: hidden !important;
}

.dp-none {
  display: none !important;
  visibility: hidden !important;
}

a {
  display: block;
  transition: all 0.3s;
  color: inherit;
}

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

select,
textarea,
input:not(.p-postal-code):not(.submit) {
  font-family: "Noto Sans JP", sans-serif;
  width: 100%;
}
select::placeholder,
textarea::placeholder,
input:not(.p-postal-code):not(.submit)::placeholder {
  font-family: inherit;
}

textarea {
  resize: vertical;
  min-height: 80px;
}

select {
  cursor: pointer;
}

h1 {
  font-size: clamp(1.5rem, 2.5vw, 1.6rem);
  line-height: 27px;
}

h2 {
  font-size: clamp(3.1rem, 2.5vw, 3.4rem);
  line-height: 27px;
}

h3 {
  font-size: clamp(2.5rem, 2.5vw, 2.8rem);
  line-height: 27px;
}

h4 {
  font-size: clamp(1.9rem, 2.5vw, 2.2rem);
  line-height: 27px;
}

h5 {
  font-size: clamp(1.7rem, 2.5vw, 2rem);
  line-height: 27px;
}

h6 {
  font-size: clamp(1.4rem, 2.5vw, 1.7rem);
  line-height: 27px;
}

/* -------------------------------------------------------------------------- */
/*                                  Base (SP)                                 */
/* -------------------------------------------------------------------------- */
@media screen and (width <= 768px) {
  body {
    min-width: 375px;
    margin: 0 auto;
    word-break: break-all;
  }
  img {
    max-width: 100%;
    height: auto;
  }
  .sp-none {
    display: none !important;
    visibility: visible !important;
  }
  .pc-none {
    display: inline !important;
    visibility: visible !important;
  }
  a[href^="tel:"] {
    pointer-events: auto;
  }
}