@charset "utf-8";
/* CSS Document */


/*--------------
index 要素
--------------*/

/* KV
------------------------------------------- */

.kv {
	height: 100vh;
	background: url("../img/kv.jpg") no-repeat center top;
	background-size: cover;
	padding-bottom: 0;
	padding-top: 0;
	margin-top: 0;
	position: relative
}

.kv-ttl-area {
	width: 90%;
	text-align: center;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.kv-ttl-area h1 {
	font-weight: 600;
	font-size: 2.2em;
	line-height: 1.7em;
	font-family: 'Noto Serif JP', serif;
	margin-bottom: 1em;
	color: #fff;
	text-shadow: 0 3px 18px rgba(0,0,0,.5);
	word-break: keep-all;
}
.kv-ttl-area h2 {
	font-size: 1.3em;
	color: #fff;
}
.red-bg {
	position: absolute;
	top: 70%;
	left: 0;
	height: 1300px;
	clip-path: polygon(0 0, 100% 46%, 100% 100%, 0 63%);
	background-color: #E60013;
}

@media only screen and (min-width : 641px) and (max-width : 1008px) {
  /*tablet用のcssを記述*/
}
@media screen and (max-width:640px) {
  /*スマホ用のcssを記述*/
	
	.kv-ttl-area h1 span {
		display: none;
	}
}


.none-index-kv {
    width: 100%;
    margin-bottom: 60px;
    padding-top: 286px;
    position: relative;
    top: 0;
    overflow: hidden;
}
.none-index-kv::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(224,236,246,1);
    transform: skewY(-6deg) translateY(-90px);
    z-index: -1;
}
.none-index-kv::after {
    content: '';
    position: absolute;
    top: -20px;
    bottom: -20px;
    left: 0;
    right: 0;
    background-color: #003C70;
    transform: skewY(-3deg) translateY(-90px);
    z-index: -2;
}

@media screen and (max-width:640px) {
  /*スマホ用のcssを記述*/
	.none-index-kv {
		padding-top: 197px;
	}
	.none-index-kv::before {
		transform: skewY(-13deg) translateY(-90px);
	}

	.none-index-kv::after {
		transform: skewY(-6deg) translateY(-90px);
	}
	.none-index-kv h2 {
		position: absolute;
		left: 40px;
		top: 71px;
	}
}



/* コンセプト
------------------------------------------- */
.concept {
	margin-top: -20vh;
	margin-bottom: 20vh;
	position: relative;
  height: 600px;
}
.blue-bg {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  width: 100%;
  height: 600px;
  z-index: 0;
  background:   linear-gradient(51deg, rgba(0,60,112,1) 0%, rgba(85,170,245,1) 54%, rgba(11,109,195,1) 100%);
  transform: skewY(-7.7deg);
  transform-origin: top right;
	
}

.blue-bg-inner {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
	transform: translate(0, 200px);
  max-width: 1020px;
	width: 100%;
	height: 800px;
  margin: 0 auto;
  z-index: 1;
  text-align: center;
	word-break: keep-all;
}
.red-bg {
	position: absolute;
  top: -200px;
  bottom: 0;
  right: 0;
  left: 0;
	transform: translate(0, 200px);
	background:  rgba(230,0,19,1);
	clip-path: polygon(0 0, 100% 46%, 100% 100%, 0 63%);
	height: 800px;
  width: 100%;
}
.cct-ttl {
	font-size: 2em;
	color: #FFF133;
	font-weight: 600;
	text-align: center;
	margin-bottom: 2em;
	font-family: 'Noto Serif JP', serif;	
}

.cct-txt {
	text-align: center;
	color: #fff;
	line-height: 2.5em;
	margin: 0 auto 50px;
	width: max-content;
	word-break: keep-all;
}

.photo-area {
	width: 95%;
	margin: 0 auto;
}

.photo-list-wrap {
	display: flex;
	justify-content: space-between;
	width: 100%;
}

.photo-list {
	width: 30%;
	height: 25%;
}

.photo-list img {
	object-fit: cover;
}

