@charset "utf-8";

/*
Base style
*/
body {
  font-family: "ヒラギノ明朝 Pro W3", HiraMinPro-W3, 游明朝, "Yu Mincho", YuMincho, HG明朝E, "MS P明朝", "MS PMincho", "MS 明朝", serif;
  font-size: 15px;
  line-height: 1.5;
  color: #333;
  -webkit-font-smoothing: antialiased;
  background-color: #f8f8f8;
}

/*
header
*/
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 70px;
  z-index: 2;
  transition: top 0.3s;
  background-color: rgba(242, 242, 242, 0.8); /* 背景色をRGBA形式で指定し、透明度を0.8に設定します */
}

.header-logo img {
  width: 100px; /* サイズを20pxに調整 */
  height: auto; /* 幅に合わせて自動的に高さを調整します */
  margin-left: 5px; /* 適切な値に調整してください */
}

.container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  padding: 0 20px;
}

.reserve-button {
  padding: 8px 16px;
  background-color: #f2f2f2;
  border-radius: 4px;
  text-decoration: none;
  color: #333;
  border-radius: 25px;
}

.reserve-button:hover {
  background-color: #b3a79a;
  border-radius: 15px;
}

/* 
hero 
*/
/* hero */
.hero_mv {
  position: relative;
  height: 100vh;
  overflow: hidden;
  background-image: url("path/to/smoke-image.png");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.8;
}

.hero-img {
  /* ここにビデオに適用したいスタイルを書く */
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero_mv::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  opacity: 0.5;
  z-index: 1;
}

.hero-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 200px;
  transform: translate(-50%, -50%);
  z-index: 2;
}

.scroll-hero {
  position: absolute;
  bottom: 100px;
  right: 20px;
  transform: rotate(-90deg);
  transform-origin: bottom right;
  z-index: 2;
  color: #fff;
}

.scroll-bar-hero {
  position: absolute;
  bottom: 20px;
  right: 28px;
  transform: translateX(-50%);
}

.scroll-bar-hero::before {
  content: "";
  display: block;
  width: 2px;
  height: 45px;
  background-color: #fff;
  animation: scrollAnimation 1.0s infinite;
}

