/* Shared type scale. Change these tokens instead of adding page font overrides. */
:root{
  --font-body:16px;
  --font-input:16px;
  --font-control:14px;
  --font-caption:14px;
  --font-card-title:18px;
  --font-section-title:20px;
  --font-page-title:28px;
  --font-bottom-nav:12px;
}
@media(max-width:700px){:root{--font-page-title:24px}}
body{font-size:var(--font-body)}
p{font-size:var(--font-body)}
button{font-size:var(--font-control)}
input,select,textarea{font-size:var(--font-input)}
h1{font-size:var(--font-page-title)}
h2{font-size:var(--font-section-title)}
h3{font-size:var(--font-card-title)}
label{font-size:var(--font-caption)}

/* caption */
.admin-meta,
.admin-state,
.api-links a,
.api-links code,
.article-author b,
.article-author small,
.article-labels,
.article-related,
.article-related span,
.aside-card a,
.aside-card>span,
.avatar,
.comment time,
.comment-form label,
.comments-empty,
.connected-services small,
.directory-copy small,
.directory-meta,
.discover-events .event-kind,
.discover-form label>span,
.discover-results .result-note,
.discover-results .result-summary>span,
.distance-note,
.event-card.event-listing-card .event-kind,
.event-card.event-listing-card .event-region,
.event-detail,
.event-ended,
.event-ended-label,
.event-ended-note,
.event-kind,
.event-region,
.eyebrow,
.favorite-count,
.favorite-mail-guide p.favorite-mail-guide-note,
.favorite-mail-guide-schedule span,
.favorite-mail-guide-schedule strong,
.favorite-mail-note,
.favorite-status,
.festival-directory-breadcrumb,
.festival-location-card small,
.festival-location-card span,
.festival-periods small,
.festival-periods span,
.festival-periods span:last-child,
.field label,
.field label span,
.footer-inner p,
.footer-links,
.form-heading>a,
.fuel-directory-main>em,
.fuel-directory-main>small,
.fuel-distance,
.fuel-features i,
.fuel-features time,
.fuel-form label>span,
.fuel-price-cell em,
.fuel-price-cell i,
.fuel-provider-note,
.fuel-rank,
.fuel-scope,
.home-content .portal-post-list a>span,
.home-content .portal-post-list time,
.home-events .event-kind,
.home-filter label span,
.home-outing-menu small,
.home-outing-panel .eyebrow,
.image-fallback,
.like-status,
.member-auth-divider,
.member-social-note,
.mobile-account-heading,
.outing-filter label span,
.parking-availability,
.parking-card-top,
.parking-live-count span,
.parking-meta,
.parking-search label,
.place-distance,
.place-grid .event-kind,
.place-source,
.policy-check,
.portal-post-list a>span,
.portal-post-list time,
.portal-search-heading>p,
.post-bottom,
.post-top,
.poster-hint,
.principle-grid span,
.prose-note,
.regional-events .event-kind,
.related-badge,
.report-menu label,
.result-copy em,
.result-copy small,
.result-kind,
.result-note,
.result-summary>span,
.search-group-heading a,
.search-group-heading span,
.small-avatar,
.source-warning,
.source-warning.source-warning-ended,
.station-price-grid em,
.station-price-grid span,
.station-price-grid time,
.trip-fuel-list b,
.trip-fuel-list em,
.trip-fuel-list small,
.widget-fuel-list b,
.widget-fuel-list small,
[aria-labelledby="home-current-festivals"] .eyebrow,
[aria-labelledby="home-current-festivals"] .home-filter label span{font-size:var(--font-caption);}

/* body */
.api-callout p:not(.eyebrow),
.comment,
.comments-heading p,
.community-hero p:not(.eyebrow),
.detail-fact-group dd,
.detail-fact-group dt,
.directory-copy p,
.directory-note p,
.discover-hero>.section-shell>p:not(.eyebrow),
.discover-hero>div>p:not(.eyebrow),
.discover-results .status-note,
.event-card.event-listing-card .event-copy p,
.event-copy p,
.event-scroll p,
.favorite-mail-guide p,
.festival-comparison table,
.festival-region-table,
.festival-visit-grid p,
.flash-message,
.form-errors,
.form-heading>p:not(.eyebrow),
.fuel-hero>.section-shell>p:not(.eyebrow),
.help-topic-content,
.help-topic-content .prep-list b,
.help-topic-content .prep-list span,
.home-content .panel-heading p:not(.eyebrow),
.home-outing-panel .panel-heading p:not(.eyebrow),
.member-mail-settings p,
.member-password-note,
.notice-box,
.official-source-card p:not(.eyebrow),
.outing-culture-callout p,
.page-hero p:not(.eyebrow),
.panel-heading p:not(.eyebrow),
.parking-card p,
.parking-detail-list>div,
.portal-search-section>p,
.post-card p,
.prep-list b,
.prep-list span,
.principle-grid p,
.prose-page>p,
.related-field>p,
.rules-card ul,
.search-empty p,
.station-facts dd,
.station-facts dt,
.status-note,
.trip-heading dd,
.trip-heading dt,
.trip-intro>p,
.trip-route-heading>p:not(.eyebrow),
[aria-labelledby="home-current-festivals"] .panel-heading p:not(.eyebrow),
[aria-labelledby="home-current-festivals"] .status-note{font-size:var(--font-body);}

