/* =========================================================
   NEKRETNINE XPERT — V50 FINAL UX SYSTEM
   Purpose: one final, intentional UI layer for desktop + mobile.
   Existing base styles remain for compatibility; this layer defines
   the final component contract and removes visual drift.
   ========================================================= */

:root{
  --ux-font:"DM Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ux-display:"Manrope","DM Sans",system-ui,sans-serif;
  --ux-ink:#11181f;
  --ux-muted:#66727b;
  --ux-soft:#87919a;
  --ux-line:#e2dbd0;
  --ux-cream:#f5f1e8;
  --ux-card:#fff;
  --ux-gold:#d5a52f;
  --ux-gold-dark:#9c741b;
  --ux-dark:#101820;
  --ux-radius:16px;
  --ux-shadow:0 14px 38px rgba(22,28,34,.07);
}

html{font-family:var(--ux-font);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-synthesis:none;}
body{font-family:var(--ux-font);color:var(--ux-ink);}
button,input,select,textarea{font:inherit;}
button,select,input{font-family:var(--ux-font);}

/* Global readability: slightly stronger supporting text, restrained headings. */
.eyebrow,.detail-section-kicker{font-family:var(--ux-font);font-weight:800;letter-spacing:.15em;}
.search-hint,.advanced-summary,.filter-mode-help,.map-search-help,.property-highlights,.detail-secondary-facts span,.detail-local-note span,.detail-credit-note small,.footer-bottom{font-size:10px;line-height:1.45;color:var(--ux-muted);}

