/* =========================================================
   VOYATALE CAMPER SPOTS — FINAL MOBILE PREMIUM OVERRIDES
   Loaded after all legacy Camper Spots CSS.
   ========================================================= */
@media (max-width: 680px) {

  /* HEADER — stable 58px mobile shell */
  body.camperPage .topbar {
    height: 58px !important;
    min-height: 58px !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  /* LOGO — same visual size, but optically centered lower in header */
  body.camperPage .topbar > .brand,
  body.camperPage .topbar .brand {
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;

    width: 158px !important;
    min-width: 158px !important;
    height: 58px !important;

    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  body.camperPage .topbar .brandLogo,
  body.camperPage .brandLogo {
    position: absolute !important;
    left: -89px !important;
    top: -78px !important;

    width: 330px !important;
    height: 220px !important;
    max-width: none !important;

    margin: 0 !important;
    object-fit: contain !important;
    transform: none !important;
    transform-origin: center !important;
  }

  /* PROFILE — explicitly centered at right edge of the header */
  body.camperPage .topbarRight {
    position: absolute !important;
    right: 8px !important;
    top: 50% !important;
    left: auto !important;
    bottom: auto !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;

    transform: translateY(-53%) !important;
    z-index: 4 !important;
  }

  body.camperPage .topbar .userpill,
  body.camperPage .userpill {
    width: 54px !important;
    min-width: 54px !important;
    height: 46px !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 4px !important;
    justify-content: center !important;
  }

  body.camperPage .topbar .userpill img,
  body.camperPage .userpill img {
    width: 38px !important;
    height: 38px !important;
    margin: 0 !important;
  }

  /* TOOLBAR — visibly narrower search, selector shifted left */
  body.camperPage .camperToolbar {
    left: 10px !important;
    right: 38px !important;

    width: auto !important;
    grid-template-columns: minmax(0, 1fr) 112px !important;
    gap: 8px !important;

    overflow: visible !important;
  }

  body.camperPage .camperSearchWrap {
    min-width: 0 !important;
    width: 100% !important;
  }

  body.camperPage .camperSearch {
    width: 100% !important;
    min-width: 0 !important;
    padding-left: 12px !important;
    padding-right: 9px !important;
  }

  body.camperPage .camperSearch input {
    min-width: 0 !important;
    width: 100% !important;
    font-size: 13px !important;
  }

  body.camperPage .camperSearchIcon,
  body.camperPage .camperSearchIcon svg {
    width: 21px !important;
    height: 21px !important;
    flex: 0 0 21px !important;
  }

  body.camperPage .camperToolbar #typeFilter {
    width: 112px !important;
    min-width: 112px !important;
    max-width: 112px !important;

    padding-left: 10px !important;
    padding-right: 22px !important;
    font-size: 13px !important;
  }

  /* Removed feature must never reappear from cached HTML. */
  body.camperPage .camperAroundMeBtn {
    display: none !important;
  }
}


/* =========================================================
   CAMPER SPOTS MOBILE — explicit 30 km nearby search action
   Anchored inside the map so it clears the fixed bottom nav.
   ========================================================= */
@media (max-width: 680px) {
  body.camperPage .camperSearchAreaBtn {
    position: absolute !important;
    top: auto !important;
    left: 50% !important;
    right: auto !important;
    bottom: 14px !important;
    transform: translateX(-50%) !important;
    z-index: 1400 !important;
    width: max-content !important;
    max-width: calc(100% - 24px) !important;
    min-height: 46px !important;
    padding: 0 18px !important;
    margin: 0 !important;
    white-space: nowrap !important;
    overflow: hidden;
    border: 0 !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #7d0088, #ff7900) !important;
    color: #fff !important;
    box-shadow: 0 10px 24px rgba(93,20,99,.24) !important;
    font: 800 13px/1.15 Inter, sans-serif !important;
    text-align: center;
  }

  body.camperPage .camperSearchAreaBtn:disabled {
    opacity: .72 !important;
  }
}

/* =========================================================
   CAMPER SPOTS MOBILE — logo click target fix
   The oversized source image must not expand the tappable area.
   ========================================================= */
@media (max-width: 680px) {
  body.camperPage .topbar > .brand,
  body.camperPage .topbar .brand {
    width: 158px !important;
    min-width: 158px !important;
    max-width: 158px !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    overflow: visible !important;
  }

  body.camperPage .topbar .brandLogo,
  body.camperPage .brandLogo {
    pointer-events: none !important;
  }
}


/* =========================================================
   CAMPER SPOTS MOBILE — subtle active swiped place marker
   Active marker is only slightly larger; other markers become
   slightly smaller. No ring, halo or extra badge.
   ========================================================= */
@media (max-width: 680px) {
  body.camperPage .leaflet-marker-icon.vgCamperMarker {
    overflow: visible !important;
    transition: filter .16s ease !important;
  }

  body.camperPage .leaflet-marker-icon.vgCamperMarker .vgPlaceMarker {
    transform-origin: 50% 100% !important;
    transition:
      transform .18s cubic-bezier(.2,.8,.2,1),
      filter .18s ease,
      opacity .18s ease !important;
  }

  /* Only while one preview marker is active, make the rest slightly smaller. */
  body.camperPage .leaflet-marker-pane:has(.vgCamperMarker.is-preview-active)
  .vgCamperMarker:not(.is-preview-active) .vgPlaceMarker {
    transform: scale(.50) !important;
    opacity: .82 !important;
    filter: saturate(.92) !important;
  }

  /* Selected place: only a restrained size increase and light shadow. */
  body.camperPage .leaflet-marker-icon.vgCamperMarker.is-preview-active {
    overflow: visible !important;
    filter: none !important;
  }

  body.camperPage .leaflet-marker-icon.vgCamperMarker.is-preview-active .vgPlaceMarker {
    transform: translateY(-2px) scale(1.14) !important;
    opacity: 1 !important;
    filter: drop-shadow(0 5px 7px rgba(25,31,29,.22)) !important;
  }

  /* Explicitly remove the previous halo/ring. */
  body.camperPage .leaflet-marker-icon.vgCamperMarker.is-preview-active .vgPlaceMarker::before {
    content: none !important;
    display: none !important;
  }
}


/* =========================================================
   CAMPER SPOTS MOBILE — premium detail content
   Feed-like photo collage, 3-line description, shared service icons.
   ========================================================= */
@media (max-width: 680px) {

  /* Feed-style photo collage */
  body.camperPage .camperDetailPhotoGrid {
    width: 100% !important;
    padding: 10px 10px 6px !important;
    display: grid !important;
    gap: 3px !important;
    box-sizing: border-box !important;
    background: #fff !important;
  }

  body.camperPage .camperDetailPhotoGrid.is-1 {
    grid-template-columns: 1fr !important;
  }

  body.camperPage .camperDetailPhotoGrid.is-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.camperPage .camperDetailPhotoGrid.is-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  body.camperPage .camperDetailPhotoCell {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 176px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 11px !important;
    overflow: hidden !important;
    background: #edf1ee !important;
    cursor: pointer !important;
  }

  body.camperPage .camperDetailPhotoGrid.is-1 .camperDetailPhotoCell {
    height: min(42vh, 300px) !important;
  }

  body.camperPage .camperDetailPhotoGrid.is-2 .camperDetailPhotoCell {
    height: 205px !important;
  }

  body.camperPage .camperDetailPhotoCell img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
  }

  body.camperPage .camperDetailPhotoMore {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(19,24,21,.28) !important;
    color: #fff !important;
    font-size: 28px !important;
    font-weight: 900 !important;
    text-shadow: 0 2px 8px rgba(0,0,0,.28) !important;
  }

  /* Description: exactly 3 lines until expanded. */
  body.camperPage .camperDetailDescription {
    position: relative !important;
    margin: 10px 0 4px !important;
    font-size: 15px !important;
    line-height: 1.42 !important;
    color: #20272f !important;
  }

  body.camperPage .camperDetailDescriptionText {
    white-space: pre-wrap !important;
  }

  body.camperPage .camperDetailDescription:not(.is-expanded) .camperDetailDescriptionText {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    line-clamp: 3 !important;
-webkit-line-clamp: 3 !important;
    overflow: hidden !important;
  }

  body.camperPage .camperDetailDescriptionToggle {
    display: inline !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 0 !important;
    background: #fff !important;
    padding: 0 0 0 4px !important;
    margin: 0 !important;
    color: #20272f !important;
    font: inherit !important;
    font-weight: 850 !important;
    line-height: inherit !important;
    cursor: pointer !important;
  }

  body.camperPage .camperDetailDescription:not(.is-expanded) .camperDetailDescriptionToggle:not([hidden]) {
    position: absolute !important;
    right: 0 !important;
    bottom: 0 !important;
    background: linear-gradient(90deg, rgba(255,255,255,0), #fff 24px) !important;
    padding-left: 30px !important;
  }

  body.camperPage .camperDetailDescription.is-expanded .camperDetailDescriptionToggle {
    display: block !important;
    margin-top: 3px !important;
    padding-left: 0 !important;
    color: #5f6871 !important;
  }

  /* Same real Voyatale service icon files as the web UI. */
  body.camperPage .camperDetailContent .camperServices {
    gap: 8px !important;
  }

  body.camperPage .camperDetailContent .camperService {
    min-height: 40px !important;
    padding: 5px 9px 5px 6px !important;
    gap: 7px !important;
    border-radius: 12px !important;
    box-sizing: border-box !important;
  }

  body.camperPage .camperDetailContent .camperServiceIcon {
    width: 30px !important;
    height: 30px !important;
    flex: 0 0 30px !important;
    object-fit: contain !important;
    display: block !important;
  }

  /* Compact image viewer for a detail collage tap. */
  body.camperPage .camperDetailPhotoViewer {
    position: fixed !important;
    inset: 0 !important;
    z-index: 42000 !important;
    display: flex !important;
    flex-direction: column !important;
    background: #101318 !important;
  }

  body.camperPage .camperDetailPhotoViewerBar {
    min-height: 58px !important;
    padding: calc(8px + env(safe-area-inset-top)) 12px 8px !important;
    display: grid !important;
    grid-template-columns: 42px 1fr 42px !important;
    align-items: center !important;
    background: #fff !important;
    color: #20272f !important;
  }

  body.camperPage .camperDetailPhotoViewerBar button {
    width: 38px !important;
    height: 38px !important;
    border: 1px solid rgba(31,41,55,.08) !important;
    border-radius: 999px !important;
    background: #fff !important;
    font-size: 18px !important;
  }

  body.camperPage .camperDetailPhotoViewerBar span {
    grid-column: 2 !important;
    justify-self: center !important;
    font-size: 12px !important;
    font-weight: 850 !important;
  }

  body.camperPage .camperDetailPhotoViewerStage {
    position: relative !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.camperPage .camperDetailPhotoViewerStage img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
  }

  body.camperPage .camperDetailPhotoViewerStage > button {
    position: absolute !important;
    top: 50% !important;
    z-index: 2 !important;
    width: 38px !important;
    height: 38px !important;
    margin-top: -19px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.28) !important;
    background: rgba(0,0,0,.34) !important;
    color: #fff !important;
    font-size: 26px !important;
  }

  body.camperPage .camperDetailPhotoViewerStage .is-prev { left: 10px !important; }
  body.camperPage .camperDetailPhotoViewerStage .is-next { right: 10px !important; }
}


