/*----------------------------------------------------
** WEB COMBO / main.css
** Ver.1.1.3
** copyright 2020 GRANTEST Inc.
**----------------------------------------------------
** Common settings
**----------------------------------------------------*/
/* color */
[text-color]::before{
	content:attr(text-data)'';
}
[text-color] span.hiddenbox{
	width:0 !important;
	height:0 !important;
	overflow:hidden !important;
	opacity:0 !important;
	background-color:#fff !important;
	color:#000 !important;
	padding:0 !important;
	margin:0 !important;
	white-space:nowrap;
	line-height:0 !important;
	display:inline-block !important;
}
/* loader */
@keyframes loader{
  0%{transform:rotate(0deg)}
  100%{transform:rotate(360deg)}
}
div.loaderwrap{
	transition:all 0.3s ease;
}
div.loaderwrap.show{
	opacity:0;
}
div.loaderwrap,
div.loader{
	position:fixed;
	z-index:9000;
	width:100%;
	height:100vh;
	top:0;
	right:0;
	bottom:0;
	left:0;
}
div.loader::before{
	position:absolute;
	z-index:20;
	font-size:9px;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
}
div.loader span.waiting{
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
}
div.loader span.waiting span.container{
	width:60px;
	height:60px;
	display:block;
	overflow:hidden;
	border-radius:30px;
	position:relative;
	z-index:1;
	animation:loader 1s linear infinite;
}
div.loader span.waiting span.container span{
	width:30px;
	height:30px;
	display:block;
	float:left;
}
div.loader span.waiting span.container span:nth-child(1){
	background:-webkit-linear-gradient(45deg,rgba(255,255,255,0.75) 0%,rgba(255,255,255,1) 100%);
	background:linear-gradient(45deg,rgba(255,255,255,0.75) 0%,rgba(255,255,255,1) 100%);
}
div.loader span.waiting span.container span:nth-child(2){
	background:-webkit-linear-gradient(-45deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0.25) 100%);
	background:linear-gradient(135deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0.25) 100%);
}
div.loader span.waiting span.container span:nth-child(3){
	background:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.75) 0%,rgba(255,255,255,0.5) 100%);
	background:linear-gradient(135deg,rgba(255,255,255,0.75) 0%,rgba(255,255,255,0.5) 100%);
}
div.loader span.waiting span.container span:nth-child(4){
	background:-webkit-linear-gradient(45deg,rgba(255,255,255,0.5) 0%,rgba(255,255,255,0.25) 100%);
	background:linear-gradient(45deg,rgba(255,255,255,0.5) 0%,rgba(255,255,255,0.25) 100%);
}
div.loader span.waiting span.container span:nth-child(5){
	width:56px;
	height:56px;
	display:block;
	border-radius:28px;
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
}
/* h1 (catchcopy) */
@keyframes marquee{
	100%{transform:translateX(-100%)}
}
@keyframes marqueestart{
	100%{transform:translateY(0)}
}
div.catchcopy{
	text-align:center;
	border-bottom:solid 1px;
	overflow:hidden;
	position: relative;
	z-index: 9100;
}
div.catchcopy div.inner{
	display:table;
	margin:0 auto;
}
div.catchcopy div.inner > *{
	display:table-cell;
	font-weight:700;
	padding:0 0.5em;
	white-space:nowrap;
	line-height:36px;
	font-size:0.86rem;
}
div.catchcopy.marquee div.inner{
	animation:marqueestart 0.6s forwards ease-out;
	transform:translate(0,-100%);
}
div.catchcopy.marquee div.inner > *{
	will-change:transform;
}
div.catchcopy.marquee div.inner h1{
	animation:marquee 10s linear infinite;
	animation-delay:0.8s;
  transform:translateX(0);
}
div.catchcopy.marquee div.inner .catchcopyclone{
	animation:marquee 10s linear infinite;
	animation-delay:0.8s;
  transform:translateX(0);
}
/*----------------------------------------------------
** header
**----------------------------------------------------*/
header{
	position:sticky;
	top:0;
	z-index:9000;
}
header div.header{
	position:relative;
	z-index:1;
	overflow:hidden;
}
/* logo */
div.headerlogo{
	position:absolute;
	z-index:2;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
}
div.headerlogo svg,
div.headerlogo img{
	vertical-align:top;
	max-height:40px;
}
div.headerlogo a{
	display:block;
	text-decoration:none;
	overflow:hidden;
	height:inherit;
}
div.headerlogo h2{
	font-family:'Oswald','M PLUS 1p';
	display:flex;
	height:inherit;
}
div.headerlogo h2 picture + span:not(.none),
div.headerlogo h2 img + span:not(.none),
div.headerlogo h2 svg + span:not(.none){
	display:flex;
	align-items:center;
	padding:0 0 0 0.2em;
}
div.headerlogo h2 span.none{
	opacity:0;
	overflow:hidden;
	width:0;
	height:0;
	display:block;
}
/* menubtn */
header div.menubtn{
	position:relative;
	z-index:1;
	cursor:pointer;
}
header a.menubtn{
	position:relative;
	z-index:1;
}
header div.menubtn::before,
header div.menubtn::after,
header a.menubtn::before,
header a.menubtn::after{
	position:absolute;
	z-index:1;
	display:block;
	left:50%;
}
header a.menubtn span{
	width: 0;
	height: 0;
	display: block;
	overflow: hidden;
}
header div.menubtn::before,
header a.menubtn::before,
.drawermenu div.header div.drawerclosebtn.icon span::before{
	content:attr(name) "";
	bottom:0;
	font-family:'Oswald';
	line-height:0.8em;
	white-space: nowrap;
}
header div.menubtn::after,
header a.menubtn::after,
.drawermenu div.header div.drawerclosebtn.icon span::after{
	content:'';
	width:68%;
	padding-top:68%;
	top:0;
	background-position:center center;
	background-repeat:no-repeat;
	background-size:cover;
	transform:translateX(-50%);
}
/*----------------------------------------------------
** drawer menu
**----------------------------------------------------*/
/* Behavior settings */
html.menuopen{
	overflow:hidden;
}
html.menuopen body{
	position:fixed;
}
body > .wrap.menuopen{
	transition:all 0.3s ease;
	transform-origin:top;
	width:100vw;
	height:100vh;
	transform-origin:center;
	overflow:hidden;
}
html.menuopen body > .wrap.menuopen{
	position:relative;
	z-index:1;
	transform:scale(0.95);
	border-radius:10px;
}
div.combomenuoverlay{
	position:fixed;
	top:0;
	right:0;
	bottom:0;
	left:0;
	width:100vw;
	height:100vh;
	z-index:2;
	display:none;
	opacity:0.3;
	transition:all 0.3s ease;
	cursor:pointer;
}
div.combomenuoverlay.active{
	display:block;
}
div.drawermenu{
	display:none;
	position:fixed;
	z-index:-1;
	opacity:0;
}
div.drawermenu.active{
	opacity:1;
	z-index: 3;
}
div.drawermenu.view{
	transition:all 0.3s ease;
	display:block;
}
div.container.menuopen{
	position:relative;
	z-index:1;
}
/* design */
.drawermenu{
	overflow:hidden;
}
.drawermenu div.header{
	position:absolute;
	z-index:9999;
	top:0;
	width:100%;
	border-bottom:solid 1px;
}
.drawermenu div.header div.title{
	text-align:center;
	font-weight:700;
}
.drawermenu div.header div.drawerclosebtn{
	position:absolute;
	right:0;
	top:0;
	z-index:2;
	cursor:pointer;
}
.drawermenu div.header div.drawerclosebtn.icon{
	padding:0;
}
.drawermenu div.header div.drawerclosebtn.icon span{
	display:block;
	width:100%;
	padding-top:100%;
	color:rgba(0,0,0,0);
	background-color:rgba(255,255,255,0);
	position:relative;
	z-index:1;
}
.drawermenu div.header div.drawerclosebtn span::before{
	content:attr(name) "";
}
.drawermenu div.header div.drawerclosebtn.icon span::before{
	position:absolute;
	z-index:1;
	display:block;
	left:50%;
}
.drawermenu div.header div.drawerclosebtn.icon span::after{
	position:absolute;
	z-index:1;
	display:block;
	left:50%;
	content:'';
	width:68%;
	padding-top:68%;
	top:0;
	background-position:center center;
	background-repeat:no-repeat;
	background-size:cover;
	transform:translateX(-50%);
}
.drawermenu > div.inner,
.drawermenu div.swipemenuwrap div.inner{
	overflow-x:auto;
	box-sizing:border-box;
}
.drawermenu nav h2{
	width:0;
	height:0;
	overflow:hidden;
	opacity:0;
}
.drawermenu nav ul{
	list-style:none;
	list-style-position:outside;
	padding:0 0.5em;
}
.drawermenu nav ul li{
	border-bottom:solid 1px #dbdbdb;
}
.drawermenu nav ul li:last-child{
	border:none;
}
.drawermenu nav ul li a{
	display:block;
	text-decoration:none;
	line-height:50px;
	padding-right:36px;
	padding-left:0.5em;
	background-position:right center;
	background-repeat:no-repeat;
	background-size:20px 20px;
}
body.ie .drawermenu nav ul li{
	vertical-align:top;
	line-height:0;
	height:50px;
}
body.ie .drawermenu nav ul li a{
	margin:0;
}
.drawermenu [swipemenu]{
	padding:12px 0;
}
ul[contentsindexlist]{
	list-style:none;
	list-style-position:outside;
	padding:0 0.5em;
}
ul[contentsindexlist] li{
	cursor:pointer;
	line-height:50px;
	padding-right:36px;
	padding-left:0.5em;
	background-position:right center;
	background-repeat:no-repeat;
	background-size:36px 36px;
	border-bottom:solid 1px #dbdbdb;
}
ul[contentsindexlist] li:last-child{
	border:none;
}
/*----------------------------------------------------
** pagetop button
**----------------------------------------------------*/
@keyframes pagetophover{
	0%{transform:scale(1); opacity:0}
	30%{opacity:0.5;}
	70%{transform:scale(1.2); opacity:0.5}
	100%{transform:scale(1.5); opacity:0}
}
div.scrollbtnwrap{
	position:fixed;
	display:flex;
	opacity:0;
	z-index:9000;
}
html[scroll-top="false"] div.scrollbtnwrap{
	display: none;
}
.waiting div.scrollbtnwrap{
	z-index:-1;
}
div.scrollbtnwrap.active{
	opacity:1;
}
.menuopen div.scrollbtnwrap{
	display:none;
}
div.scrollbtnwrap div{
	font-family:'M PLUS 1p';
	font-weight:700;
	cursor:pointer;
	background-repeat:no-repeat;
	transition:all 0.2s ease;
	white-space:nowrap;
}
div.scrollbtnwrap div[target-type="en"]::before{
	font-family: 'Oswald';
}
div.scrollbtnwrap div[target-type="all"]::before{
	font-family:'Oswald','M PLUS 1p';
}
div.pagetopbtn::before{
	content:'PAGE TOP';
	font-family:'Oswald';
}
div.contentstopbtn::before{
	content:attr(target-title) "";
}
div.contentstopbtn[target-contents="contents_1"]{
	display:none;
}
/*----------------------------------------------------
** footer
**----------------------------------------------------*/
footer{
	text-align:center;
}
footer div.footer{
	display:flex;
	flex-wrap:wrap;
}
/* footerlogo */
footer div.footer div.footerlogo,
footer div.footer div.dataarea{
	display:flex;
	align-items:center;
}
footer div.footer div.footerlogo > *{
	width:100%;
}
/* dataarea */
footer div.footer div.dataarea dl{
	box-sizing:border-box;
}
footer div.footer div.dataarea dl dt svg{
	vertical-align:top;
	max-width:100%;
}
footer div.footer div.dataarea dl dt svg + span{
	display:block;
	width:0;
	height:0;
	opacity:0;
	overflow:hidden;
}
footer div.footer div.dataarea dl dd{
	text-align:left;
}
footer div.footer div.dataarea dl dd address{
	font-style:normal;
	background-repeat:no-repeat;
	background-position:left top;
}
footer div.footer div.dataarea dl dd address span.zipcode{
	padding-right:0.5em;
	font-size:90%;
	display:inline-block;
}
footer div.footer div.dataarea dl dd address span.zipcode::before{
	content:'〒';
	padding-right:0.5em;
	font-size:90%;
	display:inline-block;
}
footer div.footer div.dataarea dl dd div.flexbox{
	display:flex;
}
footer div.footer div.dataarea dl dd div.flexbox p + p{
	margin-left:1em;
}
footer div.footer div.dataarea dl dd p.tel,
footer div.footer div.dataarea dl dd p.mail{
	background-repeat:no-repeat;
	background-position:left center;
	font-family: 'Oswald';
}
footer div.footer div.dataarea dl dd p.mail span{
	display:block;
	width:0;
	height:0;
	overflow:hidden;
	opacity:0;
}
footer div.footer div.dataarea dl dd p.mail a::before{
	content:attr(mail-address) "";
}
/* footerlinks */
footer div.footerlinks a{
	text-decoration:underline;
}
footer div.footerlinks a + a::before{
	content:'|';
	display:inline-block;
}
/* snsarea */
footer div.snsarea{
	display:flex;
	justify-content:center;
}
footer div.snsarea a{
	background-repeat:no-repeat;
	background-position:center;
	background-size:cover;
	display:block;
	border-radius:50%;
	width:36px;
	height:36px;
}
footer div.snsarea a span{
	width:0;
	height:0;
	overflow:hidden;
	opacity:0;
	display:block;
}
/* copyright */
footer div.copyright{
	font-family: 'Oswald';
}
/*----------------------------------------------------
** pageheader
**----------------------------------------------------*/
#pageheader{
	position:relative;
	z-index:1;
	overflow:hidden;
	display:flex;
	flex-direction:column-reverse;
}
#pageheader div.inner{
	display:flex;
	justify-content:space-between;
}
div.pageheader div.inner > *{
	white-space:nowrap;
	box-sizing:border-box;
	overflow:hidden;
	text-overflow:ellipsis;
	line-height:30px;
	height:30px;
}
#pageheader div.inner h3{
	max-width:calc( 50% - 0.5em );
	font-weight:700;
	margin-right:0.5em;
}
#pageheader div.inner a{
	max-width:calc( 50% - 20px );
	text-decoration:none;
	padding-left:20px;
	background-repeat:no-repeat;
	background-position:left center;
	background-size:20px 20px;
}
#pageheader div.video,
#pageheader figure{
	overflow:hidden;
	position:relative;
	z-index:-1;
	margin-bottom:-30px;
}
#pageheader div.video video,
#pageheader figure img{
	width:100%;
	object-fit:cover;
	object-position:center center;
}
/*----------------------------------------------------
** overflowcheck
**----------------------------------------------------*/
[overflowcheck="over"][ad-sp="true"]{
	position:relative;
	z-index:1;
	background-image:
		url('data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22%23bbb%22%20d%3D%22M16%2016l16-16h-6.446l-16%2016%2016%2016h6.446z%22%20%2F%3E%3C%2Fsvg%3E'),
		url('data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22%23bbb%22%20d%3D%22M16%2016l-16-16h6.446l16%2016-16%2016h-6.446z%22%20%2F%3E%3C%2Fsvg%3E'),
		linear-gradient(to bottom, #bbb 25%, transparent 25% 100%);
	background-size:
		7px 7px,
		7px 7px,
		calc( 100% - 14px ) 4px;
	background-repeat: no-repeat;
	display:block;
}
[overflowcheck="over"]::after {
	display: block;
	width:100%;
	height:12px;
}
[overflowcheck="over"] span.scrollnavi{
	display:none;
	justify-content:center;
	align-items:center;
	width:100%;
	background-color:rgba(0,0,0,0.5);
	text-align:center;
	color:#fff;
	position:absolute;
	z-index:8000;
	top:0;
	right:0;
	bottom:0;
	left:0;
}
[overflowcheck="over"] span.scrollnavi::before{
	display:inline-block;
	font-family:'Oswald','M PLUS 1p';
	content:attr(scrollnavi)'';
	padding:0 30px;
	line-height:30px;
	color:#fff;
	background:
	url('data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M3.2%2016l7.39%204.267v-3.733h8.665c0.254%201.513%201.563%202.667%203.146%202.667%201.766%200%203.2-1.434%203.2-3.2s-1.434-3.2-3.2-3.2c-1.583%200-2.892%201.154-3.146%202.667h-8.665v-3.733l-7.39%204.267zM22.4%2010.667c2.946%200%205.333%202.387%205.333%205.333s-2.387%205.333-5.333%205.333c-1.969%200-3.668-1.079-4.594-2.667h-1.219c1.013%202.202%203.232%203.733%205.813%203.733%203.535%200%206.4-2.866%206.4-6.4s-2.865-6.4-6.4-6.4c-2.581%200-4.8%201.532-5.812%203.733h1.219c0.925-1.587%202.624-2.667%204.593-2.667z%22%20%2F%3E%3C%2Fsvg%3E') left center,
	url('data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M28.8%2016l-7.39-4.267v3.733h-8.665c-0.254-1.513-1.563-2.667-3.146-2.667-1.766%200-3.2%201.434-3.2%203.2s1.434%203.2%203.2%203.2c1.583%200%202.892-1.154%203.146-2.667h8.665v3.733l7.39-4.267zM9.6%2021.333c-2.946%200-5.333-2.387-5.333-5.333s2.387-5.333%205.333-5.333c1.969%200%203.668%201.079%204.594%202.667h1.219c-1.013-2.202-3.232-3.733-5.813-3.733-3.535%200-6.4%202.866-6.4%206.4s2.865%206.4%206.4%206.4c2.581%200%204.8-1.532%205.812-3.733h-1.219c-0.925%201.587-2.624%202.667-4.593%202.667z%22%20%2F%3E%3C%2Fsvg%3E') right center;
	background-repeat:no-repeat;
	background-size:30px 30px;
}
@keyframes overflowcheck{
	0%{
		background-position:
			bottom left,
			bottom right ,
			bottom center;
		background-size:
			7px 7px,
			7px 7px,
			calc( 100% - 14px ) 4px;
	}
	50%{
		background-position:
			bottom left 6px,
			bottom right 6px,
			bottom center;
		background-size:
			7px 7px,
			7px 7px,
			calc( 100% - 28px ) 4px;
	}
	100%{
		background-position:
			bottom left,
			bottom right,
			bottom center;
		background-size:
			7px 7px,
			7px 7px,
			calc( 100% - 14px ) 4px;
	}
}
@keyframes overflowscroll{
	0%{
		opacity:1;
	}
	50%{
		opacity:0;
	}
	100%{
		z-index:-1;
		opacity:0;
	}
}
@media screen and (max-width:767px){
	/*----------------------------------------------------
	** overflowcheck
	**----------------------------------------------------*/
	[overflowcheck="over"][ad-sp="true"]{
		scrollbar-width:none;
		animation:overflowcheck 2s linear infinite;
	}
	.wc_overflowcheck_box[ad-sp="true"]::-webkit-scrollbar{
		display:none;
	}
	[overflowcheck="over"][ad-sp="true"]::after{
		content:'';
	}
	[overflowcheck="over"][ad-sp="true"] span.scrollnavi{
		display:flex;
	}
	.visible[overflowcheck="over"][ad-sp="true"] span.scrollnavi{
		animation:overflowscroll 2s forwards 1s ease-out;
	}
	/*----------------------------------------------------
	** column setting
	**----------------------------------------------------*/
	div.columnwrap[item-num="2"],
	div.columnwrap[item-num="3"]{
		display:flex;
		flex-direction:column;
	}
	div.columnwrap[item-num="2"] main.maincolumn,
	div.columnwrap[item-num="3"] main.maincolumn{
		order:1;
	}
	div.columnwrap[item-num="3"] div.sidecolumn.type_right{
		order:3;
	}
	div.columnwrap[item-num="2"] div.sidecolumn.type_right,
	div.columnwrap[item-num="2"] div.sidecolumn.type_left,
	div.columnwrap[item-num="3"] div.sidecolumn.type_left{
		order:2;
	}
	/*----------------------------------------------------
	** header
	**----------------------------------------------------*/
	header::after{
		content:'';
		display:block;
		width:100%;
		height:150%;
		position:absolute;
		bottom:100%;
		background-color:var(--bgcolor);
	}
	/* menubtn */
	header .menubtn{
		width:30px;
		height:30px;
	}
	header .menubtn::before,
	.drawermenu div.header div.drawerclosebtn.icon span::before{
		transform:translateX(-50%) scale(0.5);
		font-size:16px;
	}
	header .menubtn[sp="right"]{
		float:right;
	}
	header .menubtn[sp="left"]{
		float:left;
	}
	/*----------------------------------------------------
	** drawer menu
	**----------------------------------------------------*/
	div.drawermenu{
		width:100vw;
		height:calc( 100vh - 26px );
		height:calc(var(--vh, 1vh) * 100 - 26px );
		border-radius:10px 10px 0 0;
		top:26px;
		transform:translate3d(0,100%,0);
	}
	div.drawermenu.active{
		transform:translate3d(0,0,0);
	}
	.drawermenu div.header div.title{
		border-radius:10px 10px 0 0;
	}
	.drawermenu > div.inner{
		width:100vw;
		height:calc( 100vh - 76px );
		height:calc(var(--vh, 1vh) * 100 - 76px );
	}
	[index-wrap]:not([index-wrap*="sp"]) [swipemenu-num="2"],
	.swipemenubtn[indexviewtype]:not([indexviewtype*="sp"]),
	.indexmenu:not([indexviewtype*="sp"]){
		display:none;
	}
	/*----------------------------------------------------
	** pagetop button
	**----------------------------------------------------*/
	div.scrollbtnwrap{
		height:0;
		z-index:-1;
	}
	div.scrollbtnwrap.active{
		z-index:9000;
	}
	div.scrollbtnwrap.right{
		right:0;
		transform:rotate(-90deg) translateX(25%);
		transform-origin:right bottom;
	}
	div.scrollbtnwrap.left{
		left:0;
		transform:rotate(90deg) translateX(-25%);
		transform-origin:left bottom;
	}
	div.scrollbtnwrap div{
		height:30px;
		line-height:30px;
		margin-bottom:6px;
		background-size:contain;
		transform:translateY(0);
		margin:0 3px;
	}
	div.scrollbtnwrap.right div{
		padding:0 30px 0 12px;
		background-position:right center;
	}
	div.scrollbtnwrap.left div{
		padding:0 12px 0 30px;
		background-position:left center;
	}
	.scrollup .active.left div{
		transform:translateY(calc( -100% - 6px ));
	}
	.scrollup .active.right div{
		transform:translateY(calc( -100% - 8px ));
	}
	div.scrollbtnwrap div{
		font-size:13px;
	}
	div.scrollbtnwrap div[target-type="jp"]{
		font-size:12px;
	}
	div.scrollbtnwrap div.contentstopbtn{
		white-space:nowrap;
		text-overflow:ellipsis;
		max-width:12em;
		overflow:hidden;
	}
	/*----------------------------------------------------
	** footer
	**----------------------------------------------------*/
	footer div.footer{
		padding-top:50px;
		justify-content:center;
		padding-left: 1em;
		padding-right: 1em;
	}
	footer div.footer div.footerlogo{
		width:50px;
	}
	footer div.footer div.dataarea dl{
		padding:6px;
	}
	footer div.footer div.dataarea dl dt{
		padding-bottom:6px;
	}
	footer div.footer div.dataarea dl dt svg{
		max-height:20px;
	}
	footer div.footer div.dataarea dl dd{
		padding:0 12px;
	}
	footer div.footer div.dataarea dl dd address,
	footer div.footer div.dataarea dl dd p.tel,
	footer div.footer div.dataarea dl dd p.mail{
		padding-left:24px;
		line-height:20px;
		background-size:24px;
	}
	footer div.footer div.dataarea dl dd p{
		margin-top:6px;
	}
	body.safari footer footer::after{
		content:'';
		display:block;
		width:100%;
		height:60px;
	}
	footer div.footerlinks{
		margin-top:24px;
	}
	footer div.footerlinks a{
		margin:0 3px;
	}
	footer div.footerlinks a + a::before{
		padding-right:6px;
	}
	footer div.snsarea{
		margin-top:24px;
	}
	footer div.snsarea a{
		margin:0 6px;
	}
	footer div.copyright{
		padding:24px 0;
	}
  /*追加*/
  div.footerlogo.ssp{
    margin-top: 1.5rem;
  }
}
@media screen and (min-width:768px) and (max-width:1099px){
	/*----------------------------------------------------
	** overflowcheck
	**----------------------------------------------------*/
	[overflowcheck="over"][ad-tb="true"]{
		-ms-overflow-style:none;
		scrollbar-width:none;
		padding-bottom:8px;
		animation:overflowcheck 2s linear infinite;
	}
	[overflowcheck="over"][ad-tb="true"]::-webkit-scrollbar{
		display:none;
	}
	[overflowcheck="over"][ad-tb="true"]::after{
		content:'';
		display:block;
		width:100%;
		height:10px;
	}
	[overflowcheck="over"][ad-tb="true"] span.scrollnavi{
		display:flex;
	}
	.visible[overflowcheck="over"][ad-tb="true"] span.scrollnavi{
		animation:overflowscroll 2s forwards 1s ease-out;
	}
	/*----------------------------------------------------
	** column setting
	**----------------------------------------------------*/
	div.columnwrap[item-num="2"],
	div.columnwrap[item-num="3"]{
		display:flex;
		flex-direction:column;
	}
	div.columnwrap[item-num="3"] main.maincolumn{
		order:1;
	}
	div.columnwrap[item-num="3"] div.sidecolumn.type_right{
		order:3;
	}
	div.columnwrap[item-num="3"] div.sidecolumn.type_left{
		order:2;
	}
	/*----------------------------------------------------
	** header
	**----------------------------------------------------*/
	/* menubtn */
	header .menubtn{
		width:40px;
		height:40px;
	}
	header .menubtn::before,
	.drawermenu div.header div.drawerclosebtn.icon span::before{
		transform:translateX(-50%) scale(0.5);
		font-size:18px;
	}
	header .menubtn[tb="right"]{
		float:right;
	}
	header .menubtn[tb="left"]{
		float:left;
	}
	/*----------------------------------------------------
	** drawer menu
	**----------------------------------------------------*/
	div.drawermenu{
		width:375px;
		height:calc( 100vh - 52px );
		height: calc(var(--vh, 1vh) * 100 - 52px );
		top:26px;
		transform:translate3d(0,100%,0);
	}
	div.drawermenu[tb="left"]{
		border-radius:0 10px 10px 0;
		transform:translate3d(-100%,0,0);
	}
	div.drawermenu[tb="right"]{
		right:0;
		border-radius:10px 0 0 10px;
		transform:translate3d(100%,0,0);
	}
	div.drawermenu.active{
		transform:translate3d(0,0,0);
	}
	.drawermenu div.header div.title{
		border-radius:10px 10px 0 0;
	}
	.drawermenu > div.inner{
		width:375px;
		height:calc( 100vh - 52px );
	}
	[index-wrap]:not([index-wrap*="tb"]) [swipemenu-num="2"],
	.swipemenubtn[indexviewtype]:not([indexviewtype*="tb"]),
	.indexmenu:not([indexviewtype*="tb"]){
		display:none;
	}
	/*----------------------------------------------------
	** pagetop button
	**----------------------------------------------------*/
	div.scrollbtnwrap{
		height:0;
		z-index:9000;
	}
	div.scrollbtnwrap.right{
		right:0;
		transform:rotate(-90deg);
		transform-origin:right bottom;
	}
	div.scrollbtnwrap.left{
		left:0;
		transform:rotate(90deg);
		transform-origin:left bottom;
	}
	div.scrollbtnwrap > div{
		height:30px;
		line-height:30px;
		margin-bottom:6px;
		top:50vh;
		background-size:contain;
		transform:translateY(0);
		margin:0 3px;
	}
	div.scrollbtnwrap.right > div{
		padding:0 30px 0 12px;
		background-position:right center;
	}
	div.scrollbtnwrap.left > div{
		padding:0 12px 0 30px;
		background-position:left center;
	}
	.scrollup div.scrollbtnwrap > div{
		transform:translateY(calc( -100% - 12px ));
	}
	/*----------------------------------------------------
	** footer
	**----------------------------------------------------*/
	footer div.footer{
		padding-top:70px;
		padding-right:70px;
		padding-left:70px;
		justify-content: center;
	}
	footer div.footer div.footerlogo{
		width:80px;
	}
	footer div.footer div.dataarea dl{
		padding:6px;
	}
	footer div.footer div.dataarea dl dt{
		padding-bottom:6px;
	}
	footer div.footer div.dataarea dl dt svg{
		max-height:20px;
	}
	footer div.footer div.dataarea dl dd{
		padding:0 12px;
	}
	footer div.footer div.dataarea dl dd address,
	footer div.footer div.dataarea dl dd p.tel,
	footer div.footer div.dataarea dl dd p.mail{
		padding-left:24px;
		line-height:20px;
		background-size:24px;
	}
	footer div.footer div.dataarea dl dd p{
		margin-top:6px;
	}
	body.safari footer footer::after{
		content:'';
		display:block;
		width:100%;
		height:60px;
	}
	footer div.footerlinks{
		margin-top:24px;
	}
	footer div.footerlinks a{
		margin:0 3px;
	}
	footer div.footerlinks a + a::before{
		padding-right:6px;
	}
	footer div.snsarea{
		margin-top:24px;
	}
	footer div.snsarea a{
		margin:0 6px;
	}
	footer div.copyright{
		padding:24px 0;
	}
  /*追加*/
  div.dataarea{
    width: 525px !important;
  }
  div.footerlogo.ssp,
  div.dataarea.ssp_data{
    margin-top: 2rem;
  }
  div.dataarea dl dt{
    text-align: left;
    padding-left: 12px;
    box-sizing: border-box;
  }
  footer div.footer div.dataarea dl dt svg{
    max-height: 28px !important;
  }
  div.dataarea.ssp_data dl dt{
    font-size: 18px;
  }
}
@media (orientation: landscape) and (max-width:568px){
	/*----------------------------------------------------
	** pagetop button
	**----------------------------------------------------*/
	div.scrollbtnwrap{
		height:0;
	}
	div.scrollbtnwrap.right{
		right:0;
		transform:rotate(-90deg);
		transform-origin:right bottom;
	}
	div.scrollbtnwrap.left{
		left:0;
		transform:rotate(90deg);
		transform-origin:left bottom;
	}
	div.pagetopbtn{
		height:30px;
		line-height:30px;
		margin-bottom:6px;
		top:50vh;
		background-size:contain;
		transform:translateY(0);
		margin:0 3px;
	}
	.pagetopbtn.right{
		padding:0 30px 0 12px;
		background-position:right center;
	}
	.pagetopbtn.left{
		padding:0 12px 0 30px;
		background-position:left center;
	}
	.scrollup .active .pagetopbtn{
		transform:translateY(calc( -100% - 6px ));
	}
  /*追加*/
  div.dataarea{
    width: 441px !important;
  }
  div.footerlogo.ssp,
  div.dataarea.ssp_data{
    margin-top: 2rem;
  }
  div.dataarea dl dt{
    text-align: left;
    padding-left: 12px;
    box-sizing: border-box;
  }
  footer div.footer div.dataarea dl dt svg{
    max-height: 26px !important;
  }
  div.dataarea.ssp_data dl dt{
    font-size: 16px;
  }
}
@media (orientation: landscape) and (min-width:569px) and (max-width:724px){
	/*----------------------------------------------------
	** drawer menu
	**----------------------------------------------------*/
	div.drawermenu{
		width:320px;
		height:100vh;
		top:0;
		transform:translate3d(0,100%,0);
	}
	div.drawermenu[tb="left"]{
		border-radius:0 10px 10px 0;
		transform:translate3d(-100%,0,0);
	}
	div.drawermenu[tb="right"]{
		right:0;
		border-radius:10px 0 0 10px;
		transform:translate3d(100%,0,0);
	}
	div.drawermenu.active{
		transform:translate3d(0,0,0);
	}
	.drawermenu div.header div.title{
		border-radius:10px 10px 0 0;
	}
	.drawermenu > div.inner{
		width:320px;
		height:100vh;
	}
	/*----------------------------------------------------
	** pagetop button
	**----------------------------------------------------*/
	div.scrollbtnwrap{
		height:0;
		top:auto !important;
		bottom:15vw;
		transform:rotate(0) !important;
		opacity:1;
		z-index:9000;
	}
	div.scrollbtnwrap.right div.contentstopbtn,
	div.scrollbtnwrap.left div.pagetopbtn{
		display:none;
	}
	div.scrollbtnwrap.right div.pagetopbtn{
		transform:translate(calc( 100% + 3px ),-100%);
		padding:0 12px 0 30px;
		background-position:left center;
	}
	div.scrollbtnwrap.left div.contentstopbtn{
		transform:translate(calc( -100% - 3px ),-100%);
		padding: 0 30px 0 12px;
		background-position:right center;
	}
	.scrollup div.scrollbtnwrap.right div.pagetopbtn,
	.scrollup div.scrollbtnwrap.left div.contentstopbtn{
		transform:translate(0,-100%);
	}
	/*----------------------------------------------------
	** footer
	**----------------------------------------------------*/
	footer div.footer div.footerlogo{
		width:80px;
	}
}
@media (orientation: landscape) and (min-width:725px) and (max-width:1099px){
	/*----------------------------------------------------
	** column setting
	**----------------------------------------------------*/
	div.columnwrap[item-num="2"]{
		flex-direction:row;
	}
	div.columnwrap[item-num="2"] main.maincolumn,
	div.columnwrap[item-num="2"] div.sidecolumn.type_right,
	div.columnwrap[item-num="2"] div.sidecolumn.type_left{
		order:0;
	}
	div.columnwrap > :first-of-type:last-of-type{
		width:100%;
	}
	div.columnwrap > :first-of-type:nth-last-child(2),
	div.columnwrap > :first-of-type:nth-last-child(2)~ main.maincolumn{
		width:calc( 100% - 320px );
	}
	div.columnwrap > :first-of-type:nth-last-child(2):not(.maincolumn),
	div.columnwrap > :first-of-type:nth-last-child(2) ~ div.sidecolumn.type_right{
		width:320px;
	}
	div.columnwrap > :first-of-type:nth-last-child(2):not(.maincolumn),
	div.columnwrap > :first-of-type:nth-last-child(2) ~ div.sidecolumn.type_left{
		width:320px;
	}
	div.columnwrap[item-num="2"] > div.sidecolumn > div.columninner{
		position:sticky;
		top:70px;
	}
	div.columnwrap[item-num="3"] main.maincolumn,
	div.columnwrap[item-num="3"] div.sidecolumn.type_right,
	div.columnwrap[item-num="3"] div.sidecolumn.type_left{
		order:initial;
	}
	/*----------------------------------------------------
	** footer
	**----------------------------------------------------*/
	footer div.footer div.footerlogo{
		width:80px;
	}
  /*追加*/
  div.dataarea{
    width: 345px !important;
  }
  div.footerlogo.ssp,
  div.dataarea.ssp_data{
    margin-top: 2rem;
  }
  div.footerlogo.ssp{
    margin-left: 1rem;
  }
  div.dataarea dl dt{
    text-align: left;
    padding-left: 12px;
    box-sizing: border-box;
  }
  footer div.footer div.dataarea dl dt svg{
    max-height: 28px !important;
  }
  div.dataarea.ssp_data dl dt{
    font-size: 18px;
  }
}
@media screen and (min-width:1100px){
	/*----------------------------------------------------
	** overflowcheck
	**----------------------------------------------------*/
	[overflowcheck="over"][ad-pc="true"]{
		-ms-overflow-style:none;
		scrollbar-width:none;
		padding-bottom:8px;
		animation:overflowcheck 2s linear infinite;
	}
	[overflowcheck="over"][ad-pc="true"]::-webkit-scrollbar{
		display:none;
	}
	[overflowcheck="over"][ad-pc="true"]::after{
		content:'';
		display:block;
		width:100%;
		height:10px;
	}
	[overflowcheck="over"][ad-pc="true"] span.scrollnavi{
		display:flex;
	}
	.visible[overflowcheck="over"][ad-pc="true"] span.scrollnavi{
		animation:overflowscroll 2s forwards 1s ease-out;
	}
	/*----------------------------------------------------
	** column setting
	**----------------------------------------------------*/
	div.columnwrap[item-num="2"],
	div.columnwrap[item-num="3"]{
		display:flex;
	}
	div.columnwrap > :first-of-type:last-of-type{
		width:100%;
	}
	div.columnwrap > :first-of-type:nth-last-child(3):not(.sidecolumn),
	div.columnwrap > :first-of-type:nth-last-child(3)~ main.maincolumn{
		width:calc( 100% - 700px );
		margin-right:30px;
		margin-left:30px;
	}
	div.columnwrap > :first-of-type:nth-last-child(3),
	div.columnwrap > :first-of-type:nth-last-child(3) ~ div.sidecolumn{
		width:320px;
	}
	div.columnwrap > :first-of-type:nth-last-child(2),
	div.columnwrap > :first-of-type:nth-last-child(2)~ main.maincolumn{
		width:calc( 100% - 350px );
		margin-right:auto;
		margin-left:0;
	}
	div.columnwrap > :first-of-type:nth-last-child(2),
	div.columnwrap > :first-of-type:nth-last-child(2)~ div.sidecolumn + main.maincolumn{
		margin-right:0;
		margin-left:auto;
	}
	div.columnwrap > :first-of-type:nth-last-child(2):not(.maincolumn),
	div.columnwrap > :first-of-type:nth-last-child(2) ~ div.sidecolumn.type_right{
		width:320px;
		margin-right:auto;
		margin-left:30px;
	}
	div.columnwrap > :first-of-type:nth-last-child(2):not(.maincolumn),
	div.columnwrap > :first-of-type:nth-last-child(2) ~ div.sidecolumn.type_left{
		width:320px;
		margin-right:30px;
		margin-left:auto;
	}
	div.columnwrap[item-num="2"] > div.sidecolumn > div.columninner,
	div.columnwrap[item-num="3"] > div.sidecolumn > div.columninner{
		position:sticky;
		top:100px;
	}
	body.ie div.columnwrap[item-num="2"] > div.sidecolumn,
	body.ie div.columnwrap[item-num="3"] > div.sidecolumn{
		position:relative;
		z-index:1;
	}
	body.ie div.columnwrap[item-num="2"] > div.sidecolumn.bottomlock > div.columninner,
	body.ie div.columnwrap[item-num="3"] > div.sidecolumn.bottomlock > div.columninner{
		width:320px !important;
		position:absolute !important;
		top:auto !important;
		left:0 !important;
		bottom:0 !important;
	}
	body.ie div.columnwrap > div.sidecolumn span.adjustmentblock{
		position:absolute;
		z-index:-1;
		bottom:0;
		left:0;
		width:100%;
	}
	div.columnwrap > div.sidecolumn > div.columninner{
		width:320px;
	}
	div.columnwrap > div.sidecolumn.type_left{
		order:1;
	}
	div.columnwrap > main.maincolumn{
		order:2;
	}
	div.columnwrap > div.sidecolumn.type_right{
		order:3;
	}
	/*----------------------------------------------------
	** header
	**----------------------------------------------------*/
	body.ie.menuopen.scroll header{
		top:22px;
		border-radius:10px 10px 0 0;
	}
	header div.header{
		margin:0 auto;
	}
	/* menubtn */
	header .menubtn{
		width:40px;
		height:40px;
	}
	header .menubtn::before,
	.drawermenu div.header div.drawerclosebtn.icon span::before{
		transform:translateX(-50%) scale(0.5);
		font-size:18px;
	}
	header .menubtn[pc="right"]{
		float:right;
	}
	header .menubtn[pc="left"]{
		float:left;
	}
	/*----------------------------------------------------
	** drawer menu
	**----------------------------------------------------*/
	div.drawermenu{
		width:375px;
		height:calc( 100vh - 52px );
		top:26px;
		transform:translate3d(0,100%,0);
	}
	div.drawermenu[pc="left"]{
		border-radius:0 10px 10px 0;
		transform:translate3d(-100%,0,0);
	}
	div.drawermenu[pc="right"]{
		right:0;
		border-radius:10px 0 0 10px;
		transform:translate3d(100%,0,0);
	}
	div.drawermenu.active{
		transform:translate3d(0,0,0);
	}
	.drawermenu div.header div.title{
		border-radius:10px 10px 0 0;
	}
	.drawermenu > div.inner{
		width:375px;
		height:calc( 100vh - 52px );
	}
	[index-wrap]:not([index-wrap*="pc"]) [swipemenu-num="2"],
	.swipemenubtn[indexviewtype]:not([indexviewtype*="pc"]),
	.indexmenu:not([indexviewtype*="pc"]){
		display:none;
	}
	/*----------------------------------------------------
	** pagetop button
	**----------------------------------------------------*/
	div.scrollbtnwrap{
		top:auto !important;
		bottom:60px;
		height:0;
		opacity:1;
	}
	div.scrollbtnwrap.right{
		right:calc(( 100vw - 1100px ) / 2 );
	}
	div.scrollbtnwrap.left{
		left:calc(( 100vw - 1100px ) / 2 );
	}
	div.scrollbtnwrap.left div.pagetopbtn,
	div.scrollbtnwrap.right div.contentstopbtn{
		display:none;
	}
	div.scrollbtnwrap.right div.pagetopbtn,
	div.scrollbtnwrap.left div.contentstopbtn{
		width:80px;
		height:80px;
		padding-top:20px;
		line-height:60px;
		background-size:50px;
		margin:0 5px;
		text-align:center;
		background-position:center 5px;
		opacity:0;
		border-radius:40px;
		font-size:14px;
		box-sizing:border-box;
		transform:translateY(60px);
		position:relative;
		z-index:1;
	}
	div.scrollbtnwrap.right div.pagetopbtn::after,
	div.scrollbtnwrap.left div.contentstopbtn::after{
		content:'';
		display:block;
		width:100%;
		height:100%;
		position:absolute;
		top:0;
		left:0;
		z-index:-1;
		border-radius:50%;
		transform-origin:center center;
		opacity:0;
		box-sizing:border-box;
		border:solid 1px;
	}
	div.scrollbtnwrap.left div.contentstopbtn::before{
		content:'CONTENTS TOP';
		width:90%;
		white-space:normal;
		line-height:1em;
		display:block;
		padding-top:22px;
		font-family:'Oswald';
		font-weight:300;
		margin:0 auto;
	}
	.scrollup div.scrollbtnwrap.right div.pagetopbtn:hover::after,
	.scrollup div.scrollbtnwrap.left div.contentstopbtn:hover::after{
		animation:pagetophover 0.6s linear infinite;
	}
	.scrollup div.scrollbtnwrap.right div.pagetopbtn,
	.scrollup div.scrollbtnwrap.left div.contentstopbtn{
		transform:translateY(-100%);
		opacity:1;
	}
	/*----------------------------------------------------
	** footer
	**----------------------------------------------------*/
	footer{
		text-align:center;
	}
	footer div.footer{
		padding-top:80px;
		margin:0 auto;
	}
	footer div.footer[content-count="3"]{
		justify-content:space-between;
	}
	footer div.footer div.footerlogo{
		width:120px;
	}
	footer div.footer div.dataarea dl{
		padding:6px;
	}
	footer div.footer div.dataarea dl dt{
		padding-bottom:6px;
	}
	footer div.footer div.dataarea dl dt svg{
		max-height:30px;
	}
	footer div.footer div.dataarea dl dd{
		padding:0 12px;
	}
	footer div.footer div.dataarea dl dd p.tel,
	footer div.footer div.dataarea dl dd p.mail{
		padding-left:30px;
		line-height:30px;
		background-size:30px 30px;
	}
	footer div.footer div.dataarea dl dd address{
		margin-top:12px;
		padding-left:30px;
		line-height:30px;
		background-size:30px 30px;
	}
	footer div.footer div.dataarea dl dd p{
		margin-top:6px;
	}
	footer div.bottomblock{
		width:1100px;
		margin:0 auto;
		display:flex;
		justify-content:space-between;
		align-items:center;
		padding:40px 0;
	}
	footer div.footerlinks a{
		margin:0 6px;
	}
	footer div.footerlinks a + a::before{
		padding-right:12px;
	}
	footer div.snsarea a{
		margin:0 6px;
	}
	footer div.copyright a{
		line-height:30px;
	}
	/*----------------------------------------------------
	** pageheader
	**----------------------------------------------------*/
	body.ie #pageheader figure img{
		font-family:'object-fit: cover; object-position:center center;';
	}
	body.ie #pageheader div.video{
		overflow:hidden;
	}
	body.ie #pageheader div.video video{
		position:relative;
		z-index:1;
		top:50px;
		left:50%;
		transform:translate(-50%,-50%);
	}
  /*追加*/
  div.dataarea.ssp_data{
    width: 400px !important;
  }
  div.footerlogo.ssp{
    margin-left: 2rem;
  }
  div.dataarea dl dt{
    text-align: left;
    padding-left: 12px;
    box-sizing: border-box;
  }
  footer div.footer div.dataarea dl dt svg{
    max-height: 28px !important;
  }
  div.dataarea.ssp_data dl dt{
    font-size: 18px;
    padding-bottom: 0 !important;
  }
}