
main {
	font-family: "Noto Sans JP", "Yu Gothic", sans-serif;
	line-height: 1.75;
}

main p,
main blockquote,
main ul,
main ol,
main dl {
	margin-bottom: 2rem;
}

main p:last-child,
main blockquote:last-child,
main ul:last-child,
main ol:last-child,
main dl:last-child {
	margin-bottom: 0;
}

section.mv img {
	width: 100%;
	object-fit: cover;
	object-position: center;
	aspect-ratio: 1440 / 312;
}

section.mv h1 {
	position: absolute;
	display: flex;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.15em;
	line-height: 1.1;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

section.mv h1 .jpn {
	font-size: 2.5rem;
}

section.mv h1 .eng {
	padding-top: 0.5em;
	font-family: "Poppins", sans-serif;
	font-size: 1.25rem;
}

section.breadcrumb {
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.15em;
}

section.empty .container {
	padding-top: 0;
}

/* company */
main.company section.message .container {
	position: relative;
	background: url(../images/company/message_bg.jpg) top left no-repeat;
	background-size: contain;
}
main.company section.message .container:after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 12.5%;
	height: 100%;
	background: #fff;
}

main.company section.message .txt {
	margin-top: 8rem;
	padding: 2.75rem 4.75rem;
	background: #fff;
}

main.company section.message h2.title,
main.company section.message h2.title + .subtitle {
	text-align: left;
}

main.company section.message h3 {
	margin-bottom: 1em;
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1.1;
}

main.company section.message .author {
	font-size: 110%;
	text-align: right;
}

main.company section.message .img img {
	width: 100%;
}

main.company section.aboutus {
	background: #F3F3F3;
}

main.company section.aboutus h2.title, 
main.company section.aboutus h2.title + .subtitle {
	text-align: center;
}

main.company section.aboutus dl {
	display: grid;
	padding: 4rem;
	background: #fff;
	font-weight: 500;
	line-height: 2.25;
	box-shadow: 0 0 0.75rem 1px #D6D6D6;
	grid-template-columns: 11rem 1fr;
	overflow: hidden;
}

main.company section.aboutus dl > dt,
main.company section.aboutus dl > dd {
	margin: 0;
	padding: 0.75rem 1rem;
	border-top: 1px solid #D3D3D3;
	border-left: 1px solid #D3D3D3;
}
main.company section.aboutus dl > dt:last-of-type,
main.company section.aboutus dl > dd:last-of-type {
	border-bottom: 1px solid #D3D3D3;
}

main.company section.aboutus dl > dt {
	background: #EBF7F1;
}
main.company section.aboutus dl > dd {
	border-right: 1px solid #D3D3D3;
}

/* 箇条書きを「・」のまま自然に見せる */
main.company section.aboutus dl > dd br + br {
	content: "";
}

main.company section.access h2.title,
main.company section.access h2.title + .subtitle {
	text-align: center;
}

/* service */
main.services section.service .container:before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	max-width: 56rem;
	margin: auto;
	background: url(../images/services/service_bg.jpg) top center no-repeat;
	background-size: contain;
	aspect-ratio: 842 / 93;
}

main.services section.service .ttl {
	max-width: 56rem;
	margin: auto;
}

main.services section.service .ttl h2 {
	position: relative;
	font-size: 2rem;
	font-weight: 500;
	text-align: center;
	line-height: 2.5;
}

main.services section.service .ttl h2:after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	width: 7.5rem;
	height: 1px;
	margin: auto;
	background: #009B63;
}

main.services section.service .ttl .description {
	margin: 2.5rem auto 5rem auto;
}

main.services section.service li {
	display: grid;
	margin-bottom: 8em;
	font-weight: 600;
	grid-template-columns: 1fr 1fr;
}
main.services section.service li:last-child {
	margin-bottom: 0;
}

main.services section.service li .img {
	text-align: center;
}

main.services section.service li .txt {
	padding-right: 12%;
}
main.services section.service li:nth-child(2n+1) .txt {
	padding-left: 12%;
	padding-right: 0;
}

main.services section.service li .txt h2 {
	color: #019A64;
	font-weight: 600;
	line-height: 1.25;
}

