@charset "UTF-8";

body{
	font-family: "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	font-size:1.0rem;
	line-height:1.75em;
	
	/*background-color:#fff;*/
	background-image: url("../images/bg-ss.jpg");
	background-repeat: repeat;
	background-size:300px;
	
	color:#000;
	
	box-sizing: border-box;
	padding-top:50px;
}

@media only screen and (min-width: 520px){
	
	body{
		padding-top:0;
	}
	
}

a{
	color:#015B81;
	text-decoration: none;
}

a:hover{
	color:#0078AA;
	text-decoration: underline;
}

img{
	max-width: 100%;
	max-height: 100%;
}

.filter-wrap{
	display:block;
	content:"";
	
	width:100%;
	height:100%;
	
	background-color:#fff;
	opacity:1.0;
	
	-webkit-filter: blur(5px);
	-moz-filter: blur(5px);
	-o-filter: blur(5px);
	-ms-filter: blur(5px);
	filter: blur(5px);
	
	z-index: 50;
}

/*//////////----- HEADER -----//////////*/

#header{
	width:100%;
	
	background-color:#fff;
	color:#000;
}

/*//////////----- HEADER-CONTENT-SP -----//////////*/

.header-content-sp{	
	width:100%;
	margin:0 auto;
	
	display:flex;
	flex-flow: row wrap;
	align-items: stretch;
	justify-content: flex-start;
	
	box-sizing: border-box;
	border-bottom:solid 2px #0078AA;
	
	position: fixed;
	top:0;
	left:0;
	
	background-color:#fff;
	z-index: 50;
}

@media only screen and (min-width: 520px){
	
	.header-content-sp{
		display:none;
	}
	
}

.header-content-sp p.logo{
	width:120px;
	
	box-sizing: border-box;
	padding:5px 10px;
}

.header-content-sp p.logo img{
	width:100%;
	vertical-align: bottom;
}

.header-content-sp nav.navigation{
	width:calc(100% - 120px);
	
	box-sizing: border-box;
	padding-right:55px;
	
	position: relative;
}

.header-content-sp nav.navigation ul{
	width:100%;
	
	font-size:0;
	line-height:1.0em;
	
	text-align: right;
}

.header-content-sp nav.navigation ul li{
	display:inline-block;
	width:25%;
	max-width: 50px;
	
	position: relative;
}

.header-content-sp nav.navigation ul li:after{
	display:block;
	content:"";
	
	width:7.5px;
	height:50px;
	
	background-image: url("../images/design-header-sp-line.png");
	background-repeat: no-repeat;
	background-size: 7.5px;
	background-position: center top;
	
	position: absolute;
	top:0;
	right:-5px;
	
	z-index: 10;
}

.header-content-sp nav.navigation ul li:nth-child(1):after{
	top:-10px;
}

.header-content-sp nav.navigation ul li:nth-child(2):after{
	top:-20px;
}

.header-content-sp nav.navigation ul li:nth-child(3):after{
	top:-5px;
}

.header-content-sp nav.navigation ul li:nth-child(4):after{
	display:none;
}

.header-content-sp nav.navigation ul li a{
	display:block;
	height:50px;
	
	background-color:#0078AA;
	color:#fff;
	
	background-repeat: no-repeat;
	background-size: 50px;
	background-position: center;
	
	transition: 0.25s;
}

.header-content-sp nav.navigation ul li:nth-child(1) a{
	background-image: url("../images/icon-header-sp-top.png");
}

.header-content-sp nav.navigation ul li:nth-child(2) a{
	background-image: url("../images/icon-header-sp-tel.png");
}

.header-content-sp nav.navigation ul li:nth-child(3) a{
	background-image: url("../images/icon-header-sp-reserve.png");
}

.header-content-sp nav.navigation ul li:nth-child(4) a{
	background-color:#2DB43C;
	background-image: url("../images/icon-header-sp-line.png");
}

.header-content-sp nav.navigation ul li a:hover{
	opacity: 0.5;
	text-decoration: none;
}

.header-content-sp nav.navigation p.btn-menu{
	width:55px;
	height:50px;
	
	position: absolute;
	top:0;
	right:0;
	
	background-image: url("../images/icon-header-sp-drawer-open.png");
	background-repeat: no-repeat;
	background-size:50px;
	background-position: center;
	
	font-size:0;
	line-height:1.0em;
}

/*//////////----- DRAWER -----//////////*/

.drawer{
	width:100%;
	position: relative;
}

.drawer input[type="checkbox"]{
	display:none;
}

.drawer label{
	width:55px;
	height:50px;
	
	position: absolute;
	top:-50px;
	right:0;
	
	/*background-color:#000;*/
	
	z-index: 120;
}

.drawer label:hover{
	opacity: 0.5;
	cursor: pointer;
}

