*, *:before, *:after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	overflow: auto;
}

body {
	font-family: 'Noto Sans JP',
		"Hiragino Kaku Gothic ProN",
		"Hiragino Sans",
		Meiryo,
		sans-serif;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	line-height: 2;
	color: #36373b;
	overflow-x: hidden;
	padding-top: 65px;
}
/* ロード画面 */
#splash {
    /*fixedで全面に固定*/
	/*display: none;*/
	position: fixed;
	top:0;
	z-index: 999;
	width: 100%;
	height: 100%;
	background:#0B1F36;
	text-align:center;
	color:#fff;
}

body.loading #splash{
	display: block;
}


/* Loadingバー中央配置　*/
#splash_text {
	position: absolute;
	top: 50%;
	left: 50%;
  z-index: 999;
	width: 100%;
	transform: translate(-50%, -50%);
	color: #fff;
}
#splash_text svg{
    height: 2px;
}
/*========= 画面遷移のためのCSS ===============*/

/*画面遷移アニメーション*/
.splashbg{
    display: none;
}

/*bodyにappearクラスがついたら出現*/
body.appear .splashbg{
	display:block;
	animation-name:PageAnime;
	animation-duration:1.0s;
	animation-timing-function:ease-in-out;
	animation-fill-mode:forwards;
    content: "";
    position:fixed;
	z-index: 999;
    width: 50%;
    height: 100vh;
    top: 0;
	left: 0;
    transform: translateX(-300%) skewX(-45deg);
    background-color: #333;/*伸びる背景色の設定*/
}

@keyframes PageAnime{
	0% {
		transform-origin:left;
		transform:translateX(-300%) skewX(-45deg);
	}
	100% {
		transform-origin:left;
		transform:translateX(500%) skewX(-45deg);
	}
}

/*画面遷移の後現れるコンテンツ設定*/
#container{
	opacity: 1;/*はじめは透過0に*/
}

/*bodyにappearクラスがついたら出現*/
body.appear #container{
	animation-name:PageAnimeAppear;
	animation-duration:1s;
	animation-delay: 0.6s;
	animation-fill-mode:forwards;
	opacity: 1;
	animation: PageAnimeAppear 1s 0.6s forwards;
}

@keyframes PageAnimeAppear{
	0% {
	opacity: 0;
	}
	100% {
	opacity: 1;
}
}


.sp ,.min440{
	display: none;
}

.display-flex {
	display: flex;
}
.container{
  max-width: 1500px;
  margin: 0 auto;
  width: 95%;
}
.section-title{
  font-size: 4rem;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 2rem;
  letter-spacing: 0.2rem;
}
.section-title span{
  font-size: 1rem;
  display: block;
  font-weight: normal;
}
.section-title span::before{
  content: '';
  display: block;
  width: 7rem;
  border-bottom: 3px solid #D90056;
  margin-bottom: 0.5rem;
}
.sanpei-line{
  position: relative;
}
.sanpei-line::after{
  content: '';
  width: 70%;
  max-width: 400px;
  height: 100%;
  z-index: -1;
  background-image: url(../img/sanpei-logo-line.png);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  right: 1rem;
  top: 1rem;
}
.display-half{
  width: 50%;
  padding: 1rem;
}
.display-half:nth-child(2n+1){
  margin-right: 2rem;
}
.mgb-10{
  margin-bottom: 10rem;
}
.mgb-2{
  margin-bottom: 2rem;
}
.btn{
  display: inline-block;
  background-color: #D90056;
  color: #fff;
  padding: 0.2rem 2rem;
  letter-spacing: 0.1rem;
  border-radius: 2rem;
  /*アニメーションの起点とするためrelativeを指定*/
  position: relative;
  overflow: hidden;
  /*アニメーションの指定*/
  transition: ease .2s;
}
.btn span {
	position: relative;
	z-index: 3;/*z-indexの数値をあげて文字を背景よりも手前に表示*/
	color:#fff;
}
.btn:hover span{
	color:#fff;
}

/*== 背景が流れる（斜め） */
.bgskew::before {
	content: '';
    /*絶対配置で位置を指定*/
	position: absolute;
	top: 0;
	left: -130%;
    /*色や形状*/
	background:#0B1F36;
	width:120%;
	height: 101%;
	transform: skewX(-25deg);
}

/*hoverした時のアニメーション*/
.bgskew:hover::before {
	animation: skewanime .3s forwards;/*アニメーションの名前と速度を定義*/
}

