@charset "UTF-8";
/*共通部分*/
    body {
        /*background-color: #fffbef;*/
        color: #222;
    }
    a:hover {
        opacity: 0.7;
    }
    #faq a {
        text-decoration: none;
    }
    #faq  {
        max-width: 1366px;
        margin: 145px auto 120px;
        font-size: 16px;
        line-height: 1.65;
        font-family: "Noto Sans JP", sans-serif;
    }
    .faq__inner {
        padding: 0 4%;
    }
    #faq h2 {
        font-size: 24px;
        text-align: center;
        background-color: #b0d4b9;
        padding: 23px 0;
        font-weight: bold;
        margin-bottom: 13px;
    }
    #faq h3 {
        font-size: 18px;
        background-color: #eee;
        padding: 15px 0;
        border-left: 24px solid #b0d4b9;
        padding-left: 24px;
        margin-bottom: 15px;
        font-weight: bold;
    }
/*宿泊に関して Accommodation*/
    #accommodation {
        margin-bottom: 90px;
    }
    #accommodation__area {
        max-width: 1026px;
        margin: 0 auto 80px;
    }
    .step__area {
        max-width: 1100px;
        margin: 0 auto 56px;
    }
    .step {
        display: flex;
        padding: 18px 18px 20px;
        justify-content: space-between;
        margin-bottom: 45px;
        border: 1px solid #40ad67;
        position: relative;
    }
    .triangle::after {
        content: "";
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        bottom: -50px;
        border: 16px solid transparent;
        border-top: 20px solid #40ad67;
    }
    .step__ttl {
        width: 200px;
    }
    .step__ttl-1 {
        width: 144px;
    }
    .step__ttl-2 {
        width: 167px;
    }
    .step__ttl-3 {
        width: 183px;
    }
    .step__ttl-4 {
        width: 188px;
    }
    .resavation__link {
        background-color: #e4772e;
        display: inline-block;
        color: #fff;
        padding: 10px 30px;
        margin: 0.3em 0;
    }
    .step__txt {
        width: calc(100% - 220px);
        margin-top: 12px;
    }
    .step__txt p:first-child {
        font-weight: 500;
    }
    .step__txt-note {
        font-size: 14px;
        margin-top: 0.2em;
    }
    .cc {
        max-width: 722px;
        margin: 0 auto;
        text-align: center;
        margin-bottom: 36px;
    }
    .cc__ttl {
        background-color: #D9EFE1;
        border: 1px solid #40ad67;
        padding: 0.7em 10px;
    }
    .cc__ttl h5 {
        font-weight: bold;
        font-size: 19px;
    }
    .cc__txt {
        border: 1px solid #40ad67;
        border-top: none;
        font-size: 17px;
        padding: 0.8em 10px;
        line-height: 1.7;
        font-weight: 500;
    }
    /*@ドメイン部分*/
    .domain::before {
        content: '@';
     }
     .domain-small {
        font-size: 12px;
     }
/*QA部分*/
    .qa li {
        border-top: solid 1px #ccc;
        font-size: 16px;
        font-weight: normal;
    }
    .qa li:first-child {
        border-top: none;
    }
    .qa li:last-child {
        border-bottom: solid 1px #ccc;
    }
    .label {
        cursor:pointer;
        padding: 10px 15px 10px 55px;
        position: relative;
        transition: .5s;
    }
    .label:hover {
        background-color: #e5f0ff;
    }
    /*
    ラベル右側のアイコン「＋」を設定
    beforeが横棒
    afterが縦棒
    */
    .label::before,
    .label::after {
        content: '';
        width: 20px;
        height: 1px;
        background: #000;
        position: absolute;
        top: 50%;
        right: 20px;
        transform: translateY(-50%);
    }
    .label::after {
        transform: translateY(-50%) rotate(90deg);
        transition: 0.5s;
    }
    /*アコーディオンメニューが開いている場合*/
    .label.open {
    /* ラベルの背景色を変更 */
        background-color: #e5f0ff;
    }
    .label.open::before {
    /* ラベルアイコンの横棒を非表示 */
        opacity: 0;
    }
    .label.open::after {
    /* ラベルアイコンの縦棒を横向きに回転 */
        transform: rotate(180deg);
    }
    /*
    アコーディオンメニューのコンテンツ部分は、「display: none;」で非表示にしておく。
    ラベルクリック時にjQueryの「  $(this).next().slideToggle();」で表示に切り替わる
    */
    .detail {
        border-top: solid 1px #ccc;
        padding: 10px 15px 10px 55px;
        display: none;
        position: relative;
        background-color: #fff5f4;
    }
    .detail__inner a {
        color: #CD7461;
        border-bottom: 1px solid #CD7461;
    }
    .detail table {
        width: 100%;
    }
    .detail table tbody tr td ,.detail table tbody tr th{
        border: 1px solid #777;
        text-align: center;
        padding: 0.2em;
        vertical-align: middle;
    }
    .detail table tbody tr th {
        font-weight: normal;
        background-color: #ef9e8c;
        border: 1px solid #777;
    }
    .detail table tbody .table-left {
        width: 20%;
    }
    .detail table tbody .table-right {
        width: 80%;
    }
    .table__detail {
        text-align-last: left;
    }
    .detail__inner::before {
        position: absolute;
        content: "";
        width: 30px;
        height: 30px;
        background-image: url(../img/answer.webp);
        background-size: contain;
        display: inline-block;
        left: 10px;
    }
    .label__inner::before {
        position: absolute;
        content: "";
        width: 30px;
        height: 30px;
        background-image: url(..//img/question.webp);
        background-size: contain;
        display: inline-block;
        left: 10px;
    }
    /*accommodationのQA部分*/
        .grad-wrap {
            position: relative;
        }
        .grad-btn::before {
            content: "続きを読む";
            position: absolute;
            left: 50%;
            z-index: 10;
            transform: translate(-50%, -50%);
            background-color: #eee;
            padding: 8px 16px;
            border-radius: 8px;
            bottom: -70px;
        }
        .grad-item {
            position: relative;
            overflow: hidden;
            height: 240px; /*隠した状態の高さ*/
        }
        .grad-item::before {
            display: block;
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 45px; /*グラデーションで隠す高さ*/
            background: -webkit-linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 50%, #fff 100%);
            background: -moz-linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 50%, #fff 100%);
            background: -o-linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 50%, #fff 100%);
            background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 50%, #fff 100%);
                /*
            background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 50%, #fff 100%);
            background: linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 50%, #fff 100%);
            */
            content: "";
            z-index: 2;
        }
        .grad-trigger {
            display: none; /*チェックボックスは常に非表示*/
        }
        .grad-trigger:checked ~ .grad-btn::before {
            content: "閉じる"; /*チェックされていたら、文言を変更する*/
        }
        .grad-trigger:checked ~ .grad-item {
            height: auto; /*チェックされていたら、高さを戻す*/
        }
        .grad-trigger:checked ~ .grad-item::before {
            display: none; /*チェックされていたら、grad-itemのbeforeを非表示にする*/
        }

/*国内ツアー Domestic*/
    #domestic {
        margin-bottom: 30px;
    }
