/* Shared type scale. Small timetable, directory and utility text keeps its own size. */
@media screen {
  :root,
  .editor-styles-wrapper {
    --coast-type-body: 1.125rem;
    --coast-type-hero: 2.75rem;
    --coast-type-route-hero: 3rem;
    --coast-type-route-cities: 2rem;
    --coast-type-section: 1.75rem;
    --coast-type-card: 2.25rem;
    --coast-type-subheading: 1.375rem;
    --coast-type-control: 1rem;
    --coast-type-service: 1.125rem;
  }

  body:not(.wp-admin),
  .editor-styles-wrapper {
    font-size: var(--coast-type-body);
    line-height: 1.5;
  }

  :where(.entry-content, .editor-styles-wrapper) > h1,
  .entry-header .entry-title {
    font-size: var(--coast-type-hero);
    line-height: 1.15;
    letter-spacing: 0;
  }

  :where(.entry-content, .editor-styles-wrapper) > h2 {
    font-size: var(--coast-type-section);
    line-height: 1.25;
    letter-spacing: 0;
  }

  :where(.entry-content, .editor-styles-wrapper) > h3 {
    font-size: var(--coast-type-subheading);
    line-height: 1.3;
    letter-spacing: 0;
  }

  #site-navigation .main-nav > ul > li > a {
    font-size: 1.0625rem;
  }

  .coast-homepage .coast-home-hero h1,
  .coast-schedules-page .coast-schedules-hero-title {
    font-size: var(--coast-type-hero);
    line-height: 1.12;
  }

  .coast-homepage .coast-home-intro__copy h2 {
    font-size: var(--coast-type-section);
    line-height: 1.25;
  }

  .coast-homepage :is(.coast-service-tab, .coast-service-card) {
    font-size: var(--coast-type-service);
  }

  .coast-homepage .coast-home-news h2 {
    font-size: 1.375rem;
  }

  .coast-homepage .coast-home-news article {
    font-size: var(--coast-type-body);
    line-height: 1.5;
  }

  .coast-schedules-page .coast-schedules-transit-band h2 {
    font-size: var(--coast-type-section);
  }

  .coast-schedules-page .coast-schedule-route-group h2,
  .coast-wotr-directory .coast-wotr-group > :is(h2, h3) {
    font-size: var(--coast-type-subheading);
  }

  :is(.coast-route-page, .coast-routes-page) :is(.coast-route-hero, .coast-routes-hero) h1 {
    font-size: var(--coast-type-hero);
    line-height: 1.15;
  }

  .coast-route-page :is(.coast-route-alert, .coast-route-section) > h2 {
    font-size: var(--coast-type-section);
  }

  .coast-route-page .coast-route-action {
    font-size: var(--coast-type-control);
    min-height: 44px;
    align-items: center;
  }

  /* Route 1's artboard-specific sizes need explicit overrides at every breakpoint. */
  main.coast-route-template {
    font-size: var(--coast-type-body);
    line-height: 1.5;
  }

  .coast-route-template .crt-hero-title h1 {
    font-size: var(--coast-type-route-hero);
    margin-left: 0;
  }

  .coast-route-template .crt-hero-title {
    min-height: 0;
  }

  .coast-route-template .crt-hero-title p {
    font-size: var(--coast-type-route-cities);
  }

  .coast-route-template .crt-outlined h2 {
    font-size: var(--coast-type-card);
  }

  .coast-route-template .crt-outlined h3 {
    font-size: var(--coast-type-subheading);
  }

  .coast-route-template :is(.crt-outlined li, .crt-transit p, .crt-wotr-intro p, .crt-fares-inner p) {
    font-size: var(--coast-type-body);
    line-height: 1.5;
  }

  .coast-route-template :is(.crt-transit, .crt-wotr-intro, .crt-fares-inner, .crt-section-heading) h2 {
    font-size: var(--coast-type-section);
  }

  main.coast-route-template :is(.crt-button, .crt-jump-links a, .crt-jump-links button) {
    font-size: var(--coast-type-control);
  }

  .coast-route-template .crt-planner h2 {
    font-size: 1.5rem;
  }

  .coast-route-template .crt-planner :is(input, select, label, .crt-search) {
    font-size: var(--coast-type-control);
  }

  .coast-route-template .crt-wotr summary {
    font-size: var(--coast-type-subheading);
  }

  .coast-route-template .crt-wotr .coast-wotr-list-item h4 {
    font-size: 1.0625rem;
  }

  .coast-route-template .crt-wotr .coast-wotr-list-item address {
    font-size: 1rem;
  }

  .site-footer .coast-footer__nav h2 {
    font-size: 1.125rem;
    line-height: 1.3;
  }

  .site-footer .coast-footer__nav a,
  .site-footer .coast-footer__address,
  .site-footer .coast-footer__button {
    font-size: 1rem;
    line-height: 1.45;
  }

  .site-footer .coast-footer__tagline {
    font-size: 1.125rem;
    line-height: 1.3;
  }
}

@media screen and (min-width: 1600px) {
  :root,
  .editor-styles-wrapper {
    --coast-type-body: 1.25rem;
    --coast-type-hero: 3rem;
    --coast-type-route-hero: 3.5rem;
    --coast-type-route-cities: 2.25rem;
    --coast-type-section: 2rem;
    --coast-type-card: 2.75rem;
    --coast-type-subheading: 1.5rem;
    --coast-type-control: 1.125rem;
    --coast-type-service: 1.25rem;
  }

  .coast-route-template .crt-section-heading h2 {
    font-size: 1.75rem;
  }

  .coast-homepage .coast-home-intro__copy h2,
  .coast-schedules-page .coast-schedules-transit-band h2,
  .coast-route-page :is(.coast-route-alert, .coast-route-section) > h2 {
    font-size: 1.75rem;
  }

  .coast-schedules-page .coast-schedule-route-group h2,
  .coast-wotr-directory .coast-wotr-group > :is(h2, h3) {
    font-size: 1.375rem;
  }
}

@media screen and (max-width: 1100px) {
  :root,
  .editor-styles-wrapper {
    --coast-type-body: 1rem;
    --coast-type-hero: 2.25rem;
    --coast-type-route-hero: 2.5rem;
    --coast-type-route-cities: 1.625rem;
    --coast-type-section: 1.625rem;
    --coast-type-card: 2rem;
    --coast-type-subheading: 1.25rem;
    --coast-type-service: 1rem;
  }
}

@media screen and (max-width: 760px) {
  :root,
  .editor-styles-wrapper {
    --coast-type-hero: 2rem;
    --coast-type-route-hero: 2rem;
    --coast-type-route-cities: 1.25rem;
    --coast-type-section: 1.5rem;
    --coast-type-card: 1.875rem;
  }
}

@media screen and (max-width: 480px) {
  .coast-homepage .coast-home-intro__copy h2,
  .coast-schedules-page .coast-schedules-transit-band h2,
  .coast-route-template .crt-transit h2 {
    font-size: 1.375rem;
  }

  main.coast-route-template :is(.crt-jump-links a, .crt-jump-links button) {
    font-size: 0.875rem;
  }

  .coast-route-template .crt-wotr .coast-wotr-list-item h4 {
    font-size: 1rem;
  }
}
