:root{--primary:#ff385c;--gv-ink:#222222;--gv-muted:#6a6a6a;--gv-line:#ebebeb;--gv-brand:#ff385c;--gv-shadow-pin:0 0 0 1px rgba(0,0,0,.08),0 2px 6px rgba(0,0,0,.22);--gv-shadow-pop:0 10px 32px rgba(0,0,0,.28);}.dc-highlight,.gv-pop-highlight,#prop-highlight{color:#ff385c !important;font-weight:500 !important;}#map{background:#e9eef1;}.map-sticky-wrapper{border-radius:16px;overflow:hidden;}.gv-map-fallback{height:100%;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;color:var(--gv-muted);font-size:14px;}#map .maplibregl-ctrl-group{border-radius:12px;border:0;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.2);}#map .maplibregl-ctrl-group button{width:36px;height:36px;}#map .maplibregl-ctrl-bottom-right{margin:0 4px 4px 0;}.gv-map-top{position:absolute;top:12px;left:0;right:0;z-index:4;display:flex;justify-content:center;align-items:center;gap:8px;padding:0 12px;pointer-events:none;}.gv-map-top > *{pointer-events:auto;}.gv-toggle{display:inline-flex;align-items:center;gap:10px;margin:0;background:#fff;color:var(--gv-ink);cursor:pointer;user-select:none;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:600;line-height:1;box-shadow:0 2px 10px rgba(0,0,0,.2);}.gv-toggle input{position:absolute;opacity:0;width:0;height:0;}.gv-toggle-box{position:relative;flex:0 0 18px;width:18px;height:18px;border:1.5px solid #b0b0b0;border-radius:5px;background:#fff;transition:background-color .15s,border-color .15s;}.gv-toggle input:checked + .gv-toggle-box{background:var(--gv-ink);border-color:var(--gv-ink);}.gv-toggle input:checked + .gv-toggle-box::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}.gv-toggle input:focus-visible + .gv-toggle-box{outline:2px solid var(--gv-ink);outline-offset:2px;}.gv-search-here{border:0;background:var(--gv-ink);color:#fff;cursor:pointer;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:600;line-height:1;box-shadow:0 2px 10px rgba(0,0,0,.3);}.gv-search-here[hidden]{display:none;}.gv-search-here:hover{background:#000;}.gv-marker{line-height:0;}.gv-marker:hover{z-index:30;}.gv-marker.is-hover{z-index:35;}.gv-marker.is-active{z-index:40;}.gv-pill{display:block;appearance:none;border:0;cursor:pointer;background:#fff;color:var(--gv-ink);padding:8px 12px;border-radius:28px;font:700 14px/1 'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;letter-spacing:-.1px;white-space:nowrap;box-shadow:var(--gv-shadow-pin);transition:transform .16s cubic-bezier(.2,0,0,1),background-color .16s,color .16s,box-shadow .16s;will-change:transform;}.gv-pill:hover,.gv-marker.is-hover .gv-pill{transform:scale(1.08);background:var(--gv-ink);color:#fff;}.gv-marker.is-active .gv-pill{transform:scale(1.08);background:var(--gv-ink);color:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.2),0 6px 16px rgba(0,0,0,.35);}.gv-marker.is-seen:not(.is-active):not(.is-hover) .gv-pill:not(:hover){background:#f0f0f0;color:#6a6a6a;}.gv-pill--na{font-weight:600;}.gv-pill:focus-visible{outline:2px solid var(--gv-ink);outline-offset:2px;}.gv-cluster{appearance:none;cursor:pointer;display:flex;align-items:center;justify-content:center;border:2px solid #fff;border-radius:50%;background:var(--gv-ink);color:#fff;font:700 13px/1 'Plus Jakarta Sans',system-ui,sans-serif;box-shadow:0 2px 8px rgba(0,0,0,.35);transition:transform .16s cubic-bezier(.2,0,0,1),background-color .16s;}.gv-cluster:hover{transform:scale(1.1);background:var(--gv-brand);}.gv-cluster:focus-visible{outline:2px solid var(--gv-brand);outline-offset:2px;}.gv-me{width:18px;height:18px;}.gv-me-dot{position:absolute;inset:2px;border-radius:50%;background:#1a73e8;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4);}.gv-me-ring{position:absolute;inset:-6px;border-radius:50%;background:rgba(26,115,232,.25);animation:gv-pulse 2s ease-out infinite;}@keyframes gv-pulse{0%{transform:scale(.4);opacity:1;}100%{transform:scale(1.5);opacity:0;}}.maplibregl-popup.gv-popup{z-index:60;}.gv-popup .maplibregl-popup-content{width:272px;max-width:calc(100vw - 48px);padding:0;margin:0;border:0;border-radius:16px;overflow:hidden;background:#fff;box-shadow:var(--gv-shadow-pop);}.gv-popup .maplibregl-popup-tip{display:none;}.gv-pop-media{position:relative;aspect-ratio:4 / 3;background:#eee;cursor:pointer;}.gv-pop-track{position:absolute;inset:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;}.gv-pop-track::-webkit-scrollbar{display:none;}.gv-pop-track img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start;}.gv-pop-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9a9a9a;font-size:28px;background:linear-gradient(135deg,#f3f3f3,#e6e6e6);}.gv-pop-btn{position:absolute;z-index:3;display:flex;align-items:center;justify-content:center;border:0;cursor:pointer;padding:0;}.gv-pop-close,.gv-pop-nav{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.95);color:var(--gv-ink);box-shadow:0 1px 4px rgba(0,0,0,.3);}.gv-pop-close{top:10px;left:10px;font-size:18px;line-height:1;}.gv-pop-close:hover,.gv-pop-nav:hover{background:#fff;transform:scale(1.06);}.gv-pop-nav{top:50%;margin-top:-14px;}.gv-pop-nav svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:4;overflow:visible;}.gv-pop-nav[data-dir="-1"]{left:8px;}.gv-pop-nav[data-dir="1"]{right:8px;}.gv-pop-heart,.dc-heart{background:transparent;}.gv-pop-heart{top:8px;right:8px;width:32px;height:32px;}.gv-pop-heart svg,.dc-heart svg{width:24px;height:24px;fill:rgba(0,0,0,.5);stroke:#fff;stroke-width:2;overflow:visible;}.gv-pop-dots{position:absolute;left:0;right:0;bottom:8px;z-index:2;display:flex;justify-content:center;gap:4px;pointer-events:none;}.gv-pop-dots i{width:5px;height:5px;border-radius:50%;background:#fff;opacity:.55;box-shadow:0 1px 2px rgba(0,0,0,.4);}.gv-pop-dots i.on{opacity:1;}.gv-pop-body{display:block;padding:12px 14px 14px;color:var(--gv-ink);text-decoration:none;}.gv-pop-body:hover{color:var(--gv-ink);}.gv-pop-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}.gv-pop-name{flex:1;min-width:0;font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.gv-pop-rate{display:flex;align-items:center;gap:3px;flex-shrink:0;font-size:13px;font-weight:500;}.gv-pop-rate svg{width:11px;height:11px;fill:currentColor;}.gv-pop-sub{margin-top:2px;font-size:13px;color:var(--gv-muted);}.gv-pop-price{margin-top:8px;font-size:15px;}.gv-pop-price b{font-weight:700;}.gv-pop-price span{color:var(--gv-muted);}
/* ==========================================================================
   ULTRA-MODERN DISCOVER LISTING CARDS & GRID (AIRBNB / LUXURY OTA 2026)
   ========================================================================== */

body.discover-body .discover-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 22px 18px !important;
  align-items: stretch !important;
  transition: opacity 0.2s ease;
}

