@charset "utf-8";
/* CSS Document */

body{
	background-color: #fff;
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 400;
	font-style: normal;
	color: #343D42;
	margin: 0;
	padding: 0;
}

/*COCEPT 流れるスライド*/
	
	.concept_slider {
		overflow: hidden;
		position: relative;
		width: 100%;
		background: #000;
	}
	
	.concept_slide-track {
		display: flex;
		width: calc(200%); /* 2倍幅でループ */
		animation: scroll 30s linear infinite;
	}
	
	.concept_slide {
		flex: 0 0 auto;
		width: 300px; /* 画像サイズに合わせて調整 */
	}
	
	.concept_slide img {
		width: 100%;
		height: auto;
		display: block;
	}

.google_my_maps{
	margin-bottom: 64px;
}
.google_my_maps_ss{
	margin-bottom: 64px;
}

@keyframes scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.br-sp {
    display: none;
}

@media screen and (min-width: 768px){
#main_contents{
	width: 70%;
	margin: 0 auto;
}

/*共通*/
h1{
	text-align: center;
	font-size: 32px;
	font-weight: normal;
	margin: 200px auto 5px auto;
}
h2{
	font-size: 20px;
	margin: 0;
}
h3{
	font-size: 20px;
	margin: 32px 0 16px 0;
}
.english_title_20{
	color: #D6D8DC;
	text-align: center;
	margin: 0  0 32px 0 ;
}
p{
	margin: 0;
}
.clear{
	clear: both;
}



/*HEADER*/
#header_top{
	width: 100%;
	height: 80px;
	background-color: #ffffff;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
}
.header_left_logo{
	height: 80px;
	display: flex;
	justify-content: flex-start;
	align-items: center;
}
	.header_logo{
		width: 3%;
		margin-left: 3%;
	}
	.header_p{
		font-size: 15px;
		color: #343D42;
		margin-left: 2%;
	}

/*HRADER ハンバーガーメニュー*/
.hamburger {
  position: fixed;
  top: 15px;
  right: 20px;
  z-index: 100;
  width: 48px;
  height: 48px;
  border: none;
  background: transparent;
  cursor: pointer;
}

.hamburger__line {
  position: absolute;
  left: 11px;
  width: 26px;
  height: 2px;
  background-color: #343D42;
  transition: all .4s;
}

.hamburger__line:nth-of-type(1) {
  top: 14px;
}
.hamburger__line:nth-of-type(2) {
  top: 23px;
}
.hamburger__line:nth-of-type(3) {
  top: 32px;
}

/* メニューオープン時 */
.hamburger.active .hamburger__line:nth-of-type(1) {
  transform: translateY(9px) rotate(-45deg);
}
.hamburger.active .hamburger__line:nth-of-type(2) {
  opacity: 0;
}
.hamburger.active .hamburger__line:nth-of-type(3) {
  transform: translateY(-9px) rotate(45deg);
}

.nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 300px;
  height: 100vh;
  background-color: #fff;
  box-shadow: 2px 0 4px rgba(0,0,0,.1);
  transform: translateX(-100%);
  transition: transform .4s;
  z-index: 90;
}

.nav.active {
  transform: translateX(0);
}

.nav__list {
  margin: 0;
  padding: 100px 0 0;
  list-style: none;
}

.nav__item {
  padding: 0 20px;
}

.nav__link {
  display: block;
  padding: 15px 0;
  color: #343D42;
  text-decoration: none;
  border-bottom: 1px solid #eee;
}


/*スライドショー*/
	.swiper {
		width: 100% !important;
		margin: 0 auto; /* 念のため中央寄せ */
	}
	
	.swiper-wrapper {
		width: 100% !important;
	}
	
	.swiper-slide {
		width: 100% !important; /* ここ大事 */
	}
	
	.swiper-slide picture,
	.swiper-slide img {
		width: 100%;
		height: auto;
		display: block;
		object-fit: cover; /* フル画面なら cover */
	}
	
	