@keyframes skewanime {
	100% {
		left:-10%;/*画面の見えていない左から右へ移動する終了地点*/
	}
}
header{
  justify-content: space-between;
  height: 65px;
  padding: 8px 5rem;
  background-color: #fff;
  align-items: center;
  position: fixed;
  z-index: 995;
  width: 100%;
  box-shadow: 0px 3px 6px rgb(0 0 0 / 16%);
	top: 0;
	left: 0;
}
h1 img{
  height: 32px;
	vertical-align: middle;
}

/* ハンバーガーメニュー */
.humberger {
	display: none;
	height: 40px;
	margin-left: auto;
	position: relative;
	z-index: 10;
	width: 40px;
	border: none;
	background-color: transparent;
}

.humberger.-active .humberger__line {
	background-color: transparent;
}

.humberger.-active .humberger__line::before {
	top: 0;
	transform: rotate(45deg);
}

.humberger.-active .humberger__line::after {
	top: 0;
	transform: rotate(-45deg);
}

.humberger__line {
	display: block;
	height: 2px;
	position: absolute;
	top: 20px;
	left: 50%;
	transform: translateX(-50%);
	width: 24px;
	background-color: #172e59;
	transition: 0.4s;
}

.humberger__line:before,
.humberger__line:after {
	content: "";
	display: block;
	height: 100%;
	position: absolute;
	width: 100%;
	background-color: #172e59;
	transition: inherit;
}

.humberger__line:before {
	top: -6px;
}

.humberger__line:after {
	top: 6px;
}

.nav-one {
	text-align: center;
	margin: 0 1.5rem;
}

/* meinvis */
.main-vis{
  height: 100vh;
	max-height: 1000px;
  background-image: url(../img/mainVis-bg-min.png);
  background-position: left center;
  background-repeat: no-repeat;
  background-size: cover;
  color: #fff;
}
.main-vis .container{
  width: 90%;
  max-width: none;
  margin: 0 auto;
  height: 100%;
  align-items: center;
  /* padding-top: 60px; */
  justify-content: space-around;
}
.main-vis-message{
  width: 70%;
  margin-bottom: 1.5rem;
}
.main-vis img{
  width: 100%;
}
.main-vis-photo{
  /* max-width: 700px; */
	flex-shrink: 2;
}

.youtube{
  aspect-ratio:16/9;
  max-width: 1000px;
  margin: 10rem auto;
}
.company .container{
  align-items: center;
  justify-content: space-around;
}
.service-list{
  flex-wrap: wrap;
}
.list-card{
  border-radius: 15px;
  box-shadow: 1px 3px 8px rgba(0 0 0 / 0.16);
  padding: 2rem;
  border: 1px solid #EBEBEB;
  width: 48%;
  margin-bottom: 2rem;
  align-items: center;
}
.list-card:nth-child(2n+1){
  margin-right: 2rem;
}
.service-img{
  margin-right: 2rem;
  height: fit-content;
  width: 100%;
	max-width: 50%;
}
.service-text h3{
  font-size: 1.2rem;
  margin-bottom: 0.8rem;
}
.contact{
  background-color: #0B1F36;
  padding: 5rem 0;
  color: #fff;
}
.contact-btn{
	display: block;
	border: 1px solid #fff;
	text-align: center;
	font-size: 2.5rem;
	letter-spacing: 0.2rem;
	font-weight: bold;
	padding: 1rem;
  width: 48%;
  margin-right: 1rem;
	/*アニメーションの起点とするためrelativeを指定*/
  position: relative;
  overflow: hidden;
  /*アニメーションの指定*/
  transition: ease .2s;
}

.contact-btn span {
	position: relative;
	z-index: 3;/*z-indexの数値をあげて文字を背景よりも手前に表示*/
	color:#fff;
}
.contact-btn:hover span{
	color:#0B1F36;
}

/*== 背景が流れる（斜め） */
.contact-bgskew::before {
	content: '';
    /*絶対配置で位置を指定*/
	position: absolute;
	top: 0;
	left: -130%;
    /*色や形状*/
	background:#fff;
	width:120%;
	height: 101%;
	transform: skewX(-25deg);
}

/*hoverした時のアニメーション*/
.contact-bgskew:hover::before {
	animation: skewanime .3s forwards;/*アニメーションの名前と速度を定義*/
}

.contact-btn i{
	margin-right: 1rem;
}

