@font-face {
    font-family: 'Montserrat';
    src: url('../font/Montserrat-Variable.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Bebas Neue';
    src: url('../font/BebasNeue-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    background: #fff;
    overflow-x: hidden;
    min-height: 100vh;
}

h1,
h2,
h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-weight: 400;
}

html {
    overflow-x: hidden;
    scroll-behavior: smooth;
}

body {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

body::-webkit-scrollbar {
    display: none;
}

/* fjxx-index-header */
.fjxx-index-header {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 20;
    width: 100%;
    height: 4.625rem;
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, 0.42);
    transition: background-color 0.35s ease, border-color 0.35s ease;
}

.fjxx-index-header.scrolled {
    position: fixed;
    background: rgba(18, 31, 31, 0.92);
    border-color: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(12px);
}

.fjxx-index-header-inner {
    display: flex;
    align-items: center;
    width: 87.5%;
    height: 100%;
    margin: 0 auto;
}

.fjxx-index-header-logo {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    width: 9rem;
    max-width: 100%;
    aspect-ratio: 400 / 154;
}

.fjxx-index-header-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
}

.fjxx-index-header-nav {
    display: flex;
    align-items: center;
    gap: 3.2rem;
    margin-left: 7.7rem;
}

.fjxx-index-header-nav-item {
    position: relative;
    display: flex;
    align-items: stretch;
}

.fjxx-index-header-nav-link-menu {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
}

.fjxx-index-header-nav-caret,
.fjxx-index-header-mobile-caret {
    display: inline-block;
    width: 0.34rem;
    height: 0.34rem;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: translateY(-0.12rem) rotate(45deg);
    transition: transform 0.25s ease;
}

.fjxx-index-header-dropdown {
    position: absolute;
    top: calc(100% - 0.52rem);
    left: -0.95rem;
    z-index: 2;
    min-width: 12.5rem;
    padding: 0.55rem 0;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-top: 2px solid #c9923e;
    background: rgba(18, 31, 31, 0.97);
    box-shadow: 0 0.85rem 1.8rem rgba(0, 0, 0, 0.2);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transform: translateY(0.45rem);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}

.fjxx-index-header-nav-item-has-menu:hover .fjxx-index-header-dropdown,
.fjxx-index-header-nav-item-has-menu:focus-within .fjxx-index-header-dropdown {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transform: translateY(0);
}

.fjxx-index-header-nav-item-has-menu:hover .fjxx-index-header-nav-caret,
.fjxx-index-header-nav-item-has-menu:focus-within .fjxx-index-header-nav-caret {
    transform: translateY(0.04rem) rotate(225deg);
}

.fjxx-index-header-dropdown-link {
    display: block;
    padding: 0.64rem 1rem;
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-transform: uppercase;
    transition: color 0.2s ease, background-color 0.2s ease, padding-left 0.2s ease;
}

.fjxx-index-header-dropdown-link:hover,
.fjxx-index-header-dropdown-link:focus-visible {
    padding-left: 1.2rem;
    color: #fff;
    background: rgba(201, 146, 62, 0.2);
}

.fjxx-index-header-nav-link {
    position: relative;
    padding: 1.66rem 0 1.5rem;
    color: rgba(255, 255, 255, 0.94);
    font-size: 0.72rem;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    transition: color 0.25s ease;
}

.fjxx-index-header-nav-link::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 2px;
    background: #c9923e;
    content: '';
    transform: scaleX(0);
    transition: transform 0.25s ease;
}

.fjxx-index-header-nav-link:hover,
.fjxx-index-header-nav-link:focus-visible {
    color: #fff;
}

.fjxx-index-header-nav-link:hover::after,
.fjxx-index-header-nav-link:focus-visible::after {
    transform: scaleX(1);
}

.fjxx-index-header-actions {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-left: auto;
}

.fjxx-index-header-icon-btn,
.fjxx-index-header-language {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 0.78rem;
    line-height: 1;
    white-space: nowrap;
}

.fjxx-index-header-icon-btn {
    width: 1.25rem;
    height: 1.25rem;
    border: 0;
    background: transparent;
    cursor: pointer;
    transition: transform 0.25s ease, color 0.25s ease;
}

.fjxx-index-header-icon-btn:hover,
.fjxx-index-header-icon-btn:focus-visible {
    color: #d6a65d;
    transform: translateY(-2px);
}

.fjxx-index-header-icon-btn .iconfont {
    font-size: 1rem;
}

.fjxx-index-header-language {
    gap: 0.38rem;
    padding: 0;
    cursor: pointer;
    border: 0;
    background: transparent;
}

.fjxx-index-header-language .iconfont {
    font-size: 1rem;
}

.fjxx-index-header-language::after {
    width: 0;
    height: 0;
    margin: 0.15rem 0 0 0.08rem;
    border-top: 0.28rem solid rgba(255, 255, 255, 0.85);
    border-right: 0.22rem solid transparent;
    border-left: 0.22rem solid transparent;
    content: '';
    pointer-events: none;
}

.fjxx-index-header-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 7.9rem;
    height: 2.25rem;
    padding: 0 1.15rem;
    color: #fff;
    background: #c99440;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    transition: background-color 0.25s ease, transform 0.25s ease;
}

.fjxx-index-header-cta:hover,
.fjxx-index-header-cta:focus-visible {
    background: #dca857;
    transform: translateY(-2px);
}

.fjxx-index-header-menu {
    display: none;
    width: 2rem;
    height: 2rem;
    margin-left: auto;
    color: #fff;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.fjxx-index-header-menu .iconfont {
    font-size: 1.25rem;
}

.fjxx-index-header-mobile-nav,
.fjxx-index-header-overlay,
.fjxx-index-header-search {
    display: none;
}

/* fjxx-index-hero */
.fjxx-index-hero {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    color: #fff;
    background: #1c2e2d;
}

.fjxx-index-hero-swiper,
.fjxx-index-hero-slide,
.fjxx-index-hero-slide::before,
.fjxx-index-hero-slide::after {
    position: absolute;
    inset: 0;
}

.fjxx-index-hero-swiper {
    width: 100%;
    height: 100vh;
}

.fjxx-index-hero-slide {
    background-image: url('../images/hero-background-poster.jpg');
    background-position: center;
    background-size: cover;
}

.fjxx-index-hero-video {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    opacity: 0;
    transition: opacity 0.35s ease;
}

.fjxx-index-hero.has-video-frame .fjxx-index-hero-video {
    opacity: 1;
}

.fjxx-index-hero-video-controls {
    position: absolute;
    right: 6.25%;
    bottom: 1.5rem;
    z-index: 5;
    max-width: calc(50% - 2rem);
}

.fjxx-index-hero-video-toggle {
    /* Keep playback management active while hiding its visual toggle. */
    display: none;
    align-items: center;
    gap: 0.5rem;
    min-height: 2.75rem;
    padding: 0.65rem 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: 0.2rem;
    color: #fff;
    background: rgba(8, 24, 24, 0.7);
    font: inherit;
    font-size: 0.7rem;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

.fjxx-index-hero-video-toggle[hidden] {
    display: none;
}

.fjxx-index-hero-video-toggle:hover,
.fjxx-index-hero-video-toggle:focus-visible {
    background: rgba(8, 24, 24, 0.95);
}

.fjxx-index-hero-video-toggle:focus-visible {
    outline: 2px solid #e0b36a;
    outline-offset: 3px;
}

.fjxx-index-hero-video-toggle-icon {
    flex: 0 0 auto;
    width: 0;
    height: 0;
    border-top: 0.3rem solid transparent;
    border-bottom: 0.3rem solid transparent;
    border-left: 0.5rem solid currentColor;
}

.fjxx-index-hero[data-video-state="playing"] .fjxx-index-hero-video-toggle-icon {
    width: 0.5rem;
    height: 0.65rem;
    border: 0;
    border-right: 2px solid currentColor;
    border-left: 2px solid currentColor;
}

.fjxx-index-hero-video-status:not(:empty) {
    display: block;
    padding: 0.5rem 0.7rem;
    color: #fff;
    background: rgba(8, 24, 24, 0.7);
    font-size: 0.7rem;
    line-height: 1.4;
}

.fjxx-index-hero-slide::before {
    z-index: 1;
    background: linear-gradient(180deg, rgba(8, 24, 24, 0.33) 0%, rgba(8, 24, 24, 0.08) 38%, rgba(5, 15, 15, 0.48) 100%);
    content: '';
    pointer-events: none;
}

.fjxx-index-hero-slide::after {
    z-index: 1;
    background: linear-gradient(90deg, rgba(5, 14, 14, 0.3) 0%, rgba(5, 14, 14, 0.02) 52%, rgba(5, 14, 14, 0.12) 100%);
    content: '';
    pointer-events: none;
}

.fjxx-index-hero-content {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(17rem, 23rem);
    align-items: end;
    gap: 3rem;
    width: 87.5%;
    min-height: 100vh;
    margin: 0 auto;
    padding: 0 0 7.8rem;
}

.fjxx-index-hero-copy {
    max-width: 45rem;
    padding-top: 7rem;
}

.fjxx-index-hero-eyebrow {
    margin-bottom: 1.15rem;
    font-size: 0.68rem;
    font-weight: 500;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.fjxx-index-hero-eyebrow p,
.fjxx-index-hero-description p {
    margin: 0;
}

.fjxx-index-hero-title {
    max-width: 45rem;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.2rem, 4.2vw, 5rem);
    font-weight: 400;
    line-height: 1.16;
    letter-spacing: 0.015em;
    text-transform: uppercase;
}

.fjxx-index-hero-side {
    max-width: 22rem;
    padding-bottom: 0.15rem;
}

.fjxx-index-hero-description {
    margin-bottom: 1.55rem;
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.82rem;
    line-height: 1.65;
}

.fjxx-index-hero-link {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.85);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    transition: gap 0.25s ease, color 0.25s ease;
}

.fjxx-index-hero-link .iconfont {
    font-size: 0.8rem;
}

.fjxx-index-hero-link:hover,
.fjxx-index-hero-link:focus-visible {
    gap: 1rem;
    color: #e0b36a;
}

.fjxx-index-hero-bottom {
    position: absolute;
    bottom: 1.75rem;
    left: 50%;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.55rem;
    transform: translateX(-50%);
}

.fjxx-index-hero-bottom-label {
    color: rgba(255, 255, 255, 0.94);
    font-size: 0.66rem;
    font-weight: 500;
    text-transform: uppercase;
}

.fjxx-index-hero-bottom-line {
    width: 1px;
    height: 2rem;
    background: rgba(255, 255, 255, 0.72);
    animation: fjxx-index-hero-scroll-line 1.8s ease-in-out infinite;
}

.fjxx-index-hero-pagination {
    position: absolute;
    right: 3.75rem;
    bottom: 2rem;
    left: auto;
    z-index: 4;
    display: flex;
    gap: 0.45rem;
    width: auto !important;
}

.fjxx-index-hero-pagination .swiper-pagination-bullet {
    width: 1.65rem;
    height: 2px;
    margin: 0 !important;
    border-radius: 0;
    opacity: 0.52;
    background: #fff;
    transition: width 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
}

.fjxx-index-hero-pagination .swiper-pagination-bullet-active {
    width: 3rem;
    opacity: 1;
    background: #d29a45;
}

@keyframes fjxx-index-hero-scroll-line {
    0%, 100% { opacity: 0.35; transform: scaleY(0.7); transform-origin: top; }
    50% { opacity: 1; transform: scaleY(1); transform-origin: top; }
}

@media (max-width: 60rem) {
    .fjxx-index-header-inner,
    .fjxx-index-hero-content { width: min(100% - 3rem, 70rem); }
    .fjxx-index-header-nav { gap: 1.7rem; margin-left: 3rem; }
    .fjxx-index-hero-content { grid-template-columns: minmax(0, 1fr) minmax(15rem, 20rem); }
}

@media (max-width: 72rem) {
    .fjxx-index-header { height: 4.25rem; }
    .fjxx-index-header-logo { width: 7.8rem; }
    .fjxx-index-header-nav,
    .fjxx-index-header-actions { display: none; }
    .fjxx-index-header-menu { display: block; }
}

@media (max-width: 48rem) {
    .fjxx-index-header-inner { width: calc(100% - 2rem); }
    .fjxx-index-hero-swiper { height: 100svh; min-height: 40rem; }
    .fjxx-index-hero-content { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; width: calc(100% - 2rem); min-height: 100svh; min-height: 40rem; padding: 0 0 8.5rem; }
    .fjxx-index-hero-copy { max-width: 100%; padding-top: 6rem; }
    .fjxx-index-hero-title { font-size: clamp(2rem, 9vw, 3rem); }
    .fjxx-index-hero-side { max-width: 24rem; padding-bottom: 0; }
    .fjxx-index-hero-description { font-size: 0.8rem; }
    .fjxx-index-hero-bottom { bottom: 1.1rem; }
    .fjxx-index-hero-pagination { right: 1rem; bottom: 5rem; }
    .fjxx-index-hero-video-controls { right: 1rem; bottom: 5.5rem; max-width: calc(100% - 2rem); }
    .fjxx-index-hero-video-toggle { padding: 0.6rem; font-size: 0.65rem; }
}

@media (max-width: 72rem) {
    .fjxx-index-header-mobile-nav { position: fixed; top: 0; right: 0; z-index: 31; display: flex; flex-direction: column; width: min(82vw, 20rem); height: 100vh; padding: 6rem 2rem 2rem; overflow-y: auto; background: #18302f; transform: translateX(100%); transition: transform 0.35s ease; }
    .fjxx-index-header-mobile-nav.is-open { transform: translateX(0); }
    .fjxx-index-header-mobile-item { border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
    .fjxx-index-header-mobile-link { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 1rem 0; color: rgba(255, 255, 255, 0.9); font-size: 0.85rem; text-align: left; text-transform: uppercase; }
    .fjxx-index-header-mobile-trigger { border: 0; background: transparent; cursor: pointer; }
    .fjxx-index-header-mobile-trigger[aria-expanded="true"] { color: #d6a65d; }
    .fjxx-index-header-mobile-trigger[aria-expanded="true"] .fjxx-index-header-mobile-caret { transform: translateY(0.04rem) rotate(225deg); }
    .fjxx-index-header-mobile-submenu[hidden] { display: none; }
    .fjxx-index-header-mobile-submenu { padding: 0.05rem 0 0.65rem 0.8rem; }
    .fjxx-index-header-mobile-sublink { display: block; padding: 0.62rem 0; color: rgba(255, 255, 255, 0.7); font-size: 0.72rem; letter-spacing: 0.04em; line-height: 1.35; text-transform: uppercase; transition: color 0.2s ease, padding-left 0.2s ease; }
    .fjxx-index-header-mobile-sublink:hover, .fjxx-index-header-mobile-sublink:focus-visible { padding-left: 0.35rem; color: #fff; }
    .fjxx-index-header-mobile-nav > .fjxx-index-header-cta { flex: 0 0 auto; margin-top: 1.5rem; }
    .fjxx-index-header-overlay { position: fixed; inset: 0; z-index: 30; display: block; background: rgba(4, 12, 12, 0.6); opacity: 0; pointer-events: none; transition: opacity 0.35s ease; }
    .fjxx-index-header-overlay.is-open { opacity: 1; pointer-events: auto; }
    .fjxx-index-header-search { position: fixed; inset: 0; z-index: 35; display: flex; align-items: flex-start; justify-content: center; padding: 7rem 1rem 1rem; background: rgba(5, 14, 14, 0.72); opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }
    .fjxx-index-header-search.is-open { opacity: 1; pointer-events: auto; }
    .fjxx-index-header-search-form { display: flex; width: min(100%, 32rem); border-bottom: 1px solid rgba(255, 255, 255, 0.82); }
    .fjxx-index-header-search-input { flex: 1; min-width: 0; padding: 0.7rem 0; color: #fff; border: 0; outline: 0; background: transparent; font: inherit; font-size: 1rem; }
    .fjxx-index-header-search-input::placeholder { color: rgba(255, 255, 255, 0.66); }
    .fjxx-index-header-search-submit { width: 2.5rem; color: #fff; border: 0; background: transparent; cursor: pointer; }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-index-header,
    .fjxx-index-header-nav-link::after,
    .fjxx-index-header-icon-btn,
    .fjxx-index-header-cta { transition: none; animation: none; }
}

/* fjxx-index-philosophy */
.fjxx-index-philosophy {
    position: relative;
    color: #0d0d0d;
    background: #f2efe7;
}

.fjxx-index-philosophy-inner {
    display: grid;
    grid-template-columns: minmax(20rem, 0.81fr) minmax(30rem, 1.19fr);
    gap: 7.5rem;
    width: 87.5%;
    margin: 0 auto;
    padding: 7rem 0;
}

.fjxx-index-philosophy-heading {
    padding-top: 0;
}

.fjxx-index-philosophy-eyebrow {
    margin-bottom: 0.55rem;
    font-size: 0.72rem;
    font-weight: 500;
    line-height: 1.4;
    text-transform: uppercase;
}

.fjxx-index-philosophy-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 4rem;
    font-weight: 400;
    line-height: 1.4;
    text-transform: uppercase;
}

.fjxx-index-philosophy-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 11.6rem;
    height: 3.35rem;
    margin: 2.85rem 0 0 0.6rem;
    padding: 0 1.5rem;
    color: #fff;
    background: #c7913d;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1;
    text-transform: uppercase;
    transition: color 0.25s ease, background-color 0.25s ease, transform 0.25s ease;
}

.fjxx-index-philosophy-button:hover,
.fjxx-index-philosophy-button:focus-visible {
    color: #fff;
    background: #a9752d;
    transform: translateY(-0.15rem);
}

.fjxx-index-philosophy-content {
    padding-top: 2.25rem;
}

.fjxx-index-philosophy-lead {
    margin-bottom: 2.8rem;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.35;
}

.fjxx-index-philosophy-body {
    color: #55534e;
    font-size: 0.95rem;
    font-weight: 400;
    line-height: 1.55;
}

.fjxx-index-philosophy-body p + p {
    margin-top: 1.9rem;
}

.fjxx-index-philosophy-eyebrow p,
.fjxx-index-philosophy-lead p,
.fjxx-index-philosophy-body p {
    margin-bottom: 0;
}

.fjxx-index-philosophy-animate {
    opacity: 0;
    transform: translateY(1.4rem);
    transition: opacity 0.75s ease, transform 0.75s ease;
}

.fjxx-index-philosophy-content.fjxx-index-philosophy-animate {
    transition-delay: 0.12s;
}

.fjxx-index-philosophy-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 60rem) {
    .fjxx-index-philosophy-inner {
        grid-template-columns: minmax(16rem, 0.8fr) minmax(25rem, 1.2fr);
        gap: 3rem;
        width: min(100% - 3rem, 70rem);
        min-height: 32rem;
        padding: 5rem 0 4rem;
    }
    .fjxx-index-philosophy-title { font-size: 1.8rem; }
    .fjxx-index-philosophy-lead { font-size: 1.25rem; }
}

@media (max-width: 48rem) {
    .fjxx-index-philosophy-inner {
        display: block;
        width: calc(100% - 2rem);
        min-height: 0;
        padding: 4rem 0;
    }
    .fjxx-index-philosophy-title { font-size: 1.7rem; line-height: 1.55; }
    .fjxx-index-philosophy-button { min-width: 8.5rem; height: 2.6rem; margin: 1.5rem 0 0; padding: 0 1rem; font-size: 0.68rem; }
    .fjxx-index-philosophy-content { padding-top: 3.25rem; }
    .fjxx-index-philosophy-lead { margin-bottom: 1.25rem; font-size: 1.2rem; line-height: 1.45; }
    .fjxx-index-philosophy-body { font-size: 0.78rem; line-height: 1.6; }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-index-philosophy-button,
    .fjxx-index-philosophy-animate { transition: none; }
    .fjxx-index-philosophy-animate { opacity: 1; transform: none; }
}

/* fjxx-index-testimonials */
.fjxx-index-testimonials {
    position: relative;
    overflow: hidden;
    color: #111;
    border-top: 0.125rem solid #f2efe7;
    background: #fff;
}

.fjxx-index-testimonials-inner {
    width: 100%;
    min-height: 24rem;
    padding: 3.65rem 0 2.4rem;
}

.fjxx-index-testimonials-title {
    margin-bottom: 3rem;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 4rem;
    font-weight: 400;
    line-height: 1.15;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-index-testimonials-stage {
    position: relative;
    width: 87.5%;
    margin: 0 auto;
    padding: 0 4.25rem;
}

.fjxx-index-testimonials-swiper {
    width: 100%;
    overflow: hidden;
}

.fjxx-index-testimonials-slide {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    min-height: 10rem;
    padding: 0.7rem 1rem 0;
    opacity: 0.56;
    transform: scale(0.9);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.fjxx-index-testimonials-slide.swiper-slide-active {
    opacity: 1;
    transform: scale(1);
}

.fjxx-index-testimonials-quote {
    max-width: 21rem;
    margin: 0 auto;
    color: #333;
    font-size: 0.78rem;
    font-weight: 400;
    line-height: 1.55;
    text-align: center;
    transition: color 0.5s ease, font-size 0.5s ease;
}

.fjxx-index-testimonials-slide.swiper-slide-active .fjxx-index-testimonials-quote {
    max-width: 24rem;
    color: #111;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.28;
}

.fjxx-index-testimonials-author {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    max-width: 100%;
    min-height: 3rem;
    margin-top: 1.7rem;
    color: #b77b28;
    font-size: 0.76rem;
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    transition: font-size 0.5s ease;
}

.fjxx-index-testimonials-avatar {
    display: block;
    flex: 0 0 3rem;
    width: 3rem;
    height: 3rem;
    padding: 0.125rem;
    border: 1px solid rgba(183, 123, 40, 0.3);
    border-radius: 50%;
    background: #fff;
    object-fit: cover;
}

.fjxx-index-testimonials-author-name {
    min-width: 0;
    text-align: left;
    overflow-wrap: anywhere;
}

.fjxx-index-testimonials-slide.swiper-slide-active .fjxx-index-testimonials-author {
    font-size: 0.9rem;
}

.fjxx-index-testimonials-quote p {
    display: -webkit-box;
    height: 7.68rem;
    margin: 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
}

.fjxx-index-testimonials-author p {
    min-height: 1.3rem;
    margin: 0;
}

.fjxx-index-testimonials-prev,
.fjxx-index-testimonials-next {
    position: absolute;
    top: 4.35rem;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.55rem;
    height: 2.55rem;
    color: #111;
    border: 0.0625rem solid #111;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    transition: color 0.25s ease, background-color 0.25s ease, transform 0.25s ease;
}

.fjxx-index-testimonials-prev { left: 0; }
.fjxx-index-testimonials-next { right: 0; }

.fjxx-index-testimonials-prev::before,
.fjxx-index-testimonials-next::before {
    font-family: 'iconfont';
    font-size: 1.05rem;
    font-style: normal;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    content: '';
    pointer-events: none;
}

.fjxx-index-testimonials-prev::before { content: '\e60f'; transform: rotate(180deg); }
.fjxx-index-testimonials-next::before { content: '\e60e'; }

.fjxx-index-testimonials-prev:hover,
.fjxx-index-testimonials-prev:focus-visible,
.fjxx-index-testimonials-next:hover,
.fjxx-index-testimonials-next:focus-visible {
    color: #fff;
    background: #111;
    transform: scale(1.06);
}

.fjxx-index-testimonials-prev:focus-visible,
.fjxx-index-testimonials-next:focus-visible {
    outline: 0.125rem solid #c7913d;
    outline-offset: 0.18rem;
}

.fjxx-index-testimonials-animate {
    opacity: 0;
    transform: translateY(1.2rem);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.fjxx-index-testimonials-stage.fjxx-index-testimonials-animate {
    transition-delay: 0.1s;
}

.fjxx-index-testimonials-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 60rem) {
    .fjxx-index-testimonials-stage { width: min(100% - 3rem, 70rem); padding: 0 3.5rem; }
    .fjxx-index-testimonials-title { font-size: 2.15rem; }
    .fjxx-index-testimonials-slide { padding-right: 0.5rem; padding-left: 0.5rem; }
    .fjxx-index-testimonials-slide.swiper-slide-active .fjxx-index-testimonials-quote { font-size: 0.9rem; }
}

@media (max-width: 48rem) {
    .fjxx-index-testimonials-inner { min-height: 28rem; padding: 3.5rem 0 2.5rem; }
    .fjxx-index-testimonials-title { margin-bottom: 2.5rem; padding: 0 1rem; font-size: 1.85rem; }
    .fjxx-index-testimonials-stage { width: calc(100% - 2rem); padding: 0 0 4.5rem; }
    .fjxx-index-testimonials-slide { min-height: 11.5rem; padding: 0.5rem 0.75rem 0; opacity: 1; transform: none; }
    .fjxx-index-testimonials-slide.swiper-slide-active { transform: none; }
    .fjxx-index-testimonials-quote,
    .fjxx-index-testimonials-slide.swiper-slide-active .fjxx-index-testimonials-quote { max-width: 22rem; font-size: 0.94rem; line-height: 1.48; }
    .fjxx-index-testimonials-quote p,
    .fjxx-index-testimonials-slide.swiper-slide-active .fjxx-index-testimonials-quote p { height: 8.35rem; }
    .fjxx-index-testimonials-author,
    .fjxx-index-testimonials-slide.swiper-slide-active .fjxx-index-testimonials-author { margin-top: 1.5rem; font-size: 0.8rem; }
    .fjxx-index-testimonials-avatar { flex-basis: 2.5rem; width: 2.5rem; height: 2.5rem; }
    .fjxx-index-testimonials-prev,
    .fjxx-index-testimonials-next { top: auto; bottom: 0; }
    .fjxx-index-testimonials-prev { left: calc(50% - 3.25rem); }
    .fjxx-index-testimonials-next { right: calc(50% - 3.25rem); }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-index-testimonials-slide,
    .fjxx-index-testimonials-prev,
    .fjxx-index-testimonials-next,
    .fjxx-index-testimonials-animate { transition: none; }
    .fjxx-index-testimonials-animate { opacity: 1; transform: none; }
}

/* fjxx-index-destinations */
.fjxx-index-destinations {
    position: relative;
    overflow: hidden;
    background: #fff;
}

.fjxx-index-destinations-inner {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 2rem;
    width: 87.5%;
    height: auto;
    margin: 0 auto;
    padding: 1.375rem 0;
}

.fjxx-index-destinations-featured,
.fjxx-index-destinations-slide {
    position: relative;
    display: block;
    height: 100%;
    overflow: hidden;
    color: #fff;
    background: #263c42;
}

.fjxx-index-destinations-featured img,
.fjxx-index-destinations-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.1s ease;
}

.fjxx-index-destinations-featured:hover img,
.fjxx-index-destinations-featured:focus-visible img,
.fjxx-index-destinations-slide:hover img,
.fjxx-index-destinations-slide:focus-visible img {
    transform: scale(1.035);
}

.fjxx-index-destinations-featured:focus-visible,
.fjxx-index-destinations-slide:focus-visible {
    outline: 0.15rem solid #c7913d;
    outline-offset: -0.15rem;
}

.fjxx-index-destinations-shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(5, 12, 14, 0) 48%, rgba(5, 12, 14, 0.74) 100%);
    pointer-events: none;
}

.fjxx-index-destinations-featured-content,
.fjxx-index-destinations-slide-content {
    position: absolute;
    bottom: 3.75rem;
    z-index: 2;
}

.fjxx-index-destinations-featured-content { left: 3.85rem; }
.fjxx-index-destinations-slide-content { left: 6.25rem; }

.fjxx-index-destinations-label,
.fjxx-index-destinations-offer {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2.75rem;
    padding: 0 1.5rem;
    color: #fff;
    background: #bd8534;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1;
}

.fjxx-index-destinations-label {
    min-width: 10.5rem;
    margin-bottom: 2rem;
}

.fjxx-index-destinations-slide-content .fjxx-index-destinations-label {
    /* max-width: min(22rem, calc(100% - 1rem)); */
    height: auto;
    min-height: 2.75rem;
    padding: 0.7rem 1.25rem;
    line-height: 1.2;
    text-align: center;
}

.fjxx-index-destinations-offer {
    position: absolute;
    top: 4.5rem;
    right: 0;
    z-index: 2;
    min-width: 16.75rem;
    height: 3.65rem;
    padding: 0 2rem;
    font-size: 1rem;
}

.fjxx-index-destinations-offer::after {
    position: absolute;
    right: 0;
    bottom: -0.9rem;
    width: 0;
    height: 0;
    border-top: 0.9rem solid #875c22;
    border-left: 0.9rem solid transparent;
    content: '';
    pointer-events: none;
}

.fjxx-index-destinations-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2.1rem;
    font-weight: 400;
    line-height: 1.2;
    text-transform: uppercase;
}

.fjxx-index-destinations-subtitle {
    margin-top: 0.55rem;
    font-size: 1.1rem;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.08em;
}

.fjxx-index-destinations-subtitle p {
    margin: 0;
}

.fjxx-index-destinations-carousel {
    position: relative;
    min-width: 0;
    width: 100%;
    height: auto;
    aspect-ratio: 495 / 454;
}

.fjxx-index-destinations-swiper {
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #dce8ec;
}

.fjxx-index-destinations-carousel-hint {
    position: absolute;
    right: 1.35rem;
    bottom: 1.35rem;
    left: 1.35rem;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1rem;
    pointer-events: none;
}

.fjxx-index-destinations-carousel-hint-label {
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1;
    text-transform: uppercase;
    text-shadow: 0 0.1rem 0.3rem rgba(0, 0, 0, 0.35);
    white-space: nowrap;
}

.fjxx-index-destinations-pagination {
    position: static;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    width: auto;
    margin: 0;
    pointer-events: auto;
}

.fjxx-index-destinations-pagination .swiper-pagination-bullet {
    position: relative;
    display: block;
    width: 1.9rem;
    height: 0.18rem;
    margin: 0 !important;
    border-radius: 0;
    background: rgba(255, 255, 255, 0.5);
    opacity: 1;
    cursor: pointer;
    transition: width 0.3s ease, background-color 0.3s ease;
}

/* 扩大分页指示点的透明点击热区：上下覆盖指示条区域、左右填满间隙，
   避免翻页时误触外层卡片链接直接跳转详情 */
.fjxx-index-destinations-pagination .swiper-pagination-bullet::before {
    content: "";
    position: absolute;
    top: -0.9rem;
    bottom: -1.25rem;
    left: -0.35rem;
    right: -0.35rem;
}

.fjxx-index-destinations-pagination .swiper-pagination-bullet-active {
    width: 3.4rem;
    background: #fff;
}

.fjxx-index-destinations-discount {
    position: absolute;
    top: -0.4rem;
    right: -0.4rem;
    z-index: 3;
    display: block;
    width: clamp(8.25rem, 22%, 10rem);
    height: auto;
    filter: drop-shadow(0 0.3rem 0.35rem rgba(98, 0, 0, 0.28));
    pointer-events: none;
    user-select: none;
}

.fjxx-index-destinations-animate {
    opacity: 0;
    transform: translateY(1.5rem);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.fjxx-index-destinations-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 60rem) {
    .fjxx-index-destinations-inner {
        gap: 1.2rem;
        width: min(100% - 3rem, 70rem);
        height: 28rem;
        aspect-ratio: auto;
        padding: 0.65rem 0 0.85rem;
    }
    .fjxx-index-destinations-carousel { height: 100%; aspect-ratio: auto; }
    .fjxx-index-destinations-featured-content { left: 1.5rem; bottom: 1.2rem; }
    .fjxx-index-destinations-slide-content { left: 2rem; bottom: 1.2rem; }
    .fjxx-index-destinations-carousel-hint { right: 1rem; bottom: 1rem; left: 1rem; gap: 0.7rem; }
    .fjxx-index-destinations-carousel-hint-label { font-size: 0.55rem; letter-spacing: 0.12em; }
    .fjxx-index-destinations-pagination { gap: 0.25rem; }
    .fjxx-index-destinations-pagination .swiper-pagination-bullet { width: 1.35rem; height: 0.16rem; }
    .fjxx-index-destinations-pagination .swiper-pagination-bullet::before {
        top: -0.8rem;
        bottom: -0.9rem;
        left: -0.25rem;
        right: -0.25rem;
    }
    .fjxx-index-destinations-pagination .swiper-pagination-bullet-active { width: 2.45rem; }
    .fjxx-index-destinations-label { min-width: 0; height: 1.75rem; margin-bottom: 1rem; padding: 0 0.9rem; font-size: 0.68rem; }
    .fjxx-index-destinations-slide-content .fjxx-index-destinations-label {
        height: auto;
        min-height: 1.75rem;
        max-width: calc(100vw - 4rem);
        margin-bottom: 0.8rem;
        padding: 0.45rem 0.75rem;
        line-height: 1.15;
        white-space: normal;
    }
    .fjxx-index-destinations-offer { top: 1.5rem; min-width: 0; height: 2.25rem; padding: 0 1rem; font-size: 0.68rem; }
    .fjxx-index-destinations-offer::after { bottom: -0.62rem; border-top-width: 0.62rem; border-left-width: 0.62rem; }
    .fjxx-index-destinations-title { font-size: 1.35rem; }
    .fjxx-index-destinations-subtitle { margin-top: 0.3rem; font-size: 0.8rem; }
}

@media (max-width: 48rem) {
    .fjxx-index-destinations-inner {
        display: grid;
        grid-template-columns: 1fr;
        gap: 1rem;
        width: calc(100% - 2rem);
        height: auto;
        aspect-ratio: auto;
        padding: 1rem 0;
    }
    .fjxx-index-destinations-featured { height: 31rem; }
    .fjxx-index-destinations-carousel { height: 22rem; }
    .fjxx-index-destinations-featured-content,
    .fjxx-index-destinations-slide-content { left: 1.25rem; bottom: 1.2rem; }
    .fjxx-index-destinations-offer { top: 1.5rem; }
}

@media (max-width: 30rem) {
    .fjxx-index-destinations-featured { height: 27rem; }
    .fjxx-index-destinations-carousel { height: 19rem; }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-index-destinations-featured img,
    .fjxx-index-destinations-slide img,
    .fjxx-index-destinations-animate { transition: none; }
    .fjxx-index-destinations-animate { opacity: 1; transform: none; }
}

/* fjxx-index-journey */
.fjxx-index-journey {
    position: relative;
    overflow: hidden;
    color: #111;
    background: #f7f5ef;
}

.fjxx-index-journey-inner {
    width: 87.5%;
    margin: 0 auto;
    padding: 4rem 0 4.5rem;
}

.fjxx-index-journey-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 4rem;
    font-weight: 400;
    line-height: 1.12;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-index-journey-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 21.5rem;
    margin: 1.8rem auto 2.2rem;
    padding: 0.3rem;
    background: #e8e5dd;
}

