/**
 *
 * page-home.scss
 *
 */
/* ------------------------------------------------------------
 home-kv
------------------------------------------------------------ */
.home-kv {
	position: relative;
	z-index: 10;
	height: calc( 400vh + 400px);
	height: calc( var(--wh) + var(--opacity-frame,100vh) + var(--scale-frame,200vh) + var(--space-frame,200px) + var(--grace));
	color: var(--color-txt2);
}

.home-kv__body {
	position: sticky;
	top: 0;
	width: 100vw;
	height: var(--wh);
}

/* ---------- home-kv__contents ---------- */
.home-kv__contents {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	width: 100%;
	height: var(--wh);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: var(--gap);
	transition: opacity var(--transition-scale);
}

@media screen and (min-width: 1024px) {
	.home-kv__logo {
		max-width: 88rem;
		width: calc( ( 880 / 1540 ) * 100%);
	}
}

@media screen and (max-width: 1023px) {
	.home-kv__logo {
		width: 24.3rem;
	}
}

.home-kv__logo img {
	width: 100%;
}

.home-kv__ja {
	line-height: var(--line-height-normal);
	font-weight: 500;
}

@media screen and (min-width: 1024px) {
	.home-kv__ja {
		font-size: var(--font-size50);
		font-size: var(--font-size60);
		margin-top: 2rem;
	}
}

@media screen and (max-width: 1023px) {
	.home-kv__ja {
		font-size: var(--font-size24);
		margin-top: 1rem;
	}
}

.home-kv__en {
	font-family: var(--font-sans-serif);
	font-weight: 400;
	line-height: var(--line-height-normal);
}

@media screen and (min-width: 1024px) {
	.home-kv__en {
		font-size: var(--font-size20);
		margin-top: 2rem;
	}
}

@media screen and (max-width: 1023px) {
	.home-kv__en {
		font-size: var(--font-size14);
		margin-top: 1rem;
	}
}

/* ---------- home-kv__pv ---------- */
.home-kv__pv {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background-color: var(--color-bg2);
	transition: -webkit-transform var(--transition-scale);
	transition: transform var(--transition-scale);
	transition: transform var(--transition-scale), -webkit-transform var(--transition-scale);
}

/* ------------------------------------------------------------
 home-catch
------------------------------------------------------------ */
.home-catch__body {
	min-height: var(--wh);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-xl) 0;
}

@media screen and (max-width: 767px) and (min-height: 960px) {
	.home-catch__body {
		min-height: 96rem;
	}
}

@media screen and (min-width: 768px) {
	.home-catch__txt {
		max-width: 114rem;
		width: calc( ( 1140 / 1660 ) * 100%);
	}
}

@media screen and (max-width: 767px) {
	.home-catch__txt {
		max-width: 33.5rem;
		width: calc( ( 335 / 375 ) * 100%);
	}
}

/* ------------------------------------------------------------
 home-about
------------------------------------------------------------ */
.home-about__body {
	padding: var(--space-xl) 0;
	border-top: var(--solid2);
}

@media screen and (min-width: 1024px) {
	.home-about__body {
		min-height: var(--wh);
		display: flex;
		justify-content: space-between;
	}
}

@media screen and (max-width: 1023px) {
	.home-about__body {
		width: var(--contents);
		margin: 0 auto;
	}
}

/* ---------- home-about__header ---------- */
@media screen and (min-width: 1024px) {
	.home-about__header {
		width: calc( ( 460 / 1660 ) * 100%);
		padding: 0 var(--gap);
	}
}

/* ---------- home-about__figure ---------- */
.home-about__figure {
	position: relative;
}

@media screen and (min-width: 1024px) {
	.home-about__figure {
		width: calc( ( 740 / 1660 ) * 100%);
		height: calc( var(--wh) - var( --space-xl ) * 2);
		min-height: 60rem;
	}
}

@media screen and (max-width: 1023px) {
	.home-about__figure {
		margin-top: 3.7rem;
		max-height: 67.2rem;
	}
	.home-about__figure::after {
		content: '';
		display: block;
		padding-top: calc( ( 420 / 335 ) * 100%);
	}
}

/* ---------- home-about__contents ---------- */
@media screen and (min-width: 1024px) {
	.home-about__contents {
		width: calc( ( 460 / 1660 ) * 100%);
		padding: 0 var(--gap);
		align-self: flex-end;
	}
}

@media screen and (max-width: 1023px) {
	.home-about__contents {
		margin-top: 4rem;
	}
}