@media screen and (max-width:640px) {
	.blue-bg-inner{
		transform: translate(0, 130px);
	}
	.cct-ttl {
		margin-bottom: 1.5em
	}
	.cct-txt {
		width: 90%;
		line-height: 2em;
	}
	.photo-area {
		overflow-x: scroll;
	}
	ul.photo-list-wrap {
		width: 800px;
     overflow-x: scroll;
	}
	.photo-list {
		margin: 0 auto;
	}
	.photo-list img {
		width:65vw;
	}
}




/* 流れる文字
------------------------------------------- */
.bbs{
  align-items: center;
  color: #fff;
  display: flex;
  height: 40px;
  line-height: 40px;
  overflow:hidden;
  width: 100%;
  white-space:nowrap;
  margin-top: 8%;
  z-index: 10;
	font-family: 'Bebas Neue', sans-serif;
	position: absolute;
	top: 0;
	left: 0;
	transform: rotate(-7.7deg)
}
.bbs ul {
  animation: flowing 50s linear infinite;
  font-size: 30px;
  transform:translateX(100%);
  margin: 0;
  padding: 0;
}
.bbs ul li{
  display: inline-block;
  padding-right: 10px;
}
@keyframes flowing {
  0% { transform:translateX(0); }
  100% { transform:translateX(-100%); }
}


/* サービス案内
------------------------------------------- */
.service-nav-area {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
  max-width: 930px;
	width: 100%;
	margin: 0 auto;
}
.service-nav-box.__w100 {
	width: 100%;
	margin-bottom: 3%;
}

.service-nav-box.__w30 {
	width: 31%;
}
.__w100 .service-txt-box {
	flex-wrap: wrap;
    display: flex;
    width: 80%;
    justify-content: space-between;
}

.__w100 .service-nav-ttl,
.__w100 .service-nav-txt {
	width: 80%;
}

.__w100 .service-nav-ttl p,
.__w100 .service-nav-txt p {
	text-align: left;
}
.__w100 .arrow-icon {
	width: 15%;
}
.service-nav-box{
  overflow: hidden;
  position: relative;
  cursor: pointer;
	width: 100%;
  height:280px;
}

.service-nav-box-bg,
.service-nav-box-bg01,
.service-nav-box-bg02,
.service-nav-box-bg03 {
  width: 100%;
  height:100%;
  position: relative;
  z-index: 0;
  transition: .3s ease-in-out;
}
.service-nav-box-bg {
	background: url('../img/pic01.jpg') center center / cover no-repeat;
}
.service-nav-box-bg01 {
  background: url('../img/pic02.jpg') center center / cover no-repeat;
}
.service-nav-box-bg02 {
  background: url('../img/pic03.jpg') center center / cover no-repeat;
}
.service-nav-box-bg03 {
  background: url('../img/pic01.jpg') center center / cover no-repeat;
}


.service-nav-box .Link {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.service-nav-box-bg01,
.service-nav-box-bg02,
.service-nav-box-bg03 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.service-nav-box-bg:hover,
.service-nav-box-bg01:hover,
.service-nav-box-bg02:hover,
.service-nav-box-bg03:hover{
  transform: scale(1.1);
}

.service-nav-box-bg::before,
.service-nav-box-bg01::before,
.service-nav-box-bg02::before,
.service-nav-box-bg03::before{
  background: linear-gradient(45deg, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.3) 70%);
  content: "";
  height: 100%;
  position: absolute;
  width: 100%;
  z-index: -1;
}

.service-txt-box{
  position: absolute;
  top: 50%;
  left: 50%;
	transform: translate(-50%,-50%);
  pointer-events: none;
	width: 100%;
}

.box-text h2{
  color: #fff;
  font-size: 28px;
  font-weight: bold;
}

.service-nav-ttl p {
  color: #fff;
	font-size: 20px;
  margin-bottom: 1em;
	text-align: center;
	font-weight: 700;
}
.service-nav-txt p {
  color: #fff;
  margin-bottom: 1em;
	font-size: 14px;
	text-align: center;
	font-weight: 500;
}
.arrow-icon {
	text-align: center;
	color: #fff;
}
.arrow-icon i {
	font-size: 1.2em
}