.fjxx-index-journey-tab {
    height: 2.65rem;
    padding: 0 1rem;
    color: #191919;
    border: 0;
    background: transparent;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    transition: color 0.25s ease, background-color 0.25s ease;
}

.fjxx-index-journey-tab.is-active {
    color: #fff;
    background: #181816;
}

.fjxx-index-journey-tab:focus-visible {
    outline: 0.125rem solid #c7913d;
    outline-offset: 0.125rem;
}

.fjxx-index-journey-panel {
    position: relative;
}

.fjxx-index-journey-panel[hidden] {
    display: none;
}

.fjxx-index-journey-swiper {
    width: 100%;
    overflow: visible;
}

.fjxx-index-journey-card,
.fjxx-index-journey-season-card {
    position: relative;
    display: block;
    overflow: hidden;
    color: #fff;
    background: #243233;
}

.fjxx-index-journey-card {
    width: 23.4rem !important;
}

.fjxx-index-journey-card,
.fjxx-index-journey-season-card {
    aspect-ratio: 0.538 / 1;
    isolation: isolate;
    transform: translate3d(0, 0, 0) scale(1);
    box-shadow: 0 0 0 rgba(16, 27, 27, 0);
    transition: transform 0.7s cubic-bezier(0.2, 0.75, 0.25, 1), box-shadow 0.7s ease;
    will-change: transform;
}

.fjxx-index-journey-card::before,
.fjxx-index-journey-card::after,
.fjxx-index-journey-season-card::before,
.fjxx-index-journey-season-card::after {
    position: absolute;
    inset: 0;
    z-index: 3;
    content: '';
    pointer-events: none;
}

.fjxx-index-journey-card::before,
.fjxx-index-journey-season-card::before {
    border: 1px solid rgba(255, 255, 255, 0);
    background: linear-gradient(125deg, rgba(255, 255, 255, 0.17), transparent 32%, transparent 72%, rgba(199, 145, 61, 0.12));
    opacity: 0;
    transition: opacity 0.55s ease, border-color 0.55s ease;
}

.fjxx-index-journey-card::after,
.fjxx-index-journey-season-card::after {
    inset: -45% -60%;
    background: linear-gradient(110deg, transparent 42%, rgba(255, 255, 255, 0.16) 50%, transparent 58%);
    opacity: 0;
    transform: translateX(-58%) rotate(12deg);
}

.fjxx-index-journey-season-card {
    aspect-ratio: 0.538 / 1;
}

.fjxx-index-journey-card img,
.fjxx-index-journey-season-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.2s cubic-bezier(0.18, 0.72, 0.22, 1), filter 0.8s ease;
}

.fjxx-index-journey-card:hover,
.fjxx-index-journey-card:focus-visible,
.fjxx-index-journey-season-card:hover,
.fjxx-index-journey-season-card:focus-visible {
    z-index: 4;
    transform: translate3d(0, -0.9rem, 0) scale(1.045);
    box-shadow: 0 1.5rem 3rem rgba(16, 27, 27, 0.28);
}

.fjxx-index-journey-card:hover::before,
.fjxx-index-journey-card:focus-visible::before,
.fjxx-index-journey-season-card:hover::before,
.fjxx-index-journey-season-card:focus-visible::before {
    border-color: rgba(255, 255, 255, 0.55);
    opacity: 1;
}

.fjxx-index-journey-card:hover::after,
.fjxx-index-journey-card:focus-visible::after,
.fjxx-index-journey-season-card:hover::after,
.fjxx-index-journey-season-card:focus-visible::after {
    opacity: 1;
    transform: translateX(58%) rotate(12deg) scale(1.08);
    transition: opacity 0.25s ease, transform 1s cubic-bezier(0.2, 0.65, 0.25, 1);
}

.fjxx-index-journey-card:hover img,
.fjxx-index-journey-card:focus-visible img,
.fjxx-index-journey-season-card:hover img,
.fjxx-index-journey-season-card:focus-visible img {
    filter: saturate(1.12) contrast(1.03);
    transform: scale(1.14);
}

.fjxx-index-journey-card-shade {
    transition: background 0.65s ease;
}

.fjxx-index-journey-card:hover .fjxx-index-journey-card-shade,
.fjxx-index-journey-card:focus-visible .fjxx-index-journey-card-shade,
.fjxx-index-journey-season-card:hover .fjxx-index-journey-card-shade,
.fjxx-index-journey-season-card:focus-visible .fjxx-index-journey-card-shade {
    background: linear-gradient(180deg, rgba(6, 13, 14, 0.02) 18%, rgba(6, 13, 14, 0.12) 42%, rgba(6, 13, 14, 0.92) 100%);
}

.fjxx-index-journey-card-content {
    transition: transform 0.65s cubic-bezier(0.2, 0.75, 0.25, 1);
}

.fjxx-index-journey-card:hover .fjxx-index-journey-card-content,
.fjxx-index-journey-card:focus-visible .fjxx-index-journey-card-content,
.fjxx-index-journey-season-card:hover .fjxx-index-journey-card-content,
.fjxx-index-journey-season-card:focus-visible .fjxx-index-journey-card-content {
    transform: translateY(-0.6rem);
}

.fjxx-index-journey-card:focus-visible,
.fjxx-index-journey-season-card:focus-visible {
    outline: 0.15rem solid #c7913d;
    outline-offset: -0.15rem;
}

.fjxx-index-journey-card-shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(6, 13, 14, 0.08) 25%, rgba(6, 13, 14, 0.18) 50%, rgba(6, 13, 14, 0.88) 100%);
    pointer-events: none;
}

.fjxx-index-journey-card-title {
    position: absolute;
    top: 4.2rem;
    left: 2.5rem;
    z-index: 2;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.15;
    text-transform: uppercase;
}

.fjxx-index-journey-card-content {
    position: absolute;
    right: 2.1rem;
    bottom: 2.7rem;
    left: 2.1rem;
    z-index: 2;
}

.fjxx-index-journey-card-lead {
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.35;
}

.fjxx-index-journey-card-meta {
    margin-top: 0.55rem;
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.74rem;
    font-weight: 400;
    line-height: 1.45;
}

.fjxx-index-journey-card-lead p,
.fjxx-index-journey-card-meta p {
    margin: 0;
}

.fjxx-index-journey-card-link {
    display: inline-flex;
    align-items: center;
    margin-top: 2.1rem;
    font-size: 0.74rem;
    font-weight: 500;
    line-height: 1;
}

.fjxx-index-journey-card-link::after {
    margin-left: 0.55rem;
    font-family: 'iconfont';
    font-size: 0.85rem;
    font-style: normal;
    content: '\e60e';
    transition: transform 0.25s ease;
}

.fjxx-index-journey-card:hover .fjxx-index-journey-card-link::after,
.fjxx-index-journey-season-card:hover .fjxx-index-journey-card-link::after {
    transform: translateX(0.25rem);
}

.fjxx-index-journey-controls {
    display: flex;
    justify-content: flex-end;
    gap: 0.7rem;
    margin-top: 1.55rem;
}

.fjxx-index-journey-prev,
.fjxx-index-journey-next {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    color: #111;
    border: 0.0625rem solid #111;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    transition: color 0.25s ease, background-color 0.25s ease, opacity 0.25s ease;
}

.fjxx-index-journey-prev::before,
.fjxx-index-journey-next::before {
    font-family: 'iconfont';
    font-size: 1.1rem;
    font-style: normal;
    line-height: 1;
}

.fjxx-index-journey-prev::before { content: '\e60f'; transform: rotate(180deg); }
.fjxx-index-journey-next::before { content: '\e60e'; }

.fjxx-index-journey-prev:hover,
.fjxx-index-journey-prev:focus-visible,
.fjxx-index-journey-next:hover,
.fjxx-index-journey-next:focus-visible {
    color: #fff;
    background: #111;
}

.fjxx-index-journey-prev.swiper-button-disabled,
.fjxx-index-journey-next.swiper-button-disabled {
    opacity: 0.32;
    cursor: default;
}

.fjxx-index-journey-season-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.fjxx-index-journey-animate {
    opacity: 0;
    transform: translateY(1.4rem);
    transition: opacity 0.75s ease, transform 0.75s ease;
}

.fjxx-index-journey-tabs.fjxx-index-journey-animate { transition-delay: 0.08s; }
.fjxx-index-journey-panel.fjxx-index-journey-animate { transition-delay: 0.15s; }

.fjxx-index-journey-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 60rem) {
    .fjxx-index-journey-inner { width: min(100% - 3rem, 70rem); padding: 3.5rem 0 4rem; }
    .fjxx-index-journey-title { font-size: 2.5rem; }
    .fjxx-index-journey-card { width: calc((100vw - 4rem) / 2) !important; }
    .fjxx-index-journey-card-title { top: 2.5rem; left: 1.5rem; font-size: 1.5rem; }
    .fjxx-index-journey-card-content { right: 1.4rem; bottom: 1.8rem; left: 1.4rem; }
    .fjxx-index-journey-season-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 48rem) {
    .fjxx-index-journey-inner { width: calc(100% - 2rem); padding: 3.25rem 0 3.5rem; }
    .fjxx-index-journey-title { font-size: 2rem; }
    .fjxx-index-journey-tabs { width: 100%; margin: 1.5rem auto 1.75rem; }
    .fjxx-index-journey-tab { height: 2.8rem; font-size: 0.76rem; }
    .fjxx-index-journey-card { width: 82vw !important; max-width: 22rem; }
    .fjxx-index-journey-card-title { top: 2rem; left: 1.25rem; font-size: 1.35rem; }
    .fjxx-index-journey-card-content { right: 1.2rem; bottom: 1.5rem; left: 1.2rem; }
    .fjxx-index-journey-card-link { margin-top: 1.5rem; }
    .fjxx-index-journey-controls { justify-content: center; }
    .fjxx-index-journey-prev,
    .fjxx-index-journey-next { width: 2.8rem; height: 2.8rem; }
    .fjxx-index-journey-season-grid { grid-template-columns: 1fr; }
    .fjxx-index-journey-season-card { min-height: 32rem; aspect-ratio: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-index-journey-tab,
    .fjxx-index-journey-card,
    .fjxx-index-journey-card::before,
    .fjxx-index-journey-card::after,
    .fjxx-index-journey-card img,
    .fjxx-index-journey-card-shade,
    .fjxx-index-journey-card-content,
    .fjxx-index-journey-season-card img,
    .fjxx-index-journey-card-link::after,
    .fjxx-index-journey-prev,
    .fjxx-index-journey-next,
    .fjxx-index-journey-animate { transition: none; }
    .fjxx-index-journey-animate { opacity: 1; transform: none; }
    .fjxx-index-journey-card:hover,
    .fjxx-index-journey-card:focus-visible,
    .fjxx-index-journey-season-card:hover,
    .fjxx-index-journey-season-card:focus-visible { transform: none; box-shadow: none; }
    .fjxx-index-journey-card:hover img,
    .fjxx-index-journey-card:focus-visible img,
    .fjxx-index-journey-season-card:hover img,
    .fjxx-index-journey-season-card:focus-visible img { filter: none; transform: none; }
}

/* fjxx-index-trips */
.fjxx-index-trips {
    overflow: hidden;
    padding-top: 3.25rem;
    color: #fff;
    background: #fff;
}

.fjxx-index-trips-title {
    margin: 0 0 1.5rem;
    color: #111;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 4rem;
    font-weight: 400;
    line-height: 1.12;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-index-trips-accordion {
    display: flex;
    width: 100%;
    height: 42.4vw;
    min-height: 32rem;
    max-height: 51rem;
    overflow: hidden;
    background: #17252b;
}

.fjxx-index-trips-item {
    position: relative;
    flex: 1 1 0%;
    min-width: 0;
    overflow: hidden;
    background: #25383d;
    transition: flex-grow 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.fjxx-index-trips-item.is-active {
    flex-grow: 3.2;
}

.fjxx-index-trips-link {
    position: absolute;
    inset: 0;
    display: block;
    overflow: hidden;
    color: #fff;
}

.fjxx-index-trips-link:focus-visible {
    outline: 0.15rem solid #c7913d;
    outline-offset: -0.15rem;
}

.fjxx-index-trips-image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    transform: scale(1.015);
    transition: transform 0.9s ease;
}

.fjxx-index-trips-item.is-active .fjxx-index-trips-image {
    transform: scale(1);
}

.fjxx-index-trips-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(7, 17, 22, 0.12) 18%, rgba(7, 17, 22, 0.28) 55%, rgba(7, 17, 22, 0.78) 100%);
    transition: background 0.55s ease;
    pointer-events: none;
}

.fjxx-index-trips-item:not(.is-active) .fjxx-index-trips-shade {
    background: rgba(7, 17, 22, 0.15);
}

.fjxx-index-trips-content {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(78%, 38rem);
    text-align: center;
    opacity: 0;
    transform: translate(-50%, -42%);
    transition: opacity 0.32s ease, transform 0.55s ease;
    pointer-events: none;
}

.fjxx-index-trips-item.is-active .fjxx-index-trips-content {
    opacity: 1;
    transform: translate(-50%, -50%);
    transition-delay: 0.18s;
}

.fjxx-index-trips-item-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.15;
    text-transform: uppercase;
}

.fjxx-index-trips-description {
    width: min(100%, 31rem);
    margin: 1.15rem auto 0;
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.55;
}

.fjxx-index-trips-description p {
    margin: 0;
}

.fjxx-index-trips-action {
    display: inline-flex;
    align-items: center;
    margin-top: 3.25rem;
    padding-bottom: 0.3rem;
    border-bottom: 0.0625rem solid rgba(255, 255, 255, 0.92);
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1;
}

.fjxx-index-trips-action::after {
    margin-left: 0.55rem;
    font-family: 'iconfont';
    font-size: 0.9rem;
    font-style: normal;
    content: '\e60e';
    transition: transform 0.25s ease;
}

.fjxx-index-trips-item.is-active:hover .fjxx-index-trips-action::after,
.fjxx-index-trips-link:focus-visible .fjxx-index-trips-action::after {
    transform: translateX(0.25rem);
}

.fjxx-index-trips-animate {
    opacity: 0;
    transform: translateY(1.4rem);
    transition: opacity 0.75s ease, transform 0.75s ease;
}

.fjxx-index-trips-accordion.fjxx-index-trips-animate {
    transition-delay: 0.1s;
}

.fjxx-index-trips-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 60rem) {
    .fjxx-index-trips { padding-top: 3rem; }
    .fjxx-index-trips-title { margin-bottom: 1.35rem; font-size: 2.5rem; }
    .fjxx-index-trips-accordion { height: 36rem; min-height: 0; }
    .fjxx-index-trips-item-title { font-size: 1.55rem; }
    .fjxx-index-trips-description { font-size: 0.8rem; }
    .fjxx-index-trips-action { margin-top: 2.25rem; font-size: 0.8rem; }
}

@media (max-width: 48rem) {
    .fjxx-index-trips { padding-top: 3.25rem; }
    .fjxx-index-trips-title { margin: 0 1rem 1.5rem; font-size: 2rem; }
    .fjxx-index-trips-accordion { flex-direction: column; height: 46rem; }
    .fjxx-index-trips-item.is-active { flex-grow: 3.3; }
    .fjxx-index-trips-content { width: min(82%, 28rem); }
    .fjxx-index-trips-item-title { font-size: 1.35rem; }
    .fjxx-index-trips-description { margin-top: 0.8rem; font-size: 0.76rem; line-height: 1.45; }
    .fjxx-index-trips-action { margin-top: 1.35rem; font-size: 0.76rem; }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-index-trips-item,
    .fjxx-index-trips-image,
    .fjxx-index-trips-shade,
    .fjxx-index-trips-content,
    .fjxx-index-trips-action::after,
    .fjxx-index-trips-animate { transition: none; }
    .fjxx-index-trips-animate { opacity: 1; transform: none; }
}

/* fjxx-index-why */
.fjxx-index-why {
    overflow: hidden;
    color: #111;
    background: #fff;
}

.fjxx-index-why-inner {
    width: 100%;
    margin: 0 auto;
    padding: 4.5rem 0 3rem;
}

.fjxx-index-why-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 4rem;
    font-weight: 400;
    line-height: 1.12;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-index-why-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    margin-top: 2.8rem;
}

.fjxx-index-why-item {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.fjxx-index-why-item::before {
    display: block;
    width: 4.35rem;
    height: 3.4rem;
    margin-bottom: 1.15rem;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    transition: transform 0.35s ease;
}

.fjxx-index-why-item-landmark::before {
    background-image: url('../images/why-travel-landmark.png');
}

.fjxx-index-why-item-heritage::before {
    background-image: url('../images/why-travel-heritage.png');
}

.fjxx-index-why-item-tailored::before {
    background-image: url('../images/why-travel-tailored.png');
}

.fjxx-index-why-item-stories::before {
    background-image: url('../images/why-travel-stories.png');
}

.fjxx-index-why-item-support::before {
    background-image: url('../images/why-travel-support.png');
}

.fjxx-index-why-item:hover::before {
    transform: translateY(-0.3rem);
}

.fjxx-index-why-item-copy {
    min-height: 3rem;
    font-size: 1.05rem;
    font-weight: 400;
    line-height: 1.45;
}

.fjxx-index-why-item-copy p {
    margin: 0;
}

.fjxx-index-why-animate {
    opacity: 0;
    transform: translateY(1.25rem);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.fjxx-index-why-item:nth-child(1) { transition-delay: 0.08s; }
.fjxx-index-why-item:nth-child(2) { transition-delay: 0.14s; }
.fjxx-index-why-item:nth-child(3) { transition-delay: 0.2s; }
.fjxx-index-why-item:nth-child(4) { transition-delay: 0.26s; }
.fjxx-index-why-item:nth-child(5) { transition-delay: 0.32s; }

.fjxx-index-why-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 60rem) {
    .fjxx-index-why-inner { width: min(100% - 3rem, 70rem); padding: 3.75rem 0; }
    .fjxx-index-why-title { font-size: 2.5rem; }
    .fjxx-index-why-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 3rem; margin-top: 3.5rem; }
    .fjxx-index-why-item-copy { font-size: 0.95rem; }
}

@media (max-width: 48rem) {
    .fjxx-index-why-inner { width: calc(100% - 2rem); padding: 3.25rem 0 3.5rem; }
    .fjxx-index-why-title { font-size: 2rem; }
    .fjxx-index-why-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.6rem 1rem; margin-top: 3rem; }
    .fjxx-index-why-item:last-child { grid-column: 1 / -1; }
    .fjxx-index-why-item::before { width: 4rem; height: 3.2rem; margin-bottom: 0.85rem; }
    .fjxx-index-why-item-copy { font-size: 0.9rem; }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-index-why-item::before,
    .fjxx-index-why-animate { transition: none; }
    .fjxx-index-why-animate { opacity: 1; transform: none; }
}

/* fjxx-index-entry */
.fjxx-index-entry {
    overflow: hidden;
    color: #12354d;
    background: #f4f1e9;
}

.fjxx-index-entry-inner {
    width: min(100% - 4rem, 65rem);
    margin: 0 auto;
    padding: 5.5rem 0 4.75rem;
}

.fjxx-index-entry-heading {
    text-align: center;
}

.fjxx-index-entry-eyebrow {
    color: #c7913d;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.fjxx-index-entry-title {
    margin-top: 1.1rem;
    color: #123f60;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 4rem;
    font-weight: 400;
    line-height: 1.08;
}

.fjxx-index-entry-intro {
    margin: 1.2rem auto 0;
    color: #31566d;
    font-size: 0.86rem;
    line-height: 1.75;
}

.fjxx-index-entry-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2.75rem;
}

.fjxx-index-entry-card {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    min-height: 28rem;
    padding: 2rem 1.9rem 1.8rem;
    border: 1px solid #d3e0e5;
    border-radius: 0.55rem;
    background: #fff;
    box-shadow: 0 1rem 2rem rgba(24, 55, 67, 0.08);
}

.fjxx-index-entry-card::before {
    position: absolute;
    top: 0;
    left: 1.9rem;
    width: 3.35rem;
    height: 0.28rem;
    background: #c7913d;
    content: '';
    pointer-events: none;
}

.fjxx-index-entry-card-transit {
    background: #f7fbfc;
}

.fjxx-index-entry-card-transit::before {
    background: #347b78;
}

.fjxx-index-entry-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.35rem;
    height: 3.35rem;
    margin-bottom: 1.1rem;
    border-radius: 50%;
    color: #17496a;
    background: #eff4f6;
    font-size: 1.45rem;
}

.fjxx-index-entry-card-transit .fjxx-index-entry-icon {
    color: #277b78;
    background: #edf6f4;
}

.fjxx-index-entry-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 1.55rem;
    padding: 0 0.75rem;
    border-radius: 1rem;
    color: #996d28;
    background: #fbf4e6;
    font-size: 0.57rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    line-height: 1.2;
    text-transform: uppercase;
}

.fjxx-index-entry-card-transit .fjxx-index-entry-kicker {
    color: #28706c;
    background: #eaf4f2;
}

.fjxx-index-entry-card-title {
    margin-top: 1.1rem;
    color: #123f60;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.15;
}

.fjxx-index-entry-card-description {
    margin-top: 0.75rem;
    color: #31566d;
    font-size: 0.78rem;
    line-height: 1.7;
}

.fjxx-index-entry-list {
    display: grid;
    gap: 0.62rem;
    margin-top: 1.2rem;
    color: #45677b;
    font-size: 0.71rem;
    line-height: 1.45;
}

.fjxx-index-entry-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
}

.fjxx-index-entry-list .iconfont {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    color: #277b78;
    background: #edf6f4;
    font-size: 0.56rem;
}

.fjxx-index-entry-card-button {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    margin-top: auto;
    padding: 0.72rem 1rem;
    border: 1px solid #123f60;
    border-radius: 0.28rem;
    color: #123f60;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.2;
    transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.fjxx-index-entry-card-button:hover,
.fjxx-index-entry-card-button:focus-visible {
    color: #fff;
    background: #123f60;
}

.fjxx-index-entry-card-button-primary {
    border-color: #c7913d;
    color: #fff;
    background: #c7913d;
}

.fjxx-index-entry-card-button-primary:hover,
.fjxx-index-entry-card-button-primary:focus-visible {
    border-color: #a9752d;
    background: #a9752d;
}

.fjxx-index-entry-note {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    width: min(100% - 7.5rem, 42rem);
    margin: 1.75rem auto 0;
    padding: 0.85rem 1rem;
    border: 1px solid #e2d9c7;
    border-radius: 0.45rem;
    color: #567083;
    background: rgba(255, 255, 255, 0.62);
    font-size: 0.61rem;
    line-height: 1.55;
}

.fjxx-index-entry-note p { margin: 0; }

.fjxx-index-entry-note-mark {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    border: 1px solid #c7913d;
    border-radius: 50%;
    color: #c7913d;
    font-size: 0.65rem;
    font-weight: 700;
}

.fjxx-index-entry-animate {
    opacity: 0;
    transform: translateY(1.25rem);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.fjxx-index-entry-card:nth-child(2) { transition-delay: 0.12s; }
.fjxx-index-entry-note { transition-delay: 0.2s; }

.fjxx-index-entry-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 60rem) {
    .fjxx-index-entry-inner { width: min(100% - 3rem, 58rem); padding: 4.5rem 0 4rem; }
    .fjxx-index-entry-title { font-size: 3.3rem; }
    .fjxx-index-entry-card { padding-right: 1.5rem; padding-left: 1.5rem; }
    .fjxx-index-entry-card::before { left: 1.5rem; }
    .fjxx-index-entry-note { width: min(100% - 4rem, 42rem); }
}

@media (max-width: 48rem) {
    .fjxx-index-entry-inner { width: calc(100% - 2rem); padding: 3.5rem 0 3.25rem; }
    .fjxx-index-entry-title { font-size: 2.45rem; }
    .fjxx-index-entry-intro { font-size: 0.78rem; }
    .fjxx-index-entry-intro-break { display: none; }
    .fjxx-index-entry-grid { grid-template-columns: 1fr; gap: 1rem; margin-top: 2rem; }
    .fjxx-index-entry-card { min-height: 0; padding: 1.7rem 1.35rem 1.5rem; }
    .fjxx-index-entry-card::before { left: 1.35rem; }
    .fjxx-index-entry-card-title { font-size: 1.85rem; }
    .fjxx-index-entry-card-button { margin-top: 1.5rem; }
    .fjxx-index-entry-note { width: 100%; margin-top: 1.25rem; font-size: 0.58rem; }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-index-entry-animate { transition: none; }
    .fjxx-index-entry-animate { opacity: 1; transform: none; }
}

/* fjxx-index-ready */
.fjxx-index-ready {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 36.0625rem;
    overflow: hidden;
    color: #fff;
    background-color: #263840;
    background-image: url('../images/ready-private-journey.jpg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.fjxx-index-ready-inner {
    position: relative;
    width: 87.5%;
    margin: 0 auto;
    text-align: center;
}

.fjxx-index-ready-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 4rem;
    font-weight: 400;
    line-height: 1.12;
    text-transform: uppercase;
}

.fjxx-index-ready-description {
    margin-top: 1rem;
    font-size: 1.05rem;
    font-weight: 400;
    line-height: 1.5;
}

.fjxx-index-ready-description p {
    margin: 0;
}

.fjxx-index-ready-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20rem;
    max-width: 100%;
    height: 3.5rem;
    margin-top: 1.65rem;
    padding: 0 1.5rem;
    color: #fff;
    background: #c7913d;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    transition: background-color 0.25s ease, transform 0.25s ease;
}

.fjxx-index-ready-button:hover,
.fjxx-index-ready-button:focus-visible {
    color: #fff;
    background: #d5a14d;
    transform: translateY(-0.15rem);
}

.fjxx-index-ready-button:focus-visible {
    outline: 0.125rem solid #fff;
    outline-offset: 0.2rem;
}

.fjxx-index-ready-animate {
    opacity: 0;
    transform: translateY(1.35rem);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.fjxx-index-ready-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 60rem) {
    .fjxx-index-ready { height: 28rem; }
    .fjxx-index-ready-title { font-size: 2.5rem; }
    .fjxx-index-ready-description { font-size: 0.9rem; }
    .fjxx-index-ready-button { width: 17rem; height: 3.2rem; font-size: 0.74rem; }
}

@media (max-width: 48rem) {
    .fjxx-index-ready { height: 26rem; background-position: 58% center; }
    .fjxx-index-ready-inner { width: calc(100% - 2rem); }
    .fjxx-index-ready-title { font-size: 2rem; }
    .fjxx-index-ready-description { width: min(100%, 28rem); margin: 0.9rem auto 0; font-size: 0.8rem; }
    .fjxx-index-ready-button { width: min(100%, 17rem); height: 3rem; margin-top: 1.5rem; font-size: 0.7rem; }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-index-ready-button,
    .fjxx-index-ready-animate { transition: none; }
    .fjxx-index-ready-animate { opacity: 1; transform: none; }
}

/* fjxx-index-footer */
.fjxx-index-footer {
    overflow: hidden;
    color: #fff;
    background: #050505;
}

