@charset "UTF-8";
.headline01 .en { white-space: nowrap;}
.vrl-txt {
    display: flex;
    justify-content: center;
    flex-direction: row-reverse;
}
.vrl {
    -webkit-writing-mode: vertical-rl;
    -moz-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -ms-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
}
.pic-cap {
    position: absolute;
    bottom: 0;
    right: 0;
    z-index: 20;
    color: #fff;
    font-size: 1rem;
    line-height: 1.2;
    padding: 5px;
}
.pic-cap.left {
    left: 0;
    right: auto;
}
.black { color: #1a1a1a;}
.blue { color: #00a9c8;}
.bg-gray { background-color: #f3f3f3;}
.bg-white { background-color: #fff;}
.btn-more { text-align: right;}
.btn-more > * {
    font-size: 1.2rem;
    font-weight: 500;
    position: relative;
    padding-left: 55px;
}
.btn-more > *::before {
    content: "";
    width: 41px;
    height: 1px;
    background-color: #1a1a1a;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}
/*==================================================================
   keyv
===================================================================*/
#keyv {
    margin: 0 auto;
    width: 90%;
    position: relative;
    z-index: 1;
}
.keyv-img {
    transition: all 0.75s linear;
	transform-origin: bottom center;
    position: relative;
    z-index: 0;
}
.is-larger .keyv-img {transform: scale(1.12);}
#keyv .keyv-logo {
    position: absolute;
    right: 30px;
    top: 25px;
    width: 210px;
    z-index: 1;
}
#keyv .keyv-title {
    color: #fff;
    position: absolute;
    top: 10.5%;
    right: 17.5%;
    z-index: 1;
}
#keyv .keyv-title .ttl-lg {
    font-size: 4rem;
    line-height: 1.6;
    font-weight: bold;
    letter-spacing: 0.09em;
    margin-bottom: 15px;
}
#keyv .keyv-title .ttl-md {
    font-size: 3rem;
    line-height: 1.6;
    font-weight: bold;
    letter-spacing: 0.02em;
    margin-bottom: 15px;
}
#keyv .keyv-title .ttl {
    font-size: 1.8rem;
    letter-spacing: 0.1em;
    line-height: 2;
    font-weight: 500;
}
#keyv .keyv-icon {
    position: absolute;
    width: 92px;
    bottom: -8%;
    right: 1%;
    z-index: 1;
    animation: keyv-icon 3s linear infinite;
}
@keyframes keyv-icon {
    0% {
        transform: translate(0%,-5%);
    }
    25% {
        transform: translate(5%,0%);
    }
    50% {
        transform: translate(0%,5%);
    }
    75% {
        transform: translate(-5%,0%);
    }
    100% {
        transform: translate(0%,-5%);
    }
}
@media screen and (max-width: 767px){
    #keyv { width: 100%;}
    .is-larger .keyv-img {transform: scale(1);}
    #keyv .keyv-logo { width: 150px;}
    #keyv .keyv-title {
        right: 30px;
        left: auto;
        text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2), 2px 2px 8px rgba(0, 0, 0, 0.2), 2px 2px 8px rgba(0, 0, 0, 0.2), 2px 2px 8px rgba(0, 0, 0, 0.2), 2px 2px 8px rgba(0, 0, 0, 0.2), 2px 2px 5px rgba(0, 0, 0, 0.3), 2px 2px 8px rgba(0, 0, 0, 0.2), 2px 2px 5px rgba(0, 0, 0, 0.3);
        top: 20%;
        text-align: right;
    }
    #keyv .keyv-title .ttl-lg {
        font-size: 1.6rem;
        letter-spacing: 0.01em;
        line-height: 1.5;
        margin-bottom: 10px;
    }
    #keyv .keyv-title .ttl-md {
        font-size: 1.2rem;
        line-height: 1.5;
        margin-bottom: 10px;
    }
    #keyv .keyv-title .ttl {
        font-size: 1.2rem;
        line-height: 1.8;
    }
    #keyv .keyv-icon {
        width: 70px;
        right: 15px;
    }
}
.d-inline-block { display: inline-block;}
.box-ball {
    position: relative;
    text-align: center;
}
.box-ball .desc {
    width: 100%;
    background: url(../imgs/bg_ball.png) no-repeat center center / 100% auto;
    display: flex;
    justify-content: center;
    align-items: center;
    animation: updown 3s linear 2s infinite alternate;
    aspect-ratio: 1/1;
}
@keyframes updown {
    0% { transform: translateY(0);}
    100% { transform: translateY(-20px);}
}
.box-ball .wrap {
    margin-top: -40px;
    padding: 0 15px;
}
.box-ball .ttl {
    font-size: 2rem;
    line-height: 1.6;
    font-weight: 500;
    letter-spacing: 0.1em;
}
.box-ball .ttl .num {
    font-size: 180%;
    letter-spacing: 0;
    font-weight: bold;
    display: block;
    margin-bottom: 15px;
    line-height: 1;
}
.box-ball .txt {
    font-size: 1.4rem;
    letter-spacing: 0;
    line-height: 2;
    margin-top: 10px;
}
.box-ball .img {
    position: relative;
    z-index: 1;
    margin-top: -22%;
}
@media screen and (max-width: 767px){
    .box-ball .ttl {
        font-size: 1.6rem;
        margin-bottom: 5px;
    }
    .box-ball .txt { font-size: 1.2rem;}
}
/*==================================================================
   sec-concept
===================================================================*/
.sec-concept {
    padding: 155px 0 130px;
    position: relative;
}
.sec-concept::before {
    content: "";
    background: url(../imgs/icon_leaf01.svg) no-repeat top center/ contain;
    max-width: 453px;
    width: 27%;
    height: 404px;
    position: absolute;
    top: -2%;
    left: 2.8%;
}
.sec-concept::after {
    content: "";
    background: url(../imgs/icon_leaf03.svg) no-repeat top center/ contain;
    width: 10.5%;
    max-width: 187px;
    height: 223px;
    position: absolute;
    top: 21%;
    right: 0;
}
.sec-concept .icon-stunagu {
	position: absolute;
	width: 175px;
	height: auto;
	right: 0;
	top: 635px;
	transform: translateX(105%);
    transition-delay: 0.3s;
}
.sec-concept .icon-stunagu.show { transform: translateX(0);}
.concept-head {
    margin-bottom: 100px;
    position: relative;
}
.concept-head::before {
    content: "";
    background: url(../imgs/icon_leaf02.svg) no-repeat center center/ contain;
    width: 6.7%;
    max-width: 78px;
    height: 87px;
    position: absolute;
    top: -45px;
    right: 27%;
    z-index: -1;
}
.concept-head .ttl {
    font-size: 2.6rem;
    letter-spacing: 0.14em;
    line-height: 1.6;
    font-weight: bold;
    text-align: center;
    margin-bottom: 55px;
}
.concept-head .txt {
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    line-height: 2.25;
    text-align: center;
}
.concept-head .txt + .txt { margin-top: 35px;}
.connect-box {
	position: relative;
	max-width: 800px;
    height: 780px;
	margin: 0 auto;
	text-align: center;
    display: flex;
    align-items: center;
}
.connect-box .img {
	max-width: 440px;
	margin: 0 auto;
}
.connect-box li {
	position: absolute;
	opacity: 0;
	transition: all 1.2s ease;
}
.connect-box.show li { opacity: 1;}
.connect-box .box-ball .wrap { margin-top: 0;}
.connect-box .box-ball .desc { width: 310px;}
.connect-box .box-ball .ttl .num {
    font-size: 140%;
    margin-bottom: 5px;
}
.connect-box li:nth-child(1),
.connect-box li:nth-child(2) {
    top: 0;
}
.connect-box li:nth-child(3),
.connect-box li:nth-child(1) {
	left: 0;
}
.connect-box li:nth-child(4),
.connect-box li:nth-child(2) {
	right: 0;
}
.connect-box li:nth-child(3),
.connect-box li:nth-child(4) {
    bottom: 0;
}
.concept-list .img {
    width: 400px;
    position: relative;
    z-index: 1;
}
.ani-zoom01 {
	opacity: 0;
	-webkit-transform: scale(0.3);
	-ms-transform: scale(0.3);
	transform: scale(0.3);
	-webkit-transition: opacity 0.5s cubic-bezier(0.68, 0.125, 0, 1), -webkit-transform 0.5s cubic-bezier(0.68, 0.125, 0, 1);
	transition: opacity 0.5s cubic-bezier(0.68, 0.125, 0, 1), -webkit-transform 0.5s cubic-bezier(0.68, 0.125, 0, 1);
	-o-transition: opacity 0.5s cubic-bezier(0.68, 0.125, 0, 1), transform 0.5s cubic-bezier(0.68, 0.125, 0, 1);
	transition: opacity 0.5s cubic-bezier(0.68, 0.125, 0, 1), transform 0.5s cubic-bezier(0.68, 0.125, 0, 1);
	transition: opacity 0.5s cubic-bezier(0.68, 0.125, 0, 1), transform 0.5s cubic-bezier(0.68, 0.125, 0, 1),
		-webkit-transform 0.5s cubic-bezier(0.68, 0.125, 0, 1);
}
.case-ani.show .ani-zoom01 {
	opacity: 1;
	-webkit-transform: scale(1);
	-ms-transform: scale(1);
	transform: scale(1);
}
.ani-zoom02 {
	opacity: 0;
	-webkit-transform: scale(0.5);
	-ms-transform: scale(0.5);
	transform: scale(0.5);
	-webkit-transition: opacity 0.8s cubic-bezier(0.68, -0.55, 0.085, 1.605), -webkit-transform 0.8s cubic-bezier(0.68, -0.55, 0.085, 1.605);
	transition: opacity 0.8s cubic-bezier(0.68, -0.55, 0.085, 1.605), -webkit-transform 0.8s cubic-bezier(0.68, -0.55, 0.085, 1.605);
	-o-transition: opacity 0.8s cubic-bezier(0.68, -0.55, 0.085, 1.605), transform 0.8s cubic-bezier(0.68, -0.55, 0.085, 1.605);
	transition: opacity 0.8s cubic-bezier(0.68, -0.55, 0.085, 1.605), transform 0.8s cubic-bezier(0.68, -0.55, 0.085, 1.605);
	transition: opacity 0.8s cubic-bezier(0.68, -0.55, 0.085, 1.605), transform 0.8s cubic-bezier(0.68, -0.55, 0.085, 1.605),
		-webkit-transform 0.8s cubic-bezier(0.68, -0.55, 0.085, 1.605);
	transition-delay: 0s, 0s, 0s;
}
.case-ani.show .ani-zoom02 {
	opacity: 1;
	-webkit-transform: scale(1);
	-ms-transform: scale(1);
	transform: scale(1);
}
.delay01 {
	transition-delay: 0.5s;
	animation-delay: 0.5s;
}
.delay02 {
	transition-delay: 1s;
	animation-delay: 1s;
}

