/* Las Vegas only. Loaded by the Las Vegas shells, never by index.html, so the
   Fishers stylesheet and the Fishers pages stay exactly as they are. */

@font-face {
  font-family: "Public Sans";
  src: url("/assets/fonts/public-sans/PublicSans-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Public Sans";
  src: url("/assets/fonts/public-sans/PublicSans-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Public Sans";
  src: url("/assets/fonts/public-sans/PublicSans-SemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Public Sans";
  src: url("/assets/fonts/public-sans/PublicSans-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

html.city-lasvegas,
html.city-lasvegas body,
body.city-lasvegas {
  --font-ui: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --fs-11: 11px;
  --fs-12: 12px;
  --fs-13: 13px;
  --fs-14: 14px;
  --fs-16: 16px;
  --fs-18: 18px;
  --fs-22: 22px;
  --fs-28: 28px;
  --lh-tight: 1.2;
  --lh-ui: 1.35;
  --lh-body: 1.45;
  --ls-label: .08em;
  --ls-eyebrow: .1em;
  font-family: var(--font-ui);
  font-size: var(--fs-16);
  line-height: var(--lh-body);
  font-feature-settings: "kern" 1, "liga" 1;
}
body.city-lasvegas input,
body.city-lasvegas textarea,
body.city-lasvegas button,
body.city-lasvegas select {
  font-family: inherit;
}

/* Header wordmark and Parks & Recreation eyebrow. */
body.city-lasvegas #hdr .t h1.city {
  margin: 0;
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: var(--fs-16);
  letter-spacing: -0.015em;
  line-height: var(--lh-tight);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
body.city-lasvegas #hdr .t .sub,
html.city-lasvegas #hdr .t .sub,
body.city-lasvegas #citySub {
  font-size: var(--fs-11);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  line-height: var(--lh-tight);
}

/* Small-caps section labels: NAMED TRAILS, LOCAL TRAIL LINE. */
body.city-lasvegas .listGroup,
body.city-lasvegas .sect h3,
body.city-lasvegas #listHead h2,
body.city-lasvegas #printPage h2 {
  font-size: var(--fs-11);
  font-weight: 600;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  line-height: var(--lh-tight);
}

/* Numbers that have to line up: stats, mile chips, station ids. */
body.city-lasvegas .stat,
body.city-lasvegas .stat b,
body.city-lasvegas .statChip,
body.city-lasvegas .statChip b,
body.city-lasvegas .badge,
body.city-lasvegas #listCount,
body.city-lasvegas .practical,
body.city-lasvegas .parkOffN,
body.city-lasvegas .sizeChip,
body.city-lasvegas .factStrip,
body.city-lasvegas .planChip,
body.city-lasvegas .alongChip {
  font-variant-numeric: tabular-nums lining-nums;
}

body.city-lasvegas .rItem.rCard .n {
  font-size: var(--fs-16);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: var(--lh-tight);
}
body.city-lasvegas .rItem .lead {
  font-size: var(--fs-13);
  line-height: var(--lh-ui);
}
body.city-lasvegas .chip {
  font-size: var(--fs-13);
  font-weight: 600;
}
body.city-lasvegas .rHead h1 {
  font-size: var(--fs-22);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: var(--lh-tight);
}
body.city-lasvegas .sect p {
  font-size: var(--fs-14);
  line-height: var(--lh-body);
}
body.city-lasvegas .welcome {
  font-size: var(--fs-14);
  line-height: var(--lh-ui);
}
body.city-lasvegas .stat b {
  font-size: var(--fs-18);
  font-weight: 700;
}
body.city-lasvegas .badge {
  font-weight: 700;
  font-size: var(--fs-13);
}
body.city-lasvegas .badge.big {
  font-size: var(--fs-18);
}

   City seal in the header and veil: the LV monogram is not enough. Keep a round
   mark so style.css's border-radius still fits, and size it so the tower and
   ring text read as the City of Las Vegas. */
body.city-lasvegas #hdr .mark.mark-lv,
html.city-lasvegas #hdr .mark.mark-lv {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #1a3654;
  box-shadow: inset 0 0 0 1px rgba(201, 164, 92, .7);
  object-fit: cover;
}
body.city-lasvegas #veil .mark.mark-lv,
html.city-lasvegas #veil .mark.mark-lv {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #1a3654;
  object-fit: cover;
}
body.city-lasvegas .recClasses { margin: 8px 0 0; padding-left: 18px; }
body.city-lasvegas .recClasses li { margin: 0 0 4px; font-size: 13.5px; line-height: 1.4; }
body.city-lasvegas .recSource { font-size: 11.5px; color: #5a6160; margin-top: 10px; }
body.city-lasvegas .srGroup { color: #5a6160; }
body.city-lasvegas .photoCredit { color: #5a6160; }
body.city-lasvegas #listCount { color: #5a6160; }
body.city-lasvegas .rItem .d { color: #5a6160; }
body.city-lasvegas #hdr .t .sub,
html.city-lasvegas #hdr .t .sub,
body.city-lasvegas #citySub { color: #5a6160; }
body.city-lasvegas .sd { color: #5a6160; }
body.city-lasvegas .meta { color: #5a6160; }
body.city-lasvegas [style*="background:#E0A100"],
body.city-lasvegas [style*="background:#e0a100"] { color: #1a1408 !important; }
body.city-lasvegas button[style*="color:#E0A100"],
body.city-lasvegas button[style*="color:#e0a100"] { color: #8a5a00 !important; }
body.city-lasvegas .recSource a { color: #145c3a; }
body.city-lasvegas #layers { display: block; }
body.city-lasvegas #mapLegend .senior {
  width: 10px; height: 10px; border-radius: 50%; background: #C0712B; flex: none;
}
body.city-lasvegas #mapLegend .pool {
  width: 10px; height: 10px; border-radius: 50%; background: #1a7a9c; flex: none;
}
body.city-lasvegas .walkTimes .srItem { margin-top: 6px; }
body.city-lasvegas .walkFrom {
  margin: 8px 16px 0;
  font-size: 12.5px;
  color: #5c6562;
  line-height: 1.4;
}
body.city-lasvegas .walkFrom.demoted {
  font-size: 11.5px;
  color: #5a6160;
}
body.city-lasvegas mark {
  background: #e4e8e4;
  color: inherit;
  padding: 0 0.12em;
  border-radius: 2px;
}
body.city-lasvegas .recClasses li.classHit { font-weight: 650; }
body.city-lasvegas .srItem.srActive { background: #eef0ee; }
body.city-lasvegas .srItem .sd mark { font-weight: 650; }
body.city-lasvegas #searchLive,
body.city-lasvegas .srOnly {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
body.city-lasvegas #mapLegend .net {
  width: 18px;
  height: 0;
  border-top: 2.5px solid #3a5c54;
  background: transparent;
  flex: none;
  border-radius: 0;
}
body.city-lasvegas .chip.busy {
  gap: 8px;
}
body.city-lasvegas .chipSpin {
  display: inline-block;
  width: 11px;
  height: 11px;
  margin-right: 6px;
  border: 2px solid rgba(26, 35, 48, .2);
  border-top-color: #2f6f66;
  border-radius: 50%;
  vertical-align: -2px;
  animation: tlChipSpin .7s linear infinite;
}
body.city-lasvegas .chip[aria-pressed="true"] .chipSpin {
  border-color: rgba(255, 255, 255, .35);
  border-top-color: #fff;
}
@keyframes tlChipSpin {
  to { transform: rotate(360deg); }
}
body.city-lasvegas #floBar {
  flex-wrap: wrap;
  align-items: center;
  border-radius: 999px;
  padding: 6px 8px 6px 8px;
  gap: 8px 12px;
  min-width: 0;
  top: calc(var(--chrome-top) + 10px);
  bottom: auto;
  left: calc(var(--panel-w) + (100vw - var(--panel-w)) / 2);
  transform: translateX(-50%);
  z-index: 61;
}
body.city-lasvegas #floBar > div:not(.floTrack) {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
body.city-lasvegas #floStop {
  background: transparent;
  padding: 4px 12px;
  font-size: 13px;
}
body.city-lasvegas .aBtn[data-act="flyover"] {
  position: relative;
  overflow: hidden;
}
body.city-lasvegas .aBtn[data-act="flyover"].floBusy::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  width: var(--flo-p, 0%);
  background: currentColor;
  opacity: .55;
}
body.city-lasvegas .aBtn[data-act="flyover"]:disabled {
  opacity: .65;
  cursor: default;
}
body.city-lasvegas #floBar .floTrack {
  flex: 1 1 100%;
  order: -1;
  height: 3px;
  background: rgba(255, 255, 255, .2);
  border-radius: 99px;
  overflow: hidden;
}
body.city-lasvegas #floBar .floTrack > i {
  display: block;
  height: 100%;
  width: 0%;
  background: #fff;
  border-radius: 99px;
}
body.city-lasvegas #floBar.done .fm { opacity: 1; }
@media (max-width: 899px) {
  body.city-lasvegas #floBar {
    left: 12px;
    right: 12px;
    transform: none;
    top: calc(var(--chrome-top) + 8px);
    bottom: auto;
    max-width: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.city-lasvegas [data-act="flyover"] { display: inline-flex !important; }
}
body.city-lasvegas .alertCard.heat { border-left: 3px solid #b54708; }
body.city-lasvegas .listGroup {
  font-size: var(--fs-11);
  font-weight: 600;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: #5a6160;
  padding: 12px 4px 4px;
}
body.city-lasvegas .listGroup:first-child { padding-top: 2px; }
body.city-lasvegas .elsewhereToggle {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 10px 0 4px;
  padding: 10px 4px;
  border: 0;
  border-top: 1px solid rgba(26, 35, 48, .12);
  background: transparent;
  color: #5c6562;
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .03em;
  text-transform: uppercase;
  text-align: left;
  cursor: pointer;
}
body.city-lasvegas .elsewhereToggle::after {
  content: '';
  width: 8px;
  height: 8px;
  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  transform: rotate(45deg);
  opacity: .7;
}
body.city-lasvegas .elsewhereToggle[aria-expanded="true"]::after {
  transform: rotate(-135deg);
  margin-top: 4px;
}
body.city-lasvegas .browseItem { min-height: 44px; }
body.city-lasvegas .alongBranch {
  margin: 0 0 8px 10px;
  padding-left: 10px;
  border-left: 2px solid #3E8E3E;
}
body.city-lasvegas .alongBranchHead {
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  color: #215c21;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 0 4px;
  cursor: pointer;
}
body.city-lasvegas .alongToggle {
  display: block;
  width: 100%;
  margin: 6px 0;
  padding: 8px 4px;
  background: transparent;
  border: 0;
  color: var(--accent-ink);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}
body.city-lasvegas .alongMore {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 180ms ease;
}
body.city-lasvegas .alongMore.open { grid-template-rows: 1fr; }
body.city-lasvegas .alongMoreInner { overflow: hidden; }
@media (prefers-reduced-motion: reduce) {
  body.city-lasvegas .alongMore { transition: none; }
}
body.city-lasvegas .nearYouBlock { margin-bottom: 6px; }
body.city-lasvegas .beyondNote {
  font-size: 12.5px;
  color: #5c6562;
  margin: 6px 0 0;
}
body.city-lasvegas #mapLegend .clsTrail {
  width: 18px;
  height: 0;
  border-top: 3.5px solid #2f6f4e;
  background: transparent;
  flex: none;
  border-radius: 0;
}
body.city-lasvegas #mapLegend .clsStreet {
  width: 18px;
  height: 0;
  border-top: 2px solid #8a7669;
  background: transparent;
  flex: none;
  border-radius: 0;
  opacity: .85;
}
body.city-lasvegas #mapLegend .clsPark {
  width: 18px;
  height: 0;
  border-top: 2.5px solid #3E8E3E;
  background: transparent;
  flex: none;
  border-radius: 0;
}
body.city-lasvegas #mapLegend .netBike {
  width: 18px; height: 0; border-top: 2px dashed #2a4d82; background: transparent; flex: none; border-radius: 0;
}
body.city-lasvegas #mapLegend .netEnh {
  width: 18px; height: 0; border-top: 2.4px dashed #1e3f6e; background: transparent; flex: none; border-radius: 0;
}
body.city-lasvegas #mapLegend .netRoute {
  width: 18px; height: 0; border-top: 1.6px dashed #3d4e62; background: transparent; flex: none; border-radius: 0;
}
body.city-lasvegas #mapLegend .netPark {
  width: 18px; height: 0; border-top: 2px dotted #4a6e32; background: transparent; flex: none; border-radius: 0;
}
body.city-lasvegas #mapLegend .stMark {
  width: 14px; height: 14px; border-radius: 50%; flex: none;
  background: #fff;
  box-shadow: inset 0 0 0 2px #c45c26;
  background-image: linear-gradient(#2E8B3A, #2E8B3A), linear-gradient(#E0A100, #E0A100), linear-gradient(#C2185B, #C2185B), linear-gradient(#00A8D5, #00A8D5);
  background-size: 6px 2px, 7px 2px, 8px 2px, 9px 2px;
  background-repeat: no-repeat;
  background-position: 3px 3px, 3px 5.5px, 3px 8px, 3px 10.5px;
}
body.city-lasvegas #mapLegend .fc {
  width: 18px; height: 18px; border-radius: 4px; flex: none;
  background: #0b63b8; box-shadow: inset 0 0 0 2px #fff;
}
body.city-lasvegas .rItem .lead {
  display: block;
  font-weight: 500;
  color: #5c534c;
  margin-top: 4px;
  line-height: 1.35;
}
body.city-lasvegas .rItem .practical {
  display: block;
  font-size: 12.5px;
  color: #5a6160;
  margin-top: 4px;
  font-weight: 500;
}
body.city-lasvegas #nearBtn { display: none; }
body.city-lasvegas .welcome { font-size: 14px; padding: 8px 16px 0; }
body.city-lasvegas .chip {
  padding: 6px 11px;
  min-height: 32px;
  font-size: var(--fs-13);
  font-weight: 600;
  white-space: nowrap;
}
body.city-lasvegas #layers { padding-top: 6px; }
body.city-lasvegas #layers .fLabel { display: none; }
body.city-lasvegas #layers .fRow {
  flex-wrap: wrap;
}
body.city-lasvegas .rItem.rCard { margin-bottom: 8px; padding-bottom: 8px; }
body.city-lasvegas .promoSect p {
  font-size: 15px;
  line-height: 1.45;
  color: #1a2330;
}
body.city-lasvegas .promoSect p + p { margin-top: 10px; }
body.city-lasvegas .rItem.rCard > * { pointer-events: none; }
body.city-lasvegas .learnMore { margin: 12px 16px 0; font-size: 14px; }
body.city-lasvegas .learnMore a { font-weight: 650; color: #145c3a; }
body.city-lasvegas .rItem.rCard .rThumb { height: 92px; }
body.city-lasvegas .rItem.rCard .rThumb,
body.city-lasvegas .srItem.srCard .rThumb {
  background: #f7f8f7;
}
body.city-lasvegas .unverifiedNote {
  font-size: 12.5px;
  font-weight: 500;
  color: #5c6562;
  margin: 6px 0 0;
  line-height: 1.35;
}
body.city-lasvegas .alertCard.closure { border-left: 3px solid #b42318; }
body.city-lasvegas .alertCard.construction { border-left: 3px solid #854d0e; }

body.city-lasvegas .skipLink {
  position: absolute;
  left: 8px;
  top: 8px;
  z-index: 200;
  background: #1a2330;
  color: #fff;
  padding: 8px 12px;
  border-radius: 8px;
  font-weight: 650;
  transform: translateY(-120%);
}
body.city-lasvegas .skipLink:focus {
  transform: none;
}
body.city-lasvegas #mapLegend {
  pointer-events: auto;
}
body.city-lasvegas .legendToggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #f4f7f4;
  background: transparent;
  border-radius: 999px;
}
body.city-lasvegas #mapLegend.collapsed {
  padding: 0;
  max-width: none;
  flex-direction: row;
  gap: 0;
  border-radius: 999px;
}
body.city-lasvegas #mapLegend.collapsed .legendBody { display: none; }
body.city-lasvegas #mapLegend:not(.collapsed) .legendToggle {
  align-self: flex-start;
  padding: 2px 4px 6px;
  min-height: 0;
  opacity: .8;
}
body.city-lasvegas .legendBody {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
body.city-lasvegas .facChip {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .01em;
  background: #eceeed;
  color: #2a3330;
  padding: 1px 7px;
  border-radius: 99px;
  text-transform: none;
}
body.city-lasvegas .paceNote {
  margin: 2px 0 0;
  font-size: 12px;
  font-weight: 500;
  color: #5a6160;
}
body.city-lasvegas .factStrip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 0;
  margin: 0 16px 10px;
  padding: 8px 0;
  border-bottom: 1px solid #e3e6e3;
  font-size: 12.5px;
  font-weight: 650;
  color: #2a3330;
}
body.city-lasvegas .factStrip i {
  display: inline-block;
  width: 1px;
  height: 12px;
  margin: 0 8px;
  background: #d4d7d4;
}
body.city-lasvegas .fcHero {
  background: #0b63b8;
  height: 168px;
  min-height: 148px;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.city-lasvegas .fcHeroInner {
  text-align: center;
  color: #fff;
}
body.city-lasvegas .fcHeroInner img {
  display: block;
  margin: 0 auto 8px;
  width: 88px;
  height: 88px;
  object-fit: contain;
}
body.city-lasvegas .fcHeroInner p {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
}
body.city-lasvegas.print-card #searchDock,
body.city-lasvegas.print-card #mapFilters,
body.city-lasvegas.print-card #lineBarWrap,
body.city-lasvegas.print-card #mapLegend,
body.city-lasvegas.print-card #credit,
body.city-lasvegas.print-card #floBar,
body.city-lasvegas.print-card #skipIntro,
body.city-lasvegas.print-card .hdrTools,
body.city-lasvegas.print-card .skipLink,
body.city-lasvegas.print-card .backRow,
body.city-lasvegas.print-card .actions .aBtn:not(.primary) {
  display: none !important;
}
body.city-lasvegas.print-card #app {
  display: flex;
  flex-direction: column;
  height: auto;
  min-height: 100%;
}
body.city-lasvegas.print-card #map {
  position: relative !important;
  inset: auto !important;
  height: 240px !important;
  width: 736px !important;
  max-width: 100% !important;
  flex: none;
  margin: 0 auto;
}
body.city-lasvegas.print-card.print-portrait #map {
  width: 240px !important;
  height: 420px !important;
}
body.city-lasvegas.print-card #panel {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  left: auto !important;
  bottom: auto !important;
  width: 100% !important;
  max-width: 720px;
  height: auto !important;
  max-height: none !important;
  transform: none !important;
  box-shadow: none;
  border-radius: 0;
  padding-top: 12px;
  overflow: visible;
}
body.city-lasvegas.print-card #panelScroll { height: auto; max-height: none; overflow: visible; }
body.city-lasvegas .printQr {
  margin: 16px;
  text-align: center;
}
body.city-lasvegas .printQr p {
  margin: 8px 0 0;
  font-size: 12.5px;
  color: #5c6562;
}
@media (max-width: 899px) {
  body.city-lasvegas #mapLegend {
    max-width: min(72vw, 280px);
  }
  body.city-lasvegas #mapLegend.collapsed {
    max-width: none;
  }
  body.city-lasvegas .fcHero,
  body.city-lasvegas .fcHero { height: 132px; min-height: 120px; }
  body.city-lasvegas.print-card #map { height: 200px; }
  body.city-lasvegas.print-card #panel { top: 200px; }
}
@media print {
  body.city-lasvegas.print-card #hdr { position: static; }
  body.city-lasvegas.print-card #map { height: 220px; page-break-inside: avoid; }
  body.city-lasvegas.print-card #panel { top: 0; position: static; }
}

