@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1:wght@100..900&display=swap');

*,
*::before,
*::after {
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
	color: #000;
}
*{
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "webfont", "メイリオ", sans-serif;
	line-height: 1.7em;
	word-wrap:break-word;
	overflow-wrap:break-word;
}
@media all and (-ms-high-contrast:none) {
	* {
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "webfont", "メイリオ", sans-serif;
	}
}

.montserrat {
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}
.montserrat.thin { font-weight: 100; }
.montserrat.extralight { font-weight: 200; }
.montserrat.light { font-weight: 300; }
.montserrat.regular { font-weight: 400; }
.montserrat.medium { font-weight: 500; }
.montserrat.semibold { font-weight: 600; }
.montserrat.bold { font-weight: 700; }
.montserrat.extrabold { font-weight: 800; }
.montserrat.black { font-weight: 900; }

.m-plus-1 {
  font-family: "M PLUS 1", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}
.m-plus-1.thin { font-weight: 100; }
.m-plus-1.extralight { font-weight: 200; }
.m-plus-1.light { font-weight: 300; }
.m-plus-1.regular { font-weight: 400; }
.m-plus-1.medium { font-weight: 500; }
.m-plus-1.semibold { font-weight: 600; }
.m-plus-1.bold { font-weight: 700; }
.m-plus-1.extrabold { font-weight: 800; }
.m-plus-1.black { font-weight: 900; }


html, a, abbr, acronym, address, applet, article, aside, 
audio, b, big, blockquote, body, center, canvas, caption, 
cite, code, dd, del, details, dfn, div, dl, dt, em, fieldset, 
figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, 
header, hgroup, i, iframe, img, ins, kbd, label, legend, 
li, mark, menu, nav, object, ol, p, pre, q, s, samp, small, 
section, span, strike, strong, sub, summary, sup, table, 
tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

html{
    overflow-y: scroll;
}

body {
    /*line-height:1;*/
    -webkit-text-size-adjust: 100%;
	position: relative;
}

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;
}

