/*
Theme Name: Precious Hotel
Description:
Version:
Author:
*/
@charset "utf-8";


body {
  margin: 0;
  max-width: 100%;
  height: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  color: #3a3a3a;
}

ul, h2, h3, p {
  margin: 0;
  padding: 0;
}

img {
  vertical-align: top;
}

a {
  text-decoration: none;
}

li {
  list-style: none;
}

/*************************************************************************************
**************************************************************************************
********************************** header ********************************************
**************************************************************************************
*************************************************************************************/
.header {
  width: 100%;
  height: 100%;
}

.header-movie {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
}

.header-movie video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.header-movie-mobile {
  width: 100%;
  height: auto;
  display: none;
}

.header-movie-mobile video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* スクロールオブジェ */
.scroll-indicator {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);

}

.indicator-container {
  height: 40px;
  border: 0.5px solid #fff;
  border-radius: 20px; /* 角丸 */
  padding: 20px 10px; /* 内側の余白 */
  display: flex; /* フレックスボックスを使用 */
  justify-content: center; /* 中央揃え */
  align-items: center; /* 垂直方向に中央揃え */
}

.arrow {
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 15px solid #fff;
  animation: bounce 2s infinite;
}

@keyframes bounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(15px);
    }
}

.hidden {
  display: none; /* 矢印を非表示にするクラス */
}

.header-top-wrap {
  display: none;
}

.header-top {
  width: 100%;
  position: fixed;
  top: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 999;
  background: none;
}

.header-top.change-color {/*****スクロール後***** */
	align-items: center;
	top: 0;
	height: 60px;
	background: rgba(254, 104, 104, 0.5);
	transition: all .5s;
}

.header-top-brand {
  width: 200px;
  /* height: 100%; */
  margin-left: 30px;
}

.header-top-brand a {
  /* color: #fff;
  letter-spacing: 2px;
  font-size: 24px; */
}

.header-top-brand img {
  width: 100%;
}

.nav-wrap {
  /* display: none; */
}

.burger-nav,
.drawer_hidden {
	display: none;
}

ul.nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

ul.nav>li {
  width: 100px;
  height: 100%;
  position: relative;
}

ul.nav>li:nth-of-type(7) {
  width: 80px;
}

ul.nav>li>a {
  /* padding: 8px; */
  display: block;
  text-align: center;
  color: #fff;
  font-size: 14px;
  letter-spacing: 2px;
  transition: all .5s;
}

ul.nav>li>a span.reserve {
  padding: 6px 24px;
  background: #e60012;
  border-radius: 15px;
}

ul.nav>li>a::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -5px;
  width: 0;
  height: 2px; /* 下線の太さ */
  background: #fff; /* 下線の色 */
  transition: 0.5s ease;
}

ul.nav>li>a:hover::after {
  width: 40%;
  left: 0;
  transform: translateX(-50%); /* 中央に寄せる */
}

ul.nav>li>a:hover::after {
  width: 40%;
  left: 50%;
  transform: translateX(-50%);
}

ul.nav i {
  font-size: 26px;
  color: #F167E1;
}

/*************************************************************************************
**************************************************************************************
********************************** 共通 ********************************************
**************************************************************************************
*************************************************************************************/
.group-hotel-wrap {
  text-align: center;
}

.group-hotel-inner {
  display: inline-block;
}

.group-hotel {
  margin-top: 64px;
  position: relative;
  padding: 8px 32px;
  font-size: 32px;
  color: #fff;
  letter-spacing: 0.1em;
  /* font-weight: bold; */
  text-align: center;
  background: #e60012;
}

/* .group-hotel::before,
.group-hotel::after {
  position: absolute;
  width: 15px;
  height: 15px;
  content: '';
}

.group-hotel::before {
  border-left: solid 1px;
  border-top: solid 1px;
  top: 0;
  left: 0;
}

.group-hotel::after {
  border-right: solid 1px;
  border-bottom: solid 1px;
  bottom: 0;
  right: 0;
} */

.light-blue {
  background: #ffe9eb;
}

.middle-blue {
  background: #d4e6ff;
}

.sec-top {
  margin: auto;
  width: 60%;
  height: 80px;
  text-align: center;
}

