@charset "UTF-8";

:root{
  --BaseFontColor:#323232;
  --BaseColor:#fff3c0;
  --LinkColor:#3d85c6;
  --Esinout:ease-in-out;
  --Baseeasing:cubic-bezier(0.2, 0.5, 0.4, 1);
  --OrangeColor:#f19072;
  --OrangeColorDark:#ffb69f;
}
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
/*-- コンテナ
-------------------------------------------------------------*/
html{
	line-height: 1.7;
	font-family: 'Meiryo', 'Hiragino Kaku Gothic Pro', 'Gothic', 'Mincho', 'MS Gothic', 'MS PGothic', 'Hiragino Mincho Pro', 'MS Mincho', 'MS PMincho', 'Comic Sans MS', 'Courier New', monospace, sans-serif;
	font-size:18px;
	overflow-x: hidden;
}
body{
	background:#fff;
	overflow-x: hidden;
	width: 100%;
}
img{
	max-width: 100%;
}
.container{
	width: 100%;
	max-width: 1520px;
}
.container-1000{
	width: 100%;
	max-width: 1000px;
	padding-right: calc(var(--bs-gutter-x) * .5);
    padding-left: calc(var(--bs-gutter-x) * .5);
    margin-right: auto;
    margin-left: auto;
}
/*-- 文字
-------------------------------------------------------------*/
figcaption{
	font-size:13px;
}
.fs-12{
	font-size:12px;
}
.fs-13{
	font-size:13px;
}
.fs-14{
	font-size:13px;
}
.fs-22{
	font-size:22px;
}
.fs-30{
	font-size:30px;
}
.text-red{
	color:#f00;
}
.fc-spring{
	color:#fc7a9f;
}
.fc-summer{
	color:#39ac4a;
}
.fc-autumn{
	color:#e0630e;
}
.fc-winter{
	color:#5ba6d8;
}

@media (max-width: 768px) {
	ol,ul{
		padding-left: 1rem;
	}
}
.indent1{
	text-indent:-1em;
	padding-left:1em;
}
.kosugi-regular {
  font-family: "Kosugi", sans-serif;
  font-weight: 400;
  font-style: normal;
}
h1 span,
h2 span,
h3 span,
h4 span,
h5 span,
h6 span{
	font-size: 0.7em;
	display: block;
	color: var(--OrangeColor);
}

