/* ###TOP###*/

/* 共通疑似スタイル--------------------------------------------------- */
#main_img::before, #main_img::after, #contents3::before {
    content: '';
    position: absolute;
    display: block;
    background-repeat: no-repeat;
    z-index: 1;
    pointer-events: none;
}
/* 共通疑似スタイル--------------------------------------------------- */




/* FV----------------------------------------------------- */
.main_title {
    font-family: var(--font_zenmin);
    text-shadow: 3px 4px 8px #000000;
}

#page01_tourtop #main_img .main_title {
    transform: translate(-50%, -50%) scale(1.1);
    filter: blur(5px);
    transition: 1.5s;
    z-index: 1;
    font-size: -webkit-calc(1rem + 25px);
    /*font-size: calc(1rem + 25px);*/
    font-size: clamp(23px, 2.5vw, 26px);
}

    #page01_tourtop #main_img .main_title.active {
        transform: translate(-50%, -50%) scale(0.8);
        filter: blur(0);
        opacity: 1;
    }

#page01_tourtop #main_img .main_logo {
    transform: translate(-50%, -150%) scale(1.1);
    filter: blur(5px);
    transition: 1.5s;
    z-index: 1;
}

    #page01_tourtop #main_img .main_logo.active {
        transform: translate(-50%, -150%) scale(0.8);
        filter: blur(0);
        opacity: 1;
    }

.main_title {
    text-shadow: 0px 0px 15px var(--color4);
}

.main_logo {
    max-width: 800px;
    width: 45%;
}

/*FV 予約ボタン-----------------------------------------------------*/
.reservation_button {
    display: inline-block;
    background-color: #2d6a4f; /* 今のサイトのグリーンに合わせた色 */
    color: #fff;
    padding: 15px 30px;
    border-radius: 50px;
    font-size: 18px;
    font-weight: bold;
    text-decoration: none;
    transition: background-color 0.3s;
}

    .reservation_button:hover {
        background-color: #1b4332; /* 少し濃くしてホバー感出す */
    }

/* FV 検索フォーム----------------------- */


#search_form {
    bottom: 5%;
}

.mountain_hut, .form_box {
    border-radius: 10px 10px 0px 0px;
}

    .form_box input,
    .form_box select {
        border: none;
        box-sizing: border-box;
        background: transparent;
    }

    .form_box button {
        border: none;
        cursor: pointer;
    }

#tour-link {
    text-decoration: none;
    border-radius: 4px;
}

.form_box select, .form_box input {
    letter-spacing: 0.05em;
}

.form_box.bg_color1 {
    background: var(--color1_opa09);
}

.form_box.bg_white {
    background: var(--color2_opa09);
}

.form_contents02 {
    background: var(--color2_opa09) !important;
    filter: drop-shadow(0px 5px 5px var(--color1_opa01));
}

.form_box h5, .form_box a {
    font-size: clamp(14px, 1vw, 17px);
}

.search_btn img {
    padding-bottom: 3px;
}

.form_box.search_btn {
    background: transparent;
    border: none;
    padding: 10px 0;
}

/* カレンダー非表示 */
.form_check_box input::-webkit-calendar-picker-indicator {
    display: none;
}

/* クリック範囲 */
.select_wrapper {
    background: rgba(255, 255, 255, 0.6);
    border: solid 2px rgba(255, 255, 255, 0.7);
    border-radius: 0px;
    cursor: pointer;
    box-sizing: border-box;
}

    .select_wrapper select, .select_wrapper input {
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        background: transparent;
        font-size: clamp(14px, 1vw, 15px);
        font-weight: bold;
        padding: 10px 25px;
        border: none;
        cursor: pointer;
    }

    .select_wrapper input {
        padding: 8px 25px;
    }

    .select_wrapper span {
        position: absolute;
        right: 7px;
        pointer-events: none;
    }

    .select_wrapper img {
        left: 7px;
        top: 52%;
        transform: translateY(-50%);
    }

.form_box img,
.form_box span {
    pointer-events: none;
}

input#checkin, input#checkout {
    padding-right: 0px;
}

input#people {
    padding-right: 10px;
    max-width: 150px;
}

/* search_form */

/* レスポンシブ対応（例） */
@media (max-width: 768px) {
    .form_box {
        margin-bottom: 10px;
    }

        .form_box label {
            font-size: 12px;
        }

        .form_box input,
        .form_box select,
        .form_box button {
            font-size: 12px;
            padding: 8px;
        }
}
/* FV 検索フォーム----------------------- */
/* FV----------------------------------------------------- */