.drawer div.drawer-content{
	width:100%;
	margin:0 auto;
	
	position: absolute;
	top:-600px;
	left:0;
	right:0;
	
	background-color:#fff;
	color:#000;
	
	background-image: url("../images/bg-drawer-sp-loop.png");
	background-repeat: repeat-x;
	background-size: 375px;
	background-position: center top;
	
	box-sizing: border-box;
	padding-top:40px;
	border-bottom:solid 2px #0078AA;
	border-top:solid 2px #0078AA;
	
	z-index: 100;
	
	transition: 0.5s;
}

.drawer input[type="checkbox"]:checked ~ div.drawer-content{
	top:0;
}

.drawer p.btn-menu-close{
	width:55px;
	height:50px;
	
	position: absolute;
	top:-50px;
	right:0;
	
	background-color:#fff;
	
	background-image: url("../images/icon-header-sp-drawer-close.png");
	background-repeat: no-repeat;
	background-size:50px;
	background-position: center;
	
	font-size:0;
	line-height:1.0em;
}

.drawer div.wrap{
	width:100%;
	margin:0 auto;
	max-width: 375px;
}

.drawer ul.icon{
	display:flex;
	flex-flow:row wrap;
	align-items: stretch;
	justify-content: flex-start;
	
	width:100%;
	
	margin-bottom:10px;
}

.drawer ul.icon li{
	width:calc(100%/3);
	
	font-size:13px;
	line-height:25px;
	font-weight:bold;
	
	color:#015B81;
	
	text-align: center;
	
	box-sizing: border-box;
	padding:10px;
}

.drawer ul.icon li:nth-child(2){
	font-size:0;
	line-height:1.0em;
}

.drawer ul.icon li a{
	display:block;
	
	transition: 0.25s;
}

.drawer ul.icon li a:hover{
	opacity: 0.6;
	text-decoration: none;
}

.drawer ul.icon li img{
	display:block;
	
	width:45px;
	margin:0 auto;
	vertical-align: bottom;
	
	transition: 0.25s;
}

.drawer ul.icon li a:hover img{
	transform:rotate(-5deg);
}

.drawer ul.icon li:nth-child(2) img{
	width:75px;
	
	box-sizing: border-box;
	padding:2.5px;
}

.drawer ul.icon li span.note{
	display:block;
	
	font-size:10px;
	line-height:10px;
	font-weight:bold;
	
	color:#B4A358;
}

.drawer ul.text{
	display:flex;
	flex-flow: row wrap;
	align-items: stretch;
	justify-content: flex-start;
	
	width:100%;
	
	box-sizing: border-box;
	border-bottom:dotted 1px #015B81;
}

.drawer ul.firstchild{
	border-top:dotted 1px #015B81;
}

.drawer ul.text li{
	width:50%;
	
	font-size:15px;
	line-height:50px;
}

.drawer ul.text li a{
	display:block;
	
	box-sizing: border-box;
	padding-left:30px;
	
	position: relative;
}

.drawer ul.text li a:hover{
	background-color:#015B81;
	color:#fff;
	
	text-decoration: none;
	transition: 0.25s;
}

.drawer ul.text li a:before{
	display:inline-block;
	content:"▶︎";
	
	font-size:12px;
	line-height:15px;
	
	width:15px;
}

.drawer div.extra{
	box-sizing: border-box;
	padding:20px;
	
	display:flex;
	flex-flow: row wrap;
	align-items: center;
	justify-content: flex-start;
	
	width:100%;
}

.drawer div.extra p.icon-twitter{
	width:70px;
	
	font-size:0;
	line-height:1.0em;
}

.drawer div.extra p.icon-twitter a{
	display:block;
	text-align: center;
	
	transition: 0.25s;
}

.drawer div.extra p.icon-twitter a:hover{
	opacity: 0.5;
}

.drawer div.extra p.icon-twitter img{
	width:50px;
	vertical-align: bottom;
	
	transition: 0.25s;
}

.drawer div.extra p.icon-twitter a:hover img{
	transform:rotate(15deg);
}

.drawer div.extra ul.language{
	width:calc(100% - 70px);
	
	text-align: right;
	
	font-size:0;
	line-height:1.0em;
}

.drawer div.extra ul.language li{
	display:inline-block;
	width:60px;
	
	font-size:14px;
	line-height:30px;
	font-weight:bold;
	
	text-align: left;
}

.drawer div.extra ul.language li a{
	display:block;
	color:#000;
	
	background-repeat:no-repeat;
	background-size:25px;
	background-position: center left;
	
	box-sizing: border-box;
	padding-left:30px;
}

.drawer div.extra ul.language li.active a{
	text-decoration: underline;
}

.drawer div.extra ul.language li.jp a{
	background-image:url("../images/icon-drawer-sp-language-jp.png");
}

.drawer div.extra ul.language li.en a{
	background-image:url("../images/icon-drawer-sp-language-en.png");
}

.drawer div.extra ul.language li.ch a{
	background-image:url("../images/icon-drawer-sp-language-ch.png");
}

