/* ==========================================================================
   Store Locator — Frontend CSS
   All selectors are scoped under .rtsl-wrapper to avoid WP theme conflicts.
   Dynamic colours are injected by PHP as CSS custom properties on .rtsl-wrapper.

   IMPORTANT: Every declaration uses !important to guarantee the plugin renders
   identically regardless of the active WordPress theme, page builder, or
   caching plugin.  This is intentional — the plugin is a full-screen app and
   must not inherit arbitrary padding, margin, font, or colour from a theme.
   ========================================================================== */

/* ── Default Variables (overridden per-instance by PHP inline style) ───────── */
.rtsl-wrapper {
  --rtsl-primary:       #2563EB;
  --rtsl-primary-light: #3B82F6;
  --rtsl-primary-dark:  #1D4ED8;
  --rtsl-primary-glow:  rgba(37,99,235,.25);

  --rtsl-bg-dark:       #000000;
  --rtsl-bg-surface:    #080808;
  --rtsl-bg-card:       #111111;
  --rtsl-bg-card-hover: #1A1A1A;
  --rtsl-bg-input:      #1A1A1A;

  --rtsl-text-primary:  #F1F5F9;
  --rtsl-text-secondary:#94A3B8;
  --rtsl-text-muted:    #8494AA;

  --rtsl-open:   #22C55E;
  --rtsl-busy:   #F59E0B;
  --rtsl-closed: #EF4444;

  --rtsl-border:       rgba(255,255,255,.08);
  --rtsl-border-hover: rgba(37,99,235,.3);

  --rtsl-radius:    14px;
  --rtsl-radius-sm: 8px;

  --rtsl-shadow:    0 4px 24px rgba(0,0,0,.4);
  --rtsl-shadow-lg: 0 12px 48px rgba(0,0,0,.6);
  --rtsl-transition:0.3s cubic-bezier(.4,0,.2,1);

  --rtsl-font:  'Outfit', sans-serif;
  --rtsl-mono:  'Space Mono', monospace;
  --rtsl-header-h: 68px;
}

/* ── Elementor / theme / page-builder container neutralisation ─────────────── */
.elementor-widget-shortcode .elementor-widget-container,
.elementor-column-wrap > .elementor-widget-wrap:has(.rtsl-wrapper),
.elementor-section:has(.rtsl-wrapper),
.e-con:has(.rtsl-wrapper),
.e-con-inner:has(.rtsl-wrapper),
.elementor-element:has(.rtsl-wrapper),
.wp-block-shortcode:has(.rtsl-wrapper),
.entry-content:has(.rtsl-wrapper),
.post-content:has(.rtsl-wrapper),
.page-content:has(.rtsl-wrapper),
.is-layout-flow:has(.rtsl-wrapper),
.is-layout-constrained:has(.rtsl-wrapper),
.is-layout-flex:has(.rtsl-wrapper) {
  padding: 0 !important;
  margin: 0 !important;
  padding-block: 0 !important;
  padding-inline: 0 !important;
  margin-block: 0 !important;
  margin-inline: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  padding-inline-start: 0 !important;
  padding-inline-end: 0 !important;
  margin-inline-start: 0 !important;
  margin-inline-end: 0 !important;
  height: auto !important;
  max-width: 100% !important;
  width: 100% !important;
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
}
/* Also neutralise containers around .rtsl-reviews-section */
.elementor-widget-shortcode:has(.rtsl-reviews-section) .elementor-widget-container,
.e-con:has(.rtsl-reviews-section),
.e-con-inner:has(.rtsl-reviews-section),
.entry-content:has(.rtsl-reviews-section),
.is-layout-flow:has(.rtsl-reviews-section),
.is-layout-constrained:has(.rtsl-reviews-section) {
  padding: 0 !important;
  margin: 0 !important;
  padding-block: 0 !important;
  padding-inline: 0 !important;
  margin-block: 0 !important;
  margin-inline: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
}

/* ── Universal child reset ─────────────────────────────────────────────────── */
/* :where() keeps specificity at (0,1,0) so component selectors (.rtsl-header
   etc.) at the same (0,1,0) win by source order.  Both shorthand AND longhand
   logical properties are reset to beat Gutenberg / Elementor / theme CSS.
   Leaflet internals are excluded so the map keeps its own spacing/sizing.     */
.rtsl-wrapper :where(*:not(.leaflet-container):not(.leaflet-container *)),
.rtsl-wrapper :where(*:not(.leaflet-container):not(.leaflet-container *))::before,
.rtsl-wrapper :where(*:not(.leaflet-container):not(.leaflet-container *))::after {
  box-sizing: border-box !important;
  margin: 0 !important;
  padding: 0 !important;
  margin-block: 0 !important;
  margin-inline: 0 !important;
  padding-block: 0 !important;
  padding-inline: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  margin-inline-start: 0 !important;
  margin-inline-end: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  padding-inline-start: 0 !important;
  padding-inline-end: 0 !important;
}

.rtsl-wrapper.rtsl-wrapper {
  font-family: var(--rtsl-font) !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  width: 100% !important;
  height: 100vh !important;
  height: 100dvh !important;
  overflow: hidden !important;
  position: relative !important;
  background: var(--rtsl-bg-dark) !important;
  color: var(--rtsl-text-primary) !important;
  isolation: isolate !important;
  z-index: 2 !important;
  pointer-events: auto !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  text-align: left !important;
  text-transform: none !important;
  text-decoration: none !important;
  border: none !important;
  border-radius: 0 !important;
  float: none !important;
  max-width: 80% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  margin-block: 0 !important;
  margin-inline: auto !important;
  padding-block: 0 !important;
  padding-inline: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  margin-inline-start: auto !important;
  margin-inline-end: auto !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  padding-inline-start: 0 !important;
  padding-inline-end: 0 !important;
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
  overscroll-behavior: contain !important;
  -webkit-tap-highlight-color: transparent !important;
}

/* ── Element-type resets ───────────────────────────────────────────────────── */
/* :where() keeps specificity at (0,1,0) so component selectors win by source
   order.  Theme-level bare-element rules (h2 { margin-bottom:1em }) at (0,0,1)
   still lose to (0,1,0).  Both shorthand AND longhand logical properties. */
