/* Bazeta listings module — home, browse, search, listing page, post wizard. Tokens only (see design.css). */

/* ---------- shared ---------- */
.h3{font-size:1.25rem;margin:0 0 .6rem}
.h4{font-size:1.05rem;margin:0 0 .4rem}
.text-sm{font-size:.875rem}
.inline{display:inline}
.mt-2{margin-top:1rem}
.select-sm{min-height:36px;padding:.3rem 2rem .3rem .6rem;font-size:.875rem;width:auto}
.results-head{margin-bottom:.75rem;gap:.75rem}
.results-head h1{margin:0}
.sort-form{display:inline-flex;align-items:center}
.filters-toggle>summary{list-style:none;cursor:pointer}
.filters-toggle>summary::-webkit-details-marker{display:none}
.filters-body{margin-top:.75rem}
.filters-bar-side{flex-direction:column;align-items:stretch}
.filters-bar-side .field{margin-bottom:0}
.filters-bar-side .form-actions{margin-top:.5rem}
.suggest-list{position:absolute;inset-inline:0;top:100%;z-index:60;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:60vh;overflow-y:auto;margin-top:.25rem;padding:.25rem}
.suggest-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .65rem;border-radius:var(--radius-sm);color:var(--fg);text-decoration:none;cursor:pointer}
.suggest-item:hover,.suggest-item.is-active{background:var(--bg-sunken);text-decoration:none}
.suggest-item .icon{color:var(--fg-muted);flex:none}
.suggest-item small{color:var(--fg-muted);margin-inline-start:auto;white-space:nowrap}
.search-form,.city-field{position:relative}

/* ---------- home ---------- */
.home-hero{margin-top:1rem;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 12%,var(--bg-elev)),color-mix(in srgb,var(--accent) 10%,var(--bg-elev)))}
.home-hero h1{font-size:clamp(1.6rem,4vw,2.6rem);font-family:var(--font-display,var(--font));letter-spacing:-.02em}
.home-hero-links{justify-content:center;margin-top:1rem}
.home-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:.75rem;overflow-x:auto;padding-bottom:.5rem;scroll-snap-type:x mandatory;scrollbar-width:thin}
.home-strip>.listing-card{scroll-snap-align:start}
.home-top .section-title h2 .icon{color:var(--accent)}
.entry-cards .entry-card{display:flex;align-items:center;gap:.9rem;padding:1rem;text-decoration:none;color:var(--fg)}
.entry-card .entry-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);flex:none}
.entry-card .entry-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.entry-card .entry-body span{font-size:.85rem}
.article-teasers .article-teaser{display:flex;flex-direction:column;gap:.5rem;text-decoration:none;color:var(--fg);padding:0;overflow:hidden}
.article-teaser img{width:100%;aspect-ratio:16/9;object-fit:cover}
.article-teaser>strong,.article-teaser>span,.article-teaser>.badge{margin-inline:1rem}
.article-teaser>span:last-child{margin-bottom:1rem}
.article-teaser>.badge{align-self:flex-start}
.home-cta-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;background:linear-gradient(135deg,var(--primary-soft),transparent)}
.home-cta-card h2{margin:0 0 .25rem}
.home-cta-card p{margin:0}
.home-section .section-title h2{display:flex;align-items:center;gap:.5rem}

/* ---------- browse (category / geo) ---------- */
.browse-head{margin:.25rem 0 1rem}
.browse-head h1{margin:0;font-size:clamp(1.35rem,3vw,1.9rem)}
.browse-head p{margin:.2rem 0 0}
.browse-head .cat-icon{--cat-c:hsl(var(--cat-h,240) 72% var(--cat-l,48%))}
.browse-children{margin-bottom:1rem}
.cat-tile.is-active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}
.browse-siblings,.browse-cities{margin-bottom:.75rem}
.browse-post-card{margin-top:1rem}
.browse-post-card p{margin:.35rem 0 .75rem}
.cat-columns .cat-column h2 a{color:var(--fg);text-decoration:none}
.cat-columns .cat-column h2 a .cat-icon{--cat-c:hsl(var(--cat-h,240) 72% var(--cat-l,48%))}
.cat-links{list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-direction:column;gap:.3rem;font-size:.92rem}
.cat-links a{color:var(--fg)}

/* ---------- search ---------- */
.search-head{margin:.75rem 0 1rem;display:flex;flex-direction:column;gap:.75rem}
.search-scope{gap:.4rem}
.search-chips{margin-bottom:.75rem}
.search-results .listing-grid{margin-top:.5rem}