/* =========================================================
   CAMPER SPOTS DETAIL — compact icon-only services/activities
   Hold on touch / hover on desktop to reveal the label.
   ========================================================= */
@media (max-width: 680px) {
  body.camperPage .camperDetailContent .camperServices {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, 43px) !important;
    justify-content: start !important;
    align-items: start !important;
    gap: 6px !important;
    overflow: visible !important;
  }

  body.camperPage .camperDetailContent .camperService.camperIconOnly {
    width: 43px !important;
    min-width: 43px !important;
    height: 43px !important;
    min-height: 43px !important;
    padding: 3px !important;
    margin: 0 !important;
    box-sizing: border-box !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    border: 1px solid rgba(31,41,55,.10) !important;
    border-radius: 11px !important;
    background: #fff !important;
    box-shadow: 0 2px 7px rgba(31,41,55,.035) !important;

    position: relative !important;
    overflow: visible !important;
    cursor: default !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    -webkit-touch-callout: none !important;
    touch-action: pan-y !important;
    outline: none !important;
  }

  body.camperPage .camperDetailContent .camperService.camperIconOnly.is-tooltip-active,
  body.camperPage .camperDetailContent .camperService.camperIconOnly:focus-visible {
    border-color: rgba(22,133,77,.42) !important;
    box-shadow: 0 0 0 2px rgba(22,133,77,.10) !important;
    transform: translateY(-1px) !important;
  }

  body.camperPage .camperDetailContent .camperService.camperIconOnly .camperServiceIcon {
    width: 35px !important;
    height: 35px !important;
    max-width: 35px !important;
    max-height: 35px !important;
    flex: 0 0 35px !important;
    object-fit: contain !important;
    display: block !important;
  }

  body.camperPage .camperDetailContent .camperService.camperIconOnly .camperServiceFallback {
    width: 34px !important;
    height: 34px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 20px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    color: #268449 !important;
  }

  body.camperPage .camperDetailContent .camperService.camperIconOnly .camperServiceLabel {
    display: none !important;
  }

  body.camperPage .camperDetailSection {
    overflow: visible !important;
  }
}