/* Why this file exists: on a phone, typing in the search box raises the sheet,
   and style.css hides #searchDock under body.sheet-up. The focused input goes
   with it, so the browser drops focus and the keyboard closes after one letter.
   Fishers avoids that by moving the one search box into the sheet header
   (#sheetSearch). Those rules are scoped to body.city-fishers, so Las Vegas
   never got them. Mirror them here for Las Vegas. */
@media (max-width: 899px) {
  html.city-lasvegas,
  body.city-lasvegas {
    --sheet-search-h: 56px;
    --peek-h: 30dvh;
    --sheet-half-h: 55dvh;
    --search-h: 48px;
    --mapfilters-h: 0px;
    --linebar-h: 0px;
    --explore-top: var(--chrome-top);
    --header-h: 48px;
  }
  body.city-lasvegas .rItem.rCard .rThumb { height: 72px; }
  body.city-lasvegas .rItem.rCard .n { font-size: 15px; }
  body.city-lasvegas .rItem.rCard .lead { font-size: 13px; }
  body.city-lasvegas .welcome { display: none; }
  body.city-lasvegas #listHead { padding-top: 6px; }
  body.city-lasvegas #sheetSearch:not([hidden]) {
    display: block;
    flex: none;
    padding: 0 12px 10px;
    background: var(--card);
  }
  body.city-lasvegas #sheetSearch #searchBox {
    background: #f1f3f0;
    box-shadow: none;
    padding: 10px 13px;
  }
  body.city-lasvegas.sheet-search #panel.half #panelScroll {
    height: calc(var(--sheet-half-h) - 36px - var(--sheet-search-h));
    max-height: calc(var(--sheet-half-h) - 36px - var(--sheet-search-h));
  }
}

/* Hero credit: vegas.css .photoCredit is brown for body copy. The overlay
   on a light still needs white on a dark strip so it reads. */
body.city-lasvegas .routeHero .photoCredit {
  color: #fff;
  background: linear-gradient(transparent, rgba(0, 0, 0, .55));
  text-shadow: 0 1px 2px rgba(0, 0, 0, .45);
}

body.city-lasvegas .factStrip {
  gap: 0 2px;
}
body.city-lasvegas .factStrip .factDot {
  display: inline-block;
  margin: 0 8px;
  color: #8a7a6e;
  font-weight: 700;
}
body.city-lasvegas .factStrip i { display: none; }

/* Legend pill: white chip, dark text, 40 px, readable on satellite. */
body.city-lasvegas #mapLegend.collapsed {
  background: #fff;
  color: #1a2330;
  box-shadow: 0 2px 10px rgba(18, 24, 20, .22);
  min-height: 40px;
  height: 40px;
  padding: 0 4px 0 4px;
  align-items: center;
  border: 1px solid rgba(26, 35, 48, .12);
}
body.city-lasvegas #mapLegend.collapsed .legendToggle {
  color: #1a2330;
  background: #fff;
  min-height: 40px;
  height: 40px;
  padding: 0 14px;
  letter-spacing: .04em;
}
body.city-lasvegas .legendToggle {
  color: #1a2330;
}
body.city-lasvegas #mapLegend:not(.collapsed) {
  background: #fff;
  color: #1a2330;
  box-shadow: 0 2px 14px rgba(18, 24, 20, .18);
  border: 1px solid rgba(26, 35, 48, .1);
  max-height: min(46vh, 380px);
  overflow-y: auto;
}
@media (max-width: 899px) {
  body.city-lasvegas #mapLegend:not(.collapsed) {
    top: calc(var(--chrome-top) + 8px + var(--search-h) + 8px);
    bottom: calc(var(--peek-h) + 12px);
    left: 12px;
    right: auto;
    height: auto;
    min-height: 0;
    max-width: min(78vw, 300px);
    max-height: none;
    overflow-x: hidden;
    overflow-y: auto;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    z-index: 31;
  }
  body.city-lasvegas #mapLegend:not(.collapsed) .legendBody {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
  }
}
body.city-lasvegas #mapLegend:not(.collapsed) .legendToggle {
  color: #1a2330;
  opacity: 1;
}
body.city-lasvegas #mapLegend .legMark,
body.city-lasvegas #mapLegend .legFill,
body.city-lasvegas #mapLegend .legLine {
  flex: none;
  object-fit: contain;
}
body.city-lasvegas #mapLegend .legMark { width: 18px; height: 18px; }
body.city-lasvegas #mapLegend .legFill { width: 12px; height: 9px; }
body.city-lasvegas #mapLegend .legLine { width: 18px; height: 8px; }
body.city-lasvegas #mapLegend .netMiles {
  font-size: 11px;
  font-weight: 600;
  color: #5a6160;
  padding-top: 4px;
}

/* Quiet Filter chips. Rust stays off this row. */
body.city-lasvegas #layers .filterRow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  width: 100%;
  max-height: none;
  overflow: visible;
}
body.city-lasvegas #layers .filterToggle,
body.city-lasvegas #layers .filterDone {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid #d4d7d4;
  background: #fff;
  color: #2a3330;
  font-size: 12px;
  font-weight: 650;
}
body.city-lasvegas #layers .filterDone {
  background: #1a2330;
  color: #fff;
  border-color: #1a2330;
}
body.city-lasvegas #layers .filterGlyph { display: block; }
body.city-lasvegas #layers .filterChips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  flex: 1 1 100%;
  max-height: none;
  overflow: visible;
}
body.city-lasvegas #layers .chip.quietChip {
  background: #fff;
  color: #1a2330;
  border: 1px solid #d4d7d4;
  font-size: 13px;
  font-weight: 550;
  min-height: 28px;
  padding: 4px 10px 4px 8px;
  gap: 6px;
  display: inline-flex;
  align-items: center;
}
body.city-lasvegas #layers .chip.quietChip[aria-pressed="true"],
body.city-lasvegas #layers .chip.quietChip.on {
  background: color-mix(in srgb, var(--chip-tint, #eceeed) 70%, #fff);
  color: #1a1408;
  border-color: #c5cac5;
}
body.city-lasvegas #layers .chip.quietChip[data-layer="stations"][aria-pressed="true"] { background: #e8ece8; }
body.city-lasvegas #layers .chip.quietChip[data-layer="fcourt"][aria-pressed="true"] { background: #dceaf8; }
body.city-lasvegas #layers .chip.quietChip[data-layer="parks"][aria-pressed="true"] { background: #e3f0e3; }
body.city-lasvegas #layers .chip.quietChip[data-layer="recreation"][aria-pressed="true"] { background: #e2e6f8; }
body.city-lasvegas #layers .chip.quietChip[data-layer="senior"][aria-pressed="true"] { background: #eee4f6; }
body.city-lasvegas #layers .chip.quietChip[data-layer="pools"][aria-pressed="true"] { background: #dceef4; }
body.city-lasvegas #layers .chip.quietChip[data-layer="network"][aria-pressed="true"] { background: #e4ece9; }
body.city-lasvegas #layers .chipDot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex: none;
}
body.city-lasvegas #layers .chipCheck {
  font-size: 11px;
  font-weight: 800;
  margin-left: 2px;
}
body.city-lasvegas #layers.filterCollapsed .filterChips { display: none; }
body.city-lasvegas #layers.filterCollapsed .filterDone { display: none; }
@media (min-width: 900px) {
  body.city-lasvegas #layers .filterDone { display: none; }
}

/* Print card: one Letter portrait page. */
#printPage[hidden] { display: none !important; }
#printPage {
  display: none;
  background: #fff;
  color: #1a1408;
  font-family: var(--font-ui);
}
body.city-lasvegas.print-ready #app { display: none !important; }
body.city-lasvegas.print-ready #printPage {
  display: block;
  max-width: 8.5in;
  min-height: 11in;
  margin: 0 auto;
  padding: 36px 40px 28px;
  box-sizing: border-box;
}
body.city-lasvegas.print-ready #printPage .printHead {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
body.city-lasvegas.print-ready #printPage .printSeal {
  width: 48px; height: 48px; border-radius: 50%;
  background: #1a3654;
}
body.city-lasvegas.print-ready #printPage .printWord {
  font-size: var(--fs-18); font-weight: 700; letter-spacing: -0.015em; line-height: var(--lh-tight);
}
body.city-lasvegas.print-ready #printPage .printDept {
  font-size: var(--fs-11); font-weight: 600; letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: #5a6160;
}
body.city-lasvegas.print-ready #printPage h1 {
  font-size: var(--fs-28); margin: 0 0 4px; line-height: var(--lh-tight); font-weight: 700; letter-spacing: -0.02em;
}
body.city-lasvegas.print-ready #printPage .printClass {
  font-size: var(--fs-13); font-weight: 600; color: #5a6160; margin: 0 0 12px;
}
body.city-lasvegas.print-ready #printPage .routeHero {
  margin: 0 0 12px; height: 220px; min-height: 180px;
}
body.city-lasvegas.print-ready #printPage .routeHero img {
  height: 220px;
}
body.city-lasvegas.print-ready #printPage .printMap {
  margin: 0 0 12px;
}
body.city-lasvegas.print-ready #printPage .printMap img {
  display: block; width: 100%; height: 240px; object-fit: contain;
  background: #f4f1ec;
  border-radius: 8px; border: 1px solid #e3e6e3;
}
body.city-lasvegas.print-ready #printPage .factStrip {
  margin: 0 0 14px; padding: 8px 0;
}
body.city-lasvegas.print-ready #printPage section {
  margin: 0 0 12px;
}
body.city-lasvegas.print-ready #printPage h2 {
  font-size: var(--fs-11); letter-spacing: var(--ls-label); text-transform: uppercase; font-weight: 600;
  color: #5a6160; margin: 0 0 4px;
}
body.city-lasvegas.print-ready #printPage p {
  font-size: var(--fs-14); line-height: var(--lh-body); margin: 0;
}
body.city-lasvegas.print-ready #printPage p + p { margin-top: 8px; }
body.city-lasvegas.print-ready #printPage .printQr {
  margin-top: 18px; display: flex; align-items: center; gap: 12px; text-align: left;
}
body.city-lasvegas.print-ready #printPage .printQr p {
  font-size: 12px; color: #5a6160;
}
@page { size: letter portrait; margin: 0.45in; }
@media print {
  body.city-lasvegas.print-ready #app,
  body.city-lasvegas.print-card #app { display: none !important; }
  body.city-lasvegas.print-ready #printPage {
    display: block !important;
    max-width: none;
    min-height: 0;
    padding: 0;
    box-shadow: none;
  }
  body.city-lasvegas.print-ready #printPage .routeHero,
  body.city-lasvegas.print-ready #printPage .printMap { page-break-inside: avoid; }
}