main.services section.service li .txt h2 .num {
	display: block;
	font-family: "Poppins", sans-serif;
}

main.services section.service li .txt h2 .ttl {
	font-size: 2.5rem;
}

main.services section.service li .txt .description {
	margin: 2rem 0;
	font-weight: 400;
	line-height: 1.75;
}

main.services section.service li .txt .more_btn a {
	display: inline-block;
	padding: 0.35em 1.25em;
	background: linear-gradient(106.06deg, #019A64 0.84%, #5A9DA8 96.98%);
	border-radius: 5px;
	font-size: 0.85rem;
	color: #fff;
}

/* works */
main.works section.category .container,
main.works section.list .container {
	padding-top: 0;
}

main.works section.category .container {
	padding-bottom: 0;
}

main.works section.category ul {
	display: flex;
	gap: 1rem;
}

main.works section.category li {
	list-style: none;
}

main.works section.category li a {
	display: inline-block;
	padding: 0.25em 1em;
	border: 2px solid #0CB59B;
	font-size: 0.85rem;
	color: #0CB59B;
}
main.works section.category li.cur a {
	background: #0CB59B;
	color: #fff;
}

main.works section.list ul {
	display: grid;
	margin: 2em auto;
	gap: 5rem;
	grid-template-columns: 1fr 1fr;
}

main.works section.list li {
	list-style: none;
	box-shadow: 0 0 1.25rem 0.75rem #0000000F;
}

main.works section.list li span {
	display: block;
}

main.works section.list li .head {
	position: relative;
}

main.works section.list li .head img {
	width: 100%;
	object-fit: cover;
	object-position: center;
	aspect-ratio: 521 / 345;
}

main.works section.list li .head .tag {
	position: absolute;
	top: 0;
	left: 0;
	width: 3rem;
	height: auto;
	padding: 0.5rem;
	background: #0CB59B;
	font-size: 1.2rem;
	color: #fff;
	text-align: center;
}

main.works section.list li .head .ttl {
	position: absolute;
	bottom: 1rem;
	left: 1rem;
	font-weight: 700;
	color: #fff;
}

main.works section.list li .head .dt {
	font-family: "Poppins", sans-serif;
	font-size: 0.75rem;
}

main.works section.list li .head .title {
	font-size: 1.25rem;
}

main.works section.list li .description {
	padding: 1.5rem;
}

main.works section.list .pagination {
	margin-top: 5rem;
	text-align: center;
}

main.works section.list .pagination .page-numbers {
	display: inline-block;
	padding: 0.35em 1.25em;
	background: #0CB59B;
	border: 1px solid #0CB59B;
	border-radius: 5px;
	font-size: 0.85rem;
	color: #fff;
}

main.works section.list .pagination .prev,
main.works section.list .pagination .next {
	display: none;
}

main.works section.list .pagination .current {
	background: #fff;
	color: #0CB59B;
}

/* facility */
main.facility .list .container {
	padding-top: 0;
}

main.facility .list ul {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1fr 1fr 1fr;
}

main.facility .list li {
	padding: 1.5rem 1.75rem;
	border-radius: 0.5rem;
	box-shadow: 0 0 1.25rem 0.75rem #0000000F;
	list-style: none;
}

main.facility .list h3 {
	margin: 0.5em 0 0.25em 0;
	font-size: 1.5rem;
	font-weight: 600;
	color: #009B63;
}

main.facility .list p {
	margin: 0;
}

main.facility .list .ttl {
	font-weight: 600;
}

/* recruit */
main.recruit section.resource .container {
	padding-top: 0;
}

main.recruit section.resource .img {
	display: block;
	position: absolute;
	top: 0;
	right: 52.5%;
	width: 47.5%;
	text-align: right;
}

main.recruit section.resource h2 {
	padding: 0.5em 5% 0.5em calc(50% + 1rem);
	font-size: 2rem;
	color: #019A64;
}

main.recruit section.resource .description {
	padding: 2rem 5% 10rem calc(50% + 1rem);
	background: url(../images/recruit/recruit_bg.jpg) bottom right no-repeat;
	background-size: cover;
	color: #fff;
}

main.recruit section.environment ul {
	display: grid;
	padding: 3rem 0;
	text-align: center;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 2rem;
}

main.recruit section.environment li {
	list-style: none;
}

main.recruit section.environment li .img {
	margin: 0;
}

main.recruit section.environment li h3 {
	font-size: 1.15rem;
	color: #009B63;
	line-height: 3;
}

main.recruit section.environment li .description {
	max-width: 17.5rem;
	margin: 0 auto;
	font-size: 1rem;
	text-align: left;
}

main.recruit section.description {
	background: #F3F3F3;
}

main.recruit section.description dl {
	display: grid;
	padding: 4rem 1rem;
	background: #fff;
	line-height: 2.25;
	box-shadow: 0 0 0.75rem 1px #D6D6D6;
	grid-template-columns: 15rem 1fr;
	overflow: hidden;
}

main.recruit section.description dl > dt,
main.recruit section.description dl > dd {
	margin: 0;
	padding: 0.75rem 1rem;
	border-bottom: 1px solid #E0E0E0;
	font-weight: 600;
}
main.recruit section.description dl > dt:first-of-type,
main.recruit section.description dl > dd:first-of-type {
	border-top: 1px solid #E0E0E0;
}

main.recruit section.description dl > dt,
main.recruit section.description dl > dd strong {
	color: #009B63;
}

/* news */
main.news section.category .container,
main.news section.list .container {
	padding-top: 0;
}

main.news section.category .container {
	padding-bottom: 0;
}

main.news section.category ul {
	display: flex;
	gap: 1rem;
}

main.news section.category li {
	list-style: none;
}

main.news section.category li a {
	display: inline-block;
	padding: 0.25em 1em;
	border: 2px solid #0CB59B;
	font-size: 0.85rem;
	color: #0CB59B;
}
main.news section.category li.cur a {
	background: #0CB59B;
	color: #fff;
}

main.news section.list ul {
	margin: 2em auto;
	font-size: 1.2rem;
}

main.news section.list li {
	list-style: none;
}

main.news section.list li a {
	display: grid;
	padding: 1em 0;
	border-bottom: 1px dashed #d2d2d2;
	grid-template-columns: 7em 7em 1fr;
	align-items: center;
}

main.news section.list li .tag span,
main.news section.article .info .tag span {
	display: inline-block;
	padding: 2px 4px;
	border: 1px solid #0CB59B;
	font-size: 75%;
	color: #0CB59B;
	line-height: 1;
}

main.news section.list li .title {
	font-size: 1.1rem;
}

main.news section.list .pagination {
	text-align: center;
}

main.news section.list .pagination .page-numbers {
	display: inline-block;
	padding: 0.35em 1.25em;
	background: #0CB59B;
	border: 1px solid #0CB59B;
	border-radius: 5px;
	font-size: 0.85rem;
	color: #fff;
}

main.news section.list .pagination .prev,
main.news section.list .pagination .next {
	display: none;
}

main.news section.list .pagination .current {
	background: #fff;
	color: #0CB59B;
}

/* news detail */
main.news section.article .container {
	padding-top: 0;
	padding-bottom: 0;
}

main.news section.article .info {
	display: flex;
	justify-content: space-between;
}

main.news section.article .content {
	padding-bottom: 4rem;
	border-bottom: 1px solid #D2D2D2;
}

main.news section.goback .box {
	display: flex;
	justify-content: space-between;
}

main.news section.goback a {
	display: block;
	padding: 0.5em 0;
	width: 7.5em;
	max-width: 100%;
	margin: auto;
	background: #0CB59B;
	font-weight: 600;
	color: #fff;
	text-align: center;
}

/* contact */
main.contact section.mv h1 {
	color: #252525;
}

main.contact section.mv h1 .eng {
	color: #009B63;
}

main.contact section.form .container {
	padding-top: 0;
}

main.contact section.form .container > p {
	margin-bottom: 2rem;
}

main.contact section.form dl {
	display: grid;
	background: #fff;
	line-height: 2.25;
	grid-template-columns: 15rem 1fr;
	overflow: hidden;
}

main.contact section.form dl > dt,
main.contact section.form dl > dd {
	margin: 0;
	padding: 0.75rem 0;
	border-bottom: 1px solid #E0E0E0;
}
main.contact section.form dl > dt:first-of-type,
main.contact section.form dl > dd:first-of-type {
	border-top: 1px solid #E0E0E0;
}

main.contact section.form dl > dt {
	display: flex;
	font-weight: 600;
	color: #252525;
	align-items: center;
}

main.contact section.form .wpcf7-list-item {
	margin: 0;
}

main.contact section.form .require {
	color: #D90000;
}

main.contact section.form label {
	margin-right: 1rem;
}

main.contact section.form dd input[type=text],
main.contact section.form dd input[type=email],
main.contact section.form dd input[type=tel],
main.contact section.form dd textarea {
	width: 100%;
	padding: 0.5em;
	background: #EEEEEE;
	box-sizing: border-box;
}

main.contact section.form dd textarea {
	height: 12em;
}

main.contact section.form .example {
	color: #666666;
}

main.contact section.form .send_btn {
	position: relative;
}

main.contact section.form .back_btn {
	position: relative;
	margin-top: -5.25rem;
}

main.contact section.form .send_btn input,
main.contact section.form .back_btn input {
	display: block;
	padding: 0.5em 0;
	border-radius: 2rem;
	font-size: 1.2rem;
	text-align: center;
	letter-spacing: 0.2em;
}
main.contact section.form .send_btn input {
	width: 20em;
	max-width: 100%;
	margin: auto;
	background: #019A64;
	font-weight: 600;
	color: #fff;
}
main.contact section.form .back_btn input {
	width: 7.5em;
	background: #eee;
}

main.contact section.form .send_btn .wpcf7-spinner {
	position: absolute;
	bottom: -1.5em;
	left: 0;
	right: 0;
	margin: auto;
}

/* policy */
main.privacy-policy section.mv h1 {
	color: #252525;
}

main.privacy-policy section.mv h1 .eng {
	color: #009B63;
}

main.privacy-policy section.policy .container {
	background: #F3F3F3;
}

main.privacy-policy section.policy .box {
	padding: 2.5rem 1.5rem;
	background: #fff;
	box-shadow: 0 0 0.75rem 1px #D6D6D6;
}

main.privacy-policy section.policy .head {
	margin-bottom: 2rem;
	font-size: 1.1rem;
}

main.privacy-policy section.policy dt {
	margin-bottom: 0.5em;
	padding-bottom: 0.5em;
	border-bottom: 1px solid #ccc;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.1;
}

main.privacy-policy section.policy dd {
	margin-bottom: 2rem;
	font-size: 1.1rem;
}
main.privacy-policy section.policy dd:last-child {
	margin-bottom: 0;
}

@media screen and (min-width: 1440px){
/* company */
	main.company section.message .container {
		background-size: calc(50% + 540px) auto;
	}
	main.company section.access .container > * {
		max-width: 1080px;
	}
/* recruit */
	main.recruit section.resource > .container {
		max-width: 100%;
		margin: auto;
	}
}

@media screen and (max-width: 1440px){
/* company */
	main.company section.message .container:after {
		width: 7.5%;
	}
	main.company section.message .container {
		padding-top: 1px;
	}
	main.company section.message .txt {
		margin-top: calc(1rem + 12.5vw);
	}
}

@media screen and (max-width: 1200px){
/* facility */
	main.facility .list ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}
	main.facility .list li {
		width: 100%;
		max-width: 20rem;
	}
/* recruit */
	main.recruit section.resource .description {
		padding-bottom: 5rem;
		background: url(../images/recruit/recruit_bg_sp.jpg) bottom center no-repeat;
	}
/* news */
	main.news section.list ul {
		font-size: 1rem;
	}
}

