/* ==========================================================================
   Hills Run Club: the club's places, /locations/ and /locations/<place>/
   (26 October 2026). Loads after v7.css on those pages only; the template
   is pages/locations.php.
   ========================================================================== */

body.hrc-coded-locations .hrc-locations { --lc-head: 145px; --lc-soft: #F5F5F6; }
.hrc-locations .rn-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.hrc-locations .lc-muted { color: var(--grey); }
.hrc-locations .lc-link { display: inline-flex; align-items: center; gap: 6px; color: var(--orange-type-aa); font: 500 14px/1.3 var(--font-sans); text-decoration: none; }
.hrc-locations .lc-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.hrc-locations .lc-h1 { margin: 0; font: 400 48px/1.05 var(--font-sans); letter-spacing: -.022em; color: var(--ink); text-wrap: balance; }
.hrc-locations .lc-h2 { margin: 0 0 20px; font: 400 32px/1.1 var(--font-sans); letter-spacing: -.02em; color: var(--ink); }
.hrc-locations .lc-h3 { margin: 0 0 14px; font: 500 18px/1.25 var(--font-sans); color: var(--ink); }
.hrc-locations .lc-lead { max-width: 36em; margin: 12px 0 0; font: 400 18px/1.45 var(--font-sans); color: var(--grey); }
.hrc-locations .lc-crumbs { display: flex; align-items: center; gap: 8px; margin: 0 0 18px; font: 500 13px/1.3 var(--font-sans); color: var(--grey); }
.hrc-locations .lc-crumbs a { color: inherit; text-decoration: none; }
.hrc-locations .lc-crumbs a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.hrc-locations .lc-primary { display: inline-flex; align-items: center; gap: 7px; align-self: flex-start; height: 28px; padding: 0 11px; border-radius: 999px; background: var(--orange-tint); color: var(--orange-type-aa); font: 600 12.5px/1 var(--font-sans); letter-spacing: .01em; }
.hrc-locations .lc-flag { display: inline-flex; align-items: center; height: 20px; margin-right: 8px; padding: 0 7px; border-radius: 4px; background: var(--orange-tint); color: var(--orange-type-aa); font: 600 10.5px/1 var(--font-sans); letter-spacing: .06em; text-transform: uppercase; vertical-align: 2px; }
.hrc-locations .lc-dot { margin: 0 2px; color: var(--grey-mark); }

/* ── every place ───────────────────────────────────────────────────────── */
.hrc-locations .lc-index { padding: 44px 0 96px; }
.hrc-locations .lc-empty { margin: 32px 0 0; color: var(--grey); }
.hrc-locations .lc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 36px; }
.hrc-locations .lc-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); color: var(--ink); text-decoration: none;
  transition: box-shadow var(--dur-action) var(--ease-action), border-color var(--dur-action) var(--ease-action); }