h2.sec-top-tit {
  font-size: 40px;
}

.sec-top-subtit {
  font-size: 16px;
}

/* 下からフェードイン (早い)*/
.fast-fade-in {
  opacity: 0; /* 初めは透明 */
  transform: translateY(30px); /* 少し下に移動 */
  transition: opacity 1s ease, transform 1s ease; /* アニメーションの設定 */
}

.fast-fade-in.visible {
  opacity: 1; /* 表示 */
  transform: translateY(0); /* 元の位置に戻す */
}

/* 下からフェードイン (遅い)*/
.slow-fade-in {
  opacity: 0; /* 初めは透明 */
  transform: translateY(30px); /* 少し下に移動 */
  transition: opacity 1s ease, transform 1s ease; /* アニメーションの設定 */
}

.slow-fade-in.visible {
  opacity: 1; /* 表示 */
  transform: translateY(0); /* 元の位置に戻す */
}

/*************************************************************************************
**************************************************************************************
********************************** main ********************************************
**************************************************************************************
*************************************************************************************/
.main {
  width: 100%;
}


/*************************************************************************************
**************************************************************************************
********************************** room ********************************************
**************************************************************************************
*************************************************************************************/
.room {
  margin: 64px 0;
  width: 100%;
  height: auto;
}

.room-inner {
  margin: auto;
  padding: 64px 0;
  width: 100%;
  height: 100%;

}

.room-first-content {
  margin: 64px auto 80px;
  padding: 32px 0;
  width: 1200px;
  height: auto;
}

.room-first-content-inner {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.room-contents {
  width: 55%;
}

.room-main-image {
  overflow: hidden;
}

.room-main-image img {
  width: 100%;
  /* max-width: 600px; */
  height: auto;
  /* border: 2px solid #e60012; */
  transition: transform 1s ease;
}

.room-main-image img:hover {
  transform: scale(1.05);
}

.room-thumbnails {
  display: flex;
  justify-content: center;
  margin-top: 10px;
}

.room-thumbnail {
  position: relative;
  width: 100px;
  height: auto;
  margin: 0 5px;
  cursor: pointer;
  overflow: hidden;
}

.room-thumbnail img {
  /* display: block;  */
  width: 100%; 
  height: auto;
}

.room-thumbnail::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
  pointer-events: none;
}

.room-thumbnail:hover {
  border-bottom: 2px solid #e60012; /* ホバー時の枠線 */
}


.room-first-content-article {
  width: 40%;
  height: 80%;
  padding: 64px 0;
}

.room-first-content-article-tit {
  padding-bottom: 12px;
  display: flex;
  align-items: center;
}

.room-first-content-article-tit-type {
  margin-right: 16px;
  padding: 2px 8px;
  background: #616161;
  border-radius: 5px;
  font-size: 20px;
  color: #fff;
}

.room-first-content-article-tit-name {
  font-size: 28px;
}

.room-first-content-article-tit-in {
  width: 160px;
  display: flex;
  align-items: center;
  /* justify-content: center; */
  font-size: 28px;
}

.room-first-content-article-tit-in::before,
.room-first-content-article-tit-in::after {
  content: '';
  flex: 1;
  height: 0.5px; /* ラインの太さ */
  background-color: #3a3a3a; /* ラインの色 */
  margin: 0 10px; /* テキストとの間隔 */
}

.room-first-content-article-features {
  padding-bottom: 32px;
  display: flex;
  align-items: center;
}

.room-first-content-article-features_one {
  padding: 4px;
  border: 1px solid #616161;
  border-radius: 5px;
  font-size: 12px;
  text-align: center;
}

.room-first-content-article-features_two {
  margin: 0 16px;
  padding: 9px;
  border: 1px solid #616161;
  border-radius: 5px;
  font-size: 18px;
}

.room-first-content-article-features_two br {
  display: none;
}

.room-first-content-article-features_three {
  padding: 4px 8px;
  border: 1px solid #616161;
  border-radius: 5px;
  font-size: 12px;
  text-align: center;
}

.room-first-content-article-text {
  /* padding: 16px 32px 0 144px; */
  font-size: 18px;
}

