@charset "utf-8";

/* * {
  outline: 1px solid magenta;
} */

.flex {
	display: flex;
	/* Flexboxを使用して要素を横に並べる */
}


body {
	margin: 0px;
	padding: 0px;
	color: #000000;
	/*全体の文字色*/
	font-family: 'Noto Sans JP', sans-serif;
	/*フォント種類*/
	font-size: 16px;
	/*文字サイズ*/
	line-height: 2;
	/*行間*/
	background-color: #ffffff;
	/*背景色*/
	-webkit-text-size-adjust: none;
}

a {
	/* 下線削除 */
	text-decoration: none;
}

ul {
	list-style-type: none;
}

ol {
	padding-left: 40px;
	padding-bottom: 15px;
}

img {
	border: none;
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

table {
	border-collapse: collapse;
	font-size: 100%;
	border-spacing: 0;
}

video {
	max-width: 100%;
}

iframe {
	width: 100%;
}


.heading-page-inner {
	display: flex;
	-webkit-box-align: center;
	align-items: center;
}

.heading-page-en {
	font-family: 'Montserrat', sans-serif;
	font-size: 7vw;
	line-height: 0.8;
	background-size: 100%;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-image: linear-gradient(to right, #3992C8 0%, #97BA40 100%);
}

.heading-page-jp {
	font-size: 4vw;
	color: #ffffff;
}

.heading-page-jp::before {
	content: "";
	display: inline-block;
	vertical-align: middle;
	width: 1px;
	background: #fff;
	-webkit-transform: rotate(30deg);
	transform: rotate(30deg);
	height: 7vh;
	margin: 0 2vh;
}

/* PCサイズ */
@media (min-width:768px) {
	.heading-page-en {
		font-size: 2.5vw;
	}

	.heading-page-jp {
		font-size: 1.5vw;
	}
}



/* デザインスタート */
#container {
	/* padding: 7vmax 0 0 0; */
	position: relative;
}

#header {
	width: 100%;
	height: 4.1em;

	background-color: #000000;
	z-index: 1;
	top: 0;
	position: fixed;
	transition: top 0.3s;
	border-top: 0.5vh solid #3992C8;
	border-image: linear-gradient(to right, #3992C8 0%, #97BA40 100%);
	border-image-slice: 1;
}

/* PCメニュー */
.pc_menu {
	overflow: hidden;
	list-style: none;
	margin: 0 auto;
	z-index: 9999;
	text-align: right;
	display: none;
}

.pc_menu li {
	display: inline-block;
	padding: 7px 20px;
	font-size: 1.5em;
}

.pc_menu li:hover {
	background-color: rgb(255, 255, 255, 0.8);
	color: black;
}

.pc_menu a {
	color: #fff;
	text-transform: uppercase;
	font-weight: bold;
}

.header-sp-logo {
	display: block;
	height: 3vh;
	position: absolute;
	top: 2.5vh;
	left: 4vw;
}

#key-visual {
	content: "";
	display: block;
	width: 100%;
	height: 100vh;
	position: sticky;
	top: 0;
	left: 0;
	z-index: -1;
	/* background : url(../images/test.jpg) no-repeat center; */
	background-size: cover;
}


/* テクノロジー背景 */
#particles-js {
	position: fixed;
	/*描画固定*/
	z-index: -1;
	/*描画を一番下に*/
	width: 100%;
	height: 100%;
	background-color: #ffffff;
}

.kv-wrap {
	position: relative;
	/* background-color: rgba(0, 0, 0, 0.8); */
	width: 100%;
	height: 100vh;
}

.sp-logo {
	display: block;
	margin: auto;
	position: absolute;
	width: 60vw;
	top: 30vh;
	left: 20vw;
	transition: opacity 0.5s ease-in-out;
}


#topics {
	position: relative;
	display: block;
}

.section-inner {
	position: relative;
	padding: 5vh 5vw 7.5vh 5vw;
}