.hrc-locations .lc-card:hover { border-color: #D5D5DA; box-shadow: 0 12px 32px rgba(11, 11, 12, .08); }
.hrc-locations .lc-card:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
.hrc-locations .lc-card__pic { display: block; overflow: hidden; aspect-ratio: 16 / 8; background: var(--ink); }
.hrc-locations .lc-card__pic img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.001); transition: transform var(--dur-glyph) var(--ease-card); }
.hrc-locations .lc-card:hover .lc-card__pic img { transform: scale(1.035); }
.hrc-locations .lc-card__pic.is-empty { display: flex; align-items: center; justify-content: center; background: var(--lc-soft); color: var(--grey-mark); }
.hrc-locations .lc-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: 10px; padding: 22px 24px 24px; }
.hrc-locations .lc-card__title { font: 400 28px/1.1 var(--font-sans); letter-spacing: -.015em; }
.hrc-locations .lc-card__addr { display: inline-flex; align-items: center; gap: 7px; font: 400 15px/1.4 var(--font-sans); color: var(--grey); }
.hrc-locations .lc-card__addr svg { flex: none; color: var(--orange); }
.hrc-locations .lc-facs { display: flex; flex-wrap: wrap; gap: 6px; }
.hrc-locations .lc-fac { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 8px; background: var(--lc-soft); color: var(--ink); }
.hrc-locations .lc-card__next { display: flex; flex-direction: column; gap: 3px; align-self: stretch; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); font: 400 15px/1.4 var(--font-sans); }
.hrc-locations .lc-card__label { font: 600 11px/1.2 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--grey); }
.hrc-locations .lc-card__go { display: inline-flex; align-items: center; gap: 7px; margin-top: 4px; color: var(--orange-type-aa); font: 500 14px/1 var(--font-sans); }
/* the main places, then the others underneath: compact, three across */
.hrc-locations .lc-group { margin-top: 44px; }
.hrc-locations .lc-group.is-other { margin-top: 64px; padding-top: 44px; border-top: 1px solid var(--line); }
.hrc-locations .lc-group__h { margin: 0; font: 400 26px/1.15 var(--font-sans); letter-spacing: -.015em; color: var(--ink); }
.hrc-locations .lc-group__line { margin: 6px 0 0; font: 400 16px/1.45 var(--font-sans); color: var(--grey); }
.hrc-locations .lc-group .lc-grid { margin-top: 22px; }
.hrc-locations .lc-grid.is-compact { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.hrc-locations .lc-card.is-compact .lc-card__pic { aspect-ratio: 16 / 9; }
.hrc-locations .lc-card.is-compact .lc-card__body { gap: 8px; padding: 18px 20px 20px; }
.hrc-locations .lc-card.is-compact .lc-card__title { font-size: 22px; }
.hrc-locations .lc-card.is-compact .lc-card__addr { font-size: 14px; }
.hrc-locations .lc-card.is-compact .lc-card__next { padding-top: 12px; font-size: 14px; }
.hrc-locations .lc-link.is-inline { display: inline; font: inherit; font-weight: 500; }

/* ── one place ─────────────────────────────────────────────────────────── */
.hrc-locations .lc-hero { position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: 460px; overflow: hidden; background: var(--ink); color: var(--paper); }
.hrc-locations .lc-hero.is-plain { min-height: 0; }
.hrc-locations .lc-hero__media { position: absolute; inset: 0; z-index: -2; }
.hrc-locations .lc-hero__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hrc-locations .lc-hero__scrim { position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(11, 11, 12, .9) 0%, rgba(11, 11, 12, .55) 45%, rgba(11, 11, 12, .2) 100%); }
.hrc-locations .lc-hero__wrap { display: flex; flex-direction: column; align-items: flex-start; padding: 40px 0 44px; }
.hrc-locations .lc-hero .lc-crumbs { color: rgba(255, 255, 255, .7); }
.hrc-locations .lc-hero .lc-crumbs a:hover { color: var(--paper); }
.hrc-locations .lc-hero .lc-h1 { color: var(--paper); font-size: 56px; }
.hrc-locations .lc-primary.is-hero { margin: 0 0 14px; background: var(--orange); color: #fff; }
.hrc-locations .lc-hero__addr { display: inline-flex; align-items: center; gap: 8px; margin: 12px 0 0; font: 400 18px/1.4 var(--font-sans); color: rgba(255, 255, 255, .86); }
.hrc-locations .lc-hero__addr svg { flex: none; color: var(--orange-on-ink); }
.hrc-locations .lc-hero__acts { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 0; }

.hrc-locations .lc-body { padding: 56px 0 80px; }
.hrc-locations .lc-cols { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; align-items: start; }
.hrc-locations .lc-sec { scroll-margin-top: calc(var(--lc-head) + 24px); }
.hrc-locations .lc-main > .lc-sec + .lc-sec { margin-top: 48px; padding-top: 44px; border-top: 1px solid var(--line); }
.hrc-locations .lc-sec__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }

body.hrc-coded .hrc-locations .lc-map { margin: 0 0 8px; justify-content: space-between; gap: 14px; padding: 14px 14px 14px 18px; }
body.hrc-coded .hrc-locations .lc-map.is-on { padding: 0; }
.hrc-locations .lc-map__what { display: inline-flex; align-items: center; gap: 10px; min-width: 0; font: 400 15px/1.4 var(--font-sans); color: var(--ink); }
.hrc-locations .lc-map__what svg { flex: none; color: var(--orange); }
body.hrc-coded .hrc-locations .lc-map.is-on { aspect-ratio: 16 / 9; }
.hrc-locations .lc-map.is-on .lc-map__what { display: none; }
.hrc-locations .lc-facts { margin: 0; }
.hrc-locations .lc-fact { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.hrc-locations .lc-fact dt { display: inline-flex; align-items: flex-start; gap: 9px; font: 500 15px/1.45 var(--font-sans); color: var(--ink); }
.hrc-locations .lc-fact dt svg { flex: none; margin-top: 2px; color: var(--orange); }
.hrc-locations .lc-fact dd { margin: 0; font: 400 16px/1.55 var(--font-sans); color: var(--ink); }
.hrc-locations .lc-fact dd p { margin: 0; }
.hrc-locations .lc-fact dd p + p { margin-top: 10px; }
.hrc-locations .lc-fact:last-child { border-bottom: 0; padding-bottom: 0; }

.hrc-locations .lc-prose { max-width: 62ch; font: 400 17px/1.6 var(--font-sans); color: var(--ink); }
.hrc-locations .lc-prose p { margin: 0 0 12px; }
.hrc-locations .lc-faclist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 8px 0 0; padding: 0; list-style: none; }
.hrc-locations .lc-faclist li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 10px; background: var(--lc-soft); font: 400 15px/1.3 var(--font-sans); color: var(--ink); }
.hrc-locations .lc-faclist svg { flex: none; color: var(--ink); }
.hrc-locations .lc-surface { margin: 14px 0 0; font: 400 15px/1.4 var(--font-sans); }