.reservation-btn {
  margin: 48px auto 0;
  width: 40%;
}

.reservation-btn button {
  width: 300px;
  background: #e60012;
  border: none;
  text-align: center;
  display: inline-block;
  border-radius: 30px;
  transition: background-color 0.5s ease, transform 0.5s ease; 
  cursor: pointer;
}

.reservation-btn button a {
  padding: 16px 40px;
  display: block;
  color: #fff;
  font-size: 16px;
}

.reservation-btn button:hover {
  background-color: #d80214;
  transform: scale(1.05);
}

.room-reverse {
  /* margin-top: 64px; */
  flex-direction: row-reverse; /* グループ2の内容を左右逆にする */
}

/*************************************************************************************
**************************************************************************************
********************************** amenities ********************************************
**************************************************************************************
*************************************************************************************/
.amenities {
  margin: 80px auto 0;
  width: 800px;
  height: auto;
}

.amenities-top {
  width: 200px;
}

.amenities-tit-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%; /* 必要に応じて幅を調整 */
}

span.amenities-tit-line {
  width: 30px;
  flex: 1; /* ラインを均等に広げる */
  height: 0.5px; /* ラインの太さ */
  background-color: black; /* ラインの色 */
  margin: 0 10px; /* テキストとの間隔 */
}

span.amenities-tit {
  white-space: nowrap; /* テキストが折り返さないようにする */
  font-size: 30px;
}

.amenities-subtit {
  font-size: 16px;
  text-align: center;
}

.amenities-img-grp {
  margin-top: 32px;
  width: 100%;
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  align-content: space-between;
}

.amenities-img {
  margin: 16px;
  width: 16%;
  height: auto;
}

.amenities-img img {
  width: 100%;
  height: 100%;
}

/*************************************************************************************
**************************************************************************************
********************************** equipment ********************************************
**************************************************************************************
*************************************************************************************/
.equipment {
  margin-top: 144px;
  width: 100%;
  height: auto;
}

.equipment-inner {
  margin: auto;
  max-width: 1200px;
  height: 100%;
}

.equipment-first-content {
  padding-top: 64px;
  width: 100%;
  height: auto;
  /* display: flex;
  justify-content: center;
  align-items: center; */
}

.equipment-first-content-article {
  padding: 32px;
  /* width: 100%; */
  height: 100%;
}

.equipment-first-content-article-top {
  margin: auto;
  width: 500px;
}

.equipment-first-content-article-tit {
  display: flex;
  align-items: center;
  /* justify-content: left; */
  font-size: 30px;
}

.equipment-first-content-article-tit::before,
.equipment-first-content-article-tit::after {
  content: '';
  flex: 1;
  height: 0.3px; /* ラインの太さ */
  background-color: #3a3a3a; /* ラインの色 */
  margin: 0 20px; /* テキストとの間隔 */
}

.equipment-first-content-article-subtit {
  font-size: 16px;
  text-align: center;
}

.equipment-first-content-article-item-grp-wrap {
  margin-top: 64px;
  width: 100%;
  height: 400px;
  display: flex;
  justify-content: center;
  /* align-items: center; */
}

.equipment-first-content-img {
  width: 50%;
  height: auto;
  overflow: hidden;
}

.equipment-first-content-img img {
  width: 100%;
  height: 100%;
	object-fit: cover;
	transition: transform 1s ease;
}

.equipment-first-content-img img:hover {
  transform: scale(1.1);
}

.equipment-first-content-article-item-grp {
  padding: 8px 0 0 32px;
  width: 50%;
  height: auto;
  position: relative;
  background: #fff;
}

.equipment-first-content-article-item-grp::after{
  content: '';
  position: absolute;
  top: 50%; /* 矢印を中央に配置 */
  right: 100%; /* 右に移動 */
  transform: translateY(-50%); /* 矢印を垂直方向に中央揃え */
  width: 0;
  height: 0;
  border-top: 70px solid transparent; /* 上の三角形部分 */
  border-bottom: 70px solid transparent; /* 下の三角形部分 */
  border-right: 15px solid #fff; /* 左の三角形部分 */
}

.equipment-first-content-article-item {
  font-size: 22px;
}