.rtsl-wrapper :where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--rtsl-font) !important;
  margin: 0 !important;
  margin-block: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  padding: 0 !important;
  padding-block: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  border: none !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  color: inherit !important;
  font-weight: inherit !important;
  font-size: inherit !important;
}
.rtsl-wrapper :where(p) {
  font-family: var(--rtsl-font) !important;
  margin: 0 !important;
  margin-block: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  padding: 0 !important;
  padding-block: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  line-height: inherit !important;
  font-size: inherit !important;
  color: inherit !important;
}
.rtsl-wrapper :where(a) {
  text-decoration: none !important;
  color: inherit !important;
  outline: none !important;
}
.rtsl-wrapper :where(img) {
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.rtsl-wrapper :where(svg) {
  display: inline-block !important;
  vertical-align: middle !important;
  max-width: 100% !important;
  pointer-events: none !important;
}
/* Only force fill on SVGs that don't explicitly use fill="none" (stroke-based icons).
   SVGs with fill="none" rely on stroke for their rendering — forcing fill breaks them. */
.rtsl-wrapper :where(svg:not([fill="none"])) {
  fill: currentColor !important;
}
.rtsl-wrapper :where(input, select, button, textarea) {
  font-family: var(--rtsl-font) !important;
  color: inherit !important;
  margin: 0 !important;
  margin-block: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  padding-block: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  outline: none !important;
  pointer-events: auto !important;
}
.rtsl-wrapper :where(button) {
  cursor: pointer !important;
  background: transparent !important;
  border: none !important;
  pointer-events: auto !important;
}
.rtsl-wrapper :where(article, section, aside, header, footer, nav, div) {
  margin: 0 !important;
  margin-block: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  padding: 0 !important;
  padding-block: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  margin-inline: 0 !important;
  margin-inline-start: 0 !important;
  margin-inline-end: 0 !important;
  padding-inline: 0 !important;
  padding-inline-start: 0 !important;
  padding-inline-end: 0 !important;
  border: none !important;
}
.rtsl-wrapper :where(ul, ol, li) {
  list-style: none !important;
  margin: 0 !important;
  margin-block: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  padding: 0 !important;
  padding-block: 0 !important;
  padding-inline-start: 0 !important;
}
.rtsl-wrapper :where(strong, b) {
  font-weight: 700 !important;
  color: inherit !important;
}

/* ── Leaflet internal element protection ───────────────────────────────────── */
.rtsl-wrapper .leaflet-container {
  pointer-events: auto !important;
  cursor: grab !important;
  touch-action: none !important;
}
.rtsl-wrapper .leaflet-container.leaflet-dragging {
  cursor: grabbing !important;
}
.rtsl-wrapper .leaflet-interactive {
  pointer-events: auto !important;
  cursor: pointer !important;
}
.rtsl-wrapper .leaflet-pane {
  pointer-events: auto !important;
}
.rtsl-wrapper .leaflet-top,
.rtsl-wrapper .leaflet-bottom,
.rtsl-wrapper .leaflet-left,
.rtsl-wrapper .leaflet-right {
  pointer-events: none !important;
}
.rtsl-wrapper .leaflet-control {
  pointer-events: auto !important;
}
.rtsl-wrapper .leaflet-marker-icon,
.rtsl-wrapper .leaflet-marker-shadow {
  display: block !important;
  visibility: visible !important;
}
.rtsl-wrapper .leaflet-marker-pane {
  z-index: 600 !important;
}
.rtsl-wrapper .rtsl-custom-marker,
.rtsl-wrapper .rtsl-custom-marker svg {
  display: block !important;
  visibility: visible !important;
  overflow: visible !important;
  opacity: 1 !important;
}

.rtsl-wrapper :focus-visible {
  outline: 2px solid var(--rtsl-primary) !important;
  outline-offset: 2px !important;
}

/* Scrollbars */
.rtsl-wrapper ::-webkit-scrollbar { width: 5px !important; }
.rtsl-wrapper ::-webkit-scrollbar-track { background: transparent !important; }
.rtsl-wrapper ::-webkit-scrollbar-thumb {
  background: rgba(176,18,22,.3) !important;
  border-radius: 10px !important;
}
.rtsl-wrapper ::-webkit-scrollbar-thumb:hover { background: var(--rtsl-primary) !important; }
.rtsl-wrapper *:where(:not(.leaflet-container):not(.leaflet-container *)) {
  scrollbar-width: thin !important;
  scrollbar-color: rgba(176,18,22,.3) transparent !important;
}

/* ── Elementor / Third-party plugin conflict isolation ─────────────────────── */
.rtsl-search-box::before,
.rtsl-search-box::after,
.rtsl-search-input::before,
.rtsl-search-input::after {
  display: none !important;
  content: none !important;
}

.rtsl-wrapper input[type="search"]::-webkit-search-decoration,
.rtsl-wrapper input[type="search"]::-webkit-search-cancel-button,
.rtsl-wrapper input[type="search"]::-webkit-search-results-button,
.rtsl-wrapper input[type="search"]::-webkit-search-results-decoration {
  -webkit-appearance: none !important;
  display: none !important;
}

.rtsl-wrapper .elementor-widget-container::before,
.rtsl-wrapper .elementor-widget-container::after {
  display: none !important;
  content: none !important;
}

.rtsl-header::after,
.rtsl-location-card::before {
  content: '' !important;
}

/* ── Loading Screen ────────────────────────────────────────────────────────── */
.rtsl-loader-screen {
  position: absolute !important;
  inset: 0 !important;
  background: var(--rtsl-bg-dark) !important;
  z-index: 10000 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 28px !important;
}
.rtsl-loader-canvas-wrap {
  width: 160px !important;
  height: 160px !important;
  position: relative !important;
}
#rtsl-loaderCanvas { width: 100% !important; height: 100% !important; display: block !important; }

.rtsl-loader-logo {
  font-family: var(--rtsl-font) !important;
  font-weight: 900 !important;
  font-size: 2.6rem !important;
  letter-spacing: -2px !important;
  color: var(--rtsl-text-primary) !important;
}
.rtsl-loader-bar-track {
  width: 200px !important;
  height: 3px !important;
  background: rgba(255,255,255,.08) !important;
  border-radius: 10px !important;
  overflow: hidden !important;
}
.rtsl-loader-bar {
  width: 0% !important;
  height: 100% !important;
  background: linear-gradient(90deg, var(--rtsl-primary), var(--rtsl-primary-light)) !important;
  border-radius: 10px !important;
  transition: width .3s ease !important;
}
.rtsl-loader-text {
  font-family: var(--rtsl-mono) !important;
  font-size: .72rem !important;
  color: var(--rtsl-text-muted) !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
}

/* ── App Grid ──────────────────────────────────────────────────────────────── */
.rtsl-app {
  display: grid !important;
  grid-template-columns: 460px 1fr !important;
  grid-template-rows: var(--rtsl-header-h) 1fr !important;
  height: 100vh !important;
  height: 100dvh !important;
  width: 100% !important;
  position: relative !important;
  pointer-events: auto !important;
}

.admin-bar .rtsl-wrapper {
  height: calc(100vh - 32px) !important;
  height: calc(100dvh - 32px) !important;
}
.admin-bar .rtsl-app {
  height: calc(100vh - 32px) !important;
  height: calc(100dvh - 32px) !important;
}
@media screen and (max-width: 782px) {
  .admin-bar .rtsl-wrapper {
    height: calc(100vh - 46px) !important;
    height: calc(100dvh - 46px) !important;
  }
  .admin-bar .rtsl-app {
    height: calc(100vh - 46px) !important;
    height: calc(100dvh - 46px) !important;
  }
}

/* ── Header ────────────────────────────────────────────────────────────────── */
.rtsl-header {
  grid-column: 1 / -1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 28px !important;
  height: var(--rtsl-header-h) !important;
  background: var(--rtsl-bg-surface) !important;
  border-bottom: 1px solid var(--rtsl-border) !important;
  z-index: 600 !important;
  position: relative !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
}
.rtsl-header::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important; left: 0 !important;
  width: 100% !important; height: 1px !important;
  background: linear-gradient(90deg, transparent, var(--rtsl-primary), transparent) !important;
  opacity: .3 !important;
}

.rtsl-brand { display: flex !important; align-items: center !important; gap: 14px !important; }
.rtsl-brand-icon {
  width: 42px !important; height: 42px !important;
  background: linear-gradient(135deg, var(--rtsl-primary), var(--rtsl-primary-dark)) !important;
  border-radius: 12px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  box-shadow: 0 4px 16px var(--rtsl-primary-glow) !important;
  flex-shrink: 0 !important;
}
.rtsl-brand-icon svg { width: 24px !important; height: 24px !important; fill: white !important; }

.rtsl-brand-name {
  font-weight: 800 !important;
  font-size: 1.5rem !important;
  letter-spacing: -1px !important;
  color: var(--rtsl-text-primary) !important;
  display: block !important;
  line-height: 1.1 !important;
}
.rtsl-brand-tag {
  font-family: var(--rtsl-mono) !important;
  font-size: .65rem !important;
  color: var(--rtsl-text-muted) !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  margin-top: 2px !important;
}

.rtsl-header-actions { display: flex !important; align-items: center !important; gap: 12px !important; }

.rtsl-header-stat {
  display: flex !important; align-items: center !important; gap: 8px !important;
  padding: 8px 16px !important;
  background: var(--rtsl-bg-card) !important;
  border: 1px solid var(--rtsl-border) !important;
  border-radius: var(--rtsl-radius-sm) !important;
  font-size: .8rem !important;
  color: var(--rtsl-text-secondary) !important;
}
.rtsl-count { font-weight: 700 !important; color: var(--rtsl-primary) !important; font-family: var(--rtsl-mono) !important; }

.rtsl-emergency-btn {
  display: flex !important; align-items: center !important; gap: 8px !important;
  padding: 10px 22px !important;
  background: linear-gradient(135deg, var(--rtsl-primary), var(--rtsl-primary-dark)) !important;
  border: none !important;
  border-radius: var(--rtsl-radius-sm) !important;
  color: white !important;
  font-family: var(--rtsl-font) !important;
  font-weight: 700 !important;
  font-size: .85rem !important;
  cursor: pointer !important;
  transition: var(--rtsl-transition) !important;
  box-shadow: 0 4px 20px var(--rtsl-primary-glow) !important;
  letter-spacing: .5px !important;
  text-decoration: none !important;
  text-transform: none !important;
  line-height: 1.4 !important;
  pointer-events: auto !important;
  position: relative !important;
  z-index: 5 !important;
}
.rtsl-emergency-btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 32px rgba(176,18,22,.4) !important;
}

.rtsl-pulse-dot {
  width: 8px !important; height: 8px !important;
  background: white !important;
  border-radius: 50% !important;
  animation: rtsl-pulse 1.5s ease infinite !important;
}
@keyframes rtsl-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(255,255,255,.6); }
  70%  { box-shadow: 0 0 0 8px rgba(255,255,255,0); }
  100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
}

/* ── Sidebar ───────────────────────────────────────────────────────────────── */
.rtsl-sidebar {
  display: flex !important;
  flex-direction: column !important;
  background: var(--rtsl-bg-surface) !important;
  border-right: 1px solid var(--rtsl-border) !important;
  overflow: hidden !important;
  position: relative !important;
}

.rtsl-sidebar-heading {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--rtsl-text-primary) !important;
  padding: 20px 22px 0 !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}

.rtsl-search-section { padding: 14px 22px 0 !important; flex-shrink: 0 !important; }
.rtsl-sidebar-heading + .rtsl-search-section { padding-top: 12px !important; }

.rtsl-search-box { position: relative !important; margin-bottom: 16px !important; }

