@charset "UTF-8";
/* ----------------------------------------------------------------------
トップページ
---------------------------------------------------------------------- *//*# sourceMappingURL=index.css.map */

/* ヒーローエリア */
.hero {
	position: relative;
	height: 72rem;
}

.hero-images{
	position:absolute;
	margin: 0 0 25rem ;
	display:flex;
	overflow: hidden;
	width:100%;
	z-index: -1;
}
.hero .slider_inner{
	display:flex;
	list-style: none;
	animation: infinity-scroll-left 60s infinite linear 0.5s both;
}
.hero .slider_item { width:72rem; margin-left:2rem;}
.hero .slider_item img {width: 100%; height: 100%; aspect-ratio: 1 / 1; display:block; object-fit: cover; justify-content: center; border-radius: 10px;}

@keyframes infinity-scroll-left{
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	} 
}

.hero-copy {
	position:absolute;
	bottom: 0rem;
	right: 0px;
	padding: 42px 82px 16px 60px;
	background-color: #fff;
	border-radius:50px 0 0 0;

}
.hero-copy h1 {
	display: inline-flex;
	align-items: center;
	line-height: 1;
	font-size: 5.6rem; 
	line-height: 5.6rem; 
	color: #8F0000;
	font-family: var(--font-family-noto_sans);
	font-weight: 700;
	margin-bottom: 1rem;
}

.hero-copy h1 span{
	border: 4px solid #8F0000;
	padding: 9px 11px 7px 11px;
	margin:0 1rem;
}
.hero-copy h1 span.ten{
	border: none;
	padding: 0px;
	margin:0rem;
} 

.hero-copy .en{
	line-height: 1.3;
	color: #8F0000;
	font-size: 3.2rem;
}


@media screen and (max-width: 1366px) {
	.hero-copy h1 {
		font-size: 5rem; 
	}
	.hero-copy .en{
		font-size: 2.8rem;
	}
}

@media screen and (max-width: 1024px) {
	.hero-copy {
		position: absolute;
		bottom: 0rem;
		right: 0px;
		background-color: #fff;
		border-radius: 30px 0 0 0;
		width: 82rem;
		height: 20rem;
		margin: auto;
		display: grid;
		place-content: center;
		padding: 4.2rem 5rem 0;
	}
	.hero-copy h1{
		letter-spacing: 0.1em;
		font-size: 4.8rem;
		line-height: 6rem;
		flex-wrap: wrap;	
	}
	.hero-copy .en{
		font-size: 2.0rem;
		line-height: 1.6;
	}
}
@media screen and (max-width: 820px) {
	.hero-copy {
		width: 78rem;
	}
	.hero .slider_item {
		margin-left: 1.5rem;
	}
}
@media screen and (max-width: 768px) {
	.hero-copy {
		padding: 5rem 3rem 2rem;
		width:66rem;
		height:16rem;
	}
	.hero-copy h1{
		font-size: 4.0rem;
		line-height: 4.5rem;
	}
	.hero-copy h1 span{
		padding: 2px 5px 0px;
		border: 3px solid #8F0000;
	}
	.hero-copy .en{
		font-size: 2rem;
	}
}

@media screen and (max-width: 520px) {
	.hero {
		height: 65rem;
	}
	.hero .slider_item {
		width: 65rem;
		margin-left: 1rem;
	}
	.hero-copy{
		width:40rem;
		height:26rem;
		padding: 4rem 2rem 2rem 3rem;
	}
	.hero-copy h1{
		font-size: 4.0rem;
		line-height:1.6;
	}
	.hero-copy h1 span{
		padding: 2px 5px 0px;
		border: 3px solid #8F0000;
	}
	.hero-copy .en{
		font-size: 1.6rem;
	}
}
@media screen and (max-width: 414px) {
	.hero {
		height: 55rem;
	}
	.hero .slider_item {
		width: 55rem;
	}
	.hero-copy {
		padding: 4rem 2rem 2rem 4rem;
		width:35rem;
		height:22rem;
	}
	.hero-copy h1 {
		font-size: 3.2rem;
		line-height:1.4;
	}
}