.hrc-locations .lc-courses { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.hrc-locations .lc-course { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 10px; font: 400 15px/1.4 var(--font-sans); }
.hrc-locations .lc-course strong { font: 500 17px/1.3 var(--font-sans); }

.hrc-locations .lc-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.hrc-locations .lc-tile .v6-run__body { gap: 4px; padding: 16px; }
.hrc-locations .lc-tile .v6-run__title { font-size: 18px; line-height: 1.15; }

.hrc-locations .lc-side { position: sticky; top: calc(var(--adminbar, 0px) + var(--lc-head) + 24px); display: grid; gap: 16px; }
.hrc-locations .lc-card-box { padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); scroll-margin-top: calc(var(--lc-head) + 24px); }
.hrc-locations .lc-card-box.is-soft { border-color: transparent; background: var(--lc-soft); }
.hrc-locations .lc-evs { margin: 0; padding: 0; list-style: none; }
.hrc-locations .lc-ev { display: grid; grid-template-columns: 52px minmax(0, 1fr); grid-template-areas: "date main" "date act"; column-gap: 14px; row-gap: 10px; padding: 14px 0; border-top: 1px solid var(--line); }
.hrc-locations .lc-ev:first-child { padding-top: 4px; border-top: 0; }
.hrc-locations .lc-ev__date { grid-area: date; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; height: 62px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); text-decoration: none; }
.hrc-locations .lc-ev__date span { font: 600 10px/1 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--grey); }
.hrc-locations .lc-ev__date strong { font: 500 22px/1 var(--font-sans); font-variant-numeric: tabular-nums; }
.hrc-locations .lc-ev:first-child .lc-ev__date { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.hrc-locations .lc-ev:first-child .lc-ev__date span { color: var(--grey-on-ink); }
.hrc-locations .lc-ev__main { grid-area: main; min-width: 0; }
.hrc-locations .lc-ev__title { display: inline; color: var(--ink); font: 500 16px/1.3 var(--font-sans); text-decoration: none; }
.hrc-locations .lc-ev__title:hover { color: var(--orange-type-aa); }
.hrc-locations .lc-ev__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 5px; font: 400 13.5px/1.4 var(--font-sans); color: var(--grey); }
.hrc-locations .lc-ev__meta svg { flex: none; color: var(--orange); }
.hrc-locations .lc-ev__act { grid-area: act; display: flex; flex-wrap: wrap; gap: 8px; }
.hrc-locations .lc-ev__act .v6-btn.is-sm { height: 36px; padding: 0 14px; font-size: 13.5px; }
.hrc-locations .lc-more { margin: 12px 0 0; }
.hrc-locations .lc-glance { display: grid; gap: 12px; margin: 0; }
.hrc-locations .lc-glance div { display: flex; flex-direction: column; gap: 2px; }
.hrc-locations .lc-glance dt { font: 600 11px/1.2 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--grey); }
.hrc-locations .lc-glance dd { margin: 0; font: 400 15px/1.4 var(--font-sans); color: var(--ink); }

.hrc-locations .lc-others { padding: 0 0 88px; }
.hrc-locations .lc-others .lc-h2 { padding-top: 48px; border-top: 1px solid var(--line); font-size: 26px; }
.hrc-locations .lc-mini { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.hrc-locations .lc-mini__item { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); text-decoration: none;
  transition: border-color var(--dur-action) var(--ease-action), background-color var(--dur-action) var(--ease-action); }
.hrc-locations .lc-mini__item:hover { border-color: #D5D5DA; background: var(--paper-hover); }
.hrc-locations .lc-mini__item > span:nth-child(2) { display: flex; flex: 1; flex-direction: column; gap: 2px; min-width: 0; font: 400 13.5px/1.35 var(--font-sans); }
.hrc-locations .lc-mini__item strong { font: 500 16px/1.3 var(--font-sans); }
.hrc-locations .lc-mini__item.is-all > span { flex: 1; }
.hrc-locations .lc-mini__icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; background: var(--orange-tint); color: var(--orange-type-aa); flex: none; }
.hrc-locations .lc-mini__item > svg { flex: none; color: var(--grey); }

