@charset "UTF-8";
/* ----------------------------------------------------------------
共通
---------------------------------------------------------------- */
#contents {
  min-height: 100%;
}
#contents > .wrap {
  height: 100%;
}
@media screen and (max-width: 767px) {

}
#origin,#overview{
	background: #fff;
	padding: 100px 0;
}
section{
	position: relative;
}
section#origin:before,
section#overview:before{
	position: absolute;
	content: "";
	width: 60vw;
	bottom: -36px;
	right: 0;
	height: 72px;
	background: #15417E;
	clip-path: polygon(30px 0%, 100% 0%, 100% 100%, 0% 100%);
	z-index: 1;
}
section#gensoku:before{
	position: absolute;
	content: "";
	width: 40vw;
	bottom: -36px;
	left: 0;
	height: 72px;
	background: #15417E;
	clip-path: polygon(30px 0%, 100% 0%, 100% 100%, 0% 100%);
	 transform: scale(-1, 1);
	z-index: 1;
}
/* ----------------------------------------------------------------
fv
---------------------------------------------------------------- */
#fv {
    position: fixed;
    z-index: -1;
    top: 0;   /* 画面上端から表示（ヘッダー分下げる場合は 75px 等に調整） */
    left: 0;
    width: 100vw;  /* ウィンドウの幅 100% */
    height: 100vh; /* ウィンドウの高さ 100% */
    overflow: hidden; /* 拡大した時のはみ出し防止 */
}

#fv .inner {
    width: 100%;
    height: 100%;
}

#fv img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover; /* 画像を隙間なく、比率を保って表示 */
    transition: filter 0.4s ease, transform 0.4s ease; /* アニメーションを滑らかに */
}

/* スクロール時のスタイル（JSでクラスを付与） */
#fv.is-blurred img {
    filter: blur(10px);
    transform: scale(1.15); /* 白い縁を隠すために少し大きめに拡大 */
}
/* ----------------------------------------------------------------
tl_area
---------------------------------------------------------------- */
#tl_area {
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
    color: #fff;
    font-size: 57px;
    padding: 100px 30px;
}#tl_area h2{
	    letter-spacing: 0.01em;
}
@media screen and (max-width: 767px) {
	#tl_area {
    font-size: 27px;
    padding: 40px 0;
}
	#tl_area > .inner{
		padding-top: 0 !important;
	}
}
/* ----------------------------------------------------------------
aisatu
---------------------------------------------------------------- */
#aisatu{
		max-width: 820px;
	margin: 0 auto;
	    margin-bottom: 100px;
}
#aisatu > .inner{
	padding:80px;
	width: 100%;
	background: #fff;
}
#aisatu .tl {
    font-size: 40px;
    font-weight: 500;
    margin-bottom: 40px;
}
#aisatu .txt {
    margin-bottom: 30px;
    line-height: 1.7;
}
#aisatu .name{
	font-weight: 500;
}
#aisatu ul{
	margin-bottom: 30px;
	color: #072D69;
	font-size: 24px;
		font-weight: 400;
}
#aisatu .txt .big{
	font-size: 24px;
	}