/* contents2 【山小屋とキャンプ場】----------------------------------------------- */
/* slide---------------------------------------------- */
/* 背景画像調整-------------- */
#contents2 .slick-box .box_img {
    height: clamp(520px,70vh,1020px);
    margin: 0;
}

h2.font_min {
    line-height: 1.2;
}
/* レスポンシブ */
@media (min-aspect-ratio: 16/7) {
    #contents2 .slick-box .box_img {
        height: clamp(calc(520px + 20px), calc(70vh + 20px), calc(1020px + 20px));
    }

    .contents_right {
        padding: 50px;
    }
}

@media (max-aspect-ratio: 16/8) {
    #contents2 .slick-box .box_img {
        height: clamp(calc(520px + 20px), calc(70vh + 20px), calc(1020px + 20px));
    }

    .contents_right {
        padding: 50px;
    }
}

@media (max-aspect-ratio: 16/9) {
    #contents2 .slick-box .box_img {
        height: clamp(calc(520px + 50px), calc(70vh + 50px), calc(1020px + 50px));
    }
}

@media (max-aspect-ratio: 16/10) {
    #contents2 .slick-box .box_img {
        height: clamp(calc(520px + 100px), calc(70vh + 100px), calc(1020px + 100px));
    }
}

@media (max-aspect-ratio: 16/11) {
    #contents2 .slick-box .box_img {
        height: clamp(calc(520px + 150px), calc(70vh + 150px), calc(1020px + 150px));
    }
}

@media (max-aspect-ratio: 16/12) {
    #contents2 .slick-box .box_img {
        height: clamp(calc(520px + 200px), calc(70vh + 200px), calc(1020px + 200px));
    }
}
/* レスポンシブ */

/* 1520-------------------------------- */
@media screen and (max-width: 1600px) {
    .contents_right {
        padding: 70px;
    }

    #contents2 .slick-box .box_img {
        height: clamp(calc(520px + 50px), calc(70vh + 50px), calc(1020px + 50px));
    }
}

/* 1100-------------------------------- */
@media screen and (max-width: 1100px) {
    .contents_right {
        padding: 50px;
    }

    #contents2 .slick-box .box_img {
        height: clamp(calc(520px + 50px), calc(70vh + 50px), calc(1020px + 50px));
    }
}

@media (max-aspect-ratio: 16/20) {
    #contents2 .slick-box .box_img {
        height: clamp(400px, 50vh, 600px);
    }
}
/* @media (orientation: portrait) and (max-width: 1100px) {
  #contents2 .slick-box .box_img {
    height: clamp(calc(300px + 0px), calc(40vh + 0px), calc(600px + 0px));
}
} */
/* 背景画像調整-------------- */

/*--- arrow dot-------------------*/
.link_type_slick .slick-box .prev, .slick-box .next {
    display: block;
    cursor: pointer;
    position: absolute;
    bottom: 3%;
    z-index: 1;
}


#contents2 .link_type_slick .slick-box .prev, #contents2 .slick-box .next {
    box-shadow: 0px 0px 10px var(--color3_opa02);
}

.link_type_slick .slick-box .prev {
    left: 2%;
}

.link_type_slick .slick-box .next {
    left: calc(50px + 2%);
}
/* Dots */
#contents2 .link_type_slick .slick-dots {
    position: absolute;
    bottom: 5%;
    display: block;
    left: calc(50px + 7%);
}

    #contents2 .link_type_slick .slick-dots li {
        position: relative;
        display: inline-block;
        cursor: pointer;
    }

        #contents2 .link_type_slick .slick-dots li button {
            font-size: 0;
            display: block;
            width: 20px;
            height: 30px;
            padding: 5px;
            cursor: pointer;
            color: transparent;
            border: 0;
            outline: none;
            background: transparent;
            text-shadow: 0px 0px 10px var(--black);
        }

            #contents2 .link_type_slick .slick-dots li button:hover,
            #contents2 .link_type_slick .slick-dots li button:focus {
                outline: none;
            }

                #contents2 .link_type_slick .slick-dots li button:hover:before,
                #contents2 .link_type_slick .slick-dots li button:focus:before {
                    opacity: 1;
                }

            #contents2 .link_type_slick .slick-dots li button:before {
                font-family: 'slick';
                font-size: 10px;
                position: absolute;
                content: '●';
                text-align: center;
                opacity: .25;
                color: var(--white);
                -webkit-font-smoothing: antialiased;
                -moz-osx-font-smoothing: grayscale;
            }

        #contents2 .link_type_slick .slick-dots li.slick-active button:before {
            opacity: .75;
            color: var(--white);
        }