/* r15: Las Vegas Trail Lines header, You-are-here beacon, near-you, station sign */
body.city-lasvegas #listHead {
  align-items: center;
  gap: 10px;
}
body.city-lasvegas #listTitle.lvTrailLines {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  text-transform: none;
  letter-spacing: -0.015em;
  font-size: var(--fs-16);
  font-weight: 700;
  color: #1a2330;
  white-space: nowrap;
}
body.city-lasvegas #listTitle .tlBars {
  height: 22px;
  width: auto;
  display: block;
  flex: none;
}
body.city-lasvegas #listCount {
  font-size: 13px;
  flex: none;
}
body.city-lasvegas #hdr .t .sub,
body.city-lasvegas #citySub {
  font-size: var(--fs-11);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
}
body.city-lasvegas .seg button { font-size: 13px; min-height: 40px; }
body.city-lasvegas .yahChip {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  background: #0A5A8A;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  vertical-align: middle;
}
body.city-lasvegas .badge.big {
  font-size: var(--fs-18);
  line-height: 1.1;
}
body.city-lasvegas .strengthNote { margin-top: 8px; }
body.city-lasvegas .parkLoopBadge { outline: 3px solid #3E8E3E; outline-offset: 1px; }
body.city-lasvegas .nearYouCard {
  margin: 8px 16px 4px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
body.city-lasvegas .nearYouLead {
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 4px;
}
body.city-lasvegas .nearYouWhy {
  font-size: 13px;
  color: #5a6160;
  margin: 0 0 10px;
}
body.city-lasvegas .nearYouCard .aBtn {
  min-height: 40px;
  padding: 8px 14px;
}
body.city-lasvegas .nearYouCard.collapsed {
  margin: 4px 16px;
  padding: 0;
  border: 0;
  background: transparent;
}
body.city-lasvegas .nearYouLink {
  font-size: 13px;
  font-weight: 700;
  color: var(--accent-ink);
  min-height: 40px;
  text-decoration: underline;
}
body.city-lasvegas .nearYouItem { min-height: 44px; }
body.city-lasvegas #yahLocate[hidden] { display: none !important; }
body.city-lasvegas #yahLocate {
  position: absolute;
  right: 12px;
  bottom: 132px;
  z-index: 8;
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  background: #fff;
  color: #1a2330;
  border: 1px solid rgba(26, 35, 48, .14);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 2px 10px rgba(18, 24, 20, .18);
}
body.city-lasvegas .yahAddrForm {
  display: flex;
  gap: 8px;
  margin: 8px 0;
}
body.city-lasvegas .yahAddrForm input {
  flex: 1;
  min-height: 40px;
  border: 1px solid var(--line, #d7d0c8);
  border-radius: 10px;
  padding: 0 10px;
  font: inherit;
}
body.city-lasvegas .yahParkPicks {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 4px 0 8px;
}
body.city-lasvegas #yahRecenter[hidden] { display: none !important; }
body.city-lasvegas #yahRecenter {
  position: absolute;
  right: 12px;
  bottom: 88px;
  z-index: 8;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  color: #1a2330;
  border: 1px solid rgba(26, 35, 48, .14);
  border-radius: 999px;
  min-height: 40px;
  padding: 0 14px 0 10px;
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 2px 10px rgba(18, 24, 20, .18);
}
body.city-lasvegas #yahRecenter .yahGlyph {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #1F9BD7;
  box-shadow: 0 0 0 2px #fff, 0 0 0 3px #1F9BD7;
  flex: none;
}
body.city-lasvegas #toast.mapToast,
body.city-lasvegas #toast {
  top: calc(var(--header-h, 58px) + 10px);
  bottom: auto;
  left: 50%;
  max-width: min(88vw, 320px);
  text-align: center;
  z-index: 40;
}
@media (min-width: 900px) {
  body.city-lasvegas #toast.mapToast,
  body.city-lasvegas #toast {
    left: calc(var(--panel-w, 392px) + (100vw - var(--panel-w, 392px)) / 2);
  }
}
body.city-lasvegas .walkRow {
  display: flex;
  align-items: stretch;
  gap: 8px;
  border-bottom: 1px solid #f0f2ee;
}
body.city-lasvegas .walkRow .srItem {
  flex: 1;
  border-bottom: 0;
  min-height: 44px;
}
body.city-lasvegas .goBtn {
  flex: none;
  align-self: center;
  min-height: 40px;
  min-width: 44px;
  margin-right: 10px;
  padding: 8px 12px;
  border-radius: 10px;
  background: #1F9BD7;
  color: #fff;
  font-weight: 700;
  font-size: 13px;
}
body.city-lasvegas #walkBanner {
  position: absolute;
  z-index: 9;
  left: 12px;
  right: 12px;
  top: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  background: rgba(18, 24, 20, .92);
  color: #fff;
  border-radius: 12px;
  padding: 8px 8px 8px 14px;
  font-size: 13.5px;
  font-weight: 650;
}
body.city-lasvegas #walkBanner[hidden] { display: none; }
body.city-lasvegas #walkDone {
  min-height: 40px;
  padding: 0 12px;
  border-radius: 10px;
  background: rgba(255,255,255,.16);
  color: #fff;
  font-weight: 700;
  font-size: 13px;
}
body.city-lasvegas .seeNearby {
  min-height: 44px;
  font-weight: 700;
  color: var(--accent-ink);
}
body.city-lasvegas .loopLap { margin-top: 8px; }
body.city-lasvegas.print-ready #printPage.printPortrait .printSplit {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
body.city-lasvegas.print-ready #printPage.printPortrait .printMap {
  flex: 0 0 240px;
  width: 240px;
  margin: 0;
}
body.city-lasvegas.print-ready #printPage.printPortrait .printMap img {
  width: 240px;
  height: 420px;
  object-fit: contain;
}
body.city-lasvegas.print-ready #printPage.printPortrait .printCopy {
  flex: 1;
  min-width: 0;
}
body.city-lasvegas .maplibregl-marker:has(.yahMark) { z-index: 6 !important; }
body.city-lasvegas .yahMark {
  width: 44px;
  height: 44px;
  position: relative;
  pointer-events: none;
  overflow: visible;
  z-index: 6;
}
body.city-lasvegas .yahMark .yahCore {
  position: absolute;
  left: 50%; top: 50%;
  width: 14px; height: 14px;
  margin: -7px 0 0 -7px;
  border-radius: 50%;
  background: var(--yah, #1F9BD7);
  box-shadow: 0 0 0 3px #fff, 0 2px 8px rgba(18, 24, 20, .4);
  z-index: 2;
}
body.city-lasvegas .yahMark.yahQr .yahCore {
  background: #1F9BD7;
  box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--yah, #C45C26), 0 2px 8px rgba(18, 24, 20, .4);
}
body.city-lasvegas .yahMark.sat .yahCore {
  box-shadow: 0 0 0 3px #fff, 0 0 0 6px rgba(0, 0, 0, .45), 0 2px 8px rgba(18, 24, 20, .4);
}
body.city-lasvegas .yahMark .yahRing {
  position: absolute;
  left: 50%; top: 50%;
  width: 20px; height: 20px;
  margin: -10px 0 0 -10px;
  border-radius: 50%;
  border: 3px solid #fff;
  z-index: 1;
  box-shadow: 0 2px 8px rgba(18, 24, 20, .28);
}
body.city-lasvegas .yahMark .yahPulse {
  position: absolute;
  left: 50%; top: 50%;
  width: 14px; height: 14px;
  margin: -7px 0 0 -7px;
  border-radius: 50%;
  background: var(--yah-pulse, var(--yah, #1F9BD7));
  opacity: 0.6;
  z-index: 0;
  animation: yahPulse 1.8s ease-out infinite;
}
body.city-lasvegas .yahMark.static .yahPulse { display: none; }
/* Oct 13 (Olivia): the city's demo location says it is one, so nobody takes Bill Briare for their own position */
body.city-lasvegas .yahMark .yahDemo {
  position: absolute;
  left: 50%; bottom: 100%;
  transform: translate(-50%, -2px);
  padding: 3px 8px;
  border-radius: 999px;
  background: #fff;
  color: #0A5A8A;
  border: 1px solid #0A5A8A;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .18);
  font: 700 11px/1.1 var(--vt-font, inherit);
  letter-spacing: .02em;
  white-space: nowrap;
}
body.city-lasvegas .yahMark .yahDemo[hidden] { display: none; }
@keyframes yahPulse {
  0% { transform: scale(1); opacity: 0.6; }
  100% { transform: scale(3.142); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  body.city-lasvegas .yahMark .yahPulse { display: none; }
}
body.city-lasvegas #langToggle {
  min-height: 28px;
  min-width: 28px;
  width: 28px;
  height: 28px;
  padding: 0;
  border-radius: 8px;
  background: #eef0ed;
  color: var(--ink);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
@media (max-width: 899px) {
  body.city-lasvegas #hdr .mark.mark-lv {
    width: 28px;
    height: 28px;
  }
  body.city-lasvegas #hdr .t .city {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.1;
  }
}
@media (max-width: 400px) {
  body.city-lasvegas #hdr .t .city {
    font-size: 12px;
    letter-spacing: 0;
  }
}
@media (max-width: 380px) {
  body.city-lasvegas #listTitle.lvTrailLines {
    font-size: 12px;
    gap: 5px;
  }
  body.city-lasvegas #listTitle .tlBars {
    height: 16px;
  }
  body.city-lasvegas #listCount {
    font-size: 11px;
  }
}
body.city-lasvegas #langToggle[aria-pressed="true"] {
  background: #0A5A8A;
  color: #fff;
}
body.city-lasvegas .planWalk {
  margin: 8px 16px 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
body.city-lasvegas .planWalk h3 {
  margin: 0 0 4px;
  font-size: 15px;
}
body.city-lasvegas .planWalkWhy {
  margin: 0 0 10px;
  font-size: 13px;
  color: #5a6160;
}
body.city-lasvegas .planChips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
body.city-lasvegas .planChip {
  min-height: 40px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #f4f6f3;
  font-weight: 700;
  font-size: 13px;
}
body.city-lasvegas .planChip[aria-pressed="true"] {
  background: #0A5A8A;
  color: #fff;
  border-color: #0A5A8A;
}
body.city-lasvegas .planOpt {
  margin-top: 10px;
  padding: 10px 0 0;
  border-top: 1px solid #f0f2ee;
}
body.city-lasvegas .planOpt .sn { font-weight: 700; }
body.city-lasvegas .planOpt .sd {
  font-size: 11px;
  color: #5a6160;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
body.city-lasvegas .planOptActs {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}
body.city-lasvegas .alongChips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
body.city-lasvegas .alongChip {
  min-height: 40px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  font-weight: 700;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #1a2330;
}
body.city-lasvegas .meta .alongChip {
  min-height: 0;
  padding: 2px 8px;
  vertical-align: middle;
}
body.city-lasvegas .alongChip .ic {
  width: 18px;
  height: 18px;
  font-size: 9px;
  line-height: 18px;
  border-radius: 50%;
  color: #fff;
  text-align: center;
  flex: none;
}
body.city-lasvegas #mapLegend .yahLeg,
body.city-lasvegas #mapLegend .legMark[src*="icon-me"] { width: 18px; height: 18px; }
body.city-lasvegas .aBtn, body.city-lasvegas #nearBtn, body.city-lasvegas #mapNear {
  min-height: 40px;
}
body.city-lasvegas #searchClear { min-width: 40px; min-height: 40px; }
body.city-lasvegas .backBtn { min-height: 40px; }
body.city-lasvegas, body.city-lasvegas #app { overflow-x: hidden; }
body.city-lasvegas .recSource { font-size: 13px; }
body.city-lasvegas #mapLegend .netMiles { font-size: 13px; }
body.city-lasvegas.print-station #printPage {
  max-width: 8.5in;
  min-height: 11in;
}
body.city-lasvegas.print-station #printPage .signQr {
  margin-top: 28px;
  flex-direction: column;
  align-items: flex-start;
}
body.city-lasvegas.print-station #printPage .signQr img {
  width: 220px !important;
  height: 220px !important;
}
@media (max-width: 899px) {
  body.city-lasvegas #yahRecenter {
    bottom: calc(var(--sheet-cover, var(--peek-h, 168px)) + 12px);
  }
  body.city-lasvegas #yahLocate {
    bottom: calc(var(--sheet-cover, var(--peek-h, 168px)) + 56px);
  }
  body.city-lasvegas #walkBanner {
    top: 8px;
    left: 10px;
    right: 10px;
  }
}