.fjxx-index-footer-inner {
    width: 87.5%;
    margin: 0 auto;
    padding: 3.35rem 0 1.55rem;
}

.fjxx-index-footer-grid {
    display: grid;
    grid-template-columns: 38% 24% 14% 24%;
}

.fjxx-index-footer-brand {
    min-width: 0;
}

.fjxx-index-footer-logo {
    display: block;
    width: 12rem;
    max-width: 100%;
    aspect-ratio: 400 / 154;
}

.fjxx-index-footer-logo img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.fjxx-index-footer-logo:focus-visible,
.fjxx-index-footer-link:focus-visible,
.fjxx-index-footer-contact-link:focus-visible,
.fjxx-index-footer-social-link:focus-visible {
    outline: 0.125rem solid #c7913d;
    outline-offset: 0.2rem;
}

.fjxx-index-footer-intro {
    margin-top: 1.1rem;
    font-size: 0.85rem;
    font-weight: 400;
    line-height: 1.45;
}

.fjxx-index-footer-intro p,
.fjxx-index-footer-copyright p,
.fjxx-index-footer-signature p {
    margin: 0;
}

.fjxx-index-footer-socials {
    display: flex;
    gap: 0.7rem;
    margin-top: 0.75rem;
}

.fjxx-index-footer-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    color: #fff;
    border-radius: 0.5rem;
    background: #232323;
    transition: color 0.25s ease, background-color 0.25s ease, transform 0.25s ease;
}

.fjxx-index-footer-social-link .iconfont {
    font-size: 0.82rem;
    line-height: 1;
}

.fjxx-index-footer-social-link:hover,
.fjxx-index-footer-social-link:focus-visible {
    color: #111;
    background: #c7913d;
    transform: translateY(-0.15rem);
}

.fjxx-index-footer-column {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    padding-top: 1.45rem;
}

.fjxx-index-footer-column-title {
    margin-bottom: 0.55rem;
    color: #929292;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 0.65rem;
    font-weight: 400;
    line-height: 1.2;
}

.fjxx-index-footer-link {
    color: #fff;
    font-size: 0.73rem;
    font-weight: 400;
    line-height: 1.65;
    transition: color 0.25s ease, transform 0.25s ease;
}

.fjxx-index-footer-link:hover,
.fjxx-index-footer-link:focus-visible,
.fjxx-index-footer-contact-link:hover,
.fjxx-index-footer-contact-link:focus-visible {
    color: #c7913d;
    transform: translateX(0.2rem);
}

.fjxx-index-footer-contact-link {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 400;
    line-height: 1.8;
    overflow-wrap: break-word;
    transition: color 0.25s ease, transform 0.25s ease;
}

.fjxx-index-footer-contact-link .iconfont {
    width: 1.05rem;
    margin-right: 0.35rem;
    font-size: 0.75rem;
    line-height: 1;
    text-align: center;
}

.fjxx-index-footer-contact-qrs {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    width: 100%;
    margin-top: 1rem;
}

.fjxx-index-footer-contact-qr {
    flex: 1 1 0;
    min-width: 0;
    max-width: 7.25rem;
}

.fjxx-index-footer-contact-qr img {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    height: auto;
    object-fit: contain;
    background: #fff;
}

.fjxx-index-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 1.9rem;
    padding-top: 1.35rem;
    border-top: 0.0625rem solid #444;
    color: #d5d5d5;
    font-size: 0.64rem;
    font-weight: 400;
    line-height: 1.4;
}

.fjxx-index-footer-animate {
    opacity: 0;
    transform: translateY(1rem);
    transition: opacity 0.65s ease, transform 0.65s ease;
}

.fjxx-index-footer-grid > :nth-child(2) { transition-delay: 0.06s; }
.fjxx-index-footer-grid > :nth-child(3) { transition-delay: 0.12s; }
.fjxx-index-footer-grid > :nth-child(4) { transition-delay: 0.18s; }
.fjxx-index-footer-bottom.fjxx-index-footer-animate { transition-delay: 0.24s; }

.fjxx-index-footer-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 60rem) {
    .fjxx-index-footer-inner { width: min(100% - 3rem, 70rem); padding: 3.25rem 0 1.75rem; }
    .fjxx-index-footer-grid { grid-template-columns: 1.5fr 1fr; gap: 3rem 4rem; }
    .fjxx-index-footer-column { padding-top: 0; }
    .fjxx-index-footer-bottom { margin-top: 2.5rem; }
}

@media (max-width: 48rem) {
    .fjxx-index-footer-inner { width: calc(100% - 2rem); padding: 2.5rem 0 1.25rem; }
    .fjxx-index-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 1rem; }
    .fjxx-index-footer-brand,
    .fjxx-index-footer-contact { grid-column: 1 / -1; }
    .fjxx-index-footer-logo { width: 10.5rem; }
    .fjxx-index-footer-intro { margin-top: 0.8rem; font-size: 0.8rem; }
    .fjxx-index-footer-intro br { display: none; }
    .fjxx-index-footer-socials { margin-top: 0.65rem; }
    .fjxx-index-footer-column-title { margin-bottom: 0.4rem; }
    .fjxx-index-footer-link { font-size: 0.76rem; }
    .fjxx-index-footer-contact-link { font-size: 0.74rem; }
    .fjxx-index-footer-bottom { align-items: flex-start; flex-direction: column; gap: 0.5rem; margin-top: 1.75rem; padding-top: 1rem; font-size: 0.65rem; }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-index-footer-social-link,
    .fjxx-index-footer-link,
    .fjxx-index-footer-contact-link,
    .fjxx-index-footer-animate { transition: none; }
    .fjxx-index-footer-animate { opacity: 1; transform: none; }
}

/* fjxx-destination-hero */
.fjxx-destination-hero {
    position: relative;
    display: flex;
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
    height: 100vh;
    height: 100svh;
    align-items: flex-end;
    overflow: hidden;
    color: #fff;
    background: #1d3543;
}

.fjxx-destination-hero-media,
.fjxx-destination-hero-overlay {
    position: absolute;
    inset: 0;
}

.fjxx-destination-hero-image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center 48%;
    transform: scale(1.025);
    transition: transform 1.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.fjxx-destination-hero-overlay {
    background:
        linear-gradient(180deg, rgba(6, 23, 35, 0.14) 0%, rgba(5, 18, 28, 0.05) 38%, rgba(3, 12, 19, 0.82) 100%),
        linear-gradient(90deg, rgba(4, 24, 37, 0.28) 0%, rgba(4, 24, 37, 0) 52%);
}

.fjxx-destination-hero-content {
    position: relative;
    z-index: 1;
    width: min(87.5%, 75rem);
    margin:  auto;
    padding-bottom: 5.15rem;
    text-align: center;
    opacity: 0;
    transform: translateY(1.1rem);
    transition: opacity 0.8s ease 0.12s, transform 0.8s ease 0.12s;
}

.fjxx-destination-hero.is-ready .fjxx-destination-hero-image {
    transform: scale(1);
}

.fjxx-destination-hero.is-ready .fjxx-destination-hero-content {
    opacity: 1;
    transform: translateY(0);
}

.fjxx-destination-hero-eyebrow {
    margin-bottom: 0.8rem;
    font-size: 0.67rem;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.fjxx-destination-hero-title {
    max-width: 55rem;
    margin: 0 auto;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(3.35rem, 4vw, 4rem);
    font-weight: 400;
    line-height: 0.96;
    letter-spacing: 0.01em;
    text-wrap: balance;
    text-transform: uppercase;
    text-shadow: 0 0.15rem 1.5rem rgba(0, 0, 0, 0.18);
}

@media (max-width: 60rem) {
    .fjxx-destination-hero {
        min-height: 100vh;
        min-height: 100svh;
        height: 100vh;
        height: 100svh;
    }

    .fjxx-destination-hero-content {
        width: calc(100% - 3rem);
        padding-bottom: 4.6rem;
    }

    .fjxx-destination-hero-title {
        font-size: clamp(3rem, 7vw, 4.4rem);
    }
}

@media (max-width: 48rem) {
    .fjxx-destination-hero {
        min-height: 100vh;
        min-height: 100svh;
        height: 100vh;
        height: 100svh;
    }

    .fjxx-destination-hero-image {
        object-position: 56% center;
    }

    .fjxx-destination-hero-content {
        width: calc(100% - 2rem);
        padding-bottom: 4rem;
    }

    .fjxx-destination-hero-eyebrow {
        margin-bottom: 0.65rem;
        font-size: 0.61rem;
        letter-spacing: 0.12em;
    }

    .fjxx-destination-hero-title {
        max-width: 30rem;
        font-size: clamp(2.7rem, 12vw, 3.7rem);
        line-height: 0.98;
    }
}

/* fjxx-destination-season-guide */
.fjxx-destination-season-guide {
    color: #0b0b0b;
    background: #f4f1e9;
}

.fjxx-destination-season-guide-inner {
    display: grid;
    grid-template-columns: minmax(14rem, 0.78fr) minmax(0, 1.22fr);
    gap: clamp(3rem, 8vw, 9rem);
    width: min(87.5%, 75rem);
    margin: 0 auto;
    padding: clamp(4.75rem, 9vw, 8rem) 0 clamp(5rem, 9vw, 8rem);
}

.fjxx-destination-season-guide-animate {
    opacity: 0;
    transform: translateY(1rem);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.fjxx-destination-season-guide-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.fjxx-destination-season-guide-kicker {
    margin-bottom: 1rem;
    font-size: 0.63rem;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.fjxx-destination-season-guide-title {
    max-width: 28rem;
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(3rem, 4vw, 4rem);
    font-weight: 400;
    line-height: 0.95;
    text-transform: uppercase;
}

.fjxx-destination-season-guide-copy {
    max-width: 43rem;
    padding-top: 0.3rem;
}

.fjxx-destination-season-guide-lede {
    font-size: clamp(1.1rem, 1.75vw, 1.6rem);
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.02em;
}

.fjxx-destination-season-guide-details {
    margin-top: 1.25rem;
    color: #4e4b45;
    font-size: 0.69rem;
    line-height: 1.55;
}

.fjxx-destination-season-guide-details p {
    margin: 0;
}

.fjxx-destination-season-guide-details p + p {
    margin-top: 1rem;
}

@media (max-width: 60rem) {
    .fjxx-destination-season-guide-inner {
        width: min(calc(100% - 3rem), 70rem);
        grid-template-columns: minmax(12rem, 0.8fr) minmax(0, 1.2fr);
        gap: 3rem;
        padding: 4.5rem 0 5rem;
    }

    .fjxx-destination-season-guide-title {
        font-size: clamp(2.8rem, 6.5vw, 4rem);
    }
}

@media (max-width: 48rem) {
    .fjxx-destination-season-guide-inner {
        width: calc(100% - 2rem);
        grid-template-columns: 1fr;
        gap: 2rem;
        padding: 4rem 0 4.25rem;
    }

    .fjxx-destination-season-guide-copy {
        padding-top: 0;
    }

    .fjxx-destination-season-guide-title {
        max-width: 20rem;
        font-size: clamp(2.8rem, 14vw, 4rem);
    }

    .fjxx-destination-season-guide-lede {
        font-size: 1.12rem;
    }

    .fjxx-destination-season-guide-details {
        font-size: 0.7rem;
    }
}

/* fjxx-destination-season-faces */
.fjxx-destination-season-faces {
    color: #0b0b0b;
    background: #ffffff;
}

.fjxx-destination-season-faces-inner {
    width: min(87.5%, 75rem);
    margin: 0 auto;
    padding: clamp(5rem, 9vw, 8rem) 0 clamp(5.5rem, 10vw, 8.5rem);
}

.fjxx-destination-season-faces-animate {
    opacity: 0;
    transform: translateY(1rem);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.fjxx-destination-season-faces-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.fjxx-destination-season-faces-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(17rem, 0.55fr);
    gap: 2rem;
    align-items: end;
}

.fjxx-destination-season-faces-title {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(3rem, 4vw, 4rem);
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}

.fjxx-destination-season-faces-intro {
    max-width: 16rem;
    margin: 0 0 0.2rem auto;
    font-size: 0.7rem;
    line-height: 1.45;
}

.fjxx-destination-season-faces-tabs {
    display: flex;
    gap: clamp(1.8rem, 5vw, 4.75rem);
    margin-top: clamp(2.25rem, 4vw, 3.25rem);
    border-bottom: 1px solid #d6d2ca;
}

.fjxx-destination-season-faces-tab {
    position: relative;
    flex: 0 0 auto;
    padding: 0 0 0.7rem;
    border: 0;
    color: #78746d;
    background: transparent;
    font: inherit;
    font-size: 0.68rem;
    line-height: 1.2;
    cursor: pointer;
    transition: color 0.25s ease;
}

.fjxx-destination-season-faces-tab::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 2px;
    background: #b8893e;
    content: '';
    opacity: 0;
    transform: scaleX(0.25);
    transform-origin: center;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.fjxx-destination-season-faces-tab:hover,
.fjxx-destination-season-faces-tab:focus-visible,
.fjxx-destination-season-faces-tab.is-active {
    color: #0b0b0b;
}

.fjxx-destination-season-faces-tab.is-active::after {
    opacity: 1;
    transform: scaleX(1);
}

.fjxx-destination-season-faces-tab:focus-visible {
    outline: 2px solid #b8893e;
    outline-offset: 0.35rem;
}

.fjxx-destination-season-faces-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(19rem, 1fr);
    height: clamp(24rem, 34vw, 30rem);
    min-height: 0;
    margin-top: 0;
    overflow: hidden;
    background: #000000;
}

.fjxx-destination-season-faces-media {
    position: relative;
    min-height: 0;
    overflow: hidden;
    background: #1a3444;
}

.fjxx-destination-season-faces-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: opacity 0.25s ease, transform 0.7s ease;
}

.fjxx-destination-season-faces-counter {
    position: absolute;
    top: 1rem;
    left: 1.25rem;
    color: #ffffff;
    font-size: 0.86rem;
    font-weight: 500;
    letter-spacing: 0.08em;
}

.fjxx-destination-season-faces-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: clamp(2rem, 5vw, 4.5rem) clamp(1.6rem, 4vw, 3.5rem);
    color: #ffffff;
    background: #000000;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.fjxx-destination-season-faces-season {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.6rem, 3.8vw, 4rem);
    font-weight: 400;
    line-height: 0.95;
    text-transform: uppercase;
}

.fjxx-destination-season-faces-subtitle {
    margin-top: 0.65rem;
    color: #c3954a;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 0.84rem;
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-transform: uppercase;
}

.fjxx-destination-season-faces-description {
    max-width: 18rem;
    margin-top: 1rem;
    color: #e2e2e2;
    font-size: 0.68rem;
    line-height: 1.6;
}

.fjxx-destination-season-faces-description p {
    margin: 0;
}

.fjxx-destination-season-faces-link {
    margin-top: auto;
    padding-bottom: 0.25rem;
    padding-top: 0.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.65);
    color: #ffffff;
    font-size: 0.68rem;
    line-height: 1.3;
    transition: color 0.25s ease, border-color 0.25s ease;
}

.fjxx-destination-season-faces-link:hover,
.fjxx-destination-season-faces-link:focus-visible {
    border-color: #c3954a;
    color: #c3954a;
}

.fjxx-destination-season-faces-link:focus-visible {
    outline: 2px solid #c3954a;
    outline-offset: 0.35rem;
}

.fjxx-destination-season-faces-panel.is-changing .fjxx-destination-season-faces-image,
.fjxx-destination-season-faces-panel.is-changing .fjxx-destination-season-faces-content {
    opacity: 0.18;
    transform: translateY(0.35rem);
}

/* fjxx-destination-recommended-routes */
.fjxx-destination-recommended-routes {
    color: #0b0b0b;
    background: #f4f1eb;
}

.fjxx-destination-recommended-routes-inner {
    width: min(87.5%, 75rem);
    margin: 0 auto;
    padding: clamp(4.75rem, 8vw, 7rem) 0 clamp(5.5rem, 9vw, 8rem);
}

.fjxx-destination-recommended-routes-animate {
    opacity: 0;
    transform: translateY(1rem);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.fjxx-destination-recommended-routes-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.fjxx-destination-recommended-routes-heading {
    text-align: center;
}

.fjxx-destination-recommended-routes-title {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.4rem, 4vw, 3.8rem);
    font-weight: 400;
    line-height: 0.98;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}

.fjxx-destination-recommended-routes-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: clamp(2.25rem, 4vw, 3.25rem);
}

.fjxx-destination-recommended-route-card {
    position: relative;
    min-height: clamp(19rem, 32vw, 25rem);
    overflow: hidden;
    color: #ffffff;
    background: #19252a;
    isolation: isolate;
}

.fjxx-destination-recommended-route-media,
.fjxx-destination-recommended-route-media img,
.fjxx-destination-recommended-route-overlay {
    position: absolute;
    inset: 0;
}

.fjxx-destination-recommended-route-media {
    z-index: -3;
    overflow: hidden;
    background: #28434c;
}

.fjxx-destination-recommended-route-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.7s ease;
}

.fjxx-destination-recommended-route-overlay {
    z-index: -2;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.04) 28%, rgba(0, 0, 0, 0.76) 100%);
    transition: background 0.35s ease;
}

.fjxx-destination-recommended-route-content {
    display: flex;
    position: relative;
    z-index: 1;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    padding: 1.25rem 1rem 1.15rem;
}

.fjxx-destination-recommended-route-name {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.fjxx-destination-recommended-route-detail {
    min-height: 1.25rem;
    margin-top: 0.45rem;
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.68rem;
    line-height: 1.4;
}

.fjxx-destination-recommended-route-link {
    align-self: flex-start;
    margin-top: 1.25rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.72);
    color: #ffffff;
    font-size: 0.68rem;
    line-height: 1.3;
    transition: color 0.25s ease, border-color 0.25s ease;
}

.fjxx-destination-recommended-route-card:hover .fjxx-destination-recommended-route-media img,
.fjxx-destination-recommended-route-card:focus-within .fjxx-destination-recommended-route-media img {
    transform: scale(1.06);
}

.fjxx-destination-recommended-route-card:hover .fjxx-destination-recommended-route-overlay,
.fjxx-destination-recommended-route-card:focus-within .fjxx-destination-recommended-route-overlay {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.02) 20%, rgba(0, 0, 0, 0.84) 100%);
}

.fjxx-destination-recommended-route-link:hover,
.fjxx-destination-recommended-route-link:focus-visible {
    border-color: #c3954a;
    color: #c3954a;
}

.fjxx-destination-recommended-route-link:focus-visible {
    outline: 2px solid #c3954a;
    outline-offset: 0.35rem;
}

@media (max-width: 60rem) {
    .fjxx-destination-recommended-routes-inner {
        width: min(calc(100% - 3rem), 70rem);
    }

    .fjxx-destination-recommended-routes-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.65rem;
    }

    .fjxx-destination-recommended-route-card {
        min-height: clamp(20rem, 42vw, 25rem);
    }
}

@media (max-width: 48rem) {
    .fjxx-destination-recommended-routes-inner {
        width: calc(100% - 2rem);
        padding: 4.5rem 0 5rem;
    }

    .fjxx-destination-recommended-routes-title {
        max-width: 20rem;
        margin: 0 auto;
        font-size: clamp(2.15rem, 10vw, 3.25rem);
    }

    .fjxx-destination-recommended-routes-grid {
        grid-template-columns: 1fr;
        gap: 0.75rem;
        margin-top: 2.25rem;
    }

    .fjxx-destination-recommended-route-card {
        min-height: 21rem;
    }

    .fjxx-destination-recommended-route-content {
        padding: 1.35rem 1.25rem 1.25rem;
    }
}

@media (max-width: 60rem) {
    .fjxx-destination-season-faces-inner {
        width: min(calc(100% - 3rem), 70rem);
    }

    .fjxx-destination-season-faces-heading {
        grid-template-columns: minmax(0, 1.2fr) minmax(14rem, 0.8fr);
    }

    .fjxx-destination-season-faces-panel {
        grid-template-columns: minmax(0, 1.1fr) minmax(15rem, 0.9fr);
    }
}

@media (max-width: 48rem) {
    .fjxx-destination-season-faces-inner {
        width: calc(100% - 2rem);
        padding: 4.5rem 0 5rem;
    }

    .fjxx-destination-season-faces-heading {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .fjxx-destination-season-faces-intro {
        max-width: 24rem;
        margin: 0;
    }

    .fjxx-destination-season-faces-tabs {
        gap: 1.6rem;
        margin-top: 2.5rem;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .fjxx-destination-season-faces-tabs::-webkit-scrollbar {
        display: none;
    }

    .fjxx-destination-season-faces-panel {
        grid-template-columns: 1fr;
        height: auto;
        min-height: 0;
    }

    .fjxx-destination-season-faces-media {
        aspect-ratio: 1.25 / 1;
        min-height: 16rem;
    }

    .fjxx-destination-season-faces-content {
        min-height: 18rem;
        padding: 2rem 1.5rem 2.25rem;
    }

    .fjxx-destination-season-faces-description {
        margin-top: 1.5rem;
    }

    .fjxx-destination-season-faces-link {
        margin-top: 2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-destination-season-guide-animate {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .fjxx-destination-season-faces-animate,
    .fjxx-destination-season-faces-image,
    .fjxx-destination-season-faces-content,
    .fjxx-destination-recommended-routes-animate,
    .fjxx-destination-recommended-route-media img {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .fjxx-destination-hero-image,
    .fjxx-destination-hero-content {
        transition: none;
    }

    .fjxx-destination-hero-image {
        transform: none;
    }

    .fjxx-destination-hero-content {
        opacity: 1;
        transform: none;
    }
}

/* wow.js 动画元素初始样式 - 修复滚动到底部出现空白的问题 */
.wow {
    visibility: hidden;
    overflow: hidden;
}

a {
    text-decoration: none;
    color: inherit;
}

ul {
    list-style: none;
}

img {
    max-width: 100%;
    height: auto;
}

/* Spring destination editorial sections */
.fjxx-spring-intro {
    color: #101010;
    background: #f3f0e8;
}

.fjxx-spring-intro-inner {
    display: grid;
    grid-template-columns: minmax(15rem, 0.82fr) minmax(0, 1.18fr);
    gap: clamp(3.5rem, 10vw, 10.5rem);
    width: min(87.5%, 75rem);
    margin: 0 auto;
    padding: clamp(5.5rem, 9vw, 8.5rem) 0 clamp(6rem, 10vw, 9rem);
}

.fjxx-spring-intro-title {
    margin: 0;
    padding-top: 0.85rem;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.75rem, 4.2vw, 4.35rem);
    font-weight: 400;
    line-height: 1.12;
    letter-spacing: 0.005em;
}

.fjxx-spring-intro-copy {
    max-width: 39.5rem;
}

.fjxx-spring-intro-lead {
    max-width: 36rem;
    margin: 0;
    font-size: clamp(1.3rem, 2vw, 1.75rem);
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.02em;
}

.fjxx-spring-intro-body {
    margin-top: 1.5rem;
    color: #595959;
    font-size: clamp(0.78rem, 1vw, 0.92rem);
    font-weight: 400;
    line-height: 1.55;
}

.fjxx-spring-intro-body p {
    margin: 0;
}

.fjxx-spring-intro-body p + p {
    margin-top: 1.4rem;
}

.fjxx-spring-glance,
.fjxx-spring-places {
    color: #101010;
    background: #fbfaf7;
}

.fjxx-spring-glance-inner {
    width: min(87.5%, 75rem);
    margin: 0 auto;
    padding: clamp(5rem, 8vw, 7.5rem) 0 clamp(5.5rem, 9vw, 8.5rem);
}

.fjxx-spring-section-title {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(3rem, 4vw, 4.25rem);
    font-weight: 400;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-spring-glance-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-top: clamp(2.4rem, 4vw, 3.5rem);
    border-top: 1px solid #dedbd3;
    border-right: 1px solid #dedbd3;
    border-bottom: 1px solid #dedbd3;
}

.fjxx-spring-glance-item {
    min-height: 13.25rem;
    padding: 3.3rem 2rem 2.4rem;
    border-left: 1px solid #dedbd3;
}

.fjxx-spring-glance-number {
    display: block;
    margin-bottom: 1.1rem;
    color: #555;
    font-size: 0.64rem;
    font-weight: 400;
    line-height: 1;
}

.fjxx-spring-glance-item h3 {
    margin: 0 0 0.55rem;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(1.22rem, 1.45vw, 1.55rem);
    font-weight: 400;
    line-height: 1.05;
}

.fjxx-spring-glance-item p {
    margin: 0;
    color: #626262;
    font-size: 0.76rem;
    line-height: 1.48;
}

.fjxx-spring-places {
    background: #fff;
}

.fjxx-spring-places-inner {
    width: min(87.5%, 67.5rem);
    margin: 0 auto;
    padding: clamp(5rem, 8vw, 7rem) 0 clamp(6rem, 10vw, 9rem);
}

.fjxx-spring-places-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.9rem;
    margin-top: clamp(2.6rem, 4vw, 3.8rem);
}

.fjxx-spring-place-card {
    position: relative;
    display: block;
    aspect-ratio: 0.765;
    min-height: 0;
    overflow: hidden;
    color: #fff;
    background: #243633;
}

.fjxx-spring-place-image,
.fjxx-spring-place-shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.fjxx-spring-place-image {
    display: block;
    max-width: none;
    object-fit: cover;
    transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.fjxx-spring-place-card:nth-child(1) .fjxx-spring-place-image { object-position: 51% center; }
.fjxx-spring-place-card:nth-child(2) .fjxx-spring-place-image { object-position: center 58%; }
.fjxx-spring-place-card:nth-child(3) .fjxx-spring-place-image { object-position: center 42%; }
.fjxx-spring-place-card:nth-child(4) .fjxx-spring-place-image { object-position: center; }
.fjxx-spring-place-card:nth-child(5) .fjxx-spring-place-image { object-position: center 42%; }
.fjxx-spring-place-card:nth-child(6) .fjxx-spring-place-image { object-position: center 46%; }

.fjxx-spring-place-shade {
    background:
        linear-gradient(180deg, rgba(4, 11, 10, 0.12) 0%, rgba(4, 11, 10, 0.02) 48%, rgba(3, 9, 8, 0.82) 100%),
        linear-gradient(90deg, rgba(4, 11, 10, 0.12), transparent 45%);
    transition: background-color 0.4s ease;
}

.fjxx-spring-place-index {
    position: absolute;
    z-index: 1;
    top: 1rem;
    left: 1.05rem;
    font-size: 0.63rem;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}

.fjxx-spring-place-content {
    position: absolute;
    z-index: 1;
    right: 1.05rem;
    bottom: 1.05rem;
    left: 1.05rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.fjxx-spring-place-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(1.15rem, 1.55vw, 1.55rem);
    font-weight: 400;
    line-height: 1.05;
}

.fjxx-spring-place-meta {
    margin-top: 0.18rem;
    font-size: 0.58rem;
    line-height: 1.4;
}

.fjxx-spring-place-link {
    margin-top: 0.65rem;
    padding-bottom: 0.08rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.75);
    font-size: 0.58rem;
    font-weight: 500;
    line-height: 1.4;
}

.fjxx-spring-place-card:hover,
.fjxx-spring-place-card:focus-visible {
    color: #fff;
}

.fjxx-spring-place-card:hover .fjxx-spring-place-image,
.fjxx-spring-place-card:focus-visible .fjxx-spring-place-image {
    transform: scale(1.045);
}

.fjxx-spring-place-card:focus-visible {
    outline: 0.15rem solid #c7913d;
    outline-offset: 0.2rem;
}

@media (max-width: 64rem) {
    .fjxx-spring-intro-inner {
        gap: 4rem;
    }

    .fjxx-spring-glance-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        border-bottom: 0;
    }

    .fjxx-spring-glance-item {
        min-height: 12.5rem;
        border-bottom: 1px solid #dedbd3;
    }

    .fjxx-spring-glance-item:nth-child(4),
    .fjxx-spring-glance-item:nth-child(5) {
        grid-column: span 1;
    }
}

@media (max-width: 48rem) {
    .fjxx-spring-intro-inner {
        grid-template-columns: 1fr;
        gap: 2rem;
        width: calc(100% - 2rem);
        padding: 4.5rem 0 5rem;
    }

    .fjxx-spring-intro-title {
        padding-top: 0;
        font-size: 3rem;
    }

    .fjxx-spring-intro-copy {
        max-width: none;
    }

    .fjxx-spring-intro-lead {
        font-size: 1.2rem;
    }

    .fjxx-spring-intro-body {
        font-size: 0.78rem;
    }

    .fjxx-spring-glance-inner,
    .fjxx-spring-places-inner {
        width: calc(100% - 2rem);
        padding: 4.5rem 0 5rem;
    }

    .fjxx-spring-section-title {
        font-size: 2.7rem;
    }

    .fjxx-spring-glance-grid {
        grid-template-columns: 1fr;
        margin-top: 2.25rem;
    }

    .fjxx-spring-glance-item {
        min-height: 0;
        padding: 2rem 1.5rem 2.2rem;
    }

    .fjxx-spring-glance-number {
        margin-bottom: 0.85rem;
    }

    .fjxx-spring-glance-item h3 {
        font-size: 1.35rem;
    }

    .fjxx-spring-places-grid {
        grid-template-columns: 1fr;
        gap: 0.75rem;
        margin-top: 2.4rem;
    }

    .fjxx-spring-place-card {
        aspect-ratio: 0.86;
    }

    .fjxx-spring-place-title {
        font-size: 1.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-spring-place-image {
        transition: none;
    }
}

/* FAQ accordion */
.fjxx-faq-list {
    color: #171717;
    background: #fff;
}

.fjxx-faq-list-inner {
    width: min(75%, 75rem);
    margin: 0 auto;
    padding: clamp(4rem, 7vw, 7rem) 0 clamp(4.5rem, 8vw, 0rem);
}

.fjxx-faq-item {
    margin: 0 0 0.72rem;
}

.fjxx-faq-item:last-child {
    margin-bottom: 0;
}

.fjxx-faq-question {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    min-height: 2.8rem;
    padding: 0.7rem 1rem;
    color: #151515;
    background: #f1efe9;
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 450;
    line-height: 1.35;
    list-style: none;
    transition: color 0.25s ease, background-color 0.25s ease;
}

.fjxx-faq-question::-webkit-details-marker {
    display: none;
}

.fjxx-faq-question::marker {
    content: '';
    pointer-events: none;
}

.fjxx-faq-question:hover,
.fjxx-faq-question:focus-visible {
    color: #9b6a20;
    background: #ebe7dd;
}

.fjxx-faq-question:focus-visible {
    outline: 2px solid #bd8734;
    outline-offset: 2px;
}

.fjxx-faq-question-icon {
    flex: 0 0 auto;
    width: 0.48rem;
    height: 0.48rem;
    margin-right: 0.15rem;
    border-right: 1.5px solid #b77b27;
    border-bottom: 1.5px solid #b77b27;
    transform: rotate(45deg) translateY(-0.15rem);
    transition: transform 0.25s ease;
}

.fjxx-faq-item[open] .fjxx-faq-question-icon {
    transform: rotate(225deg) translate(-0.1rem, -0.05rem);
}

.fjxx-faq-answer {
    margin: 0.9rem 0 1.8rem 0.72rem;
    padding: 0.05rem 1rem 0.05rem 1rem;
    color: #626262;
    border-left: 2px solid #c48a31;
    font-size: 0.74rem;
    font-weight: 400;
    line-height: 1.55;
}

.fjxx-faq-answer p {
    margin: 0;
}

@media (max-width: 64rem) {
    .fjxx-faq-list-inner {
        width: calc(100% - 4rem);
    }
}

@media (max-width: 48rem) {
    .fjxx-faq-list-inner {
        width: calc(100% - 2rem);
        padding: 3.5rem 0 4.5rem;
    }

    .fjxx-faq-item {
        margin-bottom: 0.6rem;
    }

    .fjxx-faq-question {
        min-height: 3.25rem;
        padding: 0.8rem 0.9rem;
        font-size: 0.78rem;
    }

    .fjxx-faq-answer {
        margin: 0.85rem 0 1.5rem 0.45rem;
        padding: 0 0.7rem 0 0.9rem;
        font-size: 0.72rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-faq-question,
    .fjxx-faq-question-icon {
        transition: none;
    }
}

/* Itinerary wilderness luxury */
.fjxx-itinerary-wilderness {
    color: #111;
    background: #fff;
}

.fjxx-itinerary-wilderness-inner {
    width: min(87.5%, 75rem);
    margin: 0 auto;
    padding: clamp(4.8rem, 8vw, 7rem) 0 clamp(5.5rem, 9vw, 8rem);
}

.fjxx-itinerary-wilderness-title {
    margin: 0 0 clamp(2.5rem, 4vw, 3.6rem);
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.8rem, 4vw, 4.1rem);
    font-weight: 400;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-itinerary-wilderness-feature {
    display: grid;
    grid-template-columns: minmax(0, 1.28fr) minmax(18rem, 0.82fr);
    align-items: stretch;
    gap: clamp(2.5rem, 5.5vw, 5.5rem);
}

.fjxx-itinerary-wilderness-hero-media {
    min-height: 27rem;
    overflow: hidden;
    background: #d9e1df;
}

.fjxx-itinerary-wilderness-hero-media img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    transition: transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

.fjxx-itinerary-wilderness-hero-media:hover img {
    transform: scale(1.025);
}

.fjxx-itinerary-wilderness-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 2rem 0;
}

.fjxx-itinerary-wilderness-kicker {
    display: block;
    margin-bottom: 0.85rem;
    color: #b77924;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 0.8rem;
    line-height: 1;
    letter-spacing: 0.025em;
    text-transform: uppercase;
}

.fjxx-itinerary-wilderness-copy h3 {
    max-width: 25rem;
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(1.8rem, 2.3vw, 2.55rem);
    font-weight: 400;
    line-height: 1.08;
    text-transform: uppercase;
}

.fjxx-itinerary-wilderness-copy > p {
    max-width: 27rem;
    margin: 1.3rem 0 0;
    color: #4f4f4f;
    font-size: 0.76rem;
    line-height: 1.55;
}

.fjxx-itinerary-wilderness-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 2rem;
}

.fjxx-itinerary-wilderness-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 1.9rem;
    padding: 0.35rem 0.65rem;
    color: #9a681e;
    background: #f6f0e5;
    font-size: 0.62rem;
    line-height: 1.2;
}

.fjxx-itinerary-wilderness-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 3.1rem;
    color: #ae7322;
    font-size: 0.68rem;
    font-weight: 500;
    letter-spacing: 0.025em;
    text-transform: uppercase;
    transition: color 0.25s ease, transform 0.25s ease;
}