/* 私たちについて */
#about {
	position: relative;
	padding-top:25rem;
}
#about .box1{
	z-index: -1;
	position: absolute;
	border-radius: 0 8px 8px  0;
	background: linear-gradient(160deg, #C42A2A 7.73%, #A61414 95.27%);
	width: 12rem;
	height: 32rem;
	bottom:12rem;
	left:0;
}

#about .content{
	display: flex;
	gap:9rem;
	margin-bottom: 12rem;
}

#about .content .content_text{
	flex: 1;
	margin-bottom: 12rem;
}



#about .content .content_text h3{
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 7.8rem;
	letter-spacing: 0.2em;
	margin-bottom: 4rem;
}
#about .content .content_text h3 br{
	display:block;
}

#about .content .content_text p{
	font-size: 1.8rem;
	line-height: 2.5;
	letter-spacing: 0.1em;
	margin-bottom:3.0rem;
}

#about .content .content_img{
	flex: 1;
	position: relative;
}
#about .box1 {
	width: 8rem;
	height: 20rem;
}
#about .content .content_img .box2{
	z-index: 1;
	position: absolute;
	border-radius: 8px;
	background: linear-gradient(160deg, #C42A2A 7.73%, #A61414 95.27%);
	width: 16rem;
	height: 16rem;
	top:-8rem;
	right: -8rem;
}
#about .content .content_img .img1{
	z-index: 2;
	position: absolute;
	width: 54rem;
	height: 66rem;
	top:0;
	right: 0;
}
#about .content .content_img .img2{
	z-index: 3;
	position: absolute;
	width: 32rem;
	height: 46rem;
	bottom:0;
	left: 0;
}

@media screen and (max-width: 1600px) {
	#about {
		position: relative;
		padding-top: 20rem;
	}
	#about .inner {
		width:80%;
	} 
	#about .content .content_text h3 {
		font-size: 4rem;
		line-height: 6rem;
	}
	#about .content .content_text p {
		font-size: 16px;
		line-height: 2;
		letter-spacing: 0.1em;
	}
	#about .box1{
		width: 9rem;
		height: 24rem;
	}
	#about .content .content_img .box2 {
		width:12rem;
		height:12rem;
	}
	#about .content .content_img .img1 {
		width: 45rem;
		height: auto;
	}
	#about .content .content_img .img2 {
		width: 25rem;
		height:auto;
	}
}

@media screen and (max-width: 1366px) {
	#about .content{
		gap:6rem;
		margin-bottom: 2rem;
	}
	#about .content .content_text h3 {
		font-size: 3.2rem;
		line-height: 5rem;
		margin-bottom:2.0rem;
	}
	#about .content .content_text h3 br{
		display:block;
	}
	#about .content .content_text p{
		line-height: 2;
		margin-bottom:2.0rem;
	}

	#about .content .content_img .img1 {
		width:35rem;
		top:5rem;
	}
	#about .content .content_img .img2 {
		width:20rem;
		bottom: 10rem;
	}
	#about .content .content_img .box2 {
		top: 0rem;
	}
}
@media screen and (max-width: 1024px) {
	#about {
		padding-top: 16rem;
	}
	#about .inner {
		width: 90%;
	}
	#about .content {
		flex-wrap:wrap;
	}
	#about .content .content_text h3 {
		text-align:left;
		margin-bottom:2rem;
	}
	#about .content .content_text p{
		margin-bottom:2rem;
	}
	#about .content .content_text {
		margin-bottom: 6rem;
	}
	#about .box1 {
		width:4rem;
		height: 16rem;
		top: 10rem;
	}
	#about .content .content_img .box2 {
		right: -2rem;
	}
	#about .content .content_img .img1 {
		left: 55%;
		transform: translateX(-50%);
		width:32rem;
	}
	#about .content .content_img .img2 {
		left: 0;
		bottom: 6rem;
		width:16rem;
	}
}
@media screen and (max-width: 820px) {
	#about .content .content_text h3 {
        font-size: 2.6rem;
	}
	#about .content .content_img .img1 {
        width: 28rem;
		top: 10rem;
	}
	#about .content .content_img .box2 {
		
	}
}
@media screen and (max-width: 768px) {
	#about {
		height: 138rem;
	}
	#about .content{
		display:flex;
		flex-wrap:wrap;
	}
	#about .content .content_text{
		width:100%;
		flex:auto;
		margin-bottom:0;
	}
	#about .content .content_text h3 {
		margin-bottom: 2.5rem;
		font-size:3.6rem;
		line-height:1.8;
	}
	#about .content .content_text h3 br{
		display:block;
	}
	#about .content .content_text p {
		line-height: 1.75;
	}
	#about .box1 {
		width: 5rem;
		height: 12rem;
	}
	#about .content .content_img{
		flex: auto;
		position: relative;
		display: block;
		width: 100%;
	}
	#about .content .content_img .img1{
		margin: auto;
		left: 0;
		top: 5rem;
		right: 0;
		transform:none;
		width: 54rem;
		aspect-ratio: 8 / 5;
		object-fit: cover;
		border-radius:8px;
	}
	#about .content .content_img .box2 {
		right: 2rem;
	}

	#about .content .content_img .img2 {
		left: 0rem;
		bottom: -48rem;
	}
}

