@charset "utf-8";
/* CSS Document */
@media screen and (min-width: 768px) {
}
body {
}
p {
}
@media screen and (min-width: 768px) {
	br.only_sp767 {
		display: none;
	}
	img.only_sp {
		display: none;
	}
}
@media screen and (max-width: 767px) {
	img.only_pc {
		display: none;
	}
	main {
		padding-bottom: 0;
	}
}



.fonts {
	font-family: "Noto Serif JP", serif;
	font-family: "Noto Sans JP", sans-serif;
	font-family: "Outfit", sans-serif;	
}

a,p {
	font-family: "Noto Sans JP", sans-serif;
}
header {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	z-index: 999;
}
.nav_home {
	position: fixed;
	left: 0;
	top: 0;
}
.nav_home a {
	display: table-cell;
	width: 80px;
	height: 80px;
	background-color: #FFF;
	position: relative;
	border-bottom-right-radius: 10px;
	box-shadow: 3px 3px 5px rgba(0,0,0,0.1);
}
.nav_home a::before {
	content: "";
	display: table-cell;
	width: 45px;
	height: 45px;
	background: center center / 100% auto url("../img/icn_logo.svg") no-repeat;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translateX(-50%) translateY(-50%);
}
.nav_contact {
	position: fixed;
	right: 10px;
	top: 10px;
}

.nav_contact a {
	display: table-cell;
	width: 50px;
	height: 50px;
	background-color: #004073;;
	border-radius: 50%;
	position: relative;
}
.nav_contact a::before {
	content: "";
	display: table-cell;
	width: 30px;
	height: 30px;
	background: center center / 100% auto url("../img/icn_email.svg") no-repeat;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translateX(-50%) translateY(-50%);
}

.wrap {
	position: relative;
	overflow: hidden;
}
main {
	position: relative;
	z-index: 2;
}
.fv_mov {
	width: 100vw;
	height: 100vh;
	position: relative;
	padding-left: 25vw;
}
.fv_mov video {
	width: 100%;
	height: auto;
}

