@charset "utf-8";
/**
 * layout pc
 */


/* import
--------------------------------------------------*/
@import url("https://fonts.googleapis.com/css2?family=Lato:wght@300;700&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap");
@import "init.css";


/* html, body
--------------------------------------------------*/
    html,body {
	position:relative;
	width:100%;
	min-width:1200px;
	margin:0;
	text-align:left;
	font-family: "Zen Kaku Gothic New", "Helvetica", "Arial", sans-serif;
	font-weight:400;
	font-feature-settings:"palt";
	letter-spacing:0.025em;
	-webkit-text-size-adjust:none;
	color:#000000;
	text-underline-offset:3px;
	/* overflow-x:hidden; */
}


/* フローティング非表示 */
body.recruit .go_contact,
body.recruit_form .go_contact,
body.recruit_form_thanks .go_contact{
	display:none !important;
}
body.contact .go_contact,
body.contact_thanks .go_contact{
	display:none !important;
}


/* メンテナンス画面 */
.maintenance{
	background:#007f41;
}

.maintenance_set{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	min-height:100%;
	
	display:flex;
	flex-direction:column;
	justify-content:flex-start;
	padding-top:80px;
	padding-bottom:80px;

	align-items:center;
	gap:60px;
	box-sizing:border-box;

}

.maintenance_set p,
.maintenance_set a{
	text-align:center;
	line-height:2;
	color:#ffffff;
}

.maintenance_set .header_logo01{
	width:377px;
	height:auto;
}

.maintenance_set .header_logo01_text{
	font-size:24px;
	line-height:1;
	color:#ffffff;
	font-weight:500;
	letter-spacing:-0.05em;
}



/* サンクスページ */
.thanks_text01{
	line-height:2;
}


/* フォームバリデーション系 */
.screen-reader-response.active{
	position:relative;
	width:100%;
	font-size:14px;
	color:#ff0000;
	line-height:2;
	margin-bottom:60px;
	font-weight:500;
	background:#ffe5e5;
	border-radius:8px;
	padding:25px;
	box-sizing:border-box;
}

.screen-reader-response p,
.screen-reader-response li{
	font-weight:500;
}

.wpcf7-response-output{
	display:none;
}

.wpcf7-not-valid-tip{
	display:none;
}

input.wpcf7-not-valid{
	border:1px solid #ff0000 !important;
}

.wpcf7-not-valid input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	border: 1px solid #ff0000;
	border-radius: 3px;
	background-color: #f7f7f7;
}

.wpcf7-not-valid input[type="checkbox"]:checked {
	appearance: auto;
	-webkit-appearance: checkbox;
	border:none;
	background-color: #007f41;
}



/* 全体ラッパー */
.wrapper{
	position:relative;
	width:100%;
	overflow:hidden;
}


/* 二階層目以降共通 */
.page_contents{
	position:relative;
	width:1000px;
	margin:0 auto 0;
}

.page_contents_set{
	position:relative;
	width:100%;
	margin:120px auto 120px;
	padding-top:120px;
	padding-bottom:120px;
	background:#fffff2;
}

.page_caption{
	position:relative;
	padding-left:24px;
}

.page_caption::before{
	content:"";
	position:absolute;
	left:0;
	top:0;
	width:4px;
	height:100%;
	background:#007f41;
}

.page_caption02{
	margin-bottom:50px;
}

.page_caption03{
	position:relative;
	margin-bottom:30px;
	position:relative;
	width:100%;
	padding-top:12px;
	padding-bottom:15px;
	padding-left:30px;

	display:flex;
	align-items:center;

	background:
	linear-gradient(
		135deg,
		rgba(0,127,65,0.4) 0%,
		rgba(9,86,125,0.6) 100%
	),
	#007f41;

	color:#ffffff;
	box-shadow:0 0 8px 0 rgba(64,128,128,0.4);
	border:none;
	
	box-sizing:border-box;
}

.page_caption03 h3{
	line-height:1.6;
	font-weight:500;
}

.page_caption03 h3:has(span){
	line-height:1.2;
}

.page_caption h2{
	margin-bottom:10px;
	line-height:1.6;
	font-weight:500;
}

.page_caption time{
	display:block;
	color:#666666;
	padding-bottom:10px;
	line-height:1;
}


.page_main_visual{
	position:relative;
	width:100%;
	height:300px;
	background:#007f41;
	overflow:hidden;
}



/* 共通 */

.page_main_visual::before{
	content:"";

	position:absolute;
	inset:0;

	background-image:url("../images/page/page_main_pc.jpg");
	background-position:calc(50% + 150px) top;
	background-size:1920px auto;
	
	opacity:0;
	transform:scale(1.1);

	transition:
		opacity 2s ease,
		transform 40s cubic-bezier(0.22, 1, 0.36, 1);
}


/* 背景表示 */
.page_main_visual.active::before{
	opacity:1;
	transform:scale(1);
}






.page_main_visual_circle01,
.page_main_visual_circle02,
.page_main_visual_circle03{
	position:absolute;
	border-radius:50%;
	z-index:0;

	animation:floatCircle 12s ease-in-out infinite;
	
	opacity:0;
	transform:scale(1);
	
	
	transition:opacity 2s ease;
}


.page_main_visual_circle01.active,
.page_main_visual_circle02.active,
.page_main_visual_circle03.active{
	opacity:1;
}


/* circle01 */
.page_main_visual_circle01{
	width:420px;
	height:420px;

	top:-300px;
	left:50%;
	margin-left:-840px;
	background:rgba(232,201,46,0.4);
}

/* circle02 */
.page_main_visual_circle02{
	width:160px;
	height:160px;

	bottom:-70px;
	left:50%;
	margin-left:-280px;

	animation-duration:15s;
	animation-delay:2s;
	background:rgba(232,201,46,0.3);
}