/*右下追従予約ボタン*/
.btn_yoyaku{
	position: fixed;
    top: 50%;
    right: 0;
    width: 3%;
	z-index: 9999;
}

/*スライド上アイコンなど*/
.eye_slide_text{
	color: #ffffff;
	text-align: center;
	font-size: 14px;
}
.eye_slide_icon{
	width: 50%;
	margin: 5% auto;
}
.eye_slide_rideon{	
	z-index: 9999;
	position: absolute;
	text-align: center;
	top: 50%;
	left: 45%;
}


/*CONCEPT*/
.concept_img{
	width: 45%;
	margin: 200px auto 0 auto;
}
.concept_eight_icon{
	font-size: 16px;
	text-align: center;
	margin: 24px auto;
}
.concept_text_p{
	width: 80%;
	font-size: 16px;
	text-align: center;
	margin: 0 auto 160px auto;
	line-height: 2.5rem;
}
	.concept_text{
		margin-bottom: 80px;
	}



/*ROOM*/
.room_h2{
	font-size: 24px;
	margin-bottom: 20px;
}
.r_overview_left{
	width: 48%;
}
.r_overview_right{
	background-color: #ECECEC;
	width: 40%;
	padding: 6% 40px;
	border-radius: 24px;
}
.r_overview_right{
	text-align: center;
}
.btn_room_yoyaku{
	width: 45%;
	margin: 48px auto 0 auto;
	text-align: center;
}
.room_detail{
	border-top: solid 1px #343D42;
	padding: 16px 0;
	display: flex;
	justify-content: flex-start;
}
.room_overview{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 64px;
}
.overview_text{
	font-size: 16px;
	margin-bottom: 48px;
	line-height: 2rem;
}
.room_title{
	width: 15%;
	margin-right: 5%;
}
.room_answer{
	width: 80%;
}
.room_slider{
	width: 100%;
}

/*FACILITY*/
.intro_spa img{
	width: 100%;
	margin-bottom: 32px;
}
.intro_spa_p{
	margin-top: 16px;
}
.btn_spa{
	width: 45%;
	margin: 48px auto 96px auto;
}
.faci_name{
	font-size: 16px;
	margin: 16px auto 48px auto;
}
#intro_facility_list{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.facility_detail{
	width: 32%;
}
.facility_detail img{
	width: 100%;
}