/* ── narrower screens ──────────────────────────────────────────────────── */
@media (max-width: 1180px) {
  .hrc-locations .lc-cols { grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; }
  .hrc-locations .lc-faclist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
  body.hrc-coded-locations .hrc-locations { --lc-head: 121px; }
  /* one column, in the order someone on their way needs it: getting there, what's coming up, then the rest */
  .hrc-locations .lc-cols { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .hrc-locations .lc-main, .hrc-locations .lc-side { display: contents; }
  .hrc-locations #getting-there { order: 1; }
  .hrc-locations #coming-up { order: 2; margin-top: 32px; }
  .hrc-locations .lc-side .is-soft { order: 3; margin-top: 16px; }
  .hrc-locations #about { order: 4; }
  .hrc-locations #courses { order: 5; }
  .hrc-locations #recent { order: 6; }
  .hrc-locations .lc-main > .lc-sec + .lc-sec { margin-top: 0; }
  .hrc-locations #about, .hrc-locations #courses, .hrc-locations #recent { margin-top: 40px; padding-top: 36px; border-top: 1px solid var(--line); }
  .hrc-locations .lc-mini { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hrc-locations .lc-grid.is-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .hrc-locations .lc-index { padding: 28px 0 64px; }
  .hrc-locations .lc-h1 { font-size: 34px; }
  .hrc-locations .lc-hero .lc-h1 { font-size: 36px; }
  .hrc-locations .lc-lead { font-size: 16px; }
  .hrc-locations .lc-h2 { font-size: 24px; margin-bottom: 16px; }
  .hrc-locations .lc-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 24px; }
  .hrc-locations .lc-card__body { padding: 18px 18px 20px; }
  .hrc-locations .lc-card__title { font-size: 24px; }
  .hrc-locations .lc-group { margin-top: 32px; }
  .hrc-locations .lc-group.is-other { margin-top: 48px; padding-top: 32px; }
  .hrc-locations .lc-group__h { font-size: 22px; }
  .hrc-locations .lc-group__line { font-size: 15px; }
  .hrc-locations .lc-group .lc-grid { margin-top: 16px; }
  .hrc-locations .lc-grid.is-compact { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .hrc-locations .lc-card.is-compact { flex-direction: row; }
  .hrc-locations .lc-card.is-compact .lc-card__pic { position: relative; flex: none; width: 112px; aspect-ratio: auto; }
  .hrc-locations .lc-card.is-compact .lc-card__pic img { position: absolute; inset: 0; transform: none; }
  .hrc-locations .lc-card.is-compact .lc-card__body { padding: 14px 16px 16px; }
  .hrc-locations .lc-card.is-compact .lc-card__title { font-size: 19px; }
  .hrc-locations .lc-card.is-compact .lc-card__go { display: none; }
  .hrc-locations .lc-hero { min-height: 400px; }
  .hrc-locations .lc-hero__wrap { padding: 28px 0 28px; }
  .hrc-locations .lc-hero__addr { font-size: 16px; }
  .hrc-locations .lc-hero__acts { width: 100%; }
  .hrc-locations .lc-hero__acts .v6-btn { flex: 1 1 auto; }
  .hrc-locations .lc-hero__acts .v6-btn.is-primary { flex-basis: 100%; }
  .hrc-locations .lc-body { padding: 32px 0 56px; }
  .hrc-locations .lc-fact { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 16px 0; }
  .hrc-locations .lc-fact dd { font-size: 15px; }
  body.hrc-coded .hrc-locations .lc-map { flex-direction: column; align-items: flex-start; }
  .hrc-locations .lc-faclist { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .hrc-locations .lc-faclist li { padding: 10px 12px; font-size: 14px; }
  .hrc-locations .lc-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .hrc-locations .lc-tiles .lc-tile:nth-child(3) { display: none; }
  .hrc-locations .lc-tile .v6-run__body { padding: 12px; }
  .hrc-locations .lc-tile .v6-run__title { font-size: 15px; }
  .hrc-locations .lc-tile .v6-run__eyebrow, .hrc-locations .lc-tile .v6-run__date { font-size: 12px; }
  .hrc-locations .lc-card-box { padding: 18px; }
  .hrc-locations .lc-mini { grid-template-columns: minmax(0, 1fr); }
  .hrc-locations .lc-others { padding-bottom: 64px; }
  .hrc-locations .lc-others .lc-h2 { padding-top: 36px; font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .hrc-locations .lc-card__pic img { transition: none; }
}
