/* Typography, approved in the 4 October desktop and mobile comparisons.
   Reading: 16px; useful supporting detail: 14px; minor labels: 12–13px.
   Loaded after page styles. Mobile rules follow the desktop rules below. */
@media screen and (min-width:801px){
  html:root {
    --td-type-body:16px;
    --td-type-detail:14px;
    --td-type-meta:13px;
  }
  html:root :is(.button,.search-field .button,.search-field input){font-size:16px!important}

  /* Country purchase area: details participate in the buying decision. */
  html:root .buying-title>p{font-size:17px;line-height:1.5}
  html:root .buying-tools h2{font-size:16px}
  html:root :is(.buying-data-help,.buying-validity,.buying-stepper label,.buying-duration-error,.buying-unlimited-status,.buying-more>summary,.buying-details>summary,.buying-total>div>span,.buying-travellers,.buying-phone-check,.buying-connect-by,.buying-reassurance p>span,.buying-quantity>div>span,.buying-saved-choice,.buying-error,.buying-advisory){font-size:var(--td-type-detail);line-height:1.5}
  html:root .buying-facts dl>div{font-size:var(--td-type-detail)}
  html:root :is(.buying-facts-heading>strong,.buying-reassurance strong,.buying-quantity strong){font-size:15px}
  html:root :is(.buying-facts-heading>span,.buying-runway-info){font-size:var(--td-type-meta)}
  html:root .buying-facts-heading{flex-wrap:wrap;gap:4px 12px}
  html:root .buying-facts{padding:20px 20px 8px}
  html:root .buying-stepper input{font-size:16px}
  html:root .buying-stepper button{height:34px;min-width:30px}
  html:root .buying-quantity-stepper>span{font-size:16px!important}
  html:root :is(.buying-option,.buying-unlimited){min-height:132px;gap:8px}
  html:root .buying-more .buying-option{min-height:132px}
  html:root .buying-sticky-summary strong{font-size:16px}
  html:root .buying-sticky-summary>span>span{font-size:14px}

  /* Supporting journey and setup content below the plans. */
  html:root :is(.buying-section-heading>p,.moment-copy p,.buying-steps p,.buying-group-copy>p,.buying-questions>div>p,.buying-faq-list p){font-size:var(--td-type-body);line-height:1.6}
  html:root :is(.buying-section-heading .eyebrow,.buying-group .eyebrow,.buying-questions .eyebrow){font-size:12px}
  html:root :is(.buying-steps button,.buying-questions .text-link,.buying-network-note){font-size:var(--td-type-detail);line-height:1.5}
  html:root .buying-faq-list summary{font-size:17px}
  html:root .buying-group-heading{flex-wrap:wrap}
  html:root .buying-group-heading strong{font-size:16px}
  html:root :is(.buying-group-heading>div>span,.buying-draft-line>div>span){font-size:var(--td-type-detail)}
  html:root .buying-draft-label{font-size:12px}
  html:root :is(.buying-draft-line strong,.buying-draft-total>span){font-size:16px}

  /* Homepage shopping cues and promises. */
  html:root .home-hero .popular-shortcuts{font-size:14px;line-height:1.5;gap:8px 14px}
  html:root .home-hero .popular-shortcuts a>span:not(.name):not(.name-short){font-size:13px}
  html:root .home-hero>.hero-assurances{font-size:14px;line-height:1.5}
  html:root .home-hero>.hero-assurances .icon{width:18px;height:18px}
  html:root body[data-destination-card-view="flags"][data-card-price="right"] :is(.home-destinations,.catalogue-page) .destination-price{font-size:14px;line-height:1.3}
  html:root :is(.solo-steps p,.group-copy .group-invitation,.promise-strip p){font-size:16px;line-height:1.6}
  html:root .solo-copy>.eyebrow{font-size:12px}
  html:root :is(.homepage-phone-check,.homepage-setup-actions .text-link,.promise-strip>.text-link){font-size:15px}
  html:root :is(.ready-card-top>span,.ready-place>div>span,.ready-badge,.example-heading .eyebrow){font-size:12px}
  html:root .ready-place{flex-wrap:wrap}
  html:root .ready-place>div>span{letter-spacing:.045em}
  html:root .ready-message p{font-size:15px;line-height:1.5}
  html:root :is(.ready-footer,.solo-caption){font-size:14px;line-height:1.5}
  html:root .ready-footer{align-items:flex-start;text-align:center}
  html:root .example-person strong{font-size:16px}
  html:root :is(.example-person>div>span,.example-data small,.example-total>span,.example-adjust){font-size:14px;line-height:1.4}
  html:root .example-heading .eyebrow{line-height:1.4}

  /* Secondary navigation and footer. */
  html:root .breadcrumbs{font-size:14px}
  html:root .site-footer :is(a,button){font-size:14px}
  html:root .footer-bottom{font-size:13px}
}