@media screen and (min-width: 991px){
	section.breadcrumb .container {
		padding-top: 4.5rem;
		padding-bottom: 3.5rem;
	}
/* services */
	main.services section.service li:nth-child(2n+2) .txt {
		grid-row: 1;
		grid-column: 1;
	}
}

@media screen and (max-width: 990px){
/* company */
	main.company section.message h3 {
		font-size: 1.35rem;
	}
/* services */
	main.services section.service li {
		margin-bottom: 3rem;
		grid-template-columns: 1fr;
		gap: 1rem;
	}
	main.services section.service li .txt,
	main.services section.service li:nth-child(2n+1) .txt {
		padding: 0;
	}
/* works */
	main.works section.list ul {
		gap: 2rem;
	}
/* recruit */
	main.recruit section.resource .img {
		right: 72.5%;
		width: 27.5%;
	}
	main.recruit section.resource h2,
	main.recruit section.resource .description {
		padding-left: calc(25% + 1rem);
	}
	main.recruit section.environment ul {
		padding: 1rem;
		grid-template-columns: 1fr 1fr;
	}
	main.recruit section.description dl {
		grid-template-columns: 10rem 1fr;
	}
/* news */
	main.news section.list li a {
		grid-template-columns: 7em 5em 1fr;
	}
/* contact */
	main.contact section.form dl {
		grid-template-columns: 10rem 1fr;
	}
	main.contact section.form .back_btn {
		margin: 0;
	}
	main.contact section.form .back_btn input {
		margin: auto;
	}
}

