/* Inner-page type scale. The home page remains the visual reference and is not modified.
   Headings: Bebas Neue; reading text: Montserrat. Loaded after page-specific CSS. */
.fjxx-inner-page {
    --fjxx-type-hero: clamp(2.8rem, 4.2vw, 4rem);
    --fjxx-type-section-title: clamp(2.5rem, 4.4vw, 4rem);
    --fjxx-type-subtitle: clamp(1.65rem, 2.35vw, 2.1rem);
    --fjxx-type-body: 0.95rem;
    --fjxx-type-detail: 0.85rem;
    --fjxx-type-kicker: 0.75rem;
    --fjxx-type-caption: 0.75rem;
    --fjxx-section-space: clamp(4rem, 7vw, 7rem);
}

/* Hero titles match the homepage's desktop display size. Long titles wrap naturally. */
.fjxx-inner-page .fjxx-destination-hero-title,
.fjxx-inner-page .fjxx-explore-city-hero-title,
.fjxx-inner-page .fjxx-beijing-detail-hero-content h1,
.fjxx-inner-page .fjxx-plan-hero h1,
.fjxx-inner-page .fjxx-travel-hero .fjxx-destination-hero-title {
    font-size: var(--fjxx-type-hero);
    line-height: 1.04;
    text-wrap: balance;
}

/* The homepage uses roughly 64px major headings; keep minor headings a level down. */
.fjxx-inner-page :is(
    .fjxx-destination-season-guide-title, .fjxx-destination-season-faces-title,
    .fjxx-destination-recommended-routes-title, .fjxx-spring-intro-title,
    .fjxx-spring-section-title, .fjxx-itinerary-wilderness-title,
    .fjxx-itinerary-offers-title, .fjxx-itinerary-routes-title,
    .fjxx-itinerary-services-title, .fjxx-about-story-title,
    .fjxx-about-team-title, .fjxx-explore-city-heritage-title,
    .fjxx-explore-city-attractions-title, .fjxx-explore-city-flavors-title,
    .fjxx-explore-city-stay-title, .fjxx-explore-city-accommodation-title,
    .fjxx-explore-city-getting-around-title, .fjxx-beijing-inspiration-inner > h2,
    .fjxx-beijing-highlights-heading > h2, .fjxx-beijing-rhythm-heading > h2,
    .fjxx-beijing-accommodation-title, .fjxx-beijing-pricing-title,
    .fjxx-beijing-notes-title, .fjxx-plan-section-heading > h2
) {
    font-size: var(--fjxx-type-section-title);
    line-height: 1.08;
    text-wrap: balance;
}

.fjxx-inner-page :is(
    .fjxx-about-story-copy h3, .fjxx-about-feature-copy h2,
    .fjxx-explore-city-stay-group h3,
    .fjxx-explore-city-attractions-story h3,
    .fjxx-beijing-pricing-row h3, .fjxx-plan-contact-block h2
) {
    font-size: var(--fjxx-type-subtitle);
    line-height: 1.18;
    text-wrap: balance;
}

/* In the two portrait-led city stories the heading is part of the image
   composition, not another full-width section title. */
.fjxx-inner-page .fjxx-explore-city-story-title {
    font-size: clamp(1.45rem, 2.35vw, 2rem);
    line-height: 1.45;
}
.fjxx-inner-page .fjxx-explore-city-story-title-secondary {
    font-size: clamp(0.95rem, 1.1vw, 1.08rem);
    line-height: 1.4;
}

/* Restore the homepage's readable body size, including text nested in cards.
   Avoid blanket p/h3 rules: image overlays and utility labels have their own hierarchy. */
.fjxx-inner-page :is(
    .fjxx-destination-season-guide-details, .fjxx-destination-season-faces-description,
    .fjxx-spring-intro-body, .fjxx-spring-glance-item p,
    .fjxx-itinerary-wilderness-copy p, .fjxx-itinerary-offer-content p,
    .fjxx-itinerary-route-content p, .fjxx-itinerary-service-item p,
    .fjxx-about-story-lead, .fjxx-about-story-summary,
    .fjxx-about-story-copy p, .fjxx-about-feature-copy p,
    .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,
    .fjxx-explore-city-attractions-story > p:not(.fjxx-explore-city-attractions-number),
    .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-faq-answer, .fjxx-plan-hero-description,
    .fjxx-plan-section-heading > p:last-child
) {
    font-size: var(--fjxx-type-body);
    line-height: 1.7;
}

.fjxx-inner-page :is(
    .fjxx-destination-recommended-route-detail, .fjxx-destination-recommended-route-link,
    .fjxx-spring-place-meta, .fjxx-spring-place-link,
    .fjxx-itinerary-offer-content a, .fjxx-itinerary-route-content a,
    .fjxx-about-story-link, .fjxx-about-feature-copy a,
    .fjxx-plan-journey-card-route, .fjxx-plan-journey-card-body > span,
    .fjxx-plan-contact-block p, .fjxx-plan-form-note, .fjxx-plan-form-status
) { font-size: var(--fjxx-type-detail); line-height: 1.6; }

.fjxx-inner-page :is(
    .fjxx-destination-recommended-route-name, .fjxx-spring-place-title,
    .fjxx-itinerary-offer-content h3, .fjxx-itinerary-route-content h3,
    .fjxx-itinerary-service-item h3, .fjxx-beijing-highlight-card h3,
    .fjxx-beijing-day-copy h3, .fjxx-plan-journey-card h3
) { font-size: clamp(1.35rem, 2.15vw, 2.1rem); line-height: 1.18; text-wrap: balance; }