@media screen and (max-width:900px) {
	.service-nav-area {
		flex-wrap: wrap;
	}

			.__w100 .service-txt-box {
				width: 90%;
			}

			.__w100 .service-nav-ttl,
			.__w100 .service-nav-txt {
				width: 100%;
			}

			.__w100 .service-nav-ttl p,
			.__w100 .service-nav-txt p {
				text-align: center;
			}
			.__w100 .arrow-icon {
				width: 100%;
			}
	
	.service-nav-box.__w100,
	.service-nav-box.__w30 {
		width: 48%;
	}
	.service-nav-txt {
		width: 80%;
		margin: 0 auto;
	}
}

@media screen and (max-width:640px) {
	
	.service-nav-area .service-nav-box ~ .service-nav-box {
		margin-top: 30px;
	}
	.service-nav-box.__w100,
	.service-nav-box.__w30 {
		width: 90%;
		margin: 0 auto
	}
	
}


/* メッセージ
------------------------------------------- */

.message-wrap {
	width: 100%;
	box-shadow: 0 0 8px rgba(0,0,0,.16);
	display: flex;
	align-items: center;
}

.msg-img-area, 
.msg-txt-area {
	width: 50%;
}
.msg-img-area {
	background: url("../img/ceo.jpg") center left / cover no-repeat;
	padding-top: 300px
}

.msg-txt-area {
	max-width: 500px;
	padding: 40px;
	line-height: 1.5em
	
}
.msg-txt-area p ~ p {
	margin-top: 1em;
}

.msg-ttl {
	font-size: 25px;
	color: #003C70;
}
.msg-name {
	text-align: right;
}


@media screen and (max-width:740px) {
	.message-wrap{
		flex-direction: column;
	}
	.msg-img-area,
	.msg-txt-area {
		width: 100%;
	}
}

/*
news 要素
------------------------------------------- */
.news-wrap {
	display: none
}
.news {
    width: 100%;
    margin: 0;
    padding: 150px 0;
    position: relative;
    top: 200px;
	margin: 0 0 300px;
}
.news:before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(224,236,246,1);
    transform: skewY(8deg);
    z-index: -1;
}
.skyblue-bg-inner {
	max-width: 887px;
	width: 90%;
	margin: 0 auto;
}
p.comming-txt {
	font-size: 25px;
	font-weight: 500;
	font-family: 'Roboto', sans-serif;
	color: hsla(207,54%,87%,1.00);
	text-align: center;
	
}
/* ニュースティッカー
------------------------------------------- */

/*ニュース1行の周りの余白*/
.slider {
	max-width: 800px;
	margin: 0 auto;
}
.slider a{
    display: block;
    background:#fff;
    padding:20px;
}

/*日付*/
.slider span {
    display:inline-block;
    font-size:0.8rem;
    margin-right:10px;
    color:#777;
}

.to-news {
	width: fit-content;
	background-color: #fff;
	margin: 40px auto 0;
	padding: 1em 3em;
}

@media screen and (max-width:640px) {
	
	.slider span {
		display:block;
	}
}