@media screen and (min-width:801px) {
  /* Browse, help, setup, legal and the shared dialogs. */
  html:root :is(.catalogue-search input,.guide-grid p,.guide-tip p,.guide-check p,
    .help-contact p,.faq-list details p,.modal-body>p,.modal-body ul,.modal-body ol,
    .device-checks p,.device-checks+p,.data-help-row p,.checkout-form p,
    .multi-country-prompt p,.regional-nudge p,.trip-help>p,.artwork-note p) {
    font-size:var(--td-type-body); line-height:1.6;
  }
  html:root :is(.filter-tabs button,.results-count,.search-results small,.help-tiles p,
    .guide-grid p.arrival-setup-note,.notice,.coverage-list,.person-options small,
    .invite-preview-plan>div>span,.preview-success,.trip-primary>.section-heading>span,
    .traveller-card p,.trip-primary>.text-link,.trip-help .text-link,
    .wallpaper-caption p,.legal-version,.legal-further p,.device-tabs button,
    .section-heading>.text-link,.footer-main h3,.footer-signature) {
    font-size:var(--td-type-detail); line-height:1.5;
  }
  html:root .quiet-note {font-size:var(--td-type-meta)!important;line-height:1.5}
  html:root .trip-line-state {font-size:var(--td-type-meta)}
  html:root .help-tiles p {max-width:none}

  /* Checkout: recipients, terms and compatibility must be easy to read. */
  html:root :is(.review-section-heading>span,.review-account,.review-account .text-link,
    .review-plan>span,.review-change,.review-remove,.review-invite,
    .review-destination>div>span:last-child,.review-payment-note,.review-runway,
    .review-compatibility p,.review-compatibility .text-link,.review-field,
    .review-marketing,.review-marketing .text-link,.review-error,.review-trip-option span) {
    font-size:var(--td-type-detail); line-height:1.5;
  }
  html:root :is(.review-person h3,.review-traveller,.review-trip-option strong,.review-field input,.review-add) {font-size:16px}
  html:root :is(.review-total small,.review-preview-note) {font-size:var(--td-type-meta);line-height:1.5}
  html:root .review-total small {display:block;margin:4px 0 0}
  html:root .review-preview-note {max-width:none}
  html:root .review-plan {flex-wrap:wrap}
  html:root .review-destination>div {flex-wrap:wrap}
  html:root .person-options strong {font-size:16px}
  html:root :is(.plan-editor-modal .plan-edit-context,.plan-edit-details dl>div,
    .plan-edit-selection>div>span) {font-size:14px;line-height:1.5}
  html:root .plan-edit-selection small {font-size:13px;line-height:1.5}
  html:root .plan-editor-modal>.eyebrow {font-size:12px}
  html:root .plan-editor-modal .plan-edit-intro {font-size:16px;line-height:1.6}

  /* Partner pages use the same scale for calculators and useful terms. */
  html:root .partner-page :is(.fine,.signature span,.pp-currency button,
    .result .note,.compare figcaption span,.compare li small,.roam td small,
    .vs td span,.side td small,.legend,.tb-head span,.tb-flight,.tb-data,.tb-name,
    .calc-error,.help-topics span,.help-group h3 span) {font-size:14px;line-height:1.5}
  html:root .partner-page :is(.deal p,.howto p,.howto.ladder p,.programme span,
    .close .contact p,.section-head .help-for,.differ q) {font-size:16px;line-height:1.6}
}

