@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@500&family=Zen+Maru+Gothic:wght@700&display=swap');

body {
	font-family: "Hiragino Kaku Gothic ProN","Hiragino Sans","游ゴシック","Yu Gothic",Meiryo,sans-serif;
	font-style: normal;
	color: #3d362e;
	font-size: 19px;
	letter-spacing: 0.1em;
	line-height: 2.1;
	padding:0;
	margin:0;
	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
div,
dl,dt,dd,ul,ol,li,
h1,h2,h3,h4,h5,h6,
pre,form,fildset,p,blockquote{
	margin:0;
	padding:0;
	border:0;
	font-size:100%;
	font-weight: normal;
}

img{
    max-width: 100%;
    height: auto;
    width: auto\9; /* ie8 */
	border-top-style: none;
	border-right-style: none;
	border-bottom-style: none;
	border-left-style: none;
	vertical-align: top;
	display: block;
	margin: auto;
}
table {
    font-size:inherit;
    font:100%;
	border-collapse: separate;
	border-spacing: 0;
}

address{
	font-style:normal;
}

ul,ol{
	list-style:none;
}

a{
	color: inherit;
	text-decoration: none;
	outline: 0;
	transition: color 0.4s, background-color 0.4s;
}

i {font-weight: normal !important;}	/*アイコンフォント*/

.clearfix:after {
  content: ".";  /* 新しい要素を作る */
  display: block;  /* ブロックレベル要素に */
  clear: both;
  height: 0;
  visibility: hidden;
}

.clearfix {
  min-height: 1px;
}

* html .clearfix {
  height: 1px;
  /*\*//*/
  height: auto;
  overflow: hidden;
  /**/
}

/*<group=style>*/
.fw_bold{font-weight: bold;}
.fw_mid {font-weight: 500;}
.fw_reg {font-weight: 400;}
/*</group>*/

/*<group=text_align>*/
.txt_al_l{text-align:left;}
.txt_al_r{text-align:right;}
.txt_al_c{text-align:center;}
.sp_txt_l{text-align:center;}
/*</group>*/

/*<group=float>*/
.flt_l{float:left;}
.flt_r{float:right;}	
/*</group>*/

.blocklink,
.blocklink_out {
	cursor:pointer;
}

/* スマホで電話をかけるボタン：画像対応 */
.sp_tel_btn {
	position: relative;
}
.sp_tel_btn img {
	position: relative;
	z-index: 0;
}
.sp_tel_btn span,
.sp_tel_btn a {
	display: block;
}
.sp_tel_btn a {
	content: "";
	position: absolute;
	z-index: 1;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
}
.flex_box {
	display: flex;
	justify-content: space-between;
}

.ft_zen{
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 700;
	font-style: normal;
}
.ft_ub{
	font-family: "Ubuntu", sans-serif;
	font-weight: 500;
	font-style: normal;
}

.bg_gray{	background: #f1f1f1;}
.bg_navy{	background: #153373;}

.blue{	color: #78a9e7;}
.green{	color: #0fb2c0;}
.white{	color: #ffffff;}
.yellow{color: #eee664;}
.red{color: #ea6e66;}
.purple{color: #a992d1;}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
body {
	font-size: 17px;
	letter-spacing: 0.08em;
	line-height: 2;
}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
/* スマホのときはビューポートを基準にサイズ調節する */
/* スマホ時：emまたは%で指定する */
/* スマホ以外でビューポート基準にするときは、その都度「vw」で指定する */
body {
	font-size:4vw;
	letter-spacing: 0.05em;
	line-height: 1.8;
}
/*<group=text_align>*/
.sp_txt_l{text-align:left;}	
/*</group>*/

}



/*共通
---------------------------------------------------------*/
.max_1500 {
	width: 100%;
	max-width: 1500px;
	margin: 0 auto;
}
.max_width,
.w1580,
.w1320,
.w1300,
.w1200{
	width: 92%;
	padding: 0 4%;
	margin-left: auto;
	margin-right: auto;
}
.w1580 {max-width: 1580px;}
.w1320 {max-width: 1320px;}
.w1300 {max-width: 1300px;}
.w1200 {max-width: 1200px;}

.com_txt_link {
	text-decoration: underline;
	text-underline-offset: .1em;
	text-decoration-color: #3d362e;
}
.com_txt_link:hover {
	text-decoration: none;
	color: #78a9e7;
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.max_width,
.w1580,
.w1320,
.w1300,
.w1200{
	width: 90%;
	padding: 0 5%;
}
}




/*アニメーション
---------------------------------------------------------*/
/*その場でフェードしながら出てくる*/
.fadein {
	opacity: 0;
	transition: opacity 1s ease;
}
.anime_on .fadein,
.anime_on.fadein {
	opacity: 1;
}

/*下からフェードしながら出てくる*/
.fadeup {
	opacity: 0;
	transform: translateY(20px);
	transition: all 1s ease;
}
.anime_on .fadeup,
.anime_on.fadeup {
	opacity: 1;
	transform: translateY(0px);
}

/*その場でズームしながら出てくる*/
.fadezoom {
	opacity: 0;
	transform: scale(0.9);
	transition: all 1s ease;
}
.anime_on .fadezoom,
.anime_on.fadezoom {
	opacity: 1;
	transform: scale(1.0);
}

/*fadeup_en*/
.fadeup_en {
	opacity: 0;
	transform: translateY(300px);
	transition: all 1.5s ease;
}
.anime_on .fadeup_en,
.anime_on.fadeup_en {
	opacity: 1;
	transform: translateY(0px);
}

/*fadeup_en_return*/
.fadeup_en_return {
	opacity: 0;
	transform: translateY(-300px);
	transition: all 1.5s ease;
}
.anime_on .fadeup_en_return,
.anime_on.fadeup_en_return {
	opacity: 1;
	transform: translateY(0px);
}



/*swiper共通設定
---------------------------------------------------------*/
.swiper { display: none;}
.swiper.swiper-initialized { display: block;}
.swiper-fade .swiper-slide {
    transition-property: opacity !important;	/* フェードモード時 共通調整 */
}
.swip_ticker .swiper-wrapper {
	transition-timing-function: linear !important;	/*滑らかに流れ続ける*/
}



/*wrapper
---------------------------------------------------------*/
#wrapper{
	overflow: hidden;
}



/*スクロールメニュー
---------------------------------------------------------*/
#scl_header {
	position: fixed;
	z-index: 500;
	left: 0;
	top: 0;
	width: 100%;
	background-color:rgba(21,51,115,0.90);
	box-sizing: border-box;
	transform: translateY(-101%);
}
#scl_header.is-show {
	display: block;
	transform: translateY(0);
	opacity: 1;
    animation: sclAnimation 1.0s;
}
#scl_header .scl_flex {
	position: relative;
	display: flex;
    justify-content: space-between;
    align-items: center;
}
.scl_nav_area{
	width: 80%;
	max-width: 1150px;
}
.scl_nav_area ul{
	display: flex;
    justify-content: space-between;
    align-items: center;
}
.scl_nav_area ul li{
	font-size: min(100%,1.5vw);
	text-align: center;
	line-height: 1.5em;
	border-right: 1px solid #fff;
	box-sizing: border-box;
	display: flex;
    align-items: center;
	height: 3em;
}
.scl_nav_area ul li:nth-child(1){
	width: 16%;
}
.scl_nav_area ul li:nth-child(2){
	width: 16%;
}
.scl_nav_area ul li:nth-child(3){
	width: 17%;
}
.scl_nav_area ul li:nth-child(4){
	width: 13%;
}
.scl_nav_area ul li:nth-child(5){
	width: 10%;
}
.scl_nav_area ul li:nth-child(6){
	width: 16%;
}
.scl_nav_area ul li:nth-child(7){
	width: 12%;
}
.scl_nav_area ul li:last-child{
	border-right: none;
}
.scl_nav_area ul li a{
	color: #fff;
	margin: 0 auto;
}
.scl_nav_area ul li:hover a{
	color: #eee664;
}
.scl_contact{
	position: relative;
	max-width: 320px;
	width:20%;
}
.scl_contact .scl_abs{
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 0;
	right: 0;
	margin: 0 auto;
	width: 77%;
}
.scl_contact .scl_tel{
	background: #3d362e;
}
.scl_contact .scl_web{
	background: #ea6e66;
	transition: 0.4s;
}
.scl_contact .scl_web:hover{
	background: #a62f27;
	transition: 0.4s;
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
#scl_header {
	display: none !important;
}
}

/* スクロールメニューアニメーション */
@keyframes sclAnimation {
	0% {
		transform: translateY(-100%);
	}
	100% {
		transform: translateY(0);
	}
}



/* header
---------------------------------------------------------*/
header{
	position: relative;
	z-index: 5;
	max-width: 1500px;
	margin: 0 auto;
}
header .h_content{
	padding-top: min(30px,2vw);
}
header .h_content .h_content_l{
	width: 42%;
	max-width: 510px;
	text-align: left;
}
header .h_content .h_content_l h1,
header .h_content .h_content_l .logo1,
header .h_content .h_content_l .logo2{
	padding: 0 12%;
	box-sizing: border-box;
}
header .h_content .h_content_l h1{
	font-size: min(70%,1.3vw);
	line-height: 1.5em;
	letter-spacing: 0.01em;
	color: #666666;
	margin-bottom: .8em;
}
header .h_content .h_content_l .logo1 div,
header .h_content .h_content_l .logo2 div{
	display: inline-block;
	margin-left: 0;
	margin-right: 0;
}
header .h_content .h_content_l .logo1 {
	margin-bottom: .3em;
}
header .h_content .h_content_l .logo1  div{
	width: 86.5%;
	max-width: 331px;
}
header .h_content .h_content_l .logo2{
	position: relative;
	background: #0fb2c0;
	border-radius: 0 0 40px 0;
	padding-top: .8em;
	padding-bottom: .2em;
}
header .h_content .h_content_l .logo2::before{
	position: absolute;
	display: block;
	content: "";
	background: url("../images/h_logo3@2x.png")no-repeat bottom right;
	background-size: 100% auto;
	width: 26%;
	max-width: 134px;
	height: 139px;
	bottom: 15%;
	right: 0;
	aspect-ratio: 134 / 139;
}
header .h_content .h_content_l .logo2 div{
	width: 76%;
	max-width: 292px;
}
header .h_content .h_content_r{
	width: 50%;
	max-width: 540px;
	padding-right: 30px;
	box-sizing: border-box;
	display: flex;
    justify-content: space-between;
}
header .h_content .h_content_r .h_tel{
	width: 65%;
}
header .h_content .h_content_r .h_tel div:nth-child(2){
	margin: 10px auto 15px;
}
header .h_content .h_content_r .h_web{
	width: 30%;
	text-align: right;
}
header .h_content .h_content_r .h_web a{
	position: relative;
	display: block;
}
header .h_content .h_content_r .h_web a i{
	position: absolute;
	display: inline-block;
	bottom: -.5em;
	right:-.5em!important;
	font-size:150%;
	transition: 0.4s;
}
header .h_content .h_content_r .h_web a:hover i{
	color: #ea6e66;
	transition: 0.4s;
}

/* PC調整
------------------------------------------*/
@media only screen and (min-width: 960px) and (max-width: 1400px) {
header .h_content .h_content_l h1,
header .h_content .h_content_l .logo1,
header .h_content .h_content_l .logo2{
	padding-left: 7%;
	padding-right: 7%;
}
header .h_content .h_content_l h1{
	letter-spacing: normal;
}
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) { 
header .h_content .h_content_l h1,
header .h_content .h_content_l .logo1,
header .h_content .h_content_l .logo2{
	padding: 0 7%;
}
header .h_content .h_content_l h1{
	letter-spacing:normal;
}
header .h_content .h_content_l .logo1 {
	margin-bottom: .1em;
}
header .h_content .h_content_l .logo2{
	padding-top: .7em;
	padding-bottom: .1em;
}
header .h_content .h_content_l .logo2 div{
	width: 72%;
}
header .h_content .h_content_r{
	padding-right: 1%;
}
header .h_content .h_content_r .h_web a i{
	bottom: -.3em;
	right:-.3em;
	font-size:130%;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) { 
header .h_content{
	padding-top: 2.5vw;
}
header .h_content .h_content_l{
	width: 80%;
}
header .h_content .h_content_l h1,
header .h_content .h_content_l .logo1,
header .h_content .h_content_l .logo2{
	padding: 0 5%;
}
header .h_content .h_content_l h1{
	font-size:2.2vw;
	letter-spacing: normal;
	margin-bottom: 1em;
}
header .h_content .h_content_l .logo1 {
	margin-bottom: .2em;
}
header .h_content .h_content_l .logo1  div{
	width: 86.5%;
}
header .h_content .h_content_l .logo2{
	padding-top: .7em;
	padding-bottom: .2em;
}
header .h_content .h_content_l .logo2 div{
	width: 70%;
}
header .h_content .h_content_r{
	display: none;
}
}



/* drawer
---------------------------------------------------------*/
.dr_box{
	width: 90%;
	margin:5em auto 0;
}
.dr_box li{
	font-size:110%;
	letter-spacing: 0.15em;
	line-height: 1.5em;
	border-bottom: 1px solid rgba(255,255,255,0.50);
	padding-bottom: 1.2em;
	margin-bottom: 1.2em;
}
.dr_box li a{
	position: relative;
	display: block;
	color: #fff;
	padding-left: 2em;
	box-sizing: border-box;
}
.dr_box li a i{
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 0;
	font-size:110%;
}





/* footer
---------------------------------------------------------*/
footer .w1300{
	padding-top: 90px;
	padding-bottom: 60px;
}
footer .bg_navy{
	position: relative;
}
footer .bg_navy .f_abs{
	position: absolute;
	max-width: 1638px;
	width: 120%;
	top:-135px;
	left: 0;
	right: 0;
	margin: 0 auto;
	display: flex;
    justify-content: space-between;
	align-items: flex-end;
	aspect-ratio: 1638 / 413;
}
footer .bg_navy .f_abs > div{
	position: relative;
	display: inline-block;
}
footer .bg_navy .f_abs .abs_l{
	width: 19.5%;
	max-width: 317px;
	aspect-ratio: 317 / 413;
}
footer .bg_navy .f_abs .abs_r{
	width: 20.5%;
	max-width: 333px;
	aspect-ratio: 333 / 332;
}
footer .bg_navy .f_abs > div > div{
	position: absolute;
}
footer .bg_navy .f_abs .abs_l .abs1{
	width: 54%;
	top:0;
	right: 0;
}
footer .bg_navy .f_abs .abs_l .abs2{
	width: 22%;
	top: 25%;
	left: 28%;
}
footer .bg_navy .f_abs .abs_l .abs3{
	width: 31%;
	top: 40%;
	right: 18%;
}
footer .bg_navy .f_abs .abs_l .abs4{
	width: 90%;
	bottom:0;
	left: 0;
}

footer .bg_navy .f_abs .abs_r .abs1{
	width: 20%;
	top:0;
	left: 40%;
	z-index: 2;
}
footer .bg_navy .f_abs .abs_r .abs2{
	width:87%;
	top: 10%;
	right: 0;
}
footer .bg_navy .f_abs .abs_r .abs3{
	width:37%;
	bottom:0;
	left: 0;
}
footer .bg_navy .f_abs .abs_r .abs4{
	width: 33%;
	bottom: 5%;
	right: 23%;
}

footer .f_logo .fs20{
	line-height: 1em;
	margin-bottom: 1em;
}
footer .f_logo .fs47{
	line-height: 1em;
}
footer .f_logo .fs47 span{
	margin: 0 -.2em;
}
footer address{
	font-size:90%;
	line-height: 1.5em;
	margin-top: 1.8em;
}
footer .com_btn1 a{
	margin-top: 2em;
}
footer .txt1{
	margin: 80px auto 50px;
	text-align: center;
	font-size:120%;
	line-height: 1.6em;
	font-weight: bold;
}
footer .flex_l{
	width: 45.5%;
}
footer .flex_l_inbox{
	max-width: 540px;
	margin: 0 auto;
}
footer .flex_l .timetable_list{
	font-size:90%;
	line-height: 1.6em;
	letter-spacing: 0.05em;
	margin-top: 1em;
}
footer .flex_l .f_acc dt{
	position: relative;
	font-size:130%;
	line-height: 1em;
	color: #78a9e7;
	padding-left: 1.8em;
	box-sizing: border-box;
	margin-bottom: .5em;
	margin-top: 1.2em;
}
footer .flex_l .f_acc dt::before{
	position: absolute;
	display: block;
	content: "";
	background: url("../images/icon_acc@2x.png")no-repeat top left;
	background-size: 100% auto;
	width: 1.25em;
	height: 1.8em;
	top:-.2em;
	left: 0;
}
footer .flex_l .f_acc:last-child dt::before{
	background-image: url("../images/icon_parking@2x.png");
}
footer .flex_l .f_acc dd{
	font-size:90%;
	line-height: 1.9em;
	letter-spacing: 0.1em;
}
footer .flex_l .f_acc dd .fw_bold{
	letter-spacing: 0.2em;
	line-height: 1.9em;
}
footer .flex_l .f_acc dd li{
	padding-left: 1em;
	text-indent: -1em;
}

footer .flex_r{
	width: 51%;
}
footer .flex_r iframe{
	display: block;
}
footer .flex_r .btn{
	display: block;
	margin-top: 1rem;
}
footer .flex_r .btn a:hover{
	color: #eee664;
}
footer .flex_r .btn i{
	margin-left: .5em;
}

footer .copyright{
	margin-top: 130px;
	font-size:80%;
	letter-spacing: 0.2em;
	line-height: 1.5em;
	color: #8aa8c3;
}

/* PC調整
------------------------------------------*/
@media only screen and (min-width: 960px) and (max-width: 1638px) {
footer .bg_navy .f_abs{
	width: 100%;
	top:-9vw;
}
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) { 
footer .w1300{
	padding-top: 8vw;
	padding-bottom: 5vw;
}

footer .bg_navy .f_abs{
	width: 100%;
	top:-10vw;
}
	
footer address{
	letter-spacing: 0.05em;
}
footer .com_btn1 a{
	margin-top: 1.5em;
}
footer .txt1{
	margin: 6vw auto 3vw;
	font-size:110%;
}
footer .flex_l{
	width: 51%;
}
footer .flex_l .timetable_list{
	font-size: 88%;
	letter-spacing:normal;
	margin-top: .8em;
}
footer .flex_l .f_acc dt{
	font-size:120%;
}
footer .flex_l .f_acc dd{
	font-size:88%;
	line-height: 1.8em;
	letter-spacing:normal;
}
footer .flex_l .f_acc dd .fw_bold{
	letter-spacing: 0.1em;
	line-height: 1.8em;
}
footer .flex_r{
	width: 46%;
}
footer .flex_r iframe{
	height: 37vw;
}
footer .flex_r .btn{
	margin-top: .5rem;
}

footer .copyright{
	margin-top:6%;
	letter-spacing: 0.1em;
}
}

/* Mobile (Portrait) 
------------------------------------------*/ 
@media only screen and (max-width: 767px) { 
footer .w1300{
	padding-top: 15vw;
	padding-bottom: 43vw;
}
footer .bg_navy .f_abs{
	width: 100%;
	display: flex;
	top:-8vw;
}
	
footer address{
	line-height: 1.8em;
}
footer .com_btn1 a{
	margin-top: 1.5em;
}
footer .txt1{
	margin: 15% auto 6%;
	font-size:100%;
}
footer .flex_box.spflexno{
	display: block;
}
footer .flex_l{
	width:100%;
	margin-bottom: 5%;
}
footer .flex_l_inbox{
	max-width: 100%;
}
footer .flex_l .timetable_list{
	font-size: 88%;
	letter-spacing: normal;
	margin-top: .8em;
}
footer .flex_l .f_acc dd{
	font-size: 88%;
	letter-spacing: normal;
	line-height: 1.8em;
}
footer .flex_l .f_acc dd .fw_bold{
	letter-spacing: 0.1em;
	line-height: 1.6em;
}

footer .flex_r{
	width: 100%;
}
footer .flex_r iframe{
	height: 75vw;
}
footer .flex_r .btn{
	margin-top: .8rem;
}

footer .copyright{
	letter-spacing: 0.1em;
	margin-top: 8%;
}
}






/*スマホフッター
---------------------------------------------------------*/
@media only screen and (min-width: 768px) {
#sp_footer {display: none !important;}}
#sp_footer {
	position: fixed;
	width: 100%;
	left: 0;
	bottom: 0;
	z-index: 999;
	box-sizing: border-box;
}
#sp_footer ul{
	display: flex;
    justify-content: space-between;
	width: 96%;
	margin: 0 auto 2%;
}
#sp_footer ul li{
	width: 49.5%;
	background: #3d362e;
	border-radius: 25px;
}
#sp_footer ul li.sp_web{
	background: #ea6e66;
}


/*アコーディオン
---------------------------------------------------------*/
.open_btn {
	cursor: pointer;
}
.open_box {
	display: none;
}
/*開閉アイコン*/
.icon_open {
	position: relative;
	letter-spacing: normal;
	line-height: 1.0em;
	display: inline-block;
	vertical-align: middle;
	margin-left: .4em;
	transform: translateY(-.1em);
	transition: transform .4s;
}
.m_nav .icon_open {
	margin-right: .4em;
}
.icon_open::before,
.icon_open::after {
	content: "";
	position: absolute;
	width: .8em;
	height: 3px;
	background: #41b4b5;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
	border-radius: 1px;
}
.icon_open.white::before,
.icon_open.white::after {
	background: #fff;
}
.icon_open::after {
	transform: rotate(90deg);
	transition: transform 0.4s;
}
.active .icon_open::after {
	transform: rotate(0deg);
}

















/* PC
------------------------------------------*/
@media only screen and (min-width: 960px)  {
.tb_only{display:none !important;}
.sp_only{display:none !important;}
.sp_tb{display:none !important;}
.sp_pc{display:block !important;}
}

/* Tablet (Portrait)
------------------------------------------*/
@media only screen and (min-width: 768px) and (max-width: 959px) {
.pc_only{display:none !important;}
.sp_only{display:none !important;}
.sp_pc{display:none !important;}
.sp_pc{display:none !important;}
}

/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.pc_only{display:none !important;}
.tb_only{display:none !important;}
.tb_pc{display:none !important;}
.sp_pc{display:block!important;}
}