.clarity-secondary-cta {
  border: 2px solid #E3CA74;
  background: transparent;
  color: #E3CA74;
}

.clarity-secondary-cta:hover {
  border-color: #E3CA74;
  background: #E3CA74;
  color: #1F5865;
}

.clarity-secondary-cta:focus-visible {
  outline: 3px solid #2A9395;
  outline-offset: 4px;
}

.band-gold .btn-primary,
.band-gold .btn-primary:hover {
  color: #fff;
}

input[type="range"] {
  min-height: 44px;
}

.headshot img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 30%;
}

.rate-list .item {
  min-width: 0;
  overflow-wrap: anywhere;
}

.team-email-cta {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
}

/* Keep the expanded mobile navigation in the viewport when the sticky header's
   backdrop filter establishes a containing block for positioned descendants. */
@media (max-width: 1080px) {
  .site-header .site-nav {
    position: absolute;
    inset: 100% 0 auto;
    height: calc(100vh - 78px);
    height: calc(100dvh - 78px);
  }

  /* The menu already fills and scrolls within the viewport. Keeping the body
     as the page scroller preserves the sticky header and the visitor's exact
     position when the menu opens away from the top of a page. */
  body.nav-open {
    overflow: visible;
  }

  .site-header .site-nav a:not(.btn):hover,
  .site-header .site-nav a:not(.btn):focus,
  .site-header .site-nav a:not(.btn):focus-visible,
  .site-header .site-nav a:not(.btn):active {
    border-bottom-color: var(--gold);
    background: var(--gold-soft);
    color: var(--deep);
    font-weight: 600;
    text-decoration: none;
  }
}

/* Running Coaching additions only. Every rule is anchored to one of the two
   new components so the approved cards, bands and global page layout remain
   untouched. */
.running-comparison {
  margin-top: clamp(3rem, 6vw, 4.6rem);
  padding-top: clamp(2rem, 4vw, 3rem);
}

.running-hero-copy-only {
  grid-template-columns: minmax(0, 1fr);
}

.running-comparison-head {
  margin-bottom: 1.2rem;
}

.running-comparison-head h3 {
  margin-bottom: 0;
}

.running-comparison .comparison-hint {
  display: none;
  margin: 0 0 0.7rem;
  color: var(--body);
}

.running-comparison .comparison-scroll {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: var(--shadow-sm);
  scrollbar-color: var(--teal) var(--teal-soft);
}

.running-comparison .comparison-table {
  width: 100%;
  min-width: 720px;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: var(--body);
  text-align: left;
}

.running-comparison .comparison-table caption {
  padding: 1rem 1.2rem;
  border-bottom: 1px solid var(--line);
  background: var(--gold-soft);
  color: var(--deep);
  font-weight: 600;
  text-align: left;
}

.running-comparison .comparison-table th,
.running-comparison .comparison-table td {
  padding: 1rem 1.1rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}

.running-comparison .comparison-table tr > :last-child {
  border-right: 0;
}

.running-comparison .comparison-table tbody tr:last-child > * {
  border-bottom: 0;
}

.running-comparison .comparison-table thead th {
  background: var(--deep);
  color: var(--white);
  vertical-align: bottom;
}

.running-comparison .comparison-table thead th:first-child,
.running-comparison .comparison-table tbody th {
  position: sticky;
  left: 0;
}

.running-comparison .comparison-table thead th:first-child {
  z-index: 2;
  width: 34%;
  min-width: 190px;
  background: var(--pine);
}

.running-comparison .comparison-table tbody th {
  z-index: 1;
  background: var(--paper);
  color: var(--ink);
  font-weight: 600;
}

.running-comparison .comparison-table .gold-column {
  background: var(--gold-soft);
}

.running-comparison .comparison-table thead .gold-column {
  box-shadow: inset 0 5px 0 var(--gold);
  background: var(--pine-2);
}

.running-comparison .package-label,
.running-comparison .package-price {
  display: block;
}

.running-comparison .package-label {
  font-size: 1.05rem;
}

.running-comparison .package-price {
  margin-top: 0.2rem;
  color: var(--gold);
  font-size: 0.9rem;
  font-weight: 500;
}

.running-comparison .comparison-check {
  display: inline-flex;
  gap: 0.4rem;
  align-items: baseline;
}

.running-comparison .comparison-check > span {
  color: var(--teal-ink);
  font-weight: 600;
}

.running-comparison-note {
  max-width: 44rem;
  margin-top: 1rem;
}

.distance-project .distance-intro {
  max-width: 850px;
}

.distance-project .distance-intro .lede strong {
  color: var(--gold);
}

.distance-project .distance-layout {
  align-items: start;
}

.distance-project .distance-inclusions {
  margin-top: 1.5rem;
}

.distance-project .distance-pricing-card {
  border-top: 5px solid var(--gold);
}

.distance-project .distance-pricing-card .price-figure .amount {
  color: var(--white);
}

.distance-project .distance-pricing-card .price-figure .unit {
  color: rgba(255, 255, 255, 0.78);
}

.distance-project .distance-price-option + .distance-price-option {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.distance-project .distance-pricing-card .btn {
  margin-top: 1.8rem;
}

.distance-project .distance-proof-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: clamp(2rem, 5vw, 3rem);
}

.distance-project .distance-proof-card {
  border-left: 4px solid var(--gold);
}

.distance-project .distance-proof-card p:first-child {
  font-size: 1.02rem;
}

@media (max-width: 760px) {
  .running-comparison .comparison-hint {
    display: block;
  }

  .running-comparison .comparison-table {
    min-width: 640px;
  }

  .running-comparison .comparison-table th,
  .running-comparison .comparison-table td {
    padding: 0.9rem;
  }

  .running-comparison .comparison-table thead th:first-child {
    width: 150px;
    min-width: 150px;
  }
}

@media (max-width: 640px) {
  .distance-project .distance-proof-grid {
    grid-template-columns: 1fr;
  }
}
