@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap");
@media screen and (min-width: 769px) {
  html {
    font-size: 0.625vw; } }
@media screen and (min-width: 1601px) {
  html {
    font-size: 10px; } }
@media screen and (max-width: 768px) {
  html {
    font-size: 1.334vw; } }

body {
  margin: 0;
  font-weight: 400;
  font-family: 'Zen Old Mincho', serif;
  color: #000;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  position: relative;
  line-height: 0;
  background: #2b2c2c; }

html {
  height: -webkit-fill-available; }

body {
  min-height: 100vh;
  min-height: -webkit-fill-available; }

img {
  vertical-align: bottom; }

img, svg {
  width: 100%;
  height: auto; }

@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: 0.001dpcm) {
  img {
    image-rendering: -webkit-optimize-contrast; } }
a {
  text-decoration: none;
  color: inherit;
  color: #000; }

h1, h2, h3, h4, h5, p, dl, dt, dd, ul, ol, li, figure {
  margin: 0;
  padding: 0; }

ul, ol {
  list-style: none; }

@media screen and (max-width: 768px) {
  .pcv {
    display: none !important; } }

@media screen and (min-width: 769px) {
  .spv {
    display: none !important; } }

*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box; }

/*common*/
.slider,
.slider div {
  width: 100%;
  height: 100%; }

main {
  position: relative;
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  min-height: 100vh;
  background: #f3f3f3;
  overflow: hidden; }

section .inner {
  position: relative;
  margin: 0 auto; }
  @media screen and (min-width: 769px) {
    section .inner {
      width: 140rem; } }
  @media screen and (max-width: 768px) {
    section .inner {
      width: 70rem; } }

@media screen and (min-width: 769px) {
  header {
    position: absolute;
    top: 0;
    left: 0;
    width: 27rem;
    z-index: 9999; } }
@media screen and (max-width: 768px) {
  header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9000;
    pointer-events: none; } }

header h1 {
  position: relative;
  z-index: 9100; }

header nav {
  position: relative;
  margin: 0;
  z-index: 9100; }
  @media screen and (min-width: 769px) {
    header nav {
      display: block !important;
      background: #f6f6f6; } }
  @media screen and (max-width: 768px) {
    header nav {
      display: none;
      background: #fff;
      pointer-events: auto; } }

header nav .main_menu {
  position: relative;
  width: 100%;
  text-align: center; }
  @media screen and (min-width: 769px) {
    header nav .main_menu {
      padding-bottom: 5rem; } }
  @media screen and (max-width: 768px) {
    header nav .main_menu {
      padding-bottom: 10rem;
      padding-top: 10rem; } }

header nav .main_menu a {
  position: relative;
  display: inline-block;
  font-weight: 400;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  text-orientation: upright;
  /* すべて縦方向に表示 */
  transition: .6s ease-out;
  color: #000; }
  @media screen and (min-width: 769px) {
    header nav .main_menu a {
      line-height: 3.112em;
      font-size: 1.8rem;
      letter-spacing: 0.42em; } }
  @media screen and (max-width: 768px) {
    header nav .main_menu a {
      line-height: 3.5em;
      font-size: 4rem;
      letter-spacing: 0.42em;
      pointer-events: auto; } }

header nav .main_menu a:hover {
  opacity: .6; }

header nav #sp_menu {
  position: relative; }
  @media screen and (min-width: 769px) {
    header nav #sp_menu {
      display: none; } }
  @media screen and (max-width: 768px) {
    header nav #sp_menu {
      display: block;
      padding-top: 10rem;
      max-width: 67rem;
      margin: 0 auto;
      border-top: #e5e5e5 1px solid;
      text-align: center; } }

header nav #sp_menu a {
  position: relative;
  display: inline-block;
  font-weight: 400;
  transition: .6s ease-out;
  color: #000;
  margin-bottom: 6rem;
  pointer-events: auto; }

