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

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

html,
body {
  overflow-x: hidden;
}

body {
  display: flex;
  flex-flow: column;
  min-width: 1280px;
  min-height: 100vh;
  color: #3f4344;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  font-size: clamp(14px, 2.5vw, 16px);
  letter-spacing: 0.06em;
}

main {
  flex: 1 0 auto;
}

footer {
  flex-shrink: 0;
}

[class*=__wrapper-m] {
  width: min(100%, 1080px);
  margin-inline: auto;
  position: relative;
  z-index: 30;
}

[class*=__wrapper-l] {
  width: min(100%, 1280px);
  margin-inline: auto;
  position: relative;
  z-index: 30;
}

[class*=__wrapper-xl] {
  width: min(100%, 1920px);
  margin-inline: auto;
  position: relative;
  z-index: 30;
}
[class*=__wrapper-xl]::before, [class*=__wrapper-xl]::after {
  transition: all 0.3s;
}

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

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

select {
  cursor: pointer;
  appearance: auto;
}

h1 {
  font-size: clamp(3rem, 2.5vw, 3.6rem);
}

h2 {
  font-size: clamp(2.1rem, 2.5vw, 2.5rem);
}

h3 {
  font-size: clamp(1.8rem, 2.5vw, 2rem);
}

h4 {
  font-size: clamp(1.4rem, 2.5vw, 1.6rem);
}

h5 {
  font-size: clamp(1.2rem, 2.5vw, 1.4rem);
}

h6 {
  font-size: clamp(1.1rem, 2.5vw, 1.2rem);
}

/* -------------------------------------------------------------------------- */
/*                                  Base (SP)                                 */
/* -------------------------------------------------------------------------- */
@media screen and (width <= 1500px) {
  [class*=__wrapper-xl]::before, [class*=__wrapper-xl]::after {
    opacity: 0.7;
  }
}
@media screen and (width <= 768px) {
  [class*=__wrapper-xl]::before, [class*=__wrapper-xl]::after {
    opacity: 0.5;
  }
}
@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;
  }
}