.camperIconTooltip {
  position: fixed !important;
  z-index: 60000 !important;
  transform: translate(-50%, -100%) !important;
  max-width: min(240px, calc(100vw - 24px)) !important;
  padding: 7px 10px !important;
  border-radius: 9px !important;
  background: rgba(28,34,39,.96) !important;
  color: #fff !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.20) !important;
  font-family: var(--font-ui, Inter, system-ui, sans-serif) !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}

.camperIconTooltip::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  bottom: -5px !important;
  width: 10px !important;
  height: 10px !important;
  transform: translateX(-50%) rotate(45deg) !important;
  background: inherit !important;
  border-radius: 2px !important;
}


/* =========================================================
   CAMPER DETAIL FINAL ICON-ONLY OVERRIDE
   Labels are not rendered in JS; this also neutralizes any
   legacy button styles that may still exist in cached CSS.
   ========================================================= */
@media (max-width: 680px) {
  body.camperPage .camperDetailContent .camperServices {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, 43px) !important;
    grid-auto-rows: 43px !important;
    justify-content: start !important;
    align-items: start !important;
    gap: 6px !important;
  }

  body.camperPage .camperDetailContent button.camperService.camperIconOnly {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: 43px !important;
    min-width: 43px !important;
    max-width: 43px !important;
    height: 43px !important;
    min-height: 43px !important;
    max-height: 43px !important;
    padding: 3px !important;
    margin: 0 !important;
    border: 1px solid rgba(31,41,55,.10) !important;
    border-radius: 11px !important;
    background: #fff !important;
    color: inherit !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    font-size: 0 !important;
    line-height: 0 !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }

  body.camperPage .camperDetailContent button.camperService.camperIconOnly img.camperServiceIcon {
    display: block !important;
    width: 35px !important;
    height: 35px !important;
    min-width: 35px !important;
    max-width: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
    object-fit: contain !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.camperPage .camperDetailContent button.camperService.camperIconOnly .camperServiceFallback {
    width: 35px !important;
    height: 35px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 20px !important;
    line-height: 1 !important;
  }

  /* Keep the fallback symbol hidden while the real icon image is available. */
  body.camperPage .camperDetailContent button.camperService.camperIconOnly .camperServiceFallback[hidden] {
    display: none !important;
  }

  body.camperPage .camperDetailContent .camperServiceLabel {
    display: none !important;
  }
}