/* r25: station size, large or medium, from the Design Lab */
.sizeChip {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .22rem .55rem; margin-right: .35rem;
  border-radius: 999px; font-size: .78rem; font-weight: 700;
  letter-spacing: .01em; white-space: nowrap;
  border: 1px solid rgba(55, 65, 79, .18); color: #37414f; background: #f4f6f4;
}
.sizeChip-large { background: #e8f1e6; border-color: rgba(62, 142, 62, .38); color: #2c6b2c; }
.sizeChip-medium { background: #f4f6f4; border-color: rgba(55, 65, 79, .2); color: #4d5763; }

/* r26 civic palette. Overrides the warm brown family in style.css for Las Vegas only. */
html.city-lasvegas,
html.city-lasvegas body,
body.city-lasvegas {
  --paper: #f7f8f7;
  --accent: #0f7b4b;
  --accent-ink: #145c3a;
}
html.city-lasvegas body,
body.city-lasvegas { background: #f7f8f7; }
body.city-lasvegas .band i:nth-child(1) { background: #1f4e40 !important; }
body.city-lasvegas .band i:nth-child(2) { background: #3d6e5a !important; }
body.city-lasvegas .band i:nth-child(3) { background: #8b9590 !important; }
body.city-lasvegas .band i:nth-child(4) { background: #1a2330 !important; }
body.city-lasvegas #hdr { background: rgba(247, 248, 247, .96); }
body.city-lasvegas #hdr .t .city { color: #1a2330; }
body.city-lasvegas.citizen #mapLegend {
  background: rgba(247, 248, 247, .94); color: #1a2330;
}
body.city-lasvegas .aBtn.primary,
body.city-lasvegas #nearBtn,
body.city-lasvegas #mapNear {
  background: var(--accent);
  color: #fff;
  border: 0;
}
body.city-lasvegas .aBtn:not(.primary) {
  background: #fff;
  color: #1a2330;
  border: 1px solid #d4d7d4;
}
body.city-lasvegas .parkMarks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 4px 16px 10px;
}
body.city-lasvegas .parkMark {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 10px;
  text-align: left;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #d4d7d4;
  color: #1a2330;
  font: inherit;
}
body.city-lasvegas .parkMark.on {
  border-color: #b7c9be;
  background: #f3f6f4;
}
body.city-lasvegas .parkMark img,
body.city-lasvegas .parkMarkDot {
  width: 28px;
  height: 28px;
  flex: none;
  border-radius: 50%;
}
body.city-lasvegas .parkMarkDot.trail { background: #3d7a4a; }
body.city-lasvegas .parkMarkDot.fc { background: #0b63b8; }
body.city-lasvegas .parkMark b {
  display: block;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .02em;
}
body.city-lasvegas .parkMark span span {
  display: block;
  font-size: 12px;
  color: #5a6160;
  font-weight: 500;
  line-height: 1.3;
}
body.city-lasvegas .parkPhotoWell {
  margin: 0 16px 8px;
  height: 112px;
  border-radius: 12px;
  background: #eef0ee;
  border: 1px dashed #d4d7d4;
}
body.city-lasvegas .parkOffSect { padding-top: 10px; }
body.city-lasvegas .parkOffGrid {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 8px;
  margin: 0;
  padding: 0;
}
body.city-lasvegas .parkOffItem {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 4px 2px;
}
body.city-lasvegas .parkOffIcon {
  width: 28px;
  height: 28px;
  flex: none;
  border-radius: 50%;
  background: #6a6e68;
}
body.city-lasvegas .parkOffName {
  flex: 1;
  min-width: 0;
  font-size: 13.5px;
  font-weight: 600;
  color: #1a2330;
  line-height: 1.25;
}
body.city-lasvegas .parkOffAges {
  display: block;
  font-size: 11.5px;
  font-weight: 500;
  color: #5a6160;
  margin-top: 1px;
}
body.city-lasvegas .parkOffN {
  flex: none;
  min-width: 22px;
  text-align: right;
  font-size: 13px;
  font-weight: 750;
  color: #3d5a73;
}
@media (max-width: 899px) {
  body.city-lasvegas .parkMarks { grid-template-columns: 1fr; }
  body.city-lasvegas .parkOffGrid { grid-template-columns: 1fr 1fr; }
}


/* r26: the legend used to sit top-left directly over the park you were looking
   at, covering amenity icons at every zoom. Google Maps has no persistent
   legend; ours moves to the bottom-left, out of the reading area, and starts
   collapsed so the map is never obscured before you ask for it. */
/* style.css is frozen byte-identical for Fishers, so the Las Vegas legend
   override lives here. It was still the old cream, rgba(255,252,248), which
   read brown against the new neutral chrome. */
body.city-lasvegas.citizen #mapLegend {
  background: rgba(255, 255, 255, .96);
  color: #1f2933;
}
body.city-lasvegas #mapLegend {
  top: auto;
  bottom: 34px;
  left: 8px;
  max-height: min(52vh, 460px);
  overflow: auto;
  box-shadow: 0 2px 10px rgba(31, 41, 51, .14);
}
@media (max-width: 899px) {
  /* With the sheet up, the visible map on a phone is a strip a few hundred
     pixels tall. A legend placed anywhere in it covers the amenity icons the
     reader came to see, which is exactly what it was doing. Google Maps ships
     no legend on mobile; the Filter chips already name every layer. */
  body.city-lasvegas #mapLegend { display: none !important; }
}

/* r26e: the header title is now an h1 for document structure. A page with no
   h1 and no landmarks fails WCAG 1.3.1, which the ADA Title II rule adopts.
   style.css is frozen byte-identical for Fishers, so the reset lives here.
   Visual output is unchanged, this is purely semantic. */
body.city-lasvegas #hdr .t h1.city {
  margin: 0;
  font-weight: 700;
  font-size: var(--fs-16);
  letter-spacing: -0.015em;
  line-height: var(--lh-tight);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Compact card stats and the locate icon live in the DOM for both widths.
   Desktop keeps the existing card copy and the text locate pill. */
body.city-lasvegas .rStats { display: none; }
body.city-lasvegas #yahLocate .yahLocateIc { display: none; }

/* r28 mobile: map owns the screen. Header is one row, search is a floating
   pill, the sheet peeks at about 30 percent. Desktop 1440 is unchanged. */
@media (max-width: 899px) {
  body.city-lasvegas #map {
    inset: var(--chrome-top) 0 0 0;
    top: var(--chrome-top);
  }
  body.city-lasvegas #panel {
    height: min(92svh, 92dvh, calc(100svh - var(--chrome-top)));
    max-height: min(92svh, 92dvh, calc(100svh - var(--chrome-top)));
  }
  body.city-lasvegas #hdr {
    height: 48px;
    min-height: 48px;
    max-height: 48px;
    padding: 0 10px 0 8px;
    gap: 8px;
    flex-wrap: nowrap;
  }
  body.city-lasvegas #hdr .brand { gap: 8px; min-width: 0; flex: 1 1 auto; }
  body.city-lasvegas #hdr .t { min-width: 0; }
  body.city-lasvegas #hdr .t .city,
  body.city-lasvegas #hdr .t h1.city {
    font-size: 14px;
    letter-spacing: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.15;
  }
  body.city-lasvegas #hdr .t .sub { display: none; }
  body.city-lasvegas #hdr .seg { display: none; }
  body.city-lasvegas #alertBtn.none { display: none; }
  body.city-lasvegas #alertBtn {
    min-width: 44px;
    min-height: 44px;
    padding: 0 10px;
  }
  body.city-lasvegas #langToggle {
    min-width: 44px;
    min-height: 44px;
    width: 36px;
    height: 36px;
    font-size: 11px;
  }
  body.city-lasvegas .hdrTools { gap: 2px; }

  body.city-lasvegas #searchDock {
    top: calc(var(--chrome-top) + 10px);
    left: 12px;
    right: 12px;
    width: auto;
    height: 48px;
    padding: 0 4px 0 0;
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 1px 3px rgba(60, 64, 67, .3), 0 4px 8px rgba(60, 64, 67, .15);
    z-index: 36;
    pointer-events: auto;
  }
  body.city-lasvegas #searchBox {
    background: transparent;
    box-shadow: none;
    height: 48px;
    min-height: 48px;
    padding: 0 8px 0 14px;
    border-radius: 24px;
  }
  body.city-lasvegas #search {
    font-size: 16px;
  }
  body.city-lasvegas #mapNear {
    display: flex;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    border-radius: 50%;
    background: transparent;
    color: #3c4043;
    box-shadow: none;
    flex: none;
  }
  body.city-lasvegas #mapNear span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }
  body.city-lasvegas.sheet-up #searchDock {
    visibility: visible;
    pointer-events: auto;
  }
  body.city-lasvegas.sheet-search #searchDock {
    visibility: hidden;
    pointer-events: none;
  }
  body.city-lasvegas #sheetSearch #searchBox {
    height: 48px;
    min-height: 48px;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(60, 64, 67, .18);
    padding: 0 14px;
  }
  body.city-lasvegas #lineBarWrap,
  body.city-lasvegas #mapFilters {
    display: none !important;
  }

  body.city-lasvegas #grab {
    min-height: 44px;
    padding: 14px 0 8px;
  }
  body.city-lasvegas .chip,
  body.city-lasvegas #layers .filterToggle,
  body.city-lasvegas #layers .filterDone,
  body.city-lasvegas .srItem,
  body.city-lasvegas .nearYouItem,
  body.city-lasvegas .planChip,
  body.city-lasvegas .alongChip {
    min-height: 44px;
  }
  body.city-lasvegas #layers .filterToggle,
  body.city-lasvegas #layers .filterDone {
    height: 44px;
    padding: 0 14px;
  }

  body.city-lasvegas .rItem.rCard .rThumb,
  body.city-lasvegas .srItem.srCard .rThumb {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
  }
  body.city-lasvegas .rItem.rCard .lead {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  body.city-lasvegas .rItem.rCard .practical { display: none; }
  body.city-lasvegas .rStats {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 12px;
    margin-top: 6px;
    overflow: hidden;
  }
  body.city-lasvegas .rStat {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    font-size: 12px;
    font-weight: 650;
    color: #3c4844;
    white-space: nowrap;
  }
  body.city-lasvegas .rStatIc {
    flex: none;
    color: #5a6160;
  }

  body.city-lasvegas #mapLayerBtn {
    position: absolute;
    right: 12px;
    z-index: 8;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #1a2330;
    border: 1px solid rgba(26, 35, 48, .14);
    border-radius: 50%;
    box-shadow: 0 2px 10px rgba(18, 24, 20, .18);
  }
  body.city-lasvegas #mapLayerBtn[hidden] { display: none !important; }
  body.city-lasvegas #yahLocate {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    border-radius: 50%;
    right: 12px;
  }
  body.city-lasvegas #yahLocate .yahLocateIc { display: block; }
  body.city-lasvegas #yahLocate .yahLocateLabel {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }
  body.city-lasvegas .maplibregl-ctrl-bottom-right,
  body.city-lasvegas .maplibregl-ctrl-bottom-left {
    bottom: calc(var(--sheet-cover, var(--peek-h)) + 8px);
    margin-bottom: 0;
  }
  body.city-lasvegas .maplibregl-ctrl-bottom-left {
    right: 64px;
    left: 8px;
    max-width: calc(100% - 76px);
  }
  /* r28: no scale bar on a phone, Google Maps mobile hides it too. The
     attribution stays as the (i) button. */
  body.city-lasvegas .maplibregl-ctrl-bottom-left .maplibregl-ctrl-scale { display: none; }
  body.city-lasvegas #mapNear svg {
    width: 20px;
    height: 20px;
    flex: none;
  }
  body.city-lasvegas #toast.mapToast,
  body.city-lasvegas #toast {
    top: calc(var(--chrome-top) + 62px);
  }
}

@media (max-width: 899px) and (max-height: 500px) {
  html.city-lasvegas,
  body.city-lasvegas {
    --peek-h: 38dvh;
    --sheet-half-h: 72dvh;
    --header-h: 40px;
  }
  body.city-lasvegas #hdr {
    height: 40px;
    min-height: 40px;
    max-height: 40px;
  }
  body.city-lasvegas #searchDock {
    top: calc(var(--chrome-top) + 6px);
  }
  body.city-lasvegas .rItem.rCard .rThumb,
  body.city-lasvegas .srItem.srCard .rThumb {
    max-height: 96px;
  }
  body.city-lasvegas .nearYouWhy { display: none; }
}

@media (max-width: 360px) {
  body.city-lasvegas #hdr { padding: 0 6px; gap: 4px; }
  body.city-lasvegas #hdr .t .city,
  body.city-lasvegas #hdr .t h1.city { font-size: 12.5px; }
  body.city-lasvegas #searchDock { left: 8px; right: 8px; }
  body.city-lasvegas #mapLayerBtn,
  body.city-lasvegas #yahLocate { right: 8px; }
}

/* =====================================================================
   r29 DESIGN LAYER — "Mojave light"
   The Las Vegas Trail Line's own look: warm sand paper, juniper ink,
   signage type for names and numbers, the Trail Line colours on the
   trails and the Fitness Court blue on the courts. Everything below is
   scoped to html.city-lasvegas body so Fishers and New Lenox are untouched.
   ===================================================================== */
@font-face {
  font-family: "Overpass";
  src: url("/assets/fonts/overpass/Overpass-Variable-latin.woff2") format("woff2");
  font-weight: 600 800;
  font-style: normal;
  font-display: swap;
}
html.city-lasvegas {
  --vt-paper: #FBF9F5;
  --vt-card: #FFFFFF;
  --vt-sand: #F3EFE7;
  --vt-sand-2: #ECE6DA;
  --vt-line: #E7E0D3;
  --vt-line-2: #D9D0BF;
  --vt-ink: #1F2A24;
  --vt-ink-2: #535C55;
  --vt-ink-3: #858C84;
  --vt-juniper: #1D5A40;
  --vt-juniper-2: #2D7A4B;
  --vt-sage: #E7EFE0;
  --vt-sage-2: #D5E3CB;
  --vt-fc: #1560BD;
  --vt-fc-tint: #E6EFFA;
  --vt-sun: #C45C26;
  --vt-display: "Overpass", "Public Sans", -apple-system, "Segoe UI", Arial, sans-serif;
  --vt-shadow-1: 0 1px 2px rgba(48, 36, 22, .08), 0 1px 1px rgba(48, 36, 22, .04);
  --vt-shadow-2: 0 6px 24px rgba(48, 36, 22, .12), 0 2px 6px rgba(48, 36, 22, .08);
  --vt-shadow-3: 0 18px 48px rgba(48, 36, 22, .18), 0 4px 12px rgba(48, 36, 22, .08);
  --ink: var(--vt-ink);
  --ink-2: var(--vt-ink-2);
  --ink-3: var(--vt-ink-3);
  --line: var(--vt-line);
  --accent: var(--vt-juniper);
  --accent-ink: var(--vt-juniper);
  --radius: 18px;
  --band-h: 4px;
}
html.city-lasvegas body { background: #F4F1EA; color: var(--vt-ink); }
html.city-lasvegas body button:focus-visible,
html.city-lasvegas body a:focus-visible,
html.city-lasvegas body input:focus-visible { outline-color: var(--vt-juniper-2); }

/* ---- the band: the four Trail Line bars, not a flag ---- */
html.city-lasvegas body .band i:nth-child(1) { background: #2E8B3A !important; }
html.city-lasvegas body .band i:nth-child(2) { background: #E0A100 !important; }
html.city-lasvegas body .band i:nth-child(3) { background: #C2185B !important; }
html.city-lasvegas body .band i:nth-child(4) { background: #00A8D5 !important; }

/* ---- header ---- */
html.city-lasvegas body #hdr {
  background: rgba(251, 249, 245, .96);
  border-bottom: 1px solid var(--vt-line);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset;
}
html.city-lasvegas body #hdr .t h1.city,
html.city-lasvegas body #hdr .t .city {
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -0.01em;
  color: var(--vt-ink);
  line-height: 1.05;
  padding-top: 3px;
}
html.city-lasvegas body #hdr .t .sub,
html.city-lasvegas body #citySub {
  color: var(--vt-juniper-2);
  font-weight: 700;
  font-size: 10.5px;
  letter-spacing: .14em;
  margin-top: 1px;
}
html.city-lasvegas body #hdr .mark.mark-lv { box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--vt-line-2); }
html.city-lasvegas body .seg {
  background: var(--vt-sand);
  border: 1px solid var(--vt-line);
  border-radius: 999px;
  padding: 2px;
}
/* Oct 13 (Olivia): the Map / Satellite pill is as tall as the ES and alerts pills beside it (29 px) */
html.city-lasvegas body .seg button {
  border-radius: 999px;
  font-weight: 650;
  font-size: 13px;
  line-height: 1;
  color: var(--vt-ink-2);
  padding: 4px 12px;
  min-height: 23px;
}
html.city-lasvegas body .seg button[aria-pressed="true"] {
  background: var(--vt-card);
  color: var(--vt-ink);
  box-shadow: var(--vt-shadow-1);
}
html.city-lasvegas body #alertBtn,
html.city-lasvegas body #langBtn,
html.city-lasvegas body .langBtn {
  border-radius: 999px;
  background: var(--vt-sand);
  border: 1px solid var(--vt-line);
  color: var(--vt-ink-2);
}

/* ---- panel ---- */
html.city-lasvegas body #panel {
  background: var(--vt-paper);
  border-radius: var(--radius);
  box-shadow: var(--vt-shadow-3);
  border: 1px solid rgba(231, 224, 211, .9);
}
html.city-lasvegas body #panelScroll { scrollbar-color: var(--vt-line-2) transparent; }

/* ---- search ---- */
html.city-lasvegas body #searchBox {
  background: var(--vt-card);
  border: 1px solid var(--vt-line-2);
  border-radius: 999px;
  padding: 11px 16px;
  box-shadow: var(--vt-shadow-1);
  transition: border-color .15s, box-shadow .15s;
}
html.city-lasvegas body #searchBox:focus-within {
  border-color: var(--vt-juniper-2);
  box-shadow: 0 0 0 3px rgba(45, 122, 75, .16);
}
html.city-lasvegas body #searchBox svg { color: var(--vt-juniper-2); }
html.city-lasvegas body #search::placeholder { color: var(--vt-ink-3); }
html.city-lasvegas body .welcome {
  color: var(--vt-ink-2);
  font-size: 13.5px;
  padding-top: 4px;
}