.drawer div.extra ul.language li.kr a{
	background-image:url("../images/icon-drawer-sp-language-kr.png");
}

/*//////////----- HEADER-CONTENT-PC -----//////////*/

.header-content-pc{
	display:none;
	width:100%;
}

@media only screen and (min-width: 520px){
	
	.header-content-pc{
		display:block;
	}
	
}

.header-content-pc div.extra{
	display:flex;
	flex-flow: row wrap;
	align-items: center;
	justify-content: center;
	
	width:960px;
	margin:0 auto;
	
	box-sizing: border-box;
	padding:10px 0;
}

@media only screen and (min-width: 1280px){
	
	.header-content-pc div.extra{
		width:1280px;
	}
	
}

.header-content-pc p.caption{
	width:160px;
	text-align: center;
	
	font-size:15px;
	line-height:20px;
	color:#015B81;
	
	position: relative;
	
	margin-right:10px;
}

@media only screen and (min-width: 1280px){
	
	.header-content-pc p.caption{
		width:400px;
		
		font-size:22px;
		line-height:30px;
		
		/*background-color:#000;*/
		
		margin-right:0;
	}
	
}

.header-content-pc p.caption a:hover{
	color:#0079AA;
	text-decoration: none;
}

.header-content-pc p.caption:before{
	display:block;
	content:"";
	
	width:20px;
	height:15px;
	
	background-image: url("../images/icon-header-pc-heart.png");
	background-repeat: no-repeat;
	background-size: 17.5px;
	background-position: center;
	
	position: absolute;
	top:2.5px;
	left:15px;
	
	opacity: 0;
	transition: 0.25s;
}

.header-content-pc p.caption:hover:before{
	left:10px;
	opacity: 1;
}

@media only screen and (min-width: 1280px){
	
	.header-content-pc p.caption:before{
		width:25px;
		height:25px;
		
		background-size: 20px;
		
		top:1.5px;
		left:5px;
	}
	
	.header-content-pc p.caption:hover:before{
		left:0;
	}
	
}

.header-content-pc p.caption:after{
	display:block;
	content:"";
	
	width:20px;
	height:15px;
	
	background-image: url("../images/icon-header-pc-heart.png");
	background-repeat: no-repeat;
	background-size: 17.5px;
	background-position: center;
	
	position: absolute;
	top:2.5px;
	right:15px;
	
	opacity: 0;
	transition: 0.25s;
}

.header-content-pc p.caption:hover:after{
	right:10px;
	opacity: 1;
}

@media only screen and (min-width: 1280px){
	
	.header-content-pc p.caption:after{
		width:25px;
		height:25px;
		
		background-size: 20px;
		
		top:1.5px;
		right:15px;
	}
	
	.header-content-pc p.caption:hover:after{
		right:10px;
	}
	
}

.header-content-pc p.caption span.note{
	display:block;
	
	font-size:16px;
	line-height:20px;
}

@media only screen and (min-width: 1280px){
	
	.header-content-pc p.caption span.note{
		display:inline-block;
		
		font-size:22px;
		line-height:30px;
	}
	
}

.header-content-pc p.caption span.note:before{
	content:"《";
}

.header-content-pc p.caption span.note:after{
	content:"》";
}

.header-content-pc p.tel{
	width:200px;
	text-align: center;
	
	font-size:25px;
	line-height:30px;
	color:#015B81;
	
	position: relative;
	box-sizing: border-box;
	padding-left:25px;
	
	margin-right:10px;
}

.header-content-pc p.tel:hover{
	color:#0079AA;
}

.header-content-pc p.tel a:hover{
	text-decoration: none;
}

.header-content-pc p.tel img{
	width:25px;
	vertical-align: bottom;
	
	position: absolute;
	top:5px;
	left:5px;
	
	transition: 0.25s;
}

.header-content-pc p.tel:hover img{
	transform:rotate(-20deg);
	opacity: 0.8;
}

.header-content-pc ul.icon{
	font-size:0;
	line-height:1.0em;
	
	margin-right:5px;
}

@media only screen and (min-width: 1280px){
	
	.header-content-pc p.tel{
		width:240px;
		
		font-size:32px;
		line-height:36px;
	}
	
	.header-content-pc p.tel img{
		width:27.5px;
		
		top:5px;
		left:0;
	}
	
}

.header-content-pc ul.icon li{
	display:inline-block;
	
	width:45px;
	height:45px;
	
	box-sizing: border-box;
	padding:5px;
	
	vertical-align: middle;
}

.header-content-pc ul.icon li a{
	display:block;
	height:100%;
	
	border-radius:5px;
	position: relative;
}

.header-content-pc ul.icon li.line a{
	background-color:#2DB43C;
}

.header-content-pc ul.icon li.twitter a{
	background-color:#015B81;
}

.header-content-pc ul.icon li a:hover{
	opacity: 0.8;
}

