@charset "utf-8";

:root {
    --color-default: #0a0000;
    --main-keycolor: #000;
    --background-keycolor: #efefef;
    --header-height: 120px;
    --container-width: 900px;
    --container-padding: 30px;
    --font-size-base: 17px;
    --font-gothic: "Noto Sans JP", "Yu Gothic", "Meiryo", "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Arial", sans-serif;
    --wave-size: 36px;
}

body {
    min-height: 100svh;
    color: var(--color-default);
    font-family: var(--font-gothic);
    font-size: var(--font-size-base);
    font-weight: 400;
    background: #fff;
    line-height: 1.7;
    overflow-wrap: anywhere;
    word-break: normal;
    line-break: strict;
    -webkit-text-size-adjust: 100%;
}

.main-wrapper {
    position: relative;
    overflow: hidden;
}


img {
    max-width: 100%;
    width: auto;
    height: auto;
    /*image-rendering: -webkit-optimize-contrast;*/
}

img[src$=".svg"] {
    width: 100%;
}

a[href^="tel:"]:hover {
    opacity: 1;
}

@media (min-width:1024px) {

    a[href*="tel:"] {
        pointer-events: none;
        cursor: default;
        text-decoration: none;
    }

}

@media (hover: hover) {

    a:any-link:hover,
    button:enabled:hover {
        opacity: .6;
    }

}


/* グローバルヘッダー
--------------------------------------------------------------- */

#g-header {
    box-sizing: border-box;
    position: relative;
    height: var(--header-height);
    background: #FFF;
    z-index: 3;

    .inner {
        box-sizing: border-box;
        display: grid;
        align-items: center;
        max-width: 1400px;
        height: 100%;
        padding: 0 50px;
        margin: auto;
    }

}



/* グローバルロゴ
--------------------------------------------------------------- */

.g-logo {
    display: block;
    width: 230px;
}



/* スライダー - メインビジュアル
--------------------------------------------------------------- */

.slider-wrapper {
    position: relative;
    line-height: 1;
    z-index: 1;
    overflow: hidden;

    .slider-container {
        opacity: 0;
        /*transition: opacity .3s linear;*/

        &.slick-initialized {
            opacity: 1;
        }

    }

    /*
    &::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        display: block;
        height: 36px;
        background: url(../img/obj-mainview.svg) center bottom / contain repeat-x;
        margin: auto;
    }
*/

    & img {
        width: 100%;
    }

    .slick-slide {
        height: auto !important;
        -webkit-backface-visibility: hidden;
        -webkit-transform-style: preserve-3d;
    }

}



/* コンテンツ - 共通コンテナー
--------------------------------------------------------------- */

.content-block {
    position: relative;
    z-index: 2;

    .content-inner {
        position: relative;
        max-width: var(--container-width);
        margin: 0 auto;
    }

}