/* ---------- listing page ---------- */
.listing-layout{align-items:start}
.listing-main{min-width:0}
.listing-aside{position:sticky;top:calc(var(--header-h,64px) + .75rem);display:flex;flex-direction:column;gap:1rem}
.owner-bar{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:.9rem 1.1rem;border-inline-start:4px solid var(--primary)}
.owner-bar p{margin:0}
.owner-actions .btn{gap:.35rem}
.listing-expired{margin-bottom:1rem}
.listing-expired .body form{margin-top:.5rem}
.gallery{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-sunken);margin-bottom:1rem}
.gallery-main{position:relative;margin:0;aspect-ratio:4/3;max-height:70vh;display:grid;place-items:center;background:var(--bg-sunken)}
.gallery-main>a{display:block;width:100%;height:100%}
.gallery-main img{width:100%;height:100%;object-fit:contain;display:block;background:var(--bg-sunken)}
.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:0;background:rgba(15,23,42,.55);color:#fff;display:grid;place-items:center;cursor:pointer;z-index:2}
.gallery-nav.prev{inset-inline-start:.6rem}
.gallery-nav.next{inset-inline-end:.6rem}
.gallery-nav:hover{background:rgba(15,23,42,.8)}
.gallery-count{position:absolute;inset-block-end:.6rem;inset-inline-end:.6rem;background:rgba(15,23,42,.65);color:#fff;font-size:.75rem;padding:.2rem .55rem;border-radius:999px;font-variant-numeric:tabular-nums}
.gallery-thumbs{display:flex;gap:.4rem;padding:.5rem;overflow-x:auto;scrollbar-width:thin;background:var(--bg-elev);border-top:1px solid var(--border)}
.gallery-thumb{flex:none;width:76px;height:58px;padding:0;border:2px solid transparent;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-sunken);cursor:pointer}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-thumb.is-active{border-color:var(--primary)}
.gallery-placeholder{aspect-ratio:16/7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--fg-faint)}
.gallery-placeholder .icon{width:48px;height:48px}
.lightbox{position:fixed;inset:0;z-index:calc(var(--z-modal,1000) + 5);background:rgba(3,7,18,.94);display:flex;align-items:center;justify-content:center}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0;max-width:96vw;max-height:94vh;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.lightbox img{max-width:96vw;max-height:88vh;object-fit:contain;border-radius:var(--radius-sm)}
.lightbox figcaption{color:#cbd5e1;font-size:.85rem}
.lightbox-close,.lightbox-nav{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.lightbox-close{top:1rem;inset-inline-end:1rem}
.lightbox-nav{top:50%;transform:translateY(-50%)}
.lightbox-nav.prev{inset-inline-start:1rem}
.lightbox-nav.next{inset-inline-end:1rem}
.lightbox-close:hover,.lightbox-nav:hover{background:rgba(255,255,255,.28)}
.listing-head{margin-bottom:.75rem}
.listing-badges{margin-bottom:.4rem}
.listing-title{font-size:clamp(1.3rem,3vw,1.8rem);margin:0 0 .4rem;line-height:1.25;overflow-wrap:anywhere}
.listing-meta{display:flex;flex-wrap:wrap;gap:.35rem 1rem;font-size:.85rem}
.listing-meta span{display:inline-flex;align-items:center;gap:.3rem}
.listing-price-block{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem;margin:.5rem 0 1.25rem}
.price-big{font-size:1.8rem}
.price-converted{font-size:.95rem}
.listing-attrs{margin-bottom:1.25rem}
.attrs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem .75rem;margin:0}
.attrs-grid>div{display:flex;flex-direction:column;gap:.1rem;padding:.55rem .75rem;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm)}
.attrs-grid dt{font-size:.75rem;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em}
.attrs-grid dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.listing-desc-wrap{margin-bottom:1.25rem}
.listing-desc{line-height:1.65;overflow-wrap:anywhere;max-width:72ch}
.listing-feed-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1.25rem}
.listing-feed-note p{margin:0}
.listing-location{margin-bottom:1.25rem}
.listing-location p{display:flex;align-items:center;gap:.35rem}
.listing-map{position:relative;height:280px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:var(--bg-sunken)}
.listing-map .maplibregl-map{position:absolute;inset:0}
.map-fallback{position:absolute;inset-block-end:.5rem;inset-inline-end:.5rem;z-index:3;display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .6rem;background:var(--bg-elev);border:1px solid var(--border);border-radius:999px;font-size:.78rem}
.listing-tools{margin:1rem 0;gap:.75rem}
.contact-card{display:flex;flex-direction:column;gap:.75rem}
.contact-price .price{font-size:1.6rem}
.contact-actions .btn{justify-content:center}
.phone-reveal{justify-content:center}
.seller-card{display:flex;flex-direction:column;gap:.75rem}
.seller-head{align-items:center;gap:.8rem;flex-wrap:nowrap}
.seller-name{font-weight:700;font-size:1.05rem}
.seller-name a{color:var(--fg);text-decoration:none}
.seller-badges{gap:.3rem;margin-top:.25rem}
.seller-facts{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem}
.seller-facts li{display:flex;align-items:center;gap:.4rem}
.safety-card ul{padding-inline-start:1.1rem;margin:.35rem 0 .5rem}
.report-form .form-actions{margin-top:1rem}
.report-done{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1rem 0}
.report-done .icon{width:44px;height:44px;color:var(--success)}
.boost-listing,.listing-preview-row{display:flex;align-items:center;gap:.9rem;margin:1rem 0}
.boost-listing img,.listing-preview-row img{width:96px;height:72px;object-fit:cover;border-radius:var(--radius-sm);flex:none}
.boost-free{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;border-color:var(--success);background:var(--success-soft)}
.boost-grid{margin-top:1rem}
.boost-card{display:flex;flex-direction:column;gap:.5rem}
.boost-card .benefits{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}
.boost-card .benefits li{display:flex;gap:.35rem;align-items:flex-start}
.boost-card .benefits .icon{color:var(--success);margin-top:.15rem}
.boost-card .btn{margin-top:auto}
.boost-mini{display:flex;flex-direction:column;gap:.3rem;text-decoration:none;color:var(--fg)}