/* circle03 */
.page_main_visual_circle03{
	width:90px;
	height:90px;

	top:15px;
	left:50%;
	margin-left:450px;

	animation-duration:10s;
	animation-delay:1s;
	background:rgba(232,201,46,0.2);
}

/* ゆらゆら */
@keyframes floatCircle{
	0%{
		transform:translate(0,0);
	}
	25%{
		transform:translate(-20px,20px);
	}
	50%{
		transform:translate(0,20px);
	}
	75%{
		transform:translate(20px,20px);
	}
	100%{
		transform:translate(0,0);
	}
}


.page_main_visual_title_set{
	position:relative;
	top:90px;
	left:50%;
	margin-left:-500px;
	z-index:1;
}

.page_main_visual_title_set h1{
	position:relative;
	display:block;
	height:97px;
}

.page_main_visual_title{
	position:relative;
	display:block;
	margin-bottom:25px;

	opacity:0;
	transform:translateX(-20px);

	transition:
		opacity 0.6s ease,
		transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}


.page_main_visual_text{
	position:relative;
	line-height:1;
	font-weight:500;
	color:#ffffff;

	opacity:0;
	transform:translateX(-20px);

	transition:
		opacity 0.6s ease,
		transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}


/* =========================
	表示
========================= */

.page_main_visual_title.active,
.page_main_visual_text.active{
	opacity:1;
	transform:translateX(0);
}



/* パンクズリスト */
.breadcrumb{
	position:relative;
	width:1000px;
	margin:30px auto 80px;
	line-height:1.8;
}

.breadcrumb ul{
	list-style:none;
	margin:0;
	padding:0;
}

.breadcrumb li{
	display:inline;
}

.breadcrumb ul a{
	color:#007f41;
}

.breadcrumb li:not(:last-child)::after{
	content:" > ";
	color:#999;
	margin:0 5px 0;
	position:relative;
	top:-2px;
}



/* 実績 */
.products_text01{
	position:relative;
	margin:0 auto 60px;
}

.products_circle_set{
	position:relative;
	width:1135px;
	height:444px;
	margin-left:-67px;
	margin-bottom:120px;
	
	background-image:url("../images/page/products_bg01_pc.png");
	background-position:center top;
	background-repeat:no-repeat;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:60px;
}

.products_circle{
	position: relative;
	
	width:420px;
	height:420px;
	

	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;

	border-radius:50%;
	background:
	linear-gradient(
		135deg,
		rgba(0,127,65,0.4) 0%,
		rgba(9,86,125,0.6) 100%
	),
	#007f41;
	color:#ffffff;
	text-decoration:none;

	gap:5px;
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);
	
	text-align:center;
	
}

.products_circle_text01{
	line-height:1;
	font-weight:500;
	margin-top:-20px;
	margin-bottom:25px;
}

.products_circle_text02{
	line-height:1.6;
	font-weight:500;
	margin-bottom:25px;
}

.products_text02{
	line-height:1;
	font-weight:500;
	margin-bottom:40px;

}



/* 実績詳細 */

.products_detail01_text{
	line-height:1;
	font-weight:500;
	margin-bottom:40px;
}

.products_detail02_text{
	line-height:2;
	color:#666666;
	text-align:center;
}

.products_detail_set{
	position:relative;
	width:1135px;
	height:444px;
	margin-left:-67px;
	margin-bottom:40px;
	
	background-image:url("../images/page/products_bg01_pc.png");
	background-position:center top;
	background-repeat:no-repeat;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-direction:column;
}

.products_detail03_text{
	line-height:2;
	text-align:center;
	margin-bottom:120px;
}





.products_detail_circle_set{
	position:relative;
}

.products_detail_circle{
	position: relative;
	
	width:360px;
	height:360px;
	

	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;

	border-radius:50%;
	background:
	linear-gradient(
		135deg,
		rgba(0,127,65,0.4) 0%,
		rgba(9,86,125,0.6) 100%
	),
	#007f41;
	color:#ffffff;
	text-decoration:none;

	gap:5px;
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);
	
	text-align:center;
	
}

.products_detail_circle_text01{
	line-height:1.6;
	font-weight:500;
	margin-top:-10px;
	margin-bottom:5px;
}

.products_detail_circle_text02{
	line-height:1.8;
	letter-spacing:0;
}

.products_detail_circle_row01{
	display:flex;
	justify-content:center;
	margin-bottom:-60px;
}

.products_detail_circle_row02{
	display:flex;
	justify-content:space-between;
}


/* 左斜線 */
.products_detail_line01{
	position:absolute;
	top:180px;
	left:50%;
	
	width:260px;
	height:1px;
	
	background:#2e8b57;
	transform:rotate(45deg);
	transform-origin:left center;
	
	opacity:0.2;
}

/* 右斜線 */
.products_detail_line02{
	position:absolute;
	top:180px;
	left:50%;
	
	width:260px;
	height:1px;
	
	background:#2e8b57;
	transform:rotate(-45deg);
	transform-origin:right center;
	opacity:0.2;
	margin-left:-260px;
}

/* 横線 */
.products_detail_line03{
	position:absolute;
	bottom:180px;
	left:50%;
	
	width:520px;
	height:1px;
	
	background:#2e8b57;
	transform-origin:centert center;
	opacity:0.2;
	margin-left:-260px;
}


.products_detail_box_set:not(:last-child){
	margin-bottom:60px;
}

.products_detail_box_set_recruit{
	margin-top:60px;
}




.products_detail_box_list{
	position:relative;
	display:flex;
	align-items:stretch;
	justify-content:space-between;
}

.products_detail_box_list li{
	position:relative;
	width:320px;
	background:#ffffff;
	padding:25px;
	box-sizing:border-box;
	
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);

	border-radius:8px;
	display:flex;
	flex-direction:column;
	align-items:center;
}


