@charset "utf-8";

:root{
	--font-notosans: 'Noto Sans JP', serif;
	--font-ten-mincho: "ten-mincho-text", serif;
    --font-times: "times-new-roman", sans-serif;
    --font-size-sp: calc(24vw / 7.5);
    --content-width-sp: calc(675vw / 7.5);
    --default-color-h-black: #2C2A29;
    --default-color-h-bg1: #f5f7fa;
    --default-color-h-bg2: #E9ECF2;
	--content-color-relax: #f9f4d9;
	--content-color-food: #ffeaea;
    --content-color-sight: #e0ecf3;
    --content-color-blue: #2fa0e1;
}

.nosp {
    display: none
}
.main {
    font-family: var(--font-notosans);
    font-size: var(--font-size-sp);
    color: var(--default-color-h-black);
    position: relative;
    & img {
        max-width: 100%;
    }
    & .container {
        width: var(--content-width-sp);
        margin: 0 auto;
    }
}
/*-----------------------------------------------
共通見出し
-----------------------------------------------*/
:is(#enjoy, #hotel, #tour, #charter) h2 {
    font-family: var(--font-ten-mincho);
    text-align: center;
    font-size: 6.0vw;
    padding-top: 7.0vw;
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 7.0vw;
    #enjoy & {background-image: url("../images/icon-star.svg");}
    #hotel & {background-image: url("../images/icon-hotel.svg");}
    #tour & {background-image: url("../images/icon-plane.svg");}
    #charter & {background-image: url("../images/icon-plane.svg");}
    margin-bottom: 24px;
}
/*-----------------------------------------------
ナビ
-----------------------------------------------*/
#gnavi {
    width: 100%;
    background-color: #f8f7f1;
    & ul {
        width: 100%;
        display: flex;
        & li {
            width: 20%;
            font-size: 2.6vw;
            font-weight: 700;
            line-height: 1.3;
            text-align: center;
            border-right: solid 1px #fff;
            &:last-child {
                border-right: none;              
            }
            & a {
                display: block;
                padding: 3vw 0;
                text-decoration: none;
                color: inherit;
            }
            &:first-child {
                & a {
                    background: url("../images/icon-flower.svg") no-repeat top 0.5vw center / 3.2vw;  
                }
            }
        }
    }
}
/*ナビ固定・位置取得*/
.fix-navi:has(.fixed) {
	height: 12.7vw;
}
#gnavi.fixed {
	position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    box-shadow: 0px 1px 2px 0px rgb(0 0 0 / 30%);
    & li a.active {
        position: relative;
        &::before {
            position: absolute;
            bottom: 1vw;
            right: 0;
            left: 0;
            margin: 0 auto;
            content: "";
            width: 94%;
            height: 2px;
            display: block;
            background-color: #888;            
        }
    }
}
/*-----------------------------------------------
MV
-----------------------------------------------*/
#mv {
	width: 100%;
    height: 160vw;
    background: url("../images/main-bg-sp.jpg") no-repeat center center / cover;
    & .title {
        padding-top: 20vw;
        width: 90vw;
        margin: 0 auto;
    }
}
@media (orientation: landscape){
    #mv {
        height: 120vw;
        & .title {
            padding-top: 14vw;
            width: 70vw;
        }
    }
}
/*-----------------------------------------------
リード
-----------------------------------------------*/
#lead {
    width: 100%;
    background-color: #cde4de;
    background-image: url("../images/lead/bg-wave.png"),url("../images/lead/bg-sp.jpg") ;
    background-repeat: no-repeat,no-repeat;
    background-position: bottom center,top center;
    background-size: 200%,100%;
    & .container {
        padding: 40px 0 96px;
    }
    & h2 {
        margin-bottom: 16px;
        & span:nth-child(1) {
            display: block;
            font-family: var(--font-ten-mincho);
            font-size: 5.0vw;
            font-weight: 400;
            line-height: 1.3;
        }
        & span:nth-child(2) {
            display: block;
            font-family: var(--font-times);
            font-size: 12vw;
            font-weight: 400;
            line-height: 1.0;
            font-style: italic;
        }        
    }
    & .lead-text {
        font-family: var(--font-ten-mincho);
        font-size: 4.0vw;
        text-align: justify;
        margin-bottom: 16px;
    }
    & .ph-box {
        margin-top: 32px;
        text-align: center;
        & h3 {
            font-family: var(--font-times);
            font-size: 6.5vw;
        }
        & p {
            font-family: var(--font-ten-mincho);
            font-size: 4.0vw;
            margin-bottom: 16px;
        }
        & .ph-list {
            display: flex;
            width: 100%;
            overflow-x: scroll;
            overflow-y: hidden;
            & li {
                width: 64vw;
                margin-right: 16px;
                & img {
                    width: 64vw;
                    max-width: 64vw;
                }
                &:last-child {
                    margin-right: 0;
                }
            }
        }
    }
}
/*-----------------------------------------
マップ
-----------------------------------------*/
#lead .map {
    margin-bottom: 16px;
}
#lead .map-info {
	width: 100%;
	border: solid 3px var(--default-color-h-black);
	background-color: #fff;
    & h3 {
        font-size: 16px;
        font-weight: 700;
        padding: 8px 16px;
        position: relative;
        border-bottom: dashed 1px var(--default-color-h-black);
        &:nth-of-type(4):not(.open) {
            border-bottom: none;
        }
        &::after {
            content: "";
            position: absolute;
            right: 10px;
            top: 30%;
            transition: all 0.2s ease-in-out;
            display: block;
            width: 8px;
            height: 8px;
            border-top: solid 2px var(--default-color-h-black);
            border-right: solid 2px var(--default-color-h-black);
            transform: rotate(135deg);
        }
        &.open::after {
            transform: rotate(-45deg);
            top: 45%;
        }
    }
    & .content {
        display: none;
        padding: 16px;
        border-bottom: solid 1px var(--default-color-h-black);
        & p {
            font-size: 14px;
            & img {
                margin-top: 8px;
            }
        }
    }
}
/*-----------------------------------------
楽しむタブ
-----------------------------------------*/
#enjoy {
    width: 100%;
    padding: 40px 0 0;
    & .acc-title {
        width: var(--content-width-sp);
        margin: 0 auto;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        padding-left: 10vw;
        background-repeat: no-repeat;
        background-position: left center;
        background-size: 7vw;
        position: relative;
        & .text1 {
            font-family: var(--font-times);
            font-weight: bold;
            font-size: 6.0vw;
            margin-right: 2vw;
        }
        & .text2 {
            font-family: var(--font-ten-mincho);
            font-size: 3.3vw;
        }
        & .text3 {
            width: 100%;
            font-family: var(--font-ten-mincho);
            font-size: 4.0vw;
            line-height: 1.3;
        }
        #relax & {background-image: url("../images/enjoy/icon-relax.svg");}
        #food & {background-image: url("../images/enjoy/icon-food.svg");}
        #sight & {background-image: url("../images/enjoy/icon-sight.svg");}
        &::after {
            content: "";
            position: absolute;
            right: 0;
            top: 35%;
            transition: all 0.2s ease-in-out;
            display: block;
            width: 12px;
            height: 12px;
            border-top: solid 2px var(--default-color-h-black);
            border-right: solid 2px var(--default-color-h-black);
            transform: rotate(135deg);
        }
        &.open::after {
            transform: rotate(-45deg);
            top: 45%;
        }
    }
}
/*-----------------------------------------
楽しむコンテンツ
-----------------------------------------*/
/*共通*/
#enjoy {
    & .acc {
		display: none;
	}
    & .tab-conts {
        width: 100%;
		#relax& {background-color: var(--content-color-relax);}
		#food& {background-color: var(--content-color-food);}
		#sight& {background-color: var(--content-color-sight);}
        padding: 16px 0;
        margin-bottom: 8px;
	}
    & h3 {
        padding-top: 32px;
        text-align: center;
        font-size: 6.8vw;
        letter-spacing: 0.05em;
        font-family: var(--font-times);
        display: flex;
        align-items: center;
        justify-content: center;
        &::before,&::after {
            content: "";
            height: 1px;
            width: 100%;
            background-color: #000;;
            margin: 0 3vw;
        }
    }
    & .h3sub {
        text-align: center;
        font-size: 3.8vw;
        font-family: var(--font-ten-mincho);
        margin-bottom: 16px;
    }
    & .intro {
        padding: 0 0 24px;
        font-family: var(--font-ten-mincho);
        & dt {
            font-size: 6.4vw;
            line-height: 1.3;
            text-align: center;
            margin-bottom: 16px;
        }
        & dd {
            font-size: 3.8vw;
        }
    }
}
/*リラクゼーション*/
#enjoy #relax {
    & .relax-main {
        width: 100%;
        margin-bottom: 24px;
        & img {
            width: 100%;
            height: 50vw;
            object-fit: cover;
        }
        & span {
            display: block;
            font-size: 3.0vw;
            line-height: 1.3
        }
    }
    & .relax-ph-list {
        display: flex;
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        & li {
            width: 64vw;
            margin-right: 16px;
            & img {
                width: 64vw;
                max-width: 64vw;
            }
            &:last-child {
                margin-right: 0;
            }
            & span {
                display: block;
                font-size: 3.0vw;
                line-height: 1.3
            }
        }
    }
}
/*フード*/
#enjoy #food {
    & .food-list {
        width: 100%;
        background: url("../images/enjoy/food-bg-sp.png") no-repeat top center / 100%;
        padding-bottom: 64px;
        & li {
            margin-bottom: 10vw;
            &:last-child {
                margin-bottom: 0;
            }
            & .obi {
                display: inline-block;
                background-color: #ffaba6;
                font-size: 4.6vw;
                font-weight: 500;
                padding: 0 2vw;
                margin-bottom: 3vw;
            }
            & h4 {
                font-size: 4.5vw;
                font-weight: 700;
                margin-bottom: 2vw;
            }
            & .text {
                width: 64vw;
                font-size: 3.3vw;
                line-height: 1.3;
                font-weight: 500;
                text-align: justify;
                -webkit-text-stroke: 3px var(--content-color-food);
                text-stroke: 3px var(--content-color-food);
                paint-order: stroke;
            }
        }
    }
}
/*観光*/
#enjoy #sight {
    & .sight-ph-list {
        display: flex;
        width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        & li {
            width: 64vw;
            margin-right: 16px;
            & img {
                width: 64vw;
                max-width: 64vw;
            }
            &:last-child {
                margin-right: 0;
            }
            & .detail {
                & dt {
                    margin-bottom: 8px;
                    & span:nth-child(1) {
                        font-family: var(--font-times);
                        font-size: 4.6vw;
                        font-style: italic;
                    }
                    & span:nth-child(2) {
                        display: block;
                        font-size: 3.6vw;
                        font-weight: 700;
                    }
                }
                & dd {
                    font-size: 3.6vw;
                    text-align: justify;
                }
            }
        }
    }
}
/*-----------------------------------------------
テーマパーク
-----------------------------------------------*/
#themepark {
    background-color: #fff;
    padding: 40px 0;
    position: relative;
    & h2 {
        position: absolute;
        top: 8px;
        right: 0;
        left: 0;
        text-align: center;
        z-index: 100;
        & img {
            width: 150px;
        }
    }    
    & .container {
        border: solid 3px #222;
        padding: 48px 3vw 16px;
    }
    & .park-main {
        width: 100%;
        height: 50vw;
        position: relative;
        & img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        & .al {
            position: absolute;
            left: -2vw;
            bottom: -5vw;
            width: 50vw;
        }
    }
    & h3 {
        padding: 24px 0;
        text-align: center;
        & span:nth-child(1) {
            display: block;
            font-size: 4.0vw;
            font-weight: 700;
        }
        & span:nth-child(2) {
            display: block;
            font-size: 6.0vw;
            font-weight: 900;
            color: var(--content-color-blue);
        }        
    }
    & .park-text {
        font-size: 3.8vw;
        text-align: justify;
        padding: 16px 0 32px;
    }
    & .acc {
		display: none;
	}
    & .acc-btn {
        text-align: center;
        background-color: var(--content-color-blue);
        color: #fff;
        font-size: 3.6vw;
        padding: 8px 0;
        width: 256px;
        margin: 0 auto;
        position: relative;
        &::after {
            content: "";
            position: absolute;
            right: 10px;
            top: 35%;
            transition: all 0.2s ease-in-out;
            display: block;
            width: 10px;
            height: 10px;
            border-top: solid 2px #fff;
            border-right: solid 2px #fff;
            transform: rotate(135deg);
        }
        &.open::after {
            transform: rotate(-45deg);
            top: 45%;
        }
    }
}
#themepark .slider-conts {
    margin: 0 8px;
    & .detail {
        padding-top: 8px;
        & .cate {
            font-size: 3.0vw;
            letter-spacing: 0.1em;
            font-weight: 700;
            color: var(--content-color-blue);
        }
        & .title {
            font-size: 4.0vw;
            line-height: 1.3;
            font-weight: 700;
            margin-bottom: 8px;
        }
        & .text {
            font-size: 3.4vw;
            text-align: justify;
        }
    }
}
/*-----------------------------------------------
ホテル 全体＆ナビ
-----------------------------------------------*/
#hotel {
    width: 100%;
    padding: 40px 0 0;
    background-color: var(--default-color-h-bg1);
    & .acc {
		display: none;
        padding: 16px 0;
	}
    & .acc-title {
        display: flex;
        align-items: center;
        padding: 10px 10vw 10px 5vw;
        background-color: #e0e9f5;
        position: relative;
        & img {
            width: 18vw;
            margin-right: 2vw;
            border-radius: 4px;
        }
        & span {
            font-family: var(--font-ten-mincho);
            font-size: 4.0vw;
        }
        &::after {
            content: "";
            position: absolute;
            right: 5vw;
            top: 35%;
            transition: all 0.2s ease-in-out;
            display: block;
            width: 12px;
            height: 12px;
            border-top: solid 2px var(--default-color-h-black);
            border-right: solid 2px var(--default-color-h-black);
            transform: rotate(135deg);
        }
        &.open::after {
            transform: rotate(-45deg);
            top: 45%;
        }
    }
    & .hotel-wrap {
        margin-bottom: 8px;
    }
}