.fjxx-itinerary-wilderness-link:hover,
.fjxx-itinerary-wilderness-link:focus-visible {
    color: #71450a;
    transform: translateX(0.2rem);
}

.fjxx-itinerary-wilderness-link:focus-visible {
    outline: 2px solid #b77924;
    outline-offset: 0.35rem;
}

.fjxx-itinerary-wilderness-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.fjxx-itinerary-wilderness-card {
    position: relative;
    min-height: 18rem;
    overflow: hidden;
    color: #fff;
    background: #263431;
}

.fjxx-itinerary-wilderness-card img,
.fjxx-itinerary-wilderness-card-shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.fjxx-itinerary-wilderness-card img {
    display: block;
    max-width: none;
    object-fit: cover;
    transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.fjxx-itinerary-wilderness-card:nth-child(1) img {
    object-position: center 30%;
}

.fjxx-itinerary-wilderness-card:nth-child(2) img {
    object-position: center 34%;
}

.fjxx-itinerary-wilderness-card:nth-child(3) img {
    object-position: center 38%;
}

.fjxx-itinerary-wilderness-card-shade {
    background: linear-gradient(180deg, rgba(5, 11, 10, 0.03) 42%, rgba(5, 11, 10, 0.78) 100%);
}

.fjxx-itinerary-wilderness-card h3 {
    position: absolute;
    left: 1.2rem;
    right: 1.2rem;
    bottom: 1.15rem;
    z-index: 1;
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.35;
    text-align: center;
}

.fjxx-itinerary-wilderness-card:hover img {
    transform: scale(1.045);
}

@media (max-width: 64rem) {
    .fjxx-itinerary-wilderness-feature {
        grid-template-columns: minmax(0, 1.12fr) minmax(16rem, 0.88fr);
        gap: 2.5rem;
    }

    .fjxx-itinerary-wilderness-hero-media {
        min-height: 23rem;
    }

    .fjxx-itinerary-wilderness-card {
        min-height: 15rem;
    }
}

@media (max-width: 48rem) {
    .fjxx-itinerary-wilderness-inner {
        width: calc(100% - 2rem);
        padding: 4.5rem 0 5rem;
    }

    .fjxx-itinerary-wilderness-title {
        margin-bottom: 2.2rem;
        font-size: 3rem;
    }

    .fjxx-itinerary-wilderness-feature {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .fjxx-itinerary-wilderness-hero-media {
        min-height: 0;
        aspect-ratio: 1.25 / 1;
    }

    .fjxx-itinerary-wilderness-copy {
        padding: 2rem 0 2.8rem;
    }

    .fjxx-itinerary-wilderness-copy h3 {
        max-width: 23rem;
        font-size: 2rem;
    }

    .fjxx-itinerary-wilderness-copy > p {
        margin-top: 1rem;
    }

    .fjxx-itinerary-wilderness-tags {
        margin-top: 1.5rem;
    }

    .fjxx-itinerary-wilderness-link {
        margin-top: 2.1rem;
    }

    .fjxx-itinerary-wilderness-gallery {
        grid-template-columns: 1fr;
        gap: 0.75rem;
        margin-top: 0;
    }

    .fjxx-itinerary-wilderness-card {
        min-height: 22rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-itinerary-wilderness-hero-media img,
    .fjxx-itinerary-wilderness-card img,
    .fjxx-itinerary-wilderness-link {
        transition: none;
    }
}

/* Itinerary special offers */
.fjxx-itinerary-offers {
    color: #111;
    background: #f3f0e8;
    padding-top: 4rem;
}

.fjxx-itinerary-offers-inner {
    width: min(87.5%, 70rem);
    margin: 0 auto;
    padding: clamp(0rem, 8vw, 0rem) 0 clamp(6rem, 10vw, 9rem);
}

.fjxx-itinerary-offers-title {
    margin: 0 0 clamp(2.6rem, 4vw, 3.8rem);
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(3rem, 4vw, 4.2rem);
    font-weight: 400;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-itinerary-offers-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 1.6vw, 1.5rem);
}

.fjxx-itinerary-offer-card {
    position: relative;
    display: block;
    aspect-ratio: 0.77 / 1;
    min-height: 25rem;
    overflow: hidden;
    color: #fff;
    background: #142027;
}

.fjxx-itinerary-offer-card > img,
.fjxx-itinerary-offer-shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.fjxx-itinerary-offer-card > img {
    display: block;
    max-width: none;
    object-fit: cover;
    transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.fjxx-itinerary-offer-card:nth-child(1) > img {
    object-position: center center;
}

.fjxx-itinerary-offer-card:nth-child(2) > img {
    object-position: center 46%;
}

.fjxx-itinerary-offer-card:nth-child(3) > img {
    object-position: center 42%;
}

.fjxx-itinerary-offer-shade {
    background:
        linear-gradient(180deg, rgba(3, 11, 17, 0.08) 0%, rgba(3, 11, 17, 0.02) 38%, rgba(3, 10, 17, 0.94) 100%),
        linear-gradient(90deg, rgba(2, 8, 12, 0.2), transparent 45%);
}

.fjxx-itinerary-offer-place {
    position: absolute;
    z-index: 2;
    top: 1.05rem;
    left: 1.05rem;
    font-size: 0.66rem;
    font-weight: 500;
    line-height: 1;
    text-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
}

.fjxx-itinerary-offer-ribbon {
    position: absolute;
    z-index: 3;
    top: 4.25rem;
    right: -6.5rem;
    width: 25rem;
    padding: 1.05rem 0;
    color: #fff;
    background: #d62828;
    box-shadow: 0 0.25rem 0.55rem rgba(110, 16, 16, 0.18);
    font-size: clamp(1.05rem, 1.5vw, 1.4rem);
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.04em;
    text-align: center;
    transform: rotate(45deg);
    transform-origin: center;
}

.fjxx-itinerary-offer-content {
    position: absolute;
    z-index: 2;
    right: 1.1rem;
    bottom: 1.1rem;
    left: 1.1rem;
}

.fjxx-itinerary-offer-content h3 {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(1.15rem, 1.65vw, 1.55rem);
    font-weight: 400;
    line-height: 1.06;
    text-transform: uppercase;
}

.fjxx-itinerary-offer-content p {
    display: -webkit-box;
    overflow: hidden;
    max-width: 95%;
    margin: 0.6rem 0 0;
    font-size: 0.63rem;
    line-height: 1.52;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.fjxx-itinerary-offer-content a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 1.15rem;
    padding-bottom: 0.08rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.7);
    color: #fff;
    font-size: 0.63rem;
    font-weight: 500;
    line-height: 1.3;
    transition: gap 0.25s ease, border-color 0.25s ease;
}

.fjxx-itinerary-offer-content a:hover,
.fjxx-itinerary-offer-content a:focus-visible {
    gap: 0.58rem;
    color: #fff;
    border-color: #fff;
}

.fjxx-itinerary-offer-content a:focus-visible {
    outline: 2px solid #d3a24e;
    outline-offset: 0.3rem;
}

.fjxx-itinerary-offer-card:hover > img {
    transform: scale(1.045);
}

@media (max-width: 64rem) {
    .fjxx-itinerary-offers-grid {
        gap: 0.85rem;
    }

    .fjxx-itinerary-offer-card {
        min-height: 22rem;
    }

    .fjxx-itinerary-offer-content {
        right: 0.9rem;
        bottom: 0.9rem;
        left: 0.9rem;
    }
}

@media (max-width: 48rem) {
    .fjxx-itinerary-offer-ribbon {
        top: 1.85rem;
        right: -4rem;
        width: 15rem;
    }

    .fjxx-itinerary-offers .fjxx-itinerary-offer-ribbon {
        top: 1.2rem;
        right: -3.5rem;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 12rem;
        padding: 0.75rem 3.5rem 0.75rem 0;
        font-size: 1rem;
        line-height: 1.1;
        text-align: center;
    }

    .fjxx-itinerary-offers-inner {
        width: calc(100% - 2rem);
        padding: 4.5rem 0 5rem;
    }

    .fjxx-itinerary-offers-title {
        margin-bottom: 2.25rem;
        font-size: 3rem;
    }

    .fjxx-itinerary-offers-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .fjxx-itinerary-offer-card {
        aspect-ratio: 0.82 / 1;
        min-height: 29rem;
    }

    .fjxx-itinerary-offer-content h3 {
        max-width: 21rem;
        font-size: 1.65rem;
    }

    .fjxx-itinerary-offer-content p {
        max-width: 25rem;
        font-size: 0.7rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-itinerary-offer-card > img,
    .fjxx-itinerary-offer-content a {
        transition: none;
    }
}

/* Itinerary curated multi-city routes */
.fjxx-itinerary-routes {
    color: #111;
    background: #fff;
}

.fjxx-itinerary-routes-inner {
    width: min(87.5%, 80rem);
    margin: 0 auto;
    padding: clamp(5.5rem, 8vw, 7.75rem) 0 clamp(6rem, 9vw, 8.5rem);
}

.fjxx-itinerary-routes-title {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.7rem, 4vw, 4rem);
    font-weight: 400;
    line-height: 1.05;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-itinerary-routes-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: 1.75rem 2rem;
    margin-top: clamp(2.8rem, 5vw, 4.3rem);
}

.fjxx-itinerary-route-link {
    display: block;
    height: 100%;
    min-width: 0;
    min-height: 0;
    color: inherit;
    text-decoration: none;
}

.fjxx-itinerary-route-link:focus-visible {
    outline: 0.12rem solid #b77924;
    outline-offset: 0.2rem;
}

.fjxx-itinerary-route-card {
    display: grid;
    grid-template-columns: minmax(8.5rem, 40%) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    height: 100%;
    min-width: 0;
    min-height: clamp(16rem, 19vw, 20.5rem);
    overflow: hidden;
    background: #fff;
    border-bottom: 1px solid #c9994a;
}

.fjxx-itinerary-route-media {
    position: relative;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: #d8d2c6;
}

/* Uploaded image dimensions must not determine the grid track size. */
.fjxx-itinerary-route-media img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.fjxx-itinerary-route-card:nth-child(1) .fjxx-itinerary-route-media img,
.fjxx-itinerary-route-link:nth-child(1) .fjxx-itinerary-route-card .fjxx-itinerary-route-media img {
    object-position: center 44%;
}

.fjxx-itinerary-route-card:nth-child(2) .fjxx-itinerary-route-media img,
.fjxx-itinerary-route-link:nth-child(2) .fjxx-itinerary-route-card .fjxx-itinerary-route-media img {
    object-position: center 42%;
}

.fjxx-itinerary-route-card:nth-child(3) .fjxx-itinerary-route-media img,
.fjxx-itinerary-route-link:nth-child(3) .fjxx-itinerary-route-card .fjxx-itinerary-route-media img {
    object-position: center 48%;
}

.fjxx-itinerary-route-card:nth-child(4) .fjxx-itinerary-route-media img,
.fjxx-itinerary-route-link:nth-child(4) .fjxx-itinerary-route-card .fjxx-itinerary-route-media img {
    object-position: center 48%;
}

.fjxx-itinerary-route-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 0;
    padding: 1.35rem 1.55rem;
}

.fjxx-itinerary-route-meta {
    color: #b27a26;
    font-size: 0.57rem;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.02em;
}

.fjxx-itinerary-route-content h3 {
    margin: 0.35rem 0 0;
    font-size: clamp(1rem, 1.35vw, 1.25rem);
    font-weight: 650;
    line-height: 1.15;
    text-transform: uppercase;
}

.fjxx-itinerary-route-origin {
    margin: 0.18rem 0 0;
    color: #555;
    font-size: 0.6rem;
    font-style: italic;
    line-height: 1.35;
}

.fjxx-itinerary-route-content strong {
    display: block;
    margin-top: 1.05rem;
    font-size: 0.59rem;
    font-weight: 650;
    line-height: 1.35;
}

.fjxx-itinerary-route-copy {
    margin: 1rem 0 0;
    color: #4e4e4e;
    font-size: 0.58rem;
    line-height: 1.55;
}

.fjxx-itinerary-route-copy p {
    margin: 0 0 0.5em;
}

.fjxx-itinerary-route-copy p:last-child {
    margin-bottom: 0;
}

.fjxx-itinerary-route-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: auto;
    padding-top: 0.9rem;
    color: #8d5b16;
    font-size: 0.58rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-transform: uppercase;
}

.fjxx-itinerary-route-cta > span {
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.fjxx-itinerary-route-card:hover .fjxx-itinerary-route-cta > span,
.fjxx-itinerary-route-card:focus-within .fjxx-itinerary-route-cta > span {
    transform: translateX(0.35rem);
}


.fjxx-itinerary-route-card:hover .fjxx-itinerary-route-media img {
    transform: scale(1.05);
}

@media (max-width: 64rem) {
    .fjxx-itinerary-routes-grid {
        gap: 1.2rem;
    }

    .fjxx-itinerary-route-card {
        grid-template-columns: minmax(7rem, 35%) minmax(0, 1fr);
        min-height: 14.5rem;
    }

    .fjxx-itinerary-route-content {
        padding: 1.15rem;
    }
}

@media (max-width: 48rem) {
    .fjxx-itinerary-routes-inner {
        width: calc(100% - 2rem);
        padding: 4.5rem 0 5rem;
    }

    .fjxx-itinerary-routes-title {
        max-width: 27rem;
        margin: 0 auto;
        font-size: 2.65rem;
    }

    .fjxx-itinerary-routes-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
        margin-top: 2.5rem;
    }

    .fjxx-itinerary-route-card {
        grid-template-columns: minmax(7.5rem, 36%) minmax(0, 1fr);
        min-height: 18rem;
    }
}

@media (max-width: 30rem) {
    .fjxx-itinerary-route-card {
        --fjxx-itinerary-route-motion-columns: 1fr;
        grid-template-columns: 1fr;
        grid-template-rows: auto minmax(0, 1fr);
        min-height: 0;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface::before,
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface::after {
        display: none;
    }

    .fjxx-itinerary-route-media {
        min-height: 15rem;
        aspect-ratio: 1.25 / 1;
    }

    .fjxx-itinerary-route-content {
        padding: 1.4rem;
    }

    .fjxx-itinerary-route-content h3 {
        font-size: 1.3rem;
    }

    .fjxx-itinerary-route-copy {
        font-size: 0.66rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-itinerary-route-media img {
        transition: none;
    }
}

/* Itinerary service guarantees */
.fjxx-itinerary-services {
    color: #111;
    background: #fff;
}

.fjxx-itinerary-services-inner {
    width: min(87.5%, 70rem);
    margin: 0 auto;
    padding: clamp(5rem, 7vw, 7rem) 0 clamp(5.5rem, 8vw, 7.5rem);
    text-align: center;
}

.fjxx-itinerary-services-title {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.8rem, 4vw, 4rem);
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
}

.fjxx-itinerary-services-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: clamp(3.3rem, 5vw, 4.8rem);
}

.fjxx-itinerary-service-item {
    position: relative;
    display: flex;
    min-height: 7rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1.25rem;
}

.fjxx-itinerary-service-item + .fjxx-itinerary-service-item::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 1px;
    background: #e3ded5;
    content: '';
    pointer-events: none;
}

.fjxx-itinerary-service-item img {
    display: block;
    width: auto;
    height: 3.6rem;
    max-width: 4.5rem;
    object-fit: contain;
}

.fjxx-itinerary-service-item h3 {
    margin: 0.8rem 0 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.72rem;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: 0;
    text-transform: none;
}

.fjxx-itinerary-services-button {
    display: inline-flex;
    min-width: 13.5rem;
    min-height: 2.55rem;
    align-items: center;
    justify-content: center;
    margin-top: clamp(2.8rem, 4vw, 4rem);
    padding: 0.75rem 1.6rem;
    color: #fff;
    background: #bd8738;
    border: 1px solid #bd8738;
    font-size: 0.61rem;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.035em;
    text-transform: uppercase;
    transition: color 0.25s ease, background-color 0.25s ease, transform 0.25s ease;
}

.fjxx-itinerary-services-button:hover,
.fjxx-itinerary-services-button:focus-visible {
    color: #9a681e;
    background: #fff;
    transform: translateY(-0.12rem);
}

.fjxx-itinerary-services-button:focus-visible {
    outline: 2px solid #bd8738;
    outline-offset: 0.3rem;
}

@media (max-width: 48rem) {
    .fjxx-itinerary-services-inner {
        width: calc(100% - 2rem);
        padding: 4.5rem 0 5rem;
    }

    .fjxx-itinerary-services-title {
        font-size: 2.75rem;
    }

    .fjxx-itinerary-services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 2.8rem;
    }

    .fjxx-itinerary-service-item {
        min-height: 8.5rem;
        padding: 1rem 0.8rem;
    }

    .fjxx-itinerary-service-item:nth-child(3),
    .fjxx-itinerary-service-item:nth-child(4) {
        border-top: 1px solid #e3ded5;
    }

    .fjxx-itinerary-service-item:nth-child(3)::before {
        display: none;
    }

    .fjxx-itinerary-services-button {
        width: min(100%, 18rem);
        margin-top: 2.5rem;
    }
}

@media (max-width: 30rem) {
    .fjxx-itinerary-services-grid {
        grid-template-columns: 1fr;
    }

    .fjxx-itinerary-service-item {
        min-height: 7.5rem;
        border-top: 1px solid #e3ded5;
    }

    .fjxx-itinerary-service-item:first-child {
        border-top: 0;
    }

    .fjxx-itinerary-service-item + .fjxx-itinerary-service-item::before {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-itinerary-services-button {
        transition: none;
    }
}

/* About page: introduction and journey design */
.fjxx-about-story {
    overflow: hidden;
    color: #171717;
    background: #fff;
}

.fjxx-about-story-inner {
    width: min(88%, 70rem);
    margin: 0 auto;
    padding: clamp(3.6rem, 5vw, 5rem) 0 clamp(6.5rem, 9vw, 9rem);
}

.fjxx-about-story-intro {
    max-width: 52rem;
    margin: 0 auto;
    text-align: center;
}

.fjxx-about-story-title,
.fjxx-about-story-copy h3 {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
}

.fjxx-about-story-title {
    font-size: clamp(2.8rem, 4.4vw, 4rem);
    letter-spacing: 0.012em;
}

.fjxx-about-story-lead {
    margin: 1.5rem 0 0;
    font-size: clamp(0.8rem, 1.1vw, 0.95rem);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.015em;
    text-transform: uppercase;
}

.fjxx-about-story-summary {
    margin-top: 1.25rem;
    color: #626262;
    font-size: 0.72rem;
    line-height: 1.55;
}

.fjxx-about-story-summary p,
.fjxx-about-story-copy p {
    margin: 0;
}

.fjxx-about-story-summary p + p {
    margin-top: 1.2rem;
}

.fjxx-about-story-design {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(18rem, 1fr);
    gap: clamp(2.5rem, 4vw, 3.3rem);
    align-items: center;
    margin-top: clamp(3.8rem, 5.5vw, 5rem);
}

.fjxx-about-story-collage {
    display: grid;
    grid-template-columns: minmax(0, 1.42fr) minmax(10rem, 0.94fr);
    align-items: start;
    min-width: 0;
}

.fjxx-about-story-photo {
    position: relative;
    overflow: hidden;
    margin: 0;
    background: #ece8e0;
}

.fjxx-about-story-photo::after {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(255, 255, 255, 0.22);
    pointer-events: none;
    content: '';
    pointer-events: none;
}

.fjxx-about-story-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.7s ease;
}

.fjxx-about-story-photo-primary {
    height: clamp(25rem, 39vw, 31rem);
}

.fjxx-about-story-photo-primary img {
    object-position: 50% 45%;
}

.fjxx-about-story-photo-secondary {
    z-index: 1;
    height: clamp(25rem, 39vw, 31rem);
    margin: clamp(3rem, 5vw, 4.5rem) 0 0 -0.05rem;
}

.fjxx-about-story-photo-secondary img {
    object-position: 51% center;
}

.fjxx-about-story-collage:hover .fjxx-about-story-photo img {
    transform: scale(1.025);
}

.fjxx-about-story-copy {
    align-self: center;
    padding-top: clamp(2rem, 5vw, 4.5rem);
}

.fjxx-about-story-copy h3 {
    max-width: 25rem;
    font-size: clamp(2.35rem, 3.6vw, 3.5rem);
    letter-spacing: 0.012em;
}

.fjxx-about-story-copy p {
    margin-top: 1.7rem;
    color: #595959;
    font-size: 0.72rem;
    line-height: 1.52;
}

.fjxx-about-story-copy p + p {
    margin-top: 1.45rem;
}

.fjxx-about-story-link {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 2.9rem;
    padding-bottom: 0.35rem;
    color: #bd8738;
    border-bottom: 1px solid currentColor;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.2;
    transition: color 0.25s ease, gap 0.25s ease;
}

.fjxx-about-story-link:hover,
.fjxx-about-story-link:focus-visible {
    gap: 0.65rem;
    color: #8f611f;
}

.fjxx-about-story-link:focus-visible {
    outline: 2px solid #bd8738;
    outline-offset: 0.35rem;
}

@media (max-width: 64rem) {
    .fjxx-about-story-inner {
        width: min(90%, 58rem);
    }

    .fjxx-about-story-design {
        grid-template-columns: minmax(0, 1.22fr) minmax(17rem, 0.78fr);
        gap: 3rem;
    }

    .fjxx-about-story-photo-primary,
    .fjxx-about-story-photo-secondary {
        height: clamp(23rem, 42vw, 27rem);
    }
}

@media (max-width: 48rem) {
    .fjxx-about-story-inner {
        width: calc(100% - 2.5rem);
        padding: 4.5rem 0 6rem;
    }

    .fjxx-about-story-lead {
        margin-top: 1.5rem;
    }

    .fjxx-about-story-design {
        grid-template-columns: 1fr;
        gap: 4.5rem;
        margin-top: 4rem;
    }

    .fjxx-about-story-collage {
        width: min(100%, 38rem);
        margin: 0 auto;
    }

    .fjxx-about-story-photo-primary,
    .fjxx-about-story-photo-secondary {
        height: clamp(20rem, 68vw, 28rem);
    }

    .fjxx-about-story-photo-secondary {
        margin-top: 2.5rem;
    }

    .fjxx-about-story-copy {
        width: min(100%, 34rem);
        margin: 0 auto;
        padding-top: 0;
    }
}

@media (max-width: 32rem) {
    .fjxx-about-story-inner {
        width: calc(100% - 2rem);
    }

    .fjxx-about-story-summary,
    .fjxx-about-story-copy p {
        font-size: 0.75rem;
    }

    .fjxx-about-story-collage {
        grid-template-columns: 1.22fr 0.88fr;
    }

    .fjxx-about-story-photo-primary,
    .fjxx-about-story-photo-secondary {
        height: 21rem;
    }

    .fjxx-about-story-photo-secondary {
        margin-top: 2rem;
    }

    .fjxx-about-story-copy h3 {
        font-size: 2.6rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-about-story-photo img,
    .fjxx-about-story-link {
        transition: none;
    }
}




@media (max-width: 32rem) {
    .fjxx-about-story-title {
        font-size: 2.25rem;
        line-height: 1.02;
    }

    .fjxx-about-story-lead {
        font-size: 0.7rem;
        line-height: 1.45;
    }
}

/* About page: local-guide introduction and team portrait strip */
.fjxx-about-team {
    position: relative;
    overflow: hidden;
    padding: var(--fjxx-section-space, clamp(4rem, 7vw, 7rem)) 0;
    color: #171717;
    background: #fff;
}

.fjxx-about-team-intro {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    align-items: start;
    width: var(--fjxx-page-width, 87.5%);
    margin: 0 auto clamp(2.5rem, 5vw, 4.5rem);
}

.fjxx-about-team-heading,
.fjxx-about-team-description {
    min-width: 0;
}

.fjxx-about-team-kicker {
    margin: 0 0 1rem;
    color: #9a681e;
    font-size: var(--fjxx-type-kicker, 0.75rem);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.fjxx-about-team-title {
    max-width: 13ch;
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: var(--fjxx-type-section-title, clamp(2.5rem, 4.4vw, 4rem));
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: 0.012em;
    text-transform: uppercase;
    text-wrap: balance;
}

.fjxx-about-team-lead {
    max-width: 30rem;
    margin: 1.5rem 0 0;
    color: #333;
    font-size: var(--fjxx-type-body, 0.95rem);
    font-weight: 500;
    line-height: 1.7;
}

.fjxx-about-team-description {
    max-width: 42rem;
    color: #626262;
    font-size: var(--fjxx-type-body, 0.95rem);
    line-height: 1.7;
}

.fjxx-about-team-description p {
    margin: 0;
}

.fjxx-about-team-description p + p {
    margin-top: 1.2rem;
}

.fjxx-about-team-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.35rem;
    width: 100%;
    margin: 0 auto;
}

.fjxx-about-team-card {
    position: relative;
    min-width: 0;
    aspect-ratio: 0.86;
    overflow: hidden;
    background: #d8d6d1;
}

.fjxx-about-team-card::after {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 48%, rgba(0, 0, 0, 0.72) 100%);
    content: '';
    pointer-events: none;
}

.fjxx-about-team-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 28%;
    filter: saturate(0.88) contrast(0.98);
    transition: transform 0.7s ease, filter 0.7s ease;
}

.fjxx-about-team-card:nth-child(2) img {
    object-position: center 24%;
}

.fjxx-about-team-card:nth-child(3) img {
    object-position: center 22%;
}

.fjxx-about-team-card:nth-child(4) img {
    object-position: center 30%;
}

.fjxx-about-team-card:hover img {
    filter: saturate(1) contrast(1.02);
    transform: scale(1.035);
}

.fjxx-about-team-card-overlay {
    position: absolute;
    right: 1rem;
    bottom: clamp(1.2rem, 2.5vw, 2.25rem);
    left: 1rem;
    z-index: 2;
    color: #fff;
    text-align: center;
}

.fjxx-about-team-card-overlay h3 {
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(0.86rem, 1.2vw, 1.15rem);
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.fjxx-about-team-card-overlay p {
    margin: 0.9rem 0 0;
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(0.53rem, 0.72vw, 0.68rem);
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0.02em;
}

/* Team portraits use the same immersive reveal as the cultural heritage cards:
   a stable image, a soft curtain, and copy that rises into focus on hover. */
.fjxx-about-team-card-content {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1.25rem, 3vw, 2.25rem);
    background: rgba(9, 11, 12, 0.52);
    color: #fff;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.45s ease;
}

.fjxx-about-team-card-content-inner {
    max-width: 24rem;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.62rem, 0.8vw, 0.75rem);
    font-weight: 500;
    letter-spacing: 0.05em;
    line-height: 1.7;
    text-align: center;
    text-shadow: 0 0.15rem 1.1rem rgba(0, 0, 0, 0.55);
    transform: translateY(0.35rem);
    transition: transform 0.45s ease;
}

.fjxx-about-team-card-content-inner p {
    margin: 0;
}

.fjxx-about-team-card:hover .fjxx-about-team-card-content,
.fjxx-about-team-card:focus-within .fjxx-about-team-card-content {
    opacity: 1;
}

.fjxx-about-team-card:hover .fjxx-about-team-card-content-inner,
.fjxx-about-team-card:focus-within .fjxx-about-team-card-content-inner {
    transform: translateY(0);
}