.section-inner h2 {
	font-size: 3em;
	letter-spacing: 0.1em;
	line-height: 1;
	background-size: 100%;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-image: linear-gradient(to right, #3992C8 0%, #97BA40 100%);
}

.section-inner h3 {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.5em;
	font-weight: thin;
}

.news {
	padding: 2vh 0;
}

.news li {
	display: flex;
	/* justify-content: space-between; */
	padding: 2vh 0 2vh 0;
}

.news .date {
	margin-right: 6em;
}

.news li p {
	font-size: 3vw;
	font-weight: 100;
}

.about-wrap {
	padding: 2vh 0;
}

.about-text li {
	padding: 2vh 0;
}

.about-text li h4 {
	font-size: 4vw;
	padding: 2vh 0;
	font-weight: bold;
	text-align: center;
}

.about-text li p {
	text-align: left;
	font-weight: 100;
	font-size: 3vw;
	padding-top: 2vh;
}

.modBtn {
	font-size: 1em;
	min-width: 185px;
	width: 50vw;
	display: block;
	text-align: center;
	color: #fff;
	text-decoration: none;
	background: rgba(0, 0, 0, 0.8);
	border-radius: 3em;
	padding: 1vh 4vw;
	margin: auto;
	font-weight: bold;
	letter-spacing: 0.2em;
}

.modBtn::before {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	background: #fff;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

.section-textbox {
	padding: 4vh 0;
}

.paragraph {
	font-size: 3vw;
}

.service-list {
	padding: 2vh 0;
}

.service-list li {
	padding: 2vh 0;
}

.service-img {
	width: 100%;
	padding-top: 2em;
}

.service-text {
	font-size: 3vw;
	text-align: justify;
	margin-top: 1.5em;
}


/* footer */
#footer {
	background-color: #000000;
	padding-top: 3em;
	padding-bottom: 2em;
	text-align: center;
	color: #ffffff;
}

#footer .copyright {
	font-size: 0.8em;
	bottom: 2em;
	font-family: 'Montserrat', sans-serif;
	margin-bottom: 1em;
}

#footer .privacy_policy{
	color: #ffffff;
}


/* PCサイズ */
@media (min-width:768px) {
	.pc_menu {
		display: block;
	}

	#container {
		width: 70%;
		margin: auto;
	}

	#header {
		width: 70%;
		height: auto;
	}

	.header-sp-logo {
		top: 1.3em;
	}

	.sp-logo {
		width: 20vw;
		top: 30vh;
		left: 26vw;
		transition: opacity 0.5s ease-in-out;
	}

	.news li p {
		font-size: 1vw;
	}

	.about-text li h4 {
		font-size: 1.5vw;
	}

	.news .date {
		margin-right: 37em;
	}

	.about-text li p {
		font-size: 1.3vw;
	}

	.modBtn {
		width: 10%;
		margin-top: 2em;
	}

	.paragraph {
		font-size: 1vw;
	}

	.service-img {
		width: 50%;
		margin: auto;
		display: block;
	}

	.service-text {
		font-size: 1vw;
		text-align: justify;
		font-weight: thin;
	}
}

/* タブレット */
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 1) {
	.pc_menu li {
		padding: 7px 10px;
		font-size: 1em;
	}

	.header-sp-logo {
		height: 2.5vw;
		top: 1.6vw;
		left: 2vw;
	}
}

/************** about.html **************/
#about-mission {
	position: relative;
	content: "";
	display: block;
	width: 100%;
	top: 0;
	left: 0;
	z-index: -1;
	background: url(../images/about_01.jpg) no-repeat center;
	background-size: cover;
	color: #ffffff;
	margin-top: 2em;
	padding-bottom: 2em;
}

#about-vision {
	/* position: relative;
	content: "";
	display: block;
	width: 100%;
	top: 0;
	left: 0;
	z-index: -2;
	background: url(../images/about_02.jpg) no-repeat center;
	background-size: cover;
	color: #ffffff; */
	background-color: #cd7e43;
	color: #ffffff;
}