/* ---------- post wizard ---------- */
.post-header{margin:.5rem 0 1.25rem}
.post-steps{list-style:none;padding:0;margin:.75rem 0 0;display:flex;gap:.5rem;flex-wrap:wrap;font-size:.85rem;color:var(--fg-muted)}
.post-steps li{display:inline-flex;align-items:center;gap:.4rem}
.post-steps li span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--bg-sunken);font-weight:700;font-size:.75rem}
.post-steps li.is-current{color:var(--fg);font-weight:600}
.post-steps li.is-current span{background:var(--primary);color:var(--primary-fg)}
.post-steps li.is-done span{background:var(--success-soft);color:var(--success)}
.post-steps li+li::before{content:"›";margin-inline-end:.35rem;color:var(--fg-faint)}
.post-cats{margin-top:.5rem}
.leaf-list{list-style:none;padding:0;margin:.75rem 0 0;display:grid;gap:.4rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.leaf-item{display:flex;align-items:center;gap:.6rem;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);color:var(--fg);text-decoration:none;transition:border-color .15s,transform .15s}
.leaf-item:hover{border-color:var(--primary);transform:translateY(-1px);text-decoration:none}
.leaf-item.is-disabled{opacity:.6;cursor:not-allowed}
.post-cat-row{margin-bottom:1rem;padding:.75rem 1rem;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius)}
.post-form fieldset{border:0;padding:0;margin:0 0 1.25rem}
.post-form legend{padding:0;margin-bottom:.5rem}
.post-form legend .hint{font-weight:400;margin-inline-start:.4rem}
.type-chips{gap:.4rem}
.type-chips .chip{cursor:pointer}
.price-row{display:grid;grid-template-columns:1fr;gap:.75rem}
.map-picker-details summary{list-style:none;display:inline-flex;cursor:pointer;margin-bottom:.5rem}
.map-picker-details summary::-webkit-details-marker{display:none}
.map-picker{position:relative;height:320px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:var(--bg-sunken);margin-bottom:.5rem}
.map-picker .maplibregl-map{position:absolute;inset:0}
.map-picker .map-pin-hint{position:absolute;inset-inline:0;top:.5rem;text-align:center;pointer-events:none;z-index:3}
.map-picker .map-pin-hint span{background:var(--bg-elev);border:1px solid var(--border);border-radius:999px;padding:.25rem .7rem;font-size:.78rem}
.field-check{justify-content:flex-end}
.post-done{display:flex;flex-direction:column;gap:1rem;align-items:center;text-align:center;padding:2rem 1.25rem}
.post-done h1{margin:0}
.post-done p{margin:0;max-width:56ch}
.post-done-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center}
.post-done-icon .icon{width:34px;height:34px}
.post-done-icon.is-ok{background:var(--success-soft);color:var(--success)}
.post-done-icon.is-warn{background:var(--warning-soft);color:var(--warning)}
.post-done-icon.is-bad{background:var(--danger-soft);color:var(--danger)}
.post-done .reasons{margin:0;padding-inline-start:1.2rem;text-align:start;color:var(--fg-muted)}
.post-done .listing-preview-row{width:100%;text-align:start}
.post-done-actions{justify-content:center}

/* ---------- responsive ---------- */
@media (min-width:640px){
  .price-row{grid-template-columns:1.2fr 1fr .7fr}
}
@media (min-width:1024px){
  .filters-toggle>summary{display:none}
  .filters-toggle:not([open])>.filters-body{display:block}
  .listing-map{height:340px}
  .home-strip{grid-auto-columns:minmax(240px,1fr)}
}
@media (max-width:1023px){
  .listing-aside{position:static}
  .filters-toggle:not([open])>.filters-body{display:none}
}
@media (prefers-reduced-motion:reduce){
  .leaf-item,.cat-tile{transition:none}
}
@media print{
  .gallery-thumbs,.gallery-nav,.listing-tools,.owner-bar,.lightbox{display:none!important}
}