@media (max-width: 48rem) {
    .fjxx-about-team {
        padding: var(--fjxx-section-space, 3.5rem) 0;
    }

    .fjxx-about-team-intro {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.75rem;
        margin-bottom: 2.5rem;
    }

    .fjxx-about-team-title {
        max-width: 18ch;
    }

    .fjxx-about-team-lead {
        margin-top: 1.1rem;
    }

    .fjxx-about-team-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.3rem;
    }

    .fjxx-about-team-card {
        aspect-ratio: 0.88;
    }
}

@media (max-width: 32rem) {
    .fjxx-about-team-grid {
        grid-template-columns: 1fr;
        gap: 0.5rem;
        width: calc(100% - 2rem);
    }

    .fjxx-about-team-card {
        aspect-ratio: 0.9;
    }

    .fjxx-about-team-card-overlay {
        bottom: 1.5rem;
    }

    .fjxx-about-team-card-content {
        padding: 1.25rem;
    }

    .fjxx-about-team-card-content-inner {
        font-size: 0.62rem;
        line-height: 1.65;
    }
}

/* About page: five editorial story panels */
.fjxx-about-values {
    overflow: hidden;
    color: #171717;
    background: #fff;
}

.fjxx-about-feature {
    overflow: hidden;
    background: #fff;
}

.fjxx-about-feature-inner {
    position: relative;
    display: grid;
    align-items: center;
    width: min(88%, 70rem);
    min-height: 31rem;
    margin: 0 auto;
    padding: clamp(4.6rem, 7vw, 7rem) 0;
    isolation: isolate;
}

.fjxx-about-feature-inner::before {
    position: absolute;
    z-index: -1;
    background: #f4f4f4;
    content: '';
    pointer-events: none;
}

.fjxx-about-feature-media {
    position: relative;
    z-index: 1;
    overflow: hidden;
    margin: 0;
    background: #e9e7e2;
}

.fjxx-about-feature-media::after {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(255, 255, 255, 0.18);
    pointer-events: none;
    content: '';
    pointer-events: none;
}

.fjxx-about-feature-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.7s ease;
}

.fjxx-about-feature:hover .fjxx-about-feature-media img {
    transform: scale(1.025);
}

.fjxx-about-feature-copy {
    position: relative;
    z-index: 2;
}

.fjxx-about-feature-copy h2 {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.7rem, 4vw, 4rem);
    font-weight: 400;
    line-height: 0.98;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}

.fjxx-about-feature-copy h3 {
    margin: 1.35rem 0 0;
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(0.9rem, 1.15vw, 1.06rem);
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0.005em;
}

.fjxx-about-feature-copy p {
    margin: 1.5rem 0 0;
    color: #535353;
    font-size: 0.72rem;
    line-height: 1.52;
}

.fjxx-about-feature-copy p + p {
    margin-top: 1.25rem;
}

/* 01 — philosophy */
.fjxx-about-feature-philosophy .fjxx-about-feature-inner {
    grid-template-columns: minmax(0, 0.92fr) minmax(20rem, 1.08fr);
    gap: clamp(3.4rem, 6vw, 6rem);
}

.fjxx-about-feature-philosophy .fjxx-about-feature-inner::before {
    top: 2.3rem;
    left: 5rem;
    width: 39%;
    height: 76%;
}

.fjxx-about-feature-philosophy .fjxx-about-feature-media {
    width: 92%;
    aspect-ratio: 0.98;
}

.fjxx-about-feature-philosophy .fjxx-about-feature-media img {
    object-position: 50% 38%;
}

/* 02 — approach */
.fjxx-about-feature-approach .fjxx-about-feature-inner {
    grid-template-columns: minmax(20rem, 1.08fr) minmax(0, 0.92fr);
    gap: clamp(4rem, 7vw, 7rem);
}

.fjxx-about-feature-approach .fjxx-about-feature-inner::before {
    right: 13%;
    bottom: 1.5rem;
    width: 33%;
    height: 66%;
}

.fjxx-about-feature-approach .fjxx-about-feature-media {
    width: 94%;
    aspect-ratio: 1;
    justify-self: end;
}

.fjxx-about-feature-approach .fjxx-about-feature-media img {
    object-position: center 45%;
}

/* 03 — journeys */
.fjxx-about-feature-journeys .fjxx-about-feature-inner {
    grid-template-columns: minmax(0, 0.88fr) minmax(20rem, 1.12fr);
    gap: clamp(3.6rem, 6vw, 6rem);
}

.fjxx-about-feature-journeys .fjxx-about-feature-inner::before {
    top: 6.4rem;
    left: 20%;
    width: 45%;
    height: 72%;
}

.fjxx-about-feature-journeys .fjxx-about-feature-media {
    width: 88%;
    aspect-ratio: 0.78;
}

.fjxx-about-feature-journeys .fjxx-about-feature-media img {
    object-position: 50% center;
}

/* 04 — belief */
.fjxx-about-feature-belief .fjxx-about-feature-inner {
    grid-template-columns: minmax(16rem, 0.68fr) minmax(0, 1.32fr);
    gap: clamp(3rem, 5vw, 5rem);
}

.fjxx-about-feature-belief .fjxx-about-feature-inner::before {
    right: -2rem;
    bottom: 2.7rem;
    width: 55%;
    height: 68%;
}

.fjxx-about-feature-belief .fjxx-about-feature-media {
    width: 100%;
    aspect-ratio: 1.53;
}

.fjxx-about-feature-belief .fjxx-about-feature-media img {
    object-position: center;
}

/* 05 — embrace */
.fjxx-about-feature-embrace .fjxx-about-feature-inner {
    grid-template-columns: minmax(0, 1.18fr) minmax(19rem, 0.82fr);
    gap: clamp(3.5rem, 6vw, 6rem);
    padding-bottom: clamp(6rem, 8vw, 8rem);
}

.fjxx-about-feature-embrace .fjxx-about-feature-inner::before {
    left: 22%;
    bottom: 1.5rem;
    width: 43%;
    height: 72%;
}

.fjxx-about-feature-embrace .fjxx-about-feature-media {
    width: 100%;
    aspect-ratio: 1.38;
}

.fjxx-about-feature-embrace .fjxx-about-feature-media img {
    object-position: 50% 47%;
}

.fjxx-about-feature-embrace .fjxx-about-feature-copy h2 {
    font-size: clamp(2.8rem, 4.3vw, 4.35rem);
}

.fjxx-about-feature-embrace .fjxx-about-feature-copy p {
    max-width: 26rem;
    margin-top: 2rem;
}

@media (max-width: 64rem) {
    .fjxx-about-feature-inner {
        width: min(90%, 58rem);
    }

    .fjxx-about-feature-philosophy .fjxx-about-feature-inner,
    .fjxx-about-feature-journeys .fjxx-about-feature-inner,
    .fjxx-about-feature-embrace .fjxx-about-feature-inner {
        gap: 3.5rem;
    }

    .fjxx-about-feature-approach .fjxx-about-feature-inner,
    .fjxx-about-feature-belief .fjxx-about-feature-inner {
        gap: 3rem;
    }
}

@media (max-width: 48rem) {
    .fjxx-about-feature-inner,
    .fjxx-about-feature-philosophy .fjxx-about-feature-inner,
    .fjxx-about-feature-approach .fjxx-about-feature-inner,
    .fjxx-about-feature-journeys .fjxx-about-feature-inner,
    .fjxx-about-feature-belief .fjxx-about-feature-inner,
    .fjxx-about-feature-embrace .fjxx-about-feature-inner {
        grid-template-columns: 1fr;
        gap: 3rem;
        width: calc(100% - 2.5rem);
        min-height: 0;
        padding: 4.5rem 0;
    }

    .fjxx-about-feature-inner::before,
    .fjxx-about-feature-philosophy .fjxx-about-feature-inner::before,
    .fjxx-about-feature-approach .fjxx-about-feature-inner::before,
    .fjxx-about-feature-journeys .fjxx-about-feature-inner::before,
    .fjxx-about-feature-belief .fjxx-about-feature-inner::before,
    .fjxx-about-feature-embrace .fjxx-about-feature-inner::before {
        top: 2.5rem;
        right: auto;
        bottom: auto;
        left: 8%;
        width: 84%;
        height: 45%;
    }

    .fjxx-about-feature-media,
    .fjxx-about-feature-philosophy .fjxx-about-feature-media,
    .fjxx-about-feature-approach .fjxx-about-feature-media,
    .fjxx-about-feature-journeys .fjxx-about-feature-media,
    .fjxx-about-feature-belief .fjxx-about-feature-media,
    .fjxx-about-feature-embrace .fjxx-about-feature-media {
        width: min(100%, 36rem);
        justify-self: center;
    }

    .fjxx-about-feature-philosophy .fjxx-about-feature-media,
    .fjxx-about-feature-journeys .fjxx-about-feature-media,
    .fjxx-about-feature-embrace .fjxx-about-feature-media {
        grid-row: 1;
    }

    .fjxx-about-feature-philosophy .fjxx-about-feature-copy,
    .fjxx-about-feature-journeys .fjxx-about-feature-copy,
    .fjxx-about-feature-embrace .fjxx-about-feature-copy {
        grid-row: 2;
    }

    .fjxx-about-feature-approach .fjxx-about-feature-copy,
    .fjxx-about-feature-belief .fjxx-about-feature-copy {
        grid-row: 1;
    }

    .fjxx-about-feature-approach .fjxx-about-feature-media,
    .fjxx-about-feature-belief .fjxx-about-feature-media {
        grid-row: 2;
    }

    .fjxx-about-feature-copy {
        width: min(100%, 34rem);
        justify-self: center;
    }

    .fjxx-about-feature-philosophy .fjxx-about-feature-media {
        aspect-ratio: 0.98;
    }

    .fjxx-about-feature-journeys .fjxx-about-feature-media {
        width: min(88%, 28rem);
        aspect-ratio: 0.8;
    }

    .fjxx-about-feature-belief .fjxx-about-feature-media,
    .fjxx-about-feature-embrace .fjxx-about-feature-media {
        aspect-ratio: 1.35;
    }
}

@media (max-width: 32rem) {
    .fjxx-about-feature-inner,
    .fjxx-about-feature-philosophy .fjxx-about-feature-inner,
    .fjxx-about-feature-approach .fjxx-about-feature-inner,
    .fjxx-about-feature-journeys .fjxx-about-feature-inner,
    .fjxx-about-feature-belief .fjxx-about-feature-inner,
    .fjxx-about-feature-embrace .fjxx-about-feature-inner {
        width: calc(100% - 2rem);
        gap: 2.5rem;
        padding: 3.75rem 0;
    }

    .fjxx-about-feature-copy h2,
    .fjxx-about-feature-embrace .fjxx-about-feature-copy h2 {
        font-size: 2.55rem;
    }

    .fjxx-about-feature-copy h3 {
        margin-top: 0.9rem;
        font-size: 0.86rem;
    }

    .fjxx-about-feature-copy p {
        margin-top: 1.25rem;
        font-size: 0.75rem;
    }

    .fjxx-about-feature-journeys .fjxx-about-feature-media {
        width: 92%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-about-feature-media img {
        transition: none;
    }
}

/* itinerary-beijing detail journey */
.fjxx-beijing-detail-hero {
    position: relative;
    display: grid;
    min-height: clamp(34rem, 66vw, 44rem);
    place-items: center;
    overflow: hidden;
    color: #fff;
    background: #263c47;
}

.fjxx-beijing-detail-hero-media,
.fjxx-beijing-detail-hero-overlay {
    position: absolute;
    inset: 0;
}

.fjxx-beijing-detail-hero-image {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center center;
    transform: scale(1.015);
    filter: saturate(0.88) contrast(0.96);
}

.fjxx-beijing-detail-hero-overlay {
    background:
        linear-gradient(180deg, rgba(15, 35, 45, 0.16) 0%, rgba(11, 28, 38, 0.08) 42%, rgba(6, 16, 22, 0.44) 100%),
        rgba(4, 19, 29, 0.08);
}

.fjxx-beijing-detail-hero-content {
    position: relative;
    z-index: 1;
    display: flex;
    width: min(90%, 58rem);
    flex-direction: column;
    align-items: center;
    padding: 4rem 0 2rem;
    text-align: center;
}

.fjxx-beijing-detail-hero-content h1 {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(3.4rem, 6vw, 5.35rem);
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: 0.02em;
    text-shadow: 0 0.15rem 1.2rem rgba(0, 0, 0, 0.28);
    text-transform: uppercase;
}

.fjxx-beijing-detail-hero-content p {
    margin: 0.75rem 0 2rem;
    font-size: clamp(0.62rem, 1.2vw, 0.8rem);
    font-weight: 500;
    letter-spacing: 0.16em;
    line-height: 1.4;
    text-transform: uppercase;
    text-shadow: 0 0.12rem 0.8rem rgba(0, 0, 0, 0.35);
}

.fjxx-beijing-detail-play {
    position: relative;
    display: grid;
    width: 3.45rem;
    height: 3.45rem;
    padding: 0;
    place-items: center;
    border: 0.0625rem solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    color: #fff;
    background: rgba(8, 16, 21, 0.76);
    box-shadow: 0 0.55rem 1.3rem rgba(0, 0, 0, 0.2);
    cursor: pointer;
    transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.fjxx-beijing-detail-play span {
    display: block;
    width: 0;
    height: 0;
    margin-left: 0.2rem;
    border-top: 0.55rem solid transparent;
    border-bottom: 0.55rem solid transparent;
    border-left: 0.78rem solid currentColor;
}

.fjxx-beijing-detail-play:hover,
.fjxx-beijing-detail-play:focus-visible {
    background: #b98839;
    box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.28);
    outline: none;
    transform: scale(1.07);
}

.fjxx-beijing-facts {
    color: #111;
    background: #fff;
}

.fjxx-beijing-facts-inner {
    display: grid;
    width: min(87.5%, 75rem);
    margin: 0 auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 3rem 0 3.1rem;
}

.fjxx-beijing-fact {
    position: relative;
    display: flex;
    min-height: 6.5rem;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 0 2rem;
    text-align: center;
}

.fjxx-beijing-fact + .fjxx-beijing-fact::before {
    position: absolute;
    top: 0.25rem;
    bottom: 0.25rem;
    left: 0;
    width: 0.0625rem;
    background: #e5e1dc;
    content: '';
    pointer-events: none;
}

.fjxx-beijing-fact h2 {
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(1.15rem, 2vw, 1.42rem);
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.1;
    text-transform: uppercase;
}

.fjxx-beijing-fact p {
    margin: 1.15rem 0 0;
    color: #2f2f2f;
    font-size: 0.72rem;
    line-height: 1.6;
}

.fjxx-beijing-inspiration {
    color: #171717;
    background: #f5f5f5;
}

.fjxx-beijing-inspiration-inner {
    width: min(83%, 68rem);
    margin: 0 auto;
    padding: clamp(4rem, 7vw, 5.8rem) 0 clamp(4.3rem, 7vw, 5.8rem);
    text-align: center;
}

.fjxx-beijing-inspiration-inner h2 {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.65rem, 4.5vw, 4rem);
    font-weight: 400;
    line-height: 0.98;
    letter-spacing: 0.015em;
    text-transform: uppercase;
}

.fjxx-beijing-inspiration-lead {
    margin: 1.55rem auto 0;
    color: #5b5b5b;
    font-size: 0.78rem;
    line-height: 1.6;
}

.fjxx-beijing-inspiration-copy {
    width: min(100%, 58rem);
    margin: 1.25rem auto 0;
    color: #5b5b5b;
    font-size: 0.75rem;
    line-height: 1.65;
}

.fjxx-beijing-inspiration-copy p {
    margin: 0;
}

.fjxx-beijing-inspiration-copy p + p {
    margin-top: 1.1rem;
}

.fjxx-beijing-inspiration-button {
    display: inline-flex;
    min-width: 7.2rem;
    min-height: 2.15rem;
    margin-top: 1.75rem;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1rem;
    color: #fff;
    background: #bd8938;
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
    transition: background 0.25s ease, transform 0.25s ease;
}

.fjxx-beijing-inspiration-button:hover,
.fjxx-beijing-inspiration-button:focus-visible {
    color: #fff;
    background: #966a2a;
    outline: none;
    transform: translateY(-0.12rem);
}

.fjxx-beijing-video-dialog[hidden] {
    display: none;
}

.fjxx-beijing-video-dialog {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    padding: 1.25rem;
    place-items: center;
}

.fjxx-beijing-video-dialog-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(4, 11, 15, 0.8);
    cursor: pointer;
}

.fjxx-beijing-video-dialog-panel {
    position: relative;
    z-index: 1;
    width: min(100%, 60rem);
    padding: 0.85rem;
    background: #101417;
    box-shadow: 0 1rem 4rem rgba(0, 0, 0, 0.35);
}

.fjxx-beijing-video-dialog-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0.25rem 0.7rem;
    color: #fff;
}