a {
    margin:0;
    padding:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

a,
a:link,
a:visited{
    text-decoration:none;
    outline: none;
    -webkit-tap-highlight-color:rgba(0,0,0,0);
}

/* change colours to suit your needs */
ins {
    background-color:#ff9;
    color:#000;
    text-decoration:none;
}

/* change colours to suit your needs */
mark {
    background-color:#ff9;
    color:#000; 
    font-style:italic;
    font-weight:bold;
}

del {
    text-decoration: line-through;
}

abbr[title], dfn[title] {
    border-bottom:1px dotted;
    cursor:help;
}

table {
    border-collapse:collapse;
    border-spacing:0;
}

/* change border colour to suit your needs */
hr {
    display:block;
    height:1px;
    border:0;   
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}

input, textarea, select {
    margin: 0;
    padding: 0;
}

caption, th{
    text-align: left;
}

button{
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
}
 
a:focus {
    outline:none;
}
 
.clearfix:after {
    content: "."; 
    display: block;
    clear: both;
    height: 0;
    visibility: hidden;
}
 
.clearfix {
    min-height: 1px;
}

@media screen and (max-width: 768px){
	footer{
		width: 100%;
		position: relative;
		z-index: 10;
		padding: 0;
		margin: 0;
	}
	footer .footer{
		width: 100%;
        padding: 24vw 0 0 0;
        overflow: hidden;
	}
	footer .footer .inner-content{
		width: 100%;
		position: relative;
	}
	footer .footer .inner-content .backtotop{
        justify-content: center;
        width: 26vw;
        height: 26vw;
        display: flex;
        font-size: 3.8vw;
        border-radius: 50%;
        background-color: #fff;
        border: solid 1px #000;
        position: absolute;
        top: -11vw;
        left: 50%;
        transform: translateX(-50%);
        z-index: 40;
        color: #000;
        align-items: center;
        flex-direction: column;
        padding: 1vw 0 0 0;
        cursor: pointer;
		text-align: center;
        transition: background-color 0.2s;
	}
	footer .footer .inner-content .backtotop > span{
		color: #000;
        line-height: 1.3em;
        transition: color 0.2s;
	}
	footer .footer .inner-content .backtotop .pc-space{
		display: none;
	}
	footer .footer .inner-content .backtotop::before{
		content: " ";
		display: inline-block;
        width: 3vw;
        height: 3.4vw;
		transform-origin: 50% 50%;
		background: url(/common/img/ar_vertical_rev.png) no-repeat center center;
		background-size: 100% auto;
		position: relative;
        margin: 0 0 0.6vw 0;
	}
	.notouch footer .footer .inner-content .backtotop:hover{
        background-color: #000;
	}
	.notouch footer .footer .inner-content .backtotop:hover > span{
        color: #fff;
	}
	.notouch footer .footer .inner-content .backtotop:hover::before{
		background: url(/common/img/ar_vertical_rev_w.png) no-repeat center center;
		background-size: 100% auto;
	}
	footer .footer .inner-content #footer_x5F_mask_x5F_sp{
        width: 100%;
        position: absolute;
        top: 0.5vw;
        left: 0;
        z-index: 20;
	}
	footer .footer .inner-content .inner{
		display: block;
		width: 100%;
		padding: 16vw 7vw 0 7vw!important;
		position: relative;
		z-index: 30;
	}
	footer .footer .inner-content .inner .logo{
		display: block;
        max-width: 500px!important;
        margin: 0 auto;
	}
	footer .footer .inner-content .inner .logo a{
		width: 100%;
		display: inline-block;
	}
	footer .footer .inner-content .inner .logo a h2{
		width: 100%;
		display: inline-block;
	}
	footer .footer .inner-content .inner .logo a h2 img{
        width: 100%;
        height: auto;
        position: relative;
        vertical-align: bottom;
	}
	footer .footer .inner-content .inner .menu{
		display: flex!important;
		width: 100%;
		justify-content: flex-end;
		margin: 3vw 0 0 0;
	}
	footer .footer .inner-content .inner .menu > ul{
		display: flex!important;
		flex-wrap: wrap!important;
        justify-content: space-around!important;
        align-items: center!important;
        height: 100%!important;
		width: 100%!important;
	}
	footer .footer .inner-content .inner .menu > ul > li{
		height: 100%;
		width: 50%!important;
		padding: 0!important;
		margin: 0!important;
        flex:initial!important;
        text-align: left!important;
        align-items: center;
		
	}
	footer .footer .inner-content .inner .menu > ul > li:nth-of-type(2n){
		text-align: right;
	}
	footer .footer .inner-content .inner .menu > ul > li > a{
		position: relative;
        display: block!important;
		text-align: left!important;
	}
	footer .footer .inner-content .inner .menu > ul > li > a > span{
		display: block;
        font-size: 2.6vw;
        color: #fff;
        padding: 2vw 0 2vw 0;
	}
	footer .footer .inner-content .inner .menu > ul > li:nth-of-type(2n) > a > span{
		text-align: right!important;
	}
	footer .footer .inner-content .copy{
		padding: 4vw 7vw 0 7vw;
		position: relative;
		z-index: 40;
	}
	footer .footer .inner-content .copy p{
		width: 100%;
        font-size: 2.6vw;
        text-align: center;
        color: #fff;
        padding: 5vw 0 5vw 0;
        border-top: solid 1px #aaaaaa;
	}
}

