@charset "utf-8";

*{
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	line-height: 1.7em;
}

@media all and (-ms-high-contrast:none) {
	* {
		font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	}
}

@media screen and (max-width: 768px) {
	main{
        display: block;
		padding:72px 0 0 0;
        position: relative;
	}
	header{
        width: 100%;
		position:fixed;
		z-index:9000;
	}
	header .menufr{
		width: 100%;
		position: fixed;
        top:-200%!important;
		z-index: 8500;
        left: 0;
        display: block;
        background-color:#fff;
        transition: top 0.4s,opacity 0.4s;
        opacity: 0;
        overflow: hidden;
        height: 0;
	}
    header .menufr .menuinner{
        position: relative;
        width: 100%;
        height: 100%;
        z-index: 8501;
    }
    header.active .menufr{
        top: 0%!important;
        height: 100vh;
        opacity: 1;
        position: fixed;
        transition: opacity 0.4s;
	}
	nav{
		width: 100%;
		height: 72px;
		pointer-events: none;
		position:fixed;
        z-index: 8000;
	}
	nav *{
		pointer-events: visible;
	}
    nav .navfr{
        width: 100%;
        height: 72px;
        margin:0 auto;
        position:fixed;
        left:0;
        right:0;
        background-color: #fff;
	}
    nav .navfr .nav .sp-head{
        height: 72px;
        width: 100%;
        background-color: #fff;
        position: relative;
        position:fixed;
        top:0;
        z-index: 9400;
    }
	nav .navfr .logofr{
		width: 100%;
		display: inline-block;
		height: 72px;
		position: fixed;
		z-index: 9001;
		top: 0;
		left: 0;
		background-color: #fff;
	}
	nav .navfr .logofr .logo{
        height: 100%;
        display: table;
		margin: 0 0 0 20px;
	}
	nav .navfr .logofr .logo a{
		display: table-cell;
		height: 100%;
        position: relative;
        vertical-align: middle;
	}
    nav .navfr .logofr .logo a img{
		height: 50px;
        vertical-align: bottom;
    }
    nav .nav{
        height: 100%;
    }
	nav .menufr .menu{
		width: 90%;
        height: calc(100% - 150px);
        padding:0 0 40px 0;
		margin:0 auto;
        top:120px;
        left:50%;
        transform: translateX(-50%);
		position:absolute;
        overflow: hidden;
		z-index:8000!important;
	}
    .mobile.yoko nav .menufr .menu{
        height: 60%;
        top:30%;
    }
	nav .menufr .menu .menuul{
		width: 100%;
		margin: 0;
		padding: 0;
		list-style: none;
	}
	nav .menufr .menu .menuul > li{
		width: 100%;
		position: relative;
	}
    nav .menutitlefr{
        position: relative;
    }
	nav .menufr .menu .menuul > li a.menutitle{
		display: block;
		padding:10px 0 10px 0;
		text-align: center;
	}
    nav .menufr .menu .menuul > li a.menutitle span{
        color:#323232;
        position: relative;
        display: inline-block;
        padding:0 0 0 0;
        font-size: 18px;
        font-weight: 600;
    }
	nav .menufr .menu .menuul > li a.menutitle span::after{
		content: "";
		width: 0%;
		height: 2px;
		background-color: #1e2380;
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
		transition: width 0.2s;
	}
	nav .menufr .menu .menuul > li a.menutitle:hover span::after{
		width: 100%;
	}
	.menu-triggerfr{
		width: 72px;
        height: 72px;
        position:fixed;
        float: right;
		right:0;
        top:0;
		z-index:9500;
        display: block;
        opacity: 1;
	}
	.menu-triggerfr.active{
        opacity: 1;
		z-index:9500;
	}
	.menu-triggerfr .menu-trigger,
	.menu-triggerfr .menu-trigger span {
		display: inline-block;
		transition: all .2s;
		box-sizing: border-box;
	}
	.menu-triggerfr .menu-trigger {
		position:absolute;
        left:50%;
        top:50%;
		-ms-transform: translate(-50%,-50%);
		-moz-transform: translate(-50%,-50%);
		-o-transform: translate(-50%,-50%);
		-webkit-transform: translate(-50%,-50%);
		transform: translate(-50%,-50%);
		width: 30px;
        height: 72px;
		z-index:9000;
		display:block;
	}
	.menu-triggerfr .menu-trigger span {
		position: absolute;
		left: 0;
		width: 100%;
		height: 2px;
        background-color: #1e2380!important;
	}
    .menu-triggerfr .menu-trigger span:nth-of-type(1) {
		top: 33%;
        opacity: 1;
	}
	.menu-triggerfr .menu-trigger span:nth-of-type(2) {
		top: 0;
		bottom:0;
		margin:auto;
        opacity: 1;
	}
	.menu-triggerfr .menu-trigger span:nth-of-type(3) {
		bottom: 33%;
        opacity: 1;
	}
    .menu-triggerfr.active .menu-trigger span:nth-of-type(1) {
		top: 48.5%;
        opacity: 1;
        left: -2px;
        transform: rotate(45deg);
        width: 35px;
	}
	.menu-triggerfr.active .menu-trigger span:nth-of-type(2) {
		top: 0;
		bottom:0;
        opacity: 0;
        left:200%;
	}
	.menu-triggerfr.active .menu-trigger span:nth-of-type(3) {
		bottom: 48.5%;
        opacity: 1;
        left: -2px;
        transform: rotate(-45deg);
        width: 35px;
	}
    nav .navfr .nav .menufr .btn-entry-wrap{
        height: 100%;
        width: 180px;
        display: block;
        position: relative;
        padding: 0 0 0 0;
        margin: 20px auto 20px auto;
    }
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry {
		background-color: #00873b;
        width: 100%;
		height: 40px;
        line-height: 1em;
        display: table;
		table-layout: fixed;
        border-radius: 30px;
        overflow: hidden;
        padding: 0;
        margin: 0;
    }
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry span.txt{
        font-size: 14px;
        color:#fff;
        width: 100%;
        display: table-cell;
		padding: 0 0 0 16px;
		vertical-align: middle;
		text-align: left;
        font-weight: 600;
        overflow: hidden;
    }
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry span.icon{
		width: 42px;
        display: table-cell;
		text-align: center;
		vertical-align: middle;
        overflow: hidden;
    }
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry span.icon span{
		display: inline-block;
        width: 34px;
		height: 34px;
		background-color: #fff;
		border-radius: 50%;
		overflow: hidden;
		vertical-align: middle;
	}
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry span.icon span img{
		width: 100%;
	}
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry:hover{
		background-color: #15a152;
        transition: background-color 0.4s;
    }
	footer{
		width: 100%;
		margin: 0;
		background-color: #1e2380;
	}
	footer #footer{
		display: block;
		width: 100%;
		margin: 0;
		padding: 0;
	}
	footer .footer-wrap{
		display: block;
		table-layout: fixed;
		width: 90%;
		margin: 0 auto;
		padding: 40px 0 40px 0;
		text-align: center;
		position: relative;
	}
	footer .footer-logo{
		display: block;
		width: 153px;
		vertical-align: top;
		margin: 0 0 40px 0;
	}
	footer .footer-logo *{
		width: 100%;
	}
	footer .footer-copy{
		display: block;
		width: 100%;
		vertical-align: top;
		margin: 0 0 40px 0;
	}
    footer .footer-copy p{
		color: #fff;
		font-size: 14px;
		line-height: 1.4em;
		text-align: left;
    }
	footer .footer-in{
		display: block;
		width: 100%;
		margin: 0 auto  0 auto;
        padding: 0;
		vertical-align: top;
		position: relative;
	}
	footer .footer-in ul{
		display: block;
		width: 100%;
		margin: 0;
		padding: 0;
		list-style: none;
		font-size: 0;
		text-align: left;
	}
	footer .footer-in ul li{
		display: block;
		width: 100%;
		margin: 20px 0 0 0;
		vertical-align: top;
	}
    footer .footer-in ul li:first-child{
        margin: 0;
    }
	footer .footer-in ul li a{
		display: inline-block;
		text-align: center;
		padding: 0;
		position: relative;
	}
	footer .footer-in ul li a span{
		display: inline-block;
		font-size: 16px;
		color: #fff;
		line-height: 1.4em;
		font-weight: 600;
		padding: 0 0 3px 0;
		position: relative;
	}
	footer .footer-in ul li a span::after{
		content: "";
		width: 0%;
		height: 2px;
		background-color: #fff;
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
		transition: width 0.2s;
	}
	footer .footer-in ul li a:hover span::after{
		width: 100%;
	}
	footer .footer-bottom{
		padding: 20px 0 50px 0;
		border-top: solid 1px #fff;
	}
	footer .footer-bottom .footer-in ul{
		margin: 0;
	}
	footer  .footer-bottom .footer-in ul li{
		display: block;
		width: 100%;
		margin: 10px 0 0 0;
		vertical-align: top;
	}
	footer .footer-bottom .footer-in ul li a span{
		font-size: 14px;
		font-weight: 400;
	}
}

