@charset "utf-8";

/*ページ内共通設定ここから*/
body{
	padding: 0;
	margin: 0;
}

#main section{
	--main-color:#00314c;
	--sub-color:#f8f8f8;
	--text-color:#000;
	--text-sub-color:#444;
	--text-color-hover:#fff;
}

#main {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
}

#main .min{
	font-family: "Noto Serif JP", serif;
	font-optical-sizing: auto;
	font-style: normal;
}

#main {margin: 0;}
#main *{box-sizing: border-box;}
html {scroll-behavior: smooth;}
#main h2,#main h3,#main h4,#main p,#main ul,#main li{margin: 0; padding: 0; line-height: normal; color: var(--text-color);}
#main a{text-decoration: none; transition: .4s all;}
#main ul{list-style: none;}
#main img{display:block; width: 100%; line-height: 1;}
#main h2{font-weight: bold; text-shadow: unset; background: transparent; border: none;}
#main h3{border: none;}

#main .section__inner{
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

#main .section__inner {
	box-sizing: border-box;
 }

#main .pc_none,
#main .pc_none02 {
    display: none;
}


@media screen and (max-width:1240px){
	#main .section__inner {
        padding: 0 2%;
        box-sizing: border-box;
    }
}

@media screen and (min-width:1025px){
	#main a:hover{opacity: .6;}
}

@media screen and (max-width:1024px){
	#main .pc_none02 {
	    display: block;
	}

	#main .tb_none {
	    display: none;
	}
    /*section {overflow: hidden;}*/
}

@media screen and (max-width:768px){
    #main .sp_none {
        display: none;
    }

    #main .pc_none {
        display: block;
    }
}

/*ページ内共通設定ここまで*/


/*section001ここから*/
#main .section001{
	width: 100%;
    max-width: 1200px;
    margin: 0 auto 40px;
    box-sizing: border-box;
}

@media screen and (max-width:1024px){
	#main .section001{
		margin-bottom: 4%;
	}
}

@media screen and (max-width:768px){
	#main .section001{
		margin-bottom: 10%;
	}
}
/*section001ここまで*/


/*section002ここから*/
#main .section002{
	margin-bottom: 80px;
}

#main .section002 h2{
	margin-bottom: 40px;
	font-size: 60px;
	text-align: center;
	font-weight: bold;
	line-height: 1;
}

#main .section002 .section__inner > p{
	margin-bottom: 80px;
	font-size: 18px;
	line-height: 1.8;
	color: var(--text-sub-color);
	text-align: center;
}

#main .section002 > div:not(.section__inner){
	padding: 80px 0;
	background: var(--sub-color);
}

#main .section002 > div h3{
	margin-bottom: 60px;
	font-size: 40px;
	text-align: center;
}

#main .section002 > div ul{
	display: -webkit-flex;
    display: flex;
    -webkit-align-items: stretch;
    align-items: stretch;
}

#main .section002 > div li{
	width: calc(94% / 3);
	max-width: calc(1120px / 3);
	padding: 40px;
	background: #fff;
	border-radius: 20px;
	box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, .2);
	opacity: 0;
}

#main .section002 > div li:not(:last-of-type){
	margin-right: 40px;
}

#main .section002 > div li div{
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	width: 40%;
	margin-bottom: 60px;
}

#main .section002 > div li p{
	font-size: 20px;
	text-align: center;
	font-weight: bold;
}

#main .section002 > div ul.is_active li{
	animation: animation .4s ease-out 0s 1 alternate forwards;
}

@media screen and (max-width:1240px){
	#main .section002 > div li{
		width: calc(92% / 3);
		padding: 3%;
	}

	#main .section002 > div li:not(:last-of-type){
		margin-right: 4%;
	}
}

@media screen and (max-width:1024px){
	#main .section002{
		margin-bottom: 8%;
	}

	#main .section002 h2{
		font-size: calc(1vw * calc(60 / 10.24));
		margin-bottom: 4%;
	}

	#main .section002 .section__inner > p{
		font-size: 16px;
		margin-bottom: 8%;
	}

	#main .section002 > div:not(.section__inner){
		padding: 8% 0;
	}

	#main .section002 > div h3{
		font-size: calc(1vw * calc(40 / 10.24));
		margin-bottom: 6%;
		font-weight: bold;
	}

	#main .section002 > div li{
		padding: 2.5%;
	}

	#main .section002 > div li div{
		width: 30%;
		margin-bottom: 6%;
	}

	#main .section002 > div li p{
		font-size: 16px;
	}
}

@media screen and (max-width:768px){
	#main .section002{
		margin-bottom: 10%;
	}

	#main .section002 h2{
		font-size: calc(1vw * calc(48 / 7.68));
	}

	#main .section002 .section__inner > p{
		margin-bottom: 10%;
	}

	#main .section002 > div:not(.section__inner){
		padding: 10% 0;
	}

	#main .section002 > div h3{
		font-size: calc(1vw * calc(40 / 7.68));
	}

	#main .section002 > div ul{
		display: block;
	}

	#main .section002 > div li{
		width: 70%;
		margin: 0 auto;
		padding: 6%;
	}

	#main .section002 > div li div{
		width: 20%;
	}

	#main .section002 > div li:not(:last-of-type){
		margin-right: auto;
		margin-bottom: 6%;
	}
}
/*section002ここまで*/


/*section003ここから*/
#main .section003{
	margin-bottom: 80px;
}

#main .section003 h2{
	margin-bottom: 40px;
	font-size: 40px;
	text-align: center;
	font-weight: bold;
	line-height: 1;
}