.products_detail_box_list_caption{
	font-weight:500;
	margin-bottom:10px;
	line-height:1.6;
	text-align:center;
	color:#007f41;
}

.products_detail_box_list_text{
	color:#666666;
	margin-top:10px;
	line-height:1.6;
}

.products_detail_box_list_img{
	flex-shrink:0;
	align-self:center;
}

.products_detail02_text01{
	position:relative;
	margin:0 auto 50px;
}

.products_detail02_text02{
	font-weight:500;
	text-align:center;
	margin-bottom:50px;
}

.products_detail02_text03{
	text-align:center;
	margin-bottom:120px;
	line-height:2;
}










.news_list{
	position:relative;
	width:1000px;
	margin:0 auto 0;
	border-top:solid 1px #d1e8de;
}

.news_list li{
	position:relative;
	padding:40px;
	border-bottom:solid 1px #d1e8de;
}

.news_list li a{
	display:flex;
	align-items:flex-start;
	gap:50px;
}

.news_list time{
	position:relative;
	color:#007f41;
	font-weight:500;
	line-height:2;
}

.news_text{
	color:#000000;
	line-height:2;
}


/* 記事共通 */
.news_detail_contents{
	margin-top:60px;
	line-height:2;
	padding-bottom:80px;
	border-bottom:solid 1px #d1e8de;
}

.news_detail_contents p{
	text-align:justify;
}

.news_detail_contents img{
	width:800px;
	height:auto;
	display:block;
	margin:60px auto;
}

.news_detail_contents a{
	text-decoration:none;
	color:#007f41;
	transition:
		opacity .2s,
		transform .2s,
		visibility .2s;
}

.news_detail_contents a:hover{
	opacity:0.6;
}

.page_link_set{
	position:relative;
	margin-top:120px;
	display:flex;
	justify-content:center;
}

.page_link_set02{
	margin-top:60px;
}



/* 個人情報保護方針 */

.privacy_text01{
	line-height:2;
	text-align:justify;
}

.privacy_text01 a{
	color:#000000;
}

.privacy_text02 a{
	color:#000000;
}

.privacy_text02{
	display:block;
	margin-top:50px;
	margin-bottom:50px;
	padding-left:50px;
	padding-right:40px;
}

.privacy_text02 li{
	text-indent:-1em;
	font-weight:500;
	text-align:justify;
	line-height:1.8;
}

.privacy_text02 li:not(:last-child){
	margin-bottom:10px;
}

.kakko{
	margin-left:-0.5em;
}

.privacy_text03{
	display:block;
	margin-top:20px;
	margin-bottom:20px;
	text-align:right;
	line-height:1.8;
}

.privacy_text04{
	display:block;
	text-align:right;
	line-height:1.8;
}

.privacy_text05{
	line-height:2;

}

.privacy_text05:not(:last-child){
	margin-bottom:40px;
}

.privacy_text_detail01{
	font-weight:500;
	display:block;
	margin-bottom:10px;
}

.privacy_text_detail02{
	font-weight:normal;
	display:block;
	text-indent:0em;
}

.privacy_text02 li:not(:last-child) .privacy_text_detail02{
	margin-bottom:30px;
}




.line{
	position:relative;
	width:100%;
	height:1px;
	background:#d1e8de;
	margin-top:120px;
	margin-bottom:120px;
}

.line02{
	margin-top:40px;
	margin-bottom:40px;
}

.line03{
	margin-top:60px;
	margin-bottom:60px;
}



/* 会社情報 */
.company_link_set{
	position:absolute;
	top:4px;
	right:0;
}

.company_link_set .btn01{
	height:50px;
}

.page_table{
	position:relative;
	width:1000px;
	margin:0 auto 0;
	border-top:solid 1px #d1e8de;
}

.page_table li{
	position:relative;
	padding:40px;
	border-bottom:solid 1px #d1e8de;
	display:flex;
	align-items:flex-start;
	flex-wrap:wrap;
}

.page_table_text01{
	position:relative;
	width:280px;
	font-weight:500;
	line-height:2;
	flex-shrink:0;
}

.page_table_text02{
	flex:1;
	min-width:0;
	line-height:2;
}

.page_table_text03{
	font-weight:500;
	line-height:2;
}

.page_table_mb{
	margin-bottom:20px;
	display:block;
}

.company_message_set{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
}

.company_message_photo{
	position:relative;
	width:360px;
	height:auto;
}

.company_message_text01{
	position:relative;
	text-align:right;
	display:block;
	margin-top:15px;
	line-height:1;
}

.company_message_text_set{
	position:relative;
	width:580px;
	margin-top:-5px;
	display:block;
}

.company_message_text02{
	position:relative;
	display:block;
	line-height:2;
}

.company_message_text03{
	position:relative;
	display:block;
	line-height:2;
	margin-top:50px;
	font-weight:500;
}

.company_message_text04{
	position:relative;
	display:block;
	line-height:2;
	margin-top:50px;
	margin-bottom:5px;
	font-weight:500;
}


.company_circle01,
.company_circle02,
.company_circle03{
	position:absolute;
	border-radius:50%;
	z-index:0;

	animation:floatCircle 12s ease-in-out infinite;
}

/* circle01 */
.company_circle01{
	width:420px;
	height:420px;

	top:820px;
	left:50%;
	margin-left:-715px;
	background:rgba(232,201,46,0.4);
}

/* circle02 */
.company_circle02{
	width:160px;
	height:160px;

	top:1300px;
	left:50%;
	margin-left:-325px;

	animation-duration:15s;
	animation-delay:2s;
	background:rgba(232,201,46,0.3);
}