@media screen and (max-width: 767px){
    .sec-concept { padding: 80px 0 60px;}
    .sec-concept .icon-stunagu {
        width: 100px;
        bottom: 50px;
    }
	.sec-concept::before { top: -5px; left: 0;}
    .sec-concept::after { top: 16%;}
    .concept-head { margin-bottom: 110px;}
    .concept-head::before { top: -40px;}
    .concept-head .ttl {
        font-size: 2rem;
        letter-spacing: 0.01em;
       margin-bottom: 25px;
    }
    .concept-head .txt {
        font-size: 1.4rem;
        letter-spacing: 0.05em;
        line-height: 2;
    }
    .concept-head .txt + .txt { margin-top: 25px;}
    .connect-box {
		margin: 70px auto 0;
		margin: 0px auto 0;
        width: 300px;
        height: 288px;
	}
    .connect-box .box-ball .desc { width: 115px;}
	.connect-box .img { width: 162px;}
	.connect-box li img { max-height: 34px;}
    .connect-box .box-ball .wrap { padding: 0 5px;}
    .connect-box .box-ball .ttl {
        font-size: 1.2rem;
        letter-spacing: 0;
    }
}

/*==================================================================
   sec-life 
===================================================================*/
.sec-life { padding: 95px 0 240px;}
.sec-life .inner { max-width: 1000px;}
.connect-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.connect-list .item:nth-child(n+3) { margin-top: 115px;}
.connect-list .item { width: 43.5%; position: relative;}
.connect-list .item > .link { z-index: 5; }
.box-life { margin-top: -40px; position: relative;}
.box-life .line {
    position: relative;
    height: 64px;
    width: 1px;
    background-color: #1a1a1a;
    margin: 0 auto 10px;
}
.box-life a { z-index: 3;}
.box-life a:hover ~ .img::after { opacity: 1;}
.box-life a:hover ~ .info .btn-more { opacity: 0.5;}
.box-life a:hover ~ .txt  {opacity: .5;}
.box-life .cont { position: relative;}
.box-life .ttl {
    font-size: 1.2rem;
    font-weight: 500;
    text-align: center;
    margin-bottom: 15px;
    line-height: 1;
    min-height: 26px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.box-life .ttl .md {
    font-size: 134%;
    letter-spacing: 0;
}
.box-life .ttl .num {
    font-size: 217%;
    font-weight: bold;
}
.box-life .ttl-sub {
    font-size: 1.8rem;
    letter-spacing: 0.1em;
    line-height: 1.6;
    font-weight: 500;
    text-align: center;
}
.box-life .icon {
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    margin: 0 0 5px 0;
}
.box-life .head-box {
    position: relative;
    padding-bottom: 20px;
    margin-bottom: 15px;
    z-index: 3;
    border-bottom: 1px solid #000000;
}
.box-life .txt {
    font-size: 1.4rem;
    letter-spacing: 0.07em;
    line-height: 2;
    transition: opacity .3s;
    margin-bottom: 45px;
}
.box-life .img { position: relative;}
.box-life .img::after {
    content: "";
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, .6);
    z-index: 2;
    position: absolute;
    top: 0;
    display: block;
    opacity: 0;
    transition: all .3s;
}
.box-life .detail { 
    display: flex;
    position: relative;
}
.box-life .detail .info {
    width: 53.5%;
    margin: -3px 15px 0 0;
}
.box-life .detail .img { flex: 1;}
.box-life .btn-more {
    z-index: 5;
    transition: all .3s;
    text-align: left;
}
.box-life .btn-more > *::before {
    transition: all .3s;
    background-color: #00a9c8;
}
.connect-list .item:nth-child(4) .box-life .icon,
.connect-list .item:nth-child(3) .box-life .icon {
    margin: 0 0 5px 25px;
}
@media screen and (max-width: 767px){
	.sec-life { padding: 60px 0 60px;}
    .connect-list { display: block;}
    .connect-list .item { width: 100%;}
    .connect-list .item + .item { margin-top: 50px;}
    .box-life .head-box { padding-bottom: 15px;}
    .box-life .line { height: 40px;}
    .box-life .ttl {  
        font-size: 1rem;
        min-height: 22px;
    }
    .box-life .txt { 
        font-size: 1.2rem;
        letter-spacing: 0.01em;
        margin-bottom: 20px;
    }
    .box-life .item:nth-child(2) .icon img { width: 132px;}
    .box-life .ttl-sub { font-size: 1.6rem;}
}