/* Mobile sizing approved 4 October 2026. Compact supporting copy: 14px;
   longer reading and setup: 16px; small labels: 12–13px. */

@media screen and (max-width:800px){
 html:root .buying-title>p{font-size:16px;line-height:1.5}
 html:root .buying-tools h2{font-size:16px}
 html:root :is(.buying-validity,.buying-data-help,.buying-connect-by,.buying-advisory,.buying-duration-error,.buying-unlimited-status,.buying-more>summary,.buying-details>summary,.buying-phone-check,.buying-error,.buying-travellers,.buying-total>div>span,.buying-quantity>div>span,.buying-saved-choice){font-size:14px;line-height:1.5}
 html:root .buying-runway-info{font-size:12px;line-height:1.4}
 html:root .buying-stepper label{font-size:13px}
 html:root .buying-stepper input{font-size:16px}
 html:root .buying-quantity strong{font-size:16px}
 html:root .buying-facts-heading>strong{font-size:15px}
 html:root .buying-facts-heading>span{font-size:12px}
 html:root .buying-facts dl>div{font-size:14px;line-height:1.5}
 html:root .buying-sticky-summary strong{font-size:14px;line-height:1.3}
 html:root .buying-sticky-summary>span>span{font-size:12px;line-height:1.4}
 html:root .buying-sticky-action .button{font-size:14px}
 html:root :is(.buying-section-heading>p,.buying-group-copy>p,.buying-questions>div>p,.buying-faq-list p){font-size:16px;line-height:1.55}
 /* Compact illustrated cards need an intermediate reading size on phones. */
 html:root :is(.buying-moments .moment-copy p,.buying-steps p){font-size:14px;line-height:1.55}
 html:root :is(.buying-steps button,.buying-network-note,.buying-questions .text-link,.buying-group-heading>div>span,.buying-draft-line>div>span){font-size:14px;line-height:1.5}
 html:root :is(.buying-faq-list summary,.buying-group-heading strong){font-size:16px}
 html:root .buying-group-heading{flex-wrap:wrap}
 html:root :is(.buying-section-heading .eyebrow,.buying-group .eyebrow,.buying-questions .eyebrow){font-size:12px}
 html:root :is(.modal-body>p,.modal-body li,.device-checks p,.data-help-row p){font-size:16px;line-height:1.55}
 html:root :is(.device-tabs button,.coverage-list){font-size:14px;line-height:1.5}
}

@media screen and (max-width:800px) {
  html:root :is(
    .solo-steps p, .solo-caption, .ready-message p, .ready-footer,
    .ready-place>div>span, .example-person>div>span, .example-total>span,
    .example-adjust, .group-copy .group-invitation,
    .promise-strip p, .promise-strip>.text-link,
    .homepage-setup-actions>.text-link, .homepage-phone-check
  ) { font-size:14px; line-height:1.55; }

  html:root :is(
    .solo-copy>.eyebrow, .example-heading .eyebrow,
    .ready-card-top>span, .ready-badge
  ) { font-size:12px; line-height:1.4; }

  html:root :is(
    .faq-intro p, .faq-list details p
  ) { font-size:16px; line-height:1.6; }
}

@media screen and (max-width:800px) {
  html:root :is(
    .review-section-heading>span, .review-account, .review-account .text-link,
    .review-plan>span, .review-change, .review-remove, .review-invite,
    .review-payment-note, .review-runway, .review-compatibility p,
    .review-compatibility .text-link, .review-field, .review-marketing,
    .review-marketing .text-link, .review-error, .review-trip-option span
  ) { font-size:14px; line-height:1.5; }

  html:root :is(
    .review-heading p, .review-signin, .review-field input
  ) { font-size:16px; line-height:1.5; }

  html:root .review-preview-note { font-size:12px; }
  html:root .review-total small { font-size:12px; }
}