/* circle03 */
.company_circle03{
	width:90px;
	height:90px;

	bottom:-60px;
	left:50%;
	margin-left:-520px;

	animation-duration:10s;
	animation-delay:1s;
	background:rgba(232,201,46,0.2);
}

.company_member_set{
	display:flex;
	align-items:center;
	gap:40px;
}

.company_member_set:nth-child(4) img,
.company_member_set:nth-child(5) img{
	opacity:0;
}

.company_member_set:not(:last-child){
	margin-bottom:60px;
}

.company_member_photo{
	display:block;
	width:180px;
	height:auto;
}

.company_member_name_set{
	position:relative;
	width:280px;
}

.company_member_name_text01{
	line-height:1;
	margin-bottom:15px;
	font-weight:500;
}

.company_member_name_text02{
	line-height:1.6;
	font-weight:500;
}

.line_v{
	width:1px;
	align-self:stretch;
	background:#d1e8de;
}

.company_member_career_set{
	position:relative;
	flex:1;
}

.company_member_career_text01{
	line-height:1;
	margin-bottom:15px;
	font-weight:500;
}

.company_member_career_text02{
	line-height:1.8;
	color:#666666;
}

.company_member_career_text03{
	margin-top:15px;
	line-height:1.8;
	color:#666666;
}

.comapany_access_caption{
	position:relative;
	margin:0 auto 0;
}

.comapany_access_contents{
	position:relative;
	width:100%;
	margin:0 auto 0;
	text-align:center;
}

.comapany_access_map_set{
	position:relative;
	margin-top:60px;
	margin-bottom:30px;
}

.comapany_access_map_set iframe{
	width:100%;
	height:450px;
	border:0;
	display:block;
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);
}


.comapany_access_text01{
	line-height:2;
}

.comapany_access_text02{
	color:#666666;
	text-align:left;
	display:inline-block;
	margin:20px auto 0;
	line-height:2;
}



/* お問い合わせ */
.form_caption01{
	font-weight:500;
}

.form_caption02{
	margin-top:10px;
	color:#666666;
}

.red{
	color:#ff0000;
}


.form01{
	width:540px;
	background:#f7f7f7;
	padding:10px;
	border:solid 1px #d2d2d2;
	border-radius:6px;
	box-sizing:border-box;
}

textarea.form01{
	height:160px;
	font-family:"Zen Kaku Gothic New", "Helvetica", "Arial", sans-serif;
	display:block;
}

.form01:focus{
	outline:none;
	border-color:#007f41;
	background:#fff;
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);
}

.form01::placeholder{
	color:#999999;
}

.form_attention_set ul{
	width:100%;
	max-height:250px;
	overflow-y:auto;
	margin-left:auto;
	margin-right:auto;
	background:#f7f7f7;
	padding:25px 25px 25px 35px;
	display:block;
	box-sizing:border-box;
	border-radius:8px;
}



.form_attention_text01{
	margin-top:80px;
	display:block;
	line-height:1.8;
	font-weight:500;
}

.form_attention_text02 a{
	color:#000000;
}

.form_attention_text02{
	display:block;
	margin-top:40px;
	margin-bottom:40px;
	padding-left:40px;
	padding-right:40px;
	color:#666666;
}

.form_attention_text02 li{
	text-indent:-0.8em;
	text-align:justify;
	line-height:1.8;
}

.form_attention_text03{
	display:block;
	color:#666666;
	line-height:1.8;
}

.form_attention_text03 a{
	color:#666666;
}

.form_attention_text02 li:not(:last-child){
	margin-bottom:20px;
}



/* =========================
   Contact Form 7 submit
========================= */
.form_submit_wrap{
	text-align:center;
}

.form_submit{
	position:relative;
	display:inline-flex;
	justify-content:center;
	margin-top:80px;
}

/* CF7ボタンを.btn01完全統一 */
.form_submit input.btn01{
	position:relative;
	width:300px;
	height:60px;

	display:flex;
	align-items:center;
	justify-content:center;

	background:
	linear-gradient(
		135deg,
		rgba(0,127,65,0.4) 0%,
		rgba(9,86,125,0.6) 100%
	),
	#007f41;

	color:#ffffff;

	border-radius:8px;
	box-shadow:0 0 8px 0 rgba(64,128,128,0.4);

	border:none;
	cursor:pointer;

	transition:
	background 0.2s,
	box-shadow 0.2s,
	filter 0.2s;
}

/* hover */
.form_submit:hover input.btn01{
	filter:brightness(1.1) saturate(1.1);
}

/* CF7は疑似要素使えないので親に付与 */
.form_submit::after{
	content:"";
	position:absolute;
	right:calc(50% - 140px);
	top:50%;
	transform:translateY(-50%);

	width:20px;
	height:20px;
	border-radius:50%;
	background:#fff;

	pointer-events:none;
	z-index:1;
}

.form_submit::before{
	content:"";
	position:absolute;
	right:calc(50% - 133px);
	top:50%;
	transform:translateY(-50%);

	width:0;
	height:0;

	border-top:3.5px solid transparent;
	border-bottom:3.5px solid transparent;
	border-left:6px solid #046f59;

	pointer-events:none;
	transition:transform 0.2s ease;
	z-index:2;
}

/* hover連動 */
.form_submit:hover::before{
	transform:translateX(5%) translateY(-50%) scale(1.2);
}

.form_check_caption{
	font-weight:500;
	display:block;
	margin-top:2px;
	margin-bottom:10px;
}

.form_line{
	position:relative;
	width:calc(100% + 40px);
	height:1px;
	background:#d1e8de;
	margin-left:auto;
	margin-right:-40px;
	display:block;
	margin-top:30px;
	margin-bottom:30px;
}

.check_item{
	display:flex;
	gap:8px;
	margin-bottom:10px;
	cursor:pointer;
	
	flex-direction:column;
	align-items:flex-start;
}