.rtsl-search-input {
  width: 100% !important;
  padding: 14px 52px 14px 48px !important;
  background: var(--rtsl-bg-input) !important;
  border: 1.5px solid var(--rtsl-border) !important;
  border-radius: var(--rtsl-radius) !important;
  color: var(--rtsl-text-primary) !important;
  font-family: var(--rtsl-font) !important;
  font-size: .9rem !important;
  transition: var(--rtsl-transition) !important;
  outline: none !important;
  line-height: 1.4 !important;
  height: auto !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-shadow: none !important;
}
.rtsl-search-input::placeholder { color: var(--rtsl-text-muted) !important; }
.rtsl-search-input:focus {
  border-color: var(--rtsl-primary) !important;
  box-shadow: 0 0 0 3px var(--rtsl-primary-glow) !important;
}

/* ── Autocomplete dropdown ─────────────────────────────────────────────── */
.rtsl-ac-dropdown {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 50 !important;
  background: var(--rtsl-bg-card) !important;
  border: 1.5px solid var(--rtsl-border) !important;
  border-top: none !important;
  border-radius: 0 0 var(--rtsl-radius) var(--rtsl-radius) !important;
  box-shadow: var(--rtsl-shadow-lg) !important;
  max-height: 240px !important;
  overflow-y: auto !important;
  pointer-events: auto !important;
}
.rtsl-ac-item {
  padding: 12px 16px !important;
  font-family: var(--rtsl-font) !important;
  font-size: .82rem !important;
  color: var(--rtsl-text-secondary) !important;
  cursor: pointer !important;
  border-bottom: 1px solid var(--rtsl-border) !important;
  line-height: 1.4 !important;
  transition: var(--rtsl-transition) !important;
  text-decoration: none !important;
  pointer-events: auto !important;
}
.rtsl-ac-item:last-of-type { border-bottom: none !important; }
.rtsl-ac-item:hover,
.rtsl-ac-item.rtsl-ac-active {
  background: var(--rtsl-bg-card-hover) !important;
  color: var(--rtsl-primary-light) !important;
}
.rtsl-ac-attribution {
  padding: 6px 16px !important;
  font-size: .7rem !important;
  color: var(--rtsl-text-muted) !important;
  text-align: right !important;
  border-top: 1px solid var(--rtsl-border) !important;
}
.rtsl-ac-attribution a {
  color: var(--rtsl-primary-light) !important;
  text-decoration: none !important;
}

.rtsl-search-icon {
  position: absolute !important;
  left: 16px !important; top: 50% !important;
  transform: translateY(-50%) !important;
  color: var(--rtsl-text-muted) !important;
  pointer-events: none !important;
}

.rtsl-locate-btn {
  position: absolute !important;
  right: 8px !important; top: 50% !important;
  transform: translateY(-50%) !important;
  width: 34px !important; height: 34px !important;
  background: var(--rtsl-bg-card) !important;
  border: 1px solid var(--rtsl-border) !important;
  border-radius: 10px !important;
  color: var(--rtsl-text-secondary) !important;
  cursor: pointer !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  transition: var(--rtsl-transition) !important;
}
.rtsl-locate-btn:hover {
  background: var(--rtsl-primary) !important;
  color: white !important;
  border-color: var(--rtsl-primary) !important;
}
.rtsl-locate-btn.rtsl-loading {
  pointer-events: none !important;
  animation: rtsl-spin-loc 1s linear infinite !important;
}
@keyframes rtsl-spin-loc { to { transform: translateY(-50%) rotate(360deg); } }

/* Filters */
.rtsl-filters-row {
  display: flex !important; gap: 8px !important;
  margin-bottom: 16px !important;
  flex-wrap: wrap !important;
}
.rtsl-filter-chip {
  padding: 7px 14px !important;
  background: var(--rtsl-bg-input) !important;
  border: 1px solid var(--rtsl-border) !important;
  border-radius: 100px !important;
  color: var(--rtsl-text-secondary) !important;
  font-family: var(--rtsl-font) !important;
  font-size: .78rem !important; font-weight: 500 !important;
  cursor: pointer !important;
  transition: var(--rtsl-transition) !important;
  display: flex !important; align-items: center !important; gap: 6px !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  text-transform: none !important;
  line-height: 1.4 !important;
  pointer-events: auto !important;
}
.rtsl-filter-chip svg { width: 14px !important; height: 14px !important; }
.rtsl-filter-chip:hover,
.rtsl-filter-chip[aria-pressed="true"] {
  background: rgba(176,18,22,.12) !important;
  border-color: var(--rtsl-primary) !important;
  color: var(--rtsl-primary) !important;
}

.rtsl-distance-select {
  padding: 7px 28px 7px 14px !important;
  background: var(--rtsl-bg-input) !important;
  border: 1px solid var(--rtsl-border) !important;
  border-radius: 100px !important;
  color: var(--rtsl-text-secondary) !important;
  font-family: var(--rtsl-font) !important;
  font-size: .78rem !important; font-weight: 500 !important;
  cursor: pointer !important;
  transition: var(--rtsl-transition) !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  outline: none !important;
  line-height: 1.4 !important;
  height: auto !important;
}
.rtsl-distance-select option,
.rtsl-sort-select option {
  background: var(--rtsl-bg-card) !important;
  color: var(--rtsl-text-primary) !important;
}
.rtsl-distance-select:focus { border-color: var(--rtsl-primary) !important; }

/* Results bar */
.rtsl-results-info {
  display: flex !important; align-items: center !important; justify-content: space-between !important;
  padding: 12px 22px !important;
  border-top: 1px solid var(--rtsl-border) !important;
  border-bottom: 1px solid var(--rtsl-border) !important;
  flex-shrink: 0 !important;
}
.rtsl-results-count { font-size: .8rem !important; color: var(--rtsl-text-muted) !important; font-weight: 500 !important; }
.rtsl-results-count strong { color: var(--rtsl-text-primary) !important; font-weight: 700 !important; }

.rtsl-sort-select {
  padding: 5px 24px 5px 10px !important;
  background: transparent !important;
  border: 1px solid var(--rtsl-border) !important;
  border-radius: var(--rtsl-radius-sm) !important;
  color: var(--rtsl-text-secondary) !important;
  font-family: var(--rtsl-font) !important;
  font-size: .75rem !important;
  cursor: pointer !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 8px center !important;
  outline: none !important;
  line-height: 1.4 !important;
  height: auto !important;
}

/* ── Locations List ────────────────────────────────────────────────────────── */
.rtsl-locations-list {
  flex: 1 !important;
  overflow-y: auto !important;
  padding: 12px !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-y: contain !important;
}

.rtsl-loading-indicator {
  display: flex !important; flex-direction: column !important; align-items: center !important;
  justify-content: center !important; padding: 60px 24px !important; gap: 14px !important;
}
.rtsl-loading-indicator p { font-size: .88rem !important; color: var(--rtsl-text-muted) !important; }
.rtsl-spinner {
  width: 32px !important; height: 32px !important;
  border: 3px solid var(--rtsl-border) !important;
  border-top-color: var(--rtsl-primary) !important;
  border-radius: 50% !important;
  animation: rtsl-spin .8s linear infinite !important;
}
@keyframes rtsl-spin { to { transform: rotate(360deg); } }

/* Empty state */
.rtsl-empty-state {
  display: flex !important; flex-direction: column !important; align-items: center !important;
  justify-content: center !important; padding: 60px 24px !important; text-align: center !important; gap: 12px !important;
}
.rtsl-empty-state svg { width: 48px !important; height: 48px !important; color: var(--rtsl-text-muted) !important; opacity: .5 !important; }
.rtsl-empty-state p { font-size: .9rem !important; color: var(--rtsl-text-muted) !important; line-height: 1.5 !important; }
.rtsl-empty-state button {
  margin-top: 8px !important;
  padding: 8px 20px !important;
  background: var(--rtsl-primary) !important;
  border: none !important;
  border-radius: var(--rtsl-radius-sm) !important;
  color: white !important;
  font-family: var(--rtsl-font) !important;
  font-size: .82rem !important; font-weight: 600 !important;
  cursor: pointer !important;
  transition: var(--rtsl-transition) !important;
}
.rtsl-empty-state button:hover { opacity: .88 !important; }

/* Location card */
.rtsl-location-card {
  position: relative !important;
  padding: 18px !important;
  background: var(--rtsl-bg-card) !important;
  border: 1px solid var(--rtsl-border) !important;
  border-radius: var(--rtsl-radius) !important;
  margin-bottom: 10px !important;
  cursor: pointer !important;
  transition: var(--rtsl-transition) !important;
  overflow: hidden !important;
  pointer-events: auto !important;
}
.rtsl-location-card::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  width: 4px !important; height: 100% !important;
  background: var(--rtsl-primary) !important;
  opacity: 0 !important;
  transition: var(--rtsl-transition) !important;
  border-radius: 0 4px 4px 0 !important;
}
.rtsl-location-card:hover,
.rtsl-location-card.rtsl-active {
  background: var(--rtsl-bg-card-hover) !important;
  border-color: var(--rtsl-border-hover) !important;
  transform: translateX(4px) !important;
}
.rtsl-location-card:hover::before,
.rtsl-location-card.rtsl-active::before { opacity: 1 !important; }