/* 最後まで行ったら、矢印透過する */
.link_type_slick .slick-disabled {
    opacity: 0.3;
}

.link_type_slick .slick-track {
    display: flex;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* ---------- スマートフォン ---------- */
@media screen and (max-width: 667px) {

    #contents5 h3 .icon_title, #contents6 h3 .icon_title, #contents5 h3 span.width_90per, #contents6 h3 span.width_90per {
        width: 80% !important;
    }


    .link_type_slick .slick-container {
        padding-left: 0;
        padding-right: 0;
    }

    .link_type_slick .slick-box .prev {
        left: -8px;
    }

    .link_type_slick .slick-box .next {
        right: -8px;
    }
    /* 両サイドの画像を透過 */
    .link_type_slick02 .slick-initialized .slick-slide {
        opacity: 0.1;
    }
    /* センター画像を非透過 */
    .link_type_slick .slick-initialized .slick-slide.slick-center {
        opacity: 1;
    }
}
/* slide---------------------------------------------- */

/* contents2タイトル */
.con_r_title {
    font-size: clamp(20px,1.5vw,50px);
}
/* contents2 【山小屋とキャンプ場】----------------------------------------------- */




/* contents3 【山域から探す】----------------------------------------------- */
/*#contents3{
  z-index: 0;
  background-position: top 10% right 350%;
  background-size: 110%;
}*/
#contents3::before {
    background: rgb(47,59,99);
    background: linear-gradient(90deg, rgba(47,59,99,1) 0%, rgba(47,59,99,1) 55%, rgba(47,59,99,0.18) 80%, rgba(47,59,99,0) 100%);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: -1;
}

.con3_title, .con3_title_r {
    font-size: clamp(23px, 1.5vw, 50px);
}

.con3_title_r {
    right: 4%;
    top: 4%;
}

.con3_link_box a {
    font-size: clamp(18px, 1.2vw, 32px);
    position: absolute;
}

    .con3_link_box a:hover img {
        transform: translateX(5px);
    }

/* 山域リンク位置調整--------------*/
.link1 {
    position: absolute;
    top: 25%;
    left: 20%;
    transform: translate(-50%,-50%);
}

.link2 {
    position: absolute;
    top: 38%;
    left: 20%;
    transform: translate(-50%,-50%);
}

.link3 {
    position: absolute;
    top: 64%;
    left: 20%;
    transform: translate(-50%,-50%);
}

.link4 {
    position: absolute;
    bottom: -1%;
    left: 21%;
    transform: translate(-50%, 0%);
}

.link5 {
    position: absolute;
    bottom: -10%;
    left: 50%;
    transform: translate(0%, -50%);
}
/* 山域リンク位置調整--------------*/

/* 山域から探す検索フォーム--------- */
.search_freeform {
    position: relative;
    display: flex;
    align-items: center;
}

    .search_freeform input {
        width: 100%;
        padding: 15px 40px 15px 15px;
        font-size: 14px;
        border: none;
        outline: none;
        border-radius: 50px;
        color: var(--color4);
        background: var(--color2_opa09);
    }

    .search_freeform button {
        position: absolute;
        top: 50%;
        right: 10px; /* アイコンを右端に配置 */
        transform: translateY(-50%);
        background: none;
        border: none;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
    }

        .search_freeform button img {
            width: 20px;
            height: 20px;
        }
/* 山域から探す検索フォーム--------- */
/* contents3【山域から探す】----------------------------------------------- */


/* contents4【今おすすめの山小屋】----------------------------------------------- */
/* 共通タイトルスタイル */
.under_title {
    font-size: clamp(23px, 1.3vw, 32px);
    font-weight: bold;
    margin-bottom: 20px;
}

#contents4 .slick-box .next, #contents4 .slick-box .prev {
    bottom: auto !important;
    top: 40%;
    transform: translateY(-50%);
}

    #contents4 .slick-box .next img, #contents4 .slick-box .prev img {
        border: solid 2px #DFDBCF;
    }

#contents4 .slick-box .prev {
    left: -10px;
}

#contents4 .slick-box .next {
    right: -10px;
    left: auto !important;
}
/* 要素の高さを合わせる */
.link_type_slick02 .slick-slide {
    height: auto !important;
}

#contents4 .slick-dots {
    display: none !important;
}

/* contents4【今おすすめの山小屋】----------------------------------------------- */


/* contents5【山小屋マナー】----------------------------------------------- */
#contents5 h3, #contents6 h3 {
    font-size: clamp(18px,1vw,20px);
    font-weight: bold;
    position: relative;
}

section#contents5 .grid_6, section#contents6 .grid_6 {
    width: calc(50% - 10px) !important;
}