.check_item:last-child{
	margin-bottom:0;
}

.check_item input{
	accent-color:#007f41;
	width:16px;
	height:16px;
	margin-right:10px;
	
	vertical-align: middle;
	position: relative;
	
}

.page_table_check_set{
	position:relative;
	flex:1;
}


/* 採用フォーム */
.form02{
	width:120px;
	background:#f7f7f7;
	padding:10px;
	border:solid 1px #d2d2d2;
	border-radius:6px;
}

.form_space{
	line-height:1;
	margin:0 10px;
}

.select_wrap select{
	width:100%;
	box-sizing:border-box;
}


select.form01{
	appearance:none;
	-webkit-appearance:none;

	cursor:pointer;

	background-image:none;
	width:100%;
}

.select_wrap{
	position:relative;
	width:540px;
	flex-shrink:0;
}

.select_wrap::after{
	content:"";

	position:absolute;
	right:20px;
	top:50%;

	transform:translateY(-50%);

	width:0;
	height:0;

	border-left:4px solid transparent;
	border-right:4px solid transparent;
	border-top:7px solid #007f41;

	pointer-events:none;
}







/* 経営の想い */
.philosophy_text01{
	position:relative;
	margin:0 auto 120px;
	display:block;
}

.philosophy_photo01{
	position:relative;
	margin:0 auto 80px;
	display:block;
}

.philosophy_caption{
	position:relative;
	margin:0 auto 40px;
	display:block;	
}

.philosophy_caption_set:not(:first-of-type){
	margin-top:120px;
	display:block;
}

.philosophy_text02{
	line-height:2;
	color:#666666;
	text-align:center;
}

.philosophy_text03{
	color:#000000;
	font-weight:500;
}


.philosophy_text04_set{
	position:relative;
	margin-top:120px;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:20px;
}


.philosophy_text05_set{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:60px;
}



.philosophy_text05{
	color:#007f41;
	font-weight:500;
	line-height:1;
}


.page_contents_philosophy_set{
	position:relative;
	width:100%;
	margin:120px auto 0;
	padding-top:80px;
	padding-bottom:80px;
	background:#fffff2;
}


.philosophy_circle01,
.philosophy_circle02,
.philosophy_circle03{
	position:absolute;
	border-radius:50%;
	z-index:0;

	animation:floatCircle 12s ease-in-out infinite;
}

/* circle01 */
.philosophy_circle01{
	width:420px;
	height:420px;

	top:240px;
	left:50%;
	margin-left:340px;
	background:rgba(232,201,46,0.4);
}

/* circle02 */
.philosophy_circle02{
	width:160px;
	height:160px;

	top:1200px;
	left:50%;
	margin-left:-620px;

	animation-duration:15s;
	animation-delay:2s;
	background:rgba(232,201,46,0.3);
}

/* circle03 */
.philosophy_circle03{
	width:90px;
	height:90px;

	bottom:30px;
	left:50%;
	margin-left:320px;

	animation-duration:10s;
	animation-delay:1s;
	background:rgba(232,201,46,0.2);
}




/* サービス */
.service_text01{
	margin:0 auto 60px;
}

.service_text02{
	font-weight:500;
	text-align:center;
	margin-bottom:40px;
}

.service_box_set{
	position:relative;
	width:100%;
	display:flex;
	justify-content:space-between;
	align-items:center;
}

.service_box{
	position:relative;
	width:490px;
	display:flex;
	align-items:center;
	justify-content:center;
	padding-top:40px;
	padding-bottom:40px;
	font-weight:500;
	line-height:2;
	

background:
	linear-gradient(
		135deg,
		rgba(0,127,65,0.4) 0%,
		rgba(9,86,125,0.6) 100%
	),
	#007f41;

	color:#ffffff;
	text-align:center;
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);
}

.service_list{
	position:relative;
	display:flex;
	align-items:stretch;
	justify-content:space-between;
	margin-bottom:60px;
}

.service_list li{
	position:relative;
	width:235px;
	background:#f2f8f5;
	padding:15px;
	box-sizing:border-box;
	
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);

	border-radius:8px;
}


.service_list_caption{
	font-weight:500;
	margin-top:10px;
	margin-bottom:5px;
	line-height:1.6;
}


.service_list_text{
	color:#666666;
	margin-top:10px;
	margin-bottom:10px;
	line-height:1.6;
}


.service_text03{
	line-height:2;
	text-align:center;
}


.service_text04{
	color:#007f41;
	line-height:2;
	font-weight:500;
	margin-bottom:10px;
}

.service_text05{
	line-height:2;
	font-weight:500;
	margin-bottom:10px;
}

.service_text06{
	line-height:2;
	color:#666666;
}

.service_number_detail_set{
	position:relative;
	width:100%;
	display:flex;
	flex-wrap:wrap;
}

.service_number_detail_set:not(:last-child){
	margin-bottom:50px;
}

.service_number_head{
	display:flex;
	align-items:center; /* 上揃えなら flex-start */
	column-gap:40px;
}

.service_number_detail_set:not(:last-child){
	margin-bottom:50px;
}

.service_number_text01{
	margin:0;
	line-height:2;
	font-weight:500;
	color:#007f41;
}

.service_number_text02{
	margin:15px 0 0 105px; /* 画像幅+余白 */
	line-height:2;
	color:#666;
}

.solution_detail_set{
	position:relative;
	width:1000px;
}

.solution_text01{
	position:relative;
	width:857px;
	height:238px;
	background-image:url("../images/page/service_bg01_pc.png");
	background-position:center top;
	background-repeat:no-repeat;
	margin:auto;
	z-index:2;
	display:flex;
	align-items:center;
	justify-content:center;
	color:#ffffff;
	font-weight:500;
	letter-spacing:0.025em;
	box-sizing:border-box;
	padding-left:0.5em;
}