.fjxx-beijing-video-dialog-heading p {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.15rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.fjxx-beijing-video-dialog-close {
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    color: #fff;
    background: transparent;
    cursor: pointer;
    font-size: 1.65rem;
    line-height: 1;
}

.fjxx-beijing-video-dialog-close:hover,
.fjxx-beijing-video-dialog-close:focus-visible {
    color: #d29b4b;
    outline: none;
}

.fjxx-beijing-video {
    display: block;
    width: 100%;
    max-height: 75vh;
    background: #050708;
}

body.fjxx-video-is-open {
    overflow: hidden;
}

@media (max-width: 48rem) {
    .fjxx-beijing-detail-hero {
        min-height: 35rem;
    }

    .fjxx-beijing-detail-hero-image {
        object-position: 53% center;
    }

    .fjxx-beijing-detail-hero-content {
        width: calc(100% - 2rem);
        padding-top: 3rem;
    }

    .fjxx-beijing-detail-hero-content h1 {
        max-width: 20rem;
        font-size: clamp(3.15rem, 14vw, 4.6rem);
    }

    .fjxx-beijing-detail-hero-content p {
        max-width: 18rem;
        margin-top: 0.7rem;
        font-size: 0.58rem;
        letter-spacing: 0.11em;
    }

    .fjxx-beijing-facts-inner {
        width: calc(100% - 2rem);
        grid-template-columns: 1fr;
        gap: 0;
        padding: 2.5rem 0;
    }

    .fjxx-beijing-fact {
        min-height: 0;
        padding: 1.35rem 0;
    }

    .fjxx-beijing-fact + .fjxx-beijing-fact::before {
        top: 0;
        right: 20%;
        bottom: auto;
        left: 20%;
        width: auto;
        height: 0.0625rem;
    }

    .fjxx-beijing-fact p {
        margin-top: 0.75rem;
    }

    .fjxx-beijing-inspiration-inner {
        width: calc(100% - 2rem);
        padding: 3.8rem 0 4.2rem;
    }

    .fjxx-beijing-inspiration-inner h2 {
        font-size: clamp(2.65rem, 12vw, 3.7rem);
    }

    .fjxx-beijing-inspiration-copy,
    .fjxx-beijing-inspiration-lead {
        font-size: 0.72rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-beijing-detail-hero-image,
    .fjxx-beijing-detail-play,
    .fjxx-beijing-inspiration-button {
        transition: none;
    }
}

/* itinerary-beijing journey highlights */
.fjxx-beijing-highlights {
    color: #171717;
    background: #faf9f5;
}

.fjxx-beijing-highlights-inner {
    width: min(88.5%, 75rem);
    margin: 0 auto;
    padding: clamp(0rem, 6vw, 0rem) 0 clamp(4rem, 6.5vw, 5.35rem);
}

.fjxx-beijing-highlights-heading {
    text-align: center;
}

.fjxx-beijing-highlights-heading h2 {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.7rem, 4.5vw, 4rem);
    font-weight: 400;
    line-height: 0.98;
    letter-spacing: 0.015em;
    text-transform: uppercase;
}

.fjxx-beijing-highlights-heading p {
    max-width: 52rem;
    margin: 0.75rem auto 0;
    color: #343434;
    font-size: 0.72rem;
    line-height: 1.55;
}

.fjxx-beijing-highlights-grid {
    display: grid;
    margin-top: 2.65rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.0625rem;
    background: #d7d1c7;
    border: 0.0625rem solid #d7d1c7;
}

/* 恰好5条：一行5个铺满 */
.fjxx-beijing-highlights-grid:has(> :where(article:nth-child(5):last-child)) {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

/* 6条及以上：一行最多6个，超出自动换行 */
.fjxx-beijing-highlights-grid:has(> :where(article:nth-child(6))) {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.fjxx-beijing-highlight-card {
    min-height: 14rem;
    padding: 1.9rem 1.8rem 1.8rem;
    background: #faf9f5;
}

.fjxx-beijing-highlight-number {
    display: block;
    color: #494949;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.63rem;
    font-weight: 400;
    line-height: 1;
}

.fjxx-beijing-highlight-card h3 {
    margin: 1.7rem 0 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.02rem;
    font-weight: 400;
    letter-spacing: 0.015em;
    line-height: 1.15;
    text-transform: uppercase;
}

.fjxx-beijing-highlight-card p {
    margin: 1.15rem 0 0;
    color: #4d4d4d;
    font-size: 0.7rem;
    line-height: 1.55;
}

@media (max-width: 60rem) {
    .fjxx-beijing-highlights-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 48rem) {
    .fjxx-beijing-highlights-inner {
        width: calc(100% - 2rem);
        padding: 3.8rem 0 4.2rem;
    }

    .fjxx-beijing-highlights-heading h2 {
        font-size: clamp(2.7rem, 12vw, 3.7rem);
    }

    .fjxx-beijing-highlights-heading p {
        font-size: 0.68rem;
    }

    .fjxx-beijing-highlights-grid {
        grid-template-columns: 1fr;
    }

    .fjxx-beijing-highlight-card {
        min-height: 0;
        padding: 1.55rem 1.45rem 1.7rem;
    }

    .fjxx-beijing-highlight-card h3 {
        margin-top: 1.2rem;
    }
}

/* Clip horizontal decoration without creating a scroll container for sticky maps. */
body.fjxx-route-journey-page {
    overflow-x: clip;
}

/* itinerary-beijing five-day rhythm */
.fjxx-beijing-rhythm {
    position: relative;
    isolation: isolate;
    --fjxx-beijing-rhythm-width: 82rem;
    --fjxx-beijing-rhythm-gutter: 6vw;
    color: #191919;
    background: #f7f7f5;
    overflow: clip;
}

.fjxx-beijing-rhythm-inner {
    width: min(88%, var(--fjxx-beijing-rhythm-width));
    margin: 0 auto;
}

.fjxx-beijing-rhythm-inner--opening {
    padding: clamp(0rem, 6.5vw, 0rem) 0 clamp(3.75rem, 6vw, 5.5rem);
}

.fjxx-beijing-rhythm-inner--continuation {
    padding: clamp(4rem, 6.5vw, 6rem) 0 clamp(4.5rem, 7vw, 6.5rem);
}

.fjxx-beijing-rhythm-heading {
    margin-bottom: clamp(2.7rem, 4vw, 3.8rem);
    text-align: center;
}

.fjxx-beijing-rhythm-heading h2 {
    margin: 0;
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.8rem, 4.7vw, 4.2rem);
    font-weight: 400;
    line-height: 0.98;
    letter-spacing: 0.015em;
    text-transform: uppercase;
}

.fjxx-beijing-rhythm-stage {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(17rem, 22vw, 21rem);
    gap: clamp(2.75rem, 4.5vw, 5rem);
    align-items: start;
}

.fjxx-beijing-rhythm-timeline {
    position: relative;
    min-width: 0;
    padding-left: 2.65rem;
}

.fjxx-beijing-rhythm-timeline::before {
    position: absolute;
    top: 0.85rem;
    bottom: calc(-1 * clamp(3.75rem, 6vw, 5.5rem));
    left: 0.35rem;
    width: 0.0625rem;
    background: repeating-linear-gradient(to bottom, #c28c38 0 0.3rem, transparent 0.3rem 0.58rem);
    content: '';
    pointer-events: none;
}

.fjxx-beijing-rhythm-inner--continuation .fjxx-beijing-rhythm-timeline::before {
    top: calc(-1 * clamp(4rem, 6.5vw, 6rem));
    bottom: calc(-1 * clamp(4.5rem, 7vw, 6.5rem));
}

.fjxx-beijing-day {
    position: relative;
}

.fjxx-beijing-day + .fjxx-beijing-day {
    margin-top: clamp(4rem, 6vw, 5.75rem);
}

.fjxx-beijing-day-marker {
    position: relative;
    margin-bottom: 1rem;
    color: #b47e2d;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.055em;
    line-height: 1;
    text-transform: uppercase;
}

.fjxx-beijing-day-marker::before {
    position: absolute;
    top: 50%;
    left: -2.52rem;
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 50%;
    background: #c28c38;
    content: '';
    transform: translateY(-50%);
}

.fjxx-beijing-day-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 41%;
    width: 100%;
    min-height: 20.5rem;
    background: #fff;
    box-shadow: 0 0.55rem 1.4rem rgba(25, 30, 32, 0.09);
}

.fjxx-beijing-day-copy {
    min-width: 0;
    padding: 1.9rem 1.75rem 1.6rem;
}

.fjxx-beijing-day-copy h3 {
    max-width: 28rem;
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.3;
}

.fjxx-beijing-day-copy p {
    margin: 0.72rem 0 0;
    color: #5c5c5c;
    font-size: 0.6rem;
    line-height: 1.46;
}

.fjxx-beijing-day-copy .fjxx-beijing-day-intro {
    margin-top: 0.9rem;
}

.fjxx-beijing-day-copy strong {
    color: #282828;
    font-weight: 700;
}

.fjxx-beijing-day-media {
    position: relative;
    min-width: 0;
    margin: 0;
}

.fjxx-beijing-day-media img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.fjxx-beijing-route-map {
    align-self: start;
    justify-self: end;
    width: 120%;
    /* max-width: 21rem; */
    margin: 1.75rem 0 0;
}

.fjxx-beijing-route-map--continuation {
    margin-top: 1rem;
}

.fjxx-beijing-route-map img {
    display: block;
    width: 100%;
    height: auto;
    mix-blend-mode: multiply;
}

/* The map connection sits behind the photo rails and never intercepts input. */
.fjxx-beijing-route-journey {
    position: absolute;
    z-index: 1;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
}

.fjxx-beijing-route-journey path {
    fill: none;
    stroke-linecap: butt;
    vector-effect: non-scaling-stroke;
}

.fjxx-beijing-route-track,
.fjxx-beijing-route-progress {
    stroke: #b88a3c;
    stroke-width: 2.5;
    stroke-dasharray: 9 7;
    stroke-linecap: butt;
}

.fjxx-beijing-route-track {
    opacity: 0.5;
}

.fjxx-beijing-route-arrow {
    stroke: #b88a3c;
    stroke-width: 2.5;
    stroke-linejoin: miter;
    opacity: 0.5;
}

.fjxx-beijing-route-journey .fjxx-beijing-route-reveal {
    stroke: #fff;
    stroke-width: 8;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
}

.fjxx-beijing-route-map--linked {
    position: relative;
    z-index: 2;
}

@media (min-width: 48.001rem) {
    .fjxx-beijing-route-map--sticky {
        position: sticky;
        top: var(--fjxx-route-sticky-top, 6rem);
        z-index: 2;
    }

    .fjxx-beijing-route-map--sticky img {
        /* max-height: calc(100vh - var(--fjxx-route-sticky-top, 6rem) - 4rem); */
        object-fit: contain;
        object-position: top center;
    }
}

.fjxx-beijing-route-caption {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    margin-top: 1rem;
    color: #8d672c;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.62rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.fjxx-beijing-route-caption::before {
    width: 0.4rem;
    height: 0.4rem;
    border: 1px solid #b77924;
    border-radius: 50%;
    content: '';
    transition: background-color 0.35s ease, box-shadow 0.35s ease;
}

.fjxx-beijing-route-map--linked.is-route-reached .fjxx-beijing-route-caption::before {
    background: #b77924;
    box-shadow: 0 0 0 0.22rem rgba(183, 121, 36, 0.12);
}

.fjxx-beijing-rhythm > .fjxx-beijing-gallery {
    z-index: 2;
}

@media (max-width: 48rem) {
    .fjxx-beijing-route-journey {
        display: none;
    }

    .fjxx-beijing-route-map--linked[data-route-next]::after {
        display: block;
        width: 2px;
        height: 2.5rem;
        margin: 1.1rem auto 0;
        background: repeating-linear-gradient(to bottom, #b88a3c 0 0.5rem, transparent 0.5rem 0.9rem);
        content: '';
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-beijing-route-caption::before {
        transition: none;
    }
}

@media (max-width: 72rem) {
    .fjxx-beijing-rhythm-inner {
        width: min(90%, 68rem);
    }

    .fjxx-beijing-rhythm-stage {
        grid-template-columns: minmax(0, 1fr) 14rem;
        gap: 2.25rem;
    }

    .fjxx-beijing-day-card {
        grid-template-columns: minmax(0, 1fr) 39%;
        min-height: 20rem;
    }

    .fjxx-beijing-day-copy {
        padding: 1.65rem 1.4rem 1.4rem;
    }

    .fjxx-beijing-day-copy h3 {
        font-size: 0.82rem;
    }

    .fjxx-beijing-day-copy p {
        font-size: 0.56rem;
        line-height: 1.42;
    }
}

@media (max-width: 48rem) {
    .fjxx-beijing-rhythm {
        --fjxx-beijing-rhythm-gutter: 1.2rem;
    }

    .fjxx-beijing-rhythm-inner {
        width: calc(100% - 2rem);
    }

    .fjxx-beijing-rhythm-inner--opening {
        padding: 3.8rem 0 3rem;
    }

    .fjxx-beijing-rhythm-inner--continuation {
        padding: 3.2rem 0 4rem;
    }

    .fjxx-beijing-rhythm-heading {
        margin-bottom: 2.5rem;
    }

    .fjxx-beijing-rhythm-heading h2 {
        font-size: clamp(2.7rem, 12vw, 3.7rem);
    }

    .fjxx-beijing-rhythm-stage {
        display: block;
    }

    .fjxx-beijing-rhythm-timeline {
        padding-left: 1.7rem;
    }

    .fjxx-beijing-rhythm-timeline::before,
    .fjxx-beijing-rhythm-inner--continuation .fjxx-beijing-rhythm-timeline::before {
        top: 0.7rem;
        bottom: -3rem;
        left: 0.2rem;
    }

    .fjxx-beijing-day-marker::before {
        left: -1.7rem;
    }

    .fjxx-beijing-day-card {
        grid-template-columns: 1fr;
        height: auto;
        min-height: 0;
    }

    .fjxx-beijing-day-copy {
        overflow: visible;
        padding: 1.65rem 1.35rem 1.85rem;
    }

    .fjxx-beijing-day-copy h3 {
        font-size: 0.88rem;
    }

    .fjxx-beijing-day-copy p {
        font-size: 0.69rem;
        line-height: 1.5;
    }

    .fjxx-beijing-day-media {
        height: min(76vw, 20rem);
        min-height: 0;
        order: -1;
    }

    .fjxx-beijing-day + .fjxx-beijing-day {
        margin-top: 3rem;
    }

    .fjxx-beijing-route-map {
        width: min(72%, 16rem);
        margin: 3rem auto 0;
    }
}

/* itinerary-beijing visual diary carousel */
.fjxx-beijing-gallery {
    position: relative;
    overflow: hidden;
    padding: 0;
    background: #f7f7f5;
}

.fjxx-beijing-gallery::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: max(calc(6vw + 0.35rem), calc((100vw - 82rem) / 2 + 0.35rem));
    z-index: 3;
    width: 0.0625rem;
    /* background: repeating-linear-gradient(to bottom, #c28c38 0 0.3rem, transparent 0.3rem 0.58rem); */
    content: '';
    opacity: 0.72;
    pointer-events: none;
}

.fjxx-beijing-gallery--rhythm {
    background: #f7f7f5;
}

.fjxx-beijing-gallery--closing {
    padding-bottom: clamp(2rem, 3.5vw, 3.5rem);
    background: #fff;
}

.fjxx-beijing-gallery--closing::before {
    bottom: clamp(2rem, 3.5vw, 3.5rem);
    opacity: 0.48;
}

.fjxx-beijing-gallery-inner,
.fjxx-beijing-gallery-swiper {
    width: 100%;
}

.fjxx-beijing-gallery-swiper {
    overflow: hidden;
}

.fjxx-beijing-gallery-slide {
    height: clamp(15rem, 28vw, 34rem);
    margin: 0;
    overflow: hidden;
    background: #e7e2d8;
}

.fjxx-beijing-gallery-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: saturate(0.96);
    transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1), filter 400ms ease;
}

.fjxx-beijing-gallery-slide:hover img {
    filter: saturate(1.08);
    transform: scale(1.035);
}

@media (max-width: 48rem) {
    .fjxx-beijing-gallery::before {
        left: 1.2rem;
    }

    .fjxx-beijing-gallery--closing {
        padding-bottom: 2.5rem;
    }

    .fjxx-beijing-gallery--closing::before {
        bottom: 2.5rem;
    }

    .fjxx-beijing-gallery-slide {
        height: min(64vw, 15rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-beijing-gallery-slide img {
        transition: none;
    }
}


/* itinerary-beijing accommodation portfolio */
.fjxx-beijing-accommodation {
    position: relative;
    padding: clamp(0rem, 6.5vw, 0rem) 1.5rem clamp(4.4rem, 7vw, 6.25rem);
    background: #fff;
    overflow: hidden;
}

.fjxx-beijing-accommodation-inner {
    width: min(100%, 80rem);
    margin: 0 auto;
}

.fjxx-beijing-accommodation-title {
    margin: 0 0 clamp(1.35rem, 2.4vw, 2rem);
    color: #111;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(1.8rem, 3.15vw, 2.7rem);
    font-weight: 400;
    letter-spacing: -0.045em;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-beijing-accommodation-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(0.7rem, 1.15vw, 1rem);
    align-items: start;
}

/* 1-5 个：按数量一行自适应铺满；超过 5 个：回落默认 3 列，换行展示 */
.fjxx-beijing-accommodation-grid:has(> :where(article:nth-child(1):last-child)) {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.fjxx-beijing-accommodation-grid:has(> :where(article:nth-child(2):last-child)) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fjxx-beijing-accommodation-grid:has(> :where(article:nth-child(3):last-child)) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fjxx-beijing-accommodation-grid:has(> :where(article:nth-child(4):last-child)) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fjxx-beijing-accommodation-grid:has(> :where(article:nth-child(5):last-child)) {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.fjxx-beijing-accommodation-card {
    min-width: 0;
    margin: 0;
    text-align: center;
}

.fjxx-beijing-accommodation-image {
    aspect-ratio: 1.29 / 1;
    overflow: hidden;
    background: #e9e6df;
}

.fjxx-beijing-accommodation-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.9);
    transition: transform 650ms cubic-bezier(0.2, 0.7, 0.2, 1), filter 400ms ease;
}

.fjxx-beijing-accommodation-card:nth-child(1) .fjxx-beijing-accommodation-image img {
    object-position: center 48%;
}

.fjxx-beijing-accommodation-card:nth-child(2) .fjxx-beijing-accommodation-image img {
    object-position: center 42%;
}

.fjxx-beijing-accommodation-card:nth-child(3) .fjxx-beijing-accommodation-image img {
    object-position: center 54%;
}

.fjxx-beijing-accommodation-card:hover .fjxx-beijing-accommodation-image img {
    filter: saturate(1.02);
    transform: scale(1.035);
}

.fjxx-beijing-accommodation-caption {
    margin: 0.65rem 0 0;
    color: #333;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.55rem, 0.72vw, 0.68rem);
    font-weight: 400;
    letter-spacing: 0.01em;
    line-height: 1.45;
}

@media (max-width: 42rem) {
    .fjxx-beijing-accommodation {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .fjxx-beijing-accommodation-grid {
        grid-template-columns: 1fr;
        gap: 1.8rem;
        max-width: 23rem;
        margin: 0 auto;
    }

    .fjxx-beijing-accommodation-image {
        aspect-ratio: 1.45 / 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-beijing-accommodation-image img {
        transition: none;
    }
}



/* itinerary-beijing pricing and details */
.fjxx-beijing-pricing {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    color: rgba(255, 255, 255, 0.86);
   
}

.fjxx-beijing-pricing::before {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(180deg, rgba(16, 22, 19, 0.12), rgba(8, 13, 11, 0.2));
    content: '';
    pointer-events: none;
}

.fjxx-beijing-pricing-inner {
    position: relative;
    z-index: 1;
    width: min(100%, 64rem);
    margin: 0 auto;
    padding: clamp(3.25rem, 6vw, 5rem) 1.5rem clamp(3.8rem, 6.8vw, 5.5rem);
}

.fjxx-beijing-pricing-title {
    margin: 0 0 clamp(3rem, 5.5vw, 4.8rem);
    color: #fff;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(2rem, 4.1vw, 3.25rem);
    font-weight: 400;
    letter-spacing: 0.015em;
    line-height: 0.98;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-beijing-pricing-content {
    display: grid;
    gap: clamp(2.6rem, 5.5vw, 4.5rem);
}

.fjxx-beijing-pricing-row {
    display: grid;
    grid-template-columns: clamp(9.5rem, 17vw, 13.5rem) minmax(0, 1fr);
    gap: clamp(1.25rem, 3.8vw, 3.2rem);
    align-items: start;
}

.fjxx-beijing-pricing-row h3 {
    width: max-content;
    max-width: 100%;
    margin: 0;
    padding-bottom: 0.35rem;
    border-bottom: 0.08rem solid rgba(255, 255, 255, 0.72);
    color: #f5f4ec;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.7rem, 1vw, 0.84rem);
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.2;
}

.fjxx-beijing-pricing-copy {
    max-width: 52rem;
    padding-top: 0.05rem;
}

.fjxx-beijing-pricing-copy p {
    margin: 0 0 0.48rem;
    color: rgba(255, 255, 255, 0.76);
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.53rem, 0.71vw, 0.67rem);
    font-weight: 400;
    letter-spacing: 0.005em;
    line-height: 1.58;
}

.fjxx-beijing-pricing-copy p:last-child {
    margin-bottom: 0;
}

.fjxx-beijing-pricing-row-intro {
    gap: clamp(1.25rem, 3.8vw, 3.2rem);
}

.fjxx-beijing-pricing-row-intro .fjxx-beijing-pricing-copy p + p {
    margin-top: 0.7rem;
}

.fjxx-beijing-pricing-row-exclusions {
    margin-top: clamp(0.2rem, 0.8vw, 0.7rem);
}

@media (max-width: 42rem) {
    .fjxx-beijing-pricing-inner {
        padding-right: 1.1rem;
        padding-left: 1.1rem;
    }

    .fjxx-beijing-pricing-title {
        margin-bottom: 2.8rem;
    }

    .fjxx-beijing-pricing-row {
        grid-template-columns: 1fr;
        gap: 0.8rem;
    }

    .fjxx-beijing-pricing-row h3 {
        font-size: 0.76rem;
    }

    .fjxx-beijing-pricing-copy p {
        font-size: 0.63rem;
        line-height: 1.65;
    }
}


/* itinerary-beijing important notes and terms */
.fjxx-beijing-notes {
    background: #fff;
    color: #1a1a1a;
}

.fjxx-beijing-notes-inner {
    width: min(100%, 68rem);
    margin: 0 auto;
    padding: clamp(3.5rem, 6vw, 5.4rem) 1.5rem clamp(4rem, 7vw, 6rem);
}

.fjxx-beijing-notes-title {
    margin: 0 0 clamp(2.8rem, 5vw, 4rem);
    color: #050505;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(2.15rem, 4.1vw, 3.4rem);
    font-weight: 400;
    letter-spacing: 0.01em;
    line-height: 0.98;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-beijing-notes-list {
    max-width: 66rem;
    margin: 0 auto;
}

.fjxx-beijing-notes-list p {
    margin: 0 0 1.05rem;
    color: #353535;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.58rem, 0.75vw, 0.7rem);
    font-weight: 400;
    letter-spacing: 0.002em;
    line-height: 1.5;
}

.fjxx-beijing-notes-list p:last-child {
    margin-bottom: 0;
}

.fjxx-beijing-notes-list strong {
    color: #141414;
    font-weight: 700;
}

@media (max-width: 42rem) {
    .fjxx-beijing-notes-inner {
        padding-right: 1.1rem;
        padding-left: 1.1rem;
    }

    .fjxx-beijing-notes-title {
        margin-bottom: 2.6rem;
    }

    .fjxx-beijing-notes-list p {
        margin-bottom: 1rem;
        font-size: 0.64rem;
        line-height: 1.65;
    }
}

/* fjxx-explore-city hero */
.fjxx-explore-city-hero {
    position: relative;
    display: flex;
    height: 100vh;
    height: 100svh;
    min-height: 100vh;
    min-height: 100svh;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: #fff;
    isolation: isolate;
    background: #173342;
}

.fjxx-explore-city-hero-media,
.fjxx-explore-city-hero-overlay {
    position: absolute;
    inset: 0;
}

.fjxx-explore-city-hero-media {
    z-index: -2;
}

.fjxx-explore-city-hero-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 66%;
    transform: scale(1.02);
    animation: fjxx-explore-city-hero-image-in 1.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.fjxx-explore-city-hero-overlay {
    z-index: -1;
    background:
        linear-gradient(180deg, rgba(6, 25, 39, 0.28) 0%, rgba(8, 24, 34, 0.03) 42%, rgba(5, 15, 23, 0.48) 100%),
        linear-gradient(90deg, rgba(3, 19, 32, 0.2) 0%, rgba(3, 19, 32, 0) 58%);
}

.fjxx-explore-city-hero-content {
    width: min(90%, 70rem);
    margin-top: 2.2rem;
    text-align: center;
    animation: fjxx-explore-city-hero-content-in 1s 0.2s ease both;
}

.fjxx-explore-city-hero-title {
    max-width: 80rem;
    margin: 0 auto;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(2rem, 3.8vw, 3.35rem);
    font-weight: 400;
    letter-spacing: 0.012em;
    line-height: 0.98;
    text-transform: uppercase;
    text-wrap: balance;
    text-shadow: 0 0.15rem 1.25rem rgba(0, 0, 0, 0.24);
}

.fjxx-explore-city-hero-play {
    position: relative;
    display: inline-grid;
    width: 4.35rem;
    height: 4.35rem;
    margin-top: 1.55rem;
    padding: 0;
    place-items: center;
    border: 0.08rem solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    color: #fff;
    background: rgba(5, 18, 28, 0.76);
    box-shadow: 0 0.6rem 1.8rem rgba(0, 0, 0, 0.22);
    cursor: pointer;
    transition: background-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.fjxx-explore-city-hero-play:hover {
    background: #bd8a3d;
    box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.28);
    transform: translateY(-0.15rem) scale(1.04);
}

.fjxx-explore-city-hero-play:focus-visible {
    outline: 0.15rem solid #fff;
    outline-offset: 0.25rem;
}

.fjxx-explore-city-hero-play-icon {
    display: block;
    width: 0;
    height: 0;
    margin-left: 0.22rem;
    border-top: 0.58rem solid transparent;
    border-bottom: 0.58rem solid transparent;
    border-left: 0.82rem solid currentColor;
}

/* fjxx-video-modal: same lightbox playback behavior as boomwow product-detail */
.fjxx-video-modal[hidden] { display: none; }

.fjxx-video-modal {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    padding: 2rem;
    place-items: center;
}

.fjxx-video-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 12, 18, 0.84);
}

.fjxx-video-dialog {
    position: relative;
    z-index: 1;
    width: min(960px, 100%);
    aspect-ratio: 16 / 9;
    background: #000;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.45);
}

.fjxx-video-dialog iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.fjxx-video-close {
    position: absolute;
    z-index: 2;
    top: -2.75rem;
    right: 0;
    width: 2rem;
    height: 2rem;
    padding: 0;
    color: #fff;
    background: transparent;
    border: 0;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
}

body.fjxx-video-open { overflow: hidden; }

@keyframes fjxx-explore-city-hero-image-in {
    from { opacity: 0.72; transform: scale(1.08); }
    to { opacity: 1; transform: scale(1.02); }
}

@keyframes fjxx-explore-city-hero-content-in {
    from { opacity: 0; transform: translateY(1rem); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 48rem) {
    .fjxx-explore-city-hero {
        height: 100vh;
        height: 100svh;
        min-height: 100vh;
        min-height: 100svh;
        max-height: none;
    }

    .fjxx-explore-city-hero-image {
        object-position: center 62%;
    }

    .fjxx-explore-city-hero-content {
        width: calc(100% - 2rem);
        margin-top: 1.5rem;
    }

    .fjxx-explore-city-hero-title {
        max-width: 27rem;
        font-size: clamp(2rem, 10vw, 3.05rem);
        line-height: 0.98;
    }

    .fjxx-explore-city-hero-play {
        width: 3.8rem;
        height: 3.8rem;
        margin-top: 1.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-explore-city-hero-image,
    .fjxx-explore-city-hero-content {
        animation: none;
    }

    .fjxx-explore-city-hero-image {
        transform: none;
    }
}


/* fjxx-explore-city story */
.fjxx-explore-city-story {
    position: relative;
    overflow: hidden;
    background: #fff;
    color: #202020;
}

.fjxx-explore-city-story-inner {
    --fjxx-explore-city-story-media-width: clamp(14.25rem, 18vw, 16.5rem);
    width: min(78%, 58rem);
    margin: 0 auto;
    padding: 6.4rem 0 7.4rem;
}

.fjxx-explore-city-story-row {
    position: relative;
    display: grid;
    align-items: center;
    gap: clamp(3.35rem, 6vw, 5rem);
}

.fjxx-explore-city-story-row-intro {
    grid-template-columns: minmax(0, 1fr) var(--fjxx-explore-city-story-media-width);
}

.fjxx-explore-city-story-row-opera {
    grid-template-columns: var(--fjxx-explore-city-story-media-width) minmax(0, 1fr);
    margin-top: 6.25rem;
}

.fjxx-explore-city-story-row::before {
    position: absolute;
    z-index: 0;
    width: 12.4rem;
    height: 12.4rem;
    background: #f4f4f4;
    content: '';
}

.fjxx-explore-city-story-row-intro::before {
    top: -1.45rem;
    right: 10.7rem;
}

.fjxx-explore-city-story-row-opera::before {
    right: 10.45rem;
    bottom: -2.05rem;
}

.fjxx-explore-city-story-copy,
.fjxx-explore-city-story-media {
    position: relative;
    z-index: 1;
}

.fjxx-explore-city-story-copy {
    max-width: 15.3rem;
}

.fjxx-explore-city-story-row-opera .fjxx-explore-city-story-copy {
    max-width: 15.9rem;
}

.fjxx-explore-city-story-title {
    margin: 0 0 2.35rem;
    color: #111;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(1.05rem, 1.65vw, 1.42rem);
    letter-spacing: 0.015em;
    line-height: 1.8;
    text-transform: uppercase;
}

.fjxx-explore-city-story-title span {
    display: block;
}

.fjxx-explore-city-story-title span:first-child {
    margin-bottom: 0.65rem;
    font-weight: 700;
}

.fjxx-explore-city-story-title-secondary {
    margin-bottom: 1.55rem;
    font-size: clamp(0.8rem, 1vw, 0.98rem);
    line-height: 1.3;
    text-transform: none;
}

.fjxx-explore-city-story-copy p {
    margin: 0 0 1.35rem;
    color: #555;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.61rem, 0.74vw, 0.7rem);
    font-weight: 400;
    letter-spacing: 0.005em;
    line-height: 1.65;
}

.fjxx-explore-city-story-copy p:last-child {
    margin-bottom: 0;
}

.fjxx-explore-city-story-media {
    width: var(--fjxx-explore-city-story-media-width);
    aspect-ratio: 0.69;
    margin: 0;
    overflow: hidden;
    background: #e8e8e8;
}

.fjxx-explore-city-story-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.8s ease;
}

.fjxx-explore-city-story-media:hover img {
    transform: scale(1.04);
}

.fjxx-explore-city-story-row-intro .fjxx-explore-city-story-media img {
    object-position: center 46%;
}

.fjxx-explore-city-story-row-opera .fjxx-explore-city-story-media img {
    object-position: center 38%;
}

@media (max-width: 52rem) {
    .fjxx-explore-city-story-inner {
        width: min(86%, 42rem);
        padding-top: 4.5rem;
        padding-bottom: 5.5rem;
    }

    .fjxx-explore-city-story-row {
        gap: 2.25rem;
    }

    .fjxx-explore-city-story-row-intro,
    .fjxx-explore-city-story-row-opera {
        grid-template-columns: minmax(0, 1fr) 11.5rem;
    }

    .fjxx-explore-city-story-row-opera {
        grid-template-areas: 'media copy';
    }

    .fjxx-explore-city-story-row-opera .fjxx-explore-city-story-media {
        grid-area: media;
    }

    .fjxx-explore-city-story-row-opera .fjxx-explore-city-story-copy {
        grid-area: copy;
    }

    .fjxx-explore-city-story-media {
        width: 11.5rem;
    }

    .fjxx-explore-city-story-row-intro::before,
    .fjxx-explore-city-story-row-opera::before {
        right: 8.7rem;
    }
}

@media (max-width: 38rem) {
    .fjxx-explore-city-story-inner {
        width: min(84%, 22rem);
        padding-top: 3.7rem;
        padding-bottom: 4rem;
    }

    .fjxx-explore-city-story-row,
    .fjxx-explore-city-story-row-opera {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 1.8rem;
        margin-top: 4.2rem;
    }

    .fjxx-explore-city-story-row-intro {
        margin-top: 0;
    }

    .fjxx-explore-city-story-row-opera {
        flex-direction: column;
    }

    .fjxx-explore-city-story-copy,
    .fjxx-explore-city-story-row-opera .fjxx-explore-city-story-copy {
        max-width: none;
    }

    .fjxx-explore-city-story-media {
        width: min(70%, 13.35rem);
        margin: 0 auto;
    }

    .fjxx-explore-city-story-row-intro .fjxx-explore-city-story-media {
        order: -1;
    }

    .fjxx-explore-city-story-row::before {
        width: 10rem;
        height: 10rem;
    }

    .fjxx-explore-city-story-row-intro::before {
        top: -1.1rem;
        right: 0;
    }

    .fjxx-explore-city-story-row-opera::before {
        right: 0;
        bottom: -1.4rem;
    }

    .fjxx-explore-city-story-title {
        margin-bottom: 1.55rem;
        font-size: 1.2rem;
        line-height: 1.55;
    }

    .fjxx-explore-city-story-title-secondary {
        font-size: 0.92rem;
    }

    .fjxx-explore-city-story-copy p {
        font-size: 0.66rem;
        line-height: 1.7;
    }
}


/* fjxx-explore-city heritage carousel */
.fjxx-explore-city-heritage {
    position: relative;
    overflow: hidden;
    padding: 4.4rem 0 4.1rem;
    background: #fff;
    color: #171717;
}

.fjxx-explore-city-heritage-inner {
    width: 100%;
    margin: 0 auto;
}

.fjxx-explore-city-heritage-title {
    margin: 0 auto 1.65rem;
    color: #111;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(1.65rem, 3vw, 2.55rem);
    font-weight: 400;
    letter-spacing: 0.015em;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-explore-city-heritage-swiper {
    width: 100%;
    overflow: visible;
}

.fjxx-explore-city-heritage-swiper .swiper-wrapper {
    align-items: flex-start;
}

.fjxx-explore-city-heritage-slide {
    width: min(55vw, 32rem);
    opacity: 0.18;
    transition: opacity 0.55s ease, transform 0.55s ease;
}

.fjxx-explore-city-heritage-slide.swiper-slide-active {
    opacity: 1;
}

.fjxx-explore-city-heritage-media {
    position: relative;
    width: 100%;
    height: clamp(14rem, 34vw, 21rem);
    margin: 0;
    overflow: hidden;
    background: #e8e8e8;
}

.fjxx-explore-city-heritage-media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(12, 18, 22, 0.03), rgba(12, 18, 22, 0.18));
    content: '';
    pointer-events: none;
}

.fjxx-explore-city-heritage-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.fjxx-explore-city-heritage-slide:not(.swiper-slide-active) .fjxx-explore-city-heritage-media img {
    filter: grayscale(0.28);
}

.fjxx-explore-city-heritage-slide-text {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.4rem 1.7rem;
    text-align: center;
    pointer-events: none;
    background: rgba(9, 11, 12, 0.52);
    opacity: 0;
    transition: opacity 0.45s ease;
}

.fjxx-explore-city-heritage-slide-text p {
    max-width: 24rem;
    margin: 0;
    color: #fff;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.62rem, 0.8vw, 0.75rem);
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1.7;
    text-shadow: 0 0.15rem 1.1rem rgba(0, 0, 0, 0.55);
    transform: translateY(0.35rem);
    transition: transform 0.45s ease;
}

/* 居中 slide 悬浮时才展示文案：幕布淡入 + 文案上浮 */
.fjxx-explore-city-heritage-slide.swiper-slide-active:hover .fjxx-explore-city-heritage-slide-text {
    opacity: 1;
}

.fjxx-explore-city-heritage-slide.swiper-slide-active:hover .fjxx-explore-city-heritage-slide-text p {
    transform: translateY(0);
}

.fjxx-explore-city-heritage-title-item {
    display: none;
}

.fjxx-explore-city-heritage-title-item.is-active {
    display: inline;
}

.fjxx-explore-city-heritage-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    min-height: 1.15rem;
    margin-top: 0.45rem;
}

.fjxx-explore-city-heritage-current-caption {
    min-width: 15rem;
    color: #3b3b3b;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.65rem;
    line-height: 1.35;
    text-align: center;
}

.fjxx-explore-city-heritage-prev,
.fjxx-explore-city-heritage-next {
    position: relative;
    display: inline-flex;
    width: 1.2rem;
    height: 1.2rem;
    flex: 0 0 1.2rem;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.fjxx-explore-city-heritage-prev::before,
.fjxx-explore-city-heritage-next::before {
    width: 0.42rem;
    height: 0.42rem;
    border-top: 0.08rem solid #444;
    border-right: 0.08rem solid #444;
    content: '';
    transition: border-color 0.2s ease, transform 0.2s ease;
}

.fjxx-explore-city-heritage-prev::before {
    transform: rotate(-135deg);
}

.fjxx-explore-city-heritage-next::before {
    transform: rotate(45deg);
}

.fjxx-explore-city-heritage-prev:hover::before,
.fjxx-explore-city-heritage-next:hover::before {
    border-color: #bd8a3d;
}

.fjxx-explore-city-heritage-prev:focus-visible,
.fjxx-explore-city-heritage-next:focus-visible {
    outline: 0.12rem solid #bd8a3d;
    outline-offset: 0.15rem;
}

@media (max-width: 48rem) {
    .fjxx-explore-city-heritage {
        padding: 3.4rem 0 3.5rem;
    }

    .fjxx-explore-city-heritage-title {
        margin-bottom: 1.35rem;
        font-size: 2rem;
    }

    .fjxx-explore-city-heritage-slide {
        width: min(74vw, 27rem);
    }

    .fjxx-explore-city-heritage-media {
        height: clamp(13rem, 58vw, 19rem);
    }

    .fjxx-explore-city-heritage-slide-text {
        padding: 1.1rem 1.2rem;
    }

    .fjxx-explore-city-heritage-slide-text p {
        font-size: 0.62rem;
    }

    .fjxx-explore-city-heritage-current-caption {
        min-width: 11rem;
        font-size: 0.6rem;
    }
}

@media (max-width: 32rem) {
    .fjxx-explore-city-heritage-slide {
        width: 80vw;
    }

    .fjxx-explore-city-heritage-controls {
        gap: 0.5rem;
    }

    .fjxx-explore-city-heritage-current-caption {
        min-width: 9rem;
    }
}

/* fjxx-explore-city top attractions */
.fjxx-explore-city-attractions {
    position: relative;
    background: #090b0c;
    color: #fff;
}

.fjxx-explore-city-attractions-stack {
    position: relative;
}

.fjxx-explore-city-attractions-panel {
    --fjxx-explore-city-attractions-cover: 0;
    position: sticky;
    z-index: var(--fjxx-explore-city-attractions-index);
    top: 0;
    height: 100vh;
    height: 100svh;
    padding: 0.75rem;
    background: #090b0c;
}

.fjxx-explore-city-attractions-stage {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: calc(var(--fjxx-explore-city-attractions-cover) * 1.2rem);
    background: #17212a;
    box-shadow: 0 -1.1rem 3rem rgba(0, 0, 0, 0.2);
    filter: brightness(calc(1 - var(--fjxx-explore-city-attractions-cover) * 0.24));
    transform: translateY(calc(var(--fjxx-explore-city-attractions-cover) * -1.35rem))
        scale(calc(1 - var(--fjxx-explore-city-attractions-cover) * 0.035));
    transform-origin: center top;
    transition: border-radius 0.1s linear, filter 0.1s linear, transform 0.1s linear;
    will-change: border-radius, filter, transform;
}

.fjxx-explore-city-attractions-media,
.fjxx-explore-city-attractions-shade {
    position: absolute;
    inset: 0;
    margin: 0;
}

.fjxx-explore-city-attractions-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(calc(1.035 + var(--fjxx-explore-city-attractions-cover) * 0.025));
    transition: transform 0.1s linear;
    will-change: transform;
}

.fjxx-explore-city-attractions-panel:nth-child(1) .fjxx-explore-city-attractions-media img {
    object-position: center 51%;
}

.fjxx-explore-city-attractions-panel:nth-child(2) .fjxx-explore-city-attractions-media img {
    object-position: center 45%;
}

.fjxx-explore-city-attractions-panel:nth-child(3) .fjxx-explore-city-attractions-media img {
    object-position: center 63%;
}

.fjxx-explore-city-attractions-panel:nth-child(4) .fjxx-explore-city-attractions-media img {
    object-position: center 43%;
}

.fjxx-explore-city-attractions-shade {
    background:
        linear-gradient(180deg, rgba(4, 8, 11, 0.18) 0%, rgba(4, 8, 11, 0.04) 36%, rgba(4, 8, 11, 0.8) 100%),
        linear-gradient(90deg, rgba(3, 8, 12, 0.62) 0%, rgba(3, 8, 12, 0.08) 56%, rgba(3, 8, 12, 0.18) 100%);
}

.fjxx-explore-city-attractions-content {
    position: relative;
    z-index: 1;
    display: flex;
    width: min(88%, 72rem);
    height: 100%;
    margin: 0 auto;
    padding: clamp(4rem, 8vh, 6rem) 0 clamp(3.25rem, 8vh, 6rem);
    flex-direction: column;
    justify-content: space-between;
}

.fjxx-explore-city-attractions-heading {
    align-self: center;
    text-align: center;
}

.fjxx-explore-city-attractions-overline {
    margin: 0 0 0.65rem;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.58rem, 0.75vw, 0.72rem);
    font-weight: 600;
    letter-spacing: 0.22em;
    line-height: 1.4;
    text-transform: uppercase;
}

.fjxx-explore-city-attractions-title {
    margin: 0;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(3.1rem, 7vw, 6.8rem);
    font-weight: 400;
    letter-spacing: 0.025em;
    line-height: 0.9;
    text-transform: uppercase;
    text-shadow: 0 0.22rem 1.5rem rgba(0, 0, 0, 0.36);
}

.fjxx-explore-city-attractions-story {
    width: min(100%, 29rem);
    opacity: calc(1 - var(--fjxx-explore-city-attractions-cover) * 0.72);
    transform: translateY(calc(var(--fjxx-explore-city-attractions-cover) * -1.1rem));
    transition: opacity 0.1s linear, transform 0.1s linear;
    will-change: opacity, transform;
}

.fjxx-explore-city-attractions-panel:nth-child(even) .fjxx-explore-city-attractions-story {
    align-self: flex-end;
    text-align: right;
}

.fjxx-explore-city-attractions-number {
    display: flex;
    margin: 0 0 1rem;
    align-items: center;
    gap: 0.8rem;
    color: #d1a150;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    line-height: 1.4;
    text-transform: uppercase;
}

.fjxx-explore-city-attractions-panel:nth-child(even) .fjxx-explore-city-attractions-number {
    justify-content: flex-end;
}

.fjxx-explore-city-attractions-number span {
    color: rgba(255, 255, 255, 0.82);
}

.fjxx-explore-city-attractions-story h3 {
    margin: 0 0 1rem;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(2.5rem, 5vw, 4.8rem);
    font-weight: 400;
    letter-spacing: 0.018em;
    line-height: 0.95;
    text-transform: uppercase;
    text-wrap: balance;
}

.fjxx-explore-city-attractions-story > p:not(.fjxx-explore-city-attractions-number) {
    margin: 0;
    color: rgba(255, 255, 255, 0.84);
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.68rem, 0.85vw, 0.82rem);
    line-height: 1.7;
}

.fjxx-explore-city-attractions-meta {
    display: inline-block;
    margin-top: 1.2rem;
    padding-top: 0.8rem;
    border-top: 0.06rem solid rgba(255, 255, 255, 0.38);
    color: rgba(255, 255, 255, 0.68);
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

@media (max-width: 48rem) {
    .fjxx-explore-city-attractions-panel {
        height: 88svh;
        padding: 0.45rem;
    }

    .fjxx-explore-city-attractions-content {
        width: calc(100% - 2.6rem);
        padding: 3.4rem 0 2.4rem;
    }

    .fjxx-explore-city-attractions-title {
        font-size: clamp(3rem, 17vw, 5.3rem);
    }

    .fjxx-explore-city-attractions-story,
    .fjxx-explore-city-attractions-panel:nth-child(even) .fjxx-explore-city-attractions-story {
        width: min(100%, 24rem);
        align-self: flex-start;
        text-align: left;
    }

    .fjxx-explore-city-attractions-panel:nth-child(even) .fjxx-explore-city-attractions-number {
        justify-content: flex-start;
    }

    .fjxx-explore-city-attractions-panel:nth-child(2) .fjxx-explore-city-attractions-media img {
        object-position: 58% center;
    }

    .fjxx-explore-city-attractions-panel:nth-child(3) .fjxx-explore-city-attractions-media img {
        object-position: 55% 64%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-explore-city-attractions-stage,
    .fjxx-explore-city-attractions-media img,
    .fjxx-explore-city-attractions-story {
        transition: none;
        will-change: auto;
    }
}

/* fjxx-explore-city flavors */
.fjxx-explore-city-flavors {
    padding: 5rem 1.5rem 5.4rem;
    background: #fff;
    color: #171717;
}

.fjxx-explore-city-flavors-inner {
    width: min(100%, 54rem);
    margin: 0 auto;
}

.fjxx-explore-city-flavors-title {
    margin: 0 auto 0.55rem;
    color: #111;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(1.65rem, 3vw, 2.55rem);
    font-weight: 400;
    letter-spacing: 0.015em;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
}

.fjxx-explore-city-flavors-intro {
    width: min(100%, 38rem);
    margin: 0 auto 2rem;
    color: #777;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.58rem, 0.78vw, 0.68rem);
    font-weight: 400;
    letter-spacing: 0.01em;
    line-height: 1.45;
    text-align: center;
}

.fjxx-explore-city-flavors-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

/* 1-5 个：按数量一行自适应铺满；超过 5 个：回落默认 3 列，换行展示 */
.fjxx-explore-city-flavors-grid:has(> :where(article:nth-child(1):last-child)) {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.fjxx-explore-city-flavors-grid:has(> :where(article:nth-child(2):last-child)) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fjxx-explore-city-flavors-grid:has(> :where(article:nth-child(3):last-child)) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fjxx-explore-city-flavors-grid:has(> :where(article:nth-child(4):last-child)) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fjxx-explore-city-flavors-grid:has(> :where(article:nth-child(5):last-child)) {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.fjxx-explore-city-flavors-card {
    min-width: 0;
    background: #f7f7f7;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.fjxx-explore-city-flavors-card:hover {
    box-shadow: 0 0.65rem 1.4rem rgba(25, 25, 25, 0.1);
    transform: translateY(-0.2rem);
}

.fjxx-explore-city-flavors-media {
    position: relative;
    height: 11rem;
    margin: 0;
    overflow: hidden;
    background: #ece9e2;
}

.fjxx-explore-city-flavors-media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10, 12, 14, 0.02), rgba(10, 12, 14, 0.14));
    content: '';
    pointer-events: none;
}

.fjxx-explore-city-flavors-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.fjxx-explore-city-flavors-card:hover .fjxx-explore-city-flavors-media img {
    transform: scale(1.045);
}

.fjxx-explore-city-flavors-body {
    min-height: 8.6rem;
    padding: 1.05rem 1.12rem 1.25rem;
}

.fjxx-explore-city-flavors-name {
    margin: 0 0 0.7rem;
    color: #262626;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.25;
}

.fjxx-explore-city-flavors-body p {
    margin: 0;
    color: #666;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.61rem;
    font-weight: 400;
    letter-spacing: 0.005em;
    line-height: 1.55;
}

@media (max-width: 48rem) {
    .fjxx-explore-city-flavors {
        padding: 3.8rem 1.1rem 4.2rem;
    }

    .fjxx-explore-city-flavors-intro {
        margin-bottom: 1.5rem;
    }

    .fjxx-explore-city-flavors-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem;
    }

    .fjxx-explore-city-flavors-card:last-child {
        grid-column: 1 / -1;
        width: calc(50% - 0.5rem);
        justify-self: center;
    }

    .fjxx-explore-city-flavors-media {
        height: clamp(10.5rem, 32vw, 13.5rem);
    }
}

@media (max-width: 32rem) {
    .fjxx-explore-city-flavors {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .fjxx-explore-city-flavors-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .fjxx-explore-city-flavors-card:last-child {
        grid-column: auto;
        width: auto;
    }

    .fjxx-explore-city-flavors-media {
        height: 13rem;
    }
}


/* fjxx-explore-city stay */
.fjxx-explore-city-stay {
    padding: 5rem 1.5rem 5.25rem;
    background: #050505;
    color: #f7f7f7;
}

.fjxx-explore-city-stay-inner {
    display: grid;
    grid-template-columns: minmax(13rem, 19rem) minmax(0, 1fr);
    gap: clamp(2.5rem, 7vw, 5.5rem);
    align-items: center;
    width: min(100%, 55rem);
    margin: 0 auto;
}

.fjxx-explore-city-stay-feature {
    position: relative;
    min-height: 19rem;
}

.fjxx-explore-city-stay-media {
    position: relative;
    width: 100%;
    height: 19rem;
    margin: 0;
    overflow: hidden;
    background: #252525;
}

.fjxx-explore-city-stay-media::after {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.48);
    content: '';
    pointer-events: none;
}

.fjxx-explore-city-stay-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: saturate(0.78);
}