/*==================================================================
   sec-movie
===================================================================*/
.sec-movie { padding: 195px 0 155px;}
.sec-movie .headline01 { margin: 0 30px 60px;}
.sec-movie .headline01 .gif {
    position: absolute;
    left: 160px;
    bottom: -5px;
    width: 110px;
}
.movie-wrap {
    max-width: 770px;
    margin: auto;
}
.movie-interview {
    position: relative;
    cursor: pointer;
}
.movie-interview .movie-poster {
    position: absolute;
    z-index: 1;
}
.movie-interview video{
    display: block;
    width: 100%;
}
@media screen and (max-width: 767px){
	.sec-movie { padding: 110px 0 60px;}
    .sec-movie .headline01 { margin: 0 0 30px;}
    .sec-movie .headline01 .gif { left: 70px;}
}

/*==================================================================
   sec-column
===================================================================*/
.sec-column { padding: 185px 0 170px;}
.sec-column .headline01 .gif {
    position: absolute;
    left: 245px;
    bottom: -15px;
    width: 60px;
}
.sec-column .headline01 .line {
    position: relative;
    top: -2px;
}
.sec-column .headline01 .linewrap { gap: 125px;}
.column-list {
    display: flex;
    flex-wrap: wrap;
    margin: 70px -15px 0;
}
.column-list .item {
    width: calc(100%/3);
    padding: 0 15px;
}
.column-list .ttl {
    font-size: 1.4rem;
    font-weight: bold;
    line-height: 1;
    margin-bottom: 15px;
}
.column-list .ttl .num { font-size: 215%;}
.column-list .ttl-sub {
    font-size: 1.6rem;
    letter-spacing: 0.12em;
    line-height: 1.625;
    font-weight: 500;
    margin-bottom: 10px;
}
.column-list .txt {
    font-size: 1.4rem;
    letter-spacing: 0.1em;
    line-height: 1.5;
    margin-bottom: 25px;
}
.column-list .btn-more { 
    margin: 20px 10px 0 0; 
    transition: opacity .3s;
}
.column-list .img::after {
    content: "";
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, .6);
    position: absolute;
    top: 0;
    display: block;
    opacity: 0;
    transition: all .3s;
}
.column-list a:hover ~ .img::after { opacity: 1;}
.column-list a:hover ~ .btn-more { opacity: 0.5;}
@media screen and (max-width: 767px){
	.sec-column { padding: 110px 0 60px;}
    .sec-column .headline01 .linewrap { gap: 60px;}
    .sec-column .headline01 .gif { left: 130px;}
    .column-list { margin: 0 -15px 0;}
    .column-list .item { width: 100%;}
    .column-list .item + .item { margin-top: 30px;}
    .column-list .ttl {
        font-size: 1.2rem;
        margin-bottom: 5px;
    }
    .column-list .ttl-sub {
        font-size: 1.4rem;
        margin-bottom: 5px;
    }
    .column-list .txt {
        font-size: 1.2rem;
        margin-bottom: 10px;
    }
    .column-list .btn-more { margin: 10px 10px 0 0;}
}

