@charset "utf-8";
/***********************************************************************************************************************
* 基本構造
***********************************************************************************************************************/
html {
    width: 100%;
}

body{
	font-size: 1.6rem;/*基準*/
	line-height: 1.875em;
	color:#313131;
}
body.noduration *{
	transition-duration:  0s !important;
}


*{
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

.wrap{
	max-width: 1270px;
	padding: 0 20px;
	margin:0 auto;
}

.conts{
	max-width: 1150px;
	margin: 0 auto;
	padding:0;
}

.section{
	margin:65px 0 90px;
}
.case .section {
    margin: 65px 0 70px;
}

/*アンカー*/
a{
	cursor: pointer;
	text-decoration: none;
	-webkit-transition: opacity .2s ease;
	transition: opacity .2s ease;
	opacity: 1;
}

a:hover{
	opacity: 0.5;
}
	.link{ color:#0068b7;}

	.under{
		text-decoration: underline;
	}

	a[href^="tel:"] {
	    pointer-events: none;
	}

/*画像切り替えなど*/
.sp{ display: none !important; }
.pc{ display:block !important; }

/*カラー設定*/


.ft-crim{
	font-family: 'Crimson Text', serif !important;
	font-weight: 700;
}

img{ max-width: 100%; height: auto;}

/*画像幅100%*/
img.wide{ width: 100%; height: auto;}

/*ローディング*/
#loader-bg {
  display: none;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: #fff;
  z-index: 9999;
}


#loader {
  display: block;
  position: absolute;
  top: 50%;
  width: 100%;
  height: 60px;
  left: 0;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  text-align: center;
  z-index: 10000;
}

/*ローダー・サークル*/
.loader1{
  width:45px;
  height:45px;
  border-radius:50%;
  border:2px solid rgba(0,0,0,0.2);
  border-top-color:rgba(0,0,0,0.4);
  /* border-top-color:#00468C; */
  box-sizing:border-box;
  display: inline-block;
  animation:loading 0.6s linear infinite;
  -webkit-animation:loading 0.6s linear infinite;
}
	@keyframes loading{
	  0%{transform:rotate(0deg)}
	  100%{transform:rotate(360deg)}
	}
		@-webkit-keyframes loading{
		  0%{-webkit-transform:rotate(0deg)}
		  100%{-webkit-transform:rotate(360deg)}
		}

#all-wrap{
	opacity: 0;
}
/***********************************************************************************************************************
* パーツ
***********************************************************************************************************************/
.headline-lg {
	font-size: 3rem;
	font-weight: normal;
}

.headline-lg em{
	padding-right: 40px;
	font-size: 9rem;
	color:#004986;
	font-weight: bold;
	font-weight: 700 !important;
	display: inline-block;
	vertical-align: middle;
}
.headline-lg span{
	padding-right: 10px;
	font-weight: bold;
	font-size: 3.6rem;
	position: relative;
	display: inline-block;
	vertical-align: middle;
	margin-top: 0px;
}

.movie-area{
	padding:0 45px;
}
.movie-area .movie-ttl{
	font-size: 6rem;
	display: inline-block;
	color:#004986;
	padding-right: 80px;
	background-image:url(../img/icon-movie.png);
	background-repeat: no-repeat;
	background-position: 100% 55%;
}

.movie-area .movie-list{
}
	.movie-area .movie-list>li{
		width: 31.46%;
		margin-right: 2.8%;
		margin-bottom: 20px;
		text-align: center;
	}
	.movie-area .movie-list>li:nth-child(3n){
		margin-right: 0;
	}
		.movie-area .movie-list>li>p{
			line-height: 1.3em;
			padding: 23px 0;
			font-size: 2.4rem;
		}
		.movie-area .movie-list>li>p em{
			color:#0068b7;
			padding-right: 0.3em;
		}

.common-block1{
	margin-bottom: 70px;
}
.common-block1>.box{
	padding-right: 15px;
}
.common-block1>.box p.para{
	max-width:1000px;
	margin: 60px auto 30px;

}
.common-block1>.box p.author{
	max-width:1000px;
	margin: 0px auto 30px;
}