@media screen and (min-width: 769px){
	footer{
		width: 100%;
		position: relative;
		z-index: 10;
		padding: 0;
		margin: 0;
	}
	footer .footer{
		width: 100%;
        padding: 4.5vw 0 0 0;
        overflow: hidden;
	}
	footer .footer .inner-content{
		width: 100%;
		position: relative;
	}
	footer .footer .inner-content .backtotop{
        justify-content: center;
        width: 9vw;
        height: 9vw;
        display: flex;
		font-size: 1vw;
        border-radius: 50%;
        background-color: #fff;
        border: solid 1px #000;
        position: absolute;
        top: -4.5vw;
        left: 50%;
        transform: translateX(-50%);
        z-index: 40;
        color: #000;
        align-items: center;
        flex-direction: column;
		padding: 0;
		cursor: pointer;
        transition: background-color 0.2s;
	}
	footer .footer .inner-content .backtotop > span{
		color: #000;
        transition: color 0.2s;
	}
	footer .footer .inner-content .backtotop .pc-space{
		display: inline;
	}
	footer .footer .inner-content .backtotop::before{
		content: " ";
		display: inline-block;
		width: 1vw;
		height: 1.4vw;
		transform-origin: 50% 50%;
		background: url(/common/img/ar_vertical_rev.png) no-repeat center center;
		background-size: 100% auto;
		position: relative;
        margin: 0 0 0.6vw 0;
	}
	.notouch footer .footer .inner-content .backtotop:hover{
        background-color: #000;
	}
	.notouch footer .footer .inner-content .backtotop:hover > span{
        color: #fff;
	}
	.notouch footer .footer .inner-content .backtotop:hover::before{
		background: url(/common/img/ar_vertical_rev_w.png) no-repeat center center;
		background-size: 100% auto;
	}
	footer .footer .inner-content #footer_x5F_mask{
        width: 100%;
        position: absolute;
        top: 0.5vw;
        left: 0;
        z-index: 20;
	}
	footer .footer .inner-content .inner{
		display: block;
		width: 100%;
		padding: 10vw 1.5vw 0 1.5vw;
		position: relative;
		z-index: 30;
	}
	footer .footer .inner-content .inner .logo{
		display: inline-block;
	}
	footer .footer .inner-content .inner .logo a{
		width: 100%;
		display: inline-block;
	}
	footer .footer .inner-content .inner .logo a h2{
		width: 100%;
		display: inline-block;
	}
	footer .footer .inner-content .inner .logo a h2 img{
		width: auto;
		height: 60px;
		position: relative;
		vertical-align: bottom;
	}
	footer .footer .inner-content .inner .menu{
		display: flex!important;
		width: 100%;
		height: 60px;
		justify-content: flex-end;
		margin: 0;
	}
	footer .footer .inner-content .inner .menu > ul{
		display: flex;
        align-items: center;
        height: 100%;
	}
	footer .footer .inner-content .inner .menu > ul > li{
		height: 100%;
		padding: 0;
		margin: 0 1.5vw 0 1.5vw;
	}
	footer .footer .inner-content .inner .menu > ul > li:nth-of-type(1){
		margin-left: 0;
	}
	footer .footer .inner-content .inner .menu > ul > li:last-child{
		margin-right: 0;
	}
	footer .footer .inner-content .inner .menu > ul > li > a{
		text-align: center;
		position: relative;
        display: flex;
        align-items: center;
        height: 100%;
	}
	footer .footer .inner-content .inner .menu > ul > li > a > span{
		font-size: 12px;
		color: #fff;
		padding: 15px 0 15px 0;
	}
	footer .footer .inner-content .copy{
		padding: 1vw 1.5vw 0 1.5vw;
		position: relative;
		z-index: 40;
	}
	footer .footer .inner-content .copy p{
		width: 100%;
		font-size: 12px;
		text-align: center;
		color: #fff;
		padding: 20px 0 20px 0;
		border-top: solid 1px #aaaaaa;
	}
}