@media screen and (min-width: 766px){

}

@media screen and (max-width: 765px){
	section.mv img {
		aspect-ratio: 390 / 380;
	}
	section.breadcrumb {
		font-size: 0.9rem;
		font-weight: 700;
		letter-spacing: 0.15em;
	}
	section.breadcrumb .container {
		padding-top: 1rem;
		padding-bottom: 2rem;
	}
/* company */
	main.company section.message .txt {
		padding: 1rem 1.5rem 2rem 1.5rem;
	}
	main.company section.aboutus dl {
		padding: 1rem;
		grid-template-columns: 1fr;
	}
	main.company section.aboutus dl > dt,
	main.company section.aboutus dl > dd {
		margin: 0;
		padding: 0.5rem 0.75rem;
	}
	main.company section.aboutus dl > dt {
		border-right: 1px solid #D3D3D3;
	}
	main.company section.aboutus dl > dt:last-of-type {
		border-bottom: 0;
	}
/* services */
	main.services section.service .ttl h2 {
		font-size: 1.35rem;
	}
	main.services section.service li .txt h2 .ttl {
		font-size: 1.75rem;
	}
	main.services section.service li .txt .more_btn a {
		font-size: 1.15rem;
	}
/* works */
	main.works section.list ul {
		grid-template-columns: 1fr;
	}
/* recruit */
	main.recruit section.mv img {
		object-position: 20% center;
	}
	main.recruit section.resource .img {
		position: relative;
		left: auto;
		right: auto;
		width: 75%;
		margin: auto;
	}
	main.recruit section.resource h2 {
		font-size: 1.5rem;
	}
	main.recruit section.resource h2,
	main.recruit section.resource .description {
		padding: 1rem;
	}
	main.recruit section.resource .description {
		background: url(../images/recruit/recruit_bg_sp2.jpg) bottom center no-repeat;
		background-size: cover;
	}
	main.recruit section.resource .description:after {
		content: "";
		display: block;
		width: 100%;
		background: url(../images/recruit/recruit_txt.png) center center no-repeat;
		background-size: contain;
		aspect-ratio: 1070 / 85;
	}
	main.recruit section.environment ul {
		padding: 0;
		grid-template-columns: 1fr;
	}
	main.recruit section.environment li .description {
		max-width: 20rem;
	}
	main.recruit section.description dl {
		padding: 2rem 1rem;
		grid-template-columns: 1fr;
	}
	main.recruit section.description dl > dt,
	main.recruit section.description dl > dd {
		margin: 0;
		padding: 0.5rem 0.75rem;
	}
	main.recruit section.description dl > dd:first-of-type {
		border-top: 0;
	}
/* news */
	main.news section.list li a {
		grid-template-columns: 7em 1fr;
	}
	main.news section.list li a .title {
		grid-column: span 2;
	}
/* contact */
	main.contact section.form dl {
		grid-template-columns: 1fr;
	}
	main.contact section.form dl > dt {
		padding-bottom: 0 !important;
		border-bottom: 0 !important;
	}
	main.contact section.form dl > dd {
		border-top: 0 !important;
	}
/* privacy */
	main.privacy-policy section.policy .head {
		font-size: 0.9rem;
	}
	main.privacy-policy section.policy dt {
		font-size: 1.25rem;
	}
	main.privacy-policy section.policy dd {
		font-size: 0.9rem;
	}
}