.footer-info{
  color: #fff;
  background-color: #2A2A2A;
  padding: 5rem 0;
}
.footer-info .display-flex{
  justify-content: space-between;
  align-items: center;
}
.footer-info img{
  width: 20rem;
  height: fit-content;
}
address{
  font-style: normal;
}
small{
  text-align: center;
  display: block;
  margin-top: 2rem;
}
.fadeInUpTrigger,
.fadeInRightTrigger{
  opacity: 0;
}
.list-card a{
	margin-top: 1rem;
	font-size: 0.7rem;
	font-weight: bold;
}
/*===モーダル表示のためのcss　*/

.hide-area{/*モーダル表示をする場所をあらかじめ隠す*/
	display: none;
}
.modaal-img{
	width: 100%;
	height: auto;
}

.modaal-fullscreen .modaal-content-container{/*full画面の色設定*/
	background: #333;
	color: #fff;
	text-align: center;
	min-height: 100vh;
}

.modaal-fullscreen .modaal-close{/*ボタンの色、位置*/
	background:none;
	right:20px;
}

/*クローズボタンの×の色変更*/
.modaal-close:focus:after,
.modaal-close:focus:before,
.modaal-close:hover:after,
.modaal-close:hover:before{
	background:#666;
}

/*キャプション*/
.caption{
    display: block;
    padding: 10px 0;
}

/* 下層ページCSS */
.page-title{
	padding: 5rem 0;
	background-position: left top;
	background-repeat: no-repeat;
	background-size: cover;
	color: #fff;
}
.page-title .container{
	padding-top: 60px;
}
.titlebg-01{
	background-image: url(../img/titlebg-01.png);
}
.titlebg-02{
	background-image: url(../img/titlebg-02.png);
}
.titlebg-03{
	background-image: url(../img/titlebg-03.png);
}
table {
	width: 100%;
	margin: 0 auto 2rem auto;
}

tr {
	border-bottom: 1px solid #C7C7C7;
}
th {
	text-align: left;
	vertical-align: middle;
	font-weight: normal;
	padding: 0.5rem 1rem 0.5rem 0.5rem;
	min-width: 6rem;
	max-width: 30vw;
}

td{
	vertical-align: middle;
	padding: 0.5rem 0;
}

dt{
	flex-basis: 55%;
}
dd{
	text-align: right;
}
.pdflink{
	font-size: 12px;
  border-bottom: 1px solid #0B1F36;
  color: #0B1F36;
  margin: 0 0.5rem;
}
.safety-list{
	flex-wrap: wrap;
	margin-top: 2rem;
}
.safety-card{
	width: 31%;
	margin-right: 2rem;
}
.safety-card:last-child{
	margin-right: 0;
}
.safety-text h4{
	text-align: center;
	margin-bottom: 1rem;
	border-bottom: 2px solid #0B1F36;
	font-size: 1.2rem;
	letter-spacing: 0.1rem;
}
.parallax{
	background-image: url('../img/parallax.png');
  background-attachment: fixed;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
	height: 50vh;
}
.middle-title::before{
	content: '';
	display: inline-block;
  width: 6rem;
	height: 6rem;
  background-image: url(../img/logo.png);
  background-repeat: no-repeat;
  background-size: contain;
	vertical-align: middle;
	margin-right: 2rem;
}
.komugi{
	align-items: center;
	padding: 2rem 0;
}
.komugi img{
	margin-right: 2rem;
	max-width: 100vw;
}
.interview-one{
	position: relative;
	margin: 7rem 0;
}
.interview-one h4{
	font-size: 1.2rem;
	margin-bottom: 1rem;
	letter-spacing: 0.1rem;
}
.interview-one p{
	width: 70%;
	padding: 1rem 2.5rem 1rem 0;
	background-color: rgba(255, 255, 255, 0.7);
}
.interview-one::after{
	content: '';
	position: absolute;
	z-index: -1;
	right: 0;
	top: 50%;
  transform: translate(0, -50%);
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  width: 40%;
	height: 22rem;
  background-repeat: no-repeat;
  background-size: contain;
	background-position: right;
}
.interviewbg-01.interview-one::after{
	background-image: url(../img/interviewbg-01.png);
}
.interviewbg-02.interview-one::after{
	background-image: url(../img/interviewbg-02.png);
}
.interviewbg-03.interview-one::after{
	background-image: url(../img/interviewbg-03.png);
}
.entry-btn{
	display: inline-block;
	text-align: center;
	font-size: 1.5rem;
	letter-spacing: 0.2rem;
	padding: 0.5rem 2rem;
	margin: 1.5rem 0;
	background-color: #0B1F36;
	/*アニメーションの起点とするためrelativeを指定*/
  position: relative;
  overflow: hidden;
  /*アニメーションの指定*/
  transition: ease .2s;
}