.mask-wave {
    mask-image: url(../img/obj-mainview.svg), linear-gradient(to bottom, transparent 0%, transparent var(--wave-size), #000 var(--wave-size), #000 100%);
    mask-size: 278px;
    margin-top: calc(-1 * var(--wave-size));
    padding-top: var(--wave-size);
}


/* ※mask-imageの影響によるトリミング対策用　*/

.content-wrapper {
    position: relative;
}

.sub-section {
    position: relative;
}

.sub-section:not(:last-child) {
    margin-bottom: 70px;
}


/* コンテンツ - 導入
--------------------------------------------------------------- */

.content-introduction {
    position: relative;
    font-size: 20px;
    font-weight: 500;
    text-align: center;
    line-height: 1.9;
    /*margin-bottom: 80px;*/
}


/* コンテンツ - 旅行セミナー
--------------------------------------------------------------- */

.style-seminar {
    --main-keycolor: #c2007b;
    --background-keycolor: #f3dfeb;
    background: #fff;

    .content-inner {
        padding-block: 50px calc(80px + var(--wave-size));
    }

}



/* コンテンツ - 旅行説明会
--------------------------------------------------------------- */

.style-briefing {
    --main-keycolor: #009fe6;
    --background-keycolor: #d9f1fb;
    background: #dcedfb;

    .content-inner {
        padding-block: 70px calc(80px + var(--wave-size));
    }

    .table-1 {
        & td {
            height: 180px;
        }
    }

}



/* コンテンツ - お土産お取り寄せフェア
--------------------------------------------------------------- */

.style-fair {
    --main-keycolor: #ca492e;
    --background-keycolor: #f2d9c7;
    background: #fff;

    .content-inner {
        padding-block: 70px calc(80px + var(--wave-size));
    }

    @media screen and (min-width:1024px) {

        .title-block-1 {
            --title-width: 750px;
        }

    }

}


/* コンテンツ - 特別企画
--------------------------------------------------------------- */

.style-special {
    --main-keycolor: #c2007b;
    --background-keycolor: #e6b9d2;
    /*background: #f3dfeb;*/
    background: #F5F7CC url(../img/bg_anniversary.png) center center repeat;

    .content-inner {
        padding-block: 80px calc(70px + var(--wave-size));
    }

    .item-prefecture {
        border-color: var(--main-keycolor) !important;
    }

}

.is-special-margin {
    margin-bottom: 65px;
}


/* コンテンツ - 瀬戸内フェア
--------------------------------------------------------------- */

.style-fair {
    --main-keycolor: #00A6B2;
    --background-keycolor: #EAEB74;
    background: #E1F1F0;

    .content-inner {
        padding-block: 70px calc(80px + var(--wave-size));
    }

    @media screen and (min-width:1024px) {

        .title-block-1 {
            --title-width: 750px;
        }

    }

}


/* コンテンツ - 就航地コラボメニュー
--------------------------------------------------------------- */

.style-collab {
    background: #fff;

    .content-inner {
        padding-block: 70px calc(190px + var(--wave-size));
    }

    .item-prefecture {
        border-color: #009fe6 !important;
    }

    .item-grid-block img {
        border: 0;
    }

}



/* コンテンツ - 仙台空港へのアクセス
--------------------------------------------------------------- */

.content-wrapper {

    .access-title {
        position: absolute;
        top: calc(-1 * var(--wave-size));
        left: 0;
        right: 0;
        width: 320px;
        margin: auto;
        z-index: 3;
    }
}

.style-access {
    color: #fff;
    background: #002b70;

    .content-inner {
        padding-block: 105px 60px;
    }

    .access-means {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 45px;
        margin-bottom: 95px;

        & a {
            display: grid;
            place-content: center;
            width: 100%;
            height: 136px;
            background: #fff;
            border-radius: 20px;

            & img {
                width: auto;
                height: 100px;
            }
        }
    }

    .company-list {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 10px 20px;
        margin-bottom: 65px;

        & a {
            display: block;
            width: 100%;
            height: 45px;
            /*background: #fff;*/
            line-height: 1;
            overflow: hidden;

            & img {
                width: 100%;
                height: 100%;
                object-fit: contain;
                object-position: center center;
            }
        }
    }

    .button-flight {
        display: grid;
        grid-template-columns: 124px auto;
        justify-content: center;
        align-items: center;
        gap: 18px;
        width: 600px;
        height: 80px;
        text-decoration: none;
        color: #000;
        font-size: 30px;
        font-weight: 900;
        background: #FFF000;
        border: 2px solid #002b70;
        border-radius: 100vmax;
        box-shadow: 4px 4px 0px 0px rgba(0, 0, 0, 1);
        letter-spacing: .2em;
        margin: 0 auto;

        &::before {
            content: "";
            display: block;
            width: 100%;
            aspect-ratio: 1/.323;
            background: url(../img/pictogram_plane.svg) center center / contain no-repeat;
        }

    }

}



/* コンテンツ - 就航地コラボメニュー
--------------------------------------------------------------- */

.flyer-section {
    position: relative;
    width: 550px;
    margin: 70px auto 0;

    .flyer-thumbnail .is-flyer {
        box-sizing: border-box;
        padding: 5px;
        background: #fff;
        box-shadow: 2px 2px 10px -4px rgba(0, 0, 0, 0.6);
    }

    .button {
        position: absolute;
        left: 0;
        right: 0;
        bottom: -50px;
        width: 408px;
        height: auto;
        margin: auto;
    }

}



/* 各種コンポーネント
--------------------------------------------------------------- */

/* - タイトル 吹き出しキャプション */
.title-balloon-caption {
    display: grid;
    grid-template-columns: 31px minmax(0, 1fr) 31px;
    justify-content: center;
    align-items: center;
    gap: 18px;
    width: fit-content;
    font-size: 34px;
    font-weight: 900;
    letter-spacing: .05em;
    line-height: 1.4;
    margin: 0 auto 15px;

    &::before,
    &::after {
        content: "";
        display: block;
        aspect-ratio: 1/1;
        background: var(--color-default);
        clip-path: polygon(0 0, 19% 0, 100% 100%, 81% 100%);
    }

    &::after {
        transform: scale(1, -1);
    }
}

/* - タイトル */
.title-block-1 {
    --title-width: 470px;
    --title-height: 110px;
    width: fit-content;
    margin: 0 auto 30px;

    &::before,
    &::after {
        content: "";
        display: block;
        height: 2px;
        border-radius: 100vmax;
        background: #000;
    }

    .title-container {

        margin: 5px 0;

        &::before,
        &::after {
            content: "";
            display: block;
            height: 4px;
            border-radius: 100vmax;
            background: #000;
        }
    }

    & h2 {

        display: grid;
        place-content: center;
        width: var(--title-width);
        height: var(--title-height);
        text-align: center;
        color: var(--main-keycolor);
        font-size: 57px;
        font-weight: 900;
        line-height: 1.4;
    }

    /* -- スタイル - コラボメニュー */

    &.is-colabo {
        --title-width: auto;
        --title-height: 200px;
        margin-bottom: 65px;

        & h2 {
            color: #009FE6;
            padding-inline: 1em;
        }
    }
}


/* - タイトル ※画像版 */

.text-image-title {
    text-align: center;
    margin: 0 auto 30px;

    & img {
        width: auto;
        height: 136px;
    }
}

.text-subtitle {
    max-width: 740px;
    color: var(--main-keycolor);
    font-size: 41px;
    font-weight: 900;
    text-align: center;
    padding-bottom: 20px;
    border-bottom: 4px dotted var(--main-keycolor);
    margin: 0 auto 25px;
    line-height: 1;
}

.text-image-caption {
    text-align: center;
    margin: 0 auto 20px;

    & img {
        width: auto;
        height: 32px;
    }
}


/* - ディスクリプション・概要 */
.content-description {
    max-width: 490px;
    text-align: justify;
    margin: 0 auto 30px;
}


/* - 写真 */
.content-photo {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    max-width: 740px;
    margin: 0 auto 50px;

    & img {
        border-radius: 50px;
        overflow: hidden;
    }

    &.is-single {
        grid-template-columns: minmax(0, 1fr);
        max-width: 490px;
    }

}



/* - 装飾イラスト用 - 包括要素 */
.illust-position-wrapper {
    position: relative;
}


/* - テーブル */
.table-1 {
    width: 100%;
    border: 5px solid var(--main-keycolor);
    table-layout: fixed;

    & th,
    & td {
        text-align: center;
        vertical-align: middle;
        font-size: 22px;
        font-weight: 500;
        padding: .2em;
        border: 2px solid var(--main-keycolor);
        line-height: 1.33;
    }

    & th {
        font-size: 27px;
        background: var(--background-keycolor);
    }

    & td {
        background: #fff;
        height: 150px;
    }

    .none {
        position: relative;
        box-sizing: border-box;
        padding: 0;
        overflow: hidden;

        & img {
            width: 100%;
            height: 100%;
        }

        &.is-heading {
            width: 134px;
        }

        &::after {
            content: "";
            position: absolute;
            top: 0;
            bottom: 0;
            width: 2px;
            height: 200%;
            background: var(--main-keycolor);
            margin: auto;
            transform: rotate(54.5deg);
        }

        &.is-cell::after {
            height: 260%;
            transform: rotate(63.5deg);
        }

    }

    .time {
        width: fit-content;
        text-align: left;
        margin: auto;
    }

    .tour-caption {
        font-size: .72em;
    }

    &+.table-1 {
        margin-top: 40px;
    }
}

.table-2 {
    width: 100%;
    max-width: 740px;
    border: 5px solid var(--main-keycolor);
    border-collapse: separate;
    border-radius: 30px;
    margin-inline: auto;
    overflow: hidden;

    & th,
    & td {
        text-align: center;
        vertical-align: middle;
        font-size: 22px;
        font-weight: 500;
        padding: 20px 25px;
        line-height: 1;
    }

    & tr:first-child th,
    & tr:first-child td {
        border-bottom: 2px solid var(--main-keycolor);
    }

    & th {
        box-sizing: border-box;
        width: 165px;
        background: var(--background-keycolor);
        border-right: 2px solid var(--main-keycolor);
    }

    & td {
        text-align: left;
        padding: 20px;
        background: #fff;
        letter-spacing: .1em;
    }

    .c-separate {
        border-bottom: 2px solid var(--main-keycolor);
    }

    /*
    .c-text-title {
        text-indent: .5em;
        letter-spacing: .5em;
    }
*/
    .c-text-date {
        font-size: 26px;
        margin-bottom: 10px;

        & span {
            font-size: 38px;
            font-weight: 700;
        }

    }

    .c-text-time {
        font-size: 24px;

        & span {
            font-size: 19px;
        }

        &.is-caption {
            font-size: .9em;
            margin-top: .5em;
        }

    }

    .c-text-venue {
        font-size: 28px;
    }

}


/* - 商品グリッドブロック */

.item-grid-block {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 60px;
    line-height: 1.27;

    & figure {
        position: relative;
        width: 100%;
        aspect-ratio: 1/1;
        overflow: hidden;
        margin-bottom: 10px;

        & img {
            box-sizing: border-box;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center center;
            border: 8px solid #fff;
        }

        .popup-caption {
            position: absolute;
            top: 0;
            left: 0;
            color: #fff;
            font-size: 13px;
            background: #E60013;
            padding: 6px 8px 7px 8px;
            line-height: 1;
            font-weight: bold;
        }

    }

    &+.item-grid-block {
        margin-top: 60px;
    }

    .item-prefecture {
        font-size: 17px;
        font-weight: 600;
        border-bottom: 1px solid #ca492e;
        padding-bottom: .3em;
        margin-bottom: .4em;
    }

    .item-property {
        font-size: 16px;
        margin-bottom: .3em;
    }

    .item-name {
        font-size: 22px;
        font-weight: 700;
        margin-bottom: .2em;
    }

    .item-price {
        font-weight: 600;
    }

    .item-price:not(:last-child) {
        margin-bottom: 0.3em;
    }

    .item-description {
        font-size: .9em;
        line-height: 1.5;
        margin-top: .6em;
    }

    .item-txt {
        font-size: 14px;
    }


    .item-floor {
        display: block;
        font-weight: 700;
        margin-bottom: .2em;
    }

    &.is-fare-margin {
        margin-top: 60px;
    }

    &.is-company-grid {

        & figure {
            aspect-ratio: 1/.692;
        }

        & a {
            display: block;
            text-decoration: none;
        }

        .item-property {
            line-height: 1.14;
            margin-top: 10px;
        }

    }

}

.price-caption {
    text-align: right;
    margin-top: 35px;

    @media print,
    screen and (min-width: 1024px) {

        &.is-pc-left {
            text-align: left;
        }
    }
}


/* - 各種ボタン */

.button-reserve {
    width: fit-content;
    margin: 10px auto 0;

    & a {
        box-sizing: border-box;
        display: grid;
        place-content: center;
        color: #fff;
        font-size: 13px;
        font-weight: 600;
        text-decoration: none;
        padding: 5px 10px;
        background: #63C4F0;
        border-radius: 9px;
        border: 1px solid #000;
        line-height: 1;
    }

}

/* - PICK UP バナー */

.pick-up-banner {
    text-align: center;
    margin: 65px auto;
}


/* グローバルフッター
--------------------------------------------------------------- */

#g-footer {
    display: grid;
    place-content: center;
    height: 150px;
    background: #fff;
}


