@charset "UTF-8";

body {
  font-family: "fot-tsukuaoldmin-pr6n", sans-serif;
  font-weight: 300;
  font-style: normal;
  background-color: #FFFDF7;
  color: #231815;
  position: relative;
  z-index: -1;
}

a {
  color: #FFF;
  text-decoration: none;
}

ul {
  padding: 0;
}

li {
  list-style: none;
}

img {
  width: 100%;
  height: auto;
}

#contents {
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
  background-color: #FFFDF7;
  position: relative;
  z-index: -1;
}

.ctaBtn {
  margin-top: 32px;
}

.ctaBtn a {
  display: block;
  width: 100%;
  height: 100%;
}

span.back-b {
  background-color: #231815;
  color: #FFF;
  line-height: 1.5;
  letter-spacing: .1em;
}

.fade-in {
  opacity: 0;
  transition: opacity 2s ease, transform 2s ease;
  transform: translateX(-30px);
  font-size: clamp(1rem, 0.0625rem + 3vw, 1.375rem);
  min-height: 0vw;
  background-color: #fff;
  filter: drop-shadow(11.11px 11.11px 11.12px rgba(35, 24, 21, 0.20));
  padding: clamp(1.125rem, 0.5rem + 2vw, 1.375rem);
  margin: 0;
  line-height: 2;
  position: absolute;
  top: 90%;
  right: 2%;
}

.fade-up {
  opacity: 0;
  transition: opacity 2s ease, transform 2s ease;
  transform: translateY(30px);
}

.fade-in.active,
.fade-up.active {
  opacity: 1;
  transform: translate(0, 0);
}

/* header */

header {
  width: 100%;
  background-color: #fff;
  filter: drop-shadow(0px 5.51px 11.02px rgba(35, 24, 21, 0.20));
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 20px;
  margin-bottom: 120px;
}

header div {
  /* width: 50%; */
  width: clamp(10.625rem, -5rem + 50vw, 16.875rem);
  min-height: 0vw;
}

header a {
  display: block;
  /* width: 50%; */
  background-color: #986C4C;
  border-radius: 5px;
  padding: 8px 10px;
  font-size: clamp(1rem, -0.3295rem + 5.4545vw, 1.375rem);
  min-height: 0vw;
  letter-spacing: 0.2em;
}

/* mv */

#mv {
  background-image: url(../images/mv.png);
  background-repeat: no-repeat;
  background-size: cover;
  aspect-ratio: 3/2;
  position: relative;
}

#mv::before {
  content: "";
  position: absolute;
  top: 60%;
  left: 0;
  width: 85%;
  height: 100%;
  background-image: url(../images/back-y1.png);
  background-repeat: no-repeat;
  background-size: cover;
  z-index: -1;
}

h1 {
  writing-mode: vertical-rl;
  margin: 0;
  position: absolute;
  top: -30px;
  right: 30px;
  bottom: -100px;
}

h1 span.back-b {
  font-size: clamp(2rem, -2.375rem + 14vw, 3.75rem);
  min-height: 0vw;
}

#mv+h2 {
  font-size: clamp(1.3125rem, -1.5rem + 9vw, 2.4375rem);
  min-height: 0vw;
  text-align: center;
  padding: 100px 0;
  position: relative;
}

#mv+h2::after {
  content: "";
  display: block;
  width: 1px;
  height: 70px;
  background-color: #231815;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
}

#mv+h2+p {
  text-align: center;
  font-size: clamp(1rem, -0.7188rem + 5.5vw, 1.6875rem);
  min-height: 0vw;
}

/* back-y */
.back-y {
  /* padding-top: 200px; */
  padding-top: clamp(15.625rem, 23.4375rem + -25vw, 12.5rem);
  min-height: 0vw;
  margin-top: 100px;
  position: relative;
}

.back-y::before {
  content: '';
  display: block;
  width: 60%;
  height: 100%;
  background-image: url(../images/back-y2.png);
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  right: 0;
  z-index: -1;
}

.vertical {
  writing-mode: vertical-rl;
  position: absolute;
  top: 15px;
  right: 20px;
  bottom: -100px;
  z-index: 1;
}

.vertical .back-b {
  font-size: clamp(1.5rem, -0.375rem + 6vw, 2.25rem);
  min-height: 0vw;
}

.back-y.back-y2 {
  margin-top: clamp(12.5rem, 4.6875rem + 25vw, 15.625rem);
  min-height: 0vw;
  margin-bottom: 200px;
  padding-top: 0;
}

