/* -------------------------
   Layout listing css (improved)
   ------------------------- */
:root{
  --max-w:1200px;
  --card-bg:#fff;
  --border:#e6e6e6;
  --text:#222;
  --muted:#6b6b6b;
  --surface-muted:#eef1f4;
  --surface-soft:#f8fafc;
  --accent:#0d6efd;
  --link:#0b4ebd;
  --link-hover:#083b8f;
  --link-visited:#5a2ca0;
  --shadow-soft:0 8px 22px rgba(15,23,42,.04);
  --shadow-strong:0 14px 28px rgba(15,23,42,.28);
}

/* Layout */
.layout-row{
  display:flex;
  flex-wrap:nowrap;
  gap:20px;
  align-items:flex-start;
  max-width:var(--max-w);
  margin:18px auto;
  padding:0 12px;
  width:100%;
  box-sizing:border-box;
}
.col-main{
  flex:1 1 auto;
  min-width:0;
}
.col-side{
  flex:0 0 280px;
  width:280px;
  min-width:0;
  position:static;
  align-self:flex-start;
}

/* Cards */
.card{
  background:var(--card-bg);
  border:1px solid var(--border);
  border-radius:8px;
  padding:12px;
  position:relative;
  contain: paint layout;
  box-sizing:border-box;
}
.muted{ color:var(--muted); }
.list{ display:flex; flex-direction:column; gap:16px; }

/* Ad card */
.ad-card{
  background:linear-gradient(135deg,#fff 0%,#fff 58%,#f8fbff 100%);
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  position:relative;
  overflow:hidden;
  box-shadow:0 12px 34px rgba(15,23,42,.08);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ad-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:linear-gradient(180deg,#0b4ebd,#16a34a);
}
.ad-card:hover{
  transform:translateY(-2px);
  border-color:rgba(11,78,189,.22);
  box-shadow:0 18px 42px rgba(15,23,42,.13);
}
.ad-card:target{
  outline:3px solid var(--accent);
  outline-offset:2px;
  box-shadow:0 0 0 4px rgba(13,110,253,.18);
}
.ad-row{
  display:flex;
  gap:14px;
  align-items:stretch;
  padding:0 14px 0 0;
  min-height:280px;
}
.ad-main-copy{
  min-width:0;
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  color:inherit;
}

.ad-media-stack{
  flex:0 0 170px;
  width:170px;
  min-height:280px;
  min-width:0;
  align-self:stretch;
}

/* Image wrapper - predictable aspect */
.ad-media-frame{
  width:100%;
  aspect-ratio: 4 / 5;
  height:100%;
  min-height:280px;
  position:relative;
  overflow:hidden;
  border-radius:0 14px 14px 0;
  background:var(--surface-muted);
  box-shadow:0 12px 26px rgba(15,23,42,.16);
}
.ad-media-frame::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(15,23,42,0) 52%,rgba(15,23,42,.34) 100%);
  pointer-events:none;
  z-index:3;
}
.simple-carousel-fill{ height:100%; }
.ad-image{
    width: 100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .35s ease;
}
.ad-card:hover .ad-image{
  transform:scale(1.025);
}
.simple-carousel{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
}
.simple-carousel-slide{
  position:absolute;
  inset:0;
  display:block;
  opacity:0;
  transform:scale(1.035);
  transition:opacity .75s ease, transform 5s ease;
  pointer-events:none;
}
.simple-carousel-slide.is-active{
  opacity:1;
  transform:scale(1);
  pointer-events:auto;
  z-index:2;
}
.ad-photo-badge{
  position:absolute;
  right:8px;
  top:8px;
  z-index:4;
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(15,23,42,.78);
  color:#fff;
  font-size:11px;
  font-weight:800;
  line-height:1;
  backdrop-filter:blur(6px);
}
.ad-rating-overlay{
  position:absolute;
  left:0;
  bottom:8px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  max-width:calc(100% - 12px);
  padding:6px 9px 6px 10px;
  border-radius:0 999px 999px 0;
  background:linear-gradient(90deg,rgba(15,23,42,.94),rgba(31,41,55,.84));
  border-left:3px solid #f4b400;
  color:#fff;
  font-size:11px;
  font-weight:600;
  line-height:1;
  box-shadow:var(--shadow-strong);
  backdrop-filter:blur(4px);
  white-space:nowrap;
  z-index:4;
}
.ad-rating-score{
  font-variant-numeric:tabular-nums;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}
.ad-rating-stars{
  color:#f4b400;
  letter-spacing:-1px;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.25));
}
.ad-rating-count{
  color:rgba(255,255,255,.82);
  font-weight:500;
}