#about-us {
	/* position: relative;
	content: "";
	display: block;
	width: 100%;
	top: 0;
	left: 0;
	z-index: -1;
	background: url(../images/about_01.jpg) no-repeat center;
	background-size: cover;
	color: #ffffff;
	margin-top: 2em; */
	padding-bottom: 2em;
	background-color: #f7f6fe;
}

.page-section-inner {
	position: relative;
	padding: 1vh 5vw 10vh 5vw;
}

.page-section-title {
	padding-top: 4em;
}

.page-section-title h2 {
	margin-top: 2em;
}

.vision-section-title {
	padding-top: -3em;
}

.page-section-inner h2 {
	font-size: 2.5em;
	letter-spacing: 0.1em;
	line-height: 1;
	text-align: center;
	padding-top: 2em;
}

.page-section-inner h3 {
	font-size: 3vw;
	text-align: center;
}

.paragraph-jp {
	padding: 0 1em;
	font-size: 0.8em;
}


.page-section-paragraph {
	text-align: center;
	font-size: 4vw;
	margin-top: 1.5em;
}

#about-mission .paragraph-en {
	font-family: 'Montserrat', sans-serif;
	text-align: center;
	font-size: 3vw;
	margin-top: 2em;
}

#about-mission .paragraph-jp {
	font-size: 3vw;
	padding-bottom: 2vh;
}

#about-vision .paragraph-jp {
	font-size: 3vw;
	padding-bottom: 2vh;
}

#about-vision .paragraph-en {
	font-family: 'Montserrat', sans-serif;
	text-align: center;
	font-size: 3vw;
	margin-top: 2em;
}

#about-us table {
	width: 100%;
	margin: auto;
	font-size: 0.9em;
	color: #000000;
}

#about-us th {
	border-bottom: 1px solid rgb(0, 0, 0);
	/* 枠線の太さと色を指定 */
	text-align: center;
	/* テキストを水平中央に配置 */
	vertical-align: middle;
	/* テキストを垂直中央に配置 */
	white-space: nowrap;
	/* テキストを改行させない */
	/* padding: 1em; */
	/* セル内の余白を設定 */
	padding-top: 2em;
	text-align: justify;
	padding-right: 1em;
}

#about-us td {
	border-bottom: 1px solid rgb(0, 0, 0);
	/* 枠線の太さと色を指定 */
	text-align: justify;
	/* テキストを水平中央に配置 */
	vertical-align: middle;
	/* テキストを垂直中央に配置 */
	/* padding: 1em; */
	/* セル内の余白を設定 */
	padding-top: 2em;
}

#about-us .map_url {
	color: #000000;
	font-size: 1.2em;
}

#about-us .map_sp_img {
	padding-top: 2em;
}

#about-us .map_pc_img {
	display: none;
}

.en {
	font-family: 'Montserrat', sans-serif;
	font-weight: thin;
}

.about_heading_page {
	position: absolute;
	top: 2em;
	left: 0;
	width: 100%;
	padding: 1vh 3vh;
	background-color: rgba(0, 0, 0, 0.8);
}


/* PCサイズ */
@media (min-width:768px) {

	.page-section-paragraph {
		font-size: 1.3vw;
		line-height: 1.5em;
	}

	#about-mission .paragraph-en {
		font-size: 1vw;
	}

	#about-vision .paragraph-en {
		font-size: 1vw;
	}


	#about-us dt {
		padding-top: 5vh;
		font-size: 1.5em;
	}

	#about-us dd {
		line-height: 30px;
		font-size: 1vw;
		font-weight: 300;
	}

	.paragraph-jp {
		font-size: 1em;
	}

	#about-us .map_pc_img {
		display: block;
		padding-top: 3em;
	}

	#about-us .map_sp_img {
		display: none;
	}
}

/************** service.html **************/
#service-ourlegacy {
	position: relative;
	content: "";
	display: block;
	width: 100%;
	top: 0;
	left: 0;
	z-index: -1;
	background: url(/images/bg1.jpg) no-repeat center;
	background-size: cover;
	color: #ffffff;
	height: auto;
	padding-top: 8em;
	padding-bottom: 1em;
}

#service-ourlegacy .service_top_title_jp {
	padding-top: 2em;
	margin: 0 1em;
}