/*金券に関して Vouchers*/
    #vouchers {
        margin-bottom: 30px;
    }
/*その他 Others*/
@media (min-width: 769px) {
    .sp-show {
        display: none;
    }
}


/*-------------------------------------------
SP
-------------------------------------------*/
@media screen and (max-width: 768px) {
    /*共通部分*/
    #faq {
        font-size: 0.9rem;
        margin-top: 0;
        margin-bottom: 70px;
    }
    /*QA部分*/
        .qa li {
            font-size: 14px;
        }
        .detail dl {
            flex-direction: column;
        }
        .detail dt {
            width: 100%;
            margin-bottom: 10px;
        }
        .detail dd {
            width: 100%;
            padding-left: 10px;
        }
        .label__inner::before {
            left: 7px;
        }
        .detail__inner::before {
            left: 7px;
            width: 26px;
            height: 26px;
        }
        .label::before, .label::after {
            right: 15px;
            width: 17px;
        }
        .label {
            padding: 10px 40px 10px 45px;
        }
        .detail {
            padding: 10px 15px 10px 45px;
        }
        .grad-item::before {
            height: 85px;
        }
        .label__inner::before {
            width: 26px;
            height: 26px;
        }
    /*宿泊に関して Accommodation*/
        #faq h3 {
            padding-top: 18px;
            padding-bottom: 18px;
            font-size: 18px;
        }
        .step {
            flex-wrap: wrap;
            margin-bottom: 40px;
        }
        .step__ttl ,.step__txt {
            width: 100%;
        }
        .triangle::after {
            bottom: -45px;
            border: 13px solid transparent;
            border-top: 17px solid #40ad67;
        }
        .cc__txt {
            font-size: 16px;
        }
    /*国内ツアー Domestic*/
    /*金券に関して Vouchers*/
    /*その他 Others*/
}
/*==add 20240705==*/
.tab {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    margin-bottom: 20px;
}

.tab li {
    width: 20%;
}

.tab li .tab-link {
    display: block;
    background: #c2dfed;
    text-decoration: none;
    margin: 0 2px;
    padding: 8px 14px 8px 24px;
    color: #2e8ae4;
    position: relative;
    margin-right: 27px;
    border-radius: 2px 0 0 2px;
    text-align: center;
}

.tab li .tab-link::after {
    content: "";
    position: absolute;
    display: inline-block;
    border-right: 20px solid transparent;
    border-bottom: 43px solid #c2dfed;
    bottom: 0;
    right: -20px;
}

/* liにactiveクラスがついた時の形状 */
.tab li.active .tab-link {
    background: #2e8ae4;
    color: #fff;
    font-weight: bold;
    padding: 8px 14px 8px 24px;
    margin-right: 27px;
    border-radius: 2px 0 0 2px;
    text-align: center;
}

.tab li.active .tab-link::after {
    content: "";
    position: absolute;
    display: inline-block;
    border-right: 20px solid transparent;
    border-bottom: 43px solid #2e8ae4;
    bottom: 0;
    right: -20px;
}

/* エリアの表示非表示と形状 */
.area {
    display: none; /* はじめは非表示 */
    opacity: 0; /* 透過0 */
    background: #fff;
}

/* areaにis-activeというクラスがついた時の形状 */
.area.is-active {
    display: block; /* 表示 */
    animation-name: displayAnime; /* ふわっと表示させるためのアニメーション */
    animation-duration: 1s;
    animation-fill-mode: forwards;
}

@keyframes displayAnime {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@media screen and (max-width: 768px) {
    .tab li .tab-link {
        margin-bottom: 0.5em;
        padding: 5px;
        font-size: 15px;
        margin-right: 0;
        border-radius: 2px;
    }

    .tab li .tab-link::after {
        display: none;
    }

    .tab li.active .tab-link {
        padding: 8px 10px 8px 10px;
        margin-right: 0;
        border-radius: 2px;
    }

    .tab li.active .tab-link::after {
        display: none;
    }

    .tab li {
        width: auto;
    }
}

@media screen and (max-width: 500px) {
    .tab {
        justify-content: space-between;
    }
}
