@charset "utf-8";

/* common */

.toppage h3 { font-size: 20px; margin-bottom: 47px;}
.toppage h3 span { display: block; font-size: 120px; letter-spacing: 0.04em; margin-bottom: 18px;}
.toppage h4 { font-size: 54px; line-height: 1.481; font-family: 'NotoSansJP-Bold'; margin-bottom: 37px;}

.toppage .btns { display: block; width: 280px; font-size: 16px; font-family: 'Barlow-Bold'; color: #fff!important; line-height: 50px; text-align: center; background-color: #193254; border-radius: 25px;}

.bg_01 { background: url(../images/top/bg_01.jpg) no-repeat center top / cover;}

/* fv */

#fv { position: relative; overflow: hidden; width: 100%; height: 100vh; min-height: 1000px; display: block;}

#fv p { position: absolute; top: 134px; left: 6%; font-size: 74px; z-index: 5;}
#fv p span { display: block; font-size: 63px; margin-top: 20px; letter-spacing: -0.01em;}
#fv p small { display: block; font-size: 25px; margin-top: 20px; letter-spacing: 0.07em;}

#fv h2 { position: absolute; bottom: 47px; left: 6%; font-size: 90px; line-height: 1.222; text-align: left; z-index: 5;}

/* fv swiper */

#fv .swiper-container { width: 90%; height: calc( 100% - 300px); position: absolute; right: 0; top: 200px; z-index: 2;}
#fv .swiper-wrapper { height: 100%;}

#fv .swiper-slide { position: relative; width: 100%; height: 100%;}

#fv .fv_01 { background: url(../images/top/fv_01.jpg) no-repeat right top / cover;}

#fv .fv_02 { background:  url(../images/top/fv_02.jpg) no-repeat right top / cover; }


#fv .fv_03 { background:  url(../images/top/fv_03.jpg) no-repeat right top / cover; }

#fv .swiper-pagination { top: 50%; left: -5%;}

/* fv news */

#fv .news { position: absolute; width: 45%; bottom: 35px; right: 0; background: #fff url(../images/common/arrow_01.png) no-repeat 95% center / 10px; border-radius: 50px 0 0 50px; box-shadow: 6.428px 7.66px 20px 0px rgba(10, 3, 6, 0.2); z-index: 5;}
#fv .news dl { display: flex; font-size: 16px; padding: 20px 44px;}
#fv .news dt { color: #07499f; padding: 20px 30px 20px 0; margin-right: 30px; border-right: 1px solid #c9c9c9;}
#fv .news dd { padding: 23px 0;}


/* about */

#about { padding: 110px 0;}
#about .about { display: flex; flex-flow: row-reverse; justify-content: flex-end;}
#about .about_l { position: relative; width: 48%; margin-right: 79px;}
#about .about_l:before { display: block; content: ""; width: 100%; height: 400px; background-color: #e4f3fa;}
#about .about_l img { position: absolute; top: 100px; right: 75px;}
#about .about_r { width: 550px;}
#about .about p { font-size: 16px; line-height: 2; margin-bottom: 60px;}

/* service */

#service { padding: 144px 0 156px; background: url(../images/top/bg_02.jpg) no-repeat center top / cover; width: calc( 100% - 50px); padding-left: 50px;}
#service h3 { color: #fff; margin-bottom: 55px;}
#service ul { display: flex; justify-content: space-between;}
#service li { width: 350px; color: #fff;}
#service li img { margin-bottom: 27px;}
#service li h4 { font-size: 30px; line-height: 1.333; margin-bottom: 12px; text-align: center;}
#service li p { font-size: 16px; line-height: 2;}


/* area */

#area { padding: 100px 0 0; background: url(../images/top/bg_03.png) no-repeat right top; background-size: 890px;}
#area .service { width: 550px; margin-bottom: 70px;}
#area p { font-size: 16px; line-height: 2;}

#area .support { margin-bottom: 100px;}
#area .support h5 { font-size: 24px; margin-bottom: 30px;}

/* area swiper */

#area .swiper-tabs { width: 100%; position: relative;}
#area .swiper-tabs__list { display: flex; justify-content: center; border-bottom: 1px solid #ccc; margin-bottom: 40px;}
#area .swiper-tabs__item { position: relative; width: 200px; text-align: center; cursor: pointer; padding: 10px 0; margin: 0 2.5px; font-size: 20px; color: #7d7d7d; letter-spacing: 0.2em; border-bottom: 5px solid #c9c9c9;}
#area .swiper-tabs__item p { font-size: 20px; color: #7d7d7d; letter-spacing: 0.2em;}
#area .swiper-tabs__item.active { color: #003597; border-bottom: 5px solid #003597;}
#area .swiper-tabs__item.active p { color: #003597;}
#area .swiper-tabs__item.active:after { position: absolute; content: ""; border-style: solid; border-width: 9px 7.5px 0 7.5px; border-color: #003597 transparent transparent transparent; bottom: -12px; left: 50%; transform: translateX(-50%);}
#area .swiper-tabs__pane { display: none; padding: 10px;}
#area .swiper-tabs__pane.active { display: block;}

#area .swiper-tabs__pane .flex { display: flex; justify-content: space-between; flex-wrap: wrap;}
#area .swiper-tabs__pane .flex a { display: block; width: 200px; font-size: 16px; background: #fff; border: 1px solid #c9c9c9; border-radius: 10px; padding: 18px 0; text-align: center; margin-bottom: 10px;}


/* area roop */

#area .slide { width: 100%; height: 500px; background: url(../images/top/slider.png) repeat-x center bottom / cover; animation: bgroop 55s linear infinite; -webkit-animation: bgroop 55s linear infinite; position: relative;}

@keyframes bgroop{ 
 from{ background-position: 0 0;}
 to{ background-position: -1901px 0;}
}
@-webkit-keyframes bgroop{ 
 from{ background-position: 0 0;}
 to{ background-position: -1901px 0;}
}

/* works */

#works { padding: 100px 0; background: url(../images/top/bg_04.jpg) no-repeat center top / cover;}
#works h4 { margin-bottom: 116px;}
#works .works { display: flex; justify-content: space-between; align-items: flex-end; width: 100%; margin-bottom: 60px; padding: 0 30px 26px 30px; box-shadow: 6.428px 7.66px 20px 0px rgba(10, 3, 6, 0.2);}

#works .works_l { width: 610px;}
#works .works_l .title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;}
#works .works_l .title h5 { font-size: 36px; color: #003597; border-left: 10px solid #003597; padding: 31px 0 15px 31px; }
#works .works_l .title .area { font-size: 14px; padding-top: 22px;}
#works .works_l .title .area_f { display: flex; background-color: #fff; border: 1px solid #003597; border-radius: 15px;}
#works .works_l .title .area .area_name { width: 70px; color: #fff; padding: 6px 0; text-align: center; background-color: #003597; border-radius: 15px 0 0 15px;}
#works .works_l .title .area .place { padding: 4px 20px 6px 15px; line-height: 1.3;}

#works .works_l table { width: 100%; }
#works .works_l table tr { border-bottom: 1px solid #c9c9c9;}
#works .works_l table tr:last-child { border-bottom: 0px;}
#works .works_l table th { position: relative; width: 155px; padding-left: 1em; text-align: left; background: url(../images/common/)}
#works .works_l table th:before { border-radius: 50%; width: 10px; height: 10px; display: block; position: absolute; left: 0; top: 44%; bottom: 0px; content: ""; background: #003597;}

#works .works_l table td { text-align: right; line-height: 1.5; padding: 12px 0;}
#works .works_l table .txt { text-align: right;}
#works .works_l table tr:last-child td { font-size: 20px; padding-bottom: 0;}
#works .works_l table td span { font-size: 50px; color: #003597;}

#works .works { }

#works .btns { margin: 0 auto;}

/* magazine */

#magazine { padding: 100px 0; position: relative;}

#magazine h3 { margin-bottom: 30px;}
#magazine h4 { font-size: 16px; margin-bottom: 55px; font-family: 'NotoSansJP-Regular';}
#magazine .swipe { position: relative;}
#magazine .swiper-container { width: 100%; height: 425px; margin-bottom: 60px; overflow: hidden;}
#magazine .swiper-container .swiper-wrapper { }
#magazine .swiper-container .swiper-slide { width: 320px; height: 100%;}

#magazine .swiper-button-prev,
#magazine .swiper-button-next { position: absolute; top: 50%; width: 80px; height: 80px; margin-top: -22px; z-index: 10; cursor: pointer; color: transparent;}

#magazine .swiper-button-prev { left: -0; background: url(../images/top/arrow_01.png) no-repeat center center / 15px, repeating-linear-gradient( to left, #074aa0, #1565b7 );}

#magazine .swiper-button-next { right: -0; background: url(../images/top/arrow_02.png) no-repeat center center / 15px, repeating-linear-gradient( to left, #074aa0, #1565b7 );}

#magazine .swiper-container a { display: inline-block;}
#magazine .swiper-container a img { margin-bottom: 34px;}
#magazine .swiper-container a .ymd { font-size: 16px; color: #7d7d7d; font-family: 'Montserrat'; margin-bottom: 20px;}
#magazine .swiper-container a h3 { font-size: 20px; font-family: 'NotoSansJP-Medium'; line-height: 1.7; margin-bottom: 20px;}
#magazine .swiper-container a .genre { width: 90px; padding: 4px 0; font-size: 12px; font-family: 'NotoSansJP-Regular'; color: #fff; background: linear-gradient( 90deg, rgb(7,74,160) 0%, rgb(21,101,183) 99%); border-radius: 3px; text-align: center;}

#magazine .prenex { position: relative; max-width: 1390px; margin: 0 auto; bottom: 340px;}

#magazine .btns { margin: 0 auto;}

/* ----------------------------- mobile ------------------------------- */
@media only screen and (max-width: 768px) {
	
	
	/* common */

	.toppage h3 { font-size: 14px; margin-bottom: 35px;}
	.toppage h3 span { font-size: 65px; margin-bottom: 15px;}
	.toppage h4 { font-size: 30px; line-height: 1.5; margin-bottom: 22px;}
	
	.toppage .btns { width: 100%; font-size: 13px; color: #fff!important; line-height: 50px; border-radius: 50px; margin: 0 auto;}
	
	.bg_01 { background: url(../images/top/bg_01_fv.jpg) no-repeat center top / cover;}
	
	/* fv */
	
	#fv { min-height: auto; height: 91vh;}
	
	#fv p { top: 66px; left: 6%; font-size: 42px;}
	#fv p span { font-size: 35px; margin-top: 0; letter-spacing: -0.01em;}
	#fv p small { font-size: 14px; margin-top: 11px; letter-spacing: 0.07em;}
	
	#fv h2 { bottom: 120px; left: 6%; font-size: 48px; line-height: 1.222;}
	#fv h2:before { display: inline-block; content: ""; width: 74%; height: 50px; background-color: #fff; position: absolute; top: 0; left: 0; z-index: -1;}
	
	/* fv swiper */

	#fv .swiper-container { width: 90%; height: calc( 100% - 330px); top: 125px;}
	#fv .swiper-wrapper { height: 100%;}
	
	#fv .swiper-slide { position: relative; width: 100%; height: 100%;}
	#fv .fv_01 { background: url(../images/top/fv_01_sp.jpg) no-repeat right center / cover;}
	#fv .fv_02 { background-color: #eee; }	
	#fv .fv_03 { background-color: #ababab; }
	
	
	#fv .news {  width: 90%; bottom: 22px; background: #fff url(../images/common/arrow_01.png) no-repeat 95% center / 12px;}
	#fv .news dl { display: block; padding: 20px 30px;}
	#fv .news dt { font-size: 12px; padding: 0 0 8px; margin-right: 0; border-right: 0px;}
	#fv .news dd { font-size: 13px; padding: 0;}
			
	/* about */
	
	#about { padding: 30px 0 60px;}
	#about .about { display: block;}
	#about .about_l { position: relative; width: 100%; margin: 0 0 100px;}
	#about .about_l:before { display: block; content: ""; width: 92%; height: 200px; background-color: #e4f3fa;}
	#about .about_l img { position: absolute; top: 25px; right: 10%; width: 80%;}
	#about .about_r { width: 90%; margin: 0 auto 40px;}
	#about .about p { font-size: 13px; line-height: 2.038; margin-bottom: 40px; font-family: 'NotoSansJP-Regular';}
	#about .btns { width: 80%;}
	
	/* service */
	
	#service { padding: 60px 0; width: 100%; background: linear-gradient( 0deg, rgb(7,74,160) 0%, rgb(21,101,183) 99%);}
	#service h3 { line-height: 1.714; margin-bottom: 17px;}
	#service ul { display: block;}
	#service li { width: 250px; margin: 0 auto 36px;}
	#service li img { margin-bottom: 20px;}
	#service li h4 { font-size: 24px; line-height: 1.5; margin-bottom: 10px;}
	#service li p { font-size: 13px; line-height: 1.615;}
	
	
	/* area */
	
	#area { padding: 60px 0 0; background: url(../images/top/bg_03.png) no-repeat center 450px; background-size: 100%;}
	#area .service { width: 100%; margin-bottom: 237px;}
	#area p { font-size: 13px; line-height: 2.038;}
	
	#area .support { margin-bottom: 20px;}
	#area .support h5 { font-size: 15px; margin-bottom: 20px; text-align: center;}
		
	/* area swiper */
	
	#area .swiper-tabs { width: 100%; position: relative;}
	#area .swiper-tabs__list { margin-bottom: 15px;}
	#area .swiper-tabs__item { width: 25%; padding: 6px 0; margin: 0 1.5px; font-size: 15px; border-bottom: 4px solid #c9c9c9;}
	#area .swiper-tabs__item p { font-size: 15px;}
	#area .swiper-tabs__item.active { border-bottom: 4px solid #003597;}
	#area .swiper-tabs__item.active:after { position: absolute; content: ""; border-style: solid; border-width: 9px 7.5px 0 7.5px; border-color: #003597 transparent transparent transparent; bottom: -12px; left: 50%; transform: translateX(-50%);}
	#area .swiper-tabs__pane { padding: 10px;}
	
	#area .swiper-tabs__pane .flex { }
	#area .swiper-tabs__pane .flex a { display: block; width: 48%; font-size: 13px; border-radius: 10px; padding: 9px 0; margin-bottom: 5px; transition: all .4s ease 0s; overflow: hidden; opacity: 1;}
	
	#area .swiper-tabs__pane .flex a.is-hidden { visibility: hidden; opacity: 0; height: 0; margin: 0 10px; padding: 0;}
	
	
	#area .more { border-top: 1px solid #003597; background: url(../images/top/icn_01.png) no-repeat center bottom / 16px; cursor: pointer;}
	#area .more p { font-size: 12px; color: #003597; text-align: center; line-height: 1; padding: 15px 0 20px;}
	
	/* area roop */
	
	#area .slide { width: 100%; height: 218px; background: url(../images/top/slider.png) repeat-x center bottom / cover; }
	
	
		
	/* works */
	
	#works { padding: 50px 0; background: url(../images/top/bg_04.jpg) no-repeat center top / cover;}
	#works h4 { margin-bottom: 30px;}
	#works .works { display: block; margin-bottom: 25px; padding: 0 25px 25px 25px;}
	
	#works .works_l { width: 100%;}
	#works .works_l .title { display: block; margin-bottom: 10px;}
	#works .works_l .title h5 { font-size: 25px; border-left: 8px solid #003597; padding: 19px 0 7.5px 15px; margin-bottom: 17px;}
	#works .works_l .title img { width: 100%; height: auto; margin-bottom: 22.5px;}
	#works .works_l .title .area { width: 100%; font-size: 12px; padding-top: 0;}
	#works .works_l .title .area { border-radius: 23px;}
	#works .works_l .title .area .area_name { width: 30%; padding: 6px 0; border-radius: 23px 0 0 23px;}
	#works .works_l .title .area .place { text-align: center; margin: 0 auto; padding: 6px 0; line-height: 1;}
	
	#works .works_l table,
	#works .works_l table tr,
	#works .works_l table th,
	#works .works_l table td { display: inline-block; width: 100%;}
	#works .works_l table tr { }
	#works .works_l table tr:last-child { border-bottom: 0px;}
	#works .works_l table th { font-size: 13px; text-align: left; padding: 8px 0 6px 1em;}
	#works .works_l table th:before { width: 5px; height: 5px;}
	#works .works_l table td { font-size: 12px; text-align: left; line-height: 1.5; padding: 0 0 8px 1em;}
	#works .works_l table .txt { text-align: left; }
	#works .works_l table tr:last-child td { font-size: 12px; padding-bottom: 0;}
	#works .works_l table td span { font-size: 25px;}
	
	#works .works { }
	
	#works .btns { width: 80%;}
	
	/* magazine */
	
	#magazine { padding: 50px 0;}
	
	#magazine h3 { margin-bottom: 25px;}
	#magazine h4 { font-size: 13px; margin-bottom: 32px;}
	
	#magazine .swipe { width: 100vw; margin: 0 calc(50% - 50vw);}
	#magazine .swiper-container { width: 100%; height: 300px; margin-bottom: 35px; overflow-x: hidden;}
	#magazine .swiper-container .swiper-wrapper { overflow-x: visible;}
	#magazine .swiper-container .swiper-slide { width: 250px; height: 100%;}

	#magazine .swiper-button-prev,
	#magazine .swiper-button-next { position: absolute; top: 50%; width: 50px; height: 50px; margin-top: -22px; z-index: 10; cursor: pointer; color: transparent;}
	
	#magazine .swiper-button-prev { left: 0px; background: url(../images/top/arrow_01.png) no-repeat center center / 12px, repeating-linear-gradient( to left, #074aa0, #1565b7 );}
	
	#magazine .swiper-button-next { right: 0px; background: url(../images/top/arrow_02.png) no-repeat center center / 12px, repeating-linear-gradient( to left, #074aa0, #1565b7 );}

	#magazine .swiper-container { margin-bottom: 35px;}
	#magazine .swiper-container ul { display: flex; justify-content: space-between; overflow: hidden;}
	#magazine .swiper-container a { display: block; width: 250px; margin: 0 auto;}
	#magazine .swiper-container a img { margin-bottom: 18px;}
	#magazine .swiper-container a .ymd { font-size: 13px; margin-bottom: 10px;}
	#magazine .swiper-container a h3 { font-size: 13px; line-height: 1.731; margin-bottom: 10px;}
	#magazine .swiper-container a .genre { width: 60px; padding: 2px 0; font-size: 10px;}
	
	#magazine .prenex { position: relative; max-width: none; margin: 0 auto; bottom: 270px;}
	
	#magazine .btns { width: 80%;}
		
}