@keyframes scrollAnimation {
  0% {
    transform: translateY(0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: translateY(30px);
    opacity: 0;
  }
}

@media screen and (max-width: 768px) {
  .hero-logo {
    width: 150px;
  }
  .header-logo img {
    width: 80px; /* サイズを20pxに調整 */
    height: auto; /* 幅に合わせて自動的に高さを調整します */
    margin-left: 5px; /* 適切な値に調整してください */
  }
}


/*
header
*/
header {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 70px;
z-index: 2;
}

.container {
display: flex;
align-items: center;
justify-content: space-between;
height: 100%;
padding: 0 20px;
}

.reserve-button {
padding: 8px 16px;
background-color: #f2f2f2;
border-radius: 4px;
text-decoration: none;
color: #333;
border-radius: 25px;
}

.reserve-button:hover {
background-color: #b3a79a;
border-radius: 15px;
}

/*
Concept 
*/
.section-primary {
  letter-spacing: 0.1em;
  padding: 40px 0;
  background-color: rgb(255, 250, 243);
}

.section-headline-primary{
font-size: 30px;
font-weight: bold;
margin: 0 0px;
text-align: center;
} 

.section-headline-primary::after {
content: "";
position: absolute;
bottom: -100px;
left: 50%;
transform: translateX(-50%);
width: 50px; /* ラインの幅を調整 */
height: 2px; /* ラインの高さを調整 */
background-color: #333; /* ラインの色を指定 */
}

/* テキスト部分のスタイル */
.concept-headline {
  font-size: 22px;
  margin-top: 50px;
  text-align: center;
  margin-bottom: 40px;
}

.concept-description {
  margin: 0;
  line-height: 1.5;
  text-align: center;
  margin-bottom: 30px;
}

.paragraph-break {
  margin-bottom: 2em;
}

@media screen and (max-width: 768px) {
.section-headline-primary{
  font-size: 22px;
} 

.section-headline-primary::after {
  bottom: -80px;
  width: 40px; /* ラインの幅を調整 */
}

.concept-headline{
  font-size: 18px;
  margin-top: 35px;
  margin-bottom: 30px;
}

.concept-description {
  font-size: 12px;
  width: 100%;
  padding: 0 20px;
  letter-spacing: 0.05em;
}

.paragraph-break {
  margin-bottom: 1em;
}
}


/* Feature */
.section-secondary {
  padding: 10px 0;
}

.section-headline-feature {
  font-size: 30px;
  font-weight: bold;
  margin: 40px 0;
  text-align: center;
  position: relative;
}

.section-headline-feature::after {
  content: "";
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  width: 50px; /* ラインの幅を調整 */
  height: 2px; /* ラインの高さを調整 */
  background-color: #333; /* ラインの色を指定 */
}

.section-feature {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 28px;
}

.feature-item {
  display: flex;
  align-items: start;
}

.feature-item:nth-child(even) {
  flex-direction: row-reverse;
}

.feature-figure,
.feature-text {
  flex: 1;
}

.feature-text {
  flex-direction: column;
  text-align: left;
}

.feature-text-top{
  font-size: 18px;
  font-weight: bold;
}

.feature-figure img {
  width: 100%;
  max-width: 100%;
  max-height: 500px;
  object-fit: cover;
  border-radius: 10%;
}

@media screen and (max-width: 768px) {
  .section-headline-feature {
    font-size: 22px;
  }
  .section-headline-feature::after {
    bottom: -10px;
    width: 40px; /* ラインの幅を調整 */
  } 
  .section-feature {
    flex-direction: column;
    align-items: center;
    margin: 0 28px;
  }
  .feature-item,
  .feature-item:nth-child(even) {
    flex-direction: column;
    align-items: center;
  }

  .feature-text-top {
    font-size: 14px;
  }
  .feature-text p{
    font-size: 12px;
  }
  
  .feature-figure img {
    width: 100%;
    height: auto;
  }
}



/* Menu */
.section-tertiary {
  padding: 10px;
  text-align: center;
}
.section-headline-menu{
  font-size: 30px;
  font-weight: bold;
  margin: 40px 0;
  text-align: center;
  position: relative;
}

.section-headline-menu::after {
  content: "";
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  width: 50px; /* ラインの幅を調整 */
  height: 2px; /* ラインの高さを調整 */
  background-color: #333; /* ラインの色を指定 */
}

.menu-item {
  margin-bottom: 30px;
  float: left;
  width: 33.33%;
  padding: 7px;
  position: relative;
  overflow: hidden;
}

.menu-item-img {
  width: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.6;
  max-width: 100%; /* 画像の最大横幅を100%に設定 */
  height: auto; /* 高さは自動調整 */
  transition: transform 0.5s;
}

.menu-item:hover .menu-item-img {
  transform: scale(1.05);
}

.section-tertiary h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0.5;
  z-index: 1;
  font-size: 26px;
  text-shadow: 1px 1px 0 #fff
}

.section-tertiary h4 {
  font-size: 20px;
  margin-bottom: 5px;
  background-color:#ccc;
}
  
.price-list {
  display: flex;
  flex-direction: row; /* optional, as row is the default value */
  justify-content: space-evenly; /* for equal spacing between items */
  margin-bottom: 20px;
}

.price-normal {
  margin-bottom: 20px;
  color: #686a6d;
  display: flex;
  font-size: 6px; /* increased size for readability */
}

.description {
  margin-bottom: 20px;
  text-align: left;
}

.modal-title {
  display: none;
}

.menu-item .description {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  padding: 15px;
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.3s, visibility 0s linear 0.3s, transform 0.3s;
}