.solution_parts01{
	position:absolute;
	top:200px;
	left:50%;
	margin-left:-47px;
	z-index:1;
}

.solution_text02{
	position:relative;
	width:680px;
	margin:auto;
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);
	box-sizing:border-box;
	padding:40px 0;
	border-radius:16px;
	background:#ffffff;
	margin-top:30px;
	display:flex;
	align-items:center;
	justify-content:center;
	line-height:2;
	text-align:center;
	font-weight:500;
	color:#198d5c;
}

.solution_detail_set:not(:last-child){
	margin-bottom:60px;
}



.tech_set_text01{
	color:#007f41;
	font-weight:500;
	margin-bottom:20px;
}



.tech_set_text02{
	font-weight:500;

	display:flex;
	align-items:center;
	gap:10px;
	margin-left:1.3em;
	line-height:1;
}

.tech_set_text02:not(:last-child){
	margin-bottom:60px;
}




/* 採用情報 */
.slider{
	width:100%;
	overflow:hidden;
	margin-bottom:120px;
}

.slider_track{
	display:flex;
	width:max-content;
	will-change:transform;
	transform:translate3d(0,0,0);
}

.slider_track img{
	width:380px;
	height:auto;
	flex-shrink:0;
	margin-right:20px;
	display:block;
}

.recruit_text01{
	margin:0 auto 60px;
}

.recruit_text02{
	line-height:2;
}


/* 求人エリア */
.job_title01{
	font-weight:500;
	color:#007f41;
	margin-bottom:40px;
}

.job_caption01{
	font-weight:500;
	margin-bottom:15px;
}

.job_text01{
	color:#666666;
	margin-bottom:40px;
	line-height:2;
}

.job_table{
	margin-top:45px;
	
}







/* Paradigm流DXについて */
.paradigm_dx_contents{
	position:relative;
	width:100%;
	padding-bottom:40px;

	background:#ffffff;

	background-image:url("../images/page/paradigm_dx_bg01_pc.svg");
	background-repeat:no-repeat;
	background-position:center bottom;
	background-size:max(1400px, 100vw) auto;
}

.paradigm_dx_text01{
	margin:0 auto 60px;
}

.paradigm_dx_logo01{
	width:268px;
	height:auto;
	margin:0 auto 60px;
}

.paradigm_dx_text02{
	font-weight:500;
	text-align:center;
	line-height:1;
}

.page_contents_set02{
	margin-top:0;
	padding-top:80px;
	padding-bottom:180px;
	margin-bottom:-180px;
}

.page_caption h3{
	margin-bottom:10px;
	line-height:1.6;
	font-weight:500;
	color:#ffffff;
}

.paradigm_dx_text03{
	line-height:2;
	text-align:justify;
}

.products_detail_box_text01{
	line-height:2;
	text-align:justify;
}

.paradigm_dx_bg_set{
	position:absolute;
	top:60px;
	width:100%;
	overflow:hidden;
}

.paradigm_dx_bg02{
	position:relative;
	width:100%;
}

.paradigm_dx_image_set{
	position:relative;
	width:100%;
	margin-top:60px;
	margin-bottom:120px;
}

.paradigm_dx_image_circle_set{
	position:relative;
	width:100%;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:30px;
	margin-bottom:60px;
}


.paradigm_dx_image_circle{
	position: relative;
	
	width:300px;
	height:300px;
	

	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;

	border-radius:50%;
	background:
	linear-gradient(
		135deg,
		rgba(0,127,65,0.4) 0%,
		rgba(9,86,125,0.6) 100%
	),
	#007f41;
	color:#ffffff;
	text-decoration:none;

	gap:5px;
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);
	
	text-align:center;
	
}

.paradigm_dx_image_circle_text{
	line-height:2;
	font-weight:500;
}

.paradigm_dx_text04{
	text-align:center;
	color:#007f41;
	line-height:2;
	font-weight:500;
}

.paradigm_dx_text05{
	color:#007f41;
	line-height:2;
	font-weight:500;
	margin-bottom:10px;
}

.paradigm_dx_indent{
	position:relative;
	padding-left:2.3em;
	padding-right:2.3em;
}

.paradigm_dx_text06{
	line-height:2;
	font-weight:500;
	margin-bottom:10px;
}

.paradigm_dx_text07{
	line-height:2;
	color:#666666;
}

.paradigm_dx_indent:last-of-type .paradigm_dx_text07{
	margin-bottom:120px;
}



.page_white_box{
	position:relative;
	width:1000px;
	margin:auto;
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);
	box-sizing:border-box;
	padding:40px 0;
	border-radius:16px;
	background:#ffffff;
}

.page_white_box:not(:first-of-type){
	margin-top:40px;
}

.page_white_box:last-of-type{
	margin-bottom:120px;
}

/* 特定ページだけ解除 */
.page_contents_recruit_set{
	padding-bottom:120px;
}


.page_recruit_box_set .page_white_box:last-of-type{
	margin-bottom:0;
}

.page_white_box_text01{
	color:#007f41;
	font-weight:500;

	display:flex;
	align-items:center;
	gap:10px;
	padding-left:40px;
	padding-right:40px;
	line-height:1;
	box-sizing:border-box;
}

.page_white_box_circle{
	width:40px;
	height:40px;

	display:flex;
	justify-content:center;

	border-radius:50%;
	background:#007f41;
	color:#ffffff;
	margin-right:10px;
	line-height:35px;
}

.page_white_box_text02{
	font-weight:500;
	padding-left:40px;
	padding-right:40px;
	box-sizing:border-box;
	line-height:2;
}

.page_white_box_text03{
	padding-left:40px;
	padding-right:40px;
	box-sizing:border-box;
	line-height:2;
}