body.discover-body .discover-grid.is-loading {
  opacity: 0.5;
  pointer-events: none;
}

.gv-count {
  margin: -6px 0 18px;
  font-size: 13.5px;
  font-weight: 500;
  color: #64748b;
  min-height: 20px;
}

/* Card Container */
body.discover-body .discover-grid .listing-card.discover-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  padding: 0 !important;
  background: #ffffff !important;
  border: 1px solid #eef2f6 !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  margin: 0 !important;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04), 0 6px 18px -2px rgba(15, 23, 42, 0.03) !important;
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.28s ease !important;
  position: relative !important;
  cursor: pointer;
}

body.discover-body .discover-grid .listing-card.discover-card:hover {
  transform: translateY(-4px) !important;
  border-color: #cbd5e1 !important;
  box-shadow: 0 14px 32px -4px rgba(15, 23, 42, 0.1), 0 4px 12px rgba(15, 23, 42, 0.04) !important;
}

body.discover-body .discover-grid .listing-card.discover-card > a.dc-link {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  color: inherit !important;
  text-decoration: none !important;
}

/* Map Highlight State */
.discover-card.gv-card-hover {
  outline: 2px solid #0f172a !important;
  outline-offset: 3px !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 18px 36px -4px rgba(15, 23, 42, 0.14) !important;
}

