body {
  background-position: left top;
  background-attachment: scroll;
}
body .block-item {
  background-position: left top;
  background-attachment: scroll;
  border-style: none;
}
body .widget-item {
  background-position: left top;
  background-attachment: scroll;
  border-style: none;
}
body .header {
  background-position: left top;
  background-attachment: scroll;
  border-style: none;
}
body .left {
  background-position: left top;
  background-attachment: scroll;
  border-style: none;
}
body .right {
  background-position: left top;
  background-attachment: scroll;
  border-style: none;
}
body .footer {
  background-position: left top;
  background-attachment: scroll;
  border-style: none;
}
/* =================================================================
   combined.css — 整合版 CSS
   來源：
     1. sely.css          全域父層樣式
     2. style.css         手工頁子層樣式（#jt-* 隔離）
     3. theme.css         行程子層樣式（.jollify-luxury-theme 隔離）

   Google Fonts 已合併去重，各子層選擇器互不衝突。
================================================================= */

/* ── 統一字型載入（合併三個來源去重）── */
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:ital,wght@0,100..700;1,100..700&family=Montserrat:wght@300;400;600;700&family=Noto+Sans+TC:wght@300;400;500;700;900&family=Noto+Serif+TC:wght@200;300;400;600;700&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap');


/* =================================================================
   一、全域父層樣式 (sely.css)
   來源：/public/主題css/sely.css
================================================================= */

/** modify style code here. 新版鑫囍客製樣式 :) */
* body {
    background: #ffffff !important;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    color: #000000;
}

p {
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    font-weight: 300;
    color: #000000;
}


.material-icons-outlined {
    font-family: "Material Icons Outlined";
}

.material-icons {
    font-family: "Material Icons";
}

.en {
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
}

ul li {
    list-style: none;
}

a {
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
}

span {
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    font-weight: 300;
}

a:hover {
    text-decoration: none;
}

button:focus {
    outline: none;
}

input:focus,
select:focus {
    outline: #ba91a0 1px auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    color: #000000;
}

h1 {
    font-size: 2.4rem;
}

h2 {
    font-size: 2.2rem;
}

h3 {
    font-size: 2.0rem;
}

h4 {
    font-size: 1.8rem;
}

h5 {
    font-size: 1.25rem;
}

h6 {
    font-size: 1.0rem;
}

@media (max-width: 768px) {
    .m-5 {
        margin: 1.5rem !important;
    }

    .mt-5,
    .my-5 {
        margin-top: 1.5rem !important;
    }

    .mb-5,
    .my-5 {
        margin-bottom: 1.5rem !important;
    }

    .p-5 {
        padding: 1.5rem !important;
    }

    .pt-5,
    .py-5 {
        padding-top: 1.5rem !important;
    }

    .pb-5,
    .py-5 {
        padding-bottom: 1.5rem !important;
    }
}

@media (max-width: 500px) {
    .m-5 {
        margin: 1rem !important;
    }

    .mt-5,
    .my-5 {
        margin-top: 1.25rem !important;
    }

    .mb-5,
    .my-5 {
        margin-bottom: 1.25rem !important;
    }

    .p-5 {
        padding: 1rem !important;
    }

    .pt-5,
    .py-5 {
        padding-top: 1rem !important;
    }

    .pb-5,
    .py-5 {
        padding-bottom: 1rem !important;
    }
}

::-webkit-scrollbar {
    width: 7px;
}

::-webkit-scrollbar-track {
    background: #eeeeee96;
}

::-webkit-scrollbar-thumb {
    background: #8e8e8e;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: #572b8b80;
}


.px-30 {
    padding: 0 30px;
}

.h-100vh>.module-container>.main {
    height: 100vh;
}

.h-40vh>.module-container>.main {
    height: 40vh;
}

.h-100vh>.module-container>.main .header-title {
    display: none;
}

.w-800>.module-container {
    max-width: 800px;
    margin: 0px auto;
}

.w-1440 {
    max-width: 1440px;
    margin: 0px auto;
}

.w-1600 {
    max-width: 1600px;
    margin: 0px auto;
    padding: 0px 40px;
}

@media (max-width:991px) {
    .h-100vh>.module-container>.main {
        height: inherit;
    }
}

@media (min-width:1200px) {
    .w-1200 {
        max-width: 1200px;
        margin: 0px auto;
    }

    .w-1000 {
        max-width: 1000px;
    }

    .w-800 {
        flex-direction: column;
        flex-wrap: nowrap;
    }
}

@media (max-width:1199px) and (min-width:991px) {
    .w-1200 {
        -ms-flex: 0 0 90%;
        flex: 0 0 90%;
        max-width: 90%;
        margin: 0px auto;
    }

    .w-1000 {
        -ms-flex: 0 0 90%;
        flex: 0 0 90%;
        max-width: 90%;
    }
}

@media @media (max-width:991px) {
    .w-800 {
        -ms-flex: 0 0 90%;
        flex: 0 0 90%;
        max-width: 90%;
        margin: 0px auto;
    }
}

.animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

.animated.infinite {
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
}

.animated.hinge {
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
}

.fadeIn {
    -webkit-animation-name: fadeIn;
    animation-name: fadeIn;
}

.px-30 {
    padding: 0 30px;
}

@media (min-width:1200px) {
    .w-1200 {
        min-width: 1200px;
    }
}

@media (max-width:1199px) and (min-width:991px) {
    .w-1200 {
        -ms-flex: 0 0 90%;
        flex: 0 0 90%;
        max-width: 90%;
    }
}

@media (min-width:992px) {
    .index_style .col-lg-3 {
        -ms-flex: 0 0 33.333333%;
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }
}

[data-position="center"] {
    margin-top: 0px;
}

@media(max-width:1200px) and (min-width:768px) {
    [data-position="center"] {
        margin-top: 0px;
    }
}

@media(max-width:767px) {
    [data-position="center"] {
        margin-top: 50px;
    }
}

.WinChrome [data-position="center"],
.D_products_group_molddetail [data-position="center"],
.group_home [data-position="center"] {
    margin-top: 60px;
}

@media(max-width:1200px) and (min-width:768px) {

    .WinChrome [data-position="center"],
    .D_products_group_molddetail [data-position="center"],
    .group_home [data-position="center"] {
        margin-top: 80px;
    }
}

@media(max-width:767px) {

    .WinChrome [data-position="center"],
    .D_products_group_molddetail [data-position="center"],
    .group_home [data-position="center"] {
        margin-top: 50px;
    }
}

/*通用商品*/
#frmSearch .search-box {
    margin-top: 100px !important;
}

/*一般團*/
.WinChrome section.group_banner.search_banner,
.WinIe section.group_banner.search_banner {
    height: 240px;
}

.WinChrome section.group_banner .search-area,
.WinIe section.group_banner .search-area {
    bottom: 20px;
}

/*contact-bespoke*/
input::placeholder {
    color: #ccc !important;
    font-size: 13px
}

.web-page-frame.lock {
    background: 0 0
}

.D_customformfront_main section.group_table.contact {
    padding-top: 196px;
    padding-left: 30px;
    padding-right: 30px;
}

.D_customformfront_main section.group_table.contact .trip_title {
    padding: 50px 48px 60px;
    margin: 0;
}

.D_customformfront_main section.group_table.contact .container {
    width: 100%;
    max-width: 1080px;
    padding: 0;
    background: #57525de0;
}

section.group_table.contact .container {
    width: 100%;
    max-width: 1080px;
    padding: 0;
    background: #d8d8d8e0;
}

section.group_table.contact .trip_title {
    padding: 30px;
    margin: 0;
    border-bottom: 1px solid #eee;
}

section.group_table.contact:before {
    background: url(https://jollifytravel.com/material-alias/index/BG-contact.jpg);
    background-attachment: fixed;
    background-position: center center;
}

section.group_table.contact .container .trip_title article h2 {
    line-height: 1;
    display: table;
    margin: 0 auto;
    padding: 0 2rem .5rem;
    letter-spacing: .2rem;
    position: relative;
    font-weight: 300;
}

section.group_table.contact>.container>h2,
section.group_table.contact>.container>h4 {
    display: none;
}

section.group_table.contact .trip_title article {
    position: relative
}

section.group_table.contact .trip_title article h3 {
    margin-bottom: 30px;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    font-weight: 200;
    letter-spacing: .09rem
}

section.group_table.contact .trip_title article h4 {
    line-height: 1.7rem;
    border-bottom: 0;
    margin-bottom: 0;
    padding: 0;
    font-weight: 300;
}

section.group_table.contact .trip_title article p {
    position: absolute;
    right: -15px;
    bottom: -40px
}


section.group_table.contact .form-row {
    background: #f4f4f4;
    margin: 0;
    padding: 30px 30px 0px;
}

section.group_table.contact .form-row:last-child {
    padding: 33px 45px 50px;
}

.contact .contac_form .form-row .form-group {
    padding-right: 15px !important;
    padding-left: 15px !important;
}

section.group_table.contact .form-row:last-child .form-group {
    flex: 0 0 100%;
    max-width: 100%;
}

.form-title {
    text-align: center;
    border: 1px solid #d2d2d2;
    padding: 10px;
    margin-bottom: 30px;
    margin-top: 30px;
    background: #919991;
    flex: 0 0 100%;
    max-width: 100%;
}

.contact .contac_form .form-row h3 {
    font-size: 1.0rem;
    color: #efefef;
    margin: 0;
}

.contact .contac_form label {
    font-size: 15px;
    margin-bottom: 15px;
    color: #000000;
}

.contact .text_blue {
    color: #e36464;
    font-size: 1.0rem;
}

.contact .fa-calendar {
    position: absolute;
    margin-top: -28px;
    right: 30px;
    color: #787a44
}

.contact .contac_form input {
    height: 40px;
    border: 0;
    margin: 0 auto;
    padding: .3rem .5rem;
}

.contact select.form-control {
    margin: 0 auto;
    padding: 2px;
    height: 40px;
    font-size: 14px;
    border-radius: 0;
    color: #666;
    border: 0
}

.contact select.form-control:not([size]):not([multiple]) {
    height: 40px
}

.contact div[data-type=CBX] .form-check {
    height: 20px;
    font-size: 14px;
    margin: 0;
    margin-bottom: 10px;
    padding-left: 20px
}

.contact textarea.form-control {
    margin: 0 auto;
    border: 0;
    border-radius: 0;
    height: 150px
}

.contact .form-row button {
    position: relative;
    font-size: 1.0rem;
    margin: 0 !important;
    padding: 15px 30px 12px 30px;
    text-align: center;
    border-radius: 0;
    background: #ffffff !important;
    color: #572b8b !important;
    border: 1px solid #7c7561;
    outline: 0
}

.contact .form-row button.btn-primary:not(:disabled):not(.disabled).active,
.contact .form-row button.btn-primary:not(:disabled):not(.disabled):active,
.show>.btn-primary.dropdown-toggle {
    color: #fff;
    background: #3e4b3f;
    border: 1px solid #3e4b3f;
    box-shadow: none;
}

.contact .form-description {
    background: #c2c2c2;
    text-align: center;
    padding: 10px;
    color: #fff;
    margin-top: 2rem;
    margin-bottom: 1rem;
}

@media (max-width:991px) {
    .D_customformfront_main section.group_table.contact {
        padding-top: 150px;
    }
}

@media (max-width:767px) {
    .D_customformfront_main section.group_table.contact {
        padding-top: 100px;
    }

    section.group_table.contact:before {
        background-attachment: initial;
    }

    .D_customformfront_main section.group_table.contact .trip_title {
        padding: 30px 20px 40px;
    }
}

.blog .swiper-wrapper {
    padding: 0 31px;
    width: calc(100% + 59px);
}

.blog .swiper-button-next,
.blog .swiper-button-prev {
    display: block !important;
}

.blog .swiper-button-prev {
    left: 0px;
}

.blog .swiper-button-next {
    right: 15px
}

.blog .swiper-button-next:after,
.blog .swiper-button-prev:after {
    background: 0 0;
    color: #b1a6bf
}

.blog .hover-wall .col-md-6 {
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
}

.blog .hover-wall .icon_info {
    box-shadow: none;
    border-radius: 0;
}

.blog .hover-wall .icon_info h3,
.blog .hover-wall .icon_info h4,
.blog .hover-wall .icon_info p.animate-text {
    width: calc(100% - 60px);
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto
}

.blog.text {
    margin-top: 1.5rem
}

.blog.text h1,
.blog.text h1 span,
.blog.text h2,
.blog.text h2 span {
    font-family: "Josefin Sans", 'Noto Sans TC', sans-serif;
    margin-bottom: 1.5rem;
    line-height: 1.5;
    font-weight: 500;
}

.blog.text p,
.blog.text p span {
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    font-size: 1.1rem;
    font-weight: 300;
}

.blog.tag a {
    padding: 7px 10px 4px 10px;
    border-radius: 20px !important;
    color: #88769e;
    border: 1px solid #88769e;
    text-decoration: none;
    font-size: 1rem;
    margin-left: .5rem
}

@media (max-width:565px) {
    .blog {
        padding-right: 20px;
        padding-left: 20px;
    }
}

.blog_slider {
    max-width: 1100px;
    margin: 0px auto;
}

.blog_slider .swiper-slide-style {
    margin-bottom: 0px;
    box-shadow: none;
    border-radius: 0;
    color: #ffffff;
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    transition: all 0.3s ease;
}


.blog_slider .swiper-wrapper {
    padding: 0 50px;
}

.blog_slider .swiper-slide .swiper-title {
    left: 50%;
    width: 100%;
    font-size: 1.6rem;
    letter-spacing: 0.1rem;
    z-index: 2;
    font-family: 'Noto Serif TC', 'Cormorant SC', serif;
    color: #222;
}

.blog_slider .swiper-slide-style:hover .swiper-title {
    top: 10%;
}

.blog_slider .swiper-slide .swiper-img {
    position: relative;
    margin: 0 0 25px;
}

.blog_slider .swiper-slide .swiper-content {
    margin-bottom: 25px;
    padding: 0 40px;
    color: #999999;
    font-size: 1.1rem;
    min-height: 55px;
    -webkit-line-clamp: 2;
    letter-spacing: 0.02em;
    line-height: 1.6rem;
    text-align: center;
    font-family: 'Noto SANS TC', sans-serif;
}

.blog_slider .swiper-slide .swiper-img::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    opacity: 1;
    z-index: 1;
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

.blog_slider .swiper-slide-style:hover .swiper-img::before {
    opacity: 0;
}

.blog_slider .swiper-slide .swiper-img img {
    border-radius: 0px;
}

.blog_slider [class*='swiper-button-'] {
    opacity: 0.7;
}

.blog_slider [class*='swiper-button-']:hover {
    opacity: 1;
}

.blog_slider [class*='swiper-button-']:after {
    background: transparent;
    color: #000;
}

.blog_slider [class*='swiper-button-'] {
    top: 44%;
}

@media (max-width:565px) {
    .blog_slider .swiper-button-prev {
        left: 8%;
    }

    .blog_slider .swiper-button-next {
        right: 8%;
    }
}

.blog_slider .swiper-wrapper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    text-align: center;
    line-height: 20px;
    font-size: 12px;
    margin: 0 5px !important;
    background: #dedede;
    border-radius: 0;
}

.blog_slider .swiper-wrapper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet.swiper-pagination-bullet-active {
    background: #000000;
}

.blog.writings_text {
    margin-top: 2.0rem;
}

.blog.writings_text .header-title {
    margin-bottom: 1rem;
    padding-bottom: .5rem;
    font-size: 1.15rem;
    font-weight: 600;
    border-bottom: 1px solid #bebebe
}

.blog.writings_text dl {
    display: flex;
    flex-wrap: wrap
}

.blog.writings_text dt {
    width: 15%;
    font-weight: 400;
}

.blog.writings_text dd {
    width: 85%;
    font-weight: 400;
}

@media (max-width:565px) {
    .blog.writings_text dt {
        width: 25%
    }

    .blog.writings_text dd {
        width: 75%
    }
}

.blog.btn-green div.link-list ul li a {
    padding: 13px 15px 10px 17px;
}

.day_style_1 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_1 img {
    width: 100%;
}

.day_style_2 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_2 img {
    width: 100%;
}

.day_style_3 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_3 img {
    width: 100%;
    height: 253px;
}

@media (max-width: 575px) {
    .Detail .day_style_3 .item {
        margin-bottom: .75rem;
    }
}

.day_style_4 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_4 img {
    width: 100%;
    height: 187px;
}

.day_style_5 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_5 img {
    width: 100%;
    height: 253px;
    height: 230px !important;
}

@media (max-width: 1600px) {
    .day_style_5 img {
        width: 100%;
        height: 253px;
        height: 170px !important;
    }
}

@media (max-width: 1400px) {
    .day_style_5 img {
        width: 100%;
        height: 253px;
        height: 170px !important;
    }
}

@media (max-width: 1200px) {
    .day_style_5 img {
        width: 100%;
        height: 253px;
        height: 140px !important;
    }
}

@media (max-width: 991px) {
    .day_style_5 img {
        width: 100%;
        height: 253px;
        height: 150px !important;
    }
}

@media (max-width: 768px) {
    .day_style_5 img {
        width: 100%;
        height: 253px;
        height: auto !important;
    }
}

.day_style_6 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_6 img {
    width: 100%;
    height: 187px;
}

.day_style_7 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_7 img {
    width: 100%;
    height: 253px;
}

.day_style_8 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_8 img {
    width: 100%;
    height: 187px;
}

.day_style_9 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_9 img {
    width: 100%;
}

.day_style_10 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
    position: relative;
    overflow: hidden;
}

.day_style_10 img {
    width: 100%;
}


.day_style_10 .item_text p {
    margin: 0;
    background: rgba(0, 0, 0, 0.6);
    color: #FFF;
    padding: 40px 50px;
    position: absolute;
    bottom: 10%;
    width: calc(100% - 30px);
    margin: 0 auto;
    z-index: 10;
}

@media (max-width:991px) {
    .day_style_10 .item_text p {
        padding: 35px 20px;
        position: relative;
        bottom: 0;
        width: calc(100% - 0px)
    }

    .day_style_10 img {
        margin-bottom: 0 !important
    }
}

.day_style_11 {
    width: 100%;
    display: block;
    margin-bottom: 20px;
    padding: 0;
}

.day_style_11 .tp_group {
    width: 100%;
    padding: 0;
    display: inline-block;
}

.day_style_11 .tp_group p {
    margin: 10px 0 0;
}

.day_style_11 .tp_group img {
    width: 100%;
}

.day_style_12 {
    width: 100%;
    display: block;
    margin-bottom: 20px;
    padding: 0 10px;
}

.day_style_12 .tp_group {
    width: 100%;
    display: inline-block;
}

.day_style_12 .tp_group img {
    width: 100%;
}

.day_style_13 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_13 img {
    width: 100%;
    height: 187px;
}

.day_style_13 p {
    background: rgba(0, 0, 0, 0.7);
    color: #FFF;
    text-align: center;
}

.day_style_14 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_14 iframe {
    width: 100%;
    height: 383px;
}

.day_style_15 {
    width: 100%;
    display: table;
    margin-bottom: 20px;
}

.day_style_15 iframe {
    width: 100%;
    height: 383px;
}

.day_style_1,
.day_style_2,
.day_style_3,
.day_style_4,
.day_style_5,
.day_style_6,
.day_style_7,
.day_style_8,
.day_style_9,
.day_style_10,
.day_style_11,
.day_style_12,
.day_style_13,
.day_style_14,
.day_style_15 {
    display: flex;
    flex-wrap: wrap;
}

.D_pages_folder {
    background: #fff
}

.blog-wrapper .sort-condition li a {
    border-radius: 3px;
    box-shadow: none !important;
    color: #572b8b;
    background: #fff;
    padding: 8px 16px;
    border: 1px solid #8262a9;
}

.blog-wrapper .sort-condition li a.active {
    color: #fff;
    background: #8160a8;
}

.blog-wrapper .sort-condition li a:hover,
.sort-condition li a:focus {
    color: #f7efff;
    background: #977bb9;
}

.blog-wrapper .sort-condition li {
    margin: 0 5px
}

.blog-wrapper .blog-banner {
    margin-top: 100px;
    margin: 120px auto 0 auto;
    width: calc(100% - 30px);
}

.blog-wrapper .bolg-list-box {
    display: flex;
    flex-wrap: wrap;
}

.blog-wrapper .blog-list .blog-info {
    text-align: center;
}

.blog-wrapper .blog-list .blog-item {
    border: none;
    padding-right: 15px;
    padding-left: 15px;
    margin: 15px 0;
}

.blog-wrapper .blog-banner .img_box {
    min-height: auto !important
}

.blog-wrapper .blog-banner:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 80vh;
    width: 100%;
    pointer-events: none;
    z-index: -1;
    background: linear-gradient(0deg, #fff 50%, #f6f6f6 50%)
}

.blog-wrapper .blog-bigtitle {
    position: relative;
    top: unset;
    z-index: 10;
    max-width: 1440px;
    width: calc(100% - 30px);
    padding-bottom: 20px;
    margin: 3rem auto 10px auto;
    border-bottom: 2px solid #cfcfcf !important
}

.blog-wrapper .blog-bigtitle h2 {
    font-family: 'Noto Serif TC', 'Cormorant SC', serif;
    color: #444 !important;
    text-shadow: none !important;
}


.blog-wrapper .blog-list .blog-pic img {
    border-radius: 10px;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
}

.blog-wrapper .blog-list .blog-item a .info-title h2 {
    font-family: 'Noto Serif TC', 'Cormorant SC', serif
}

.blog-wrapper .blog-list .blog-item a:hover .info-title h2 {
    color: #333
}

.blog-wrapper .blog-list .blog-item .info-description p {
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif
}

.blog-wrapper .blog-list .blog-item .info-description p:after {
    content: '繼續閱讀';
    padding: 6px 10px;
    margin: 0 auto;
    border: 1px solid #88769e;
    display: table;
    margin-top: 1rem;
    border-radius: 2px;
    color: #88769e
}

.blog-wrapper .blog-list .blog-item a:hover .info-description p:after {
    color: #fff;
    border: 1px solid #88769e;
    background: #88769e;
    transition-duration: .3s
}

.blog-wrapper .page-item.active .page-link {
    background-color: #3f3f3f;
    border-color: #555
}

@media (min-width: 991px) {
    .blog-wrapper .blog-item {
        flex: 0 0 33.33333%;
        max-width: 33.33333%;
    }

    .blog-wrapper .blog-item a {
        display: flex;
        flex-wrap: wrap;
        flex-direction: row;
    }

    .blog-wrapper .blog-list .blog-pic {
        flex: 0 0 100%;
        max-width: 100%;
        padding-right: 15px;
        padding-left: 15px;
        margin-bottom: 1rem;
    }

    .blog-wrapper .blog-list .blog-info {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .blog-wrapper .blog-list .blog-item a .info-title h2 {
        font-size: 1.5rem;
    }
}

@media (max-width:1200px) {
    .blog-wrapper .blog-banner {
        background-size: cover;
    }
}

@media (max-width: 991px) and (min-width: 565px) {
    .blog-wrapper .blog-item {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

@media (max-width:565px) {
    .blog-wrapper .blog-banner {
        width: 100%;
        margin: 0px auto 0 auto;
    }

    .blog-wrapper .blog-bigtitle {
        margin: 1rem auto 10px auto;
    }

    .blog-wrapper .blog-bigtitle h2 {
        font-size: 1.5rem;
    }

    .blog-wrapper .blog-list .blog-item {
        margin: 0;
        padding-right: 30px;
        padding-left: 30px;
    }
}

/*main*/
.go-to-top {
    right: 0;
    bottom: 10%;
    display: none !important;
}

.web-page-frame .go-to-top .top {
    background: #404040;
    width: 50px;
    height: 50px;
    margin-right: 0px;
    border-radius: 0;
    box-shadow: none;
    font-weight: lighter;
    opacity: 0.9;
}

.web-page-frame .go-to-top .top:hover {
    opacity: 1.0;
}

.web-page-frame .go-to-top .top:after {
    margin-top: 14px;
    margin-left: 18px;
    width: 12px;
    height: 12px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
}

.web-page-frame .go-to-top .top-txt {
    left: calc(50% - 13px);
    font-weight: normal;
    font-size: 0.8rem;
    bottom: 9px;
}

.web-page-frame .btn-primary {
    color: #fff !important;
    background-color: #572b8b !important;
    border-color: #572b8b !important;
}

.web-page-frame .btn-primary:hover {
    color: #fff !important;
    background-color: #572b8b !important;
    border-color: #572b8b !important;
}

.search_table tbody td.sale-situation .btn {
    border: 1px solid #572b8b;
    color: #572b8b !important;
    background: #fff !important;
}

.web-page-frame .btn-primary:not(:disabled):not(.disabled):active,
.web-page-frame .btn-primary:not(:disabled):not(.disabled).active,
.web-page-frame .show>.btn-primary.dropdown-toggle {
    color: #fff !important;
    background-color: #572b8b !important;
    border-color: #572b8b;
}

.web-page-frame .btn-primary:focus,
.web-page-frame .btn-primary.focus,
.web-page-frame .page-link:focus {
    box-shadow: 0 0 0 .2rem rgba(188, 145, 96, 0.2) !important;
}

.web-page-frame .btn-green {
    color: #fff !important;
    border-color: #88769e !important;
}

.web-page-frame .btn-green:hover {
    color: #fff !important;
    border-color: #88769e !important;
}

.web-page-frame .btn-light {
    color: #fff !important;
    background-color: #6c757d !important;
    border-color: #6c757d !important;
}

section.group_table .table a:hover {
    color: #404040;
}

.search_table .main_words .title_main:hover {
    color: #572b8b !important;
}


.info .btn-primary {
    background-color: #88769e;
    border-color: #88769e
}

.info .btn-primary:hover {
    color: #fff !important;
    background-color: #88769e !important;
    border-color: #88769e !important;
}

.web-page-frame .text_blue {
    color: #de3545;
    font-size: 1.2rem;
}

.search-area .search-box .search-btn {
    background: #88769e;
}

.list_con .style_icon .nav-pills .nav-link.active svg {
    fill: #666 !important;
}

.list_con .style_icon .nav-pills a svg {
    fill: #a9a9a9;
}

.filter_list i {
    color: #88769e !important
}

.web-page-frame .search-area .search-box .select-goal .title i {
    color: #88769e !important
}

.web-page-frame .search-area .search-box .select-place .title i {
    color: #88769e !important
}

.web-page-frame .search-area .search-box .select-date .title i {
    color: #88769e !important
}

.web-page-frame section.search_banner .search-area .search-box .select-input .data-icon-search {
    color: #88769e !important;
    display: none;
}

.radio_style [type="radio"]:checked+label:after {
    background: #88769e !important
}

section.search_con .pagination .page-item .page-link {
    width: 28px;
    height: 30px;
}

@media (max-width:767px) {
    section.search_con .pagination .page-item {
        margin: 0;
    }
}

section.search_con .pagination .page-item.active .page-link {
    color: #ffffff;
    background: #88769e;
}

section .page-item.active .page-link {
    background: #88769e;
}

section.search_con .pagination .page-item .page-link:hover {
    background: #88769e !important;
    color: #ffffff;
    border: 1px solid #88769e !important;
}

section.search_con .pagination .page-item .page-link:hover svg {
    fill: #ffffff;
}

section.search_con .pagination .page-item.active .page-link {
    color: #ffffff;
    background: #88769e;
    border: 1px solid #88769e !important;
}

section .page-item.active .page-link {
    background: #88769e;
}

section .page-link {
    color: #333333;
}

.web-page-frame .irs-slider {
    background: #88769e
}

.web-page-frame .irs-slider.state_hover,
.web-page-frame .irs-slider:hover {
    border: 2px solid #88769e
}

.web-page-frame .irs-from,
.web-page-frame .irs-to,
.web-page-frame .irs-single {
    background: #88769e
}

.web-page-frame .irs-bar {
    background: #ae9cc2
}

.web-page-frame figure.block_style .main_words a:hover {
    color: #572b8b;
}

.web-page-frame .pic_style figure.block_style .main_words a:hover {
    color: #88769e
}

.web-page-frame figure.block_style .note_words .share_box:hover {
    color: #88769e
}

section.group_table.trip_day .container .group_table_box .thead,
section.group_table.trip_day .container .group_table_box .thead:hover {
    background: #a091b1;
    font-size: 1.0rem;
    font-weight: 500;
}

section.group_table.trip_day .container .group_table_box .thead th {
    color: #ffffff;
}

section.group_table.trip_day table.table tr.text_gary td span {
    color: #000;
    font-family: 'Noto', sans-serif;
}

section.group_table.trip_day .container .group_table_box .font-weight-bold {
    font-weight: 500 !important;
    font-size: .875rem !important;
    color: #c30d23 !important;
}

section.group_table.trip_day table.table tr.thead th:nth-child(2) {
    background: #572b8b;
}

section.group_table.trip_day table.table tr.thead th:nth-child(2)::before {
    background: none;
}

section.group_table .table .trip_name h5 {
    margin: 0;
}

.web-page-frame section.group_table.trip_airline .table .thead th {
    border-right: 1px solid #7d7d7d;
}

.web-page-frame section.group_banner .media-grouop .share_box:hover,
.web-page-frame section.group_banner .media-grouop .forword_box:hover {
    background: #88769e;
}

.web-page-frame section.group_table.trip_airline .table .thead:hover {
    background: #404040;
}

.web-page-frame .filter_list .form-check .customcheck input:checked~.checkmark {
    background-color: #88769e;
}

.web-page-frame section.group_banner.trip_banner .btn-info {
    background-color: #88769e;
    border-color: #88769e;
}

.web-page-frame section.group_banner.trip_banner .btn-info:focus,
.web-page-frame section.group_banner.trip_banner .btn-info.focus {
    box-shadow: 0 0 0 0.2rem rgba(148, 148, 148, 0.4);
}

.popover {
    background: #88769e !important;
}

.popover .close {
    border: 1px solid #88769e !important;
    color: #88769e !important;
}

.popover .arrow:after,
.popover .arrow:before {
    border-color: transparent transparent #88769e transparent !important;
}

.popover .close:hover {
    background: #88769e !important;
}


.Day_menu .swiper_day .swiper-slide a:hover {
    background: #88769e !important;
    border: 1px solid #404040 !important;
}

section.trip_note .card-header .btn {
    background: #88769e !important;
    color: #fff !important;
}

section.trip_note .card-header a[aria-expanded=false]:after {
    color: #fff !important
}

.sub_menu-trip .server_menu li:nth-child(1) {
    background: #88769e
}

.sub_menu-trip .server_menu>ul>li.download-fixed-btn {
    background: #404040
}

.sub_menu-trip .server_menu>ul>li.share-fixed-btn {
    background: #404040
}

.sub_menu-trip .server_menu>ul>li.query-fixed-btn {
    background: #404040
}

figure.block_style .pic_all .plane_word {
    background: transparent linear-gradient(180deg, transparent 0, rgba(0, 0, 0, .84) 100%) 0 0 no-repeat;
    bottom: 0
}

.D_products_group_mold #search-calendar,
.D_products_group_detail #search-calendar {
    display: none;
}

.D_products_group_mold #search-table,
.D_products_group_detail #search-table {
    display: block;
    opacity: 1;
}

.D_products_group_mold #pills-tab .nav-item #pills-home-tab,
.D_products_group_mold #pills-tab .nav-item #pills-contact-tab,
.D_products_group_detail #pills-tab .nav-item #pills-home-tab,
.D_products_group_detail #pills-tab .nav-item #pills-contact-tab {
    opacity: 0;
    display: none;
}

