@charset "UTF-8";
/* loading ---------------------------------------*/
.pace {
	-webkit-pointer-events: none;
	pointer-events: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
}

.pace-inactive {
	display: none;
}

.pace .pace-progress {
	background: #fff;
	position: fixed;
	z-index: 2000;
	top: 0;
	right: 100%;
	width: 100%;
	height: 2px;
}

.loading {
	position:fixed;
	left:0;
	top:0;
	width: 100%;
	height:100vh;
	z-index:1000;
	background: #fff;
}

.loading-inner {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
    width: 100%;
    padding: 100px;
	opacity: 0;
	transition: all 1.25s ease;
}

.loading.active .loading-inner {
	opacity:1;
}

.loading-logo {
    max-width: 371px;
    width: 100%;
    margin: 0 auto 110px;
}

.loading-logo img {
    width: 100%;
}

.loading-meter {
    position: relative;
    max-width: 371px;
    width: 100%;
    margin: 0 auto;
    height: 2px;
    background: #EDEDED;
}

.loading-meter::after {
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: #525252;
	clip-path: inset(0 100% 0 0);
	transition: all 2s ease-out;
    content: '';
}

.loading.active .loading-meter::after {
	clip-path: inset(0);
}



/* indexkv ---------------------------------------*/
.indexkv { 
	position: relative;
	z-index: 1;
}

.indexkv-video {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100vh;
}

.indexkv-video::before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.6);
    content: '';
    z-index: 2;
}

.indexkv-video video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.indexkv-title { 
    position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
    width: calc(495 / 1920 * 100vw);
    z-index: 10;
}

.indexkv-title img { 
    width: 100%;
}


/* indexintro ---------------------------------------*/
.indexintro { 
    padding: 9vw calc(160 / 1920 * 100vw) 13vw;
}

.indexintro-top { 
    display: flex;
    gap: calc(240 / 1920 * 100vw);
    margin-bottom: calc(140 / 1920 * 100vw);
}

.indexintro-top-image { 
    width: calc(900 / 1920 * 100vw);
}

.indexintro-top-image img { 
    width: 100%;
    margin-bottom: 20px;
}

.indexintro-top-image img + img { 
    margin-top: calc(50 / 1920 * 100vw);
}

.indexintro-top-title { 
	font-size: max(2.708vw, 24px);
	line-height: 2;
    letter-spacing: 0.37em;
    margin: 3.7vw 0 -3.7vw 0;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}

.indexintro-lead { 
    padding: 0 calc(130 / 1920 * 100vw);
    margin-bottom: 6.5vw;
    font-size: max(2.708vw, 24px);
    line-height: 1.6;
    letter-spacing: 0.1em;
}

.indexintro-block { 
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: calc(60 / 1920 * 100vw);
    padding: 0 calc(130 / 1920 * 100vw);
}

.indexintro-text { 
    font-size: max(0.781vw, 12px);
    line-height: 3.6;
    letter-spacing: 0.1em;
}

.indexintro-link { 
    display: block;
}

.indexintro-link-text span { 
    display: block;
    font-size: max(1.563vw, 16px);
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.2em;
    margin-bottom: calc(10 / 1920 * 100vw);
}

.indexintro-link-text small { 
    display: block;
    font-size: max(1.042vw, 12px);
    line-height: 1.6;
    letter-spacing: 0.05em;
    margin-bottom: calc(10 / 1920 * 100vw);
}

.indexintro-link img { 
    display: block;
    width: calc(434 / 1920 * 100vw);
}


/* indexparallax-top ---------------------------------------*/
.indexparallax-top { 
    height: 650px;
    position: relative;
    overflow: hidden;
    margin-bottom: 14vw;
}

.indexparallax-top-bg { 
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 130%;
    will-change: transform;
    overflow: hidden;
}


/* indexcontent ---------------------------------------*/
.indexcontent { 
    padding-bottom: 13vw;
    overflow: hidden;
}

.indexcontent.indexstay {
    padding-bottom: 21vw;
}