header {
	position: fixed;
	height: 58px;
	z-index: 100;
	width: 100%;
	height: 100px;
	transition: all 0.3s ease;
}

header.open{
	background: #fff;
}

header .page-ttl{
	position: fixed;
	height: 100vh;
	width: 100px;
	background: #fff;
	left:0;
	top:0;
}
header .page-ttl p{
	position: absolute;
	display: inline-block;
	margin-top: 0px;
	top: 50%;
	left: 35px;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
	text-align:center;
	text-align:center;
	white-space: nowrap;
	display: block;
	font-size: 1.4rem;
}

header .logo {
	position: fixed;
	right: 156px;
	top: 35px;
	display: inline-block;
	padding: 5px 30px;
}

body header nav{
	display: block;
	width: 250px;
	position:fixed;
	right:-250px;
	top:0;
	background: #fff;
	-webkit-transition: right 0.3s ease ;
	-moz-transition: right 0.3s ease ;
	-ms-transition: right 0.3s ease ;
	-o-transition: right 0.3s ease ;
	transition: right 0.3s ease ;
	overflow: all;
	box-shadow: 0px 0px 5px rgba(0,0,0,0.2);
	z-index: 10;
}

header nav.block{
	display: block;
}
header nav.active{
	right:0;
}

body header nav .menu{
	display: block;
	padding-top: 80px;
}

	body header nav .menu>li{
	padding: 0;
	margin: 0;
	}
	body header nav .menu>li>a{
	padding: 10px 27px;
	display: block;
	font-size: 1.6rem;
	}

	body header nav .corp{
	padding-top: 10px;
	padding-left: 27px;
	}

	body header nav .corp a{
	position: relative;
	display: block;
	max-width: 205px;
	height: 40px;
	line-height: 40px;
	background: #000;
	padding-right: 40px;
	font-size: 1.5rem;
	color:#fff;
	padding-top: 2px;
	padding-left: 10px;
	vertical-align: middle;
	}

	body header nav .corp a i {
	display: inline-block;
	position: absolute;
	width: 16px;
	top: 1px;
	right: 20px;
	text-align: center;
	}
	body header nav .corp a i img{
	vertical-align: middle;
	}

header .page-nation{
	position: fixed;
	width:40px;
	height: 100vh;
	top: 0;
	right: 0px;
	text-align:center;
	display: -ms-flex;
	display: -webkit-flex;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction:  column;
}

header .page-nation>li>a{
	padding: 10px 20px;
	width: 100%;
	display: block;
}


header .page-nation>li>a>span.dot{
	display: block;
	width: 10px;
	height: 10px;
	-webkit-border-radius: 50%;
	border-radius: 50%;
	background: #b5b5b5;
}
header .page-nation>li>a.current>span.dot{
	background: #000;
}

body header #menu-button {
	position: fixed;
	display: block;
	right: 111px;
	position: fixed;
	display: block;
	top: 23px;
	width: 65px;
	height: 58px;
	cursor: pointer;
	z-index: 1001;
	margin-top: 0;
}


			body header #menu-button>div{
				width: 30px;
				height: 1px;
				background: #1b1b1b;
				position: absolute;
				-webkit-transition: all .5s;
				   -moz-transition: all .5s;
				    -ms-transition: all .5s;
				     -o-transition: all .5s;
				        transition: all .5s;
			}
				body header.on #menu-button>div{
					background: #1b1b1b;
				}

				body header.block #menu-button>div {
				    background: #1b1b1b;
				}

			body header #menu-button>div:nth-child(1){
				top: 35%;
				left: 29%;
				-webkit-transform: translate(0%,0%);
				   -moz-transform: translate(0%,0%);
				    -ms-transform: translate(0%,0%);
				     -o-transform: translate(0%,0%);
				        transform: translate(0%,0%);
			}
			body header #menu-button.active{
				right:0px;
			}

			body header #menu-button.active>div{
				height: 1px;
			}

				body header #menu-button.active>div:nth-child(1) {
					top: 50%;
					left: 29%;
					-webkit-transform: translate(-5%,-50%) rotate(45deg);
					   -moz-transform: translate(-5%,-50%) rotate(45deg);
					    -ms-transform: translate(-5%,-50%) rotate(45deg);
					     -o-transform: translate(-5%,-50%) rotate(45deg);
					        transform: translate(-5%,-50%) rotate(45deg);
				}
			body header #menu-button>div:nth-child(2){
				top: 50%;
				left: 29%;
			}
				body header #menu-button.active>div:nth-child(2) {
					opacity: 0;
				}
			body header #menu-button>div:nth-child(3){
			    top: 65%;
			    left: 29%;
				-webkit-transform: translate(0%,0%);
				   -moz-transform: translate(0%,0%);
				    -ms-transform: translate(0%,0%);
				     -o-transform: translate(0%,0%);
				        transform: translate(0%,0%);
			}
				body header #menu-button.active>div:nth-child(3) {
					top: 50%;
					left: 29%;
					-webkit-transform: translate(-5%,-50%) rotate(-45deg);
					   -moz-transform: translate(-5%,-50%) rotate(-45deg);
					    -ms-transform: translate(-5%,-50%) rotate(-45deg);
					     -o-transform: translate(-5%,-50%) rotate(-45deg);
					        transform: translate(-5%,-50%) rotate(-45deg);
				}