.back-y.back-y2:before {
  right: auto;
  left: 0;
  top: 250px;
}

.back-y.back-y2 .fade-in {
  right: auto;
  left: 30px;
}

.menu-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.menu-link a {
  width: 49%;
  aspect-ratio: 1/1;
  background-image: url(../images/top3.png);
  background-repeat: no-repeat;
  background-size: cover;
  display: grid;
  place-items: center;
  font-size: clamp(1.125rem, -0.1875rem + 5.4545vw, 1.875rem);
  min-height: 0vw;
}

.menu-link a+a {
  background-image: url(../images/top4.png);
}

.menu-link span {
  background-color: rgba(152, 108, 76, 0.5);
  padding: 15px 25px;
  border-radius: 5px;
  color: #fff;
  font-size: 24px;

}

.menu-link+p {
  text-align: center;
  font-size: 24px;
  margin-top: 95px;
}

/* エステ */

#esthetic {
  position: relative;
  margin-bottom: 355px;
}

#esthetic h2 {
  text-align: center;
  font-size: clamp(2rem, 0.9063rem + 3.5vw, 2.4375rem);
  min-height: 0vw;
  margin-bottom: 48px;
  letter-spacing: 0.12em;
}

#esthetic .back-y {
  padding-top: 50px;
}

#esthetic .back-y .vertical {
  top: 40px;
}

#esthetic .back-y+p {
  text-align: center;
  font-size: 24px;
  margin: 87px 0;
}

.menu {
  border-image-source: url(../images/frame.png);
  border-image-slice: 100;
  border-image-width: 52px;
  border-image-repeat: round;
  padding: 42px;
  letter-spacing: .2em;
  margin-bottom: 85px;
}

.menu h4 {
  text-align: center;
  padding: 20px 0;
  margin-bottom: 0;
}

.menu ul li {
  padding: 0.5em 0;
  border-bottom: 1px solid #986C4C;
}

.mesona-j {
  text-align: center;
  font-size: 42px;
}

.mesona-j span {
  display: block;
  font-size: 0.4em;
  letter-spacing: .2em;
}

#esthetic .fade-in {
  top: 101%;
  right: 4%;
}

/* 鍼灸 */

#acupuncture {
  position: relative;
  /* margin-top: 200px; */
}

#acupuncture h2 {
  text-align: center;
  font-size: clamp(2rem, 0.9063rem + 3.5vw, 2.4375rem);
  min-height: 0vw;
  margin-bottom: 48px;
}

#acupuncture .back-y {
  padding-top: 50px;
  margin-bottom: clamp(15.625rem, 0rem + 50vw, 21.875rem);
  min-height: 0vw;
}

#acupuncture .back-y .vertical {
  top: 80px;
  right: auto;
  left: 20px;
  bottom: -145px;
}

#acupuncture .fade-in {
  font-size: clamp(0.875rem, -0.375rem + 4vw, 1.375rem);
  min-height: 0vw;
}

/* アクセス */
#access {
  position: relative;
  margin-bottom: 90px;
}

#access h2 {
  text-align: center;
  font-size: clamp(2rem, 0.9063rem + 3.5vw, 2.4375rem);
  min-height: 0vw;
  margin-bottom: 48px;
}

.access-img {
  position: relative;
  margin-bottom: 150px;
}

.access-img img {
  position: relative;
}

.access-img img:nth-child(1) {
  z-index: 3;
}

.access-img img:nth-child(2) {
  z-index: 2;
  margin-top: -30px;
}

.access-img img:nth-child(3) {
  z-index: 1;
  margin-top: -30px;
}

.access-img .fade-in {
  z-index: 4;
  right: 8%;
}

.map {
  aspect-ratio: 3/2;
}

.map iframe {
  width: 100%;
  height: 100%;
}

.map+p {
  font-size: clamp(1.125rem, 0.1875rem + 3vw, 1.5rem);
  min-height: 0vw;
  margin-bottom: 0;
}

#access h3 {
  text-align: center;
  font-size: clamp(1.125rem, -0.75rem + 6vw, 1.875rem);
  min-height: 0vw;
  color: #FFF;
  background-color: rgba(152, 108, 76, .7);
  padding: 10px 0;
  border-radius: 10px;
  letter-spacing: .2rem;
}

address {
  font-size: clamp(1.125rem, 0.1875rem + 3vw, 1.5rem);
  min-height: 0vw;
}

/* footer */

footer {
  color: #FFF;
  background-color: #231815;
  padding: 20px;
  text-align: center;
}