@media screen and (max-width: 520px) {
	#about {
		padding-top: 12rem;
		height: 125rem;
	}
	#about .content .content_text h3 {
		font-size: 2.6rem;
		line-height: 4rem;
		text-align:center;
	}

	#about .content .content_img .img1 {
		width: 28rem;
		aspect-ratio: 1;
	}
	#about .content .content_img .img2{
		right:1rem;
		top:auto;
		width:12rem;
		bottom:-40rem;
	}
	#about .box1 {
		display:none;
	}
	#about .content .content_img .box2 {
		right: 0rem;
		width: 10rem;
		height: 10rem;
	}
	#about .content .content_img .img2 {
		width: 12rem;
		bottom: -40rem;
	}
}
@media screen and (max-width: 414px) {
	#about .content .content_text h3 {
		font-size: 2.4rem;
		line-height: 1.6;
	}
	#about .box1 {
		width: 4rem;
		height: 10rem;
	}
	#about .content .content_text p{
		font-size:14px;
	}
}

/* 私たちについての下　スライダー */
.about-images{
	margin-bottom:12rem;
	display:flex;
	overflow: hidden;
	width:100%;
	height: 360px;
}
.about-images .slider_inner{
	display:flex;
	list-style: none;
	animation: infinity-scroll-left 50s infinite linear 0.5s both;
	align-items: center;
}
.about-images .slider_item {
	width: 24rem;
	height: 36rem;
	margin-left:6rem;
}
.about-images .slider_item img {
	width: 100%;
	height: 100%;
	aspect-ratio: 2/3;
	display:block;
	object-fit:cover;
	justify-content: center;
	border-radius: 10px;
}
.about-images .slider_item.small {
	width: 24rem;
	height: 24rem;
	margin-left:6rem;
}

.about-images .slider_item.small img {
	width: 100%;
	height: 100%;
	aspect-ratio: 1 / 1;
	display:block;
	object-fit:cover;
	justify-content: center;
	border-radius: 10px;
}

@keyframes infinity-scroll-left{
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	} 
}

@media screen and (max-width: 520px) {
	.about-images {
		margin-bottom:10rem;
	}
}

/* 施工事例 */
#works{
	background: linear-gradient(168deg, #A61414 10.88%, #D91E2E 88.94%);
	padding-top:16rem ;
	position:relative;
	padding-bottom: 23rem;
}

#works .section-title .en ,#works .section-title h2 {
	color: #EFB13C;
}


#works .article-grid {
	display: flex;
	flex-wrap:wrap;
	/*   justify-content: center; */
	gap: 3rem;
}

