@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;
}
@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: 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;
	}
	/*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{
		width: 100%;
		position: relative;
		padding: 0 1.5vw 0 1.5vw;
		margin:0;
		z-index: 10;
	}
	footer .footer{
		width: 100%;
	}
	footer .footer .logo{
		display: block;
	}
	footer .footer .logo a{
		display: block;
		width: 246px;
	}
	footer .footer .logo img{
		width: 100%;
	}
	footer .footer .menu{
		display: flex;
		flex-wrap: wrap;
		width: 100%;
		border-top: solid 1px #aaaaaa;
		border-bottom: solid 1px #aaaaaa;
		padding: 10px 0 10px 0;
	}
	footer .footer .menu a{
		width: 50%;
		font-size: 12px;
		font-weight: bold;
		display: inline-block;
		padding: 10px 3vw 10px 3vw;
		margin: 0;
		background-color: transparent;
		transition: background-color 0.2s;
	}
	footer .footer .menu a:hover{
		background-color: #ececec;
	}
	footer .footer .copy{
		display: block;
	}
	footer .footer .copy p{
		width: 100%;
		font-size: 12px;
		text-align: center;
		padding: 15px 0 15px 0;
	}
	footer .backtotop{
		width: 100%;
		padding: 0 3vw 0 3vw;
		position: relative;
		text-align: center;
		cursor: pointer;
		z-index: 40;
	}
	footer .backtotop span{
		display: inline-block;
		margin: 20px 0 20px 0;
		font-size: 14px;
	}
	footer .backtotop span::after{
		content: " ";
		display: inline-block;
        width: 16px;
        height: 16px;
		transform-origin: 50% 50%;
		transform: rotate(-90deg);
		background: url(/common/img/ar.png) no-repeat center center;
		background-size: 100% auto;
		background-position: center center;
		position: relative;
		top: 3px;
		margin: 0 0 0 10px;
	}
}

@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;
		width: 222px;
		height: 100%;
		margin: 0 0 0 1.5vw;
	}
	header .header .logo a{
		display: block;
	}
	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 0.3vw;
	}
	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: 16px;
		padding: 15px 1.5vw 15px 1.5vw;
		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: 16px;
		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-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 1.5vw 0 1.5vw;
		margin: 0;
	}
	footer .footer{
		width: 100%;
	}
	footer .footer .logo{
		display: block;
	}
	footer .footer .logo a{
		display: block;
		width: 222px;
	}
	footer .footer .logo img{
		width: 100%;
	}
	footer .footer .menu{
		display: flex;
		justify-content: center;
		width: 100%;
		border-top: solid 1px #aaaaaa;
		border-bottom: solid 1px #aaaaaa;
	}
	footer .footer .menu a{
		font-size: 16px;
		font-weight: bold;
		display: inline-block;
		padding: 15px 1.5vw 15px 1.5vw;
		margin: 0 0.5vw 0 0.5vw;
		background-color: transparent;
		transition: background-color 0.2s;
	}
	footer .footer .menu a:hover{
		background-color: #ececec;
	}
	footer .footer .copy{
		display: block;
	}
	footer .footer .copy p{
		width: 100%;
		font-size: 12px;
		text-align: center;
		padding: 15px 0 15px 0;
	}
	footer .backtotop{
		display: inline-block;
		position: absolute;
		bottom: calc(100% + 3vw);
	    right: -1.2vw;
		transform-origin: 50% 50%;
		transform: rotate(-90deg);
		cursor: pointer;
	}
	footer .backtotop span{
		display: inline-block;
		font-size: 0.8vw;
		position: relative;
	}
	footer .backtotop span::after{
		content: " ";
		display: inline-block;
        width: 0.8vw;
        height: 0.8vw;
		transform-origin: 50% 50%;
		transform: rotate(0deg);
		background: url(/common/img/ar.png) no-repeat center center;
		background-size: 100% auto;
		background-position: center center;
		position: relative;
		left: 0.6vw;
		top: 0.15vw;
	}
}

@media screen and (min-width: 1501px){
	header{
		width: 100%;
		height: 100px;
		position: fixed;
		top: 0;
		left: 0;
		background-color: #fff;
		/*background-color: red;*/
	}
	header .header .logo{
		height: 100%;
		width: 370px;
		display: flex;
		margin: 0 0 0 3vw;
	}
	header .header .menu{
		display: flex!important;
		width: 100%;
        height: 100%;
		justify-content: flex-end;
		margin: 0 3vw 0 0;
	}
	header .header .menu > ul > li > a > span{
		font-size: 20px;
		padding: 15px 1.6vw 15px 1.6vw;
		transition: background-color 0.2s;
	}
	header .header .menu > .other > a > span{
		font-size: 20px;
		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 > 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{
		width: 100%;
		position: relative;
		padding: 0 3vw 0 3vw;
		margin: 0;
		z-index: 10;
	}
	footer .footer .logo a{
		display: block;
		width: 410px;
	}
	footer .footer .menu a{
		font-size: 18px;
		font-weight: bold;
		display: inline-block;
		padding: 20px 1.6vw 20px 1.6vw;
		margin: 10px 0.6vw 10px 0.6vw;
		background-color: transparent;
		transition: background-color 0.2s;
	}
	footer .footer .copy p{
		width: 100%;
		font-size: 14px;
		text-align: center;
		padding: 30px 0 30px 0;
	}
}
@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;
	}
}
