*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 1rem; }
body { margin: 0; }
h1, h2, h3, p, figure { margin: 0; }
p + p { margin-top: 1rem; }
button, textarea { font: inherit; }
button { cursor: pointer; }
a { max-width: 100%; }
summary { cursor: pointer; }
img { display: block; }
li { padding-inline-start: .15rem; }
details > summary { list-style-position: inside; }
details[open] > summary { border-bottom-width: 1px; border-bottom-style: solid; }
.container { width: min(1280px, calc(100% - 112px)); margin-inline: auto; }
.measure { max-width: 65ch; }
.title-measure { max-width: 17ch; }
.main-pad { padding-top: 32px; }
.intro-gap { padding-block: 24px 42px; }
.label-gap { margin-bottom: 22px; }
.lead-gap { margin-top: 24px; }
.hero-gap { margin-bottom: 76px; }
.hero-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px; align-items: center; }
.section-gap { margin-block: 64px; }
.section-gap > h2 { margin-bottom: 26px; }
.section-gap > a { margin-top: 22px; }
.compare-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cell-pad { padding: 36px; }
.cell-pad > h3 { margin-bottom: 22px; }
.cell-divider { border-right-width: 1px; border-right-style: solid; }
.caption-gap { margin-top: 18px; }
.figure-gap { margin-block: 40px; }
.hero-grid .figure-gap { margin-block: 0; }
.photo-width { width: 100%; height: auto; }
.photo-fit { object-fit: cover; }
.photo-frame { min-height: 150px; }
.overflow-clip { overflow: hidden; }
.link-height { display: inline-flex; align-items: center; min-height: 48px; min-width: 48px; }
.link-pad { padding: 11px 18px; }
.link-flex { justify-content: space-between; gap: 20px; }
.arrow-gap { margin-left: auto; }
.utility-flex { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.utility-links { display: flex; flex-wrap: wrap; }
.utility-copy { padding-block: 12px; }
.masthead-flex { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-block: 22px; }
.wordmark { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 3px; }
.menu-width { width: 254px; flex-shrink: 0; }
.menu-position { position: relative; }
.menu-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-inline: 20px; }
.summary-height { min-height: 56px; }
.summary-pad { padding: 17px 24px; }
.menu-panel { position: absolute; right: 0; top: calc(100% + 10px); width: min(640px, calc(100vw - 112px)); padding: 12px; z-index: 20; }
.menu-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; }
.menu-link { width: 100%; }
.breadcrumb-gap { margin-bottom: 28px; }
.breadcrumb-flex { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 22px; list-style: none; padding: 0; margin: 0; }
.breadcrumb-link { padding: 10px 0; }
.breadcrumb-current { padding-block: 10px; }
.drawer-gap { margin-block: 30px; }
.drawer-pad { padding: 18px 24px 24px; }
.source-list { list-style: none; padding: 0; margin: 0; }
.source-list li + li { border-top-width: 1px; border-top-style: solid; }
.source-link { width: 100%; padding-block: 14px; }
.list-space { padding-left: 24px; }
.list-space li + li { margin-top: 15px; }
.band-gap { margin-block: 70px; }
.band-pad { padding-block: 64px; }
.band-pad > .container { width: 100%; }
.band-pad h2 { margin-top: 22px; }
.route-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.route-gap { gap: 24px; margin-top: 42px; }
.route-pad { padding: 24px; }
.route-pad > a { width: 100%; margin-bottom: 14px; }
.notes-gap { margin-top: 28px; }
.label-block { display: block; margin-bottom: 16px; }
.notes-width { width: 100%; max-width: 100%; }
.notes-height { min-height: 230px; resize: vertical; }
.field-pad { padding: 16px; }
.controls-flex { display: flex; flex-wrap: wrap; }
.controls-gap { gap: 14px; margin-top: 20px; }
.button-pad { padding: 12px 20px; }
.status-gap { margin-top: 20px; }
.footer-gap { margin-top: 86px; }
.footer-pad { padding-block: 44px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.skip-link { position: absolute; top: 8px; left: 16px; z-index: 50; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
@media (max-width: 900px) {
  .container { width: calc(100% - 64px); }
  .hero-grid { gap: 28px; }
  .cell-pad { padding: 28px; }
  .menu-panel { width: min(640px, calc(100vw - 64px)); }
}
@media (max-width: 680px) {
  .container { width: calc(100% - 40px); }
  .utility-flex { flex-direction: column; align-items: stretch; gap: 0; padding-top: 6px; }
  .utility-copy { padding-bottom: 0; }
  .utility-links { gap: 4px; }
  .utility-links a { padding-left: 0; padding-right: 22px; }
  .masthead-flex { flex-wrap: wrap; gap: 18px; padding-block: 20px; }
  .menu-width { width: 100%; }
  .menu-panel { position: static; width: 100%; margin-top: 12px; }
  .menu-grid { grid-template-columns: minmax(0, 1fr); }
  .main-pad { padding-top: 12px; }
  .intro-gap { padding-block: 22px 34px; }
  .label-gap { margin-bottom: 18px; }
  .lead-gap { margin-top: 22px; }
  .hero-grid, .compare-grid, .route-grid { grid-template-columns: minmax(0, 1fr); }
  .hero-grid { gap: 32px; }
  .hero-gap { margin-bottom: 52px; }
  .cell-pad { padding: 24px; }
  .cell-divider { border-right-width: 0; border-bottom-width: 1px; border-bottom-style: solid; }
  .section-gap { margin-block: 48px; }
  .band-gap { margin-block: 52px; }
  .band-pad { padding-block: 44px; }
  .route-gap { gap: 18px; margin-top: 32px; }
  .summary-pad { padding-inline: 20px; }
  .drawer-pad { padding-inline: 20px; }
  .footer-gap { margin-top: 58px; }
  .footer-pad { padding-block: 32px; }
  .footer-links { flex-direction: column; align-items: stretch; gap: 4px; }
  .footer-links a { padding-left: 0; }
  .breadcrumb-flex { gap: 0 20px; }
}
@media print {
  .utility-border, .menu-position, .skip-link, .footer-links, .controls-flex { display: none; }
  .container { width: 100%; }
  .photo-frame { display: none; }
  .hero-grid, .compare-grid, .route-grid { display: block; }
  .band-gap { width: 100%; left: auto; margin-left: 0; }
  .cell-divider { border-right: 0; }
  .section-gap { break-inside: avoid; margin-block: 24px; }
}