header nav #sp_menu a.btn_tel {
  background: url("../img/icon_t.png") left center no-repeat;
  background-size: 5rem auto;
  padding-left: 6rem;
  line-height: 1.042em;
  font-size: 4.8rem;
  letter-spacing: 0.06em;
  min-height: 5rem; }

header nav #sp_menu a.btn_line {
  background: url("../img/icon_l.png") left center no-repeat;
  background-size: 5rem auto;
  padding-left: 6.5rem;
  line-height: 1.429em;
  font-size: 3.5rem;
  letter-spacing: 0.06em;
  min-height: 5rem; }

header nav .main_menu a:hover {
  opacity: .6; }

header nav .sns {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8rem; }

header nav .sns a {
  position: relative;
  width: 8rem;
  pointer-events: auto; }

.wave {
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  background-color: transparent;
  z-index: 9000;
  pointer-events: none; }
  @media screen and (min-width: 769px) {
    .wave {
      width: 27rem;
      height: 27rem;
      transform: translateY(-9rem); } }
  @media screen and (max-width: 768px) {
    .wave {
      width: 150rem;
      height: 150rem;
      transform: translate(-30rem, -72rem) scale(1, 0.3); } }

.wave::before {
  position: absolute;
  top: -150%;
  left: -50%;
  border-radius: 50% 50% / 50% 70%;
  width: 200%;
  height: 200%;
  content: "";
  pointer-events: none; }
  @media screen and (min-width: 769px) {
    .wave::before {
      background: #f6f6f6;
      animation: wave ease-in-out 4.5s infinite; } }
  @media screen and (max-width: 768px) {
    .wave::before {
      background: #fff;
      animation: wave ease-in-out 9s infinite; } }

@keyframes wave {
  from {
    transform: rotate(0deg); }
  to {
    transform: rotate(360deg); } }
@media screen and (min-width: 769px) {
  .nav_btn {
    display: none; } }
@media screen and (max-width: 768px) {
  .nav_btn {
    display: inline-block;
    position: absolute;
    top: 4rem;
    right: 4rem;
    width: 5rem;
    height: 4rem;
    z-index: 99999;
    cursor: pointer;
    transition: .3s;
    display: block;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    background: none;
    border: none;
    pointer-events: auto; } }

.nav_btn::before {
  content: "MENU";
  position: absolute;
  left: -1rem;
  bottom: -3rem;
  margin: 0;
  width: 7rem;
  text-align: center;
  font-family: 'Zen Old Mincho', serif;
  font-weight: 500;
  line-height: 1em;
  font-size: 2rem;
  color: #333; }

.nav_btn.closebg::before {
  content: "CLOSE"; }

.nav_btn > span {
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 5rem;
  height: 0.4rem;
  margin: 0;
  background: #000 !important;
  transition: .4s ease-in-out; }

.nav_btn > span:before,
.nav_btn > span:after {
  display: block;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 5rem;
  height: 0.4rem;
  background: #000 !important;
  transition: .4s ease-in-out; }

.nav_btn > span:before {
  width: 5rem;
  margin-top: -2rem; }

.nav_btn > span:after {
  width: 5rem;
  margin-top: 1.8rem; }

.nav_btn .close {
  background: transparent !important; }

.nav_btn .close:before, .nav_btn .close:after {
  margin-top: 0; }

.nav_btn .close:before {
  width: 5rem;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg); }

.nav_btn .close:after {
  width: 5rem;
  transform: rotate(-135deg);
  -webkit-transform: rotate(-135deg); }

footer {
  position: relative;
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  background: #2b2c2c; }
  @media screen and (min-width: 769px) {
    footer {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      padding-top: 5rem;
      padding-bottom: 10rem; } }
  @media screen and (max-width: 768px) {
    footer {
      padding-top: 8rem;
      padding-bottom: 8rem; } }

footer #foot_l {
  position: relative;
  display: flex;
  align-items: flex-start; }
  @media screen and (min-width: 769px) {
    footer #foot_l {
      justify-content: flex-start;
      width: 50rem;
      padding-left: 5rem; } }
  @media screen and (max-width: 768px) {
    footer #foot_l {
      justify-content: space-between;
      width: 67rem;
      margin: 0 auto; } }

