/* reset */
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
	line-height: 1.8em;
}
/* HTML5 display-role reset for older browsers */
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
	display: block;
}
ol,ul {
	list-style: none;
}
blockquote,q {
	quotes: none;
}
blockquote:before,blockquote:after,q:before,q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
a {
	text-decoration: none;
	word-break: break-all;
}
a,a:link,a:visited,a:hover,a:active {
	text-decoration: none;
	color: inherit;
}
/* resetここまで */
/* サイト全体 */
* {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
body {
	font-family: '游ゴシック体', 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	line-height: 2.0em;
	font-size: 16px;
	color: #3e3a39;
}
img {
	display: block;
	max-width: 100%;
	height: auto;
}
p{
	line-height: 2.0em;
}
.trans,.trans * {
	-webkit-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
}
.f_min {
	font-family: "游明朝", YuMincho, 'Noto Serif JP', "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}
.f_kai {
	font-family: ro-nikkatsu-sei-kai-std, serif;
	font-weight: 400;
	font-style: normal;
}
.f_goth{
	font-family: '游ゴシック体', 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}
.flex {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-ms-flex-line-pack: start;
	align-content: flex-start;
}
.w1280 {
	width: 1280px;
	margin: auto;
}
.w1080 {
	width: 1080px;
	margin: auto;
}
.w960 {
	width: 960px;
	margin: auto;
}
.grid {
	display: -ms-grid;
	display: grid;
}
.center_item {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}
@media only screen and (min-width:1025px) {
	.pc {
		display: block;
	}
	.pc_span {
		display: inline;
	}
	.sp,.sp_flex {
		display: none;
	}
}
@media only screen and (max-width:1024px) {
	body {
		font-size: 14px;
		line-height: 1.7em;
	}
	p{
		line-height: 1.7em;
	}
	.pc,.pc_span {
		display: none;
	}
	.sp {
		display: block;
	}
	.sp_flex{
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: space-between;
	}
	.w1280,.w1080,.w960 {
		width: 100%;
	}
}
/*ヘッダー*/
header{
	position: relative;
	width: 100%;
	z-index: 100;
}
.tp_img_wrap{
	position: relative;
}
.tp_img_wrap .tp_slide{
	width: 100%;
	height: 100vh;
	-o-object-fit: cover;
	object-fit: cover;
}
.tp_ttl{
	width: 40px;
	height: 300px;
	color: #fff;
	-ms-writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
	position: absolute;
	left: calc( 50% - 20px);
	top: calc( 50% - 150px);
	z-index: 10;
	font-size: 17px;
	letter-spacing: 0.1em;
}
.tp_ttl a{
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.8);
}
.okuri{
	display: inline-block;
	margin-top: 20px;
}
.head_sns{
	position: absolute;
	left: 20px;
	top: 15px;
	z-index: 10;
	width: 80px;
}
a.head_sns_icon{
	width: 35px;
	height: 35px;
	border-radius: 50%;
	background: #fff;
	font-size: 18px;
	color: #a7a3a2;
	-webkit-box-shadow: 0 0 4px #999;
	box-shadow: 0 0 4px #999;
}
.head_txt01{
	position: absolute;
	left: 20px;
	top: 100px;
	line-height: 1.0em;
	-ms-writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
	z-index: 10;
	color: #fff;
	letter-spacing: 0.3em;
	font-size: 16px;
	text-shadow: 0px 0px 3px #555;
	height: 150px;
}
.head_nav{
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	padding: 70px 0;
	background: #fff;
}
.head_nav_item{
	display: block;
	padding: 0 20px;
	letter-spacing: 0.2em;
	position: relative;
}
.tp_ttl_sp {
	display: none;
}
header.fix {
	position: fixed;
	top: 0;
	left: 0;
}
.fix .tp_slide{
	display: none;
}
.fix .tp_ttl{
	left: 60px;
	top: 100px;
	-webkit-transition: 0s;
	transition: 0s;
}
.fix .tp_ttl a{
	-webkit-transition: 0.3s;
	transition: 0.3s;
}
.fix .head_nav{
	padding: 20px 0;
	height: 65px;
}
.fix~.tp_slide_dummy{
	height: 100vh;
}
.page_fix~.tp_slide_dummy{
	display: none;
}
.fix~.head_nav_dummy{
	height: 65px;
}

@media only screen and (min-width:1025px) {
	.head_sns_icon:hover{
		background: #ccc;
		color: #666;
		-webkit-box-shadow: none;
		box-shadow: none;
	}
	.head_nav_item::after{
		content: "";
		display: block;
		height: 2px;
		width: 0;
		background: #3e3a39;
		position: absolute;
		bottom: 0;
		left: 50%;
		-webkit-transition: 0.3s;
		transition: 0.3s;
	}
	.head_nav_item:hover{
		letter-spacing: 0.4em;
	}
	.head_nav_item:hover::after{
		width: 100%;
		left: 0;
	}
	.tp_ttl a:hover{
		background: rgba(0,0,0,0.5);
	}
}
@media only screen and (max-width:1024px) {
	/*開閉ボタン*/
	#nav-toggle {
		position: fixed;
		right: 10px;
		top: 10px;
		width: 40px;
		height: 40px;
		cursor: pointer;
		z-index: 10000;
		padding: 10px;
		background: #fff;
		border-radius: 50%;
		-webkit-box-shadow: 0 0 4px #999;
		box-shadow: 0 0 4px #999;
	}
	#nav-toggle div {
		position: relative;
	}
	#nav-toggle span {
		display: block;
		position: absolute;
		height: 2px;
		width: 100%;
		border-radius: 2px;
		background: #a7a3a2;
		color: #a7a3a2;
		left: 0;
		-webkit-transition: .35s ease-in-out;
		transition: .35s ease-in-out;
	}
	#nav-toggle span:nth-child(1) {
		top: 0;
	}
	#nav-toggle span:nth-child(2) {
		top: 5px;
	}
	#nav-toggle span:nth-child(3) {
		top: 10px;
	}
	#nav-toggle span:nth-child(4) {
		top: 15px;
		font-size: 0.5em;
		background: none;
		text-align: center;
	}
	.open#nav-toggle span:nth-child(1) {
		top: 5px;
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}
	.open#nav-toggle span:nth-child(2) {
		width: 0;
		left: 50%;
	}
	.open#nav-toggle span:nth-child(3) {
		top: 5px;
		width: 100%;
		-webkit-transform: rotate(-45deg);
		transform: rotate(-45deg);
	}
	/*開閉ボタンここまで*/
	.head_nav,.fix .head_nav{
		position: fixed;
		left: 0;
		top: 0;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		padding: 60px 20px 60px 50px;
		width: 100vw;
		height: auto;
		-webkit-transform: translateX(100%);
		transform: translateX(100%);
		background: rgba(256,256,256,0.95);
		z-index: 100;
	}
	.open .head_nav{
		-webkit-transform: translateX(0);
		transform: translateX(0);
	}
	.head_nav_item{
		width: 100%;
		border-bottom: dotted 1px #3e3a39;
		text-align: center;
		padding: 15px 0;
	}
	.head_sns{
		display: none;
	}
	.head_sns_sp{
		padding-top: 20px;
		width: 100px;
	}
	.head_txt01{
		top: 10px;
		left: 10px;
	}
	.tp_ttl_sp{
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		width: 30px;
		height: 100%;
		background: rgba(0,0,0,0.8);
		color: #fff;
		-ms-writing-mode: tb-rl;
		-webkit-writing-mode: vertical-rl;
		writing-mode: vertical-rl;
		position: absolute;
		left: 0;
		top: 0;
		z-index: 10;
		font-size: 15px;
		letter-spacing: 0.1em;
	}
	.tp_ttl_sp a{
		height: 100%;
	}
	.okuri{
		width: 9px;
		margin-top: 15px;
	}
	header.fix{
		position: relative;
	}
	.page_fix .head_txt01{
		display: none;
	}
	.page_fix .tp_ttl{
		left: 0;
		top: 0;
		width: 20px;
		height: 240px;
		font-size: 13px;
		letter-spacing: 0.1em;
	}
	.fix~.head_nav_dummy{
		display: none;
	}
}
/*フッター*/
footer{
	background: #eee;
	padding: 50px 0 30px;
}
.foot_logo{
	font-size: 30px;
	letter-spacing:0.1em;
	font-weight: bold;
	text-align: center;
}
.foot_nav{
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	margin: 30px 0 50px;
}
.foot_nav_item{
	padding: 0 20px;
	position: relative;
	letter-spacing: 0.2em;
}
.foot_official_wrap{
	text-align: center;
}
.official_logo{
	margin: 0 auto 10px;
}
.foot_official_tel{
	font-size: 20px;
}
.copyright{
	text-align: center;
}
@media only screen and (min-width:1025px) {
	.foot_nav_item::after{
		content: "";
		display: block;
		height: 2px;
		width: 0;
		background: #3e3a39;
		position: absolute;
		bottom: 0;
		left: 50%;
		-webkit-transition: 0.3s;
		transition: 0.3s;
	}
	.foot_nav_item:hover{
		letter-spacing: 0.4em;
	}
	.foot_nav_item:hover::after{
		width: 100%;
		left: 0;
	}
}
@media only screen and (max-width:1024px) {
	footer{
		padding: 50px 20px 20px;
	}
	.foot_logo{
		font-size: 24px;
	}
	.foot_nav{
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
	}
	.foot_nav_item{
		width: 100%;
		border-bottom: dotted 1px #3e3a39;
		padding: 5px;
		text-align: center;
	}
}