#contents5 h3 span, #contents6 h3 span {
    width: calc(10% - 50px);
    align-self: stretch;
}

#contents5 .arrow, #contents6 .arrow {
    position: absolute;
    top: 50%;
    right: 0%;
    transform: translate(0%, -50%);
}

.icon_title {
    margin-top: 3px;
}

/* 共通開閉スタイル ----------------------------*/
.txt_more {
    cursor: pointer;
}

    .txt_more .arrow {
        height: 0.8em;
        width: 1em;
    }

        .txt_more .arrow::before, .txt_more .arrow::after {
            position: absolute;
            content: "";
            width: 10px;
            height: 1px;
            background-color: currentColor;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
            transition: 0.3s;
            transition-property: width, right, left, transform;
        }

        .txt_more .arrow::after {
            transform: rotate(90deg);
        }

    .txt_more.trans .arrow::before {
        transform: rotate(-45deg);
        width: 6px;
        right: 4px;
    }

    .txt_more.trans .arrow::after {
        transform: rotate(45deg);
        width: 6px;
        left: 4px;
    }

.toggle_title {
    width: calc(100% - 70px);
}

    .toggle_title .arrow {
        width: calc(10% - 20px) !important;
    }
/* 共通開閉スタイル ----------------------------*/
/* contents5【山小屋マナー】----------------------------------------------- */



/* contents6【注意喚起】----------------------------------------------- */
/* contents6【注意喚起】------------------------------------------------ */


/*※※※PCレスポンシブ調整は各コンテンツに記載※※※*/


@media screen and (max-width: 1440px) {

    /* FV検索フォーム */
    #search_form {
        padding: 0 5%;
        box-sizing: border-box;
    }

    /* contents2 */
    #contents2 .link_type_slick .slick-dots {
        left: calc(50px + 8%);
    }

    /* contents3 */
    .link1 {
        top: 28%;
    }

    .link2 {
        top: 41%;
    }

    .link3 {
        top: 66%;
    }

    .link4 {
        bottom: -2%;
        left: 20%;
    }

    .link5 {
        bottom: -11%;
        left: 49%;
    }
    /* contents3 */
}

/* 1280------------------------------------ */
@media screen and (max-width: 1280px) {
    #search_form {
        padding: 0 2%;
        box-sizing: border-box;
    }

    .form_contents02 {
        padding: 20px 10px;
    }

    .bnr_right {
        display: none;
    }
}

/* 1100------------------------------------ */
@media screen and (max-width: 1100px) {
    /* contents3 */
    .link1 {
        top: 32%;
        left: 16%;
    }

    .link2 {
        top: 45%;
        left: 16%;
    }

    .link3 {
        top: 67%;
        left: 16%;
    }

    .link4 {
        bottom: -5%;
        left: 16%;
    }

    .link5 {
        bottom: -13%;
        left: 46%;
    }

    .con3_title_box {
        justify-content: space-around !important;
    }

    /* contents3 */
}

@media screen and (orientation: portrait) and (max-width: 1100px) {
    #page01_tourtop #main_img .main_title.active {
        width: 100% !important;
    }

    .toggle_title {
        width: calc(100% - 50px);
    }

    section#contents5 .grid_6, section#contents6 .grid_6 {
        width: 100% !important;
    }

    #contents5 h3 span, #contents6 h3 span {
        width: calc(10% - 50px);
        align-self: stretch;
        box-sizing: border-box;
    }

        #contents5 h3 .icon_title, #contents6 h3 .icon_title, #contents5 h3 span.width_90per, #contents6 h3 span.width_90per {
            width: 90%;
        }

    #contents5 .arrow, #contents6 .arrow {
        position: absolute;
        top: 50%;
        right: 5%;
        transform: translate(0%, -50%);
        width: auto !important;
    }
}

