/************************************************************/
/*ツアー詳細LPページ
/************************************************************/
.post_content hr {
    border-bottom: none;
}
.tour-detail .lp-fv {
    margin:0 auto 40px;
}
.tour-detail .lp-flex-wrapper {
    display: flex;
    gap: 40px;
    margin-top: 10px;
}
.tour-overview-wrapper .c-pageTitle {
    margin-bottom: 30px;
}
.tour-overview-wrapper .c-pageTitle .c-pageTitle__inner {
    padding-top: 0;
}

.tour-detail .first-cv-btn {
    display: flex;
    justify-content: end;
    margin: 10px 0;
}

.tour-detail .first-cv-btn a {
    background-color: #023E7D;
    color: #fff;
    font-size: 18px;
    padding: 10px 60px;
    text-decoration: none;
    font-weight: bold;
    border-radius: 4px;
}
.tour-detail .first-cv-btn a:hover,
.tour-detail p.tour_charge a.request_btn:hover,
.request-calendar table tr td a:hover {
    opacity: 0.7;
}

.tour-detail .js-tour-slider {
width: 100%;
max-width: 400px;
margin: 0 auto;
overflow: hidden;
}
.tour-detail .js-tour-slider img {
width: 100%;
height: auto;
object-fit: cover;
aspect-ratio: 3 / 2;
display: block;
}
.tour-detail .js-tour-slider .swiper-pagination {
position: relative;   /* デフォルトは absolute なので relative にする */
margin-top: 10px;     /* 画像とドットの間隔 */
text-align: center;   /* 中央寄せ */
}

.tour-detail p.tour_charge {
    border: 2px solid red;
    color: #FF3838;
    background-color: #FFF4F2;
}
.tour-detail p.tour_charge > span {
display: flex;
justify-content: center;
margin-top: 10px;
}
.tour-detail p.tour_charge > span a.request_btn,
#tour-detail_fix_bottom_menu a.request_btn {
    background-color: #EF476F;
    color: #fff;
    font-size: 18px;
    padding: 8px 20px;
    text-decoration: none;
    font-weight: bold;
    border-radius: 6px;
}

#tour-detail_fix_bottom_menu {
    display: none;
}

/* 水色帯（既存） */
.sticky-nav {
    z-index: 999999;
    max-width: 868px;
    width: 100%;
}
.sticky-nav__inner {
    position: relative;
}
.sticky-nav__inner:before {
    content: "";
    position: absolute;
    left: 50%;
    right: 50%;
    top: 0;
    bottom: 0;
    margin-left: -50vw;
    margin-right: -50vw;
    width: 100vw;
    background:#BDDFF9;
    opacity: 0.6;
    z-index: -1;
}
.sticky-nav__inner { padding: 8px 12px; }
.sticky-nav__inner ul,
.sticky-nav__inner ul li {
    margin: 0;
    padding: 0;
}
.sticky-nav__inner ul li {
    display: flex;
}
.sticky-nav__inner ul li a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

#recommend,
#sc,
#fee,
#joken {
    margin-top: -55px !important;
    padding-top: 55px;
}
#recommend {
    padding-bottom: 0;
    margin-bottom: 0;
}

/* 浮遊ナビ（クローン） */
#tour-nav-floating {
    position:fixed;
    left:0;
    right:0;
    top:0; /* JSでヘッダー高に置き換え */
    z-index:2147483647; /* 最上位 */
    display:none;       /* 初期は非表示 */
    box-shadow:0 2px 8px rgba(0,0,0,.08);
    pointer-events:auto;
}

/* リスト */
.sticky-nav__list{
    margin:0;
    padding:0;
    list-style:none;
    display:flex;
    gap:8px;
    overflow-x:auto;   /* PCは横スクロール許容（長文対策） */
    -webkit-overflow-scrolling:touch;
    align-items:stretch;
}
.sticky-nav__item{
    flex:1 1 0;
    min-width:140px;
}
.sticky-nav__link{
    display:block; text-align:center;
    padding:10px 8px;
    background:#fff;
    color:#0a2540;
    text-decoration:none;
    border:1px solid #d7e7f7;
    border-radius:6px;
    font-weight:600;
    font-size:14px;
    line-height:1.2;
    white-space:normal; /* 改行OK */
}
.sticky-nav__link:hover,
.sticky-nav__link:focus{
    border-color:#b5d5f3;
}


/* “上部に貼り付いた”状態の影（JSで .is-stuck を付与） */
.sticky-nav.is-stuck{
    box-shadow:0 2px 8px rgba(0,0,0,.08);
}



/* 見出しやアンカー要素に付けると隠れ防止（JSで値を上書き） */
.anchor-offset{ scroll-margin-top: 200px; }