/* ---- map layers: the filter IS the legend ---- */
html.city-lasvegas body #layers { padding: 6px 16px 2px; }
html.city-lasvegas body .filterToggle {
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 11.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--vt-ink-2);
  background: transparent !important;
  border: 0 !important;
  padding: 4px 0 !important;
  min-height: 0 !important;
  box-shadow: none !important;
}
html.city-lasvegas body .filterToggle svg { display: none; }
html.city-lasvegas body .filterChips {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  width: 100%;
  margin-top: 6px;
}
html.city-lasvegas body #layers .chip.quietChip {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 40px;
  padding: 7px 10px 7px 8px;
  border-radius: 12px;
  background: var(--vt-card) !important;
  border: 1px solid var(--vt-line);
  color: var(--vt-ink);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.15;
  text-align: left;
  box-shadow: var(--vt-shadow-1);
  transition: background .15s, border-color .15s, opacity .15s;
}
html.city-lasvegas body #layers .chip.quietChip[aria-pressed="false"] {
  background: transparent !important;
  box-shadow: none;
  color: var(--vt-ink-3);
  border-style: dashed;
}
html.city-lasvegas body #layers .chip.quietChip[aria-pressed="false"] .chipDot { filter: grayscale(1); opacity: .45; }
html.city-lasvegas body #layers .chip.quietChip .chipCheck { display: none; }
html.city-lasvegas body #layers .chip.quietChip .chipDot {
  flex: none;
  width: 26px;
  height: 22px;
  border-radius: 0;
  background-color: transparent !important;
  background-position: center !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  margin: 0;
}
/* swatches drawn to match the map marks */
html.city-lasvegas body #layers .chip[data-layer="stations"] .chipDot {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Ccircle cx='13' cy='11' r='10' fill='%236AAE3E' stroke='%23fff' stroke-width='1.6'/%3E%3Ctext x='13' y='14.3' text-anchor='middle' font-family='Public Sans,Arial,sans-serif' font-weight='800' font-size='9' fill='%23fff'%3EB2%3C/text%3E%3C/svg%3E") !important;
}
html.city-lasvegas body #layers .chip[data-layer="fcourt"] .chipDot {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Ccircle cx='13' cy='11' r='10' fill='%231A9AD8' stroke='%23fff' stroke-width='1.6'/%3E%3Csvg x='6.6' y='4.6' width='12.8' height='12.8' viewBox='-1556 415 62 62'%3E%3Cpath fill='%23fff' d='M-1530.6,425.9c-.8-.2-1.4-.2-1.6,0-.4.5-.2,1,.3,1.6-.7.5-1.5.9-2.5.9-2.3,0-4.1-2-4.1-4.4s1.9-4.4,4.1-4.4,4.2,2,4.2,4.4-.1,1.3-.4,1.8M-1528.6,426.6c.3-.8.5-1.6.5-2.5,0-3.6-2.8-6.5-6.2-6.5s-6.2,2.9-6.2,6.5,2.8,6.5,6.2,6.5,3-.6,4.1-1.7c3.6,2.6,10.2,6.3,8.3,12.9-1.8,6.4-27.3,26.5-27.3,26.5h4.8s37-22.2,37-26.6-14.3-12.4-21.2-15.1M-1503.4,433.9c-2.1,2-4.9,2-6.3,0-1.4-2-.8-5.2,1.2-7.2,2.1-2,4.9-2,6.3,0,1.4,2,.8,5.2-1.2,7.2'/%3E%3C/svg%3E%3C/svg%3E") !important;
}
html.city-lasvegas body #layers .chip[data-layer="parks"] .chipDot {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Crect x='2' y='3' width='22' height='16' rx='4' fill='%23B5D3A0' stroke='%2386AE76' stroke-width='1.2'/%3E%3Cpath d='M13 6.5l3.6 6h-2l2.2 3.4H9.2l2.2-3.4h-2z' fill='%233C6A43'/%3E%3C/svg%3E") !important;
}
html.city-lasvegas body #layers .chip[data-layer="recreation"] .chipDot {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Ccircle cx='13' cy='11' r='9' fill='%232E4A7D' stroke='%23fff' stroke-width='1.6'/%3E%3Cpath d='M8.6 10.6L13 7l4.4 3.6V15H8.6z' fill='%23fff'/%3E%3C/svg%3E") !important;
}
html.city-lasvegas body #layers .chip[data-layer="senior"] .chipDot {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Ccircle cx='13' cy='11' r='9' fill='%23C0712B' stroke='%23fff' stroke-width='1.6'/%3E%3Cpath d='M8.6 10.6L13 7l4.4 3.6V15H8.6z' fill='%23fff'/%3E%3C/svg%3E") !important;
}
html.city-lasvegas body #layers .chip[data-layer="pools"] .chipDot {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Ccircle cx='13' cy='11' r='9' fill='%232F7F8E' stroke='%23fff' stroke-width='1.6'/%3E%3Cpath d='M7.6 10.4c1.8-1.8 3.6 1.8 5.4 0s3.6 1.8 5.4 0M7.6 13.4c1.8-1.8 3.6 1.8 5.4 0s3.6 1.8 5.4 0' fill='none' stroke='%23fff' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") !important;
}
html.city-lasvegas body #layers .chip[data-layer="markers"] .chipDot {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Cpath d='M1 15h24' stroke='%23fff' stroke-width='6' stroke-linecap='round'/%3E%3Cpath d='M1 15h24' stroke='%23C45C26' stroke-width='3.4' stroke-linecap='round'/%3E%3Ccircle cx='13' cy='15' r='2.8' fill='%23fff' stroke='%23C45C26' stroke-width='1.4'/%3E%3Ctext x='13' y='8.6' font-family='Arial' font-weight='700' font-size='6.4' fill='%23C45C26' text-anchor='middle'%3E0.25%3C/text%3E%3C/svg%3E") !important;
}
html.city-lasvegas body #layers .chip[data-layer="network"] .chipDot {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Cpath d='M2 7h22' stroke='%237D8E80' stroke-width='2' /%3E%3Cpath d='M2 12h22' stroke='%238A7152' stroke-width='2' stroke-dasharray='.8 3' stroke-linecap='round'/%3E%3Cpath d='M2 17h22' stroke='%234D7DB3' stroke-width='2' stroke-dasharray='4 3'/%3E%3C/svg%3E") !important;
}
html.city-lasvegas body .filterDone { color: var(--vt-juniper-2); font-weight: 700; }

/* ---- near you: the one warm card on the home screen ---- */
html.city-lasvegas body .nearYouCard {
  position: relative;
  overflow: hidden;
  margin: 12px 16px 6px;
  padding: 16px 16px 16px;
  border-radius: 16px;
  border: 1px solid var(--vt-sage-2);
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='150' viewBox='0 0 360 150'%3E%3Cg fill='none' stroke='%232D7A4B' stroke-opacity='.13' stroke-width='1.1'%3E%3Cpath d='M190 150c10-40 50-58 90-62s70-30 80-60'/%3E%3Cpath d='M214 150c8-30 40-44 72-48s62-24 74-48'/%3E%3Cpath d='M238 150c6-20 30-30 54-34s52-18 68-36'/%3E%3Cpath d='M262 150c4-12 20-18 36-20s42-12 62-24'/%3E%3Cpath d='M166 150c12-50 60-72 108-76s76-36 86-74'/%3E%3Cpath d='M142 150c14-60 70-86 126-90s84-42 92-60'/%3E%3C/g%3E%3C/svg%3E") right bottom / 360px 150px no-repeat,
    linear-gradient(160deg, #F3F7EE 0%, #E7EFE0 100%);
  box-shadow: none;
}
html.city-lasvegas body .nearYouLead {
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -0.01em;
  color: var(--vt-juniper);
  line-height: 1.15;
  margin-bottom: 4px;
}
html.city-lasvegas body .nearYouWhy {
  color: var(--vt-ink-2);
  font-size: 13.5px;
  line-height: 1.4;
  max-width: 26ch;
  margin-bottom: 12px;
}

/* ---- buttons ---- */
html.city-lasvegas body .aBtn {
  border-radius: 999px;
  background: var(--vt-card);
  border: 1px solid var(--vt-line-2);
  color: var(--vt-ink);
  font-weight: 700;
  box-shadow: var(--vt-shadow-1);
}
html.city-lasvegas body .aBtn:hover { background: var(--vt-sand); }
html.city-lasvegas body .aBtn.primary,
html.city-lasvegas body #useLocation {
  background: var(--vt-juniper);
  border-color: var(--vt-juniper);
  color: #fff;
  box-shadow: 0 2px 8px rgba(29, 90, 64, .28);
}
html.city-lasvegas body .aBtn.primary:hover,
html.city-lasvegas body #useLocation:hover { background: #174A34; }
html.city-lasvegas body #useLocation {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px 10px 14px;
  flex: none;
  width: auto;
}
html.city-lasvegas body #useLocation::before {
  content: '';
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M3 11l18-8-8 18-2-8z' fill='%23fff'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---- list head ---- */
html.city-lasvegas body #listHead {
  padding: 18px 16px 6px;
  align-items: center;
  border-top: 1px solid var(--vt-line);
  margin-top: 10px;
}
html.city-lasvegas body #listHead h2,
html.city-lasvegas body #listTitle.lvTrailLines {
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 17px;
  letter-spacing: -0.005em;
  text-transform: none;
  color: var(--vt-ink);
  display: flex;
  align-items: center;
  gap: 10px;
}
html.city-lasvegas body #listTitle .tlBars { width: 44px; height: auto; }
html.city-lasvegas body #listCount {
  font-family: var(--vt-display);
  font-weight: 700;
  font-size: 12.5px;
  color: var(--vt-ink-3);
  letter-spacing: .01em;
}
html.city-lasvegas body .listGroup {
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 11px;
  letter-spacing: .14em;
  color: var(--vt-juniper-2);
  padding: 14px 20px 6px;
}

