@charset "utf-8";
body.no_scroll {
		overflow: hidden;
		height: 100vh;
}
.loading_base {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		background: #fff;
		z-index: 8000;
		display: flex;
		justify-content: center;
		align-items: center;
}
.loading_logo {
		width: 300px;
		animation: fdIn 0.5s linear forwards;
}
@media(max-width: 767px) {
		.loading_logo {
				width: 200px;
		}
}
.loading_logo img {
		width: 100%;
		height: auto;
}
.page_shell {
		opacity: 0
}
.page_shell.isStart {
		opacity: 1
}
header {
		transition: opacity 0.8s;
		opacity: 0;
		pointer-events: none
}
header.isStart {
		opacity: 1;
		pointer-events: all
}
.kv_news, .kv_scroll_gr_wrap {
		transition: opacity 0.8s;
		opacity: 0;
		pointer-events: none
}
.kv_news.isActive, .kv_scroll_gr_wrap.isActive {
		opacity: 1;
		pointer-events: all
}
/* ============= */
.kv_bg {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background-repeat: no-repeat;
		background-position: center center;
		background-size: cover;
}
.kv_cover {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background-repeat: repeat;
		background-position: 0 0;
		background-image: url("../images/bg_texture_dark.png");
		background-size: 100px;
		mix-blend-mode: multiply
}
.kv_cover::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.2);
		pointer-events: none;
		transition: opacity 0.8s;
		opacity: 0;
}
.kv_cover.isActive::after {
		opacity: 1;
}
.bg1 {
		transform: scale(2);
		transition: transform 2s cubic-bezier(0.16, 1, 0.3, 1);
		transition-delay: 0.2s
}
.bg1.isStart, .bg5.isActive {
		transform: scale(1);
		opacity: 1
}
.bg5.isCurrent {
		transform: scale(1);
		opacity: 1;
		transition: transform 0s, opacity 0.8s;
}
.bg1 {
		background-image: url("../images/kv-1_pc.jpg");
		background-position: center center;
}
.bg2 {
		background-image: url("../images/kv-2_pc.jpg");
		background-position: center center;
}
.bg3 {
		background-image: url("../images/kv-3_pc.jpg");
		background-position: center center;
}
.bg4 {
		background-image: url("../images/kv-4_pc.jpg");
		background-position: center center;
}
.bg5 {
		background-image: url("../images/kv-5_pc.jpg");
		background-position: center center;
		transform: scale(1.3);
		opacity: 0;
		transition: transform 3.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 1.2s;
}
@media(max-width: 767px) {
		.bg1 {
				background-image: url("../images/kv-1_sp.jpg");
				background-position: center bottom;
		}
		.bg2 {
				background-image: url("../images/kv-2_sp.jpg");
				background-position: center bottom;
		}
		.bg3 {
				background-image: url("../images/kv-3_sp.jpg");
				background-position: center bottom;
		}
		.bg4 {
				background-image: url("../images/kv-4_sp.jpg");
				background-position: center bottom;
		}
		.bg5 {
				background-image: url("../images/kv-5_sp.jpg");
				background-position: center bottom;
		}
}
.kv {
		display: flex;
		justify-content: center;
		align-items: center;
}
.kv_catch {
		width: 40vw;
		position: relative;
		transform: translateY(-50px);
}
@media(max-width: 1500px) {
		.kv_catch {
				width: 760px;
		}
}
@media(max-width: 767px) {
		.kv_catch {
				width: 75vw;
				max-width: 320px;
		}
}
.kv_catch div {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		transition: opacity 0.8s;
		opacity: 0
}
.kv_catch.isStart div {
		opacity: 1
}
.kv_catch img {
		width: 100%;
		height: auto;
}
.kv .kv_news {
		position: absolute;
		width: 380px;
		right: 60px;
		bottom: 40px;
		display: flex;
		align-items: center;
		z-index: 10;
		box-sizing: border-box;
		padding: 15px;
		background: #fff;
		border-radius: 10px;
		color: #3DAE35;
}
.kv_news_hd {
		font-size: 24px;
		font-weight: 700;
		width: 80px;
}
.kv_news_cont {
		padding-left: 11px;
		border-left: 1px solid #3DAE35;
		flex: 1;
		font-weight: 500;
}
.kv_news_cont time {
		font-size: 13px;
		display: block;
		margin: 0 0 7px;
}
.kv_news_cont p {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		overflow: hidden;
		text-overflow: ellipsis;
		-webkit-line-clamp: 2;
		line-height: 1.6;
		font-size: 14px;
}
.kv .kv_news a {
		color: #3DAE35;
		text-decoration: none;
		transition: background 0.35s, color 0.2s;
		display: block;
		padding: 8px 12px;
		border-radius: 8px;
		background: rgba(255, 255, 255, 0);
}
@media (hover: hover) {
		.kv .kv_news a:hover {
				text-decoration: underline;
		}
}
@media(max-width: 960px) {
		.kv .kv_news {
				width: 320px;
				right: 20px;
		}
		.kv_news_hd {
				font-size: 18px;
				width: 70px;
		}
}
@media(max-width: 767px) {
		.kv .kv_news {
				display: none
		}
}
.kv .kv_scroll_gr_wrap {
		position: absolute;
		bottom: 30px;
		left: 0;
		width: 100%;
}
.kv_scroll_gr {
		margin: 0 auto;
		width: 40px;
		height: 70px;
		color: #fff;
		text-align: center;
}
.kv_scroll_tri_gr {
		width: 12px;
		margin: 10px auto 0;
}
.kv_scroll_tri {
		width: 0;
		height: 0;
		border-style: solid;
		border-right: 6px solid transparent;
		border-left: 6px solid transparent;
		border-top: 10px solid #fff;
		border-bottom: 0;
		margin-bottom: 3px;
		animation: fdIn 1s linear infinite;
}
.kv_scroll_tri_gr .kv_scroll_tri:nth-child(2) {
		animation-delay: 0.15s
}
.kv_scroll_tri_gr .kv_scroll_tri:nth-child(3) {
		animation-delay: 0.3s
}
@keyframes fdIn {
		0% {
				opacity: 0.1;
		}
		100% {
				opacity: 0.9;
		}
}
@media(max-width: 767px) {
		.kv .kv_scroll_gr_wrap {
				bottom: 20px
		}
}
/* ============= */
.top_container {
		position: relative;
		z-index: 5;
		background-repeat: repeat;
		background-position: 0 0;
		background-size: 100px;
		background-image: url("../images/bg_texture.png");
		background-color: #f5f5f5;
		padding-top: 120px;
}
@media(max-width: 767px) {
		.top_container {
				padding-top: 80px;
		}
}
section {
		min-height: 300px;
}
section.top_philosophy {
		padding-top: 35vh;
}
.top_philosophy_inner {
		position: relative;
		z-index: 5;
		color: #fff;
}
p.top_philosophy_lead {
		text-align: center;
		font-size: 20px;
		font-weight: 500;
		line-height: 2.2;
		letter-spacing: 0.08em;
		margin-bottom: 60px;
}
@media(max-width: 767px) {
		section.top_philosophy {
				min-height: inherit;
				padding-top: 80px;
				padding-bottom: 80px;
		}
		p.top_philosophy_lead {
				font-size: 15px;
				letter-spacing: 0.05em;
				margin-bottom: 50px;
		}
}
/* ========== */
.top_upper {
		background-repeat: no-repeat;
		background-position: bottom center;
		background-size: 2500px;
		background-image: url("../images/top_service_bg_pc.png");
		background-color: #f5f5f5;
		position: relative;
		padding-bottom: 160px;
}
.top_upper::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-position: 0 0;
		background-size: 100px;
		background-image: url("../images/bg_texture.png");
		pointer-events: none
}
@media(max-width: 767px) {
		.top_upper {
				background-size: 100%;
				background-image: url("../images/top_service_bg_sp.png");
				padding-bottom: 120px;
		}
}
/* ========== */
.top_bottom {
		padding-top: 160px;
		background-repeat: no-repeat;
		background-position: bottom center;
		background-size: 2600px;
		background-image: url("../images/top_bottom_bg_pc.png");
		background-color: #f5f5f5;
		position: relative;
}
@media(max-width: 960px) {
		.top_bottom {
				padding-top: 120px;
				background-image: url("../images/top_bottom_bg_mid.png");
		}
}
.top_bottom::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-repeat: repeat;
		background-position: 0 0;
		background-size: 100px;
		background-image: url("../images/bg_texture.png");
		pointer-events: none
}
@media(max-width: 767px) {
		.top_bottom {
				padding-top: 80px;
				background-repeat: no-repeat;
				background-position: bottom center;
				background-size: 100%;
				background-image: url("../images/top_bottom_bg_sp.png");
		}
}
/* ========== */
.top_business_flex {
		display: flex;
		align-items: center;
}
.top_business_figure {
		width: 540px;
		margin-right: 60px;
}
.top_business_figure img {
		width: 100%;
		height: auto;
		border-radius: 50%;
}
.top_business_caption {
		flex: 1;
}
@media(min-width: 768px) {
		.top_business_caption {
				position: relative;
				top: -40px
		}
}
.top_business_caption p {
		line-height: 2.0;
		margin: 0 0 40px;
}
.loop_wrap {
		padding: 60px 0 120px;
		overflow: hidden;
		position: relative;
		z-index: 5
}
.loop_slider, .reverse_slider {
		display: flex;
		width: 100%;
}
.loop_inner, .reverse_inner {
		display: flex;
}
.loop_item img {
		width: 100%;
		height: auto;
		mix-blend-mode: multiply;
}
.loop_item.slide-1 {
		width: 3075px;
}
.loop_item.slide-1 img {
		width: 100%;
		height: auto;
}
@media(max-width: 1200px) {
		.top_business_figure {
				width: 45%;
				margin-right: 40px;
		}
}
@media(max-width: 960px) {
		.top_business_figure {
				width: 40%;
				margin-right: 30px;
		}
		.loop_item.slide-1 {
				width: 2400px;
		}
}
@media(max-width: 767px) {
		.top_business_flex {
				display: flex;
				flex-direction: column-reverse;
		}
		.top_business_caption {
				margin: 0 0 50px
		}
		.top_business_figure {
				width: 100%;
				margin: 0
		}
		.loop_item.slide-1 {
				width: 1800px;
		}
		.loop_wrap {
				padding: 30px 0 80px;
		}
}
.loop_inner:first-child {
		animation: loop 120s linear infinite;
}
.loop_inner:nth-child(2) {
		animation: loop2 120s -80s linear infinite;
}
.loop_inner:last-child {
		animation: loop3 120s -40s linear infinite;
}
.reverse_slider .reverse_inner:first-child {
		animation: loop4 120s linear infinite;
}
.reverse_slider .reverse_inner:nth-child(2) {
		animation: loop5 120s -80s linear infinite;
}
.reverse_slider .reverse_inner:last-child {
		animation: loop6 120s -40s linear infinite;
}
@keyframes loop {
		0% {
				transform: translateX(200%);
		}
		to {
				transform: translateX(-100%);
		}
}
@keyframes loop2 {
		0% {
				transform: translateX(100%);
		}
		to {
				transform: translateX(-200%);
		}
}
@keyframes loop3 {
		0% {
				transform: translateX(0%);
		}
		to {
				transform: translateX(-300%);
		}
}
@keyframes loop4 {
		0% {
				transform: translateX(-100%);
		}
		to {
				transform: translateX(200%);
		}
}
@keyframes loop5 {
		0% {
				transform: translateX(-200%);
		}
		to {
				transform: translateX(100%);
		}
}
@keyframes loop6 {
		0% {
				transform: translateX(-300%);
		}
		to {
				transform: translateX(0%);
		}
}
/* ============= */
.philosophy_btn_gr {
		width: 280px;
		margin: 0 auto;
		padding-bottom: 35vh;
}
@media(max-width: 767px) {
		.philosophy_btn_gr {
				width: 260px;
				padding-bottom: 80px;
		}
}
/* =============== */
.top_works {
		background: linear-gradient(0deg, #25784c 0%, #31ab80 100%);
		color: #fff;
		position: relative;
		overflow: hidden;
		padding: 120px 0;
}
.top_works::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-repeat: repeat;
		background-position: 0 0;
		background-size: 100px;
		background-image: url("../images/bg_texture.png");
		pointer-events: none
}
@media(max-width: 767px) {
		.top_works {
				padding: 80px 0 120px;
		}
		.works_btn_gr {
				width: 260px;
				top: -14px;
		}
}
.top_maintenance_section {
		padding: 0px 30px 120px;
}
@media(max-width: 767px) {
		.top_maintenance_section {
				padding: 0px 20px 80px;
		}
}
/* =============== */
.sustainability_flex {
		display: flex;
}
.sustainability_left {
		flex: 1
}
.sustainability_left p {
		line-height: 2.2;
		text-align: justify;
		margin: 0 0 40px;
}
.sustainability_right {
		width: 650px;
		margin-left: 70px;
}
.sus_item {
		margin: 0 0 15px;
		color: #fff;
		background-color: #3dae35;
		border-radius: 10px;
		padding: 15px 30px;
		display: flex;
		align-items: center;
		justify-content: space-between;
		box-sizing: border-box;
		min-height: 112px;
}
.sus_gr .sus_item:last-child {
		margin-bottom: 0;
}
.sus_item p {
		font-size: 23px;
		font-weight: 600;
		margin: 0 0 10px;
}
.sus_item ul {
		list-style: none;
		font-size: 12px;
		margin-left: 1em;
}
.sus_item li {
		position: relative;
		line-height: 1.6;
}
.sus_item li::before {
		content: '※';
		display: block;
		position: absolute;
		top: 0;
		left: -1em;
}
.sus_item_right {
		font-size: 42px;
		letter-spacing: 0;
		font-weight: 700;
}
.sus_item_right small {
		font-size: 60%;
		margin-left: 3px;
}
.sus_item_right small.hf {
		font-size: 13px;
}
.sus_item_left sub, .sus_item_right small sub, .sus_item_right small sup {
		font-size: 50%;
}
.sus_item_left sub, .sus_item_right small sub {
		vertical-align: 0em;
		margin-left: 2px;
}
@media(max-width: 1200px) {
		.sustainability_right {
				width: 60%;
				margin-left: 30px;
		}
		.sus_item {
				padding: 15px;
		}
		.sus_item p {
				font-size: 2.2vw;
		}
		.sus_item_right {
				font-size: 3.6vw;
		}
}
@media(max-width: 840px) {
		.sustainability_right {
				width: 50%;
		}
		.sus_item {
				padding: 15px;
		}
		.sus_item p {
				font-size: 22px;
		}
		.sus_item_right {
				font-size: 40px;
				text-align: right;
				margin-top: 20px;
		}
		.sus_item {
				padding: 20px;
				display: block
		}
}
@media(max-width: 767px) {
		.sustainability_flex {
				display: block;
		}
		.sustainability_right {
				width: auto;
				margin: 60px 0 0;
		}
		.sus_item {
				padding: 15px;
				margin: 0 0 10px;
		}
		.sus_item p {
				font-size: 21px;
		}
		.sus_item_right {
				font-size: 42px;
				margin-top: 15px;
		}
		.sus_item {
				padding: 20px;
				display: block
		}
}
/* =============== */
.top_news {
		padding-bottom: 200px;
}
.top_news_inner {
		margin-left: calc(calc(100vw - 1100px) * 0.5);
		display: flex;
}
.top_news_left {
		width: 330px;
}
.top_news_right {
		flex: 1;
		overflow: hidden;
		position: relative;
		padding-left: 20px;
		padding-bottom: 20px;
}
@media(max-width: 960px) {
		.top_news_inner {
				display: block;
				margin: 0 !important
		}
		.top_news_left {
				width: auto;
		}
		.top_news {
				padding: 0 0 120px 30px;
		}
		.top_news_left .linkBtn {
				display: none
		}
		.top_news_right {
				padding: 0;
				margin-bottom: 40px;
		}
		.top_news_right + .spObj {
				display: block
		}
}
@media(max-width: 767px) {
		.top_news {
				padding: 0 0 120px 20px;
		}
}
/* =============== */
.top_recruit {
		padding-bottom: 390px;
}
.top_recruit_flex {
		display: flex;
		align-items: center;
}
.top_recruit_flex p {
		line-height: 2.2;
		margin: 0 0 40px;
}
.top_recruit_left {
		width: 612px;
		margin-right: 60px;
		position: relative;
}
.recruit_figure img {
		width: 100%;
		height: auto;
		border-radius: 50%;
}
.top_recruit_left .recruit_figure:nth-child(1) {
		width: 310px;
		left: 0px;
		position: relative;
}
.top_recruit_left .recruit_figure:nth-child(2) {
		position: absolute;
		width: 280px;
		left: 158px;
		top: 302px;
}
.top_recruit_left .recruit_figure:nth-child(3) {
		position: absolute;
		width: 250px;
		right: 0;
		top: 82px;
}
.top_recruit_right {
		flex: 1
}
@media(max-width: 1300px) {
		.top_recruit {
				padding-bottom: 240px;
		}
		.top_recruit_left {
				width: 48%;
				margin-right: 40px;
		}
		.top_recruit_left .recruit_figure:nth-child(1) {
				width: 50%;
		}
		.top_recruit_left .recruit_figure:nth-child(2) {
				width: 40%;
				left: 38%;
				top: 87%;
		}
		.top_recruit_left .recruit_figure:nth-child(3) {
				width: 40%;
				top: 5%;
		}
		.top_recruit_flex p br {
				display: none !important
		}
}
@media(max-width: 960px) {
		.top_recruit {
				padding-bottom: 160px;
		}
		.top_recruit_left {
				width: 50%;
				margin-right: 30px;
		}
}
@media(max-width: 767px) {
		.top_recruit {
				padding-bottom: calc(30vw + 80px);
		}
		.top_recruit_flex {
				display: flex;
				flex-direction: column-reverse;
		}
		.top_recruit_right {
				margin: 0 0 60px;
		}
		.top_recruit_flex p {
				line-height: 2;
				margin: 0 0 40px;
		}
		.top_recruit_left {
				width: 100%;
				margin: 0 auto;
		}
		.top_recruit_right .linkBtn {
				margin-left: auto;
				margin-right: auto;
		}
		.top_recruit_left .recruit_figure:nth-child(1) {
				width: 50%;
		}
		.top_recruit_left .recruit_figure:nth-child(2) {
				width: 40%;
				left: 38%;
				top: 87%;
		}
		.top_recruit_left .recruit_figure:nth-child(3) {
				width: 40%;
				top: 5%;
		}
}
/* =============== */
.top_maintenance {
		max-width: 1380px;
		margin: 0 auto;
		display: flex;
		justify-content: space-between;
		background-repeat: repeat;
		background-position: 0 0;
		background-size: 100px;
		background-image: url("../images/bg_texture.png");
		background-color: #328C5F;
		border-radius: 10px;
		overflow: hidden;
		color: #fff;
}
.top_maintenance_caption {
		flex: 1;
		display: flex;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
		padding: 30px;
}
.top_maintenance_caption p {
		line-height: 1.8;
		margin-bottom: 40px;
}
.top_maintenance_figure {
		width: 610px;
}
.top_maintenance_figure img {
		width: 100%;
		height: auto;
}
@media(max-width: 1300px) {
		.top_maintenance_figure {
				width: 45%;
		}
		.top_maintenance_figure img {
				width: 100%;
				height: 380px;
				object-fit: cover
		}
}
@media(max-width: 960px) {
		.top_maintenance_caption hgroup.section_title {
				margin-bottom: 30px;
		}
		.top_maintenance_caption hgroup.section_title .jp {
				font-size: 28px;
		}
		.top_maintenance_caption p {
				line-height: 1.8;
				margin-bottom: 20px;
		}
		.top_maintenance_caption p br {
				display: none
		}
}
@media(max-width: 767px) {
		.top_maintenance {
				display: flex;
				flex-direction: column-reverse;
		}
		.top_maintenance_caption {
				padding: 25px 25px 50px
		}
		.top_maintenance_caption hgroup.section_title .jp {
				font-size: 32px;
		}
		.top_maintenance_caption p {
				line-height: 1.8;
				margin-bottom: 30px;
		}
		.top_maintenance_caption .linkBtn {
				margin-left: auto;
				margin-right: auto;
		}
		.top_maintenance_figure {
				width: 100%;
		}
		.top_maintenance_figure img {
				width: 100%;
				height: auto;
				object-fit: contain;
		}
}
/* =============== */
.bnr_section {
		padding: 0 30px 80px
}
.bnr_col {
		max-width: 910px;
		margin: 0 auto;
		background-color: #ffffff;
		border-radius: 16px;
		display: flex;
		align-items: center;
		box-sizing: border-box;
		padding: 50px
}
.bnr_col_left {
		flex: 1
}
.bnr_col_left h5 {
		font-weight: 600;
		font-size: 24px;
		margin: 0 0 10px
}
.bnr_col_left p {
		line-height: 2.0;
		margin: 0 0 30px;
}
.bnr_col_right {
		width: 315px;
		margin-left: 30px;
}
.bnr_col_right img {
		width: 100%;
		height: auto;
}
@media(max-width: 960px) {
		.bnr_col {
				padding: 40px;
		}
		.bnr_col_right {
				width: 40%;
				margin-left: 30px;
		}
		.bnr_col_left h5 {
				font-size: 22px;
		}
}
@media(max-width: 767px) {
		.bnr_section {
				padding: 0 20px 80px
		}
		.bnr_col {
				display: flex;
				flex-direction: column-reverse;
				padding: 40px 20px;
		}
		.bnr_col_right {
				width: 80%;
				margin: 0 auto;
				padding: 20px 0 30px;
		}
		.bnr_col_left .linkBtn {
				margin: 0 auto;
		}
}
/* =============== */
.top_info {
		padding: 0px 0 120px;
}
@media(max-width: 767px) {
		.top_info {
				padding: 0px 0 120px;
		}
}
.top_footer_bg {
		height: 270px;
		background-repeat: repeat-x;
		background-position: 0 0;
		background-size: 294px;
		background-image: url("../images/top_footer_bg.png");
}
@media(max-width: 767px) {
		.top_footer_bg {
				height: 180px;
				background-size: 196px;
		}
}
/* =============== */