.menu-item:hover .description {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition: opacity 0.3s, visibility 0s linear, transform 0.3s;
}

.column {
  display: block;
}
.esthe-menu{
  max-width: calc(100% - 40px); /* Subtract 20px from both sides */
}

@media screen and (max-width: 768px) {
  .section-headline-menu {
    font-size: 22px;
  }
  .section-tertiary h3 {
    position: relative;
    text-decoration: #686a6d;
  }
  .menu-item h3 {
    bottom: 0; /* 修正 */
    margin: 0; /* 修正 */
    position: absolute; /* 修正 */
    left: 0; /* 修正 */
    right: 0; /* 修正 */
    padding: 15px; /* 修正 */
  }
  .menu-item {
    flex: 0 0 100%;
    width: 100%;
    margin-bottom: 10px;
    margin: 0px;
    padding: 0px;
  }
  .menu-item-img {
    width: 100%;
    max-width: 100%; /* 画像の最大横幅を100%に設定 */
    height: auto; /* 高さは自動調整 */
    padding:20px;
  }
  .price{
    font-size: 12px;
  }
  .price-normal{
    font-size: 8px;
  }
}


.modal {
  display: none;
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.6);
}

.modal-content {
  background-color: #fefefe;
  margin: 20px auto;
  padding: 20px;
  border: 1px solid #888;
  max-width: 600px;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;  /* Center align the close button */
}

.close {
  color: #ffffff;  /* Changing the color of the text to white */
  background-color: #838383;  /* Adding background color */
  font-weight: bold;
  cursor: pointer;
  padding: 10px;
  border: 1px solid #838383;
  text-align: center;
  margin-top: auto;  
}

.close:hover,
.close:focus {
  color: #ffffff;  /* Changing the color of the text to white even on hover/focus */
  background-color: #000;  /* Changing the background color on hover/focus */
  text-decoration: none;
}


/*
Voice
*/
.section-fourth{
  padding: 20px 0px;
  text-align: center;
}
.section-headline-voice {
  font-size: 30px;
  font-weight: bold;
  margin: 40px 0;
  text-align: center;
  position: relative;
}

.section-headline-voice::after {
  content: "";
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  width: 50px; /* ラインの幅を調整 */
  height: 2px; /* ラインの高さを調整 */
  background-color: #333; /* ラインの色を指定 */
}


.grid-col-3 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  padding: 10px;
}

.grid-item {
  width: calc(33.33% - 20px);
  list-style: none;
  text-align: center;
}

.grid-item .Voice {
  border-radius: 4px;
}

.grid-item .Voice-img img {
  width: 85%;
  height: auto;
  border-radius: 70%;
}

.Voice-description{
  text-align: left;
  margin: 10px;
  font-size: 14px;
}

/* スマートフォン用のスライダーに関するCSS */

@media screen and (max-width: 768px) {
  .section-headline-voice {
    font-size: 22px;
  }
  
  .grid-item {
    width: 100%;
    display: block;
  }
  .grid-item .Voice-img img {
    width: 80%;
    height: auto;
    border-radius: 20%;
  }
  .Voice-description{
    text-align: left;
    margin: 30px;
    font-size: 12px;
  }
}


/* 
Q&A
*/
.qa-section {
  text-align: center;
  max-width: 1000px;
  padding: 20px 0;
  margin: 0 auto;
}

.section-headline-qa{
  font-size: 30px;
  font-weight: bold;
  margin: 40px 0;
  text-align: center;
  position: relative;
}

.section-headline-qa::after {
  content: "";
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  width: 50px; /* ラインの幅を調整 */
  height: 2px; /* ラインの高さを調整 */
  background-color: #333; /* ラインの色を指定 */
}