#aisatu ul li{margin-bottom: 10px;}
@media screen and (max-width: 767px) {
	#aisatu{
		padding: 0 20px;
		        margin-bottom: 70px;
	}
	#aisatu > .inner {
    padding: 20px;
}
	#aisatu .tl {
    font-size: 28px;
}
	#aisatu .txt {
    font-size: 15px;
    margin-bottom: 20px;
}
#aisatu ul {
    font-size: 16px;
}
#aisatu .txt .big {
    font-size: 18px;
}
#aisatu .name {
    margin-bottom: 40px;
}
}
/* ----------------------------------------------------------------
origin
---------------------------------------------------------------- */
#origin > .inner{
			max-width: 1000px;
	margin: 0 auto;
	padding-bottom: 100px;
}
#origin .tl{
	text-align: center;
	font-size: 40px;
	font-weight: 400;
	margin-bottom: 50px;
}
#origin .tl span{
	display: block;
	color: #E50222;
	    font-size: 21px;
}
#origin .flex_box{
	display: flex;
	align-items: center;
	justify-content: space-between;
}
#origin .flex_box .logo{
	width: 280px;
}
#origin .flex_box .logo img{
	width: 100%;
}
#origin .flex_box .txt {
    width: calc(100% -  350px);
    font-size: 24px;
    font-weight: 500;
    line-height: 1.8;
}
@media screen and (max-width: 767px) {
#origin, #overview {
    padding: 50px 0;
}
#origin > .inner {
    padding: 0 20px 70px;
}
#origin .tl {
    font-size: 29px;
    margin-bottom: 40px;
}
#origin .tl span {
    font-size: 19px;
    margin-bottom: 12px;
}
#origin .flex_box {
    display: block;
}
	#origin .flex_box .logo {
    max-width: 280px;
    margin: 0 auto;
    width: 100%;
    margin-bottom: 40px;
}
#origin .flex_box .txt {
    width: 100%;
    font-size: 17px;
}
#origin > .inner {
    padding-bottom: 50px;
}
}
/* ----------------------------------------------------------------
gensoku
---------------------------------------------------------------- */
#gensoku{
	color: #fff;
}
#gensoku > .inner{
			max-width: 800px;
	margin: 0 auto;
	padding: 150px 20px;
}
#gensoku .tl{
	text-align: center;
	font-size: 40px;
	font-weight: 500;
	margin-bottom: 30px;
}
#gensoku ul li{
	font-size: 24px;
	position: relative;
	margin-bottom: 40px;
	margin-left: 55px;
	padding-bottom: 10px;
	display: inline-block;
}
#gensoku ul li:before{
	content: "";
	position: absolute;
	left: -55px;
	top: 50%;
	margin-top: -24px;
	height: 48px;
	width: 42px;
	background: url("../img/icon01.png")0 0 no-repeat;
	background-size: contain;
}
#gensoku ul li:nth-child(2):before{
		background: url("../img/icon02.png")0 0 no-repeat;
	background-size: contain;
}
#gensoku ul li:nth-child(3):before{
		background: url("../img/icon03.png")0 0 no-repeat;
	background-size: contain;
}
#gensoku ul li:after{
		content: "";
	position: absolute;
	left: 0;
	height: 1px;
	width: 100%;
	background: #fff;
	bottom: 0;
}
#gensoku p.txt{
	font-size: 20px;
}
@media screen and (max-width: 767px) {
#gensoku > .inner {
    padding: 70px 20px;
}
#gensoku .tl {
    font-size: 30px;
    margin-bottom: 30px;
}
#gensoku ul li {
    font-size: 22px;
    position: relative;
    margin-bottom: 40px;
    margin-left: 0;
    padding-top: 62px;
    padding-bottom: 0;
    display: inline-block;
	text-align: center;
	        width: 100%;
}
#gensoku ul li:before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    margin: auto;
    width: 46px;
    height: 58px;
}
	#gensoku ul li:after{
		content: none;
	}
	#gensoku p.txt {
    font-size: 15px;
}
	
}
/* ----------------------------------------------------------------
overview
---------------------------------------------------------------- */
#overview{
	background: #fff;
	padding: 150px 0;
}
#overview > .inner{
				max-width: 960px;
	margin: 0 auto;
	padding: 0 20px;
}
#overview .tl{
	text-align: center;
	font-size: 40px;
	font-weight: 400;
	margin-bottom: 50px;
}
#overview .tl span{
	display: block;
	color: #E50222;
	    font-size: 21px;
}
#overview .box{
	border-top: solid 1px #072D69;
}
#overview .box dl{
	border-bottom: solid 1px #072D69;
	display: flex;
}
#overview .box dt{
	border-right: solid 1px #072D69;
	width: 280px;
	padding: 30px;
	    display: flex;
    align-items: center;
}
#overview .box dd{
	width: calc(100% - 280px);
	padding: 30px;
}
#overview .box dd .red{
	color: #E50222;
}
#overview .box dd .bule{
	color: #417FE2;
}
#overview .box dd img{
	margin-top: 30px;
}
.mini_btn a{
	display: block;
	margin-top: 20px;
	color: #417FE2;
	border: solid 1px #417FE2;
	width: 240px;
	text-align: center;
	padding: 10px 20px;
	border-radius: 30px;
	transition:  0.5s ease;
}
.mini_btn a:hover{
	text-decoration: none;
	color: #fff;
	background: #417FE2;
}
@media screen and (max-width: 767px) {
#overview {
    background: #fff;
    padding: 80px 0;
}
	#overview .tl {
    font-size: 29px;
    margin-bottom: 40px;
}
#overview .tl span {
    font-size: 19px;
    margin-bottom: 12px;
}
	#overview .box dt {
    border-right: solid 1px #072D69;
    width: 100px;
    padding: 17px;
    display: flex;
    align-items: center;
}
	#overview .box dl {
    border-bottom: solid 1px #072D69;
    display: flex;
    font-size: 14px;
}
	#overview .box dd {
    width: calc(100% - 100px);
    padding: 17px;
}
#overview .box dd img {
    margin-top: 20px;
}
	.mini_btn a {
    display: block;
    margin-top: 20px;
    color: #417FE2;
    border: solid 1px #417FE2;
    width: 190px;
    text-align: center;
    padding: 10px 20px;
    border-radius: 30px;
    transition: 0.5s ease;
}
}
/* ----------------------------------------------------------------
hyousyou
---------------------------------------------------------------- */
#hyousyou{
	color: #fff;
}
#hyousyou > .inner{
			max-width: 1000px;
	margin: 0 auto;
	padding: 150px 20px;
	text-align: center;
}
#hyousyou .tl{
	text-align: center;
	font-size: 40px;
	font-weight: 500;
	margin-bottom: 30px;
}
#hyousyou ul{
	display: flex;
	justify-content: space-between;
	margin-bottom: 80px;
}
#hyousyou ul li{
	width: 31%;
}
#hyousyou .box02{
				max-width: 650px;
	margin: 0 auto;
}
@media screen and (max-width: 767px) {
#hyousyou > .inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 80px 20px;
    text-align: center;
}
	#hyousyou .tl {
    text-align: center;
    font-size: 27px;
    font-weight: 500;
    margin-bottom: 30px;
}
	#hyousyou ul {
    display: block;
    justify-content: space-between;
    margin-bottom: 80px;
}
#hyousyou ul li {
    width: 80%;
    margin: 0 auto 20px;
}
	#hyousyou .box02 {
    max-width: 650px;
    width: 80%;
    margin: 0 auto;
}
}