/* Media & Photo Carousel */
.dc-media {
  position: relative !important;
  aspect-ratio: 16 / 10.5 !important;
  border-radius: 17px 17px 0 0 !important;
  overflow: hidden !important;
  background: #f1f5f9 !important;
}

.dc-track {
  display: flex !important;
  height: 100% !important;
  overflow-x: auto !important;
  scroll-snap-type: x mandatory !important;
  scrollbar-width: none !important;
  -webkit-overflow-scrolling: touch !important;
}

.dc-track::-webkit-scrollbar {
  display: none !important;
}

.dc-track img {
  flex: 0 0 100% !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  scroll-snap-align: start !important;
  scroll-snap-stop: always !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

body.discover-body .discover-grid .listing-card.discover-card:hover .dc-track img {
  transform: scale(1.035) !important;
}

.dc-no-img {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1f5f9;
  color: #94a3b8;
  font-size: 32px;
}

/* Frosted Glass Badges on Photo Top-Left */
.dc-badge {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  z-index: 3 !important;
  pointer-events: none !important;
  padding: 5px 11px !important;
  border-radius: 999px !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  letter-spacing: -0.1px !important;
}

.dc-badge--favourite {
  background: rgba(255, 255, 255, 0.94) !important;
  color: #0f172a !important;
  border: 1px solid rgba(255, 255, 255, 0.8) !important;
}

.dc-badge--favourite svg {
  color: #ff385c !important;
}

.dc-badge--highlight {
  background: rgba(255, 241, 242, 0.94) !important;
  color: #be123c !important;
  border: 1px solid rgba(254, 205, 211, 0.8) !important;
}

.dc-badge--highlight i {
  color: #e11d48 !important;
}

.dc-badge--luxury {
  background: rgba(15, 23, 42, 0.88) !important;
  color: #f8fafc !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
}

.dc-badge--luxury i {
  color: #fbbf24 !important;
}

.dc-badge--budget {
  background: rgba(236, 253, 245, 0.94) !important;
  color: #047857 !important;
  border: 1px solid rgba(167, 243, 208, 0.8) !important;
}

.dc-badge--budget i {
  color: #059669 !important;
}

.dc-badge--rating {
  background: rgba(255, 255, 255, 0.94) !important;
  color: #0f172a !important;
  border: 1px solid rgba(255, 255, 255, 0.8) !important;
}

.dc-badge--new {
  background: rgba(255, 255, 255, 0.92) !important;
  color: #334155 !important;
  border: 1px solid rgba(255, 255, 255, 0.7) !important;
}

/* Floating Glassmorphic Wishlist Heart Button Top-Right */
.dc-heart {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  z-index: 4 !important;
  width: 36px !important;
  height: 36px !important;
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.65) !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.88) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s ease, box-shadow 0.2s ease !important;
}

.dc-heart:hover {
  transform: scale(1.1) !important;
  background: #ffffff !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18) !important;
}

.dc-heart svg {
  width: 17px !important;
  height: 17px !important;
  fill: rgba(0, 0, 0, 0.35) !important;
  stroke: #ffffff !important;
  stroke-width: 2.4 !important;
  overflow: visible !important;
  transition: transform 0.2s ease, fill 0.2s ease, stroke 0.2s ease !important;
}