.fjxx-explore-city-stay-title {
    position: absolute;
    top: 50%;
    left: -1.45rem;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    margin: 0;
    color: #fff;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(2.15rem, 4.4vw, 3.5rem);
    font-weight: 400;
    letter-spacing: 0.03em;
    line-height: 0.93;
    text-transform: uppercase;
    transform: translateY(-50%);
}

.fjxx-explore-city-stay-title span {
    display: block;
}

.fjxx-explore-city-stay-content {
    padding: 0.25rem 0;
}

.fjxx-explore-city-stay-group h3 {
    margin: 0 0 1rem;
    color: #f8f8f8;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.3;
}

.fjxx-explore-city-stay-group p {
    margin: 0;
    color: #bcbcbc;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.61rem;
    font-weight: 400;
    letter-spacing: 0.005em;
    line-height: 1.55;
}

.fjxx-explore-city-stay-group p + p {
    margin-top: 0.8rem;
}

.fjxx-explore-city-stay-group strong {
    color: #f6f6f6;
    font-weight: 600;
}

.fjxx-explore-city-stay-divider {
    height: 1px;
    margin: 1.4rem 0 1.25rem;
    background: rgba(255, 255, 255, 0.28);
}

@media (max-width: 48rem) {
    .fjxx-explore-city-stay {
        padding: 3.8rem 1rem 4rem;
    }

    .fjxx-explore-city-stay-inner {
        grid-template-columns: minmax(10rem, 15rem) minmax(0, 1fr);
        gap: 2rem;
    }

    .fjxx-explore-city-stay-feature,
    .fjxx-explore-city-stay-media {
        min-height: 17rem;
        height: 17rem;
    }

    .fjxx-explore-city-stay-title {
        left: -0.8rem;
        font-size: 2.5rem;
    }
}

@media (max-width: 36rem) {
    .fjxx-explore-city-stay-inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 2rem;
    }

    .fjxx-explore-city-stay-feature {
        width: min(100%, 18rem);
        margin: 0 auto;
    }

    .fjxx-explore-city-stay-media {
        height: 18rem;
    }

    .fjxx-explore-city-stay-title {
        left: 1rem;
    }

    .fjxx-explore-city-stay-content {
        width: min(100%, 31rem);
        margin: 0 auto;
    }
}


/* fjxx-explore-city accommodation */
.fjxx-explore-city-accommodation {
    position: relative;
    padding: 0.75rem 0 0.85rem;
    overflow: hidden;
    background: #fff;
}

.fjxx-explore-city-accommodation-title {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.fjxx-explore-city-accommodation-track {
    width: 100%;
}

/* 4 张及以内（未初始化轮播）：保持静态 4 列网格 */
.fjxx-explore-city-accommodation-track:not(.swiper-initialized) .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
}

.fjxx-explore-city-accommodation-track:not(.swiper-initialized) .swiper-slide {
    width: auto;
}

/* 超过 4 张（轮播启用）：一屏 4 张，拖拽查看更多 */
.fjxx-explore-city-accommodation-track.swiper-initialized .fjxx-explore-city-accommodation-card {
    width: calc((100% - 3 * 0.55rem) / 4);
}

.fjxx-explore-city-accommodation-card {
    min-width: 0;
    aspect-ratio: 1.88 / 1;
    margin: 0;
    overflow: hidden;
    background: #e9e7e1;
}

.fjxx-explore-city-accommodation-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.88);
    transition: transform 0.65s cubic-bezier(0.2, 0.7, 0.2, 1), filter 0.35s ease;
}

.fjxx-explore-city-accommodation-card:nth-child(1) img {
    object-position: center 52%;
}

.fjxx-explore-city-accommodation-card:nth-child(2) img {
    object-position: center 48%;
}

.fjxx-explore-city-accommodation-card:nth-child(3) img {
    object-position: center 54%;
}

.fjxx-explore-city-accommodation-card:nth-child(4) img {
    object-position: center 46%;
}

.fjxx-explore-city-accommodation-card:hover img {
    filter: saturate(1);
    transform: scale(1.045);
}

@media (max-width: 42rem) {
    .fjxx-explore-city-accommodation {
        padding-top: 0.6rem;
        padding-bottom: 0.7rem;
    }

    .fjxx-explore-city-accommodation-track:not(.swiper-initialized) .swiper-wrapper {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.45rem;
    }

    .fjxx-explore-city-accommodation-track.swiper-initialized .fjxx-explore-city-accommodation-card {
        width: calc((100% - 0.45rem) / 2);
    }

    .fjxx-explore-city-accommodation-card {
        aspect-ratio: 1.5 / 1;
    }
}

@media (max-width: 32rem) {
    .fjxx-explore-city-accommodation-track:not(.swiper-initialized) .swiper-wrapper {
        display: flex;
        gap: 0.45rem;
        width: max-content;
    }

    .fjxx-explore-city-accommodation-track:not(.swiper-initialized) .fjxx-explore-city-accommodation-card,
    .fjxx-explore-city-accommodation-track.swiper-initialized .fjxx-explore-city-accommodation-card {
        width: 70vw;
        max-width: 15rem;
        aspect-ratio: 1.5 / 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-explore-city-accommodation-card img {
        transition: none;
    }
}


/* fjxx-explore-city getting around */
.fjxx-explore-city-getting-around {
    padding: 4.8rem 1.5rem 5.1rem;
    background: #fff;
    color: #171717;
}

.fjxx-explore-city-getting-around-inner {
    display: grid;
    grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
    width: min(100%, 53rem);
    margin: 0 auto;
}

.fjxx-explore-city-getting-around-copy {
    min-width: 0;
}

.fjxx-explore-city-getting-around-title {
    margin: 0 0 1rem;
    color: #111;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(1.8rem, 3.2vw, 2.6rem);
    font-weight: 400;
    letter-spacing: 0.01em;
    line-height: 1;
    text-transform: uppercase;
}

.fjxx-explore-city-getting-around-intro {
    width: min(100%, 16rem);
    margin: 0 0 1.45rem;
    color: #5f5f5f;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.62rem;
    font-weight: 400;
    letter-spacing: 0.005em;
    line-height: 1.5;
}

.fjxx-explore-city-getting-around-options {
    display: grid;
    gap: 0.45rem;
}

.fjxx-explore-city-getting-around-option {
    overflow: hidden;
    color: #fff;
    background: #050505;
}

.fjxx-explore-city-getting-around-option[open] {
    background: #be8b3c;
}

.fjxx-explore-city-getting-around-option summary {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 2.65rem;
    padding: 0.7rem 0.8rem 0.7rem 2.35rem;
    cursor: pointer;
    list-style: none;
    color: #fff;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.005em;
    line-height: 1.2;
}

.fjxx-explore-city-getting-around-option summary::-webkit-details-marker {
    display: none;
}

.fjxx-explore-city-getting-around-option summary::before {
    position: absolute;
    left: 0.8rem;
    top: 50%;
    width: 1.05rem;
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 0.88rem;
    font-weight: 400;
    line-height: 1;
    text-align: center;
    transform: translateY(-50%);
}

.fjxx-explore-city-getting-around-option:nth-child(1) summary::before {
    content: '\2708';
}

.fjxx-explore-city-getting-around-option:nth-child(2) summary::before {
    content: '\25A3';
    font-size: 0.72rem;
}

.fjxx-explore-city-getting-around-option:nth-child(3) summary::before {
    content: '\25A4';
    font-size: 0.82rem;
}

.fjxx-explore-city-getting-around-option:nth-child(4) summary::before {
    content: '\2726';
    font-size: 0.78rem;
}

.fjxx-explore-city-getting-around-option p {
    margin: -0.1rem 1rem 0.78rem 2.35rem;
    color: rgba(255, 255, 255, 0.82);
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.52rem;
    font-weight: 400;
    letter-spacing: 0.005em;
    line-height: 1.45;
}

.fjxx-explore-city-getting-around-map {
    width: 100%;
    aspect-ratio: 1.72 / 1;
    margin: 0;
    overflow: hidden;
    background: #e6f1df;
}

.fjxx-explore-city-getting-around-map img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fjxx-explore-city-getting-around-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

@media (max-width: 48rem) {
    .fjxx-explore-city-getting-around {
        padding: 3.8rem 1.1rem 4.2rem;
    }

    .fjxx-explore-city-getting-around-inner {
        grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
        gap: 1.8rem;
    }

    .fjxx-explore-city-getting-around-map {
        aspect-ratio: 1.3 / 1;
    }
}

@media (max-width: 38rem) {
    .fjxx-explore-city-getting-around-inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 2rem;
    }

    .fjxx-explore-city-getting-around-map {
        order: -1;
        aspect-ratio: 1.65 / 1;
    }

    .fjxx-explore-city-getting-around-copy {
        width: min(100%, 24rem);
        margin: 0 auto;
    }
}

/* explore-city lower content scale alignment — 2026-09-22 */
@media (min-width: 48.01rem) {
    .fjxx-explore-city-flavors {
        padding: clamp(5rem, 6.5vw, 7.5rem) clamp(2rem, 5vw, 6rem) clamp(5.4rem, 7vw, 8rem);
    }

    .fjxx-explore-city-flavors-inner {
        width: min(100%, 105rem);
    }

    .fjxx-explore-city-flavors-title {
        margin-bottom: 0.7rem;
        font-size: clamp(2.35rem, 2.7vw, 3.35rem);
    }

    .fjxx-explore-city-flavors-intro {
        width: min(100%, 48rem);
        margin-bottom: clamp(2.3rem, 3vw, 3.4rem);
        font-size: clamp(0.68rem, 0.68vw, 0.82rem);
        line-height: 1.65;
    }

    .fjxx-explore-city-flavors-grid {
        gap: clamp(1.2rem, 1.8vw, 2rem);
    }

    .fjxx-explore-city-flavors-media {
        height: auto;
        aspect-ratio: 1.56 / 1;
    }

    .fjxx-explore-city-flavors-body {
        min-height: clamp(11rem, 13vw, 13.75rem);
        padding: clamp(1.35rem, 1.7vw, 1.8rem) clamp(1.35rem, 1.8vw, 2rem) 1.75rem;
    }

    .fjxx-explore-city-flavors-name {
        margin-bottom: 0.85rem;
        font-size: clamp(0.78rem, 0.75vw, 0.94rem);
    }

    .fjxx-explore-city-flavors-body p {
        max-width: 31rem;
        font-size: clamp(0.64rem, 0.62vw, 0.76rem);
        line-height: 1.65;
    }

    .fjxx-explore-city-stay {
        padding: clamp(5.5rem, 7vw, 8rem) clamp(2rem, 5vw, 6rem);
    }

    .fjxx-explore-city-stay-inner {
        grid-template-columns: minmax(20rem, 27rem) minmax(0, 1fr);
        gap: clamp(4rem, 7vw, 8rem);
        width: min(100%, 88rem);
    }

    .fjxx-explore-city-stay-feature,
    .fjxx-explore-city-stay-media {
        min-height: clamp(24rem, 30vw, 32rem);
        height: clamp(24rem, 30vw, 32rem);
    }

    .fjxx-explore-city-stay-media img {
        object-position: 48% 52%;
    }

    .fjxx-explore-city-stay-title {
        left: clamp(-2.8rem, -2.5vw, -1.5rem);
        gap: 0.8rem;
        font-size: clamp(3.25rem, 4.1vw, 4.9rem);
        line-height: 0.9;
    }

    .fjxx-explore-city-stay-group h3 {
        margin-bottom: 1.25rem;
        font-size: clamp(0.9rem, 0.9vw, 1.1rem);
    }

    .fjxx-explore-city-stay-group p {
        font-size: clamp(0.65rem, 0.65vw, 0.78rem);
        line-height: 1.72;
    }

    .fjxx-explore-city-stay-group p + p {
        margin-top: 1rem;
    }

    .fjxx-explore-city-stay-divider {
        margin: 2rem 0 1.75rem;
    }

    .fjxx-explore-city-accommodation {
        padding: 1rem clamp(1rem, 3vw, 3.5rem) 1.2rem;
    }

    .fjxx-explore-city-accommodation-track {
        gap: clamp(0.55rem, 0.8vw, 0.9rem);
        width: min(100%, 112rem);
        margin: 0 auto;
    }

    .fjxx-explore-city-getting-around {
        padding: clamp(5.5rem, 7vw, 7.75rem) clamp(2rem, 5vw, 6rem) clamp(6rem, 8vw, 8.5rem);
    }

    .fjxx-explore-city-getting-around-inner {
        grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
        gap: clamp(4rem, 7vw, 8rem);
        width: min(100%, 92rem);
    }

    .fjxx-explore-city-getting-around-title {
        margin-bottom: 1.25rem;
        font-size: clamp(2.45rem, 3vw, 3.5rem);
    }

    .fjxx-explore-city-getting-around-intro {
        width: min(100%, 22rem);
        margin-bottom: 2rem;
        font-size: clamp(0.68rem, 0.68vw, 0.82rem);
        line-height: 1.65;
    }
}

.fjxx-explore-city-getting-around-options {
    gap: 0.65rem;
}

.fjxx-explore-city-getting-around-option {
    border: 1px solid rgba(255, 255, 255, 0.12);
    transition: background-color 0.28s ease, box-shadow 0.28s ease;
}

.fjxx-explore-city-getting-around-option[open] {
    box-shadow: 0 0.7rem 1.5rem rgba(84, 58, 23, 0.14);
}

.fjxx-explore-city-getting-around-option summary {
    gap: 0.9rem;
    min-height: 3.85rem;
    padding: 0.85rem 1.05rem;
    font-size: clamp(0.65rem, 0.68vw, 0.8rem);
    transition: min-height 0.28s ease, background-color 0.28s ease;
}

.fjxx-explore-city-getting-around-option[open] summary {
    min-height: 4.5rem;
    padding-bottom: 0.55rem;
}

.fjxx-explore-city-getting-around-option summary::before {
    display: none;
}

.fjxx-explore-city-getting-around-icon {
    display: block;
    flex: 0 0 auto;
    width: 1.7rem;
    height: 1.55rem;
    object-fit: contain;
}

.fjxx-explore-city-getting-around-option:nth-child(2) .fjxx-explore-city-getting-around-icon {
    width: 1.9rem;
}

.fjxx-explore-city-getting-around-option p {
    margin: 0 1.2rem 1.15rem 3.65rem;
    max-width: 28rem;
    font-size: clamp(0.56rem, 0.56vw, 0.68rem);
    line-height: 1.6;
}

.fjxx-explore-city-getting-around-map {
    aspect-ratio: 830 / 670;
    background: #eaf5e6;
}

.fjxx-explore-city-getting-around-map img {
    object-position: center;
}

@media (max-width: 48rem) {
    .fjxx-explore-city-flavors-inner {
        width: min(100%, 42rem);
    }

    .fjxx-explore-city-stay-inner {
        width: min(100%, 42rem);
    }

    .fjxx-explore-city-accommodation {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .fjxx-explore-city-getting-around-inner {
        align-items: start;
        width: min(100%, 42rem);
    }

    .fjxx-explore-city-getting-around-map {
        aspect-ratio: 830 / 670;
    }
}

@media (max-width: 38rem) {
    .fjxx-explore-city-getting-around-map {
        order: initial;
        aspect-ratio: 830 / 670;
    }

    .fjxx-explore-city-getting-around-option summary {
        min-height: 3.5rem;
    }

    .fjxx-explore-city-getting-around-option[open] summary {
        min-height: 4rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-explore-city-getting-around-option,
    .fjxx-explore-city-getting-around-option summary {
        transition: none;
    }
}

/* fjxx-site-type-scale: keep inner-page typography aligned with index.html */
:root {
    --fjxx-type-section-title: clamp(2.5rem, 4vw, 4rem);
    --fjxx-type-section-title-mobile: clamp(2rem, 9vw, 2.8rem);
    --fjxx-type-kicker: 0.68rem;
    --fjxx-type-lead: 0.86rem;
    --fjxx-type-body: 0.78rem;
    --fjxx-type-detail: 0.68rem;
    --fjxx-type-caption: 0.61rem;
}

/* Destination / itinerary section hierarchy */
.fjxx-destination-season-guide-title,
.fjxx-destination-season-faces-title,
.fjxx-destination-recommended-routes-title,
.fjxx-itinerary-wilderness-title,
.fjxx-itinerary-offers-title,
.fjxx-itinerary-routes-title,
.fjxx-itinerary-services-title,
.fjxx-about-story-title,
.fjxx-about-feature-embrace h2,
.fjxx-about-feature-philosophy h2,
.fjxx-about-feature-journeys h2,
.fjxx-about-feature-approach h2,
.fjxx-beijing-inspiration h2,
.fjxx-beijing-highlights-heading h2,
.fjxx-beijing-rhythm-heading h2,
.fjxx-beijing-notes-title {
    font-size: var(--fjxx-type-section-title);
    line-height: 1.12;
}

.fjxx-destination-season-guide-kicker,
.fjxx-destination-season-faces-intro,
.fjxx-itinerary-wilderness-kicker,
.fjxx-itinerary-route-meta,
.fjxx-about-story-summary,
.fjxx-beijing-day-marker,
.fjxx-beijing-accommodation-caption {
    font-size: var(--fjxx-type-kicker);
}

.fjxx-destination-season-guide-lede,
.fjxx-destination-season-guide-copy,
.fjxx-destination-season-faces-description,
.fjxx-itinerary-wilderness-copy,
.fjxx-about-story-lead,
.fjxx-about-story-copy p,
.fjxx-about-feature-copy p,
.fjxx-beijing-inspiration-lead,
.fjxx-beijing-inspiration-copy,
.fjxx-beijing-highlight-card p,
.fjxx-beijing-day-copy p,
.fjxx-beijing-pricing-copy p,
.fjxx-beijing-notes-list,
.fjxx-beijing-notes-list p {
    font-size: var(--fjxx-type-body);
    line-height: 1.68;
}

.fjxx-destination-season-guide-details,
.fjxx-destination-season-faces-subtitle,
.fjxx-destination-season-faces-link,
.fjxx-destination-recommended-route-detail,
.fjxx-destination-recommended-route-link,
.fjxx-itinerary-wilderness-tags,
.fjxx-itinerary-wilderness-link,
.fjxx-itinerary-offers-card p,
.fjxx-itinerary-offers-card a,
.fjxx-itinerary-routes-card p,
.fjxx-itinerary-routes-card a,
.fjxx-itinerary-services-item p,
.fjxx-itinerary-services-button,
.fjxx-about-story-link,
.fjxx-about-team-card-overlay p,
.fjxx-about-feature-copy a,
.fjxx-beijing-highlight-number,
.fjxx-beijing-pricing-copy h3 {
    font-size: var(--fjxx-type-detail);
}

.fjxx-destination-recommended-route-name,
.fjxx-itinerary-offers-card h3,
.fjxx-itinerary-routes-card h3,
.fjxx-itinerary-services-item h3,
.fjxx-about-team-card-overlay h3,
.fjxx-beijing-highlight-card h3,
.fjxx-beijing-day-card h3,
.fjxx-beijing-pricing-copy h3 {
    font-size: clamp(0.9rem, 1.1vw, 1.25rem);
    line-height: 1.3;
}

/* About page: keep the editorial copy readable without overpowering the imagery. */
.fjxx-about-story-copy,
.fjxx-about-feature-copy {
    font-size: var(--fjxx-type-body);
    line-height: 1.68;
}

/* Beijing itinerary: compact cards share the index page's body scale. */
.fjxx-beijing-day-intro,
.fjxx-beijing-day-copy,
.fjxx-beijing-route-map,
.fjxx-beijing-pricing-copy,
.fjxx-beijing-notes-list {
    font-size: var(--fjxx-type-body);
}

/* Explore City: normalize the lower content that previously scaled larger than the index baseline. */
.fjxx-explore-city-story-title,
.fjxx-explore-city-story-title-secondary {
    font-size: clamp(1.45rem, 2.25vw, 2.25rem);
    line-height: 1.15;
}

.fjxx-explore-city-story-copy,
.fjxx-explore-city-story-copy p,
.fjxx-explore-city-flavors-intro,
.fjxx-explore-city-flavors-body p,
.fjxx-explore-city-stay-group p,
.fjxx-explore-city-getting-around-intro,
.fjxx-explore-city-getting-around-option p {
    font-size: var(--fjxx-type-body);
    line-height: 1.68;
}

.fjxx-explore-city-heritage-title,
.fjxx-explore-city-flavors-title,
.fjxx-explore-city-accommodation-title {
    font-size: var(--fjxx-type-section-title);
    line-height: 1.12;
}

.fjxx-explore-city-heritage-current-caption,
.fjxx-explore-city-attractions-overline,
.fjxx-explore-city-attractions-meta,
.fjxx-explore-city-accommodation-card p {
    font-size: var(--fjxx-type-caption);
}

.fjxx-explore-city-attractions-title {
    font-size: clamp(3.1rem, 6vw, 6rem);
}

.fjxx-explore-city-attractions-story h3,
.fjxx-explore-city-stay-group h3 {
    font-size: clamp(1rem, 1.3vw, 1.45rem);
    line-height: 1.3;
}

.fjxx-explore-city-flavors-name {
    font-size: clamp(0.86rem, 1vw, 1.05rem);
}

.fjxx-explore-city-getting-around-title {
    font-size: var(--fjxx-type-section-title);
    line-height: 1.12;
}

@media (max-width: 60rem) {
    .fjxx-destination-season-guide-title,
    .fjxx-destination-season-faces-title,
    .fjxx-destination-recommended-routes-title,
    .fjxx-itinerary-wilderness-title,
    .fjxx-itinerary-offers-title,
    .fjxx-itinerary-routes-title,
    .fjxx-itinerary-services-title,
    .fjxx-about-story-title,
    .fjxx-about-feature-embrace h2,
    .fjxx-about-feature-philosophy h2,
    .fjxx-about-feature-journeys h2,
    .fjxx-about-feature-approach h2,
    .fjxx-beijing-inspiration h2,
    .fjxx-beijing-highlights-heading h2,
    .fjxx-beijing-rhythm-heading h2,
    .fjxx-beijing-notes-title,
    .fjxx-explore-city-heritage-title,
    .fjxx-explore-city-flavors-title,
    .fjxx-explore-city-accommodation-title,
    .fjxx-explore-city-getting-around-title {
        font-size: var(--fjxx-type-section-title-mobile);
    }

    .fjxx-explore-city-attractions-title {
        font-size: clamp(2.6rem, 12vw, 4.8rem);
    }
}

@media (max-width: 48rem) {
    .fjxx-destination-season-guide-lede,
    .fjxx-destination-season-guide-copy,
    .fjxx-destination-season-faces-description,
    .fjxx-itinerary-wilderness-copy,
    .fjxx-about-story-lead,
    .fjxx-about-story-copy p,
    .fjxx-about-feature-copy p,
    .fjxx-beijing-inspiration-lead,
    .fjxx-beijing-inspiration-copy,
    .fjxx-beijing-highlight-card p,
    .fjxx-beijing-day-copy p,
    .fjxx-beijing-pricing-copy p,
    .fjxx-beijing-notes-list,
    .fjxx-beijing-notes-list p,
    .fjxx-explore-city-story-copy,
    .fjxx-explore-city-story-copy p,
    .fjxx-explore-city-flavors-intro,
    .fjxx-explore-city-flavors-body p,
    .fjxx-explore-city-stay-group p,
    .fjxx-explore-city-getting-around-intro,
    .fjxx-explore-city-getting-around-option p {
        font-size: 0.72rem;
        line-height: 1.7;
    }

    .fjxx-destination-recommended-route-name,
    .fjxx-itinerary-offers-card h3,
    .fjxx-itinerary-routes-card h3,
    .fjxx-itinerary-services-item h3,
    .fjxx-about-team-card-overlay h3,
    .fjxx-beijing-highlight-card h3,
    .fjxx-beijing-day-card h3,
    .fjxx-beijing-pricing-copy h3,
    .fjxx-explore-city-attractions-story h3,
    .fjxx-explore-city-stay-group h3 {
        font-size: 0.95rem;
    }
}

@media (max-width: 30rem) {
    .fjxx-destination-season-guide-details,
    .fjxx-destination-season-faces-subtitle,
    .fjxx-destination-season-faces-link,
    .fjxx-destination-recommended-route-detail,
    .fjxx-destination-recommended-route-link,
    .fjxx-itinerary-wilderness-tags,
    .fjxx-itinerary-wilderness-link,
    .fjxx-itinerary-offers-card p,
    .fjxx-itinerary-offers-card a,
    .fjxx-itinerary-routes-card p,
    .fjxx-itinerary-routes-card a,
    .fjxx-itinerary-services-item p,
    .fjxx-itinerary-services-button,
    .fjxx-about-story-link,
    .fjxx-about-team-card-overlay p,
    .fjxx-about-feature-copy a,
    .fjxx-beijing-highlight-number,
    .fjxx-beijing-pricing-copy h3,
    .fjxx-explore-city-heritage-current-caption,
    .fjxx-explore-city-attractions-overline,
    .fjxx-explore-city-attractions-meta,
    .fjxx-explore-city-accommodation-card p {
        font-size: 0.62rem;
    }
}

/* fjxx-site-type-scale: seasonal pages and FAQ follow the same index.html text baseline. */
.fjxx-spring-intro-lead {
    font-size: clamp(1.15rem, 1.8vw, 1.55rem);
}

.fjxx-spring-intro-body,
.fjxx-spring-glance-item p {
    font-size: var(--fjxx-type-body);
    line-height: 1.68;
}

.fjxx-spring-section-title {
    font-size: var(--fjxx-type-section-title);
}

.fjxx-spring-place-index,
.fjxx-spring-place-meta,
.fjxx-spring-place-link,
.fjxx-faq-question {
    font-size: var(--fjxx-type-detail);
}

.fjxx-spring-place-title {
    font-size: clamp(0.9rem, 1.1vw, 1.25rem);
}

.fjxx-faq-answer {
    font-size: var(--fjxx-type-body);
    line-height: 1.68;
}

@media (max-width: 60rem) {
    .fjxx-spring-section-title {
        font-size: var(--fjxx-type-section-title-mobile);
    }
}

@media (max-width: 48rem) {
    .fjxx-spring-intro-lead {
        font-size: 1.1rem;
    }

    .fjxx-spring-intro-body,
    .fjxx-spring-glance-item p,
    .fjxx-faq-answer {
        font-size: 0.72rem;
        line-height: 1.7;
    }

    .fjxx-faq-question {
        font-size: 0.76rem;
    }

    .fjxx-spring-place-title {
        font-size: 1.05rem;
    }
}


/* Keep the Explore City document on the viewport scroll root so sticky chapters can pin correctly. */
html.fjxx-explore-city-document,
body.fjxx-explore-city-body {
    overflow-x: clip;
}

/* fjxx-explore-city top attractions: full-page inspired pinned chapters */
.fjxx-explore-city-attractions {
    --fjxx-explore-city-attractions-count: 4;
    position: relative;
    height: calc(var(--fjxx-explore-city-attractions-count) * 100vh);
    height: calc(var(--fjxx-explore-city-attractions-count) * 100svh);
    background: #090b0c;
    color: #fff;
}

.fjxx-explore-city-attractions-stack {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    height: 100svh;
    overflow: hidden;
    background: #090b0c;
}

.fjxx-explore-city-attractions-panel {
    --fjxx-explore-city-attractions-enter: 0;
    --fjxx-explore-city-attractions-cover: 0;
    position: absolute;
    z-index: var(--fjxx-explore-city-attractions-index);
    inset: 0;
    height: 100%;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: #090b0c;
    clip-path: inset(calc((1 - var(--fjxx-explore-city-attractions-enter)) * 100%) 0 0 0);
    pointer-events: none;
    will-change: clip-path;
}

.fjxx-explore-city-attractions-panel:first-child,
.fjxx-explore-city-attractions-panel.is-attraction-active {
    pointer-events: auto;
}

.fjxx-explore-city-attractions-stage {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 0;
    background: #17212a;
    box-shadow: none;
    filter: brightness(calc(1 - var(--fjxx-explore-city-attractions-cover) * 0.32));
    transform: scale(calc(1 - var(--fjxx-explore-city-attractions-cover) * 0.035));
    transform-origin: center center;
    transition: filter 0.08s linear, transform 0.08s linear;
    will-change: filter, transform;
}

.fjxx-explore-city-attractions-media,
.fjxx-explore-city-attractions-shade {
    position: absolute;
    inset: 0;
    margin: 0;
}

.fjxx-explore-city-attractions-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(calc(1.03 + var(--fjxx-explore-city-attractions-cover) * 0.035));
    transition: transform 0.08s linear;
    will-change: transform;
}

.fjxx-explore-city-attractions-panel:nth-child(1) .fjxx-explore-city-attractions-media img {
    object-position: center 51%;
}

.fjxx-explore-city-attractions-panel:nth-child(2) .fjxx-explore-city-attractions-media img {
    object-position: center 45%;
}

.fjxx-explore-city-attractions-panel:nth-child(3) .fjxx-explore-city-attractions-media img {
    object-position: center 63%;
}

.fjxx-explore-city-attractions-panel:nth-child(4) .fjxx-explore-city-attractions-media img {
    object-position: center 43%;
}

.fjxx-explore-city-attractions-shade {
    background:
        linear-gradient(180deg, rgba(4, 8, 11, 0.24) 0%, rgba(4, 8, 11, 0.08) 44%, rgba(4, 8, 11, 0.5) 100%),
        linear-gradient(90deg, rgba(3, 8, 12, 0.16), rgba(3, 8, 12, 0.04), rgba(3, 8, 12, 0.16));
}

.fjxx-explore-city-attractions-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: none;
    height: 100%;
    margin: 0;
    padding: 0;
}

