/* Shared readability scale. Scoped to public content and travel flows, not admin.
   Important declarations override legacy component/mobile type overrides only. */
:root {
    --type-body: 1rem;
    --type-small: .875rem;
    --type-caption: .8125rem;
    --type-muted: #52677d;
}

/* Public editorial content: preserve component colours and layout. */
:is(.b2c-home-landing, .homepage-phase2, .home-blog-index, .home-blog-detail,
    .static-info-page, .information-page) p {
    font-size: var(--type-body) !important;
    line-height: 1.65 !important;
}
.homepage-v2.b2c-home-landing {
    --b2c-home-heading-size: clamp(1.5rem, 2.3vw, 2rem);
}
:is(.homepage-phase2, .b2c-home-landing) h3 {
    font-size: 1.125rem !important;
    line-height: 1.4 !important;
}
:is(.static-info-page, .information-page, .home-blog-index, .home-blog-detail) h1 {
    font-size: clamp(1.75rem, 3.1vw, 2.75rem) !important;
    line-height: 1.18 !important;
    letter-spacing: -.025em !important;
    overflow-wrap: break-word;
}
:is(.static-info-page, .information-page) h2 {
    font-size: clamp(1.5rem, 2.2vw, 2rem) !important;
    line-height: 1.3 !important;
}
:is(.static-info-page, .information-page) h3 {
    font-size: 1.125rem !important;
    line-height: 1.4 !important;
}
.static-info-page .static-contact-card h2 {
    font-size: 1.125rem !important;
    overflow-wrap: anywhere;
}
:is(.home-partner-copy, .information-check-list) li,
:is(.b2c-member-benefits-highlights, .b2c-housing-features) span {
    font-size: var(--type-small) !important;
    line-height: 1.6 !important;
}
:is(.b2c-why-travel-grid, .b2c-member-benefits-copy, .b2c-housing-copy,
    .home-partner-copy, .home-section-heading, #booking-confidence,
    #why-us, .home-blog-list-copy, .static-contact-card) p {
    color: var(--type-muted) !important;
}
:is(.home-partner-copy > a, .b2c-member-benefits-action, .b2c-housing-action,
    .b2c-salute-card a, .static-contact-card a, .static-info-cta a,
    .information-primary-link, .information-secondary-link, .information-help-band a,
    .information-inline-cta) {
    min-height: 44px;
    height: auto;
    font-size: .9375rem !important;
    line-height: 1.4 !important;
    white-space: normal;
    text-align: center;
}
:is(.static-info-breadcrumb, .information-breadcrumb, .home-blog-breadcrumb) {
    font-size: var(--type-small) !important;
    line-height: 1.5 !important;
    flex-wrap: wrap;
    overflow-wrap: anywhere;
}
:is(.information-accordion summary, .information-policy-nav a,
    .information-category-nav a) {
    font-size: .9375rem !important;
    line-height: 1.5 !important;
}
.information-page :is(.information-kicker, .information-document-links small) {
    font-size: var(--type-caption) !important;
}
.information-page .information-document-links strong {
    font-size: var(--type-small) !important;
}

/* Blog cards must grow with their text, not clip larger headings. */
.home-blog-index .home-blog-list-copy h2,
.homepage-v2 .home-footer-blog-copy h3 {
    display: block;
    font-size: 1.125rem !important;
    line-height: 1.4 !important;
    -webkit-line-clamp: unset;
    max-height: none;
}
.home-blog-index .home-blog-list-copy :is(a, p),
.home-footer-blog-card :is(p, a) {
    font-size: var(--type-small) !important;
    line-height: 1.6 !important;
}
.home-blog-index .home-blog-list-copy h2 a,
.home-footer-blog-card h3 a { font-size: inherit !important; }
.home-blog-index .home-blog-list-meta,
.homepage-v2 .home-footer-blog-meta { flex-wrap: wrap; }
.home-blog-index .home-blog-list-meta :is(span, time),
.homepage-v2 .home-footer-blog-meta :is(span, time) {
    font-size: .75rem !important;
    color: var(--type-muted);
}
.home-blog-detail .home-blog-body {
    font-size: 1.0625rem !important;
    line-height: 1.75 !important;
}
.home-blog-detail .home-blog-body p { font-size: inherit !important; line-height: inherit !important; }

/* Header/footer: keep icons independent of the text scale. */
.site-header .utility-links > :is(a, span) {
    font-size: var(--type-small) !important;
    line-height: 1.5 !important;
}
.site-header .utility-bar .container { gap: 12px; }
.site-header .utility-links { flex-wrap: wrap; }
.site-footer :is(.footer-link-list a, .footer-contact-copy, .footer-intro) {
    font-size: var(--type-small) !important;
    line-height: 1.6 !important;
}
.site-footer .footer-column h2 { font-size: .875rem !important; line-height: 1.4 !important; }
.site-footer .footer-contact-copy { overflow-wrap: anywhere; }

/* Search filters, fare conditions and dates are meaningful information. */
.hotel-listing-page :is(.hotel-filter-section span, .hotel-filter-section input[type="text"],
    .hotel-filter-chip, .hotel-sort-chip, .hotel-filter-clear, .hotel-quick-filters button,
    .hotel-card-heading p, .hotel-view-rooms-button) {
    font-size: var(--type-small) !important;
    line-height: 1.5 !important;
}
.hotel-listing-page .hotel-filter-section h3 { font-size: .9375rem !important; }
.hotel-listing-page :is(.hotel-card-price p, .hotel-card-price > small,
    .hotel-price-copy > small, .hotel-price-copy .b2b-hotel-net-label,
    .hotel-price-copy .hotel-offer-label) {
    font-size: .8125rem !important;
    line-height: 1.5 !important;
}
.hotel-listing-page :is(.hotel-sort-table, .hotel-quick-filters) { flex-wrap: wrap; }
.hotel-listing-page .hotel-filter-section span { overflow-wrap: anywhere; }
.flight-time-block small,
.flight-time-block .flight-airport-label em {
    font-size: .8125rem !important;
    line-height: 1.4 !important;
}
.flight-time-block .flight-airport-label { flex-wrap: wrap; }
.flight-result-meta :is(span, button, a) {
    font-size: .8125rem !important;
    line-height: 1.5 !important;
}
.flight-result-meta { flex-wrap: wrap; }
.flight-checkout-page .checkout-progress > span > strong {
    font-size: .8125rem !important;
    line-height: 1.4 !important;
}
.flight-checkout-page .checkout-progress > span { min-width: 0; }

@media (max-width: 575.98px) {
    :is(.homepage-phase2, .b2c-home-landing) h3 { font-size: 1rem !important; }
    .home-blog-index .home-blog-list-copy h2,
    .home-footer-blog-card h3 { font-size: 1.0625rem !important; }
    .home-blog-index .home-blog-index-hero { padding: 24px 20px; }
    .hotel-listing-page .hotel-filter-section input[type="text"] { font-size: 1rem !important; }
    .hotel-listing-page .hotel-sort-chip { white-space: normal; }
    .hotel-listing-page .hotel-price-copy { row-gap: 4px; }
    .flight-checkout-page .checkout-progress > span > strong { font-size: .75rem !important; }
}
