.bt-zwift-route {
  --zr-ink: #10241d;
  --zr-green: #0f503c;
  --zr-orange: #c93412;
  --zr-line: #d9ddd9;
  --zr-muted: #58635e;
  --zr-trace: #0f503c;
  --zr-selection: #c93412;
  margin: 24px 28px;
  padding-block: 20px;
  border-block: 1px solid var(--zr-line);
  color: var(--zr-ink);
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}
.bt-zwift-route *, .bt-zwift-route *::before, .bt-zwift-route *::after { box-sizing: border-box; }
.bt-zwift-route [hidden] { display: none !important; }
.bt-zwift-route canvas[hidden] { display: block !important; visibility: hidden; }
.bt-zwift-route[data-route-state="error"] .bt-zwift-route__map,
.bt-zwift-route[data-route-state="error"] .bt-zwift-route__profile > figcaption,
.bt-zwift-route[data-route-state="error"] .bt-zwift-route__chart,
.bt-zwift-route[data-route-state="error"] .bt-zwift-route__samples { display: none; }
.bt-single-article--zwift-route .bt-single__title { font-size: 40px; line-height: 1.12; }
.bt-single-article--zwift-route .bt-single__header { padding-bottom: 8px; }
.bt-zwift-route .bt-zwift-route__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.bt-zwift-route .bt-zwift-route__header h2 { margin: 0; font-size: 22px; line-height: 1.25; letter-spacing: 0; }
.bt-zwift-route .bt-zwift-route__world { margin: 0 0 4px; color: var(--zr-green); font-size: 12px; font-weight: 700; }
.bt-zwift-route .bt-zwift-route__reset { flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 1px solid var(--zr-line); border-radius: 4px; background: #fff; color: var(--zr-green); font-size: 26px; cursor: pointer; }
.bt-zwift-route .bt-zwift-route__reset:disabled { opacity: .45; cursor: default; }
.bt-zwift-route .bt-zwift-route__reset:not(:disabled):hover { color: var(--zr-orange); }
.bt-zwift-route :focus-visible { outline: 3px solid var(--zr-orange); outline-offset: 3px; }
.bt-zwift-route .bt-zwift-route__metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 18px 0 22px; padding-block: 12px; border-block: 1px solid var(--zr-line); }
.bt-zwift-route .bt-zwift-route__metrics dt { color: var(--zr-muted); font-size: 12px; }
.bt-zwift-route .bt-zwift-route__metrics dd { margin: 2px 0 0; font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; }
.bt-zwift-route .bt-zwift-route__surfaces { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.bt-zwift-route figure { min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; }
.bt-zwift-route figcaption { margin-bottom: 8px; font-size: 15px; font-weight: 700; }
.bt-zwift-route__official-map img { display: block; max-width: 100%; height: auto; margin: 0 auto 12px; }
.bt-zwift-route .bt-zwift-route__official-map figcaption { font-weight: 400; }
.bt-zwift-route canvas { display: block; width: 100%; height: auto; background: #f3f5f2; }
.bt-zwift-route [data-route-map] { aspect-ratio: 8 / 5; }
.bt-zwift-route [data-route-profile] { aspect-ratio: 8 / 3; touch-action: pan-y; }
.bt-zwift-route .bt-zwift-route__chart { position: relative; }
.bt-zwift-route .bt-zwift-route__tooltip { position: absolute; z-index: 1; inset: 8px 8px auto auto; max-width: calc(100% - 16px); padding: 6px 10px; background: var(--zr-ink); color: #fff; font-size: 13px; pointer-events: none; font-variant-numeric: tabular-nums; }
.bt-zwift-route .bt-zwift-route__output { display: block; min-height: 44px; padding-block: 10px; color: var(--zr-muted); font-variant-numeric: tabular-nums; }
.bt-zwift-route details { min-width: 0; border-top: 1px solid var(--zr-line); }
.bt-zwift-route summary { min-height: 44px; padding-block: 12px; color: var(--zr-green); font-weight: 700; cursor: pointer; }
.bt-zwift-route .bt-zwift-route__sources { margin-top: 20px; }
.bt-zwift-route table { width: 100%; margin: 0 0 12px; border-collapse: collapse; table-layout: fixed; font-size: 13px; }
.bt-zwift-route caption { padding-block: 8px; text-align: left; color: var(--zr-muted); }
.bt-zwift-route th, .bt-zwift-route td { padding: 10px 8px; border: 0; border-bottom: 1px solid var(--zr-line); text-align: left; vertical-align: top; }
.bt-zwift-route .bt-zwift-route__sources th { width: 30%; }
.bt-zwift-route a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; color: var(--zr-green); text-decoration: underline; text-underline-offset: 3px; }
.bt-zwift-route a:hover { color: var(--zr-orange); }
.bt-zwift-route__segments { margin-top: 24px; }
.bt-zwift-route__segments h3 { font-size: 20px; margin: 0 0 8px; }
.bt-zwift-route__segment-note { color: var(--zr-muted); font-size: 13px; }
.bt-zwift-route__segments ol { list-style: none; margin: 0; padding: 0; }
.bt-zwift-route__segments li { border-top: 1px solid var(--zr-line); padding: 12px 0; }
.bt-zwift-route__segments button { display: flex; gap: 12px; align-items: center; width: 100%; padding: 8px; text-align: left; background: transparent; color: var(--zr-ink); border: 1px solid transparent; border-radius: 4px; cursor: pointer; }
.bt-zwift-route__segments button[aria-pressed="true"] { border-color: var(--zr-orange); background: #fff5ef; }
.bt-zwift-route .bt-zwift-route__segments button:hover,
.bt-zwift-route .bt-zwift-route__segments button:focus { color: var(--zr-ink); background: #fff5ef; }
.bt-zwift-route__segments button strong, .bt-zwift-route__segments button small { color: inherit; }
.bt-zwift-route__map { scroll-margin-top: 100px; }
.bt-zwift-route__segment-number { flex: 0 0 28px; height: 28px; display: grid; place-items: center; background: var(--zr-ink); color: #fff; border-radius: 50%; font-weight: 700; }
.bt-zwift-route__segments small { display: block; margin-top: 4px; font-size: 13px; font-variant-numeric: tabular-nums; }
.bt-zwift-route__segments li p { margin: 4px 8px 0 48px; }
@media (min-width: 960px) {
  .bt-zwift-route .bt-zwift-route__surfaces { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 24px; }
}
@media (max-width: 480px) {
  .bt-zwift-route { margin-inline: 16px; }
  .bt-single-article--zwift-route .bt-single__title { font-size: 30px; }
  .bt-zwift-route .bt-zwift-route__metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bt-zwift-route .bt-zwift-route__header h2 { font-size: 20px; }
  .bt-zwift-route .bt-zwift-route__sources th { width: 34%; }
}
