@charset "utf-8";
@media only screen and (min-width: 860px) {
	/* body fadein */
	body {
		animation: fadeIn 0 ease 0s 1 normal;
		-webkit-animation: fadeIn 0.5s ease 0s 1 normal;
	}
	@keyframes fadeIn {
		0% {
			opacity: 0;
		}
		100% {
			opacity: 1;
		}
	}
	@-webkit-keyframes fadeIn {
		0% {
			opacity: 0;
		}
		100% {
			opacity: 1;
		}
	}
}
@media screen and (min-width: 1001px) {
	body {
		padding-top: 74px;
		position: relative;
	}
	header {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		background-color: #fff;
	}
	#main {
		margin: 0 auto 42px auto;
		max-width: 1300px;
		width: 100%;
		font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Arial", "Meiryo", sans-serif;
		color: #333;
		padding: 0 20px 160px 20px;
		box-sizing: border-box;
	}
	#main table tr th,
	#main table tr td {
		color: #333;
	}
	#contents h2 {
		margin-top: 60px;
	}
	header .c-header {
		margin: 0 auto;
	}
	header .c-header .c-header-group {
		margin: 0 auto;
		max-width: 1300px;
	}
	header .c-header .c-header-group .c-header-logo {
		margin-left: 20px;
	}
	header .c-header-nav-area {
		border-bottom: 4px solid #ebebeb;
		box-shadow: rgba(33, 35, 38, 0.1) 0 10px 10px -10px;
	}
	header li.c-header-nav-item {
		transition: all 0.5s;
		border-bottom: 4px solid rgba(248, 248, 248, 1);
	}
	header li.c-header-nav-item:hover {
		border-bottom: 4px solid rgba(90, 170, 70, 1);
	}
	.c-header-nav-input:checked + .c-header-nav-label .c-header-nav-link {
		color: #fff;
		font-weight: 700;
		background-color: rgba(90, 170, 70, 1);
		background-size: 6px;
		background-position: center center;
		box-shadow: rgba(0, 0, 0, 0.06) 0 2px 4px 0 inset;
		opacity: 1;
		border-radius: 10px 10px 0 0;
		outline: 10px solid rgba(248, 248, 248, 1);
	}
	.section-wrap--white.pt0.pt-sp0 .c-inner {
		width: min(1440px, 100% - 20px);
	}
	.c-header .c-header-group .c-header-recruit .c-header-recruit-link {
		width: 240px;
		border-radius: 4px;
		border: 0;
		outline: 2px solid rgba(89, 169, 70, 0.4);
		outline-offset: 1px;
		font-size: clamp(2.04rem, 2vw, 2.04rem);
		letter-spacing: 5px;
		margin: 14px 0 0 0;
		max-height: 60px;
	}
	.c-megamenu-wrap {
		background-color: rgba(0, 89, 13, 0.97);
		background-image: url("/assets/images/common/bg_stripe.svg");
		background-size: 6px;
		background-position: center center;
		box-shadow:
			rgba(0, 0, 0, 0.16) 0 10px 36px 0,
			rgba(0, 0, 0, 0.06) 0 0 0 1px;
		border-top: 5px solid rgba(90, 170, 70, 1);
		border-bottom: 2px solid rgba(0, 89, 13, 1);
		padding: 30px 0;
	}
	.is-open-menu {
		transition: all 0.4s;
	}
	.top-head {
		border-top: 2px solid #fff;
		margin-top: -20px;
		box-shadow: rgba(100, 100, 111, 0.1) 0 7px 29px 0;
	}
	.top-head-text {
		line-height: 2;
	}
	.c-title-em {
		font-size: clamp(2.92rem, 3.4vw, 3.92rem);
	}
	.c-title-en--white span {
		border-radius: 20px;
	}
	.top-head-inner {
		background: radial-gradient(rgba(255, 255, 255, 1), rgba(247, 253, 242, 1));
		padding-bottom: 55px;
	}
	.c-works-grid {
		width: min(1440px, 100% - 20px);
	}
	.top-card--maintenance .top-card-name {
		font-size: clamp(2.04rem, 2.9vw, 3.52rem);
		padding-top: clamp(2.05rem, 9vw, 5.25rem);
	}
	.top-card--architecture .top-card-name {
		font-size: clamp(2.04rem, 2.9vw, 3.52rem);
		padding-top: clamp(2.05rem, 9vw, 5.25rem);
	}
	.top-card-text {
		font-size: clamp(1.6rem, 2.2vw, 1.6rem);
		border: 5px solid #fff;
		box-shadow: rgba(0, 0, 0, 0.25) 0 25px 50px -12px;
	}
	.top-sdgs-main-head {
		background: radial-gradient(rgba(255, 255, 255, 1), rgba(247, 253, 242, 1));
		box-shadow: rgba(0, 0, 0, 0.06) 0 2px 10px 0 inset;
		border-top: 1px solid #ebebeb;
		border-bottom: 1px solid #ebebeb;
	}
	.c-company-grid-title-em {
		font-size: clamp(2.96rem, 3vw, 2.88rem);
	}
	.section-wrap--white {
		padding-block: 135px 120px;
	}
	.top-sdgs-main-head-title-em {
		font-size: clamp(3.8rem, 4vw, 4.8rem);
		font-weight: 400;
		letter-spacing: 0;
	}
	.top-sdgs-main-head-title-br {
		font-size: clamp(2.88rem, 2.8vw, 3.88rem);
		font-weight: 400;
	}
	.top-sdgs-main-head-figure {
		width: 1070px;
		translate: 0;
	}
	.section-wrap--green--town {
		padding-bottom: 170px;
	}
	.top-sdgs-main-head-title-group {
		padding-bottom: 5px;
	}
	.sdgs-main-head {
		margin-top: -28px;
	}
	.sdgs-main-head-title-em {
		font-size: clamp(3.8rem, 4vw, 4.8rem);
		font-weight: 400;
		letter-spacing: 0;
	}
	.sdgs-main-head-title-br {
		font-size: clamp(2.88rem, 2.8vw, 3.88rem);
		font-weight: 400;
	}
	.sdgs-main-head-title,
	.top-sdgs-main-head-title-br,
	.sdgs-main-head-title-br {
		line-height: 1.4em;
	}
	.section-wrap--green--earth {
		margin-bottom: -100px;
	}
	nav.submenu {
		padding: 10px 0;
		margin: 0 auto 30px auto;
		background: linear-gradient(to right, rgba(251, 251, 251, 1), #fff);
		border-bottom: 1px solid rgba(240, 240, 240, 1);
	}
	nav.submenu > div.container {
		padding-top: 10px;
		padding-bottom: 10px;
		color: #ccc;
	}
}
.c-company-list {
	gap: 0;
}
footer {
	box-shadow: rgba(33, 35, 38, 0.1) 0 10px 10px -10px;
}
.footer-inner {
	padding-block: 63px 54px;
	width: min(1000px, 100% - 30px);
}
.footer-iso {
	border-radius: 6px;
	padding: 10px 15px;
	margin-top: -80px;
	border: 2px solid rgba(8, 92, 20, 0.5);
	box-shadow: rgba(0, 0, 0, 0.24) 0 3px 8px;
}
.pagetop {
	position: fixed;
	width: min(100%, 100% - 30px);
}
@media screen and (min-width: 641px) {
	.top-sdgs-main-head {
		height: 458px;
	}
	.top-head-img::after {
		background-color: transparent;
	}
	.top-card-link {
		max-height: 290px;
	}
	.top-card--architecture .top-card-name::before {
		width: 80px;
		height: 75px;
	}
	.section-wrap--green--town {
		margin-bottom: -60px;
		padding-top: 95px;
	}
	.section-wrap--green--town::before {
		background: url("../images/top/bg_town.svg") repeat-x center;
		height: 160px;
		background-size: cover;
		bottom: 47px;
	}
	.sdgs-main-head {
		height: 300px;
		margin-top: 30px;
	}
}
@media screen and (max-width: 640px) {
	.c-title-em {
		font-size: 25.6rem;
	}
	.top-card-name {
		font-size: clamp(2.36rem, 2.2vw, 2.88rem);
	}
	.top-card-text {
		padding: 0;
	}
	.c-icon-title-em {
		font-size: clamp(2.36rem, 2.2vw, 2.88rem);
	}
	.top-sdgs-main-head {
		padding: 30px 9px 20px;
	}
	.top-sdgs-main-head-title {
		font-size: clamp(2.24rem, 2.4vw, 2.24rem);
		line-height: 0.8em;
	}
	.top-sdgs-main-head-title-group {
		padding-bottom: 0;
	}
	.top-sdgs-main-head-title-em {
		font-size: 3.64rem;
	}
	.top-sdgs-main-head-title-br {
		font-size: 3rem;
	}
	.top-sdgs-main-head::before {
		top: -135px;
	}
	.top-sdgs-main-head-title-group > [class*="c-button"] {
		margin-top: 260px;
	}
	.c-company-grid-title-em {
		font-size: clamp(2.24rem, 2.4vw, 2.24rem);
	}
	.c-company-grid-item:nth-child(1)::before {
		height: 119px;
	}
	.section-wrap--green--town::before {
		height: 190px;
	}
	.c-company-list {
		gap: 0;
	}
	footer {
		margin-top: 100px;
	}
}
#main nav.business > ul > li > ul.button > li > a {
	font-size: 100%;
	letter-spacing: 1px;
}
.bg-stripe {
	background-image: url("/assets/images/common/bg_stripe3.jpg");
	box-shadow: rgba(0, 0, 0, 0.04) 0 2px 30px 0 inset;
	border-top: 2px solid #fff;
}