.fv_area {
	position: relative;
}
.fv_area .logo {
	position: absolute;
	left: 0;
	top: 0;
	height: 100vh;
	width: 25vw;
	background-color: #FFF;
}
.fv_area .logo h1 {
	position: absolute;
	text-align: center;
	left: 50%;
	top: 50%;
	transform: translateX(-50%) translateY(-50%);
}
.fv_area .logo h1 img {
	width: 90%;
	height: auto;
}
.fv_area .fv_bottom {
	position: relative;
}
.fv_area .fv_bottom .fvSlideArea {
	background-color: #000;
}
.fv_area .fv_bottom .fvSlideArea .fvSlide {
	opacity: 0.6;
}
.fv_area .fv_bottom .fvSlideArea .fvSlide li img {
	width: auto;
	height: 350px;
}
.fv_area .fv_bottom .textArea {
	position: absolute;
	top: 30px;
	left: 50%;
	transform: translateX(-50%);
	width: 90%;
	max-width: 680px;
}
.fv_area .fv_bottom .textArea .row {
}
.fv_area .fv_bottom .textArea .row p {
	font-size: 20px;
	font-weight: bold;
	font-family: "Noto Sans JP", sans-serif;
	margin-bottom: 1em;
	
}
.fv_area .fv_bottom .textArea .row p > span {
	display: block;
	background-color: #FFF;
	padding: 1.2em 3em;
	text-align: center;
}
.fv_area .tagArea {
	position: absolute;
	bottom: 30px;
	left: 0;
	z-index: 2;
	width: 100%;
}
.fv_area .tagArea ul li {
	font-size: 15px;
	letter-spacing: 0.1em;
	font-weight: bold;
	color: #FFF;
	margin-right: 12px;
}
.fv_area .tagArea ul li span {
	display: block;
	padding: 0 1.4em;
	line-height: 3em;
	border: 2px solid #FFF;
	border-radius: 2em;
	background-color: #004073;
}
.fv_area .tagArea ul li span::after {
	content: "#";
}
.sec {
	padding: 120px 0;
}
.sec .secHead {
	width: 90%;
	max-width: 880px;
	margin: 0 auto;
}
.sec .secHead h2 {
}
.sec .secHead h2 .text_jp {
	display: block;
	font-size: 15px;
	color: #3f3f3f;
	font-family: "Noto Sans JP", sans-serif;
	margin-bottom: 0.6em;
}
.sec .secHead h2 .text_en {
	display: block;
	font-family: "Outfit", sans-serif;	
	color: #004073;
	font-weight: bold;
	font-size: 50px;
	text-shadow: 3px 3px 0 #FFF;
}
.sec .sec_cont {
	width: 90%;
	max-width: 880px;
	margin: 0 auto;
	padding: 60px 0 0;
}
.sec.sec_about .sec_cont p,
.sec.sec_service .sec_cont p {
	font-size: 30px;
	letter-spacing: 0.06em;
	font-weight: bold;
	line-height: 2.0;
	color: #3f3f3f;
	font-family: "Noto Sans JP", sans-serif;
	margin-bottom: 1em;
}
.sec_message {
 background: rgb(214,241,255);
background: -moz-linear-gradient(310deg, rgba(214,241,255,1) 0%, rgba(224,238,238,1) 100%);
background: -webkit-linear-gradient(310deg, rgba(214,241,255,1) 0%, rgba(224,238,238,1) 100%);
background: linear-gradient(310deg, rgba(214,241,255,1) 0%, rgba(224,238,238,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#d6f1ff",endColorstr="#e0eeee",GradientType=1); }
.sec .sec_cont p {
	font-size: 16px;
	font-weight: normal;
	letter-spacing: 0.06em;
	line-height: 2.0;
	color: #3f3f3f;
	font-family: "Noto Sans JP", sans-serif;
	margin-bottom: 1em;
}
.sec_message .textArea {
	float: left;
	width: 60%;
}
.sec_message .textArea .points {
	padding: 45px 30px;
	background-color: #FFF;
	margin-bottom: 20px;
	border-radius: 8px;
}

.sec_message .textArea p {
	font-size: 17px;
	font-weight: 400;
	line-height: 2.2;
}
.sec_message .textArea p .dot {
	display: block;
	line-height: 1.8;
	font-size: 1.4em;
	font-weight: 600;
	color: rgba(4,10,53,1.00);
	padding-left: 1.4em;
	position: relative;
	margin-bottom: 0.5em;
	margin-top: 0.5em;
}
.sec_message .textArea p .dot::before {
	content: "";
	display: table-cell;
	width: 0.8em;
	height: 0.8em;
	border-radius: 50%;
	border: 2px solid rgba(4,10,53,1.00);
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}
.sec_message .textArea > p {
	font-size: 24px;
	font-weight: 600;
	line-height: 2.0;
}

.sec_message .textArea p .text {
	display: block;
	line-height: 1.8;
}
.sec_message .photoArea {
	float: right;
	width: 40%;
	padding-left: 50px;
}
.sec_message .photoArea .photo {
	margin-bottom: 20px;
}
.sec_message .photoArea .photo img {
	width: 100%;
	height: auto;
	border-radius: 8px;
}
.sec_message .photoArea .text {
}
.sec_message .photoArea .text p {
	text-align: center;
	font-size: 16px;
	line-height: 2.0;
	font-family: "Noto Serif JP", serif;
	color: #3f3f3f;
}
.sec_message .photoArea .text p > span {
	display: block;
}
.sec_message .photoArea .text p .big {
	font-size: 1.8em;
}
.sec_message .photoArea .text p .small {
	margin-bottom: 0.5em;
	letter-spacing: 0.1em;
}
.sec_service {
	
}
.sec_service .contactBox {
	width: 100%;
	font-size: 0;
	padding-top: 30px;
}
.sec.sec_service .contactBox a {
	display: block;
	font-size: 24px;
	font-weight: bold;
	line-height: 3.0;
	text-align: center;
	color: #FFF;
 background: rgb(1,71,108);
background: -moz-linear-gradient(0deg, rgba(1,71,108,1) 0%, rgba(15,109,168,1) 47%, rgba(19,129,200,1) 48%, rgba(30,135,210,1) 88%);
background: -webkit-linear-gradient(0deg, rgba(1,71,108,1) 0%, rgba(15,109,168,1) 47%, rgba(19,129,200,1) 48%, rgba(30,135,210,1) 88%);
background: linear-gradient(0deg, rgba(1,71,108,1) 0%, rgba(15,109,168,1) 47%, rgba(19,129,200,1) 48%, rgba(30,135,210,1) 88%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#01476c",endColorstr="#1e87d2",GradientType=1); 	border-radius: 13px;
	position: relative;
	font-family: "Noto Sans JP", sans-serif;
	padding-left: 1.0em;
	box-shadow: 3px 3px 0 #ccc; 
	
}
.sec_service .contactBox .telBox {
	display: inline-block;
	width: 48%;
	margin-right: 4%;
}
.sec_service .contactBox .telBox .telIn a::before {
	content: "";
	display: table-cell;
	width: 40px;
	height: 40px;
	background:center center / 100% auto url("../img/icn_tel.png") no-repeat;
	position: absolute;
	left: 25px;
	top: 50%;
	transform: translateY(-50%);
}
.sec_service .contactBox .formBox {
	display: inline-block;
	width: 48%;
}
.sec_service .contactBox .formBox .formIn a::before {
	content: "";
	display: table-cell;
	width: 35px;
	height: 35px;
	background:center center / 100% auto url("../img/icn_email.png") no-repeat;
	position: absolute;
	left: 25px;
	top: 50%;
	transform: translateY(-50%);
}
footer {
	background-color: #004073;
	padding: 60px 0 0;
}
footer .logo {
	text-align: center;
	margin-bottom: 20px;
}
footer .logo img {
	width: 70%;
	max-width: 300px;
	height: auto;
}
footer .footerIn {
	text-align: center;
	padding-bottom: 50px;
}
footer .footerIn .textArea {
	display: inline-block;
}
footer .footerIn .textArea p {
	font-size: 15px;
	line-height: 2.0;
	display: block;
	text-align: center;
	color: #FFF;
}
footer .copy {
	display: block;
	background-color: rgba(41,41,41,1.00);
}
footer .copy p {
	color: #FFF;
	text-align: center;
	line-height: 2.2;
}
.photo {
	transition: 0.5s all ease;
	opacity: 0;
	transform: translateY(100px);
}
.active.photo {
	opacity: 1.0;
	transform: translateY(0);
}

@media screen and (max-width: 767px) {
	.fv_area {
		position: relative;
		padding-top: 70vh;
	}
	.fv_area .fv_bottom .textArea .row p {
	  font-size: 4.5vw;
		line-height: 2.2;
	  font-weight: bold;
	  font-family: "Noto Sans JP", sans-serif;
	  margin-bottom: 1em;
	}
	.fv_area .logo {
	  padding: 0;
		height: 100vh;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		background-color: #FFF;
		z-index: 999;
		transition: 0.8s all ease;
		opacity: 1.0;
	}
	.scrolled .fv_area .logo {
		top: -100vh;
		opacity: 0;
	}
	.fv_area .logo h1{
		position: absolute;
		left: 50%;
		top: 50%;
		transform: translateX(-50%) translateY(-50%);
		width: 80vw;
	}
	.fv_area .logo h1 img {
		width: auto;
	  height: 50vh;
	}	
	
	
	.fv_area .fv_bottom .textArea {
	  position: static;
	  transform: translateX(0);
	  width: 100%;
	  max-width: 100%;
		padding: 6vw 4vw;
	}
	
	.fv_area .fv_bottom .textArea .row p > span {
	  padding: 0;
		line-height: 2.0;
	}
	.fv_area .tagArea {
	  position: static;
	  bottom: 30px;
	  left: 0;
	  z-index: 2;
	  width: 100%;
	}
	.fv_area .fv_bottom .fvSlideArea .fvSlide li img {
	  width: auto;
	  height: 200px;
	}	
	.fv_area .tagArea ul li {
	  font-size: 2.8vw;
	  margin-right: 1em;
	}
	.sec {
	  padding: 16vw 0 12vw;
	}
	.sec .sec_cont {
	  padding: 9vw 0 0;
	}	
	.sec .secHead h2 .text_jp {
	  font-size: 3vw;
		text-align: center;
	}	
	.sec .secHead h2 .text_en {
	  font-size: 8vw;
		text-align: center;
	}
	.sec.sec_about .sec_cont p, .sec.sec_service .sec_cont p {
	  font-size: 4vw;
		text-align: center;
	}
	.sec_message .textArea {
	  float: none;
	  width: 100%;
	}
	.sec_message .photoArea {
	  float: none;
	  width: 100%;
	  padding-left: 0;
		margin-top: 8vw;
	}
	.sec_message .photoArea .photo {
	  margin-bottom: 4vw;
		text-align: center;
	}
	.sec_message .photoArea .photo img {
	  width: 60%;
		max-width: 300px;
	  height: auto;
		border-radius: 8px;
	}
	.sec_message .textArea .points {
	  padding: 5vw;
	  background-color: #FFF;
	  margin-bottom: 5vw;
	  border-radius: 8px;
	}	
	
	.sec .sec_cont p {
	  font-size: 3.4vw;
	}	
	.sec_message .photoArea .text p {
	  text-align: center;
	  font-size: 3vw;
	}
	.sec_message .textArea > p {
		font-size: 4vw;
		text-align: center;
	}
	
	.sec_service .contactBox .telBox {
	  display: block;
	  width: 100%;
	  margin-right: 0;
		margin-bottom: 6vw;
	}
	.sec_service .contactBox .formBox {
	  display: block;
	  width: 100%;
	}
	.sec.sec_service .contactBox a {
	  display: block;
	  font-size: 4.8vw;
	}	
	.sec_service .contactBox .telBox .telIn a::before {
	  content: "";
	  display: table-cell;
	  width: 8vw;
	  height: 8vw;
	}	
	.sec_service .contactBox .formBox .formIn a::before {
	  width: 7vw;
	  height: 7vw;
	}
	.sec_service .textArea {
		margin-bottom: 9vw;
	}
	footer .footerIn .textArea p {
	  font-size: 3.2vw;
	}
	footer .footerIn {
	  padding-bottom: 9vw;
	}
	footer {
	  padding: 9vw 0 0;
	}
	footer .copy p {
		font-size: 3vw;
	}	
	
}

.sec .secHead,
.sec_cont p {
	opacity: 0.0;
	transform: translateY(100px);
}
.sec.active .secHead,
.active .sec_cont p {
	animation-name: fadeBtoT;
	animation-duration: 1.0s;
	animation-fill-mode: forwards;
}

@keyframes fadeBtoT {
	0% {
		opacity: 0.0;
		transform: translateY(100px);
	}
	100% {
		opacity: 1.0;
		transform: translateY(0);
	}
}

.contWrap {
	width: 100%;
	min-height: 100vh;
	padding-top: 10vh;
}
.page_contact .contWrap {
	padding-top: 0;
}
.page_404 .contWrap .logoArea {
	text-align: center;
}
.page_404 .contWrap .logoArea img {
	width: 50vw;
	max-width: 250px;
}
.page_404 .contWrap .textBig {
	font-size: 20px;
	font-weight: bold;
	color: rgba(45,70,127,1.00);
	text-align: center;
	margin-top: 3em;
	margin-bottom: 1em;
}
.page_404 .contWrap .textSmall {
	font-size: 15px;
	text-align: center;
}
.page_404 .contWrap .btnWrap {
	text-align: center;
	margin-top: 30px;
}
.page_404 .contWrap .btnWrap .btn {
	display: inline-block;
}
.page_404 .contWrap .btnWrap .btn a {
	font-size: 16px;
	color: #FFF;
	text-align: center;
	display: block;
	line-height: 2.4em;
	padding: 0 1.5em;
	background-color: rgba(24,46,107,1.00);
	border-radius: 1.2em;
}
.sec_twitter {
	width: 100%;
	margin: 0 auto;
	padding: 60px 0;
	background-color: #EEEEEE;
}
.sec_twitter .twitter_in {
	width: 90%;
	max-width: 550px;
	margin: 0 auto;
}
@media screen and (max-width: 767px) {
	.sec_twitter {
		padding: 9vw 0;
		margin-top: 9vw;
	}
}

.page_contact {
	background-color: #EEEEEE;
}
.pageCont {
	width: 90vw;
	max-width: 800px;
	margin: 0 auto;
	padding: 60px 0;
}
.contWrap .logoBox h1 {
	text-align: center;
	margin-bottom: 60px;
}
.contWrap .logoBox h1 img {
	width: 60vw;
	max-width: 250px;
	height: auto;
}
.contWrap .titleBox {
	background-color: #004073;
	padding: 60px 0 40px;
}
.contWrap .titleBox h2 {
	font-size: 26px;
	letter-spacing: 0.1em;
	color: #FFF;
	text-align: center;
	font-family: "Noto Serif JP", serif;
	
}
.page_contact .headText {
	margin-bottom: 40px;
}
.page_contact .headText p {
	font-size: 16px;
	text-align: center;
}
.contactBox {
	background-color: #FFF;
	padding: 45px;
	border-radius: 15px;
}
.formWrap {
	display: table;
	width: 100%;
}
.formWrap .row {
	display: table-row;
}
.formWrap .row .tableTh {
	display: table-cell;
	font-size: 16px;
	vertical-align: middle;
}
.formWrap .row .tableTd {
	display: table-cell;
	padding: 10px 0;
}
.formWrap .row .tableTd input[type="text"],
.formWrap .row .tableTd input[type="tel"],
.formWrap .row .tableTd input[type="email"],
.formWrap .row .tableTd textarea

{
	border: 2px solid rgba(149,163,180,1.00);
	font-size: 16px;
	line-height: 1.5;
	border-radius: 6px;
	box-sizing: border-box;
	width: 100%;
	padding: 0.3em 0.8em;
	background-color: #eee;
}
span.wpcf7-not-valid-tip {
	display: block;
	line-height: 1.3;
	margin-top: 0.6em;
}
.confirmBox {
	margin-top: 30px;
}
.confirmBox .checkBox {
	background-color: rgba(254,255,223,1.00);
	padding: 20px 0;
	margin-bottom: 30px;
}
.confirmBox .checkBox .check p {
	text-align: center;
}
.confirmBox .checkBox .check p label {
	position: relative;
}
.confirmBox .checkBox .check p input[type="checkbox"] {
	position: absolute;
	width: 20px;
	height: 20px;
	left: -40px;
	top: 50%;
	transform: translateY(-50%);
}
.confirmBox .checkBox .check p label {
}
.confirm {
	
}
.confirm .btn p {
	font-size: 20px;
	text-align: center;
	position: relative;
}
.confirm .btn .wpcf7-spinner {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translateX(5em) translateY(-50%);
}
.confirm .btn input[type="submit"]{
	font-size: 20px;
	font-weight: bold;
	letter-spacing: 0.1em;
	color: #FFF;
	background-color: rgba(27,32,120,1.00);
	line-height: 2.4em;
	padding: 0 1.5em;
	border-radius: 1.2em;
	border:none;
	font-family: "Noto Sans JP", sans-serif;
}
.hissu p::after {
	content: "必須";
	font-size: 0.8em;
	font-weight: bold;
	color: #FFF;
	background-color: rgba(154,34,36,1.00);
	line-height: 1.0;
	padding: 0.2em 0.4em;
	border-radius: 3px;
	margin-left: 1em;
	
}
.wpcf7 form .wpcf7-response-output {
	font-size: 18px;
	display: block;
	line-height: 1.5;
  margin: 2em 0.5em 1em;
  padding: 0.6em 1em;
  border: 2px solid #00a0d2;
    border-top-color: rgb(0, 160, 210);
    border-right-color: rgb(0, 160, 210);
    border-bottom-color: rgb(0, 160, 210);
    border-left-color: rgb(0, 160, 210);
}

@media screen and (max-width: 767px) {
	.sec_service .contactBox {
		padding: 9vw 0 0;
	}	
	.contWrap .titleBox {
	  padding: 12vw 0 6vw;
	}	
	.contWrap .titleBox h2 {
	  font-size: 5vw;
	}	
	.pageCont {
	  padding: 9vw 0;
	}	
	.page_contact .headText p {
	  font-size: 3.6vw;
	}	
	.contactBox {
	  padding: 4vw;
	  border-radius: 3vw;
	}	
	.formWrap {
	  display: block;
	}	
	.formWrap .row {
	  display: block;
		margin-bottom: 5vw;
	}
	.formWrap .row .tableTh {
	  display: block;
	  font-size: 3.6vw;
	}	
	.formWrap .row .tableTd {
	  display: block;
	  padding: 2vw 0 0;
	}	
	.formWrap .row .tableTd input[type="text"], .formWrap .row .tableTd input[type="tel"], .formWrap .row .tableTd input[type="email"], .formWrap .row .tableTd textarea {
	  font-size: 3.2vw;
	  border-radius: 2vw;
	}
	.confirmBox .checkBox {
	  padding: 3vw 0;
	  margin-bottom: 6vw;
	}	
	.confirmBox .checkBox .check p label {
		padding-left: 8vw;
		padding-right: 3vw;
		display: block;
	}	
	.wpcf7-list-item-label {
		display: block;
		line-height: 1.3;
		text-align: left;
	}
	.confirmBox .checkBox .check p input[type="checkbox"] {
	  width: 4vw;
	  height: 4vw;
	  left: 0;
	  top: 50%;
	  transform: translateY(-50%);
	}	
	.confirm .btn input[type="submit"] {
	  font-size: 4vw;
	}
	.nav_home a {
	  width: 12vw;
	  height: 12vw;
	  border-bottom-right-radius: 1.5vw;
	}	
	.nav_home a::before {
	  width: 9vw;
	  height: 9vw;
	}	
	.nav_contact a {
	  width: 12vw;
	  height: 12vw;
	}	
	.nav_contact a::before {
	  width: 7vw;
	  height: 7vw;
	}
	.wpcf7 form .wpcf7-response-output {
		font-size: 3.6vw;
	}
	
	
}