/*==================================================================
   sec-house
===================================================================*/
.sec-house { padding: 105px 0 130px;}
.headline01.line-house .linewrap { gap: 60px;}
.headline01.line-house .group {
    flex: 1;
    position: relative;
    top: -5px;
}
.headline01.line-house .gif {
    width: 65px;
    display: block;
    position: absolute;
    top: 28px;
    left: -10px;
}
.list-house {
	display: flex;
	flex-wrap: wrap;
	align-items: start;
	gap: 60px;
    max-width: 805px;
    margin: 100px auto 0;
}
.list-house .item { width: calc(100% / 2 - 30px);}
.list-house .item img {
	width: 100%;
	margin: 0 auto;
	border: 1px solid #8e8f8f;
}
.list-house .sold-out {
    position: relative;
    pointer-events: none;
}
.list-house .sold-out::after {
    content: "coming soon";
    display: flex;
    justify-content: center;
    align-items: center;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    position: absolute;
    background-color: rgba(0, 0, 0, 0.7);
    color: #fff;
    font-family: "Heebo", sans-serif;
    font-size: 1.8rem;
    font-weight: bold;
    letter-spacing: 3px;
    z-index: 1;
}
.list-house .card {
	width: 100%;
	height: 100%;
}
.list-house .card-header {
	padding: 15px 75px;
	background-color: #1d1d1c;
}
.list-house .card-header img { border: none;}
.list-house .card-img { width: 100%;}
.list-house .card-img img {
	height: auto;
	aspect-ratio: 16 / 9;
	vertical-align: middle;
}
.list-house .card-body {
	padding: 15px;
	background-color: #fff;
}
.list-house .card-center { text-align: center;}
.list-house .card-icon {
	width: 105px;
	padding: 8px 5px;
	color: #fff;
	background-color: #1d1d1c;
    font-size: 1.2rem;
}
.list-house .card-heading h4 {
	padding: 15px 0;
    font-size: 1.4rem;
}
.list-house .card-footer a.card-btn {
	display: grid;
	place-items: center;
	text-decoration: none;
	margin: auto;
	padding: 8px;
	border: 1px solid #767676;
	color: #767676;
	transition: 0.5s;
    width: 82%;
    font-size: 1.2rem;
}
.list-house .card-footer a.card-btn:hover {
	color: #fff;
	background: #767676;
}
@media screen and (max-width: 767px) {
    .sec-house { padding: 60px 0;}
    .headline01.line-house .linewrap { gap: 30px;}
	.headline01.line-house .line-icon img {
        height: 75px;
        object-fit: cover;
        background-position: left;
        object-position: left;
    }
    .headline01.line-house .gif {
        width: 50px;
        top: 15px;
    }
	.list-house {
		flex-direction: column;
		gap: 20px;
        margin: 0 auto 0;
	}
	.list-house .item { width: 100%;}
    .list-house .card-footer a.card-btn { width: 280px;}
}
/*------------------------------------------------------------
  # [button]
  ------------------------------------------------------------*/
.si__button--cenetr {
	display: grid;
	place-items: center;
	margin-bottom: 50px;
}
.si__button--collabo {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 300px;
	height: 60px;
	padding: 10px 20px;
	color: #fff;
	text-align: center;
	overflow-wrap: anywhere;
	background-color: #1d1d1c;
	margin-block-start: 50px;
}
.si__button--img {
	width: 50%;
	margin: 0 15px;
}
.si__button--icon {
	position: absolute;
	top: 18%;
	right: 0;
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 48px;
	aspect-ratio: 1;
	overflow: hidden;
}
.si__button--collabo:hover {
    color: #fff;
    opacity: 1;
}
@media (any-hover: hover) {
	.si__button--collabo { transition: background-color 0.2s;}
	.si__button--icon { transition: transform 0.2s;}
	.si__button--collabo:hover .si__button--icon { transform: translateX(4px);}
}