#service-ourlegacy .service_top_title_en {
	padding-top: 2em;
	margin: 0 1em;
}

.service_heading_page {
	position: absolute;
	top: 4em;
	left: 0;
	width: 100%;
	padding: 1vh 3vh;
	background-color: rgba(0, 0, 0, 0.8);
}

.service_page_section_inner {
	/* position: relative; */
	margin: 3em auto;
	text-align: center;
}


.service_page_section_inner h2 {
	font-size: 2.5em;
	letter-spacing: 0.1em;
	line-height: 1;
	text-align: center;
	margin-top: 2em;
}

.service_page_section_inner h3 {
	font-size: 3vw;
	text-align: center;
}

#service_list {
	width: 90%;
	margin: auto;
}

#service_list ul {
	margin-bottom: 3em;
}

#service_list li {
	margin: 1.5em 0;
}

#service_list h1 {
	text-align: center;
	font-size: 1.2em;
	font-weight: bold;
}

#service_list .service_list_text {
	text-align: justify;
	font-size: 0.8em;
	margin-top: 1.5em;
}



/* PCサイズ */
@media (min-width:768px) {
	#service_list .service_list_text {
		font-size: 1em;
	}
}

/************** contact.html **************/
.fv_img {
	margin-top: 4em;
}

.campaign_img {
	margin-top: 7em;
}

#icon {
	padding: 1em 1em;
}

#icon h1 {
	text-align: center;
	font-weight: bold;
	margin-top: 0.5em;
	font-size: 1.2em;
}

.contact_content {
	position: relative;
	content: "";
	display: block;
	width: 90%;
	top: 0;
	left: 0;
	margin: auto;
	margin-top: 3em;
	margin-bottom: 2em;
	padding-top: 1em;
}

.contact_content .contact_title {
	text-align: center;
	letter-spacing: 0.1em;
}

.contact_content .contact_title h1 {
	font-weight: bold;
	font-size: 1.5em;
}

.contact_content .contact_title p {
	margin-bottom: 2em;
}

.contact_content .orange {
	color: #EC7842;
	font-weight: bold;
	font-size: 1.3em;
}

.contact_heading_page {
	position: absolute;
	top: -6em;
	left: 0;
	width: 100%;
	padding: 1vh 3vh;
	/* z-index: 1; */
	background-color: rgba(0, 0, 0, 0.8);
}

/* フォームデザイン */
.Form-Item {
	border-top: 1px solid #000000;
	padding-top: 16px;
	padding-bottom: 16px;
	flex-wrap: wrap;
	width: 100%;
	display: flex;
	align-items: center;
}

.Form-Item:nth-child(5) {
	border-bottom: 1px solid #000000;
}

.Form-Item-Label {
	width: 100%;
	max-width: inherit;
	display: flex;
	align-items: center;
	letter-spacing: 0.05em;
	font-weight: bold;
	font-size: 15px;
	color: #000000;
}

.Form-Item-Label.isMsg {
	margin-top: 0;
	margin-bottom: auto;
}

.Form-Item-Label-Required {
	border-radius: 4px;
	margin-right: 8px;
	padding-top: 4px;
	padding-bottom: 4px;
	width: 32px;
	display: inline-block;
	text-align: center;
	background: #e40000;
	color: #fff;
	font-size: 10px;
}

.Form-Item-Input {
	border: 1px solid #000000;
	border-radius: 6px;
	padding-left: 1em;
	padding-right: 1em;
	height: 40px;
	flex: inherit;
	width: 100%;
	max-width: 100%;
	background: #fff;
	font-size: 15px;
	margin-top: 18px;
	color: #000;
}

.Form-Item-Textarea {
	border: 1px solid #000000;
	border-radius: 6px;
	padding-left: 1em;
	padding-right: 1em;
	height: 200px;
	flex: inherit;
	width: 100%;
	/* max-width: calc(100vmax * .4); */
	background: #fff;
	font-size: 15px;
	margin-top: 18px;
	color: #000;
}