#works .work-card {
	display: flex;
	flex-direction: column;
	width: calc((100% - 9rem) / 4);
	background-color: #fff;
	border-radius: 8px;
	/* box-shadow: 0 4px 10px rgba(0,0,0,0.1); デザインに合わせた影 */
}
#works .work-card img{
	width: 100%;
	height: auto;
	justify-content: center;
	align-items: center;
	border-radius: 8px 8px 0 0;
	aspect-ratio: 8/5;
	display:block;
	object-fit:cover;
}
#works .work-card .text{
	margin: 2.0rem 2.5rem 2.5rem;
}

#works .work-card .text h3{
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.6;
	margin-bottom: 0.6rem;
	letter-spacing: 0.1em;
}

#works .work-card .text p{
	color: #333;
	font-size: 1.3rem;
	font-weight: 400;
	line-height: 1.6;
	margin-bottom: 1.2rem;
	letter-spacing: 0.1em;
}

#works .work-card .text .bottom{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

#works .work-card .text p.category{
	align-content: center ;
	padding: 6px 12px;
	color: #C03030;
	border-radius: 30px;
	background: #f5e1e1;
	line-height: 1;
	margin-bottom: 0rem;
	font-size:1.2rem;
}
#works .work-card a{
	color: #CCC;
	line-height: 2;
}

#works .view-more{
	text-align: center;
	margin-top: 6.2rem;
}
#works .view-more a.btn-more{
	background: #D0932A;
	padding: 2rem 9.3rem;
	border-radius: 5rem;
	line-height: 1;
	color: #FFF;
	font-size: 1.8rem;
	letter-spacing: 0.2em;
}

#works .catch_container{
	display: flex;
	justify-content: flex-start;
	align-items: center;
	overflow: hidden;
	z-index: 1;
	position: absolute;
	bottom: -1rem;
	width: 100%;
}
#works .catch_wrapper {
	display: flex;
	animation: loop-text 110s linear infinite;
}

#works .catch {
	position: relative;
	top: 4.0rem;
	display: inline-block;
	color: #FAF8F7;
	font-size: 20rem;
	font-weight: 300;
	line-height: normal;
	opacity: 0.2;
	white-space: nowrap;
}
@keyframes loop-text {
	0% {
		transform: translateX(0%);
	}
	100% {
		transform: translateX(-50%);
	}
}

@media screen and (max-width: 1440px) {
	#works .article-grid {
		flex-wrap: wrap;
	}
	#works .work-card {
		width: calc((100% - 4rem) / 2);
		flex-direction: row;
		align-items:center;
	}
	#works .work-card img{
		width:40%;
		aspect-ratio:4/5;
		border-radius:8px 0 0 8px;
	}
}

@media screen and (max-width: 1024px) {
	#works {
		padding-bottom: 18rem;
	}
	#works .work-card {
		width: calc((100% - 3rem) / 2);
		flex-direction:column;
	}
	#works .catch {
		font-size: 15rem;
		top: 3rem;
	}
	#works .work-card img{
		width:100%;
		aspect-ratio:8/5;
		border-radius: 8px 8px 0 0;
	}
}
@media screen and (max-width: 768px) {
	#works{
		padding-top:12rem;
		padding-bottom:12rem;
	}
}

@media screen and (max-width: 520px) {
	#works {
		padding-top: 8rem;
		padding-bottom: 8rem;
	}
	#works .article-grid {
		flex-direction: column;
	}
	#works .work-card {
		width:100%
	}
	#works .catch {
		font-size: 12rem;
		top: 2rem;
	}
}


/* 事業紹介 */
#business{
	padding-top: 20rem;
}
#business .business-item{
	display: flex;
	border-top: solid 1px #999;
	padding: 3rem;
	justify-content: space-between;
	align-items: center;
	gap:9rem;
}
#business .business-item:last-child{
	border-bottom: solid 1px #999;
}

#business .business-item .business_text .num{
	background: #D0932A;
	padding: 0.5rem 1.4rem;
	border-radius: 5rem;
	font-weight: 700;
	line-height: 1;
	color: #FFF;
	font-size: 1.4rem;
	letter-spacing: 0.1em;
}

#business .business-item .business_text h3{
	color: #333;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.2em;
	margin-top: 2.1rem;
	margin-bottom: 1.2rem;
}