.dc-heart:active svg {
  transform: scale(0.85) !important;
}

/* Carousel Navigation Arrows */
.dc-nav {
  position: absolute !important;
  top: 50% !important;
  margin-top: -15px !important;
  z-index: 3 !important;
  width: 30px !important;
  height: 30px !important;
  padding: 0 !important;
  border: 1px solid rgba(0, 0, 0, 0.05) !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  color: #0f172a !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
  cursor: pointer !important;
  transition: transform 0.15s ease, background 0.15s ease, opacity 0.15s ease !important;
}

.dc-nav svg {
  width: 10px !important;
  height: 10px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 3.5 !important;
  overflow: visible !important;
}

.dc-nav[data-dir="-1"] { left: 10px !important; }
.dc-nav[data-dir="1"] { right: 10px !important; }

@media (hover: hover) {
  .dc-nav {
    display: flex !important;
    opacity: 0 !important;
  }
  .dc-media:hover .dc-nav {
    opacity: 1 !important;
  }
  .dc-nav:hover {
    background: #ffffff !important;
    transform: scale(1.08) !important;
  }
}

/* Carousel Dots */
.dc-dots {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 10px !important;
  z-index: 3 !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 4.5px !important;
  pointer-events: none !important;
}

.dc-dots i {
  width: 5px !important;
  height: 5px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  opacity: 0.6 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4) !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.dc-dots i.on {
  opacity: 1 !important;
  width: 15px !important;
  border-radius: 6px !important;
}

/* Card Body Content */
.dc-body {
  padding: 14px 16px 16px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  gap: 5px !important;
}

.dc-header-row,
.dc-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 8px !important;
}

.dc-title {
  flex: 1 !important;
  min-width: 0 !important;
  margin: 0 !important;
  font-size: 15.5px !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  line-height: 1.35 !important;
  letter-spacing: -0.2px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.dc-rating-lockup,
.dc-rating {
  display: flex !important;
  align-items: center !important;
  gap: 3.5px !important;
  flex-shrink: 0 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #0f172a !important;
}

.dc-star-svg {
  display: inline-flex !important;
  align-items: center !important;
}

.dc-star-svg svg {
  width: 12px !important;
  height: 12px !important;
  fill: #f59e0b !important;
}

.dc-rating-val {
  font-weight: 700 !important;
  color: #0f172a !important;
}

.dc-rating-new {
  font-size: 11.5px !important;
  font-weight: 600 !important;
  color: #059669 !important;
  background: #ecfdf5 !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
}

/* Meta Information */
.dc-meta-row,
.dc-sub {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 13px !important;
  color: #64748b !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  margin: 0 !important;
}

.dc-location {
  display: inline-flex !important;
  align-items: center !important;
  gap: 3px !important;
  color: #334155 !important;
  font-weight: 600 !important;
}

.dc-location i {
  font-size: 11.5px !important;
  color: #ff385c !important;
}

.dc-meta-sep {
  color: #cbd5e1 !important;
}

.dc-category-tag {
  color: #64748b !important;
  font-size: 12.5px !important;
}

.dc-room-details {
  font-size: 12px !important;
  color: #94a3b8 !important;
  line-height: 1.25 !important;
}

/* Modern Perks & Highlight Pill Badges */
.dc-perk-row {
  margin-top: 2px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}

.dc-perk-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  padding: 3.5px 9px !important;
  border-radius: 6px !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.1px !important;
}

.dc-perk-pill--perk {
  background: #ecfdf5 !important;
  color: #047857 !important;
  border: 1px solid #a7f3d0 !important;
}

.dc-perk-pill--perk i {
  font-size: 11px !important;
}

.dc-perk-pill--demand {
  background: #fff1f2 !important;
  color: #e11d48 !important;
  border: 1px solid #ffe4e6 !important;
}

.dc-pulse-dot {
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background: #e11d48 !important;
  display: inline-block !important;
  animation: dcPulse 1.8s infinite ease-in-out !important;
}

@keyframes dcPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.35; transform: scale(0.75); }
}

/* Transport Chips */
.dc-transport {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 4px 8px !important;
  margin-top: 3px !important;
}