.group_table.tripdown .IconMean {
    position: relative !important;
    top: 0px !important;
}

figure.block_style .pic_all::after {
    border-color: transparent transparent transparent rgb(127 97 162 / 58%);
}

section.search_con .list_con.mold .group_tag {
    background: #ead9ff;
    color: #88769e;
}

section.group_banner .search-area .search-box .search-btn {
    background: #572b8b;
}

.MGDT .TripTitle .TripType span,
.MGO .TripTitle .TripType span {
    color: #ffffff;
    border: none;
    background: #ec8756;
    padding: 4px 12px 0px 12px;
    margin-top: 2px;
}

#day_menu {
    padding-top: 60px;
}

#day_menu .list-group {
    background: rgb(255 255 255 / 90%);
    border-top: 1px solid #522a84;
    border-bottom: 1px solid #522a84;
}

#day_menu .list-group .list-group-item.active,
#day_menu .list-group .list-group-item:hover {
    background: none !important;
    border-bottom: 3px #572b8b solid;
    border-radius: 0;
    color: #572b8b;
    font-weight: bold;
}

#day_menu .list-group .list-group-item {
    color: #572b8b;
}

.MGDT .Detail .PriceBlock ul li.FlightDetails a,
.MGO .Detail .PriceBlock ul li.FlightDetails a,
.MPGDT .Detail .PriceBlock ul li.FlightDetails a,
.MPGO .Detail .PriceBlock ul li.FlightDetails a {
    background: #8659c5 !important
}

.MGDT .Detail .PriceBlock ul li.FlightDetails a:hover,
.MGO .Detail .PriceBlock ul li.FlightDetails a:hover,
.MPGDT .Detail .PriceBlock ul li.FlightDetails a:hover,
.MPGO .Detail .PriceBlock ul li.FlightDetails a:hover {
    background: #6d3cb0 !important
}

.MGO .PriceType.LowestPrice ul {
    flex-wrap: wrap;
}

.Detail .MainTitle::before {
    background: #b093d9;
    width: 4px !important;
    height: 28px !important;
    left: 5px !important;
    background-image: none !important
}

.Detail.DayTrip .DayBlock>div {
    background-color: #2c7dac !important;
}

.Detail.DayTrip .DayBlock>div::after {
    border-color: transparent transparent transparent #2c7dac !important;
}

.TripTitle {
    margin-top: 4rem;
}

.Detail.Hotel .PlanBlock thead tr th {
    background: #a091b1;
}

.Detail .BorderPrimary {
    border: 1px solid #605763;
}

.Detail .BgInfo {
    color: #572b8b !important;
    background-color: #f3ebfc !important;
}

.Detail.Hotel .HotelMore .SignUp.btn {
    background: #8659c5 !important;
    border-radius: 3px !important;
}

.Detail.Hotel .HotelMore .SignUp:hover {
    background: #6d3cb0 !important;
}

.Detail.Hotel .HotelMore .PriceDescription span {
    color: #a091b1
}

.Detail.Hotel .HotelMore .PriceDescription:hover {
    color: #572b8b;
}

.Detail .TripNoteBlock {
    background-color: #f3ebfc !important
}

.Detail .TripNoteBlock .NoteTitle .TextPrimary {
    color: #494949;
}

.Detail .TripNoteItems+.TripNoteItems::before {
    background: #a091b1 !important
}

.Detail.DepartureDate .nav-tabs .nav-link {
    border: 1px solid #8659c5 !important;
    color: #8659c5 !important;
}

.Detail.DepartureDate .nav-tabs .nav-item.show .nav-link,
.Detail.DepartureDate .nav-tabs .nav-link.active {
    background-color: #8659c5 !important;
    color: white !important;
}

.Detail.DepartureDate .nav-tabs .nav-link:hover .TabTitle::before {
    color: #572b8b !important;
}

.Detail.DepartureDate .nav-tabs .nav-link.active .TabTitle::before {
    color: #ffffff !important;
}

.Detail.DepartureDate .SearchTable .table thead th {
    border-bottom: 1px solid #572b8b !important;
}

.Detail.DepartureDate .SearchTable button,
.Detail.DepartureDate .SearchTable a.btn {
    background: #975de7 !important;
    border: 1px solid #572b8b !important;
    margin: 0 5px 5px 0 !important;
}

.Detail.DepartureDate .SearchTable button,
.Detail.DepartureDate .SearchTable a:hover {
    background-color: #6d3cb0 !important;
}

.Detail.Hotel .PlanBlock thead tr th {
    background: #a091b1 !important
}

.Detail .BorderPrimary {
    border: 1px solid #968aa3 !important;
}

.Detail .FlightBlock .FligtBtn {
    background: #6d3cb0 !important;
    border-radius: 6px;
}

.Detail .DateBlock .SearchDate a {
    color: #6d3cb0 !important;
}

.Detail .DateBlock .DateCenterLine {
    background-color: #aaaaaa !important;
}

@media (max-width:767px) {
    .TripTitle {
        margin-top: 1rem;
    }
}

section.group_banner .price_content .panel-info {
    border: 1px solid #ec8756;
}

section.group_banner .price_content .panel-info .panel-heading {
    background: #ec8756;
    font-weight: normal;
    font-size: 1.0rem;
}

section.group_banner .price_content .panel-info .panel-body {
    font-size: 1.0rem;
    color: #000000;
}

section.group_banner .price_content .panel-info .panel-body span {
    font-family: 'Noto', sans-serif;
    font-size: 1.125rem;
}

section.group_banner.trip_banner h3.price {
    font-weight: normal;
    letter-spacing: .1rem;
    font-family: 'Noto', sans-serif;
}

.basic-air-info .time {
    border-bottom: 2px solid #adadad;
    color: #555;
    font-weight: 500;
    font-family: 'Noto', sans-serif;
    font-size: 1.125rem;
}

.basic-air-info {
    background: #ffffff;
    border: 1px solid #572b8b;
    padding: 1.8rem 1rem !important;
    margin-top: 1.5rem !important
}

.basic-air-info .back i,
.basic-air-info .go i {
    color: #555;
    -webkit-transform: rotate(0);
    -ms-transform: rotate(0);
    transform: rotate(0);
    font-size: 1.2rem;
}

.basic-air-info .back i.fa-plane:before,
.basic-air-info .go i.fa-plane:before {
    content: "\E005";
    font-family: icon, FontAwesome;
    content: "\f072";
    color: #572b8b;
    font-size: 1.2rem;
}

.basic-air-info .back h3,
.basic-air-info .go h3 {
    color: #572b8b;
    font-size: 1.125rem;
    font-weight: 400;
}


.basic-air-info .back h4,
.basic-air-info .go h4 {
    font-family: 'Noto', sans-serif;
    margin-bottom: 0;
    font-size: 1.125rem;
    color: #000000;
    font-weight: 400
}

.basic-air-btn a {
    font-size: 1.0rem;
    background: #572b8b;
    border: 1px solid #ddd;
    padding: 10px 25px 5px 25px;
    color: #ffffff;
    border-radius: 0px;
}

.basic-air-btn a:hover {
    background: #572b8b;
    border: 1px solid #ddd;
    color: #e8ddf5;
}

.flight_details .details_box .flight_infor div,
.flight_details .details_box .flight_infor span {
    font-family: 'Noto', sans-serif;
}

.flight_details .details_box>h4 {
    background: #6c757d;
}

.flight_details {
    border: 1px solid #6c757d;
}

.flight_details .details_box>h4 i {
    color: #ffffff;
    font-size: 1.25rem !important;
}

#exampleModalCenter .font-weight-bold {
    color: #c30d23 !important;
    font-size: .875rem !important;
}

.day_con .info_box>.row>div:nth-child(1) {
    display: none;
}

.day_con .info_box>.row>div:nth-child(2) {
    max-width: 100%;
    flex: 0 0 100%;
}

section.group_table.trip_day .info_box .info_box_title {
    margin-left: 0;
}

section.group_table.trip_day .info_box .info_box_title .day_title {
    font-size: 1.75rem;
    font-weight: 600;
    letter-spacing: -.05rem;
    color: #000;
}

section.group_table.trip_day .info_box .info_box_title .day_sub-title {
    font-size: 1.125rem;
    font-weight: 400;
    color: #000000;
}

section.group_table.trip_features:after,
section.group_table.trip_airline:after,
section.group_table.trip_day:after,
section.group_table.trip_note:after,
section.group_table.view_intro:after,
section.group_table.tripdown:after {
    background: #ffffff;
}


.inbound_search,
.outbound_search {
    padding: 4rem 15px 4rem 15px;
    z-index: 2;
    background: #f0f0f0;
    border-radius: 10px 10px 0 0
}

.inbound_search section.group_banner .search-area .search-box .select-date .select input {
    width: calc(50% - 18px);
    border-radius: 1px;
    height: 35px;
    padding: 5px
}

.inbound_search .search-area .search-box .select-date .select .divide {
    margin: 16.5px 10px 0 10px
}

.inbound_search .group_banner.search_banner .search-area>.container,
.outbound_search .group_banner.search_banner .search-area>.container {
    background: #fff;
    border: none;
    padding: 0
}

.outbound_search section.group_banner .search-area .search-box div div {
    min-height: auto !important
}

@media (min-width:991px) {

    .inbound_search section.group_banner .search-area .search-box,
    .outbound_search section.group_banner .search-area .search-box {
        margin: 0;
        height: 95px
    }

    .outbound_search section.group_banner .search-area .search-box>div:nth-child(1) {
        -ms-flex: 0 0 15%;
        flex: 0 0 15%;
        max-width: 15%
    }

    .outbound_search section.group_banner .search-area .search-box>div:nth-child(2) {
        -ms-flex: 0 0 15%;
        flex: 0 0 15%;
        max-width: 15%
    }

    .outbound_search section.group_banner .search-area .search-box>div:nth-child(3) {
        -ms-flex: 0 0 15%;
        flex: 0 0 15%;
        max-width: 15%
    }

    .outbound_search section.group_banner .search-area .search-box>div:nth-child(4) {
        -ms-flex: 0 0 20%;
        flex: 0 0 20%;
        max-width: 20%
    }

    .outbound_search section.group_banner .search-area .search-box>div:nth-child(5) {
        -ms-flex: 0 0 20%;
        flex: 0 0 20%;
        max-width: 20%
    }

    .inbound_search section.group_banner .search-area .search-box>div:nth-child(5) {
        border: none !important
    }

    .outbound_search section.group_banner .search-area .search-box>div:nth-child(6) {
        -ms-flex: 0 0 10%;
        position: absolute;
        bottom: -51px;
        right: 14%;
        border: none
    }

    .inbound_search section.group_banner .search-area .search-box>div:nth-last-child(1),
    .outbound_search section.group_banner .search-area .search-box>div:nth-child(7) {
        padding: 0 !important;
        border: none
    }

    .inbound_search section.group_banner .search-area .search-box .select-date,
    .inbound_search section.group_banner .search-area .search-box .select-departure,
    .inbound_search section.group_banner .search-area .search-box .select-destination {
        padding: 15px
    }
}

.inbound_search section.group_banner .search-area .search-box .select-date,
.inbound_search section.group_banner .search-area .search-box .select-departure,
.inbound_search section.group_banner .search-area .search-box .select-destination {
    padding: 10px 0;
    background: #fff
}

.inbound_search section.group_banner .area_input,
.outbound_search .search-area .search-box .select select {
    background-color: #fff;
    border-radius: 0;
    background-position: 95%;
    color: #686767 !important
}

.inbound_search section.group_banner .search-area .search-box .select-status {
    bottom: -30px
}

section.group_banner .search-area .search-box .search-btn {
    background: #88769e;
}

.inbound_search section.group_banner .search-area .search-box .select-date .title,
.inbound_search section.group_banner .search-area .search-box .select-departure .title,
.inbound_search section.group_banner .search-area .search-box .select-destination .title,
.inbound_search section.group_banner .search-area .search-box .select-goal .title,
.inbound_search section.group_banner .search-area .search-box .select-place .title {
    height: 30px;
    min-height: 30px;
    position: relative
}

.inbound_search section.group_banner .search-area .search-box .select-date .title h6,
.inbound_search section.group_banner .search-area .search-box .select-departure .title h6,
.inbound_search section.group_banner .search-area .search-box .select-destination .title h6 {
    font-size: 1rem;
    color: #1d1d1d;
    margin: 0
}

.inbound_search section.group_banner .search-area .search-box .select-date .title i,
.inbound_search section.group_banner .search-area .search-box .select-departure .title i,
.inbound_search section.group_banner .search-area .search-box .select-destination .title i,
.inbound_search section.group_banner .search-area .search-box .select-goal .title i,
.inbound_search section.group_banner .search-area .search-box .select-place .title i {
    display: none
}

.outbound_search section.group_banner .search-area .search-box div .select-date,
.outbound_search section.search_banner .search-area .search-box .select-goal,
.outbound_search section.search_banner .search-area .search-box .select-place {
    padding: 0 10px;
    padding: 10px 0
}

.outbound_search section.group_banner .search-area .search-box div div {
    background: 0 0 !important;
    height: 40px !important;
    position: relative
}

.outbound_search section.group_banner .search-area .search-box div .form-check label {
    color: #222
}

.outbound_search section.group_banner .search-area .search-box .form-check .customcheck input:checked~.checkmark {
    background-color: #c9a96a
}

.outbound_search section.group_banner .search-area .search-box .form-check .customcheck input~.checkmark {
    background-color: #fff
}

.outbound_search section.group_banner .search-area .search-box div .select-date input.date-end,
.outbound_search section.group_banner .search-area .search-box div .select-date input.date-start {
    width: calc(50% - 18px) !important;
    background: #fff !important;
    border-radius: 0
}

.outbound_search section.group_banner .search-area .search-box div div.divide {
    background: #000 !important;
    height: 2px !important;
    min-height: 2px !important
}

.outbound_search section.group_banner .search-area .search-box .title i {
    display: none
}

.outbound_search section.group_banner .search-area .search-box .title h6 {
    font-size: 1rem !important;
    margin: 0 !important;
    color: #000 !important
}

.outbound_search .search-box .title::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 1px;
    right: 6px;
    width: 22px;
    height: 22px;
    background-repeat: no-repeat;
    display: none
}

.outbound_search .search-box .select-goal .title::before {
    background-image: url(https://materials.fillo.com.tw/materials/goldenteam/images/0b73edab-e1c7-4df8-a0e5-7f115ef48fa2.png)
}

.outbound_search .search-box .select-place .title::before {
    background-image: url(https://materials.fillo.com.tw/materials/goldenteam/images/3a125b88-29fc-4846-9906-fdeb1902429d.png)
}

.outbound_search .search-box .select-date .title::before {
    background-image: url(https://materials.fillo.com.tw/materials/goldenteam/images/33547411-d543-4c0b-adba-99cbd7a8dac3.png)
}

.inbound_search section.group_banner .search-area .search-box .search-btn {
    margin-top: 5px;
    color: #fff;
    margin-top: 0;
    height: 100%
}

.outbound_search section.group_banner .search-area .search-box .search-btn {
    background: #88769e;
    color: #fff;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    flex-wrap: nowrap;
    align-content: center
}

.inbound_search section.group_banner .search-area .search-box .search-btn i {
    display: none
}

.inbound_search .search-area .search-box .search-btn h5,
.outbound_search .search-area .search-box .search-btn h5 {
    font-size: 1rem;
    font-size: 0 !important;
    position: relative;
    margin-bottom: 0;
    padding-left: 10px;
}

.inbound_search .search-area .search-box .search-btn h5:before {
    content: "";
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/29456e32-8a1c-435f-b24d-cfb48bda6495.png);
    position: absolute;
    top: 0;
    left: -28px;
    right: 6px;
    width: 24px;
    height: 24px;
    background-repeat: no-repeat
}

.inbound_search .search-area .search-box .search-btn h5:after {
    content: "搜尋";
    font-size: 1.15rem;
    color: #fff;
    letter-spacing: 5px
}

.outbound_search .search-area .search-box .search-btn h5:before {
    content: "";
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/29456e32-8a1c-435f-b24d-cfb48bda6495.png);
    position: absolute;
    top: 0;
    left: 58px;
    width: 24px;
    height: 24px;
    background-repeat: no-repeat
}

.outbound_search .search-area .search-box .search-btn h5:after {
    content: "搜尋";
    font-size: 1.15rem;
    color: #fff;
    margin-right: -9px;
    letter-spacing: 5px
}

.outbound_search .search-area .search-box .search-btn:hover h5:after {
    right: 17px;
    transition: .2s;
    opacity: .85
}

.outbound_search .search-area .search-box .search-btn i {
    display: none
}

.inbound_search section.group_banner .search-area .search-box .select-input {
    border-bottom: 1px solid #fff;
    position: relative
}

.inbound_search section.group_banner .search-area .search-box .select-input>input::placeholder {
    color: #686767
}

.inbound_search section.group_banner .search-area .search-box .select-input>input {
    line-height: 30px;
    height: 35px;
    margin-top: 30px;
    padding-left: 10px
}

.inbound_search section.search_banner .search-area .search-box .select-input .data-icon-search {
    top: calc(12px);
    color: #fff;
    display: none
}

.outbound_search section.group_banner .search-area .search-box .select-input>input {
    background: #fff
}

.outbound_search section.group_banner .search-area .search-box .select-input {
    border-bottom: 1px solid #fff
}

.outbound_search section.group_banner .search-area .search-box .select-input>input::placeholder {
    color: #686767
}

.outbound_search section.group_banner .search-area .search-box .select-input>input {
    height: 26px;
    margin-top: 30px;
    line-height: 30px;
    margin-top: 40px;
    padding-left: 10px;
    color: #686767 !important
}

.outbound_search section.search_banner .search-area .search-box .select-input .data-icon-search {
    top: calc(12px);
    color: #fff;
    display: none
}

.inbound_search .search-box .title::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 1px;
    right: 6px;
    width: 20px;
    height: 20px;
    background-repeat: no-repeat;
    display: none
}

