/* Shared public typography. Keep symbols and icon fonts outside text rules. */
body{font-size:14px;line-height:1.65}
body :is(h1,h2,h3,h4,h5,h6){overflow-wrap:break-word;word-break:normal;letter-spacing:-.02em}
body h1{font-size:clamp(24px,2.6vw,40px)!important;line-height:1.25!important}
body h1 :is(span,strong,b):not(.material-symbols-outlined){font-size:inherit!important;line-height:inherit!important}
body h2{font-size:clamp(20px,1.85vw,28px)!important;line-height:1.4!important}
body h3{font-size:clamp(16px,1.4vw,21px)!important;line-height:1.5!important}
body :is(h4,h5,h6){font-size:clamp(15px,1.15vw,18px)!important;line-height:1.5!important}
body :is(.trip-card__content,.activity-card-content,.tm-card-content,.mobile-blog-grid,.event-related-card,.mobile-card-grid,.tm-card-grid) h3{font-size:clamp(15px,1.1vw,17px)!important;line-height:1.5!important}
body :is(.ap-rich-content,.activity-article,.trip-loan-provider-terms,.page-content){font-size:14px!important;line-height:1.8!important}
body .ap-rich-content :is(p,li,span,div,font){font-size:inherit!important;line-height:inherit!important}
body :is(.trips-hero,.editorial-hero,.activities-hero,.tm-panel-description) p{font-size:14px!important;line-height:1.75!important}
body :is(.text-xs,.trip-card__meta,.activity-card-meta,.tm-card-facts,.trips-kicker,.trips-eyebrow){font-size:12px!important;line-height:1.6!important}
body :is(.text-sm,.trip-card__content>p,.activity-card-content>p,.tm-card-content>p){font-size:14px!important;line-height:1.7!important}
body :is(.ticket-fare,.trip-booking-price,.trip-price-current){font-size:clamp(21px,1.9vw,28px)!important;line-height:1.3!important;font-variant-numeric:tabular-nums}
body :is(.ticket-base-fare,.ticket-mode-card small,.ticket-steps,.tm-hint){font-size:12px!important;line-height:1.6!important}
body :is(.ticket-mode-card strong,.tm-label,.trip-booking-pax label){font-size:14px!important;line-height:1.6!important}
body :is(.about-stat strong,.about-metric-card strong,.about-traveler-total strong){font-size:clamp(25px,2.3vw,34px)!important;line-height:1.25!important}
body .trip-card-price strong{font-size:clamp(16px,1.25vw,19px)!important;line-height:1.4!important}
body :is(.trip-card-meta,.trip-card-price>span,.home-promo-card__country,.home-review__author strong,.home-review__author p){font-size:12px!important;line-height:1.6!important}
body :is(.home-review blockquote,.about-guide-role,.about-guide-info dd){font-size:13px!important;line-height:1.7!important}
body footer h2{font-size:15px!important;line-height:1.5!important}
body :is(button,input,select,textarea){font-family:inherit}
body :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]):not([type=file]),select,textarea){font-size:14px!important;line-height:1.5!important}
body :is(.ticket-button,.btn-send,.tm-primary){font-size:14px!important;line-height:1.5!important}
@media(min-width:768px) and (max-width:1023px){body :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]):not([type=file]),select,textarea){font-size:16px!important}}

@media(max-width:767px){
 body :is(.activity-card-content,.blog-card-content,.hotel-card-content,.tm-card-content,.trip-card__content,.design-tour-body) > p,
 body .activities-grid .activity-card p,
 body .mobile-card-grid p.line-clamp-2,
 body .trip-detail-card p,
 body .hotel-card p.line-clamp-2,
 body .tm-activity-copy > span,
 body .activities-grid .activity-card-content > p{display:none!important}
 body h1{font-size:24px!important;line-height:1.3!important}
 body h2{font-size:20px!important}
 body h3{font-size:17px!important}
 body :is(h4,h5,h6){font-size:15px!important}
 body :is(.trip-card__content,.activity-card-content,.tm-card-content,.mobile-blog-grid,.event-related-card,.mobile-card-grid,.tm-card-grid) h3{font-size:15px!important}
 body :is(.about-service-grid,.tm-why-grid) p{font-size:14px!important;line-height:1.75!important}
 body :is(.trip-detail-layout,.tm-panel,.ticket-page,.page-contact,.page-editorial) :is(p,li){overflow-wrap:break-word}
 body :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]):not([type=file]),select,textarea){font-size:16px!important;line-height:1.5!important}
 body :is(.ticket-button,.trip-traveler-actions button,#trip-booking button[type=submit],.btn-send){font-size:14px!important;line-height:1.5!important;min-height:44px}
 body :is(.tm-progress button,.ticket-steps li){font-size:12px!important;line-height:1.5!important}
 body :is(.trip-detail-cards p,.tm-why-grid p,.mobile-blog-grid p,.about-metric-card p){font-size:13px!important;line-height:1.7!important}
 body :is(.trip-detail-layout,#trip-booking,.ticket-modal,.tm-panel) label{font-size:13px!important;line-height:1.6!important}
 body form :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select){min-height:44px}
 body .ticket-mode-card{min-width:0}
 body .ticket-mode-card strong{font-size:14px!important}
}

/* A cleared CMS image must remain hidden even when its component sets display. */
img[hidden]{display:none!important}