@media screen and (min-width: 1024px) {
	.home-about__anchor {
		margin-top: 6rem;
	}
}

@media screen and (max-width: 1023px) {
	.home-about__anchor {
		margin-top: 4rem;
	}
}

/* ------------------------------------------------------------
 home-special
------------------------------------------------------------ */
.home-special {
	position: relative;
	z-index: 1;
	background-color: var(--color-main);
	color: var(--color-txt2);
	padding: var(--space-lg) 0;
}

/* ----------------------------------------
 home-special__carousel
---------------------------------------- */
@media screen and (min-width: 1024px) {
	.home-special__carousel {
		margin-top: 1rem;
	}
}

/* ----------------------------------------
 home-special__contents
---------------------------------------- */
.home-special__contents {
	position: relative;
	z-index: 1;
	padding: 0 var(--gap-lg);
}

@media screen and (min-width: 1024px) {
	.home-special__contents {
		margin-top: -19.7rem;
	}
}

@media screen and (max-width: 1023px) {
	.home-special__contents {
		margin-top: 0.4rem;
	}
}

@media screen and (min-width: 1024px) {
	.home-special__title {
		font-size: var(--font-size80);
		line-height: var(--line-height-level1);
	}
}

@media screen and (max-width: 1023px) {
	.home-special__title {
		font-size: var(--font-size40);
		line-height: var(--line-height-normal);
	}
}

@media screen and (min-width: 1024px) {
	.home-special__txt {
		margin-top: 4rem;
	}
}

@media screen and (max-width: 1023px) {
	.home-special__txt {
		margin-top: 2rem;
	}
}

@media screen and (min-width: 1024px) {
	.home-special__anchor {
		margin-top: 4rem;
	}
}

@media screen and (max-width: 1023px) {
	.home-special__anchor {
		margin-top: 2rem;
	}
}

/* ------------------------------------------------------------
 home-products
------------------------------------------------------------ */
.home-products {
	position: relative;
	z-index: 1;
	background-color: var(--color-bg2);
}

@media screen and (min-width: 1024px) {
	.home-products {
		padding: var(--space-xl) 0 var(--gap);
	}
}

@media screen and (max-width: 1023px) {
	.home-products {
		padding: var(--space-xl) 0;
	}
}

/* ----------------------------------------
 home-products__header
---------------------------------------- */
.home-products__header {
	color: var(--color-txt2);
}

@media screen and (min-width: 1024px) {
	.home-products__header {
		margin-top: -1.8rem;
	}
}

@media screen and (max-width: 1023px) {
	.home-products__header {
		margin-top: -1rem;
	}
}

/* ---------- home-products__header__sub ---------- */
@media screen and (min-width: 1024px) {
	.home-products__header__sub {
		display: flex;
		align-items: flex-end;
		justify-content: space-between;
		margin-top: 5.7rem;
	}
}

@media screen and (max-width: 1023px) {
	.home-products__header__sub {
		margin-top: 2.8rem;
	}
}

@media screen and (max-width: 1023px) {
	.home-products__button {
		margin-top: 6rem;
	}
}

/* ----------------------------------------
 home-products__scroll
---------------------------------------- */
.home-products__scroll {
	position: relative;
}

@media screen and (max-width: 1023px) {
	.home-products__scroll {
		margin-top: 6rem;
	}
}

@media screen and (min-width: 1024px) {
	.home-products__scroll__body {
		position: sticky;
		top: 0;
		height: var(--wh);
		overflow: hidden;
	}
}

@media screen and (max-width: 1023px) {
	.home-products__scroll__body {
		width: var(--contents);
		margin: 0 auto;
	}
}

@media screen and (min-width: 1024px) {
	.home-products__scroll__inner {
		display: flex;
		white-space: nowrap;
		height: var(--wh);
		padding: var(--gap);
	}
}

/* ----------------------------------------
 home-products__card
---------------------------------------- */
.home-products__card {
	position: relative;
	z-index: 0;
	white-space: normal;
}

@media screen and (min-width: 1024px) {
	.home-products__card {
		min-width: max( calc( 940 / 1660 * var( --ww )) , 94.0rem );
		height: 100%;
	}
}

@media screen and (min-width: 1024px) {
	.home-products__card + .home-products__card {
		margin-left: var(--gap);
	}
}

@media screen and (max-width: 1023px) {
	.home-products__card + .home-products__card {
		margin-top: 2rem;
	}
}