/*--------------
service 要素
--------------*/
.service-topimg-wrap{
	background: linear-gradient(90deg, #003C70 0%, #003C70 80%, #ffffff 80%, #ffffff 100%);
	padding: 50px;
}
.service-topimg-wrap-inner {
  display: flex;
  justify-content: center;
  align-items: center;
	margin: 0 auto;
}
.service-txt-area {
	color: #fff;
	width: calc(100% - 410px);
}
.service-ttl {
	font-size: 1.7em;
	margin-bottom: 1em;
	font-weight: 700;
}
.service-img-area {
  width: 410px;
}

@media screen and (max-width: 900px) {
	.service-topimg-wrap{
		padding: 50px 0;
	}
	.service-topimg-wrap-inner {
		flex-direction: column;
	}
	.service-txt-area {
    width: 70%;
    margin: 0 auto 40px 5%;
	}
	.service-img-area {
		width: 80%;
		margin: 0 0 0 auto;
	}
}




.service01,
.service02,
.service03,
.service04 {
	padding-bottom: 200px;
	overflow: hidden;
}

.svc-ttl {
	font-size: 2.1em;
	font-weight: 700;
	width: fit-content;
	margin: 0 auto 80px;
	position: relative;
	color: #003C70;
}
.svc-ttl::before {
	position: absolute;
	content: '';
	background: #FFF133;
	transform: skewX(-0.06turn);
	bottom: -40%;
	right: 20%;
	width: 300px;
	height: 35px;
	z-index: -1
}
.svc-ttl::after {
	position: absolute;
	content: '';
	background: #FFDB29;
	transform: skewX(-0.06turn);
	bottom: -70%;
	left: 20%;
	width: 300px;
	height: 35px;
	z-index: -2
}

.svc-txt {
	text-align: center;
	margin-bottom: 50px;
}

.svc-list-box {
	display: flex;
	justify-content: space-around;
	max-width: 1080px;
	widows: 95%;
	margin: 0 auto;
	position: relative;
}

.svc-list-box-lbg {
	position: absolute;
	top: 0;
	right: 40%;
	width: 100%;
	height: 400px;
	background-color: #E0ECF6;
	clip-path: polygon(0 70px, 100% 0, 100% calc(100% - 70px), 0 100%);
	z-index: -3;
}
.svc-list-box-rbg {
	position: absolute;
	top: 0;
	left: 40%;
	width: 100%;
	height: 400px;
	background-color: #E0ECF6;
	clip-path: polygon(0 0, 100% 70px, 100% 100%, 0 calc(100% - 70px));
	z-index: -3;
}
.svc-list {
	width: 30%;
}
.svc-no {
	font-family: 'Bebas Neue', sans-serif;
	text-align: center;
	font-size: 50px;
	color: #003C70;
	margin-bottom: 30px;
}

.svc-no span {
	display: block;
	font-size: 0.3em
	
}
.svc-ttl-area {
	color: #003C70;
	text-align: center;
	font-size: 1.5em;
	font-weight: 700;
	margin-bottom: 40px;
}



@media screen and (max-width: 640px) {
	.svc-ttl {
    	font-size: 1.8em;
    width: 300px;
    text-align: center;
	}
	
	.svc-ttl::before,
	.svc-ttl::after {
		width: 230px
	}
	.svc-txt{
		display: none
	}
	.svc-list-box {
		flex-direction: column;
	}
	.svc-list-box .svc-list ~ .svc-list {
		margin-top: 40px;
	}
	.svc-list {
		width: 90%;
		margin: 0 auto;
	}
	.svc-no {
		font-size: 63px;
		margin-bottom: 10px;
	}
	.svc-no span {
		margin-bottom: -9px
	}
	.svc-ttl-area {
		margin-bottom: 30px;
		word-break: keep-all;
	}
	.svc-ttl-area br {
		display: none;
	}
}




/*--------------
news 要素
--------------*/

.news-wrap div.news-list ~ div.news-list {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid #1b1b1b;
}
.news-list {
	max-width: 900px;
    width: 96%;
	margin: 0 auto;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	align-items: center;
}
.news-img {
	width: 30%
}
.news-txt-area {
	width:67%;
}
p.news-ttl {
	font-size: 1.5em;
	font-weight: 700;
	color: hsla(208,100%,22%,1.00);
	margin-bottom: 0.5em
}
p.news-txt {
	margin-bottom: 1em
}

p.news-day {
	text-align: right;
	font-family: 'Roboto', sans-serif;
	font-size: 0.7em;
}

@media only screen and (min-width : 641px) and (max-width : 1008px) {
  /*tablet用のcssを記述*/
}
@media screen and (max-width:640px) {
  /*スマホ用のcssを記述*/
	.news-wrap div.news-list ~ div.news-list {
    margin-top: 40px;
    padding-top: 40px;
	}
	.news-list {
		flex-direction: column;
		width: 90%;
		margin: 0 auto;
	}
	.news-img,
	.news-txt-area {
		display: contents
	}
	p.news-ttl {
		order: -1;
		margin: 0 auto 1em 0;
	}
	p.news-txt {
		margin-top: 1em;
	}
	p.news-day {
		margin: 0 0 0 auto;
	}
}





/*--------------
contact 要素
--------------*/
#formWrap {
	max-width: 615px;
	width: 90%;
	margin:0 auto 100px;
	line-height:120%;
	font-size:90%;
}
.formTable {
	width: 100%;
	margin: 0 auto;
}