.inbound_search .search-box .select-departure .title::before {
    background-image: url(https://materials.fillo.com.tw/materials/tkt888/images/601b26ba-eb94-46ae-8147-6546b1133578.png)
}

.inbound_search .search-box .select-destination .title::before {
    background-image: url(https://materials.fillo.com.tw/materials/tkt888/images/4aff90a5-5fa2-48a4-9f97-6ed4e4f49c38.png)
}

.inbound_search .search-box .select-date .title::before {
    background-image: url(https://materials.fillo.com.tw/materials/tkt888/images/fdaa0593-b1ef-42cf-b84b-850794ab907d.png)
}

.inbound_search .search-box .select-keywords .title::before {
    background-image: url(https://materials.fillo.com.tw/materials/tkt888/images/0a71a529-0098-4f29-96a0-271881b53ce4.png)
}

.datepicker table tr th.dow {
    color: #04abf2;
    border-bottom: 1px solid #ebebeb
}

.datepicker table tr th.dow:nth-last-child(1),
.datepicker table tr th.dow:nth-last-child(2) {
    color: #ff9191
}

.datepicker .next,
.datepicker .prev {
    background: #eee;
    border-radius: 50px
}

.datepicker table tr th.clear {
    color: #999
}

.datepicker table tr td,
.datepicker table tr th {
    text-align: center;
    width: 30px;
    height: 30px;
    border-radius: 4px;
    border: none;
    font-size: 15px
}

.datepicker table tr td.disabled,
.datepicker table tr td.disabled:hover {
    color: #bbb
}

.inbound_search section.group_banner .search-area .search-box>div:not(:last-child),
.outbound_search .group_banner .search-area .search-box>div {
    border-right: 1px solid #cdc2bc;
    padding: 0 15px !important
}

.inbound_search section.group_banner .search-area .search-box>div:not(:last-child),
.outbound_search .group_banner .search-area .search-box>div:not(:last-child) {
    border-right: 1px solid #cdc2bc;
    padding: 0 15px !important
}

@media (max-width:991px) {
    .inbound_search section.group_banner .search-area .search-box .select-input>input {
        margin-top: 15px
    }

    .outbound_search section.group_banner .search-area .search-box .select-input>input {
        height: 40px;
        margin-top: 0
    }

    .outbound_search section.group_banner .search-area .search-box div div {
        height: auto !important
    }

    .outbound_search .search-area .search-box .select-date .select {
        width: 100%
    }
}

@media (max-width:767px) {

    .inbound_search section.group_banner .search-area .search-box .search-btn,
    .outbound_search section.group_banner .search-area .search-box .search-btn {
        height: 45px;
        line-height: 45px;
        margin-top: 0
    }

    .inbound_search,
    .outbound_search,
    .search_tabs {
        border-bottom: 0 !important
    }

    .outbound_search section.group_banner.search_banner {
        width: 100%
    }

    .outbound_search section.group_banner .search-area .search-box {
        margin: .5rem 0 .5rem
    }

    .outbound_search section.group_banner .search-area .search-box div .select-date,
    .outbound_search section.search_banner .search-area .search-box .select-goal,
    .outbound_search section.search_banner .search-area .search-box .select-place {
        padding: 10px 0 !important
    }

    .outbound_search .group_banner.search_banner .search-area>.container {
        margin-top: 1rem;
        margin-bottom: 1rem
    }

    .inbound_search section.group_banner .area_input,
    .outbound_search .search-area .search-box .select select,
    .outbound_search section.group_banner .search-area .search-box div .select-date input.date-end,
    .outbound_search section.group_banner .search-area .search-box div .select-date input.date-start {
        height: 36px !important
    }
}

.iframe-slider iframe {
    height: 800px !important;
}

/*Start Module*/
.main_slider {
    margin-top: 4rem;
}

.main_slider .bs-carousel {
    display: flex;
    flex-direction: column
}

.main_slider .carousel-indicators {
    order: 12;
    z-index: 10;
    padding: 10px 10px;
    margin: 0;
    bottom: 3rem;
    max-width: 1440px;
    margin: 0 auto;
    display: none;
}

.main_slider .carousel-indicators li {
    width: 100px;
    height: 3px;
    overflow: hidden;
    opacity: 1;
    margin: 1px;
    background-color: #ffffffb3;
    border-top: 10px solid transparent;
    border-bottom: 10px solid transparent;
    margin-right: 8px
}

.main_slider .carousel-indicators li.active {
    background-color: #fff;
    height: 5px;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent
}

.main_slider .carousel-control-next-icon {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/43ad30e1-f8b2-479f-9799-185e7554c271.png)
}

.main_slider .carousel-control-prev-icon {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/6c75b1d2-2d36-4d04-9864-2ec504b659b8.png)
}

.main_slider .carousel-control-next-icon,
.main_slider .carousel-control-prev-icon {
    width: 100px;
    height: 140px;
    margin-top: 50px
}

.main_slider .carousel-inner picture::before {
    content: "";
    position: absolute;
    background: linear-gradient(0deg, #0000000f, #00000000);
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 2
}

.main_slider .bs-carousel .carousel-caption {
    top: 65%;
    z-index: 10000;
    text-align: left;
    height: fit-content;
    transform: translate(0, -50%)
}

.main_slider .bs-carousel .carousel-caption .text {
    z-index: 10000;
    max-width: 1440px;
    right: 15px
}

.main_slider .bs-carousel .carousel-item p {
    font-size: 1rem;
    text-shadow: none;
    letter-spacing: 3px;
    opacity: 0.7;
}

.main_slider .bs-carousel .carousel-item h3,
.main_slider .bs-carousel .carousel-item h3 span,
.main_slider .bs-carousel .carousel-item h3 strong {
    font-size: 4.4rem;
    margin-bottom: .75rem;
    font-weight: 400;
    opacity: .9;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    font-weight: 400;
    font-style: normal;
}

.main_slider .bs-carousel .carousel-item h3.en,
.main_slider .bs-carousel .carousel-item h3.en span,
.main_slider .bs-carousel .carousel-item h3.en strong {
    font-family: 'Playfair Display', 'Noto serif TC', serif
}

.main_slider .bs-carousel .carousel-item h5 {
    text-shadow: none;
    margin-top: 3rem;
    margin-bottom: 3rem;
    letter-spacing: .25rem;
    font-weight: 400;
    font-size: 1.5rem;
    z-index: 10000;
    padding: 4px 0;
    position: relative;
    overflow: hidden;
    color: #fff;
    opacity: .9
}

.main_slider .carousel-control-next,
.main_slider .carousel-control-prev {
    opacity: 0.5;
    display: none;
}

.main_slider:hover .carousel-control-next,
.main_slider:hover .carousel-control-prev {
    opacity: .8
}

@keyframes scaleDraw {
    0% {
        transform: scale(1)
    }

    100% {
        transform: scale(1)
    }
}

@media (min-width:1440px) {
    .main_slider .bs-carousel .carousel-item {
        width: 100% !important
    }

    .main_slider .bs-carousel .carousel-inner picture {
        width: 100%
    }

    .main_slider .bs-carousel .carousel-inner img {
        -webkit-animation-name: scaleDraw;
        animation-name: scaleDraw;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        -webkit-animation-iteration-count: infinite;
        animation-iteration-count: infinite;
        -webkit-animation-duration: 10s;
        animation-duration: 10s;
        transition: all .35s ease
    }
}

@media (max-width:1440px) {


    .main_slider .carousel-indicators {
        bottom: 1rem
    }

    .main_slider .carousel-indicators li {
        width: 75px
    }

    .main_slider .bs-carousel .carousel-item p.main_btn {
        margin-top: .5rem;
        padding: .75rem 2.5rem;
        border: 1px solid #fff;
        font-size: 1rem;
        letter-spacing: 3px
    }

    .main_slider .bs-carousel .carousel-item h3,
    .main_slider .bs-carousel .carousel-item h3 span,
    .main_slider .bs-carousel .carousel-item h3 strong {
        font-size: 3rem;
        margin-bottom: .75rem;
    }

    .main_slider .bs-carousel .carousel-item h3.en,
    .main_slider .bs-carousel .carousel-item h3.en span,
    .main_slider .bs-carousel .carousel-item h3.en strong {
        font-size: 2.6rem
    }

    .main_slider .bs-carousel .carousel-item h5 {
        text-shadow: none;
        margin-top: 2rem;
        margin-bottom: 1.5rem;
        letter-spacing: .25rem;
        font-size: 1.25rem;
        padding: 4px 0;
    }
}

@media (max-width:1199px) and (min-width:991px) {
    .main_slider .bs-carousel .carousel-item h3 {
        font-size: 2.8rem
    }

    .main_slider .bs-carousel .carousel-item h5 {
        font-size: 1rem;
        margin-top: 2rem;
        margin-bottom: 1rem
    }
}

@media (max-width:991px) {

    .main_slider .bs-carousel .carousel-item h3,
    .main_slider .bs-carousel .carousel-item h3 span,
    .main_slider .bs-carousel .carousel-item h3 strong {
        font-size: 2.4rem;
    }

    .main_slider .bs-carousel .carousel-item h5 {
        font-size: 1rem
    }
}

@media (max-width:767px) {
    .main_slider .bs-carousel .carousel-caption {
        display: block !important;
        top: 55%;
        right: 5%;
        left: 5%
    }

    .main_slider .bs-carousel .carousel-item h3,
    .main_slider .bs-carousel .carousel-item h3 span,
    .main_slider .bs-carousel .carousel-item h3 strong {
        font-size: 1.75rem;
        letter-spacing: .1rem
    }

    .main_slider .bs-carousel .carousel-item h5 {
        font-size: 1rem
    }

    .main_slider .carousel-indicators li {
        width: 60px
    }

    .main_slider .carousel-indicators {
        padding: 10px 15px
    }

    .main_slider {
        margin-top: 1.25rem;
    }
}

@media (max-width:576px) {
    .main_slider .bs-carousel .carousel-caption .text {
        padding: 10px 20px
    }

    .main_slider .bs-carousel .carousel-item h3,
    .main_slider .bs-carousel .carousel-item h3 span,
    .main_slider .bs-carousel .carousel-item h3 strong {
        font-size: 1.5rem
    }

    .main_slider .bs-carousel .carousel-item h5 {
        font-size: 1rem
    }

    .main_slider {
        margin-top: 0.25rem;
    }
}

.main_nav {
    margin: 0rem auto 4rem auto;
}

.main_nav div.link-list {
    text-align: center;
    border-bottom: 1px solid #000;
}

.main_nav div.link-list ul li {
    padding: 0 1.5rem
}

.main_nav div.link-list ul li a,
.main_nav div.link-list ul li span {
    width: fit-content;
    padding: 5px 15px;
    letter-spacing: .1rem;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    font-family: 'Noto Sans TC', Sans-serif;
    font-weight: 300;
}

.main_nav div.link-list ul li a:hover,
.main_nav div.link-list ul li span:hover {
    font-weight: 400;
}

.main_nav.light div.link-list ul li a,
.main_nav.light div.link-list ul li span {
    border: 1px solid #fff;
}

.main_nav.light div.link-list ul li a:hover,
.main_nav.light div.link-list ul li span:hover {
    background: #00000014
}

@media (max-width:1200px) {
    .main_nav {
        margin: 0rem auto 2rem auto;
    }
}

@media (max-width:991px) {
    .main_nav {
        margin: 0rem auto 2rem auto;
    }

    .main_nav div.link-list ul li {
        padding: 0 0.5rem;
    }

    .main_nav div.link-list ul li a,
    .main_nav div.link-list ul li span {
        padding: 5px 15px;
        margin-bottom: 1.0rem;
    }
}

@media (max-width:767px) {
    .main_nav {
        margin: 0rem auto 2rem auto;
    }

    .main_nav div.link-list ul {
        display: inline-flex;
        flex-wrap: wrap;
    }

    .main_nav div.link-list ul li {
        padding: 0 0.25rem;
        -ms-flex: 0 0 33.333333%;
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }

    .main_nav div.link-list ul li a,
    .main_nav div.link-list ul li span {
        padding: 8px 5px;
        margin-bottom: 0rem;
        font-size: 1.0rem !important;
    }
}

@media (max-width:565px) {
    .main_nav {
        margin: 0rem auto;
    }

    .main_nav div.link-list {
        padding: 0 10px;
    }

    .main_nav div.link-list ul li a,
    .main_nav div.link-list ul li span {
        padding: 6px 2px;
        margin-bottom: 0rem;
        font-size: 1.0rem !important;
    }
}

.post_mix {
    margin: 3.0rem 0;
}

.post_mix .mix-wrapper {
    padding: 0;
}

.post_mix .row {
    background: 0 0 !important
}

.post_mix .editor-content {
    padding-right: 30px;
    padding-left: 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.post_mix h3 {
    font-size: 2.0rem;
    margin: .5rem 0;
    font-weight: 600;
    position: relative;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    font-family: "Josefin Sans", sans-serif;
    color: #000;
}

.post_mix h5 {
    font-size: 1.1rem;
    position: relative;
    margin: .5rem 0;
    font-weight: 300;
    line-height: 1.8;
    letter-spacing: .1rem;
    color: #000;
}

.post_mix p,
.post_mix span {
    margin: 0.5rem 0;
    line-height: 1.5;
    font-size: .85rem;
    letter-spacing: .1rem;
    color: #848484;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    margin-bottom: 1rem;
    font-weight: 300
}

.post_mix .more_btn {
    margin: 1.5rem 0 1.5rem 0;
    right: 60px;
    bottom: 15px;
    0CONTAIN-INTRINSIC-BLOCK-SIZE: AUTO 100PX
}

.post_mix .more_btn a {
    transition: .5s;
    margin: 20px 0;
    padding: 15px 30px 12px 30px;
    text-align: right;
    font-weight: 400;
    box-shadow: none;
    background: #fff;
    color: #572b8b;
    border: 1px solid #572b8b;
    letter-spacing: 1px;
    position: relative;
    justify-content: flex-end;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    font-size: 1.1rem;
}

.post_mix.style-2 .mix-wrapper>.row:nth-child(1) .editor-content {
    padding-right: 50px;
    padding-left: 60px;
}

.post_mix.style-2 .mix-wrapper>.row:nth-child(2) .editor-content {
    padding-left: 50px;
    padding-right: 50px;
}

.post_mix.style-2 .mix-wrapper>.row:nth-child(1) .pic-content {
    display: none
}

.post_mix.style-2 h2.en {
    font-size: 3.6rem;
    margin-bottom: 3rem;
    letter-spacing: .3rem;
}

.post_mix.style-2 h3 {
    font-size: 2.0rem;
}

.post_mix.style-2 h5 {
    margin: 0.5rem 0;
}

.post_mix.style-2 p,
.post_mix.style-2 span {
    margin: 0.5rem 0;
}

@media (min-width:767px) {
    .post_mix.style-2 .mix-wrapper {
        display: flex;
        justify-content: space-evenly;
    }

    .post_mix.style-2 .mix-wrapper>.row {
        -ms-flex: 0 0 50%;
        flex: 0 0 50%;
        max-width: 50%
    }

    .post_mix .more_btn a:hover:after {
        right: 16px
    }

    .post_mix .more_btn a:hover {
        transition: .2s;
        background: #572b8b;
        color: #fff;
    }
}

@media (max-width:1600px) {
    .post_mix {
        margin: 2.0rem 0;
        padding: 0 60px;
    }
}

@media (max-width:1200px) {
    .post_mix {
        margin: 1.5rem 0;
    }

    .post_mix h3 {
        font-size: 2.0rem;
        letter-spacing: .1rem;
    }

    .post_mix .editor-content {
        padding-left: 30px;
    }

    .post_mix.style-2 .editor-content {
        padding-left: 80px;
    }
}

@media (max-width:991px) {
    .post_mix .editor-content {
        padding-left: 15px;
        margin-top: 0;
    }

    .post_mix.style-2 .editor-content {
        padding-left: 60px;
        padding-right: 20px;
    }

    .post_mix.style-2 .mix-wrapper>.row:nth-child(2) .editor-content {
        padding-left: 60px;
        padding-right: 70px;
    }

    .post_mix .editor-content.order-md-first {
        padding-right: 15px;
        padding-left: 15px
    }

    .post_mix h3 {
        font-size: 1.5rem !important;
    }

    .post_mix h5 {
        font-size: 1.0rem;
    }
}

@media (max-width:767px) {
    .about_title .title_style h3 span {
        font-size: 2.5rem;
        letter-spacing: .3rem
    }

    .post_mix {
        margin: 1rem 0;
        padding: 0 60px;
    }

    .post_mix .editor-content {
        padding-right: 30px;
        padding-left: 30px;
        text-align: center;
    }

    .post_mix h3 {
        margin: .5rem 0 .5rem 0;
        font-size: 1.25rem !important;
    }

    .post_mix h5 {
        margin: .5rem 0 1rem 0;
        font-size: 1rem;
    }

    .post_mix p,
    .post_mix span {
        line-height: initial;
        font-size: 0.8rem;
        margin: inherit
    }

    .post_mix .more_btn {
        text-align: center;
        margin-top: 1.5rem;
        position: relative;
        right: unset;
        bottom: unset
    }
}

@media (max-width:575px) {
    .post_mix {
        margin: .5rem 0;
        padding: 0 30px;
    }

    .post_mix .editor-content,
    .post_mix.style-2 .editor-content {
        padding-right: 20px !important;
        padding-left: 20px !important;
        margin: 0;
        text-align: center;
    }

    .post_mix.style-2 h2.en {
        font-size: 2.0rem;
        margin-bottom: 2rem;
    }

    .post_mix .more_btn a {
        margin: 20px 0;
        padding: 11px 15px 8px 15px;
        font-size: .85rem;
    }
}

.tour_slider {
    padding-bottom: 4rem;
    margin-bottom: 4rem;
    border-bottom: 1px solid #000 !important;
    z-index: 1;
}

.tour_slider .swiper-wrapper {
    padding-top: 54px
}

.tour_slider .swiper-slide-style {
    box-shadow: none;
    border-radius: 0;
    overflow: hidden;
    margin-top: 10px;
    height: auto;
    background: #fff;
    margin-bottom: 0;
    position: relative
}

.tour_slider .swiper-slide .swiper-img img {
    border-radius: 0
}

.tour_slider .swiper-slide:hover .swiper-img img {
    -webkit-filter: brightness(90%);
    filter: brightness(90%)
}

.tour_slider .swiper-slide .swiper-content {
    padding: 0 1.5rem;
    color: #000;
    text-align: center;
    position: relative;
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
    font-weight: 300;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif
}

.tour_slider .swiper-slide .swiper-title {
    padding: 10px 10px;
    margin: 0;
    color: #000;
    font-size: 1.1rem;
    font-weight: 300 !important;
    overflow: hidden;
    white-space: normal;
    letter-spacing: 0.5px;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
}

.tour_slider .swiper-slide .swiper-content ul {
    margin-bottom: 0
}

.tour_slider .swiper-slide .swiper-content li {
    font-size: 1.1rem;
    margin: .2rem 0 .5rem 0 !important;
    text-align: left;
    margin: 0;
    color: #656d7f;
    font-weight: 400;
    font-family: 'Noto Sans TC', serif
}

.tour_slider .swiper-slide .swiper-content li:before {
    left: 0;
    font-size: 1rem
}

.tour_slider .swiper-slide .swiper-content .price {
    color: #565656;
    font-weight: 800;
    font-size: 1.5rem;
    letter-spacing: .03rem;
    font-family: 'Noto Sans TC', serif;
    text-align: left
}

.tour_slider .swiper-slide .swiper-content .price:before {
    content: "$";
    left: 0;
    color: #474747;
    overflow: hidden;
    line-height: 1.5
}

.tour_slider .swiper-slide .swiper-content .price .up {
    font-size: .9rem;
    content: "èµ·";
    line-height: 1.8;
    color: #9ca1ad;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    font-weight: 500
}

.tour_slider .swiper-pagination {
    position: absolute;
    right: 0;
    bottom: 0;
    list-style: none;
    display: none;
    text-align: center;
    padding: 0;
    margin: 15px 0;
    height: 30px;
    background: #fff
}

.tour_slider .swiper-wrapper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet {
    box-sizing: content-box;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    width: 30px;
    height: 3px;
    margin-right: 3px;
    margin-left: 3px;
    text-indent: -999px;
    cursor: pointer;
    background-color: #fff;
    background-clip: padding-box;
    opacity: .5;
    transition: opacity .6s ease;
    width: 10px;
    height: 10px;
    border-radius: 100%;
    overflow: hidden;
    opacity: 1;
    padding: 0;
    background-color: #9a9a9a;
    border: 10px solid #ffffff00;
    line-height: 12px;
    font-size: 3px
}

.tour_slider .swiper-wrapper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet.swiper-pagination-bullet-active {
    background-color: #8c783c
}

.tour_slider .swiper-button-next,
.tour_slider .swiper-button-prev {
    top: 30px;
    bottom: 0;
    height: 40px;
    width: 40px;
    line-height: 0;
    font-size: 0;
    cursor: pointer;
    background: 0 0;
    opacity: 1;
    color: #331919;
    border: 1px solid #000;
    border-radius: 100%
}

.tour_slider .swiper-button-disabled {
    opacity: 0.5
}

.tour_slider .swiper-button-prev {
    right: 66px;
    left: unset
}

.tour_slider .swiper-button-next:after,
.tour_slider .swiper-button-prev:after {
    padding: 0;
    font-size: 1rem;
    font-weight: 600;
    color: #000;
    background: #00000000;
}

.tour_slider .swiper-button-next:hover:after {
    padding-left: 2px;
}

.tour_slider .swiper-button-prev:hover:after {
    padding-right: 2px
}

@media (max-width:767px) {
    .tour_slider {
        padding: 0 40px;
        margin-bottom: 0
    }

    .tour_slider .swiper-slide-style {
        margin-top: 0
    }

    .tour_slider .swiper-slide .swiper-title,
    .tour_slider .swiper-slide .swiper-content {
        padding: 5px 10px;
        font-size: 1.0rem;
    }
}

@media @media (min-width:767px) {
    .tour_slider .swiper-slide-style:hover h3 {
        bottom: 22px;
        transition: .25s
    }
}

@media (max-width:565px) {
    .tour_slider .swiper-wrapper {
        padding-top: 54px;
    }

    .tour_slider .swiper-button-next,
    .tour_slider .swiper-button-prev {
        height: 30px;
        width: 30px;
    }

    .tour_slider .swiper-button-prev {
        right: 50px;
    }
}

.title_style h2 {
    margin-bottom: 1rem;
    font-family: 'Noto Serif TC', serif;
    margin: 3.0rem 0 0 0;
}

.title_style h3 {
    margin-bottom: 2rem;
    font-size: 2.4rem;
}

.title_style .title {
    margin-bottom: 1.0rem;
    letter-spacing: .75rem;
    font-size: 2.4rem;
    font-family: 'Noto serif TC', serif;
}

.title_style .text {
    margin-bottom: 1.0rem;
    letter-spacing: .1rem;
    font-weight: bold;
    font-size: 1.25rem;
}

@media (max-width:1200px) {
    .title_style {
        padding: 0 60px;
    }
}

@media (max-width:767px) {

    .title_style h2,
    .title_style .title {
        font-size: 1.5rem;
        letter-spacing: .25rem;
    }

    .title_style h3,
    .title_style .text {
        font-size: 1rem;
        margin-top: .5rem;
        margin-bottom: 1rem;
        letter-spacing: .02rem;
    }

    .about {
        margin-bottom: 8rem;
    }

    .about.title_style h2,
    .about.title_style .title {
        margin-top: 1rem;
    }
}

.trending_news .list-wrapper {
    padding: 0;
}

.trending_news .list-wrapper .row {
    margin-bottom: 45px;
}

.trending_news .list-wrapper .pic-block {
    -ms-flex: 0 0 33.333333%;
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
    display: flex;
    align-items: center;
    order: 3;
    padding: 10px;
}

.trending_news .list-wrapper .name-block {
    display: flex;
    order: 2;
    -ms-flex: 0 0 41.666667%;
    flex: 0 0 41.666667%;
    max-width: 41.666667%;
    padding-right: 8%;
}

.trending_news .list-wrapper .name-block a {
    font-size: 2.0rem;
    line-height: 1.5;
    font-family: 'Noto Sans TC', Sans-serif;
}

.trending_news .list-wrapper .note-block {
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
    order: 1;
    font-size: 1.1rem;
    color: #565656;
    letter-spacing: .2rem;
    padding-left: 0;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
}

.trending_news .price-block {
    display: none
}

@media (max-width:1200px) {
    .trending_news {
        padding: 0 60px;
    }

    .trending_news .list-wrapper .name-block a {
        font-size: 1.5rem;
    }
}

@media @media (max-width:767px) {
    .trending_news .list-wrapper .pic-block {
        -ms-flex: 0 0 41.666667%;
        flex: 0 0 41.666667%;
        max-width: 41.666667%;
        margin-bottom: 10px;
    }

    .trending_news .list-wrapper .name-block {
        padding-right: 10px;
        padding-left: 0;
        -ms-flex: 0 0 58.333333%;
        flex: 0 0 58.333333%;
        max-width: 58.333333%;
        padding-top: 5px;
        padding-bottom: 0px;
    }

    .trending_news .list-wrapper .note-block {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
        font-size: 0.8rem;
        padding-top: 5px;
        padding-bottom: 5px;
        letter-spacing: .1rem;
    }

    .trending_news .list-wrapper .name-block a {
        font-size: 1.25rem;
    }

    .trending_news .list-wrapper .row {
        margin-bottom: 15px;
    }
}

@media (max-width:565px) {
    .trending_news .list-wrapper .row {
        border-bottom: 1px solid #ededed !important;
        margin-bottom: 10px;
    }
}


.travel_with {
    margin: 3.0rem 0;
}

.travel_with .bgfixed>a {
    max-width: 1600px !important;
    margin: 0 auto
}

.travel_with .bgfixed section {
    opacity: .9
}

.travel_with .bgfixed section h2:before {
    content: "";
    position: absolute;
    top: -2rem;
    width: 500px;
    height: .5px;
    background-color: #fff;
    transition: transform .3s cubic-bezier(.445, .05, .55, .95);
    transform-origin: 0 50%
}

.travel_with .bgfixed>a:hover section h2:before {
    transform: scaleX(120%);
    transition: transform .7s cubic-bezier(.19, 1, .22, 1)
}

.travel_with .bgfixed section h2 {
    margin-bottom: 2rem;
    font-size: 3rem;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    letter-spacing: .15rem;
    position: relative
}

.travel_with .bgfixed section h3 {
    font-weight: 300;
    letter-spacing: .5rem
}

.travel_with .bgfixed section p {
    margin-bottom: 4rem;
    font-size: 1.25rem;
    font-weight: 300;
    letter-spacing: .25rem
}

@media (max-width:767px) {
    .travel_with {
        margin: 1.0rem 0;
    }

    .travel_with .bgfixed,
    .travel_with .bgfixed>a {
        min-height: 50vh !important;
        background-attachment: initial !important;
    }

    .travel_with .bgfixed section h2 {
        font-size: 2rem;
        margin-bottom: 1.5rem;
    }

    .travel_with .bgfixed section h2:before {
        width: 100%;
        top: -1.5rem;
    }

    .travel_with .bgfixed section h3 {
        font-size: 1.25rem;
    }

    .travel_with .bgfixed section p {
        font-size: 1.0rem;
        margin-bottom: 3rem;
    }
}

.index_about {
    margin-top: 3rem;
}

@media (max-width:1200px) {
    .index_about {
        margin-top: 0rem;
    }
}

.main_about_01 {
    margin-top: 3rem
}

.main_about_01 .mix-wrapper {
    padding: 0;
}

.main_about_01 .editor-content,
.main_about_01 .pic-content {
    margin: 0;
}

.main_about_01 .editor-content {
    z-index: 1;
}

.main_about_01 .pic-content {
    z-index: 0;
}

.main_about_01 .mix-wrapper h1 {
    margin-bottom: -1.25rem;
}

.main_about_01 .mix-wrapper h1 span {
    font-size: 7.5rem;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    letter-spacing: 0;
    margin-bottom: 0;
    color: #572b8b;
}

@media (max-width:1480px)and (min-width:1200px) {
    .main_about_01 {
        -ms-flex: 0 0 70%;
        flex: 0 0 70%;
        max-width: 70%;
        margin-bottom: 2.0rem;
    }

    .main_about_02 {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }
}

@media (max-width:1200px)and (min-width:991px) {
    .main_about_01 {
        -ms-flex: 0 0 80%;
        flex: 0 0 80%;
        max-width: 80%;
        margin-bottom: 2.0rem;
    }
}

@media (max-width:991px) {
    .main_about_01 .mix-wrapper h1 {
        padding-right: 60px;
    }

    .main_about_01 .mix-wrapper h1 span {
        font-size: 5.5rem;
        letter-spacing: -0.1rem;
    }
}

@media (max-width:767px) {
    .main_about_01 .mix-wrapper h1 span {
        font-size: 3.5rem;
    }

    .main_about_01 .mix-wrapper {
        padding: 0px 15px;
    }
}

@media (max-width:575px) {
    .main_about_01 .mix-wrapper .row {
        margin-right: -15px;
        margin-left: -15px;
    }

    .main_about_01 .mix-wrapper h1 {
        text-align: left !important;
        margin-top: 1.0rem;
    }

    .main_about_01 .mix-wrapper h1 span {
        font-size: 2.4rem;
        letter-spacing: -0.3rem;
    }
}

.main_about_02 .pic-content {
    padding-right: 0;
}

.main_about_02 .mix-wrapper {
    padding: 15px;
}

.main_about_02 .editor-content {
    padding-left: 10%;
    margin-top: 6rem
}

.main_about_02 .editor-content h6 {
    font-weight: 400;
    margin-bottom: 1rem
}

.main_about_02 .editor-content .more_btn {
    margin: 1.5rem 0 1.5rem 0;
    right: 60px;
    bottom: 15px
}

.main_about_02 .editor-content .more_btn a {
    transition: .5s;
    margin: 20px 0;
    padding: 12px 30px;
    text-align: right;
    box-shadow: none;
    background: #fff;
    color: #572b8b;
    border: 1px solid #572b8b;
    letter-spacing: 1px;
    position: relative;
    justify-content: flex-end;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
}

@media (max-width:1200px) {
    .main_about_02 .editor-content {
        padding-left: 6%;
        margin-top: 4rem;
        -ms-flex: 0 0 70%;
        flex: 0 0 70%;
        max-width: 70%;
    }

    .main_about_02 .pic-content {
        -ms-flex: 0 0 30%;
        flex: 0 0 30%;
        max-width: 30%;
    }
}

@media (min-width:767px) {
    .main_about_02 .editor-content .more_btn a:hover {
        transition: .2s;
        background: #572b8b;
        color: #fff;
    }
}

@media (max-width:767px) {
    .main_about_02 .editor-content {
        padding-left: 60px;
        padding-right: 60px;
        margin-top: 2rem;
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }

    .main_about_02 .editor-content h6 {
        margin-bottom: 0rem;
        line-height: 1.8;
    }

    .main_about_02 .pic-content {
        display: none;
    }
}

@media (max-width:575px) {
    .main_about_02 .editor-content .more_btn a {
        margin: 20px 0;
        padding: 8px 15px;
        font-size: .85rem;
    }


    .main_about_02 .editor-content p {
        margin: 0;
    }

    .main_about_02 .editor-content img {
        max-width: 100% !important;
    }

    .main_about_02 .editor-content .more_btn {
        text-align: center;
    }
}

.more_nav {
    margin: 6rem auto 8rem auto;
    border-top: 1px #000 solid !important;
    padding-top: 5rem;
}

.more_nav div.link-list {
    text-align: center
}

.more_nav .text-link h2 {
    margin-bottom: 2rem;
    font-weight: 400;
}

.more_nav div.link-list ul li {
    padding: 0 1.0rem;
}

.more_nav div.link-list ul li a,
.more_nav div.link-list ul li span {
    width: fit-content;
    min-width: 100px;
    border-radius: 50px;
    border: 1px solid #572b8b;
    padding: 10px 15px 5px 15px;
    letter-spacing: .1rem;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    background: #fff;
    line-height: 30px;
}


.more_nav.light div.link-list ul li a,
.more_nav.light div.link-list ul li span {
    border: 1px solid #fff;
}

.more_nav.light div.link-list ul li a:hover,
.more_nav.light div.link-list ul li span:hover {
    background: #00000014
}

@media (max-width:1200px) {
    .more_nav {
        margin: 4rem auto 5rem auto;
    }
}

@media (max-width:991px) {
    .more_nav {
        margin: 3rem auto 3rem auto;
        padding-top: 4rem;
    }

    .more_nav div.link-list ul li {
        padding: 0 0.5rem;
    }

    .more_nav div.link-list ul li a,
    .more_nav div.link-list ul li span {
        padding: 5px 15px;
        margin-bottom: 1.0rem;
    }
}

@media (max-width:767px) {
    .more_nav {
        margin: 2rem auto 2rem auto;
        max-width: 95%;
        padding-top: 3rem;
    }

    .more_nav div.link-list ul li {
        padding: 0 0.25rem;
    }

    .more_nav div.link-list ul li a,
    .more_nav div.link-list ul li span {
        padding: 3px 5px;
        margin-bottom: 1.0rem;
        font-size: 1.0rem !important;
    }
}

@media (max-width:575px) {
    .more_nav {
        margin: 2rem auto 2rem auto;
        max-width: 90%;
        padding-top: 2rem;
    }

    .more_nav div.link-list ul li a,
    .more_nav div.link-list ul li span {
        font-size: .9rem !important;
        min-width: 90px;
    }
}

@media (max-width:991px) {
    .footer .module-container>.main {
        background-image: none !important;
        background-color: #572b8b !important;
    }

    .footer .footer-sample .contact-us-part .contact-use-row {
        color: #ffffff !important;
    }
}


.footer_info {
    border-top: 1px solid #d1d1d1 !important;
}

.footer_info .footer-sample {
    max-width: 1400px;
    margin: 0 auto;
    background: none !important;
}

.footer_info .col-sm-2,
.footer_info .col-sm-3,
.footer_info .col-sm-7 {
    -ms-flex: 0 0 33.333333%;
    flex: 0 0 33.333333%;
    max-width: 33.333333%
}

.footer_info .col-sm-3 {
    order: 1
}

.footer_info .col-sm-7 {
    order: 0
}

.footer_info .col-sm-2 {
    order: 2
}

.footer_info .col-sm-3 .logo-part .logo {
    text-align: center;
}

.footer_info .col-sm-3 .logo-part .logo img {
    margin: 0 auto;
}

.footer_info .footer-sample .contact-us-part .contact-use-row {
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
}

.footer_info .powered {
    display: none
}

.footer_info .service-item-part {
    text-align: right;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap
}

.footer_info .service-item-part .service-items a {
    color: #fff !important;
    font-size: 1.25rem;
    letter-spacing: .05rem;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    font-weight: 500;
    margin-bottom: 1rem;
    position: relative;
    overflow: hidden;
    padding-bottom: .25rem;
}

.footer_info .service-item-part .service-items a:before {
    content: '';
    width: 100%;
    height: 1px;
    position: absolute;
    bottom: 0
}

.footer_info .service-item-part .social-btn a {
    color: #000 !important
}

.footer_info .service-item-part .social-btn a {
    color: #000 !important;
    position: relative;
    margin: 30px;
    padding: 10px;
}

.footer_info .service-item-part .social-btn a:hover {
    opacity: 0.9
}

.footer_info .service-item-part .social-btn a .fa {
    font-size: 0;
}

.footer_info .service-item-part .social-btn a::before {
    content: "";
    position: absolute;
    display: block;
    width: 42px;
    height: 42px;
    left: 0;
    top: 0px;
    -ms-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
    background-repeat: no-repeat;
    background-position: center;
}

.footer_info .service-item-part .social-btn a:nth-child(1)::before {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/53b3e3f8-e1d3-4ac8-8e15-aed607298ba1.png);
}

.footer_info .service-item-part .social-btn a:nth-child(3)::before {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/db199f6e-3354-4796-bef2-3c891f4b4987.png);
}

.footer_info .service-item-part .social-btn a:nth-child(2)::before {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/7bf1ecfc-bf7e-4112-b215-26a184ed4717.png);
}

.footer_info .service-item-part .social-btn a:nth-child(4)::before {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/1fd59731-4c63-4801-8ecc-b7bacbc20e2b.png);
}