footer{
	font-size: 1.8rem;
	padding: 70px 0 30px;
	line-height: 1.9em;
	border-top:1px solid #535353;
}

footer .title{
	font-weight:bold;
}
footer .copyright{
	text-align: right;
	font-size: 1.4rem;
}

footer .corp a{
	color: #00479d;
	font-weight: bold;
	font-size: 1.8rem;

}
.top-main{

}
.top-visual{
	position: relative;
	padding: 0 100px;
	padding-top: 58px;
}
.top-visual .catch-arw-layer{
	position: absolute;
	right:0;
	bottom:0;
	z-index: 100;
}

.top-visual .slide-area{
	position: relative;
	z-index: 1;
}


.top-visual .swiper-slide{
	position: relative;
	height: -webkit-calc( 100vh - 108px);
	height: calc( 100vh - 108px);
	background-repeat: no-repeat;
	background-size: cover;
	padding-top: 40px;
}

.top-visual .swiper-slide .inr{
	height: -webkit-calc( 100vh - 68px);
	height: calc( 100vh - 68px);
	background-repeat: no-repeat;
	background-size: cover;
}
.top-visual .catch{
	position: absolute;
	left:0;
	top:0px;
	z-index: 101;
}

.lum-lightbox{
	z-index: 100;
}


/***********************************************************************************************************************
*トップ
***********************************************************************************************************************/
#greetings{
	background: #f2f7f8;
	position: relative;
	z-index: 2;
}
#greetings .wrap{
	margin: 0 auto;
	max-width: 1260px;
	padding-top: 100px;
}
#greetings .bg-layer-top{
	position: absolute;
	background: #f2f7f8;
	left:0;
	top:0;
	width: 100%;
	z-index: 1;
}
#greetings .bg-layer-btm{
	position: absolute;
	left:0;
	bottom:0;
	width: 100%;
	background: #f2f7f8;
	z-index: 1;
}



#greetings .greetings-area{
	position: relative;
	z-index: 3;
}

#greetings .movie-area{
	position: relative;
	z-index: 3;
}

#greetings .greetings-block{
	position: relative;
	z-index: 1;
	margin: 0 auto 0px;
	border:1px solid  #271c85;
	padding-bottom: 0px;
}

/*greetings*/
#greetings .greetings-box{
	position: relative;
	margin-left:0px;
}


#greetings .greetings-box .greetings-ttl {
    font-size: 3rem;
    position: relative;
    line-height: 1.6em;
    margin-bottom: 25px;
}


#greetings .greetings-box .txt-layer p{
	font-size: 1.55rem;

}

#greetings .greetings-box .author{
	margin-top: 20px;
}

#greetings .greetings-block{
	display: -ms-flex;
	display: -webkit-flex;
	display: flex;

}

#greetings .greetings-box{
	width: 54%;
	padding: 45px 40px;
}


