@charset "utf-8";
#loading {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		z-index: 6000;
		background: #1B1F21;
		display: flex;
		justify-content: center;
		align-items: center;
		color: #fff;
}
.loading_logo {
		width: 300px;
}
@media(max-width: 767px) {
		.loading_logo {
				width: 150px;
		}
}
.loading_logo img {
		width: 100%;
		height: auto;
}
.kv {
		box-sizing: border-box;
		min-height: 600px;
		overflow: hidden;
		position: relative;
		border-top: 20px solid #f5f5f5;
}
.kv::before, .kv::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		pointer-events: none;
		z-index: 10;
		background-repeat: no-repeat;
		background-size: 3000px;
}
.kv::before {
		background-image: url("../images/kv_frame_pc.png");
		background-position: left bottom;
}
.kv::after {
		background-image: url("../images/kv_frame_pc.png");
		background-position: right bottom;
}
.kv img {
		width: 100%;
		object-fit: cover;
}
.kv_catch {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		margin: auto;
		width: 55vw;
		max-width: 1200px;
		z-index: 40;
		pointer-events: none;
		transition: opacity 1s;
		opacity: 0
}
.kv_catch.isStart {
		opacity: 1
}
.kv_catch img {
		width: 100%;
		height: auto;
		object-fit: contain
}
.kv .kv_corner_left, .kv .kv_corner_right {
		position: absolute;
		top: -20px;
		height: 75px;
		background: #F5F5F5;
		z-index: 500;
}
.kv .kv_corner_left {
		left: -20px;
		width: 220px;
		border-radius: 0 0 8px 0;
}
.kv .kv_corner_right {
		right: -20px;
		width: 150px;
		border-radius: 0 0 0 8px;
}
.kv_tag {
		height: 110px;
		background: #1B1F21;
		color: #fff;
		display: flex;
		align-items: center;
		overflow: hidden;
}
.kv_tag ul {
		display: flex;
		list-style: none;
		align-items: center;
}
.kv_tag ul li {
		font-family: "MOBO600";
		font-size: 20px;
		text-decoration: none;
		margin: 0 26px;
}
.kv_tag ul li.XL {
		font-size: 220%;
}
.kv_tag ul li.L {
		font-size: 180%;
}
.kv_tag ul li.M {
		font-size: 140%;
}
.kv_tag ul li a {
		color: #fff;
		text-decoration: none;
}
@media(max-width: 1280px) {
		.kv_tag {
				height: 90px;
		}
		.kv_tag ul li {
				font-size: 18px;
				margin: 0 20px;
		}
}
@media(max-width: 767px) {
		.kv {
				border-top: 10px solid #F5F5F5;
				min-height: inherit;
		}
		.kv::before, .kv::after {
				background-size: 1500px
		}
		.kv::before {
				background-image: url("../images/kv_frame_pc.png");
				background-position: left bottom;
		}
		.kv::after {
				background-image: url("../images/kv_frame_pc.png");
				background-position: right bottom;
		}
		.kv .kv_corner_left, .kv .kv_corner_right {
				height: 64px
		}
		.kv .kv_corner_left {
				left: -10px;
				width: 148px;
		}
		.kv .kv_corner_right {
				right: -10px;
				width: 110px;
		}
		.kv_tag {
				height: 50px;
		}
		.kv_tag ul li {
				font-size: 14px;
				margin: 0 20px;
		}
		.kv_tag ul li.XL {
				font-size: 180%;
		}
		.kv_tag ul li.L {
				font-size: 150%;
		}
		.kv_tag ul li.M {
				font-size: 120%;
		}
}
/* ============== */
.kv .swiper-slide {
		position: relative;
}
@keyframes zoomUp {
		0% {
				transform: scale(1.25);
		}
		100% {
				transform: scale(1.05);
		}
}
.kv .swiper-slide-active img, .kv .swiper-slide-duplicate-active img, .kv .swiper-slide-prev img {
		animation: zoomUp 7s linear 0s normal both;
}
.kv .swiper-slide::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		pointer-events: none;
		background: rgba(0, 0, 0, 0.2);
}
.kv .swiper-pagination {
		position: absolute;
		display: flex !important;
		flex-flow: column;
		justify-content: center;
		bottom: inherit;
		left: inherit;
		top: 0;
		right: 60px;
		width: 10px;
		height: 100%;
}
.kv .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, .kv .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
		margin: 5px 0;
		width: 10px;
		height: 34px;
		border-radius: 60px;
		opacity: 1 !important;
		background: #fff;
		overflow: hidden;
		transition: height 0.6s cubic-bezier(0.16, 1, 0.3, 1);
		position: relative;
}
.kv .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet.swiper-pagination-bullet-active, .kv .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet.swiper-pagination-bullet-active {
		height: 120px;
}
.kv .swiper-pagination-bullet::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 0;
		background: #000;
		transform-origin: center top;
		border-radius: 60px;
}
.kv .swiper-pagination-bullet.bullet-anim::after {
		animation: bulletsOn 5s linear forwards;
}
@keyframes bulletsOn {
		0% {
				height: 0;
		}
		100% {
				height: 100%;
		}
}
@media(max-width: 767px) {
		.kv .swiper-pagination {
				right: 25px;
				width: 5px;
		}
		.kv .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, .kv .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
				margin: 3px 0;
				width: 4px;
				height: 20px;
		}
		.kv .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet.swiper-pagination-bullet-active, .kv .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet.swiper-pagination-bullet-active {
				height: 80px;
		}
}
@media(min-width: 768px) {
		.kv_inner {
				position: absolute;
				top: 100px;
				left: 7%;
				box-sizing: border-box;
				width: 86%;
				z-index: 100;
				pointer-events: none
		}
}
.mouthStalker {
		width: 130px;
		height: 130px;
		border-radius: 50%;
		position: fixed;
		top: 0;
		left: 0;
		transform: translate(-50%, -50%);
		z-index: 50;
		pointer-events: none;
		background: rgba(255, 255, 255, 01);
		opacity: 1;
		display: flex;
		justify-content: center;
		align-items: center;
		text-align: center;
		box-shadow: 0 0 10px #fff
}
.mouthStalker.isHidden {
		opacity: 0 !important;
		transform: scale(0.5) !important;
		pointer-events: none;
}
.mouthStalker.isOutKv {
		transform: scale(0.1) !important;
}
.mouthStalker span {
		color: #1B1F21;
		font-size: 16px;
		font-family: "MOBO600";
		line-height: 1.5;
}
@media(max-width: 1500px) {
		.mouthStalker {
				width: 110px;
				height: 110px;
		}
		.mouthStalker span {
				font-size: 14px;
		}
}
@media(max-width: 840px) {
		.kv_inner, .mouthStalker {
				display: none !important
		}
}
.loop_slider {
		display: flex;
		width: 100%;
}
.loop_inner, .reverse_inner {
		display: flex;
}
.loop_inner:first-child {
		animation: loop 120s linear infinite;
}
.loop_inner:nth-child(2) {
		animation: loop2 120s -80s linear infinite;
}
.loop_inner:last-child {
		animation: loop3 120s -40s linear infinite;
}
.loop_item {
		width: 1750px;
}
@media(max-width: 767px) {
		.loop_item {
				width: 1340px;
		}
}
@keyframes loop {
		0% {
				transform: translateX(200%);
		}
		to {
				transform: translateX(-100%);
		}
}
@keyframes loop2 {
		0% {
				transform: translateX(100%);
		}
		to {
				transform: translateX(-200%);
		}
}
@keyframes loop3 {
		0% {
				transform: translateX(0%);
		}
		to {
				transform: translateX(-300%);
		}
}
@keyframes loop4 {
		0% {
				transform: translateX(-100%);
		}
		to {
				transform: translateX(200%);
		}
}
@keyframes loop5 {
		0% {
				transform: translateX(-200%);
		}
		to {
				transform: translateX(100%);
		}
}
@keyframes loop6 {
		0% {
				transform: translateX(-300%);
		}
		to {
				transform: translateX(0%);
		}
}
/* ====== */
.statement_section {
		padding: 0 40px 30px;
		height: 40vw;
		min-height: 400px;
		box-sizing: border-box;
		display: flex;
		align-items: flex-end;
		position: relative;
}
.statement_section .statement_scrl {
		position: absolute;
		top: 40px;
		right: 40px;
}
.statement_scrl a {
		color: #1B1F21;
		text-decoration: none;
		display: flex;
		align-items: center;
}
.statement_scrl_txt {
		flex: 1;
		font-size: 30px;
		font-family: "Barlow Condensed", sans-serif;
		font-weight: 700;
		line-height: 1;
}
.statement_scrl_arw_gr {
		width: 30px;
}
.statement_scrl_arw {
		width: 0;
		height: 0;
		border-style: solid;
		border-right: 7px solid transparent;
		border-left: 7px solid transparent;
		border-top: 9px solid #1B1F21;
		border-bottom: 0;
		margin: 1.5px 0;
		animation: fadeIn 1s linear infinite;
}
.statement_scrl_arw_gr .statement_scrl_arw:nth-child(2) {
		animation-delay: 0.2s
}
.statement_scrl_arw_gr .statement_scrl_arw:nth-child(3) {
		animation-delay: 0.4s
}
@keyframes fadeIn {
		0% {
				opacity: 0.1;
		}
		100% {
				opacity: 1;
		}
}
.statement_txt {
		font-size: clamp(5rem, 7.813vw + 1.25rem, 10.625rem);
		line-height: 0.9;
		font-family: "Barlow Condensed", sans-serif;
		font-weight: 700;
		font-style: normal;
		position: relative;
}
.statement_txt span {
		position: relative;
		display: inline-block;
}
.statement_txt span::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 106%;
		background: #f5f5f5;
		opacity: 0.9;
		mix-blend-mode: lighten;
		transition: transform 1.5s cubic-bezier(0.16, 1, 0.3, 1);
		transform-origin: right center;
}
.statement_txt.isActive span::after {
		transform: scaleX(0);
}
@media(min-width: 1921px) {
		.statement_txt {
				font-size: 9vw;
		}
}
@media(max-width: 767px) {
		.statement_section {
				padding: 0 20px 30px;
				height: auto;
				min-height: 85vw;
		}
		.statement_txt {
				line-height: 1;
				font-size: 13vw;
		}
		.statement_section .statement_scrl {
				top: 20px;
				right: 20px;
		}
		.statement_scrl_txt {
				font-size: 16px;
		}
		.statement_scrl_arw_gr {
				width: 20px;
		}
		.statement_scrl_arw {
				border-right: 5px solid transparent;
				border-left: 5px solid transparent;
				border-top: 7px solid #1B1F21;
				border-bottom: 0;
				margin: 1px 0;
		}
}
/* ======== */
.concept_section {
		background-repeat: repeat;
		background-position: center center;
		background-size: 500px;
		background-image: url("../images/blk_bg.png");
		color: #F4F4F4;
		padding: 160px 20px 280px;
}
.concept_inner {
		max-width: 1620px;
		margin: 0 auto;
		display: flex;
		justify-content: space-between;
}
.concept_inner_left {
		width: 826px;
		position: relative;
		margin-right: 180px;
}
.concept_inner_left div {
		position: absolute;
}
.concept_inner_left div img {
		width: 100%;
		height: auto;
}
.concept_inner_left .top_concept-1 {
		width: 385px;
		top: 0;
		left: 0;
}
.concept_inner_left .top_concept-2 {
		width: 320px;
		top: 170px;
		right: 0;
}
.concept_inner_left .top_concept-3 {
		width: 310px;
		top: 816px;
		left: 57px;
}
.concept_inner_left .top_concept-4 {
		width: 240px;
		top: 934px;
		right: 115px;
}
.concept_inner_right {
		flex: 1
}
.concept_upper {
		font-family: "MOBO600";
		margin: 0 0 100px;
		padding-top: 80px;
}
.concept_upper p {
		font-size: 36px;
		margin: 0 0 50px
}
.concept_bottom p {
		font-family: "MOBO700";
		font-size: 64px;
		margin: 0 0 50px
}
.concept_photo {
		transform: translateY(100px);
		opacity: 0;
		transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s linear;
}
.concept_txt span {
		display: inline-block;
		position: relative;
}
.concept_txt span::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 106%;
		opacity: 0.9;
		background-repeat: repeat;
		background-position: center center;
		background-size: 100px;
		background-image: url(../images/blk_bg.png);
		transition: transform 1.5s cubic-bezier(0.16, 1, 0.3, 1);
		transform-origin: right center;
}
.concept_txt.isActive span::after {
		transform: scaleX(0);
}
.concept_photo.isActive {
		transform: translateY(0px);
		opacity: 1;
}
@media(max-width: 1680px) {
		.concept_inner_left {
				width: 48%;
				margin-right: 7vw;
		}
		.concept_inner_left .top_concept-1 {
				width: 50%;
		}
		.concept_inner_left .top_concept-2 {
				width: 42%;
				top: 9vw;
		}
		.concept_inner_left .top_concept-3 {
				width: 41%;
				top: 50vw;
				left: 3vw;
		}
		.concept_inner_left .top_concept-4 {
				width: 32%;
				top: 55vw;
				right: 6vw;
		}
		.concept_upper {
				margin: 0 0 8vw;
				padding-top: 4vw;
		}
		.concept_upper p {
				font-size: 2.8vw;
				margin: 0 0 3vw;
		}
		.concept_bottom p {
				font-size: 4.5vw;
				margin: 0 0 3vw
		}
}
@media(max-width: 960px) {
		.concept_section {
				padding: 120px 20px;
		}
}
@media(max-width: 767px) {
		.concept_section {
				padding: 80px 0 80px;
				background-size: 100px;
		}
		.concept_inner {
				display: flex;
				flex-direction: column-reverse;
		}
		.concept_inner_left {
				position: relative;
				width: 90%;
				margin: 0 auto;
				display: flex;
				justify-content: center;
				flex-wrap: wrap
		}
		.concept_inner_left div {
				position: static;
				margin: 0 10px 30px
		}
		.concept_inner_left .top_concept-1 {
				width: calc(50% - 20px);
		}
		.concept_inner_left .top_concept-2 {
				width: calc(45% - 20px);
				padding-top: 40px;
		}
		.concept_inner_left .top_concept-3 {
				width: calc(45% - 10px);
		}
		.concept_inner_left .top_concept-4 {
				width: calc(35% - 10px);
				padding-top: 30px;
		}
		.concept_inner_right {
				display: flex;
				justify-content: center;
				text-align: center;
				margin: 0 0 40px;
		}
		.concept_upper {
				margin: 0 0 60px;
				padding-top: 0;
		}
		.concept_upper p {
				font-size: 20px;
				margin: 0 0 20px;
		}
		.concept_bottom p {
				font-size: 30px;
				margin: 0 0 20px
		}
}
/* ==================== */
.wrap1600 {
		max-width: 1600px;
		margin: 0 auto;
		padding: 0 60px;
}
hgroup.top_hd {
		display: flex;
		align-items: center;
		margin: 0 0 90px;
}
.top_hd_flex hgroup.top_hd {
		margin-bottom: 0;
}
hgroup.top_hd .en {
		font-family: "Barlow Condensed", sans-serif;
		font-weight: 700;
		font-size: clamp(6.25rem, 6.076vw + 3.333rem, 10.625rem);
		letter-spacing: 0;
		margin-right: 30px;
		line-height: 0.8;
}
hgroup.top_hd .jp {
		font-size: clamp(1.5rem, 2.083vw + 0.5rem, 3rem);
		font-family: "MOBO700";
		line-height: 1;
}
.top_hd span {
		display: inline-block;
		position: relative;
}
.top_hd span::after {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 106%;
		opacity: 0.9;
		background: #f5f5f5;
		transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
		transform-origin: right center;
}
.top_hd .jp span::after {
		transition-delay: 0.4s
}
.top_hd.isActive span::after {
		transform: scaleX(0)
}
.top_hd_flex {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin: 0 0 80px;
}
@media(max-width: 1500px) {
		hgroup.top_hd {
				margin: 0 0 40px;
		}
		.top_hd_flex {
				margin: 0 0 50px;
		}
}
@media(max-width: 960px) {
		.wrap1600 {
				padding: 0 30px;
		}
}
@media(max-width: 767px) {
		.wrap1600 {
				padding: 0 20px;
		}
		hgroup.top_hd {
				display: block;
		}
		hgroup.top_hd .en {
				font-size: 60px;
				margin: 0 0 10px
		}
		hgroup.top_hd .jp {
				font-size: 20px;
		}
		.top_hd_flex {
				margin: 0 0 40px;
		}
}
/* ==================== */
section.sale_section {
		padding: 180px 0 100px;
		position: relative;
}
section.sale_section::before, section.sale_section::after {
		content: '';
		display: block;
		position: absolute;
		left: 0;
		width: 100%;
		height: 50%;
		background-repeat: repeat-y;
		background-position: center top;
		background-size: 3000px;
		pointer-events: none;
		z-index: 0
}
section.sale_section::before {
		top: 0;
		background-image: url("../images/top_sectionBg_right.png")
}
section.sale_section::after {
		bottom: 0;
		background-image: url("../images/top_sectionBg_left.png")
}
section.development_section {
		padding: 100px 0;
		position: relative;
}
section.development_section::before {
		content: '';
		display: block;
		position: absolute;
		top: 100px;
		left: 0;
		width: 100%;
		height: calc(100% - 300px);
		background-repeat: repeat-y;
		background-position: center top;
		background-size: 3000px;
		pointer-events: none;
		z-index: -1
}
section.development_section::before {
		background-image: url("../images/top_sectionBg_rightShort.png")
}
.development_col {
		background-color: #fff;
		border-radius: 20px;
		max-width: 1600px;
		box-shadow: 0px 0px 60px 0px rgba(0, 0, 0, 0.1);
		display: flex;
		align-items: center;
		box-sizing: border-box;
		padding: 20px;
}
.development_col_left {
		width: 600px;
		margin-right: 60px;
}
.development_col_left img {
		width: 100%;
		height: auto;
		border-radius: 16px 0 0 16px;
}
.development_col_right {
		flex: 1;
		padding-right: 40px;
}
.development_catch {
		font-size: 36px;
		font-family: "MOBO700";
		line-height: 1.5;
		margin: 0 0 30px
}
.development_date {
		font-family: "MOBO700";
		font-size: 18px;
		margin: 0 0 1em
}
.development_date + p {
		font-family: "MOBO700";
		font-size: 18px;
		line-height: 1.8;
		margin-bottom: 60px;
}
.project_readmore {
		font-family: "MOBO700";
		font-size: 22px;
		border-top: 1px solid #e4e4e4;
}
.project_readmore a {
		color: #1B1F21;
		text-decoration: none;
		display: block;
		text-align: center;
		padding: 30px 0;
		transition: background 0.2s;
}
@media (hover: hover) {
		.project_readmore a:hover {
				background: #f5f5f5;
		}
}
section.project_section {
		padding: 100px 0 200px;
		position: relative;
}
section.project_section::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 50%;
		background-repeat: repeat-y;
		background-position: center top;
		background-size: 3000px;
		pointer-events: none;
		z-index: -1
}
section.project_section::before {
		background-image: url("../images/top_sectionBg_left.png")
}
@media(max-width: 1500px) {
		section.sale_section::before, section.sale_section::after {
				width: 100%;
				height: 50%;
				background-size: 100%;
		}
		section.project_section::before {
				background-size: 100%;
		}
		section.sale_section::before {
				background-image: url("../images/top_sectionBg_right_mid.png")
		}
		section.sale_section::after {
				background-image: url("../images/top_sectionBg_left_mid.png")
		}
		section.project_section::before {
				background-image: url("../images/top_sectionBg_left_mid.png")
		}
		section.sale_section {
				padding: 140px 0 80px;
				position: relative;
		}
		section.development_section {
				padding: 80px 0;
				position: relative;
		}
		.development_col {
				padding: 20px;
		}
		.development_col_left {
				width: 40%;
				margin-right: 40px;
		}
		.development_col_right {
				padding-right: 20px;
		}
		.development_catch {
				font-size: 28px;
		}
		.development_date {
				font-size: 16px;
		}
		.development_date + p {
				font-size: 16px;
				margin-bottom: 40px;
		}
		.project_readmore {
				font-size: 18px;
		}
		section.project_section {
				padding: 80px 0 180px;
		}
}
@media(max-width: 767px) {
		.development_col {
				padding: 0;
				display: block;
				overflow: hidden
		}
		.development_col_left {
				width: auto;
				margin: 0 0 15px;
				padding: 10px 10px 0;
		}
		.development_col_left img {
				border-radius: 16px 16px 0 0;
		}
		.development_col_right {
				padding: 0;
		}
		.development_catch {
				font-size: 22px;
				margin: 0 0 15px;
				padding: 0 20px;
		}
		.development_date {
				font-size: 15px;
				padding: 0 20px;
		}
		.development_date + p {
				font-size: 15px;
				margin-bottom: 30px;
				padding: 0 20px;
		}
		.project_readmore {
				font-size: 16px;
		}
		.project_readmore a {
				padding: 20px 0
		}
		section.project_section {
				padding: 80px 0 180px;
		}
		section.sale_section {
				padding: 80px 0 40px;
		}
		section.development_section {
				padding: 40px 0;
		}
		section.project_section {
				padding: 40px 0 100px;
		}
}