.Form-Btn {
	border-radius: 5px;
	margin: auto;
	margin-top: 1em;
	height: 3em;
	width: 160px;
	display: block;
	letter-spacing: 0.05em;
	background-color: #000000;
	color: #ffffff;
	font-size: 16px;
	font-weight: bold;
}

/* こんな悩みを解決します */
#worries {
	background-color: #014076;
	padding: 1em 1em;
	margin-top: 2em;
}

#worries .worries_title_area {
	text-align: center;
	color: #ffffff;
	font-size: 1.5em;
	font-weight: bold;
}

#worries li {
	margin-top: 1.5em;
}

#worries li::before {
	content: "";
	background-image: url('../images/check.png');
	background-size: cover;
	/* 画像を親要素に合わせる */
	width: 30px;
	/* 擬似要素の幅を親要素に合わせる */
	height: 25px;
	/* 擬似要素の高さを親要素に合わせる */
	position: absolute;
	margin-top: 0.5em;
}

#worries ul li .li_text {
	color: #ffffff;
	margin-left: 2em;
	font-size: 1.3em;
}

#worries span {
	color: #FDBF01;
	font-weight: bold;
}

/* 弊社の特長 */
#features {
	padding: 2em 0;
}

#features img {
	width: 100%;
	margin: auto;
	display: block;
	margin-top: 2em;
}

#features .features_title_area {
	text-align: center;
	letter-spacing: 0.1em;
	color: #000000;
	font-size: 1.5em;
	font-weight: bold;
}

#features .features_text_area {
	padding: 0 1em;
}

#features h1 {
	color: #EC7842;
}

#features .no {
	color: #EC7842;
	font-size: 3em;
	font-weight: bold;
}

#features .li_text1 {
	text-align: justify;
	font-weight: bold;
	font-size: 1.2em;
}

#features .li_text2 {
	text-align: justify;
	margin-top: 1.5em;
}

#features .orange {
	color: #EC7842;
	font-weight: bold;
}

/* エリア問わず対応可能 */
#request {
	padding: 2em 1em;
	background-color: #F7F7F7;
	text-align: center;
}

#request .request_title_area {
	text-align: center;
	letter-spacing: 0.1em;
	color: #000000;
	font-size: 1.5em;
	font-weight: bold;
}

#request h1 {
	color: #EC7842;
}

#request h2 {
	font-size: 0.9em;
}

#request .request_text {
	text-align: justify;
	margin: 1.5em 0;
}


/* PCサイズ */
@media (min-width:768px) {
	.form_size {
		width: 50%;
		margin: auto;
	}

	#worries ul {
		margin-left: 30%;
	}
}



/************** recruit.html **************/
#key-visual .recruit_img {
	position: fixed;
	max-width: none;
	width: auto;
	height: 100%;
	top: 0;
	left: -28em;
	z-index: -1;
}



#key-visual .slogan_img {
	display: block;
	position: fixed;
	width: 80%;
	height: auto;
	top: 20em;
	left: 2em;
	transform: rotate(-12deg);
	transition: opacity 0.5s ease-in-out;
}

.slogan_area {
	/* max-width: none; */
	/* background-image: url(/images/slogan_bg01.jpg); */
	background-repeat: no-repeat;
	/* 画像の繰り返しを無効化 */
	background-size: cover;
	/* 画像のサイズを元のサイズに設定 */
	background-position: 85% 0;
	padding-bottom: 3em;
	width: 95%;
	margin: auto;
	color: #ffffff;

}

.slogan_area .slogan_content {
	margin-top: 2em;
}


.slogan_area h2 {
	font-size: 1.8em;
	border-bottom: 1px solid #ffffff;
	width: 75%;
}



/* 求める人材 */
#demand {
	background-image: url(/images/slogan_bg02.jpg);
	background-repeat: no-repeat;
	/* 画像の繰り返しを無効化 */
	background-size: cover;
	background-position: 73% 0;
	padding-bottom: 1em;
	width: 100%;
	color: #ffffff;
}

#demand .demand_wrap {
	width: 90%;
	margin: auto;
}

