@charset "UTF-8";

/* BG */

.bg_bluegra{
    background: #FFFFFF;
background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(244, 245, 247, 1) 13%);
}


/* MV */

.mv{
    max-width: 95%;
    height: 88svh;
    background-image: url(../img/re/mv_pc.webp);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: left bottom;
    border-radius: 0 0 60px 0;
}
.mv h1{
    width: 100%;
    position: absolute;
    top: 33%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    text-align: center;
    font-size: max(2.6svw, 17px);
    color: var(--light);
    letter-spacing: 8px;
    line-height: 1.6;
    text-shadow: 0 0 10px #49aeee,
               0 0 10px #49aeee,
               0 0 10px #49aeee,
               0 0 10px #49aeee,
               0 0 10px #49aeee;
}
.mv h1 span{
    display: block;
    font-size: 70%;
    letter-spacing: 8px;
}


/* merit_wrap */

.merit_wrap{
   
}
.merit_wrap img{width: 100%;}
.pickup{
    padding: 40px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0 2%;
}
.pickup li{
    background-color: var(--blue);
    border-radius: 50px;
    width: 100%;
    padding: 16px 32px;
}
.merit{
    display: flex;
    justify-content: space-between;
    gap: 8px 8px;
    flex-wrap: wrap;
}
.merit li{
    flex-basis: 32.8%;
    width: 100%;
}
.merit li span{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: var(--light);
    border-radius: 10px;
    padding: 40px 12px;
    width: 100%;
    height: 100%;
}
.merit li:nth-of-type(4){
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px 0;
    width: 100%;
}
.merit li:nth-of-type(4) span{
    padding: 18px 12px;
}
.merit li:nth-of-type(1) img{width: 250px;}
.merit li:nth-of-type(2) img{width: 184px;}
.merit li:nth-of-type(3) img{width: 328px;}
.merit li:nth-of-type(4) img{width: 294px;}
.merit li:nth-of-type(5) img{width: 238px;}
.merit li:nth-of-type(6) img{width: 250px;}



/* price */

.price{
    padding-top: 40px;
}

/* 左右に横線 */
.price h3 {
  align-items: center; /* 横線を上下中央 */
  display: flex; /* 文字と横線を横並び */
  justify-content: center; /* 文字を中央寄せ */
  font-size: 15px;
  color: var(--blue);
  font-weight: 600;
}
.price h3::before,
.price h3::after {
  background-color: var(--blue); /* 横線の色 */
  content: "";
  height: 1px; /* 横線の高さ */
  width: 60px; /* 横線の長さ */
}
.price h3::before {
  margin-right: 10px; /* 文字との余白 */
}
.price h3::after {
  margin-left: 10px; /* 文字との余白 */
}

.price h3 + p{
    text-align: center;
    font-size: 11px;
}
.price ul{
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: nowrap;
    margin-top: 32px;
    gap: 0 24px;
}
.price img{width: 100%;}

/* cp */

.cp{
    padding: 8% 0 0;
}
.cp p{
    text-align: center;
    max-width: 900px;
    margin: auto;
}

/* info */

.info{
    padding-top: 80px;
}
.info_box{
    display: flex;
    align-items: center;
    gap: 0 6%;
    flex: 1;
}
.info_box p{
    font-weight: 600;
    font-size: 20px;
}
.info_box dl{
    background-color: var(--light);
    padding: 24px 32px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 0 24px;
    width: 100%;
}
.info_box dt{
    font-size: 15px;
    font-weight: 600;
}
.info_box dd{
    font-size: 15px;
    font-weight: 600;
}



/* entry */


.entry{
    background-image: url(../img/re/entry_bg_pc.webp);
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: bottom right;
    width: 95%;
    max-width: 1560px;
    min-height: 800px;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    justify-content: end;
    align-items: end;
}
.entry .cap{
    left: 16px;
    right: unset;
}
.entry_box{
    display: flex;
    align-items: end;
    gap: 0 24px;
    width: 70%;
}
.entry_box .ttl{
    color: var(--light);
    padding-bottom: 16px;
}
.entry_box .ttl .ja{
    font-size: 14px;
    line-height: 1;
    display: block;
}
.entry_box .ttl .en{
    font-size: 50px;
    line-height: 1;
    display: block;
    letter-spacing: 6px;
    padding-top: 8px;
}

