/* Rapetrail geographic context map. No incident or resource-location layers. */
.page-key-rapetrail .matrix-rain,
.page-key-rapetrail .matrix-ticker { display: none; }

.rapetrail { display: grid; gap: 1.2rem; padding-top: 1.5rem; }
.rapetrail h1, .rapetrail h2, .rapetrail h3, .rapetrail p { margin-top: 0; }
.rapetrail-intro { max-width: 64rem; }
.rapetrail-intro__name, .rapetrail-results__heading, .rapetrail-layers legend {
  color: var(--signal); font: 700 0.78rem var(--mono); letter-spacing: 0.08em; text-transform: uppercase;
}
.rapetrail-intro h1 { margin-bottom: 0.6rem; font: 700 clamp(2.3rem, 5vw, 4.3rem)/1.05 var(--display); }
.rapetrail-intro > p:not(.rapetrail-intro__name) { max-width: 65ch; line-height: 1.6; }
.rapetrail-intro__note, .rapetrail-map__notice, .rapetrail-search__status { color: var(--muted); font-size: 0.9rem; }

.rapetrail-toolbar {
  position: sticky; top: 0; z-index: 30; display: grid;
  grid-template-columns: minmax(240px, 1fr) auto auto; align-items: end; gap: 0.75rem;
  padding: 0.75rem; border: 1px solid var(--line); border-radius: var(--radius-lg);
  background: var(--surface-strong); box-shadow: var(--shadow-soft);
}
.rapetrail-search { position: relative; min-width: 0; }
.rapetrail-search label { display: block; margin-bottom: 0.35rem; color: var(--muted); font: 700 0.78rem var(--mono); }
.rapetrail-search__input-row { display: flex; min-width: 0; }
.rapetrail-search input[type="search"] {
  width: 100%; min-width: 0; height: 2.7rem; padding: 0 0.75rem; border: 1px solid var(--line);
  border-radius: var(--radius-md) 0 0 var(--radius-md); color: var(--ink); background: var(--bg-deep);
  font: 500 0.92rem var(--body);
}
.rapetrail-search button, .rapetrail-context-nav a, .rapetrail-exit {
  display: inline-flex; align-items: center; justify-content: center; min-height: 2.7rem;
  padding: 0.4rem 0.75rem; border: 1px solid var(--line); border-radius: var(--radius-md);
  color: var(--ink); background: var(--surface-soft); font: 700 0.9rem var(--body); text-decoration: none;
  cursor: pointer;
}
.rapetrail-search__input-row button { flex: none; border-radius: 0 var(--radius-md) var(--radius-md) 0; border-left: 0; }
.rapetrail-context-nav { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.rapetrail-context-nav a[aria-current="page"] { border-color: var(--accent); color: var(--bg-deep); background: var(--accent); }
.rapetrail-exit { border-color: var(--gold); white-space: nowrap; }
.rapetrail-exit span { margin-left: 0.4rem; }
.rapetrail-search button:hover, .rapetrail-context-nav a:hover, .rapetrail-exit:hover { border-color: var(--accent); }
.rapetrail-search input:focus-visible, .rapetrail-search button:focus-visible,
.rapetrail-context-nav a:focus-visible, .rapetrail-exit:focus-visible,
.rapetrail-layers input:focus-visible, .rapetrail-search__results button:focus-visible {
  outline: 3px solid var(--gold); outline-offset: 2px;
}
.rapetrail-search__results {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 40; max-height: 21rem; overflow: auto;
  margin: 0.2rem 0 0; padding: 0.25rem; border: 1px solid var(--line);
  border-radius: var(--radius-md); background: var(--surface-strong); box-shadow: var(--shadow);
  list-style: none;
}
.rapetrail-search__results[hidden] { display: none; }
.rapetrail-search__results li { margin: 0; }
.rapetrail-search__results button {
  display: grid; width: 100%; gap: 0.2rem; min-height: 3.2rem; padding: 0.5rem 0.65rem;
  border: 0; border-radius: var(--radius-md); color: var(--ink); background: transparent;
  text-align: left; cursor: pointer;
}
.rapetrail-search__results button:hover { background: var(--signal-soft); }
.rapetrail-search__results strong { font: 700 0.92rem var(--body); }
.rapetrail-search__results small { color: var(--muted); font: 500 0.78rem var(--body); }

.rapetrail-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, 0.36fr); gap: 1.2rem; align-items: start; }
.rapetrail-layout__main { display: grid; min-width: 0; gap: 1.5rem; }
.rapetrail-safety, .rapetrail-privacy, .rapetrail-results, .rapetrail-pathway {
  padding: 1.2rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface-strong);
}
.rapetrail-safety { border-left: 4px solid var(--gold); }
.rapetrail-safety h2, .rapetrail-privacy h2, .rapetrail-results h2,
.rapetrail-pathways h2, .rapetrail-pathway h3 { margin-bottom: 0.55rem; font-family: var(--display); line-height: 1.2; }
.rapetrail-safety p, .rapetrail-privacy p, .rapetrail-results p, .rapetrail-pathway p {
  margin-bottom: 0; color: var(--muted); line-height: 1.6;
}
.rapetrail-section-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.rapetrail-section-heading > span { color: var(--muted); font-size: 0.85rem; }
.rapetrail-map-shell {
  position: relative; isolation: isolate; min-height: 32rem; overflow: hidden;
  border: 1px solid var(--line); border-radius: var(--radius-lg); background: #0c2030;
}
.rapetrail-map { height: 32rem; width: 100%; }
.rapetrail-map .maplibregl-control-container { font-family: var(--body); }
.rapetrail-map .maplibregl-ctrl-group { background: var(--surface-strong); }
.rapetrail-map .maplibregl-ctrl-group button { border-color: var(--line); }
.rapetrail-map .maplibregl-ctrl-group button + button { border-top-color: var(--line); }
.rapetrail-map .maplibregl-ctrl-group button span { filter: invert(1); }
.rapetrail-map .maplibregl-ctrl-attrib { color: #132b31; }
.rapetrail-map .maplibregl-ctrl-scale { color: #f5fff7; background: rgba(3, 15, 7, 0.7); border-color: #f5fff7; }
.rapetrail-layers {
  position: absolute; top: 0.65rem; left: 0.65rem; z-index: 3; display: grid; gap: 0.4rem;
  min-width: 8.8rem; margin: 0; padding: 0.6rem 0.7rem;
  border: 1px solid var(--line); border-radius: var(--radius-md);
  color: var(--ink); background: var(--surface-strong); box-shadow: var(--shadow-soft);
}
.rapetrail-layers legend { padding: 0 0.25rem; }
.rapetrail-layers label { display: flex; gap: 0.4rem; align-items: center; font: 600 0.78rem var(--body); cursor: pointer; }
.rapetrail-layers input { accent-color: var(--accent); }
.rapetrail-map__state {
  position: absolute; right: 0.6rem; bottom: 1.8rem; z-index: 3; max-width: 65%;
  margin: 0; padding: 0.35rem 0.55rem; border-radius: var(--radius-md);
  color: #e7ffed; background: rgba(3, 15, 7, 0.85); font: 600 0.73rem var(--body);
}
.rapetrail-map-label {
  color: #ecfff5; font: 700 0.65rem var(--body); text-shadow: 0 1px 3px #061d1a, 0 0 5px #061d1a;
  white-space: nowrap; pointer-events: none;
}
.rapetrail-campus-marker {
  display: block; width: 1.15rem; height: 1.15rem; border: 3px solid #fff;
  border-radius: 50% 50% 50% 0; background: var(--gold); box-shadow: 0 1px 12px #061d1a;
  transform: rotate(-45deg);
}
.rapetrail-map__notice { margin: 0.65rem 0 0; line-height: 1.5; }
.rapetrail-map__notice a { color: var(--signal); }
.rapetrail-search__status:empty { display: none; }
.rapetrail-search__status { margin: 0.5rem 0 0; }
.rapetrail-pathways__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.8rem; }
.rapetrail-pathway { border-top: 3px solid var(--accent); }
.rapetrail-results { position: sticky; top: 5.6rem; }
.rapetrail-results__heading { display: flex; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.9rem; }
.rapetrail-results__heading p { color: inherit; }
.rapetrail-results__list { margin: 0 0 1rem; padding-left: 1.2rem; }
.rapetrail-results__list li { margin-bottom: 1rem; padding-left: 0.2rem; }
.rapetrail-results__list h3 { margin-bottom: 0.3rem; font: 700 1.03rem/1.3 var(--display); }
.rapetrail-results__list h3 a { color: var(--ink); }
.rapetrail-results__list dl { display: grid; gap: 0.25rem; margin: 0.6rem 0 0; font-size: 0.8rem; }
.rapetrail-results__list dl div { display: grid; grid-template-columns: 3.7rem 1fr; gap: 0.4rem; }
.rapetrail-results__list dt { color: var(--signal); font-weight: 700; }
.rapetrail-results__list dd { margin: 0; color: var(--muted); }

@media (max-width: 1080px) {
  .rapetrail-toolbar { grid-template-columns: minmax(200px, 1fr) auto; }
  .rapetrail-search { grid-column: 1 / -1; }
  .rapetrail-context-nav { grid-column: 1; grid-row: 2; }
  .rapetrail-exit { grid-column: 2; grid-row: 2; }
  .rapetrail-layout { display: flex; flex-direction: column; }
  .rapetrail-layout__main { display: contents; }
  .rapetrail-layout > *, .rapetrail-layout__main > * { width: 100%; min-width: 0; }
  .rapetrail-safety { order: 1; }
  .rapetrail-map-section { order: 2; }
  .rapetrail-results { order: 3; }
  .rapetrail-pathways { order: 4; }
  .rapetrail-privacy { order: 5; }
  .rapetrail-results { position: static; }
}
@media (max-width: 720px) {
  .rapetrail-toolbar { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .rapetrail-search { grid-column: 1 / -1; }
  .rapetrail-context-nav { grid-column: 1; grid-row: 2; }
  .rapetrail-exit { grid-column: 2; grid-row: 2; }
  .rapetrail-context-nav a { min-height: 2.45rem; padding-inline: 0.5rem; font-size: 0.78rem; }
  .rapetrail-exit { min-height: 2.45rem; padding-inline: 0.5rem; font-size: 0.78rem; }
  .rapetrail-map-shell { min-height: 29rem; }
  .rapetrail-map { height: 29rem; }
  .rapetrail-section-heading { display: block; }
  .rapetrail-map__state { max-width: 55%; }
  .rapetrail-pathways__cards { grid-template-columns: 1fr; }
}
@media (max-width: 390px) {
  .rapetrail-context-nav { gap: 0.2rem; }
  .rapetrail-context-nav a, .rapetrail-exit { font-size: 0.72rem; padding-inline: 0.35rem; }
}