/*CHECKIN OUT*/
.check_list_contents{
	width: 45%;
}
.check_list_contents p{
	width: 100%;
}
.check_list{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.check_list_contents{
	width: 49%;
}
.check_list_contents img{
	width: 100%;
}

/*RESTAURANT*/
.restau_text{
	width: 75%;
	text-align: center;
	margin: 0 auto 32px auto;
}
.restau_detail{
	width: 33%;
}
.restau_name{
	font-size: 16px;
	margin: 16px 0 24px 0;
}
	.btn_restau{
		width: 70%;
		margin: 0 auto 32px;
	}
.btn_restau img{
	width: 100%;
	margin: 0 auto;
}
.restau_btn_detail{
	width: 45%;
	margin: 96px auto 0 auto;
	text-align: center;
}
.btn_restau_main{
	width: 60%;
	margin: 0 auto 16px auto;
}
.resutau_detail_p{
	text-align: center;
	width: 70%;
	margin: 16px auto 0 auto;
}
.restau_list{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.restau_detail{
	width: 32%;
	position: relative;
}
.restau_detail img{
	width: 100%;
	display: block;
}
	.restau_distance{
		font-size: 13px;
		position: absolute;
		top: 20px;
		right: 0;
		background-color: #f9a825;
		padding: 5px 10px;
	}
.restau_distance_time{
		font-size: 13px;
		position: absolute;
		top: 20px;
		left: 0;
		background-color: #ff5252;
		padding: 5px 10px;
	color: #fff;
	}

/*SIGHTSEEING*/
.ss_detail{
	width: 32%;
	margin-right: 1%;
	position: relative;
}
.sightseeing_list{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
}

.ss_detail img{
	width: 100%;
	display: block;
}
	.copylight_ss{
		font-size: 10px;
		position: absolute;
		top: 5px;
		left: 10px;
		color: #fff;
	}
.ss_name{
	font-size: 16px;
	margin: 16px 0 48px 0;
}
	.ss_cate_shizen{
		font-size: 13px;
		position: absolute;
		top: 20px;
		right: 0;
		background-color: #f9a825;
		padding: 10px;
	}
	.ss_cate_rekishi{
		font-size: 13px;
		position: absolute;
		top: 20px;
		right: 0;
		background-color: #0288d1;
		padding: 10px;
		color: #fff;
	}
	.ss_cate_taiken{
		font-size: 13px;
		position: absolute;
		top: 20px;
		right: 0;
		background-color: #ff5252;
		padding: 10px;
		color: #fff;
	}

/*FAQ*/
.faq_q{
	width: 100%;
	background-color: #DBDBDB;
	font-size: 20px;
	padding: 24px 0 24px 3%;
}
.faq_a{
	width: 100%;
	font-size: 16px;
	margin: 32px 0 48px 5%;
}

/*ACCESS*/
.access_detail_p{
	width: 43%;
	border: solid 1px #343D42;
	padding: 24px;
}
.access_detail_title{
	font-size: 20px;
	border-bottom: solid 1px #343D42;
}
.access_detail{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 96px;
}


/*INFORMATION*/
.info_title_main{
	font-size: 24px;
	margin: 200px auto 32px auto;
	text-align: center;
}
#basic_info{
	margin-bottom: 200px;
}
.info_detail{
	width: 100%;
	border-bottom: solid 1px #343D42;
	padding: 32px 0;
	display: flex;
}
.info_title {
	width: 12%;
	margin-right: 5%
}


/*FOTTER*/
#footer{
	display: block;
	background-color: #D6D8DC;
	width: 100%;
	height: auto;
	text-align: center;
}
.footer_name{
	font-size: 24px;
	padding: 10px 0 32px 0;
}
.footer_name_sub{
	font-size: 15px;
	padding: 200px 0 0 0;
	}
.footer_p{
	font-size: 16px;
	margin: 0 0 48px 0;
	}
.footer_sns{
	margin: 0 auto;
	padding-bottom: 200px;
	width: 10%;
}
}
/*ここからスマホ用*/
@media screen and (max-width: 767px){
	#main_contents{
	width: 85%;
	margin: 0 auto;
}

/*共通*/
h1{
	text-align: center;
	font-size: 20px;
	font-weight: normal;
	margin: 150px auto 5px auto;
}
h2{
	font-size: 20px;
	margin: 0;
}
h3{
	font-size: 20px;
	margin: 32px 0 16px 0;
}
.english_title_20{
	color: #D6D8DC;
	text-align: center;
	margin: 0  0 32px 0 ;
}
p{
	margin: 0;
}
.clear{
	clear: both;
}
 .br-sp {
        display: block;
    }



/*HEADER*/
#header_top{
	width: 100%;
	height: 70px;
	background-color: #ffffff;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
}
.header_left_logo{
	height: 70px;
	display: flex;
	justify-content: flex-start;
	align-items: center;
}
	.header_logo{
		width: 11%;
		margin-left: 5%;
	}
	.header_p{
		font-size: 13px;
		color: #343D42;
		margin-left: 3%;
	}

/*HRADER ハンバーガーメニュー*/
.hamburger {
  position: fixed;
  top: 10px;
  right: 20px;
  z-index: 100;
  width: 48px;
  height: 48px;
  border: none;
  background: transparent;
  cursor: pointer;
}

.hamburger__line {
  position: absolute;
  left: 11px;
  width: 26px;
  height: 2px;
  background-color: #343D42;
  transition: all .4s;
}

.hamburger__line:nth-of-type(1) {
  top: 14px;
}
.hamburger__line:nth-of-type(2) {
  top: 23px;
}
.hamburger__line:nth-of-type(3) {
  top: 32px;
}