.footer_info .footer-sample .powered {
    max-width: 1400px;
    margin: 0 auto
}

.footer_info .contact-us-part .contact-use-row:nth-last-child(1) {
    font-size: .8rem;
    letter-spacing: 1px;
}

@media (max-width:1200px) {
    .footer_info {
        padding: 0 40px;
    }
}

@media (max-width:991px) {
    .footer_info .col-sm-3 {
        display: none;
    }

    .footer_info .col-sm-2,
    .footer_info .col-sm-7 {
        -ms-flex: 0 0 50%;
        flex: 0 0 50%;
        max-width: 50%;
    }
}

@media (min-width:767px) {
    .footer_info .contact-us-part .contact-use-row:nth-last-child(1) {
        position: absolute;
        bottom: 0;
    }

    .footer_info .footer-sample .service-item-part .social-btn {
        margin-top: 6rem
    }

    .footer_info .powered {
        display: none
    }
}

@media (max-width:767px) {
    .footer_info .col-sm-7 {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }

    .footer_info .col-sm-2 {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
    }

    .footer_info .col-sm-2 .service-items {
        display: none !important;
    }

    .footer_info .col-sm-2 .service-item-part {
        text-align: left;
        margin-top: 0px;
        margin-bottom: 10px;
    }

    .footer_info .service-item-part .social-btn a {
        margin-right: 30px !important;
        margin-left: 0px;
    }

    .footer-sample .contact-us-part {
        margin-bottom: 15px !important;
    }
}

.header {
    position: fixed;
    z-index: 100;
    width: 100%
}

.header_wrapper>.module-container>.main {
    padding: 10px;
    align-items: center;
}

.header_wrapper .menu_btn div.link-list ul li a {
    padding: 13px 10px 7px 50px;
}

.header_wrapper div.link-list ul li a i::before {
    content: "";
    position: absolute;
    display: block;
    width: 50px;
    height: 50px;
    left: 0;
    top: 0;
    -ms-transition: all .3s ease-in-out;
    -o-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
    background-repeat: no-repeat;
    background-position: center;
}

.header_wrapper .menu_btn div.link-list ul li a i::before {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/8db74f9f-f4a4-4fe3-84a4-123b1efd9882.png)
}

.header_wrapper .header_logo .module-container>.main {
    display: flex;
    justify-content: center
}

.header_wrapper .header_login .module-container .text-container {
    margin: 0;
}

.header_wrapper .header_login .module-container>.main div.link-list ul li {
    display: flex !important;
    justify-content: flex-end
}

.header_wrapper .header_login .module-container>.main div.link-list ul li a {
    position: relative;
    padding: 13px 10px 7px 40px;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
}

.header_wrapper .header_login .module-container>.main div.link-list ul li a i::before {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/4ae96788-3d6e-4fff-8ea8-6a9e7e98bce3.png)
}

@media (max-width:991px) {
    .header_wrapper>.module-container>.main .widget-item {
        -ms-flex: 0 0 33.333333%;
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
        padding-right: 1.25rem;
    }
}

@media (max-width:565px) {
    .header_wrapper .header_logo .module-container>.main {
        display: flex;
        justify-content: flex-start;
    }

    .header_wrapper>.module-container>.main .widget-item.menu_btn {
        -ms-flex: 0 0 12%;
        flex: 0 0 12%;
        max-width: 12%;
    }

    .header_wrapper>.module-container>.main .widget-item.header_logo {
        -ms-flex: 0 0 45%;
        flex: 0 0 45%;
        max-width: 45%;
        padding-left: 1.25rem;
    }

    .header_wrapper>.module-container>.main .widget-item.header_login {
        -ms-flex: 0 0 43%;
        flex: 0 0 43%;
        max-width: 43%;
    }

    .header_wrapper>.module-container>.main {
        padding: 10px 15px;
    }

    .header_wrapper .header_logo img {
        height: 36px;
    }

    .header_wrapper .menu_btn div.link-list,
    .header_wrapper .header_login div.link-list {
        min-height: 30px;
    }

    .header_wrapper .menu_btn div.link-list ul li a {
        font-size: 0 !important;
        padding: 0px;
    }

    .header_wrapper .header_login .module-container>.main div.link-list ul li a {
        font-size: 0 !important;
        padding: 0px 6px 0px 6px;
    }

    .header_wrapper div.link-list ul li a i::before {
        width: 30px;
        height: 30px;
        top: 2px;
    }
}

.menu_box {
    position: fixed;
    left: 0;
    z-index: 100;
    width: 0;
    transition: 0.5s;
    opacity: 0;
}

.menu_box.open {
    width: 100%;
    transition: 0.5s;
    opacity: 1;
}

.menu_box .row {
    height: 100vh;
    display: flex;
    align-content: flex-start;
    display: none;
    background-color: rgba(186, 145, 242, 0.85) !important; /* 將原本的紫色 #BA91F2 改為 85% 半透明 */
    backdrop-filter: blur(12px) !important; /* 毛玻璃模糊效果 */
    -webkit-backdrop-filter: blur(12px) !important; /* 支援 iOS / Safari */
}

.menu_box.open .row {
    display: flex;
}

.menu_box .header_menu {
    padding: 80px 10% 0 10%;
    /* 將上距縮小，強制讓文字區塊往上靠 */
}

.menu_box .header_menu div.link-list ul li a {
    font-size: 1rem;
    /* 字體大小變更 */
    font-family: "Noto Sans TC", "PingFang TC", "微軟正黑體", sans-serif;
    margin-bottom: .75rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    /* 增加字距 */
    opacity: 1;
    transition: color 0.3s ease; /* 增加顏色變換的漸變動畫 */
}

/* 點擊 / 感應後的顏色變更 */
.menu_box .header_menu div.link-list ul li a:hover,
.menu_box .header_menu div.link-list ul li a:active {
    color: #842EBD !important;
}


.menu_box .menu_close {
    padding: 10px 20px;
}

.menu_box .menu_close div.link-list ul li a {
    padding: 10px 10px 10px 45px;
    position: relative;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
}

.menu_box .menu_close div.link-list ul li i::before,
.menu_box .menu_icon div.link-list ul li i::before {
    content: "";
    position: absolute;
    display: block;
    width: 50px;
    height: 50px;
    left: 0;
    top: 0;
    -ms-transition: all .3s ease-in-out;
    -o-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
    background-repeat: no-repeat;
    background-position: center;
}

.menu_box .menu_close div.link-list ul li a i.fa-close::before {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/0ef2f716-dacc-433c-ae55-c06f260c77ed.png)
}

.menu_box .menu_icon {
    padding: 20px 10% 15% 10%;
    /* 拿掉 position: absolute 讓它自然接在主選單下方，不要黏在底部 */
}

.menu_box .menu_icon div.link-list ul li {
    position: relative;
    padding-right: 40px;
}

.menu_box .menu_icon div.link-list ul li:after {
    content: "";
    position: absolute;
    display: block;
    width: 22px;
    height: 1px;
    left: 71%;
    top: 50%;
    background: #ffffff70;
    transform: rotate(-71deg);
}

.menu_box .menu_icon div.link-list ul li:nth-last-child(1):after {
    display: none;
}

.menu_box .menu_icon div.link-list ul li i.fa-facebook::before {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/72bb989a-80a1-41ce-9d2e-801d6fb0ecc8.png)
}

.menu_box .menu_icon div.link-list ul li i.fa-instagram::before {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/e7fe248e-50d1-4c0a-ad4d-16fe63e3c6da.png)
}

.menu_box .menu_icon div.link-list ul li i.fa-comment::before {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/7bc65d22-0e96-4e17-8450-26f9c791f1e3.png)
}

.menu_box .menu_icon div.link-list ul li i.fa-envelope::before {
    background-image: url(https://materials.fillo.com.tw/materials/jollify/images/846e25f9-8d18-45bc-8225-29cf3335c33c.png)
}

.gotop .actGotop.actGotop {
    width: 25px;
    height: auto;
    bottom: 217px;
    z-index: 100 !important
}

.gotop .actGotop a,
.gotop .actGotop a:link {
    width: 30px;
    height: 110px;
    -webkit-transition: all .3s ease;
    -moz-transition: all .3s ease;
    transition: all .3s ease;
    background: 0 0;
    font-size: .9rem;
    font-weight: 300;
    color: #515965 !important;
    position: relative;
    display: flex;
    align-content: flex-end;
    align-items: flex-end;
    justify-content: center;
    flex-direction: row;
}

.gotop .actGotop a i {
    width: 44px;
    font-size: 1.5rem;
    top: -30px;
    height: 80px;
    width: 1px;
    margin-left: 15px;
    background: #aeaeaeb8;
    position: absolute;
    right: 50%;
    overflow: hidden;
}

.gotop .actGotop a i:after {
    position: absolute;
    left: 0;
    bottom: 0;
    display: block;
    content: "";
    background: #ffffff;
    width: 100%;
    height: 30px;
    z-index: 6;
    -webkit-animation: scrollGotop 3s infinite linear;
    -moz-animation: scrollGotop 3s infinite linear;
    -ms-animation: scrollGotop 3s infinite linear;
    animation: scrollGotop 3s infinite linear
}

.WinChrome .gotop .actGotop.actGotop,
.D_products_group_molddetail .gotop .actGotop.actGotop {
    bottom: 36px;
    right: 24px;
}

@-webkit-keyframes scrollGotop {
    0% {
        top: 100%
    }

    75% {
        top: 100%
    }

    100% {
        top: -100%
    }
}

@-moz-keyframes scrollGotop {
    0% {
        top: 100%
    }

    75% {
        top: 100%
    }

    100% {
        top: -100%
    }
}

@-ms-keyframes scrollGotop {
    0% {
        top: 100%
    }

    75% {
        top: 100%
    }

    100% {
        top: -100%
    }
}

@keyframes scrollGotop {
    0% {
        top: 100%
    }

    75% {
        top: 100%
    }

    100% {
        top: -100%
    }
}

.gotop .actGotop a:hover i {
    -webkit-transition: all .3s ease;
    -moz-transition: all .3s ease;
    transition: all .3s ease
}

.side_box {
    display: block
}

.WinChrome .gotop .side_box,
.D_products_group_molddetail .gotop .side_box {
    display: block
}

@media (max-width:576px) {

    .WinChrome .gotop .side_box,
    .D_products_group_molddetail .gotop .side_box {
        bottom: 48px !important;
        right: 0px !important;
    }

    .WinChrome .gotop .actGotop.actGotop,
    .D_products_group_molddetail .gotop .actGotop.actGotop {
        bottom: 77px !important;
        right: 20px;
    }
}

/*首頁style1*/
.m002-title .header-title {
    position: relative;
    display: table;
    width: auto;
    margin: 40px auto 30px;
    font-size: 2.2rem;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    color: #222;
}

.m002-title .header-title::before {
    content: "";
    position: absolute;
    width: 60px;
    height: 6px;
    left: 50%;
    bottom: -13px;
    background: #88769e;
    transform: translate(-50%, -50%) skewX(-30deg);
}

.M-002.main-style1 {
    padding-bottom: 40px;
}

.M-002.main-style1>.module-container>.main::before {
    content: "";
    position: absolute;
    background: #ffffff;
    width: 100%;
    height: 1px;
    bottom: 0;
}

.M-002.main-style1 .swiper-slide-style {
    height: 530px;
    box-shadow: 0 0 black;
    border-radius: 0;
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

.M-002.main-style1 .swiper-slide-style.swiper-slide-active::before,
.M-002.main-style1 .swiper-slide-style.swiper-slide-next::before {
    content: "";
    position: absolute;
    background: #9383a7;
    width: 1px;
    height: 100%;
    bottom: 0px;
    right: -30px;
}


.M-002.main-style1 .swiper-slide .swiper-img img {
    border-radius: 10px;
}

.M-002.main-style1 .swiper-button-prev,
.M-002.main-style1 .swiper-button-next {
    display: none;
}

.M-002.main-style1 .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background: rgb(255 255 255 / 50%);
}

.M-002.main-style1 .swiper-pagination-bullet-active {
    color: #fff;
    background: #ffffff;
    width: 15px;
    height: 15px;
}

.M-002.main-style1 .swiper-pagination {
    display: flex;
    height: 20px;
    align-items: center;
    justify-content: center;
}

.M-002.main-style1 .swiper-slide .swiper-title {
    color: #222;
    font-size: 1.4rem;
    font-weight: 400;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    text-align: center;
    text-overflow: ellipsis;
    overflow: hidden;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
}

.M-002.main-style1 .swiper-slide .swiper-img {
    margin: 0 0 2rem;
}

.M-002.main-style1 .swiper-slide .swiper-content {
    color: #545454;
    font-size: 0.95rem;
    letter-spacing: 0em;
    margin-bottom: 30px;
    line-height: 1.8rem;
}

.M-002.main-style1 .swiper-slide .swiper-content article {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    text-align: justify;
    text-overflow: ellipsis;
    overflow: hidden;
    font-family: 'Noto SANS TC', sans-serif;
    font-weight: 300;
}

.M-002.main-style1 .swiper-slide .swiper-content span {
    display: table;
    margin: 8px auto;
    padding: 8px 10px 2px 10px;
    background: #ffffff;
    border: 1px solid #86749c;
    color: #86749c;
    letter-spacing: 0.05rem;
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
}

.iframe-nav {
    padding-top: 70px;
}

@media (max-width:767px) {
    .iframe-nav {
        padding-top: 0px;
    }
}

.header_login>.module-container>.main {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: baseline
}

.gtranslate_wrapper {
    padding-right: 5px
}

.gtranslate_wrapper a {
    font-family: "Josefin Sans", 'Noto Sans TC', Sans-serif;
    color: #ffffff80;
}

.gtranslate_wrapper a:nth-child(2) {
    border-left: 1px solid #fff;
    padding-left: 5px;
}

.gtranslate_wrapper a[data-gt-lang="zh-TW"] {
    font-size: 0;
}

.gtranslate_wrapper a[data-gt-lang="zh-TW"]:before {
    content: "ZH";
    font-size: 1.0rem;
}

.gtranslate_wrapper a.gt-current-lang {
    color: #fff
}

@media (max-width:565px) {
    .header_login>.module-container>.main {
        align-items: flex-end;
    }
}

.search-area .search-box .search-btn h5 {
    color: #ffffff;
}

.Day_menu {
    top: 0 !important;
}

.Day_menu.day_fixed {
    top: 70px !important;
}

/*D_products_group_detail*/
section.group_banner.trip_banner {
    color: #000000;
}

section.group_banner.trip_banner .breadcrumb-item {
    font-weight: 400;
    color: #000000;
    font-size: .88rem;
}

section.group_banner.trip_banner h6 {
    font-weight: 400;
    font-family: 'Noto', sans-serif;
    color: #000;
}

section.group_banner.trip_banner h1 {
    font-weight: 500;
    font-size: 2.25rem;
    color: #000000;
}

section.group_banner.trip_banner .tag {
    background: #2c7dac;
    border: 1px solid #2c7dac;
}

section.group_banner.trip_banner .btn-success:not(:disabled):not(.disabled):active,
section.group_banner.trip_banner .btn-success:not(:disabled):not(.disabled).active,
section.group_banner.trip_banner .show>.btn-success.dropdown-toggle {
    background: #2c7dac;
    border: 1px solid #2c7dac;
    box-shadow: 0 0 0 .2rem rgb(74 167 206 / 50%);
}

section.group_banner.trip_banner .brief h5 {
    font-size: 0.875rem;
    font-weight: 400;
    font-family: 'Noto', sans-serif;
}

.basic-air-aircraft span,
.basic-air-airport {
    font-size: 1.15rem;
    font-weight: 500;
}

.basic-air-airport i.fa-map-marker {
    font-size: 1.15rem !important;
}

section.group_table.trip_features:before,
section.group_table.trip_airline:before,
section.group_table.trip_day:before,
section.group_table.trip_note:before,
section.group_table.view_intro:before,
section.group_table.tripdown:before {
    background: none !important;
}

section.group_table.trip_features .container h2,
section.group_table.trip_airline .container h2,
section.group_table.trip_day .container .text-center h2,
section.group_table.trip_note .container h2,
section.group_table.view_intro .container h2,
section.group_table.tripdown .container h2 {
    font-size: 2.25rem;
    color: #000000;
    font-weight: 400;
    text-shadow: none;
    width: max-content;
    margin: 3rem auto 0;
    position: relative;
}

section.group_table .container .text-center h2:after {
    content: "";
    background: #ec8756;
    width: 50px;
    height: 3px;
    position: absolute;
    bottom: -15px;
    left: 50%;
    -webkit-transform: translate(-50%, 0);
    transform: translate(-50%, 0)
}

section.group_table.trip_features .container .group_table_box,
section.group_table.trip_airline .container .group_table_box,
section.group_table.trip_day .container .group_table_box,
section.group_table.trip_note .container .group_table_box,
section.group_table.view_intro .container .group_table_box,
section.group_table.tripdown .container .group_table_box {
    padding: 0px 50px 0px;
    margin-top: 1.5rem;
}

section.group_table.trip_features,
section.group_table.trip_airline,
section.group_table.trip_day,
section.group_table.trip_note,
section.group_table.view_intro,
.day_con .info_box,
section.view_all {
    margin-bottom: 0rem;
}

section.group_table.trip_features,
section.group_table.trip_airline,
section.group_table.trip_day,
section.group_table.trip_note,
section.group_table.view_intro,
section.group_table.tripdown {
    margin-top: 0rem;
}

.Day_menu .swiper_day .swiper-slide a {
    font-size: .85rem;
    width: 55px;
    height: 55px;
    line-height: 55px;
}

section.group_table.tripdown .search_table .thead {
    background: #572b8b;
}

section.group_table.tripdown .search_table .thead th {
    font-weight: 500;
    font-size: 1.0rem;
}

section.group_table.tripdown .search_table td,
section.group_table.tripdown .search_table td .go-date,
section.group_table.tripdown .search_table td .item_days,
section.group_table.tripdown .search_table td.tour-price .text-danger {
    font-family: 'Noto', sans-serif;
}

section.group_table.tripdown .search_table tbody td.tour-name a.title_main {
    font-size: 1.125rem;
    font-weight: 500;
}

section.group_table.tripdown .search_table tbody td.total-seat,
section.group_table.tripdown .search_table tbody td.booking-num,
section.group_table.tripdown .search_table tbody td.waiting-num,
section.group_table.tripdown .search_table tbody td.available-seat {
    color: #000000;
    font-weight: 600;
}

section.group_table.tripdown .search_table tbody td.tour-price span {
    font-weight: 600;
    font-size: 1.45rem;
}

.sub_menu-trip .server_menu a i {
    font-size: .9rem;
}

.Detail.sub_menu-trip .server_menu>ul>li.share-fixed-btn ul li:nth-child(2) a {
    display: flex;
    align-items: center;
    justify-content: center;
}

@media screen and (min-width: 767px) {

    .sub_menu-trip .server_menu>ul>li,
    .sub_menu-trip .server_menu>ul>li ul,
    .sub_menu-trip .server_menu>ul>li ul li {
        height: 55px !important;
    }

    .sub_menu-trip .server_menu>ul>li a {
        font-size: .9rem !important;
    }

    .sub_menu-trip .server_menu>ul>li a i {
        font-size: 1.0rem !important;
        line-height: 33px !important;
    }

    .sub_menu-trip .server_menu>ul>li.favor-fixed-btn a {
        padding: 5px 15.5px !important;
    }

    .sub_menu-trip .trip_menu i {
        display: none !important;
    }

    .sub_menu-trip .trip_menu ul {
        margin-top: .5rem;
        margin-bottom: .5rem;
    }

    .sub_menu-trip .trip_menu {
        width: 86px;
    }

    .Detail.sub_menu-trip .server_menu>ul>li.download-fixed-btn {
        background: #404040
    }

    .Detail.sub_menu-trip .server_menu>ul>li.share-fixed-btn {
        background: #404040
    }

    .Detail.sub_menu-trip .server_menu>ul>li.favor-fixed-btn a:nth-child(1) {
        background: #404040
    }

    .Detail.sub_menu-trip .server_menu>ul>li.favor-fixed-btn a:nth-child(1)::after {
        margin-left: 7px;
    }

    .sub_menu-trip .server_menu>ul>li,
    .sub_menu-trip .server_menu>ul>li ul,
    .sub_menu-trip .server_menu>ul>li ul li {
        height: 45px !important;
    }

}

@media (max-width: 576px) {

    section.group_table.trip_features .container .group_table_box,
    section.group_table.trip_airline .container .group_table_box,
    section.group_table.trip_day .container .group_table_box,
    section.group_table.trip_note .container .group_table_box,
    section.group_table.view_intro .container .group_table_box,
    section.group_table.tripdown .container .group_table_box {
        padding: 0px 0px 0px;
        margin-top: 1.5rem;
    }

    section.group_banner.trip_banner h1 {
        font-size: 2.0rem;
    }
}

/* END D_products_group_detail*/

/*D_products_group_molddetail*/
section.AnchorPoint::before,
section.AnchorPoint::after {
    background: none !important;
}

section.AnchorPoint>div>h2.APtitle {
    font-size: 2.25rem;
    color: #000000;
    font-weight: 400;
    text-shadow: none;
    width: max-content;
    margin: 3rem auto 0;
}

section.AnchorPoint>div>h2.APtitle::after {
    background: #ec8756;
    z-index: 1;
}

section.AnchorPoint#dayTrip>div>h2.APtitle {
    display: none;
}

.Detail .GroupNumber {
    font-family: 'Noto', sans-serif;
}

.Detail .PriceBlock li .fontEg {
    font-family: 'Noto', sans-serif;
}

.Detail .TextPrice {
    font-family: 'Noto', sans-serif;
}

.Detail.DayTrip .DayTripBtn.Multiple,
.Detail.DayTrip .DayTripMoreInfo .collapse.show+.DayTripBtn {
    background-color: #fff;
    border: 1px solid #ec8756;
    color: #ec8756
}

.Detail.DayTrip .DayTripBtn,
.Detail.DayTrip .DayTripBtn.Multiple:hover {
    border: 1px solid #ec8756;
    background-color: #ec8756;
    color: #fff
}

.Detail.DayTrip .DayTripBtn:hover {
    background-color: #ec8756;
    border: 1px solid #ec8756
}

.Detail.DayTrip .DayTripMoreInfo .collapse.show+.DayTripBtn:hover {
    background-color: #ec8756;
    color: #fff;
    border: 1px solid #ec8756
}

.Detail.DayTrip .DayTripMoreInfo .collapse.show::before {
    border: 1px solid #ec8756
}

@media screen and (min-width: 767px) {
    .Detail.sub_menu-trip .server_menu>ul>li {
        min-width: 88px;
    }

    .Detail.sub_menu-trip .trip_menu {
        width: 86px;
    }

    .Detail.sub_menu-trip .server_menu>ul>li.query-fixed-btn>a>span {
        font-size: 18px;
        width: 22px;
    }
}

/*END D_products_group_molddetail*/

.ystep-lg li .stepIcon {
    font-family: Microsoft Jhenghei;
}

.group_home .stepPage_btn #order_btn_group .col-lg-2 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
}

@media (max-width: 767px) {
    .group_home .stepPage_btn #order_btn_group {
        display: flex !important;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .group_home .stepPage_btn #order_btn_group button {
        margin: 0;
    }
}