/* Content */
.ad-content{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-self:stretch;
  padding:14px 0;
}
.ad-title-primary{
  font-size:18px;
  color:var(--text);
  font-weight:800;
  line-height:1.22;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:ellipsis;
  margin:4px 0 8px;
}
.ad-facts{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 8px;
}
.ad-fact-chip{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 9px;
  border-radius:999px;
  background:#fff7ed;
  color:#9a3412;
  border:1px solid #fed7aa;
  font-size:13px;
  font-weight:800;
  line-height:1.2;
}
.ad-owner-status{
  gap:6px;
  background:#f8fafc;
  color:#475569;
  border-color:#cbd5e1;
}
.ad-owner-status.is-loading,
.ad-owner-status.is-offline{
  display:none;
}
.ad-owner-status::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:#94a3b8;
  box-shadow:0 0 0 3px rgba(148,163,184,.16);
}
.ad-owner-status.is-online{
  background:#ecfdf5;
  color:#047857;
  border-color:#a7f3d0;
}
.ad-owner-status.is-online::before{
  background:#10b981;
  box-shadow:0 0 0 3px rgba(16,185,129,.18);
}
.ad-desc{
  font-size:15px;
  font-weight:400;
  color:var(--muted);
  margin:8px 0 12px;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ad-card-actions{
  display:flex;
  align-items:center;
  margin:12px 0 0;
  justify-content:flex-start;
}
.ad-card-cta{
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:10px 18px;
  border-radius:999px;
  border:1px solid #0b4ebd;
  background:linear-gradient(135deg,#0b4ebd,#0f766e);
  color:#fff;
  font-size:14px;
  font-family:inherit;
  font-weight:700;
  line-height:1.2;
  cursor:pointer;
  text-decoration:none;
  box-shadow:0 12px 24px rgba(11,78,189,.24);
}
.ad-card-cta:hover,
.ad-card-cta:focus-visible{
  background:linear-gradient(135deg,#083b8f,#115e59);
  border-color:#083b8f;
  color:#fff;
  text-decoration:none;
}
.ad-card-cta:focus-visible{
  outline:2px solid #0b4ebd;
  outline-offset:2px;
}

/* Small buttons / related grid (kept minimal) */
.related-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.small-btn{
  display:inline-block;
  padding:8px 10px;
  border-radius:6px;
  border:1px solid var(--border);
  text-decoration:none;
  font-size:15px;
  background:#fff;
  color:var(--text);
  width:100%;
  text-align:left;
  box-sizing:border-box;
}

.seo-content,
.seo-content p,
.seo-content li{
  font-size:15px;
  line-height:1.75;
}
.seo-content ul,
.seo-content ol{
  padding-left:20px;
}
.seo-content a,
.empty-state-note a{
  color:var(--link);
  font-weight:600;
  text-decoration:none;
}
.seo-content a:visited,
.empty-state-note a:visited{
  color:var(--link-visited);
}
.seo-content a:hover,
.seo-content a:active,
.empty-state-note a:hover,
.empty-state-note a:active{
  color:var(--link-hover);
}
.seo-content a:focus-visible,
.empty-state-note a:focus-visible{
  outline:2px solid var(--link);
  outline-offset:2px;
  border-radius:4px;
}
.seo-content table{
  width:100%;
  border-collapse:collapse;
  margin:14px 0;
  font-size:14px;
  line-height:1.65;
  overflow:hidden;
  border:1px solid var(--border);
}
.seo-content caption{
  caption-side:top;
  text-align:left;
  font-weight:600;
  margin-bottom:8px;
  color:var(--text);
}
.seo-content th,
.seo-content td{
  border:1px solid var(--border);
  padding:10px 12px;
  vertical-align:top;
}
.seo-content thead th{
  background:var(--surface-soft);
  color:var(--text);
}
.seo-content tbody tr:nth-child(even){
  background:rgba(15,23,42,.02);
}
.seo-content-block{
  margin-top:14px;
}
.seo-content-block:first-child{
  margin-top:0;
}
.seo-content-block-before{
  margin-bottom:12px;
}
.related-category-ads{
  margin:18px 0 0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.related-category-ads__head{
  margin-bottom:12px;
}
.related-category-ads__title{
  margin:0;
  font-size:21px;
  line-height:1.25;
  color:#12202f;
}
.related-category-ads__text{
  margin:6px 0 0;
  color:#566575;
  font-size:14px;
  line-height:1.6;
}
.related-category-ads__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.related-category-ads__link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:48px;
  padding:11px 13px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:13px;
  background:#f8fafc;
  color:#172033;
  font-size:14px;
  font-weight:700;
  line-height:1.35;
  text-decoration:none;
  box-shadow:none;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease;
}
.related-category-ads__link--primary{
  border-color:rgba(15,118,110,.32);
  background:#ecfdf5;
  color:#0f766e;
}
.related-category-ads__link::after{
  content:'>';
  flex:0 0 auto;
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#f1f5f9;
  color:#0f766e;
  font-size:14px;
  font-weight:800;
}
.related-category-ads__link:hover,
.related-category-ads__link:focus-visible{
  color:#0f766e;
  border-color:rgba(15,118,110,.35);
  box-shadow:0 10px 18px rgba(15,118,110,.10);
  transform:translateY(-1px);
  text-decoration:none;
}
.related-category-ads__link:focus-visible{
  outline:2px solid #0f766e;
  outline-offset:3px;
}
.faq-content-block{
  margin-top:8px;
}
.faq-content-block h2{
  margin:0 0 14px;
  font-size:22px;
  line-height:1.3;
}
.faq-accordion{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.faq-accordion-item{
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.faq-toggle{
  width:100%;
  border:0;
  background:#fff;
  color:var(--text);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  text-align:left;
  padding:15px 16px;
  font:inherit;
  font-size:16px;
  font-weight:600;
  line-height:1.45;
  cursor:pointer;
}
.faq-toggle:hover{
  background:var(--surface-soft);
}
.faq-toggle:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:-2px;
}
.faq-toggle-text{
  flex:1 1 auto;
}
.faq-toggle-arrow{
  flex:0 0 auto;
  width:18px;
  height:18px;
  color:#0f172a;
  transition:transform .22s ease;
}
.faq-accordion-item.is-open .faq-toggle-arrow{
  transform:rotate(180deg);
}
.faq-answer{
  padding:0 16px 16px;
  color:#374151;
}
.faq-answer[hidden]{
  display:none;
}
.faq-answer p{
  margin:0;
}
.related-cities-title{
  font-size:14px;
  font-weight:600;
  text-transform:uppercase;
  margin-bottom:8px;
}
.sidebar-whats-new-card{
  border-color:rgba(15,23,42,.12);
  background:#fff;
}
.sidebar-whats-new-title{
  margin:0 0 10px;
  color:#111827;
  font-size:18px;
  font-weight:800;
  line-height:1.25;
}
.sidebar-review-list{
  display:grid;
  gap:0;
}
.sidebar-review-item{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  border:0;
  border-top:1px solid rgba(15,23,42,.10);
  border-radius:0;
  background:transparent;
  color:var(--text);
  padding:11px 0 12px;
  text-align:left;
  cursor:pointer;
  box-shadow:none;
  transition:color .18s ease, background-color .18s ease;
}
.sidebar-review-item:hover,
.sidebar-review-item:focus-visible{
  color:#0b4ebd;
  background:rgba(248,250,252,.9);
  outline:0;
}
.sidebar-review-item:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
  border-radius:8px;
}
.sidebar-review-thumb{
  flex:0 0 58px;
  width:58px;
  height:58px;
  border-radius:10px;
  overflow:hidden;
  background:#eef1f4;
  border:1px solid rgba(15,23,42,.10);
}
.sidebar-review-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.sidebar-review-heading{
  display:block;
  flex:1 1 auto;
  min-width:0;
  color:#111827;
  font-size:14px;
  line-height:1.35;
}
.sidebar-review-heading span{
  color:#4b5563;
}
.sidebar-review-heading strong{
  display:block;
  margin-top:2px;
  color:#0b4ebd;
  font-size:14px;
  font-weight:750;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.sidebar-review-toggle{
  display:none;
  width:100%;
  margin-top:10px;
  border:1px solid rgba(15,23,42,.12);
  border-radius:10px;
  background:#f8fafc;
  color:#0b4ebd;
  padding:10px 12px;
  font-size:14px;
  font-weight:750;
  cursor:pointer;
}
.sidebar-review-toggle:hover,
.sidebar-review-toggle:focus-visible{
  background:#eef6ff;
  border-color:rgba(13,110,253,.28);
  outline:0;
}
.sidebar-review-toggle:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.related-grid + .related-cities-title{
  margin-top:16px;
}
.col-side .card + .card{
  margin-top:14px;
}
.empty-state-note{
  margin:0;
}
.seo-disclaimer-wrap{
  max-width:var(--max-w);
  margin:12px auto;
  padding:0 12px;
}

.ad-preview-open{
  overflow:hidden;
}
.ad-preview-shell{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}
.ad-preview-shell[hidden]{
  display:none;
}
.ad-preview-shell.is-visible{
  opacity:1;
  pointer-events:auto;
}
.ad-preview-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.52);
  backdrop-filter:blur(5px);
  opacity:0;
  transition:opacity .22s ease;
}
.ad-preview-shell.is-visible .ad-preview-backdrop{
  opacity:1;
}
.ad-preview-panel{
  position:relative;
  top:auto;
  right:auto;
  bottom:auto;
  left:auto;
  width:min(1060px,calc(100vw - 36px));
  max-height:calc(100vh - 36px);
  background:#fff;
  border:1px solid rgba(27,40,52,.16);
  border-radius:22px;
  box-shadow:0 28px 80px rgba(15,23,42,.28);
  overflow:hidden;
  outline:none;
  display:flex;
  flex-direction:column;
  opacity:0;
  transform:translateY(18px) scale(.965);
  transition:opacity .22s ease, transform .22s cubic-bezier(.2,.8,.2,1);
  will-change:transform,opacity;
}
.ad-preview-shell.is-visible .ad-preview-panel{
  opacity:1;
  transform:translateY(0) scale(1);
}
.ad-preview-panel-head{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  min-height:58px;
  padding:9px 14px;
  background:#fff;
  border-bottom:1px solid #e4e8ee;
}
.ad-preview-close{
  width:40px;
  height:40px;
  border:0;
  border-radius:999px;
  background:#1b2834;
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.ad-preview-panel-body{
  min-height:0;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  padding:0;
}
.ad-preview-error{
  padding:28px;
  border-radius:18px;
  background:#fff;
  color:#374151;
  border:1px solid #eadbca;
}
.ad-preview-error a{
  display:inline-flex;
  margin-top:10px;
  font-weight:800;
  color:#9a3412;
}
.ad-preview{
  max-width:none;
  margin:0;
  padding:18px;
  border:0;
  border-radius:0;
  background:transparent;
  color:#202124;
  box-shadow:none;
}
@media (prefers-reduced-motion: reduce){
  .ad-preview-shell,
  .ad-preview-backdrop,
  .ad-preview-panel{
    transition:none !important;
  }
  .ad-preview-panel{
    transform:none !important;
  }
}
.ad-preview-no-image{
  min-height:320px;
  display:grid;
  place-items:center;
  color:#6b7280;
  background:#f8efe5;
}
.ad-preview-lightbox[hidden]{
  display:none;
}
.ad-preview-lightbox{
  position:absolute;
  inset:0;
  z-index:3;
}
.ad-preview-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(3,7,18,.82);
  backdrop-filter:blur(8px);
}
.ad-preview-lightbox-frame{
  position:absolute;
  inset:20px;
  display:grid;
  place-items:center;
}
.ad-preview-lightbox-frame img{
  width:auto;
  height:auto;
  max-width:min(100%, 1180px);
  max-height:calc(100vh - 160px);
  object-fit:contain;
  border-radius:18px;
  background:#111827;
  box-shadow:0 28px 80px rgba(0,0,0,.35);
}
.ad-preview-lightbox-close{
  position:absolute;
  top:0;
  right:0;
  width:42px;
  height:42px;
  border:0;
  border-radius:999px;
  background:#fff;
  color:#111827;
  font-size:30px;
  line-height:1;
  cursor:pointer;
  z-index:4;
}
.ad-preview-lightbox-nav{
  position:absolute;
  top:50%;
  width:46px;
  height:64px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:#111827;
  font-size:44px;
  line-height:1;
  transform:translateY(-50%);
  cursor:pointer;
  z-index:4;
}
.ad-preview-lightbox-prev{
  left:0;
}
.ad-preview-lightbox-next{
  right:0;
}
.ad-preview-lightbox-count{
  position:absolute;
  left:50%;
  bottom:88px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:#111827;
  font-size:13px;
  font-weight:800;
  transform:translateX(-50%);
  z-index:4;
}
.ad-preview-lightbox-thumbs[hidden]{
  display:none;
}
.ad-preview-lightbox-thumbs{
  position:absolute;
  left:50%;
  bottom:10px;
  z-index:4;
  display:flex;
  max-width:min(92vw,760px);
  gap:8px;
  overflow-x:auto;
  padding:8px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:18px;
  background:rgba(15,23,42,.48);
  box-shadow:0 18px 44px rgba(0,0,0,.32);
  transform:translateX(-50%);
  backdrop-filter:blur(12px);
  scrollbar-width:thin;
}
.ad-preview-lightbox-thumb{
  width:64px;
  height:64px;
  flex:0 0 64px;
  padding:0;
  overflow:hidden;
  border:2px solid rgba(255,255,255,.34);
  border-radius:12px;
  background:#111827;
  cursor:pointer;
  opacity:.72;
  transition:opacity .18s ease, transform .18s ease, border-color .18s ease;
}
.ad-preview-lightbox-thumb img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  border-radius:0;
  object-fit:cover;
  box-shadow:none;
}
.ad-preview-lightbox-thumb.is-active,
.ad-preview-lightbox-thumb:hover,
.ad-preview-lightbox-thumb:focus-visible{
  border-color:#fff;
  opacity:1;
  transform:translateY(-2px);
}
.ad-preview-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 13px;
  border-radius:9px;
  text-decoration:none;
  font-size:13px;
  font-weight:900;
}
.ad-preview-action--call{
  background:#166534;
  color:#fff;
}
.ad-preview-action--whatsapp{
  background:#dcfce7;
  color:#14532d;
  border:1px solid #86efac;
}
.ad-preview-action--telegram{
  background:#e0f2fe;
  color:#075985;
  border:1px solid #7dd3fc;
}
.ad-preview-muted{
  color:#6b7280;
  margin:0;
}
.ad-preview-safety{
  margin-top:0;
  padding:18px 0;
  border:0;
  border-radius:0;
  background:transparent;
}
.ad-preview-safety p{
  margin:0;
  color:#7c2d12;
  line-height:1.6;
}
.ad-preview-reviews{
  display:grid;
  gap:10px;
  margin-top:12px;
}
.ad-preview-review{
  padding:12px;
  border:1px solid #e4e8ee;
  border-radius:14px;
  background:#fff;
}
.ad-preview-review strong,
.ad-preview-review span,
.ad-preview-review em{
  margin-right:8px;
}
.ad-preview-review span{
  color:#b45309;
}
.ad-preview-review em{
  color:#6b7280;
  font-size:12px;
}
.ad-preview-review p{
  margin:8px 0 0;
  color:#374151;
}
.ad-preview-owner-reply{
  margin-top:12px;
  padding:10px 12px;
  border-left:3px solid #d6a23f;
  border-radius:0 12px 12px 0;
  background:#fff8eb;
  color:#3f2b0b;
}
.ad-preview-owner-reply strong{
  display:inline-flex;
  margin-right:8px;
  color:#7a4c05;
  font-size:13px;
}
.ad-preview-owner-reply em{
  color:#8a6a2f;
  font-size:12px;
}
.ad-preview-owner-reply p{
  margin:6px 0 0;
  color:#4b3a1a;
}
.ad-preview-panel .ad-owner-status:empty{
  display:none;
}

