@charset "utf-8";

/*
Theme Name:Precious Hotel
*/

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

ul, h2, 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;
  display: none;
}

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

.header-movie-mobile {
  width: 100%;
  height: 100%;
  object-fit: cover;
  overflow: hidden; 
  display: block;
}

.header-movie-mobile video {

  width: 100%; /* 最小幅を100%に設定 */
  height: 100%; /* 最小高さを100%に設定 */
}

/* スクロールオブジェ */
.scroll-indicator {
  display: none;
  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: 40px;
	background: rgba(254, 104, 104, 0.5);
	transition: all .5s;
}

.header-top-brand {
  width: 140px;
  height: 100%;
  margin-left: 16px;
}

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

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

.nav-wrap {
  display: none;
}




/* ハンバーガーここから */
/* チェックボックスを非表示にする */
.drawer_hidden {
  display: none;
}



/* 既存のCSSに追加 */
.menu-background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5); /* 半透明の背景 */
  display: none; /* 初期状態では非表示 */
  z-index: 98; /* メニューより下に */
}

/* メニューが開いているときに背景を表示 */
#drawer_input:checked ~ .menu-background {
  display: block; /* メニューが開いているときに表示 */
}



/* ハンバーガーアイコンの設置スペース */
.drawer_open {
  display: flex;
  height: 25px;
  width: 60px;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 100;/* 重なり順を一番上にする */
  cursor: pointer;
}

.drawer_open:after {
	display: block;
	content:"MENU";
	width: 25px;
	margin-top: 30px;
	margin-left: 0;
	font-size: 6.5px;
	color: #e60012;
	font-family: 'Hiragino';
	letter-spacing: 1.2px;
}

/* ハンバーガーメニューのアイコン */
.drawer_open span,
.drawer_open span:before,
.drawer_open span:after {
  content: '';
  display: block;
  height: 2.5px;
  width: 25px;
  border-radius: 3px;
  background: #e60012;
  transition: 0.5s;
  position: absolute;
}

/* 三本線の一番上の棒の位置調整 */
.drawer_open span:before {
  bottom: 7px;
}

/* 三本線の一番下の棒の位置調整 */
.drawer_open span:after {
  top: 7px;
}

/* アイコンがクリックされたら真ん中の線を透明にする */
#drawer_input:checked ~ .drawer_open span {
  background: rgba(255, 255, 255, 0);
}

/* アイコンがクリックされたらアイコンが×印になように上下の線を回転 */
#drawer_input:checked ~ .drawer_open span::before {
  bottom: 0;
  transform: rotate(45deg);
}

#drawer_input:checked ~ .drawer_open span::after {
  top: 0;
  transform: rotate(-45deg);
}

#drawer_input:checked ~ .drawer_open:after {
	display: block;
	content:"閉じる";
	width: 25px;
	margin-top: 35px;
	margin-left: 0;
	font-size: 7px;
	color: #e60012;
	font-family: 'Hiragino';
	letter-spacing: 1px;
}

.burger-nav {
  width: 65%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 100%; /* メニューを画面の外に飛ばす */
  z-index: 99;
  background: #ffe9eb;
  transition: .5s;
  display: block;
}

.burger-nav li {
	border-bottom: 0.5px solid #fff;
}
.burger-nav li:nth-of-type(13) {
	/* background: #ffa9a1; */
}

.burger-nav li a {
	display: block;
	padding: 16px 0 16px 32px;
	font-size: 14px;
	color: #e60012;
	letter-spacing: 1px;
}

.burger-nav li:nth-of-type(3) a,
.burger-nav li:nth-of-type(4) a,
.burger-nav li:nth-of-type(5) a,
.burger-nav li:nth-of-type(6) a,
.burger-nav li:nth-of-type(8) a,
.burger-nav li:nth-of-type(9) a,
.burger-nav li:nth-of-type(10) a,
.burger-nav li:nth-of-type(11) a {
	/* padding-left: 64px;
	font-size: 12px; */
}

/* アイコンがクリックされたらメニューを表示 */
#drawer_input:checked ~ .burger-nav {
  left: 35%;/* メニューを画面に入れる */
}
/* ハンバーガーここまで */









/* 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 {
  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: 0;
    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: 48px;

  position: relative;
  padding: 8px 24px;
  font-size: 20px;
  color: #fff;
  background: #e60012;
}

.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: 32px;
}

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

/* 下からフェードイン (早い)*/
.fast-fade-in {
  opacity: 0;
  transform: translateY(0);
  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: 48px 0;
  width: 100%;
  height: auto;
}

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

}