.home-products__card a {
	display: block;
	width: 100%;
	height: 100%;
}

@media screen and (max-width: 1023px) {
	.home-products__card a {
		max-height: 60.8rem;
	}
	.home-products__card a::after {
		content: '';
		display: block;
		padding-top: calc( ( 380 / 335 ) * 100%);
	}
}

/* ---------- home-products__card__contents ---------- */
.home-products__card__contents {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	padding: var(--gap);
}

.home-products__card__contents.-white {
	color: var(--color-txt2);
}

/* ----- home-products__card__txt ----- */
.home-products__card__txt {
	flex: 1;
}

.home-products__card__num {
	font-family: var(--font-sans-serif);
	font-weight: 400;
	font-size: var(--font-size14);
	line-height: var(--line-height-normal);
}

.home-products__card__en {
	font-family: var(--font-sans-serif);
	font-weight: 400;
	line-height: var(--line-height-normal);
	margin-top: 1rem;
	white-space: nowrap;
}

@media screen and (min-width: 1024px) {
	.home-products__card__en {
		font-size: var(--font-size64);
	}
}

@media screen and (max-width: 1023px) {
	.home-products__card__en {
		font-size: var(--font-size36);
	}
}

.home-products__card__title {
	line-height: var(--line-height-normal);
	margin-top: 1rem;
}

@media screen and (min-width: 1024px) {
	.home-products__card__title {
		font-size: var(--font-size24);
	}
}

@media screen and (max-width: 1023px) {
	.home-products__card__title {
		font-size: var(--font-size14);
	}
}

/* ----- home-products__arrow ----- */
.home-products__arrow {
	margin-left: var(--gap);
}

/* ------------------------------------------------------------
 home-projects
------------------------------------------------------------ */
.home-projects {
	padding: var(--space-xl) 0;
}

/* ----------------------------------------
 home-projects__header
---------------------------------------- */
@media screen and (min-width: 1024px) {
	.home-projects__header {
		position: sticky;
		top: calc( var(--header-height-sticky) + var(--gap));
		height: calc( var(--wh) - var( --gap ) * 2);
		display: flex;
		flex-direction: column;
		justify-content: space-between;
	}
}

@media screen and (min-width: 1024px) {
	.home-projects__header header {
		white-space: nowrap;
	}
}

.home-projects__txt {
	margin-top: var(--space-xs);
}

.home-projects__button {
	margin-top: var(--space-xs3);
}

/* ----------------------------------------
 home-projects__main
---------------------------------------- */
@media screen and (max-width: 1023px) {
	.home-projects__main {
		margin-top: 2rem;
	}
}

/* ---------- home-projects__card ---------- */
.home-projects__card + .home-projects__card {
	margin-top: var(--space-rg);
}

.home-projects__card__figure {
	position: relative;
	z-index: 0;
	overflow: hidden;
}

@media screen and (max-width: 1023px) {
	.home-projects__card__figure {
		max-height: 32rem;
	}
}

.home-projects__card__figure div::before {
	content: '';
	display: block;
	padding-top: calc( ( 560 / 940 ) * 100%);
}

.home-projects__card__title {
	margin-top: 2rem;
	font-weight: 800;
}

@media screen and (min-width: 1024px) {
	.home-projects__card__title {
		font-size: var(--font-size30);
		line-height: var(--line-height-level2);
	}
}

@media screen and (max-width: 1023px) {
	.home-projects__card__title {
		font-size: var(--font-size20);
		line-height: var(--line-height-normal);
	}
}

.home-projects__card__small {
	line-height: var(--line-height-normal);
}

@media screen and (min-width: 1024px) {
	.home-projects__card__small {
		font-size: var(--font-size16);
		margin-top: 2rem;
	}
}

@media screen and (max-width: 1023px) {
	.home-projects__card__small {
		font-size: var(--font-size13);
		margin-top: 1rem;
	}
}

/* ------------------------------------------------------------
 home-news
------------------------------------------------------------ */
.home-news {
	border-top: var(--solid2);
	padding: var(--space-xl) 0;
}

/* ---------- home-news__header ---------- */
@media screen and (min-width: 1024px) {
	.home-news__header {
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
}

@media screen and (max-width: 1023px) {
	.home-news__button {
		margin-top: 6rem;
	}
}

/* ---------- home-news__list ---------- */
.home-news__list {
	margin-top: var(--space-xs);
}
/*# sourceMappingURL=sourcemaps/page-home.css.map */