.header-content-pc ul.icon li img{
	display:block;
	width:35px;
	
	position: absolute;
	top:0;
	left:0;
	right:0;
	bottom:0;
	
	margin:auto;
	transition: 0.25s;
}

.header-content-pc ul.icon li a:hover img{
	transform:rotate(15deg);
}

.header-content-pc p.reserve{
	width:115px;
	
	font-size:14px;
	line-height:35px;
	
	position: relative;
	
	margin-right:10px;
}

.header-content-pc p.reserve:hover{
	cursor: pointer;
}

.header-content-pc p.reserve a{
	display:block;
	
	box-sizing: border-box;
	padding-left:45px;
	border:solid 1px #015B81;
	
	transition: 0.25s;
}

.header-content-pc p.reserve:hover a{
	opacity: 0.8;
	text-decoration: none;
	
	padding-left:50px;
	border:solid 1px #015B81;
}

.header-content-pc p.reserve img{
	display:block;
	width:35px;
	
	position: absolute;
	top:0;
	left:5px;
	bottom:0;
	
	margin:auto 0;
	transition: 0.25s;
}

.header-content-pc p.reserve:hover a img{
	left:10px;
}

.header-content-pc p.reserve span.note{
	display:block;
	width:45px;
	height:10px;
	
	background-color:#fff;
	color:#015B81;
	
	background-image: url("../images/icon-header-pc-mail-arrow.png");
	background-repeat: no-repeat;
	background-size:35px;
	background-position: center right 6px;
	
	position: absolute;
	bottom:-5px;
	right:1px;
	
	transition: 0.25s;
}

.header-content-pc p.reserve:hover span.note{
	background-image: url("../images/icon-header-pc-mail-arrow-hover.png");
	background-position: center right 3px;
}

.header-content-pc p.contact{
	width:85px;
	
	font-size:14px;
	line-height:35px;
	
	text-align: center;
	
	margin-right:10px;
}

@media only screen and (min-width: 1280px){
	
	.header-content-pc p.contact{
		width:120px;
	}
	
}

.header-content-pc p.contact a{
	display:block;
	
	background-color:#015B81;
	color:#fff;
	
	border-radius:5px;
}

.header-content-pc p.contact a:hover{
	background-color:#0078AA;
	text-decoration: none;
	
	transition:0.25s;
}

.header-content-pc p.contact span{
	display:block;
	
	transition:0.25s;
}

.header-content-pc p.contact a:hover span{
	transform:rotate(5deg);
}

.header-content-pc div.language{
	width:100px;
	
	position: relative;
}

.header-content-pc div.language input[type="checkbox"]{
	display:none;
}

.header-content-pc div.language label{
	display:block;
	width:100px;
	height:50px;
	
	position: absolute;
	top:0;
	left:0;
	
	cursor: pointer;
	z-index: 10;
}

.header-content-pc div.language p.active{
	width:100px;
	height:50px;
	
	font-size:14px;
	line-height:48px;
	font-weight:bold;
	
	box-sizing: border-box;
	padding-left:50px;
	border:solid 1px #015B81;
	border-radius:2.5px;
	
	position: relative;
	
	background-color:#fff;
	color:#000;
}

.header-content-pc div.language p.active:before{
	display:block;
	content:"";
	
	width:25px;
	height:25px;
	
	background-image: url("../images/icon-header-pc-language.png");
	background-repeat: no-repeat;
	background-size: 25px;
	background-position: center;
	
	position: absolute;
	top:0;
	bottom:0;
	left:10px;
	
	margin:auto;
}

.header-content-pc div.language p.active:after{
	display:block;
	content:"";
	
	width:10px;
	height:10px;
	
	background-image: url("../images/icon-header-pc-arrow-down.png");
	background-repeat: no-repeat;
	background-size: 10px;
	background-position: center;
	
	position: absolute;
	top:0;
	bottom:0;
	right:7.5px;
	
	margin:auto;
}

.header-content-pc div.language ul{
	position: absolute;
	top:48px;
	left:0;
	
	width:100%;
	
	background-color:#fff;
	color:#000;
	
	border-bottom-left-radius: 2.5px;
	border-bottom-right-radius: 2.5px;
}

.header-content-pc div.language input[type="checkbox"]:checked ~ ul{
	box-sizing: border-box;
	border:solid 1px #015B81;
}

.header-content-pc div.language ul li{
	width:100%;
	height:0;
	
	overflow: hidden;
	
	font-size:14px;
	line-height:40px;
	font-weight:bold;
	
	box-sizing: border-box;
	padding-left:50px;
	position: relative;
}

.header-content-pc div.language input[type="checkbox"]:checked ~ ul li{
	height:40px;
}

.header-content-pc div.language ul li:before{
	display:block;
	content:"";
	
	width:25px;
	height:25px;
	
	background-repeat: no-repeat;
	background-size: 25px;
	background-position: center;
	
	position: absolute;
	top:0;
	bottom:0;
	left:10px;
	
	margin:auto;
}