#business .business-item .business_img{
	max-width: 40rem;
	height: auto;
	flex-shrink: 0;
}

#business .business-item img{
	width: 100%;
	height: 100%;
	max-width: 100%;
	align-items: center;
	border-radius: 8px;
	display:block;
	aspect-ratio: 8/5;
	object-fit:cover;
}

@media screen and (max-width: 1024px) {
	#business {
		padding-top: 16rem;
	}
	#business .business-item {
		padding:3rem 0;
		gap:3rem;
		flex-direction: row;
	}
	#business .business-item .business_text br{
		display: none;
	}
}
@media screen and (max-width: 820px) {
	#business .business-item .business_text h3{
		font-size: 2.2rem;
	}
    #business .business-item .business_img {
        max-width: 34rem;
	}
}
@media screen and (max-width: 768px) {
	#business .business-item .business_text h3{
		font-size:2.0rem;
		margin-top: 1.6rem;
		margin-bottom: 0.8rem;
	}
	#business .business-item .business_text p{
		font-size:1.6rem;
		letter-spacing:0.1em;
	}
	#business .business-item .business_img{
		max-width: 30rem;
	}

}

@media screen and (max-width: 520px) {
	#business {
		padding-top: 12rem;
	}
	#business .business-item{
		flex-wrap:wrap;
		padding:4.0rem 0;
		gap:2.0rem;
	}
	#business .business-item .business_text h3 {
		font-size: 2rem;
	}
	#business .business-item .business_img{
		max-width:none;
		width:100%;
	}
}

@media screen and (max-width: 414px) {
	#business .business-item .business_text p{
		font-size:14px;
	}
}

/* 会社概要 */
#company{
	padding: 20rem 0;
}
#company .company-details{
	display: flex;
	gap: 8rem;
}
#company .company-details .company_box{
	flex: 1;
}

#company .company-details table{
	width:100%;
}

#company .company-details table th, #company .company-details table td{
	vertical-align: middle;
	padding: 2rem 0;
	line-height: 2;
}
#company .company-details table tr{
	border-top: 1px solid #999;
}
#company .company-details table tr:last-child{
	border-bottom: 1px solid #999;
}

#company .company-details table td{
	padding-left: 4rem;
}

#company .company-details table th {
	text-align: center;
	font-weight: 500;
	width: 25%;
}
#company .company-details table td br.br1,#company .company-details table td br.br2{
	display:none;
}

#company .company-details .map {
	flex: 1;
	max-width: 52rem;
}

#company .company-details .map iframe{
	width: 100%;
	height: 32.5rem;
	border-radius: 8px;
	aspect-ratio: 8/5;
	border: 2px solid #EFB13C;
}
#company .company-details .map p{
	margin-top: 1.8rem;
	margin-bottom: 1rem;
}
#company .company-details .map p br.br1{
	display:none;
}

#company .company-details .map a{
	background: #D0932A;
	padding: 0.8rem 5rem;
	border-radius: 5rem;
	line-height: 1;
	color: #FFF;
	font-size: 1.4rem;
	letter-spacing: 0.1em;
}
#company .company-details .map a:hover{
	background:#ae6e00;
}

@media screen and (max-width: 1024px) {
	#company {
		padding: 16rem 0;
	}
	#company .company-details {
		flex-direction: column;
		gap: 4rem;
	}
	#company .company-details .map {
		margin: 0 auto;
		text-align: center;
	}
}
@media screen and (max-width: 768px) {
	#company .company-details table td br.br1{
		display:block;
	}
}

@media screen and (max-width: 520px) {
	#company {
		padding:12rem 0;
	}
	#company .company-details table th, #company .company-details table td {
		display: block;
		width: 100%;
		float: left;
		text-align: left;
		font-size:14px;
	}
	#company .company-details table th{
		font-weight:700;
		padding: 1.6rem 0rem 0rem 2rem;
	}
	#company .company-details table td {
		padding: 0rem 0rem 1.6rem 2rem;
	}
	#company .company-details table td br.br2{
		display:block;
	}
	#company .company-details .map p br.br1{
		display:block;
	}
}
