/* ----------------------------------------
	Utility and Reset css
-------------------------------------------*/

html,button,input,select,textarea{ color: #111; }
*, *:before, *:after{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -o-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }
hr{ display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
audio,canvas,img,video{ vertical-align: middle; }
.ie7 .title{ padding-top: 20px; }
fieldset{	border: 0; margin: 0; padding: 0; }
textarea{ resize: vertical; }

/* Reset css */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video{ margin:0; padding:0; border:0; outline:0; font-size:100%; vertical-align:baseline; background:transparent; }
table,div,ul,ol,li,dl,dt,dd{ list-style: none; margin: 0; padding: 0; }
table{ border-collapse:collapse; border-spacing:0; }
article,aside,details,figcaption,figure, footer,header,hgroup,menu,nav,section{ display:block; }
nav ul,li{ list-style:none; }

/* Helper class */
.ir{ background-color: transparent; border: 0; overflow: hidden; *text-indent: -9999px; }
.ir:before{ content: ""; display: block;	width: 0;	height: 150%; }
.hidden{ display: none !important; visibility: hidden; }
.visuallyhidden{ border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute;	width: 1px; }
.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus{ clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
.invisible{ visibility: hidden; }

img{ max-width: 100%; height: auto; margin: 0; padding: 0; border:0; outline: none; border-style: none; vertical-align: bottom; line-height: 0; }
img,iframe,object{ max-width:100%; }	/* モダンブラウザ用 */
.ie7 img,.ie8 object{ width:100%; }	/* IE7用 */
.ie8 img,.ie8 object{ width:auto; }	/* IE8用 */
img[src$=".svg"]{	width: 100%; }		/* SVG IE対策 */


/* ----------------------------------------
	Setting
-------------------------------------------*/

:root{
	--main-color: rgba(0,160,233,1);
	--peal-color: rgba(235,247,250,1);
	--dark-peal-color: rgba(217,236,250,1);
	--font-black: rgba(59,61,64,1);
	--font-gray: rgba(110,118,126,1);
	--hover: 0.75;
	--page-width: 1100px;
	--sp-width: 94%;
}

/* link
 -------------------*/
a,
a:visited,
a:hover,
a:active{
	color: var(--font-black);
	-webkit-tap-highlight-color: transparent rgba(0,0,0,0);
	-moz-tap-highlight-color: transparent rgba(0,0,0,0);
	-ms-tap-highlight-color: transparent rgba(0,0,0,0);
	-o-tap-highlight-color: transparent rgba(0,0,0,0);
	tap-highlight-color: transparent rgba(0,0,0,0);
	text-decoration: none;
	transition: 0.15s ease-in-out;
	-webkit-transform: translateZ(0);
}
a:hover{
	color: var(--main-color);
	text-decoration: none;
}
a img:hover{
	opacity: var(--hover);
}
a img{ 
	text-decoration: none;
	outline: none;
}
a img::before,a img::after{
	position: absolute;
	z-index: -1;
	display: block;
	content: '';
}
a img,a img::before,a img::after{
	-webkit-transition: all .2s;
	transition: all .2s;
}

/* img
 -------------------*/
svg{
	fill: currentColor;
}
.object-fit-img{ /* object-fit IE対策 */
	object-fit: contain;
	font-family: 'object-fit: contain;'
}

/* .cf
 -------------------*/
.cf:before, .cf:after{ content: " "; display: table; }
.cf:after{ clear: both; }
.cf{ *zoom: 1; }

.pc{ display: block; }
.sp{ display: none; }

@media screen and (max-width: 650px){
	.pc{ display: none; }
	.sp{ display: block; }
}

/* ----------------------------------------
	Common
-------------------------------------------*/

html,body{
	height: 100% !important;
}
html{
	font-size: 62.5%;
	line-height: 2.1;
	font-feature-settings: 'palt' 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-text-size-adjust: 100%;
}
body{
	color: var(--font-black);
	font-size: 16px;
	letter-spacing: 0.1em;
	text-align: center;
	font-weight: normal;
	word-wrap: break-word;
	font-family: 'Jost','Noto Sans JP',YakuHanJP_Noto,sans-serif;
}
.loader-bg{
	position: relative;
	width: 100vw;
	height: 100vh;
	overflow: hidden;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
	background-color: var(--main-color);
	display: flex;
	justify-content: center;
	align-items: center;
}
.loader{
	margin: 0 auto;
	width: 70px;
	text-align: center;
}
.loader > div{
	width: 12px;
	height: 12px;
	background-color: #fff;
	border-radius: 100%;
	display: inline-block;
	-webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
	animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}
.loader .bounce1{
	-webkit-animation-delay: -0.32s;
	animation-delay: -0.32s;
}
.loader .bounce2{
	-webkit-animation-delay: -0.16s;
	animation-delay: -0.16s;
}
@-webkit-keyframes sk-bouncedelay{
	0%, 80%, 100%{ -webkit-transform: scale(0) }
	40%{ -webkit-transform: scale(1.0) }
}
@keyframes sk-bouncedelay{
	0%, 80%, 100%{ 
		-webkit-transform: scale(0);
		transform: scale(0);
	} 40%{ 
		-webkit-transform: scale(1.0);
		transform: scale(1.0);
	}
}
#wrapper{
	background-color: #f3f3f6;
	position: relative;
	overflow: hidden;
	width: 100%;
}
.bg_scroll{
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: url(../img/common/bg-nitto.png) 0 0 no-repeat;
	background-size: cover;
	z-index: 0;
}
#main{
	position: relative;
	width: 100%;
	z-index: 1;	/*important*/
}
.fade{
	opacity: 0;
	transform: translateY(30px);/* 下にずれる幅 */
	transition: opacity 1.2s, transform 1.0s;
}
.fade.active{
	opacity: 1;
	transform: translateY(0px);
}
.gradation{
	background: -moz-linear-gradient(left, #00a0e9, #4ee6e3);
	background: -webkit-linear-gradient(left, #00a0e9, #4ee6e3);
	background: linear-gradient(top right, #00a0e9, #4ee6e3);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--main-color);
}
ul.common-list{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	font-size: 15px;
}
ul.common-list li{
	margin-bottom: 1%;
	font-weight: bold;
}
ul.common-list li:last-child,
.site-footer-top .list li:last-child{
	margin-bottom: 0;
}
ul.common-list li a{
	display: block;
	color: #fff;
	padding: 5% 0;
	border-bottom: 1px solid;
	border-color: rgba(255, 255, 255, 0.5);
	background: url(../img/common/ic-arrow-circle_blue.svg) right center no-repeat;
	background-size: 34px;
}
ul.common-list li a:hover{
	color: rgba(255, 255, 255, 0.75);
	background: url(../img/common/ic-arrow-circle_white.svg) right center no-repeat;
	background-size: 34px;
}
@media screen and (max-width: 1100px){
	ul.common-list{
		font-size: 13px;
	}
	ul.common-list li a{
		padding: 10px 30px 10px 0;
	}
	ul.common-list li a,
	ul.common-list li a:hover{
		background-size: 30px;
	}
}
@media screen and (max-width: 650px){
	html{
		line-height: 2;
	}
	body{
		font-size: 13px;
		letter-spacing: 0.075em;
	}
	.bg_scroll{
		margin: 30% 0 0 0;
		background-size: 110% auto;
	}
	ul.common-list{
		font-size: 13px;
	}
	ul.common-list li a{
		padding-right: 24px;
	}
	ul.common-list li a,
	ul.common-list li a:hover{
		background-size: 24px;
	}
}

/* ----------------------------------------
	Main Header
-------------------------------------------*/
.g-nav{
	position: absolute;
	top: 0;
	width: 100%;
	height: 110px;
	z-index: 200;
}
.g-nav__in{
	display: flex;
	align-content: center;
	justify-content: space-between;
}
.g-nav__logo a{
	display: flex;
	flex-wrap: nowrap;
	justify-content: flex-start;
	width: 410px;
	font-size: 13px;
	line-height: 1.5;
	text-align: left;
	margin: 22px 0 0 20px;
}
.g-nav__logo a img{
	width: auto;
	height: 70px;
	max-height: 70px;
}
.g-nav__logo a:hover{
	color: var(--font-black);
	opacity: var(--hover);
}
.g-nav__logo a img:hover{
	opacity: 1;
}
.g-nav__logo a p{
	padding: 3%;
}
/* グローバルナビ */
.g-nav__list{
	display: flex;
	justify-content: flex-end;
	width: calc(100% - 450px);
	margin-right: 7vw;
	padding-top: 40px;
}
.g-nav__list li{
	position: relative;
	font-weight: bold;
	margin-left: 2.5%;
}
.page-top-header .g-nav__list li{
	color: #fff;
}
.g-nav__list li a{
	display: block;
	text-decoration: none;
	padding-bottom: 2px;
}
.g-nav__list li a::after{
	position: absolute;
	bottom: 0;
	left: 0;
	content: '';
	width: 100%;
	height: 2px;
	background-color: var(--main-color);
	transition: all .2s;
	transform: scale(0, 1);
	transform-origin: left top;/*基点*/
}
.g-nav__list .has-child li a::after{
	position: relative;
	height: 0;
}
.g-nav__list li a:hover::after{
	transform: scale(1, 1);
}
.g-nav__list li a:hover{
	color: var(--main-color);
}
.g-nav__list ul{
	display: block;
}
/* ドロップダウン */
.g-nav__list .has-child ul{
	position: absolute;
	top: 50px;
	left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%); /* 左右中央よせ */
	z-index: 4;
	width: 210px;
	overflow: hidden;
	background-color: rgba(255,255,255,0.9);
	border-radius: 4px;
	visibility: hidden;
	opacity: 0;
	transition: all .3s;
}
.g-nav__list .has-child:hover > ul,
.g-nav__list .has-child:active > ul,
.g-nav__list .has-child ul li:hover > ul,
.g-nav__list .has-child ul li:active > ul{
	visibility: visible;
	opacity: 1;
}
.g-nav__list .has-child ul li{
	margin-left: 0;
}
.g-nav__list .has-child ul li a{
	overflow: hidden;
	width: 100%;
	padding: 10px;
	font-size: 12px;
	color: var(--font-black);
	border-bottom: solid 1px #eaeaea;
}
.g-nav__list .has-child ul li:last-child a{
	border-bottom: none;
}
.g-nav__list .has-child ul li a:hover,
.g-nav__list .has-child ul li a:active{
	color: #fff;
	background: rgba(0,160,233,0.9);
}
.drawer-nav_wrap{
	width: 80%;
	max-width: 1000px;
	height: 100%;
	margin: 0 auto;
	padding-top: 10vw;
}
.drawer-nav_wrap,
.drawer-nav_wrap a{
	color: #fff;
}
.drawer-nav_wrap a:hover{
	opacity: var(--hover);
}
.drawer-nav_wrap .g-nav__logo,
.main-nav-area{
	width: 100%;
}
.drawer-nav_wrap .g-nav__logo a{
	margin-left: 0;
	padding-bottom: 5%;
}
.drawer-nav_wrap .g-nav__logo a:hover{
	color: #fff;
}
.main-nav-area .main-nav{
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	justify-content: flex-start;
	width: 100%;
	height: 420px;
}
.main-nav-area .main-nav li{
	width: 28%;
	margin-bottom: 30px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.main-nav-area .main-nav li dl{
	text-align: left;
	padding-top: 5%;
}
.main-nav-area .main-nav dl dt{
	font-size: 20px;
	line-height: 1.75;
	font-weight: bold;
	margin-bottom: 3%;
}
.main-nav-area .main-nav dl dt span{
	display: block;
	font-size: 13px;
	font-weight: normal;
}
.main-nav-area .main-nav dl dd{
	font-size: 13px;
	line-height: 2.3;
}
.main-nav-area .sub-nav{
	width: 100%;
	display: flex;
}
.main-nav-area .sub-nav li{
	width: 220px;
	height: 50px;
	line-height: 50px;
	border-radius: 25px;
	padding: 0;
	margin: 0 0 3%;
	font-size: 11px;
	text-align: center;
	font-weight: normal;
	border: 1px solid #fff;
}
.main-nav-area .sub-nav li:first-child{
	margin-right: 16px;
}
.main-nav-area .sub-nav li p{
	display: inline;
	padding-right: 15px;
	background: url(../img/common/ic-more-link_white.svg) right center no-repeat;
	background-size: 9px auto;
}
.main-nav-area .sub-nav li p img{
	width: 16px;
	height: auto;
	vertical-align: middle;
	margin: -4px 10px 0 0;
}
@media screen and (max-width: 1100px){
	.g-nav__list{
		display: none;
	}
}
@media screen and (max-width: 650px){
	.g-nav{
		height: 70px;
		overflow: hidden;
	}
	.g-nav__in{
		width: var(--sp-width);
		margin: 0 auto;
	}
	.g-nav__logo{
		width: 100%;
	}
	.g-nav__logo a{
		width: 100%;
		height: 60px;
		font-size: 9px;
		margin: 16px 0 0;
	}
	.g-nav__logo a img{
		width: auto;
		height: 40px;
		max-height: 40px;
	}
	.g-nav__logo a p{
		padding: 2%;
		letter-spacing: 0.02em;
	}
	.drawer-nav_wrap{
		width: 100%;
		min-width: initial;/*解除*/
		padding: 0;
	}
	.drawer-nav_wrap .g-nav__logo a{
		justify-content: flex-start;
	}
	.main-nav-area{
		width: var(--sp-width);
		margin-top: 3%;
	}
	.main-nav-area .main-nav{
		height: 100%;
	}
	.main-nav-area .main-nav li{
		width: 100%;
		margin-bottom: 0;
	}
	.main-nav-area .main-nav li dl{
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		width: 100%;
		padding-top: 3%;
	}
	.main-nav-area .main-nav dl dt{
		width: 100%;
		font-size: 14px;
		margin-bottom: 2%;
	}
	.main-nav-area .main-nav dl dt span{
		font-size: 10px;
		color: var(--main-color);
	}
	.main-nav-area .main-nav dl dd{
		width: 48%;
		font-size: 11px;
	}
	.main-nav-area .main-nav dl dd:last-child{
		margin-bottom: 2%;
	}
	.main-nav-area .sub-nav{
		padding-top: 3%;
	}
	.main-nav-area .sub-nav li{
		width: 40%;
		font-size: 10px;
		margin-bottom: 2%;
	}
	.main-nav-area .sub-nav li:first-child{
		margin-right: 10px;
	}
}

/* ----------------------------------------
	Common Footer
-------------------------------------------*/

.site-footer{
	position: relative;
	z-index: 1;	/*important*/
	width: 100%;
	padding-top: 200px;
}
.site-footer a{
	color: #fff;
}
.site-footer .heading{
	font-size: 14px;
	font-weight: bold;
}
.site-footer .heading span.en{
	font-size: 40px;
	padding-right: 20px;
	vertical-align: sub;
}
.site-footer-top{
	width: 96%;
	height: auto;
	overflow: hidden;
	margin-left: calc(50% - 50vw);
	border-radius: 0 100px 100px 0;
	background:
		linear-gradient(to right,rgba(43,45,48,1) 20%,rgba(43,45,48,0.5)),
		url(../img/common/bg-footer-guideline.jpg);
	background-position: right 30%;
	background-repeat: no-repeat;
	background-size: cover;
}
.site-footer-top .inner{
	width: 92%;
	max-width: var(--page-width);
	padding: 100px 0;
	margin: 0 auto;
	color: #fff;
	text-align: left;
}
.site-footer-top .common-list{
	padding-top: 3%;
}
.site-footer-top .common-list li{
	width: 31%;
}
.site-footer-bottom{
	width: 92%;
	max-width: var(--page-width);
	height: auto;
	margin: 0 auto;
}
.site-footer-bottom .btn-entry a{
	display: block;
	width: 100%;
	padding: 2%;
	margin: -20px auto 0;
	border-radius: 20px;
	background: linear-gradient(270deg, #4ee6e3 0%, #00a0e9 40%, #1458e4 100%);
	background-position: 1% 50%;
	background-size: 200% auto;
	transition: all 0.3s ease-out;
}
.site-footer-bottom .btn-entry a:hover{
	background-position: 99% 50%;
}
.site-footer-bottom .btn-entry a p{
	display: inline-block;
	padding-right: 70px;
	background: url(../img/common/ic-arrow-circle_white-line.svg) right center no-repeat;
	background-size: 50px;
}
.site-footer-bottom .btn-entry a:hover p{
	background: url(../img/common/ic-arrow-circle_white.svg) right center no-repeat;
	background-size: 50px;
}
@media screen and (max-width: 1100px){
	.site-footer .heading,
	.site-footer-top .list{
		font-size: 13px;
	}
	.site-footer .heading span.en{
		font-size: 36px;
	}
	.site-footer-top{
		border-radius: 0 60px 60px 0;
	}
	.site-footer-top .inner{
		width: 86%;
		max-width: initial;/*解除*/
	}
	.site-footer-top .common-list li:last-child{
		margin-bottom: 0;
	}
	.site-footer-bottom{
		max-width: initial;/*解除*/
	}
	.site-footer-bottom .btn-entry a{
		width: 92%;
		padding: 2%;
		border-radius: 10px;
	}
	.site-footer-bottom .btn-entry a p,
	.site-footer-bottom .btn-entry a:hover p{
		background-size: 40px;
	}
}
@media screen and (max-width: 960px){
	.site-footer-top{
		border-radius: 0 40px 40px 0;
	}
}
@media screen and (max-width: 650px){
	.site-footer{
		padding-top: 100px;
	}
	.site-footer .heading{
		font-size: 11px;
		line-height: 1.5;
	}
	.site-footer .heading span.en{
		font-size: 24px;
		letter-spacing: 0.05em;
		padding-right: 10px;
	}
	.site-footer-top .text-area{
		font-size: 12px;
	}
	.site-footer-top{
		border-radius: 0 20px 20px 0;
		background:
			linear-gradient(to right,rgba(30,30,30,0.95)20%,rgba(30,30,30,0.7)),
			url(../img/common/bg-footer-guideline.jpg);
		background-position: 78% 30%;
		background-repeat: no-repeat;
		background-size: cover;
	}
	.site-footer-top .heading{
		padding-bottom: 5%;
	}
	.site-footer-top .heading span.en{
		display: block;
		padding: 0;
	}
	.site-footer-top .inner{
		width: 82%;
		padding: 60px 0 80px;
	}
	.site-footer-top .common-list{
		display: block;
		padding-top: 5%;
	}
	.site-footer-top .common-list li{
		width: 100%;
	}
	.site-footer-bottom .btn-entry a{
		margin-left: calc(50% - 50vw);
		border-radius: 0 10px 10px 0;
		padding: 5% 0;
		width: 100%;
	}
	.site-footer-bottom .btn-entry a p,
	.site-footer-bottom .btn-entry a:hover p{
		background-size: 30px;
	}
}

/* ----------------------------------------
	Main Footer
-------------------------------------------*/

#footer{
	position: relative;
	z-index: 1;	/*important*/
	width: 100%;
	margin: 0 auto;
	padding: 100px 0 0;
	text-align: left;
}
#footer .footer-wrap{
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	width: 90%;
	margin: 0 auto;
}
#footer .footer-wrap a{
	color: var(--font-black);
}
#footer .footer-wrap a:hover{
	opacity: var(--hover);
}
.footer-side-area{
	width: 30%;
	display: flex;
	flex-wrap: wrap;
}
.footer-side-area .logo{
	width: 100%;
}
.footer-side-area .logo a{
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
}
.footer-side-area .logo img{
	width: 25%;
	height: auto;
}
.footer-side-area .logo p{
	width: 70%;
	line-height: 1.75;
	font-weight: bold;
}
.footer-side-area .company-info{
	width: 100%;
	padding-top: 5%;
	font-size: 14px;
	line-height: 1.75;
}
.footer-side-area .company-info ul{
	padding: 10% 0;
	display: flex;
	flex-wrap: nowrap;
}
.footer-side-area .company-info ul li{
	padding-right: 20px;
	font-size: 13px;
}
.footer-nav-area{
	width: 65%;
}
.footer-nav-area .footer-nav{
	display: flex;
	flex-wrap: nowrap;
	justify-content: flex-end;
}
.footer-nav-area .footer-nav li{
	padding-right: 28px;
	font-weight: bold;
}
.copyright{
	width: 400px;
	margin: 0 0 0 auto;
	border-radius: 24px 0 0 0;
	background-color: #2d2d30;
}
.copyright p{
	color: #eee;
	padding: 4% 0;
	font-size: 11px;
	text-align: center;
}
@media screen and (max-width: 1280px){
	.footer-nav-area .footer-nav li{
		padding-right: 22px;
	}
}
@media screen and (max-width: 1100px){
	.footer-side-area{
		width: 40%;
	}
	.footer-side-area .logo p{
		font-size: 14px;
	}
	.footer-nav-area{
		width: 50%;
	}
	.footer-nav-area .footer-nav{
		display: flex;
		flex-wrap: wrap;
		flex-direction: column;
		justify-content: flex-start;
		width: 100%;
		height: 180px;
	}
	.footer-nav-area .footer-nav li{
		width: 33.33%;
		padding: 0 0 14px;
		font-size: 15px;
	}
	.copyright{
		border-radius: 20px 0 0 0;
	}
}
@media screen and (max-width: 650px){
	#footer{
		padding: 60px 0 0;
	}
	#footer .footer-wrap{
		display: block;
		width: 90%;
	}
	.footer-side-area{
		width: 100%;
		margin-bottom: 40px;
	}
	.footer-side-area .logo img{
		width: 70px;
	}
	.footer-side-area .logo p{
		width: 100%;
		font-size: 13px;
		line-height: 1.75;
		padding-left: 10px;
	}
	.footer-side-area .company-info ul{
		padding: 5% 0;
	}
	.footer-side-area .company-info,
	.footer-side-area .company-info ul li{
		font-size: 12px;
		letter-spacing: 0.075em;
	}
	.footer-nav-area{
		display: none;
	}
	.copyright{
		width: 250px;
		border-radius: 10px 0 0 0;
	}
	.copyright p{
		padding: 4%;
		font-size: 9px;
		text-align: right;
		letter-spacing: 0.075em;
	}
}