.side_box {
    bottom: 10px !important
}

.side_box .side_bar {
    background: 0 0 !important;
    box-shadow: none;
    padding: 0;
    margin: 0
}

.side_box .side_bar li {
    padding: 0
}

.Template_028 .item p:before,
.Template_028 .item p:after,
.Template_029 .item p:before,
.Template_029 .item p:after {
    display: none
}

.D_products_group_detail .item h3,
.D_products_group_molddetail .item h3 {
    letter-spacing: 0.1em;
    Font-size: 1.85rem !important;
    line-height: 3;
}

.D_products_group_detail .item h3 span,
.D_products_group_molddetail .item h3 span {
    font-weight: 600;
}

@media (max-width: 576px) {

    .D_products_group_detail .item h3,
    .D_products_group_molddetail .item h3 {
        Font-size: 1.5rem !important;
        line-height: 2;
    }
}

@media (min-width: 1600px) {
    .Detail.DepartureDate .SearchTable .ItineraryName {
        max-width: 350px;
        min-width: 350px;
    }
}

@media (max-width: 1600px) and (min-width: 1200px) {
    .Detail.DepartureDate .SearchTable .ItineraryName {
        max-width: 185px;
        min-width: 185px;
    }
}

.MGO .Detail.DepartureDate .SearchTable .go-airport .plane-logo,
.MPGO .Detail.DepartureDate .SearchTable .go-airport .plane-logo {
    margin-bottom: .75rem;
}

.MGO .DetailContainer {
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
}

.Detail.DepartureDate .fc .fc-daygrid-body .fc-daygrid-day-events .day-events-bottom .day-events-bottom-available {
    min-width: 50px;
    max-width: 50px;
}

.Detail.DepartureDate .fc .fc-daygrid-body .fc-daygrid-day-events .day-events-bottom .fc-price {
    padding: 0rem;
}

/*detail hidden 報名截止*/

/* 隱藏所有同時具備這三個 class 的元素 隱藏報名頁面的可售機位*/
.badge.badge-pill.badge-success,
.available_sale {
    display: none !important;
}

/* 隱藏整個價格區塊 */
.price_content {
    display: none;
}

/* =================================================================
   二、手工頁子層樣式 (style.css)
   來源：/public/主題css/theme_travel/css/style.css
   作用範圍：#jt-themed, #jt-island, #jt-honeymoon, #jt-charter,
             #jt-custom, #jt-komodo, #jt-maldives 等 ID
================================================================= */

/* =================================================================
   鑫囍探索旅行 手工頁 — 統一隔離樣式表 (最佳化合併版)
   合併了 #jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom
   使用 :is() + CSS Nesting 消除大量重複規則，提升維護性與載入效能
   原始檔案：154 KB / 5882 行 → 最佳化後：~78 KB / ~930 行
================================================================= */


/* ── 全域動畫定義（各頁共用，只需宣告一次）── */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* ================================================================
   共用設計系統 — 統一套用至所有手工頁容器
   (:is() 的 forgiving parsing 確保不存在的 ID 不會使整條規則失效)
   ================================================================ */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) {
    /* ── 品牌色彩設計 Token ── */
    --jt-purple: #4C2A85;
    --jt-purple-hover: #3b2067;
    --jt-blue: #92D2EC;
    --jt-blue-hover: #7bbfdb;
    --jt-bg: #F3EFF5;
    --jt-text: #1A1A1A;
    --jt-text-muted: #666666;
    --jt-border: #E0DCE3;
    --jt-white: #FFFFFF;

    /* ── 基底排版 ── */
    font-family: 'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
    font-size: 1rem;
    line-height: 1.85;
    color: var(--jt-text);
    background-color: var(--jt-bg);
    scroll-behavior: smooth;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;

    /* 頁面淡入動畫 */
    opacity: 1;
    transition: opacity 0.8s ease-in-out;

    /* ── 子元素通用重置（使用 nesting 替代額外規則）── */
    & *,
    & *::before,
    & *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
    }

    /* ── 標題 ── */
    & h1,
    & h2,
    & h3,
    & h4,
    & h5,
    & h6 {
        font-family: 'Noto Serif TC', 'Songti TC', serif;
        font-weight: 600;
        line-height: 1.25;
        color: var(--jt-purple);
        text-wrap: balance;
    }

    /* ── 連結 ── */
    & a {
        color: var(--jt-purple);
        text-decoration: none;
        transition: color 0.2s ease;

        &:hover {
            color: var(--jt-blue);
        }
    }

    /* ── 圖片 ── */
    & img {
        max-width: 100%;
        height: auto;
        display: block;
    }
}

/* ================================================================
   Bootstrap 4 / 平台框架整合修正
   解決 Bootstrap .row 的 -15px 負 margin 造成的水平溢出問題
   ================================================================ */

/* 修正：作為 Bootstrap .row (flex) 直接子元素時的定位行為 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) {
    /* 在 Bootstrap flex row 中，明確佔滿 100% 而不溢出 */
    flex: 0 0 100%;
    max-width: 100%;
    min-width: 0;
    /* 清除平台可能注入的 col 類別 padding */
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 修正：Bootstrap .row 負 margin 本身造成橫向卷軸 */
.row:has(> :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom)) {
    margin-left: 0;
    margin-right: 0;
    overflow: hidden;
}

/* 修正：Bootstrap 4 對 button 的全域 normalize 干擾 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-btn {
    /* 蓋過 Bootstrap 的 btn focus outline */
    box-shadow: none !important;
    text-decoration: none !important;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-btn:focus,
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-btn:active {
    outline: 2px solid rgba(76, 42, 133, 0.4);
    outline-offset: 2px;
    box-shadow: none !important;
}

/* 修正：Bootstrap 4 的 form-control focus 藍色外框干擾 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-field:focus {
    border-color: var(--jt-purple) !important;
    box-shadow: 0 0 0 3px rgba(76, 42, 133, 0.1) !important;
    outline: none !important;
}

/* 修正：Bootstrap 4 對 img 加上 max-width: 100% 在某些情況下造成 hero img 縮小 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero-img {
    max-width: none !important;
    width: 100% !important;
}

/* 修正：Bootstrap 4 的 p margin-bottom: 1rem 在我們的 & * reset 後應為 0，
         但有些平台 CSS specificity 較高，明確覆蓋 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) p {
    margin-top: 0;
    margin-bottom: 0;
}

/* 修正：Bootstrap 4 的 ul/li padding-left 干擾 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tag-list,
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tag-list li {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
}

/* ==========================================================================
   排版結構 (Layout Structures)
   ========================================================================== */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-wrap {
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: 1.5rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-wrap-narrow {
    width: 100%;
    max-width: 680px;
    margin-inline: auto;
    padding-inline: 1.5rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-sec-pad {
    padding-block: 6rem;
}

/* ==========================================================================
   動畫效果 (Micro-Animations)
   ========================================================================== */
/* animation-fill-mode: both = 動畫前停在 from，動畫後停在 to，防止閃白 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-fade-in {
    animation: fadeIn 1.2s cubic-bezier(0.4, 0, 0.2, 1) both;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-fade-in-up {
    animation: fadeInUp 1s cubic-bezier(0.4, 0, 0.2, 1) both;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-delay-1 {
    animation-delay: 0.2s;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-delay-2 {
    animation-delay: 0.4s;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-delay-3 {
    animation-delay: 0.6s;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-delay-4 {
    animation-delay: 0.8s;
}

/* !! Hero 特殊覆蓋 !!
   Hero 是用戶第一眼看到的區塊，絕對不能因動畫造成白頁。
   強制立即顯示，不依賴任何動畫 fill-mode。 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero.jt-fade-in {
    animation: none !important;
    opacity: 1 !important;
}

/* 平台 lazy loader 把 src 改成 data-src 時，hero 圖片短暫不存在。
   確保 hero 背景色 (#4C2A85) 立即可見作為 fallback。 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero-img.lazy,
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero-img[data-src]:not([src]) {
    opacity: 0;
    transition: opacity 0.6s ease;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero-img.lazied,
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero-img[src] {
    opacity: 1;
    transition: opacity 0.6s ease;
}

/* 滾動滑入 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-reveal {
    opacity: 1;
    transform: none;
    transition: none;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-reveal.active {
    opacity: 1;
    transform: none;
}

/* 無障礙：使用者偏好減少動態 */
@media (prefers-reduced-motion: reduce) {

    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-reveal,
    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-fade-in,
    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-fade-in-up {
        animation: none;
        transition: none;
        opacity: 1;
        transform: none;
    }
}

/* ==========================================================================
   通用公用類別 (Utilities)
   ========================================================================== */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .text-center {
    text-align: center;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .text-right {
    text-align: right;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .d-flex {
    display: flex;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .flex-column {
    flex-direction: column;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .justify-center {
    justify-content: center;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .align-center {
    align-items: center;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .text-uppercase {
    text-transform: uppercase;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-track-wide {
    letter-spacing: 0.1em;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-track-widest {
    letter-spacing: 0.35em;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-mb1 {
    margin-bottom: 0.25rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-mb2 {
    margin-bottom: 0.5rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-mb3 {
    margin-bottom: 0.75rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-mb4 {
    margin-bottom: 1rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-mb5 {
    margin-bottom: 1.5rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-mb6 {
    margin-bottom: 2rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-mb8 {
    margin-bottom: 3rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-mb10 {
    margin-bottom: 4rem;
}

/* ==========================================================================
   一、 按鈕組件 (Buttons)
   ========================================================================== */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 2rem;
    font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-radius: 4px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    text-align: center;
}

/* 主品牌深紫按鈕 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-btn-primary {
    background-color: var(--jt-purple);
    color: var(--jt-white) !important;

    &:hover {
        background-color: var(--jt-purple-hover);
        box-shadow: 0 4px 12px rgba(76, 42, 133, 0.2);
        transform: translateY(-2px);
    }
}

/* 湖水粉藍輔助按鈕 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-btn-secondary {
    background-color: var(--jt-blue);
    color: var(--jt-purple) !important;

    &:hover {
        background-color: var(--jt-blue-hover);
        box-shadow: 0 4px 12px rgba(146, 210, 236, 0.3);
        transform: translateY(-2px);
    }
}

/* 經典細邊框按鈕 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-btn-outline {
    background-color: transparent;
    border-color: var(--jt-purple);
    color: var(--jt-purple) !important;

    &:hover {
        background-color: var(--jt-purple);
        color: var(--jt-white) !important;
        transform: translateY(-2px);
    }
}

/* 白色細邊框按鈕（深色背景用） */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-btn-outline-white {
    background-color: transparent;
    border-color: var(--jt-white);
    color: var(--jt-white) !important;

    &:hover {
        background-color: var(--jt-white);
        color: var(--jt-purple) !important;
        transform: translateY(-2px);
    }
}

/* 滿版按鈕 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-btn-block {
    display: flex;
    width: 100%;
}

/* ==========================================================================
   二、 卡片組件 (Cards)
   ========================================================================== */
/* 故事展示大卡片 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-card {
    background-color: var(--jt-white);
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(76, 42, 133, 0.07);
    padding: 3rem;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid var(--jt-border);
    position: relative;
    overflow: hidden;

    &:hover {
        box-shadow: 0 4px 16px rgba(76, 42, 133, 0.09);
        transform: translateY(-5px);
        border-color: rgba(76, 42, 133, 0.15);
    }
}

/* 奢華旅遊商品卡片 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-story-card {
    background-color: var(--jt-white);
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(76, 42, 133, 0.09);
    padding: 4rem 3rem;
    text-align: center;
    max-width: 680px;
    margin: 0 auto 3rem auto;
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);

    &:hover {
        box-shadow: 0 8px 32px rgba(76, 42, 133, 0.12);
        transform: translateY(-3px);
    }
}

/* 圖文特色卡片 */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-feat-card {
    display: flex;
    flex-direction: column;
    background-color: var(--jt-white);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(76, 42, 133, 0.07);
    height: 100%;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);

    &:hover {
        box-shadow: 0 4px 16px rgba(76, 42, 133, 0.09);
        transform: translateY(-4px);

        & .jt-feat-img {
            transform: scale(1.06);
        }
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-feat-img-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background-color: #e2e2e2;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-feat-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-feat-body {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

/* ==========================================================================
   三、 標籤與徽章 (Tags & Badges)
   ========================================================================== */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin-bottom: 1rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tag {
    font-family: 'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
    font-size: 0.75rem;
    color: var(--jt-text-muted);
    background-color: var(--jt-bg);
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-weight: 500;
    transition: all 0.2s ease;

    &:hover {
        color: var(--jt-purple);
        background-color: rgba(76, 42, 133, 0.08);
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-badge {
    display: inline-block;
    font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--jt-purple);
    text-transform: uppercase;
    margin-bottom: 0.75rem;
    border-bottom: 2px solid var(--jt-blue);
    padding-bottom: 2px;
}

/* ==========================================================================
   四、 表單元件 (Forms)
   ========================================================================== */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-form-box {
    background-color: var(--jt-white);
    border-radius: 16px;
    padding: 3rem;
    box-shadow: 0 4px 16px rgba(76, 42, 133, 0.09);
    border: 1px solid var(--jt-border);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-field-group {
    margin-bottom: 1rem;
    text-align: left;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-field-label {
    display: block;
    font-family: 'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--jt-text);
    margin-bottom: 0.5rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-field {
    width: 100%;
    padding: 0.75rem 1rem;
    font-family: 'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
    font-size: 1rem;
    color: var(--jt-text);
    background-color: var(--jt-bg);
    border: 1px solid var(--jt-border);
    border-radius: 4px;
    transition: all 0.2s ease;
    outline: none;

    &:user-valid {
        border-color: #2e7d52;
    }

    &:focus {
        border-color: var(--jt-purple);
        background-color: var(--jt-white);
        box-shadow: 0 0 0 3px rgba(76, 42, 133, 0.1);
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) textarea.jt-field {
    min-height: 120px;
    resize: vertical;
}

/* ==========================================================================
   五、 Hero Banner
   ========================================================================== */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero {
    position: relative;
    width: 100%;
    min-height: 88dvh;
    /* 雙重 fallback：CSS 變數不可用時直接用 HEX */
    background-color: #4C2A85;
    background-color: var(--jt-purple, #4C2A85);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #FFFFFF;
    color: var(--jt-white, #FFFFFF);
    /* 強制脫離 Bootstrap row 的 flex 影響 */
    flex-shrink: 0;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 50% 42%, rgba(76, 42, 133, 0.08) 0%, rgba(76, 42, 133, 0.16) 42%, transparent 66%),
        linear-gradient(90deg, rgba(47, 42, 54, 0.42) 0%, rgba(76, 42, 133, 0.12) 46%, rgba(31, 77, 104, 0.18) 100%),
        linear-gradient(180deg, rgba(24, 20, 34, 0.34) 0%, rgba(76, 42, 133, 0.18) 48%, rgba(47, 42, 54, 0.58) 100%);
    z-index: 2;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero-content {
    position: relative;
    z-index: 3;
    padding: 0 1.5rem;
    max-width: 680px;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero-title {
    font-family: 'Noto Serif TC', 'Songti TC', serif;
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    color: var(--jt-white);
    margin-bottom: 0.5rem;
    text-shadow: 0 3px 16px rgba(24, 20, 34, 0.36);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hero-sub {
    font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    font-size: 1rem;
    font-weight: 300;
    letter-spacing: 0.35em;
    color: var(--jt-blue);
    text-transform: uppercase;
    margin-bottom: 1rem;
    text-shadow: 0 3px 14px rgba(24, 20, 34, 0.34);
}

/* ── 主題首頁專用 ── */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-intro-sec {
    padding-bottom: 3rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-prod-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem;
    margin-bottom: 6rem;

    @media (max-width: 768px) {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-prod-grid .jt-feat-card {
    height: 100%;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-prod-meta {
    margin-top: auto;
    padding-top: 1.5rem;
    border-top: 1px solid var(--jt-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-prod-price {
    font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: var(--jt-purple);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-consult-section {
    background-color: rgba(76, 42, 133, 0.03);
    border-radius: 16px;
    padding: 4rem 2rem;
    border: 1px solid rgba(76, 42, 133, 0.05);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-consult-intro {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 3rem auto;

    & h2 {
        font-size: 1.5rem;
        margin-bottom: 0.75rem;
    }

    & p {
        color: var(--jt-text-muted);
        line-height: 1.8;
    }
}

/* ==========================================================================
   雜誌詳情頁樣式 (Editorial / Magazine Styles)
   ========================================================================== */

/* 1.1 首字放大 (Drop Caps) */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-drop-cap::first-letter {
    font-family: 'Noto Serif TC', 'Songti TC', serif;
    font-size: 3.8rem;
    font-weight: 700;
    color: var(--jt-purple);
    float: left;
    line-height: 0.9;
    margin-right: 0.5rem;
    margin-top: 6px;
}

/* 1.2 雙欄排版 (Editorial Columns) */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-editorial {
    column-count: 2;
    column-gap: 3rem;
    font-family: 'Noto Sans TC', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
    font-size: 1rem;
    line-height: 1.9;
    color: var(--jt-text-muted);
    text-align: justify;
    text-wrap: pretty;

    @media (max-width: 768px) {
        column-count: 1;
        column-gap: 0;
    }
}

/* 1.3 拉頁金句 (Pull Quotes) */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-pullquote {
    font-family: 'Noto Serif TC', 'Songti TC', serif;
    font-size: 1.25rem;
    font-weight: 600;
    font-style: italic;
    color: var(--jt-purple);
    text-align: center;
    max-width: 680px;
    margin: 3rem auto;
    padding: 1.5rem 0;
    border-top: 1px dashed var(--jt-border);
    border-bottom: 1px dashed var(--jt-border);
    letter-spacing: 0.08em;
    line-height: 1.6;
    position: relative;

    &::before {
        content: '\201C';
        font-size: 3rem;
        position: absolute;
        top: -15px;
        left: 20px;
        opacity: 0.15;
    }

    &::after {
        content: '\201D';
        font-size: 3rem;
        position: absolute;
        bottom: -35px;
        right: 20px;
        opacity: 0.15;
    }
}

/* 1.4 不對稱圖文拼貼 (Asymmetric Spread) */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-spread {
    display: flex;
    align-items: center;
    gap: 3rem;
    margin-bottom: 6rem;

    &:hover .jt-spread-img img {
        transform: scale(1.03);
    }

    @media (max-width: 992px) {
        flex-direction: column;
        gap: 1.5rem;

        & .jt-spread-img,
        & .jt-spread-body {
            width: 100%;
            flex: none;
        }
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-spread-rev {
    flex-direction: row-reverse;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-spread-img {
    flex: 5;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(76, 42, 133, 0.09);
    aspect-ratio: 16 / 10;

    & img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-spread-body {
    flex: 4;
}

/* 1.5 立體重疊卡片 (Overlapping Cards) */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-overlap {
    position: relative;
    margin-bottom: 6rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-overlap-img-wrap {
    width: 100%;
    height: 420px;
    overflow: hidden;
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(76, 42, 133, 0.09);

    @media (max-width: 768px) {
        height: 280px;
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-overlap-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-overlap-card {
    position: relative;
    background-color: var(--jt-white);
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(76, 42, 133, 0.12);
    padding: 3rem;
    max-width: 520px;
    margin: -120px auto 0 3rem;
    z-index: 2;
    border: 1px solid var(--jt-border);
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);

    &:hover {
        transform: translateY(-5px);
        box-shadow: 0 8px 32px rgba(76, 42, 133, 0.12), 0 10px 20px rgba(76, 42, 133, 0.05);
    }

    @media (max-width: 768px) {
        margin: 1rem auto 0 auto;
        max-width: 100%;
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-overlap-card-right {
    margin: -120px 3rem 0 auto;
}

/* ==========================================================================
   商品核心亮點區 (Highlights Grid)
   ========================================================================== */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hl-section {
    background-color: var(--jt-white);
    border-radius: 16px;
    padding: 4rem 2rem;
    border: 1px solid var(--jt-border);
    margin-bottom: 6rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hl-h {
    text-align: center;
    font-size: 1.5rem;
    margin-bottom: 3rem;
    font-family: 'Noto Serif TC', 'Songti TC', serif;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hl-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;

    @media (max-width: 992px) {
        grid-template-columns: 1fr;
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hl-item {
    text-align: center;
    padding: 1.5rem;
    border-inline-end: 1px solid var(--jt-border);

    &:last-child {
        border-inline-end: none;
    }

    @media (max-width: 992px) {
        border-inline-end: none;
        border-block-end: 1px solid var(--jt-border);
        padding-bottom: 2rem;

        &:last-child {
            border-block-end: none;
        }
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hl-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 1rem;
    color: var(--jt-blue);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hl-title {
    font-size: 1.125rem;
    font-family: 'Noto Serif TC', 'Songti TC', serif;
    margin-bottom: 0.5rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-hl-desc {
    color: var(--jt-text-muted);
    font-size: 0.875rem;
    line-height: 1.8;
}

/* ==========================================================================
   延伸產品入口 (Alternating Next Products)
   ========================================================================== */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-products {
    margin-bottom: 6rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-head {
    max-width: 620px;
    margin: 0 auto 3rem;
    text-align: center;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-head h2 {
    margin-top: 0.75rem;
    font-size: clamp(1.75rem, 3vw, 2.6rem);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-head p {
    margin-top: 0.9rem;
    color: var(--jt-text-muted);
    font-size: 0.95rem;
    line-height: 1.9;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
    gap: 3.6rem;
    align-items: center;
    margin-bottom: 4.5rem;
    color: inherit;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card:hover {
    color: inherit;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card--reverse {
    grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card--reverse .jt-next-media {
    grid-column: 2;
    grid-row: 1;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card--reverse .jt-next-body {
    grid-column: 1;
    grid-row: 1;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-media {
    position: relative;
    overflow: hidden;
    border-radius: 14px;
    aspect-ratio: 16 / 10;
    background: #D8F2FA;
    box-shadow: 0 22px 52px rgba(76, 42, 133, 0.12);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-media::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(76, 42, 133, 0.03), rgba(76, 42, 133, 0.12));
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.01);
    transition: transform 0.6s ease;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card:hover .jt-next-img {
    transform: scale(1.055);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-body {
    max-width: 560px;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-kicker {
    display: inline-block;
    position: relative;
    margin-bottom: 1.15rem;
    padding-bottom: 0.55rem;
    font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--jt-purple);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-kicker::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 3px;
    background: var(--jt-blue);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-title {
    margin-bottom: 1rem;
    font-size: clamp(1.55rem, 2.8vw, 2.25rem);
    line-height: 1.35;
    color: var(--jt-purple);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-desc {
    color: var(--jt-text-muted);
    font-size: 1rem;
    line-height: 2;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem 1.4rem;
    margin-top: 1.8rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-tag {
    color: #6D6673;
    font-size: 0.9rem;
    font-weight: 600;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-link {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    margin-top: 2rem;
    font-family: 'Montserrat', 'Noto Sans TC', sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--jt-purple);
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-link svg {
    width: 18px;
    height: 18px;
    transition: transform 0.25s ease;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card:hover .jt-next-link svg {
    transform: translateX(4px);
}

@media (max-width: 900px) {

    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card,
    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card--reverse {
        grid-template-columns: 1fr;
        gap: 1.8rem;
        margin-bottom: 3.5rem;
    }

    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card--reverse .jt-next-media,
    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card--reverse .jt-next-body {
        grid-column: auto;
        grid-row: auto;
    }

    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-media {
        aspect-ratio: 4 / 3;
        border-radius: 12px;
    }
}

@media (max-width: 560px) {
    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-products {
        margin-bottom: 4rem;
    }

    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-head {
        margin-bottom: 2.2rem;
        text-align: left;
    }

    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-card {
        margin-bottom: 3rem;
    }

    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-title {
        font-size: 1.45rem;
    }

    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-next-desc {
        font-size: 0.92rem;
    }
}

/* ==========================================================================
   經典行程時間軸 (Sample Itinerary Timeline)
   ========================================================================== */
:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-section {
    margin-bottom: 6rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-wrap {
    position: relative;
    max-width: 800px;
    margin-inline: auto;
    padding: 2rem 0;

    &::after {
        content: '';
        position: absolute;
        width: 2px;
        background-color: var(--jt-purple);
        opacity: 0.15;
        inset-block: 0;
        left: 50%;
        margin-left: -1px;

        @media (max-width: 768px) {
            left: 31px;
        }
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-block {
    padding: 0.5rem 2rem;
    position: relative;
    width: 50%;

    @media (max-width: 768px) {
        width: 100%;
        padding-left: 70px;
        padding-right: 1rem;
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-left {
    left: 0;
    text-align: right;

    @media (max-width: 768px) {
        left: 0;
        text-align: left;
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-right {
    left: 50%;
    text-align: left;

    @media (max-width: 768px) {
        left: 0;
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-dot {
    width: 16px;
    height: 16px;
    position: absolute;
    top: 15px;
    border-radius: 50%;
    background-color: var(--jt-white);
    border: 4px solid var(--jt-blue);
    z-index: 1;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-left .jt-tl-dot {
    right: -8px;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-right .jt-tl-dot {
    left: -8px;
}

@media (max-width: 768px) {

    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-left .jt-tl-dot,
    :is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-right .jt-tl-dot {
        left: 23px;
    }
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-time {
    font-family: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: var(--jt-purple);
    margin-bottom: 0.25rem;
}

:is(#jt-themed, #jt-island, #jt-honeymoon, #jt-charter, #jt-custom) .jt-tl-content {
    padding: 1rem 1.5rem;
    background: var(--jt-white);
    border-radius: 8px;
    border: 1px solid var(--jt-border);
    box-shadow: 0 2px 8px rgba(76, 42, 133, 0.07);
    display: inline-block;
    text-align: left;

    & h4 {
        font-size: 1rem;
        margin-bottom: 0.5rem;
        font-family: 'Noto Serif TC', 'Songti TC', serif;
    }

    & p {
        font-size: 0.875rem;
        color: var(--jt-text-muted);
        line-height: 1.7;
    }

    @media (max-width: 768px) {
        width: 100%;
    }
}

/* ────────────────────────────────────────────────────────── */
/*                   峇里島×科摩多 (#jt-komodo)                   */
/* ────────────────────────────────────────────────────────── */
/* ── Google Fonts ──────────────────────────────────────────── */

/* ── CSS 變數（限定在容器內，不污染 :root）────────────────── */
#jt-komodo {
    /* 色彩 */
    --k-deep: #0B3D52;
    --k-mid: #1A6B8A;
    --k-teal: #2596BE;
    --k-light: #7ECCE0;
    --k-pale: #C8EBF3;
    --k-sand: #F5EDD8;
    --k-sand-dk: #E8D5A8;
    --k-coral: #E8845A;
    --k-white: #FFFFFF;
    --k-ink: #1C2B35;
    --k-smoke: #5B7280;
    --k-mist: #F0F7FA;
    --k-border: rgba(37, 150, 190, 0.14);

    /* 字型 */
    --k-serif: 'Playfair Display', 'Noto Serif TC', serif;
    --k-sans: 'Noto Sans TC', sans-serif;
    --k-ui: 'Montserrat', 'Noto Sans TC', sans-serif;

    /* 動效 */
    --k-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --k-trans: all 0.38s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --k-shadow: 0 8px 40px rgba(11, 61, 82, 0.16);
    --k-card-sh: 0 2px 18px rgba(11, 61, 82, 0.09);

    /* 重置與基底 */
    box-sizing: border-box;
    font-family: var(--k-sans);
    font-size: 1rem;
    line-height: 1.82;
    color: var(--k-ink);
    background: var(--k-mist);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

#jt-komodo *,
#jt-komodo *::before,
#jt-komodo *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

#jt-komodo img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* ── 頁首麵包屑導覽 ─────────────────────────────────────── */
#jt-komodo .k-topbar {
    background: var(--k-deep);
    padding: 0.9rem 2rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

#jt-komodo .k-breadcrumb {
    font-family: var(--k-ui);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.45);
    text-decoration: none;
    transition: color 0.3s ease;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

#jt-komodo .k-breadcrumb:hover {
    color: var(--k-light);
    text-decoration: none;
}

#jt-komodo .k-breadcrumb-sep {
    color: rgba(255, 255, 255, 0.2);
    font-size: 0.55rem;
}

#jt-komodo .k-breadcrumb-cur {
    font-family: var(--k-ui);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--k-light);
}

/* ── Hero ───────────────────────────────────────────────── */
#jt-komodo .k-hero {
    position: relative;
    min-height: 94vh;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: var(--k-deep);
}

#jt-komodo .k-hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center 35%;
    transform: scale(1.06);
    transition: transform 10s ease-out;
    will-change: transform;
}

#jt-komodo .k-hero.k-loaded .k-hero__bg {
    transform: scale(1);
}

#jt-komodo .k-hero__grad {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 52% 38%, rgba(126, 204, 224, 0.10) 0%, rgba(76, 42, 133, 0.14) 40%, transparent 68%),
        linear-gradient(90deg, rgba(47, 42, 54, 0.52) 0%, rgba(76, 42, 133, 0.18) 48%, rgba(11, 61, 82, 0.18) 100%),
        linear-gradient(to top, rgba(47, 42, 54, 0.72) 0%, rgba(76, 42, 133, 0.22) 48%, rgba(24, 20, 34, 0.28) 100%);
}

#jt-komodo .k-hero__body {
    position: relative;
    z-index: 2;
    padding: 0 3.5rem 4.5rem;
    max-width: 820px;
}

#jt-komodo .k-eyebrow {
    display: inline-block;
    font-family: var(--k-ui);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.38em;
    text-transform: uppercase;
    color: var(--k-light);
    border: 1px solid rgba(126, 204, 224, 0.38);
    padding: 0.38rem 1rem;
    margin-bottom: 1.5rem;
    opacity: 0;
    transform: translateY(12px);
    animation: kFadeUp 0.8s 0.25s var(--k-ease) forwards;
}

#jt-komodo .k-hero__h1 {
    font-family: var(--k-serif);
    font-size: clamp(2.2rem, 5.5vw, 4.6rem);
    font-weight: 700;
    color: var(--k-white);
    line-height: 1.14;
    margin-bottom: 1.25rem;
    opacity: 0;
    transform: translateY(22px);
    animation: kFadeUp 0.95s 0.45s var(--k-ease) forwards;
}

#jt-komodo .k-hero__h1 em {
    font-style: italic;
    color: var(--k-light);
}

#jt-komodo .k-hero__sub {
    font-family: var(--k-sans);
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.7);
    max-width: 520px;
    line-height: 1.85;
    margin-bottom: 2.5rem;
    opacity: 0;
    transform: translateY(14px);
    animation: kFadeUp 0.85s 0.65s var(--k-ease) forwards;
}

#jt-komodo .k-hero__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-bottom: 2.5rem;
    opacity: 0;
    animation: kFadeIn 0.8s 0.85s ease forwards;
}

#jt-komodo .k-tag {
    font-family: var(--k-ui);
    font-size: 0.62rem;
    font-weight: 500;
    color: var(--k-pale);
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(126, 204, 224, 0.22);
    padding: 0.3rem 0.8rem;
}

#jt-komodo .k-hero__btns {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    opacity: 0;
    animation: kFadeIn 0.8s 1.05s ease forwards;
}

/* ── 按鈕 ───────────────────────────────────────────────── */
#jt-komodo .k-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--k-ui);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 0.95rem 2.2rem;
    border: none;
    cursor: pointer;
    transition: var(--k-trans);
    position: relative;
}

#jt-komodo .k-btn--teal {
    background: var(--k-teal);
    color: var(--k-white);
}

#jt-komodo .k-btn--teal:hover {
    background: var(--k-deep);
    color: var(--k-white);
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(37, 150, 190, 0.35);
}

#jt-komodo .k-btn--ghost {
    background: transparent;
    color: var(--k-white);
    border: 1.5px solid rgba(255, 255, 255, 0.42);
}

#jt-komodo .k-btn--ghost:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: var(--k-white);
    color: var(--k-white);
    text-decoration: none;
    transform: translateY(-2px);
}

#jt-komodo .k-btn--coral {
    background: var(--k-coral);
    color: var(--k-white);
}

#jt-komodo .k-btn--coral:hover {
    background: #d4643a;
    color: var(--k-white);
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(232, 132, 90, 0.4);
}

/* ── Stats bar ──────────────────────────────────────────── */
#jt-komodo .k-stats {
    background: var(--k-deep);
    display: flex;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

#jt-komodo .k-stat {
    flex: 1;
    text-align: center;
    padding: 2rem 1rem;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
}

#jt-komodo .k-stat:last-child {
    border-right: none;
}

#jt-komodo .k-stat__n {
    display: block;
    font-family: var(--k-serif);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--k-light);
    line-height: 1;
    margin-bottom: 0.3rem;
}

#jt-komodo .k-stat__l {
    font-family: var(--k-ui);
    font-size: 0.58rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.38);
}

/* ── 通用區塊 ───────────────────────────────────────────── */
#jt-komodo .k-sec {
    padding: 5.5rem 3.5rem;
}

#jt-komodo .k-sec--white {
    background: var(--k-white);
}

#jt-komodo .k-sec--mist {
    background: var(--k-mist);
}

#jt-komodo .k-sec--sand {
    background: var(--k-sand);
}

#jt-komodo .k-sec--ocean {
    background: var(--k-deep);
    color: var(--k-white);
}

#jt-komodo .k-wrap {
    max-width: 1100px;
    margin: 0 auto;
}

#jt-komodo .k-label {
    font-family: var(--k-ui);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: var(--k-teal);
    margin-bottom: 0.8rem;
}

#jt-komodo .k-sec--ocean .k-label {
    color: var(--k-light);
}

#jt-komodo .k-h2 {
    font-family: var(--k-serif);
    font-size: clamp(1.7rem, 3vw, 2.7rem);
    font-weight: 600;
    line-height: 1.22;
    color: var(--k-ink);
    margin-bottom: 1rem;
}

#jt-komodo .k-sec--ocean .k-h2 {
    color: var(--k-white);
}

#jt-komodo .k-rule {
    width: 48px;
    height: 2px;
    background: var(--k-teal);
    margin: 1.25rem 0 2.8rem;
}

#jt-komodo .k-rule--c {
    margin-left: auto;
    margin-right: auto;
}

#jt-komodo .k-sec--ocean .k-rule {
    background: var(--k-light);
}

/* ── Scroll reveal ──────────────────────────────────────── */
#jt-komodo .k-reveal {
    opacity: 1;
    transform: none;
    transition: none;
}

#jt-komodo .k-reveal.k-vis {
    opacity: 1;
    transform: none;
}

#jt-komodo .k-d1 {
    transition-delay: 0.1s;
}

#jt-komodo .k-d2 {
    transition-delay: 0.2s;
}

#jt-komodo .k-d3 {
    transition-delay: 0.3s;
}

#jt-komodo .k-d4 {
    transition-delay: 0.4s;
}

#jt-komodo .k-d5 {
    transition-delay: 0.5s;
}

/* ── 旅程亮點卡 ─────────────────────────────────────────── */
#jt-komodo .k-highlights {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

#jt-komodo .k-hl {
    background: var(--k-white);
    border: 1px solid var(--k-border);
    padding: 2rem;
    position: relative;
    overflow: hidden;
    transition: var(--k-trans);
}

#jt-komodo .k-hl::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--k-teal);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s var(--k-ease);
}

#jt-komodo .k-hl:hover {
    box-shadow: var(--k-shadow);
    transform: translateY(-4px);
    border-color: rgba(37, 150, 190, 0.28);
}

#jt-komodo .k-hl:hover::after {
    transform: scaleX(1);
}

#jt-komodo .k-hl__num {
    font-family: var(--k-serif);
    font-size: 3rem;
    font-weight: 700;
    color: var(--k-pale);
    line-height: 1;
    margin-bottom: 0.85rem;
}

#jt-komodo .k-hl__sub {
    font-family: var(--k-ui);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--k-teal);
    margin-bottom: 0.5rem;
}

#jt-komodo .k-hl__title {
    font-family: var(--k-serif);
    font-size: 1.08rem;
    font-weight: 600;
    color: var(--k-ink);
    margin-bottom: 0.6rem;
}

#jt-komodo .k-hl__desc {
    font-size: 0.86rem;
    color: var(--k-smoke);
    line-height: 1.75;
}

/* ── 行程地圖與航班組別 ───────────────────────────────── */
#jt-komodo .k-route-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.85fr);
    gap: 2rem;
    align-items: stretch;
}

#jt-komodo .k-route-map,
#jt-komodo .k-flight-groups {
    background: var(--k-white);
    border: 1px solid rgba(37, 150, 190, 0.16);
    box-shadow: var(--k-card-sh);
}

#jt-komodo .k-route-map {
    padding: clamp(1rem, 2.4vw, 1.6rem);
    display: flex;
    flex-direction: column;
    min-width: 0;
}

#jt-komodo .k-route-map__head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: baseline;
    margin-bottom: 1rem;
    font-family: var(--k-ui);
    color: var(--k-deep);
}

#jt-komodo .k-route-map__head span {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

#jt-komodo .k-route-map__head small {
    font-size: 0.62rem;
    color: var(--k-smoke);
    letter-spacing: 0.08em;
}

#jt-komodo .k-route-map__canvas {
    width: 100%;
    aspect-ratio: 760 / 430;
    min-height: 260px;
    overflow: hidden;
}

#jt-komodo .k-route-map__svg {
    width: 100%;
    height: 100%;
    display: block;
}

#jt-komodo .k-route-map__line {
    stroke-width: 4;
    stroke-linecap: round;
    stroke-dasharray: 10 12;
}

#jt-komodo .k-route-map__line--out {
    stroke: var(--k-teal);
}

#jt-komodo .k-route-map__line--mid {
    stroke: var(--k-coral);
}

#jt-komodo .k-route-map__line--back {
    stroke: #6ea6b8;
    opacity: 0.75;
}

#jt-komodo .k-route-map__node circle {
    fill: var(--k-white);
    stroke: var(--k-teal);
    stroke-width: 5;
}

#jt-komodo .k-route-map__node text {
    font-family: var(--k-ui);
    font-size: 18px;
    font-weight: 800;
    fill: var(--k-deep);
    text-anchor: middle;
    letter-spacing: 0.08em;
}