/* SEARCH: one consistent control language. */
.search-panel-home .field>label,
.search-panel-home .range-filter>label,
.filter-panel .filter-field-label>span,
.filter-panel .field>label,
.sort-control>span{
  font-family:var(--ux-font)!important;
  font-size:10px!important;
  font-weight:800!important;
  line-height:1.2!important;
  letter-spacing:.055em!important;
  text-transform:uppercase;
  color:inherit;
}
.search-panel-home .field select,
.search-panel-home .field input,
.search-panel-home .multi-select-trigger,
.search-panel-home .search-query-wrap input,
.filter-panel .filter-row select,
.filter-panel .filter-row input,
.filter-panel .multi-select-trigger,
.sort-control select{
  font-family:var(--ux-font)!important;
  font-size:13px!important;
  font-weight:700!important;
  letter-spacing:0!important;
  line-height:1.2!important;
}
.search-panel-home .field select,
.search-panel-home .search-query-wrap input,
.search-panel-home .multi-select-trigger{
  min-height:58px;
  border-radius:14px;
}
.search-panel-home .multi-select-trigger{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:0 16px;
}
.search-panel-home .multi-select-trigger [data-multi-select-label]{
  font-family:var(--ux-font)!important;font-size:13px!important;font-weight:700!important;
  line-height:1.2!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.field-multi-select{position:relative;min-width:0;}
.multi-select-menu{font-family:var(--ux-font);max-height:320px;overscroll-behavior:contain;}
.multi-option{font-size:13px!important;font-weight:650!important;min-height:42px;}
.multi-option span:last-child{line-height:1.25;}
.multi-option:focus-within,.multi-option:hover{background:#f6f1e7;}
.search-panel-home .multi-option:focus-within,.search-panel-home .multi-option:hover{background:rgba(255,255,255,.09);}
.search-panel-home .multi-select-menu{min-width:100%;}
.search-panel-home .advanced-search select{font-family:var(--ux-font)!important;font-size:13px!important;font-weight:700!important;}

/* Dynamic type-dependent fields: never leave stale controls visible. */
.is-type-hidden{display:none!important;}
.range-filter .range-values{font-family:var(--ux-font)!important;font-size:10px!important;font-weight:700!important;color:#7d878f;}
.search-panel-home .range-filter .range-values{color:rgba(255,255,255,.78);}
.range-filter input[type=range]{touch-action:pan-y;}

/* Listing cards: price hierarchy is explicit. */
.property-price-block{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px 10px;}
.property-price-block>strong{order:1;font-family:var(--ux-display);font-size:clamp(22px,2vw,28px);letter-spacing:-.035em;}
.property-price-block>span.price-drop-inline{order:2;}
.property-price-block>span:not(.price-drop-inline){order:3;}
.price-drop-inline{display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border-radius:999px;background:#fbefd8;color:#946b12;font-size:10px;font-weight:800;white-space:nowrap;}
.property-credit-pill{font-family:var(--ux-font);font-size:10px!important;font-weight:800!important;}
.property-body .property-loc{font-size:10px;}
.property-body h3{line-height:1.15;}
.property-detail-link{font-size:10px;font-weight:800;}

/* MAP — drawing mode is a true touch interaction. */
.xpert-search-map{position:relative;overflow:hidden;border-radius:18px;}
.xpert-search-map.is-drawing,
.xpert-search-map.is-drawing .leaflet-container,
.xpert-search-map.is-drawing .leaflet-pane,
.xpert-search-map.is-drawing .leaflet-map-pane{touch-action:none!important;cursor:crosshair!important;}
.xpert-search-map.is-drawing .leaflet-control-container{pointer-events:none;opacity:.7;}
.map-search-actions{display:flex;flex-wrap:wrap;gap:8px;}
.map-btn{font-family:var(--ux-font)!important;font-weight:800!important;font-size:11px!important;min-height:44px;border-radius:999px;}
.map-search-help{font-size:10px;line-height:1.45;}
.xpert-map-popup{font-family:var(--ux-font);}
.xpert-map-choice-list{max-height:240px;overflow:auto;}
.xpert-draw-shape{vector-effect:non-scaling-stroke;stroke:#e11d48!important;stroke-width:5!important;stroke-opacity:1!important;fill:#facc15!important;fill-opacity:.2!important;}
.xpert-draw-overlay{display:block!important;z-index:1000!important;pointer-events:none!important;}
.xpert-map-choice{font-family:var(--ux-font);}

/* ONE CONTROL SYSTEM — identical fields and chevrons throughout the site. */
:where(.search-panel-home,.filter-panel,.sort-control,.smart-form) select{
  -webkit-appearance:none!important;
  appearance:none!important;
  background-repeat:no-repeat!important;
  background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%!important;
  background-size:5px 5px,5px 5px!important;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%)!important;
  padding-right:42px!important;
  cursor:pointer;
}
:where(.search-panel-home .field select,.search-panel-home .field input:not([type=range]),.search-panel-home .multi-select-trigger,.search-panel-home .search-query-wrap input,.filter-panel .filter-row select,.filter-panel .filter-row input:not([type=range]),.filter-panel .multi-select-trigger){
  box-sizing:border-box;
  height:58px!important;
  min-height:58px!important;
  border-radius:14px!important;
  border-width:1px!important;
  padding-left:16px!important;
  padding-right:42px!important;
}
:where(.filter-panel .filter-row select,.filter-panel .filter-row input:not([type=range]),.filter-panel .multi-select-trigger,.sort-control select,.smart-form select,.smart-form input,.smart-form textarea){
  box-sizing:border-box;
  border-radius:14px!important;
  border:1px solid var(--ux-line)!important;
  background-color:#fff!important;
  color:var(--ux-ink)!important;
}
.search-panel-home .field select,.search-panel-home .search-query-wrap input,.search-panel-home .multi-select-trigger{
  background-color:rgba(255,255,255,.07)!important;
  border-color:rgba(255,255,255,.25)!important;
  color:#fff!important;
}
.search-panel-home .multi-select-trigger>b,.advanced-toggle>span{
  display:inline-block;
  flex:0 0 9px;
  width:9px;
  height:9px;
  margin:0 3px 4px 0;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  font-size:0!important;
  line-height:0;
  opacity:.78;
  transform:rotate(45deg);
  transition:transform .16s ease;
}
.field-multi-select.is-open .multi-select-trigger>b,.advanced-toggle[aria-expanded=true]>span{transform:rotate(225deg);margin-bottom:-2px;}
.sort-control select{height:52px!important;min-height:52px!important;}
.smart-form select,.smart-form input,.smart-form textarea{min-height:52px;}

/* Detail page — compact hierarchy, no giant headings. */
body.route-oglas{background:var(--ux-cream);}
body.route-oglas .detail-topbar{padding:28px 0 30px;}
body.route-oglas .detail-topbar .container{max-width:1180px;}
body.route-oglas .detail-topbar h1{
  max-width:920px!important;
  margin-top:15px!important;
  font-family:var(--ux-display)!important;
  font-size:clamp(32px,3.15vw,44px)!important;
  line-height:1.08!important;
  letter-spacing:-.042em!important;
  text-wrap:balance;
}
body.route-oglas .detail-top-meta{gap:7px;margin-top:16px;}
body.route-oglas .detail-top-meta span{font-size:10px;padding:7px 10px;}
body.route-oglas .detail-redesign{padding:26px 0 82px;}
body.route-oglas .detail-main-grid{grid-template-columns:minmax(0,1.55fr) minmax(300px,.62fr);gap:22px;align-items:start;}
body.route-oglas .gallery-shell{border-radius:18px;box-shadow:var(--ux-shadow);}
body.route-oglas .gallery-main{height:540px;}
body.route-oglas .gallery-counter{font-size:10px;}
body.route-oglas .gallery-thumbs{padding:9px;gap:8px;}
body.route-oglas .gallery-thumb{width:80px;height:58px;flex-basis:80px;}
body.route-oglas .detail-primary-info{margin-top:18px;padding-bottom:15px;gap:16px;align-items:center;}
body.route-oglas .detail-price-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;}
body.route-oglas .detail-price-line strong{font-family:var(--ux-display);font-size:clamp(34px,3vw,44px)!important;letter-spacing:-.045em;}
body.route-oglas .detail-price-drop{order:2!important;font-size:10px!important;font-weight:800!important;}
body.route-oglas .detail-price-line>span:not(.detail-price-drop){order:3;font-size:12px;}
body.route-oglas .detail-credit-note{padding:13px 15px;border-radius:14px;}
body.route-oglas .detail-credit-note span{font-size:9px;}
body.route-oglas .detail-credit-note strong{font-size:18px;}
body.route-oglas .detail-actions{gap:8px;}
body.route-oglas .detail-keyfacts{gap:10px;margin-top:18px;}
body.route-oglas .detail-keyfacts>div{padding:16px 16px;min-height:90px;border-radius:14px;}
body.route-oglas .detail-keyfacts span{font-size:9px;}
body.route-oglas .detail-keyfacts b{font-size:13px;line-height:1.25;}
body.route-oglas .detail-local-note{margin-top:12px;border-radius:14px;min-height:72px;}
body.route-oglas .detail-secondary-facts{margin-top:12px;border-radius:14px;}
body.route-oglas .detail-secondary-facts>div{padding:16px 15px;}
body.route-oglas .detail-secondary-facts span{font-size:9px;}
body.route-oglas .detail-secondary-facts b{font-size:12px;}
body.route-oglas .detail-block{margin-top:20px;padding:26px 30px;border-radius:18px;box-shadow:0 6px 24px rgba(21,27,33,.035);}
body.route-oglas .detail-block h2{font-family:var(--ux-display);font-size:clamp(26px,2.5vw,34px);line-height:1.1;letter-spacing:-.035em;margin:7px 0 14px;}
body.route-oglas .feature-grid{gap:8px;}
body.route-oglas .feature-grid span{font-size:11px;min-height:42px;display:flex;align-items:center;}
body.route-oglas .detail-desc{font-size:14px;line-height:1.8;color:#33404a;max-width:920px;}
body.route-oglas .read-more{font-size:11px;font-weight:800;}

/* Credit calculator — clearer as one product component. */
body.route-oglas .credit-calculator{
  margin-top:20px;padding:26px;border-radius:20px;border:1px solid #e2d4b5;
  background:linear-gradient(145deg,#fffdf9 0%,#f8f2e7 100%);box-shadow:0 12px 30px rgba(38,28,13,.05);
}
body.route-oglas .credit-calc-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;}
body.route-oglas .credit-calculator h2{font-family:var(--ux-display);font-size:28px!important;line-height:1.1!important;letter-spacing:-.035em;margin:7px 0 7px!important;}
body.route-oglas .credit-calculator-intro{font-size:12px!important;line-height:1.55!important;color:#6b747b!important;max-width:720px;}
body.route-oglas .credit-calc-context{min-width:215px;padding:12px 14px;border-radius:13px;background:rgba(255,255,255,.7);border:1px solid #e4d9bf;text-align:left;}
body.route-oglas .credit-calc-context span{font-size:9px!important;color:#7f725b!important;}
body.route-oglas .credit-calc-context b{font-size:11px!important;color:#87661f!important;line-height:1.35;}
body.route-oglas .credit-calc-grid{margin-top:20px;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
body.route-oglas .credit-calc-field{padding:0;}
body.route-oglas .credit-calc-field>span{font-size:11px!important;font-weight:800!important;color:#28323a!important;}
body.route-oglas .credit-calc-field>small{margin:4px 0 7px;font-size:9px!important;color:#7d858c!important;line-height:1.35;min-height:24px;}
body.route-oglas .credit-input-wrap input{height:50px;border-radius:12px;font-size:14px!important;font-weight:800!important;}
body.route-oglas .credit-input-wrap em{font-size:10px;font-weight:800;}
body.route-oglas .credit-calc-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;}
body.route-oglas .credit-calc-results>div{padding:16px 17px;min-height:94px;border-radius:14px;background:#11181f;display:flex;flex-direction:column;justify-content:center;}
body.route-oglas .credit-calc-results span{font-size:9px!important;color:#93a0aa!important;}
body.route-oglas .credit-calc-results b{margin-top:5px;font-family:var(--ux-display);font-size:22px!important;letter-spacing:-.025em;color:#fff!important;}
body.route-oglas .credit-calc-results small{margin-top:3px;font-size:9px;color:#71808a;}
body.route-oglas .credit-calc-results .is-primary{background:linear-gradient(145deg,#161d24,#202932);box-shadow:inset 0 0 0 1px rgba(213,165,47,.2);}
body.route-oglas .credit-calc-results .is-primary b{color:#e2b43d!important;}
body.route-oglas .credit-calc-note{display:block;margin-top:10px;font-size:9px!important;line-height:1.45;color:#777f84!important;}

/* Agent card: immediate hierarchy without excessive decoration. */
body.route-oglas .agent-card-premium{border-radius:18px;box-shadow:var(--ux-shadow);}
body.route-oglas .agent-sticky-inner{padding:26px;}
body.route-oglas .agent-card-premium h3{font-family:var(--ux-display);font-size:30px;line-height:1.05;letter-spacing:-.035em;}
body.route-oglas .agent-card-premium p{font-size:12px;line-height:1.55;color:#657078;}
body.route-oglas .agent-card-premium .btn{min-height:48px;font-size:11px;}
body.route-oglas .agent-mini-grid>div{padding:11px 10px;}
body.route-oglas .agent-mini-grid span{font-size:8px;}
body.route-oglas .agent-mini-grid b{font-size:10px;}

/* Content pages: reduce accidental giant typography + tighten rhythm. */
.page-hero h1{font-family:var(--ux-display);font-size:clamp(34px,5.2vw,62px);line-height:1.02;letter-spacing:-.045em;}
.section-top h2,.section h2{font-family:var(--ux-display);letter-spacing:-.035em;}

/* Accessibility/focus. */
:where(a,button,input,select,textarea):focus-visible{outline:3px solid rgba(213,165,47,.48);outline-offset:2px;}

/* Mobile: thumb-friendly, compact, ordered information. */
@media(max-width:900px){
  .search-panel-home .field select,
  .search-panel-home .field input,
  .search-panel-home .multi-select-trigger,
  .search-panel-home .search-query-wrap input{min-height:52px;font-size:14px!important;}
  .search-panel-home .multi-select-menu{max-height:min(52vh,360px);}
  .map-search-actions .map-btn{min-height:46px;}
  .detail-redesign{overflow:visible;}
  body.route-oglas .detail-topbar h1{font-size:clamp(30px,7.2vw,40px)!important;line-height:1.06!important;max-width:760px!important;}
  body.route-oglas .detail-main-grid{grid-template-columns:1fr;gap:16px;}
  body.route-oglas .gallery-main{height:min(64vw,520px);min-height:270px;}
  body.route-oglas .agent-card-premium{margin-top:0;}
  body.route-oglas .credit-calc-head{grid-template-columns:1fr;gap:12px;}
  body.route-oglas .credit-calc-context{min-width:0;}
  body.route-oglas .credit-calc-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.route-oglas .credit-calc-results{grid-template-columns:1fr;}
  body.route-oglas .detail-keyfacts{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.route-oglas .detail-secondary-facts{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.route-oglas .detail-block{padding:22px 20px;border-radius:16px;}
  body.route-oglas .detail-block h2{font-size:28px;}
  body.route-oglas .detail-desc{font-size:13px;line-height:1.75;}
}

@media(max-width:640px){
  .search-panel-home .multi-option{min-height:46px;font-size:13px!important;}
  .search-panel-home .multi-select-trigger [data-multi-select-label]{font-size:14px!important;}
  .map-search-actions{display:grid;grid-template-columns:1fr 1fr;}
  .map-search-actions .map-btn{width:100%;}
  .xpert-search-map{min-height:58vh;}
  .xpert-search-map.is-drawing{touch-action:none!important;}
  body.route-oglas .detail-topbar{padding:22px 0 24px;}
  body.route-oglas .detail-top-meta span{font-size:9px;padding:6px 9px;}
  body.route-oglas .detail-redesign{padding-top:16px;padding-bottom:86px;}
  body.route-oglas .gallery-main{height:70vw;min-height:250px;max-height:430px;}
  body.route-oglas .gallery-nav{width:40px;height:40px;}
  body.route-oglas .gallery-thumbs{overflow-x:auto;scroll-snap-type:x proximity;}
  body.route-oglas .gallery-thumb{scroll-snap-align:start;flex:0 0 76px;width:76px;height:56px;}
  body.route-oglas .detail-primary-info{align-items:flex-start;}
  body.route-oglas .detail-price-line strong{font-size:36px!important;}
  body.route-oglas .detail-credit-note{width:100%;}
  body.route-oglas .detail-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;}
  body.route-oglas .detail-actions>*{min-width:0;}
  body.route-oglas .credit-calculator{padding:20px 16px;border-radius:17px;}
  body.route-oglas .credit-calculator h2{font-size:25px!important;}
  body.route-oglas .credit-calc-grid{grid-template-columns:1fr 1fr;}
  body.route-oglas .credit-calc-field>small{font-size:9px!important;min-height:auto;}
  body.route-oglas .credit-input-wrap input{height:48px;font-size:14px!important;}
  body.route-oglas .credit-calc-results b{font-size:22px!important;}
  body.route-oglas .detail-keyfacts,.detail-secondary-facts{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.route-oglas .detail-keyfacts>div{min-height:82px;padding:14px;}
  body.route-oglas .detail-secondary-facts>div{padding:14px;}
  body.route-oglas .detail-block{margin-top:14px;padding:20px 16px;}
  .mobile-detail-cta a{min-height:52px;font-size:12px;font-weight:800;}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}


/* ==========================================================
   V51 — DEVICE / MOBILE / iOS / FOOTER FINAL PASS
   ========================================================== */
:root{
  --ux-footer-bg:#080d12;
  --ux-footer-surface:#101820;
  --ux-footer-border:rgba(255,255,255,.10);
  --ux-footer-text:#e8edf0;
  --ux-footer-muted:#9ba6ae;
}

/* Never let the document itself create a horizontal scroll trap. */
html,body{max-width:100%;overflow-x:clip;}
@supports not (overflow:clip){html,body{overflow-x:hidden;}}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{-webkit-tap-highlight-color:transparent;}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent;}

/* iOS-safe fixed/sticky surfaces. */
.site-header{padding-top:env(safe-area-inset-top);}
.mobile-drawer{padding-bottom:env(safe-area-inset-bottom);}
.mobile-detail-cta{padding-bottom:max(7px,env(safe-area-inset-bottom));}
.back-top{bottom:calc(18px + env(safe-area-inset-bottom));}

/* Improve native form rendering without fighting the browser. */
input,select,textarea,button{font-size:16px;}
@media(min-width:901px){input,select,textarea,button{font-size:inherit;}}

/* ---------------- FOOTER: complete visual rebuild ---------------- */
.footer{
  background:
    radial-gradient(circle at 12% 0%,rgba(202,155,49,.10),transparent 30%),
    linear-gradient(180deg,#080d12 0%,#0a1016 100%);
  padding:64px 0 max(28px,calc(28px + env(safe-area-inset-bottom)));
  color:var(--ux-footer-text);
  border-top:1px solid rgba(255,255,255,.06);
}
.footer .container{min-width:0;}
.footer-cta{
  grid-template-columns:minmax(0,1.35fr) minmax(260px,.8fr) auto;
  gap:30px;
  padding:30px 32px;
  margin-bottom:48px;
  border:1px solid var(--ux-footer-border);
  border-radius:22px;
  background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.02));
  box-shadow:0 18px 55px rgba(0,0,0,.20);
}
.footer-cta h3{
  margin:8px 0 10px;
  font-family:var(--ux-display);
  font-size:clamp(26px,2.3vw,36px);
  line-height:1.08;
  letter-spacing:-.035em;
  color:#fff;
}
.footer-cta p{
  max-width:680px;
  margin:0;
  color:#a7b1b8;
  font-size:14px;
  line-height:1.65;
}
.footer-contact{display:grid;gap:9px;align-content:center;min-width:0;}
.footer-contact a,.footer-contact span{
  color:#d4dbe0;
  font-size:13px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.footer-contact a:hover{color:#fff;}
.footer-cta>.btn{min-height:50px;white-space:nowrap;}
.footer-grid{
  grid-template-columns:minmax(220px,1.35fr) repeat(2,minmax(140px,.8fr)) minmax(220px,1fr);
  gap:42px;
  align-items:start;
}
.footer-brand{min-width:0;}
.footer-logo{width:142px;height:auto;}
.footer-brand p{
  max-width:320px;
  margin:16px 0 0;
  color:var(--ux-footer-muted);
  font-size:14px;
  line-height:1.7;
}
.footer-grid>div:not(.footer-brand){display:grid;align-content:start;gap:10px;min-width:0;}
.footer-grid h4{
  margin:0 0 7px;
  color:#fff;
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.footer-grid a,.footer-grid span{
  color:var(--ux-footer-muted);
  font-size:13px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.footer-grid a:hover{color:#fff;}
.footer-grid>div:not(.footer-brand)>a{min-height:22px;display:flex;align-items:center;}
.social{margin-top:8px!important;gap:8px!important;}
.social a{
  width:36px;height:36px;min-width:36px;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.035);
  border-radius:50%;
  display:grid!important;place-items:center;
  color:#fff!important;
  font-size:10px!important;
  font-weight:800;
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.social a:hover{transform:translateY(-2px);background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);}
.footer-bottom{
  margin-top:46px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.09);
  color:#74808a;
  font-size:12px;
  line-height:1.5;
  flex-wrap:wrap;
}
.footer-bottom span{min-width:0;}
.footer-bottom span:last-child{gap:16px;flex-wrap:wrap;}
.footer-bottom a{color:#8d98a1;}
.footer-bottom a:hover{color:#fff;}

/* Draw mode must win over Leaflet defaults on touch devices. */
.xpert-search-map.is-drawing,
.xpert-search-map.is-drawing .leaflet-container,
.xpert-search-map.is-drawing .leaflet-map-pane,
.xpert-search-map.is-drawing .leaflet-pane,
.xpert-search-map.is-drawing canvas{
  touch-action:none!important;
  -ms-touch-action:none!important;
}
.xpert-search-map.is-drawing{user-select:none;-webkit-user-select:none;}

/* Better modal sizing on short iPhone viewports. */
.xpert-map-criteria-dialog,.xpert-video-dialog{
  max-height:calc(100dvh - 28px);
  padding-bottom:max(18px,env(safe-area-inset-bottom));
}

@media(max-width:1180px){
  .footer-grid{grid-template-columns:1.3fr 1fr 1fr;}
  .footer-grid>div:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:26px;}
  .footer-grid>div:last-child h4,.footer-grid>div:last-child .social{grid-column:1/-1;}
}

@media(max-width:900px){
  .footer{padding-top:48px;}
  .footer-cta{grid-template-columns:1fr;gap:18px;padding:24px;margin-bottom:34px;}
  .footer-cta>.btn{width:100%;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px 22px;}
  .footer-grid>div:last-child{grid-column:1/-1;grid-template-columns:1fr 1fr;}
}

@media(max-width:640px){
  .footer{padding-top:38px;}
  .footer-cta{padding:20px 18px;border-radius:18px;gap:16px;margin-bottom:28px;}
  .footer-cta h3{font-size:26px;}
  .footer-cta p{font-size:14px;line-height:1.6;}
  .footer-contact a,.footer-contact span{font-size:14px;min-height:24px;display:flex;align-items:center;}
  .footer-grid{grid-template-columns:1fr;gap:24px;}
  .footer-grid>div:not(.footer-brand){padding-top:18px;border-top:1px solid rgba(255,255,255,.08);}
  .footer-grid>div:last-child{grid-column:auto;grid-template-columns:1fr;}
  .footer-grid h4{font-size:11px;margin-bottom:5px;}
  .footer-grid a,.footer-grid span{font-size:14px;line-height:1.5;min-height:28px;}
  .footer-brand p{font-size:14px;max-width:100%;}
  .social{grid-column:auto!important;}
  .footer-bottom{display:grid;grid-template-columns:1fr;gap:11px;margin-top:28px;padding-top:16px;font-size:11px;}
  .footer-bottom span:last-child{display:flex;gap:8px 14px;}
  .back-top{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));}
}

@media(prefers-reduced-motion:reduce){
  .social a{transition:none;}
}


/* =========================================================
   V66 — FINAL MOBILE MASTER
   This block is intentionally last: it stabilizes the phone layout
   after all legacy/refinement layers have been loaded.
   ========================================================= */
html,body{width:100%;max-width:100%;overflow-x:clip;}
*{box-sizing:border-box;}

@media(max-width:900px){
  .site-header{position:sticky;top:0;z-index:120;width:100%;}
  .site-header .nav{width:100%;min-width:0;grid-template-columns:minmax(0,1fr) auto;}
  .desktop-nav,.site-header .call{display:none!important;}
  .hamb{display:flex!important;flex:0 0 40px;}
  .heart,.compare-nav{flex:0 0 40px;width:40px;height:40px;}
  .mobile-drawer{z-index:130;max-height:calc(100dvh - 68px);overflow-y:auto;}
  .hero-home{min-height:auto;height:auto;}
  .hero-home .hero-inner{width:var(--container);min-height:0;padding:64px 0 34px;gap:20px;}
  .hero-copy{width:100%;max-width:850px;}
  .hero-copy h1{max-width:100%;font-size:clamp(38px,10vw,60px);line-height:.96;overflow-wrap:normal;word-break:normal;}
  .hero-copy p{max-width:650px;font-size:14px;line-height:1.55;}
  .hero-actions{width:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;}
  .search-panel-home{width:100%;max-width:100%;margin-inline:auto;}
  .search-row-primary,.search-row-secondary,.advanced-grid,.filter-row-main,.filter-row-secondary{grid-template-columns:1fr!important;}
  .search-row-primary>*,.search-row-secondary>*,.advanced-grid>*,.filter-row-main>*,.filter-row-secondary>*{min-width:0;width:100%;}
  .search-panel-home .field select,.search-panel-home .field input,.search-panel-home .multi-select-trigger,.search-panel-home .search-query-wrap input{width:100%;}
  .filter-actions{width:100%;}
  .property-grid,.related-grid{grid-template-columns:1fr!important;gap:14px!important;}
  .property-card{width:100%;min-width:0;max-width:100%;}
  .property-media{height:220px;}
  .property-body{min-width:0;overflow:hidden;}
  .property-body h3{font-size:15px;line-height:1.2;overflow-wrap:anywhere;}
  .property-price-block{min-width:0;}
  .projects-mosaic,.news-grid,.news-grid-premium,.feature-grid,.experience-grid,.why-grid,.course-list,.module-list,.steps,.two-col,.grid2,.article-grid,.contact-grid,.consultation-layout,.article-detail-grid{grid-template-columns:1fr!important;}
  .market-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .xpert-search-map{width:100%;max-width:100%;}
  .form-row{grid-template-columns:1fr!important;}
  .smart-form,.form-shell,.form-row{min-width:0;width:100%;max-width:100%;}
  .smart-form input,.smart-form select,.smart-form textarea{width:100%;min-width:0;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .footer-grid>div:last-child{grid-column:1/-1;}
  .section,.page-hero,.listing-section{width:100%;max-width:100%;}
  .section-top,.filter-top,.detail-primary-info,.footer-cta,.footer-bottom{min-width:0;}
}

@media(max-width:640px){
  :root{--container:calc(100% - 20px);}
  .container,.detail-topbar .container,.detail-redesign .container{width:var(--container)!important;max-width:100%;}
  .site-header .nav{height:68px;padding-inline:10px;gap:8px;}
  .brand,.brand img{height:68px;}
  .brand img{width:108px;height:auto;max-height:60px;object-fit:contain;}
  .nav-right{gap:5px;}
  .heart,.compare-nav,.hamb{width:38px;height:38px;flex-basis:38px;}
  .mobile-drawer{top:68px;max-height:calc(100dvh - 68px);}
  .mobile-drawer-inner{width:var(--container);padding:10px 0 calc(18px + env(safe-area-inset-bottom));gap:3px;}
  .mobile-drawer-inner a{min-height:48px;padding:12px 14px;font-size:15px;}
  .hero-home .hero-inner{padding:54px 0 28px;gap:18px;}
  .hero-copy h1{font-size:clamp(36px,11vw,50px);line-height:.97;letter-spacing:-.055em;}
  .hero-copy p{font-size:13px;line-height:1.55;}
  .hero-actions{display:flex;flex-direction:column;width:100%;gap:11px;}
  .hero-actions>.btn,.hero-actions .btn{width:100%;max-width:380px;}
  .hero-video-link-right{margin:0!important;}
  .search-panel-home{padding:11px!important;border-radius:16px!important;}
  .search-head{gap:9px;margin-bottom:10px;}
  .search-tabs{width:100%;}
  .search-tab{flex:1 1 0;min-height:44px;justify-content:center;padding:10px 8px;font-size:11px;}
  .search-hint{font-size:9px;line-height:1.35;}
  .search-row-primary,.search-row-secondary,.advanced-grid{gap:9px!important;}
  .search-panel-home .field select,.search-panel-home .field input,.search-panel-home .multi-select-trigger,.search-panel-home .search-query-wrap input{height:52px!important;min-height:52px!important;font-size:14px!important;}
  .search-panel-home .multi-select-trigger{padding-inline:14px!important;}
  .search-panel-home .multi-select-menu{max-height:min(52vh,360px);}
  .search-submit{width:100%;}
  .page-hero{padding:46px 0 40px!important;}
  .page-hero h1{font-size:clamp(35px,10.5vw,48px)!important;line-height:1.02!important;}
  .page-hero p{font-size:13px;line-height:1.55;}
  .section{padding:48px 0;}
  .section-top{margin-bottom:20px;gap:11px;}
  .section-top h2,.section h2{font-size:clamp(30px,9vw,38px)!important;line-height:1.04;}
  .listing-section{padding:24px 0 72px!important;}
  .filter-panel{padding:12px!important;border-radius:16px;}
  .filter-title h2{font-size:28px!important;line-height:1.06;}
  .filter-modebar{padding:12px 0;}
  .filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
  .filter-actions>*{width:100%;min-width:0;}
  .filter-checks{grid-template-columns:1fr;gap:7px;}
  .property-grid,.related-grid{grid-template-columns:1fr!important;gap:14px!important;}
  .property-media{height:215px;}
  .property-body{padding:14px;}
  .property-body h3{font-size:15px;}
  .property-price-block>strong{font-size:23px;}
  .market-grid{grid-template-columns:1fr 1fr!important;gap:7px;}
  .market-card{min-width:0;padding:10px!important;}
  .rgz-strip-stats{grid-template-columns:1fr 1fr!important;}
  .map-search-actions{display:grid!important;grid-template-columns:1fr!important;width:100%;}
  .map-search-actions .map-btn,.map-btn{width:100%!important;min-height:46px!important;}
  .xpert-search-map{height:330px!important;min-height:0;}
  body.route-oglas .detail-topbar{padding:24px 0 24px!important;overflow:hidden;}
  body.route-oglas .detail-topbar h1{font-size:clamp(30px,8.7vw,42px)!important;line-height:1.02!important;max-width:100%!important;overflow-wrap:anywhere;}
  body.route-oglas .detail-top-meta{gap:6px;flex-wrap:wrap;}
  body.route-oglas .detail-top-meta span{font-size:9px;padding:6px 9px;}
  body.route-oglas .detail-redesign{padding:16px 0 92px!important;}
  body.route-oglas .detail-main-grid{display:block;grid-template-columns:1fr!important;gap:0;}
  body.route-oglas .detail-main-grid>div{width:100%;min-width:0;}
  body.route-oglas .gallery-shell{width:100%;max-width:100%;border-radius:16px;overflow:hidden;}
  body.route-oglas .gallery-main{width:100%;height:68vw!important;min-height:240px;max-height:360px;}
  body.route-oglas .gallery-main>img{width:100%!important;height:100%!important;object-fit:contain;}
  body.route-oglas .gallery-thumbs{max-width:100%;overflow-x:auto;display:flex;gap:8px;scroll-snap-type:x proximity;}
  body.route-oglas .gallery-thumb{flex:0 0 68px!important;width:68px!important;height:52px!important;scroll-snap-align:start;}
  body.route-oglas .detail-primary-info{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:14px;}
  body.route-oglas .detail-price-line{width:100%;gap:7px 9px;}
  body.route-oglas .detail-price-line strong{font-size:34px!important;}
  body.route-oglas .detail-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px;width:100%;}
  body.route-oglas .detail-actions>*{width:100%;min-width:0;min-height:48px;}
  body.route-oglas .detail-keyfacts,body.route-oglas .detail-secondary-facts{grid-template-columns:1fr 1fr!important;gap:7px;}
  body.route-oglas .detail-keyfacts>div,body.route-oglas .detail-secondary-facts>div{min-width:0;padding:11px;}
  body.route-oglas .detail-block{padding:18px 15px!important;border-radius:16px;margin-top:14px;overflow:hidden;}
  body.route-oglas .detail-block h2{font-size:25px!important;line-height:1.08;}
  body.route-oglas .detail-desc{font-size:13px;line-height:1.7;overflow-wrap:anywhere;}
  body.route-oglas .feature-grid{grid-template-columns:1fr 1fr!important;gap:7px;}
  body.route-oglas .feature-grid span{min-height:44px;padding:9px;font-size:10px;}
  body.route-oglas .credit-calc-grid{grid-template-columns:1fr 1fr!important;gap:8px;}
  body.route-oglas .credit-calc-results{grid-template-columns:1fr!important;gap:8px;}
  body.route-oglas .credit-calc-results>div:last-child{grid-column:auto!important;}
  body.route-oglas .credit-input-wrap input{height:48px!important;font-size:14px!important;}
  .article-cover{height:240px!important;}
  .panel,.legal,.contact-block,.contact-form-wrap,.consultation-form-card,.article-aside{padding:16px!important;}
  .form-row{grid-template-columns:1fr!important;}
  .smart-form input,.smart-form select,.smart-form textarea{min-height:52px;width:100%;font-size:16px!important;}
  .footer{padding:38px 0 calc(18px + env(safe-area-inset-bottom))!important;}
  .footer-cta{grid-template-columns:1fr!important;padding:20px 18px!important;border-radius:18px;gap:16px;margin-bottom:28px;}
  .footer-cta h3{font-size:26px!important;}
  .footer-cta p{font-size:14px!important;line-height:1.6;}
  .footer-grid{grid-template-columns:1fr!important;gap:22px;}
  .footer-grid>div:not(.footer-brand){padding-top:18px;border-top:1px solid rgba(255,255,255,.08);}
  .footer-grid>div:last-child{grid-column:auto;}
  .footer-grid h4{font-size:11px;margin-bottom:7px;}
  .footer-grid a,.footer-grid span,.footer-contact a,.footer-contact span{font-size:14px;line-height:1.5;min-height:28px;overflow-wrap:anywhere;}
  .footer-bottom{display:grid;grid-template-columns:1fr;gap:10px;margin-top:24px;}
  .mobile-detail-cta{left:8px!important;right:8px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;grid-template-columns:1fr 1.25fr!important;padding:7px!important;}
  .mobile-detail-cta a{min-height:48px!important;font-size:11px!important;}
  .mobile-call-fab{right:10px;bottom:calc(10px + env(safe-area-inset-bottom));}
  .mobile-detail-cta~.mobile-call-fab{display:none!important;}
}

@media(max-width:380px){
  .brand img{width:98px;}
  .heart,.compare-nav,.hamb{width:36px;height:36px;flex-basis:36px;}
  .nav-right{gap:4px;}
  .hero-home .hero-inner{padding-top:48px;}
  .hero-copy h1{font-size:36px;}
  .search-panel-home{padding:10px!important;}
  .search-tab{font-size:10px;padding-inline:6px;}
  body.route-oglas .detail-price-line strong{font-size:31px!important;}
}

/* V72 fixed consultation rail */
@media (min-width: 901px) {
  body.route-oglas .detail-main-grid { padding-right: 322px; }
}
@media (max-width: 900px) {
  body.route-oglas .detail-main-grid { padding-right: 0; }
  body.route-oglas .agent-card-premium { position: static; width:100%; max-height:none; overflow:visible; }
}

/* V72 related-property slider */
.related-slider { position:relative; margin-top:4px; }
.related-slider-head { display:flex; justify-content:flex-end; margin:0 0 12px; }
.related-slider-controls { display:flex; gap:7px; }
.related-slider-btn { width:38px; height:38px; border:1px solid #d9d1c3; border-radius:50%; background:#fff; color:#151a1f; font-weight:800; display:grid; place-items:center; }
.related-slider-btn:hover { background:#11181f; color:#fff; border-color:#11181f; }
.related-slider-viewport { overflow:hidden; }
.related-slider-track { display:flex; gap:16px; transition:transform .38s cubic-bezier(.2,.8,.2,1); will-change:transform; }
.related-slide { flex:0 0 calc((100% - 32px) / 3); min-width:0; }
.related-slide .property-card { height:100%; }
@media (max-width: 1100px) and (min-width: 901px) { .related-slide { flex-basis:calc((100% - 16px) / 2); } }
@media (max-width: 900px) {
  .related-slider-head { margin-bottom:10px; }
  .related-slider-btn { width:42px; height:42px; }
  .related-slider-track { gap:12px; }
  .related-slide { flex:0 0 82%; }
}

/* V72 consultation context */
.consultation-listing-context { margin:14px 0 18px; padding:13px 14px; border:1px solid #e3d6b8; border-radius:12px; background:#fbf6e9; display:grid; gap:3px; }
.consultation-listing-context span { font-size:8px; font-weight:900; letter-spacing:.12em; color:#8b6a28; }
.consultation-listing-context strong { font-size:13px; line-height:1.3; }
.consultation-listing-context small { color:#727b82; font-size:9px; }

/* V75 — DETAIL WIDTH FIX
   The consultation rail used to reserve an extra 322px inside the detail grid,
   which artificially squeezed the entire listing to the left on desktop.
   The consultation card is already a grid column, so that reservation is redundant.
*/
@media (min-width: 901px) {
  body.route-oglas .detail-topbar .container,
  body.route-oglas .detail-redesign .container {
    width: min(1600px, calc(100% - 64px)) !important;
    max-width: 1600px !important;
    margin-inline: auto !important;
  }

  body.route-oglas .detail-main-grid {
    width: 100% !important;
    max-width: none !important;
    padding-right: 0 !important;
    grid-template-columns: minmax(0, 1.75fr) minmax(360px, .72fr) !important;
    gap: 30px !important;
  }

  body.route-oglas .agent-card-premium {
    position: sticky !important;
    top: 24px !important;
    transform: none !important;
    max-height: none !important;
    overflow: visible !important;
  }
}


/* =========================================================
   V78 — FINAL UI POLISH / HOMEPAGE MOBILE CAROUSELS
   Do not replace project artwork: only presentation, spacing,
   interaction, responsiveness and accessibility are refined.
   ========================================================= */

/* Shared premium interaction baseline */
.project-carousel,
.market-carousel {
  min-width: 0;
}
.project-carousel-viewport,
.market-carousel {
  -webkit-tap-highlight-color: transparent;
}
.project-carousel-viewport,
.market-grid {
  -webkit-user-select: none;
  user-select: none;
}
.project-card img,
.market-card {
  -webkit-user-drag: none;
}
.project-carousel-viewport:focus-visible {
  outline: 3px solid rgba(217,173,67,.72);
  outline-offset: 5px;
}

/* Homepage projects: calmer desktop proportions and stronger card hierarchy. */
.project-carousel-viewport {
  border-radius: 22px;
}
.project-carousel-track {
  align-items: stretch;
}
.project-slide {
  box-sizing: border-box;
}
.project-slide .project-card {
  border-radius: 22px;
  min-height: 350px;
}
.project-card .project-bg {
  transform: translateZ(0);
}
.project-card::after {
  background:
    linear-gradient(180deg,rgba(4,8,12,.02) 18%,rgba(4,8,12,.12) 46%,rgba(4,8,12,.92) 100%);
}
.project-content {
  bottom: 24px;
  left: 26px;
  right: 62px;
}
.project-content h3 {
  text-wrap: balance;
}
.project-arrow {
  width: 40px;
  height: 40px;
  right: 18px;
  bottom: 18px;
}
.project-carousel-controls {
  justify-content: flex-end;
  gap: 10px;
}
.project-nav {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
}
.project-page {
  min-width: 66px;
  font-variant-numeric: tabular-nums;
}

/* Homepage market cards use a real swipe carousel on phones. */
@media (max-width: 640px) {
  .projects-section .section-top,
  .market-section .section-top {
    margin-bottom: 20px;
  }

  .projects-section .section-top h2,
  .market-section .section-top h2 {
    max-width: 15ch;
    text-wrap: balance;
  }

  .project-carousel-viewport {
    margin-inline: -1px;
    border-radius: 20px;
    overscroll-behavior-x: contain;
    touch-action: pan-y;
  }
  .project-carousel-track {
    gap: 12px;
    transition-duration: .36s;
    padding-right: 12px;
  }
  .project-slide {
    flex: 0 0 calc(100% - 24px) !important;
  }
  .project-slide .project-card {
    height: 318px;
    min-height: 318px;
    border-radius: 20px;
  }
  .project-content {
    left: 20px;
    right: 54px;
    bottom: 19px;
  }
  .project-content small {
    font-size: 7px;
    letter-spacing: .14em;
  }
  .project-content h3,
  .project-card:not(.large) .project-content h3 {
    margin-top: 7px;
    font-size: 25px;
    line-height: 1.02;
  }
  .project-content span {
    font-size: 8px;
  }
  .project-arrow {
    width: 38px;
    height: 38px;
    right: 14px;
    bottom: 14px;
    font-size: 14px;
  }
  .project-carousel-controls {
    justify-content: center;
    margin-top: 14px;
    gap: 10px;
  }
  .project-nav {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
  }
  .project-page {
    min-width: 64px;
    font-size: 9px;
  }

  .market-carousel {
    overflow: hidden;
    overscroll-behavior-x: contain;
  }
  .market-grid {
    display: flex !important;
    flex-wrap: nowrap;
    gap: 12px;
    width: 100%;
    min-height: 0;
    transform: translate3d(0,0,0);
    transition: transform .36s cubic-bezier(.2,.8,.2,1);
    will-change: transform;
    padding-right: 12px;
    touch-action: pan-y;
  }
  .market-grid .market-card {
    display: block;
    flex: 0 0 calc(100% - 24px);
    min-width: 0;
    min-height: 154px;
    padding: 15px 14px !important;
    border-radius: 16px !important;
  }
  .market-grid .market-card[hidden] {
    display: block !important;
  }
  .market-card-top strong {
    font-size: 12px !important;
  }
  .market-card-top span {
    font-size: 6.5px !important;
  }
  .market-value {
    margin-top: 10px !important;
    font-size: 28px !important;
  }
  .market-meter {
    margin: 10px 0 7px;
    height: 4px;
  }
  .market-range {
    font-size: 6.3px !important;
  }
  .market-controls {
    margin-top: 12px;
    gap: 10px;
  }
  .market-nav {
    width: 42px;
    height: 42px;
  }
  .market-page {
    min-width: 64px;
    font-size: 8px;
    font-variant-numeric: tabular-nums;
  }
}

@media (min-width: 641px) and (max-width: 1100px) {
  .project-slide .project-card {
    min-height: 330px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .project-carousel-track,
  .market-grid {
    transition: none !important;
  }
}

/* =========================================================
   V79 — WHOLE-SITE FINAL POLISH
   Purpose: eliminate visual drift, reduce wasted space, strengthen
   mobile ergonomics, and make interactive modules predictable.
   ========================================================= */

:root{
  --ui-radius-sm:12px;
  --ui-radius-md:16px;
  --ui-radius-lg:22px;
  --ui-gutter-desktop:32px;
  --ui-gutter-mobile:10px;
}

html{scroll-padding-top:88px;}
body{overflow-x:clip;text-rendering:optimizeLegibility;}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(217,173,67,.58);outline-offset:3px;}
[hidden]{display:none!important;}

/* Keep long content from creating accidental horizontal scroll. */
.container,.section,.page-hero,.listing-section,.detail-section,.detail-topbar,
.footer,.contact-form-wrap,.detail-block,.agent-card-premium,.property-card,
.market-card,.project-card,.panel,.compare-app{min-width:0;}

/* Better section rhythm: generous, but not wasteful. */
.section{padding-top:72px;padding-bottom:72px;}
.listing-section{padding-top:44px;padding-bottom:78px;}

/* Readable small UI — old 7–9px text was too easy to miss. */
.property-loc{font-size:9px!important;line-height:1.35!important;}
.property-card .property-body h3{font-size:16px!important;line-height:1.2!important;}
.property-price-block span{font-size:10.5px!important;}
.property-highlights span,.property-detail-link{font-size:9.5px!important;}
.market-card-top strong{font-size:14px!important;}
.market-card-top span,.market-range{font-size:9px!important;}
.section-top p,.page-hero p,.contact-block p{font-size:12.5px;line-height:1.6;}

/* Interactive surfaces feel like one system. */
.btn{min-height:50px;}
.property-save,.property-compare,.property-share-inline,.project-nav,.market-nav,
.gallery-nav,.gallery-full,.save-large,.share-btn,.compare-large{touch-action:manipulation;}

/* -------------------- LISTING DETAIL -------------------- */
body.route-oglas .detail-topbar .container,
body.route-oglas .detail-redesign .container{
  width:min(1600px,calc(100% - 64px))!important;
  max-width:1600px!important;
}
body.route-oglas .detail-topbar h1{
  max-width:1280px!important;
  line-height:1.02!important;
  letter-spacing:-.045em!important;
}
body.route-oglas .detail-main-grid{
  grid-template-columns:minmax(0,1.76fr) minmax(380px,.70fr)!important;
  gap:32px!important;
  align-items:start!important;
}
body.route-oglas .gallery-shell{border-radius:20px!important;}
body.route-oglas .gallery-main{height:570px!important;}
body.route-oglas .agent-card-premium{
  position:sticky!important;
  top:24px!important;
  align-self:start!important;
  max-height:none!important;
  overflow:visible!important;
  transform:none!important;
}
body.route-oglas .detail-primary-info{
  gap:20px!important;
  align-items:flex-end!important;
  flex-wrap:wrap!important;
}
body.route-oglas .detail-actions{margin-left:auto;flex-wrap:wrap;}
body.route-oglas .detail-keyfacts{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important;}
body.route-oglas .detail-secondary-facts{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:1px!important;}
body.route-oglas .detail-keyfacts>div{
  min-height:90px!important;
  padding:13px 14px!important;
}
body.route-oglas .detail-secondary-facts>div{padding:13px 14px!important;}

/* Detail feature chips: compact information density instead of stacked boxes. */
body.route-oglas .feature-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:8px!important;
  margin-top:16px!important;
}
body.route-oglas .feature-grid span{
  min-height:48px!important;
  display:flex!important;
  align-items:center!important;
  padding:9px 11px!important;
  border-radius:11px!important;
  font-size:10px!important;
  line-height:1.25!important;
}

body.route-oglas .detail-block{padding:26px!important;border-radius:18px!important;}
body.route-oglas .detail-block + .detail-block{margin-top:14px!important;}
body.route-oglas .detail-desc{font-size:13px!important;line-height:1.78!important;}
body.route-oglas .detail-local-note{margin-top:12px!important;}
body.route-oglas .credit-calculator{border-radius:18px!important;}

/* Never let the mobile fixed CTA cover the page's own action row. */
@media (max-width:900px){
  body.route-oglas .detail-topbar .container,
  body.route-oglas .detail-redesign .container{width:calc(100% - 28px)!important;}
  body.route-oglas .detail-topbar h1{max-width:100%!important;font-size:clamp(32px,8.5vw,46px)!important;}
  body.route-oglas .detail-main-grid{display:block!important;}
  body.route-oglas .agent-card-premium{position:static!important;width:100%!important;margin-top:16px!important;}
  body.route-oglas .detail-primary-info{align-items:flex-start!important;flex-direction:column!important;}
  body.route-oglas .detail-actions{width:100%!important;margin-left:0;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;}
  body.route-oglas .detail-actions>*{width:100%!important;min-width:0!important;}
  body.route-oglas .detail-keyfacts,
  body.route-oglas .detail-secondary-facts{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  body.route-oglas .feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .mobile-detail-cta{opacity:0!important;transform:translateY(120%)!important;pointer-events:none!important;transition:opacity .22s ease,transform .22s ease!important;}
  .mobile-detail-cta.is-visible{opacity:1!important;transform:translateY(0)!important;pointer-events:auto!important;}
}

/* -------------------- HOME PROJECT CAROUSEL -------------------- */
.project-carousel{min-width:0;}
.project-carousel-viewport{position:relative;overflow:hidden;}
.project-slide{min-width:0;}
.project-slide .project-card{min-height:350px;height:350px;}
.project-card .project-bg{overflow:hidden;}
.project-card .project-bg>img{width:100%;height:100%;object-fit:cover;object-position:center;}
.project-content small{font-size:9px!important;}
.project-content h3{font-size:29px!important;}
.project-content span{font-size:10px!important;}
.project-carousel-controls{min-height:44px;}
.project-page{font-variant-numeric:tabular-nums;}

/* -------------------- HOME MARKET CAROUSEL -------------------- */
.market-carousel{min-width:0;}
.market-controls{min-height:42px;}
.market-page{font-variant-numeric:tabular-nums;}

/* -------------------- MOBILE: true native swipe -------------------- */
@media (max-width:640px){
  html{scroll-padding-top:72px;}
  .section{padding-top:52px;padding-bottom:52px;}
  .listing-section{padding-top:28px;padding-bottom:64px;}
  .container{width:calc(100% - 20px)!important;}

  /* iOS/Android: keep form controls at 16px to avoid browser zoom and make input readable. */
  .field input,.field select,.search-query-wrap input,.filter-row input,.filter-row select,
  .smart-form input,.smart-form select,.smart-form textarea,.multi-select-trigger{
    font-size:16px!important;
    min-height:48px!important;
  }
  .smart-form textarea{min-height:132px!important;}
  .smart-form label{font-size:10px!important;line-height:1.35!important;}
  .filter-panel{padding:13px!important;border-radius:18px!important;}
  .filter-title h2{font-size:29px!important;}

  /* Project carousel becomes genuine touch scrolling with snap points and a visible peek. */
  .project-carousel-viewport{
    margin-inline:-1px;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:none;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:0;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x!important;
    cursor:grab;
  }
  .project-carousel-viewport::-webkit-scrollbar{display:none;}
  .project-carousel-viewport:active{cursor:grabbing;}
  .project-carousel-track{
    width:max-content;
    padding-right:24px!important;
    gap:12px!important;
    transform:none!important;
    transition:none!important;
  }
  .project-slide{
    flex:0 0 calc(100vw - 44px)!important;
    width:calc(100vw - 44px)!important;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .project-slide .project-card{
    height:304px!important;
    min-height:304px!important;
    border-radius:19px!important;
  }
  .project-content{left:19px!important;right:52px!important;bottom:18px!important;}
  .project-content h3,.project-card:not(.large) .project-content h3{font-size:25px!important;line-height:1.04!important;}
  .project-arrow{width:38px!important;height:38px!important;right:14px!important;bottom:14px!important;}
  .project-carousel-controls{justify-content:center!important;margin-top:13px!important;}

  /* Market carousel: same native touch model, one card + deliberate peek. */
  .market-carousel{overflow:hidden;}
  .market-grid{
    display:flex!important;
    flex-wrap:nowrap!important;
    width:max-content!important;
    padding-right:24px!important;
    gap:12px!important;
    min-height:0!important;
    transform:none!important;
    transition:none!important;
    overflow:visible!important;
    touch-action:pan-x!important;
    scroll-snap-type:x mandatory;
    cursor:grab;
  }
  .market-grid:active{cursor:grabbing;}
  .market-grid .market-card{
    flex:0 0 calc(100vw - 44px)!important;
    width:calc(100vw - 44px)!important;
    min-height:154px!important;
    scroll-snap-align:start;
    scroll-snap-stop:always;
    padding:15px 14px!important;
    border-radius:16px!important;
  }
  .market-card-top strong{font-size:13px!important;}
  .market-card-top span{font-size:7px!important;}
  .market-value{font-size:28px!important;}
  .market-range{font-size:7px!important;}

  /* Detail feature chips: two columns, compact and legible. */
  body.route-oglas .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;}
  body.route-oglas .feature-grid span{min-height:48px!important;font-size:10px!important;padding:9px!important;}
  body.route-oglas .detail-block{padding:18px 15px!important;border-radius:16px!important;}

  /* Detail fixed CTA: appears once the user has moved past the initial action row. */
  body.route-oglas main{padding-bottom:118px!important;}
  .mobile-detail-cta{
    left:8px!important;right:8px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;
    z-index:110!important;
    padding:7px!important;border-radius:15px!important;
  }
  .mobile-detail-cta a{min-height:46px!important;font-size:11px!important;}
  body.route-oglas .back-top{display:none!important;}

  /* Gallery controls don't compete with the image on narrow screens. */
  body.route-oglas .gallery-main{height:min(72vw,360px)!important;min-height:240px!important;max-height:360px!important;}
  body.route-oglas .gallery-nav{width:40px!important;height:40px!important;min-width:40px!important;}
  body.route-oglas .gallery-counter{font-size:9px!important;}

  /* Consistent card density across lists. */
  .property-media{height:215px!important;}
  .property-body{padding:15px!important;}
  .property-rate-meter{padding:10px!important;}
  .property-keyfacts{gap:6px!important;}
  .property-keyfacts span{font-size:9px!important;}
  .property-card-bottom{margin-top:10px!important;}

  /* Footer: comfortable tap targets. */
  .footer-grid a,.footer-contact a{min-height:34px;display:flex;align-items:center;}
  .footer-bottom a{min-height:32px;display:inline-flex;align-items:center;}

  /* Saved/compare fixed bars never sit under the thumb or safe area. */
  .compare-bar{left:8px!important;right:8px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;}
  body:has(.compare-bar) .back-top{bottom:calc(84px + env(safe-area-inset-bottom))!important;}
}

@media (min-width:641px) and (max-width:1100px){
  .project-slide{flex-basis:calc((100% - 16px)/2)!important;}
  .project-slide .project-card{height:330px;min-height:330px;}
  body.route-oglas .detail-main-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)!important;}
  body.route-oglas .feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}

/* Native swipe state: JS uses this class only for scroll synchronization. */
.project-carousel-viewport.is-dragging,.market-grid.is-dragging{cursor:grabbing!important;}

/* Hide carousel chrome when it genuinely cannot do anything. */
.project-carousel-controls.is-static,.market-controls.is-static{display:none!important;}

/* Avoid sticky controls becoming awkward on short desktop screens. */
@media (min-width:901px) and (max-height:760px){
  body.route-oglas .agent-card-premium{top:16px!important;}
}

/* Preserve reduced-motion preferences in the final interaction layer. */
@media (prefers-reduced-motion:reduce){
  .project-carousel-track,.mobile-detail-cta,.market-grid{transition:none!important;}
  .project-carousel-viewport,.market-grid{scroll-behavior:auto!important;}
}

/* =========================================================
   V79 — COMPLETE PRODUCT POLISH / FINAL UI CONSISTENCY
   One final layer intentionally wins over the accumulated legacy rules above.
   ========================================================= */
:root{
  --ui-gold:#d8ab3f;
  --ui-gold-dark:#9b741b;
  --ui-ink:#121920;
  --ui-muted:#66727a;
  --ui-line:#e5ddd1;
  --ui-surface:#fffdf9;
  --ui-radius:18px;
}
html{scroll-padding-top:92px;}
:target{scroll-margin-top:96px;}
button,a,input,select,textarea{outline-color:var(--ui-gold);}
button:disabled{cursor:not-allowed;}

/* Listing detail: dense information, strong hierarchy, no wasted rows. */
body.route-oglas .feature-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:8px!important;
  margin-top:16px!important;
}
body.route-oglas .feature-grid span{
  min-height:44px!important;
  height:auto!important;
  padding:9px 11px!important;
  border:1px solid #e6dfd4!important;
  border-radius:11px!important;
  background:#fbf9f5!important;
  color:#1b252c!important;
  font-size:10.5px!important;
  line-height:1.2!important;
  display:flex!important;
  align-items:center!important;
}
body.route-oglas .feature-grid span::first-letter{color:var(--ui-gold-dark);}
body.route-oglas .detail-block h2{letter-spacing:-.035em;}
body.route-oglas .detail-desc-wrap{min-width:0;}
body.route-oglas .detail-desc{overflow-wrap:anywhere;}

/* Detail actions and fact rows should wrap gracefully, never force a squeeze. */
body.route-oglas .detail-primary-info{min-width:0;}
body.route-oglas .detail-actions button{min-height:42px;}
body.route-oglas .detail-secondary-facts>div{min-width:0;}
body.route-oglas .detail-secondary-facts b{overflow-wrap:anywhere;}

/* Carousels: consistent controls, no accidental horizontal page scroll. */
.project-carousel,.market-carousel,.related-slider{min-width:0;}
.project-carousel-viewport,.related-slider-viewport{min-width:0;}
.project-carousel-track,.related-slider-track{will-change:transform;}
.project-carousel-btn,.related-slider-btn,.market-btn{touch-action:manipulation;}
@media (hover:hover){
  .project-carousel-btn:hover:not(:disabled),.related-slider-btn:hover:not(:disabled),.market-btn:hover:not(:disabled){transform:translateY(-1px);}
  body.route-oglas .feature-grid span:hover{border-color:#d6c39a!important;background:#fffdf8!important;}
}

/* Property cards: keep titles and metadata readable at every width. */
.property-card{min-width:0;}
.property-card h3,.property-loc,.property-price-block,.property-keyfacts{min-width:0;}
.property-card h3{overflow-wrap:anywhere;}
.property-loc{overflow-wrap:anywhere;}

/* Forms: clearer hierarchy, comfortable tap targets and no iOS zoom surprise. */
.smart-form label,.field>label{min-width:0;}
.smart-form input,.smart-form select,.smart-form textarea,
.field input,.field select,.search-query-wrap input,
.filter-row input,.filter-row select{max-width:100%;box-sizing:border-box;}
@media (max-width:900px){
  .smart-form input,.smart-form select,.smart-form textarea,
  .field input,.field select,.filter-row input,.filter-row select,
  .search-query-wrap input{font-size:16px!important;}
}

/* Fixed mobile CTA: hidden completely until it is useful, so it never covers price/actions. */
@media (max-width:900px){
  body.route-oglas .mobile-detail-cta{
    visibility:hidden!important;
    opacity:0!important;
    transform:translateY(120%)!important;
    pointer-events:none!important;
  }
  body.route-oglas .mobile-detail-cta.is-visible{
    visibility:visible!important;
    opacity:1!important;
    transform:translateY(0)!important;
    pointer-events:auto!important;
  }
}

/* Phone: two-column details are compact without becoming cramped. */
@media (max-width:640px){
  body.route-oglas .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;}
  body.route-oglas .feature-grid span{min-height:46px!important;padding:8px 9px!important;font-size:9.7px!important;}
  body.route-oglas .detail-block{padding:17px 14px!important;}
  body.route-oglas .detail-block + .detail-block{margin-top:12px!important;}
  body.route-oglas .detail-keyfacts,
  body.route-oglas .detail-secondary-facts{gap:7px!important;}
  body.route-oglas .detail-secondary-facts>div{padding:11px 10px!important;}
  body.route-oglas .detail-primary-info{gap:14px!important;}

  .project-carousel-viewport,.market-grid,.related-slider-viewport{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;}
  .project-carousel-viewport:focus-visible,.related-slider-viewport:focus-visible{outline:3px solid rgba(217,173,67,.7);outline-offset:2px;}

  /* Swipe cards use one predictable rhythm on narrow phones. */
  .project-slide .project-card{height:294px!important;min-height:294px!important;}
  .project-content h3,.project-card:not(.large) .project-content h3{font-size:23px!important;}
  .market-grid .market-card{min-height:150px!important;}
}

@media (min-width:641px) and (max-width:1100px){
  body.route-oglas .feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}

/* Small-screen safety: long words, e-mails and codes must never expand the viewport. */
@media (max-width:480px){
  body.route-oglas .detail-top-meta{flex-wrap:wrap!important;}
  .footer-contact a,.footer-grid a,.footer-bottom a,.agent-mini-grid b{overflow-wrap:anywhere;word-break:break-word;}
  .project-carousel-controls{gap:9px!important;}
}

/* Respect reduced motion while retaining usability. */
@media (prefers-reduced-motion:reduce){
  .project-carousel-track,.related-slider-track,.mobile-detail-cta{transition:none!important;}
}

/* V79 — mobile footer density: keep all links, remove unnecessary vertical stacking. */
@media(max-width:640px){
  .footer-grid{
    grid-template-columns:1fr 1fr!important;
    gap:22px 24px!important;
  }
  .footer-grid .footer-brand{grid-column:1/-1!important;}
  .footer-grid>div:last-child{grid-column:1/-1!important;}
}


/* V80 — FINAL FIX: reliable native mobile scrolling, preserve vertical page scroll,
   and prevent touch devices from leaving project images in a hovered/zoomed state. */
@media (max-width:640px){
  .market-carousel-viewport,
  .project-carousel-viewport,
  .related-slider-viewport{
    display:block!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    scroll-snap-type:x mandatory!important;
    overscroll-behavior-x:contain!important;
    overscroll-behavior-y:auto!important;
    touch-action:pan-x pan-y!important;
    scrollbar-width:none!important;
  }
  .market-carousel-viewport::-webkit-scrollbar,
  .project-carousel-viewport::-webkit-scrollbar,
  .related-slider-viewport::-webkit-scrollbar{display:none!important;}
  .market-grid,
  .project-carousel-track,
  .related-slider-track{touch-action:pan-x pan-y!important;}
  .related-slider-track{
    width:max-content!important;
    min-width:100%!important;
    transform:none!important;
    transition:none!important;
    gap:12px!important;
  }
  .related-slide{
    flex:0 0 calc(100vw - 44px)!important;
    width:calc(100vw - 44px)!important;
    min-width:calc(100vw - 44px)!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
  }
}

@media (hover:none), (pointer:coarse){
  .project-card:hover .project-bg,
  .project-tile:hover .project-bg{
    transform:none!important;
    filter:none!important;
  }
  .project-card .project-bg>img,
  .project-tile .project-bg>img{
    transform:none!important;
    scale:1!important;
    object-fit:cover!important;
    object-position:center!important;
  }
}


/* V86: selected area always remains visible after pointer release. */
.xpert-search-map .leaflet-xpert-selected-area-pane{z-index:650!important;pointer-events:none!important;}
.xpert-search-map .leaflet-xpert-selected-area-pane path{pointer-events:none!important;}
.xpert-selected-area-shape{vector-effect:non-scaling-stroke;pointer-events:none!important;}

/* V90: desktop market grid is 3x3; project carousel keeps compact square cards on phones. */
/* Desktop/tablet: preserve the established landscape project-card proportion. */
.projects-section .project-slide .project-card{
  display:block!important;
  width:100%!important;
  height:350px!important;
  min-height:350px!important;
  max-height:350px!important;
  aspect-ratio:auto!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.projects-section .project-card .project-bg{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  overflow:hidden!important;
}
.projects-section .project-card .project-bg>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
}

/* Phones: smaller square tiles, with a preview of the next project instead of
   an almost full-width, oversized image. */
@media (max-width:640px){
  .projects-section .project-carousel-viewport{
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }
  .projects-section .project-carousel-track{
    width:max-content!important;
    min-width:100%!important;
    gap:12px!important;
    padding-right:12px!important;
  }
  .projects-section .project-slide{
    flex:0 0 min(228px,calc(100vw - 76px))!important;
    width:min(228px,calc(100vw - 76px))!important;
    min-width:min(228px,calc(100vw - 76px))!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
  }
  .projects-section .project-slide .project-card{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:1 / 1!important;
    border-radius:17px!important;
  }
  .projects-section .project-content{
    left:14px!important;
    right:42px!important;
    bottom:14px!important;
  }
  .projects-section .project-content small{font-size:7px!important;}
  .projects-section .project-content h3,
  .projects-section .project-card:not(.large) .project-content h3{
    font-size:20px!important;
    line-height:1.04!important;
  }
  .projects-section .project-content span{font-size:8px!important;}
  .projects-section .project-arrow{
    width:32px!important;
    height:32px!important;
    right:9px!important;
    bottom:9px!important;
  }
}