.header-content-pc div.language ul li.jp:before{
	background-image: url("../images/icon-header-pc-language-jp.png");
}

.header-content-pc div.language ul li.en:before{
	background-image: url("../images/icon-header-pc-language-en.png");
}

.header-content-pc div.language ul li.ch:before{
	background-image: url("../images/icon-header-pc-language-ch.png");
}

.header-content-pc div.language ul li.kr:before{
	background-image: url("../images/icon-header-pc-language-kr.png");
}

.header-content-pc div.language ul li a{
	display:block;
	color:#000;
}

.header-content-pc div.language ul li a:hover{
	text-decoration: underline;
}

/*//////////----- HEADER-CONTENT-NAVIGATION -----//////////*/

.header-content-pc div.navigation{
	width:100%;
	
	background-color:#fff;
	color:#000;
	
	border-top:solid 12.5px #0078AA;
	
	background-image: url("../images/bg-header-pc-loop.png");
	background-repeat: repeat-x;
	background-size: 1200px;
	background-position: top center;
}

.header-content-pc div.navigation div.wrap{
	width:960px;
	margin:0 auto;
	
	box-sizing: border-box;
	padding-top:70px;
	padding-bottom:20px;
}

.header-content-pc div.navigation ul{
	width:100%;
	
	display:flex;
	flex-flow: row wrap;
	align-items: center;
	justify-content: center;
}

.header-content-pc div.navigation ul li{
	width:120px;
	
	font-size:15px;
	line-height:25px;
	font-weight:bold;
	
	color:#015B81;
	
	text-align: center;
}

@media only screen and (min-width: 1280px){
	
	.header-content-pc div.navigation div.wrap{
		width:1280px;
	}
	
	.header-content-pc div.navigation ul li{
		width:150px;
	}
	
}


.header-content-pc div.navigation ul li a{
	display:block;
	
	transition: 0.25s;
}

.header-content-pc div.navigation ul li a:hover{
	opacity: 0.6;
	text-decoration: none;
}

.header-content-pc div.navigation ul li img{
	display:block;
	
	width:45px;
	margin:0 auto;
	vertical-align: bottom;
	
	transition: 0.25s;
}

.header-content-pc div.navigation ul li:nth-child(4) img{
	width:90px;
}

.header-content-pc div.navigation ul li a:hover img{
	transform:rotate(-5deg);
}

.header-content-pc div.navigation ul li span.note{
	display:block;
	
	font-size:10px;
	line-height:10px;
	font-weight:bold;
	
	color:#B4A358;
}

/*//////////----- HEADER-CONTENT-NAVIGATION-SUB -----//////////*/

.navigation-sub{
	display:none;
	width:100%;
	
	background-color:#0078AA;
	color:#fff;
}

@media only screen and (min-width: 520px){
	
	.navigation-sub{
		display:block;
	}
	
}

.navigation-sub ul{
	width:960px;
	margin:0 auto;
	
	display:flex;
	flex-flow: row wrap;
	align-items: center;
	justify-content: center;
}

.navigation-sub ul li{
	width:102.5px;
	
	box-sizing: border-box;
	padding:0 5px;
	
	text-align: center;
	position: relative;
}

.navigation-sub ul li:hover{
	cursor: pointer;
}

@media only screen and (min-width: 1280px){
	
	.navigation-sub ul{
		width:1280px;
	}
	
	.navigation-sub ul li{
		width:160px;
	}
	
}

.navigation-sub ul li:first-child:before{
	display:block;
	content:"";
	
	width:2.5px;
	height:42.5px;
	
	background-image: url("../images/line-navigation-sub-dot.png");
	background-repeat: no-repeat;
	background-size: 2.5px;
	background-position: center;
	
	position: absolute;
	top:0;
	bottom:0;
	left:0;
	
	margin:auto;
}

.navigation-sub ul li:after{
	display:block;
	content:"";
	
	width:2.5px;
	height:42.5px;
	
	background-image: url("../images/line-navigation-sub-dot.png");
	background-repeat: no-repeat;
	background-size: 2.5px;
	background-position: center;
	
	position: absolute;
	top:0;
	bottom:0;
	right:0;
	
	margin:auto;
}

.navigation-sub ul li a{
	display:block;
	height:60px;
	
	margin:10px 0;
	box-sizing: border-box;
	padding:15px 0;
	
	color:#fff;
	border-radius:5px;
	
	transition:0.25s;
}

.navigation-sub ul li:hover a{
	text-decoration: none;
	height:50px;
	
	margin:15px 0;
	
	background-color:#fff;
	color:#0079AA;
	
	box-sizing: border-box;
	padding:10px 0;
}

.navigation-sub ul li span.jp{
	display:block;
	
	font-size:11px;/*本来のデザインは12px*/
	line-height:15px;
	font-weight:bold;
	
	transition: 0.25s;
}