.indexcontent-top { 
    position: relative;
    padding-top: 14vw;
    margin-bottom: 10vw;
    z-index: 1;
}

.indexcontent-odd .indexcontent-top {padding-right: calc(160 / 1920 * 100vw);}
.indexcontent-even .indexcontent-top {padding-left: calc(160 / 1920 * 100vw);}

.indexcontent-top-bg { 
    width: 100%;
}

.indexcontent-top-bg img { 
    width: 100%;
}

.indexcontent-top-deco { 
    display: block;
    position: absolute;
    top: 0;
    z-index: -1;
    font-size: calc(300 / 1920 * 100vw);
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.05em;
    color: #FAFAFA;
}

.indexcontent-odd .indexcontent-top-deco {right: -4vw;}
.indexcontent-even .indexcontent-top-deco {left: -3.2vw;}

.indexcontent-top-title { 
    display: flex;
    flex-direction: column;
    gap: calc(30 / 1920 * 100vw);
    position: absolute;
    top: 19.5vw;
    z-index: 1;
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}

.indexcontent-odd .indexcontent-top-title {left: 4.7vw;}
.indexcontent-even .indexcontent-top-title {right: 6.2vw;}

.indexcontent-top-title::after { 
    position: absolute;
    top: 0;
    left: 58%;
    z-index: 1;
    width: 1px;
    height: 88%;
    background: #fff;
    content: '';
}

.indexcontent-top-title strong { 
    display: block;
    font-size: max(4.167vw, 36px);
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: 0.5em;
    color: #fff; 
}

.indexcontent-top-title span { 
    display: block;
    font-size: max(3.021vw, 26px);
    font-weight: 300;
    line-height: 1;
    letter-spacing: 0.15em;
    color: #fff; 
}

.indexcontent-block { 
    display: flex;
    gap: calc(270 / 1920 * 100vw);
    padding: 0 calc(160 / 1920 * 100vw);
}

.indexcontent-block-summary { 
    flex: 1;
    margin-top: 1vw;
}

.indexcontent-odd .indexcontent-block-summary {
    padding-right: calc(130 / 1920 * 100vw);
    order: 2;
}

.indexcontent-even .indexcontent-block-summary { 
    padding-left: calc(130 / 1920 * 100vw);
    order: 1;
}

.indexcontent-block-deco { 
    display: block;
	position: relative;
    width: fit-content;
	font-size: max(0.833vw, 12px);
	line-height: 1;
	letter-spacing: 0.1em;
	margin-bottom: 1.5vw;
	z-index: 1;
}

.indexcontent-block-deco::after { 
	position: absolute;
	top: 50%;
	left: 134%;
	transform: translateY(-50%);
	z-index: 1;
	width: 50px;
	height: 1px;
	background: #000;
	content: '';
}

.indexcontent-block-lead { 
    font-size: max(2.35vw, 22px);
    line-height: 2.5;
    letter-spacing: 0.1em;
    margin-bottom: 4vw;
}

.indexcontent-block-text { 
	font-size: max(0.833vw, 12px);
    line-height: 3.75;
    margin-bottom: 5.6vw;
}

.indexcontent-block-image { 
    width: calc(450 / 1920 * 100vw);
}

.indexcontent-odd .indexcontent-block-image {
    order: 1;
}

.indexcontent-even .indexcontent-block-image { 
    order: 2;
}

.indexcontent-block-image img { 
    width: 100%;
}

.indexcontent-block-image img + img { 
    margin-top: calc(50 / 1920 * 100vw);
}


/* indexparallax-bottom ---------------------------------------*/
.indexparallax-bottom { 
    height: 800px;
    position: relative;
    overflow: hidden;
    margin-bottom: 27vw;
}

.indexparallax-bottom-bg { 
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 130%;
    will-change: transform;
    overflow: hidden;
}


/* indexaccess ---------------------------------------*/
.indexaccess { 
    padding-bottom: 18vw;
    overflow: hidden;
}