/* ---- trail cards: photo first, name, three numbers ---- */
html.city-lasvegas body .rItem.rCard {
  position: relative;
  display: block;
  width: calc(100% - 32px);
  margin: 6px 16px 12px;
  padding: 0;
  border: 1px solid var(--vt-line);
  border-radius: 16px;
  background: var(--vt-card);
  overflow: hidden;
  box-shadow: var(--vt-shadow-1);
  transition: box-shadow .18s, transform .18s, border-color .18s;
}
html.city-lasvegas body .rItem.rCard:hover {
  background: var(--vt-card);
  box-shadow: var(--vt-shadow-2);
  border-color: var(--vt-line-2);
  transform: translateY(-1px);
}
html.city-lasvegas body .rItem.rCard .rThumb {
  display: block;
  width: 100%;
  height: 132px;
  border-radius: 0;
  object-fit: cover;
  background: var(--vt-sand-2);
}
html.city-lasvegas body .rItem.rCard .badge {
  position: absolute;
  top: 10px;
  left: 10px;
  width: auto;
  min-width: 38px;
  height: 24px;
  padding: 0 8px;
  border-radius: 8px;
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 12.5px;
  letter-spacing: .04em;
  box-shadow: 0 0 0 2px #fff, 0 2px 6px rgba(0, 0, 0, .25);
  padding-top: 2px;
}
html.city-lasvegas body .rItem.rCard .m { display: block; padding: 12px 14px 13px; }
html.city-lasvegas body .rItem.rCard .n {
  display: block;
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--vt-ink);
}
html.city-lasvegas body .rItem.rCard .d { display: block; margin-top: 4px; color: var(--vt-ink-2); }
html.city-lasvegas body .rItem.rCard .lead {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 13px;
  line-height: 1.4;
}
html.city-lasvegas body .rItem.rCard .practical { display: none; }
html.city-lasvegas body .rItem.rCard .rStats {
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
html.city-lasvegas body .rItem.rCard .rStat {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 9px 4px 7px;
  border-radius: 999px;
  background: var(--vt-sand);
  color: var(--vt-ink);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.2;
}
html.city-lasvegas body .rItem.rCard .rStat svg { width: 13px; height: 13px; color: var(--vt-juniper-2); flex: none; }
html.city-lasvegas body .rItem.rCard .rStat:first-child {
  font-family: var(--vt-display);
  font-weight: 800;
  background: var(--vt-sage);
  color: var(--vt-juniper);
}

/* list rows that are not trail cards: parks, loops, places */
html.city-lasvegas body .rItem:not(.rCard) {
  border-bottom: 1px solid var(--vt-line);
  padding: 12px 20px;
}
html.city-lasvegas body .rItem:not(.rCard):hover { background: var(--vt-sand); }
html.city-lasvegas body .rItem:not(.rCard) .n { font-weight: 700; color: var(--vt-ink); }
html.city-lasvegas body .rItem:not(.rCard) .rThumb { border-radius: 10px; }

/* ---- detail sheets ---- */
html.city-lasvegas body .backBtn {
  color: var(--vt-juniper-2);
  font-weight: 700;
  border-radius: 999px;
  padding: 6px 12px 6px 8px;
}
html.city-lasvegas body .backBtn:hover { background: var(--vt-sage); }
html.city-lasvegas body .routeHero {
  margin: 4px 16px 12px;
  border-radius: 16px;
  height: 176px;
  box-shadow: var(--vt-shadow-1);
}
html.city-lasvegas body .routeHero img { height: 176px; }
html.city-lasvegas body .routeHero.noPhoto { height: 8px; min-height: 0; box-shadow: none; }
html.city-lasvegas body .routeHero.noPhoto img { height: 8px; }
html.city-lasvegas body .rHead h1 {
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 26px;
  letter-spacing: -0.015em;
  line-height: 1.08;
  color: var(--vt-ink);
  padding-top: 2px;
}
html.city-lasvegas body .rHead .meta {
  color: var(--vt-ink-2);
  font-size: 13px;
  margin-top: 4px;
}
html.city-lasvegas body .badge.big {
  width: auto;
  min-width: 52px;
  height: 34px;
  padding: 3px 10px 0;
  border-radius: 10px;
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 17px;
  letter-spacing: .03em;
  box-shadow: 0 0 0 2px #fff, 0 2px 8px rgba(0, 0, 0, .2);
}
html.city-lasvegas body .sect {
  border-top: 1px solid var(--vt-line);
  padding: 16px 20px;
}
html.city-lasvegas body .sect h3 {
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 11.5px;
  letter-spacing: .14em;
  color: var(--vt-juniper-2);
  margin-bottom: 10px;
}
html.city-lasvegas body .sect p {
  color: var(--vt-ink-2);
  font-size: 14px;
  line-height: 1.5;
}
html.city-lasvegas body .sect p + p { margin-top: 8px; }
html.city-lasvegas body .promoSect p:first-child {
  color: var(--vt-ink);
  font-size: 15px;
  line-height: 1.5;
}
html.city-lasvegas body .sect > p:first-of-type:not(.segNote):not(.paceLine) { color: var(--vt-ink); }
html.city-lasvegas body .paceLine {
  font-weight: 650;
  color: var(--vt-ink-2);
  padding: 0;
  margin-top: 4px;
}
html.city-lasvegas body .endsBox {
  background: var(--vt-sand);
  border-radius: 12px;
  padding: 12px 14px;
  margin: 10px 0;
  gap: 10px;
}
html.city-lasvegas body .endK {
  font-family: var(--vt-display);
  font-weight: 800;
  color: var(--vt-juniper-2);
  letter-spacing: .1em;
}
html.city-lasvegas body .endV { color: var(--vt-ink); }
html.city-lasvegas body .actions { padding: 8px 20px 14px; gap: 10px; }
html.city-lasvegas body .alongChip {
  border-radius: 999px;
  background: var(--vt-card);
  border: 1px solid var(--vt-line-2);
  color: var(--vt-ink);
  font-weight: 600;
  box-shadow: var(--vt-shadow-1);
}
html.city-lasvegas body .alongChip:hover { background: var(--vt-sage); border-color: var(--vt-sage-2); }
html.city-lasvegas body .alongChip[data-fcourt] {
  background: var(--vt-fc-tint);
  border-color: #C4D8F2;
  color: #0B4A93;
}
html.city-lasvegas body .srItem { border-radius: 12px; }
html.city-lasvegas body .srItem:hover { background: var(--vt-sand); }
html.city-lasvegas body .srItem .ic {
  font-family: var(--vt-display);
  font-weight: 800;
}
html.city-lasvegas body .alongBranch { border-left-color: var(--vt-juniper-2); }
html.city-lasvegas body .alongBranchHead { color: var(--vt-juniper); }
html.city-lasvegas body .learnMore a {
  color: var(--vt-juniper);
  font-weight: 700;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
}
html.city-lasvegas body .recSource { color: var(--vt-ink-3); padding: 0 20px 20px; }
html.city-lasvegas body .photoCredit { color: #fff; }
html.city-lasvegas body .sizeChip,
html.city-lasvegas body .statChip,
html.city-lasvegas body .planChip {
  background: var(--vt-sand);
  border: 1px solid var(--vt-line);
  color: var(--vt-ink);
  border-radius: 999px;
}

/* ---- map chrome ---- */
html.city-lasvegas body .maplibregl-ctrl-group {
  border-radius: 14px !important;
  box-shadow: var(--vt-shadow-2) !important;
  overflow: hidden;
  background: var(--vt-card);
}
html.city-lasvegas body .maplibregl-ctrl-group button + button { border-top: 1px solid var(--vt-line) !important; }
html.city-lasvegas body .maplibregl-ctrl-attrib {
  background: rgba(251, 249, 245, .85) !important;
  color: var(--vt-ink-3);
  border-radius: 8px 0 0 0;
}
html.city-lasvegas body #credit {
  background: rgba(251, 249, 245, .9);
  color: var(--vt-ink-3);
}
html.city-lasvegas body .locateBtn,
html.city-lasvegas body #locateBtn,
html.city-lasvegas body .layerFab,
html.city-lasvegas body #layerBtn {
  background: var(--vt-card);
  color: var(--vt-juniper);
  border: 1px solid var(--vt-line);
  box-shadow: var(--vt-shadow-2);
}
html.city-lasvegas body .maplibregl-popup-content {
  border-radius: 14px;
  box-shadow: var(--vt-shadow-2);
  font-family: var(--font-ui);
}

/* ---- veil ---- */
html.city-lasvegas body #veil { background: #F4F1EA; }
html.city-lasvegas body #veil .vt {
  font-family: var(--vt-display);
  font-weight: 800;
  color: var(--vt-ink);
  letter-spacing: -0.01em;
}
html.city-lasvegas body #veil .vs { color: #8749C9; opacity: 1; font-weight: 600; }   /* (Oct 21) the wordmark's purple */

/* ---- phone ---- */
@media (max-width: 899px) {
  html.city-lasvegas body #panel {
    border-radius: 22px 22px 0 0;
    border-bottom: 0;
    box-shadow: 0 -8px 30px rgba(48, 36, 22, .16);
  }
  html.city-lasvegas body #grab::before { background: var(--vt-line-2); width: 40px; }
  html.city-lasvegas body #hdr .t h1.city,
  html.city-lasvegas body #hdr .t .city { font-size: 17px; }
  html.city-lasvegas body #searchBox { box-shadow: var(--vt-shadow-2); border-color: var(--vt-line); }
  html.city-lasvegas body .filterChips { grid-template-columns: 1fr 1fr; }
  html.city-lasvegas body .rItem.rCard .rThumb { height: 120px; }
  html.city-lasvegas body .routeHero,
  html.city-lasvegas body .routeHero img { height: 150px; }
  html.city-lasvegas body .rHead h1 { font-size: 23px; }
}

/* ---- r29: map layers fold into one row ---- */
html.city-lasvegas body #layers.filterCollapsed .filterChips { display: none !important; }
html.city-lasvegas body #layers .filterRow { position: relative; margin-bottom: 4px; }
html.city-lasvegas body #layers .filterToggle {
  display: flex !important;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 14px !important;
  min-height: 44px !important;
  border-radius: 12px;
  border: 1px solid var(--vt-line) !important;
  background: var(--vt-card) !important;
  box-shadow: var(--vt-shadow-1) !important;
  color: var(--vt-ink);
  letter-spacing: .1em;
}
html.city-lasvegas body #layers .filterToggle::before {
  content: '';
  width: 18px;
  height: 18px;
  flex: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232D7A4B' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 3 2 8l10 5 10-5-10-5z'/%3E%3Cpath d='m2 13 10 5 10-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
html.city-lasvegas body #layers .filterToggle::after {
  content: '';
  width: 7px;
  height: 7px;
  margin-left: 4px;
  border-right: 1.8px solid var(--vt-ink-3);
  border-bottom: 1.8px solid var(--vt-ink-3);
  transform: rotate(45deg) translateY(-2px);
  flex: none;
}
html.city-lasvegas body #layers .filterToggle[aria-expanded="true"]::after { transform: rotate(-135deg) translateY(-1px); }
html.city-lasvegas body #layers .filterSum {
  margin-left: auto;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--vt-ink-3);
}
html.city-lasvegas body #layers .filterDone { display: none !important; }
html.city-lasvegas body #layers:not(.filterCollapsed) .filterChips { margin-top: 8px; }

/* ---- r29: trail stat strip ---- */
html.city-lasvegas body .vtStats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  grid-auto-flow: column;
  margin: 2px 16px 14px;
  border: 1px solid var(--vt-line);
  border-radius: 14px;
  background: var(--vt-card);
  box-shadow: var(--vt-shadow-1);
  overflow: hidden;
}
html.city-lasvegas body .vtStat {
  padding: 10px 10px 9px;
  min-width: 0;
  border-left: 1px solid var(--vt-line);
}
html.city-lasvegas body .vtStat:first-child { border-left: 0; }
html.city-lasvegas body .vtStat b {
  display: block;
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 15px;
  line-height: 1.15;
  color: var(--vt-ink);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
html.city-lasvegas body .vtStat span {
  display: block;
  margin-top: 3px;
  font-size: 11px;
  font-weight: 600;
  color: var(--vt-ink-3);
  line-height: 1.2;
}
html.city-lasvegas body .vtStat:first-child b { color: var(--vt-juniper); }
html.city-lasvegas body #layers .filterToggle svg,
html.city-lasvegas body #layers .filterGlyph { display: none !important; }
html.city-lasvegas body .endRow { grid-template-columns: 78px 1fr; }
html.city-lasvegas body .srItem .ic {
  border-radius: 10px;
  box-shadow: 0 0 0 1.5px #fff, var(--vt-shadow-1);
}
html.city-lasvegas body .srGroup {
  font-family: var(--vt-display);
  font-weight: 800;
  letter-spacing: .14em;
  color: var(--vt-juniper-2);
}

/* ---- r29: park sheet ---- */
html.city-lasvegas body .parkBadge {
  min-width: 44px !important;
  width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  border-radius: 12px !important;
  display: flex;
  align-items: center;
  justify-content: center;
}
html.city-lasvegas body .parkPhotoWell {
  margin: 4px 16px 12px;
  height: 120px;
  border-radius: 16px;
  border: 1px solid var(--vt-sage-2);
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24' fill='%233C6A43' fill-opacity='.55'%3E%3Cpath d='M12 2.5 6.5 10h3L5 16.5h5.6V21h2.8v-4.5H19L14.5 10h3z'/%3E%3C/svg%3E") center / 44px no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='120' viewBox='0 0 360 120'%3E%3Cg fill='none' stroke='%232D7A4B' stroke-opacity='.14' stroke-width='1.1'%3E%3Cellipse cx='180' cy='60' rx='40' ry='22'/%3E%3Cellipse cx='180' cy='60' rx='70' ry='38'/%3E%3Cellipse cx='180' cy='60' rx='104' ry='54'/%3E%3Cellipse cx='180' cy='60' rx='140' ry='72'/%3E%3Cellipse cx='180' cy='60' rx='180' ry='92'/%3E%3C/g%3E%3C/svg%3E") center / cover no-repeat,
    linear-gradient(160deg, #F3F7EE 0%, #E2ECD9 100%);
}
html.city-lasvegas body .parkMarks { margin: 6px 16px 14px; gap: 10px; }
html.city-lasvegas body .parkMark {
  border-radius: 14px;
  border: 1px solid var(--vt-line);
  background: var(--vt-card);
  box-shadow: var(--vt-shadow-1);
  padding: 10px 12px;
  min-height: 56px;
}
html.city-lasvegas body .parkMark.on { background: var(--vt-sage); border-color: var(--vt-sage-2); }
html.city-lasvegas body .parkMark.on[data-fcourt],
html.city-lasvegas body .parkMarks .parkMark.on:nth-child(2) { background: var(--vt-fc-tint); border-color: #C4D8F2; }
html.city-lasvegas body .parkMark:not(.on) { opacity: .7; box-shadow: none; background: transparent; border-style: dashed; }
html.city-lasvegas body .parkMark b {
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: 0;
  color: var(--vt-ink);
}
html.city-lasvegas body .parkMark span span { color: var(--vt-ink-2); }
html.city-lasvegas body .parkOffItem b,
html.city-lasvegas body .parkOffN {
  font-family: var(--vt-display);
  font-weight: 800;
}
html.city-lasvegas body .vtStat b { white-space: normal; font-size: 14.5px; }

/* ---- r29: station sheet ---- */
html.city-lasvegas body .rHead .meta .alongChip {
  padding: 3px 10px;
  font-size: 12.5px;
  min-height: 0;
  vertical-align: 1px;
}
html.city-lasvegas body #pDetail > .alongChips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 16px 10px;
  margin: 0;
}
html.city-lasvegas body #pDetail > .alongChips .alongChip,
html.city-lasvegas body #pDetail > .alongChips .sizeChip {
  padding: 5px 11px 5px 8px;
  font-size: 12.5px;
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
}
html.city-lasvegas body .alongChip .ic { width: 10px; height: 10px; border-radius: 3px; }
html.city-lasvegas body .sizeChip {
  font-family: var(--vt-display);
  font-weight: 800;
  letter-spacing: .02em;
  background: var(--vt-sage) !important;
  color: var(--vt-juniper) !important;
  border-color: var(--vt-sage-2) !important;
  padding-left: 11px !important;
}
html.city-lasvegas body .strengthNote {
  position: relative;
  margin: 12px 0 !important;
  padding: 12px 14px 12px 50px;
  border-radius: 14px;
  background: var(--vt-fc-tint);
  border: 1px solid #C4D8F2;
  color: #0B3F7F !important;
  font-weight: 600;
}
html.city-lasvegas body .strengthNote::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 50%;
  width: 28px;
  height: 34px;
  transform: translateY(-50%);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 32'%3E%3Cpath d='M13 31c-1.4-3.8-11-9-11-16.2a11 11 0 0 1 22 0C24 22 14.4 27.2 13 31z' fill='%231560BD' stroke='%23fff' stroke-width='1.6'/%3E%3Cpath d='M7.6 14.6h3l1.8-3.8 2.4 7.6 1.8-3.8h2' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
html.city-lasvegas body .loopLap {
  font-weight: 600;
  color: var(--vt-juniper) !important;
}
html.city-lasvegas body .rHead .badge.big.parkLoopBadge { box-shadow: 0 0 0 2px #fff, 0 0 0 4.5px var(--vt-juniper-2) !important; }
@media (max-width: 899px) {
  html.city-lasvegas body #pDetail > .backRow { padding-top: 0; }
}

/* ---- r29: list and search glyphs replace letter badges ---- */
html.city-lasvegas body .srItem .ic {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  flex: none;
}
html.city-lasvegas body .srItem[data-park] .ic,
html.city-lasvegas body .srItem[data-loop] .ic,
html.city-lasvegas body .srItem[data-th] .ic,
html.city-lasvegas body .srItem[data-fcourt] .ic,
html.city-lasvegas body .srItem[data-street] .ic {
  font-size: 0 !important;
  color: transparent !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 20px 20px !important;
}
html.city-lasvegas body .srItem[data-park] .ic {
  background-color: #3C6A43 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 2.5 6.5 10h3L5 16.5h5.6V21h2.8v-4.5H19L14.5 10h3z'/%3E%3C/svg%3E") !important;
}
html.city-lasvegas body .srItem[data-loop] .ic {
  background-color: #2D7A4B !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M19 12a7 5.5 0 1 1-3-4.5'/%3E%3Cpath d='M16.4 3.8 16 7.6l3.8.6'/%3E%3C/svg%3E") !important;
}
html.city-lasvegas body .srItem[data-th] .ic {
  background-color: #2F4F3A !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Crect x='11' y='3' width='2.2' height='18' rx='1'/%3E%3Cpath d='M5 5.5h10.5l3 2.6-3 2.6H5z'/%3E%3Cpath d='M19 12.5H9.5l-2.6 2.3 2.6 2.3H19z' opacity='.75'/%3E%3C/svg%3E") !important;
}
html.city-lasvegas body .srItem[data-fcourt] .ic {
  background-color: #1560BD !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h4.2l2.3-5 3.6 10 2.3-5H21'/%3E%3C/svg%3E") !important;
}
html.city-lasvegas body .srItem[data-street] .ic {
  background-color: #7D8E80 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 20c3-5 11-6 14-16' stroke-dasharray='3 3.4'/%3E%3C/svg%3E") !important;
}
html.city-lasvegas body .srItem .sn { font-weight: 700; color: var(--vt-ink); }
html.city-lasvegas body .srItem .sd { color: var(--vt-ink-3); }
html.city-lasvegas body .srItem.srCard {
  border: 1px solid var(--vt-line);
  background: var(--vt-card);
  box-shadow: var(--vt-shadow-1);
  border-radius: 14px;
  overflow: hidden;
  padding: 0 12px 0 0 !important;
  gap: 12px;
  align-items: center;
}
html.city-lasvegas body .srItem.srCard .rThumb {
  width: 92px !important;
  height: 72px !important;
  border-radius: 0 !important;
  object-fit: cover;
  flex: none;
}
html.city-lasvegas body .srItem.srCard .sn {
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 15px;
}

/* ---- r29: featured Fitness Courts ---- */
html.city-lasvegas body .fcFeature { padding: 16px 0 4px; border-top: 1px solid var(--vt-line); margin-top: 12px; }
html.city-lasvegas body .fcfHead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 0 16px;
}
html.city-lasvegas body .fcfHead h2 {
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 17px;
  color: var(--vt-ink);
  display: flex;
  align-items: center;
  gap: 8px;
}
html.city-lasvegas body .fcfHead h2::before {
  content: '';
  width: 20px;
  height: 24px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 32'%3E%3Cpath d='M13 31c-1.4-3.8-11-9-11-16.2a11 11 0 0 1 22 0C24 22 14.4 27.2 13 31z' fill='%231560BD' stroke='%23fff' stroke-width='1.6'/%3E%3Cpath d='M7.6 14.6h3l1.8-3.8 2.4 7.6 1.8-3.8h2' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
html.city-lasvegas body .fcfHead span {
  font-family: var(--vt-display);
  font-weight: 700;
  font-size: 12.5px;
  color: var(--vt-ink-3);
}
html.city-lasvegas body .fcfWhy {
  padding: 4px 16px 10px;
  font-size: 13px;
  line-height: 1.4;
  color: var(--vt-ink-2);
}
html.city-lasvegas body .fcfRow {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 2px 16px 12px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
html.city-lasvegas body .fcfRow::-webkit-scrollbar { display: none; }
html.city-lasvegas body .fcfCard {
  flex: 0 0 168px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  text-align: left;
  border-radius: 14px;
  overflow: hidden;
  background: var(--vt-card);
  border: 1px solid #CFDDF0;
  box-shadow: var(--vt-shadow-1);
  transition: box-shadow .18s, transform .18s;
}
html.city-lasvegas body .fcfCard:hover { box-shadow: var(--vt-shadow-2); transform: translateY(-1px); }
html.city-lasvegas body .fcfPhoto {
  display: block;
  width: 100%;
  height: 92px;
  object-fit: cover;
  background: var(--vt-fc-tint);
}
html.city-lasvegas body .fcfBody { display: block; padding: 9px 11px 11px; }
html.city-lasvegas body .fcfEyebrow {
  display: block;
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 10.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--vt-fc);
}
html.city-lasvegas body .fcfName {
  display: block;
  margin-top: 2px;
  font-family: var(--vt-display);
  font-weight: 800;
  font-size: 14px;
  line-height: 1.2;
  color: var(--vt-ink);
}
html.city-lasvegas body .fcfMeta {
  display: block;
  margin-top: 4px;
  font-size: 11.5px;
  color: var(--vt-ink-3);
  line-height: 1.3;
}
html.city-lasvegas body #pHome .fcfRow { padding: 2px 16px 12px 16px !important; scroll-padding-left: 16px; }

/* ---- launch QR: in-browser guided walk ---- */
html.city-lasvegas body.in-app .appCta,
html.city-lasvegas body.in-app .guidedAppCta { display: none !important; }
/* In-app WebView: the app shows its own chrome (close, city name), so the
   map goes full-bleed. Search and Near me stay; --chrome-top drives their
   position along with the map inset, so resetting it here is enough. */
html.city-lasvegas body.in-app .band,
html.city-lasvegas body.in-app #hdr { display: none !important; }
html.city-lasvegas body.in-app { --chrome-top: env(safe-area-inset-top, 0px); }
html.city-lasvegas body .guidedLaunch { padding: 4px 20px 2px; }
html.city-lasvegas body .guidedLaunch .aBtn {
  width: 100%;
  text-align: center;
  justify-content: center;
}
#guidedPlayer {
  --gp-brand: #1D5A40;
  --gp-brand-2: #2D7A4B;
  --gp-ink: #12241C;
  --gp-paper: #FBF9F5;
  --gp-fs-body: 16px;
  --gp-fs-lead: 18px;
  --gp-fs-h: 22px;
  --gp-fs-hero: 56px;
  --gp-max: 460px;
  position: fixed; inset: 0; z-index: 100;
  background: var(--gp-paper); color: var(--gp-ink);
  display: flex; flex-direction: column;
  padding: 0 20px calc(20px + env(safe-area-inset-bottom, 0px));
  font-family: "Public Sans", system-ui, sans-serif;
}
#guidedPlayer[hidden] { display: none !important; }
#guidedPlayer .gpClose {
  position: absolute; z-index: 3;
  top: calc(10px + env(safe-area-inset-top, 0px)); left: 12px;
  width: 40px; height: 40px; border-radius: 50%;
  border: 0; background: rgba(20, 30, 24, .12); color: var(--gp-ink);
  display: grid; place-items: center;
}
#guidedPlayer .gpClose svg { width: 20px; height: 20px; }
#guidedPlayer.playing .gpClose,
#guidedPlayer.done .gpClose { background: rgba(255, 255, 255, .14); color: #fff; }
#guidedPlayer .gpMiniTitle {
  display: none;
  position: absolute; z-index: 2; top: calc(20px + env(safe-area-inset-top, 0px));
  left: 0; right: 0; text-align: center;
  font: 700 13px/1 "Public Sans", system-ui, sans-serif;
  color: rgba(255, 255, 255, .7);
}
#guidedPlayer.playing .gpMiniTitle { display: block; }
#guidedPlayer .gpSrOnly {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}
#guidedPlayer .gpPane {
  display: none; flex: 1;
  flex-direction: column; align-items: center;
  width: 100%; max-width: var(--gp-max); margin: 0 auto;
  padding-top: calc(12px + env(safe-area-inset-top, 0px));
}