.navigation-sub ul li:hover a span.jp{
	transform: rotate(-5deg);
}

.navigation-sub ul li span.en{
	display:block;
	
	font-size:9px;
	line-height:15px;
	font-weight:normal;
	
	transition: 0.25s;
}

.navigation-sub ul li span.bg-cover{
	width:100%;
	height:80px;
	
	background-color:#fff;
	
	position: absolute;
	top:0;
	left:0;
}

@media only screen and (min-width: 1280px){
	
	.navigation-sub ul li a{
		padding:10px 0;
	}
	
	.navigation-sub ul li:hover a{
		padding:5px 0;
	}
	
	.navigation-sub ul li span.jp{
		font-size:15px;
		line-height:20px;
	}
	
	.navigation-sub ul li span.en{
		font-size:11px;
		line-height:20px;
	}
	
}

.navigation-sub ul li:hover a span.en{
	transform: rotate(-5deg);
}

/*//////////----- FOOTER -----//////////*/

#footer{
	width:100%;
	background-color:#0078AA;
	color:#fff;
}

#footer div.wrap{
	width:100%;
	margin:0 auto;
	
	box-sizing: border-box;
	padding:20px;
}

@media only screen and (min-width: 520px){
	
	#footer div.wrap{
		display:flex;
		flex-flow: row wrap;
		align-items: stretch;
		justify-content: flex-start;
		
		width:840px;
		padding-top:40px;
	}

}

@media only screen and (min-width: 1280px){
	
	#footer div.wrap{
		width:1080px;
	}
	
}

/*//////////----- FOOTER-SITEINFO -----//////////*/

.siteinfo{
	margin-bottom:20px;
}

@media only screen and (min-width: 520px){
	
	.siteinfo{
		width:200px;
		margin-bottom:0;
	}
	
}

.siteinfo p.caption{
	width:160px;
	margin:0 auto;
	text-align: center;
	
	font-size:15px;
	line-height:20px;
	color:#fff;
	
	position: relative;
}

.siteinfo p.caption:hover{
	color:#fff;
}

.siteinfo p.caption:before{
	display:block;
	content:"";
	
	width:20px;
	height:15px;
	
	background-image: url("../images/icon-siteinfo-heart.png");
	background-repeat: no-repeat;
	background-size: 17.5px;
	background-position: center;
	
	position: absolute;
	top:2.5px;
	left:15px;
	
	opacity: 0;
	transition: 0.25s;
}

.siteinfo p.caption:hover:before{
	left:10px;
	opacity: 1;
}

.siteinfo p.caption:after{
	display:block;
	content:"";
	
	width:20px;
	height:15px;
	
	background-image: url("../images/icon-siteinfo-heart.png");
	background-repeat: no-repeat;
	background-size: 17.5px;
	background-position: center;
	
	position: absolute;
	top:2.5px;
	right:15px;
	
	opacity: 0;
	transition: 0.25s;
}

.siteinfo p.caption:hover:after{
	right:10px;
	opacity: 1;
}

.siteinfo p.caption a{
	color:#fff;
}

.siteinfo p.caption a:hover{
	text-decoration: none;
	color:#fff;
}

.siteinfo p.caption span.note{
	display:block;
	
	font-size:16px;
	line-height:20px;
}

.siteinfo p.caption span.note:before{
	content:"《";
}

.siteinfo p.caption span.note:after{
	content:"》";
}

.siteinfo p.logo{
	width:110px;
	margin:0 auto;
	
	box-sizing: border-box;
	padding:10px;
}

.siteinfo p.logo img{
	width:100%;
	vertical-align: bottom;
}

.siteinfo p.tel{
	width:200px;
	margin:0 auto 7.5px;
	text-align: center;
	
	font-size:25px;
	line-height:30px;
	color:#fff;
	
	position: relative;
	box-sizing: border-box;
	padding-left:25px;
}

.siteinfo p.tel:hover{
	color:#fff;
}

.siteinfo p.tel a{
	color:#fff;
}

.siteinfo p.tel a:hover{
	text-decoration: none;
}

.siteinfo p.tel img{
	width:25px;
	vertical-align: bottom;
	
	position: absolute;
	top:5px;
	left:5px;
	
	transition: 0.25s;
}

.siteinfo p.tel:hover img{
	transform:rotate(-20deg);
	opacity: 0.8;
}

.siteinfo div.btn{
	display:flex;
	flex-flow: row wrap;
	align-items: center;
	justify-content: center;
	
	width:100%;
}

.siteinfo p.reserve{
	width:115px;
	
	font-size:14px;
	line-height:35px;
	
	position: relative;
	
	margin-right:10px;
}

.siteinfo p.reserve:hover{
	cursor: pointer;
}

.siteinfo p.reserve a{
	display:block;
	
	box-sizing: border-box;
	padding-left:45px;
	border:solid 1px #fff;
	color:#fff;
	
	transition: 0.25s;
}