.indexaccess-top { 
    position: relative;
    z-index: 1;
    padding: 7vw 0 0 calc(290 / 1920 * 100vw);
    margin-bottom: 4.5vw;
}

.indexaccess-top-deco { 
    display: block;
    position: absolute;
    top: 0;
    left: -2vw;
    z-index: -1;
    font-size: calc(320 / 1920 * 100vw);
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.05em;
    color: #FAFAFA;
}

.indexaccess-top-title { 
    font-size: max(2.5vw, 32px);
    line-height: 1.667;
    letter-spacing: 0.1em;
    margin-bottom: 1vw;
}

.indexaccess-top-caption { 
    font-size: max(1.146vw, 14px);
    line-height: 1.6;
    letter-spacing: 0.1em;
    margin-bottom: 3vw;
}

.indexaccess-top-text { 
    font-size: max(1.042vw, 14px);
    line-height: 2;
    letter-spacing: 0.1em;
}

.indexaccess-block { 
    display: flex;
    justify-content: space-between;
    gap: calc(50 / 1920 * 100vw);
    padding-left: calc(290 / 1920 * 100vw);
    margin-top: -13vw;
}

.indexaccess-block-map { 
    width: calc(1000 / 1920 * 100vw);
    order: 2;
}

.indexaccess-block-map img { 
    width: 100%;
}

.indexaccess-block-summary { 
    margin-top: 13vw;
}

.indexaccess-block-title { 
	position: relative;
    width: fit-content;
	font-size: max(0.833vw, 12px);
	line-height: 1;
	letter-spacing: 0.1em;
	margin-bottom: 2vw;
	z-index: 1;
}

.indexaccess-block-title::after { 
	position: absolute;
	top: 50%;
	left: 120%;
	transform: translateY(-50%);
	z-index: 1;
	width: 50px;
	height: 1px;
	background: #000;
	content: '';
}

.indexaccess-block-list + .indexaccess-block-title {
    margin-top: 4vw;
}

.indexaccess-block-list > li { 
    display: flex;
    align-items: center;
}

.indexaccess-block-list > li + li { 
    margin-top: calc(16 / 1920 * 100vw);
}

.indexaccess-block-list > li span { 
    font-size: max(1.458vw, 16px);
    line-height: 1.6;
    letter-spacing: 0.1em;
}

.indexaccess-block-list > li span small{ 
    font-size: max(0.833vw, 10px);
    line-height: 1.6;
    letter-spacing: 0.1em;
}

.indexaccess-block-list.-local > li span:first-of-type {width: max(8.854vw, 100px);}
.indexaccess-block-list.-local > li span:nth-of-type(2) {width: max(2.083vw, 30px);}
.indexaccess-block-list.-local > li span:nth-of-type(3) {
    flex: 1;
    margin-left: calc(20 / 1920 * 100vw);
}
.indexaccess-block-list.-city > li span:first-of-type {width: max(16.667vw, 186px);}
.indexaccess-block-list.-city > li span:nth-of-type(2) {flex: 1;}

.indexaccess-block-caption { 
    font-size: max(0.729vw, 11px);
    line-height: 1.6;
    letter-spacing: 0.1em;
    margin: 1.2vw 0 4vw;
}


/* small pc */
@media screen and (min-width: 768px) and (max-width: 1000px){
    .indexintro-top-title { 
        margin: 3.7vw 0 0 0;
    }

    .indexintro-block {
        display: block;
    }

    .indexintro-text {
        margin-bottom: 5vw
    }

    .indexcontent-block {
        gap: calc(200 / 1920 * 100vw);
    }

    .indexaccess-top {
        padding: 7vw 0 0 calc(160 / 1920 * 100vw);
    }

    .indexaccess-block {
        padding-left: calc(160 / 1920 * 100vw);
    }
}