#demand .recruit_title {
	text-align: center;
	padding-top: 1.5em;
	font-size: 3em;
}

#demand .slogan_content {
	margin-top: 2em;
}


#demand h2 {
	font-size: 1.8em;
	border-bottom: 1px solid #ffffff;
	width: 75%;
}


.slogan_area .recruit_title {
	font-size: 2em;
	text-align: justify;
	color: #ffffff;
}

#demand table {
	width: 100%;
	margin: auto;
	font-size: 0.9em;
	color: #ffffff;
}

#demand th {
	border: 1px solid rgb(255, 255, 255);
	/* 枠線の太さと色を指定 */
	text-align: center;
	/* テキストを水平中央に配置 */
	vertical-align: middle;
	/* テキストを垂直中央に配置 */
	white-space: nowrap;
	/* テキストを改行させない */
	padding: 10px;
	/* セル内の余白を設定 */
}

#demand td {
	border: 1px solid rgb(255, 255, 255);
	/* 枠線の太さと色を指定 */
	text-align: justify;
	/* テキストを水平中央に配置 */
	vertical-align: middle;
	/* テキストを垂直中央に配置 */
	padding: 10px;
	/* セル内の余白を設定 */
}

#demand .contact_btn {
	border: 1px solid #ffffff;
	text-align: center;
	width: 80%;
	margin: 3em auto;
	display: block;
	border-radius: 25px;
	padding: 1em 0;
	letter-spacing: 0.2em;
	background-color: rgb(255, 255, 255, 0.8);
	color: #000000;
	font-weight: bold;
}

.recrute_heading_page {
	position: absolute;
	top: 4em;
	left: 0;
	width: 98%;
	padding: 1vh 0;
	padding-left: 2vw;
	background-color: rgba(0, 0, 0, 0.8);
}

/* PCサイズ */
@media (min-width:768px) {
	#key-visual .recruit_img {
		width: 70%;
		left: 15%;
	}

	#key-visual .slogan_img {
		width: 40%;
		top: 20em;
		left: 30%;
	}

	.recrute_heading_page {
		width: 97.1%;
	}

	.slogan_area .recruit_title {
		font-size: 3em;
	}

	#demand .contact_btn {
		width: 50%;
		margin-top: 6em;
	}
}

/************** thanks.html **************/
#thanks {
	background-color: #000000;
}

#thanks .thanks_img {
	width: 100%;
	/* 画像の幅を自動調整（アスペクト比を維持） */
	height: 100%;
	/* 画面の高さに合わせる */
	display: block;
	/* インライン要素としてではなく、ブロック要素として表示 */
	margin: 0 auto;
	/* 画像を中央に配置 */
	padding-top: 3em;
}

#thanks a {
	position: relative;
	top: -3em;
	font-size: 1.5em;
	border: 1px solid #ffffff;
	width: 50%;
	text-align: center;
	margin: auto;
	display: block;
	padding: 0.1em 0.2em;
	border-radius: 10px;
}

/* PCサイズ */
@media (min-width:768px) {
	#thanks a {
		top: -8em;
		padding: 0.3em 0.2em;
	}
}

/************** privacy.html **************/
#privacy{
	padding:0 0.5em;
	padding-top: 10em;
	margin-bottom: 3em;
	
}
#privacy h1{
	font-weight: bold;
}

#privacy li{
	text-align: justify;
	margin-top: 1em;
}


/************** mail.php **************/
#mail_content {
	text-align: center;
}

#mail_content a {
	text-decoration: none;
}

#mail_content .sendmessage {
	position: relative;
	font-size: 2em;
	top: 9em;
}

#mail_content .return_btn {
	position: relative;
	border: 1px solid #ddd;
	padding: 0.5em 0;
	font-size: 1em;
	width: 40%;
	margin: auto;
	border-radius: 10px;
	top: 20em;
}

#footer_fixed {
	position: absolute;
	bottom: 0;
	font-size: 0.6em;
	background-color: #000000;
	text-align: center;
	padding: 3em 0;
	width: 100%;
}