.siteinfo p.reserve:hover a{
	text-decoration: none;
	
	padding-left:50px;
	border:solid 1px #fff;
}

.siteinfo p.reserve img{
	display:block;
	width:35px;
	
	position: absolute;
	top:0;
	left:5px;
	bottom:0;
	
	margin:auto 0;
	transition: 0.25s;
}

.siteinfo p.reserve:hover a img{
	left:10px;
}

.siteinfo p.reserve span.note{
	display:block;
	width:45px;
	height:10px;
	
	background-color:#0078AA;
	color:#fff;
	
	background-image: url("../images/icon-siteinfo-mail-arrow.png");
	background-repeat: no-repeat;
	background-size:35px;
	background-position: center right 6px;
	
	position: absolute;
	bottom:-5px;
	right:1px;
	
	transition: 0.25s;
}

.siteinfo p.reserve:hover span.note{
	background-position: center right 3px;
}

.siteinfo ul.icon{
	font-size:0;
	line-height:1.0em;
}

.siteinfo ul.icon li{
	display:inline-block;
	
	width:45px;
	height:45px;
	
	box-sizing: border-box;
	padding:5px;
	
	vertical-align: middle;
}

.siteinfo ul.icon li a{
	display:block;
	height:100%;
	
	border-radius:5px;
	position: relative;
}

.siteinfo ul.icon li.line a{
	background-color:#2DB43C;
}

.siteinfo ul.icon li a:hover{
	opacity: 0.8;
}

.siteinfo ul.icon li img{
	display:block;
	width:35px;
	
	position: absolute;
	top:0;
	left:0;
	right:0;
	bottom:0;
	
	margin:auto;
	transition: 0.25s;
}

.siteinfo ul.icon li a:hover img{
	transform:rotate(15deg);
}

/*//////////----- FOOTER-F-NAVI -----//////////*/

.f-navi{
	width:100%;
	margin:0 auto 20px;
}

@media only screen and (min-width: 520px){
	
	.f-navi{
		width:375px;
		margin-bottom:0;
	}
	
}

.f-navi ul{
	display:flex;
	flex-flow:row wrap;
	align-items: stretch;
	justify-content: flex-start;
	
	width:100%;
	margin:0 auto;
	max-width: 335px;
}

.f-navi ul li{
	width:50%;

	font-size:14px;/*本来のデザインは15px*/
	line-height:25px;
}

/* SP表示（520px未満）のみフッターナビの並び順を変更。PC（520px以上）はソース順のまま */
@media only screen and (max-width: 519.98px){

	.f-navi ul li.f-first{order:1;}
	.f-navi ul li.f-faq{order:2;}
	.f-navi ul li.f-system{order:3;}
	.f-navi ul li.f-diary{order:4;}
	.f-navi ul li.f-cast{order:5;}
	.f-navi ul li.f-gift{order:6;}
	.f-navi ul li.f-ranking{order:7;}
	.f-navi ul li.f-option{order:8;}
	.f-navi ul li.f-national{order:9;}
	.f-navi ul li.f-hotel{order:10;}
	.f-navi ul li.f-review{order:11;}
	.f-navi ul li.f-branch{order:12;}
	.f-navi ul li.f-news{order:13;}
	.f-navi ul li.f-recruitment{order:14;}
	.f-navi ul li.f-promotion{order:15;}
	.f-navi ul li.f-recruit{order:16;}
	.f-navi ul li.f-event{order:17;}
	.f-navi ul li.f-fc{order:18;}
	.f-navi ul li.f-media{order:19;}
	.f-navi ul li.f-contact{order:20;}

}

.f-navi ul li a{
	display:block;
	color:#fff;
	
	box-sizing: border-box;
	padding-left:15px;
	
	transition: 0.25s;
	position: relative;
}

.f-navi ul li a:before{
	display:block;
	content:"▶︎";
	
	width:12.5px;
	height:15px;
	
	font-size:10px;
	line-height:15px;
	
	position: absolute;
	top:5.5px;
	left:0;
	
	transition: 0.25s;
}

.f-navi ul li a:after{
	display:block;
	content:"▶︎";
	
	width:12.5px;
	height:15px;
	
	font-size:10px;
	line-height:15px;
	
	position: absolute;
	top:5.5px;
	left:9.5px;
	
	transition: 0.25s;
	opacity: 0;
}

@media only screen and (min-width: 1280px){
	
	.f-navi{
		width:615px;
	}
	
	.f-navi ul{
		max-width: 575px;
	}
	
	.f-navi ul li{
		width:calc(100%/3);
		
		line-height:30px;
	}
	
	.f-navi ul li a:before{
		top:7.5px;
	}
	
	.f-navi ul li a:after{
		top:7.5px;
	}
	
}

.f-navi ul li a:hover{
	text-decoration: none;
	padding-left:20px;
}

.f-navi ul li a:hover:after{
	opacity: 1;
}