#jt-komodo .k-route-map__node text:last-child {
    font-size: 13px;
    fill: var(--k-smoke);
    letter-spacing: 0.18em;
}

#jt-komodo .k-route-map__label rect {
    fill: rgba(255, 255, 255, 0.86);
    stroke: rgba(37, 150, 190, 0.18);
}

#jt-komodo .k-route-map__label text {
    font-family: var(--k-ui);
    font-size: 13px;
    font-weight: 800;
    fill: var(--k-deep);
    text-anchor: middle;
    dominant-baseline: middle;
    letter-spacing: 0.1em;
}

#jt-komodo .k-flight-groups {
    padding: 1.35rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

#jt-komodo .k-flight-group {
    display: grid;
    grid-template-columns: 4.5rem 1fr;
    gap: 1rem;
    padding: 1.1rem;
    background: rgba(37, 150, 190, 0.055);
    border: 1px solid rgba(37, 150, 190, 0.14);
}

#jt-komodo .k-flight-group--return {
    background: rgba(232, 132, 90, 0.06);
    border-color: rgba(232, 132, 90, 0.16);
}

#jt-komodo .k-flight-group__tag {
    align-self: start;
    justify-self: start;
    font-family: var(--k-ui);
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    color: var(--k-white);
    background: var(--k-teal);
    padding: 0.42rem 0.62rem;
    text-transform: uppercase;
    white-space: nowrap;
}

#jt-komodo .k-flight-group--return .k-flight-group__tag {
    background: var(--k-coral);
}

#jt-komodo .k-flight-group__title {
    font-family: var(--k-serif);
    font-size: 1rem;
    font-weight: 700;
    color: var(--k-ink);
    line-height: 1.35;
    margin-bottom: 0.45rem;
}

#jt-komodo .k-flight-group__desc {
    font-size: 0.82rem;
    line-height: 1.68;
    color: var(--k-smoke);
    margin-bottom: 0.75rem;
}

#jt-komodo .k-flight-legs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

#jt-komodo .k-flight-legs span {
    font-family: var(--k-ui);
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--k-deep);
    background: var(--k-white);
    border: 1px solid rgba(37, 150, 190, 0.16);
    padding: 0.3rem 0.58rem;
}

#jt-komodo .k-flight-note {
    font-size: 0.78rem;
    color: var(--k-smoke);
    line-height: 1.65;
    border-top: 1px solid rgba(37, 150, 190, 0.12);
    padding-top: 0.9rem;
}

/* ── 飯店卡 ─────────────────────────────────────────────── */
#jt-komodo .k-hotels {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

#jt-komodo .k-hotel {
    background: var(--k-white);
    overflow: hidden;
    box-shadow: var(--k-card-sh);
    transition: var(--k-trans);
}

#jt-komodo .k-hotel:hover {
    transform: translateY(-5px);
    box-shadow: var(--k-shadow);
}

#jt-komodo .k-hotel__img {
    height: 210px;
    background-size: cover;
    background-position: center;
    background-color: var(--k-mid);
    position: relative;
}

#jt-komodo .k-hotel__img::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.3);
    z-index: 1;
}

#jt-komodo .k-hotel__img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(11, 61, 82, 0.5) 0%, transparent 55%);
    z-index: 2;
}

#jt-komodo .k-hotel__body {
    padding: 1.75rem;
}

#jt-komodo .k-hotel__loc {
    font-family: var(--k-ui);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--k-teal);
    margin-bottom: 0.45rem;
}

#jt-komodo .k-hotel__name {
    font-family: var(--k-serif);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--k-ink);
    margin-bottom: 0.65rem;
}

#jt-komodo .k-hotel__desc {
    font-size: 0.86rem;
    color: var(--k-smoke);
    line-height: 1.75;
}

/* ── 天數行程卡 ─────────────────────────────────────────── */
#jt-komodo .k-days {
    display: flex;
    flex-direction: column;
}

#jt-komodo .k-day {
    display: grid;
    grid-template-columns: 90px 1fr;
    min-height: 150px;
}

#jt-komodo .k-day:hover .k-day__body {
    background: rgba(37, 150, 190, 0.035);
}

#jt-komodo .k-day__num {
    background: var(--k-deep);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem 0.6rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

#jt-komodo .k-day__n {
    font-family: var(--k-serif);
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--k-light);
    line-height: 1;
}

#jt-komodo .k-day__d {
    font-family: var(--k-ui);
    font-size: 0.52rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.3);
    margin-top: 3px;
}

#jt-komodo .k-day__body {
    border-bottom: 1px solid rgba(37, 150, 190, 0.1);
    padding: 1.6rem 1.85rem;
    background: var(--k-white);
    transition: background 0.3s ease;
}

#jt-komodo .k-day__title {
    font-family: var(--k-serif);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--k-ink);
    margin-bottom: 0.5rem;
    line-height: 1.3;
}

#jt-komodo .k-day__desc {
    font-size: 0.86rem;
    color: var(--k-smoke);
    line-height: 1.72;
    margin-bottom: 0.85rem;
}

#jt-komodo .k-day__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

#jt-komodo .k-pill {
    font-family: var(--k-ui);
    font-size: 0.58rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.26rem 0.7rem;
    background: var(--k-pale);
    color: var(--k-deep);
}

#jt-komodo .k-pill--hotel {
    background: rgba(232, 132, 90, 0.1);
    color: var(--k-coral);
}

#jt-komodo .k-pill--star {
    background: var(--k-sand-dk);
    color: #7a5c20;
}

/* ── 垂直時間軸 ─────────────────────────────────────────── */
#jt-komodo .k-tl {
    position: relative;
    padding-left: 1.85rem;
    margin: 0.85rem 0 1rem;
}

#jt-komodo .k-tl::before {
    content: '';
    position: absolute;
    left: 5px;
    top: 8px;
    bottom: 8px;
    width: 1px;
    background: linear-gradient(to bottom, var(--k-teal), rgba(37, 150, 190, 0.08));
}

#jt-komodo .k-tl__item {
    position: relative;
    margin-bottom: 1.5rem;
}

#jt-komodo .k-tl__item:last-child {
    margin-bottom: 0;
}

#jt-komodo .k-tl__dot {
    position: absolute;
    left: -1.55rem;
    top: 5px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--k-teal);
    border: 2px solid var(--k-mist);
    box-shadow: 0 0 0 2px var(--k-teal);
}

#jt-komodo .k-tl__lbl {
    font-family: var(--k-ui);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--k-teal);
    margin-bottom: 0.2rem;
}

#jt-komodo .k-tl__ev {
    font-family: var(--k-serif);
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--k-ink);
    margin-bottom: 0.18rem;
}

#jt-komodo .k-tl__note {
    font-size: 0.8rem;
    color: var(--k-smoke);
    line-height: 1.62;
}

/* ── Info box ───────────────────────────────────────────── */
#jt-komodo .k-info {
    background: rgba(37, 150, 190, 0.07);
    border-left: 3px solid var(--k-teal);
    padding: 0.85rem 1.15rem;
    margin-top: 0.85rem;
    font-size: 0.83rem;
    color: var(--k-deep);
    line-height: 1.65;
}

/* ── 跳島景點格 ─────────────────────────────────────────── */
#jt-komodo .k-spots {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
    margin-top: 2.5rem;
}

#jt-komodo .k-spot {
    background: var(--k-white);
    border: 1px solid rgba(255, 255, 255, 0.12);
    padding: 1.25rem 0.75rem;
    text-align: center;
    transition: var(--k-trans);
}

#jt-komodo .k-spot:hover {
    border-color: rgba(126, 204, 224, 0.5);
    box-shadow: var(--k-card-sh);
    transform: translateY(-3px);
}

#jt-komodo .k-spot__ico {
    font-size: 1.4rem;
    margin-bottom: 0.55rem;
}

#jt-komodo .k-spot__name {
    font-family: var(--k-serif);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--k-white);
    margin-bottom: 0.2rem;
}

#jt-komodo .k-spot__en {
    font-family: var(--k-ui);
    font-size: 0.58rem;
    color: var(--k-light);
    letter-spacing: 0.08em;
}

/* ── 費用包含表 ─────────────────────────────────────────── */
#jt-komodo .k-incl-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

#jt-komodo .k-incl-box {
    padding: 2.25rem;
}

#jt-komodo .k-incl-box--yes {
    background: rgba(37, 150, 190, 0.06);
    border: 1px solid rgba(37, 150, 190, 0.2);
}

#jt-komodo .k-incl-box--no {
    background: var(--k-mist);
    border: 1px solid rgba(0, 0, 0, 0.07);
}

#jt-komodo .k-incl-box__h {
    font-family: var(--k-ui);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid rgba(37, 150, 190, 0.15);
    margin-bottom: 1.25rem;
}

#jt-komodo .k-incl-box--yes .k-incl-box__h {
    color: var(--k-deep);
}

#jt-komodo .k-incl-box--no .k-incl-box__h {
    color: var(--k-smoke);
}

#jt-komodo .k-incl-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

#jt-komodo .k-incl-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.86rem;
    color: var(--k-ink);
    line-height: 1.6;
}

#jt-komodo .k-incl-list--no li {
    color: var(--k-smoke);
}

#jt-komodo .k-incl-dot {
    flex-shrink: 0;
    font-size: 0.7rem;
    margin-top: 3px;
    color: var(--k-teal);
}

#jt-komodo .k-incl-list--no .k-incl-dot {
    color: #b0b8c1;
}

/* ── 適合旅人 ───────────────────────────────────────────── */
#jt-komodo .k-aud-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}

#jt-komodo .k-aud {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 1.6rem;
    transition: var(--k-trans);
}

#jt-komodo .k-aud:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(126, 204, 224, 0.35);
    transform: translateY(-3px);
}

#jt-komodo .k-aud__ico {
    font-size: 1.4rem;
    margin-bottom: 0.85rem;
}

#jt-komodo .k-aud__title {
    font-family: var(--k-serif);
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--k-white);
    margin-bottom: 0.35rem;
}

#jt-komodo .k-aud__desc {
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.52);
    line-height: 1.6;
}

/* ── CTA 橫幅 ───────────────────────────────────────────── */
#jt-komodo .k-cta {
    background: var(--k-deep);
    padding: 5rem 3.5rem;
    text-align: center;
    position: relative;
    overflow: hidden;
}

#jt-komodo .k-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 70% 60% at 50% 110%, rgba(37, 150, 190, 0.18) 0%, transparent 65%);
    pointer-events: none;
}

#jt-komodo .k-cta__label {
    font-family: var(--k-ui);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.36em;
    text-transform: uppercase;
    color: var(--k-light);
    margin-bottom: 1.25rem;
}

#jt-komodo .k-cta__h2 {
    font-family: var(--k-serif);
    font-size: clamp(1.7rem, 3vw, 2.9rem);
    font-weight: 700;
    color: var(--k-white);
    margin-bottom: 1rem;
    line-height: 1.22;
}

#jt-komodo .k-cta__desc {
    font-size: 0.94rem;
    color: rgba(255, 255, 255, 0.58);
    max-width: 460px;
    margin: 0 auto 2.5rem;
    line-height: 1.82;
}

#jt-komodo .k-cta__btns {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}

/* ── 頁尾 ───────────────────────────────────────────────── */
#jt-komodo .k-footer {
    background: #061d28;
    border-top: 1px solid rgba(37, 150, 190, 0.12);
    padding: 2rem 3.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
}

#jt-komodo .k-footer__back {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-family: var(--k-ui);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--k-light);
    text-decoration: none;
    transition: gap 0.3s ease;
}

#jt-komodo .k-footer__back:hover {
    gap: 0.7rem;
    color: var(--k-white);
    text-decoration: none;
}

#jt-komodo .k-footer__copy {
    font-family: var(--k-ui);
    font-size: 0.62rem;
    color: rgba(255, 255, 255, 0.22);
    letter-spacing: 0.06em;
}

/* ── Keyframes ──────────────────────────────────────────── */
@keyframes kFadeUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes kFadeIn {
    to {
        opacity: 1;
    }
}

/* ── RWD ────────────────────────────────────────────────── */
@media (max-width: 900px) {
    #jt-komodo .k-sec {
        padding: 4rem 1.5rem;
    }

    #jt-komodo .k-hero__body {
        padding: 0 1.5rem 3.5rem;
    }

    #jt-komodo .k-highlights {
        grid-template-columns: 1fr;
    }

    #jt-komodo .k-hotels {
        grid-template-columns: 1fr;
    }

    #jt-komodo .k-aud-grid {
        grid-template-columns: 1fr 1fr;
    }

    #jt-komodo .k-spots {
        grid-template-columns: repeat(3, 1fr);
    }

    #jt-komodo .k-incl-grid {
        grid-template-columns: 1fr;
    }

    #jt-komodo .k-route-grid {
        grid-template-columns: 1fr;
    }

    #jt-komodo .k-stats {
        flex-wrap: wrap;
    }

    #jt-komodo .k-stat {
        flex: 1 1 45%;
    }

    #jt-komodo .k-day {
        grid-template-columns: 70px 1fr;
    }

    #jt-komodo .k-cta {
        padding: 3.5rem 1.5rem;
    }

    #jt-komodo .k-footer {
        padding: 1.75rem 1.5rem;
        flex-direction: column;
        text-align: center;
    }

    #jt-komodo .k-topbar {
        padding: 0.75rem 1.5rem;
    }
}

@media (max-width: 600px) {
    #jt-komodo .k-spots {
        grid-template-columns: 1fr 1fr;
    }

    #jt-komodo .k-aud-grid {
        grid-template-columns: 1fr;
    }

    #jt-komodo .k-route-map__head {
        flex-direction: column;
        gap: 0.25rem;
    }

    #jt-komodo .k-route-map__canvas {
        min-height: 210px;
    }

    #jt-komodo .k-flight-group {
        grid-template-columns: 1fr;
    }
}

/* ────────────────────────────────────────────────────────── */
/*          馬爾地夫系列頁面共用 CSS                           */
/*  #jt-maldives / #jt-mlx / #jt-mhoney / #jt-mfamily       */
/*  #jt-mall / #jt-mdive / #jt-mtrend / #jt-mwell / #jt-mboat */
/* ────────────────────────────────────────────────────────── */