/*-----------------------------------------------
ホテル 内容
-----------------------------------------------*/
#hotel {
    & h3 {
        text-align: center;
        margin: 16px 0;
        & span:nth-child(1) {
            display: inline-block;
            border-bottom: solid 1px var(--default-color-h-black);
            padding: 0 1vw;
            font-size: 7.0vw;
            line-height: 1.3;
            font-family: var(--font-times);
            font-style: italic;
        }
        & span:nth-child(2) {
            display: block;
            font-size: 3.5vw;
            font-family: var(--font-ten-mincho);
        }
        &::before {
            content: "";
            height: 6vw;
            display: block;
            margin: 0 auto;
            background: url("../images/icon-hotel-title.svg") no-repeat top center;
            background-size: contain;
        }
    }
    & .hotel-main {
        width: 100%;
        margin-bottom: 24px;
        & img {
            width: 100%;
            height: 50vw;
            object-fit: cover;
        }
    }
    & .intro {
        margin-bottom: 24px;
        font-family: var(--font-ten-mincho);
        & dt {
            padding: 0 5vw;
            font-size: 4.8vw;
            line-height: 1.3;
            margin-bottom: 16px;
        }
        & dd {
            font-size: 3.8vw;
        }
    }
    & .data-box {
        margin-bottom: 16px;
        & h4 {
            font-family: var(--font-ten-mincho);
            font-size: 4.0vw;
        }
        & .data-text {
            background-color: #d9dee6;
            padding: 2vw 3vw;
            font-size: 3.2vw;
        }
    }
    & .room-box {
        margin-bottom: 16px;
        & h4 {
            font-family: var(--font-ten-mincho);
            font-size: 4.0vw;
        }
        & .room-slider {
            background-color: #fff;
            padding: 16px 24px;
            & .slider-conts {
                & .room-text-wrap {
                    & h5 {
                        font-size: 4.2vw;
                        font-weight: 700;
                    }
                    & .room-text {
                        font-size: 3.5vw;
                        margin-bottom: 16px;
                    }
                    & .room-note {
                        display: inline-block;
                        background-color: var(--default-color-h-bg2);
                        font-size: 3.2vw;
                        padding: 0 1vw;
                    }
                }
            }
        }
    }
    & .ph-box {
        padding-bottom: 32px;
        & .ph-list {
            display: flex;
            width: 100%;
            overflow-x: scroll;
            overflow-y: hidden;
            & li {
                width: 64vw;
                margin-right: 16px;
                & img {
                    width: 64vw;
                    max-width: 64vw;
                }
                &:last-child {
                    margin-right: 0;
                }
            }
        }
    }
}
/*モーベンピック　ファミリー*/
#hotel {
    .family-ttl {
        text-align: center;
        padding: 16px 0;
        & img {
            width: 40vw;
            margin-bottom: 8px;
        }
        & h4 {
            font-size: 5.6vw;
            font-weight: 900;
            color: var(--content-color-blue);
            margin-bottom: 8px;
        }
        & p {
            text-align: left;
            font-size: 3.6vw;
        }
    }
    .slick-slider {
        padding-bottom: 32px;
    }
    .slider-conts {
        margin: 0 8px;
    }
}
/*-----------------------------------------------
おすすめツアー
-----------------------------------------------*/
#tour,#charter {
    width: 100%;
    padding: 40px 0;
    & h3 {
        font-size: 3.8vw;
        font-weight: 500;
        text-align: center;
        padding: 4px 2vw;
        background-color: #002f6f;
        color: #fff;
        margin-bottom: 16px;
        &:not(:first-of-type) {
            margin-top: 32px;
        }
    }
    & .more-btn {
        text-align: center;
        padding-top: 32px;
        & a {
            background-color: #333;
            color: #fff;
            font-size: 3.6vw;
            font-weight: 700;
            text-align: center;
            width: 80vw;
            padding: 3vw 0;
            text-decoration: none;
            display: inline-block;;
            border-radius: 100px;
            &::after {
                font-family: 'Material Symbols Rounded';
                content: "\e5cc";
                margin-left: 5px;
                display: inline-block;
                transform: translateY(2px);
            }
        }
    }
    & .bnr-area {
        text-align: center;
        margin-top: 32px;
        & h4 {
            font-size: 5.0vw;
            font-weight: 700;
            margin-bottom: 1vw;
        }
        & a {
            display: block;
        }
    }
}
#charter {
    background-color: #fffad9;
}
/*-----------------------------------------------
トップへ戻るボタン
-----------------------------------------------*/
#footlink {
	width: 100%;
	background-color: #fffad9;
	padding: 0 0 40px;
	text-align: center;
	& .btn {
        text-align: center;
        & a {
            background-color: #875c0b;
            color: #fff;
            font-size: 3.6vw;
            text-align: center;
            width: 80vw;
            padding: 3vw 0;
            text-decoration: none;
            display: inline-block;;
            border-radius: 100px;
            &::after {
                font-family: 'Material Symbols Rounded';
                content: "\e5cc";
                margin-left: 5px;
                display: inline-block;
                transform: translateY(2px);
            }
        }
    }
}
/*-----------------------------------------------
スライダー調整
-----------------------------------------------*/
.main {
    & .slick-prev, .slick-next {
        top: 42%;
        width: 35px;
        height: 35px;
        z-index: 100;
    }
    & .slick-prev {
        left: -5%;
    } 
    & .slick-next {
        right: -5%;
    }
    & .slick-prev:before, & .slick-next:before {
        color: #999;
        font-size: 36px;
    }
    & .slick-dots {
        position: static;
    }
    & .slick-dots li button:before {
        font-size: 12px;
    }
    & .slick-dotted.slick-slider {
        margin-bottom: 0;
    }
    & .slick-dots > li:first-child:last-child {
        display: none;
    }
}