/* ---- pre-start: leads with the coach photo, no dead middle ---- */
#guidedPlayer .gpPrestart { display: flex; padding-top: 0; }
#guidedPlayer.playing .gpPrestart,
#guidedPlayer.done .gpPrestart { display: none; }
#guidedPlayer .gpPrestart .gpHero {
  position: relative;
  width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  height: 45vh; min-height: 260px; max-height: 420px;
  margin-top: 0; margin-bottom: 16px; overflow: hidden;
  flex: none;
}
#guidedPlayer .gpHeroImg {
  width: 100%; height: 100%; object-fit: cover; object-position: 80% 30%;
  display: block;
}
#guidedPlayer .gpHeroFade {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(18, 36, 28, 0) 0%, rgba(18, 36, 28, .12) 55%, var(--gp-paper) 96%);
}
#guidedPlayer .gpPrestartBody {
  width: 100%; display: flex; flex-direction: column; align-items: flex-start;
}
#guidedPlayer .gpAvatar {
  width: 40px; height: 40px; border-radius: 50%; flex: none;
}
#guidedPlayer .gpAvatarMono {
  display: grid; place-items: center;
  background:
    repeating-linear-gradient(115deg, rgba(255, 255, 255, .16) 0 3px, transparent 3px 14px),
    radial-gradient(circle at 32% 28%, var(--gp-brand-2), var(--gp-brand) 72%);
  color: #fff;
}
#guidedPlayer .gpAvatarMono span { font: 800 15px/1 "Public Sans", system-ui, sans-serif; }
#guidedPlayer .gpAvatarPhoto { object-fit: cover; object-position: 50% 18%; }
#guidedPlayer .gpTitle {
  text-align: left;
  font: 800 var(--gp-fs-h)/1.2 "Public Sans", system-ui, sans-serif;
  letter-spacing: -0.01em;
  color: var(--gp-ink);
  margin: 0 0 8px;
}
#guidedPlayer .gpNumRow {
  display: flex; align-items: baseline; gap: 6px;
  margin: 0 0 18px;
}
#guidedPlayer .gpNumRow .gpHeroNum {
  font: 800 var(--gp-fs-hero)/1 "Public Sans", system-ui, sans-serif;
  letter-spacing: -0.03em;
}
#guidedPlayer .gpNumRow .gpHeroUnit {
  font: 800 15px/1 "Public Sans", system-ui, sans-serif;
  color: #535C55; letter-spacing: 0.06em;
}
#guidedPlayer .gpFacts {
  list-style: none; margin: 0 0 20px; padding: 0;
  display: flex; flex-direction: column; gap: 12px;
  width: 100%;
}
#guidedPlayer .gpFacts li {
  display: flex; align-items: center; gap: 10px;
  font-size: var(--gp-fs-body); font-weight: 700; line-height: 1.3; text-align: left;
  color: var(--gp-ink);
}
#guidedPlayer .gpFacts svg {
  width: 20px; height: 20px; flex: none; color: var(--gp-brand);
  background: var(--gp-sage, #E7EFE0); border-radius: 50%; padding: 6px; box-sizing: content-box;
}
#guidedPlayer .gpStart {
  flex: none;
  width: 100%; text-align: center; justify-content: center;
  border: 0; border-radius: 999px; padding: 16px 18px;
  font: 800 17px/1 "Public Sans", system-ui, sans-serif;
  background: var(--gp-brand); color: #fff;
  margin-top: auto; margin-bottom: 4px;
}

/* ---- playing: dark full-screen canvas ---- */
#guidedPlayer.playing { background: var(--gp-ink); color: #fff; }
#guidedPlayer .gpPlaying { justify-content: flex-start; padding-top: 44px; }
#guidedPlayer.playing .gpPlaying { display: flex; }
#guidedPlayer.done .gpPlaying { display: none; }
#guidedPlayer .gpRingWrap {
  position: relative; width: 220px; height: 220px;
  margin: 8px auto 18px;
}
#guidedPlayer .gpRing { width: 100%; height: 100%; transform: rotate(-90deg); }
#guidedPlayer .gpRingBg {
  fill: none; stroke: rgba(255, 255, 255, .16); stroke-width: 8;
}
#guidedPlayer .gpRingFg {
  fill: none; stroke: var(--gp-brand-2); stroke-width: 8; stroke-linecap: round;
  transition: stroke-dashoffset .25s linear;
}
#guidedPlayer .gpRingCenter {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
#guidedPlayer .gpElapsed {
  font: 800 40px/1 "Public Sans", system-ui, sans-serif;
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.02em;
}
#guidedPlayer .gpRemain {
  margin-top: 4px; font-size: 13px; font-weight: 700;
  color: rgba(255, 255, 255, .62);
  font-variant-numeric: tabular-nums lining-nums;
}
#guidedPlayer .gpPhaseNow {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  margin: 0 0 14px; text-align: center;
}
#guidedPlayer .gpPhaseCur {
  font: 800 var(--gp-fs-h)/1.15 "Public Sans", system-ui, sans-serif;
  letter-spacing: -0.01em;
}
#guidedPlayer .gpPhaseNext {
  font-size: 12.5px; font-weight: 700;
  color: rgba(255, 255, 255, .55);
  min-height: 16px;
}
#guidedPlayer .gpStrip {
  display: flex; gap: 3px; width: 100%;
  margin: 0 0 20px;
}
#guidedPlayer .gpSeg {
  position: relative; height: 4px; border-radius: 999px;
  background: rgba(255, 255, 255, .16); overflow: hidden; flex: 1 1 auto;
  transition: height .15s ease, margin .15s ease;
}
#guidedPlayer .gpSeg i {
  position: absolute; inset: 0 auto 0 0; display: block; height: 100%;
  background: var(--gp-brand-2); border-radius: inherit;
  transition: width .2s linear;
}
#guidedPlayer .gpSeg.past { background: rgba(255, 255, 255, .16); }
#guidedPlayer .gpSeg.past i { width: 100% !important; }
#guidedPlayer .gpSeg.on {
  height: 6px; margin: -1px 0;
  background: rgba(255, 255, 255, .28);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .18);
}
#guidedPlayer .gpCaptionWrap {
  flex: none; width: 100%; overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 4px 4px 8px; min-height: 96px;
}
#guidedPlayer .gpCapPrev {
  margin: 0 0 8px; font-size: 13.5px; line-height: 1.4;
  color: rgba(255, 255, 255, .35);
}
#guidedPlayer .gpCapRow {
  display: flex; align-items: flex-start; gap: 10px;
}
#guidedPlayer .gpCapRow .gpAvatar { margin-top: 2px; }
#guidedPlayer .gpCaption {
  flex: 1; margin: 0; font-size: var(--gp-fs-lead); line-height: 1.4; font-weight: 600;
  color: #fff;
}
#guidedPlayer .gpControls {
  display: flex; align-items: center; justify-content: center; gap: 28px;
  width: 100%; padding: 10px 0 4px; margin-top: auto;
}
#guidedPlayer .gpBack15 {
  position: relative; width: 56px; height: 56px; border-radius: 50%;
  border: 0; background: rgba(255, 255, 255, .12); color: #fff;
  display: grid; place-items: center;
}
#guidedPlayer .gpBack15 svg { width: 26px; height: 26px; }
#guidedPlayer .gpBack15 em {
  position: absolute; font-style: normal; font: 800 9.5px/1 "Public Sans", system-ui, sans-serif;
  top: 50%; left: 50%; transform: translate(-50%, -46%);
}
#guidedPlayer .gpPlay {
  width: 76px; height: 76px; border-radius: 50%;
  border: 0; background: var(--gp-brand-2); color: #fff;
  display: grid; place-items: center;
}
#guidedPlayer .gpPlay svg { width: 32px; height: 32px; }