#greetings .greetings-block .img-box{
	width: 46%;
	padding: 50px 40px;
}

/*flow*/
#flow{
	margin: 70px auto;
}

/*talksession*/

#talksession{
	padding-top: 70px;
}
/*welcome*/
#welcome{
	position: relative;
	width: 100%;
	overflow: hidden;
	/*background: #f2f7f8;*/
	background-size: 100% auto;
	z-index: 1;
	margin-bottom: 2px;
}
#welcome::before{
	content:"";
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	top:0;
	left:0;
	background: #f2f7f8;
	z-index: -1;
}

#welcome .headline-lg{
	padding-top: 70px;
}
#welcome>div{
	position: relative;
	z-index: 2;
}

#welcome .welcome-area {
    position: relative;
    z-index: 3;
    margin-bottom: 60px;
}

#welcome .bg-layer-top{
	position: absolute;
	z-index: 2;
	width: 100%;
	left:0;
	top:-1px;
	background: #f2f7f8;
}

#welcome .bg-layer-btm{
	position: absolute;
	width: 100%;
	z-index: 1;
	left:0;
	bottom:0;
}
#welcome .bg-layer-btm::after{
	content:"";
	position: absolute;
	display: block;
	width: 100%;
	height:5px;
	bottom:-5px;
	left:0;
	background: #fff;
}
#welcome .bg-layer-btm img {
	vertical-align: bottom;
}

#welcome .movie-area {
    margin-bottom: 30px;
}

#welcome .common-block1>.box p.para {
    margin-bottom:0;
}
#welcome .common-block1>.box p.author {
    margin-top:0;
}
#welcome .common-block1 {
    margin-bottom: 0px;
}

#welcome .common-block1>.box p.author {
    max-width: 1000px;
    margin: 0px auto 0;
}

#gallery{
	position: relative;
	z-index: 1;
	padding-top: 70px;
	overflow: visible;
}

#gallery .para{
	margin: 50px 0;
}

#gallery .voice{
	text-align: center;
	margin: 50px 0;
	color:#004986;
}

/*#gallery*/
#gallery .title{
	font-size: 3.6rem;
	text-align: center;
	margin-bottom: 55px;
	color:#004986;
}
#gallery .voice{
	text-align: center;
}
#gallery .voice .caption{
	font-size: 3rem;
	font-weight: bold;
}

#gallery .photo-gallery{
	max-width: 1154px;
	margin:0 auto;
}
#gallery .photo-gallery>li{
	width: 29.33%;
	margin-right: 6%;
	margin-bottom: 50px;
}
#gallery .photo-gallery>li:nth-child(3n){
	margin-right: 0;
}

#gallrey-area{
	padding: 64px 0;
	background: url(../img/dot.png);
}


.lum-lightbox-inner img {
    max-width: 100%;
    max-height: 100%;
}
/***********************************************************************************************************************
* 横サイズ1439px以下
***********************************************************************************************************************/
@media screen and (max-width: 1439px){

	.wrap{
		padding-left: 50px;
	}

	header .page-ttl {
	    width: 50px;
	}

	header .page-ttl p {
	    left: 15px;
	}

/* 	header nav {
	    width: 70px;
	}
 */
	.top-visual {
	    padding: 58px 50px 0;

	}

	.top-visual .catch{
		width: 50%;
	}

}/**/

/***********************************************************************************************************************
* 横サイズ1200px以下
***********************************************************************************************************************/
@media screen and (max-width: 1200px){
	.headline-lg {
	    font-size: 2.5rem;
	    font-weight: normal;
	}

	.headline-lg em {
	    padding-right: 20px;
	    font-size: 6rem;
	}
	.headline-lg span {
	    font-size: 2.8rem;
	}

	#greetings .greetings-box {
	    width: 60%;
	    padding: 45px 0 40px 30px;
	}
	#greetings .img-box {
	    width: 40%;
	}

	#greetings .greetings-box .greetings-ttl {
	    font-size: 2.2rem;
	    margin-bottom: 25px;
	}

	#talksession {
	    padding-top: 70px;
	}

	.movie-area .movie-list>li>p {
	    font-size: 2rem;
	}

}