/* 装飾 - イラスト
--------------------------------------------------------------- */

.illust-image {
    position: absolute;
    min-width: 0;
    background: center center / contain no-repeat;
    z-index: 3;

    /* - 旅行セミナー */
    &.is-seminar-1 {
        top: 30px;
        right: -85px;
        width: 210px;
        aspect-ratio: 1/.933;
        background-image: url(../img/illust_1.png);
    }

    &.is-seminar-2 {
        left: -25px;
        bottom: 100px;
        width: 114px;
        aspect-ratio: 1/1.807;
        background-image: url(../img/illust_2.png);
    }


    /* - 旅行説明会 */
    &.is-briefing-1 {
        top: -30px;
        right: calc(50vw - 500px);
        width: 165px;
        aspect-ratio: 1/1.297;
        background-image: url(../img/briefing_1.png);
    }

    &.is-briefing-2 {
        top: 498px;
        left: -5px;
        width: 100px;
        aspect-ratio: 1/.78;
        background-image: url(../img/briefing_2.png);
    }


    /* - お土産フェア */
    &.is-fair-1 {
        top: -320px;
        left: 0;
        width: 99px;
        aspect-ratio: 1/.677;
        background-image: url(../img/fair_1.png);
    }

    &.is-fair-2 {
        top: -120px;
        right: -90px;
        width: 86px;
        aspect-ratio: 1/1.395;
        background-image: url(../img/fair_2.png);
    }

    &.is-booth-1 {
        bottom: -40px;
        right: 130px;
        width: 128px;
        aspect-ratio: 1/1.742;
        background-image: url(../img/booth_1.png);
    }


    /* - 観光地ブース */
    &.is-booth-2 {
        top: 100px;
        right: 0;
        width: 157px;
        aspect-ratio: 1/1.389;
        background-image: url(../img/booth_2.png);
    }

    &.is-collab-1 {
        top: 70px;
        right: -50px;
        width: 91px;
        aspect-ratio: 1/.934;
        background-image: url(../img/collab_1.png);
    }


    /* - コラボメニュー */
    &.is-collab-2 {
        top: 45px;
        left: -65px;
        width: 118px;
        aspect-ratio: 1/.746;
        background-image: url(../img/collab_2.png);
    }

    &.is-collab-3 {
        top: 165px;
        right: -135px;
        width: 157px;
        aspect-ratio: 1/1.35;
        background-image: url(../img/collab_3.png);
    }

    /* - 瀬戸内 */

    &.is-setouchi-1 {
        width: 600px;
        aspect-ratio: 1/.7;
        top: 440px;
        left: calc(50vw - 940px);
        background-image: url(../img/bg_setouchi_1.png);
        z-index: -1;
    }

    &.is-setouchi-2 {
        /*
        bottom: 80px;
        right: calc(50vw - 1000px);
        width: 1000px;
        aspect-ratio: 1/.616;
        background-image: url(../img/bg_setouchi_2.png);
        z-index: -1;*/
        bottom: 100px;
        right: calc(50vw - 880px);
        width: 1000px;
        aspect-ratio: 1 / .616;
        background-image: url(../img/bg_setouchi_2.png);
        z-index: -1;
        /*
        @media print,
        screen and (min-width: 1024px) {
            mask-image: radial-gradient(rgb(255, 255, 255) 0%, rgba(255, 255, 255, 0) 85%);
        }
            */
    }

}