/*-- ボタン
-------------------------------------------------------------*/
.btn-orange{
	width: 480px;
	color:#fff;
	font-weight: bold;
	background:linear-gradient(0,#e46612,#f18338);
	box-shadow: 0 4px #b34f0d;
}
.btn-green{
	width: 480px;
	color:#fff;
	font-weight: bold;
	background:linear-gradient(to bottom,  #40bf60 0%,#3fab5a 100%);
	box-shadow: 0 4px #357545;
}
.btn-gray{
	width: 480px;
	color:#fff;
	font-weight: bold;
	background:linear-gradient(to bottom,  #c5c5c5 0%,#a1a1a1 100%);
	box-shadow: 0 4px #616161;
}

.btn-primary{
	background:var(--OrangeColor);
	border-color:var(--OrangeColor);
	color:#fff;
}
.btn-primary:hover,
.btn-primary:focus{
	background:var(--OrangeColorDark);
	border-color:var(--OrangeColorDark);
	color:#fff;
}

@media (max-width: 768px) {
	.btn-orange,
	.btn-green,
	.btn-gray{
		width: 100%;
	}
}

/*-- PDFリンク
-------------------------------------------------------------*/
a.pdf{
	display: flex;
	align-items: center;
}
a.pdf:before{
	content:url("../img/common/pdf-trance.png");
	margin-right:8px;
}

/*-- 画像
-------------------------------------------------------------*/
figcaption{
	margin-bottom:10px;
}

/*-- テーブル
-------------------------------------------------------------*/
table{
	width:100%;
}
table th,
table td{
	padding: 10px;
	border: solid 1px #000;
}

/*-- リスト
-------------------------------------------------------------*/
ol, ul{
	margin-left:0;
	padding-left:0;
}
dl{
	margin-bottom:0;
}
li{
	list-style:none;
}

/*-- スライドショー
-------------------------------------------------------------*/
.carousel {
	margin-bottom: 150px;
}
.carousel-indicators {
	bottom: -50px;
}
/* インジケーターのサイズを変更 */
.carousel-indicators [data-bs-target] {
	width: 150px;
}
/* ヒーローセクション用のcarousel */
.hero-carousel .carousel-indicators,
.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next {
	display: none;
}
.notice-carousel .carousel-indicators,
.notice-carousel .carousel-control-prev,
.notice-carousel .carousel-control-next {
	display: none;
}

/*-- 点線のリスト
-------------------------------------------------------------*/
.border-line dl{
	border-bottom: 1px solid;
	border-image: url(../img/common/border-line.svg) 30;
}
.border-line dl:first-child{
	border-top: 1px solid;
}
.border-line2 dl{
	border-bottom: 1px solid #c3c3c3;
}
.border-line2 dl:first-child{
	border-top: 1px solid #c3c3c3;
}

/*-- ヘッダー
-------------------------------------------------------------*/
/*--- ヘッダー基本設定 ---*/
header{
	background:#fff;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	height: 86px;
	transition: all 0.3s ease;
}
header.is-active{
	box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
body{
	padding-top: 86px;
}
/*--- ロゴ ---*/
.header-logo{
	height: auto;
	max-height: 50px;
	width: auto;
	display: block;
}
header h1{
	margin: 0;
	display: flex;
	align-items: center;
	height: 100%;
}
header h1 a{
	display: flex;
	align-items: center;
	line-height: 1;
	height: 100%;
}
.logo-text-small{
	font-size: 20px;
	color: var(--OrangeColor);
	font-weight: 400;
	font-family: 'Noto Sans JP', sans-serif;
	letter-spacing: 0.05em;
}
/*--- グローバルメニュー ---*/
#gn_menu{
	height: 100%;
	display: flex;
	align-items: center;
}
#gn_menu li{
	position: relative;
}
header nav > ul.nav{
	height: 100%;
	text-align: center;
	display: flex;
	align-items: center;
	margin: 0;
}
header nav > ul.nav > li{
	height: 100%;
	position: relative;
}
.nav-link,
.nav-link-item{
	color:var(--BaseFontColor);
	font-size: 16px;
	padding: 8px 16px !important;
	transition: color 0.3s ease;
	text-decoration: none;
}
.nav-link:hover,
.nav-link:focus,
.nav-link-item:hover,
.nav-link-item:focus{
	color: var(--OrangeColor);
}
.nav-link-item:hover,
.nav-link-item:focus{
	border:none;
}
.dropdown,
.nav-link-item{
	border:none !important;
}

/*--- サブメニュー ---*/
.dropdown-menu{
	background:#fff;
	border-radius:10px;
	padding:0;
	overflow: hidden;
	top: -2px !important;
	transition: all 0.3s ease;
	opacity: 0;
}
.dropdown-menu.show{
	animation: fadeIn 0.3s ease forwards;
	transform: translateY(60px);
	opacity: 1;
}

@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(40px);
	}
}
.dropdown-menu li{
	border-bottom:1px solid #ddd;
	padding:0 7px;
}
.dropdown-menu li:focus,
.dropdown-menu li:hover{
	background:#f0f0f0;
}
header nav > ul.nav .dropdown-menu li a.dropdown-item,
header nav > ul.nav .dropdown-menu li a.dropdown-item:focus,
header nav > ul.nav .dropdown-menu li a.dropdown-item:hover{
	color:var(--BaseFontColor) !important;
}
.dropdown-item:focus, .dropdown-item:hover{
	background:none;
}

/*--- スマホ用グローバルメニュー ---*/
.header-menu {
	position: fixed;
	top: .25rem;
	right: .5rem;
	pointer-events: auto;
	z-index: 100;
}
.menu-btn {
	width: 65px;
	height: 65px;
	max-width: 120px;
	display: block;
	padding: 0.5em !important;
	background: var(--OrangeColor);
	border-radius: 25%;
	aspect-ratio: 1 / 1;
	transition:0.8s opacity ease;
}
.menu-btn:hover, .smart-header .menu-btn:focus { 
	background: var(--OrangeColorDark);
	opacity:0.8;
}