#main .section003 > div ul{
	display: -webkit-flex;
    display: flex;
    -webkit-align-items: stretch;
    align-items: stretch;
    flex-wrap: wrap;
}

#main .section003 > div ul li{
	width: calc(94% / 4);
	max-width: calc(1140px / 4);
	padding: 40px;
	background: #fff;
	border-radius: 20px;
	box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, .2);
	opacity: 0;
}

#main .section003 > div ul li:not(:nth-of-type(4n)){
	margin-right: 20px;
}

#main .section003 > div ul li:not(:nth-of-type(n+5)){
	margin-bottom: 20px;
}

#main .section003 > div li div{
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	width: 40%;
	margin-bottom: 40px;
}

#main .section003 > div li p:first-of-type{
	margin-bottom: 20px;
	font-size: 20px;
	text-align: center;
	font-weight: bold;
}

#main .section003 > div li p:last-of-type{
	font-size: 16px;
	color: var(--text-sub-color);
}

#main .section003 > div ul.is_active li{
	animation: animation .4s ease-out 0s 1 alternate forwards;
}

@media screen and (max-width:1240px){
	#main .section003 > div ul li{
		width: calc(94% / 4);
		padding: 2.5%;
	}

	#main .section003 > div ul li:not(:nth-of-type(4n)){
		margin-right: 2%;
	}

	#main .section003 > div ul li:not(:nth-of-type(n+5)){
		margin-bottom: 2%;
	}

	#main .section003 > div li p:first-of-type{
		font-size: 18px;
	}

	#main .section003 > div li p:last-of-type{
		font-size: 16px;
	}
}

@media screen and (max-width:1024px){
	#main .section003{
		margin-bottom: 8%;
	}

	#main .section003 h2{
		font-size: calc(1vw * calc(40 / 10.24));	
		margin-bottom: 4%;
	}

	#main .section003 > div li div{
		width: 35%;
		margin-bottom: 4%;
	}

	#main .section003 > div li p:first-of-type{
		font-size: 16px;
		margin-bottom: 2%;
	}

	#main .section003 > div li p:last-of-type{
		font-size: 14px;
	}
}

@media screen and (max-width:768px){
	#main .section003{
		margin-bottom: 10%;
	}

	#main .section003 h2{
		font-size: calc(1vw * calc(40 / 7.68));
		margin-bottom: 6%;
	}

	#main .section003 > div ul li{
		width: calc(96% / 2);
		max-width: none;
		padding: 4%;
	}

	#main .section003 > div ul li:not(:nth-of-type(4n)){
		margin-right: 0;
	}

	#main .section003 > div ul li:not(:nth-of-type(n+5)){
		margin-bottom: 0;
	}

	#main .section003 > div ul li:not(:nth-of-type(2n)){
		margin-right: 4%;
	}

	#main .section003 > div ul li:not(:nth-of-type(n+7)){
		margin-bottom: 4%;
	}
	
}
/*section003ここまで*/

/*section004ここから*/
#main .section004{
	margin-bottom: 100px;
}

#main .section004 > div:not(.section__inner){
	margin-bottom: 80px;
	padding: 80px 0;
	background: var(--sub-color);
}

#main .section004 > div h2{
	margin-bottom: 40px;
	font-size: 40px;
	text-align: center;
	font-weight: bold;
	line-height: 1;
}

#main .section004 > div p{
	font-size: 18px;
	line-height: 1.8;
	color: var(--text-sub-color);
}

#main .section004 > div p:first-of-type{
	margin-bottom: 40px;
}

#main .section004 .btn{
	width: 100%;
	max-width: 500px;
	margin: 0 auto;
	border: 2px solid #000;
}

#main .section004 .btn:first-of-type{
	margin-bottom: 40px;
}

#main .section004 .btn a{
	position: relative;
	display: block;
	width: 100%;
	padding: 25px 0;
	text-align: center;
	font-size: 30px;
	font-weight: bold;
	color: var(--text-color);
}

#main .section004 .btn a::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 30px;
	transform: translateY(-50%) rotate(45deg);
	width: 10px;
	height: 10px;
	border: 2px solid #000;
	border-width: 2px 2px 0 0;

}

@media screen and (max-width:1024px){
	#main .section004{
		margin-bottom: 10%;
	}

	#main .section004 > div:not(.section__inner){
		margin-bottom: 8%;
		padding: 8% 0;
	}

	#main .section004 > div h2{
		font-size: calc(1vw * calc(40 / 10.24));
		margin-bottom: 4%;
	}

	#main .section004 > div p{
		font-size: 16px;
	}

	#main .section004 > div p:first-of-type{
		margin-bottom: 4%;
	}

	#main .section004 .btn:first-of-type{
		margin-bottom: 4%;
	}

	#main .section004 .btn a{
		font-size: 24px;
		padding: 3% 0;
	}
}

@media screen and (max-width:768px){
	#main .section004{
		margin-bottom: 14%;
	}

	#main .section004 > div:not(.section__inner){
		margin-bottom: 10%;
		padding: 10% 0;
	}

	#main .section004 > div h2{
		font-size: calc(1vw * calc(40 / 7.68));
		margin-bottom: 6%;
	}

	#main .section004 > div p:first-of-type{
		margin-bottom: 8%;
	}

	#main .section004 .btn a{
		font-size: 20px;
	}
}
/*section004ここまで*/


@keyframes animation {
    0%{
    	opacity: 0;
        transform: translateY(50px);
    }

    100%{
    	opacity: 1;
        transform: translateY(0);
    }
}