.rtsl-card-top {
  display: flex !important; align-items: flex-start !important; justify-content: space-between !important;
  margin-bottom: 10px !important; gap: 10px !important;
}
.rtsl-card-title-group { flex: 1 !important; min-width: 0 !important; }
.rtsl-card-name {
  font-weight: 700 !important; font-size: 1rem !important;
  color: var(--rtsl-text-primary) !important;
  margin-bottom: 3px !important; letter-spacing: -.3px !important;
  line-height: 1.3 !important;
}
.rtsl-card-address { font-size: .8rem !important; color: var(--rtsl-text-secondary) !important; line-height: 1.4 !important; }

.rtsl-card-status {
  display: flex !important; align-items: center !important; gap: 5px !important;
  padding: 4px 10px !important;
  border-radius: 100px !important;
  font-size: .7rem !important; font-weight: 600 !important;
  text-transform: uppercase !important; letter-spacing: .5px !important;
  flex-shrink: 0 !important;
  border: none !important;
}
.rtsl-card-status.open   { background: rgba(34,197,94,.12) !important;  color: var(--rtsl-open) !important; }
.rtsl-card-status.busy   { background: rgba(245,158,11,.12) !important; color: var(--rtsl-busy) !important; }
.rtsl-card-status.closed { background: rgba(239,68,68,.12) !important;  color: var(--rtsl-closed) !important; }

.rtsl-status-dot { width: 6px !important; height: 6px !important; border-radius: 50% !important; background: currentColor !important; }

.rtsl-card-tags { display: flex !important; gap: 6px !important; margin-bottom: 12px !important; flex-wrap: wrap !important; }
.rtsl-card-tag {
  padding: 3px 9px !important;
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.06) !important;
  border-radius: 6px !important;
  font-size: .7rem !important;
  color: var(--rtsl-text-muted) !important; font-weight: 500 !important;
}

.rtsl-card-meta {
  display: flex !important; align-items: center !important; gap: 16px !important;
  padding-top: 12px !important;
  border-top: 1px solid var(--rtsl-border) !important;
}
.rtsl-meta-item {
  display: flex !important; align-items: center !important; gap: 5px !important;
  font-size: .78rem !important; color: var(--rtsl-text-secondary) !important;
}
.rtsl-meta-item svg { width: 14px !important; height: 14px !important; color: var(--rtsl-text-muted) !important; flex-shrink: 0 !important; }
.rtsl-meta-distance {
  margin-left: auto !important;
  font-family: var(--rtsl-mono) !important;
  font-weight: 700 !important; font-size: .75rem !important;
  color: var(--rtsl-primary) !important;
}

.rtsl-card-actions { display: flex !important; gap: 8px !important; margin-top: 12px !important; }
.rtsl-card-btn {
  flex: 1 !important;
  padding: 9px 14px !important;
  border-radius: var(--rtsl-radius-sm) !important;
  border: none !important;
  font-family: var(--rtsl-font) !important;
  font-size: .78rem !important; font-weight: 600 !important;
  cursor: pointer !important;
  transition: var(--rtsl-transition) !important;
  display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important;
  text-decoration: none !important;
  text-transform: none !important;
  line-height: 1.4 !important;
  pointer-events: auto !important;
  position: relative !important;
  z-index: 5 !important;
}
.rtsl-card-btn svg { width: 14px !important; height: 14px !important; }
.rtsl-card-btn.rtsl-btn-primary {
  background: linear-gradient(135deg, var(--rtsl-primary), var(--rtsl-primary-dark)) !important;
  color: white !important;
}
.rtsl-card-btn.rtsl-btn-primary:hover {
  box-shadow: 0 4px 16px var(--rtsl-primary-glow) !important;
  transform: translateY(-1px) !important;
}
.rtsl-card-btn.rtsl-btn-secondary {
  background: var(--rtsl-bg-input) !important;
  border: 1px solid var(--rtsl-border) !important;
  color: var(--rtsl-text-secondary) !important;
}
.rtsl-card-btn.rtsl-btn-secondary:hover {
  border-color: var(--rtsl-primary) !important;
  color: var(--rtsl-primary) !important;
}

/* ── Map ───────────────────────────────────────────────────────────────────── */
.rtsl-map-container { position: relative !important; overflow: hidden !important; }
#rtsl-map { width: 100% !important; height: 100% !important; z-index: 1 !important; }

/* Override Leaflet defaults to match theme */
.rtsl-wrapper .leaflet-container {
  background: var(--rtsl-bg-dark) !important;
  font-family: var(--rtsl-font) !important;
}
.rtsl-wrapper .leaflet-control-zoom {
  border: none !important;
  box-shadow: var(--rtsl-shadow) !important;
  border-radius: var(--rtsl-radius-sm) !important;
  overflow: hidden !important;
}
.rtsl-wrapper .leaflet-control-zoom a {
  background: var(--rtsl-bg-card) !important;
  color: var(--rtsl-text-primary) !important;
  border-color: var(--rtsl-border) !important;
  width: 36px !important; height: 36px !important;
  line-height: 36px !important; font-size: 16px !important;
}
.rtsl-wrapper .leaflet-control-zoom a:hover {
  background: var(--rtsl-bg-card-hover) !important;
  color: var(--rtsl-primary) !important;
}
.rtsl-wrapper .leaflet-control-attribution {
  background: rgba(0,0,0,.75) !important;
  color: var(--rtsl-text-muted) !important;
  font-size: .6rem !important;
  padding: 2px 6px !important;
}
.rtsl-wrapper .leaflet-control-attribution a { color: var(--rtsl-text-secondary) !important; }