@media screen and (max-width: 768px) {
    #page01_tourtop #main_img .main_logo {
        transform: translate(-50%, -170%) scale(0.65);
    }

        #page01_tourtop #main_img .main_logo.active {
            transform: translate(-50%, -170%) scale(0.8);
        }

    /* FV----------------------------------------- */
    #page01_tourtop #main_img .main_title {
        transform: translate(-50%, -50%) scale(0.65);
        filter: blur(5px);
        transition: 1.5s;
        z-index: 1;
        font-size: -webkit-calc(1rem + 13px);
        font-size: calc(1rem + 8px);
    }

        #page01_tourtop #main_img .main_title.active {
            transform: translate(-50%, -50%) scale(0.75);
            filter: blur(0);
            opacity: 1;
        }

    /* 検索フォーム */
    .form_contents02 {
        flex-direction: column;
    }

    .form_box {
        width: 100%;
    }

        .form_box input, .form_box select, .form_box button {
            width: 100%;
        }

    .select_wrapper {
        width: 100%;
    }

    input#people {
        padding-right: 10px;
        max-width: 100%;
    }

    .form_check_box {
        width: 100%;
    }

    .form_contents01 .form_box {
        width: 50%;
        margin-bottom: 0px;
    }

    #search_form {
        padding: 0 5%;
        box-sizing: border-box;
        max-width: 700px;
    }

    .form_box input, .form_box select, .form_box button {
        font-size: 12px;
        padding: 8px 25px 8px 27px;
    }

    .form_check_box span {
        left: 28px;
    }

    input#checkin, input#checkout {
        padding: 8px 25px 8px 130px;
    }

    .form_box.search_btn {
        margin: 0;
    }

    .form_box button {
        max-width: 250px;
        margin-top: 10px;
        padding: 10px;
    }

    .search_btn img {
        padding-bottom: 0;
    }
    /* 検索フォーム */
    /* FV----------------------------------------- */

    /* contents2 */
    #contents2 .slick-box .box_img {
        height: clamp(300px, 63vh, 650px);
    }

    .link_type_slick .slick-box .prev {
        left: 4%;
    }

    .link_type_slick .slick-box .next {
        left: calc(40px + 3%);
    }

    .link_type_slick .slick-box .prev, .slick-box .next {
        bottom: 2%;
    }

    #contents2 .link_type_slick .slick-dots {
        bottom: 3%;
    }

    /* contents3 */
    #contents3 {
        z-index: 0;
        /*background-position: top 0% right 78%;
  background-size: 250%;*/
    }

    .con3_title_r {
        right: 7%;
        top: 4%;
    }
    /* contents3 */

    /* contents5.contents6 */
    section#contents5 .grid_6, section#contents6 .grid_6 {
        width: 100% !important;
    }
}





@media screen and (max-width: 667px) {

    /* FV------------------------- */
    #page01_tourtop #main_img .main_logo {
        transform: translate(-50%, -200%) scale(1.1);
    }

        #page01_tourtop #main_img .main_logo.active {
            transform: translate(-50%, -200%) scale(0.8);
        }

    #page01_tourtop #main_img .main_title {
        transform: translate(-50%, -50%) scale(1.1);
        font-size: 14px;
    }

        #page01_tourtop #main_img .main_title.active {
            transform: translate(-50%, -50%) scale(1.5);
            filter: blur(0);
            opacity: 1;
        }

    form#search_form {
        bottom: auto !important;
        left: auto;
        transform: inherit;
        margin-top: -40px;
    }

    .search_form_box {
        height: auto !important;
    }

    .form_box h5, .form_box a {
        padding: 10px 5px;
        width: 100%;
        text-align: center;
        box-sizing: border-box;
        letter-spacing: 0;
    }

    .form_box button {
        max-width: 200px;
        margin-top: 10px;
        padding: 10px;
        font-size: 14px;
    }

    .search_btn img {
        padding-bottom: 1px;
    }
    /* FV------------------------- */

    /* 検索フォーム---------------------------- */
    .search_form_box {
        height: auto !important;
        z-index: 2;
    }
    /* 検索フォーム----------------------------- */


    /* contents2------------------------------- */
    #contents2 .slick-box .box_img {
        height: clamp(250px, 30vh, 300px);
    }

    ul.slick-dots {
        display: none !important;
    }

    .link_type_slick .slick-box .next {
        left: auto;
        right: 3%;
        bottom: 4%;
    }

    .link_type_slick .slick-box .prev, .slick-box .next {
        bottom: 4%;
        left: auto;
        right: calc(30px + 5%);
    }
    /* contents2------------------------------- */

    /* contents3--------------------------------- */
    .con3_link_box a, .con3_title_r {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        transform: inherit !important;
    }

    #contents3::before {
        background: rgb(47, 59, 99);
        background: linear-gradient(0deg, rgba(47, 59, 99, 0.9) 0%, rgba(47, 59, 99, 0.9) 55%, rgba(47, 59, 99, 0.7) 80%, rgba(47, 59, 99, 0.5) 100%);
    }

    #contents3 {
        background-size: cover;
    }

    .search_freeform input {
        padding: 10px 40px 10px 15px;
        font-size: 12px;
    }

    .con3_title_box {
        margin-bottom: 30px;
    }

    .search_freeform button img {
        width: 18px;
        height: 18px;
    }

    .toggle_title .width_90per {
        width: 95% !important;
    }
    /* contents3--------------------------------- */

    /* contents5--------------------------------- */
    #contents5 .arrow, #contents6 .arrow {
        position: absolute;
        top: 50%;
        right: 25px !important;
    }

    #contents5 h3 .toggle_title .width_90per, #contents6 h3 .toggle_title .width_90per {
        width: 85% !important;
    }
    /* contents5--------------------------------- */

}