/* control */
.admin-tabs a,
.aside-link,
.back-link,
.brand-local-nav a,
.category-scroll a,
.discover-form button,
.discover-query button,
.discover-types span,
.event-scroll .secondary-button,
.favorite-button,
.favorite-button-compact .favorite-count,
.favorite-help-button,
.favorite-mail-guide-actions a,
.favorite-status-tabs a,
.festival-region-picker a,
.form-actions a,
.form-actions button,
.fuel-query button,
.fuel-sort a,
.help-topics summary,
.home-content .text-link,
.home-filter button,
.home-outing-panel .text-link,
.home-region-badges a,
.home-search-regions a,
.main-nav a,
.member-danger>summary,
.member-link,
.member-menu-panel a,
.member-menu-panel button,
.member-social-button,
.member-social-button small,
.member-toolbar a,
.mobile-account-links a,
.mobile-account-links button,
.mobile-menu a,
.mobile-menu>a,
.outing-menu-panel a,
.outing-menu>summary,
.outing-pagination span,
.outing-tabs a,
.pagination a,
.pagination-pages .pagination-ellipsis,
.pagination-pages [aria-current=page],
.pagination-pages a,
.pagination-summary,
.pagination>span,
.parking-card .text-link,
.portal-pagination .pagination-direction,
.portal-search button,
.portal-search-section .home-search-regions a,
.portal-search-section .portal-search button,
.portal-search-section .portal-shortcuts a,
.portal-shortcuts a,
.primary-button,
.report-menu summary,
.search-button em,
.secondary-button,
.source-nav-link,
.text-link,
.trip-actions a,
.trip-page .trip-section-nav a,
.trip-section-menu.is-enhanced .trip-section-toggle,
.trip-section-nav a,
[aria-labelledby="home-current-festivals"] .home-filter button,
[aria-labelledby="home-current-festivals"] .text-link{font-size:var(--font-control);font-weight:650;line-height:1.5;}

/* input */
.comment-form input,
.comment-form textarea,
.discover-form input,
.discover-form select,
.field input,
.field select,
.field textarea,
.fuel-form input,
.fuel-form select,
.home-filter select,
.outing-filter input,
.outing-filter select,
.page-search input,
.portal-search input,
.portal-search-section .portal-search input,
[aria-labelledby="home-current-festivals"] .home-filter select{font-size:var(--font-input);}

/* card-title */
.admin-record-head strong,
.connected-services strong,
.detail-fact-group h3,
.directory-copy strong,
.event-card.event-listing-card .event-copy :is(h2,h3),
.event-copy h3,
.favorites-grid h2,
.festival-location-card strong,
.festival-visit-cards h3,
.festival-visit-grid h3,
.festival-visit-notes h3,
.fuel-directory-main>strong,
.home-content .portal-post-list strong,
.home-outing-menu strong,
.parking-card h3,
.portal-post-list strong,
.post-card h2,
.principle-grid h3,
.regional-events .event-copy h3,
.result-copy strong,
.search-empty h3,
.search-group-heading h3,
.trip-intro h3{font-size:var(--font-card-title);}

/* section-title */
.api-callout h2,
.aside-card h2,
.comments-heading h2,
.detail-visit-information h2,
.favorite-mail-guide h2,
.festival-comparison h2,
.festival-directory-results h2,
.festival-guide h2,
.festival-visit h2,
.official-source-card h2,
.outing-culture-callout h2,
.panel-heading h2,
.prose-page h2,
.result-summary h2,
.search-empty h2,
.station-facts h2,
.trip-intro h2,
.trip-route-heading h2{font-size:var(--font-section-title);}

/* page-title */
.admin-heading h1,
.article-header h1,
.community-hero h1,
.discover-hero h1,
.error-page h1,
.form-heading h1,
.mail-unsubscribe-page h1,
.page-hero h1,
.place-detail .trip-heading h1,
.portal-search-heading h1,
.trip-heading h1{font-size:var(--font-page-title);}

/* bottom-nav */
.mobile-nav a{font-size:var(--font-bottom-nav);line-height:1.4;letter-spacing:-.02em;}