.equipment-first-content-article-item-side {
  padding-top: 16px;
  font-size: 16px;
}

.equipment-first-content-article-item-note {
  font-size: 12px;
}

.equipment-first-content-article-item-more {
  padding-top: 16px;
  display: flex;
  align-items: center;
}

.equipment-first-content-article-item-more-img {
  width: 30px;
  height: 30px;
}

.equipment-first-content-article-item-more-img img {
  width: 100%;
  height: 100%;
}

.equipment-first-content-article-item-more-text {
  padding-left: 8px;
  font-size: 16px;
}

.equipment-first-content-article-item-other {
  margin-top: 16px;
  width: 100%;
  display: flex;
  align-items: flex-end;
}

.equipment-first-content-article-item-other-img {
  margin-right: 16px;
  width: 40%;
  overflow: hidden;
}

.equipment-first-content-article-item-other-img img {
  width: 100%;
  height: 100%;
	object-fit: cover;
}



/*************************************************************************************
**************************************************************************************
********************************** instagram ********************************************
**************************************************************************************
*************************************************************************************/
.instagram {
  margin: 144px 0;
  width: 100%;
  height: auto;
}

.instagram-inner {
  margin: auto;
  padding: 64px 0;
  width: 80%;
  height: auto;
}

.instagram-content {
  padding-top: 64px;
}

/*************************************************************************************
**************************************************************************************
********************************** spot ********************************************
**************************************************************************************
*************************************************************************************/
.spot {
  margin: 144px 0;
  width: 100%;
  height: auto;
}

.spot-inner {
  margin: auto;
  width: 1200px;
  height: 100%;
}

.spot-intro {
  margin: 32px auto;
  width: 60%;
  font-size: 18px;
}

.spot-item-grp {
  padding-top: 32px;
  width: 100%;
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
  align-content: space-between;
}

.spot-item {
  margin: 16px 0;
  width: 22%;
  height: auto;
  box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.3);
}

.spot-item-img {
  width: 100%;
  height: 210px;
}

.spot-item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.spot-item-article {
 padding: 8px;
 height: 160px;
 position: relative;
}

.spot-item-article-tit {
  font-size: 18px;
}

.spot-item-article-subtit {
  padding-top: 8px;
  font-size: 10px;
}

.spot-item-article-desc {
  padding-top: 16px;
  font-size: 14px;
  position: absolute;
  bottom: 10px;
}

/*************************************************************************************
**************************************************************************************
********************************** question ********************************************
**************************************************************************************
*************************************************************************************/
.question {
  /* margin: 128px 0; */
  width: 100%;
  height: auto;
}

.question-inner {
  margin: auto;
  padding-bottom: 64px;
  width: 1200px;
  height: 100%;
}

.s-offset {
  font-size: 32px !important;
}

.question-faq {
  border: 1px solid #ccc;
  margin: 16px 0;
  padding: 16px;
  cursor: pointer;
  background: #ffe9eb;
  overflow: hidden; /* 内容がはみ出さないように */
}

.question-answer {
  max-height: 0; /* 初期状態では高さを0に */
  margin-top: 8px;
  transition: max-height 0.8s ease-out; /* 高さのアニメーション */
  overflow: hidden; /* 内容がはみ出さないように */
}

.open .question-answer {
    max-height: 160px; /* 開いたときの最大高さ */
}

.question-arrow {
    float: right;
    transition: transform 0.5s;
}

.open .question-arrow {
    transform: rotate(180deg);
}

/*************************************************************************************
**************************************************************************************
********************************** access ********************************************
**************************************************************************************
*************************************************************************************/
.access {
  /* margin: 144px 0; */
  width: 100%;
  height: auto;
}

.access-inner {
  margin: auto;
  padding: 64px 0;
  width: 1200px;
  height: 100%;
}

.access-content {
  margin-top: 32px;
  display: flex;
  justify-content: space-between;
}

.access-map iframe {
  max-width: 100%;
  /* height: auto; */
  aspect-ratio: 4/3;
}

.access-map {
  width: 50%;
  text-align: center;
}

.access-info {
  width: 50%;
}