.bold{
	font-weight:500;
}






/* フローティングボタン */
.go_top {
	position: fixed;
	right: 40px;
	bottom: 40px;
	
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);

	transition:
		opacity .4s,
		transform .4s,
		visibility .4s;
	z-index:9999;
	
	width:42px;
	height:42px;
	

	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;

	border-radius:50%;
	background:#b6d9cc;
	color:#007f41;
	text-decoration:none;

	gap:3px;
	line-height:1;
	
}

.go_top.show {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.go_contact{
	position: fixed;
	right: 20px;
	bottom: 95px;
	
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);

	transition:
		opacity .2s,
		transform .2s,
		visibility .2s;
	z-index:9999;
	
	width:160px;
	height:160px;
	

	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;

	border-radius:50%;
	background:
	linear-gradient(
		135deg,
		rgba(0,127,65,0.4) 0%,
		rgba(9,86,125,0.6) 100%
	),
	#007f41;
	color:#ffffff;
	text-decoration:none;

	gap:5px;
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);
	
	text-align:center;
	
}

.go_contact_text{
	line-height:1.3;
}


/* マウスオーバー */
.go_contact:hover{
	filter:brightness(1.1) saturate(1.1);
}

.go_contact.show {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}



.go_top::before{
	content:"";
	display:block;

	width:0;
	height:0;

	border-left:4px solid transparent;
	border-right:4px solid transparent;
	border-bottom:7px solid #007f41;
}


/* アニメ系 */
.poyon{
	animation-delay: 0.1s;
	transform: scale(0);
}

.fade-up {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.8s ease, transform 0.2s ease;
}

.fade-up.show {
	opacity: 1;
	transform: translateY(0);
}

.fade-up.show_title {
	opacity: 1;
	animation: poyonTitle 0.6s ease-out forwards;
}

@keyframes poyonTitle {
	0% {
		transform: scale(1);
	}
	40% {
		transform: scale(1.1);
	}
	60% {
		transform: scale(1);
	}
	80% {
		transform: scale(1.05);
	}
	100% {
		transform: scale(1);
	}
}




/* オープニング */
body.top {
	opacity: 0;
	animation: fadeIn 1s ease forwards;
	animation-delay: 0.5s;  /* 遅延が欲しい場合 */
}
body.top header {
	opacity: 0;
	animation: fadeIn 1s ease forwards;
	animation-delay: 0.5s;  /* 遅延が欲しい場合 */
}

body.top section{
	opacity: 0;
	animation: fadeIn 1s ease forwards;
	animation-delay: 0.9s;  /* 遅延が欲しい場合 */
}



@keyframes fadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}



/* オープニング 中ページ */
body.page {
	opacity: 1;
	/*animation: fadeIn 1s ease forwards; */
	animation-delay: 0.25s;  /* 遅延が欲しい場合 */
}
body.page header {
	opacity: 1;
	/*animation: fadeIn 1s ease forwards; */
	animation-delay: 0.25s;  /* 遅延が欲しい場合 */
}

body.page .page_main_visual{
	opacity: 0;
	animation: fadeIn 1s ease forwards;
	animation-delay: 0.25s;  /* 遅延が欲しい場合 */
}

body.page .breadcrumb{
	opacity: 0;
	animation: fadeIn 1s ease forwards;
	animation-delay: 1s;  /* 遅延が欲しい場合 */
}

body.page .page_contents,
body.page .paradigm_dx_contents,
body.page .slider,
body.page .news_list{
	opacity: 0;
	animation: fadeIn 1s ease forwards;
	animation-delay: 1.2s;  /* 遅延が欲しい場合 */
}


@keyframes fadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}


/* ヘッダー */
header{
	position:relative;
	width:1080px;
	height:80px;
	margin:auto;
}

header h1 a{
	position:relative;
	margin-top: 16px;
	display: inline-flex;
	flex-direction: column;
}

.header_logo01,
.header_logo02{
	position:relative;
	width:140px;
	height:auto;
}

.header_logo01_text,
.header_logo02_text{
	font-size:11px;
	line-height:1;
	color:#2c8e5b;
	font-weight:bold;
	letter-spacing:-0.05em;
}

.header_logo02{
	position:absolute;
	opacity:0;
}

.header_logo02_text{
	position:absolute;
	opacity:0;
}


.menu_set{
	position:absolute;
	top:0;
	right:0;
	height:100%;
	display: flex;
	align-items: center;
	gap: 35px;
}


.menu_set a{
	position:relative;
	color:#666666;
	line-height:1;
	transition: color .4s;
	letter-spacing:0.025em;
	display:inline-block;
}

.menu_set a:hover{
	color:#007f41;
}

.menu_set a.active::after{
	content:"";
	position:absolute;
	left:0;
	bottom:-10px;
	width:100%;
	height:2px;
	background:#007f41;

	opacity:0;
	animation: fadeIn 1s ease forwards;
}



/* フッター */
footer{
	position:relative;
	margin-top:180px;
	width:100%;
	background:
	linear-gradient(
		135deg,
		rgba(0,127,65,0.4) 0%,
		rgba(9,86,125,0.4) 150%
	),
	#007f41;
	padding-top:120px;
	padding-bottom:120px;
}

.footer_menu_set{
	position:relative;
	width:1000px;
	display:flex;
	
	justify-content:space-between;

	margin:auto;
}

.footer_menu_set a{
	color:#ffffff;
	line-height:1;
}

.footer_logo_set{
	position:relative;
	width:1000px;
	display:flex;
	flex-direction:column;

	align-items:center;
	margin:60px auto 60px;
	
	border:solid 1px rgba(255,255,255,0.2);
	padding:40px 0;
	box-sizing:border-box;
}