.dc-transit-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 6px !important;
  padding: 2.5px 7px !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  color: #475569 !important;
}

.dc-transit-chip i {
  font-size: 11px !important;
  color: #64748b !important;
}

/* Reference Distance Badge */
.dc-ref-badge,
.dc-ref {
  margin-top: 3px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  background: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  color: #166534 !important;
  border-radius: 6px !important;
  padding: 2.5px 8px !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
}

/* Price & Action CTA Row */
.dc-footer-row,
.dc-price {
  margin-top: auto !important;
  padding-top: 10px !important;
  border-top: 1px solid #f1f5f9 !important;
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
}

.dc-price-block {
  display: flex !important;
  align-items: baseline !important;
  gap: 3px !important;
}

.dc-price-amount {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  letter-spacing: -0.3px !important;
}

.dc-price-amount b {
  font-weight: 700 !important;
}

.dc-price-cycle {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #64748b !important;
}

.dc-price-on-request {
  font-size: 13.5px !important;
  font-weight: 600 !important;
  color: #64748b !important;
}

.dc-action-cta {
  display: flex !important;
  align-items: center !important;
}

.dc-cta-hint {
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #ff385c !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  transition: transform 0.2s ease, color 0.2s ease !important;
}

.dc-cta-hint i {
  font-size: 11px !important;
  transition: transform 0.2s ease !important;
}

body.discover-body .discover-grid .listing-card.discover-card:hover .dc-cta-hint {
  color: #e11d48 !important;
}

body.discover-body .discover-grid .listing-card.discover-card:hover .dc-cta-hint i {
  transform: translateX(3px) !important;
}

/* Skeleton Loading State */
.dc-skel .dc-sk {
  border-radius: 8px !important;
  background: linear-gradient(90deg, #f0f0f0 25%, #e4e4e4 50%, #f0f0f0 75%) !important;
  background-size: 200% 100% !important;
  animation: gv-shimmer 1.4s infinite linear !important;
}

.dc-skel .dc-sk-media {
  aspect-ratio: 16 / 10.5 !important;
  border-radius: 17px 17px 0 0 !important;
}

.dc-skel .dc-sk-line {
  border-radius: 6px !important;
}

@keyframes gv-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Empty / Retry State */
.gv-state {
  grid-column: 1 / -1 !important;
  text-align: center !important;
  padding: 56px 16px !important;
  color: var(--gv-muted) !important;
}

.gv-state h3 {
  margin: 0 0 6px !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--gv-ink) !important;
}

.gv-state p {
  margin: 0 0 16px !important;
  font-size: 14px !important;
}