/* sp only */
@media screen and (max-width: 767px){
    /* loading ---------------------------------------*/
    .loading {
        height:100lvh;
    }

    .loading-inner {
        padding: 20px;
    }

    .loading-logo {
        max-width: 250px;
        margin-bottom: 40px;
    }

    .loading-meter {
        max-width: 250px;
        height: 2px;
    }


    /* indexkv ---------------------------------------*/
    .indexkv-title { 
        width: calc(248 / 390 * 100vw);
    }


    /* indexintro ---------------------------------------*/
    .indexintro { 
        padding: 15vw 0 30vw;
    }

    .indexintro-top { 
        display: block;
        margin-bottom: 35vw;
    }

    .indexintro-top-image-left {flex-basis: 100%; margin-bottom: 15vw;} 
    .indexintro-top-image-right {flex-basis: 100%; text-align: right;}
    .indexintro-top-image-left img {width: 70%;} 
    .indexintro-top-image-right img {width: 70%;}
    .indexintro-top-image { 
        width: 100%;
    }

    .indexintro-top-image img + img { 
        margin-top: 4vw;
    }

    .indexintro-top-title { 
        font-size: calc(24 / 390 * 100vw);
        letter-spacing: 0;
        margin-top: 35vw;
        padding: 0 calc(40 / 390 * 100vw);
        -webkit-writing-mode: unset;
        -ms-writing-mode: unset;
        writing-mode: unset;
    }

    .indexintro-lead { 
        padding: 0 calc(40 / 390 * 100vw);
        margin-bottom: 6.5vw;
        font-size: calc(17 / 390 * 100vw);
        line-height: 2.353;
        letter-spacing: 0;
    }

    .indexintro-block { 
        display: block;
        padding: 0 calc(40 / 390 * 100vw);
    }

    .indexintro-text { 
        font-size: calc(12 / 390 * 100vw);
        line-height: 2.917;
        margin-bottom: 27vw;
    }

    .indexintro-link-text span { 
        font-size: calc(15 / 390 * 100vw);
        margin-bottom: 1.5vw;
    }

    .indexintro-link-text small { 
        font-size: calc(10 / 390 * 100vw);
        line-height: 1.45;
        margin-bottom: 1vw;
    }

    .indexintro-link img { 
        width: calc(217 / 390 * 100vw);
    }


    /* indexcontent ---------------------------------------*/
    .indexcontent { 
        padding-bottom: 23vw;
    }

    .indexcontent.indexservice {padding-bottom: 33vw;}
    .indexcontent.indexstay {padding-bottom: 39vw;}

    .indexcontent-top { 
        padding-top: 16vw;
        margin-bottom: 17vw;
    }

    .indexcontent-odd .indexcontent-top {padding-right: calc(40 / 390 * 100vw);}
    .indexcontent-even .indexcontent-top {padding-left: calc(40 / 390 * 100vw);}
    .indexservice .indexcontent-top {padding-top: 18vw;}
    .indexstay .indexcontent-top {padding-top: 21vw;}

    .indexactivity .indexcontent-top-deco {font-size: calc(75 / 390 * 100vw);}
    .indexservice .indexcontent-top-deco {font-size: calc(85 / 390 * 100vw);}
    .indexstay .indexcontent-top-deco {font-size: calc(100 / 390 * 100vw);}

    .indexcontent-odd .indexcontent-top-deco {right: -7vw;}
    .indexcontent-even .indexcontent-top-deco {left: -5.2vw;}

    .indexcontent-top-title { 
        gap: calc(18 / 390 * 100vw);
        top: calc(100% + 17vw);
        white-space: nowrap;
    }

    .indexcontent-odd .indexcontent-top-title {left: 2.5vw;}
    .indexcontent-even .indexcontent-top-title {
        flex-direction: column-reverse;
        right: 2.7vw;
    }

    .indexcontent-top-title::after { 
        left: 56%;
        background: #000;
    }

    .indexcontent-top-title strong { 
        font-size: calc(19 / 390 * 100vw);
        letter-spacing: 0.7em;
        color: #000;
    }

    .indexcontent-top-title span { 
        font-size: calc(16 / 390 * 100vw);
        color: #000; 
    }

    .indexcontent-block { 
        display: block;
        padding: 0;
    }

    .indexcontent-block-summary { 
        margin-top: 0;
    }

    .indexcontent-odd .indexcontent-block-summary {padding: 0 calc(40 / 390 * 100vw) 26vw calc(115 / 390 * 100vw);}
    .indexcontent-even .indexcontent-block-summary {padding: 0 calc(115 / 390 * 100vw) 26vw calc(40 / 390 * 100vw);}

    .indexcontent-block-lead { 
        font-size: calc(21 / 390 * 100vw);
        line-height: 1.667;
        margin-bottom: 10vw;
    }

    .indexcontent-block-text { 
        font-size: calc(12 / 390 * 100vw);
        line-height: 2.917;
        margin-bottom: 11.5vw;
    }

    .indexcontent-block-image img { 
        width: 100%;
    }

    .indexcontent-block-image img + img { 
        margin-top: calc(50 / 390 * 100vw);
    }

    .indexcontent-slider-list { 
        transition-timing-function: linear;
    }

    .indexcontent-slider-list .swiper-slide img { 
        width: 100%;
    }


    /* indexparallax-bottom ---------------------------------------*/
    .indexparallax-bottom { 
        height: 300px;
        margin-bottom: 17vw;
    }

    .indexparallax-bottom-bg { 
        height: 140%;
    }


    /* indexaccess ---------------------------------------*/
    .indexaccess { 
        padding-bottom: 24vw;
    }

    .indexaccess-top { 
        padding: 10vw calc(40 / 390 * 100vw) 0;
        margin-bottom: 5.5vw;
    }

    .indexaccess-top-deco { 
        left: -3vw;
        font-size: calc(75 / 390 * 100vw);
    }

    .indexaccess-top-title { 
        font-size: calc(18 / 390 * 100vw);
        line-height: 1.944;
        margin-bottom: 1.5vw;
    }

    .indexaccess-top-caption { 
        font-size: calc(11 / 390 * 100vw);
        margin-bottom: 6vw;
    }

    .indexaccess-top-text { 
        font-size: calc(11 / 390 * 100vw);
        line-height: 1.818;
    }

    .indexaccess-block { 
        display: block;
        padding-left: 0;
        margin-top: 0;
    }

    .indexaccess-block-map { 
        width: 100%;
        margin-bottom: 4vw;
    }

    .indexaccess-block-address {
        font-size: calc(10 / 390 * 100vw);
        line-height: 2;
        text-align: center;
        letter-spacing: 0.1em;
        margin-bottom: 13vw;
    }

    .indexaccess-block-summary { 
        margin-top: 0;
        padding: 0 calc(40 / 390 * 100vw);
    }

    .indexaccess-block-title { 
        font-size: calc(9 / 390 * 100vw);
        margin-bottom: 5vw;
    }

    .indexaccess-block-title::after { 
        left: 114%;
        width: calc(25 / 390 * 100vw);
    }

    .indexaccess-block-list + .indexaccess-block-title {
        margin-top: 10vw;
    }

    .indexaccess-block-list > li + li { 
        margin-top: calc(7 / 390 * 100vw);
    }

    .indexaccess-block-list > li span { 
        font-size: calc(14 / 390 * 100vw);
    }

    .indexaccess-block-list > li span small{ 
        font-size: calc(9 / 390 * 100vw);
    }

    .indexaccess-block-list.-local > li span:first-of-type {width: calc(98 / 390 * 100vw);}
    .indexaccess-block-list.-local > li span:nth-of-type(2) {width: calc(42 / 390 * 100vw);}
    .indexaccess-block-list.-local > li span:nth-of-type(3) {margin-left: 0;}
    .indexaccess-block-list.-city > li span:first-of-type {width: calc(190 / 390 * 100vw);}

    .indexaccess-block-caption { 
        font-size: calc(9 / 390 * 100vw);
        margin: 4.5vw 0 6vw;
    }

}


/* iphone5 iphoneSE用 */
@media screen and (max-width: 370px){

}