@charset "utf-8";
/*------------------------------------
    全体設計
------------------------------------*/
:root{
	--color-bg: #f9f5f4;
	--color-accent: #f6c226;
	--color-white: #fff;
	--color-black: #333333;
	--color-green: #0b4f32;
	--color-lightgreen: #86ba26;
}
html{
	scroll-behavior: smooth;
}
body{
	height: 100%;
	color: #333;
	background-color: var(--color-white);
	font-family: "Zen Kaku Gothic New",zen-kaku-gothic-new,"Noto Sans","Yu Gothic","HiraKakuProN-W3","Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN W3","メイリオ",Meiryo,Osaka,"MS UI Gothic","ＭＳ Ｐゴシック","MS PGothic",sans-serif,sans-serif;
	font-size: clamp(14px, 1vw, 16px);
	font-weight: 500;
	letter-spacing: 1.5px;
	line-height: 2;
	/* overflow: hidden; */
}
a{
	color: #333;
	text-decoration: none;
	transition: opacity 0.4s ease;
}
@media (hover: hover) {
	a:hover{
		opacity: .5 ;
	}
}
a.no-opa:hover{
	opacity: unset;
}
br.pc{
	display: block;
}
br.sp,br.tb{
	display: none;
}
section{
	margin: 0 auto;
	display: block;
	position: relative;
	overflow: hidden;
}
.container{
	width: 86%;
	margin: 0 auto;
	padding: clamp(60px, 9.87vw, 110px) 0;
}
h2.sec-ttl{
	font-size: clamp(20px, 1.689vw, 26px);
	font-weight: 600;
	text-align: center;
	margin: 0 auto;
	padding: 2vh 0;
	z-index: 1;
}
h2 .subttl{
	font-size: clamp(12px, 1vw, 14px);
	font-weight: 700;
	display: block;
}
h3.sec-ttl{
	font-size: clamp(18px, 1.489vw, 26px);
	font-weight: 700;
}
h3 .subttl{
	font-size: clamp(12px, 1vw, 14px);
	font-weight: 700;
	display: block;
}
.txt--mincho{
	font-family: "02うつくし明朝体","02UtsukushiMincho";
}
.center{
	text-align: center;
}
.more-btn{
	/* width: clamp(160px,29vw,200px); */
	/* margin: 0 auto; */
	padding-top: clamp(40px, 3.8vw, 60px);
}
.more-btn .a{
	position: relative;
	z-index: 1;
	display: inline-block;
	padding: .8em 1em .8em 1.4em;
	box-sizing: border-box;
	text-decoration: none;
	line-height: 1;
	letter-spacing: .04em;
}
.more-btn .a:before {
	background: var(--color-black);
}
.more-btn .a:after {
	background: #5b664b;
	transform: scale(0, 1);
	transform-origin: right top;
	transition: transform .5s ease;
}
.more-btn .a:before, .more-btn .a:after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 2px;
}
.more-btn .a span {
	display: block;
	font-size: clamp(10px, 0.9vw, 12px);
	font-weight: 600;
	letter-spacing: 2px;
}
.more-btn .a span:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 1em;
	height: 1em;
	border-radius: 50%;
	background: #111;
}
.more-btn .a span:after {
	content: "";
	position: absolute;
	top: 50%;
	left: -1em;
	transform: translateY(-48%) scale(0);
	transform-origin: center;
	transition: all .5s ease;
	width: 3em;
	height: 3em;
	border-radius: 50%;
	background: rgba(17, 17, 17, 0.2);
	/* background: rgba(246, 194, 38, 0.5);
	background: rgba(138, 187, 43, 0.8); */
}
@media (hover: hover) {
	.more-btn .a:hover span:after {
    transform: translateY(-48%) scale(1);
	}
	.room-container a.room-content:hover span:after {
    transform: translateY(-48%) scale(1);
	}
}
#cityscape-top .more-btn .a,#room-top .more-btn .a{
	color: var(--color-bg);
}
#cityscape-top .more-btn .a:before,#room-top .more-btn .a:before,
#cityscape-top .more-btn .a span:before,#room-top .more-btn .a span:before{
	background: var(--color-bg);
}

.fadeIn {
	animation: fadein 3s forwards;
}

