@charset "utf-8";

body::before {
	content: none;
}

/* index_main
====================================================================== */
.index_main {
	position: relative;
	margin-top: calc((var(--header-height) + var(--header-top)) * -1);
	padding-top: 53rem;
	.txt {
		--ls: .02em;
		font-size: 2.88rem;
		line-height: 1.8;
		font-weight: var(--font-weight-bold);
		.en {
			--ls: .08em;
			margin-top: 2rem;
			font-size: 4.8rem;
			line-height: 1;
			font-weight: var(--font-weight-bold);
			.-l {
				display: block;
				font-size: 15.4rem;
				line-height: 1.1;
			}
		}
	}
	.main_strengths {
		margin-top: 42rem;
		text-align: center;
		font-size: 2.8rem;
		line-height: 1.8;
		font-weight: var(--font-weight-bold);
		.more {
			margin-top: 4rem;
		}
	}
	@media screen and (min-width: 744px), print {
		.txt {
			max-width: 140rem;
			width: calc(100% - 10rem * 2);
			margin-inline: auto;
		}
	}
	@media screen and (max-width: 743px) {
		padding-top: 47rem;
		.txt {
			text-align: center;
			font-size: 1.44rem;
			.en {
				margin-top: 1rem;
				font-size: 2.4rem;
				.-l {
					font-size: 7.2rem;
				}
			}
		}
		.main_strengths {
			margin-top: 24rem;
			font-size: 1.8rem;
			.more {
				margin-top: 3rem;
			}
		}
	}

	&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		height: 160rem;
		background: url(../img/top/main-bg.jpg) no-repeat 50% 0;
		background-size: 200rem;
		z-index: -1;
		@media screen and (max-width: 743px) {
			height: 85.3rem;
			background-image: url(../img/top/main-bg_sp.jpg);
			background-size: 100%;
		}
	}
}