@media screen and (min-width: 769px) {
	main{
		display: block;
		padding: 72px 0 0 0;
	}
	header{
		width: 100%;
        background-color: #fff;
		min-width: 1360px;
		margin: 0;
		padding: 0;
		display: block;
		position: fixed;
		z-index: 9000;
	}
	.ipad header{
		min-width: 1280px;
	}
    nav{
        width: 1280px;
        height: 72px;
        margin: 0 auto;
        position: relative;
    }
	.ipad nav{
		width: 1200px;
	}
	nav .navfr{
        width: 100%;
        height: 100%;
        margin: 0 auto;
		position: relative;
	}
	nav .navfr .logofr{
		width: auto;
		display: inline-block;
		height: 100%;
		position: relative;
		z-index: 9001;
	}
	nav .navfr .logofr .logo{
        height: 100%;
        display: table;
	}
	nav .navfr .logofr .logo a{
		display: table-cell;
		height: 100%;
        position: relative;
        vertical-align: middle;
	}
    nav .navfr .logofr .logo a img{
		height: 50px;
        vertical-align: bottom;
    }
    nav .navfr .nav{
        height: 100%;
		display: block;
		margin: 0 auto;
        position: relative;
		z-index: 9000;
	}
	nav .navfr .nav .menufr{
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        right: 0;
	}
    nav .navfr .nav .menufr .menuinner{
        height: 100%;
    }
	nav .navfr .nav .menufr .menu{
        width: 100%;
        height: 100%;
		margin: 0 auto;
		position: relative;
	}
	nav .navfr .nav .menufr .menu .menuul{
		height: 100%;
        overflow: hidden;
		margin: 0 auto 0 auto;
		padding: 0;
		list-style: none;
        position: absolute;
        bottom: 0;
        right: 0;
        font-size: 0;
	}
	nav .navfr .nav .menufr .menu .menuul > li{
        height: 100%;
		display:inline-block;
		position: relative;
		margin:0 50px 0 0;
		padding:0;
        overflow: hidden;
	}
    nav .navfr .nav .menufr .menu .menuul > li:last-child{
		margin:0 0 0 0;
    }
    nav .navfr .nav .menufr .menu .menuul > li .menutitlefr{
        height: 100%;
        display: table;
        table-layout: fixed;
    }
	nav .navfr .nav .menufr .menu .menuul > li a.menutitle{
		height:100%;
		display: table-cell;
        vertical-align:middle;
		margin:0;
        padding: 0 0;
        color:#000;
    }
	nav .navfr .nav .menufr .menu .menuul > li a.menutitle span{
		color: #323232;
		font-size: 16px;
		font-weight: 600;
        display: block;
        text-align: center;
        vertical-align: middle;
		padding: 0;
        margin: 0;
        position: relative;
	}
	nav .navfr .nav .menufr .menu .menuul > li a.menutitle span::after{
		content: "";
		width: 0%;
		height: 2px;
		background-color: #1e2380;
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
		transition: width 0.2s;
	}
	nav .navfr .nav .menufr .menu .menuul > li a.menutitle:hover span::after{
		width: 100%;
	}
	nav .navfr .nav .menufr .menu .menuul > li a.menutitle.force span::after{
		width: 100%;
	}
    nav .navfr .nav .menufr .btn-entry-wrap{
        height: 100%;
        width: 180px;
        display: block;
        position: relative;
        padding:0 0 0 0;
        margin: 0 0 0 16px;
    }
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry {
		background-color: #00873b;
        width: 100%;
		height: 50px;
        line-height: 1em;
        display: table;
		table-layout: fixed;
        position: absolute;
        top:50%;
		left: 0;
        transform: translateY(-50%);
        border-radius: 30px;
        overflow: hidden;
        padding: 0;
        margin: 0;
    }
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry span.txt{
        font-size: 14px;
        color:#fff;
        width: 100%;
        display: table-cell;
		padding: 0 0 0 16px;
		vertical-align: middle;
		text-align: left;
        font-weight: 600;
        overflow: hidden;
    }
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry span.icon{
		width: 52px;
        display: table-cell;
		text-align: center;
		vertical-align: middle;
        overflow: hidden;
    }
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry span.icon span{
		display: inline-block;
        width: 42px;
		height: 42px;
		background-color: #fff;
		border-radius: 50%;
		overflow: hidden;
		vertical-align: middle;
	}
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry span.icon span img{
		width: 100%;
	}
    nav .navfr .nav .menufr .btn-entry-wrap .btn-entry:hover{
		background-color: #15a152;
        transition: background-color 0.4s;
    }
	footer{
		width: 100%;
		margin: 0;
	}
	footer #footer{
		display: block;
		width: 100%;
		min-width: 1360px;
		background-color: #1e2380;
		margin: 0;
		padding: 0;
	}
	.ipad footer #footer{
		min-width: 1280px;
	}
	footer .footer-wrap{
		display: table;
		table-layout: fixed;
		width: 1280px;
		margin: 0 auto;
		padding: 40px 0 40px 0;
		text-align: center;
		position: relative;
	}
	.ipad footer .footer-wrap{
		width: 1200px;
	}
	footer .footer-logo{
		width: 153px;
		display: table-cell;
		vertical-align: top;
	}
	footer .footer-logo *{
		width: 100%;
	}
	footer .footer-copy{
		width: 420px;
		display: table-cell;
		vertical-align: top;
	}
    footer .footer-copy p{
		color: #fff;
		font-size: 14px;
		line-height: 1.4em;
		text-align: left;
		font-weight: bold;
    }
	footer .footer-in{
		display: table-cell;
		margin: 0 auto  0 auto;
        padding: 0;
		vertical-align: top;
		position: relative;
	}
	footer .footer-in ul{
		display: block;
		width: 100%;
		margin: 12px 0 0 0;
		padding: 0;
		list-style: none;
		font-size: 0;
		text-align: right;
	}
	footer .footer-in ul li{
		display: inline-block;
		margin: 0 0 0 50px;
		vertical-align: top;
	}
    footer .footer-in ul li:first-child{
        margin: 0;
    }
	footer .footer-in ul li a{
		display: inline-block;
		text-align: center;
		padding: 0;
		position: relative;
	}
	footer .footer-in ul li a span{
		font-size: 16px;
		color: #fff;
		line-height: 1.4em;
		font-weight: bold;
		padding: 0 0 3px 0;
		position: relative;
	}
	footer .footer-in ul li a span::after{
		content: "";
		width: 0%;
		height: 2px;
		background-color: #fff;
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
		transition: width 0.2s;
	}
	footer .footer-in ul li a:hover span::after{
		width: 100%;
	}
	footer .footer-bottom{
		padding: 20px 0 50px 0;
		border-top: solid 1px #fff;
	}
	footer .footer-bottom .footer-in ul{
		margin: 0;
	}
	footer .footer-bottom .footer-in ul li {
		margin: 0 0 0 30px;
	}
	footer .footer-bottom .footer-in ul li a span{
		font-size: 14px;
		font-weight: 500;
	}
}