/* =========================================================
   CAMPER DETAIL — current rating beneath gallery
   ========================================================= */
@media (max-width: 680px) {
  body.camperPage .camperDetailRating {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 5px !important;
    margin: 0 0 7px !important;
    padding: 0 !important;
    min-height: 22px !important;
    color: #20272f !important;
  }

  body.camperPage .camperDetailStars {
    color: #f59e0b !important;
    font-size: 17px !important;
    line-height: 1 !important;
    letter-spacing: 1px !important;
    white-space: nowrap !important;
  }

  body.camperPage .camperDetailRating strong {
    font-size: 13px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    color: #26352c !important;
  }

  body.camperPage .camperDetailRatingCount {
    font-size: 10.5px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    color: #7a837d !important;
  }

  body.camperPage .camperDetailRating.is-empty .camperDetailStars {
    color: #b9c0bc !important;
  }

  body.camperPage .camperDetailRating.is-empty strong {
    font-size: 11px !important;
    font-weight: 750 !important;
    color: #8a928d !important;
  }
}


/* =========================================================
   VOYATALE SELECTED — Camper Spots badges
   Visible on desktop + mobile cards; interactive in detail.
   ========================================================= */

body.camperPage .camperSpotCard {
  position: relative !important;
}

body.camperPage .camperSelectedMiniMedal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 8;
}