table.access-info-lists {
  width: 100%;
  height: 100%;
  border-collapse: separate; /* デフォルトは separate */
  border-spacing: 0 8px;
}

table.access-info-lists br {
  display: none;
}

table.access-info-lists tr {

}

table.access-info-lists tr td {
  font-size: 18px;
  vertical-align: top;
  padding: 8px 16px;
  line-height: 1.4;
}

table.access-info-lists tr td:nth-of-type(1) {
  text-align: right;
  white-space: nowrap;
}

/*************************************************************************************
**************************************************************************************
********************************** message ********************************************
**************************************************************************************
*************************************************************************************/
.message {
  width: 100%;
  height: auto;
}

.message-inner {
  margin: auto;
  padding: 64px 0;
  width: 1200px;
}

.message-content {
  width: 100%;
  height: 100%;
  margin-top: 64px;
  display: flex;
  justify-content: space-around;
}

.message-content-img {
  width: 25%;
  height: auto;

}

.message-content-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.message-content-intro {
  width: 60%;
  height: auto;
  position: relative;
}

.message-content-intro-text {
  font-size: 18px;
	line-height: 1.8em;
	letter-spacing: 0.1em;
  position: absolute;
  top: 10%;
  left: 0;
}

.message-content-intro-sin {
  text-align: right;
  position: absolute;
  bottom: 0;
  right: 0;
}

.message-content-intro-company {
  font-size: 22px;
}

.message-content-intro-name {
  font-size: 26px;
}

span.name-s {
  font-size: 18px;
}

/*************************************************************************************
**************************************************************************************
********************************** footer ********************************************
**************************************************************************************
*************************************************************************************/
.footer {
  width: 100%;
  height: 300px;
  	background: rgba(254, 104, 104, 0.5);
  /* background: #e60012; */
}

.footer-inner {
  margin: auto;
  width: 1000px;
  height: 100%;
  display: flex;
  justify-content: space-around;
  align-items: center;
  color: #fff;
}

.footer-info {
  width: 50%;
}

.footer-info-header {
  font-size: 30px;
}

.footer-info-header-s {
  font-size: 24px;
}

.footer-info-content {
  padding: 16px 0;
  font-size: 14px;
}

.footer-info-content i {
  margin-right: 4px;
  font-size: 12px;
  color: #3a3a3a;
}

.footer-info-sns a {

}

.footer-info-sns i {
  font-size: 40px;
  color: #F167E1;
}

.footer-info-sns-instagram {
  margin-left: 8px;
  font-size: 14px;
}

.footer-contact {
  width: 50%;
}

.footer-contact-header {
  font-size: 22px;
}

ul.footer-contact-content {
  padding: 8px 0;
}

ul.footer-contact-content li {
  font-size: 16px;
}

ul.footer-contact-content li a {
  color: #fff;
}

.footer-reserve {
  padding-top: 16px;
}

.reserve-btn {
  width: 250px;
  background: #fff;
  border: none;
  text-align: center;
  display: inline-block;
  border-radius: 25px;

}

.reserve-btn a {
  padding: 10px 30px;
  display: block;
  color: #e60012;
  font-size: 16px;
  transition: font-weight 0.5s ease, transform 0.5s ease; 
  cursor: pointer;
}

.reserve-btn a:hover {
  font-weight: bold; /* ホバー時に太くする */
  transform: scale(1.05);
}

.privacy-policy {
  margin-top: 16px;

}

.privacy-policy a {
  font-size: 14px;
  color: #fff;
}


/*************************************************************************************
**************************************************************************************
********************************** page ********************************************
**************************************************************************************
*************************************************************************************/
.page-content {
	margin: 64px auto;
	width: 1024px;
	letter-spacing: 0.1em;
}

.page-content p {
  margin: 8px 0;
}

.page-content ol li {
	margin: 0.5em 0;
  list-style-type: none;
  counter-increment: cnt;
}

.page-content ol li:before {
	content: "("counter(cnt)")";
}


.page-header {
  width: 100%;
  height: 300px; /* 高さはお好みで */
  background-color: #ffe9eb;
  display: flex;
  justify-content: center;
  align-items: center;
}

.page-header-title {
  font-size: 2rem;
  font-weight: bold;
}