/*//////////----- FOOTER-BANNER -----//////////*/

.banner-prevention{
	width:100%;
	margin:0 auto;
	max-width: 225px;
	
	text-align: center;
}

@media only screen and (min-width: 520px){
	
	.banner-prevention{
		width:225px;
	}
	
}

.banner-prevention a{
	display:block;
}

.banner-prevention img{
	width:100%;
	vertical-align: bottom;
}

/*//////////----- FOOTER-LANGUAGE -----//////////*/

#footer ul.language{
	width:100%;
	margin:0 auto;
	
	text-align: center;
	
	font-size:0;
	line-height:1.0em;
	
	box-sizing: border-box;
	padding:10px;
}

@media only screen and (min-width: 520px){
	
	#footer ul.language{
		width:960px;
	}
	
}

#footer ul.language li{
	display:inline-block;
	width:60px;
	
	font-size:14px;
	line-height:30px;
	font-weight:bold;
	
	text-align: left;
}

#footer ul.language li a{
	display:block;
	color:#fff;
	
	background-repeat:no-repeat;
	background-size:25px;
	background-position: center left;
	
	box-sizing: border-box;
	padding-left:30px;
}

#footer ul.language li.active a{
	text-decoration: underline;
}

#footer ul.language li.jp a{
	background-image:url("../images/icon-drawer-sp-language-jp.png");
}

#footer ul.language li.en a{
	background-image:url("../images/icon-drawer-sp-language-en.png");
}

#footer ul.language li.ch a{
	background-image:url("../images/icon-drawer-sp-language-ch.png");
}

#footer ul.language li.kr a{
	background-image:url("../images/icon-drawer-sp-language-kr.png");
}

/*//////////----- FOOTER-ADDRESS -----//////////*/

#footer address{
	font-size:10px;/*本来のデザインは12px*/
	line-height:55px;
	
	text-align: center;
	
	background-color:#015B81;
	color:#fff;
}

#footer address span{
	display:block;
}

@media only screen and (min-width: 520px){
	
	#footer address span{
		width:960px;
		margin:0 auto;
	}
	
}

/*//////////----- PAGETOP -----//////////*/

.btn-scroll-top{
	position: fixed;
	bottom:20px;
	right:10%;
	
	width:60px;
	
	opacity: 0;
	z-index: -10;
}

@media only screen and (min-width: 520px){
	
	.btn-scroll-top{
		opacity: 1;
		
		z-index: 10;
	}
	
}

.btn-scroll-top a{
	display:block;
}

.btn-scroll-top a:hover{
	opacity: 0.6;
}

.btn-scroll-top img{
	width:100%;
	vertical-align: bottom;
}

@media only screen and (min-width: 1280px){
	
	.btn-scroll-top{
		right:2.5%;
	}
	
}

/*//////////----- GOOGLE-RECHAPCHA -----//////////*/

#google_rechapcha{
	text-align: center;
	
	margin-top:10px;
}

#google_rechapcha > div{
	display:inline-block;
}

/*//////////----- 追加作業（2025年12月18日） -----//////////*/

.header-content-pc p.tel{
	width:200px;
	text-align: center;
	
	font-size:25px;
	line-height:20px;
	color:#015B81;
	
	position: relative;
	box-sizing: border-box;
	padding-left:25px;
	
	margin-right:10px;
}

.header-content-pc p.tel:hover{
	color:#0079AA;
}

.header-content-pc p.tel a:hover{
	text-decoration: none;
}

.header-content-pc p.tel img{
	width:20px;
	vertical-align: bottom;
	
	position: absolute;
	top:0;
	left:5px;
	
	transition: 0.25s;
}

.header-content-pc p.tel:hover img{
	transform:none;
	opacity: 1.0;
}

.header-content-pc p.tel span.note{
	font-size:0.8rem;
	line-height:20px;
}

@media only screen and (min-width: 1280px){
	
	.header-content-pc p.tel{
		width:240px;
		
		font-size:32px;
		line-height:24px;
		
		box-sizing: border-box;
		padding-top:5px;
	}
	
	.header-content-pc p.tel img{
		width:25px;
		
		top:5px;
		left:0;
	}
	
	.header-content-pc p.tel span.note{
		font-size:1.0rem;
		line-height:24px;
	}
	
}

.siteinfo p.tel{
	width:200px;
	margin:0 auto 7.5px;
	text-align: center;
	
	font-size:25px;
	line-height:20px;
	color:#fff;
	
	position: relative;
	box-sizing: border-box;
	padding-left:25px;
}

.siteinfo p.tel img{
	width:20px;
	vertical-align: bottom;
	
	position: absolute;
	top:0;
	left:5px;
	
	transition: 0.25s;
}

.siteinfo p.tel:hover img{
	transform:none;
	opacity: 1.0;
}

.siteinfo p.tel span.note{
	font-size:0.8rem;
	line-height:20px;
}