/* テキスト開閉機能 */
.tourpoint p.u-mb-ctrl.text-expandable {
    max-height: 15em;
    overflow: hidden;
    position: relative;
    transition: max-height 0.5s ease-in-out;
}

.tourpoint p.u-mb-ctrl.text-expandable:not(.expanded) {
    -webkit-mask: linear-gradient(to bottom, black 0%, black 80%, transparent 100%);
    mask: linear-gradient(to bottom, black 0%, black 80%, transparent 100%);
}

.tourpoint p.u-mb-ctrl.text-expandable.expanded {
    /* 展開状態 - max-heightはJavaScriptで動的設定 */
    overflow: hidden;
    -webkit-mask: none;
    mask: none;
}

.text-expand-toggle {
    display: block;
    margin: 10px 0 0 auto;
    margin-top: 10px;
    padding: 8px 16px;
    background-color: #023E7D;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    transition: background-color 0.3s ease;
}

.text-expand-toggle:hover {
    background-color: #01326a;
}

.text-expand-toggle.hidden {
    display: none;
}

.tour_info {
    overflow: auto;
    max-height: calc(30em);
    border: 1px solid #ddd;
    padding: 1em;
}

/* 関連ツアー */
.related-tours {
  margin: 20px 0;
}

.related-tours h2 {
  font-weight: bold;
  margin-bottom: 10px;
}

.tour-item {
  display: flex;
  align-items: center;
  margin-bottom: 15px;
  background: #f9fcff;
  padding: 10px;
  border-radius: 4px;
  text-decoration: none;   /* リンク下線を消す */
  color: inherit;          /* 文字色を継承 */
  transition: background 0.3s;
}

.tour-item:hover {
  background: #eef6ff;     /* ホバー時に少し色を変える */
}

.tour-img {
  width: 120px;
  height: auto;
  margin-right: 15px;
  flex-shrink: 0;
}

.tour-text {
  flex: 1;
  font-size: 14px;
  line-height: 1.5;
  color: #023E7D;
}

@media (max-width: 959px) {
    #fix_bottom_menu {
        display: none!important;
    }
}

@media(max-width:768px) {
    .sticky-nav {
        left: 0;
    }
    .sticky-nav__inner {
        padding-left: 0;
        padding-right: 0;
    }
    .sticky-nav__item {
        min-width: auto;
    }
    #recommend,
    #sc,
    #fee,
    #joken {
        margin-top: -100px;
        padding-top: 100px;
    }
    .p-breadcrumb__list {
        flex-wrap: wrap !important;
    }
    .tour-detail .lp-flex-wrapper {
        flex-direction: column-reverse;
    }
    .tour-overview-wrapper .has-text-align-left {
        text-align: right;
    }
    .tour-detail .c-pageTitle {
        font-size: 22px;
        margin-bottom: 15px;
    }
    .tour-detail .first-cv-btn a {
        padding: 8px 40px;
    }
    .tour-detail .first-cv-btn a,
    .tour-detail p.tour_charge > span a.request_btn {
        font-size: 16px;
    }
    #tour-detail_fix_bottom_menu {
        display: block;
        padding-bottom: calc(env(safe-area-inset-bottom)*.5);
        position: fixed;
        left: 0;
        bottom: 0;
        box-shadow: 0 0 4px rgba(0, 0, 0, .1);
        transition: bottom .4s;
        width: 100%;
        z-index: 100;
    }
    #tour-detail_fix_bottom_menu:before {
        content: "";
        height: 100%;
        left: 0;
        position: absolute;
        top: 0;
        width: 100%;
        z-index: 0;
        background: #B6DCF8;
    }
    #tour-detail_fix_bottom_menu .menu_list {
        align-items: center;
        display: flex;
        height: 62px;
        justify-content: center;
        gap: 20px;
        padding: 2px 0 0;
        position: relative;
        z-index: 1;
    }
    #tour-detail_fix_bottom_menu a.request_btn {
        padding: 11px 50px;
    }
    #tour-detail_fix_bottom_menu .tel_btn {
        background-color: #023E7D;
        color: #fff;
        border-radius: 6px;
        padding: 1px 18px;
        text-decoration: none;

        display: flex;              /* フレックスボックス化 */
        flex-direction: column;     /* 縦に並べる */
        align-items: center;        /* 中央寄せ */
        justify-content: center;    /* 上下中央寄せ */
    }
    #tour-detail_fix_bottom_menu .tel_btn span i {
        font-size: 20px;
    }
        #tour-detail_fix_bottom_menu .tel_btn span:first-child {
          width: 20px;
          height: 20px;
          margin-bottom: 8px;
        }
    #tour-detail_fix_bottom_menu .tel_btn span:nth-child(2) {
        font-size: 11px;
    }
    .l-footer .copyright {
        margin-bottom: 70px;
    }
}