/*---- スマホ用 ----*/
@media (max-width: 768px) {
	header{
		padding-top:10px;
	}
	header .px-5{
		padding:0 20px !important;
	}
	header .row{
		margin-left:0;
		margin-right:0;
	}
	header h1{
		flex: 0 0 auto;
		max-width: 80%;
	}
	header h1 .header-logo{
		max-width: 85% !important;
	}
	.offcanvas-body a{
		color: var(--BaseFontColor);
		text-decoration: none;
	}
}

/*-- フッター
-------------------------------------------------------------*/
footer{
	background:#383838;
	padding: 40px 0 20px;
}
footer .nav-link{
	display: inline-block;
	transition: opacity 0.3s ease;
}
footer .nav-link:hover{
	opacity: 0.7;
}


/*-- ページTOPリンク
-------------------------------------------------------------*/
.p-scroll-top{
	position: fixed;
	bottom: 90px;
	right: 9px;
	z-index:100;
	border-radius: 10px;
}

/*-- 小タイトル
-------------------------------------------------------------*/
.t-title{
	text-align: center;
}

/*-- Cookie
-------------------------------------------------------------*/
#cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 10000;
  display: block;
  max-width: 33%;
  padding: 2rem;
  border-top-right-radius: 2rem;
  background: rgba(255, 255, 255, 0.8);
	display: none;
}

@media only screen and (max-width:924px) {
  #cookie-banner {
    max-width: 98%;
    border-top-right-radius: 0;
  }
}


/*-- TOP
-------------------------------------------------------------*/

/*-- ヒーローセクション
-------------------------------------------------------------*/
/*--- ヒーローセクション基本設定 ---*/
.hero-section{
	position: relative;
	width: 100%;
	height: 70vh;
	min-height: 500px;
	overflow: hidden;
}
/*--- 背景画像スライドショー ---*/
.hero-carousel{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.hero-carousel .carousel-inner{
	height: 100%;
}
.hero-carousel .carousel-item{
	height: 100%;
}
.hero-img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform-origin: center center;
	will-change: transform;
	transform: scale(1);
	transition: transform 4500ms ease-out;
}