.rtsl-wrapper .leaflet-popup-content-wrapper {
  background: var(--rtsl-bg-card) !important;
  border: 1px solid var(--rtsl-border) !important;
  border-radius: var(--rtsl-radius) !important;
  box-shadow: var(--rtsl-shadow-lg) !important;
  color: var(--rtsl-text-primary) !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.rtsl-wrapper .leaflet-popup-content { margin: 0 !important; min-width: 280px !important; }
.rtsl-wrapper .leaflet-popup-tip { background: var(--rtsl-bg-card) !important; border: none !important; box-shadow: none !important; }
.rtsl-wrapper .leaflet-popup-close-button {
  color: var(--rtsl-text-muted) !important;
  font-size: 20px !important;
  padding: 8px 10px 0 0 !important;
  z-index: 10 !important;
}
.rtsl-wrapper .leaflet-popup-close-button:hover { color: var(--rtsl-primary) !important; }

/* Popup */
.rtsl-popup-content { padding: 18px !important; }
.rtsl-popup-header { display: flex !important; align-items: center !important; gap: 10px !important; margin-bottom: 12px !important; }
.rtsl-popup-icon {
  width: 40px !important; height: 40px !important;
  background: linear-gradient(135deg, var(--rtsl-primary), var(--rtsl-primary-dark)) !important;
  border-radius: 10px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  flex-shrink: 0 !important;
}
.rtsl-popup-icon svg { width: 20px !important; height: 20px !important; fill: white !important; }
.rtsl-popup-name { font-weight: 700 !important; font-size: 1rem !important; color: var(--rtsl-text-primary) !important; }
.rtsl-popup-status {
  font-size: .7rem !important; font-weight: 600 !important;
  padding: 2px 8px !important;
  border-radius: 100px !important;
  margin-top: 2px !important;
  display: inline-block !important;
}
.rtsl-popup-details { display: flex !important; flex-direction: column !important; gap: 8px !important; margin-bottom: 14px !important; }
.rtsl-popup-detail {
  display: flex !important; align-items: center !important; gap: 8px !important;
  font-size: .8rem !important; color: var(--rtsl-text-secondary) !important;
}
.rtsl-popup-detail svg { width: 14px !important; height: 14px !important; color: var(--rtsl-text-muted) !important; flex-shrink: 0 !important; }
.rtsl-popup-actions { display: flex !important; gap: 8px !important; }
.rtsl-popup-btn {
  flex: 1 !important;
  padding: 10px !important;
  border-radius: var(--rtsl-radius-sm) !important;
  border: none !important;
  font-family: var(--rtsl-font) !important;
  font-size: .78rem !important; font-weight: 600 !important;
  cursor: pointer !important;
  transition: var(--rtsl-transition) !important;
  display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important;
  text-decoration: none !important;
  text-transform: none !important;
  line-height: 1.4 !important;
  pointer-events: auto !important;
  position: relative !important;
  z-index: 10 !important;
}
.rtsl-popup-btn svg { width: 14px !important; height: 14px !important; }
.rtsl-popup-btn.rtsl-directions {
  background: linear-gradient(135deg, var(--rtsl-primary), var(--rtsl-primary-dark)) !important;
  color: white !important;
}
.rtsl-popup-btn.rtsl-call {
  background: var(--rtsl-bg-input) !important;
  border: 1px solid var(--rtsl-border) !important;
  color: var(--rtsl-text-secondary) !important;
}

/* Map overlays — z-index between marker pane (600) and popup pane (700) */
.rtsl-map-overlay-top {
  position: absolute !important; top: 16px !important; left: 16px !important;
  z-index: 650 !important;
  display: flex !important; gap: 8px !important;
}
.rtsl-map-style-btn {
  padding: 8px 14px !important;
  background: var(--rtsl-bg-card) !important;
  border: 1px solid var(--rtsl-border) !important;
  border-radius: var(--rtsl-radius-sm) !important;
  color: var(--rtsl-text-secondary) !important;
  font-family: var(--rtsl-font) !important;
  font-size: .75rem !important; font-weight: 600 !important;
  cursor: pointer !important;
  transition: var(--rtsl-transition) !important;
  box-shadow: var(--rtsl-shadow) !important;
  display: flex !important; align-items: center !important; gap: 6px !important;
  text-decoration: none !important;
  text-transform: none !important;
  line-height: 1.4 !important;
  pointer-events: auto !important;
}
.rtsl-map-style-btn svg { width: 14px !important; height: 14px !important; }
.rtsl-map-style-btn:hover,
.rtsl-map-style-btn[aria-pressed="true"] {
  background: var(--rtsl-primary) !important;
  color: white !important;
  border-color: var(--rtsl-primary) !important;
}

.rtsl-map-overlay-bottom {
  position: absolute !important;
  bottom: 24px !important; left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 650 !important;
  display: flex !important; align-items: center !important; gap: 12px !important;
  padding: 10px 20px !important;
  background: rgba(17,17,17,.85) !important;
  border: 1px solid var(--rtsl-border) !important;
  border-radius: 100px !important;
  box-shadow: var(--rtsl-shadow-lg) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  backdrop-filter: blur(12px) !important;
}
.rtsl-map-legend-item {
  display: flex !important; align-items: center !important; gap: 6px !important;
  font-size: .72rem !important;
  color: var(--rtsl-text-secondary) !important; font-weight: 500 !important;
}
.rtsl-legend-dot { width: 8px !important; height: 8px !important; border-radius: 50% !important; }
.rtsl-legend-dot.rtsl-open   { background: var(--rtsl-open) !important; }
.rtsl-legend-dot.rtsl-busy   { background: var(--rtsl-busy) !important; }
.rtsl-legend-dot.rtsl-closed { background: var(--rtsl-closed) !important; }

/* Custom map markers */
.rtsl-custom-marker { position: relative !important; width: 52px !important; height: 62px !important; }
.rtsl-custom-marker svg {
  width: 52px !important;
  height: 62px !important;
}
.rtsl-custom-marker:hover svg {
  transform: scale(1.15) translateY(-4px) !important;
  transition: transform .2s ease !important;
}

/* User location blue dot */
.rtsl-user-dot-wrapper {
  background: transparent !important;
  border: none !important;
}
.rtsl-user-dot {
  width: 18px !important;
  height: 18px !important;
  background: #4285F4 !important;
  border: 3px solid #fff !important;
  border-radius: 50% !important;
  box-shadow: 0 0 6px rgba(66,133,244,.6) !important;
  position: relative !important;
}
.rtsl-user-dot-ping {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 18px !important;
  height: 18px !important;
  margin: -9px 0 0 -9px !important;
  border-radius: 50% !important;
  background: rgba(66,133,244,.3) !important;
  animation: rtsl-pulse 2s ease-out infinite !important;
  pointer-events: none !important;
}
@keyframes rtsl-pulse {
  0%   { transform: scale(1);   opacity: .6; }
  100% { transform: scale(3.5); opacity: 0; }
}

/* Toast notification */
.rtsl-toast {
  position: fixed !important;
  bottom: 24px !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(20px) !important;
  background: var(--rtsl-bg-card, #111) !important;
  color: var(--rtsl-text-primary, #f1f5f9) !important;
  border: 1px solid var(--rtsl-border, #222) !important;
  border-radius: 8px !important;
  padding: 12px 20px !important;
  font-size: .85rem !important;
  font-family: var(--rtsl-font, system-ui, sans-serif) !important;
  z-index: 10000 !important;
  opacity: 0 !important;
  transition: opacity .3s, transform .3s !important;
  pointer-events: none !important;
  max-width: 90vw !important;
  text-align: center !important;
  box-shadow: 0 4px 20px rgba(0,0,0,.4) !important;
}
.rtsl-toast-visible {
  opacity: 1 !important;
  transform: translateX(-50%) translateY(0) !important;
}

/* Cluster */
.rtsl-wrapper .marker-cluster { background: transparent !important; }
.rtsl-wrapper .marker-cluster div {
  background: linear-gradient(135deg, var(--rtsl-primary), var(--rtsl-primary-dark)) !important;
  color: white !important;
  font-family: var(--rtsl-font) !important;
  font-weight: 700 !important;
  font-size: .85rem !important;
  border-radius: 50% !important;
  width: 44px !important; height: 44px !important;
  display: flex !important;
  align-items: center !important; justify-content: center !important;
  box-shadow: 0 4px 16px var(--rtsl-primary-glow) !important;
  border: 3px solid rgba(255,255,255,.2) !important;
}

/* ── Detail Panel ──────────────────────────────────────────────────────────── */
.rtsl-detail-panel {
  position: absolute !important;
  top: var(--rtsl-header-h) !important;
  left: 0 !important;
  width: 460px !important;
  height: calc(100% - var(--rtsl-header-h)) !important;
  background: var(--rtsl-bg-surface) !important;
  z-index: 500 !important;
  transform: translateX(-100%) !important;
  transition: transform .4s cubic-bezier(.4,0,.2,1) !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-y: contain !important;
  border-right: 1px solid var(--rtsl-border) !important;
  box-shadow: 4px 0 24px rgba(0,0,0,.5) !important;
  pointer-events: auto !important;
}
.rtsl-detail-panel.rtsl-open { transform: translateX(0) !important; }

.rtsl-detail-close {
  position: sticky !important; top: 0 !important;
  display: flex !important; align-items: center !important; gap: 10px !important;
  padding: 16px 22px !important;
  background: var(--rtsl-bg-surface) !important;
  border-bottom: 1px solid var(--rtsl-border) !important;
  cursor: pointer !important; z-index: 10 !important;
  color: var(--rtsl-text-secondary) !important;
  font-size: .85rem !important; font-weight: 600 !important;
  border: none !important; width: 100% !important; text-align: left !important;
  font-family: var(--rtsl-font) !important;
  transition: var(--rtsl-transition) !important;
  text-decoration: none !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
}
.rtsl-detail-close:hover { color: var(--rtsl-primary) !important; }

.rtsl-detail-hero {
  position: relative !important; height: 160px !important;
  background: linear-gradient(135deg, var(--rtsl-primary), var(--rtsl-primary-dark)) !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  overflow: hidden !important;
}
.rtsl-detail-hero-pattern {
  position: absolute !important; inset: 0 !important;
  opacity: .08 !important;
  background-image: repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(255,255,255,.05) 20px, rgba(255,255,255,.05) 40px) !important;
}
.rtsl-detail-hero-icon {
  width: 72px !important; height: 72px !important;
  background: rgba(255,255,255,.15) !important;
  border-radius: 20px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  -webkit-backdrop-filter: blur(8px) !important;
  backdrop-filter: blur(8px) !important;
}
.rtsl-detail-hero-icon svg { width: 36px !important; height: 36px !important; fill: white !important; }

.rtsl-detail-body { padding: 24px 22px !important; }

.rtsl-detail-name {
  font-size: 1.4rem !important; font-weight: 800 !important;
  letter-spacing: -.5px !important; margin-bottom: 4px !important;
  color: var(--rtsl-text-primary) !important;
  line-height: 1.3 !important;
}
.rtsl-detail-address {
  font-size: .88rem !important; color: var(--rtsl-text-secondary) !important;
  margin-bottom: 16px !important;
}
.rtsl-detail-status-row {
  display: flex !important; align-items: center !important; gap: 12px !important; margin-bottom: 20px !important;
}

.rtsl-detail-info-grid {
  display: grid !important; grid-template-columns: 1fr 1fr !important;
  gap: 10px !important; margin-bottom: 24px !important;
}
.rtsl-detail-info-box {
  padding: 14px !important;
  background: var(--rtsl-bg-card) !important;
  border: 1px solid var(--rtsl-border) !important;
  border-radius: var(--rtsl-radius-sm) !important;
}
.rtsl-detail-info-label {
  font-size: .7rem !important; color: var(--rtsl-text-muted) !important;
  text-transform: uppercase !important; letter-spacing: 1px !important;
  margin-bottom: 4px !important; font-weight: 600 !important;
}
.rtsl-detail-info-value { font-size: .88rem !important; font-weight: 600 !important; color: var(--rtsl-text-primary) !important; }

.rtsl-detail-section-title {
  font-size: .8rem !important; font-weight: 700 !important;
  text-transform: uppercase !important; letter-spacing: 1px !important;
  color: var(--rtsl-text-muted) !important; margin-bottom: 12px !important;
}
.rtsl-detail-services { margin-bottom: 24px !important; }
.rtsl-services-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
.rtsl-service-item {
  display: flex !important; align-items: center !important; gap: 8px !important;
  padding: 10px 12px !important;
  background: var(--rtsl-bg-card) !important;
  border: 1px solid var(--rtsl-border) !important;
  border-radius: var(--rtsl-radius-sm) !important;
  font-size: .8rem !important; color: var(--rtsl-text-secondary) !important;
}
.rtsl-service-item svg { width: 16px !important; height: 16px !important; color: var(--rtsl-primary) !important; flex-shrink: 0 !important; }
.rtsl-service-item.rtsl-inactive { opacity: .3 !important; }

.rtsl-detail-actions { display: flex !important; gap: 10px !important; }
.rtsl-detail-btn {
  flex: 1 !important; padding: 14px !important;
  border-radius: var(--rtsl-radius) !important;
  border: none !important;
  font-family: var(--rtsl-font) !important;
  font-size: .88rem !important; font-weight: 700 !important;
  cursor: pointer !important;
  transition: var(--rtsl-transition) !important;
  display: flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important;
  text-decoration: none !important;
  text-transform: none !important;
  line-height: 1.4 !important;
  pointer-events: auto !important;
}
.rtsl-detail-btn svg { width: 18px !important; height: 18px !important; }
.rtsl-detail-btn.rtsl-call-btn {
  background: linear-gradient(135deg, var(--rtsl-primary), var(--rtsl-primary-dark)) !important;
  color: white !important;
  box-shadow: 0 4px 20px var(--rtsl-primary-glow) !important;
}
.rtsl-detail-btn.rtsl-call-btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 32px rgba(176,18,22,.4) !important;
}
.rtsl-detail-btn.rtsl-dir-btn {
  background: var(--rtsl-bg-card) !important;
  border: 1px solid var(--rtsl-border) !important;
  color: var(--rtsl-text-secondary) !important;
}
.rtsl-detail-btn.rtsl-dir-btn:hover {
  border-color: var(--rtsl-primary) !important;
  color: var(--rtsl-primary) !important;
}

/* ── Mobile Toolbar & Drawers (hidden on desktop) ─────────────────────────── */
.rtsl-mobile-toolbar,
.rtsl-mob-drawer { display: none !important; }

/* ── Responsive ────────────────────────────────────────────────────────────── */
@media (max-width: 1100px) and (min-width: 901px) {
  .rtsl-app { grid-template-columns: 340px 1fr !important; }
  .rtsl-detail-panel { width: 340px !important; }
}
@media (max-width: 900px) {
  .rtsl-wrapper.rtsl-wrapper {
    max-width: 95% !important;
    height: 100vh !important;
    height: 100dvh !important;
    overflow: hidden !important;
  }
  .rtsl-app {
    display: flex !important;
    flex-direction: column !important;
    height: 100vh !important;
    height: 100dvh !important;
    overflow: hidden !important;
  }

  /* Hide desktop sidebar search/filters — mobile uses toolbar + drawers */
  .rtsl-sidebar .rtsl-search-section { display: none !important; }
  .rtsl-sidebar .rtsl-results-info { display: none !important; }
  .rtsl-sidebar-heading { display: none !important; }

  .rtsl-header {
    flex-shrink: 0 !important;
    order: 1 !important;
  }
  .rtsl-map-container {
    order: 2 !important;
    flex: 0 0 45vh !important;
    min-height: 0 !important;
  }
  .rtsl-sidebar {
    order: 4 !important;
    border-right: none !important;
    border-top: none !important;
    flex: 1 1 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .rtsl-sidebar .rtsl-locations-list {
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    max-height: none !important;
    flex: 1 1 0 !important;
    min-height: 0 !important;
  }
  .rtsl-header-stat { display: none !important; }

  /* ── Mobile Toolbar ───────────────────────────────────────────────────── */
  .rtsl-mobile-toolbar {
    display: flex !important;
    order: 3 !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 12px !important;
    background: var(--rtsl-bg-surface) !important;
    border-top: 1px solid var(--rtsl-border) !important;
    border-bottom: 1px solid var(--rtsl-border) !important;
    flex-shrink: 0 !important;
    z-index: 10 !important;
    position: relative !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin !important;
  }
  .rtsl-mobile-toolbar::-webkit-scrollbar {
    height: 3px !important;
  }
  .rtsl-mobile-toolbar::-webkit-scrollbar-track {
    background: transparent !important;
  }
  .rtsl-mobile-toolbar::-webkit-scrollbar-thumb {
    background: var(--rtsl-border, #2d3348) !important;
    border-radius: 2px !important;
  }
  .rtsl-mob-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 8px 14px !important;
    border-radius: 20px !important;
    border: 1px solid var(--rtsl-border) !important;
    background: var(--rtsl-bg-card) !important;
    color: var(--rtsl-text-secondary) !important;
    font-family: var(--rtsl-font) !important;
    font-size: .78rem !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    min-height: 38px !important;
    transition: var(--rtsl-transition) !important;
    line-height: 1 !important;
    text-decoration: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    outline: none !important;
    box-shadow: none !important;
  }
  .rtsl-mob-btn:hover,
  .rtsl-mob-btn:focus,
  .rtsl-mob-btn[aria-expanded="true"] {
    background: var(--rtsl-primary) !important;
    border-color: var(--rtsl-primary) !important;
    color: #fff !important;
  }
  .rtsl-mob-btn svg {
    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0 !important;
  }
  .rtsl-mob-count {
    margin-left: auto !important;
    font-size: .75rem !important;
    color: var(--rtsl-text-muted) !important;
    font-family: var(--rtsl-font) !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }
  .rtsl-mob-count strong {
    color: var(--rtsl-text-primary) !important;
    font-weight: 600 !important;
  }

  /* ── Mobile Drawers ───────────────────────────────────────────────────── */
  .rtsl-mob-drawer {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 800 !important;
    background: var(--rtsl-bg-surface) !important;
    border-bottom: 1px solid var(--rtsl-border) !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.4) !important;
    max-height: 60vh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .rtsl-mob-drawer[aria-hidden="false"] {
    display: block !important;
  }
  .rtsl-mob-drawer-inner {
    padding: 16px !important;
  }
  .rtsl-mob-drawer-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 12px !important;
    font-family: var(--rtsl-font) !important;
    font-size: .9rem !important;
    font-weight: 600 !important;
    color: var(--rtsl-text-primary) !important;
  }
  .rtsl-mob-drawer-close {
    background: none !important;
    border: none !important;
    color: var(--rtsl-text-muted) !important;
    font-size: 1.4rem !important;
    cursor: pointer !important;
    padding: 4px 8px !important;
    line-height: 1 !important;
    min-height: 44px !important;
    min-width: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .rtsl-mob-drawer-close:hover { color: var(--rtsl-text-primary) !important; }

  /* Mobile search box */
  .rtsl-mob-search-box {
    position: relative !important;
  }
  .rtsl-mob-search-input {
    width: 100% !important;
    padding: 12px 16px !important;
    border: 1.5px solid var(--rtsl-border) !important;
    border-radius: var(--rtsl-radius) !important;
    background: var(--rtsl-bg-input) !important;
    color: var(--rtsl-text-primary) !important;
    font-family: var(--rtsl-font) !important;
    font-size: 16px !important;
    outline: none !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
  }
  .rtsl-mob-search-input:focus {
    border-color: var(--rtsl-primary) !important;
    box-shadow: 0 0 0 3px var(--rtsl-primary-glow) !important;
  }
  .rtsl-mob-search-input::placeholder { color: var(--rtsl-text-muted) !important; }

  /* Mobile filter chips — horizontal scroll, no wrap */
  .rtsl-mob-filter-chips {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    margin-bottom: 14px !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin !important;
    padding-bottom: 6px !important;
  }
  .rtsl-mob-filter-chips::-webkit-scrollbar {
    height: 4px !important;
  }
  .rtsl-mob-filter-chips::-webkit-scrollbar-track {
    background: var(--rtsl-bg-input, #1a1f2e) !important;
    border-radius: 2px !important;
  }
  .rtsl-mob-filter-chips::-webkit-scrollbar-thumb {
    background: var(--rtsl-border, #2d3348) !important;
    border-radius: 2px !important;
  }
  .rtsl-mob-filter-chip {
    font-size: .78rem !important;
    padding: 8px 14px !important;
    min-height: 38px !important;
    flex-shrink: 0 !important;
    white-space: nowrap !important;
  }

  /* Mobile filter selects */
  .rtsl-mob-filter-selects {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }
  .rtsl-mob-filter-selects label {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    font-family: var(--rtsl-font) !important;
    font-size: .75rem !important;
    font-weight: 600 !important;
    color: var(--rtsl-text-muted) !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
  }
  .rtsl-mob-filter-selects select {
    padding: 10px 12px !important;
    border: 1.5px solid var(--rtsl-border) !important;
    border-radius: var(--rtsl-radius) !important;
    background: var(--rtsl-bg-input) !important;
    color: var(--rtsl-text-primary) !important;
    font-family: var(--rtsl-font) !important;
    font-size: 16px !important;
    appearance: auto !important;
    min-height: 44px !important;
  }

  /* Detail panel — full screen overlay on mobile */
  .rtsl-detail-panel {
    width: 100% !important;
    height: calc(100vh - var(--rtsl-header-h)) !important;
    height: calc(100dvh - var(--rtsl-header-h)) !important;
    position: fixed !important;
    top: var(--rtsl-header-h) !important;
    left: 0 !important;
    z-index: 900 !important;
  }
  .rtsl-map-overlay-top { flex-wrap: wrap !important; }
  .rtsl-detail-close { padding: 14px 18px !important; }
}

@media (max-width: 600px) {
  .rtsl-wrapper.rtsl-wrapper { max-width: 95% !important; }
  .rtsl-brand-name { font-size: 1.2rem !important; }
  .rtsl-brand-tag { display: none !important; }
  .rtsl-emergency-btn { padding: 8px 14px !important; font-size: .78rem !important; min-height: 44px !important; }
  .rtsl-emergency-btn span:last-child { display: none !important; }
  .rtsl-filters-row { gap: 6px !important; }
  .rtsl-filter-chip { padding: 10px 12px !important; font-size: .72rem !important; min-height: 44px !important; }
  .rtsl-map-style-btn { padding: 8px 12px !important; font-size: .7rem !important; min-height: 44px !important; min-width: 44px !important; justify-content: center !important; }
  .rtsl-map-style-btn span { display: none !important; }
  .rtsl-location-card { padding: 14px !important; }
  .rtsl-detail-info-grid { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .rtsl-services-grid { grid-template-columns: 1fr 1fr !important; gap: 6px !important; }
  .rtsl-detail-actions { flex-direction: column !important; }
  /* Prevent iOS Safari auto-zoom on input focus (requires >= 16px) */
  .rtsl-search-input { font-size: 16px !important; }
  .rtsl-distance-select { font-size: 16px !important; }
  .rtsl-sort-select { font-size: 16px !important; }
  /* Touch-friendly locate button (44px min tap target) */
  .rtsl-locate-btn { width: 44px !important; height: 44px !important; }
  /* Card action buttons — ensure 44px minimum tap height */
  .rtsl-card-btn { min-height: 44px !important; }
  .rtsl-popup-btn { min-height: 44px !important; }
  .rtsl-detail-btn { min-height: 48px !important; }
}

@media (max-width: 400px) {
  .rtsl-header { padding: 0 14px !important; }
  .rtsl-search-section { padding: 14px 14px 0 !important; }
  .rtsl-results-info { padding: 10px 14px !important; }
  .rtsl-locations-list { padding: 8px !important; }
  .rtsl-detail-body { padding: 18px 16px !important; }
  .rtsl-detail-info-grid { grid-template-columns: 1fr !important; }
  /* Prevent popup overflowing 320px viewports */
  .rtsl-wrapper .leaflet-popup-content { min-width: 200px !important; max-width: calc(100vw - 60px) !important; }
  .rtsl-services-grid { grid-template-columns: 1fr !important; }
}

/* ── Landscape mobile — side-by-side layout when screen is wide but short ── */
@media (max-width: 900px) and (orientation: landscape) and (min-width: 568px) {
  .rtsl-wrapper.rtsl-wrapper {
    height: 100vh !important;
    height: 100dvh !important;
    min-height: unset !important;
    overflow: hidden !important;
  }
  .rtsl-app {
    display: grid !important;
    grid-template-columns: 280px 1fr !important;
    grid-template-rows: var(--rtsl-header-h) 1fr !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: unset !important;
  }
  /* Re-show desktop sidebar controls in landscape */
  .rtsl-sidebar .rtsl-search-section { display: block !important; }
  .rtsl-sidebar .rtsl-results-info { display: flex !important; }
  .rtsl-sidebar-heading { display: block !important; }
  /* Hide mobile toolbar/drawers in landscape */
  .rtsl-mobile-toolbar { display: none !important; }
  .rtsl-mob-drawer { display: none !important; }
  .rtsl-sidebar {
    order: unset !important;
    flex: unset !important;
    border-top: none !important;
    border-right: 1px solid var(--rtsl-border) !important;
    min-height: unset !important;
    overflow: hidden !important;
  }
  .rtsl-sidebar .rtsl-locations-list {
    max-height: none !important;
    flex: unset !important;
  }
  .rtsl-header { order: unset !important; }
  .rtsl-map-container { order: unset !important; min-height: unset !important; flex: unset !important; }
  .rtsl-detail-panel { width: 280px !important; }
  .rtsl-search-section { padding: 12px 14px 0 !important; }
  .rtsl-filters-row { gap: 4px !important; }
  .rtsl-filter-chip { padding: 6px 10px !important; font-size: .7rem !important; min-height: 36px !important; }
  .rtsl-location-card { padding: 12px !important; }
}

/* ── Safe area insets (iPhone notch / Dynamic Island / home indicator) ────── */
@supports (padding: env(safe-area-inset-top)) {
  .rtsl-header {
    padding-left: max(28px, env(safe-area-inset-left)) !important;
    padding-right: max(28px, env(safe-area-inset-right)) !important;
  }
  .rtsl-map-overlay-bottom {
    bottom: max(24px, calc(env(safe-area-inset-bottom) + 8px)) !important;
  }
  .rtsl-reviews-section {
    padding-bottom: max(80px, calc(env(safe-area-inset-bottom) + 40px)) !important;
  }
  @media (max-width: 400px) {
    .rtsl-header {
      padding-left: max(14px, env(safe-area-inset-left)) !important;
      padding-right: max(14px, env(safe-area-inset-right)) !important;
    }
  }
}

/* ── Touch device — disable hover transforms that stick after tap ────────── */
@media (hover: none) {
  .rtsl-location-card:hover {
    transform: none !important;
  }
  .rtsl-location-card:hover::before {
    opacity: 0 !important;
  }
  .rtsl-location-card.rtsl-active {
    transform: translateX(4px) !important;
  }
  .rtsl-location-card.rtsl-active::before {
    opacity: 1 !important;
  }
  .rtsl-emergency-btn:hover {
    transform: none !important;
  }
  .rtsl-card-btn.rtsl-btn-primary:hover {
    transform: none !important;
    box-shadow: none !important;
  }
  .rtsl-detail-btn.rtsl-call-btn:hover {
    transform: none !important;
    box-shadow: 0 4px 20px var(--rtsl-primary-glow) !important;
  }
  .rtsl-custom-marker:hover svg {
    transform: none !important;
  }
}

/* ── Accessibility — reduced motion ──────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .rtsl-wrapper,
  .rtsl-wrapper *,
  .rtsl-wrapper *::before,
  .rtsl-wrapper *::after,
  .rtsl-reviews-section,
  .rtsl-reviews-section * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   Reviews Section — Swiper slider below the map
   ========================================================================== */

.rtsl-reviews-section.rtsl-reviews-section {
  --rtsl-font:  'Outfit', sans-serif;
  --rtsl-mono:  'Space Mono', monospace;

  font-family: var(--rtsl-font) !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  background: transparent !important;
  color: #1d2327 !important;
  padding: 120px 0 80px !important;
  padding-block: 120px 80px !important;
  padding-inline: 0 !important;
  padding-inline-start: 0 !important;
  padding-inline-end: 0 !important;
  margin: 0 !important;
  margin-block: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  margin-inline: 0 !important;
  margin-inline-start: 0 !important;
  margin-inline-end: 0 !important;
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
  z-index: 1 !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  text-align: left !important;
  text-transform: none !important;
  text-decoration: none !important;
  border: none !important;
  border-radius: 0 !important;
  float: none !important;
  max-width: 100% !important;
  width: 100% !important;
  gap: 0 !important;
  row-gap: 0 !important;
  column-gap: 0 !important;
}
/* Reviews section — universal + element-type resets (:where() for low specificity) */
.rtsl-reviews-section :where(*:not([class*="swiper"]):not([class*="swiper"] *)),
.rtsl-reviews-section :where(*:not([class*="swiper"]):not([class*="swiper"] *))::before,
.rtsl-reviews-section :where(*:not([class*="swiper"]):not([class*="swiper"] *))::after {
  box-sizing: border-box !important;
  margin: 0 !important;
  margin-block: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  margin-inline: 0 !important;
  margin-inline-start: 0 !important;
  margin-inline-end: 0 !important;
  padding: 0 !important;
  padding-block: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  padding-inline: 0 !important;
  padding-inline-start: 0 !important;
  padding-inline-end: 0 !important;
}
.rtsl-reviews-section :where(h2) {
  margin: 0 !important;
  margin-block: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  padding: 0 !important;
  border: none !important;
  font-family: var(--rtsl-font) !important;
}
.rtsl-reviews-section :where(p) {
  margin: 0 !important;
  margin-block: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  padding: 0 !important;
  font-family: var(--rtsl-font) !important;
}
.rtsl-reviews-section :where(a) {
  text-decoration: none !important;
  color: inherit !important;
}
.rtsl-reviews-section :where(img) {
  max-width: 100% !important;
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.rtsl-reviews-section :where(article, div:not([class*="swiper"]), span, button) {
  margin: 0 !important;
  margin-block: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  padding: 0 !important;
  padding-block: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  border: none !important;
}

/* Elementor container neutralisation for reviews */
.elementor-section:has(.rtsl-reviews-section),
.e-con:has(.rtsl-reviews-section),
.e-con-inner:has(.rtsl-reviews-section) {
  padding: 0 !important;
  margin: 0 !important;
  padding-block: 0 !important;
  margin-block: 0 !important;
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
  gap: 0 !important;
}

.rtsl-reviews-inner {
  max-width: 90% !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* ── Reviews Header ──────────────────────────────────────────────────────── */
.rtsl-reviews-header {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  margin-bottom: 40px !important;
  gap: 20px !important;
}

.rtsl-reviews-title {
  font-family: var(--rtsl-font) !important;
  font-size: 2.2rem !important;
  font-weight: 800 !important;
  letter-spacing: -1px !important;
  color: #1d2327 !important;
  margin: 0 !important;
  line-height: 1.2 !important;
}

.rtsl-reviews-subtitle {
  font-size: .9rem !important;
  color: #646970 !important;
  margin-top: 6px !important;
  font-weight: 400 !important;
}

.rtsl-reviews-nav {
  display: flex !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
}

.rtsl-reviews-nav-btn {
  width: 44px !important;
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #f0f0f1 !important;
  border: 1px solid #ddd !important;
  border-radius: 12px !important;
  color: #50575e !important;
  cursor: pointer !important;
  transition: all .3s cubic-bezier(.4,0,.2,1) !important;
  text-decoration: none !important;
  line-height: 1 !important;
  pointer-events: auto !important;
}
.rtsl-reviews-nav-btn:hover {
  background: var(--rtsl-primary, #2563EB) !important;
  color: white !important;
  border-color: var(--rtsl-primary, #2563EB) !important;
  transform: scale(1.05) !important;
}
.rtsl-reviews-nav-btn.swiper-button-disabled {
  opacity: .3 !important;
  cursor: not-allowed !important;
}
.rtsl-reviews-nav-btn.swiper-button-disabled:hover {
  background: #f0f0f1 !important;
  color: #50575e !important;
  border-color: #ddd !important;
  transform: none !important;
}

/* ── Review Card ─────────────────────────────────────────────────────────── */
.rtsl-review-card {
  background: #fff !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  transition: all .4s cubic-bezier(.4,0,.2,1) !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}
.rtsl-review-card:hover {
  border-color: rgba(176,18,22,.3) !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 40px rgba(0,0,0,.1), 0 0 0 1px rgba(176,18,22,.15) !important;
}

/* ── Review Image ────────────────────────────────────────────────────────── */
.rtsl-review-img-wrap {
  position: relative !important;
  height: 200px !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, #f0f0f1, #e0e0e0) !important;
}
.rtsl-review-img-wrap img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform .5s cubic-bezier(.4,0,.2,1) !important;
}
.rtsl-review-card:hover .rtsl-review-img-wrap img {
  transform: scale(1.08) !important;
}

/* Placeholder when no featured image */
.rtsl-review-placeholder {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(135deg,
    #f0f0f1 0%,
    rgba(176,18,22,.08) 50%,
    #e0e0e0 100%
  ) !important;
}
.rtsl-review-placeholder svg {
  width: 56px !important;
  height: 56px !important;
  color: rgba(176,18,22,.35) !important;
  transition: transform .4s ease !important;
  opacity: .6 !important;
}
.rtsl-review-card:hover .rtsl-review-placeholder svg {
  transform: scale(1.12) !important;
  opacity: .8 !important;
}

/* Source badge on image */
.rtsl-review-source {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  padding: 4px 10px !important;
  background: rgba(255,255,255,.85) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  backdrop-filter: blur(8px) !important;
  border-radius: 100px !important;
  font-size: .68rem !important;
  font-weight: 600 !important;
  color: #646970 !important;
  letter-spacing: .5px !important;
  text-transform: uppercase !important;
}

/* ── Review Content ──────────────────────────────────────────────────────── */
.rtsl-review-content {
  padding: 20px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Stars */
.rtsl-review-stars {
  display: flex !important;
  align-items: center !important;
  gap: 2px !important;
  margin-bottom: 12px !important;
}
.rtsl-star {
  width: 16px !important;
  height: 16px !important;
  color: #F59E0B !important;
  flex-shrink: 0 !important;
}
.rtsl-star-empty {
  color: rgba(245,158,11,.25) !important;
}
.rtsl-review-rating-num {
  margin-left: 8px !important;
  font-family: var(--rtsl-mono) !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
  color: #F59E0B !important;
}

/* Review text */
.rtsl-review-text {
  font-size: .88rem !important;
  line-height: 1.6 !important;
  color: #50575e !important;
  flex: 1 !important;
  margin-bottom: 16px !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 4 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* Footer with author and tags */
.rtsl-review-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding-top: 14px !important;
  border-top: 1px solid #e0e0e0 !important;
  flex-wrap: wrap !important;
}

.rtsl-review-author {
  font-weight: 700 !important;
  font-size: .85rem !important;
  color: #1d2327 !important;
  letter-spacing: -.2px !important;
}

.rtsl-review-tags {
  display: flex !important;
  gap: 6px !important;
  flex-wrap: wrap !important;
}

.rtsl-review-tag {
  padding: 4px 10px !important;
  background: rgba(176,18,22,.1) !important;
  border: 1px solid rgba(176,18,22,.2) !important;
  border-radius: 100px !important;
  font-size: .68rem !important;
  font-weight: 600 !important;
  color: var(--rtsl-primary, #2563EB) !important;
  white-space: nowrap !important;
  transition: all .2s ease !important;
}
.rtsl-review-card:hover .rtsl-review-tag {
  background: rgba(176,18,22,.15) !important;
  border-color: rgba(176,18,22,.35) !important;
}

/* ── Swiper Overrides ────────────────────────────────────────────────────── */
.rtsl-reviews-swiper {
  overflow: visible !important;
  padding-bottom: 48px !important;
}
.rtsl-reviews-swiper .swiper-wrapper {
  align-items: stretch !important;
}
.rtsl-reviews-swiper .swiper-slide {
  height: auto !important;
  margin-right: 28px !important;
}
.rtsl-reviews-swiper .swiper-slide:last-child {
  margin-right: 0 !important;
}
.rtsl-reviews-pagination {
  bottom: 0 !important;
  display: flex !important;
  justify-content: center !important;
  gap: 6px !important;
}
.rtsl-reviews-pagination .swiper-pagination-bullet {
  width: 8px !important;
  height: 8px !important;
  background: #ddd !important;
  opacity: 1 !important;
  border-radius: 100px !important;
  transition: all .3s ease !important;
}
.rtsl-reviews-pagination .swiper-pagination-bullet-active {
  width: 24px !important;
  background: var(--rtsl-primary, #2563EB) !important;
}

/* ── Reviews Responsive ──────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .rtsl-reviews-section { padding: 60px 0 !important; }
  .rtsl-reviews-title { font-size: 1.6rem !important; }
  .rtsl-reviews-header { margin-bottom: 28px !important; }
  .rtsl-reviews-swiper .swiper-slide { margin-right: 24px !important; }
}
@media (max-width: 600px) {
  .rtsl-reviews-section { padding: 40px 0 !important; }
  .rtsl-reviews-title { font-size: 1.3rem !important; }
  .rtsl-reviews-subtitle { font-size: .8rem !important; }
  .rtsl-reviews-header {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
  .rtsl-reviews-swiper .swiper-slide { margin-right: 20px !important; }
  /* Touch target: min 44px for review nav buttons */
  .rtsl-reviews-nav-btn { width: 44px !important; height: 44px !important; }
  .rtsl-review-img-wrap { height: 160px !important; }
  .rtsl-review-content { padding: 16px !important; }
  .rtsl-review-footer { flex-direction: column !important; align-items: flex-start !important; gap: 8px !important; }
}
@media (max-width: 400px) {
  .rtsl-reviews-title { font-size: 1.1rem !important; }
  .rtsl-reviews-subtitle { font-size: .75rem !important; }
  .rtsl-review-img-wrap { height: 130px !important; }
  .rtsl-review-content { padding: 14px !important; }
  .rtsl-review-text { font-size: .8rem !important; }
  .rtsl-review-tag { font-size: .62rem !important; padding: 3px 8px !important; }
}