@media screen and (max-width: 340px) {
    #contents5 h3, #contents6 h3 {
        font-size: 16px;
        font-weight: bold;
    }

    #search_form {
        padding: 0 2%;
    }

    .form_box h5, .form_box a {
        font-size: 13px;
    }

    a#tour-link .width_15 {
        width: 10px;
    }
}


/*2025-0409*/
/* セクション背景 */
#contents3 {
    position: relative;
}

/* タイトルと検索フォーム */
.search_freeform input {
    border: 1px solid #ccc;
}
/*2025-0512*/
.contents_right figure {
    /* max-width: 330px; */
    width: 100%;
    margin-bottom: 20px;
}

@media screen and (max-width: 768px) {
    .contents_right figure {
        width: 80%;
    }
}

@media screen and (max-width: 667px) {
    .contents_right figure {
        margin: 0 auto 10px;
    }
}

/*▼2025-04-22-----------------------------------*/
#langModal {
    position: fixed;
    z-index: 999;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #2f4f2f;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

    #langModal .lang-label {
        list-style: none;
        padding: 0;
        margin: 0;
        font-size: 26px;
        color: #fff;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 12px;
    }

        #langModal .lang-label li {
            font-weight: normal;
        }

        #langModal .lang-label .divider {
            font-size: 22px;
        }

    #langModal.show {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    #langModal .lang-list {
        list-style: none;
        padding: 0;
        margin: 0 0 20px;
    }

        #langModal .lang-list li {
            margin: 10px 0;
        }

    #langModal .lang-link {
        color: #fff;
        font-size: 24px;
        font-weight: bold;
        text-decoration: none;
        transition: opacity 0.3s;
    }

        #langModal .lang-link:hover {
            opacity: 0.7;
        }

    #langModal .modal-logo {
        max-width: 160px;
        height: auto;
        margin-top: 20px;
    }

@media screen and (max-width: 667px) {
    #langModal .lang-label {
        font-size: 20px;
    }
}

#fix_bnr {
    position: absolute;
    bottom: 40px;
    left: 5%;
    z-index: 10;
    transition: opacity 0.5s ease, visibility 0.5s ease;
    opacity: 1;
    visibility: visible;
}

    #fix_bnr a {
        max-width: 300px;
        width: 300px;
        background-color: rgba(46, 74, 47, 0.8);
    }
    /* 固定する用のクラス */
    #fix_bnr.fixed {
        position: fixed;
        bottom: 20px;
        z-index: 999;
    }

    #fix_bnr.hide {
        opacity: 0;
        visibility: hidden;
    }

@media (max-width: 667px) {
    #fix_bnr.fixed {
        bottom: 0;
    }

    #fix_bnr a {
        font-size: 12px;
        border-radius: 4px 4px 0 0;
        padding: 8px;
        max-width: 200px;
    }

    #fix_bnr {
        left: 50%;
        transform: translateX(-50%);
    }
}
/*▲2025-04-22-----------------------------------*/


/*2025-05-27*/
/* 基本設定（PC・タブレット） - さらに厳密に統一 */
#contents5 .bg_color2 h3 > span:first-of-type,
#contents6 .bg_color2 h3 > span:first-of-type {
    width: 60px;
    height: 60px !important;
    padding: 0 !important;
    margin: 0 !important;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

#contents5 .bg_color2:not(.toggle_contents) h3 > span:last-of-type,
#contents6 .bg_color2:not(.toggle_contents) h3 > span:last-of-type {
    width: calc(100% - 60px) !important;
    height: 60px !important; /* 高さを厳密に固定 */
    padding: 0 15px !important; /* 左右のみパディング */
    margin: 0 !important;
    display: flex;
    align-items: center; /* 垂直中央配置 */
    box-sizing: border-box;
    line-height: 1 !important; /* 行間をリセット */
    vertical-align: middle;
}

#contents5 .toggle_contents .toggle_title,
#contents6 .toggle_contents .toggle_title {
    width: calc(100% - 60px) !important;
    height: 60px !important; /* 高さを厳密に固定 */
    padding: 0 15px !important; /* 左右のみパディング */
    margin: 0 !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-sizing: border-box;
}

    /* トグルタイトル内のテキスト部分 */
    #contents5 .toggle_contents .toggle_title > span:first-child,
    #contents6 .toggle_contents .toggle_title > span:first-child {
        display: flex;
        align-items: center;
        height: 100%;
        line-height: 1 !important; /* 行間をリセット */
        flex: 1; /* 残り幅を使用 */
        margin: 0 !important;
        padding: 0 !important;
    }

