@charset "UTF-8";
/* CSS Document */
/*-------------------------------*/

/* INDEX */

/*------------------------------*/
/* ================================

about

================================ */
/* スライダーはoption->slider->slider-about.css参照 */
@media (min-width: 960px) {
	.about__inner {
		display: grid;
		grid-template-areas:
		"headline	slider"
		"text		slider";
		grid-template-rows: auto 1fr ;
		grid-template-columns: minmax(330px, 0.6fr) minmax(550px, 1fr);
		-webkit-box-align: start;
		    -ms-flex-align: start;
		        align-items: flex-start;
		gap: 0 var(--gutter-var-2xl);
	}
	.about__headline {
		grid-area: headline;
	}
	.about__slider {
		grid-area: slider;
		max-width: calc(880rem / 16);
	}
	.about__txt-wrapper {
		grid-area: text;
	}
}
@supports (container-type: inline-size) {
	#about {
		container-type: inline-size;
		container-name: about-size;
	}
}
@container about-size (max-width: 1049px) {
	.about__inner {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
	}
	.about__slider {
		-webkit-box-flex: 1;
		    -ms-flex-positive: 1;
		        flex-grow: 1;
		margin-top: calc(6.25em - var(--gutter-common));
	}
	.about__txt-wrapper {
		-webkit-box-flex: 1;
		    -ms-flex-positive: 1;
		        flex-grow: 1;
		width: 100%;
		padding-right: var(--gutter-var-xl);
	}
}
@media (max-width: 959px) {
	.about__inner {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		    -ms-flex-direction: column;
		        flex-direction: column;
	}
	.about__slider {
		-webkit-box-flex: 1;
		    -ms-flex-positive: 1;
		        flex-grow: 1;
		width: calc(100% - var(--gutter-common));
		margin-top: calc(6.25em - var(--gutter-common));
	}
	.about__txt-wrapper {
		-webkit-box-flex: 1;
		    -ms-flex-positive: 1;
		        flex-grow: 1;
		width: 100%;
		padding-right: var(--gutter-var-xl);
	}
}
@media (max-width: 559px) {
	.about__slider {
		margin-top: calc(4.25em - var(--gutter-common));
	}
}
/* --------------
テキスト */
.about__txt-wrapper {
	margin-top: 6.25em;
}
.about__txt {
	margin-top: 3.125em;
}
.about__button {
	margin-top: 2.25em;
}
@media (max-width: 559px) {
	.about__txt-wrapper {
		margin-top: 4.25em;
	}
	.about__txt {
		margin-top: 2.125em;
	}
}



/* ================================

事業内容

================================ */
/* ------------
リスト */
.business__list {
	margin-right: auto;
	margin-left: auto;

	display: -webkit-box;

	display: -ms-flexbox;

	display: flex;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	gap: 0 var(--gutter-var-md);
}
.business__list::after {
	content: "";
	display: inline-block;
	-webkit-box-flex: 1;
	    -ms-flex-positive: 1;
	        flex-grow: 1;
	width: max(
		calc(calc(100% / 3) - var(--gutter-var-md)),
		calc(220rem / 16)
	);
	max-width: 100%;
	height: 0;
}
.business__item {
	-webkit-box-flex: 1;
	    -ms-flex-positive: 1;
	        flex-grow: 1;
	width: max(
		calc(calc(100% / 3) - var(--gutter-var-md)),
		calc(220rem / 16)
	);
	max-width: 100%;
	height: auto;
	margin-top: var(--gutter-md);

	display: -webkit-box;

	display: -ms-flexbox;

	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	    -ms-flex-direction: column;
	        flex-direction: column;
}
.business__img {
	width: 100%;
	height: auto;
}
.business__txt-wrapper {
	height: 100%;
	padding: var(--gutter-reg) var(--gutter-var-sm);
	background-color: var(--color-base);
}
.business__heading {
	font-size: calc(var(--txt-md) * 0.9);
	font-weight: 700;
	color: var(--color-main);
	letter-spacing: normal;
}
.business__txt {
	margin-top: 0.75em;
}
@media (max-width: 959px) {
	.business__txt-wrapper {
		padding: var(--gutter-reg) var(--gutter-common);
	}
	.business__heading {
		font-size: var(--txt-md);
	}
}


/* ================================

施工事例

================================ */
/* スライダーはoption->slider->slider-index-works.css参照 */
#works {
	margin-top: calc(var(--section-gutter) + var(--txt-10xl));
	position: relative;
}
#works::before {
	content: "WORKS";
	font-family: var(--alphabet);
	font-size: calc(var(--txt-10xl) * 2);
	font-weight: 900;
	color: var(--color-sub-soft);

	position: absolute;
	top: calc(0px - 1em);
	left: 0;
	margin-left: max(
		var(--gutter-common),
		calc(calc(70vw - var(--max-width))/2)
	);;
}
.works__txt-wrapper {
	margin-top: calc(5em - 30px);
}
.works__txt {
	margin-top: 3.1em;
	margin-bottom: 3.1em;
}
@media (max-width: 559px) {
	.works__txt {
		margin-top: 2.1em;
		margin-bottom: 2.1em;
	}
}


/* ================================

採用情報

================================ */
.index-recruit__photo {
	width: min(
		calc(100% - var(--gutter-common)),
		calc(1550rem / 16)
	);
	max-width: calc(1550rem / 16);
	margin-left: auto;
	margin-right: var(--head-match-space);
	height: auto;
	aspect-ratio: 1 / 0.45;

	position: relative;
}
.index-recruit__photo::after {
	content: "";
	display: inline-block;
	width: calc(100% + calc(var(--gutter-common) * 2));
	height: 100%;
	background-color: var(--color-sub-soft);

	position: absolute;
	top: var(--gutter-common);
	left: calc(var(--gutter-common) * 2);
	z-index: -1;
}
.index-recruit__photo img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	   object-fit: cover;
}
@supports not (aspect-ratio: 3 /2) {
	.index-recruit__photo::before {
		content: "";
		display: inline-block;
		padding-top: 45%;
	}
	.index-recruit__photo img {
		position: absolute;
		top: 0;
		left: 0;
	}
}
@media (max-width: 559px) {
	.index-recruit__photo {
		aspect-ratio: 16 / 9;
	}
	@supports not (aspect-ratio: 3 /2) {
		.index-recruit__photo::before {
			padding-top: 56.25%;
		}
	}
}
/* -----------
テキスト */
.index-recruit__inner {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	    -ms-flex-direction: column;
	        flex-direction: column;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;

	margin-top: calc(var(--gutter-5xl) + var(--gutter-common));
}
.index-recruit__txt {
	text-align: center;
	line-height: 1.56;

	margin-top: 3.1em;
	margin-bottom: 3.1em;
}