.room-first-content {
  margin: 0 auto;
  padding: 16px 0;
  width: 90%;
  height: auto;
}

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

.room-contents {
  width: 100%;
}

.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 {
  width: 100%;
  display: flex;
  justify-content: center;
  margin-top: 10px;
}

.room-thumbnail {
  width: 12%; /* サムネイルの幅 */
  height: auto;
  margin: 0 3px;
  cursor: pointer;
  border: 2px solid transparent; /* 初期状態の枠線 */
  transition: border 0.3s;
}

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


.room-first-content-article {
  width: 100%;
  height: 80%;
  padding: 32px 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: 16px;
  color: #fff;
}

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

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

.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 {
  width: 70%;
  padding-bottom: 32px;
  display: block;
  align-items: center;
}

.room-first-content-article-features_one {
  padding: 9px;
  border: 1px solid #616161;
  border-radius: 5px;
  font-size: 14px;
}

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

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

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

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

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

.reservation-btn {
  margin: 32px auto 0;
  width: 60%;
}

.reservation-btn button {
  width: 100%;
  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: 12px 40px;
  display: block;
  color: #fff;
  font-size: 14px;
}

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

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

/*************************************************************************************
**************************************************************************************
********************************** amenities ********************************************
**************************************************************************************
*************************************************************************************/
.amenities {
  margin: 32px auto 0;
  width: 90%;
  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: 26px;
}

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

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

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

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

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

.equipment-inner {
  margin: auto;
  width: 90%;
  height: 100%;
}

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

.equipment-first-content-article {
  padding: 0;
  padding-bottom: 32px;
  width: 100%;
  height: 100%;
  position: relative;
  background: #fff;
  z-index: 1;
}

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

.equipment-first-content-article-top {
  /* width: 160px; */
  margin: auto;
  width: 80%
}

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

.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: 32px;
  width: 100%;
  height: auto;
  display: block;
  justify-content: center;
  /* align-items: center; */
}

.equipment-first-content-article-item-grp {
  padding: 0;
  padding-top: 32px;
  width: 100%;
  height: auto;
}

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

.equipment-first-content-article-item-side {
  padding-top: 8px;
  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;
}

.equipment-first-content-img {
  width: 100%;
  height: 250px;
  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);
}

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

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

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

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

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

.spot-intro {
  margin: 32px auto 0;
  padding-top: 32px;
  width: 95%;
  font-size: 16px;
}

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

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

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

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

.spot-item-article {
  margin: 6px 4px;
  padding: 0;
  height: 140px;
  position: relative;
}

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

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

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

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

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

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

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

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

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

.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: 32px 0;
  width: 90%;
  height: 100%;
}

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

.access-map {
  margin-bottom: 16px;
  padding: 0;
  width: 100%;
}

.access-map iframe {
  width: 100%;
}

.access-info {
  padding: 0;
  width: 100%;
}

table.access-info-lists {
  width: 100%;
  height: 100%;
}

table.access-info-lists tr {
  margin: 8px;
}

table.access-info-lists tr td {
  padding: 4px 6px 4px 0;
  font-size: 14px;
}

table.access-info-lists tr td:nth-of-type(1) {
  width: 18%;
  text-align: right;
  vertical-align: top;
}

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

.message-inner {
  margin: auto;
  padding: 32px 0;
  width: 90%;
  height: 100%;
}

.message-content {
  margin-top: 16px;
  display: block;
  justify-content: space-around;
  align-items: flex-end;
}

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

}

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

.message-content-intro {
  width: 100%;
  margin-top: 32px;
  position:static
}

.message-content-intro-text {
  font-size: 14px;
	line-height: 1.6em;
	letter-spacing: 0em;
  position:static
}

.message-content-intro-sin {
  padding-top: 24px;
  text-align: right;
  position:static
}

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

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

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

.message-reverse {
  flex-direction: row-reverse;
}

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

.footer-inner {
  margin: auto;
  padding: 32px 0;
  width: 90%;
  height: 100%;
  display: block;
  justify-content: space-around;
  align-items: center;
  color: #fff;
}

.footer-info {
  padding: 0;
  width: 100%;
}

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

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

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

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

.footer-info-content br:nth-of-type(2) {
  display: none;
}

.footer-info-sns a {

}

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

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

.footer-contact {
  padding-top: 32px;
  padding-left: 0;
  width: 100%;
}

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

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;
  text-align: center;
}

.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;
  text-align: center;
}

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


/*************************************************************************************
**************************************************************************************
********************************** page ********************************************
**************************************************************************************
*************************************************************************************/
.page-content {
	margin: 64px auto;
	width: 90%;
	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;
}