@keyframes fadein {
	0% {opacity: 0}
	100% {opacity: 1}
}
/*------------------------------------
	header
------------------------------------*/
.sp-header{
	display: none;
}
header{
	position: fixed;
	width: 100%;
	z-index: 9999;
}
.pc-header{
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	margin: 0 4vw;
}
h1.header-logo{
	width: clamp(168px, 30vw, 290px);
	margin: 15px 15px 0 0;
	z-index: 1;
}
.pc-header .menu{
	display: flex;
	gap: 2vw;
	align-items: center;
}
.pc-header .menu ul{
	display: flex;
	flex-direction: row;
	gap: 2vw;
}
.pc-header .menu li a,.sp-header .menu li a{
	display: inline-grid;
	justify-items: center;
	font-weight: 600;
}
.pc-header .menu li a span,.sp-header .menu li a span{
	font-size: clamp(0.5rem, 0.7vw, 0.8rem);
	font-weight: 600;
}
.reservation-btn a{
	font-size: clamp(12px, 1vw, 16px);
	font-weight: 600;
	display: inline-flex;
	justify-items: center;
	align-items: center;
	gap: 5px;
	background-color: var(--color-accent);
	border-radius: 100vmax;
	padding: 10px 1.5em;
	transition: 0.4s ease;
}
.reservation-btn a i{
	background: url(../images/icon__calendar_check.webp) center / 100% no-repeat;
	width: 1rem;
	height: 1rem;
}
/* @media (hover: hover) {
	.reservation-btn a:hover{
		background-color: var(--color-lightgreen);
	}
} */
.pc-header .drop-menu:hover .drop-menu-list {
  opacity: 1; /* 不透明度を最大に */
  transition: opacity .3s, visibility .3s; /* アニメーション設定 */
  visibility: visible; /* 下層メニューを表示 */
}
.pc-header .drop-menu {
  position: relative;
}
.pc-header .drop-menu-list {
	flex-direction: column !important;
	gap: 0.5em !important;
  left: 0;
  opacity: 0; /* 不透明度を最小に */
  position: absolute;
  top: 100%;
  transition: opacity .3s, visibility .3s; /* アニメーション設定 */
  visibility: hidden; /* 下層メニューを非表示 */
  width: max-content;
  z-index: 1;
	margin-top: 1em;
}
.ham-btn{
	width: 50px;
	height: 50px;
	padding: 0.7em;
	background-color: var(--color-bg);
	border-radius: 6px;
	/* position: fixed;
	top: 4vw;
	right: 4vw; */
	cursor: pointer;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 10;
}
.menu-bar{
	position: relative;
	width: 100%;
	height: 3px;
	background-color: var(--color-green);
	border-radius: 60px;
	transition: all .4s;
}
.menu-bar::before,.menu-bar::after{
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 3px;
	background-color: var(--color-green);
	border-radius: 60px;
	transition: all .4s;
}
.menu-bar::before{
	transform: translateY(-10px);
}
.menu-bar::after{
	transform: translateY(10px);
}
.menu-bar.open {
	background-color: transparent;
}
.menu-bar.open::before{
	transform: rotate(45deg);
}
.menu-bar.open::after{
	transform: rotate(-45deg);
}
.ham-content{
	position: fixed;
	top: 0;
	right: -100%;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	flex-direction: column;
	/* color: #202124; */
	background-color: var(--color-green);
	transition: .3s;
	z-index: 5;
}
.ham-content.open {
	position: fixed;
	right: 0;
}
.ham-content .nav,.ham-content .menu{
	display: flex;
	flex-direction: column;
	align-items: center;
}
.ham-content .header-logo{
	margin: 2em auto 0;
}
.ham-content .menu{
	text-align: center;
}
.ham-content .menu li{
	margin: 1em 0;
}
.sp-header .menu li a,.sp-header .menu li a span{
	color: var(--color-bg);
}
.sp-header .manu-rule{
	display: flex;
	gap: 1em;
	margin-bottom: 1em;
}
.sp-header .manu-rule li a{
	font-size: clamp(12px, 0.8vw, 14px);
}
/*------------------------------------
  hero
------------------------------------*/
#hero{
	position: relative;
	display: revert;
}
#hero .mv{
	height: 100%;
	width: 100%;
	left: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
}
#hero .sns{
	position: absolute;
	top: 50%;
	right: 2%;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	writing-mode: sideways-lr;
}
#hero .kashikiri{
	position: absolute;
	top: 15%;
	left: 10%;
}
.kashikiri{
	width: clamp(140px, 20vw, 211px);
}
#hero .mv-bg{
	height: 100vh;
	width: 100%;
	left: 0;
	position: sticky;
	top: 0;
}
.mv-bg img{
	height: 100%;
	width: 100%;
	object-fit: cover;
}
.copy{
	height: 100vh;
	width: 100%;
	position: relative;
	display: flex;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	gap: 1em;
}
.copy-01,.copy-02{
	color: var(--color-white);
	font-weight: 600;
	line-height: 2.2;
	display: block;
}
.copy-01{
	font-size: clamp(16px, 2.589vw, 36px);
	text-shadow: 0 1px 7px black;
}
.copy-02{
	margin: 0 1vw;
}
#cityscape-top{
	height: 100vh;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4vw;
	position: relative;
	margin-top: 20em;
	background-image: linear-gradient(0deg, #000000b3, transparent);
}
#cityscape-top h2.sec-ttl{
	text-align: start;
}
#cityscape-top .txt-box{
	color: var(--color-bg);
	text-shadow: 1px 1px 7px black;
}
#cityscape-top .txt-box p{
	line-height: 2.5;
}
/*------------------------------------
  room-top
------------------------------------*/
#room-top{
	background: url(../images/bg__grey.webp) repeat top left / auto auto;
}
.room-top-txt{
	text-align: center;
	margin-bottom: 4em;
}
.room-container{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2vw;
}
.room-content{
	aspect-ratio: 3/2;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	position: relative;
}
.room-content .more-btn{
	position: absolute;
	bottom: 2em;
}
.room-content .room-content-box{
	display: flex;
	width: 100%;
	height: 100%;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.room-content-box h3{
	text-align: center;
	color: var(--color-bg);
	text-shadow: 1px 1px 3px black;
}
.room-content-box h3 .mainttl{
	font-weight: 600;
}
.room-content-01{
	background: url(../images/img__facility250722.webp) no-repeat center / cover;
}
.room-content-02{
	background: url(../images/img__gallery250722.webp) no-repeat center / cover;
}

/*------------------------------------
  access-top
------------------------------------*/
#access-top h2.sec-ttl{
	text-align: start;
}
.access-container{
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: row-reverse;
}
.access-container .access-content-box p{
	margin-top: 2em;
}
.access-content-box{
	width: auto;
}
.map-pic{
	max-width: 770px;
}
/*------------------------------------
  reservation-top
------------------------------------*/
#reservation-top{
	width: 100%;
	height: max-content;
	margin: clamp(40px, 9.87vw, 110px) 0 auto;
	clip-path: inset(0 0 0 0);
}
.reservation-bg{
	background: url(../images/bg__reservation.webp) center / cover no-repeat;
	position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
	z-index: -1;
}
.reservation-content{
	text-align: center;
}
.reservation-content h2,.reservation-content p{
	color: var(--color-bg);
}
.reservation-content p{
	margin-bottom: 2em;
}
/*------------------------------------
  instagram-top
------------------------------------*/
#instagram-top{
	background: url(../images/bg__grey.webp) repeat top left / auto auto;
}
#instagram-top .more-btn{
	text-align: center;
}
/*------------------------------------
  footer
------------------------------------*/
footer{
	position: relative;
	background-color: var(--color-green);
}
footer::before{
	content: "";
	background: url(../images/footerbg__01.webp) left bottom / contain no-repeat;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 50%;
	height: 50%;
}
footer::after{
	content: "";
	background: url(../images/footerbg__02.webp) right bottom / contain no-repeat;
	position: absolute;
	bottom: 0;
	right: 0;
	width: 50%;
	height: 50%;
}
footer .container{
	padding: 4vh 0 2vh;
}
.footer-contents{
	color: var(--color-white);
	text-align: center;
	position: relative;
	z-index: 5;
}
.footer-logo{
	/* width: clamp(80px, 22vw, 170px); */
	width:clamp(168px, 30vw, 290px);
	margin: auto;
}
.address{
	font-weight: 500;
}
.sns{
	text-align: center;
	margin: 2em auto;
}
.sns a{
	color: var(--color-bg);
	display: inline-flex;
	justify-items: center;
	align-items: center;
	gap: 5px;
}
.sns a i{
	background: url(../images/icon__instagram.webp) center / 100% no-repeat;
	display: inline-block;
	width: 1rem;
	height: 1rem;
}
.footer-nav{
	display: grid;
	grid-template-columns: auto auto auto;
	gap: 4em;
	width: fit-content;
	margin: auto;
}
.footer-nav ul{
	text-align: start;
}
.footer-nav ul li+li{
	margin-top: 0.5em;
}
.footer-nav a{
	font-size: clamp(10px, 1vw, 12px);
	color: var(--color-white);
}
.footercopy{
	text-align: center;
	position: relative;
	z-index: 5;
}
.footercopy-txt{
	font-size: clamp(10px, 0.8vw, 12px);
	color: var(--color-white);
	letter-spacing: 0;
	line-height: 2.5;
}
/*------------------------------------
    下層ページ共通設計
------------------------------------*/
.page-ttl{
	/* background-image: url(../images/bg__grey.webp); */
	background-image: url(../images/bg__pagemv.webp);
	background-size: cover;
	background-repeat: no-repeat;
	border-bottom: 2em solid var(--color-lightgreen);
	width: 100%;
	height: clamp(28vh, 22vw, 35vh);
	position: relative;
	overflow: hidden;
}
.page-ttl h2{
	color: var(--color-white);
	position: absolute;
	bottom: 0;
	text-align: start;
}
.page-ttl h2 .subttl{
	text-transform: uppercase;
}
.page-ttl .kashikiri{
	position: absolute;
	bottom: 2em;
	right: 4vw;
}
.page-wrap .container{
	max-width: 1200px;
}
.page-wrap .box{
	padding: clamp(20px, 3.87vw, 40px) 0;
	border-bottom: 2px solid #ccc;
}
.page-wrap p{
	padding: 1em 0;
}
.indent{
	padding-left: 1rem !important;
}
.page-wrap h3.h3-grey{
	font-weight: 500;
	color: var(--color-bg);
	background-color: #9fafbb;
	display: inline-block;
	margin-bottom: 1em;
	padding: 0 0.5em;
}
.page-wrap a i{
	background: url(../images/icon__arrow-up.webp) center / 100% no-repeat;
	display: inline-block;
	width: 1rem;
	height: 1rem;
	margin-right: 0.5em;
}
.page-wrap a{
	color: var(--color-lightgreen);
	text-decoration: underline;
}
.facilitieslist{
	display: flex;
	gap: 2em;
}
#gallery-1 img,#gallery-2 img,#gallery-3 img,#gallery-4 img,#gallery-5 img{
	/* border: none!important; */
	width: 100%;
	height: auto;
	aspect-ratio: 3/1.6;
	overflow: hidden;
}
#gallery-1 .gallery-item{
	position: relative;
}
#gallery-1 .gallery-caption {
	color: #fff;
	position: absolute;
	bottom: 1em;
	left: 50%;
	transform: translateX(-50%);
	-webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
}