.footer_logo01{
	position:relative;
	width:230px;
	height:auto;
	display:block;
	margin-top:35px;
	margin-bottom:12px;
}

.footer_logo_set_text01{
	position:relative;
	color:#ffffff;
	line-height:1;
}

.footer_logo_set_text02{
	position:relative;
	color:#ffffff;
	line-height:1;
}


.copyright{
	text-align:center;
	color:#ffffff;
	line-height:1;
}










section{
	position:relative;
}






/* リンクセット */
a{
	text-decoration:none;
}


/* フォントセット */
.font11{
	font-size:11px;
}

.font12{
	font-size:12px;
}

.font13{
	font-size:13px;
}

.font14{
	font-size:14px;
}

.font15{
	font-size:15px;
}

.font16{
	font-size:16px;
}

.font17{
	font-size:17px;
}

.font18{
	font-size:18px;
}

.font19{
	font-size:19px;
}

.font20{
	font-size:20px;
}

.font22{
	font-size:22px;
}

.font24{
	font-size:24px;
}

.font26{
	font-size:26px;
}

.font28{
	font-size:28px;
}

.font30{
	font-size:30px;
}

.font36{
	font-size:36px;
}






/* マウスオーバー */
.over{
	transition:
		opacity .2s,
		transform .2s,
		visibility .2s;
}

.over:hover{
	opacity:0.6;
}






/* ボタン */



.btn01{
	position:relative;
	width:300px;
	height:60px;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;

background:
	linear-gradient(
		135deg,
		rgba(0,127,65,0.4) 0%,
		rgba(9,86,125,0.6) 100%
	),
	#007f41;

	color:#ffffff;
	
	border-radius:8px;
	box-shadow: 0 0 8px 0 rgba(64,128,128,0.4);
	
	transition:
	background 0.2s,
	box-shadow 0.2s,
	filter 0.2s;
}

.btn01_products_detail{
	width:auto;
	padding:0 60px;
}

/* 白丸 */
.btn01::after{
	content:"";
	position:absolute;
	right:20px;
	top:50%;
	transform:translateY(-50%);

	width:20px;
	height:20px;
	border-radius:50%;
	background:#fff;
}

/* 三角 */
.btn01::before{
	content:"";
	position:absolute;
	right:27px;
	top:50%;

	transform:translateY(-50%) scale(1);

	width:0;
	height:0;

	border-top:3.5px solid transparent;
	border-bottom:3.5px solid transparent;
	border-left:6px solid #046f59;

	z-index:1;

	transition:transform 0.2s ease;
}

/* hover */
.btn01:hover::before{
	transform:translateX(5%) translateY(-50%) scale(1.2);
}

/* マウスオーバー */
.btn01:hover{
	filter:brightness(1.1) saturate(1.1);
}


.btn02{
	position:relative;
	width:300px;
	height:60px;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;


	color:#ffffff;
	
	border-radius:8px;
	border:solid 1px rgba(255,255,255,0.2);
	
	transition:
	background 0.2s,
	box-shadow 0.2s,
	filter 0.2s;
}

/* 白丸 */
.btn02::after{
	content:"";
	position:absolute;
	right:20px;
	top:50%;
	transform:translateY(-50%);

	width:20px;
	height:20px;
	border-radius:50%;
	background:#fff;
}

/* 三角 */
.btn02::before{
	content:"";
	position:absolute;
	right:27px;
	top:50%;

	transform:translateY(-50%) scale(1);

	width:0;
	height:0;

	border-top:3.5px solid transparent;
	border-bottom:3.5px solid transparent;
	border-left:6px solid #046f59;

	z-index:1;

	transition:transform 0.2s ease;
}

/* hover */
.btn02:hover::before{
	transform:translateX(5%) translateY(-50%) scale(1.2);
}

/* マウスオーバー */
.btn02:hover{
	background:rgba(255,255,255,0.15);
}




/* 初期 */
.header_wrap{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	min-width:1200px;

	z-index:9998;

	background:#fff;

	transition:
		transform 0.3s ease,
		border-color 0.3s ease;

	border-bottom:solid 1px transparent;
}

/* スクロール後 */
.header_wrap.scrolled{
	border-bottom:solid 1px #d1e8de;
}

/* 非表示 */
.header_wrap.hide{
	transform:translateY(-100%);
}

body{
	padding-top:80px;
}







/* グラフ */
.recruit_table_caption{
	position:relative;
	margin-top:20px;
}

.recruit_table{
	width:900px;
	display:flex;
	margin:20px auto 20px;
	border-radius:8px;
	box-shadow:0 0 8px 0 rgba(64,128,128,0.4);
}

.recruit_table_label{
	height:100px;
	width:calc(var(--w) * 1%);
	text-align:center;
	color:#ffffff;
	display:flex;
	align-items:center;
	justify-content:center;
}

.recruit_table_label:nth-child(1){
	background:#56a396;
	border-radius:8px 0 0 8px;
}

.recruit_table_label:nth-child(2){
	background:#25a18f;
}

.recruit_table_label:nth-child(3){
	background:#0b9a84;
}

.recruit_table_label:nth-child(4){
	background:#2d8476;
}

.recruit_table_label:nth-child(5){
	background:#1e7b6d;
	border-radius:0 8px 8px 0;
}

.recruit_table_text01{
}

.bar{
	display:none;
}

.recruit_attention{
	text-align:right;
	color:#666666;
}




/* フォームエラー対応 */
body.form_thanks .page_main_visual{
	opacity:0 !important;
	animation:none !important;
}

body.form_error .page_contents{
	opacity:1 !important;
	animation:none !important;
}

body.form_error .fade-up{
	opacity:1 !important;
	transform:none !important;
	transition:none !important;
}






/* ここからテンプレートエリア */
.rps_visible{
    display:none;
}

.rps_del{
    display:block;
}