body.camperPage .camperSelectedMiniMedal img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 50%;
  filter: drop-shadow(0 4px 8px rgba(64, 20, 66, .22));
}

body.camperPage .camperSelectedCardMedal {
  position: absolute;
  left: 8px;
  top: 8px;
  width: 42px;
  height: 42px;
}

body.camperPage .camperMobilePreviewMedia {
  position: relative !important;
  overflow: visible !important;
}

body.camperPage .camperSelectedPreviewMedal {
  position: absolute;
  left: 6px;
  top: 6px;
  width: 38px;
  height: 38px;
}

body.camperPage .camperSelectedPhotoWrap {
  position: relative;
  width: 100%;
}

body.camperPage .camperSelectedDetailMedal {
  position: absolute;
  left: 12px;
  top: 12px;
  z-index: 24;
}

body.camperPage .camperSelectedMedalButton {
  appearance: none;
  -webkit-appearance: none;
  width: 74px;
  height: 74px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  display: block;
  filter: drop-shadow(0 8px 14px rgba(52, 18, 55, .26));
  transition: transform .16s ease, filter .16s ease;
}

body.camperPage .camperSelectedMedalButton:hover,
body.camperPage .camperSelectedMedalButton[aria-expanded="true"] {
  transform: translateY(-1px) scale(1.04);
  filter: drop-shadow(0 10px 18px rgba(52, 18, 55, .32));
}

body.camperPage .camperSelectedMedalButton img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  border-radius: 50%;
}