/* メニューオープン時 */
.hamburger.active .hamburger__line:nth-of-type(1) {
  transform: translateY(9px) rotate(-45deg);
}
.hamburger.active .hamburger__line:nth-of-type(2) {
  opacity: 0;
}
.hamburger.active .hamburger__line:nth-of-type(3) {
  transform: translateY(-9px) rotate(45deg);
}

.nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 300px;
  height: 100vh;
  background-color: #fff;
  box-shadow: 2px 0 4px rgba(0,0,0,.1);
  transform: translateX(-100%);
  transition: transform .4s;
  z-index: 90;
}

.nav.active {
  transform: translateX(0);
}

.nav__list {
  margin: 0;
  padding: 100px 0 0;
  list-style: none;
}

.nav__item {
  padding: 0 20px;
}

.nav__link {
  display: block;
  padding: 15px 0;
  color: #343D42;
  text-decoration: none;
  border-bottom: 1px solid #eee;
}


	
/*右下追従予約ボタン*/
.btn_yoyaku{
	position: fixed;
    top: 70%;
    right: 0;
    width: 12%;
	z-index: 9999;
}

/*スライド上アイコンなど*/
.eye_slide_text{
	color: #ffffff;
	text-align: center;
	font-size: 14px;
}
.eye_slide_icon{
	width: 50%;
	margin: 5% auto;
}
.eye_slide_rideon{	
	z-index: 9999;
	position: absolute;
	text-align: center;
	top: 50%;
	left: 45%;
}
/* スマホだけ高さ制御 */
	.swiper-slide img {
		width: 100%;
		height: 130vw; /* 画面幅と同じ高さ → 正方形に近い */
		object-fit: cover; /* はみ出した部分はトリミング */
	}

/*CONCEPT*/
.concept_img{
	width: 85%;
	margin: 100px auto 0 auto;
}
.concept_eight_icon{
	font-size: 16px;
	text-align: center;
	margin: 24px auto;
}
.concept_text_p{
	width: 100%;
	font-size: 14px;
	text-align: center;
	margin: 0 auto 94px auto;
	line-height: 2rem;
}

/*ROOM*/
.room_h2{
	font-size: 24px;
	margin-bottom: 20px;
}
.r_overview_left{
	width: 100%;
}
.r_overview_right{
	background-color: #ECECEC;
	width: 100%;
	padding: 6% 40px;
	border-radius: 24px;
}
.r_overview_right{
	text-align: center;
}
.btn_room_yoyaku{
	width: 100%;
	margin: 48px auto 0 auto;
	text-align: center;
}
	.btn_room_yoyaku img{
		width: 100%;
	}
.room_detail{
	border-top: solid 1px #343D42;
	padding: 16px 0;
	display: flex;
	justify-content: flex-start;
}
.room_overview{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 64px;
	font-size: 15px;
	line-height: 1.7rem
}
.overview_text{
	font-size: 15px;
	margin-bottom: 48px;
	line-height: 1.7rem;
}
.room_title{
	width: 15%;
	margin-right: 5%;
}
.room_answer{
	width: 80%;
}
.room_slider .swiper-slide img {
    width: 100%;
    height: auto;        /* 縦は自然比率にする */
    object-fit: contain; /* はみ出さずに全体表示（好みに応じて） */
    display: block;
  }

/*FACILITY*/
.intro_spa img{
	width: 100%;
	margin-bottom: 32px;
}
.intro_spa_p{
	margin-top: 15px;
	line-height: 1.7rem;
	font-size: 15px;
}
.btn_spa{
	width: 100%;
	margin: 48px auto 96px auto;
}
.faci_name{
	font-size: 16px;
	margin: 16px auto 48px auto;
}
#intro_facility_list{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.facility_detail{
	width: 100%;
}
.facility_detail img{
	width: 100%;
}