.Form-Item {
    padding-left: 14px;
    padding-right: 14px;
    padding-top: 16px;
    padding-bottom: 16px;
  width: 100%;
  display: flex;
  align-items: center;
    flex-wrap: wrap;
}
.Form-Item-Label {
  width: 100%;
  letter-spacing: 0.05em;
  font-weight: bold;
    max-width: inherit;
    display: flex;
    align-items: center;
    font-size: 15px;
}
.Form-Item-Label.isMsg {
  margin-top: 8px;
  margin-bottom: auto;
    margin-top: 0;
}
.Form-Item-Label-Required {
  border-radius: 6px;
    border-radius: 4px;
    padding-top: 2px;
    padding-bottom: 2px;
  margin-left: 8px;
  display: inline-block;
  text-align: center;
  background: #E60013;
  color: #fff;
    width: 32px;
    font-size: 10px;
}
.Form-Item-Input {
  border: 1px solid #ddd;
  border-radius: 6px;
    margin-left: 0;
    margin-top: 10px;
  padding-left: 1em;
  padding-right: 1em;
    height: 40px;
    flex: inherit;
    font-size: 15px;
  width: 100%;
  background: #FCFCFC;
}
.Form-Item-Textarea {
  border: 1px solid #ddd;
  border-radius: 6px;
    margin-top: 18px;
    margin-left: 0;
  padding-left: 1em;
  padding-right: 1em;
    height: 200px;
    flex: inherit;
    font-size: 15px;
  width: 100%;
  background: #FCFCFC;
}
.Form-Btn {
  border-radius: 6px;
  margin-left: 2%;
  margin-right: 2%;
    margin-top: 15px; 
    padding: 14px 0;
    width: 96%;
    font-size: 16px;
  display: block;
  letter-spacing: 0.05em;
  background: hsla(208,100%,22%,1.00);
  color: #fff;
	text-align: center;
  font-weight: bold;
}


.check-list-wrap {
	padding-top: 18px
}
.check-list-wrap label ~ label {
	padding-top:15px;
}

.ECM_CheckboxInput {
  padding-left: 8px;
	width: 100%;
  display: flex;
  align-items: center;
  cursor: pointer;
}


.ECM_CheckboxInput-Input {
  margin: 0;
  width: 0;
  opacity: 0;
}
.ECM_CheckboxInput:hover > .ECM_CheckboxInput-DummyInput {
  background: #DDDDDD !important;
  border: solid 1px #333333;
}
.ECM_CheckboxInput-Input:focus + .ECM_CheckboxInput-DummyInput {
  background: #DDDDDD !important;
  border: solid 1px #333333;
}
.ECM_CheckboxInput-Input:checked + .ECM_CheckboxInput-DummyInput {
  border: solid 1px #333333;
  background: #FFFFFF;
}
.ECM_CheckboxInput-Input:checked + .ECM_CheckboxInput-DummyInput::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hlY2siPjxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIj48L3BvbHlsaW5lPjwvc3ZnPg==") no-repeat center;
  background-size: contain;
}
.ECM_CheckboxInput-DummyInput {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  width: 18px;
  height: 18px;
  border: solid 1px #888888;
  background: #FFFFFF;
  border-radius: 2px;
}
.ECM_CheckboxInput-LabelText {
  margin-left: 8px;
  display: block;
  font-size: 15px;
  font-weight: bold;
}

.privacy-txt {
	text-align: center;
	margin-top: 25px;
}
.privacy-txt a {
	text-decoration: underline;
}







/*--------------
thanks page 要素
--------------*/
.thanks-txt {
	width: max-content;
	margin: 0 auto;
}