body.camperPage .camperSelectedReasonCard {
  position: absolute;
  left: 0;
  top: 82px;
  width: min(320px, calc(100vw - 42px));
  padding: 13px 14px 12px;
  border-radius: 16px;
  border: 1px solid rgba(128, 24, 121, .14);
  background: rgba(255, 255, 255, .97);
  color: #20252b;
  box-shadow: 0 16px 38px rgba(47, 25, 48, .22);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

body.camperPage .camperSelectedReasonCard[hidden] {
  display: none !important;
}

body.camperPage .camperSelectedReasonEyebrow {
  margin-bottom: 3px;
  color: #8a087f;
  font-size: 9px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .11em;
}

body.camperPage .camperSelectedReasonCard strong {
  display: block;
  color: #6f0669;
  font-size: 15px;
  line-height: 1.15;
  font-weight: 950;
  text-transform: uppercase;
}

body.camperPage .camperSelectedReasonCard > span {
  display: block;
  margin-top: 3px;
  color: #8a918c;
  font-size: 10px;
  line-height: 1.2;
  font-weight: 750;
}

body.camperPage .camperSelectedReasonCard p {
  margin: 9px 0 8px;
  color: #3f4742;
  font-size: 12px;
  line-height: 1.45;
  font-weight: 650;
}

body.camperPage .camperSelectedReasonCard a {
  color: #8a087f;
  font-size: 10.5px;
  line-height: 1.2;
  font-weight: 850;
  text-decoration: none;
}

@media (max-width: 680px) {
  body.camperPage .camperSelectedCardMedal {
    width: 34px;
    height: 34px;
    left: 6px;
    top: 6px;
  }

  body.camperPage .camperSelectedPreviewMedal {
    width: 33px;
    height: 33px;
    left: 5px;
    top: 5px;
  }

  body.camperPage .camperSelectedDetailMedal {
    left: 10px;
    top: 10px;
  }

  body.camperPage .camperSelectedMedalButton {
    width: 62px;
    height: 62px;
  }

  body.camperPage .camperSelectedReasonCard {
    top: 69px;
    width: min(292px, calc(100vw - 34px));
    padding: 12px 13px 11px;
  }

  body.camperPage .camperSelectedReasonCard strong {
    font-size: 14px;
  }

  body.camperPage .camperSelectedReasonCard p {
    font-size: 11.5px;
  }
}


/* =========================================================
   CAMPER DETAIL MOBILE — Prices list only
   ========================================================= */
@media (max-width: 680px) {
  body.camperPage .camperDetailContent .camperPricingPanel .camperPriceList {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.camperPage .camperDetailContent .camperPricingPanel .camperPriceRow {
    display: flex !important;
    align-items: baseline !important;
    justify-content: space-between !important;
    gap: 16px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 4px 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #4f5953 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    font-weight: 450 !important;
  }

  body.camperPage .camperDetailContent .camperPricingPanel .camperPriceName {
    min-width: 0 !important;
    color: #4f5953 !important;
    font-weight: 450 !important;
  }

  body.camperPage .camperDetailContent .camperPricingPanel .camperPriceValue {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    color: #303a34 !important;
    font-weight: 600 !important;
    text-align: right !important;
  }

  body.camperPage .camperDetailContent .camperPricingPanel .camperPriceValue small {
    font: inherit !important;
    font-weight: 450 !important;
    color: #737c76 !important;
  }
}

/* =========================================================
   Camper Spots mobile — one-row place-type button rail.
   Loaded last so the removed search/dropdown cannot reappear.
   ========================================================= */
@media (max-width: 680px) {
  body.camperPage .camperToolbar {
    left: 10px !important;
    right: 10px !important;
    display: block !important;
    grid-template-columns: none !important;
    width: auto !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body.camperPage .camperTypeFilterSelect,
  body.camperPage .camperSearchWrap,
  body.camperPage .camperSearch {
    display: none !important;
  }

  body.camperPage .camperTypeFilterBar {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 38px !important;
    gap: 6px !important;
    padding: 1px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain !important;
    touch-action: pan-x !important;
    pointer-events: auto !important;
    user-select: none;
  }

  body.camperPage .camperTypeFilterBtn {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    height: 36px !important;
    padding: 0 8px 0 10px !important;
    gap: 6px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.97) !important;
    box-shadow: 0 4px 12px rgba(24,58,36,.09) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    scroll-snap-align: start;
  }

  body.camperPage .camperTypeFilterBtn.is-active {
    border-color: #2f804c !important;
    background: #eaf6ed !important;
  }

  body.camperPage .camperTypeFilterBtn img {
    width: 20px !important;
    height: 20px !important;
    flex-basis: 20px !important;
  }

  body.camperPage .camperTypeFilterBtnAll {
    min-width: 92px !important;
    padding-inline: 12px !important;
  }
}