#contents5 .bg_color2 h3,
#contents6 .bg_color2 h3 {
    height: 60px !important; /* 高さを厳密に固定 */
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    align-items: stretch; /* 子要素を高さいっぱいに */
    box-sizing: border-box;
}

/* 矢印の統一位置設定 - 全サイズ共通で右端から20pxの位置 */
#contents5 .arrow, #contents6 .arrow {
    position: absolute !important;
    right: 20px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    left: auto !important;
}

/* タブレット対応 - さらに厳密に統一 */
@media screen and (max-width: 1100px) {
    #contents5 .bg_color2 h3 > span:first-of-type,
    #contents6 .bg_color2 h3 > span:first-of-type {
        width: 55px;
        height: 55px !important;
    }

    #contents5 .bg_color2:not(.toggle_contents) h3 > span:last-of-type,
    #contents6 .bg_color2:not(.toggle_contents) h3 > span:last-of-type {
        width: calc(100% - 55px) !important;
        height: 55px !important;
        padding: 0 12px !important;
    }

    #contents5 .toggle_contents .toggle_title,
    #contents6 .toggle_contents .toggle_title {
        width: calc(100% - 55px) !important;
        height: 55px !important;
        padding: 0 12px !important;
    }

    #contents5 .bg_color2 h3,
    #contents6 .bg_color2 h3 {
        height: 55px !important;
    }

    /* 矢印位置統一 - タブレット */
    #contents5 .arrow, #contents6 .arrow {
        right: 20px !important;
        width: 18px !important;
        height: 18px !important;
    }
}

/* スマートフォン（768px以下） - さらに厳密に統一 */
@media screen and (max-width: 768px) {
    #contents5 .bg_color2 h3 > span:first-of-type,
    #contents6 .bg_color2 h3 > span:first-of-type {
        width: 50px;
        height: 50px !important;
    }

    #contents5 .bg_color2:not(.toggle_contents) h3 > span:last-of-type,
    #contents6 .bg_color2:not(.toggle_contents) h3 > span:last-of-type {
        width: calc(100% - 50px) !important;
        height: 50px !important;
        padding: 0 10px !important;
    }

    #contents5 .toggle_contents .toggle_title,
    #contents6 .toggle_contents .toggle_title {
        width: calc(100% - 50px) !important;
        height: 50px !important;
        padding: 0 10px !important;
    }

    #contents5 .bg_color2 h3,
    #contents6 .bg_color2 h3 {
        height: 50px !important;
    }

    /* スマホでのテキストサイズ調整 */
    #contents5 h3, #contents6 h3 {
        font-size: clamp(16px, 4vw, 18px) !important;
    }

    /* 矢印位置統一 - スマートフォン */
    #contents5 .arrow, #contents6 .arrow {
        right: 20px !important;
        width: 16px !important;
        height: 16px !important;
    }
}

/* 小さなスマートフォン（667px以下） - さらに厳密に統一 */
@media screen and (max-width: 667px) {
    #contents5 .bg_color2 h3 > span:first-of-type,
    #contents6 .bg_color2 h3 > span:first-of-type {
        width: 45px;
        height: 45px !important;
    }

    #contents5 .bg_color2:not(.toggle_contents) h3 > span:last-of-type,
    #contents6 .bg_color2:not(.toggle_contents) h3 > span:last-of-type {
        width: calc(100% - 45px) !important;
        height: 45px !important;
        padding: 0 8px !important;
    }

    #contents5 .toggle_contents .toggle_title,
    #contents6 .toggle_contents .toggle_title {
        width: calc(100% - 45px) !important;
        height: 45px !important;
        padding: 0 8px !important;
    }

    #contents5 .bg_color2 h3,
    #contents6 .bg_color2 h3 {
        height: 45px !important;
    }

    /* 矢印位置統一 - 小さなスマートフォン */
    #contents5 .arrow, #contents6 .arrow {
        right: 20px !important;
        width: 14px !important;
        height: 14px !important;
    }
}