.breadcrumb{
	width: 85%;
	text-align: end;
	margin: 0 auto;
	padding-top: 2vh;
}
.breadcrumb a{
	color: var(--color-accent);
}
.breadcrumb i{
	padding: 0 20px;
}
.wp-pagenavi{
	text-align: center;
	margin-top: 3rem;
}
.wp-pagenavi a,.wp-pagenavi span{
	display: inline-block;
	border: none;
	margin: 1rem;
}
.wp-pagenavi .current{
	border-bottom: 1px solid var(--color-black);
	padding: 0.2rem;
}
.previouspostslink i,.nextpostslink i{
	background-size: contain;
	background-repeat: no-repeat;
	display: inline-block;
	width: clamp(20px, 2.1vw, 36px);
	height: clamp(20px, 2.1vw, 36px);
	vertical-align: middle;
}
.previouspostslink i{
	background-image: url(../images/arrow-left.png);
}
.nextpostslink i{
	background-image: url(../images/arrow-right.png);
}
.post-body h1,.post-body h2,.post-body h3,.post-body h4,.post-body h5,.post-body h6,.page-wrap h1,.page-wrap h2,.page-wrap h3,.page-wrap h4,.page-wrap h5,.page-wrap h6{
	font-weight: 600;
	margin-bottom: 1em;
}
.post-body h1,.page-wrap h1{
	font-size: clamp(20px, 2vw, 28px);
}
.post-body h2,.page-wrap h2{
	font-size: clamp(18px, 1.95vw, 26px);
}
.post-body h3,.page-wrap h3{
	font-size: clamp(16.5px, 1.879vw, 24px);
}
.post-body h4,.page-wrap h4{
	font-size: clamp(16px, 1.689vw, 20px);
}
.post-body h5,.page-wrap h5{
	font-size: clamp(15px, 1.589vw, 18px);
}
/*------------------------------------
  facility
------------------------------------*/
.room-info{
	display: flex;
	align-items: center;
}
.room-img{
	width: 55%;
}
.room-map{
	width: 45%;
}
.room-img .swiper-container{
	display: none;
}
.room-img .is-switch {
  display: flex;
}
.swiper-slide{
	overflow: hidden;
	aspect-ratio: 16 / 9;
}
.swiper-slide{
	display: block;
	margin: 0 auto;
	max-height: 500px;
}
.swiper-slide img{
	display: block;
	margin: 0 auto;
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 6px;
}
.room-img .swiper-pagination-bullet-active{
	background-color: var(--color-bg);
}
.room-img .swiper-button-next,.room-img .swiper-button-prev{
	color: var(--color-bg);
}
.room-map{
	position: relative;
}
.room-map .btn{
	background-color: var(--color-lightgreen);
	border-radius: 50%;
	width: 1.5em;
	height: 1.5em;
}
.room-map .btn.room-1{
	position: absolute;
	top: 59%;
	left: 19%;
}
.room-map .btn.room-2{
	position: absolute;
	top: 54%;
	left: 43%;
}
.room-map .btn.room-3{
	position: absolute;
	top: 28%;
	left: 19%;
}
.room-map .btn.room-4{
	position: absolute;
	top: 59%;
	left: 65%;
}
.room-info-txt{
	font-size: clamp(10px, 1vw, 12px);
	display: table;
	margin: 0 auto;
}
.room-info-txt span{
	background-color: var(--color-lightgreen);
	border-radius: 50%;
	display: inline-block;
	width: 1.5em;
	height: 1.5em;
	line-height: 0;
	margin: 0 0.5em;
	vertical-align: sub;
}
/*------------------------------------
  contact
------------------------------------*/
.wpcf7-form{
	max-width: 838px;
}
.formTable{
	width: 100%;
}
/* table.formTable tr:last-child{
	align-items: start;
} */
table.formTable tr{
	width: 100%;
}
table.formTable tr + tr{
	padding-top: clamp(25px, 5vw, 40px);
}
table.formTable th, table.formTable td {
	position: relative;
	display: block;
	line-height: 2;
}
table.formTable th,table.formTable td{
	width: 100%;
}
table.formTable th p{
	font-weight: 500;
	display: flex;
	align-items: baseline;
	padding-bottom: 0;
}
table.formTable td p{
	padding-top: 0;
}
td input,td textarea, td select{
	display: block;
	width: 100%;
	height: 3.5rem;
	padding: 0.5rem 0.75rem;
	color: #666;
	font-size: clamp(14px, 1.1vw, 18px);
	text-indent: 0.01px;
	text-overflow: ellipsis;
	background-color: #f2f2f2;
	border-top: 2px solid #e4e4e4;
	border-bottom: none;
	border-left: none;
	border-right: none;
}
td.checkbox input{
	width: inherit;
	height: 1rem;
	padding: 0.5rem 0.75rem;
}
.wpcf7-list-item label{
	display: flex;
	align-items: center;
}
.wpcf7-radio label input{
	width: auto;
	height: auto;
}
td.checkbox .wpcf7-list-item{
	margin-right: 2em;
}
.wpcf7-list-item-label{
	padding-left: 10px;
}
td textarea{
	height: 8rem;
}
/* ::placeholder{
  color: #ccc;
} */
table.formTable .formLavel-required {
	display: inline-block;
	color: #c50000;
	padding: 0 0.5rem;
	vertical-align: text-bottom;
}
.wpcf7-acceptance{
	display: block;
	margin-top: 2vh;
}
input[type="submit"] {
	display: block;
	width: 6em;
	font-size: clamp(14px,1vw,16px);
	font-weight: 600;
	letter-spacing: 2px;
	color: var(--color-white);
	background-color: var(--color-lightgreen);
	border: 2px solid var(--color-lightgreen);
	border-radius: 6px;
	/* margin: 2vw auto 0; */
	margin-top: 2vw;
	padding: 10px 0;
	transition: 0.4s ease;
	cursor: pointer;
}
.wpcf7 .wpcf7-submit:disabled {
	opacity: 0.5;
}
/*送信完了*/
.wpcf7 form.sent .wpcf7-response-output{
	border: none;
	text-align: center;
	font-weight: 600;
	background-color: #fbf8f5;
	padding: 10vh 0;
}
form.sent .formTable,form.sent .agree,form.sent p,form.sent .cf7-cf-turnstile,form.sent .wpcf7-submit{
display:none;
}

#booking-package_durationStay select{
	height: 3.5rem;
	background-color: #f2f2f2;
	border-top: 2px solid #e4e4e4;
	border-bottom: none;
	border-left: none;
	border-right: none;
}
#booking-package input[type=text], #booking-package textarea, #booking-package-user-form input[type=text], #booking-package-user-form input[type=password], #booking-package-user-form textarea, #booking-package-loginform input[type=text], #booking-package-loginform input[type=password], #booking-package-loginform textarea, #booking-package-user-edit-form input[type=text], #booking-package-user-edit-form input[type=password], #booking-package-user-edit-form textarea{
	padding: 0.2em 0.5em;
	height: 3.5rem;
	background-color: #f2f2f2;
	border-top: 2px solid #e4e4e4;
	border-bottom: none;
	border-left: none;
	border-right: none;
}