.gv-retry {
  border: 1px solid var(--gv-ink) !important;
  background: #fff !important;
  color: var(--gv-ink) !important;
  cursor: pointer !important;
  padding: 10px 18px !important;
  border-radius: 10px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.gv-retry:hover {
  background: #f7f7f7 !important;
}

@media (prefers-reduced-motion: reduce) {
  .gv-pill, .gv-cluster, .dc-heart, .dc-dots i, .discover-grid, .dc-track img, .dc-cta-hint {
    transition: none !important;
  }
  .gv-me-ring, .dc-skel .dc-sk, .dc-pulse-dot {
    animation: none !important;
  }
}

/* ==========================================================================
   MOBILE & TABLET RESPONSIVENESS
   ========================================================================== */

@media (max-width: 767px) {
  body.discover-body {
    overflow: hidden !important;
    height: 100vh !important;
    position: fixed !important;
    width: 100% !important;
  }
  body.discover-body .discover-map-col {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 45vh !important;
    z-index: 1 !important;
  }
  body.discover-body .left-scroll-col {
    position: absolute !important;
    top: 45vh !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    margin: 0 !important;
    height: 55vh !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    border-radius: 28px 28px 0 0 !important;
    border-top: 1px solid rgba(0,0,0,0.05) !important;
    padding: 20px 14px 32px 14px !important;
    z-index: 2 !important;
    background: #ffffff !important;
    box-shadow: 0 -8px 24px rgba(0,0,0,0.15) !important;
  }
  body.discover-body .left-scroll-col::before {
    content: '' !important;
    display: block !important;
    position: sticky !important;
    top: -14px !important;
    left: 50% !important;
    margin: 0 auto 14px auto !important;
    width: 38px !important;
    height: 4px !important;
    background: #d0d0d0 !important;
    border-radius: 4px !important;
    z-index: 20 !important;
  }
  body.discover-body .discover-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px 10px !important;
  }
  .dc-media {
    aspect-ratio: 4 / 3 !important;
  }
  .dc-badge {
    padding: 3.5px 7px !important;
    font-size: 9.5px !important;
    top: 8px !important;
    left: 8px !important;
  }
  .dc-heart {
    width: 30px !important;
    height: 30px !important;
    top: 8px !important;
    right: 8px !important;
  }
  .dc-heart svg {
    width: 14px !important;
    height: 14px !important;
  }
  .dc-body {
    padding: 9px 10px 11px !important;
    gap: 3px !important;
  }
  .dc-title {
    font-size: 13px !important;
  }
  .dc-rating-lockup {
    font-size: 11.5px !important;
  }
  .dc-star-svg svg {
    width: 10px !important;
    height: 10px !important;
  }
  .dc-meta-row {
    font-size: 11.5px !important;
  }
  .dc-room-details {
    display: none !important;
  }
  .dc-perk-pill {
    font-size: 10px !important;
    padding: 2px 6px !important;
  }
  .dc-transport {
    display: none !important;
  }
  .dc-price-amount {
    font-size: 14px !important;
  }
  .dc-price-cycle {
    font-size: 11px !important;
  }
  .dc-cta-hint {
    display: none !important;
  }

  /* Compact Map Floating Preview Card: Smaller Size for All Mobile Devices */
  .maplibregl-popup.gv-popup {
    z-index: 100 !important;
  }
  .gv-popup .maplibregl-popup-content {
    width: 196px !important;
    max-width: calc(100vw - 32px) !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22) !important;
  }
  .gv-pop-media {
    aspect-ratio: 16 / 10 !important;
    border-radius: 12px 12px 0 0 !important;
  }
  .gv-pop-btn.gv-pop-close {
    width: 22px !important;
    height: 22px !important;
    top: 6px !important;
    left: 6px !important;
    font-size: 14px !important;
    line-height: 1 !important;
  }
  .gv-pop-btn.gv-pop-heart {
    width: 26px !important;
    height: 26px !important;
    top: 5px !important;
    right: 5px !important;
  }
  .gv-pop-btn.gv-pop-heart svg {
    width: 16px !important;
    height: 16px !important;
  }
  .gv-pop-btn.gv-pop-nav {
    width: 22px !important;
    height: 22px !important;
    margin-top: -11px !important;
  }
  .gv-pop-btn.gv-pop-nav svg {
    width: 8px !important;
    height: 8px !important;
  }
  .gv-pop-dots {
    bottom: 5px !important;
    gap: 3px !important;
  }
  .gv-pop-dots i {
    width: 4px !important;
    height: 4px !important;
  }
  .gv-pop-body {
    padding: 7px 9px 9px !important;
  }
  .gv-pop-name {
    font-size: 12.5px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
  }
  .gv-pop-rate {
    font-size: 11px !important;
  }
  .gv-pop-rate svg {
    width: 9px !important;
    height: 9px !important;
  }
  .gv-pop-sub {
    font-size: 10.5px !important;
    margin-top: 1px !important;
  }
  .gv-pop-perk {
    margin-top: 3px !important;
  }
  .gv-pop-perk .dc-perk-pill {
    font-size: 9px !important;
    padding: 1.5px 5px !important;
    border-radius: 4px !important;
  }
  .gv-pop-price {
    font-size: 12.5px !important;
    margin-top: 4px !important;
  }
  .gv-pop-price b {
    font-size: 13px !important;
    font-weight: 700 !important;
  }
  .gv-pop-price span {
    font-size: 10.5px !important;
  }
}

@media (max-width: 360px) {
  .gv-popup .maplibregl-popup-content {
    width: 180px !important;
  }
}