/* 追加 - イベント終了
--------------------------------------------------------------- */

.event-end-wrapper {
    position: fixed;
    inset: 0;
    display: grid;
    place-content: center;
    margin: auto;
    background: rgba(255, 255, 255, .3);
    z-index: 5;

    .event-end-message {
        width: fit-content;
        color: #fff;
        font-size: 1.3em;
        font-weight: 700;
        text-align: center;
        background: #e60013;
        padding: 1em;
        margin: auto;
    }

}


/* その他、汎用ライブラリ
--------------------------------------------------------------- */

.bd {
    font-weight: bold;
}

.mb0 {
    margin-bottom: 0 !important;
}

.pc-only-block {
    display: block;
}

.pc-only-inline {
    display: inline;
}

.sp-only-block {
    display: none;
}

.sp-only-inline {
    display: none;
}

.nowrap {
    white-space: nowrap;
}

@media screen and (max-width:1023px) {
    .pc-only-block {
        display: none;
    }

    .pc-only-inline {
        display: none;
    }

    .sp-only-block {
        display: block;
    }

    .sp-only-inline {
        display: inline;
    }
}


/* 固定メニュー用 アンカー位置調整
--------------------------------------------------------------- */

.anchor-block {
    scroll-margin-top: 130px;
    /*
    margin-top:-10px;
    padding-top:10px;
	*/
}


