@charset "UTF-8";



/*  ----------------------------------------------------------

kv

----------------------------------------------------------  */
.top-kv {
	position: relative;
}
.top-kv .wrap {
	position: relative;
	z-index: 10;
	height: 64rem;
	display: flex;
	align-items: center;
	padding-left: 7rem;
}
.top-kv .wrap h2 span {
	display: block;
	font-family: var(--font-roboto);
	font-weight: 700;
	font-size: 8.8rem;
	line-height: 1.3;
	letter-spacing: 0.1em;
	margin-bottom: 2rem;
}
.top-kv .wrap h2 em {
	display: block;
	font-weight: bold;
	font-size: 2rem;
	font-style: normal;
	letter-spacing: 0.2em;
}	
#main {
	position: absolute;
	inset: 0;
	overflow: hidden;
}
@media screen and (max-width: 768px) {
	.top-kv .wrap {
		padding-left: 2rem;
		height: 48rem;
	}
	.top-kv .wrap h2 span {
		font-size: 4.6rem;
		letter-spacing: 0.06em;
	}
	.top-kv .wrap h2 em {
		font-size: 1.8rem;
		letter-spacing: 0.06em;
	}
}



/*  ----------------------------------------------------------

vision

----------------------------------------------------------  */
.top-vision {
	background: var(--bg-grey-1);
	padding: 10rem 0;
}
.top-vision .block {
	position: relative;
	padding-left: 49rem;
	min-height: 32rem;
}
.top-vision figure {
	position: absolute;
	top: 0;
	left: 0;
	width: 44rem;
	height: 32rem;
}
.top-vision figure img {
	display: block;
	border-radius: 1.4rem;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.top-vision .foot {
	margin-top: 4rem;
}
@media screen and (max-width: 768px) {
	.top-vision {
		padding: 6rem 0;
	}
	.top-vision .block {
		padding-left: 0;
		min-height: initial;
	}
	.top-vision figure {
		position: relative;
		margin-bottom: 3rem;
		width: auto;
		height: 22rem;
	}
}



/*  ----------------------------------------------------------

service

----------------------------------------------------------  */
.top-service {
	padding: 10rem 0;
}
.top-service figure img {
	display: block;
	border-radius: 1.4rem;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.top-service .foot {
	margin-top: 4rem;
}
.top-service .head-block {
	position: relative;
	margin-bottom: 12rem;
	padding-right: 45rem;
	min-height: 32rem;
}
.top-service .head-block figure {
	position: absolute;
	top: 0;
	right: 0;
	width: 40rem;
	height: 32rem;
}
.top-service li {
	display: flex;
	gap: 5rem;
}
.top-service li:not(:last-child) {
	margin-bottom: 12rem;
}
.top-service li .head {
	margin-bottom: 3rem;
	padding-top: 3rem;
}
.top-service li .heading {
	position: relative;
	margin-bottom: 2rem;
	padding-left: 8rem;
	font-family: var(--font-roboto);
	font-size: 4rem;
	line-height: 1;
	letter-spacing: 0.12em;
}
.top-service li .heading::before {
	content: '';
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	margin-top: -2.5rem;
	width: 5.6rem;
	height: 5.6rem;
	background-image: url(../img/sakura.png);
	background-size: contain;
}
.top-service li figure {
	flex-basis: 42rem;
	height: 36rem;
}
.top-service li .detail {
	flex: 1;
}
.top-service li:nth-child(even) {
	flex-direction: row-reverse;
}

@media screen and (max-width: 768px) {
	.top-service {
		padding: 6rem 0;
	}
	.top-service .head-block {
		margin-bottom: 6rem;
		padding-right: 0;
		min-height: initial;
	}
	.top-service .head-block figure {
		position: static;
		margin-bottom: 3rem;
		width: 100%;
		height: 22rem;
	}
	.top-service li {
		display: block;
	}
	.top-service li:not(:last-child) {
		margin-bottom: 5rem;
	}
	.top-service li .head {
		margin-bottom: 2rem;
	}
	.top-service li .heading {
		margin-bottom: 1.5rem;
		padding-left: 5.5rem;
		font-size: 3rem;
		letter-spacing: 0.06em;
	}
	.top-service li .heading::before {
		margin-top: -2rem;
		width: 4rem;
		height: 4rem;
	}
	.top-service li figure {
		height: 22rem;
	}
}



/*  ----------------------------------------------------------

company

----------------------------------------------------------  */
.top-company {
	background: var(--bg-grey-2);
	padding: 10rem 0;
}
.top-company .block {
	display: flex;
	gap: 10rem;
}
.top-company figure {
	flex-basis: 42rem;
}
.top-company .detail {
	flex: 1;
}
.top-company .heading {
	margin-bottom: 5rem;
}
.top-company .heading img {
	width: 80%;
}
.top-company .info {
	display: table;
	line-height: 1.6;
}
.top-company .info dl {
	display: table-row;
	line-height: inherit;
}
.top-company .info dt {
	display: table-cell;
	width: 6.5em;
	vertical-align: top;
	white-space: nowrap;
	padding: 0.5em 0;
	border-top: 1px solid #ccc;
	line-height: inherit;
}
.top-company .info dd {
	display: table-cell;
	vertical-align: top;
	padding: 0.5em 0;
	border-top: 1px solid #ccc;
	line-height: inherit;
}
.top-company ul.list-group li {
	margin-top: 0;
	line-height: inherit;
}
.top-company .foot {
	margin-top: 4rem;
}
@media screen and (max-width: 768px) {
	.top-company {
		padding: 5rem 0;
	}
	.top-company .block {
		display: block;
	}
	.top-company figure {
		margin-bottom: 3rem;
	}
	.top-company .heading {
		margin-bottom: 3rem;
	}
}