/* index_features
====================================================================== */
.index_features {
	margin-top: 8rem;
	margin-bottom: 12rem;
	h2 {
		margin-bottom: 4rem;
		text-align: center;
		font-size: 3.6rem;
		line-height: 1.2;
	}
	.features_contents {
		.item {
			--ptop: 9rem;
			padding: 14rem 5rem 7rem;
			clip-path: polygon(0 var(--ptop), 50% 0, 100% var(--ptop), 100% 100%, 0 100%);
			&:nth-child(1) {
				background: linear-gradient(180deg, #BDD9D6 0%, rgba(189, 217, 214, 0.5) 100%);
			}
			&:nth-child(2) {
				background: linear-gradient(180deg, #EDDA95 0%, rgba(237, 218, 149, 0.5) 100%);
			}
			&:nth-child(3) {
				background: linear-gradient(180deg, #E3DACD 0%, rgba(227, 218, 205, 0.5) 100%);
			}
			.num {
				margin-bottom: 4rem;
				font-size: 6.4rem;
				line-height: 1;
				color: #fff;
				text-align: center;
				font-weight: var(--font-weight-reg);
			}
			h3 {
				--ls: .05em;
				margin-bottom: 4rem;
				text-align: center;
				font-size: 3.6rem;
				line-height: 1.2;
				font-weight: var(--font-weight-bold);
			}
		}
	}
	@media screen and (min-width: 744px), print {
		.features_contents {
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			max-width: 152rem;
			width: calc(100% - 4rem * 2);
			margin-inline: auto;
			.summary {
				max-width: 38rem;
				margin-inline: auto;
			}
		}
	}
	@media screen and (max-width: 743px) {
		margin-top: 3rem;
		margin-bottom: 6rem;
		h2 {
			margin-bottom: 3rem;
			font-size: 2.2rem;
		}
		.features_contents {
			.item {
				--ptop: 6.8rem;
				padding: 7rem 4rem 11.4rem;
				&:not(:first-child) {
					margin-top: -6.8rem;
				}
				.num {
					margin-bottom: 2rem;
					font-size: 4.8rem;
				}
				h3 {
					margin-bottom: 2rem;
					font-size: 2.7rem;
				}
			}
		}
	}
}

/* index_service
====================================================================== */
.index_service {
	position: relative;
	clip-path: inset(0);
	padding-block: 12rem;
	color: #fff;
	.bg {
		position: fixed;
		inset: 0;
		z-index: -1;
	}
	.service_list {
		display: flex;
		gap: 2rem;
		.item {
			a {
				display: block;
				background-color: rgba(255,255,255,0.9);
				border-radius: var(--border-r);
				backdrop-filter: blur(4px);
				padding: 6rem 4rem;
				text-decoration: none;
				@media (hover) {
					&:hover {
						background-color: rgba(255,255,255,1);
					}
				}
			}
			.ico {
				margin-bottom: 2.4rem;
				text-align: center;
				img {
					width: 12rem;
				}
			}
			h3 {
				margin-bottom: 2.4rem;
				font-size: 2.4rem;
				line-height: 1.5;
				text-align: center;
			}
			.summary {
				margin-bottom: 2.6rem;
			}
		}
	}
	@media screen and (min-width: 744px), print {
		.service_list {
			.item {
				width: 100%;
				a {
					display: flex;
					flex-direction: column;
					height: 100%;
				}
				.more {
					margin-top: auto;
				}
			}
		}
	}
	@media screen and (max-width: 743px) {
		padding-block: 6rem;
		.service_list {
			flex-direction: column;
			.item {
				a {
					padding: 4rem 3rem;
				}
				.ico {
					img {
						width: 9rem;
					}
				}
				h3 {
					font-size: 2.2rem;
				}
				.summary {
					margin-bottom: 2.6rem;
				}
			}
		}
	}
}

/* index_works
====================================================================== */
.index_works {
	overflow: hidden;
	position: relative;
	padding-block: 12rem;
	.lead_block {
		margin-bottom: 6rem;
		.lead {
			--ls: .02em;
			margin-bottom: 4rem;
			font-size: 4.8rem;
			line-height: 1.2;
			font-weight: var(--font-weight-bold);
		}
	}
	.index_works_list {
		width: 100%;
		.swiper {
			overflow: visible;
		}
		.item {
			width: 48rem;
			height: auto;
			&:not(:last-child) {
				margin-right: 4.8rem;
			}
			a {
				display: flex;
				flex-direction: column;
				height: 100%;
				text-decoration: none;
				background: #fff;
				border-radius: var(--border-r);
				box-shadow: 0px .8rem 1.6rem rgba(0,0,0,0.05);
				overflow: hidden;
			}
			.ph {
				position: relative;
				aspect-ratio: 480 / 320;
				&:empty {
					background-color: #ddd;
				}
			}
			.content {
				flex-grow: 1;
				display: flex;
				flex-direction: column;
				padding: 4rem;
				h3 {
					--ls: .04em;
					margin-bottom: 2.4rem;
					font-size: 2.4rem;
					font-weight: var(--font-weight-bold);
				}
				.summary {
					overflow: hidden;
					display: -webkit-box;
					-webkit-box-orient: vertical;
					-webkit-line-clamp: 3;
					margin-bottom: 2.4rem;
				}
				.more {
					margin-top: auto;
				}
			}
		}
		.nav_arrow {
			--width: 6.4rem;
			position: absolute;
			top: calc(50% - var(--width) / 2);
			width: var(--width);
			aspect-ratio: 1;
			border-radius: 100%;
			background: var(--gradient-orange);
			transition: opacity .2s;
			z-index: 3;
			&::after {
				content: "";
				position: absolute;
				inset: 0;
				background: url(../img/ico-arrow-white.svg) no-repeat 50%;
				background-size: calc(1.6 / 6.4 * 100%);
				z-index: 2;
			}
			&.-l {
				right: calc(50% + 50vw - var(--width) - 3rem);
				&::after {
					transform: scaleX(-1);
				}
			}
			&.-r {
				left: calc(50% + 50vw - var(--width) - 3rem);
			}
			&:not(.swiper-button-disabled) {
				cursor: pointer;
			}
			&.swiper-button-disabled {
				opacity: 0.1;
				pointer-events: none;
			}
			@media (hover) {
				&:not(.swiper-button-disabled):hover {
					opacity: 0.7;
				}
			}
		}
	}
	@media screen and (max-width: 743px) {
		padding-block: 6rem;
		.lead_block {
			margin-bottom: 3rem;
			.lead {
				margin-bottom: 2rem;
				font-size: 2.8rem;
			}
		}
		.index_works_list {
			.item {
				width: 30rem;
				&:not(:last-child) {
					margin-right: 2.4rem;
				}
				.content {
					padding: 2rem;
					h3 {
						margin-bottom: 1.6rem;
						font-size: 1.8rem;
						line-height: 1.5;
					}
					.summary {
						margin-bottom: 1.6rem;
					}
				}
			}
			.nav_arrow {
				--width: 4.4rem;
				&.-l {
					right: calc(50% + 50vw - var(--width) - 1rem);
				}
				&.-r {
					left: calc(50% + 50vw - var(--width) - 1rem);
				}
			}
		}
	}

	.bg_shapes .shape_ele {
		&.-shape1 {
			width: 13rem;
			top: 7.6rem;
			right: calc(50% + 63rem);
			@media screen and (max-width: 743px) {
				width: 5.2rem;
				top: 4.5rem;
				right: 13.2rem;
			}
		}
		&.-shape2 {
			width: 33rem;
			top: 31.2rem;
			right: calc(50% + 53.6rem);
			@media screen and (max-width: 743px) {
				width: 13.2rem;
				top: .8rem;
				right: -1.5rem;
			}
		}
		&.-shape3 {
			width: 11.8rem;
			top: 26rem;
			right: calc(50% + 25.2rem);
			@media screen and (max-width: 743px) {
				width: 4.8rem;
				top: 12.8rem;
				right: 12rem;
			}
		}
	}
}


/* index_pickup
====================================================================== */
.index_pickup {
	position: relative;
	padding-block: 12rem;
	background-color: #fff;
	z-index: 1;
	.pickup_list {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 3.2rem;
		a {
			display: block;
			text-decoration: none;
			.ph {
				position: relative;
				margin-bottom: 2rem;
				border-radius: var(--border-r);
				aspect-ratio: 4 / 3;
				&:empty {
					background-color: #ddd;
				}
			}
			h3 {
				margin-bottom: 1rem;
				font-size: 1.8rem;
				line-height: 1.6;
				font-weight: var(--font-weight-medium);
			}
			.summary {
				overflow: hidden;
				display: -webkit-box;
				-webkit-box-orient: vertical;
				-webkit-line-clamp: 3;

			}
		}
		.category_list {
			margin-top: 2rem;
		}
	}
	@media screen and (max-width: 743px) {
		padding-block: 6rem;
		.pickup_list {
			grid-template-columns: repeat(2, 1fr);
			gap: 5rem 1.5rem;
			a {
				h3 {
					font-size: 1.4rem;
				}
			}
			.category_list {
				margin-top: 1.6rem;
			}
		}
	}

	.bg_shapes .shape_ele {
		&.-shape1 {
			width: 10rem;
			top: 7.6rem;
			left: calc(50% + 31.2rem);
			@media screen and (max-width: 743px) {
				width: 4rem;
				top: 3rem;
				left: 20.2rem;
			}
		}
		&.-shape2 {
			width: 30.2rem;
			top: 16.8rem;
			left: calc(50% + 43.6rem);
			@media screen and (max-width: 743px) {
				width: 12rem;
				top: 6.7rem;
				left: 25.2rem;
			}
		}
		&.-shape3 {
			width: 13.7rem;
			top: 6.4rem;
			left: calc(50% + 64.6rem);
			@media screen and (max-width: 743px) {
				width: 5.5rem;
				top: 2.5rem;
				left: 33.6rem;
			}
		}
	}
}


/* index_showroom
====================================================================== */
.index_showroom {
	--ls: .02em;
	position: relative;
	font-size: 1.8rem;
	line-height: 2;
	color: #fff;
	font-weight: var(--font-weight-bold);
	a {
		position: relative;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		text-decoration: none;
		color: #fff;
		height: 47.5rem;
		.arrow {
			position: relative;
			display: block;
			margin-top: 2rem;
			margin-inline: auto;
			width: 7.6rem;
			aspect-ratio: 1;
			border-radius: 100%;
			background: var(--gradient-orange);
			z-index: 2;
			&::after {
				content: "";
				position: absolute;
				inset: 0;
				background: url(../img/ico-arrow-white.svg) no-repeat 50%;
				background-size: 1.6rem;
			}
		}
		@media (hover) {
			&::before {
				content: "";
				position: absolute;
				inset: 0;
				background-color: #000;
				opacity: 0;
				z-index: 1;
			}
			&:hover::before {
				opacity: 0.3;
			}
		}
	}
	h2 {
		--ls: .05em;
		position: relative;
		margin-bottom: 2rem;
		font-size: 8rem;
		line-height: 1;
		font-weight: var(--font-weight-bold);
		z-index: 2;
	}
	.lead {
		position: relative;
		z-index: 2;
	}
	.bg {
		position: absolute;
		inset: 0;
		display: flex;
		z-index: -1;
		span {
			width: 100%;
		}
		img {
			object-fit: cover;
			width: 100%;
			height: 100%;
			&.-opr {
				object-position: 90%;
			}
		}
	}
	@media screen and (max-width: 743px) {
		font-size: 1.4rem;
		text-align: center;
		a {
			height: 46.8rem;
			.arrow {
				width: 5.6rem;
			}
		}
		h2 {
			font-size: 6.4rem;
		}
		.bg {
			flex-wrap: wrap;
			span {
				width: 50%;
				height: calc(46.8rem / 2);
			}
		}
	}
}


/* index_news
====================================================================== */
.index_news {
	position: relative;
	padding-block: 12rem;
	.index_news_list {
		ul {
			display: flex;
			flex-direction: column;
			gap: 2rem;
		}
		a {
			display: grid;
			grid-template-columns: 13.4rem 1fr;
			grid-template-rows: auto 1fr;
			column-gap: 2.4rem;
			align-items: start;
			background: #fff;
			border-radius: var(--border-r);
			padding: 3.2rem 4rem;
			box-shadow: 0px .2rem .4rem rgba(0,0,0,0.08);
			font-size: 2rem;
			line-height: 1.6;
			font-weight: var(--font-weight-medium);
			text-decoration: none;
			.img {
				grid-column: 1;
				grid-row: 1 / span 2;
				aspect-ratio: 134 / 185;
				img {
					object-fit: cover;
					width: 100%;
					height: 100%;
				}
			}
			.meta {
				display:flex;
				gap: 2.4rem;
				align-items: baseline;
				font-size: 1.4rem;
				line-height: 1.4;
			}
			.title {
				margin-top: 1.6rem;
			}
			&:not(:has(> .img)) {
				grid-template-columns: 1fr;
			}
			&.-new .title::before {
				content: "NEW";
				display: inline-block;
				margin-right: 1rem;
				padding: 0.5rem 2rem;
				background: linear-gradient(90deg, #B268D4 0%, #D468C0 50%, #FBB196 100%);
				border-radius: 10rem;
				font-family: var(--font-family-en);
				font-weight: var(--font-weight-medium);
				color: #fff;
				font-size: 1.4rem;
				vertical-align: 0.15em;
			}
		}
	}
	@media screen and (min-width: 744px), print {
		.index_news_list {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 2rem;
			a {
				min-height: 18.2rem;
			}
		}

	}
	@media screen and (max-width: 743px) {
		padding-block: 6rem;
		.index_news_list {
			display: flex;
			flex-direction: column-reverse;
			gap: 2rem;
			a {
				grid-template-columns: 10rem 1fr;
				padding: 2.4rem;
				font-size: 1.6rem;
				&.-new .title::before {
					padding: 0.4rem 1.5rem;
					font-size: 1.05rem;
					vertical-align: 0.15em;
				}
			}
		}
	}

	.bg_shapes .shape_ele {
		&.-shape1 {
			width: 13.8rem;
			top: 3rem;
			right: calc(50% + 20.5rem);
			@media screen and (max-width: 743px) {
				width: 5.6rem;
				top: 12rem;
				right: 13.7rem;
			}
		}
		&.-shape2 {
			width: 11.8rem;
			top: 6rem;
			right: calc(50% + 62rem);
			@media screen and (max-width: 743px) {
				width: 4.8rem;
				top: 2.2rem;
				right: 11.2rem;
			}
		}
		&.-shape3 {
			width: 33rem;
			top: 32.8rem;
			right: calc(50% + 51.6rem);
			@media screen and (max-width: 743px) {
				width: 13.2rem;
				top: 8rem;
				right: -2.8rem;
			}
		}
	}
}


/* index_bottom_bnr
====================================================================== */
.index_bottom_bnr {
	padding-block: 6rem;
	background-color: #eaeff5;
	ul {
		display: flex;
		gap: 3.2rem;
		a {
			display: flex;
			align-items: center;
			gap: 2.4rem;
			padding: 2.4rem;
			background-color: #fff;
			border-radius: var(--border-r);
			font-size: 2rem;
			font-weight: var(--font-weight-medium);
			text-decoration: none;
			box-shadow: 0px .2rem .4rem rgba(0,0,0,0.08);
			.img {
				width: 18rem;
				aspect-ratio: 360 / 240;
				flex-shrink: 0;
			}
		}
	}
	@media screen and (min-width: 744px), print {
		ul {
			li {
				width: 100%;
			}
		}
	}
	@media screen and (max-width: 743px) {
		padding-block: 4rem;
		ul {
			flex-direction: column;
			gap: 2.4rem;
			a {
				gap: 1.6rem;
				padding: 1.6rem;
				font-size: 1.8rem;
				font-weight: var(--font-weight-medium);
				text-decoration: none;
				box-shadow: 0px .2rem .4rem rgba(0,0,0,0.08);
				.img {
					width: 13.5rem;
				}
			}
		}
	}
}