footer #foot_r {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  flex-wrap: wrap; }
  @media screen and (min-width: 769px) {
    footer #foot_r {
      width: 50rem;
      padding-right: 5rem; } }
  @media screen and (max-width: 768px) {
    footer #foot_r {
      width: 67rem;
      margin: 0 auto; } }

footer #foot_l .logo {
  position: relative; }
  @media screen and (min-width: 769px) {
    footer #foot_l .logo {
      width: 21.1rem;
      margin-right: 4rem; } }
  @media screen and (max-width: 768px) {
    footer #foot_l .logo {
      width: 26.5rem;
      margin-right: 4rem; } }

@media screen and (max-width: 768px) {
  footer #foot_l .logo img {
    width: 26.5rem !important; } }

footer #foot_l .info {
  position: relative;
  display: inline-block; }

footer #foot_l .info p {
  position: relative;
  display: inline-block;
  font-weight: 400;
  transition: .6s ease-out;
  color: #fff; }
  @media screen and (min-width: 769px) {
    footer #foot_l .info p {
      line-height: 1.429em;
      font-size: 1.4rem;
      letter-spacing: 0.06em; } }
  @media screen and (max-width: 768px) {
    footer #foot_l .info p {
      line-height: 1em;
      font-size: 2rem;
      letter-spacing: 0.06em; } }

footer #foot_l .info a.btn_tel {
  position: relative;
  display: inline-block;
  font-weight: 400;
  color: #fff; }
  @media screen and (min-width: 769px) {
    footer #foot_l .info a.btn_tel {
      margin-top: 1rem;
      line-height: 1em;
      font-size: 2rem;
      letter-spacing: 0.06em;
      background: url("../img/icon_t_w.png") left center no-repeat;
      background-size: 2rem auto;
      padding-left: 2.3rem;
      min-height: 2.3rem; } }
  @media screen and (max-width: 768px) {
    footer #foot_l .info a.btn_tel {
      margin-top: 2rem;
      line-height: 1em;
      font-size: 3rem;
      letter-spacing: 0.06em;
      background: url("../img/icon_t_w.png") left center no-repeat;
      background-size: 2.5rem auto;
      padding-left: 3rem;
      min-height: 3rem; } }

footer #foot_r .sns {
  position: relative;
  width: 100%; }
  @media screen and (min-width: 769px) {
    footer #foot_r .sns {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 1rem; } }
  @media screen and (max-width: 768px) {
    footer #foot_r .sns {
      display: none !important; } }

footer #foot_r .sns a {
  position: relative; }
  @media screen and (min-width: 769px) {
    footer #foot_r .sns a {
      width: 3.5rem; } }
  @media screen and (max-width: 768px) {
    footer #foot_r .sns a {
      width: 8rem; } }

footer #foot_r .logo {
  position: relative; }
  @media screen and (min-width: 769px) {
    footer #foot_r .logo {
      width: 29.7rem;
      margin: 1.5rem 0; } }
  @media screen and (max-width: 768px) {
    footer #foot_r .logo {
      width: 39rem !important;
      margin: 3rem auto 6rem; } }

footer a {
  transition: .6s ease-out; }

footer a:hover {
  opacity: .6; }

footer #foot_r .cc {
  position: relative;
  width: 100%;
  font-weight: 400;
  color: #fff; }
  @media screen and (min-width: 769px) {
    footer #foot_r .cc {
      text-align: right;
      line-height: 1.667em;
      font-size: 1.2rem;
      letter-spacing: 0.06em; } }
  @media screen and (max-width: 768px) {
    footer #foot_r .cc {
      text-align: center;
      line-height: 1em;
      font-size: 2rem;
      letter-spacing: 0.06em; } }