/*------------------------------------------------
	ページトップボタン
--------------------------------------------------*/
.goTop{
    position: fixed;
    bottom: 8px;
    right: 8px;
    z-index: 100;
}
.goTop a{
    width: 48px;
    height: 48px;
	display: flex;
    border: none;
    outline: none;
    cursor: pointer;
    transition: .2s ease-out;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: rgba(105, 113, 128, .5);
    text-decoration-line: none;
}
.goTop a p{
	color: #fff;
    font-size: 24px;
    line-height: 1;
    font-family: 'Material Symbols Rounded';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -webkit-font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;
}

/*------------------------------------------------
	パンくず
--------------------------------------------------*/

.ui-static-breadcrumb {
    overflow-x: auto;
    overflow-y: hidden
}

.ui-static-breadcrumb-list {
    display: flex;
    padding: 8px 16px;
    gap: 8px;
    width: max-content
}

.ui-static-breadcrumb-item {
    list-style: none;
    display: flex;
    align-items: center;
    color: #2c2a29;
    font-size: 12px;
    gap: 11px
}

.ui-static-breadcrumb-link {
    text-decoration: none;
    color: #697180;
    transition: color .3s ease-out;
    display: flex;
    align-items: center;
    gap: 4px
}
.ui-static-breadcrumb-link i {
	font-size: 12px;
    color: #acb5bf;
    transition: .2s ease-out;
    font-family: 'Material Symbols Rounded';
    font-weight: normal;
    font-style: normal;
    /*font-size: 24px;*/
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -webkit-font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;
	font-variation-settings: "FILL" 1, "wght" 700, "GRAD" 200, "opsz" 48;
}

.ui-static-breadcrumb-link:hover,.ui-static-breadcrumb-link.focused {
    color: #3064d5
}

.ui-static-breadcrumb-link:hover .ui-static-icon,.ui-static-breadcrumb-link.focused .ui-static-icon {
    color: #3064d5
}

/*------------------------------------------------
	検索調整
--------------------------------------------------*/
#searchArea select {
	color: #222;
}