.entry_cv{
    margin-top: auto;
    background-color: var(--light);
    padding: 4% 0 0 6%;
    border-radius: 20px 0 0 0;
    width: 100%;
}
.entry_cv ul{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 85%;
}
.entry_cv li{
    margin-top: 16px;
}
.entry_cv li.req,
.entry_cv li.res{flex-basis: 49%;}
.entry_cv li.limited{flex-basis: 100%;}


.entry_cv li a{
    display: flex;
    align-items: center;
    gap: 0 8px;
    padding: 20px 24px;
    border-radius: 70px;
    position: relative;
    transition: .3s;
}
.entry_cv li a span.en{
    font-size: 18px;
    line-height: 1;
    font-weight: 600;
}
.entry_cv li a span.ja{
    font-size: 12px;
    line-height: 1;
}

.entry_cv li a .arrow{
    position: absolute;
    top: 50%;
    right: 24px;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    background-color: var(--light);
    padding: 6px 12px;
    border-radius: 16px;
    width: 40px;
    height: 20px;
    transition: .3s;

}
.entry_cv li a .arrow:before,
.entry_cv li a .arrow:after {
  position: absolute;
  content: '';
}
.entry_cv li a .arrow:before {
    top: 12px;
    left: 10px;
  width: 15px;
  height: 1px;
  background: var(--dark);
}

.entry_cv li a .arrow:after {
  top: 7px;
    left: 23px;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-right: 0 solid transparent;
  border-bottom: 0 solid transparent;
  border-left: 7px solid var(--dark);
}

.entry_cv li.req a{
    background-color: var(--blue);
    color: var(--light);
}
.entry_cv li.res a{
    background-color: var(--lblue);
}
.entry_cv li.limited a{
    background-color: var(--gold);
}

.entry_cv li.req a:hover{
    background-color: var(--dark);
    color: var(--blue);
}
.entry_cv li.res a:hover{
    background-color: var(--dark);
    color: var(--lblue);
}
.entry_cv li.limited a:hover{
    background-color: var(--dark);
    color: var(--gold);
}

.entry_cv li.req a:hover .arrow{
    background: var(--blue);
}
.entry_cv li.req a:hover .arrow::before{
    background: var(--light);
}
.entry_cv li.req a:hover .arrow::after{
    border-left: 7px solid var(--light);
}
.entry_cv li.res a:hover .arrow{
    background: var(--lblue);
}
.entry_cv li.res a:hover .arrow::before{
    background: var(--light);
}
.entry_cv li.res a:hover .arrow::after{
    border-left: 7px solid var(--light);
}
.entry_cv li.limited a:hover .arrow{
    background: var(--gold);
}


/* concept */