/*CHECKIN OUT*/
.check_list_contents{
	width: 45%;
}
.check_list_contents p{
	width: 100%;
	margin-bottom: 48px;
}
.check_list{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.check_list_contents{
	width: 100%;
}
.check_list_contents img{
	width: 100%;
}

/*RESTAURANT*/
.restau_text{
	width: 100%;
	text-align: center;
	margin: 0 auto 32px auto;
	font-size: 13px;
	line-height: 1.5rem;
}
.restau_detail{
	width: 33%;
}
.restau_name{
	font-size: 16px;
	margin: 16px 0 24px 0;
}
.btn_restau img{
	width: 100%;
	margin: 0 auto;
}
.restau_btn_detail{
	width: 100%;
	margin: 64px auto 0 auto;
	text-align: center;
}
	.restau_btn_detail img{
		width: 100%;
	}
.btn_restau_main{
	width: 60%;
	margin: 0 auto 16px auto;
}
.resutau_detail_p{
	text-align: center;
	width: 100%;
	margin: 16px auto 0 auto;
	font-size: 14px;
}
.restau_list{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.restau_detail{
	width: 100%;
	margin-bottom: 48px;
}
.restau_detail img{
	width: 100%;
}
.restau_distance{
		font-size: 13px;
		position: absolute;
		top: 20px;
		right: 0;
		background-color: #f9a825;
		padding: 5px 10px;
	}
	.restau_distance_time{
		font-size: 13px;
		position: absolute;
		top: 20px;
		left: 0;
		background-color: #ff5252;
		padding: 5px 10px;
	color: #fff;
	}

/*SIGHTSEEING*/
.ss_detail{
	width: 100%;
	position: relative;
}
.sightseeing_list{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.ss_detail img{
	width: 100%;
	display: block;
}
	.copylight_ss{
		font-size: 10px;
		position: absolute;
		top: 5px;
		left: 10px;
		color: #fff;
	}
.ss_name{
	font-size: 16px;
	margin: 16px 0 32px 0;
}
	.ss_cate_shizen{
		font-size: 13px;
		position: absolute;
		top: 20px;
		right: 0;
		background-color: #f9a825;
		padding: 10px;
	}
	.ss_cate_rekishi{
		font-size: 13px;
		position: absolute;
		top: 20px;
		right: 0;
		background-color: #0288d1;
		padding: 10px;
		color: #fff;
	}
	.ss_cate_taiken{
		font-size: 13px;
		position: absolute;
		top: 20px;
		right: 0;
		background-color: #ff5252;
		padding: 10px;
		color: #fff;
	}

/*FAQ*/
.faq_q{
	background-color: #DBDBDB;
	font-size: 15px;
	padding: 12px 3% 12px 3%;
}
.faq_a{
	font-size: 14px;
	margin: 12px 0 48px 5%;
}

/*ACCESS*/
.access_detail_p{
	width: 100%;
	border: solid 1px #343D42;
	padding: 24px;
	margin-bottom: 32px;
}
.access_detail_title{
	font-size: 20px;
	border-bottom: solid 1px #343D42;
}
.access_detail{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 96px;
}


/*INFORMATION*/
.info_title_main{
	font-size: 24px;
	margin: 200px auto 32px auto;
	text-align: center;
}
#basic_info{
	margin-bottom: 200px;
}
.info_detail{
	width: 100%;
	border-bottom: solid 1px #343D42;
	padding: 32px 0;
	display: flex;
	flex-direction: column;
}
.info_title {
	width: 100%;
	margin-right: 5%;
	font-weight:bold;
	margin-bottom: 10px;
}
	.info_answer{
		font-size: 14px;
	}


/*FOTTER*/
#footer{
	display: block;
	background-color: #D6D8DC;
	width: 100%;
	height: auto;
	text-align: center;
}
.footer_name{
	font-size: 24px;
	padding: 10px 0 32px 0;
}
.footer_name_sub{
	font-size: 15px;
	padding: 200px 0 0 0;
	}
.footer_p{
	font-size: 16px;
	margin: 0 0 48px 0;
	}
.footer_sns{
	margin: 0 auto;
	padding-bottom: 200px;
	width: 60%;
}
	
}