.hero-carousel .carousel-item {
	overflow: hidden;
}
/*--- ロゴ画像（中央） ---*/
.hero-overlay{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 10;
}
.hero-logo{
	display: flex;
	align-items: center;
	justify-content: center;
}
.hero-logo-img{
	max-width: 300px;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 2px 8px rgba(0,0,0,0.3));
}
/*--- お知らせスライドショー（左下） ---*/
.hero-notice{
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: 10;
	width: 600px;
	max-width: calc(100% - 60px);
}
.hero-notice-title{
	background:#323232;
	color:#fff;
	padding: 10px 20px;
	white-space: nowrap;
	display:flex;
	align-items: center;
}
.notice-carousel{
	width: 100%;
	margin-bottom: 0;
}
.notice-carousel .carousel-inner{
	width: 100%;
	background: rgba(255, 255, 255, 0.9);
}
.notice-carousel .carousel-item{
	width: 100%;
}
.notice-box{
	padding: 15px 20px;
	width: 100%;
}
.notice-date{
	font-size: 14px;
	color: var(--BaseFontColor);
	margin-bottom: 5px;
	font-weight: 500;
}
.notice-text{
	font-size: 14px;
	color: var(--BaseFontColor);
	line-height: 1.6;
}
/*--- 予約ボタン（右下） ---*/
.reservation-btn{
	position: fixed;
	bottom: 30px;
	right: 12px;
	z-index: 999;
	display: block;
	transform: scale(1);
	transition: all 0.3s ease;
	opacity: 1;
	visibility: visible;
	width: 110px;
}
.reservation-btn.is-hidden{
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.reservation-btn:hover{
	transform: scale(1.2);
	text-decoration: none;
	opacity:0.8;
}
.reservation-icon{
	object-fit: contain;
}
.reservation-btn span{
	font-size: 12px;
	text-align: center;
}

/*-- 紹介セクション
-------------------------------------------------------------*/
/*--- 紹介セクション基本設定 ---*/
.intro-section{
	background: #fff;
	position: relative;
	overflow: hidden;
}
.intro-section .container{
	position: relative;
}
/*--- タイトル ---*/
.intro-title{
	font-size: 36px;
	font-weight: 400;
	color: var(--BaseFontColor);
	margin-bottom: 20px;
}
.intro-text{
	font-size: 16px;
	line-height: 2;
	color: var(--BaseFontColor);
}
.intro-text p{
	margin-bottom: 15px;
}
/*--- 画像配置 ---*/
.intro-image{
	position: relative;
	margin-left: 0;
	width: calc(100vw * 0.6);
}
@media (max-width: 1199px) {
	.intro-image{
		margin-left: calc(50% - 10%);
		margin-right: 0;
		width: calc(50% + 10%);
	}
}
@media (max-width: 992px) {
	.intro-image{
		margin-left: 0;
		margin-right: 0;
		width: 100%;
	}
}
.intro-image img{
	width: 100%;
	height: auto;
	display: block;
}
.intro-section .col-md-5.mt-5{
	margin-top: 250px !important;
}
@media (max-width: 768px) {
	.intro-section .col-md-5.mt-5{
		margin-top: 0 !important;
	}
}
/*-- スライダーセクション
-------------------------------------------------------------*/
/*--- スライダーセクション基本設定 ---*/
.slider-section{
	background: #fff;
	overflow-x: hidden;
}
.slider-container{
	width: 100%;
	margin: 0;
	padding: 0;
}
.slider-wrapper{
	width: 100%;
}
.slider-item{
	padding: 0 10px;
}
/*--- スライドアイテム（偶数番目を上に） ---*/
.slider-item:nth-child(even),
.slick-slide:nth-child(even){
	margin-top: -30px;
}
.slider-img{
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
}

.slider-section .slick-list{
	overflow: visible;
}
/*-- 共通リンクスタイル
-------------------------------------------------------------*/
.link{
	width:300px;
	max-width: 100%;
	color: #446287;
	text-decoration: none;
	font-size: 20px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: opacity 0.3s ease;
	position: relative;
	padding: 6px 10px;
	border-bottom: 1px solid #446287;
}
.link::after{
	content: '';
	position: absolute;
	right: 10px;
	width: 51px;
	height: 14px;
	background-image: url('../img/common/link_icon.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	transition: right 0.3s ease;
}
.link:hover{
	color: #446287;
	text-decoration: none;
	opacity: 0.8;
}
.link:hover::after{
	right: 0;
}

/*-- 間取り図セクション
-------------------------------------------------------------*/
/*--- 間取り図セクション基本設定 ---*/
.floorplan-section{
	background: #f8f8f8;
}
/*--- インテリア画像 ---*/
.interior-image img{
	border-radius: 8px;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
/*--- タイトル ---*/
.floorplan-title{
	font-size: 28px;
	font-weight: 400;
	color: var(--BaseFontColor);
}
/*--- 間取り図 ---*/
.floorplan-image img{
	width: 100%;
	height: auto;
}
/*--- インテリアギャラリー ---*/
.interior-gallery img{
	border-radius: 4px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/*-- お部屋セクション
-------------------------------------------------------------*/
/*--- お部屋セクション基本設定 ---*/
.rooms-section{
	background: #fff;
}
/*--- タイトル ---*/
.rooms-title{
	font-size: 36px;
	font-weight: 400;
	color: var(--BaseFontColor);
	text-align: center;
}
.rooms-subtitle{
	font-size: 16px;
	color: var(--BaseFontColor);
	text-align: center;
}
/*--- お部屋カード ---*/
.room-card{
	transition: all 0.3s ease;
	height: 100%;
	display: flex;
	flex-direction: column;
	color: var(--BaseFontColor);
	text-decoration: none;
}
.room-card:hover{
	transform: translateY(-10px);
	opacity: 0.8;
}
/*--- お部屋画像 ---*/
.room-image img{
	width: 100%;
	object-fit: cover;
}
.room-name{
	font-size: 24px;
	font-weight: bold;
}
.room-name b{
	font-size: 1.2em;
}
/*--- お部屋説明 ---*/
.room-description{
	line-height: 1.8;
	flex-grow: 1;
}
.room-card .link{
	width: 100%;
	margin-top: auto;
}
/*-- アクセスセクション
-------------------------------------------------------------*/
/*--- アクセスセクション基本設定 ---*/
.access-section{
	background: #f8f8f8;
}
/*--- 住所 ---*/
.access-address{
	line-height: 1.8;
}
/*--- 連絡先タイトル ---*/
.contact-title{
	font-size: 20px;
}
/*--- 連絡先リンク ---*/
.access-contact a{
	color: var(--BaseFontColor);
	text-decoration: none;
	transition: color 0.3s ease;
}
.access-contact a:hover{
	color: var(--OrangeColor);
	text-decoration: none;
}
.contact-info p{
	margin-bottom: 8px;
}
/*--- 地図 ---*/
.access-map iframe{
	border: none;
	width: 100%;
	height: 400px;
}
/*--- 予約ボタン（大） ---*/
.btn-reservation-large{
	width: 100%;
	display: inline-block;
	color: #323232;
	background: var(--OrangeColor);
	text-decoration: none;
	padding: 20px 60px;
	border-radius: 50px;
	box-shadow: 0 4px 12px rgba(0,0,0,0.2);
	transition: all 0.3s ease;
	font-weight: 400;
}
.btn-reservation-large:hover{
	background: var(--OrangeColorDark);
	color: #fff;
	text-decoration: none;
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(0,0,0,0.3);
}
.btn-reservation-en{
	display: inline-block;
	font-size: 33px;
}
.btn-reservation-ja{
	display: inline-block;
}

.page-section{
	border-bottom: 1px solid #e0e0e0;
}
.sub-section-title{
	border-bottom: 2px solid #dddddd;
	padding-bottom: 1em;
	position: relative;
}
.sub-section-title:after{
	content: '';
	border-bottom: 2px solid var(--OrangeColor);
	position: absolute;
	width: 80px;
	height: 0;
	bottom: -2px;
	left: 0;
}

.setsubi-section h4{
	font-size: 1rem;
}
.section1-text{
	transform: translateY(65px);
}

.room-map-title{
	border:1px solid var(--OrangeColor);
	color:var(--OrangeColor);
	padding:2px 6px;
	border-radius: 20px;
	text-align: center;
}
/*-- レスポンシブ
-------------------------------------------------------------*/
@media (max-width: 768px) {
	/*--- 基本設定 ---*/
	body{
		padding-top: 86px;
	}
	header{
		height: 86px;
	}
	/*--- ヒーローセクション ---*/
	.hero-section{
		height: 50vh;
		min-height: 400px;
	}
	.hero-logo-img{
		max-width: 200px;
	}
	.hero-notice{
		bottom: 0;
		left: 0;
		width: 100%;
		max-width: 100%;
	}
	/*--- 予約ボタン ---*/
	.reservation-btn{
		position: fixed;
		bottom: 0;
		right: 0;
		z-index: 999;
		justify-content:flex-end;
	}
	.reservation-btn:hover{
		transform: scale(1);
		text-decoration: none;
		opacity:1;
	}
	/*--- 紹介セクション ---*/
	.intro-title{
		font-size: 28px;
	}
	/*--- お部屋・アクセスセクション ---*/
	.rooms-title,
	.access-title{
		font-size: 28px;
	}
	.access-subtitle{
		font-size: 24px;
	}
	/*--- 予約ボタン ---*/
	.btn-reservation-large{
		padding: 15px 40px;
		width: 90%;
		max-width: 400px;
	}
	.access-info{
		padding: 20px;
	}
	.section1-text{
		transform: translateY(0);
	}
}