/* ── 所有馬爾地夫頁面共用的 token（用 :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) 一次套用）── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) {
    --md-ocean: #4C2A85;
    --md-teal: #92D2EC;
    --md-sky: #D8F2FA;
    --md-sand: #F3EFF5;
    --md-sand-dk: #92D2EC;
    --md-white: #FFFFFF;
    --md-ink: #1C2B35;
    --md-smoke: #5B7280;
    --md-mist: #F8F5FA;
    --md-gold: #C9A96E;
    --md-purple: #4C2A85;

    --md-serif: 'Playfair Display', 'Noto Serif TC', serif;
    --md-sans: 'Noto Sans TC', 'PingFang TC', sans-serif;
    --md-ui: 'Montserrat', 'Noto Sans TC', sans-serif;
    --md-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --md-trans: all 0.38s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --md-shadow: 0 8px 40px rgba(76, 42, 133, 0.16);
    --md-card-sh: 0 2px 18px rgba(76, 42, 133, 0.10);

    box-sizing: border-box;
    font-family: var(--md-sans);
    font-size: 1rem;
    line-height: 1.82;
    color: var(--md-ink);
    background: var(--md-mist);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) *,
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) *::before,
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) img {
    max-width: 100%;
    height: auto;
    display: block;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) a {
    text-decoration: none;
    color: inherit;
}

/* ── Hero ── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hero {
    position: relative;
    min-height: 88vh;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: var(--md-ocean);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hero__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center 40%;
    transform: scale(1.05);
    transition: transform 10s ease-out;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hero.md-loaded .md-hero__bg {
    transform: scale(1);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hero__grad {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 52% 40%, rgba(146, 210, 236, 0.10) 0%, rgba(76, 42, 133, 0.14) 42%, transparent 68%),
        linear-gradient(90deg, rgba(47, 42, 54, 0.48) 0%, rgba(76, 42, 133, 0.16) 48%, rgba(31, 77, 104, 0.16) 100%),
        linear-gradient(to top, rgba(47, 42, 54, 0.70) 0%, rgba(76, 42, 133, 0.22) 50%, rgba(24, 20, 34, 0.26) 100%);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hero__body {
    position: relative;
    z-index: 2;
    padding: 0 4rem 4.5rem;
    max-width: 860px;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-eyebrow {
    display: inline-block;
    font-family: var(--md-ui);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.38em;
    text-transform: uppercase;
    color: var(--md-sky);
    border: 1px solid rgba(146, 210, 236, 0.45);
    padding: 0.38rem 1rem;
    margin-bottom: 1.4rem;
    opacity: 0;
    transform: translateY(12px);
    animation: mdFadeUp 0.8s 0.25s var(--md-ease) forwards;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hero__h1 {
    font-family: var(--md-serif);
    font-size: clamp(2rem, 5vw, 4.2rem);
    font-weight: 700;
    color: var(--md-white);
    line-height: 1.15;
    margin-bottom: 1.2rem;
    opacity: 0;
    transform: translateY(20px);
    animation: mdFadeUp 0.95s 0.45s var(--md-ease) forwards;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hero__h1 em {
    font-style: italic;
    color: var(--md-sky);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hero__sub {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.72);
    max-width: 540px;
    line-height: 1.85;
    margin-bottom: 2.4rem;
    opacity: 0;
    transform: translateY(12px);
    animation: mdFadeUp 0.85s 0.65s var(--md-ease) forwards;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hero__btns {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    opacity: 0;
    animation: mdFadeIn 0.8s 0.85s ease forwards;
}

/* ── 按鈕 ── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--md-ui);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 0.9rem 2.2rem;
    cursor: pointer;
    border: none;
    transition: var(--md-trans);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-btn--ocean {
    background: var(--md-ocean);
    color: var(--md-white);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-btn--ocean:hover {
    background: #2F2A36;
    color: var(--md-white);
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(76, 42, 133, 0.35);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-btn--outline {
    background: transparent;
    color: var(--md-white);
    border: 1.5px solid rgba(255, 255, 255, 0.45);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-btn--outline:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: var(--md-white);
    transform: translateY(-2px);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-btn--sand {
    background: var(--md-sand-dk);
    color: var(--md-ink);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-btn--sand:hover {
    background: #c9a850;
    color: var(--md-ink);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(201, 148, 58, 0.3);
}

/* ── 通用 section ── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec {
    padding: 5.5rem 4rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec--white {
    background: var(--md-white);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec--mist {
    background: var(--md-mist);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec--sand {
    background: var(--md-sand);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec--ocean {
    background: var(--md-ocean);
    color: var(--md-white);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec--deep {
    background: #2F2A36;
    color: var(--md-white);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-wrap {
    max-width: 1200px;
    margin: 0 auto;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-label {
    font-family: var(--md-ui);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.34em;
    text-transform: uppercase;
    color: var(--md-ocean);
    margin-bottom: 0.75rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec--ocean .md-label,
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec--deep .md-label {
    color: var(--md-sky);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-h2 {
    font-family: var(--md-serif);
    font-size: clamp(1.65rem, 3vw, 2.75rem);
    font-weight: 600;
    line-height: 1.22;
    color: var(--md-ink);
    margin-bottom: 0.9rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec--ocean .md-h2,
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec--deep .md-h2 {
    color: var(--md-white);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-h3 {
    font-family: var(--md-serif);
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--md-ink);
    line-height: 1.3;
    margin-bottom: 0.6rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-rule {
    width: 48px;
    height: 2px;
    background: var(--md-ocean);
    margin: 1.1rem 0 2.5rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-rule--c {
    margin-left: auto;
    margin-right: auto;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec--ocean .md-rule,
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec--deep .md-rule {
    background: var(--md-sky);
}

/* ── Scroll reveal ── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-reveal {
    opacity: 1;
    transform: none;
    transition: none;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-reveal.md-vis {
    opacity: 1;
    transform: none;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-d1 {
    transition-delay: 0.1s;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-d2 {
    transition-delay: 0.2s;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-d3 {
    transition-delay: 0.3s;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-d4 {
    transition-delay: 0.4s;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-d5 {
    transition-delay: 0.5s;
}

/* ── 八大主題卡（總覽頁）── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-themes {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-theme-card {
    position: relative;
    overflow: hidden;
    aspect-ratio: 3/4;
    cursor: pointer;
    transition: var(--md-trans);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-theme-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--md-shadow);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-theme-card__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 0.7s var(--md-ease);
    filter: brightness(1.08) saturate(0.7);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-theme-card:hover .md-theme-card__bg {
    transform: scale(1.06);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-theme-card__grad {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to top, rgba(0, 20, 40, 0.72) 0%, rgba(0, 20, 40, 0.08) 60%, transparent 100%),
        rgba(255, 255, 255, 0.12);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-theme-card__body {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.5rem;
    z-index: 2;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-theme-card__icon {
    font-size: 1.6rem;
    margin-bottom: 0.5rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-theme-card__title {
    font-family: var(--md-serif);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--md-white);
    margin-bottom: 0.2rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-theme-card__sub {
    font-family: var(--md-ui);
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--md-sky);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-theme-card__arrow {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 36px;
    height: 36px;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--md-white);
    font-size: 0.8rem;
    transition: var(--md-trans);
    z-index: 2;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-theme-card:hover .md-theme-card__arrow {
    background: var(--md-ocean);
    border-color: var(--md-ocean);
}

/* ── 精選飯店卡（子頁）── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotels {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-card {
    background: var(--md-white);
    overflow: hidden;
    box-shadow: var(--md-card-sh);
    transition: var(--md-trans);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--md-shadow);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-card__img {
    height: 200px;
    background-size: cover;
    background-position: center;
    background-color: #D8F2FA;
    position: relative;
    overflow: hidden;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-card__img::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.3);
    z-index: 1;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-card__img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(11, 61, 82, 0.32) 0%, transparent 55%);
    z-index: 2;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-card__badge {
    position: absolute;
    top: 0.9rem;
    left: 0.9rem;
    font-family: var(--md-ui);
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--md-ink);
    background: var(--md-sand-dk);
    padding: 0.25rem 0.6rem;
    z-index: 3;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-card__body {
    padding: 1.35rem 1.5rem 1.5rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-card__name {
    font-family: var(--md-serif);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--md-ink);
    margin-bottom: 0.35rem;
    line-height: 1.3;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-card__atoll {
    font-family: var(--md-ui);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--md-ocean);
    margin-bottom: 0.6rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-card__desc {
    font-size: 0.84rem;
    color: var(--md-smoke);
    line-height: 1.72;
    margin-bottom: 0.9rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-tag {
    font-family: var(--md-ui);
    font-size: 0.58rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.22rem 0.6rem;
    background: rgba(76, 42, 133, 0.08);
    color: var(--md-ocean);
    border: 1px solid rgba(76, 42, 133, 0.18);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotel-tag--gold {
    background: rgba(201, 148, 58, 0.1);
    color: var(--md-gold);
    border-color: rgba(201, 148, 58, 0.25);
}

/* ── 優勢/特色清單 ── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-features {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-feat {
    text-align: center;
    padding: 2rem 1.5rem;
    background: var(--md-white);
    border: 1px solid rgba(76, 42, 133, 0.1);
    transition: var(--md-trans);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-feat:hover {
    border-color: var(--md-teal);
    transform: translateY(-4px);
    box-shadow: var(--md-card-sh);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-feat__icon {
    font-size: 2rem;
    margin-bottom: 0.85rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-feat__title {
    font-family: var(--md-serif);
    font-size: 1rem;
    font-weight: 600;
    color: var(--md-ink);
    margin-bottom: 0.45rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-feat__desc {
    font-size: 0.82rem;
    color: var(--md-smoke);
    line-height: 1.7;
}

/* ── 主題子頁 breadcrumb ── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-topbar {
    background: #2F2A36;
    padding: 0.85rem 4rem;
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-crumb {
    font-family: var(--md-ui);
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.42);
    text-decoration: none;
    transition: color 0.3s ease;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-crumb:hover {
    color: var(--md-sky);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-crumb-sep {
    color: rgba(255, 255, 255, 0.2);
    font-size: 0.55rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-crumb-cur {
    font-family: var(--md-ui);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--md-sky);
}

/* ── 總覽頁：選島顧問四格 ── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-advisor-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-advisor-item {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.12);
    padding: 1.5rem;
    transition: var(--md-trans);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-advisor-item:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(146, 210, 236, 0.42);
    transform: translateY(-3px);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-advisor-item__icon {
    font-size: 1.5rem;
    margin-bottom: 0.7rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-advisor-item__title {
    font-family: var(--md-serif);
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--md-white);
    margin-bottom: 0.3rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-advisor-item__desc {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.52);
    line-height: 1.6;
}

/* ── CTA 橫幅 ── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-cta {
    background: #2F2A36;
    padding: 5rem 4rem;
    text-align: center;
    position: relative;
    overflow: hidden;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 70% 60% at 50% 110%, rgba(146, 210, 236, 0.18) 0%, transparent 65%);
    pointer-events: none;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-cta__label {
    font-family: var(--md-ui);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.36em;
    text-transform: uppercase;
    color: var(--md-sky);
    margin-bottom: 1.2rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-cta__h2 {
    font-family: var(--md-serif);
    font-size: clamp(1.6rem, 3vw, 2.75rem);
    font-weight: 700;
    color: var(--md-white);
    margin-bottom: 1rem;
    line-height: 1.22;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-cta__desc {
    font-size: 0.94rem;
    color: rgba(255, 255, 255, 0.58);
    max-width: 460px;
    margin: 0 auto 2.5rem;
    line-height: 1.8;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-cta__btns {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}

/* ── 頁尾 ── */
:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-footer {
    background: #061d28;
    border-top: 1px solid rgba(146, 210, 236, 0.14);
    padding: 1.75rem 4rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-footer__back {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-family: var(--md-ui);
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--md-sky);
    text-decoration: none;
    transition: gap 0.3s ease;
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-footer__back:hover {
    gap: 0.7rem;
    color: var(--md-white);
}

:is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-footer__copy {
    font-family: var(--md-ui);
    font-size: 0.6rem;
    color: rgba(255, 255, 255, 0.22);
    letter-spacing: 0.06em;
}

/* ── Keyframes ── */
@keyframes mdFadeUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes mdFadeIn {
    to {
        opacity: 1;
    }
}

/* ── RWD ── */
@media (max-width: 1024px) {
    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-themes {
        grid-template-columns: repeat(2, 1fr);
    }

    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotels {
        grid-template-columns: repeat(2, 1fr);
    }

    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-features {
        grid-template-columns: repeat(2, 1fr);
    }

    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-advisor-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-sec {
        padding: 4rem 1.5rem;
    }

    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hero__body {
        padding: 0 1.5rem 3.5rem;
    }

    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-themes {
        grid-template-columns: 1fr 1fr;
    }

    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-hotels {
        grid-template-columns: 1fr;
    }

    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-features {
        grid-template-columns: 1fr 1fr;
    }

    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-advisor-grid {
        grid-template-columns: 1fr 1fr;
    }

    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-topbar {
        padding: 0.75rem 1.5rem;
    }

    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-cta {
        padding: 3.5rem 1.5rem;
    }

    :is(#jt-maldives, #jt-mfam, #jt-mhoney, #jt-mboat, #jt-mall, #jt-mlx, #jt-mdes, #jt-mwell, #jt-mdive) .md-footer {
        padding: 1.5rem;
        flex-direction: column;
        text-align: center;
    }
}

/* ── 全站卡片主視覺淡化 30% ─────────────────────────────── */
#jt-themed .jt-feat-img-wrap::after,
#jt-island .jt-feat-img-wrap::after,
#jt-honeymoon .jt-feat-img-wrap::after,
#jt-charter .jt-feat-img-wrap::after,
#jt-custom .jt-feat-img-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.3);
    pointer-events: none;
    z-index: 1;
}

#jt-themed .jt-feat-img,
#jt-island .jt-feat-img,
#jt-honeymoon .jt-feat-img,
#jt-charter .jt-feat-img,
#jt-custom .jt-feat-img {
    filter: saturate(0.7) brightness(1.08);
}

/* =================================================================
   三、行程子層樣式 (theme.css)
   來源：/dist/assets/classic/theme.css
   作用範圍：.jollify-luxury-theme
================================================================= */

.jollify-luxury-theme {
    --c-pri: #4c2a85;
    --c-sec: #d4a93b;
    --c-bg: #fff;
    font-family: "Noto Serif TC", "PingFang TC", "Microsoft JhengHei", serif !important;
    color: #333 !important;
    line-height: 1.6 !important;
    width: 100% !important;
    background: var(--c-bg) !important;
    padding-bottom: 50px;
}

.jollify-luxury-theme button,
.jollify-luxury-theme input,
.jollify-luxury-theme select,
.jollify-luxury-theme textarea {
    font-family: inherit !important;
}

.jollify-luxury-theme .j-wrapper {
    max-width: 1000px !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
}

.jollify-luxury-theme .j-section {
    padding: 60px 0 !important;
}

.jollify-luxury-theme .bg-light-gray {
    background: #f9f9fb !important;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

.jollify-luxury-theme .j-heading {
    text-align: center !important;
    margin-bottom: 50px !important;
}

.jollify-luxury-theme .j-badge {
    display: inline-block !important;
    font-size: 11px !important;
    letter-spacing: 3px !important;
    background: var(--c-sec) !important;
    color: #fff !important;
    padding: 5px 15px !important;
    border-radius: 20px !important;
    margin-bottom: 15px !important;
    text-transform: uppercase;
}

.jollify-luxury-theme .j-heading h2 {
    font-size: 32px !important;
    color: var(--c-pri) !important;
    margin: 0 !important;
    font-weight: bold !important;
    letter-spacing: 2px !important;
}

/* Hero Banner */
.jollify-luxury-theme .j-hero {
    position: relative !important;
    width: 100% !important;
    height: 60vh !important;
    min-height: 400px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    z-index: 1;
}

.jollify-luxury-theme .j-hero img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    z-index: 1 !important;
}

.jollify-luxury-theme .j-hero-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, 0.4) !important;
    z-index: 2 !important;
}

.jollify-luxury-theme .j-hero-content {
    position: relative !important;
    z-index: 3 !important;
    color: white !important;
}

.jollify-luxury-theme .j-hero-sub {
    font-size: 20px !important;
    font-weight: 600 !important;
    letter-spacing: 4px !important;
    color: var(--c-sec) !important;
    display: block !important;
    margin-bottom: 15px !important;
    text-transform: uppercase;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5) !important;
}

.jollify-luxury-theme .j-hero-title {
    font-size: 48px !important;
    font-weight: bold !important;
    letter-spacing: 2px !important;
    margin: 0 !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6) !important;
}

/* Highlights */
.jollify-luxury-theme .j-hl-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 40px !important;
}

.jollify-luxury-theme .j-hl-item {
    text-align: center !important;
}

.jollify-luxury-theme .j-hl-icon {
    width: 45px !important;
    height: 45px !important;
    color: var(--c-sec) !important;
    margin-bottom: 15px !important;
    opacity: 0.8;
}

.jollify-luxury-theme .j-hl-title {
    font-size: 20px !important;
    color: var(--c-pri) !important;
    font-weight: 400 !important;
    margin-bottom: 12px !important;
}

.jollify-luxury-theme .j-hl-desc {
    font-size: 15px !important;
    color: #666 !important;
    text-align: justify !important;
    line-height: 1.8 !important;
}

/* Highlights: card */
.jollify-luxury-theme .j-hl-card-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
}

.jollify-luxury-theme .j-hl-card-item {
    background: #fff !important;
    border: 1px solid #eee !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03) !important;
    display: flex !important;
    flex-direction: column !important;
    transition: transform 0.3s ease !important;
}

.jollify-luxury-theme .j-hl-card-item:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.06) !important;
}

.jollify-luxury-theme .j-hl-card-img {
    width: 100% !important;
    height: 200px !important;
    background: #fafafa !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.jollify-luxury-theme .j-hl-card-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.jollify-luxury-theme .j-hl-img-placeholder {
    font-size: 36px !important;
    color: var(--c-sec) !important;
}

.jollify-luxury-theme .j-hl-card-info {
    padding: 25px !important;
    flex-grow: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

.jollify-luxury-theme .j-hl-card-title {
    font-size: 20px !important;
    color: var(--c-pri) !important;
    font-weight: bold !important;
    margin: 0 0 12px 0 !important;
}

.jollify-luxury-theme .j-hl-card-desc {
    font-size: 14px !important;
    color: #666 !important;
    line-height: 1.7 !important;
    text-align: justify !important;
    margin: 0 !important;
}

/* Highlights: overlap */
.jollify-luxury-theme .j-hl-overlap-wrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 60px !important;
}

.jollify-luxury-theme .j-hl-overlap-item {
    display: flex !important;
    align-items: center !important;
    gap: 50px !important;
    position: relative !important;
}

.jollify-luxury-theme .j-hl-overlap-item.reverse {
    flex-direction: row-reverse !important;
}

.jollify-luxury-theme .j-hl-overlap-img {
    width: 55% !important;
    height: 350px !important;
    background: #fafafa !important;
    overflow: hidden !important;
    border-radius: 12px !important;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 1 !important;
}

.jollify-luxury-theme .j-hl-overlap-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.jollify-luxury-theme .j-hl-overlap-info {
    width: 50% !important;
    background: #fff !important;
    padding: 45px 40px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05) !important;
    border: 1px solid #f3f4f6 !important;
    border-radius: 12px !important;
    position: relative !important;
    z-index: 2 !important;
    margin-left: -8% !important;
}

.jollify-luxury-theme .j-hl-overlap-item.reverse .j-hl-overlap-info {
    margin-left: 0 !important;
    margin-right: -8% !important;
}

.jollify-luxury-theme .j-hl-overlap-title {
    font-size: 24px !important;
    color: var(--c-pri) !important;
    font-weight: bold !important;
    margin: 0 0 15px 0 !important;
}

.jollify-luxury-theme .j-hl-overlap-desc {
    font-size: 15px !important;
    color: #555 !important;
    line-height: 1.8 !important;
    text-align: justify !important;
    margin: 0 !important;
}


/* Flight */
.jollify-luxury-theme .j-flights-wrapper {
    display: flex !important;
    flex-direction: column !important;
    gap: 40px !important;
}

.jollify-luxury-theme .j-flight-group-label {
    margin-bottom: 16px !important;
}

.jollify-luxury-theme .j-fgl-tag {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    color: var(--c-sec) !important;
    background: rgba(212, 169, 59, 0.1) !important;
    padding: 4px 16px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(212, 169, 59, 0.3) !important;
    text-transform: uppercase !important;
}

.jollify-luxury-theme .j-fgl-tag small {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 34px !important;
    padding: 2px 7px !important;
    border-radius: 999px !important;
    background: rgba(76, 42, 133, 0.12) !important;
    color: rgba(76, 42, 133, 0.85) !important;
    font-size: 10px !important;
    letter-spacing: 1px !important;
}

.jollify-luxury-theme .j-fgl-tag.return small {
    background: rgba(212, 169, 59, 0.18) !important;
    color: #b58b21 !important;
}

.jollify-luxury-theme .j-editorial-flight-box {
    background: #fff !important;
    padding: 50px 60px !important;
    border-radius: 2px !important;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.04) !important;
    border-top: 4px solid var(--c-pri) !important;
}

.jollify-luxury-theme .j-editorial-route {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 40px !important;
    padding-bottom: 40px !important;
    border-bottom: 1px solid #f0f0f0 !important;
}

.jollify-luxury-theme .j-editorial-route:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
}

.jollify-luxury-theme .j-e-station {
    text-align: center !important;
    flex: 1 !important;
}

.jollify-luxury-theme .j-e-time {
    font-size: 22px !important;
    color: #888 !important;
    margin-bottom: 5px !important;
    font-family: 'Times New Roman', serif !important;
}

.jollify-luxury-theme .j-e-code {
    font-size: 36px !important;
    font-weight: 300 !important;
    color: var(--c-pri) !important;
    letter-spacing: 2px !important;
    line-height: 1 !important;
}

.jollify-luxury-theme .j-e-divider {
    flex: 2 !important;
    text-align: center !important;
    padding: 0 20px !important;
    position: relative !important;
}

.jollify-luxury-theme .j-e-tag {
    display: inline-block;
    font-size: 10px;
    background: rgba(76, 42, 133, 0.08);
    color: var(--c-pri);
    padding: 2px 10px;
    border-radius: 12px;
    margin-bottom: 8px;
    letter-spacing: 1px;
}

.jollify-luxury-theme .j-e-tag.return {
    background: rgba(212, 169, 59, 0.15);
    color: #b58b21;
}

.jollify-luxury-theme .j-e-airline {
    font-size: 12px !important;
    color: #aaa !important;
    letter-spacing: 1px !important;
    margin-bottom: 8px !important;
}

.jollify-luxury-theme .j-e-line {
    width: 100% !important;
    height: 1px !important;
    background: #ddd !important;
    position: relative !important;
}

.jollify-luxury-theme .j-e-line::after {
    content: '✈' !important;
    position: absolute !important;
    font-size: 16px !important;
    color: var(--c-sec) !important;
    top: -12px !important;
    right: -5px !important;
}

.jollify-luxury-theme .j-e-duration {
    font-size: 12px !important;
    color: #888 !important;
    margin-top: 8px !important;
    font-style: italic !important;
}

/* Flight Card Layout */
.jollify-luxury-theme .j-flight-card-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 20px !important;
}

.jollify-luxury-theme .j-flight-card {
    flex: 1 !important;
    min-width: 260px !important;
    background: #fff !important;
    border: 1px solid #eee !important;
    border-radius: 14px !important;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05) !important;
    overflow: hidden !important;
}

.jollify-luxury-theme .j-fc-airline {
    background: rgba(76, 42, 133, 0.7) !important;
    color: #fff !important;
    padding: 12px 20px !important;
    font-size: 13px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.jollify-luxury-theme .j-fc-airline strong {
    font-size: 15px !important;
}

.jollify-luxury-theme .j-fc-airline span {
    opacity: 0.7 !important;
    font-size: 12px !important;
}

.jollify-luxury-theme .j-fc-body {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 20px !important;
    gap: 10px !important;
}

.jollify-luxury-theme .j-fc-station {
    text-align: center !important;
    flex: 1 !important;
}

.jollify-luxury-theme .j-fc-time {
    font-size: 26px !important;
    font-weight: 300 !important;
    color: var(--c-pri) !important;
    letter-spacing: 1px !important;
    line-height: 1 !important;
    margin-bottom: 4px !important;
}

.jollify-luxury-theme .j-fc-city {
    font-size: 14px !important;
    color: #555 !important;
    font-weight: bold !important;
}

.jollify-luxury-theme .j-fc-code {
    font-size: 12px !important;
    color: #999 !important;
    letter-spacing: 1px !important;
}

.jollify-luxury-theme .j-fc-middle {
    text-align: center !important;
    flex: 0.6 !important;
}

.jollify-luxury-theme .j-fc-no {
    font-size: 11px !important;
    color: #bbb !important;
    margin-bottom: 4px !important;
    letter-spacing: 1px !important;
}

.jollify-luxury-theme .j-fc-arrow {
    font-size: 22px !important;
    color: var(--c-sec) !important;
}

/* Flight Table Layout */
.jollify-luxury-theme .j-flight-table-wrap {
    overflow-x: auto !important;
}

.jollify-luxury-theme .j-flight-table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 14px !important;
}

.jollify-luxury-theme .j-flight-table th {
    background: var(--c-pri) !important;
    color: #fff !important;
    padding: 10px 16px !important;
    font-weight: 600 !important;
    text-align: left !important;
    font-size: 13px !important;
    letter-spacing: 0.5px !important;
}

.jollify-luxury-theme .j-flight-table td {
    padding: 10px 16px !important;
    border-bottom: 1px solid #f0f0f0 !important;
    color: #444 !important;
}

.jollify-luxury-theme .j-flight-table tr:hover td {
    background: rgba(76, 42, 133, 0.03) !important;
}

/* Hotel: Overlap */
.jollify-luxury-theme .j-luxury-hotel-card {
    display: flex !important;
    align-items: center !important;
    margin-bottom: 80px !important;
    position: relative !important;
}

.jollify-luxury-theme .j-luxury-hotel-card.reverse {
    flex-direction: row-reverse !important;
}

.jollify-luxury-theme .j-h-image {
    width: 60% !important;
    position: relative !important;
    z-index: 1 !important;
}

.jollify-luxury-theme .j-h-image img {
    width: 100% !important;
    height: 400px !important;
    object-fit: cover !important;
    border-radius: 12px !important;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1) !important;
}

.jollify-luxury-theme .j-h-info {
    width: 50% !important;
    background: #fff !important;
    padding: 50px 40px !important;
    position: relative !important;
    z-index: 2 !important;
    margin-left: -10% !important;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.06) !important;
    border: 1px solid #f9f9f9 !important;
    border-radius: 12px !important;
}

.jollify-luxury-theme .j-luxury-hotel-card.reverse .j-h-info {
    margin-left: 0 !important;
    margin-right: -10% !important;
}

.jollify-luxury-theme .j-h-stars {
    color: var(--c-sec) !important;
    font-size: 14px !important;
    letter-spacing: 4px !important;
    margin-bottom: 10px !important;
}

.jollify-luxury-theme .j-h-name {
    font-size: 26px !important;
    color: var(--c-pri) !important;
    margin: 0 0 15px 0 !important;
    font-weight: 400 !important;
}

.jollify-luxury-theme .j-h-desc {
    font-size: 15px !important;
    color: #555 !important;
    line-height: 1.9 !important;
    text-align: justify !important;
    margin: 0 !important;
}

/* Hotel: Grid */
.jollify-luxury-theme .j-hotel-grid-wrapper {
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
}

.jollify-luxury-theme .j-grid-hotel-card {
    background: #fff;
    border-radius: 12px !important;
    overflow: hidden;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
    border: 1px solid #eee;
}

.jollify-luxury-theme .j-grid-hotel-card img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.jollify-luxury-theme .j-grid-h-info {
    padding: 25px;
}

.jollify-luxury-theme .j-grid-h-info h4 {
    font-size: 20px !important;
    color: var(--c-pri) !important;
    margin: 0 0 10px 0 !important;
}

.jollify-luxury-theme .j-grid-h-info p {
    font-size: 14px !important;
    color: #666 !important;
    line-height: 1.6 !important;
    margin: 0;
}

/* Scenic Spots: Shared */
.jollify-luxury-theme .j-spot-tag {
    display: inline-block !important;
    font-size: 11px !important;
    letter-spacing: 2px !important;
    background: rgba(76, 42, 133, 0.08) !important;
    color: var(--c-pri) !important;
    padding: 3px 12px !important;
    border-radius: 12px !important;
    margin-right: 6px !important;
    margin-bottom: 12px !important;
    border: 1px solid rgba(76, 42, 133, 0.15) !important;
}

.jollify-luxury-theme .j-spot-name {
    font-size: 24px !important;
    color: var(--c-pri) !important;
    font-weight: 400 !important;
    margin: 0 0 14px 0 !important;
    letter-spacing: 1px !important;
}

.jollify-luxury-theme .j-spot-desc {
    font-size: 15px !important;
    color: #555 !important;
    line-height: 1.9 !important;
    text-align: justify !important;
    margin: 0 !important;
}

/* Scenic Spots: fullimg */
.jollify-luxury-theme .j-spot-fullimg {
    margin-bottom: 60px !important;
}

.jollify-luxury-theme .j-spot-fullimg:last-child {
    margin-bottom: 0 !important;
}