/* LQIP / blur-up for first images */
.lcp-img{
  filter: blur(10px);
  transition: filter .4s ease, opacity .25s ease, transform .25s ease;
  opacity:0.98;
  will-change: filter, opacity;
}
.lcp-loaded{ filter: blur(0); opacity:1; transform:none; }

/* Small optimization for reduced motion */
@media (prefers-reduced-motion: reduce){
  .ad-card, .lcp-img, .ad-image, .simple-carousel-slide { transition:none !important; }
}

/* Responsive adjustments */
@media (max-width: 860px){
  .layout-row{
    flex-direction:column;
    gap:12px;
  }
  .col-main, .col-side{
    width:100%;
    min-width:0;
  }
  .col-side{
    position:static;
    top:auto;
  }
  .sidebar-review-list:not(.is-expanded) .sidebar-review-item:nth-of-type(n+7){
    display:none;
  }
  .sidebar-review-toggle{
    display:block;
  }
  .seo-content table{
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .related-category-ads__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .ad-preview-lightbox-frame{
    inset:12px;
  }
  .ad-preview-lightbox-frame img{
    max-height:calc(100vh - 120px);
    border-radius:14px;
  }
  .ad-preview-lightbox-nav{
    width:40px;
    height:54px;
    font-size:34px;
  }
  .ad-preview-lightbox-close{
    width:38px;
    height:38px;
    font-size:26px;
  }
}

@media (max-width: 640px){
  .related-grid{
    grid-template-columns:1fr;
  }
  .related-category-ads__grid{
    grid-template-columns:1fr;
  }
}

/* AJAX detail preview; intentionally no sidebar. */
.ad-preview-profile-head h2{
  margin:0 0 10px;
  color:#202124;
  font-size:clamp(25px,3vw,38px);
  line-height:1.16;
  letter-spacing:-.02em;
}
.ad-preview-meta,
.ad-preview-toolbar,
.ad-preview-actions,
.ad-preview-chips{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.ad-preview-meta{
  color:#6b7280;
  font-size:13px;
}
.ad-preview-badge,
.ad-preview-meta .ad-owner-status{
  display:inline-flex;
  align-items:center;
  min-height:29px;
  padding:5px 9px;
  border:1px solid #dce2e8;
  border-radius:999px;
  background:#f8fafb;
  color:#344350;
  font-weight:700;
  line-height:1;
  text-decoration:none;
}
.ad-preview-badge--location{
  color:#075e59;
}
.ad-preview-meta .ad-owner-status:empty,
.ad-preview-meta .ad-owner-status.is-offline{
  display:none;
}
.ad-preview-meta .ad-owner-status.is-online{
  border-color:#a7e0c2;
  background:#e9f8ef;
  color:#166534;
}
.ad-preview-toolbar{
  justify-content:space-between;
  margin-top:14px;
}
.ad-preview-back{
  min-height:36px;
  padding:7px 12px;
  border:1px solid #cfd7df;
  border-radius:9px;
  background:#fff;
  color:#344350;
  font:inherit;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}
.ad-preview-actions{
  margin:0;
}
.ad-preview-action--report{
  border:1px solid #fed7aa;
  background:#fff7ed;
  color:#9a3412;
  cursor:pointer;
  font:inherit;
  font-size:13px;
  font-weight:800;
}
.ad-preview-gallery-section{
  margin-top:20px;
}
.ad-preview-gallery{
  position:relative;
  overflow:hidden;
  border:0;
  border-radius:18px;
  background:#e9eef2;
  box-shadow:0 18px 42px rgba(17,35,48,.12);
}
.ad-preview-collage{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:repeat(2,minmax(170px,220px));
  gap:8px;
  min-height:360px;
  background:#d8e0e7;
}
.ad-preview-single-photo{
  position:relative;
  display:block;
  width:100%;
  min-height:430px;
  padding:0;
  overflow:hidden;
  border:0;
  background:#dfe7ee;
  cursor:zoom-in;
}
.ad-preview-single-photo img{
  display:block;
  width:100%;
  height:100%;
  min-height:inherit;
  object-fit:cover;
  transition:transform .22s ease, filter .22s ease;
}
.ad-preview-single-photo:hover img,
.ad-preview-single-photo:focus-visible img{
  transform:scale(1.025);
  filter:saturate(1.04);
}
.ad-preview-single-photo:focus-visible{
  outline:3px solid #0f7b74;
  outline-offset:-3px;
}
.ad-preview-collage-tile{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  min-width:0;
  padding:0;
  overflow:hidden;
  border:0;
  background:#dfe7ee;
  cursor:zoom-in;
}
.ad-preview-collage-tile--primary{
  grid-column:1;
  grid-row:1 / span 2;
}
.ad-preview-collage-tile img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .22s ease,filter .22s ease;
}
.ad-preview-collage-tile:hover img,
.ad-preview-collage-tile:focus-visible img{
  transform:scale(1.035);
  filter:saturate(1.04);
}
.ad-preview-collage-tile:focus-visible{
  outline:3px solid #0f7b74;
  outline-offset:-3px;
}
.ad-preview-collage-count-2{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.ad-preview-collage-count-2 .ad-preview-collage-tile:nth-child(2){
  grid-column:2;
  grid-row:1 / span 2;
}
.ad-preview-collage-count-3{
  grid-template-columns:2fr 1fr;
}
.ad-preview-collage-count-4 .ad-preview-collage-tile:nth-child(4){
  grid-column:2 / span 2;
}
.ad-preview-collage-more{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  background:rgba(2,6,23,.5);
  color:#fff;
  font-size:18px;
  font-weight:800;
}
.ad-preview-photo-count,
.ad-preview-rating-overlay{
  position:absolute;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid rgba(32,33,36,.08);
  border-radius:999px;
  background:rgba(255,255,255,.95);
  color:#202124;
  box-shadow:0 10px 24px rgba(17,35,48,.15);
  backdrop-filter:blur(8px);
}
.ad-preview-photo-count{
  left:12px;
  bottom:12px;
  padding:7px 11px;
  font-size:12px;
  font-weight:800;
}
.ad-preview-rating-overlay{
  top:12px;
  right:12px;
  padding:8px 11px;
}
.ad-preview-rating-overlay span,
.ad-preview-review-summary span,
.ad-preview-review span{
  color:#f4b400;
}
.ad-preview-rating-overlay small{
  color:#6b7280;
}
.ad-preview-content-section{
  margin:0;
  padding:18px 0;
  border:0;
  border-bottom:1px solid #e7ebef;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.ad-preview-content-section:last-child{
  border-bottom:0;
}
.ad-preview-content-section h3{
  margin:0 0 4px;
  color:#202124;
  font-size:19px;
  line-height:1.3;
}
.ad-preview-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}
.ad-preview-section-head .ad-preview-section-note{
  margin-bottom:0;
}
.ad-preview-section-note{
  margin:0 0 12px;
  color:#6b7280;
  font-size:13px;
}
.ad-preview-description,
.ad-preview-location-box{
  padding:16px;
  border:1px solid #e1e6eb;
  border-radius:14px;
  background:#f8fafb;
  color:#374151;
  line-height:1.72;
}
.ad-preview-rate-box{
  padding:17px;
  border:1px solid #b9ddc7;
  border-radius:14px;
  background:#edf8f1;
  color:#183c29;
}
.ad-preview-rate-lead{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:10px;
}
.ad-preview-rate-lead span,
.ad-preview-payment-label{
  color:#315c42;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.ad-preview-rate-lead strong{
  color:#167046;
  font-size:23px;
}
.ad-preview-rate-box p{
  margin:7px 0 0;
  font-size:14px;
}
.ad-preview-payment-label{
  margin-top:13px;
}
.ad-preview-chips{
  margin-top:8px;
}
.ad-preview-chips span{
  min-height:30px;
  padding:5px 10px;
  border:1px solid #d8dee5;
  border-radius:999px;
  background:#fff;
  color:#374151;
  font-size:12px;
  font-weight:700;
}
.ad-preview-location-box strong{
  display:block;
  color:#5f6b76;
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.ad-preview-location-box p{
  margin:5px 0 0;
}
.ad-preview-table{
  overflow:hidden;
  border:1px solid #e1e6eb;
  border-radius:14px;
  background:#fff;
}
.ad-preview-table-row{
  display:grid;
  grid-template-columns:minmax(120px, 32%) minmax(0, 1fr);
  align-items:center;
  min-height:42px;
  border-bottom:1px solid #edf1f5;
}
.ad-preview-table-row:nth-child(even){
  background:#f8fafb;
}
.ad-preview-table-row:last-child{
  border-bottom:0;
}
.ad-preview-table-row span,
.ad-preview-table-row strong{
  display:block;
  min-width:0;
  padding:10px 13px;
  line-height:1.35;
}
.ad-preview-table-row span{
  color:#5f6b76;
  font-size:12px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.ad-preview-table-row strong{
  border-left:1px solid #edf1f5;
  color:#202124;
  font-size:14px;
  font-weight:700;
  overflow-wrap:anywhere;
}
.ad-preview-review-summary{
  display:flex;
  align-items:center;
  gap:10px;
  margin:14px 0;
  padding:14px 16px;
  border:1px solid #e4e8ee;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 22px rgba(17,35,48,.06);
}
.ad-preview-review-summary strong{
  font-size:30px;
}
.ad-preview-review-summary small{
  color:#6b7280;
}
.ad-preview-mini-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:8px 13px;
  border:1px solid #cfd7df;
  border-radius:999px;
  background:#fff;
  color:#344350;
  font:inherit;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
.ad-preview-mini-btn--danger{
  margin-top:14px;
  border-color:#fdba74;
  background:#fff;
  color:#9a3412;
}
.ad-preview-feedback-form[hidden]{
  display:none;
}
.ad-preview-feedback-form{
  display:grid;
  gap:12px;
  margin:14px 0 18px;
  padding:16px;
  border:1px solid #dce2e8;
  border-radius:16px;
  background:#f8fafb;
}
.ad-preview-feedback-form--report{
  margin-bottom:0;
  border-color:#fed7aa;
  background:#fffaf2;
}
.ad-preview-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.ad-preview-feedback-form label{
  display:grid;
  gap:6px;
  color:#374151;
  font-size:13px;
  font-weight:800;
}
.ad-preview-feedback-form input,
.ad-preview-feedback-form select,
.ad-preview-feedback-form textarea{
  width:100%;
  min-height:42px;
  padding:10px 11px;
  border:1px solid #cfd7df;
  border-radius:10px;
  background:#fff;
  color:#202124;
  font:inherit;
  font-size:14px;
  font-weight:500;
}
.ad-preview-feedback-form textarea{
  min-height:96px;
  resize:vertical;
}
.ad-preview-hp{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.ad-preview-form-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.ad-preview-submit-btn{
  min-height:40px;
  padding:10px 15px;
  border:0;
  border-radius:999px;
  background:#0f766e;
  color:#fff;
  font:inherit;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
}
.ad-preview-submit-btn--danger{
  background:#c2410c;
}
.ad-preview-submit-btn[disabled]{
  opacity:.7;
  cursor:progress;
}
.ad-preview-form-status{
  color:#4b5563;
  font-size:13px;
  font-weight:700;
}
.ad-preview-form-status.is-success{
  color:#166534;
}
.ad-preview-form-status.is-error{
  color:#b91c1c;
}
@media (max-width:860px){
  .ad-preview{
    padding:14px;
    border-radius:0;
  }
  .ad-preview-collage{
    grid-template-columns:2fr 1fr 1fr;
    grid-template-rows:repeat(2,minmax(120px,1fr));
    aspect-ratio:1 / 1;
    min-height:0;
    gap:6px;
  }
  .ad-preview-collage-tile--primary{
    grid-column:1;
    grid-row:1 / span 2;
  }
  .ad-preview-collage-count-2{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:repeat(2,minmax(120px,1fr));
    aspect-ratio:1 / 1;
    min-height:0;
  }
  .ad-preview-collage-count-2 .ad-preview-collage-tile:nth-child(2){
    grid-column:2;
    grid-row:1 / span 2;
  }
  .ad-preview-collage-count-3{
    grid-template-columns:2fr 1fr;
    grid-template-rows:repeat(2,minmax(0,1fr));
  }
  .ad-preview-collage-count-4{
    grid-template-columns:2fr 1fr 1fr;
    grid-template-rows:repeat(2,minmax(120px,1fr));
  }
  .ad-preview-collage-count-4 .ad-preview-collage-tile:nth-child(4){
    grid-column:2 / span 2;
    grid-row:auto;
  }
  .ad-preview-form-grid{
    grid-template-columns:1fr;
  }
  .ad-preview-section-head{
    flex-direction:column;
  }
}
@media (max-width:520px){
  .ad-preview-toolbar{
    align-items:stretch;
  }
  .ad-preview-back,
  .ad-preview-actions{
    width:100%;
  }
  .ad-preview-back--gallery-top{
    top:7px;
    right:52px;
    width:auto;
    max-width:calc(100% - 100px);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .ad-preview-action{
    flex:1 1 auto;
  }
  .ad-preview-profile-head h2{
    font-size:25px;
  }
}

/* Detail preview hero: image left, summary/contact right. */
.ad-preview-hero-layout{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(310px,.92fr);
  gap:18px;
  align-items:stretch;
  padding-bottom:18px;
  border-bottom:1px solid #e7ebef;
}
.ad-preview-hero-layout + .ad-preview-content-section{
  padding-top:18px;
}
.ad-preview-hero-layout .ad-preview-gallery-section{
  min-width:0;
  margin:0;
}
.ad-preview-hero-layout .ad-preview-gallery{
  width:100%;
  height:400px;
  max-height:400px;
  min-height:0;
}
.ad-preview-hero-layout .ad-preview-single-photo,
.ad-preview-hero-layout .ad-preview-collage{
  height:400px;
  max-height:400px;
  min-height:0;
}
.ad-preview-back--gallery-top{
  position:absolute;
  top:10px;
  right:62px;
  z-index:8;
  width:auto;
  margin:0;
  box-shadow:0 8px 18px rgba(17,35,48,.08);
}
.ad-preview-hero-layout .ad-preview-collage{
  grid-template-rows:repeat(2,minmax(0,1fr));
}
.ad-preview-profile-head{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:10px;
  padding:4px 0;
}
.ad-preview-profile-head h2{
  margin-bottom:0;
}
.ad-preview-quick-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:2px;
}
.ad-preview-profile-stats{
  display:flex;
  flex-wrap:nowrap;
  gap:8px;
  min-width:0;
  margin-top:2px;
}
.ad-preview-quick-facts div,
.ad-preview-profile-stats div{
  min-width:0;
  padding:9px 10px;
  border:1px solid #e2e8ef;
  border-radius:14px;
  background:linear-gradient(180deg,#fff,#f8fafb);
  box-shadow:0 8px 18px rgba(17,35,48,.045);
}
.ad-preview-profile-stats div{
  flex:1 1 0;
}
.ad-preview-quick-facts span,
.ad-preview-profile-stats span{
  display:block;
  margin-bottom:4px;
  color:#6b7280;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.ad-preview-quick-facts strong,
.ad-preview-profile-stats strong{
  display:block;
  overflow:hidden;
  color:#202124;
  font-size:15px;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ad-preview-profile-head .ad-preview-toolbar{
  margin-top:auto;
  padding-top:6px;
}
.ad-preview-profile-head .ad-preview-actions{
  width:100%;
}
.ad-preview-profile-head .ad-preview-action{
  flex:1 1 110px;
}

/* Listing click feedback while the preview API loads. */
.ad-card-cta.is-preview-loading{
  pointer-events:none;
  color:#fff;
}
.ad-card-cta.is-preview-loading::before{
  content:"";
  width:17px;
  height:17px;
  margin-right:8px;
  border:2px solid rgba(255,255,255,.55);
  border-top-color:#fff;
  border-radius:999px;
  animation:adPreviewSpin .68s linear infinite;
  flex:0 0 auto;
}
@keyframes adPreviewSpin{
  to{ transform:rotate(360deg); }
}

@media (max-width:900px){
  .ad-preview-hero-layout{
    grid-template-columns:1fr;
  }
  .ad-preview-hero-layout .ad-preview-gallery,
  .ad-preview-hero-layout .ad-preview-single-photo,
  .ad-preview-hero-layout .ad-preview-collage{
    height:auto;
    max-height:none;
    min-height:0;
    aspect-ratio:1 / 1;
  }
  .ad-preview-profile-head .ad-preview-toolbar{
    margin-top:4px;
  }
}

@media (max-width:520px){
  .ad-preview-hero-layout{
    gap:14px;
    padding-bottom:16px;
  }
  .ad-preview-quick-facts{
    grid-template-columns:1fr;
  }
  .ad-preview-profile-stats{
    gap:6px;
  }
  .ad-preview-profile-stats div{
    padding:8px 7px;
    border-radius:12px;
  }
  .ad-preview-profile-stats span{
    font-size:10px;
    letter-spacing:.04em;
  }
  .ad-preview-profile-stats strong{
    font-size:13px;
  }
  .ad-preview-hero-layout .ad-preview-gallery,
  .ad-preview-hero-layout .ad-preview-single-photo,
  .ad-preview-hero-layout .ad-preview-collage{
    min-height:0;
  }
  .ad-preview-collage{
    grid-template-columns:2fr 1fr 1fr;
    grid-template-rows:repeat(2,minmax(86px,1fr));
    aspect-ratio:1 / 1;
    min-height:0;
  }
  .ad-preview-collage-count-2{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:repeat(2,minmax(86px,1fr));
    aspect-ratio:1 / 1;
    min-height:0;
  }
  .ad-preview-collage-count-2 .ad-preview-collage-tile:nth-child(2){
    grid-column:2;
    grid-row:1 / span 2;
  }
  .ad-preview-single-photo{
    aspect-ratio:1 / 1;
    min-height:0;
  }
  .ad-preview-collage-count-3{
    grid-template-columns:2fr 1fr;
    grid-template-rows:repeat(2,minmax(0,1fr));
  }
  .ad-preview-collage-count-4{
    grid-template-columns:2fr 1fr 1fr;
    grid-template-rows:repeat(2,minmax(86px,1fr));
  }
  .ad-preview-collage-count-4 .ad-preview-collage-tile:nth-child(4){
    grid-column:2 / span 2;
    grid-row:auto;
  }
}

/* Final mobile modal tuning: wider panel, shorter height, flat content. */
@media (max-width:860px){
  .ad-preview-shell{
    padding:24px 6px;
  }
  .ad-preview-panel{
    top:auto;
    right:auto;
    bottom:auto;
    left:auto;
    width:calc(100vw - 12px);
    max-width:calc(100vw - 12px);
    max-height:min(86vh, calc(100dvh - 72px));
    border-radius:18px;
  }
  .ad-preview-panel-head{
    min-height:48px;
    padding:7px 10px;
  }
  .ad-preview-back--gallery-top{
    top:7px;
    right:52px;
    width:auto;
    max-width:calc(100% - 100px);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .ad-preview-close{
    width:36px;
    height:36px;
    font-size:25px;
  }
  .ad-preview-content-section{
    padding:15px 0;
  }
  .ad-preview-description,
  .ad-preview-location-box,
  .ad-preview-rate-box,
  .ad-preview-table-row span,
  .ad-preview-table-row strong,
  .ad-preview-feedback-form{
    padding:12px;
    border-radius:12px;
  }
  .ad-preview-table{
    border-radius:12px;
  }
  .ad-preview-table-row{
    grid-template-columns:1fr;
    align-items:start;
  }
  .ad-preview-table-row span{
    padding-bottom:3px;
    font-size:10px;
  }
  .ad-preview-table-row strong{
    padding-top:0;
    border-left:0;
    font-size:13px;
  }
  .ad-preview-safety{
    padding:15px 0;
    border:0;
    background:transparent;
  }
}

@media (max-width:520px){
  .ad-preview-shell{
    padding:22px 5px;
  }
  .ad-preview-panel{
    width:calc(100vw - 10px);
    max-width:calc(100vw - 10px);
    max-height:min(84vh, calc(100dvh - 64px));
    border-radius:16px;
  }
  .ad-preview{
    padding:12px;
  }
}
.listing-filter-shell{
  max-width:var(--max-w);
  margin:0 auto 16px;
  padding-top:8px;
  padding-left:16px;
  padding-right:16px;
  box-sizing:border-box;
}
.listing-filter-panel{
  border:1px solid #dfe6ee;
  border-radius:13px;
  background:#fff;
  box-shadow:0 8px 22px rgba(15,23,42,.045);
  padding:7px;
  margin:0;
}
.listing-filter-panel[hidden]{
  display:none;
}
.listing-filter-form{
  display:block;
}
.listing-filter-main{
  display:grid;
  grid-template-columns:minmax(210px,1.35fr) minmax(160px,1fr) minmax(170px,1fr) auto;
  gap:7px;
  align-items:center;
}
.listing-filter-field{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0;
  min-width:0;
}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.listing-filter-field span{
  color:#475569;
  font-size:.72rem;
  font-weight:850;
}
.listing-filter-field input,
.listing-filter-field select{
  width:100%;
  min-height:40px;
  border:1px solid #d8dee8;
  border-radius:9px;
  background:#fff;
  color:#111827;
  padding:8px 10px;
  font:inherit;
  font-size:.92rem;
  font-weight:750;
}
.listing-filter-main .listing-filter-field input,
.listing-filter-main .listing-filter-field select{
  padding-left:22px;
}
.listing-filter-main .listing-filter-field::before{
  content:"";
  position:absolute;
  left:6px;
  top:50%;
  z-index:1;
  transform:translateY(-50%);
  color:#9a6515;
  width:12px;
  height:12px;
  background:currentColor;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-size:contain;
  mask-size:contain;
  pointer-events:none;
  line-height:1;
}
.listing-filter-field--location::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E");
}
.listing-filter-field--category::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 4h7v7H4V4Zm9 0h7v7h-7V4ZM4 13h7v7H4v-7Zm9 0h7v7h-7v-7Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 4h7v7H4V4Zm9 0h7v7h-7V4ZM4 13h7v7H4v-7Zm9 0h7v7h-7v-7Z'/%3E%3C/svg%3E");
}
.listing-filter-field--sort::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 3h2v13h3l-4 5-4-5h3V3Zm9 18h-2V8h-3l4-5 4 5h-3v13Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 3h2v13h3l-4 5-4-5h3V3Zm9 18h-2V8h-3l4-5 4 5h-3v13Z'/%3E%3C/svg%3E");
}
.listing-filter-field input:focus,
.listing-filter-field select:focus{
  outline:2px solid rgba(17,24,39,.18);
  border-color:#111827;
}
.listing-more-filters{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:40px;
  border:1px solid #111827;
  border-radius:9px;
  background:#111827;
  color:#fff;
  cursor:pointer;
  font:inherit;
  font-size:.9rem;
  font-weight:900;
  padding:8px 12px;
  white-space:nowrap;
  transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.listing-more-filters::before{
  content:"";
  display:block;
  width:13px;
  height:13px;
  flex:0 0 13px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 5h18l-7 8v5l-4 2v-7L3 5Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 5h18l-7 8v5l-4 2v-7L3 5Z'/%3E%3C/svg%3E") center/contain no-repeat;
  line-height:1;
}
.listing-more-filters:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 24px rgba(17,24,39,.18);
}
.listing-city-field{
  position:relative;
}
.listing-city-suggestions{
  position:absolute;
  z-index:30;
  top:calc(100% + 6px);
  left:0;
  right:0;
  max-height:260px;
  overflow:auto;
  margin:0;
  padding:6px;
  list-style:none;
  border:1px solid #d8dee8;
  border-radius:14px;
  background:#fff;
  box-shadow:0 18px 42px rgba(15,23,42,.16);
}
.listing-city-suggestion{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#111827;
  padding:9px 10px;
  text-align:left;
  cursor:pointer;
}
.listing-city-suggestion strong{
  font-size:.94rem;
}
.listing-city-suggestion span{
  color:#64748b;
  font-size:.78rem;
  font-weight:800;
  white-space:nowrap;
}
.listing-city-suggestion:hover,
.listing-city-suggestion.is-active{
  background:#f1f5f9;
}
.listing-filter-backdrop{
  position:fixed;
  inset:0;
  z-index:1200;
  background:rgba(15,23,42,.48);
  backdrop-filter:blur(2px);
}
html.listing-filters-open,
html.listing-filters-open body{
  overflow:hidden;
}
.listing-filter-backdrop[hidden],
.listing-filter-drawer[hidden]{
  display:none;
}
.listing-filter-drawer{
  position:fixed;
  z-index:1201;
  top:0;
  right:0;
  bottom:0;
  width:min(430px, calc(100vw - 24px));
  background:#fff;
  box-shadow:-24px 0 56px rgba(15,23,42,.22);
  display:flex;
  flex-direction:column;
  border-radius:18px 0 0 18px;
  overflow:hidden;
}
.listing-filter-drawer__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:20px 20px 14px;
  border-bottom:1px solid #e5eaf0;
  background:linear-gradient(135deg,#fff 0%,#f8fafc 100%);
}
.listing-filter-drawer__head h2{
  margin:0;
  color:#111827;
  font-size:1.24rem;
  line-height:1.15;
}
.listing-filter-drawer__eyebrow{
  margin:0 0 4px;
  color:#64748b;
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.listing-filter-drawer__close{
  width:36px;
  height:36px;
  border:1px solid #d8dee8;
  border-radius:999px;
  background:#fff;
  color:#111827;
  cursor:pointer;
  font-size:1.34rem;
  line-height:1;
}
.listing-filter-drawer__body{
  display:grid;
  gap:14px;
  overflow:auto;
  padding:18px 20px;
}
.listing-filter-range-card{
  display:grid;
  gap:12px;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#f8fafc;
  padding:12px;
  --range-min-percent:0%;
  --range-max-percent:100%;
}
.listing-filter-range-card__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.listing-filter-range-card__head span{
  color:#475569;
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.listing-filter-range-card__head strong{
  color:#111827;
  font-size:.9rem;
  font-weight:950;
  white-space:nowrap;
}
.listing-rate-type-tabs{
  margin:0;
  padding:3px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:4px;
  border:1px solid #e2e8f0;
  border-radius:999px;
  background:#f8fafc;
}
.listing-rate-type-tabs legend{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}
.listing-rate-type-tabs label{
  min-width:0;
}
.listing-rate-type-tabs input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.listing-rate-type-tabs span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 10px;
  border-radius:999px;
  color:#475569;
  font-size:.78rem;
  font-weight:900;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, box-shadow .18s ease;
}
.listing-rate-type-tabs input:checked + span{
  background:#111827;
  color:#fff;
  box-shadow:0 8px 18px rgba(15,23,42,.16);
}
.listing-rate-type-tabs input:focus-visible + span{
  outline:2px solid rgba(17,24,39,.26);
  outline-offset:2px;
}
.listing-filter-range{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.listing-filter-dual-range{
  position:relative;
  min-height:42px;
}
.listing-filter-dual-range__track{
  position:absolute;
  left:0;
  right:0;
  top:18px;
  height:7px;
  border-radius:999px;
  background:linear-gradient(
    to right,
    #dbe3ed 0%,
    #dbe3ed var(--range-min-percent),
    #111827 var(--range-min-percent),
    #111827 var(--range-max-percent),
    #dbe3ed var(--range-max-percent),
    #dbe3ed 100%
  );
  box-shadow:inset 0 1px 1px rgba(15,23,42,.08);
}
.listing-filter-range-input{
  position:absolute;
  left:0;
  right:0;
  top:7px;
  width:100%;
  height:30px;
  margin:0;
  border:0;
  background:transparent;
  pointer-events:none;
  -webkit-appearance:none;
  appearance:none;
}
.listing-filter-range-input:focus{
  outline:0;
}
.listing-filter-range-input::-webkit-slider-runnable-track{
  height:7px;
  background:transparent;
}
.listing-filter-range-input::-moz-range-track{
  height:7px;
  background:transparent;
}
.listing-filter-range-input::-webkit-slider-thumb{
  width:20px;
  height:20px;
  border:3px solid #fff;
  border-radius:50%;
  background:#111827;
  box-shadow:0 4px 12px rgba(15,23,42,.28);
  cursor:pointer;
  pointer-events:auto;
  -webkit-appearance:none;
  appearance:none;
  margin-top:-6px;
}
.listing-filter-range-input::-moz-range-thumb{
  width:16px;
  height:16px;
  border:3px solid #fff;
  border-radius:50%;
  background:#111827;
  box-shadow:0 4px 12px rgba(15,23,42,.28);
  cursor:pointer;
  pointer-events:auto;
}
.listing-filter-range-input--min{
  z-index:2;
}
.listing-filter-range-input--max{
  z-index:3;
}
.listing-filter-range-limits{
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#64748b;
  font-size:.76rem;
  font-weight:850;
  margin-top:-6px;
}
.listing-filter-drawer__actions{
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px 20px 18px;
  border-top:1px solid #e5eaf0;
  background:#fff;
}
.listing-filter-drawer__actions .listing-filter-apply{
  flex:1;
}
.listing-filter-actions{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:max-content;
}
.listing-filter-apply,
.listing-load-more__button{
  border:0;
  border-radius:9px;
  background:#111827;
  color:#fff;
  min-height:40px;
  padding:9px 15px;
  font-weight:900;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.listing-filter-apply:hover,
.listing-load-more__button:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 24px rgba(17,24,39,.18);
}
.listing-filter-apply:disabled,
.listing-load-more__button:disabled{
  cursor:wait;
  opacity:.72;
  transform:none;
  box-shadow:none;
}
.listing-filter-reset{
  color:#334155;
  text-decoration:none;
  font-weight:800;
  font-size:.86rem;
  white-space:nowrap;
}
.listing-filter-reset:hover{
  color:#111827;
  text-decoration:underline;
}
.listing-load-more{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:20px 0 8px;
}
.listing-load-more[hidden]{
  display:none;
}
.listing-load-more__button{
  min-width:190px;
}
.listing-load-more__button.is-loading::before{
  content:"";
  display:inline-block;
  width:14px;
  height:14px;
  margin-right:8px;
  border:2px solid rgba(255,255,255,.42);
  border-top-color:#fff;
  border-radius:50%;
  vertical-align:-2px;
  animation:listomateSpin .75s linear infinite;
}
.listing-load-more__status{
  margin:0;
  min-height:18px;
  color:#64748b;
  font-size:.88rem;
  font-weight:700;
}
.listing-load-more__status.is-error{
  color:#b42318;
}
@keyframes listomateSpin{
  to{transform:rotate(360deg);}
}
@media (max-width: 900px){
  .listing-filter-main{
    grid-template-columns:minmax(190px,1.3fr) minmax(145px,.95fr) minmax(150px,.95fr) auto;
  }
}
@media (max-width: 680px){
  .listing-filter-shell{
    margin:10px auto 14px;
    padding:0 10px;
  }
  .listing-filter-panel{
    padding:7px;
    border-radius:13px;
  }
  .listing-filter-main{
    display:grid;
    grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.9fr) 42px;
    gap:5px;
    overflow:visible;
    padding-bottom:0;
  }
  .listing-filter-main .listing-filter-field{
    min-width:0;
  }
  .listing-filter-main .listing-filter-field input,
  .listing-filter-main .listing-filter-field select{
    min-height:36px;
    border-radius:8px;
    padding:7px 3px 7px 17px;
    font-size:.78rem;
    font-weight:850;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .listing-filter-main .listing-filter-field::before{
    left:4px;
    width:11px;
    height:11px;
  }
  .listing-more-filters{
    width:100%;
    min-width:0;
    min-height:36px;
    padding:7px 6px;
    gap:0;
    font-size:0;
    border-radius:8px;
  }
  .listing-more-filters::before{
    width:13px;
    height:13px;
    flex-basis:13px;
  }
  .listing-filter-drawer{
    top:auto;
    left:8px;
    right:8px;
    bottom:8px;
    width:auto;
    max-height:min(84vh, calc(100dvh - 24px));
    border-radius:18px;
    box-shadow:0 -18px 56px rgba(15,23,42,.24);
  }
  .listing-filter-drawer__head{
    padding:16px 16px 12px;
  }
  .listing-filter-drawer__body{
    padding:14px 16px;
  }
  .listing-filter-drawer__actions{
    padding:12px 16px 14px;
  }
}
