@charset "utf-8";

/*---------- reset ----------*/
html{font-size:62.5%;height:100%;}
body{margin:0;padding:0;font-size:1.6rem;font-family:YakuHanJP,'Noto Sans CJK JP','Noto Sans JP',sans-serif,"游ゴシック","Yu Gothic",Yu Gothic,"Hiragino Kaku Gothic ProN","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,"ＭＳ ゴシック";line-height:1.5;color:#333;height:100%;position:relative;letter-spacing:0.1em;overflow-wrap:break-word;word-wrap:break-word;}
header,main,article,section,nav,footer{display:block;}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;font-size:100%;}
textarea{font-family:YakuHanJP,'Noto Sans CJK JP','Noto Sans JP',sans-serif,"游ゴシック","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,"ＭＳ ゴシック";}
input{font-family:YakuHanJP,'Noto Sans CJK JP','Noto Sans JP',sans-serif,"游ゴシック","Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,"ＭＳ ゴシック";line-height:1.5;color:#333;position:relative;letter-spacing:0.1em;overflow-wrap:break-word;word-wrap:break-word;}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border: 0;}
address,caption,cite,code,dfn,th,var{font-style:normal;font-weight:normal;}
em{font-style:normal;font-weight:500;}
ol,ul{list-style: none;}
caption{text-align:left;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
q:before,q:after{content:'';}
abbr,acronym{border:0;}
input[type="button"],input[type="submit"],input[type="email"]{-webkit-appearance:none;border-radius:0;}
select::-ms-expand{display:none;}
body{-webkit-text-size-adjust:100%;}
*, *::before, *::after{box-sizing:border-box;}
.cf::after{content:"";clear:both;display:block;}
/*---------- reset end ----------*/
:root{
	--vw-100:100vw;
	--vw-50:calc(var(--vw-100)*.5);
}

html{visibility:hidden;}
html.wf-active, html.wf-inactive{visibility:visible;}

#wrapper{overflow:hidden;}


/*---------- header ----------*/
#header_wrap{
	display:flex;
	align-items:center;
	justify-content:center;
	padding:15px 20px;
	margin:auto;
	box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.16);
}
.logo_link, .logo_img{
	display:block;
	width:100%;
}
/*---------- main ----------*/
a[href^="tel:"]{
	pointer-events:none;
	text-decoration:none;
	color: #333;
}
p{margin-bottom:20px;}
ul, ol{
	padding-left:20px;
	margin-bottom:20px;
}
ul li{list-style:disc;}
ol li{list-style:decimal;}
ul li:last-child,
ol li:last-child{
	margin-bottom:0;
}
li{margin-bottom:15px;}
* + dl{margin-top:15px;}
dl{margin-bottom:20px;}
dl dd:not(:last-child){margin-bottom:15px;}

table{
	width:100%;
	border-top:1px solid #ccc;
}
th, td{
	border-bottom:1px solid #ccc;
	vertical-align:top;
}
th{
	padding:19px 20px;
	width:30%;
	font-weight:bold;
	text-align:left;
}
td{padding: 19px 15px;}
td *:last-child{margin-bottom:0;}

/* greeting～overviewタイトル共通*/
.title{
	display: block;
	font-size: 2.6rem;
	position: relative;
	font-weight: 700;
	letter-spacing: 2.6px;
}
.title::after{
	position: absolute;
	content: "";
	display: block;
	font-size: 1.1rem;
	color: #1E3085;
	letter-spacing: 0.22px;
	font-weight: 700;
}
.mv{
	position: relative;
}
.mv_sp{display: none;}
.mv_list{
	height: 100%;
}
.mv_list_item img{
	display: block;
	width: 100%;
	object-fit: cover;
	height: calc(100svh - 75.7px); 
	max-height: 700px; 
}
.mv_txt{
	position: absolute;
    max-width: 1980px;
    margin:auto;
    padding: 0 40px;
	bottom: 50px;
	left:20px;
	right:0;
	color: #fff;
}
.mv_ttl{
	font-size: 4.6rem;
	font-weight: 700;
	letter-spacing: 4.6px;
	text-shadow: 0px 3px 10px #0000009C;
}
.slick-list{pointer-events: none;}
.slick-dotted.slick-slider{margin-bottom:0;}
.slick-dots{
	max-width:1980px;
	text-align:right;
	padding:0 40px;
    margin: auto;
	bottom:21px !important;
	left: 0;
    right: 0;
	z-index:50;
}
.slick-dots li{
	width: 30px !important; 
    margin: 0 10px 0 0; 
    overflow: hidden;
}
.slick-dots li:last-child{margin-right:0;}
.slick-dots li button{
	width:100%;
    color:#fff;
	padding:0 0 2px;
	text-shadow:0px 0px 3px rgba(255, 255, 255, 1);
    background:initial;
}
.slick-dots li button::before{display:none;}
.slick-dots li button::after{
	position:absolute;
	content:'';
	width:200%;
	height:4px;
	background:linear-gradient(to right,#1E3085,#1E3085 50%,#fff 50%,#fff 100%);
	bottom:0;
	left:-100%;
	transition:left 0s;
}
.slick-dots li.slick-active button{color:#1E3085;}
.slick-dots li.slick-active button::after{
	animation:dotsAnim 4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
@keyframes dotsAnim{
	0%{left:-100%;}
	100%{left:0;}
}
.greeting{
	max-width: 1080px;
	padding: 100px 40px 75px;
	display: flex;
	margin: 0 auto;
}
.greeting_ttl{width: 25%;}
.greeting_ttl::after{content: "GREETING";}
.greeting_txt{
	max-width: 750px;
	width: 75%;
}
.greeting_txt p{
	line-height: 28.8px;
	margin-bottom: 12px;
}
.greeting_txt_name{
	text-align: right;
	padding-top: 25px;
}
.greeting_txt_name span{
	font-size: 2.2rem;
	padding-left: 18px;
	font-weight: 500;
}
.purpose{
	background: #DCEDF9;
	padding: 50px 20px;
}
.purpose_inner{
	max-width: 1000px;
	background: #fff;
	margin: 0 auto;
	padding: 55px 20px 40px;
	border-radius: 10px;
}
.purpose_ttl{
	margin-bottom: 47px;
	text-align: center;
}
.purpose_ttl::after{
	content: "VISION";
	left: 50%;
	transform: translateX(-50%);
}
.purpose_txt{
	max-width: 800px;
	margin: 0 auto;
}
.purpose_txt h3{
	font-size: 2.2rem;
	text-align: center;
	padding-bottom: 28px;
	font-weight: 500;
	letter-spacing: 2.2px;
}
.purpose_txt p{
	line-height: 27.2px;
	margin-bottom: 15px;
}
.overview{
	max-width: 1040px;
	max-width: 1080px;
	padding: 80px 40px 135px;
	display: flex;
	margin: 0 auto;
}
.overview_ttl{
	width: 25%;
}
.overview_ttl::after{content: "OVERVIEW";}
.overview_txt{
	max-width: 750px;
	width: 75%;
}
/*-- 404 --*/
.page_title{
	max-width:1040px;
	font-size:2.6rem;
	letter-spacing:2.6px;
	line-height:3.9rem;
	font-weight:bold;
	padding:0 20px;
	margin:72px auto 48px;
}
.page_title::after{
	display:block;
	content:attr(data-en);
	font-size:1.1rem;
	letter-spacing:.22px;
	line-height:1.7rem;
	color:#1E3085;
	margin: 10px 0 0 2px;
}
.content_area{
	max-width:1040px;
	padding:0 20px 100px;
	margin:0 auto;
}
.content_area p{
	font-size:1.6rem;
	letter-spacing:1.6px;
	line-height:2.72rem;
}
.link_btn{
	margin: 28px 0 0;
}
.link_btn a{
	display:inline-block;
	width:260px;
	max-width:100%;
	font-size:1.6rem;
	letter-spacing:1.6px;
	line-height:2.4rem;
	color:#1E3085 !important;
	text-decoration:none;
	text-align:center;
	padding: 18px 20px;
	border:1px solid #1E3085;
	transition:color .3s,background-color .3s;
}
.link_btn a:hover{color:#fff !important;background-color:#1E3085;}
/*---------- footer ----------*/
#return{
	position:relative;
	z-index:1000;
}
.return_btn{
	display:block;
	position:fixed;
	right:20px;
	bottom:20px;
	width:45px;
	height:45px;
	background:#1E3085;
	border: 1px solid #1E3085;
	border-radius:25px;
	text-decoration:none;
	transition:background 0.3s;
}
.return_btn:hover{background:#FFFFFF;}
.return_btn:hover::after{
	border-top:1px solid #1E3085;
	border-right:1px solid #1E3085;
}

.return_btn::after{
	content:'';
	display:block;
	position:absolute;
	top:8px;
	right:0;
	bottom:0;
	left:0;
	margin:auto;
	width:11px;
	height:11px;
	border-top:1px solid #fff;
	border-right:1px solid #fff;
	transform:rotate(-45deg);
}
.return_txt{display:none;}


#copyright{text-align: center;padding: 11px 20px 12px;margin: 0;border-top:1px solid #ccc;}
.copy_txt{letter-spacing: 1.2px;font-size: 1.2rem;}


@media screen and (min-width:768px) and (max-width:1024px){
	body{font-size: 1.5rem;}
	.title{
		display: block;
		font-size: 2.4rem;
		position: relative;
		font-weight: 700;
		letter-spacing: 2.6px;
	}
	.mv_list_item img{
		height: calc(100svh - 75.7px);
		max-height: 100%;
	}
	.mv_txt{left:0;}
	.mv_ttl{
		font-size: 4.1rem;
		letter-spacing: 4.1px;
	}
	.purpose_txt h3{
		font-size: 2.0rem;
	}
/*-- 404 --*/
	.page_title{
		font-size: 2.4rem;
		letter-spacing: 2.4px;
		line-height: 3.6rem;
		margin: 60px auto 42px;
	}
	.content_area p{
		font-size: 1.5rem;
		letter-spacing: 1.5px;
		line-height: 2.62rem;
	}
	.link_btn a{
		width: 230px;
		font-size: 1.5rem;
		letter-spacing: 1.5px;
		line-height: 2.25rem;
		padding: 16px 20px;
	}
	.content_area{
		padding: 0 20px 90px;
	}
/*---------- footer ----------*/
#copyright{text-align: center;}
}


@media screen and (max-width:850px){
	.greeting{
		display: flex;
		flex-direction: column;
		padding: 75px 40px;
	}
	.greeting_ttl{
		width: 100%;
		text-align: center;
		margin-bottom: 47px;
	}
	.greeting_ttl::after{
		left: 50%;
		transform: translateX(-50%);
	}
	.greeting_txt{
		width: 100%;
	}
	.purpose_inner{
		padding: 45px 20px 28px;
	}	
	.overview{
		display: flex;
		flex-direction: column;
		padding: 65px 40px 115px;
	}
	.overview_ttl{
		width: 100%;
		margin-bottom: 47px;
		text-align: center;
	}
	.overview_ttl::after{
		left: 50%;
		transform: translateX(-50%);
	}
	.overview_txt{
		width: 100%;
	}
}

@media screen and (max-width:767px){
	body{
		background:#fff;
		width:auto;
		font-size: 1.4rem;
	}
input,textarea,select{font-size:16px;}

/*---------- header ----------*/
	.logo_img{max-width: 218px;}

/*---------- main ----------*/
	a[href^="tel:"]{
		pointer-events:all;
		text-decoration:underline;
	}
	.title{
		display: block;
		font-size: 2.2rem;
		position: relative;
		font-weight: 700;
		letter-spacing: 2.6px;
	}
	.mv{display: none;}

	.mv_sp{
		display: block;
		position: relative;
	}
	.mv_list{
		height: 100%;
	}
	.mv_list_item img{
		display: block;
		width: 100%;
		object-fit: cover;
		height: calc(100svh - 68.81px);
		max-height: 100%;
	}
	.mv_txt{
		position: absolute;
		padding:0 20px;
		bottom: 60px;
		left:0;
	}
	.mv_ttl{
		font-size: 3.6rem;
		letter-spacing: 3.6px;
	}
	.slick-dots{
		text-align: center;
		bottom: 27px !important;
	}
	.greeting{padding: 50px 20px;}
	.greeting_ttl{margin-bottom: 35px;}
	.greeting_txt p{
		line-height: 25.2px;
		margin-bottom: 10px;
	}
	.greeting_txt_name{padding-top: 18px;}
	.purpose{padding: 40px 20px;}
	.purpose_inner{padding: 35px 20px 28px;}
	.purpose_ttl{margin-bottom: 38px;}
	.purpose_txt h3{
		font-size: 1.8rem;
		padding-bottom: 18px;
	}
	.purpose_txt p{
		line-height: 25.2px;
		margin-bottom: 10px;
	}
	.overview{padding: 50px 20px 93px;}
	.overview_ttl{margin-bottom: 35px;}
	table th, td{padding: 16.5px 15px;}
/*-- 404 --*/
	.page_title{
		font-size: 2.2rem;
		letter-spacing: 2.2px;
		line-height: 3.3rem;
		margin: 48px auto 36px;
	}
	.content_area p{
		font-size: 1.4rem;
		letter-spacing: 1.4px;
		line-height: 2.52rem;
	}
	.link_btn a{
		width: 200px;
		font-size: 1.4rem;
		letter-spacing: 1.4px;
		line-height: 2.1rem;
		padding: 15px 20px 16px;
	}
	.content_area{
		padding: 0 20px 80px;
	}
/*---------- footer ----------*/

}


/*----- Message for IE -----*/
.for_ie{
	position:relative;
	background:#f00;
	z-index:9999;
	border-bottom:2px solid #fff;
}
.ie_wrap{
	max-width:1140px;
	padding:25px 20px 15px;
	margin:auto;
}
.ie_txt{
	margin-bottom:20px;
	color:#fff;
	font-size:1.4rem;
	letter-spacing:1.4px;
	line-height:2rem;
}
.download_wrap{overflow:hidden;}
.download_link{
	float:left;
	display:block;
	width:260px;
	padding:11px 25px 12px;
	margin:0 15px 15px 0;
	background:url(/img/common/popup_white.svg) no-repeat center right 10px/15px !important;
	border:1px solid #fff;
	color:#fff !important;
	font-size:1.4rem;
	letter-spacing:1.4px;
	text-align:center;
	text-decoration:none;
}
.download_link:hover{
	background-color:#fff !important;
	background-image:url(/img/common/popup_red.svg) !important;
	color:#f00 !important;
}


/*----- print -----*/
@media print{
	:root{--vw-100:1200px;}
	html{visibility:hidden;overflow-x:hidden;height: auto;}
	body{
		width:1200px;
		transform:scale(1);
		-moz-transform:scale(1);
		-webkit-transform:scale(1);
		transform-origin:0 0;
		zoom:.91;
		margin:auto;
		overflow:hidden auto;
	}
	.mv_list_item img{
		height: 600px; 
	}	
	@media all and (-ms-high-contrast:none){
		body{width:1200px}
	}
	@media (-ms-high-contrast:none),(-ms-high-contrast:active){
		body{width:1200px}
	}
	@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution:.001dpcm){
		body{
			width:1200px;
			transform:scale(.8);
			-moz-transform:scale(.8);
			-webkit-transform:scale(.8);
			transform-origin:0 0;
			margin:auto
		}
	}
}
/*---------- print end ----------*/