@media screen and (max-width: 1080px){
    .only-header-pc{
        display: none!important;
    }
    .only-header-sp{
        display: block!important;
    }
    html{
        min-width: 100%;
    }
    body{
        min-width: 100%;
    }
	header{
		width: 100%;
		height: 60px;
		position: fixed;
		top: 0;
		left: 0;
		background-color: #fff;
		z-index: 50;
	}
	header .header{
		width: 100%;
		height: 100%;
		display: flex;
	}
	header .header .logo{
		height: 100%;
		display: flex;
		margin: 0 0 0 1.5vw;
	}
	header .header .logo a{
		display: block;
	}
	header .header .logo a h1{
		height: 100%;
	}
	header .header .logo a img{
		width: auto;
		height: 100%;
	}
	header .header .menu{
		position: fixed;
        z-index: 100;
        display: none;
        width: 100%;
        height: calc(100% - 60px);
        top: 60px;
        left: 0;
        background-color: #fff;
        overflow-y: scroll;
	}
	header .header .menu > ul{
		width: calc(100% - 3vw);
		border-top: solid 1px #000;
		padding: 20px 0 0 0;
		margin: 0 auto;
	}
	header .header .menu > ul > li{
		width: 100%;
		padding: 10px 0 0 0; 
		margin: 0 0 10px 0;
	}
	header .header .menu > ul > li > a{
		display: block;
		background-color: transparent;
		text-align: left;
		font-size: 20px;
		line-height: 1.5em;
		font-weight: bold;
		position: relative;
		padding: 10px 11vw 10px 4vw;
		transition: background-color 0.2s;
	}
	.notouch header .header .menu > ul > li > a:hover{
		/*background-color: #ececec;*/
	}
	header .header .menu > ul > li > a::after{
		content: " ";
		display: block;
		width: 10vw;
		height: calc(100% - 20px);
		position: absolute;
		top: 10px;
		right: 0;
		border-left: solid 1px #aaaaaa;
		background: url(/common/img/ar_sp.png) no-repeat center center;
		background-size: 18px auto;
		background-position: 60% 50%;
	}
	header .header .menu > ul > li.megamenu{
		transition: background-color 0.2s;
	}
	header .header .menu > ul > li.megamenu.active{
		background-color: #ececec;
	}
	header .header .menu > ul > li.megamenu > a::after{
		display: none;
	}
	header .header .menu > ul > li.megamenu > a .submenu-btn{
		content: " ";
		display: block;
		width: 10vw;
		height: calc(100% - 20px);
		position: absolute;
		top: 10px;
		right: 0;
		border-left: solid 1px #aaaaaa;
	}
	header .header .menu > ul > li.megamenu > a .submenu-btn .button{
		display: flex;
		height: 100%;
		align-items: center;
	}
    header .header .menu > ul > li.megamenu > a .submenu-btn .button span {
		display: block;
		position: absolute;
        left: calc(50% + 1px);
        top: 50%;
		width: 18px;
		height: 2px;
		background-color: #2e2e2e;
		overflow: hidden;
		text-indent: -9999px;
		opacity: 1;
        transform-origin: 0%;
		transform: translate(-50%, -50%);
		transition: opacity 0.2s;
    }
    header .header .menu > ul > li.megamenu > a .submenu-btn .button::before {
        content: "";
        display: block;
        position: absolute;
        top: calc(50% - 1px);
        left: 50%;
        width: 18px;
        height: 2px;
        background-color: #2e2e2e;
        transform-origin: 0%;
        transform: rotate(90deg) translate(-50%, -50%);
		opacity: 1;
        transition: transform 0.2s, opacity 0.2s;
    }
    header .header .menu > ul > li.megamenu.active > a .submenu-btn .button::before {
        left: calc(50% + 1px);
        top: 50%;
		width: 18px;
		height: 2px;
		opacity: 0;
        transform: rotate(0deg) translate(-50%, -50%);
	}
	/*submenu*/
	header .header .menu > ul > li.megamenu .submenu{
		width: 100%;
        display: none;
		height: auto;
	}
	header .header .menu > ul > li.megamenu .submenu .submenu-inner{
		width: 100%;
		padding: 0 0 10px 0;
	}
	header .header .menu > ul > li.megamenu .submenu .submenu-inner > ul{
		width: 100%;
	}
	header .header .menu > ul > li.megamenu .submenu .submenu-inner > ul > li{
		width: 100%;
	}
	header .header .menu > ul > li.megamenu .submenu .submenu-inner > ul > li > a{
		display: block;
		background-color: transparent;
		text-align: left;
		font-size: 16px;
		line-height: 1.5em;
		font-weight: bold;
		position: relative;
		padding: 10px 11vw 10px 4vw;
		transition: background-color 0.2s;
	}
	header .header .menu > ul > li.megamenu .submenu .submenu-inner > ul > li > a span{
		display: block;
		font-size: 12px;
	}
	header .header .menu > .other{
		display: block;
		width: 100%;
		margin: 20px 0 40px 0;
	}
	header .header .menu > .other > a{
		display: block;
		width: 70%;
		margin: 0 auto;
	}
	header .header .menu > .other > a > span{
		display: block;
		width: 100%;
		text-align: center;
		font-size: 20px;
		padding: 3px 1.4vw 3px 1.4vw;
		border-radius: 5px;
		border: solid 1px #000;
		transition: background-color 0.2s, color 0.2s;
	}
	.notouch header .header .menu > .other > a:hover > span{
		background-color: #000;
		color: #fff;
	}
	header .header .menu > .lang{
		display: block;
		width: 100%;
		text-align: center;
		padding: 0 0 0 1.6vw;
		margin: 0 0 60px 0;
	}
	header .header .menu > .lang > ul{
		list-style: none;
		font-size: 0;
		width: 100%;
        text-align: center;
	}
	header .header .menu > .lang > ul li{
        display: inline-block;
        padding: 0 10px 0 10px;
		border-left: solid 2px #c7c7c7;
	}
	header .header .menu > .lang > ul li span{
		font-size: 16px;
        line-height: 1em;
        color: #000;
		position: relative;
	}
	header .header .menu > .lang > ul li span::after{
		display: block;
		content: "";
		width: 100%;
		height: 2px;
		background-color: #000;
		position: absolute;
		bottom: -4px;
		left: 0;
	}
	header .header .menu > .lang > ul li:first-of-type{
        padding: 0 10px 0 0;
		border: none;
	}
	header .header .menu > .lang > ul li:last-of-type{
        padding: 0 0 0 10px;
	}
	header .header .menu > .lang > ul li a{
		font-size: 16px;
        line-height: 1em;
		color: #c7c7c7;
		position: relative;
		transition: color 0.2s;
	}
	.notouch header .header .menu > .lang > ul li a:hover{
		color: #000;
	}
	/*SP MENU*/
	header .header .menu-btn{
		width: 60px;
		height: 100%;
		position: absolute;
		top: 0;
		right: 0;
		margin: 0 1.5vw 0 0;
	}
	header .header .menu-btn .button{
		display: flex;
		height: 100%;
		align-items: center;
	}
    header .header .menu-btn .button span {
		display: block;
		position: absolute;
		left: 50%;
		top: 35%;
		width: 30px;
		height: 2px;
		background-color: #2e2e2e;
		overflow: hidden;
		text-indent: -9999px;
		opacity: 1;
        transform-origin: 0%;
		transform: translate(-50%, -50%);
		transition: opacity 0.2s;
    }
    header .header .menu-btn .button::before {
        content: "";
        display: block;
        position: absolute;
		top: 50%;
		left: 50%;
        width: 30px;
        height: 2px;
        background-color: #2e2e2e;
        transform-origin: 0%;
        transform: rotate(0) translate(-50%, -50%);
        transition: transform 0.2s;
    }
    header .header .menu-btn .button::after {
        content: "";
        display: block;
        position: absolute;
		left: 50%;
		top: 65%;
        width: 30px;
        height: 2px;
        background-color: #2e2e2e;
        transform-origin: 0% 100%;
        transform: rotate(0) translate(-50%, -50%);
        transition: transform 0.2s;
    }
	header .header .menu-btn.active .button::before{
		left: 52%;
		top: 49%;
        transform: rotate(-45deg) translate(-50%, -50%);
	}
	header .header .menu-btn.active .button::after{
		left: 49%;
		top: 49%;
        transform: rotate(45deg) translate(-50%, -50%);
	}
    header .header .menu-btn.active .button span {
		opacity: 0;
	}
	main{
		width: 100%;
		position: relative;
		z-index: 10;
		padding: 60px 0 0 0;
	}
	footer .footer .inner-content .inner{
		display: block;
		width: 100%;
		padding: 10vw 1.5vw 0 1.5vw;
		position: relative;
		z-index: 30;
	}
    footer .footer .inner-content .inner .menu {
        display: flex !important;
        width: 100%;
	}
    footer .footer .inner-content .inner .menu > ul {
        display: flex;
        align-items: center;
        height: 100%;
        width: 100%;
    }
    footer .footer .inner-content .inner .menu > ul > li {
        height: 100%;
        padding: 0;
        margin: 0 1.5vw 0 1.5vw;
        flex: auto;
        width: 100%;
        text-align: center;
        align-items: center;
    }
    footer .footer .inner-content .inner .menu > ul > li > a {
        text-align: center;
        position: relative;
        display: flex;
        align-items: center;
        height: 100%;
        justify-content: center;
    }
}