.concept{
    background-image: url(../img/re/concept_bg_pc.webp);
    background-position: bottom right;
    background-repeat: no-repeat;
    background-size: cover;
    margin-top: 16%;
    min-height: 1170px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.concept_box{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.concept_box h3{
    text-align: center;
    font-size: 30px;
    letter-spacing: 24px;
    font-weight: 500;
    color: var(--dark);
        line-height: 1.6;
}
.concept_box p{
    
    line-height: 3;
    padding-top: 80px;
}
.concept_box p span{
    display: block;
    text-align: center;
    font-size: 16px;
    letter-spacing: 8px;
}
.concept_ttl{
    color: var(--light);
    padding-top: 80px;
}
.concept_ttl span{
    display: block;
    text-align: center;
    line-height: 1;
}
.concept_ttl span:nth-of-type(1){
    font-size: 45px;
    letter-spacing: 14px;
}
.concept_ttl span:nth-of-type(2){
    font-size: 11px;
    letter-spacing: 7.4px;
    padding-top: 32px;
}

.concept .item01,
.concept .item02,
.concept .item03{position: absolute;}

.concept .item01{
        width: 19%;
    top: -40px;
    right: 74px;
}
.concept .item02{
        width: 13%;
    top: 189px;
    left: 89px;
}
.concept .item03{
    width: 28%;
    bottom: -32px;
    left: 24px;
}


/* main_contents */

.main_contents{
    background-color: var(--light);
    padding-top: 16%;
}
.main_con_box{
    padding-bottom: 8%;
    display: flex;
    gap: 0 3%;
}
.main_con_box .txt_area_wrap{
    flex-basis: 32%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 3%;
}
.txt_area_wrap .txt_area{
    display: flex;
    flex-direction: column;
}
.txt_area_wrap .txt_area .num span{
    font-size: 16px;
    font-weight: 600;
}
.txt_area_wrap .txt_area .num{
    font-size: 14px;
}
.txt_area_wrap .txt_area .ttl{
    font-size: 50px;
    padding-top: 16px;
    line-height: 1.0;
}
.txt_area_wrap .txt_area .txt{
    font-size: 16px;
    line-height: 2;
    padding-top: 24px;
}
.txt_area_wrap .txt_area .btn_area{
    transition: .3s;
     padding-top: 24px;
}
.txt_area_wrap .txt_area .btn_area a{
    transition: .3s;
    display: flex;
    align-items: center;
    gap: 0 16px;
}
.txt_area_wrap .txt_area .btn_area .en{
 font-size: 16px;
    font-weight: 600;
}
.txt_area_wrap .txt_area .arrow{
    background-color: var(--lgray);
    padding: 6px 12px;
    border-radius: 16px;
    width: 40px;
    height: 20px;
    transition: .3s;
    position: relative;

}
.txt_area_wrap .txt_area .arrow:before,
.txt_area_wrap .txt_area .arrow:after {
  position: absolute;
  content: '';
}
.txt_area_wrap .txt_area .arrow:before {
    top: 12px;
    left: 10px;
  width: 15px;
  height: 1px;
  background: var(--dark);
}

.txt_area_wrap .txt_area .arrow:after {
  top: 7px;
    left: 23px;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-right: 0 solid transparent;
  border-bottom: 0 solid transparent;
  border-left: 7px solid var(--dark);
}

.txt_area_wrap .txt_area .btn_area:hover {color: var(--blue);}
.txt_area_wrap .txt_area .btn_area:hover .arrow{background-color: var(--blue);}
.txt_area_wrap .txt_area .btn_area:hover .arrow:before{background: var(--light);}
.txt_area_wrap .txt_area .btn_area:hover .arrow:after{border-left: 7px solid var(--light);}


.main_con_box .img_area{
    flex-basis: 65%;
    overflow: hidden;
}
.main_con_box .img_area img{ border-radius: 20px 0 0 20px;}
.plan .img_area .cap{
    left: 34%;
}

.main_con_box .thumbnail{
padding-top: 200px;
max-width: fit-content;
}
.main_con_box .thumbnail .slick-track {
  transform: unset !important;
}
.main_con_box .thumbnail-img img{}
.main_con_box .thumbnail-img {
  border: none;
  transition: .3s;
  overflow: hidden;
  border-radius: 50%;
  width: 50px !important;
  box-sizing: border-box;
}
.main_con_box .thumbnail .slick-current {
  outline: 3px solid var(--blue);
}
.slick-track{
    padding: 6px;
    width: fit-content;
}
.thumbnail-img{
   margin: 0 6px;
}


.maiko_time{
    background-image: url(../img/re/contents_bg_pc.webp);
    background-size: cover;
    background-position: bottom center;
    min-height: 530px;
}



@media screen and (max-width: 768px) {

/* MV */

.mv{
    max-width: 100%;
    height: 60svh;
    background-image: url(../img/re/mv_sp.webp);
    border-radius: 0 0 60px 0;
}
.mv h1{
    top: 37%;
    left: 50%;
    font-size: max(2.6svw, 17px);
    letter-spacing: 6px;
}
.mv .cap{
    right: unset;
    left: 10px;
}


/* merit_wrap */

.merit_wrap{
   
}
.merit_wrap img{width: 100%;}
.pickup{
    padding: 32px 0 24px;
    display: flex;
    flex-direction: column;
    gap: 8px 0;
}
.pickup li{
    background-color: var(--blue);
    border-radius: 50px;
    width: 100%;
    padding: 12px 24px;
}
.merit{
    display: flex;
    justify-content: space-between;
    gap: 4px 4px;
    flex-wrap: wrap;
}
.merit li:nth-of-type(1),
.merit li:nth-of-type(2),
.merit li:nth-of-type(3){
    flex-basis: 32.5%;
}
.merit li:nth-of-type(4){
    flex-basis: 100%;
}
.merit li:nth-of-type(5),
.merit li:nth-of-type(6){
    flex-basis: 49%;
}
.merit li span{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: var(--light);
    border-radius: 10px;
    padding: 24px 12px;
    width: 100%;
    height: 100%;
}
.merit li:nth-of-type(4){
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap: 0 4px;
    width: 100%;
}
.merit li:nth-of-type(4) span{
    padding: 24px 12px;
}
.merit li:nth-of-type(1) img{width: 78px;}
.merit li:nth-of-type(2) img{width: 67px;}
.merit li:nth-of-type(3) img{width: 100%;}
.merit li:nth-of-type(4) img{width: 118px;}
.merit li:nth-of-type(5) img{width: 238px;}
.merit li:nth-of-type(6) img{width: 250px;}



/* price */

.price{
    padding-top: 32px;
}

/* 左右に横線 */
.price h3 {
  align-items: center; /* 横線を上下中央 */
  display: flex; /* 文字と横線を横並び */
  justify-content: center; /* 文字を中央寄せ */
  font-size: 15px;
  color: var(--blue);
  font-weight: 600;
}
.price h3::before,
.price h3::after {
  background-color: var(--blue); /* 横線の色 */
  content: "";
  height: 1px; /* 横線の高さ */
  width: 60px; /* 横線の長さ */
}
.price h3::before {
  margin-right: 10px; /* 文字との余白 */
}
.price h3::after {
  margin-left: 10px; /* 文字との余白 */
}

.price h3 + p{
    text-align: center;
    font-size: 11px;
}
.price ul{
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: nowrap;
    margin-top: 24px;
    gap: 24px 0;
}



/* info */

.info{
    padding-top: 80px;
    padding-bottom: 40px;
}
.info_box{
    display: block;
}
.info_box p{
    font-weight: 600;
    font-size: 17px;
    text-align: center;
    padding-bottom: 16px;
}
.info_box dl{
    background-color: var(--light);
    padding: 24px 32px;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px ;
    width: 100%;
}
.info_box dt{
    font-size: 13px;
    font-weight: 600;
}
.info_box dd{
    font-size: 14px;
    font-weight: 600;
}



/* entry */


.entry{
    background-image: url(../img/re/entry_bg_sp.webp);
    background-position: top left;
    width: 100%;
    min-height: 582px;
    margin-left: auto;
    display: flex;
    flex-direction: column-reverse;
    justify-content: center;
    align-items: center;
}
.entry .cap{
    left: 16px;
    right: unset;
}
.entry_box{
    display: block;
    width:90%;
}
.entry_box .ttl{
    color: var(--light);
    padding-bottom: 0;
    padding-left: 24px;
}
.entry_box .ttl .ja{
    font-size: 10px;
    line-height: 1;
    display: block;
}
.entry_box .ttl .en{
    font-size: 36px;
    line-height: .7;
    display: block;
    letter-spacing: 6px;
    padding-top: 8px;
}

.entry_cv{
    margin-top: auto;
    background-color: var(--light);
    padding: 5% 5% 8%;
    border-radius: 20px;
    width: 100%;
}
.entry_cv ul{
    display: flex;
    flex-direction: column;
    width: 100%;
}
.entry_cv li{
    margin-top: 16px;
}
.entry_cv li.req,
.entry_cv li.res{flex-basis: 100%;}
.entry_cv li.limited{flex-basis: 100%;}


.entry_cv li a{
    display: flex;
    align-items: center;
    gap: 0 8px;
    padding: 20px 24px;
    border-radius: 70px;
    position: relative;
    transition: .3s;
}
.entry_cv li a span.en{
    font-size: 18px;
    line-height: 1;
    font-weight: 600;
}
.entry_cv li a span.ja{
    font-size: 12px;
    line-height: 1;
}





/* concept */

.concept{
    background-image: url(../img/re/concept_bg_sp.webp);
    background-position: bottom right;
    background-repeat: no-repeat;
    background-size: contain;
    margin-top: 0;
    min-height: 110svh;
    position: relative;
            padding: 547px 0 227px;
}
.concept_box{
    display: block;
    min-height: auto;
}
.concept_box h3{
    font-size: 21px;
    letter-spacing: 12px;
    line-height: 2;
}
.concept_box p{
    
    line-height: 3;
    padding-top: 40px;
}
.concept_box p span{
    display: block;
    text-align: center;
    font-size: 14px;
    letter-spacing: 4px;
}
.concept_ttl{
    color: var(--light);
    padding-top: 40px;
}
.concept_ttl span{
    display: block;
    text-align: center;
    line-height: 1;
}
.concept_ttl span:nth-of-type(1){
            font-size: 36px;
        letter-spacing: 8px;
}
.concept_ttl span:nth-of-type(2){
    font-size: 9px;
        letter-spacing: 4.4px;
        padding-top: 16px;
}

.concept .item01,
.concept .item02,
.concept .item03{position: absolute; display: block;}

.concept .item01{
        width: 38%;
    top: -40px;
    right: 16px;
}
.concept .item02{
            width: 24%;
        top: 107px;
        left: 68px;
}
.concept .item03{
          width: 50%;
        bottom: unset;
        top: 345px;
        left: 93px;
}


/* main_contents */

.main_contents{
    padding-top: 32%;
}
.main_con_box{
    padding-bottom: 16%;
    display: flex;
    flex-direction: column-reverse;
    gap: 5% 0;
}
.main_con_box .txt_area_wrap{
    margin-top: 40px;
    display: block;
    padding: 0 16%;
    position: relative;
}
.txt_area_wrap .txt_area{
    display: flex;
    flex-direction: column;
}
.txt_area_wrap .txt_area .num span{
    font-size: 14px;
    font-weight: 600;
}
.txt_area_wrap .txt_area .num{
    font-size: 12px;
}
.txt_area_wrap .txt_area .ttl{
    font-size: 40px;
    padding-top: 12px;
    line-height: 1.0;
}
.txt_area_wrap .txt_area .txt{
    font-size: 14px;
    line-height: 2;
    padding-top: 16px;
}
.txt_area_wrap .txt_area .btn_area{
    transition: .3s;
     padding-top: 0;
     margin-top: 24px !important;
}
.txt_area_wrap .txt_area .btn_area a{
    transition: .3s;
    display: flex;
    align-items: center;
    gap: 0 16px;
}
.txt_area_wrap .txt_area .btn_area .en{
 font-size: 14px;
    font-weight: 600;
}

.modelroom.main_con_box .img_area{
    width: 95%;
    margin-left: auto;
}
.modelroom.main_con_box .img_area img{border-radius: 20px 0 0 20px;}
.access.main_con_box .img_area{
    width: 95%;
    margin-right: auto;
}
.access.main_con_box .img_area img{border-radius: 0 20px 20px 0;}
.plan.main_con_box .img_area{
    width: 95%;
    margin-left: auto;
}
.plan.main_con_box .img_area img{border-radius: 20px 0 0 20px;}
.design.main_con_box .img_area{
     width: 95%;
    margin-right: auto;
}
.design.main_con_box .img_area img{border-radius: 0 20px 20px 0;}

.main_con_box .img_area{
    flex-basis: 65%;
    overflow: hidden;
}
.main_con_box .img_area img{ border-radius: 20px 0 0 20px;}
.plan .img_area .cap {
    left: 44%;
}
.main_con_box .thumbnail{
padding-top: 0;
position: absolute;
top: -37px;
        right: -34px;
        z-index: 1;
}
.main_con_box .thumbnail .slick-track {
  transform: unset !important;
}
.main_con_box .thumbnail-img img{}
.main_con_box .thumbnail-img {
  border: none;
  transition: .3s;
  overflow: hidden;
  border-radius: 50%;
  width: 30px !important;
  box-sizing: border-box;
}
.main_con_box .thumbnail .slick-current {
  outline: 3px solid var(--blue);
}
.slick-track{
    padding: 6px;
}
.thumbnail-img{
   margin: 0 3px;
}


.maiko_time{
    background-image: url(../img/re/contents_bg_sp.webp);
    background-size: cover;
    background-position: bottom center;
    min-height: 270px;
}
}