.jollify-luxury-theme .j-spot-fi-img {
    width: 100% !important;
    overflow: hidden !important;
    border-radius: 16px !important;
}

.jollify-luxury-theme .j-spot-fi-img img {
    width: 100% !important;
    height: 480px !important;
    object-fit: cover !important;
    display: block !important;
    transition: transform 0.5s ease !important;
}

.jollify-luxury-theme .j-spot-fi-img img:hover {
    transform: scale(1.02) !important;
}

.jollify-luxury-theme .j-spot-fi-caption {
    max-width: 700px !important;
    margin: 30px auto 0 auto !important;
    text-align: center !important;
    padding: 0 20px !important;
}

/* Scenic Spots: ltr */
.jollify-luxury-theme .j-spot-ltr {
    display: flex !important;
    align-items: center !important;
    gap: 60px !important;
    margin-bottom: 70px !important;
}

.jollify-luxury-theme .j-spot-ltr:last-child {
    margin-bottom: 0 !important;
}

.jollify-luxury-theme .j-spot-ltr.reverse {
    flex-direction: row-reverse !important;
}

.jollify-luxury-theme .j-spot-ltr-img {
    flex: 0 0 55% !important;
}

.jollify-luxury-theme .j-spot-ltr-img img {
    width: 100% !important;
    height: 380px !important;
    object-fit: cover !important;
    border-radius: 16px !important;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08) !important;
    display: block !important;
}

.jollify-luxury-theme .j-spot-ltr-text {
    flex: 1 !important;
}

/* Scenic Spots: grid */
.jollify-luxury-theme .j-spot-grid-wrapper {
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
}

.jollify-luxury-theme .j-spot-grid-card {
    background: #fff !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05) !important;
    border: 1px solid #eee !important;
    transition: transform 0.3s !important;
}

.jollify-luxury-theme .j-spot-grid-card:hover {
    transform: translateY(-4px) !important;
}

.jollify-luxury-theme .j-spot-grid-img img {
    width: 100% !important;
    height: 220px !important;
    object-fit: cover !important;
    display: block !important;
}

.jollify-luxury-theme .j-spot-grid-info {
    padding: 25px !important;
}

.jollify-luxury-theme .j-spot-grid-info .j-spot-name {
    font-size: 18px !important;
}

.jollify-luxury-theme .j-spot-grid-info .j-spot-desc {
    font-size: 14px !important;
}

/* Itinerary */
.jollify-luxury-theme .j-magazine-box {
    border: 1px solid #eee !important;
    border-radius: 2px !important;
    overflow: hidden !important;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.05) !important;
    background: #fff !important;
}

.jollify-luxury-theme .j-tabs-row {
    display: flex !important;
    background: #561ca7ff !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none;
}

.jollify-luxury-theme .j-tabs-row::-webkit-scrollbar {
    display: none;
}

.jollify-luxury-theme .j-day-tab {
    flex: 1 0 auto !important;
    min-width: 110px !important;
    padding: 20px 10px !important;
    background: transparent !important;
    border: none !important;
    color: #999 !important;
    cursor: pointer !important;
    text-align: center !important;
    border-bottom: 4px solid transparent !important;
    transition: 0.4s !important;
    border-radius: 8px 8px 0 0 !important;
}

.jollify-luxury-theme .j-day-tab.is-active {
    color: #fff !important;
    border-bottom-color: var(--c-sec) !important;
    background: rgba(255, 255, 255, 0.12) !important;
}

.jollify-luxury-theme .j-tab-num {
    display: block !important;
    font-size: 22px !important;
    font-weight: bold !important;
    margin-bottom: 2px !important;
}

.jollify-luxury-theme .j-tab-label {
    font-size: 11px !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
}

.jollify-luxury-theme .day-panel {
    width: 100% !important;
}

.jollify-luxury-theme .day-grid {
    display: flex !important;
    min-height: 450px !important;
}

.jollify-luxury-theme .j-day-layout-rightimg {
    flex-direction: row-reverse !important;
}

.jollify-luxury-theme .j-day-layout-topimg {
    flex-direction: column !important;
}

.jollify-luxury-theme .j-day-layout-topimg .day-image-area {
    flex: none !important;
    width: 100% !important;
    height: 350px !important;
    min-height: unset !important;
}

.jollify-luxury-theme .day-grid.no-image {
    display: block !important;
    min-height: unset !important;
}

.jollify-luxury-theme .day-grid.no-image .day-text-area {
    padding: 40px 50px !important;
    columns: 2 !important;
    column-gap: 60px !important;
}

.jollify-luxury-theme .day-image-area {
    flex: 1 !important;
    position: relative !important;
    min-height: 350px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    background: #f8f8f8 !important;
}

.jollify-luxury-theme .day-image-area img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    z-index: 1 !important;
}

.jollify-luxury-theme .day-stamp {
    position: absolute !important;
    top: 20px !important;
    left: 20px !important;
    background: var(--c-pri) !important;
    color: #fff !important;
    padding: 6px 15px !important;
    font-size: 13px !important;
    letter-spacing: 2px !important;
    border-radius: 2px !important;
    z-index: 2 !important;
}

.jollify-luxury-theme .img-slot {
    text-align: center !important;
    color: #aaa !important;
    font-size: 13px !important;
    z-index: 1 !important;
}

.jollify-luxury-theme .img-slot .slot-label {
    display: block !important;
    font-weight: bold !important;
    color: var(--c-pri) !important;
}

.jollify-luxury-theme .day-text-area {
    flex: 1 !important;
    padding: 50px 40px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

.jollify-luxury-theme .day-route {
    display: inline-block !important;
    font-size: 12px !important;
    color: var(--c-sec) !important;
    margin-bottom: 15px !important;
    letter-spacing: 1px !important;
    font-weight: bold !important;
}

.jollify-luxury-theme .day-title {
    font-size: 26px !important;
    font-weight: 400 !important;
    color: var(--c-pri) !important;
    margin-bottom: 20px !important;
}

.jollify-luxury-theme .day-lead {
    color: #555 !important;
    font-size: 15px !important;
    line-height: 1.9 !important;
    margin-bottom: 20px !important;
    text-align: justify !important;
}

.jollify-luxury-theme .day-points {
    margin: 0 0 25px 0 !important;
    padding-left: 20px !important;
    color: #444 !important;
    font-size: 14px !important;
    line-height: 1.8 !important;
}

.jollify-luxury-theme .day-points li {
    margin-bottom: 8px !important;
}

.jollify-luxury-theme .day-meals-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 15px !important;
    margin-bottom: 25px !important;
    padding: 15px !important;
    background: #fdfdfd !important;
    border: 1px solid #eee !important;
    border-radius: 4px !important;
    font-size: 13px !important;
    color: #555 !important;
}

.jollify-luxury-theme .day-meals-row span strong {
    color: var(--c-pri) !important;
    margin-right: 5px !important;
    font-family: Arial, sans-serif !important;
}

.jollify-luxury-theme .day-stay {
    display: flex !important;
    align-items: center !important;
}

.jollify-luxury-theme .stay-label {
    font-size: 11px !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    color: #888 !important;
    border: 1px solid #ddd !important;
    padding: 4px 10px !important;
    border-radius: 20px !important;
    margin-right: 12px !important;
}

.jollify-luxury-theme .stay-name {
    font-size: 15px !important;
    font-weight: bold !important;
    color: var(--c-sec) !important;
}

/* Notice (Accordion) */
.jollify-luxury-theme .j-accordion {
    max-width: 850px !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
}

.jollify-luxury-theme .j-accordion-item {
    background: #fff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.02) !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.jollify-luxury-theme .j-accordion-item.is-active {
    border-color: var(--c-sec) !important;
    box-shadow: 0 10px 25px rgba(76, 42, 133, 0.06) !important;
}

.jollify-luxury-theme .j-accordion-header {
    width: 100% !important;
    background: none !important;
    border: none !important;
    padding: 22px 28px !important;
    display: flex !important;
    align-items: center !important;
    text-align: left !important;
    cursor: pointer !important;
    outline: none !important;
    transition: background-color 0.2s ease !important;
}

.jollify-luxury-theme .j-accordion-header:hover {
    background-color: #fafafc !important;
}

.jollify-luxury-theme .j-n-num {
    background: var(--c-pri) !important;
    color: #fff !important;
    width: 28px !important;
    height: 28px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    font-size: 13px !important;
    font-weight: bold !important;
    flex-shrink: 0 !important;
}

.jollify-luxury-theme .j-accordion-title {
    font-size: 18px !important;
    color: var(--c-pri) !important;
    font-weight: bold !important;
    flex-grow: 1 !important;
    margin: 0 0 0 16px !important;
    letter-spacing: 0.5px !important;
}

.jollify-luxury-theme .j-accordion-icon {
    width: 14px !important;
    height: 14px !important;
    position: relative !important;
    transition: transform 0.3s ease !important;
    flex-shrink: 0 !important;
    margin-left: 10px !important;
}

.jollify-luxury-theme .j-accordion-icon::before,
.jollify-luxury-theme .j-accordion-icon::after {
    content: '' !important;
    position: absolute !important;
    background-color: var(--c-sec) !important;
    transition: transform 0.3s ease !important;
}

.jollify-luxury-theme .j-accordion-icon::before {
    top: 6px !important;
    left: 0 !important;
    width: 14px !important;
    height: 2px !important;
}

.jollify-luxury-theme .j-accordion-icon::after {
    top: 0 !important;
    left: 6px !important;
    width: 2px !important;
    height: 14px !important;
}

.jollify-luxury-theme .j-accordion-item.is-active .j-accordion-icon {
    transform: rotate(135deg) !important;
}

.jollify-luxury-theme .j-accordion-content {
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
    background-color: #fafafc !important;
}

.jollify-luxury-theme .j-accordion-item.is-active .j-accordion-content {
    max-height: 1000px !important;
}

.jollify-luxury-theme .j-accordion-content-inner {
    padding: 24px 28px 28px 72px !important;
    border-top: 1px solid #f3f4f6 !important;
    font-size: 15px !important;
    color: #4b5563 !important;
    line-height: 1.8 !important;
    text-align: justify !important;
}

/* Recommend */
.jollify-luxury-theme .j-rec-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
}

.jollify-luxury-theme .j-rec-card {
    display: block !important;
    text-decoration: none !important;
    background: #fff !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05) !important;
    transition: 0.3s !important;
    border: 1px solid #eee !important;
}

.jollify-luxury-theme .j-rec-card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1) !important;
}

.jollify-luxury-theme .j-rec-img {
    width: 100% !important;
    height: 200px !important;
    background-size: cover !important;
    background-position: center !important;
}

.jollify-luxury-theme .j-rec-txt {
    padding: 20px !important;
    text-align: center !important;
}

.jollify-luxury-theme .j-rec-txt h5 {
    font-size: 18px !important;
    color: var(--c-pri) !important;
    margin: 0 0 15px 0 !important;
    font-weight: 400 !important;
}

.jollify-luxury-theme .j-rec-btn {
    font-size: 13px !important;
    color: var(--c-sec) !important;
    letter-spacing: 1px !important;
    font-weight: bold !important;
}

/* Map Section */
.jollify-luxury-theme .j-map-section {
    background: #f9f9fb !important;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

.jollify-luxury-theme .j-map-wrap {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    min-height: clamp(260px, 46vw, var(--j-map-height, 450px)) !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08) !important;
    border: 1px solid rgba(76, 42, 133, 0.08) !important;
}

.jollify-luxury-theme .j-map-iframe {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    border: none !important;
    border-radius: 16px !important;
}

.jollify-luxury-theme .j-map-desc {
    max-width: 800px !important;
    margin: 28px auto 0 auto !important;
    text-align: center !important;
    font-size: 15px !important;
    color: #666 !important;
    line-height: 1.8 !important;
}

/* Floating CTA */
.jollify-luxury-theme .j-floating-cta {
    position: fixed !important;
    bottom: 20px !important;
    right: 20px !important;
    z-index: 9000 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    align-items: flex-end !important;
}

.jollify-luxury-theme .j-cta-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    border-radius: 50px !important;
    font-weight: bold !important;
    transition: 0.3s !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2) !important;
}

.jollify-luxury-theme .j-cta-btn:hover {
    transform: scale(1.05) !important;
}

.jollify-luxury-theme .j-cta-line {
    background: #06C755 !important;
    color: #fff !important;
    padding: 12px 20px !important;
    font-family: sans-serif !important;
}

.jollify-luxury-theme .j-cta-line svg {
    width: 20px !important;
    height: 20px !important;
    fill: currentColor !important;
    margin-right: 8px !important;
}

.jollify-luxury-theme .j-cta-register {
    background: linear-gradient(to right, #C5A059, #a08147) !important;
    color: #fff !important;
    padding: 12px 24px !important;
    letter-spacing: 1px !important;
    font-size: 16px !important;
    font-family: serif !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
}

/* RWD */
@media (max-width: 900px) {

    .jollify-luxury-theme .j-hl-grid,
    .jollify-luxury-theme .j-hl-card-grid,
    .jollify-luxury-theme .j-hotel-grid-wrapper,
    .jollify-luxury-theme .j-rec-grid {
        grid-template-columns: 1fr !important;
    }

    .jollify-luxury-theme .j-hl-overlap-item,
    .jollify-luxury-theme .j-hl-overlap-item.reverse {
        flex-direction: column !important;
        gap: 20px !important;
    }

    .jollify-luxury-theme .j-hl-overlap-img {
        width: 100% !important;
        height: 240px !important;
    }

    .jollify-luxury-theme .j-hl-overlap-info {
        width: 92% !important;
        margin: -40px auto 0 auto !important;
        padding: 25px 20px !important;
    }

    .jollify-luxury-theme .j-editorial-flight-box {
        padding: 30px 20px !important;
    }

    .jollify-luxury-theme .j-editorial-route {
        flex-direction: column !important;
        padding-bottom: 30px !important;
    }

    .jollify-luxury-theme .j-e-divider {
        margin: 20px 0 !important;
        width: 100% !important;
    }

    .jollify-luxury-theme .j-map-wrap {
        min-height: 260px !important;
        aspect-ratio: 4 / 3 !important;
    }

    .jollify-luxury-theme .j-luxury-hotel-card,
    .jollify-luxury-theme .j-luxury-hotel-card.reverse {
        flex-direction: column !important;
        margin-bottom: 50px !important;
    }

    .jollify-luxury-theme .j-h-image {
        width: 100% !important;
    }

    .jollify-luxury-theme .j-h-info {
        width: 90% !important;
        margin: -50px auto 0 auto !important;
        padding: 30px 25px !important;
        text-align: center !important;
    }

    .jollify-luxury-theme .j-h-desc {
        text-align: left !important;
    }

    .jollify-luxury-theme .day-panel {
        overflow: hidden !important;
    }

    .jollify-luxury-theme .day-grid {
        display: flex !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory !important;
        -webkit-overflow-scrolling: touch !important;
        gap: 0 !important;
        position: relative !important;
    }

    .jollify-luxury-theme .day-image-area,
    .jollify-luxury-theme .day-text-area {
        flex: 0 0 88% !important;
        scroll-snap-align: start !important;
    }

    .jollify-luxury-theme .day-grid::after {
        content: '' !important;
        position: sticky !important;
        right: 0 !important;
        flex: 0 0 34px !important;
        width: 34px !important;
        pointer-events: none !important;
        background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.92)) !important;
    }

    .jollify-luxury-theme .day-grid.is-swipe-hint {
        animation: jollifySwipeHint 1.35s ease-in-out 0.4s 1 !important;
    }

    .jollify-luxury-theme .day-grid::-webkit-scrollbar {
        display: none !important;
    }

    .jollify-luxury-theme .day-text-area {
        padding: 30px 20px !important;
    }

    .jollify-luxury-theme .j-spot-grid-wrapper {
        grid-template-columns: 1fr !important;
    }

    .jollify-luxury-theme .j-spot-ltr,
    .jollify-luxury-theme .j-spot-ltr.reverse {
        flex-direction: column !important;
        gap: 25px !important;
        margin-bottom: 50px !important;
    }

    .jollify-luxury-theme .j-spot-ltr-img {
        flex: none !important;
        width: 100% !important;
    }

    .jollify-luxury-theme .j-spot-ltr-img img {
        height: 260px !important;
    }

    .jollify-luxury-theme .j-spot-fi-img img {
        height: 280px !important;
    }
}

@keyframes jollifySwipeHint {
    0% {
        transform: translateX(0);
    }

    30% {
        transform: translateX(-18px);
    }

    60% {
        transform: translateX(8px);
    }

    100% {
        transform: translateX(0);
    }
}

/* Hero Tags */
.jollify-luxury-theme .k-hero__tags {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 10px !important;
    margin-top: 25px !important;
    max-width: 800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.jollify-luxury-theme .k-tag {
    background: rgba(255, 255, 255, 0.15) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    color: #fff !important;
    padding: 6px 16px !important;
    border-radius: 30px !important;
    font-size: 13px !important;
    letter-spacing: 1px !important;
    backdrop-filter: blur(5px) !important;
    -webkit-backdrop-filter: blur(5px) !important;
    transition: all 0.3s ease !important;
    font-weight: bold !important;
}

.jollify-luxury-theme .k-tag:hover {
    background: rgba(255, 255, 255, 0.25) !important;
    border-color: var(--c-sec) !important;
}

/* Itinerary Timeline Layout */
.jollify-luxury-theme .k-sec--mist {
    background: #f9f9fb !important;
}

.jollify-luxury-theme .k-days {
    display: flex !important;
    flex-direction: column !important;
    gap: 40px !important;
    position: relative !important;
    max-width: 900px !important;
    margin: 0 auto !important;
    padding-left: 20px !important;
}

.jollify-luxury-theme .k-day {
    display: flex !important;
    gap: 30px !important;
    position: relative !important;
}

.jollify-luxury-theme .k-days::before {
    content: '' !important;
    position: absolute !important;
    left: 65px !important;
    top: 20px !important;
    bottom: 20px !important;
    width: 2px !important;
    background: rgba(76, 42, 133, 0.1) !important;
    z-index: 1 !important;
}

.jollify-luxury-theme .k-day__num {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 90px !important;
    height: 90px !important;
    border-radius: 50% !important;
    background: #fff !important;
    border: 3px solid var(--c-pri) !important;
    box-shadow: 0 8px 20px rgba(76, 42, 133, 0.06) !important;
    z-index: 2 !important;
    flex-shrink: 0 !important;
}

.jollify-luxury-theme .k-day__n {
    font-size: 32px !important;
    font-weight: 800 !important;
    color: var(--c-pri) !important;
    line-height: 1 !important;
    font-family: 'Times New Roman', serif !important;
}

.jollify-luxury-theme .k-day__d {
    font-size: 10px !important;
    font-weight: 700 !important;
    color: var(--c-sec) !important;
    letter-spacing: 1px !important;
    margin-top: 2px !important;
}

.jollify-luxury-theme .k-day__body {
    flex: 1 !important;
    background: #fff !important;
    padding: 30px 40px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(0, 0, 0, 0.04) !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02) !important;
    position: relative !important;
    z-index: 2 !important;
}

.jollify-luxury-theme .k-day__route {
    font-size: 15px !important;
    font-weight: bold !important;
    color: var(--c-sec) !important;
    margin-bottom: 8px !important;
    display: block !important;
}

.jollify-luxury-theme .k-day__title {
    font-size: 22px !important;
    font-weight: bold !important;
    color: var(--c-pri) !important;
    margin: 0 0 15px 0 !important;
    letter-spacing: 0.5px !important;
}

.jollify-luxury-theme .k-day__desc {
    font-size: 15px !important;
    color: #555 !important;
    line-height: 1.8 !important;
    margin: 0 0 20px 0 !important;
    text-align: justify !important;
}

.jollify-luxury-theme .k-info {
    background: rgba(212, 169, 59, 0.06) !important;
    border-left: 3px solid var(--c-sec) !important;
    padding: 12px 18px !important;
    border-radius: 0 8px 8px 0 !important;
    font-size: 14px !important;
    color: #8a6d27 !important;
    line-height: 1.6 !important;
    margin-bottom: 20px !important;
}

.jollify-luxury-theme .k-tl {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
    margin-bottom: 25px !important;
    position: relative !important;
    padding-left: 15px !important;
}

.jollify-luxury-theme .k-tl__item {
    position: relative !important;
    padding-left: 20px !important;
}

.jollify-luxury-theme .k-tl__dot {
    position: absolute !important;
    left: 0 !important;
    top: 7px !important;
    width: 6px !important;
    height: 6px !important;
    background: var(--c-sec) !important;
    border-radius: 50% !important;
}

.jollify-luxury-theme .k-tl__lbl {
    font-size: 12px !important;
    color: #999 !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    margin: 0 0 4px 0 !important;
}

.jollify-luxury-theme .k-tl__ev {
    font-size: 16px !important;
    font-weight: bold !important;
    color: var(--c-pri) !important;
    margin: 0 0 4px 0 !important;
}

.jollify-luxury-theme .k-tl__note {
    font-size: 14px !important;
    color: #666 !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

.jollify-luxury-theme .k-day__pills {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
}

.jollify-luxury-theme .k-pill {
    display: inline-block !important;
    font-size: 12px !important;
    background: #f3f4f6 !important;
    color: #4b5563 !important;
    padding: 4px 12px !important;
    border-radius: 20px !important;
    font-weight: 500 !important;
}

.jollify-luxury-theme .k-pill--hotel {
    background: rgba(76, 42, 133, 0.08) !important;
    color: var(--c-pri) !important;
    font-weight: bold !important;
}

.jollify-luxury-theme .k-pill--star {
    background: rgba(212, 169, 59, 0.12) !important;
    color: #b58b21 !important;
    font-weight: bold !important;
}

@media (max-width: 768px) {
    .jollify-luxury-theme .j-section {
        padding: 40px 0 !important;
    }

    .jollify-luxury-theme .j-heading {
        margin-bottom: 30px !important;
    }

    .jollify-luxury-theme .j-heading h2 {
        font-size: 24px !important;
    }

    .jollify-luxury-theme .j-badge {
        font-size: 10px !important;
        padding: 4px 12px !important;
        margin-bottom: 10px !important;
    }

    .jollify-luxury-theme .j-hero {
        height: 45vh !important;
        min-height: 300px !important;
    }

    .jollify-luxury-theme .j-hero-title {
        font-size: 28px !important;
    }

    .jollify-luxury-theme .j-hero-sub {
        font-size: 14px !important;
        letter-spacing: 2px !important;
    }

    .jollify-luxury-theme .k-tag {
        font-size: 11px !important;
        padding: 4px 10px !important;
    }

    .jollify-luxury-theme .k-hero__tags {
        gap: 6px !important;
        margin-top: 15px !important;
        padding: 0 15px !important;
    }

    .jollify-luxury-theme .j-hl-title {
        font-size: 18px !important;
    }

    .jollify-luxury-theme .j-hl-desc {
        font-size: 14px !important;
    }

    .jollify-luxury-theme .j-hl-card-title {
        font-size: 18px !important;
    }

    .jollify-luxury-theme .j-hl-card-desc {
        font-size: 13px !important;
    }

    .jollify-luxury-theme .j-hl-overlap-title {
        font-size: 20px !important;
    }

    .jollify-luxury-theme .j-hl-overlap-desc {
        font-size: 14px !important;
    }

    .jollify-luxury-theme .j-spot-name {
        font-size: 20px !important;
    }

    .jollify-luxury-theme .j-spot-desc {
        font-size: 14px !important;
    }

    .jollify-luxury-theme .j-spot-tag {
        font-size: 10px !important;
        padding: 2px 8px !important;
    }

    .jollify-luxury-theme .j-h-name {
        font-size: 22px !important;
    }

    .jollify-luxury-theme .j-h-desc {
        font-size: 14px !important;
    }

    .jollify-luxury-theme .j-grid-h-info h4 {
        font-size: 18px !important;
    }

    .jollify-luxury-theme .j-grid-h-info p {
        font-size: 13px !important;
    }

    .jollify-luxury-theme .j-e-code {
        font-size: 28px !important;
    }

    .jollify-luxury-theme .j-e-time {
        font-size: 18px !important;
    }

    .jollify-luxury-theme .day-title {
        font-size: 20px !important;
    }

    .jollify-luxury-theme .day-lead {
        font-size: 14px !important;
    }

    .jollify-luxury-theme .day-points {
        font-size: 13px !important;
    }

    .jollify-luxury-theme .stay-name {
        font-size: 14px !important;
    }

    .jollify-luxury-theme .day-meals-row {
        font-size: 12px !important;
        padding: 10px !important;
        gap: 8px !important;
    }

    /* ── 手機版時間軸：改為縱向堆疊 ── */
    .jollify-luxury-theme .k-days {
        padding-left: 0 !important;
        gap: 24px !important;
    }

    .jollify-luxury-theme .k-days::before {
        display: none !important;
        /* 隱藏橫向時間線，改用卡片左邊線 */
    }

    .jollify-luxury-theme .k-day {
        flex-direction: column !important;
        gap: 12px !important;
        align-items: flex-start !important;
    }

    .jollify-luxury-theme .k-day__num {
        width: 54px !important;
        height: 54px !important;
        border-width: 2px !important;
        align-self: flex-start !important;
    }

    .jollify-luxury-theme .k-day__n {
        font-size: 20px !important;
    }

    .jollify-luxury-theme .k-day__d {
        font-size: 8px !important;
    }

    .jollify-luxury-theme .k-day__body {
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        padding: 18px 16px !important;
        border-left: 3px solid var(--c-pri) !important;
        border-radius: 0 12px 12px 0 !important;
    }

    .jollify-luxury-theme .k-day__title {
        font-size: 17px !important;
    }

    .jollify-luxury-theme .k-day__route {
        font-size: 12px !important;
    }

    .jollify-luxury-theme .k-day__desc {
        font-size: 14px !important;
    }

    .jollify-luxury-theme .k-tl__ev {
        font-size: 14px !important;
    }

    .jollify-luxury-theme .k-tl__note {
        font-size: 13px !important;
    }

    .jollify-luxury-theme .k-pill {
        font-size: 11px !important;
        padding: 3px 10px !important;
    }

    .jollify-luxury-theme .j-accordion-title {
        font-size: 15px !important;
    }

    .jollify-luxury-theme .j-accordion-content-inner {
        padding: 15px 15px 20px 58px !important;
        font-size: 13px !important;
    }

    .jollify-luxury-theme .j-rec-txt h5 {
        font-size: 16px !important;
    }

    .jollify-luxury-theme .j-floating-cta {
        bottom: 12px !important;
        right: 12px !important;
        gap: 8px !important;
    }

    .jollify-luxury-theme .j-cta-line {
        padding: 8px 14px !important;
        font-size: 13px !important;
    }

    .jollify-luxury-theme .j-cta-line svg {
        width: 15px !important;
        height: 15px !important;
        margin-right: 5px !important;
    }

    .jollify-luxury-theme .j-cta-register {
        padding: 8px 16px !important;
        font-size: 13px !important;
    }
}

/* ── 讓選單內部的區塊都變成透明，以透出最底層的毛玻璃背景 ── */
.menu_box .menu_close .link-list,
.menu_box .menu_icon .link-list,
.menu_box .full-menu,
.menu_box nav.menu,
.menu_box nav.menu ul,
.menu_box nav.menu li {
    background: transparent !important;
    background-color: transparent !important;
}