.fjxx-inner-page :is(
    .fjxx-itinerary-service-item h3, 
) { font-size: clamp(1.05rem, 2.15vw, 1.05rem) !important; line-height: 1.18; text-wrap: balance; }
.fjxx-inner-page :is(
    .fjxx-itinerary-wilderness-card h3, 
) { font-size: clamp(1.05rem, 2.15vw, 1.05rem) !important; line-height: 2.18 !important; text-wrap: balance; }

.fjxx-inner-page :is(
    .fjxx-plan-journey-card-body h3, 
) { font-size: clamp(1.05rem, 2.15vw, 1.5rem) !important; line-height: 1.18 ; text-wrap: balance; }

/* FAQs are reading content, not micro-labels. Keep question/answer intervals deliberate. */
.fjxx-inner-page .fjxx-faq-list-inner { padding-block: var(--fjxx-section-space); }
.fjxx-inner-page .fjxx-faq-item { margin-bottom: 0.8rem; }
.fjxx-inner-page .fjxx-faq-question {
    min-height: 4rem;
    padding: 1rem 1.25rem;
    gap: 1rem;
    font-size: 1.05rem;
    line-height: 1.5;
}
.fjxx-inner-page .fjxx-faq-answer { margin-top: 1rem; margin-bottom: 1.75rem; }
.fjxx-inner-page .fjxx-faq-answer p + p { margin-top: 0.9rem; }

/* Forms and editorial pages stay at the same readable scale as normal sections. */
.fjxx-inner-page .fjxx-plan-inspiration { padding-block: var(--fjxx-section-space); }
.fjxx-inner-page .fjxx-plan-form-section { padding-bottom: var(--fjxx-section-space); }
.fjxx-inner-page .fjxx-plan-field label,
.fjxx-inner-page .fjxx-plan-multi summary { font-size: var(--fjxx-type-detail); }
.fjxx-inner-page .fjxx-plan-field :is(input, select, textarea),
.fjxx-inner-page .fjxx-plan-multi summary { font-size: var(--fjxx-type-body); }
.fjxx-inner-page .fjxx-info-article { font-size: var(--fjxx-type-body); line-height: 1.8; }
.fjxx-inner-page .fjxx-info-article h2 { font-size: var(--fjxx-type-subtitle); line-height: 1.2; }
.fjxx-inner-page .fjxx-travel-content { padding-block: var(--fjxx-section-space); }
.fjxx-inner-page .fjxx-travel-article { font-size: var(--fjxx-type-body); line-height: 1.8; }
.fjxx-inner-page .fjxx-travel-section > h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); line-height: 1.2; }
.fjxx-inner-page .fjxx-travel-section :is(.fjxx-travel-destination-grid p,
    .fjxx-travel-days-grid p, .fjxx-travel-food-grid p,
    .fjxx-travel-route p) { font-size: var(--fjxx-type-body); line-height: 1.7; }
.fjxx-inner-page .fjxx-travel-toc :is(a, p),
.fjxx-inner-page .fjxx-travel-toc-mobile nav a,
.fjxx-inner-page .fjxx-travel-sources { font-size: var(--fjxx-type-detail); }

@media (max-width: 48rem) {
    .fjxx-inner-page {
        --fjxx-type-hero: clamp(2.05rem, 9vw, 2.25rem);
        --fjxx-type-section-title: clamp(1.9rem, 8.2vw, 2.15rem);
        --fjxx-type-subtitle: clamp(1.4rem, 6vw, 1.7rem);
        --fjxx-type-body: 0.9375rem;
        --fjxx-type-detail: 0.8125rem;
        --fjxx-section-space: 3.5rem;
    }
    .fjxx-inner-page .fjxx-faq-list-inner { width: calc(100% - 2rem); }
    .fjxx-inner-page .fjxx-faq-question { min-height: 3.5rem; padding: 0.9rem; font-size: 0.9375rem; }
    .fjxx-inner-page .fjxx-travel-section > h2 { font-size: var(--fjxx-type-subtitle); }
    .fjxx-inner-page .fjxx-plan-section-heading > p:last-child { margin-top: 1rem; }
    .fjxx-inner-page .fjxx-plan-field :is(input, select, textarea) { min-height: 3rem; }
}
/* Compact content that had hard-coded 11px declarations in the source sheets. */
.fjxx-inner-page .fjxx-beijing-highlights-heading > p,
.fjxx-inner-page .fjxx-beijing-notes-list p,
.fjxx-inner-page .fjxx-travel-glance p {
    font-size: var(--fjxx-type-body);
    line-height: 1.7;
}
.fjxx-inner-page .fjxx-itinerary-wilderness-card h3 {
    font-size: clamp(1.35rem, 2.15vw, 2.1rem);
    line-height: 1.18;
    text-wrap: balance;
}
/* Let the single-column offer cards shrink with narrow screens (320px devices).
   Their previous intrinsic grid minimum clipped titles inside overflow:hidden. */
.fjxx-inner-page .fjxx-itinerary-offer-card { min-width: 0; }
@media (max-width: 48rem) {
    .fjxx-inner-page .fjxx-itinerary-offer-card { aspect-ratio: auto; min-height: 29rem; }
}