.entry-btn span {
	position: relative;
	z-index: 3;/*z-indexの数値をあげて文字を背景よりも手前に表示*/
	color:#fff;
}

/*== 背景が流れる（斜め） */
.entry-bgskew::before {
	content: '';
    /*絶対配置で位置を指定*/
	position: absolute;
	top: 0;
	left: -130%;
    /*色や形状*/
	background:#D90056;
	width:120%;
	height: 101%;
	transform: skewX(-25deg);
}

/*hoverした時のアニメーション*/
.entry-bgskew:hover::before {
	animation: skewanime .3s forwards;/*アニメーションの名前と速度を定義*/
}
input{
	vertical-align:baseline;
}
button.entry-btn{
	border: none;
	font-size: 1rem;
}
label.contact_list_title{
	display: inline-block;
}
/* .contact_list_title{
	width: 25%;
}
.contact_section input,
.contact_section textarea{
	flex-basis:70vw;
} */
.end-message {
	display: none;
}

.false-message {
	display: none;
}

.type-list_section {
	display: flex;
}

.contact_list_title {
	max-width: 250px;
	width: 100%;
	display: inline-block;
}

.flex-box {
	display: flex;
	flex-wrap: wrap;
	margin-right: 2rem;
}

.type-list {
	display: flex;
	flex-wrap: wrap;
	max-width: 600px;
	width: 100%;
}

.contact_section {
	margin-top: 16px;
	display: flex;
}

input {
	padding: 0;
}

.contact_section input {
	max-width: 600px;
	width: 100%;
	border: 1px solid #9B9B9B;
	border-radius: 3px;
	padding: 5px;
}

.contact_section textarea {
	max-width: 600px;
	width: 100%;
	border: 1px solid #9B9B9B;
	border-radius: 3px;
	padding: 5px;
}
.btn-container{
	text-align: center;
}


@media (max-width:1150px) {
	.pc{
		display: none;
	}
	.sp {
		display: block;
	}
	.sp-column{
		flex-direction: column;
	}
	.display-half{
		width: 100%;
	}
	header{
		padding: 8px 1rem;
		height: 50px;
	}
	body{
		padding-top: 50px;
	}
	h1 img{
		height: 25px;
	}

	.humberger {
		display: block;
	}

	.header__nav-area {
		position: fixed;
		top: 0;
		right: -100%;
		z-index: 9;
		height: 100vh;
		width: 300px;
		visibility: hidden;
		padding-top: 60px;
		background-color: #fff;
		transition: 0.4s;
	}

	.header__nav-area.-active {
		right: 0;
		visibility: visible;
	}

	nav .display-flex {
		flex-direction: column;
	}

	.nav-one {
		height: 5rem;
	}
	.main-vis{
		position: relative;
	}
	.main-vis .display-flex{
		display: block;
	}
	.main-vis-text{
		position: absolute;
		top: 13%;
		z-index: 2;
	}
	.main-vis-photo{
		position: absolute;
		bottom: 10vh;
		right: 0;
	}
	.main-vis-logo img{
		max-width: 75vw;
	}
	/* .main-vis p{
		font-size: 12px;
	} */
	.main-vis img{
		max-height: 65vh;
	}
	.youtube{
		margin: 5rem auto;
	}
	.mgb-10{
		margin-bottom: 5rem;
	}
	.list-card{
		width: 100%;
	}
	.list-card:nth-child(2n+1){
		margin-right: 0;
	}
	.service-img{
		max-width: 30vw;
	}
	.contact-btn{
		width: 100%;
		margin-bottom: 2rem;
		font-size: 1.5rem;
	}
	.footer-info .display-flex{
		align-items: flex-start;
	}
	.komugi img{
		margin-right: 0;
	}
	.sp-parallax img{
		width: 100%;
		height: auto;
	}


}

@media (max-width:440px) {
	.min440{
		display: block;
	}
	.list-card{
		flex-direction: column;
	}
	.service-img{
		max-width: 100vw;
		margin-right: 0;
		margin-bottom: 2rem;
	}
	.page-title{
		padding: 2rem 0;
	}
	.section-title{
		font-size: 2.5rem;
	}
	.interview-one{
		margin: 13rem 0;
	}
	.interview-one:last-child{
		margin-bottom: 5rem;
	}
	.interview-one p{
		width: 100%;
		padding: 1rem 0;
	}
	.interview-one::after{
		top: -30%;
		width: 70%;
		background-position: top;
		transform: translate(0, 0);
	  -webkit-transform: translate(0, 0);
	  -ms-transform: translate(0, 0);
	}
}