.fjxx-explore-city-attractions-heading,
.fjxx-explore-city-attractions-story {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(calc(100% - 3rem), 43rem);
    margin: 0;
    text-align: center;
    opacity: var(--fjxx-explore-city-attractions-enter);
    transform: translate3d(-50%, -50%, 0)
        translateY(calc((1 - var(--fjxx-explore-city-attractions-enter)) * 4.5rem));
    transition: opacity 0.08s linear, transform 0.08s linear;
    will-change: opacity, transform;
}

.fjxx-explore-city-attractions-heading {
    width: min(calc(100% - 3rem), 48rem);
}

/* Every attraction caption shares the exact viewport centre.
   The stronger panel selector intentionally overrides the earlier alternating layout. */
.fjxx-explore-city-attractions-panel .fjxx-explore-city-attractions-heading,
.fjxx-explore-city-attractions-panel .fjxx-explore-city-attractions-story,
.fjxx-explore-city-attractions-panel:nth-child(even) .fjxx-explore-city-attractions-story {
    right: auto;
    bottom: auto;
    align-self: auto;
    text-align: center;
}

.fjxx-explore-city-attractions-heading > *,
.fjxx-explore-city-attractions-story > * {
    text-align: center;
}

.fjxx-explore-city-attractions-overline {
    margin: 0 0 0.7rem;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.58rem, 0.75vw, 0.72rem);
    font-weight: 600;
    letter-spacing: 0.22em;
    line-height: 1.4;
    text-transform: uppercase;
}

.fjxx-explore-city-attractions-title {
    margin: 0;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(3.1rem, 6vw, 6rem);
    font-weight: 400;
    letter-spacing: 0.025em;
    line-height: 0.92;
    text-transform: uppercase;
    text-shadow: 0 0.22rem 1.5rem rgba(0, 0, 0, 0.42);
}

.fjxx-explore-city-attractions-panel:first-child .fjxx-explore-city-attractions-story {
    display: none;
}

.fjxx-explore-city-attractions-number {
    display: flex;
    margin: 0 0 1rem;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    color: #d1a150;
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    line-height: 1.4;
    text-transform: uppercase;
}

.fjxx-explore-city-attractions-number span {
    color: rgba(255, 255, 255, 0.86);
}

.fjxx-explore-city-attractions-story h3 {
    margin: 0 0 1rem;
    font-family: 'Bebas Neue', 'Arial Narrow', Arial, sans-serif;
    font-size: clamp(2.4rem, 4.6vw, 4.8rem);
    font-weight: 400;
    letter-spacing: 0.018em;
    line-height: 0.96;
    text-transform: uppercase;
    text-wrap: balance;
}

.fjxx-explore-city-attractions-story > p:not(.fjxx-explore-city-attractions-number) {
    max-width: 40rem;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.88);
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: clamp(0.68rem, 0.85vw, 0.82rem);
    line-height: 1.72;
    text-wrap: balance;
}

.fjxx-explore-city-attractions-meta {
    display: inline-block;
    margin-top: 1.15rem;
    padding-top: 0.78rem;
    border-top: 0.06rem solid rgba(255, 255, 255, 0.4);
    color: rgba(255, 255, 255, 0.72);
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.fjxx-explore-city-attractions-stage::after {
    position: absolute;
    z-index: 2;
    right: 50%;
    bottom: clamp(1.2rem, 3.5vh, 2.3rem);
    color: rgba(255, 255, 255, 0.9);
    content: 'Scroll down\A⌄';
    font-family: 'Montserrat', Arial, sans-serif;
    font-size: 0.56rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.8;
    text-align: center;
    text-transform: uppercase;
    white-space: pre;
    opacity: calc((1 - var(--fjxx-explore-city-attractions-cover)) * var(--fjxx-explore-city-attractions-enter));
    transform: translate3d(50%, 0, 0);
    animation: fjxx-explore-city-attractions-scroll-hint 1.65s ease-in-out infinite;
    pointer-events: none;
}

.fjxx-explore-city-attractions-panel:last-child .fjxx-explore-city-attractions-stage::after {
    display: none;
}

@keyframes fjxx-explore-city-attractions-scroll-hint {
    0%,
    100% {
        translate: 0 0;
    }

    50% {
        translate: 0 0.45rem;
    }
}

@media (max-width: 48rem) {
    .fjxx-explore-city-attractions {
        height: calc(var(--fjxx-explore-city-attractions-count) * 100svh);
    }

    .fjxx-explore-city-attractions-stack {
        height: 100svh;
    }

    .fjxx-explore-city-attractions-content {
        width: 100%;
        padding: 0;
    }

    .fjxx-explore-city-attractions-title {
        font-size: clamp(3rem, 16vw, 5rem);
    }

    .fjxx-explore-city-attractions-story {
        width: min(100%, 28rem);
    }

    .fjxx-explore-city-attractions-story h3 {
        font-size: clamp(2.1rem, 10vw, 3.6rem);
    }

    .fjxx-explore-city-attractions-panel:nth-child(2) .fjxx-explore-city-attractions-media img {
        object-position: 58% center;
    }

    .fjxx-explore-city-attractions-panel:nth-child(3) .fjxx-explore-city-attractions-media img {
        object-position: 55% 64%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-explore-city-attractions-panel,
    .fjxx-explore-city-attractions-stage,
    .fjxx-explore-city-attractions-media img,
    .fjxx-explore-city-attractions-heading,
    .fjxx-explore-city-attractions-story,
    .fjxx-explore-city-attractions-stage::after {
        transition: none;
        animation: none;
        will-change: auto;
    }
}

/* Stable editorial hover: the hit area never lifts, rotates or follows the mouse.
   Only image/light/caption layers transition, once per enter/leave. */
.fjxx-creative-surface,
.fjxx-itinerary-motion-surface {
    position: relative;
    isolation: isolate;
    transform: none !important;
    rotate: none !important;
    transform-style: flat;
    will-change: auto !important;
}

.fjxx-creative-surface:focus-visible,
.fjxx-creative-surface a:focus-visible,
.fjxx-itinerary-motion-surface:focus-visible,
.fjxx-itinerary-motion-surface a:focus-visible {
    outline: 2px solid #c7913d;
    outline-offset: -3px;
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    .fjxx-creative-surface {
        --fjxx-editorial-ease: cubic-bezier(.22, 1, .36, 1);
        overflow: hidden;
        transition: box-shadow .6s ease;
    }

    .fjxx-creative-surface:is(:hover, :focus-within) {
        box-shadow: 0 .7rem 1.8rem rgba(16, 27, 27, .16);
    }

    .fjxx-creative-surface::before,
    .fjxx-creative-surface::after {
        position: absolute;
        z-index: 3;
        content: '';
        pointer-events: none;
        opacity: 0;
    }

    /* A quiet inset frame fades in; no travelling glare or bright outline. */
    .fjxx-creative-surface::before {
        inset: .8rem;
        border: 1px solid rgba(255, 255, 255, .24);
        background: none;
        box-shadow: none;
        transition: opacity .6s ease;
    }

    .fjxx-creative-surface::after {
        right: 1.2rem;
        bottom: 1.2rem;
        left: 1.2rem;
        height: 2px;
        background: #c7913d;
        transform: scaleX(0);
        transform-origin: left center;
        transition: opacity .3s ease, transform .65s var(--fjxx-editorial-ease);
    }

    .fjxx-creative-surface:is(:hover, :focus-within)::before {
        opacity: 1;
    }

    .fjxx-creative-surface:is(:hover, :focus-within)::after {
        opacity: .9;
        transform: scaleX(1);
        animation: none;
    }

    .fjxx-creative-surface img {
        transform: scale(1) !important;
        filter: saturate(.94);
        transition: transform .95s var(--fjxx-editorial-ease), filter .65s ease;
        will-change: auto;
    }

    .fjxx-creative-surface:is(:hover, :focus-within) img {
        transform: scale(1.045) !important;
        filter: saturate(1.08) contrast(1.025);
    }

    /* Seasonal Travel intentionally uses the same established Destination treatment. */

    .fjxx-spring-place-card .fjxx-spring-place-shade {
        transition: background-color .65s ease;
    }

    .fjxx-spring-place-card:is(:hover, :focus-within) .fjxx-spring-place-shade {
        background-color: rgba(4, 11, 10, .12);
    }

    .fjxx-spring-place-card.fjxx-creative-surface::after {
        left: 1.05rem;
        right: auto;
        bottom: .65rem;
        width: 2.4rem;
    }

    /* City/itinerary lists keep a different, caption-led treatment. */
    .fjxx-explore-city-flavors-name,
    .fjxx-beijing-accommodation-caption {
        transition: color .4s ease;
    }

    .fjxx-explore-city-flavors-card:is(:hover, :focus-within) .fjxx-explore-city-flavors-name,
    .fjxx-beijing-accommodation-card:is(:hover, :focus-within) .fjxx-beijing-accommodation-caption {
        color: #a8752c;
    }

    .fjxx-beijing-day-card.fjxx-creative-surface::before,
    .fjxx-beijing-day-card.fjxx-creative-surface::after,
    .fjxx-beijing-accommodation-card.fjxx-creative-surface::before,
    .fjxx-beijing-accommodation-card.fjxx-creative-surface::after {
        content: none; /* Its nested image surface already provides the accent. */
    }

    .fjxx-creative-surface :is(.fjxx-index-journey-card-link, .fjxx-spring-place-link) {
        transition: color .4s ease;
    }

    .fjxx-creative-surface:is(:hover, :focus-within) :is(.fjxx-index-journey-card-link, .fjxx-spring-place-link) {
        color: #edc888;
    }

}

/* Touch keeps the full, readable resting composition. Reduced motion does not
   trade a pointer-follow effect for a different moving layer. */
@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
    .fjxx-creative-surface,
    .fjxx-creative-surface *,
    .fjxx-creative-surface::before,
    .fjxx-creative-surface::after,
    .fjxx-itinerary-motion-surface,
    .fjxx-itinerary-motion-surface *,
    .fjxx-itinerary-motion-surface::before,
    .fjxx-itinerary-motion-surface::after {
        transition: none !important;
        animation: none !important;
        transform: none !important;
        rotate: none !important;
    }

    .fjxx-creative-surface::before,
    .fjxx-creative-surface::after {
        content: none !important;
    }
}

/* Itinerary route journal motion
   Fixed image windows, quiet route markers and caption accents; card bounds
   and column widths stay stable throughout hover. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    .fjxx-itinerary-motion-surface {
        --fjxx-itinerary-ease: cubic-bezier(0.16, 1, 0.3, 1);
        position: relative;
        isolation: isolate;
        transition: transform 0.75s var(--fjxx-itinerary-ease), box-shadow 0.75s var(--fjxx-itinerary-ease), background-color 0.75s ease;
        will-change: transform;
    }

    /* A cinematic aperture for the feature image rather than a plain zoom. */
    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface {
        border: 1px solid rgba(183, 121, 36, 0.28);
        box-shadow: 0 0 0 0 rgba(183, 121, 36, 0), 0 1.5rem 3rem rgba(25, 39, 36, 0.06);
        transition: transform 0.9s var(--fjxx-itinerary-ease), box-shadow 0.9s var(--fjxx-itinerary-ease), border-color 0.7s ease;
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface::before {
        position: absolute;
        z-index: 2;
        inset: 1.1rem;
        border: 1px solid rgba(255, 255, 255, 0.72);
        content: '';
        pointer-events: none;
        opacity: 0.45;
        transform: scale(0.96);
        transition: opacity 0.7s ease, transform 0.9s var(--fjxx-itinerary-ease), inset 0.9s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface::after {
        position: absolute;
        z-index: 2;
        right: 1.1rem;
        bottom: 1.1rem;
        width: 4.5rem;
        height: 1px;
        background: #e1ad58;
        box-shadow: -1.35rem 0 0 -0.15rem rgba(225, 173, 88, 0.7);
        content: '';
        pointer-events: none;
        transform-origin: right center;
        transform: scaleX(0.35);
        transition: transform 0.85s var(--fjxx-itinerary-ease), width 0.85s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface img {
        transform: scale(1.035);
        filter: saturate(0.94) contrast(1.02);
        transition: transform 1.15s var(--fjxx-itinerary-ease), filter 0.9s ease;
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:hover,
    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:focus-within {
        border-color: rgba(183, 121, 36, 0.72);
        box-shadow: 0 0 0 0.45rem rgba(183, 121, 36, 0.08), 0 2rem 4rem rgba(25, 39, 36, 0.17);
        transform: none;
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:hover::before,
    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:focus-within::before {
        inset: 0.65rem;
        opacity: 0.95;
        transform: scale(1);
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:hover::after,
    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:focus-within::after {
        width: 6rem;
        transform: scaleX(1);
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:hover img,
    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:focus-within img {
        filter: saturate(1.12) contrast(1.07);
    }

    /* Gallery cards reveal a map-like route line and a framed image window. */
    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface {
        box-shadow: 0 0 0 0 rgba(183, 121, 36, 0), 0 1rem 2.4rem rgba(22, 39, 34, 0.08);
        transition: transform 0.7s var(--fjxx-itinerary-ease), box-shadow 0.7s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface::before {
        position: absolute;
        z-index: 2;
        inset: 0.75rem;
        border: 1px solid rgba(255, 255, 255, 0.75);
        content: '';
        pointer-events: none;
        opacity: 0.3;
        transform: scale(0.94);
        transition: opacity 0.6s ease, transform 0.8s var(--fjxx-itinerary-ease), inset 0.8s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface::after {
        position: absolute;
        z-index: 2;
        top: 1.25rem;
        left: 1.25rem;
        width: 2.5rem;
        height: 2.5rem;
        border-top: 1px solid rgba(230, 183, 101, 0.95);
        border-left: 1px solid rgba(230, 183, 101, 0.95);
        border-radius: 50% 0 0 0;
        content: '';
        pointer-events: none;
        opacity: 0.85;
        transform: rotate(-18deg) scale(0.55);
        transform-origin: left top;
        transition: transform 0.8s var(--fjxx-itinerary-ease), opacity 0.5s ease;
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface img {
        transform: scale(1.06);
        filter: saturate(0.9);
        transition: transform 1.15s var(--fjxx-itinerary-ease), filter 0.8s ease;
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface h3 {
        transform: translateY(0.25rem);
        letter-spacing: 0.02em;
        transition: transform 0.7s var(--fjxx-itinerary-ease), letter-spacing 0.7s ease;
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:hover,
    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:focus-within {
        z-index: 2;
        box-shadow: 0 0 0 0.35rem rgba(183, 121, 36, 0.08), 0 1.5rem 3rem rgba(22, 39, 34, 0.24);
        transform: none;
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:hover::before,
    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:focus-within::before {
        inset: 0.45rem;
        opacity: 0.95;
        transform: scale(1);
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:hover::after,
    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:focus-within::after {
        opacity: 1;
        transform: rotate(-18deg) scale(1);
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:hover img,
    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:focus-within img {
        filter: saturate(1.18) contrast(1.06);
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:hover h3,
    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:focus-within h3 {
        transform: translateY(-0.2rem);
        letter-spacing: 0.08em;
    }

    /* Offer cards behave like a page corner being pulled open. */
    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface {
        box-shadow: 0 0 0 0 rgba(183, 121, 36, 0), 0 1rem 2.4rem rgba(15, 27, 32, 0.1);
        transition: transform 0.85s var(--fjxx-itinerary-ease), box-shadow 0.85s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface::before {
        position: absolute;
        z-index: 2;
        inset: 1rem;
        border: 1px solid rgba(255, 255, 255, 0.65);
        clip-path: polygon(0 0, 34% 0, 34% 1px, 100% 1px, 100% 100%, 0 100%);
        content: '';
        pointer-events: none;
        opacity: 0.35;
        transition: opacity 0.55s ease, inset 0.8s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface::after {
        position: absolute;
        z-index: 1;
        right: 1.1rem;
        bottom: 1.1rem;
        width: 0.55rem;
        height: 0.55rem;
        border: 1px solid #d3a24e;
        border-radius: 50%;
        box-shadow: 0 0 0 0.3rem rgba(211, 162, 78, 0.08);
        content: '';
        pointer-events: none;
        opacity: 0;
        transform: scale(0.4) translateY(0.5rem);
        transition: opacity 0.45s ease, transform 0.75s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface > img {
        transform: scale(1.045);
        filter: saturate(0.94);
        transition: transform 1.2s var(--fjxx-itinerary-ease), filter 0.9s ease;
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface .fjxx-itinerary-offer-place {
        transform: translate3d(0, 0.25rem, 0);
        transition: transform 0.75s var(--fjxx-itinerary-ease), letter-spacing 0.65s ease;
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface .fjxx-itinerary-offer-ribbon {
        transition: transform 0.85s var(--fjxx-itinerary-ease), box-shadow 0.7s ease;
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface .fjxx-itinerary-offer-content {
        transform: translateY(0.35rem);
        transition: transform 0.8s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:hover,
    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:focus-within {
        z-index: 2;
        box-shadow: 0 0 0 0.35rem rgba(183, 121, 36, 0.1), 0 1.8rem 3.4rem rgba(15, 27, 32, 0.28);
        transform: none;
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:hover::before,
    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:focus-within::before {
        inset: 0.55rem;
        opacity: 0.9;
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:hover::after,
    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:focus-within::after {
        opacity: 1;
        transform: scale(1) translateY(0);
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:hover > img,
    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:focus-within > img {
        filter: saturate(1.2) contrast(1.08);
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:hover .fjxx-itinerary-offer-place,
    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:focus-within .fjxx-itinerary-offer-place {
        transform: translate3d(0.25rem, -0.1rem, 0);
        letter-spacing: 0.08em;
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:hover .fjxx-itinerary-offer-ribbon,
    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:focus-within .fjxx-itinerary-offer-ribbon {
        box-shadow: 0 0.55rem 1rem rgba(110, 16, 16, 0.32);
        transform: rotate(45deg) translateY(0.35rem);
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:hover .fjxx-itinerary-offer-content,
    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:focus-within .fjxx-itinerary-offer-content {
        transform: translateY(-0.35rem);
    }

    /* Route cards highlight their existing window without reflowing the text. */
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface {
        grid-template-columns: var(--fjxx-itinerary-route-motion-columns, minmax(8.5rem, 32.5%) minmax(0, 1fr));
        box-shadow: 0 0 0 0 rgba(183, 121, 36, 0), 0 0.8rem 1.8rem rgba(28, 37, 32, 0.04);
        transition: box-shadow 0.8s var(--fjxx-itinerary-ease), border-color 0.7s ease;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface::before {
        position: absolute;
        z-index: 2;
        top: 0.9rem;
        bottom: 0.9rem;
        left: 32.5%;
        width: 1px;
        background: linear-gradient(180deg, transparent, rgba(183, 121, 36, 0.62) 20%, rgba(183, 121, 36, 0.62) 80%, transparent);
        content: '';
        pointer-events: none;
        transform-origin: center;
        transition: left 0.95s var(--fjxx-itinerary-ease), opacity 0.5s ease;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface::after {
        position: absolute;
        z-index: 3;
        top: 1.5rem;
        left: calc(32.5% - 0.22rem);
        width: 0.45rem;
        height: 0.45rem;
        border: 1px solid #b77924;
        border-radius: 50%;
        background: #fff;
        box-shadow: 0 0 0 0.25rem rgba(183, 121, 36, 0.12);
        content: '';
        pointer-events: none;
        transition: left 0.95s var(--fjxx-itinerary-ease), top 0.85s var(--fjxx-itinerary-ease), box-shadow 0.7s ease;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface .fjxx-itinerary-route-media,
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface .fjxx-itinerary-route-content {
        position: relative;
        z-index: 1;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface .fjxx-itinerary-route-media img {
        transform: scale(1.045);
        filter: saturate(0.94);
        transition: transform 1.15s var(--fjxx-itinerary-ease), filter 0.8s ease;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface .fjxx-itinerary-route-content {
        transform: translateX(0);
        transition: transform 0.85s var(--fjxx-itinerary-ease), padding 0.85s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface .fjxx-itinerary-route-meta {
        position: relative;
        transition: color 0.5s ease, letter-spacing 0.7s ease;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface .fjxx-itinerary-route-meta::after {
        position: absolute;
        right: 0;
        bottom: -0.3rem;
        left: 0;
        height: 1px;
        background: #b77924;
        content: '';
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform 0.7s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:hover,
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:focus-within {
        grid-template-columns: var(--fjxx-itinerary-route-motion-columns, minmax(8.5rem, 32.5%) minmax(0, 1fr));
        z-index: 2;
        border-color: #b77924;
        box-shadow: 0 0 0 0.35rem rgba(183, 121, 36, 0.08), 0 1.5rem 2.8rem rgba(28, 37, 32, 0.16);
        transform: none;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:hover::before,
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:focus-within::before {
        left: 32.5%;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:hover::after,
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:focus-within::after {
        top: 1rem;
        left: calc(32.5% - 0.22rem);
        box-shadow: 0 0 0 0.42rem rgba(183, 121, 36, 0.16);
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:hover .fjxx-itinerary-route-media img,
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:focus-within .fjxx-itinerary-route-media img {
        filter: saturate(1.14) contrast(1.05);
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:hover .fjxx-itinerary-route-content,
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:focus-within .fjxx-itinerary-route-content {
        transform: translateX(0.3rem);
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:hover .fjxx-itinerary-route-meta::after,
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:focus-within .fjxx-itinerary-route-meta::after {
        transform: scaleX(1);
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:hover .fjxx-itinerary-route-meta,
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:focus-within .fjxx-itinerary-route-meta {
        color: #8d5b16;
        letter-spacing: 0.08em;
    }

    /* Service icons use a small orbit and a signature line, not a card lift. */
    .fjxx-itinerary-service-item.fjxx-itinerary-motion-surface::after {
        position: absolute;
        right: 22%;
        bottom: 0.2rem;
        left: 22%;
        height: 1px;
        background: #bd8738;
        content: '';
        transform: scaleX(0);
        transform-origin: center;
        transition: transform 0.75s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-service-item.fjxx-itinerary-motion-surface img {
        transform: translateY(0) rotate(0deg);
        filter: saturate(0.94);
        transition: transform 0.8s var(--fjxx-itinerary-ease), filter 0.65s ease;
    }

    .fjxx-itinerary-service-item.fjxx-itinerary-motion-surface h3 {
        transition: color 0.55s ease, transform 0.7s var(--fjxx-itinerary-ease);
    }

    .fjxx-itinerary-service-item.fjxx-itinerary-motion-surface:hover img,
    .fjxx-itinerary-service-item.fjxx-itinerary-motion-surface:focus-within img {
        filter: saturate(1.16) drop-shadow(0 0.55rem 0.7rem rgba(189, 135, 56, 0.18));
        transform: translateY(-0.25rem);
    }

    .fjxx-itinerary-service-item.fjxx-itinerary-motion-surface:hover h3,
    .fjxx-itinerary-service-item.fjxx-itinerary-motion-surface:focus-within h3 {
        color: #9a681e;
        transform: translateY(-0.12rem);
    }

    .fjxx-itinerary-service-item.fjxx-itinerary-motion-surface:hover::after,
    .fjxx-itinerary-service-item.fjxx-itinerary-motion-surface:focus-within::after {
        transform: scaleX(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .fjxx-itinerary-motion-surface,
    .fjxx-itinerary-motion-surface *,
    .fjxx-itinerary-motion-surface::before,
    .fjxx-itinerary-motion-surface::after {
        transition: none !important;
        animation: none !important;
    }
}


/* Itinerary typography refinements */
.fjxx-itinerary-services-title {
    /* Match the 4rem section-heading scale used by the reference Why Travel block. */
    font-size: 4rem;
    line-height: 1.12;
}

.fjxx-itinerary-offer-content p {
    /* Keep all three offer cards aligned while allowing the copy to wrap naturally. */
    display: -webkit-box;
    /* height: 4.56em; */
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.fjxx-itinerary-wilderness-card h3 {
    /* The three image captions should read as compact labels, not large headlines. */
    font-size: 0.62rem;
    font-weight: 500;
    line-height: 1.3;
}

@media (max-width: 60rem) {
    .fjxx-itinerary-services-title {
        font-size: var(--fjxx-type-section-title-mobile);
    }
}

@media (max-width: 48rem) {
    .fjxx-itinerary-offer-content p {
        height: 4.56em;
    }
}


/* Keep the itinerary section labels compact and single-line, like the reference scale. */
.fjxx-itinerary-services-title {
    font-size: clamp(1.1rem, 3vw, 2.8rem);
    white-space: nowrap;
}

.fjxx-itinerary-wilderness-title {
    font-size: clamp(1.5rem, 3.2vw, 3rem);
    white-space: nowrap;
}


/* Final compact scale requested for the itinerary labels. */
.fjxx-itinerary-services-title {
    font-size: clamp(0.9rem, 2.1vw, 2rem);
}

.fjxx-itinerary-wilderness-title {
    font-size: clamp(1rem, 2.2vw, 2.1rem);
}

.fjxx-itinerary-service-item h3 {
    font-size: 0.5rem;
    line-height: 1.2;
    white-space: nowrap;
}

.fjxx-itinerary-wilderness-card h3 {
    font-size: 0.46rem;
    line-height: 1.2;
    white-space: nowrap;
}


/* Motion frame refinement: keep editorial outlines quiet until interaction. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    /* Itinerary hero: a whisper of the frame at rest, then a clear reveal on hover. */
    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface {
        border-color: rgba(183, 121, 36, 0.1);
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface::before {
        border-color: rgba(255, 255, 255, 0.5);
        opacity: 0;
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface::after {
        opacity: 0.08;
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:hover,
    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:focus-within {
        border-color: rgba(183, 121, 36, 0.48);
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:hover::before,
    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:focus-within::before {
        opacity: 0.72;
    }

    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:hover::after,
    .fjxx-itinerary-wilderness-hero-media.fjxx-itinerary-motion-surface:focus-within::after {
        opacity: 0.72;
    }

    /* Wilderness image cards: hide the rectangular outline until the card is selected. */
    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface::before {
        border-color: rgba(255, 255, 255, 0.55);
        opacity: 0;
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface::after {
        border-top-color: rgba(230, 183, 101, 0.46);
        border-left-color: rgba(230, 183, 101, 0.46);
        opacity: 0.12;
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:hover::before,
    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:focus-within::before {
        opacity: 0.78;
    }

    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:hover::after,
    .fjxx-itinerary-wilderness-card.fjxx-itinerary-motion-surface:focus-within::after {
        opacity: 0.72;
    }

    /* Offer cards: keep the page-corner line as a hover-only accent. */
    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface::before {
        border-color: rgba(255, 255, 255, 0.5);
        opacity: 0;
    }

    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:hover::before,
    .fjxx-itinerary-offer-card.fjxx-itinerary-motion-surface:focus-within::before {
        opacity: 0.72;
    }

    /* Route map divider and node: subtle at rest, readable once the route is engaged. */
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface::before {
        opacity: 0.18;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface::after {
        opacity: 0.32;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:hover::before,
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:focus-within::before {
        opacity: 0.78;
    }

    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:hover::after,
    .fjxx-itinerary-route-card.fjxx-itinerary-motion-surface:focus-within::after {
        opacity: 0.9;
    }
}