.question {
  cursor: pointer;
  position: relative;
  padding: 20px;
  margin: 0 auto 1px; /* Add a dark grey border below the question box */
  max-width: calc(100% - 100px); /* Subtract 50px from both sides */
  background-color: #f5f5f5; /* Light grey background for question box */
  border-bottom: 2px solid #686a6d; /* Dark grey border */
}

.question::before {
  display: none; /* Hide the previous marker */
}

.answer {
  padding: 10px 20px; /* Add some padding around the answer */
  transition: opacity 0.3s;
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  margin: 0 auto;
  max-width: calc(100% - 100px); /* Subtract 50px from both sides */
  text-align: left;
}

.answer.visible {
  opacity: 1;
  max-height: 1000px;
}

@media screen and (max-width: 768px) {
  .section-headline-qa{
    font-size: 22px;
  }

  .qa-section {
    padding: 20px ;
  }
  .question,
  .answer {
    font-size: 12px;
    max-width: calc(100% - 40px); /* Subtract 20px from both sides */
  }
  .answer {
    font-size: 12px;
  }
}



/*
facility
*/

.section-facility{
  font-weight: bold;
  margin: 0 0;
  text-align: center;
  position: relative;
}
.headline-container {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: fit-content;
  margin: 0 auto;
}

.headline-container::after {
  content: "";
  position: absolute;
  bottom: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 50px; /* Adjust the line width */
  height: 2px; /* Adjust the line height */
  background-color: #333; /* Specify the line color */
}

.main-image {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
  margin-top: 20px;
}

.main-image img {
  width: 70%;
  height: auto;
}

.thumbnail-columns {
  display: flex;
  justify-content: space-between;
  padding: 0 30px; /* Adding space from screen edges */
}

.thumbnail-column {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin: 0 10px; /* Adding space between columns */
}

.thumbnail {
  width: 100%;
  height: auto;
  margin-bottom: 20px;
  opacity: 0.5;
}

.thumbnail:last-child {
  margin-bottom: 0;
}

.thumbnail:hover {
  opacity: 1;
}






.footer{
  color: #333;
}
.footer-headline-Access{
  font-weight: bold;
  margin: 40px 0;
  text-align: center;
  position: relative;
}

.footer-headline-Access::after {
  content: "";
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  width: 50px; /* ラインの幅を調整 */
  height: 2px; /* ラインの高さを調整 */
  background-color: #333; /* ラインの色を指定 */
}

.footer-map {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
}

.footer-mapcontent {
  flex: 1 0 60%;
  max-width: 60%;
}

.footer-mapinfo {
  flex: 1 0 40%;
  max-width: 40%;
  margin: 0px;
  padding: 10px 30px;
}

/* Change the width and height of the iframe */
.footer-mapinfo > iframe {
  width: 100%; 
  height: 100%;
}

@media (max-width: 1024px) {
  .footer-map {
    flex-direction: column;
    justify-content: center;
    max-width: 100%;
  }
  .footer-mapinfo {
    max-width: 100%;
    flex-basis: 100%;
    flex-direction: column;
    justify-content: center;
  }
  .footer-mapinfo > iframe {
    height: 200px; /* Adjust this to change the height of the map on smaller screens */
    justify-content: center;
  }
}

.footer-maplogo{
  margin-right: 10px;
  font-size: 20px;
  display: flex;
  align-items: center; 
}

.p-home__shop__dl__item {
  display: flex;
  font-size: 12px;
  padding-top: 30px;
  padding-bottom: 30px;
  border-top-style: solid;
  border-top-width: 1px;
  border-top-color: rgba(60,68,75,0.1);
}

.footer-line{
  border-color: #686a6d;
}

.footer-copy{
  display: block;
  text-align: center;
  padding: 10px;
}

.p-footer__li--sns {
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none; /* Remove bullet points from the list */
  padding: 0; /* Remove default padding */
  margin-top: 20px; /* Remove default margin */
}

.p-footer__li--sns__item {
  display: flex;
  justify-content: center;
  align-items: center;
}