/* 極小スマートフォン（340px以下） - さらに厳密に統一 */
@media screen and (max-width: 340px) {
    #contents5 .bg_color2 h3 > span:first-of-type,
    #contents6 .bg_color2 h3 > span:first-of-type {
        width: 40px;
        height: 40px !important;
    }

    #contents5 .bg_color2:not(.toggle_contents) h3 > span:last-of-type,
    #contents6 .bg_color2:not(.toggle_contents) h3 > span:last-of-type {
        width: calc(100% - 40px) !important;
        height: 40px !important;
        padding: 0 6px !important;
    }

    #contents5 .toggle_contents .toggle_title,
    #contents6 .toggle_contents .toggle_title {
        width: calc(100% - 40px) !important;
        height: 40px !important;
        padding: 0 6px !important;
    }

    #contents5 .bg_color2 h3,
    #contents6 .bg_color2 h3 {
        height: 40px !important;
    }

    /* 矢印位置統一 - 極小スマートフォン */
    #contents5 .arrow, #contents6 .arrow {
        right: 20px !important;
        width: 12px !important;
        height: 12px !important;
    }
}

/* アイコン内の要素の調整（全デバイス共通） */
#contents5 .bg_color2 h3 > span:first-of-type img,
#contents6 .bg_color2 h3 > span:first-of-type img,
#contents5 .bg_color2 h3 > span:first-of-type i,
#contents6 .bg_color2 h3 > span:first-of-type i {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 60%;
    max-height: 60%;
}

#main_img .main_title.active, #page01_tourtop #main_img .main_logo.active {
    z-index: 3;
}

#contents3 > div {
    max-width: 1200px;
    text-align: left;
    margin: 0 auto;
}

#contents3 .con3_title_box {
    margin-bottom: 100px;
}

#contents3::before {
    content: none;
}

.tour_card_container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.tour_card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    text-decoration: none;
    color: inherit;
    display: block;
    transition: 0.5s;
    padding: 8px 20px;
    display: flex;
    justify-content: center; /* 横方向の中央寄せ */
    align-items: center; /* 縦方向の中央寄せ */
}

    .tour_card:hover {
        transform: translateY(-5px);
        opacity: 0.8;
    }

.tour_card_inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    width: 100%;
}

.tour_card_img_wrap {
    width: 45%;
}

.tour_card img {
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
}

.tour_card_text {
    width: 55%;
    padding: 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

    .tour_card_text span {
        font-size: 12px;
        color: #888;
    }

    .tour_card_text h3 {
        font-size: 20px;
        margin: 5px 0;
        /*height: 3em;*/
        display: flex;
        align-items: center;
        text-align: left;
    }

    .tour_card_text p {
        font-size: 14px;
        margin-bottom: 10px;
        text-align: left;
    }

.tour_card_button_pc .button {
    display: inline-block;
    padding: 8px 20px;
    background: #2d6a4f;
    color: #fff;
    border-radius: 20px;
    text-decoration: none;
    font-size: 14px;
    margin-top: 10px;
}

@media (max-width: 768px) {
    #contents3 .con3_title_box {
        margin-bottom: 50px;
    }

    .tour_card_img_wrap, .tour_card_text {
        width: 100%;
    }

    .tour_card_inner {
        flex-direction: column;
    }

    .tour_card {
        padding: 15px 20px 8px;
    }

    .contents_right figure {
        width: 100%;
    }
}


@media (max-width: 667px) {
    #page01_tourtop #main_img .main_title {
        font-size: 10px;
        line-height: 2; /* 行間でゆとりを持たせる */
        letter-spacing: 0.03em;
    }

    #page01_tourtop #main_img .main_logo {
        transform: translate(-50%, -160%) scale(1.1);
    }

    #page01_tourtop #main_img .main_logo.active {
        /*transform: translate(-50%, -160%) scale(0.8);*/
        width: 291px;
    }

    #main_img .box_img:nth-of-type(2),
    #main_img .box_img:nth-of-type(7) {
        background-position: bottom -50px left -200px;
    }

    #main_img .swiper-wrapper .box_img:nth-child(3) {
        background-position: center right -150px;
    }

    #main_img .swiper-wrapper .box_img:nth-child(12), #main_img .swiper-wrapper .box_img:nth-child(2) {
        background-position: center left;
    }

    .tour_card_container {
        grid-template-columns: 1fr;
    }


    .tour_card {
        padding: 0;
    }

    .tour_card_text span,
    .tour_card_text p,
    .tour_card_button_pc {
        display: none;
    }

    .tour_card_text {
        padding: 10px;
        align-items: center;
    }

        .tour_card_text h3 {
            height: auto;
            text-align: center;
            justify-content: center;
            font-size: 16px;
        }

    .tour_card img {
        height: 120px;
        border-radius: 8px 8px 0 0;
    }

    .tour_card div {
        background-color: #335332;
        color: #fff;
    }
}