/* ---- finish (keeps the dark canvas from the playing screen) ---- */
#guidedPlayer .gpFinish { display: none; flex-direction: column; align-items: center; justify-content: center; flex: 1; padding-top: 16px; color: #fff; }
#guidedPlayer.done .gpFinish { display: flex; }
#guidedPlayer .gpFinishHero {
  display: flex; align-items: baseline; gap: 6px; margin: 0 0 6px;
}
#guidedPlayer .gpFinishHero .gpHeroNum {
  font: 800 44px/1 "Public Sans", system-ui, sans-serif; letter-spacing: -0.03em; color: #fff;
}
#guidedPlayer .gpFinishHero .gpHeroUnit { font: 800 14px/1 "Public Sans", system-ui, sans-serif; color: rgba(255, 255, 255, .62); }
#guidedPlayer .gpFinishHead {
  font: 800 var(--gp-fs-hero)/1.05 "Public Sans", system-ui, sans-serif;
  letter-spacing: -0.03em; text-align: center; margin: 0 0 26px; color: #fff;
}
#guidedPlayer .gpFinishPhases {
  list-style: none; margin: 0 0 26px; padding: 0; width: 100%;
  display: flex; flex-direction: column; gap: 10px;
}
#guidedPlayer .gpFinishPhases li {
  display: flex; align-items: center; gap: 10px;
  font-size: var(--gp-fs-body); font-weight: 700; color: #fff;
}
#guidedPlayer .gpFinishPhases svg {
  width: 22px; height: 22px; flex: none; color: var(--gp-brand-2);
}
#guidedPlayer .gpFinish .aBtn {
  flex: none;
  display: block; width: 100%; text-align: center; text-decoration: none;
  border-radius: 999px; padding: 15px 18px; font-weight: 800; font-size: 16px;
  background: var(--gp-brand-2); color: #fff; border: 0; margin-top: 10px;
}
#guidedPlayer .gpFinish .aBtn.ghost {
  background: transparent; color: #fff; border: 1.5px solid rgba(255, 255, 255, .3);
}
#guidedPlayer .gpFinish .gpOpenApp {
  display: block; text-align: center; margin-top: 14px;
  font-size: 14px; font-weight: 700; color: rgba(255, 255, 255, .78);
}

@media (prefers-reduced-motion: reduce) {
  #guidedPlayer .gpRingFg,
  #guidedPlayer .gpSeg i { transition: none; }
}

@media (min-width: 768px) {
  #guidedPlayer { --gp-max: 520px; --gp-fs-hero: 64px; padding-top: 28px; }
  #guidedPlayer .gpRingWrap { width: 260px; height: 260px; }
  #guidedPlayer .gpElapsed { font-size: 46px; }
}
@media (min-width: 1280px) {
  #guidedPlayer { --gp-max: 560px; --gp-fs-hero: 72px; padding-top: 40px; }
  #guidedPlayer .gpRingWrap { width: 300px; height: 300px; }
  #guidedPlayer .gpElapsed { font-size: 52px; }
  #guidedPlayer .gpCaption { font-size: 20px; }
}

/* ---- r29: phone peek opens on the near-you call, layers follow ---- */
@media (max-width: 899px) {
  html.city-lasvegas body #pHome { display: flex; flex-direction: column; }
  html.city-lasvegas body #pHome[hidden],
  html.city-lasvegas body #pDetail[hidden],
  html.city-lasvegas body #pSearch[hidden] { display: none !important; }
  html.city-lasvegas body #pHome > * { order: 10; }
  html.city-lasvegas body #pHome > #nearYouCard { order: 1; margin-top: 2px; }
  html.city-lasvegas body #pHome > #fcFeature { order: 2; }
  html.city-lasvegas body #pHome > #layers { order: 3; padding-top: 12px; }
  html.city-lasvegas body #pHome > #listHead { order: 4; }
  html.city-lasvegas body #pHome > #routeList { order: 5; }
}

/* emily/wow-mobile-v3: phones opening the home view show the page at once with a still of the
   map (app.js SNAP_BOOT) instead of the full-screen veil */
html.city-lasvegas body.snap-boot #veil { display: none; }
html.city-lasvegas body.snap-boot .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner { display: none; }


/* Phone: a place's sheet rests low (Oct 20, Olivia: "the most mobile friendly by changing it the least"). The resting
   (half) sheet on a place shows its name and buttons; the photo and the rest come after them, a drag up away. Phones
   only; the desktop side panel is untouched. */
@media (max-width: 899px) {
  /* a place's panel only (station, park, Fitness Court: the .v3 panels); route, transfer and Nearby lists keep 55dvh */
  body.city-lasvegas.on-detail:has(#pDetail .v3-in) {
    --sheet-half-h: min(244px, 55dvh);
  }
  body.city-lasvegas.on-detail #grab { padding: 8px 0 4px; min-height: 20px; }
  body.city-lasvegas.on-detail #pDetail .v3-in { padding-top: 6px; }
  body.city-lasvegas.on-detail #pDetail .v3-in > * { order: 2; }
  body.city-lasvegas.on-detail #pDetail .v3-in > .v3-crumb { order: 0; }
  body.city-lasvegas.on-detail #pDetail .v3-in > .v3-title,
  body.city-lasvegas.on-detail #pDetail .v3-in > .v3-acts { order: 1; }
  /* (Oct 20, Olivia: "remove the photo of the park for the mobile version") no park photo in a place's phone panel */
  body.city-lasvegas.on-detail #pDetail .v3-in > .v3-fig,
  body.city-lasvegas.on-detail #pDetail .v3-in > .v3-hero-ph { display: none; }
  /* a place's sheet opened all the way runs up under the search box: the box steps aside until it comes back down */
  /* (not while it holds focus: tapping search opens the sheet full, and hiding the focused box would close the keyboard) */
  body.city-lasvegas.on-detail.sheet-full #searchDock:not(:focus-within) { visibility: hidden; pointer-events: none; }
}

/* Phone: the put-away sheet shows its title row instead of an empty bar with "Show list" (Oct 20, Olivia: "it's not
   showing any info and still hiding too much of the map ... have it go as low as you can and still show this"). Home
   rests there (app.js sheetRest); a tap on it, or a drag, brings the list up. A place's lowest is its 244px rest
   (setSheet keeps a place panel at half). */
@media (max-width: 899px) {
  body.city-lasvegas { --sheet-hid-h: calc(86px + env(safe-area-inset-bottom, 0px)); }   /* the handle and the title row */
  body.city-lasvegas #panel.hid #panelScroll { visibility: visible; overflow: hidden; cursor: pointer; }
  body.city-lasvegas #panel.hid #sheetShow { display: none; }
  body.city-lasvegas #panel.hid #v3HomeTop,
  body.city-lasvegas #panel.hid #nearYouCard { display: none !important; }   /* (the near-you card's own :has() rule is stronger) */
  body.city-lasvegas #panel.hid #grab { padding: 8px 0 4px; min-height: 20px; }
}

/* Phone map chrome (Oct 21, Trent and Jess). The expand button goes (the app's own screen is the map). The search bar is
   one pill: the box inside it drew a second outline 4px short of the bar's own, which read as another button behind it.
   The bar's right end holds "my location" (#mapNear, vtstyles.js wowChromeCss lets it show on phones). */
@media (max-width: 899px) {
  body.city-lasvegas #fsBtn { display: none !important; }
  html.city-lasvegas body #searchDock > #searchBox,
  html.city-lasvegas body #searchDock > #searchBox:focus-within { background: transparent; border: 0; box-shadow: none; flex: 1; min-width: 0; }
  html.city-lasvegas body #searchDock:focus-within { box-shadow: 0 0 0 3px rgba(45, 122, 75, .22), 0 1px 3px rgba(60, 64, 67, .3); }
  html.city-lasvegas body #searchDock #mapNear { color: var(--vt-juniper-2, #2D7A4B); }
}

/* Phone: a place's back button, white with a backwards arrow, over the map or painting at the bottom left, just above
   the sheet (Oct 21, Trent and Jess: "a clear white back button ... hovering over the image bottom left"). It stands in
   for the sheet's small crumb. With the sheet opened all the way it moves to the top left of the card. The tour
   pills step aside on a place. Desktop keeps its side panel's own crumb. */
body.city-lasvegas #placeBack { display: none; }
@media (max-width: 899px) {
  body.city-lasvegas #placeBack {
    display: none; position: absolute; left: 12px; bottom: calc(var(--sheet-hid-h, 86px) + 12px); z-index: 6;
    align-items: center; gap: 6px; min-height: 44px; padding: 0 18px 0 14px;
    border: 0; border-radius: 999px; background: #fff; color: #1D2B44; cursor: pointer;
    font: 700 15px/1 "Public Sans", sans-serif; box-shadow: 0 2px 10px rgba(0, 0, 0, .22);
  }
  /* just above the sheet's top, from the sheet's own height (--sheet-cover can lag a place's lower rest) */
  body.city-lasvegas.sheet-up #placeBack { bottom: calc(var(--sheet-half-h) + 12px); }
  body.city-lasvegas.place-back.on-detail:has(#pDetail .v3-crumb:not(.root), #pDetail .backRow .backBtn) #placeBack { display: flex; }
  /* the sheet all the way up: at the top left of the card, under the handle (app.js placePlaceBack) */
  body.city-lasvegas #panel > #placeBack {
    position: static; flex: none; align-self: flex-start; margin: 0 16px 6px;
    box-shadow: 0 0 0 1px var(--vt-line-2, #DDD6C8), 0 1px 4px rgba(0, 0, 0, .08);
  }
  body.city-lasvegas #placeBack:focus-visible { outline: 3px solid #1E6FE6; outline-offset: 2px; }
  body.city-lasvegas.place-back.on-detail #pDetail .v3-crumb:not(.root),
  body.city-lasvegas.place-back.on-detail #pDetail .backRow { display: none; }
  body.city-lasvegas.on-detail .wow-tpills { display: none !important; }
}

/* Phone: no map tour (Oct 21, Olivia: "remove the take the tour flyover feature for mobile viewing"). vtstyles.js wowTour
   doesn't offer it under 900px; this keeps it away if a screen turns or narrows after load. */
@media (max-width: 899px) {
  body.city-lasvegas .wow-tcard,
  body.city-lasvegas .wow-tpill:not(.wow-fpill) { display: none !important; }
}

/* ---- City of Las Vegas wordmark (Oct 21, city review): the purple wordmark with stars takes the place of the seal and the
   "Parks and Recreation" lines in the header and on the loading screen. vtstyles.js wowCityCss has the matching colors. */
html.city-lasvegas .clv-word { display: none; }
html.city-lasvegas #hdr .brand .clv-word { display: block; height: 48px; width: auto; margin-left: -6px; }
html.city-lasvegas #hdr .brand .mark-lv,
html.city-lasvegas #hdr .brand .mark-tl,
html.city-lasvegas #hdr .brand .t { display: none !important; }
html.city-lasvegas #veil .clv-word { display: block; height: 56px; width: auto; margin: 0 auto 10px; }
html.city-lasvegas #veil .mark-lv,
html.city-lasvegas #veil .mark-tl,
html.city-lasvegas #veil #veilTitle { display: none !important; }

/* ---- Map layers as a white card, like the cards above it on the home panel (Oct 21, Olivia). The key's Fitness Court and
   Trail Line station swatches are the painted scenes' pins: a blue Fitness Court circle and a green station circle.
   Recreation centers are navy and senior centers amber (app.js draws the map marks in the same two colors). */
html.city-lasvegas body #pHome.v3-home > #layers {
  margin: 12px 14px 0; padding: 4px 14px 12px; background: #fff; border: 1px solid #e5e1d8; border-radius: 12px;
}
html.city-lasvegas body #pHome.v3-home > #layers .filterRow { margin-bottom: 0; }
html.city-lasvegas body #pHome.v3-home > #layers .filterToggle {
  padding: 10px 0 !important; border: 0 !important; border-radius: 0; background: none !important; box-shadow: none !important;
}
html.city-lasvegas body #pHome.v3-home > #layers:not(.filterCollapsed) .filterChips { margin-top: 4px; padding-top: 12px; border-top: 1px solid #e5e1d8; }
html.city-lasvegas body #pHome.v3-home > #layers .chip.quietChip { box-shadow: none; }

/* ---- Desktop: the same white Back button heads a place in the side panel, in place of the small "‹ Las Vegas" or
   "‹ Kellogg-Zaher" crumb (Oct 21, Olivia). app.js placePlaceBack puts it at the top of #panelScroll. */
@media (min-width: 900px) {
  body.city-lasvegas #panelScroll > #placeBack {
    display: none; align-items: center; gap: 6px; min-height: 40px; margin: 12px 14px 0; padding: 0 16px 0 12px;
    border: 0; border-radius: 999px; background: #fff; color: #1D2B44; cursor: pointer;
    font: 700 14px/1 "Public Sans", sans-serif; box-shadow: 0 0 0 1px var(--vt-line-2, #DDD6C8), 0 1px 4px rgba(0, 0, 0, .08);
  }
  body.city-lasvegas.place-back.on-detail:has(#pDetail .v3-crumb:not(.root), #pDetail .backRow .backBtn) #panelScroll > #placeBack { display: inline-flex; }
  body.city-lasvegas #panelScroll > #placeBack:hover { background: #f4f1ea; }
  body.city-lasvegas #panelScroll > #placeBack:focus-visible { outline: 3px solid #1E6FE6; outline-offset: 2px; }
  body.city-lasvegas.place-back.on-detail #pDetail .v3-crumb:not(.root),
  body.city-lasvegas.place-back.on-detail #pDetail .backRow { display: none; }
}
/* (Oct 21, Olivia) the card's heading reads like "Places to go" above it (vtstyles .v3-h), with no layers glyph, and all
   eight layers fit inside the card: two even columns that can shrink, smaller text, and long names wrap */
html.city-lasvegas body #pHome.v3-home > #layers .filterToggle {
  gap: 8px; font: 700 20px/1.15 "Public Sans", sans-serif !important; letter-spacing: -.01em !important;
  text-transform: none !important; color: #1c2230 !important;
}
html.city-lasvegas body #pHome.v3-home > #layers .filterToggle::before { display: none; }
html.city-lasvegas body #pHome.v3-home > #layers .filterChips {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 6px; box-sizing: border-box;
}
html.city-lasvegas body #pHome.v3-home > #layers .chip.quietChip {
  min-width: 0; min-height: 36px; padding: 6px 8px 6px 6px; gap: 6px; font-size: 11.5px; line-height: 1.2;
}
html.city-lasvegas body #pHome.v3-home > #layers .chip.quietChip > span:not(.chipCheck) { min-width: 0; overflow-wrap: anywhere; }
html.city-lasvegas body #pHome.v3-home > #layers .chip.quietChip .chipDot { width: 22px; height: 20px; }

/* ---- Oct 21 (Olivia): the credit line has no band behind it and no bars mark, in white with a soft shadow so it reads
   over the map; the Back button is a round white button with an arrow, on phones and desktop */
html.city-lasvegas body #credit { background: none; color: #fff; text-shadow: 0 0 3px rgba(0, 0, 0, .75), 0 1px 2px rgba(0, 0, 0, .6); }
html.city-lasvegas body #credit a { color: #fff; }
body.city-lasvegas #placeBack, body.city-lasvegas #panelScroll > #placeBack, body.city-lasvegas #panel > #placeBack {
  justify-content: center; width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; gap: 0;
}