@media screen and (min-width: 1081px){
    .only-header-pc{
        display:block;
    }
    .only-header-sp{
        display:none;
    }
    html{
    }
    body{
    }
	header{
		width: 100%;
		height: 60px;
		position: fixed;
		top: 0;
		left: 0;
		background-color: #fff;
		z-index: 50;
	}
	header .header{
		display: flex;
		width: 100%;
		height: 100%;
	}
	header .header .logo{
		display: flex;
		height: 100%;
		margin: 0 0 0 1.5vw;
	}
	header .header .logo a{
		display: block;
		width: 246px;
	}
	header .header .logo a h1{
		display: inline-block;
		height: 100%;
	}
	header .header .logo a img{
		width: auto;
		height: 100%;
	}
	header .header .menu{
		display: flex!important;
		width: 100%;
        height: 100%;
		justify-content: flex-end;
		margin: 0 1.5vw 0 0;
	}
	header .header .menu > ul{
		display: flex;
        align-items: center;
        height: 100%;
	}
	header .header .menu > ul > li{
		height: 100%;
		padding: 0;
	}
	header .header .menu > ul > li > a{
		text-align: center;
		position: relative;
        display: flex;
        align-items: center;
        height: 100%;
	}
	header .header .menu > ul > li > a > span{
		font-size: 15px;
		padding: 15px 1vw 15px 1vw;
		transition: background-color 0.2s;
	}
	.notouch header .header .menu > ul > li > a:hover span{
		background-color: #ececec;
	}
	header .header .menu > ul > li.active > a span{
		background-color: #ececec;
	}
	header .header .menu > ul > li > a > .submenu-btn{
		display: none;
	}
	/*submenu*/
	header .header .menu > ul > li .submenu{
		position: absolute;
		z-index: 100;
		width: 100%;
		top: 100%;
		left: 0;
		padding: 0 0 30px 0;
		background-color: #fff;
		overflow: hidden;
		display: none;
	}
	header .header .menu > ul > li .submenu .submenu-inner{
		width: calc(100% - 3vw);
		border-top: solid 1px #000;
		margin: 0 auto;
	}
	header .header .menu > ul > li .submenu .submenu-inner > ul{
		display: flex;
		flex-wrap: wrap;
	}
	header .header .menu > ul > li .submenu .submenu-inner > ul > li{
		position: relative;
		text-align: center;
		width: calc((100% - 6vw) / 2);
		margin: 20px 1.5vw 0 1.5vw;
	}
	header .header .menu > ul > li .submenu .submenu-inner > ul > li > a{
		display: block;
		background-color: transparent;
		text-align: left;
		font-size: max(1.4vw, 18px);
		line-height: 1.5em;
		font-weight: bold;
		position: relative;
		z-index: 50;
		padding: 10px 7vw 10px 1.5vw;
		transition: background-color 0.2s;
	}
	header .header .menu > ul > li .submenu .submenu-inner > ul > li > a span{
		display: block;
		font-size: max(1.0vw, 14px);
		line-height: 1.5em;
	}
	.notouch header .header .menu > ul > li .submenu .submenu-inner > ul > li > a:hover{
		background-color: #ececec;
	}
	header .header .menu > ul > li .submenu .submenu-inner > ul > li > a::after{
		content: " ";
		display: block;
		width: 6vw;
		height: calc(100% - 20px);
		position: absolute;
		top: 10px;
		right: 0;
		border-left: solid 1px #aaaaaa;
		background: url(/common/img/ar.png) no-repeat center center;
		background-size: 16px auto;
		background-position: center center;
	}
	header .header .menu > .other{
		display: flex;
	}
	header .header .menu > .other > a{
		display: flex;
        align-items: center;
        height: 100%;
		margin: 0 0 0 1vw;
	}
	header .header .menu > .other > a > span{
		font-size: 15px;
		padding: 0 1.4vw 0 1.4vw;
		border-radius: 5px;
		border: solid 1px #000;
		transition: background-color 0.2s, color 0.2s;
	}
	.notouch header .header .menu > .other > a:hover > span{
		background-color: #000;
		color: #fff;
	}
	header .header .menu > .lang{
		display: flex;
        align-items: center;
		padding: 0 0 0 1.6vw;
	}
	header .header .menu > .lang > ul{
		list-style: none;
		font-size: 0;
	}
	header .header .menu > .lang > ul li{
        display: inline-block;
        padding: 0 8px 0 8px;
		border-left: solid 2px #c7c7c7;
	}
	header .header .menu > .lang > ul li span{
		font-size: 15px;
        line-height: 1em;
        color: #000;
		position: relative;
	}
	header .header .menu > .lang > ul li span::after{
		display: block;
		content: "";
		width: 100%;
		height: 2px;
		background-color: #000;
		position: absolute;
		bottom: -4px;
		left: 0;
	}
	header .header .menu > .lang > ul li:first-of-type{
        padding: 0 8px 0 0;
		border: none;
	}
	header .header .menu > .lang > ul li:last-of-type{
        padding: 0 0 0 8px;
	}
	header .header .menu > .lang > ul li a{
		font-size: 15px;
        line-height: 1em;
		color: #c7c7c7;
		position: relative;
		transition: color 0.2s;
	}
	.notouch header .header .menu > .lang > ul li a:hover{
		color: #000;
	}
	header .header .menu-btn{
		display: none;
	}
	main{
		width: 100%;
		position: relative;
		z-index: 10;
		padding: 60px 0 0 0;
	}
	footer{
		width: 100%;
		position: relative;
		z-index: 10;
		padding: 0;
		margin: 0;
	}
	footer .footer{
		width: 100%;
        padding: 4.5vw 0 0 0;
        overflow: hidden;
	}
	footer .footer .inner-content{
		width: 100%;
		position: relative;
	}
	footer .footer .inner-content .backtotop{
        justify-content: center;
        width: 8vw;
        height: 8vw;
        display: flex;
		font-size: 1vw;
        border-radius: 50%;
        background-color: #fff;
        border: solid 1px #000;
        position: absolute;
        top: -4vw;
        left: 50%;
        transform: translateX(-50%);
        z-index: 40;
        color: #000;
        align-items: center;
        flex-direction: column;
		padding: 0;
		cursor: pointer;
        transition: background-color 0.2s;
	}
	footer .footer .inner-content .backtotop > span{
		color: #000;
        transition: color 0.2s;
	}
	footer .footer .inner-content .backtotop .pc-space{
		display: inline;
	}
	footer .footer .inner-content .backtotop::before{
		content: " ";
		display: inline-block;
		width: 1vw;
		height: 1.4vw;
		transform-origin: 50% 50%;
		background: url(/common/img/ar_vertical_rev.png) no-repeat center center;
		background-size: 100% auto;
		position: relative;
        margin: 0 0 0.6vw 0;
	}
	.notouch footer .footer .inner-content .backtotop:hover{
        background-color: #000;
	}
	.notouch footer .footer .inner-content .backtotop:hover > span{
        color: #fff;
	}
	.notouch footer .footer .inner-content .backtotop:hover::before{
		background: url(/common/img/ar_vertical_rev_w.png) no-repeat center center;
		background-size: 100% auto;
	}
	footer .footer .inner-content #footer_x5F_mask{
        width: 100%;
        position: absolute;
        top: 0.5vw;
        left: 0;
        z-index: 20;
	}
	footer .footer .inner-content .inner{
		display: flex;
		width: 100%;
		padding: 10vw 1.5vw 0 1.5vw;
		position: relative;
		z-index: 30;
	}
	footer .footer .inner-content .inner .logo{
		display: inline-block;
	}
	footer .footer .inner-content .inner .logo a{
		width: 100%;
		display: inline-block;
	}
	footer .footer .inner-content .inner .logo a h2{
		width: 100%;
		display: inline-block;
	}
	footer .footer .inner-content .inner .logo a h2 img{
		width: auto;
		height: 60px;
		position: relative;
		vertical-align: bottom;
	}
	footer .footer .inner-content .inner .menu{
		display: flex!important;
		width: 100%;
		height: 60px;
		justify-content: flex-end;
		margin: 0;
	}
	footer .footer .inner-content .inner .menu > ul{
		display: flex;
        align-items: center;
        height: 100%;
	}
	footer .footer .inner-content .inner .menu > ul > li{
		height: 100%;
		padding: 0;
		margin: 0 1.5vw 0 1.5vw;
	}
	footer .footer .inner-content .inner .menu > ul > li:nth-of-type(1){
		margin-left: 0;
	}
	footer .footer .inner-content .inner .menu > ul > li:last-child{
		margin-right: 0;
	}
	footer .footer .inner-content .inner .menu > ul > li > a{
		text-align: center;
		position: relative;
        display: flex;
        align-items: center;
        height: 100%;
	}
	footer .footer .inner-content .inner .menu > ul > li > a > span{
		font-size: 14px;
		color: #fff;
		padding: 15px 0 15px 0;
	}
	footer .footer .inner-content .copy{
		padding: 1vw 1.5vw 0 1.5vw;
		position: relative;
		z-index: 40;
	}
	footer .footer .inner-content .copy p{
		width: 100%;
		font-size: 14px;
		text-align: center;
		color: #fff;
		padding: 30px 0 30px 0;
		border-top: solid 1px #aaaaaa;
	}
}