/* 以下、SP ※917pxベース
--------------------------------------------------------------- */

@media screen and (max-width:1023px) {

    :root {
        scrollbar-width: none;

        --header-height: 23.86vw;
        --container-width: 65.91vw;
        --container-padding: 0;
        --font-size-base: 3.64vw;
        --wave-size: 5.33vw;

    }

    :root::-webkit-scrollbar {
        display: none;
    }


    img {
        max-width: 100%;
        width: auto;
        height: auto;
    }


    /* SP グローバルヘッダー
    --------------------------------------------------------------- */

    #g-header {

        .inner {
            max-width: none;
            padding: 0;
        }

    }



    /* SP グローバルロゴ
    --------------------------------------------------------------- */

    .g-logo {
        width: 40.45vw;
        margin-inline: auto;
    }


    /* SP スライダー - メインビジュアル
    --------------------------------------------------------------- */

    .slider-wrapper {
        min-width: 0;
        aspect-ratio: 1/1.36;

        .slide-image {
            width: 100%;
            aspect-ratio: 1/1.365;
            min-width: 0;
            object-fit: cover;
            object-position: center center;
        }

    }


    /* SP コンテンツ - 共通コンテナー
    --------------------------------------------------------------- */

    .content-inner .sp-over-wrapper {
        margin-inline: -11.36vw;
    }

    .mask-wave {
        mask-image: url(../img/sp/obj-mainview.svg), linear-gradient(to bottom, transparent 0%, transparent var(--wave-size), #000 var(--wave-size), #000 100%);
        mask-size: 100vw;
    }

    .sub-section:not(:last-child) {
        margin-bottom: 11.36vw;
    }


    /* SP コンテンツ - 導入
    --------------------------------------------------------------- */

    .content-introduction {
        /*
        font-size: min(3.64vw, 16px);
        margin-bottom: min(11.36vw, 50px);
        
        & > p {
            white-space: nowrap;
        }
        */
        font-size: 3.64vw;
    }


    /* SP コンテンツ - 旅行セミナー
    --------------------------------------------------------------- */

    .style-seminar {

        .content-inner {
            max-width: none;
            padding-block: 7.95vw calc(13.64vw + var(--wave-size));
        }

    }



    /* SP コンテンツ - 旅行説明会
    --------------------------------------------------------------- */

    .style-briefing {

        .content-inner {
            padding-block: 11.36vw calc(13.64vw + var(--wave-size));
        }

        .table-1 {
            & td {
                height: 39.13vw;
            }
        }
    }



    /* SP コンテンツ - お土産お取り寄せフェア
    --------------------------------------------------------------- */

    .style-fair {

        .content-inner {
            padding-block: 9.09vw calc(13.64vw + var(--wave-size));
        }

    }



    /* SP コンテンツ - 特別企画
    --------------------------------------------------------------- */

    .style-special {

        background-size: 7px;

        .content-inner {
            /*padding-block: 11.36vw calc(18.18vw + var(--wave-size));*/
            padding-block: 11.36vw;
        }

    }

    .is-special-margin {
        margin-bottom: 7.95vw;
    }



    /* SP コンテンツ - 就航地コラボメニュー
    --------------------------------------------------------------- */

    .style-collab {

        .content-inner {
            padding-block: 13.64vw calc(18.18vw + var(--wave-size));
        }
    }


    /* SP コンテンツ - 仙台空港へのアクセス
    --------------------------------------------------------------- */

    .content-wrapper {

        .access-title {
            width: 53.18vw;
        }
    }

    .style-access {

        .content-inner {
            padding-block: 17.05vw 9.09vw;
        }

        .access-means {
            grid-template-columns: repeat(2, 1fr);
            gap: 2.27vw 2.73vw;
            margin-bottom: 9.09vw;

            & a {
                height: 21.36vw;
                border-radius: 3.18vw;

                & img {
                    height: 15.91vw;
                }

            }

        }

        .company-list {
            grid-template-columns: repeat(3, 1fr);
            gap: 1.59vw 2.27vw;
            margin-bottom: 10.23vw;

            & a {
                height: 5.91vw;
            }
        }

        .button-flight {
            grid-template-columns: 13.18vw auto;
            gap: 1.82vw;
            width: auto;
            height: 8.64vw;
            font-size: 3.18vw;
            border: 1px solid #002b70;
            box-shadow: .45vw .45vw 0px 0px rgba(0, 0, 0, 1);
            letter-spacing: .2em;

            &::before {
                aspect-ratio: 1/.323;
            }

        }

    }



    /* SP コンテンツ - 就航地コラボメニュー
    --------------------------------------------------------------- */

    .flyer-section {
        width: auto;
        margin: 13.64vw auto 0;

        .button {
            bottom: -5.91vw;
            width: 48.64vw;
        }

    }



    /* SP 各種コンポーネント
    --------------------------------------------------------------- */

    /* - SP タイトル 吹き出しキャプション */
    .title-balloon-caption {
        grid-template-columns: 3.62vw minmax(0, 1fr) 3.62vw;
        gap: 1.93vw;
        font-size: 3.86vw;
        margin: 0 auto 2.42vw;
    }


    /* - SP タイトル */
    .title-block-1 {
        --title-width: auto;
        --title-height: 16.91vw;
        width: auto;
        margin: 0 auto 5.68vw;

        &::before,
        &::after {
            height: .24vw;
        }

        .title-container {

            margin: .97vw 0;

            &::before,
            &::after {
                height: .48vw;
            }
        }

        & h2 {
            font-size: 7.95vw;
        }

        /* -- SP スタイル - コラボメニュー */
        &.is-colabo {
            --title-height: auto;
            margin-bottom: 13.64vw;

            & h2 {
                margin-block: .2em;
            }

        }

    }


    /* - SP タイトル ※画像版 */

    .text-image-title {
        margin: 0 auto 5.68vw;

        & img {
            height: 18.64vw;

            &.is-sp-2row {
                height: 29.09vw;
            }
        }
    }

    .text-subtitle {
        font-size: 5.23vw;
        padding-bottom: 1.82vw;
        border-width: .68vw;
        margin-bottom: 4.55vw;
        line-height: 1.4;
    }

    .text-image-caption {
        margin: 0 auto 1.82vw;

        & img {
            height: 3.64vw;
        }
    }


    /* - SP ディスクリプション・概要 */
    .content-description {
        max-width: none;
        margin: 0 auto 6.82vw;
    }


    /* - SP 写真 */
    .content-photo {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 4.55vw;
        max-width: none;
        margin: 0 auto 6.82vw;

        & img {
            width: 53.18vw;
            border-radius: 7.5vw;
            overflow: hidden;
        }

        &.is-single {
            grid-template-columns: minmax(0, 1fr);
            max-width: none;

            & img {
                width: 100%;
            }

        }

        &>figure:nth-of-type(2n) {
            margin-left: auto;
        }

    }


    /* - SP テーブル */

    .table-1 {
        border-width: .68vw;

        & th,
        & td {
            font-size: 3.18vw;
            padding: .3em;
            border-width: .23vw;
        }

        & td {
            padding: .6em;

            &.none.is-cell::after {
                /*
                left: 0;
                right: 0;
                width: 20%;
                height: 1px;
                transform: rotate(0deg);
                */

                transform: rotate(39deg);
            }

        }

        .none {
            width: 20.45vw;

            & img {
                max-width: none;
                width: 100%;
                height: 100%;
            }

            &.is-heading {
                width: 18.18vw;
            }

            &::after {
                width: .34vw;
                transform: rotate(55deg);
            }

        }

        &+.table-1 {
            margin-top: 6.82vw;
        }

    }

    .table-2 {
        max-width: none;
        border-width: .68vw;
        border-radius: 3.64vw;

        & th,
        & td {
            font-size: 2.73vw;
            padding: 2.27vw 3.41vw;
        }

        & tr:first-child th,
        & tr:first-child td {
            border-width: .23vw;
        }

        & th {
            width: 12.73vw;
            border-width: .23vw;
            padding-inline: 0;
        }

        & td {
            padding: 2.27vw 2.73vw;
            letter-spacing: normal;
            line-height: 1.2;
        }

        .c-separate {
            border-width: .23vw;
        }

        .c-text-date {
            font-size: 3.41vw;
            margin-bottom: 1.14vw;

            & span {
                font-size: 4.77vw;
            }

        }

        .c-text-time {
            font-size: 3.18vw;

            & span {
                font-size: 2.5vw;
            }

        }

        .c-text-venue {
            font-size: 3.64vw;
        }

    }


    /* - SP 商品グリッドブロック */

    .item-grid-block {
        grid-template-columns: repeat(2, 1fr);
        gap: 5.68vw 6.82vw;

        & figure {
            margin-bottom: 1.14vw;

            & img {
                border-width: 1.21vw;
            }

            .popup-caption {
                top: 0;
                left: 0;
                font-size: 2.27vw;
                padding: 1.14vw;
            }

        }

        .item-prefecture {
            font-size: 2.5vw;
        }

        .item-property {
            font-size: 2.27vw;
        }

        .item-name {
            font-size: 3.18vw;
        }

        .item-price {
            font-size: 2.27vw;
        }

        .item-txt {
            font-size: 2.27vw;
        }

        &.is-fare-margin {
            margin-top: 9.09vw;
        }

    }

    .price-caption {
        font-size: 2.5vw;
        margin-top: 2em;
    }


    /* - SP 各種ボタン */

    .button-reserve {
        margin: 1.14vw auto 0;

        & a {
            font-size: 2.95vw;
            padding: 1.14vw 2.27vw;
            border-radius: 2.05vw;
            border-width: .23vw;
        }

    }

    /* - SP PICK UP バナー */

    .pick-up-banner {
        max-width: none;
        margin: 7.95vw -11.36vw;
    }


    /* SP グローバルフッター
    --------------------------------------------------------------- */

    #g-footer {
        height: 27.27vw;
    }


    /* SP 装飾 - イラスト
    --------------------------------------------------------------- */

    .illust-image {

        /* - SP 旅行セミナー */
        &.is-seminar-1 {
            top: auto;
            bottom: -4vw;
            right: 2.67vw;
            width: 22.73vw;
            margin: auto;
            z-index: 3;
        }

        &.is-seminar-2 {
            top: auto;
            bottom: 3.41vw;
            left: -6.82vw;
            width: 11.82vw;
        }


        /* - SP 旅行説明会 */
        &.is-briefing-1 {
            top: -9.09vw;
            right: 9.09vw;
            width: 16.36vw;
        }

        &.is-briefing-2 {
            top: auto;
            bottom: -3.18vw;
            left: -13.64vw;
            width: 13.18vw;
        }


        /* - SP お土産フェア */
        &.is-fair-1 {
            top: -16.36vw;
            /*left: -13.64vw;*/
            left: calc(-1 * (13.64vw - 11.36vw));
            width: 10.45vw;
        }

        &.is-fair-2 {
            top: -56.82vw;
            /*right: -11.36vw;*/
            right: 0;
            width: 8.18vw;
        }

        &.is-booth-1 {
            top: auto;
            bottom: -5.68vw;
            right: 6.82vw;
            width: 16.82vw;
        }


        /* - SP 観光地ブース */
        &.is-booth-2 {
            top: 54.67vw;
            bottom: auto;
            left: -14.67vw;
            width: 14.09vw;
            transform: scale(-1, 1);
        }


        /* - SP コラボメニュー */
        &.is-collab-1 {
            top: 0;
            right: -12.27vw;
            width: 11.82vw;
        }

        &.is-collab-2 {
            top: auto;
            bottom: 2.73vw;
            left: 1.14vw;
            right: auto;
            width: 16.36vw;
        }

        &.is-collab-3 {
            bottom: 6.82vw;
            right: -14.77vw;
            width: 20vw;
        }

        /* - SP 瀬戸内 */
        &.is-setouchi-1 {
            display: none;
        }

        &.is-setouchi-2 {
            bottom: -53.14vw;
            right: calc(50vw - 154.59vw);
            width: 291.79vw;
        }

    }


    /* SP 追加 - イベント終了
--------------------------------------------------------------- */

    .event-end-wrapper {
        z-index: 5;

        .event-end-message {
            width: auto;
            font-size: 4.87vw;
            padding: 1em;
        }

    }


    /* SP 固定メニュー用 アンカー位置調整
	--------------------------------------------------------------- */

    .anchor-block {
        scroll-margin-top: 130px;
    }

}