@media screen and (min-width: 1501px){
	header{
		width: 100%;
		height: 100px;
		position: fixed;
		top: 0;
		left: 0;
		background-color: #fff;
	}
	header .header .logo{
		height: 100%;
		display: flex;
		margin: 0 0 0 3vw;
		padding: 0.4vw 0 0.4vw 0;
	}
	header .header .logo a{
		width: auto;
	}
	header .header .menu{
		display: flex!important;
		width: 100%;
        height: 100%;
		justify-content: flex-end;
		margin: 0 3vw 0 0;
	}
    header .header .menu > ul > li {
        height: 100%;
        padding: 0;
    }
	header .header .menu > ul > li > a > span{
		font-size: 18px;
		padding: 15px 1.2vw 15px 1.2vw;
		transition: background-color 0.2s;
	}
	header .header .menu > .other > a > span{
		font-size: 18px;
		padding: 0 1.4vw 0 1.4vw;
		border-radius: 5px;
		border: solid 1px #000;
		transition: background-color 0.2s, color 0.2s;
	}
	header .header .menu > .lang > ul li a{
		font-size: 18px;
        line-height: 1em;
		color: #c7c7c7;
		position: relative;
		transition: color 0.2s;
	}
	.notouch header .header .menu > .lang > ul li a:hover{
		color: #000;
	}
	header .header .menu > .lang > ul li span{
		font-size: 18px;
        line-height: 1em;
        color: #000;
		position: relative;
	}
	header .header .menu > ul > li .submenu .submenu-inner{
		width: calc(100% - 6vw);
		border-top: solid 1px #000;
		margin: 0 auto;
	}
	header .header .menu > ul > li .submenu .submenu-inner > ul > li{
		text-align: center;
		width: calc((100% - 6vw) / 2);
		margin: 20px 1.5vw 0 1.5vw;
	}
	header .header .menu > ul > li .submenu .submenu-inner > ul > li > a{
		display: block;
		background-color: transparent;
		text-align: left;
		font-size: max(1.4vw, 18px);
		line-height: 1.5em;
		font-weight: bold;
		position: relative;
		padding: 10px 7vw 10px 1.5vw;
		transition: background-color 0.2s;
	}
	header .header .menu > ul > li .submenu .submenu-inner > ul > li > a span{
		display: block;
		font-size: max(1.0vw, 14px);
		line-height: 1.5em;
	}
	main{
		width: 100%;
		position: relative;
		z-index: 10;
		padding: 100px 0 0 0;
	}
	footer .footer .inner-content .inner{
		display: flex;
		width: 100%;
		padding: 10vw 3vw 0 3vw;
		position: relative;
		z-index: 30;
	}
	footer .footer .inner-content .inner .logo a h2 img{
		width: auto;
		height: 100px;
		position: relative;
		vertical-align: bottom;
	}
	footer .footer .inner-content .inner .menu{
		display: flex!important;
		width: 100%;
		height: 100px;
		justify-content: flex-end;
		margin: 0;
	}
	footer .footer .inner-content .inner .menu > ul > li > a > span{
		font-size: 16px;
		color: #fff;
		padding: 15px 0 15px 0;
	}
	footer .footer .inner-content .copy{
		padding: 1vw 3vw 0 3vw;
		position: relative;
		z-index: 40;
	}
}

@media screen and (max-width: 768px){
    .only-pc{
        display: none;
    }
    .only-sp{
        display: block;
    }
}

@media screen and (min-width: 769px){
    .only-pc{
        display: block;
    }
    .only-sp{
        display: none;
    }
	main{
		padding-bottom: 50px;
	}
}