/* ═══════════════════════════════════════════════════════════════
   DESKTOP container widening + rep-bar fixed + rep chips centering
   ═══════════════════════════════════════════════════════════════ */
@media (min-width:900px){
  body{padding-bottom:60px}
  body.r-home .app,
  body.r-rep .app,
  body.r-broker .app,
  body.r-contact .app,
  body.r-schedule .app,
  body.r-about .app{ max-width:680px; padding-top:36px }
  body.r-list .app,
  body.r-brokers .app{ max-width:1180px; padding:36px 28px }
  body.r-list .props-grid,
  body.r-brokers .brokers-grid{ grid-template-columns:repeat(3,1fr); gap:16px }
  .block{ padding:24px }
  /* No desktop a nav fica no topo — remove tabbar flutuante */
  .tabbar{ display:none !important }
}

/* ═══════════════════════════════════════════════════════════════
   DESKTOP APP BAR — nav completa, logo+brand, CTA WhatsApp
   ═══════════════════════════════════════════════════════════════ */
.ab-desktop{ display:none }
.ab-mobile{ display:flex; align-items:center; gap:10px; width:100% }

/* Mobile: appbar absorvendo rep-bar quando há broker context */
.appbar.has-rep .appbar-inner{ padding:10px 12px }
.ab-rep{
  display:flex; align-items:center; gap:10px; flex:1; min-width:0;
  text-decoration:none; color:inherit;
  padding:4px 6px; border-radius:12px;
}
.ab-rep-pic{
  width:42px; height:42px; border-radius:50%; object-fit:cover;
  border:1px solid rgba(228,193,142,.4);
  box-shadow:0 0 0 2px rgba(228,193,142,.14), 0 6px 16px -6px rgba(0,0,0,.5);
  flex-shrink:0;
}
.ab-rep-pic-ph{ display:grid; place-items:center; background:rgba(255,255,255,.04); color:var(--mute) }
.ab-rep-tx{ display:flex; flex-direction:column; line-height:1.2; min-width:0 }
.ab-rep-tx b{
  font-family:var(--f-disp); font-size:14.5px; font-weight:700; color:var(--ink);
  letter-spacing:-.01em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ab-rep-tx small{
  font-family:var(--f-mono); font-size:9.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--mute);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ab-rep-wa{
  display:inline-flex; align-items:center; gap:6px; flex-shrink:0;
  padding:9px 14px; border-radius:999px;
  background:linear-gradient(135deg,#25d366,#128c7e);
  color:#fff !important; text-decoration:none;
  font-size:12.5px; font-weight:700;
  box-shadow:0 8px 20px -6px rgba(37,211,102,.55);
}
.ab-rep-wa svg{ width:15px; height:15px }
@media (min-width:900px){
  .ab-mobile{ display:none }
  .appbar{
    background:linear-gradient(180deg, rgba(18,12,16,.92) 0%, rgba(14,10,12,.78) 100%);
    border-bottom:1px solid rgba(228,193,142,.14);
    box-shadow:0 20px 50px -30px rgba(0,0,0,.8);
  }
  .appbar-inner{
    max-width:1280px !important; padding:14px 28px !important;
    display:flex !important; align-items:center; gap:18px;
  }
  .ab-desktop{
    display:flex; align-items:center; gap:28px; width:100%;
  }
  .ab-brand-d{
    display:flex; align-items:center; gap:12px;
    text-decoration:none; color:inherit;
    padding:4px 10px 4px 4px; border-radius:14px;
    transition:background .2s;
  }
  .ab-brand-d:hover{ background:rgba(228,193,142,.06) }
  .ab-brand-pic{
    width:44px; height:44px; border-radius:50%; object-fit:cover;
    border:1px solid rgba(228,193,142,.35);
    box-shadow:0 0 0 2px rgba(228,193,142,.12), 0 8px 22px -6px rgba(0,0,0,.5);
  }
  .ab-brand-logo{ height:auto; max-height:52px; width:auto; max-width:none; filter:drop-shadow(0 4px 10px rgba(0,0,0,.4)) }
  .ab-brand-txt{ font-family:var(--f-disp); font-size:20px; font-weight:700; color:var(--ink); letter-spacing:-.01em }
  .ab-brand-meta{ display:flex; flex-direction:column; line-height:1.2; min-width:0 }
  .ab-brand-meta b{
    font-family:var(--f-disp); font-size:15px; font-weight:700;
    color:var(--ink); letter-spacing:-.01em;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:220px;
  }
  .ab-brand-meta small{
    font-family:var(--f-mono); font-size:9.5px;
    letter-spacing:.12em; text-transform:uppercase; color:var(--mute);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:240px;
  }

  .ab-nav{
    display:flex; align-items:center; gap:4px;
    margin-left:auto;
    padding:6px; border-radius:999px;
    background:rgba(255,255,255,.03);
    border:1px solid var(--line-2);
    backdrop-filter:blur(10px);
  }
  .ab-link{
    position:relative; padding:9px 16px; border-radius:999px;
    font-family:var(--f-sans); font-size:13.5px; font-weight:600;
    color:var(--ink-2); text-decoration:none; letter-spacing:-.005em;
    transition:color .2s, background .2s;
  }
  .ab-link:hover{ color:var(--ink); background:rgba(255,255,255,.04) }
  .ab-link.is-on{
    color:#1a1014;
    background:var(--gold-grad);
    box-shadow:0 6px 16px -6px rgba(228,193,142,.55);
  }

  .ab-cta-wa{
    display:inline-flex; align-items:center; gap:8px;
    padding:11px 18px; border-radius:999px;
    background:linear-gradient(135deg,#25d366,#128c7e);
    color:#fff !important; text-decoration:none;
    font-size:13px; font-weight:700; letter-spacing:-.005em;
    box-shadow:0 10px 26px -8px rgba(37,211,102,.55), 0 0 0 1px rgba(255,255,255,.08) inset;
    transition:transform .2s, box-shadow .2s;
    flex-shrink:0;
  }
  .ab-cta-wa:hover{ transform:translateY(-1px); box-shadow:0 14px 32px -8px rgba(37,211,102,.65) }
  .ab-cta-wa svg{ filter:drop-shadow(0 1px 2px rgba(0,0,0,.3)) }
}
@media (min-width:900px) and (max-width:1079px){
  .ab-brand-meta{ display:none }
  .ab-cta-wa span{ display:none }
  .ab-cta-wa{ padding:11px; width:42px; height:42px; justify-content:center }
}
@media (min-width:1280px){
  body.r-list .props-grid,
  body.r-brokers .brokers-grid{ grid-template-columns:repeat(4,1fr) }
}

/* rep-bar: aparece ao rolar, some no topo */
.rep-bar{
  position:fixed !important; top:12px; left:50%; transform:translate(-50%,-20px);
  width:calc(100% - 24px); max-width:520px;
  opacity:0; pointer-events:none;
  margin:0 !important;
  transition:opacity .32s ease, transform .32s cubic-bezier(.2,.8,.2,1);
  z-index:55;
}
.rep-bar.is-visible{ opacity:1; transform:translate(-50%,0); pointer-events:auto }
@media (min-width:900px){ .rep-bar{ max-width:560px; top:18px } }

/* rep-bar permanente em páginas internas (não-rep): fica logo abaixo do appbar */
.rep-bar.is-static{
  position:sticky !important;
  top:56px; left:auto; transform:none !important;
  max-width:var(--app-w,560px); width:auto;
  margin:10px auto 0 !important;
  opacity:1; pointer-events:auto;
  border-radius:14px;
}
@media (min-width:900px){
  /* No desktop a identidade do corretor já está na appbar — esconde a barra flutuante */
  .rep-bar{ display:none !important }
}

/* res-head: sort-sel na linha de baixo + remove seta duplicada */
.res-head{ flex-wrap:wrap; align-items:center }
.res-head .res-count{ flex:1; order:1 }
.res-head .fab-filter{ order:2 }
.res-head #sortForm{ order:3; flex-basis:100%; margin-top:8px }
.res-head #sortForm .combo.sort-sel{ width:100% }
.res-head .combo.sort-sel::after{ display:none } /* evita seta duplicada */
.res-head .sort-sel select{
  width:100%; padding:10px 38px 10px 14px;
  background:rgba(0,0,0,.35) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none' stroke='%23e4c18e' stroke-width='1.5'><path d='M1 1l4 4 4-4'/></svg>") no-repeat right 14px center;
}

/* REP chips block centralizado */
.block-chips{ margin-top:20px; text-align:center; padding:22px 18px }
.block-chips .chip-row{ margin-bottom:16px }
.block-chips .chip-row:last-child{ margin-bottom:0 }
.block-chips .eyebrow{ display:block; margin:0 0 10px; text-align:center }
.block-chips .chip-wrap{ display:flex; flex-wrap:wrap; gap:6px; justify-content:center }

/* ═══════════════════════════════════════════════════════════════
   DETAIL LUX — página mestre de venda
   ═══════════════════════════════════════════════════════════════ */
body.r-detail .app.app-wide{
  max-width:1280px; padding:18px 14px 80px;
}
@media (min-width:900px){
  body.r-detail .app.app-wide{ padding:28px 28px 60px }
}

.lux-gallery{
  position:relative; margin:8px 0 20px;
  border-radius:24px; overflow:hidden;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9), 0 0 0 1px rgba(228,193,142,.08) inset;
}
.lux-main{
  position:relative;
  aspect-ratio:4/3;
  background:#0a0608;
}
@media (min-width:720px){ .lux-main{ aspect-ratio:16/10 } }
@media (min-width:1100px){ .lux-main{ aspect-ratio:16/9 } }

.lux-main .swiper-slide{ cursor:zoom-in }
.lux-slide{
  position:relative; width:100%; height:100%;
  background-size:cover; background-position:center;
  overflow:hidden;
}
.lux-slide img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transform:translate3d(var(--px,0),var(--py,0),0) scale(1.04);
  transition:transform .6s cubic-bezier(.2,.8,.2,1);
  filter:saturate(1.05) contrast(1.02);
}
.lux-main .swiper-slide-active .lux-slide img{ transform:translate3d(var(--px,0),var(--py,0),0) scale(1) }
.lux-slide-grad{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,6,8,.5) 0%, rgba(10,6,8,0) 26%, rgba(10,6,8,0) 55%, rgba(10,6,8,.85) 100%),
    radial-gradient(120% 80% at 50% 120%, rgba(136,110,71,.3), transparent 60%);
  pointer-events:none;
}

.lux-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:46px; height:46px; border-radius:50%;
  background:rgba(14,10,12,.55); backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.12);
  color:#fff; display:grid; place-items:center;
  cursor:pointer; z-index:5;
  transition:background .2s, transform .2s, border-color .2s;
}
.lux-nav:hover{ background:rgba(228,193,142,.25); border-color:rgba(228,193,142,.6); transform:translateY(-50%) scale(1.08) }
.lux-nav.prev{ left:14px }
.lux-nav.next{ right:14px }
.swiper-button-disabled{ opacity:.35; pointer-events:none }

.lux-hero-over{
  position:absolute; left:0; right:0; bottom:0; z-index:4;
  padding:22px 22px 22px;
  color:#fff;
  pointer-events:none;
}
@media (min-width:720px){ .lux-hero-over{ padding:32px 36px 28px } }
.lux-hero-chips{
  display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px;
  pointer-events:auto;
}
.lux-chip{
  display:inline-flex; align-items:center; gap:5px;
  padding:5px 10px; border-radius:999px;
  background:rgba(14,10,12,.7); backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.1);
  font-family:var(--f-mono); font-size:10.5px; font-weight:600;
  letter-spacing:.06em; color:#fff;
}
.lux-chip.gold{ background:var(--gold-grad); color:#1a1014; border-color:transparent; box-shadow:0 6px 20px -8px rgba(228,193,142,.8) }
.lux-chip.ghost{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18) }
.lux-chip svg{ width:12px; height:12px }

.lux-hero-title{
  font-family:var(--f-disp); font-weight:700;
  font-size:clamp(24px, 4vw, 42px); line-height:1.05;
  letter-spacing:-.02em;
  text-shadow:0 6px 30px rgba(0,0,0,.8);
  margin-bottom:8px;
  max-width:780px;
  pointer-events:auto;
}
.lux-hero-sub{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  font-family:var(--f-mono); font-size:11px;
  letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.8);
  pointer-events:auto;
}
.lux-hero-sub i{ width:3px; height:3px; border-radius:50%; background:rgba(228,193,142,.7); display:inline-block }
.lux-hero-sub .lux-code{ color:var(--sand-hi) }

/* wrapper que agrupa "X fotos" + "Compartilhar" */
.lux-hero-actions{
  position:absolute; top:16px; right:16px; z-index:5;
  display:flex; align-items:center; gap:8px;
}
.lux-fullscreen{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 12px; border-radius:999px;
  background:rgba(14,10,12,.65); backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.14);
  color:#fff; cursor:pointer;
  font-family:var(--f-mono); font-size:10.5px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase;
  transition:background .2s, transform .2s;
}
.lux-fullscreen:hover{ background:rgba(228,193,142,.25); transform:translateY(-2px) }

/* Botão compartilhar amarelo no hero do detalhe */
.lux-share-wa{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 13px; border-radius:999px;
  background:#e7a702; color:#1a1014;
  font-family:var(--f-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
  text-decoration:none;
  box-shadow:0 6px 20px -6px rgba(231,167,2,.65);
  transition:background .2s, transform .2s, box-shadow .2s;
}
.lux-share-wa:hover{
  background:#f5b800;
  transform:translateY(-2px);
  box-shadow:0 10px 28px -6px rgba(231,167,2,.8);
}

.lux-thumbs{ padding:10px 10px 4px; background:rgba(14,10,12,.92) }
.lux-thumbs .swiper-slide{ width:90px; height:64px }
@media (min-width:720px){ .lux-thumbs .swiper-slide{ width:120px; height:80px } }
.lux-thumb{
  width:100%; height:100%;
  background-size:cover; background-position:center;
  border-radius:10px; cursor:pointer;
  opacity:.55; transition:opacity .2s, transform .2s, box-shadow .2s;
  border:1px solid transparent;
}
.lux-thumbs .swiper-slide-thumb-active .lux-thumb,
.lux-thumbs .lux-thumb-active .lux-thumb{
  opacity:1; border-color:var(--sand);
  box-shadow:0 0 0 2px rgba(228,193,142,.35), 0 8px 24px -8px rgba(228,193,142,.45);
  transform:scale(1.04);
}
.lux-thumb:hover{ opacity:.85 }

.lux-layout{ display:grid; gap:20px }

/* Mobile: gallery limpa, textos fluem abaixo */
@media (max-width:720px){
  .lux-gallery .lux-hero-over{ display:none }
  .lux-gallery .lux-nav{ top:auto; bottom:62px }
  .lux-main{ border-radius:20px; overflow:hidden }
  .lux-main .swiper-slide{ aspect-ratio:4/3 }
  body.r-detail .app.app-wide{ padding-bottom:140px }
  /* Título + meta embaixo da galeria */
  .lux-mobile-title{ display:block }
}
.lux-mobile-title{ display:none }
@media (max-width:720px){
  .lux-mobile-title{
    display:block; margin:4px 0 18px; padding:0 2px;
  }
  .lux-mobile-title h1{
    font-family:var(--f-disp); font-weight:700; font-size:clamp(22px,5.6vw,28px);
    letter-spacing:-.02em; line-height:1.12; margin:0 0 8px; color:var(--ink);
  }
  .lux-mobile-title .lux-mt-chips{
    display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px;
  }
  .lux-mobile-title .lux-mt-sub{
    font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em;
    text-transform:uppercase; color:var(--mute); display:flex; flex-wrap:wrap; gap:6px 12px;
  }
  .lux-mobile-title .lux-mt-sub i{ width:3px; height:3px; background:var(--sand); border-radius:50%; align-self:center; font-style:normal }
}
@media (min-width:960px){
  /* align-items:stretch (default) — lux-side fica tão alto quanto lux-main-col,
     permitindo que lux-side-inner faça position:sticky funcionar */
  .lux-layout{ grid-template-columns: minmax(0, 1fr) 380px; gap:32px }
  .lux-main-col{ align-self:start }
}
@media (min-width:1200px){
  .lux-layout{ grid-template-columns: minmax(0, 1fr) 420px }
}

/* ═══════════════════════════════════════════════════════
   PRICE CARD — redesign 2.0
   ═══════════════════════════════════════════════════════ */
.lux-price-card{
  position:relative; overflow:hidden;
  border-radius:22px; margin-bottom:20px;
  background:linear-gradient(145deg,rgba(22,15,18,.95) 0%,rgba(14,10,12,.98) 100%);
  border:1px solid rgba(228,193,142,.22);
  box-shadow:0 32px 64px -24px rgba(0,0,0,.75), 0 0 0 1px rgba(228,193,142,.06) inset;
}

/* glow decorativo */
.lux-pc-glow{
  position:absolute; top:-60px; right:-60px;
  width:240px; height:240px; border-radius:50%;
  background:radial-gradient(circle,rgba(228,193,142,.18),transparent 70%);
  pointer-events:none;
}

/* ── Modo SOLO (só venda OU só aluguel) ── */
.lux-pc-solo{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:16px; padding:26px 28px 22px; flex-wrap:wrap;
}

/* ── Modo DUAL (venda + aluguel) ── */
.lux-pc-dual{
  display:flex; align-items:stretch;
  padding:26px 28px 22px; gap:0;
}
.lux-pc-dual .lux-pc-main{ flex:1 }
.lux-pc-divider{
  width:1px; margin:0 22px;
  background:linear-gradient(180deg,transparent,rgba(228,193,142,.25) 30%,rgba(228,193,142,.25) 70%,transparent);
}

/* ── Labels e valores ── */
.lux-pc-tag{
  display:block; font-family:var(--f-mono);
  font-size:9px; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:rgba(255,255,255,.35);
  margin-bottom:8px;
}
.lux-pc-val{
  display:block; font-family:var(--f-disp); font-weight:800;
  font-size:clamp(26px,3.6vw,38px); letter-spacing:-.03em; line-height:1;
  background:linear-gradient(150deg,#f5e4c0 0%,#e4c18e 45%,#c07c28 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.lux-pc-val--rent{
  background:linear-gradient(135deg,#a8dfc0,#5ec98a);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* badge preço/m² ao lado do valor (modo solo) */
.lux-pc-m2-badge{
  text-align:right; padding-bottom:4px;
}
.lux-pc-m2{
  display:block; font-family:var(--f-mono);
  font-size:13px; font-weight:600; letter-spacing:-.01em;
  color:rgba(228,193,142,.7);
  margin-top:4px;
}

/* ── Faixa de encargos ── */
.lux-pc-encargos{
  display:flex; gap:0;
  border-top:1px solid rgba(228,193,142,.1);
  background:rgba(255,255,255,.025);
}
.lux-pc-enc-item{
  flex:1; display:flex; flex-direction:column; gap:4px;
  padding:14px 20px;
  border-right:1px solid rgba(228,193,142,.08);
}
.lux-pc-enc-item:last-child{ border-right:none }
.lux-pc-enc-item span{
  font-family:var(--f-mono); font-size:9px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.3);
}
.lux-pc-enc-item b{
  font-family:var(--f-disp); font-size:15px; font-weight:700;
  letter-spacing:-.01em; color:rgba(240,236,232,.75);
}
.lux-pc-enc-total{ background:rgba(228,193,142,.04) }
.lux-pc-enc-total b{ color:var(--sand) }

@media(max-width:560px){
  .lux-pc-solo{ padding:20px 18px 18px }
  .lux-pc-dual{ flex-direction:column; padding:20px 18px 18px; gap:16px }
  .lux-pc-divider{ width:auto; height:1px; margin:0;
    background:linear-gradient(90deg,transparent,rgba(228,193,142,.2),transparent) }
  .lux-pc-val{ font-size:clamp(24px,8vw,32px) }
  .lux-pc-enc-item{ padding:12px 14px }
  .lux-pc-m2-badge{ text-align:left }
}

.lux-specs{
  display:grid; grid-template-columns:repeat(2,1fr); gap:8px;
  margin-bottom:24px;
}
@media (min-width:520px){ .lux-specs{ grid-template-columns:repeat(4,1fr) } }
@media (min-width:960px){ .lux-specs{ grid-template-columns:repeat(4,1fr); gap:10px } }
.lux-spec{
  padding:14px 10px 12px;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01));
  border:1px solid var(--line);
  border-radius:14px;
  text-align:center;
  transition:transform .2s, border-color .2s, background .2s;
}
.lux-spec:hover{ transform:translateY(-2px); border-color:rgba(228,193,142,.3); background:linear-gradient(180deg, rgba(228,193,142,.08), rgba(228,193,142,.02)) }
.lux-spec-ic{
  display:inline-grid; place-items:center; width:38px; height:38px;
  border-radius:12px; margin-bottom:8px;
  background:var(--gold-grad-soft); border:1px solid rgba(228,193,142,.2);
  color:var(--sand);
}
.lux-spec b{ display:block; font-family:var(--f-disp); font-size:17px; font-weight:700; color:var(--ink); letter-spacing:-.01em }
.lux-spec small{ display:block; font-family:var(--f-mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--mute); margin-top:3px }

.lux-section{ margin-bottom:32px }
.lux-section-head{ margin-bottom:16px }
.lux-eyebrow{
  display:inline-block;
  font-family:var(--f-mono); font-size:10px; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--sand); margin-bottom:8px;
  position:relative; padding-left:22px;
}
.lux-eyebrow::before{
  content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:14px; height:1px; background:var(--gold-grad);
}
.lux-section-head h2{
  font-family:var(--f-disp); font-weight:700;
  font-size:clamp(22px, 2.6vw, 30px); letter-spacing:-.02em;
  line-height:1.1;
  color:var(--ink);
}

.lux-prose{
  font-size:15px; line-height:1.75; color:var(--ink-2);
  max-width:72ch;
  padding-left:16px; border-left:2px solid rgba(228,193,142,.25);
}
.lux-prose::first-letter{
  font-family:var(--f-disp); font-weight:700; font-size:3.4em; line-height:.9;
  float:left; margin:4px 10px 0 0;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}

.lux-features{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
  gap:8px;
}
.lux-feat{
  display:flex; align-items:center; gap:10px;
  padding:11px 14px; border-radius:12px;
  background:rgba(255,255,255,.025);
  border:1px solid var(--line);
  font-size:13px; color:var(--ink-2);
  transition:background .2s, border-color .2s, transform .2s;
}
.lux-feat:hover{ background:rgba(228,193,142,.08); border-color:rgba(228,193,142,.28); transform:translateX(2px) }
.lux-feat-ic{
  display:grid; place-items:center; width:22px; height:22px; border-radius:7px;
  background:var(--gold-grad); color:#1a1014; flex-shrink:0;
}
.lux-feat-ic svg{ width:12px; height:12px; stroke-width:3 }

.lux-map{
  padding:22px; border-radius:18px;
  background:linear-gradient(180deg, rgba(89,86,55,.12), rgba(14,10,12,.4));
  border:1px solid var(--line-2);
  position:relative; overflow:hidden;
}
.lux-map::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(circle at 20% 30%, rgba(228,193,142,.08), transparent 40%),
    repeating-linear-gradient(45deg, transparent 0 40px, rgba(228,193,142,.04) 40px 41px);
  pointer-events:none;
}
.lux-map-body{ display:flex; align-items:flex-start; gap:14px; margin-bottom:16px; position:relative; z-index:1 }
.lux-map-ic{
  width:44px; height:44px; border-radius:14px; flex-shrink:0;
  background:var(--gold-grad); color:#1a1014;
  display:grid; place-items:center;
  box-shadow:0 10px 24px -10px rgba(228,193,142,.6);
}
.lux-map-tx b{ display:block; font-size:15px; color:var(--ink); margin-bottom:3px; font-weight:600 }
.lux-map-tx span{ font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; color:var(--mute) }
.lux-map-cta{
  display:inline-flex; align-items:center; gap:6px;
  padding:10px 16px; border-radius:999px;
  background:rgba(228,193,142,.12); border:1px solid rgba(228,193,142,.3);
  color:var(--sand); font-size:12px; font-weight:700;
  font-family:var(--f-mono); letter-spacing:.08em; text-transform:uppercase;
  transition:background .2s, transform .2s; position:relative; z-index:1;
}
.lux-map-cta:hover{ background:rgba(228,193,142,.2); transform:translateX(4px) }

.lux-side{ position:relative }
@media (min-width:960px){
  .lux-side-inner{
    position:sticky;
    top:100px;
    display:flex; flex-direction:column; gap:16px;
    max-height:calc(100vh - 96px);
    overflow-y:auto;
    scrollbar-width:none; /* Firefox */
  }
  .lux-side-inner::-webkit-scrollbar{ display:none } /* Chrome/Safari */
}

.lux-broker{
  padding:20px; border-radius:20px;
  background:linear-gradient(135deg, rgba(228,193,142,.1), rgba(14,10,12,.6));
  border:1px solid rgba(228,193,142,.2);
  box-shadow:0 22px 50px -28px rgba(0,0,0,.7);
  position:relative; overflow:hidden;
}
.lux-broker::before{
  content:""; position:absolute; top:-30%; right:-20%;
  width:220px; height:220px; border-radius:50%;
  background:radial-gradient(circle, rgba(228,193,142,.18), transparent 70%);
}
.lux-broker-head{ display:flex; align-items:center; gap:14px; margin-bottom:18px; position:relative; z-index:1 }
.lux-broker-pic{
  position:relative; width:60px; height:60px; border-radius:50%;
  overflow:hidden; flex-shrink:0;
  background:var(--gold-grad); display:grid; place-items:center;
  color:#1a1014; font-family:var(--f-disp); font-weight:700; font-size:22px;
  border:2px solid rgba(228,193,142,.35);
  box-shadow:0 0 0 3px rgba(228,193,142,.12), 0 10px 24px -10px rgba(228,193,142,.5);
}
.lux-broker-pic img{ width:100%; height:100%; object-fit:cover }
.lux-broker-pic span{ display:block }
.lux-broker-dot{
  position:absolute; bottom:2px; right:2px; width:14px; height:14px;
  border-radius:50%; background:#25d366; border:2px solid #1a1014;
  box-shadow:0 0 0 2px rgba(37,211,102,.3);
  animation:luxPulse 2s ease-in-out infinite;
}
@keyframes luxPulse{ 0%,100%{ transform:scale(1) } 50%{ transform:scale(1.15) } }
.lux-broker-tx{ min-width:0 }
.lux-broker-role{
  display:block; font-family:var(--f-mono); font-size:9.5px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--sand);
  margin-bottom:2px;
}
.lux-broker-tx b{ display:block; font-size:16px; font-weight:700; color:var(--ink); line-height:1.2 }
.lux-broker-tx small{ display:block; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em; color:var(--mute-2); margin-top:2px }
.lux-broker-cta{ display:flex; flex-direction:column; gap:8px; position:relative; z-index:1 }

.btn-wa-lux{
  display:flex; align-items:center; gap:12px;
  padding:14px 16px; border-radius:14px;
  background:linear-gradient(135deg, #25d366 0%, #128c7e 100%);
  color:#fff; text-decoration:none;
  box-shadow:0 12px 30px -10px rgba(37,211,102,.5);
  transition:transform .2s, box-shadow .2s;
}
.btn-wa-lux:hover{ transform:translateY(-2px); box-shadow:0 18px 40px -10px rgba(37,211,102,.7) }
.btn-wa-lux svg{ width:22px; height:22px; flex-shrink:0 }
.btn-wa-lux span{ display:flex; flex-direction:column; line-height:1.2 }
.btn-wa-lux b{ font-size:14.5px; font-weight:700 }
.btn-wa-lux i{ font-size:11px; font-style:normal; opacity:.9; font-weight:400 }

.btn-ghost-lux{
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 14px; border-radius:12px;
  background:rgba(255,255,255,.04); border:1px solid var(--line-2);
  color:var(--ink); font-size:13px; font-weight:600;
  text-decoration:none; transition:background .2s, border-color .2s;
}
.btn-ghost-lux:hover{ background:rgba(228,193,142,.1); border-color:rgba(228,193,142,.35); color:var(--sand) }
.btn-ghost-lux svg{ width:14px; height:14px; color:var(--sand) }

.lux-broker-link{
  text-align:center; font-family:var(--f-mono); font-size:11px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--sand);
  padding:4px; margin-top:2px;
}

.lux-schedule{
  padding:22px 20px; border-radius:20px;
  background:linear-gradient(180deg, rgba(26,19,23,.9), rgba(14,10,12,.7));
  border:1px solid var(--line-2);
  box-shadow:0 22px 50px -28px rgba(0,0,0,.8);
}
.lux-sched-head{ margin-bottom:16px; text-align:center }
.lux-sched-head .lux-eyebrow{ padding-left:0 }
.lux-sched-head .lux-eyebrow::before{ display:none }
.lux-sched-head h3{ font-family:var(--f-disp); font-size:20px; font-weight:700; letter-spacing:-.01em; margin:4px 0 6px }
.lux-sched-head p{ font-size:12.5px; color:var(--mute); line-height:1.5 }

.lux-row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px }
.lux-fld{ margin-bottom:12px }
.lux-fld label{
  display:block; font-family:var(--f-mono); font-size:9.5px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--mute);
  margin-bottom:6px;
}
.lux-fld input, .lux-fld select{
  width:100%; padding:12px 14px; border-radius:11px;
  background:rgba(0,0,0,.35); border:1px solid var(--line-2);
  color:var(--ink); font-size:14px; font-family:var(--f-body);
  outline:none; transition:border-color .2s, background .2s;
}
.lux-fld input:focus, .lux-fld select:focus{ border-color:rgba(228,193,142,.5); background:rgba(0,0,0,.5) }

.btn-gold-lux{
  display:flex; align-items:center; justify-content:center; gap:8px;
  width:100%; padding:15px 16px; border-radius:14px;
  background:var(--gold-grad); color:#1a1014;
  font-size:14px; font-weight:700; letter-spacing:.02em;
  border:0; cursor:pointer;
  box-shadow:0 14px 34px -10px rgba(228,193,142,.55);
  transition:transform .2s, box-shadow .2s;
  margin-top:6px;
}
.btn-gold-lux:hover{ transform:translateY(-2px); box-shadow:0 20px 44px -10px rgba(228,193,142,.8) }
.lux-sched-disc{
  display:flex; align-items:center; justify-content:center; gap:6px;
  margin-top:12px; font-family:var(--f-mono); font-size:10px;
  letter-spacing:.08em; color:var(--mute-2);
}
.lux-sched-disc svg{ color:var(--sand) }

.lux-trust{
  display:grid; grid-template-columns:repeat(3,1fr); gap:8px;
  padding:16px; border-radius:16px;
  background:rgba(255,255,255,.025); border:1px solid var(--line);
}
.lux-trust > div{ text-align:center }
.lux-trust b{
  display:block; font-family:var(--f-disp); font-size:20px; font-weight:700;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
  letter-spacing:-.01em;
}
.lux-trust small{ display:block; font-family:var(--f-mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--mute); margin-top:2px }

.lux-mobile-cta{
  position:fixed; bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom));
  left:12px; right:12px; z-index:50;
  display:flex; align-items:center; gap:10px;
  padding:8px 8px 8px 16px; border-radius:999px;
  background:linear-gradient(180deg, rgba(26,19,23,.95), rgba(14,10,12,.98));
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(228,193,142,.25);
  box-shadow:0 22px 44px -18px rgba(0,0,0,.8), 0 0 0 1px rgba(228,193,142,.08) inset;
  animation:luxCtaIn .6s .3s backwards;
}
@keyframes luxCtaIn{ from{ transform:translateY(120%); opacity:0 } to{ transform:translateY(0); opacity:1 } }
.lux-mobile-price{ flex:1; display:flex; flex-direction:column; line-height:1.1 }
.lux-mobile-price small{ font-family:var(--f-mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--mute) }
.lux-mobile-price b{
  font-family:var(--f-disp); font-size:17px; font-weight:700; letter-spacing:-.01em;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.lux-mobile-wa{
  display:flex; align-items:center; gap:6px;
  padding:12px 18px; border-radius:999px;
  background:linear-gradient(135deg, #25d366, #128c7e);
  color:#fff; font-size:13px; font-weight:700; text-decoration:none;
  box-shadow:0 10px 24px -8px rgba(37,211,102,.5);
  flex-shrink:0;
}
@media (min-width:960px){ .lux-mobile-cta{ display:none } }

.lux-lightbox{
  position:fixed; inset:0; z-index:9999;
  background:rgba(4,2,4,.97); backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  display:none; opacity:0; transition:opacity .3s;
}
.lux-lightbox.is-open{ display:flex; flex-direction:column; opacity:1 }

/* close + counter row */
.lux-lb-close{
  position:absolute; top:18px; right:18px; z-index:10;
  width:42px; height:42px; border-radius:50%;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15);
  color:#fff; font-size:18px; cursor:pointer;
  transition:background .2s, transform .2s;
}
.lux-lb-close:hover{ background:rgba(228,193,142,.25); transform:rotate(90deg) }

.lux-lb-counter{
  position:absolute; top:22px; left:50%; transform:translateX(-50%);
  z-index:10; color:rgba(255,255,255,.75);
  font-family:var(--f-mono); font-size:12px; letter-spacing:.12em;
  padding:5px 14px; border-radius:999px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1);
  white-space:nowrap;
}

.lux-lb-hint{
  position:absolute; bottom:18px; left:50%; transform:translateX(-50%);
  z-index:10; color:rgba(255,255,255,.3); font-size:11px; letter-spacing:.05em;
  white-space:nowrap; pointer-events:none;
}

/* swiper fills the lightbox */
.lux-lb-swiper{ flex:1; width:100%; height:100% }
.lux-lb-swiper .swiper-slide{
  display:flex; align-items:center; justify-content:center;
  padding:70px 70px 50px;
}
/* zoom container must fill the slide */
.lux-lb-swiper .swiper-zoom-container{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:100%;
}
.lux-lb-swiper img{
  max-width:100%; max-height:calc(100vh - 130px);
  object-fit:contain; border-radius:4px;
  box-shadow:0 40px 100px -20px rgba(0,0,0,.9);
  cursor:zoom-in; user-select:none;
}
.lux-lb-swiper .swiper-slide-zoomed img{ cursor:zoom-out }

.lux-lb-swiper .swiper-pagination{ display:none } /* counter replaces it */
.lux-lb-swiper .lux-nav{ width:52px; height:52px }
.lux-lb-swiper .lux-nav.prev{ left:12px }
.lux-lb-swiper .lux-nav.next{ right:12px }

@media(max-width:600px){
  .lux-lb-swiper .swiper-slide{ padding:60px 8px 40px }
  .lux-lb-swiper .lux-nav{ width:40px; height:40px; font-size:14px }
  .lux-lb-swiper .lux-nav.prev{ left:4px }
  .lux-lb-swiper .lux-nav.next{ right:4px }
  .lux-lb-hint{ display:none }
}

/* ═══════════════════════════════════════════════════════════════
   WA MODAL — captação de lead antes do WhatsApp
   ═══════════════════════════════════════════════════════════════ */
.wa-modal{
  position:fixed; inset:0; z-index:9998;
  display:none; opacity:0; transition:opacity .3s;
}
.wa-modal.is-open{
  display:flex; align-items:center; justify-content:center;
  padding:16px;
  opacity:1;
}
.wa-modal-bd{
  position:absolute; inset:0;
  background:rgba(6,4,5,.82); backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.wa-modal-card{
  position:relative; z-index:2;
  max-width:440px; width:100%;
  background:linear-gradient(180deg, #1a1216 0%, #12090d 100%);
  border:1px solid rgba(228,193,142,.22);
  border-radius:24px;
  padding:28px 24px 22px;
  box-shadow:0 40px 100px -20px rgba(0,0,0,.9), 0 0 0 1px rgba(228,193,142,.08) inset;
  animation:waIn .4s cubic-bezier(.2,.9,.3,1);
  max-height:calc(100dvh - 32px); overflow-y:auto;
}
@keyframes waIn{ from{ opacity:0; transform:scale(.96) translateY(8px) } to{ opacity:1; transform:scale(1) translateY(0) } }
.wa-modal-x{
  position:absolute; top:14px; right:14px;
  width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);
  color:#fff; font-size:14px; cursor:pointer;
  transition:background .2s, transform .2s;
}
.wa-modal-x:hover{ background:rgba(255,102,102,.18); transform:rotate(90deg) }

.wa-modal-head{ text-align:center; margin-bottom:20px }
.wa-modal-ic{
  display:inline-grid; place-items:center;
  width:56px; height:56px; border-radius:18px;
  background:linear-gradient(135deg,#25d366,#128c7e);
  color:#fff; margin-bottom:12px;
  box-shadow:0 14px 36px -10px rgba(37,211,102,.5);
}
.wa-modal-eyebrow{
  display:block; font-family:var(--f-mono); font-size:10px;
  letter-spacing:.18em; text-transform:uppercase;
  color:#25d366; margin-bottom:6px;
}
.wa-modal-head h3{
  font-family:var(--f-disp); font-size:22px; font-weight:700;
  letter-spacing:-.01em; line-height:1.15; color:var(--ink);
  margin-bottom:8px;
}
.wa-modal-head p{
  font-size:13px; line-height:1.55; color:var(--mute);
  max-width:320px; margin:0 auto;
}

.wa-modal-form{ display:flex; flex-direction:column; gap:12px }
.wa-fld label{
  display:block; font-family:var(--f-mono); font-size:9.5px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--mute);
  margin-bottom:6px;
}
.wa-fld label .opt{ opacity:.6; text-transform:none; letter-spacing:0; font-weight:400 }
.wa-fld input{
  width:100%; padding:13px 14px; border-radius:12px;
  background:rgba(0,0,0,.4); border:1px solid var(--line-2);
  color:var(--ink); font-size:14.5px; font-family:var(--f-body);
  outline:none; transition:border-color .2s, background .2s;
}
.wa-fld input:focus{ border-color:#25d366; background:rgba(37,211,102,.05) }
.wa-fld input::placeholder{ color:var(--mute-2) }

.wa-modal-err{
  min-height:16px; font-size:12.5px; color:#ffb3b3;
  text-align:center; letter-spacing:.02em;
}
.wa-modal-btn{
  display:flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 18px; border-radius:14px;
  background:linear-gradient(135deg,#25d366,#128c7e);
  color:#fff; font-size:15px; font-weight:700;
  border:0; cursor:pointer;
  box-shadow:0 14px 34px -10px rgba(37,211,102,.5);
  transition:transform .2s, box-shadow .2s, opacity .2s;
  margin-top:4px;
}
.wa-modal-btn:hover:not(:disabled){ transform:translateY(-2px); box-shadow:0 20px 44px -10px rgba(37,211,102,.7) }
.wa-modal-btn:disabled{ opacity:.7; cursor:wait }
.wa-modal-btn.is-loading span::after{ content:... }
.wa-modal-disc{
  display:flex; align-items:center; justify-content:center; gap:6px;
  margin-top:8px; font-family:var(--f-mono); font-size:10px;
  letter-spacing:.08em; color:var(--mute-2); text-align:center;
}
.wa-modal-disc svg{ color:#25d366 }

.wa-modal-ok{
  text-align:center; padding:24px 12px;
}
.wa-ok-ic{
  width:56px; height:56px; border-radius:50%;
  background:linear-gradient(135deg,#25d366,#128c7e); color:#fff;
  display:grid; place-items:center; font-size:28px; font-weight:700;
  margin:0 auto 14px;
  box-shadow:0 14px 36px -10px rgba(37,211,102,.5);
  animation:waOkPop .5s cubic-bezier(.2,1.5,.3,1);
}
@keyframes waOkPop{ 0%{ transform:scale(0) } 100%{ transform:scale(1) } }
.wa-modal-ok b{ display:block; font-family:var(--f-disp); font-size:18px; color:var(--ink); margin-bottom:6px }
.wa-modal-ok p{ font-size:13px; color:var(--mute); line-height:1.5; max-width:280px; margin:0 auto }

/* ═══════════════════════════════════════════════════════════════
   SCHEDULE — Multi-step + prop picker popup
   ═══════════════════════════════════════════════════════════════ */
.sched-step{ margin:22px 0 }
.sched-step-head{
  display:flex; align-items:center; gap:10px; margin-bottom:12px;
}
.sched-step-head span{
  width:26px; height:26px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--gold-grad); color:#1a1014;
  font-family:var(--f-mono); font-size:11px; font-weight:700;
  box-shadow:0 4px 12px -3px rgba(228,193,142,.5);
}
.sched-step-head b{
  font-family:var(--f-disp); font-size:17px; font-weight:700; color:var(--ink);
  letter-spacing:-.01em;
}

/* Interest tiles */
.interest-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:10px;
}
@media (max-width:560px){ .interest-grid{ grid-template-columns:1fr; gap:8px } }
.interest-opt{
  position:relative; cursor:pointer;
  padding:18px 14px 14px; border-radius:16px;
  background:rgba(255,255,255,.03); border:1.5px solid var(--line);
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:4px; transition:border-color .2s, background .2s, transform .15s;
}
.interest-opt:hover{ border-color:rgba(228,193,142,.35); background:rgba(228,193,142,.05) }
.interest-opt input{ position:absolute; opacity:0; pointer-events:none }
.interest-opt:has(input:checked){
  border-color:var(--sand);
  background:linear-gradient(160deg, rgba(228,193,142,.12), rgba(136,110,71,.04));
  box-shadow:0 8px 28px -10px rgba(228,193,142,.4), 0 0 0 1px rgba(228,193,142,.4) inset;
}
.interest-opt .io-ic{
  display:grid; place-items:center;
  width:40px; height:40px; border-radius:12px;
  background:rgba(228,193,142,.1); color:var(--sand);
  margin-bottom:6px;
}
.interest-opt:has(input:checked) .io-ic{ background:var(--gold-grad); color:#1a1014 }
.interest-opt b{ font-size:14px; color:var(--ink); font-weight:700 }
.interest-opt small{ font-size:10.5px; color:var(--mute); line-height:1.35 }

/* Prop picker trigger */
.prop-picker-trigger{
  width:100%; display:flex; align-items:center; gap:14px;
  padding:14px; border-radius:16px;
  background:rgba(255,255,255,.03); border:1.5px solid var(--line);
  cursor:pointer; text-align:left; transition:border-color .2s, background .2s;
}
.prop-picker-trigger:hover{ border-color:rgba(228,193,142,.4); background:rgba(228,193,142,.05) }
.prop-picker-trigger img{ width:64px; height:64px; object-fit:cover; border-radius:10px; flex-shrink:0 }
.prop-picker-trigger .ppt-ic{
  width:48px; height:48px; border-radius:12px;
  background:rgba(228,193,142,.1); color:var(--sand);
  display:grid; place-items:center; flex-shrink:0;
}
.prop-picker-trigger .ppt-tx{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px }
.prop-picker-trigger .ppt-tx small{ font-family:var(--f-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--mute) }
.prop-picker-trigger .ppt-tx b{ font-size:14.5px; color:var(--ink); font-weight:700; line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.prop-picker-trigger .ppt-tx i{ font-style:normal; font-size:12px; color:var(--mute-2) }
.prop-picker-trigger .ppt-change{
  font-family:var(--f-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  padding:6px 12px; border-radius:999px; border:1px solid rgba(228,193,142,.3); color:var(--sand);
  flex-shrink:0;
}
.prop-picker-trigger .ppt-arrow{ color:var(--sand); font-size:20px; flex-shrink:0 }

/* Popup */
/* ── PROP-PICKER OVERLAY ── */
.prop-picker{
  position:fixed; inset:0; z-index:9997;
  display:none; opacity:0; transition:opacity .3s;
  align-items:center; justify-content:center;
  padding:16px;
}
.prop-picker.is-open{ display:flex; opacity:1 }
.pp-bd{
  position:fixed; inset:0;
  background:rgba(6,4,5,.88); backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.pp-card{
  position:relative; z-index:2;
  width:100%; max-width:940px;
  max-height:calc(100dvh - 32px);
  background:linear-gradient(180deg, #1e1319 0%, #130a0e 100%);
  border:1px solid rgba(228,193,142,.22);
  border-radius:24px;
  box-shadow:0 48px 120px -20px rgba(0,0,0,.95);
  display:flex; flex-direction:column;
  overflow:hidden;
  animation:ppIn .38s cubic-bezier(.2,.9,.3,1);
}
@keyframes ppIn{ from{ transform:translateY(18px) scale(.98); opacity:0 } to{ transform:none; opacity:1 } }

/* sticky top area */
.pp-top{
  flex-shrink:0;
  padding:20px 22px 0;
  background:linear-gradient(180deg,#1e1319 85%,transparent);
}
.pp-head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  margin-bottom:14px;
}
.pp-head h3{ font-family:var(--f-disp); font-size:22px; font-weight:700; margin:0; color:var(--ink); letter-spacing:-.01em }
.pp-x{
  width:36px; height:36px; border-radius:50%; flex-shrink:0;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);
  color:#fff; font-size:14px; cursor:pointer; display:grid; place-items:center;
  transition:background .2s;
}
.pp-x:hover{ background:rgba(255,80,80,.2); border-color:rgba(255,80,80,.3) }

.pp-search{
  display:flex; align-items:center; gap:10px;
  padding:10px 16px;
  background:rgba(0,0,0,.45); border:1px solid var(--line-2);
  border-radius:12px; margin-bottom:12px;
}
.pp-search input{
  flex:1; border:0; outline:0; background:transparent;
  color:var(--ink); font-size:14px;
}
.pp-search input::placeholder{ color:var(--mute-2) }
.pp-search svg{ color:var(--sand); flex-shrink:0 }

.pp-filter{
  display:flex; gap:6px; overflow-x:auto; -webkit-overflow-scrolling:touch;
  padding-bottom:10px; scrollbar-width:none;
}
.pp-filter::-webkit-scrollbar{ display:none }
.pp-f{
  padding:6px 14px; border-radius:999px;
  background:rgba(255,255,255,.04); border:1px solid var(--line-2);
  color:var(--mute); font-family:var(--f-mono); font-size:10.5px;
  letter-spacing:.12em; text-transform:uppercase; font-weight:600;
  cursor:pointer; white-space:nowrap; transition:.2s; flex-shrink:0;
}
.pp-f:hover{ color:var(--ink); border-color:rgba(228,193,142,.3) }
.pp-f.active{ background:var(--gold-grad); color:#1a1014; border-color:transparent }

.pp-cats{
  display:flex; flex-wrap:wrap; gap:6px;
  margin-bottom:8px;
}
.pp-bedrooms{
  display:flex; align-items:center; flex-wrap:wrap; gap:6px;
  margin-bottom:14px;
}
.pp-cat, .pp-bed{
  padding:5px 13px; border-radius:999px;
  background:rgba(255,255,255,.04); border:1px solid var(--line);
  color:var(--mute); font-size:12px; cursor:pointer;
  transition:.2s; font-family:inherit; font-weight:500; white-space:nowrap;
}
.pp-cat:hover, .pp-bed:hover{ color:var(--ink); border-color:rgba(228,193,142,.35) }
.pp-cat.is-on, .pp-bed.is-on{ background:var(--gold-grad); color:#1a1014; border-color:transparent; font-weight:700 }
.pp-bed-label{ font-size:11px; color:var(--mute); text-transform:uppercase; letter-spacing:.1em; font-weight:600; white-space:nowrap }

/* scrollable grid */
.pp-grid{
  flex:1; min-height:0; overflow-y:auto; overflow-x:hidden;
  padding:4px 22px 22px;
  display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:14px;
  scrollbar-width:thin; scrollbar-color:rgba(228,193,142,.2) transparent;
}
.pp-grid::-webkit-scrollbar{ width:4px }
.pp-grid::-webkit-scrollbar-thumb{ background:rgba(228,193,142,.25); border-radius:4px }
.pp-grid::-webkit-scrollbar-track{ background:transparent }
.pp-empty{ grid-column:1/-1; text-align:center; color:var(--mute); padding:40px 20px; font-size:14px }
.pp-item{
  display:flex; flex-direction:column; text-align:left; cursor:pointer;
  background:rgba(255,255,255,.025); border:1px solid var(--line);
  border-radius:16px; overflow:hidden;
  transition:transform .2s, border-color .2s, box-shadow .2s;
}
.pp-item:hover{
  transform:translateY(-3px);
  border-color:rgba(228,193,142,.4);
  box-shadow:0 20px 40px -18px rgba(0,0,0,.7), 0 0 0 1px rgba(228,193,142,.18) inset;
}
.pp-item-img{
  aspect-ratio:16/10; background-size:cover; background-position:center;
  position:relative;
}
.pp-item-img::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(0,0,0,.75));
}
.pp-tag{
  position:absolute; bottom:10px; left:10px; z-index:1;
  padding:5px 10px; border-radius:999px;
  font-family:var(--f-mono); font-size:10.5px; font-weight:700;
  letter-spacing:.05em;
}
.pp-tag.sale{ background:var(--gold-grad); color:#1a1014 }
.pp-tag.rent{ background:linear-gradient(135deg,#b4e0c7,#6bd98b); color:#0a2416 }
.pp-tag + .pp-tag{ left:auto; right:10px }
.pp-item-body{ padding:12px 14px 14px; display:flex; flex-direction:column; gap:4px }
.pp-item-code{ font-family:var(--f-mono); font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--mute) }
.pp-item-body b{ font-size:14px; font-weight:700; color:var(--ink); line-height:1.3; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical }
.pp-item-body i{ font-style:normal; font-size:11.5px; color:var(--mute-2); display:inline-flex; align-items:center; gap:4px }
.pp-item-specs{
  display:flex; flex-wrap:wrap; gap:10px; margin-top:6px;
  padding-top:8px; border-top:1px solid var(--line);
  font-family:var(--f-mono); font-size:10.5px; color:var(--mute);
}
.pp-item-specs span{ display:inline-flex; align-items:center; gap:3px }

/* Intent popup (detail page) */
.intent-popup{
  position:fixed; inset:0; z-index:9996;
  display:none; opacity:0; transition:opacity .3s;
}
.intent-popup.is-open{ display:block; opacity:1 }
.intent-popup .ip-bd{
  position:absolute; inset:0;
  background:rgba(6,4,5,.85); backdrop-filter:blur(10px);
}
.intent-popup .ip-card{
  position:relative; z-index:2;
  max-width:420px; width:calc(100% - 24px);
  margin:0 auto; top:50%; transform:translateY(-50%);
  background:linear-gradient(180deg, #1a1216 0%, #12090d 100%);
  border:1px solid rgba(228,193,142,.22); border-radius:22px;
  padding:26px 22px 20px; text-align:center;
  box-shadow:0 40px 100px -20px rgba(0,0,0,.9);
  animation:waIn .4s cubic-bezier(.2,.9,.3,1);
}
.intent-popup .ip-x{
  position:absolute; top:12px; right:12px;
  width:30px; height:30px; border-radius:50%;
  background:rgba(255,255,255,.06); border:0; color:#fff; cursor:pointer;
}
.intent-popup h3{
  font-family:var(--f-disp); font-size:22px; font-weight:700; color:var(--ink);
  margin:4px 0 6px; letter-spacing:-.01em;
}
.intent-popup p{ font-size:13.5px; color:var(--mute); margin-bottom:18px; line-height:1.5 }
.ip-choices{ display:grid; gap:10px }
.ip-choice{
  display:flex; align-items:center; gap:14px;
  padding:14px 16px; border-radius:14px;
  background:rgba(255,255,255,.04); border:1px solid var(--line);
  cursor:pointer; text-align:left; text-decoration:none; color:var(--ink);
  transition:.2s;
}
.ip-choice:hover{ border-color:var(--sand); background:rgba(228,193,142,.08); transform:translateY(-2px) }
.ip-choice .ipc-ic{
  width:42px; height:42px; border-radius:12px;
  display:grid; place-items:center; flex-shrink:0;
}
.ip-choice.wa .ipc-ic{ background:linear-gradient(135deg,#25d366,#128c7e); color:#fff }
.ip-choice.visit .ipc-ic{ background:var(--gold-grad); color:#1a1014 }
.ip-choice .ipc-tx{ flex:1 }
.ip-choice .ipc-tx b{ display:block; font-size:14.5px; font-weight:700; margin-bottom:2px }
.ip-choice .ipc-tx small{ display:block; font-size:11.5px; color:var(--mute); line-height:1.3 }
.ip-choice .ipc-arrow{ color:var(--sand); font-size:18px }

/* ======================= WA MODAL 3-STEP FLOW ======================= */
.wa-modal-card-wide{ max-width:720px; width:calc(100% - 28px) }
.wa-step{ display:none }
.wa-step.is-active{ display:block; animation:waStepIn .25s ease }
@keyframes waStepIn{ from{ opacity:0; transform:translateY(6px) } to{ opacity:1; transform:none } }
.wa-modal-head-slim{ display:flex; align-items:center; gap:10px; margin-bottom:14px }
.wa-step-back{ background:rgba(255,255,255,.06); border:1px solid var(--line); color:var(--ink); width:34px; height:34px; border-radius:10px; display:grid; place-items:center; cursor:pointer; transition:.2s; flex-shrink:0 }
.wa-step-back:hover{ background:rgba(255,255,255,.1); border-color:var(--sand) }
.wa-intent-choices{ display:grid; gap:10px }
.wa-intent-opt{ display:flex; align-items:center; gap:14px; padding:16px; border-radius:14px; background:rgba(255,255,255,.04); border:1px solid var(--line); cursor:pointer; transition:.2s; width:100%; text-align:left; font-family:inherit; color:inherit }
.wa-intent-opt:hover{ border-color:var(--sand); background:rgba(228,193,142,.08); transform:translateY(-2px) }
.wi-ic{ width:46px; height:46px; border-radius:12px; display:grid; place-items:center; background:rgba(228,193,142,.1); color:var(--sand); flex-shrink:0 }
.wi-ic-gold{ background:var(--gold-grad); color:#1a1014 }
.wi-tx{ flex:1 }
.wi-tx b{ display:block; font-size:14.5px; color:var(--ink); margin-bottom:3px; font-weight:700 }
.wi-tx small{ display:block; font-size:12px; color:var(--mute); line-height:1.4 }
.wi-arrow{ color:var(--sand); font-size:20px; flex-shrink:0 }

.wa-pp-search{ position:relative; margin-bottom:10px }
.wa-pp-search input{ width:100%; padding:11px 12px 11px 38px; background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:12px; color:var(--ink); font-size:14px; font-family:inherit }
.wa-pp-search input:focus{ outline:none; border-color:var(--sand) }
.wa-pp-search svg{ position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--mute) }
.wa-pp-filter{ display:flex; gap:6px; margin-bottom:12px; flex-wrap:wrap }
.wa-pp-f{ padding:7px 14px; border-radius:20px; background:rgba(255,255,255,.04); border:1px solid var(--line); color:var(--mute); font-size:12.5px; cursor:pointer; transition:.2s; font-family:inherit }
.wa-pp-f:hover{ color:var(--ink) }
.wa-pp-f.is-on{ background:var(--gold-grad); color:#1a1014; border-color:transparent; font-weight:600 }
.wa-pp-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:10px; max-height:48vh; overflow-y:auto; padding:4px 2px }
.wa-pp-item{ position:relative; cursor:pointer; border-radius:14px; overflow:hidden; background:rgba(255,255,255,.03); border:1px solid var(--line); transition:.2s; display:block }
.wa-pp-item:hover{ border-color:rgba(228,193,142,.5); transform:translateY(-2px) }
.wa-pp-item input{ position:absolute; opacity:0; pointer-events:none }
.wa-pp-item.is-sel{ border-color:var(--sand); box-shadow:0 0 0 2px rgba(228,193,142,.3) }
.wa-pp-check{ position:absolute; top:8px; right:8px; width:26px; height:26px; border-radius:50%; background:var(--gold-grad); color:#1a1014; display:none; place-items:center; z-index:2; font-weight:700 }
.wa-pp-item.is-sel .wa-pp-check{ display:grid }
.wa-pp-img{ aspect-ratio:4/3; background:#1a1014 center/cover no-repeat; position:relative }
.wa-pp-tag{ position:absolute; left:8px; top:8px; padding:3px 8px; border-radius:8px; background:rgba(0,0,0,.7); color:#fff; font-size:10.5px; text-transform:uppercase; letter-spacing:.5px; font-weight:600 }
.wa-pp-body{ padding:9px 10px 11px }
.wa-pp-body b{ display:block; font-size:12.5px; color:var(--ink); line-height:1.3; margin-bottom:3px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
.wa-pp-specs{ font-size:11px; color:var(--mute); display:flex; gap:8px; flex-wrap:wrap }
.wa-pp-empty{ grid-column:1/-1; padding:30px; text-align:center; color:var(--mute); font-size:13px }

.wa-step-cta{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; padding-top:12px; border-top:1px solid var(--line); flex-wrap:wrap }
.wa-sel-count{ font-size:13px; color:var(--mute) }
.wa-sel-count b{ color:var(--sand) }
.wa-step-next{ background:var(--gold-grad); color:#1a1014; border:none; padding:10px 18px; border-radius:10px; font-weight:700; cursor:pointer; font-size:13.5px; font-family:inherit; transition:.2s }
.wa-step-next:hover{ transform:translateY(-1px); box-shadow:0 6px 18px rgba(228,193,142,.35) }
.wa-step-next:disabled{ opacity:.4; cursor:not-allowed; transform:none; box-shadow:none }

@media(max-width:640px){
  .wa-pp-grid{ grid-template-columns:repeat(2,1fr); max-height:52vh }
  .wa-intent-opt{ padding:14px }
}

/* ======================= PROPERTY FINDER ASSISTANT ======================= */
.finder-card{ background:linear-gradient(135deg,rgba(228,193,142,.08),rgba(255,255,255,.02)); border:1px solid rgba(228,193,142,.22); border-radius:18px; padding:0; margin:16px 0 18px; overflow:hidden; position:relative }
.finder-card::before{ content:""; position:absolute; inset:-1px; border-radius:18px; background:linear-gradient(135deg,rgba(228,193,142,.25),transparent 60%); opacity:.5; pointer-events:none }
.finder-head{ display:flex; align-items:center; gap:14px; padding:18px 18px; position:relative; z-index:1 }
.finder-ic{ width:48px; height:48px; border-radius:14px; background:var(--gold-grad); color:#1a1014; display:grid; place-items:center; flex-shrink:0; box-shadow:0 6px 18px rgba(228,193,142,.3) }
.finder-title{ flex:1; min-width:0 }
.finder-title b{ display:block; font-size:15px; color:var(--ink); margin-bottom:2px; font-weight:700; letter-spacing:-.01em }
.finder-title small{ display:block; font-size:12px; color:var(--mute); line-height:1.4 }
.finder-start{ background:var(--gold-grad); color:#1a1014; border:none; padding:10px 16px; border-radius:10px; font-weight:700; cursor:pointer; font-size:13px; font-family:inherit; display:inline-flex; align-items:center; gap:6px; transition:.2s; flex-shrink:0 }
.finder-start:hover{ transform:translateY(-1px); box-shadow:0 8px 22px rgba(228,193,142,.38) }

.finder-wizard{ padding:18px; border-top:1px solid rgba(228,193,142,.15); position:relative; z-index:1 }
.finder-progress{ height:3px; background:rgba(255,255,255,.06); border-radius:99px; overflow:hidden; margin-bottom:18px }
.finder-progress-bar{ height:100%; background:var(--gold-grad); border-radius:99px; transition:width .35s ease }
.finder-step{ display:none }
.finder-step.is-active{ display:block; animation:fstepIn .3s ease }
@keyframes fstepIn{ from{ opacity:0; transform:translateY(8px) } to{ opacity:1; transform:none } }
.finder-q{ font-size:17px; color:var(--ink); margin-bottom:14px; font-weight:600; letter-spacing:-.01em }
.finder-q b{ color:var(--sand); font-weight:700 }
.finder-sub{ font-size:12px; color:var(--mute); margin:12px 0 8px; text-transform:uppercase; letter-spacing:.5px }
.finder-opt-skip{ text-transform:none; letter-spacing:0; opacity:.7 }

.finder-opts{ display:grid; gap:10px }
.finder-opts-big{ grid-template-columns:repeat(3,1fr) }
.finder-opts-grid{ grid-template-columns:repeat(auto-fill,minmax(120px,1fr)) }
.finder-opts-row{ grid-template-columns:repeat(5,1fr) }
.finder-opt{ background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:14px; padding:14px 10px; cursor:pointer; transition:.2s; text-align:center; color:inherit; font-family:inherit; display:flex; flex-direction:column; align-items:center; gap:6px }
.finder-opt:hover{ border-color:var(--sand); background:rgba(228,193,142,.08); transform:translateY(-2px) }
.finder-opt.is-sel{ border-color:var(--sand); background:rgba(228,193,142,.14); box-shadow:0 0 0 2px rgba(228,193,142,.25) }
.finder-opt b{ display:block; font-size:13.5px; color:var(--ink); font-weight:700 }
.finder-opt small{ display:block; font-size:11px; color:var(--mute); margin-top:2px }
.fop-ic{ width:42px; height:42px; border-radius:12px; background:rgba(228,193,142,.1); color:var(--sand); display:grid; place-items:center }
.finder-opt-sm{ padding:10px 8px; gap:4px }
.finder-opt-sm .fop-ic{ width:34px; height:34px; border-radius:10px }
.finder-opt-sm b{ font-size:12.5px }
.finder-opt-xs{ padding:12px 6px; gap:0 }
.finder-opt-xs b{ font-size:14px }

.finder-chips{ display:flex; flex-wrap:wrap; gap:6px }
.finder-chips-sm .finder-chip{ font-size:11.5px; padding:6px 10px }
.finder-chip{ background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:20px; padding:7px 13px; font-size:12.5px; color:var(--mute); cursor:pointer; transition:.2s; font-family:inherit }
.finder-chip:hover{ color:var(--ink); border-color:rgba(228,193,142,.4) }
.finder-chip.is-sel{ background:var(--gold-grad); color:#1a1014; border-color:transparent; font-weight:600 }
.finder-chip.is-any{ font-style:italic; opacity:.75 }

.finder-range{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px }
.finder-range label{ display:block }
.finder-range span{ display:block; font-size:11.5px; color:var(--mute); margin-bottom:5px; text-transform:uppercase; letter-spacing:.5px }
.finder-range input{ width:100%; padding:11px 12px; background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:11px; color:var(--ink); font-size:14px; font-family:inherit }
.finder-range input:focus{ outline:none; border-color:var(--sand) }
.finder-quick{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px }

.finder-step-cta{ display:flex; justify-content:flex-end; margin-top:14px }
.finder-next{ background:var(--gold-grad); color:#1a1014; border:none; padding:10px 18px; border-radius:10px; font-weight:700; cursor:pointer; font-size:13.5px; font-family:inherit; display:inline-flex; align-items:center; gap:6px; transition:.2s }
.finder-next:hover{ transform:translateY(-1px); box-shadow:0 6px 18px rgba(228,193,142,.35) }
.finder-next-final{ padding:12px 22px; font-size:14px }

.finder-wiz-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:16px; padding-top:12px; border-top:1px solid var(--line); font-size:12px; color:var(--mute) }
.finder-back, .finder-skip{ background:none; border:none; color:var(--mute); cursor:pointer; font-size:12px; padding:4px 8px; font-family:inherit; display:inline-flex; align-items:center; gap:4px }
.finder-back:hover, .finder-skip:hover{ color:var(--sand) }

@media(max-width:640px){
  .finder-head{ flex-wrap:wrap; gap:10px; padding:14px }
  .finder-start{ width:100%; justify-content:center; order:3 }
  .finder-wizard{ padding:14px }
  .finder-opts-big{ grid-template-columns:1fr }
  .finder-opts-row{ grid-template-columns:repeat(3,1fr) }
  .finder-q{ font-size:15.5px }
}
/* ====================================================================
   WA MODAL PREMIUM REDESIGN
   ==================================================================== */
.wa-modal-card-wide{ max-width:960px !important; width:100%; padding:0 !important; overflow:hidden; max-height:min(92vh,780px); display:flex; flex-direction:column }
.wa-modal-card-wide .wa-modal-x{ top:18px; right:18px; z-index:5; width:38px; height:38px; backdrop-filter:blur(8px); background:rgba(10,6,8,.6); border:1px solid rgba(255,255,255,.08) }
.wa-modal-card-wide .wa-step{ padding:32px 30px 24px; overflow:hidden }
.wa-modal-card-wide .wa-step.is-active{ display:flex; flex-direction:column; flex:1; min-height:0 }

.wa-modal-hero{ text-align:center; padding:18px 10px 8px; max-width:460px; margin:0 auto }
.wa-modal-hero .wa-modal-ic{ display:inline-grid; place-items:center; width:64px; height:64px; border-radius:20px; background:linear-gradient(135deg,#25d366,#128c7e); color:#fff; margin-bottom:16px; box-shadow:0 20px 50px -12px rgba(37,211,102,.55), 0 0 0 6px rgba(37,211,102,.08) }
.wa-modal-hero .wa-modal-eyebrow{ display:block; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:#25d366; margin-bottom:8px; font-weight:600 }
.wa-modal-hero h3{ font-size:26px; font-weight:700; letter-spacing:-.015em; line-height:1.15; color:var(--ink); margin:0 0 10px }
.wa-modal-hero p{ font-size:13.5px; line-height:1.55; color:var(--mute); max-width:380px; margin:0 auto }

.wa-step-topbar{ display:flex; align-items:center; gap:14px; padding-bottom:18px; border-bottom:1px solid rgba(228,193,142,.1); margin-bottom:18px; flex-shrink:0 }
.wa-back-btn{ width:42px; height:42px; border-radius:14px; background:rgba(255,255,255,.04); border:1px solid var(--line); color:var(--ink); cursor:pointer; display:grid; place-items:center; transition:.2s; flex-shrink:0 }
.wa-back-btn:hover{ background:rgba(228,193,142,.12); border-color:var(--sand); transform:translateX(-2px) }
.wa-step-topbar-tx{ flex:1; min-width:0 }
.wa-step-topbar-tx .wa-modal-eyebrow{ display:block; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--sand); margin-bottom:4px; font-weight:600 }
.wa-step-topbar-tx h3{ font-size:22px; font-weight:700; letter-spacing:-.015em; line-height:1.2; color:var(--ink); margin:0 }
.wa-step-topbar-tx h3 .serif-i{ font-style:italic; color:var(--sand); font-weight:500 }
.wa-step-sub{ font-size:13px; line-height:1.55; color:var(--mute); margin:-4px 0 16px; padding:0 2px }

.wa-intent-choices{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:22px; padding:0 6px 6px }
.wa-intent-opt{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; padding:22px 20px; border-radius:18px; background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01)); border:1px solid var(--line); cursor:pointer; transition:.25s cubic-bezier(.2,.8,.3,1); width:100%; text-align:left; font-family:inherit; color:inherit; position:relative; overflow:hidden }
.wa-intent-opt::before{ content:""; position:absolute; inset:0; background:radial-gradient(300px 140px at 50% -20%,rgba(228,193,142,.15),transparent); opacity:0; transition:.3s }
.wa-intent-opt:hover{ border-color:var(--sand); transform:translateY(-3px); box-shadow:0 22px 44px -18px rgba(228,193,142,.3) }
.wa-intent-opt:hover::before{ opacity:1 }
.wa-intent-opt .wi-ic{ width:48px; height:48px; border-radius:14px; display:grid; place-items:center; background:rgba(228,193,142,.1); color:var(--sand) }
.wa-intent-opt .wi-ic-gold{ background:var(--gold-grad); color:#1a1014 }
.wa-intent-opt .wi-tx{ flex:1 }
.wa-intent-opt .wi-tx b{ display:block; font-size:15.5px; color:var(--ink); margin-bottom:5px; font-weight:700 }
.wa-intent-opt .wi-tx small{ display:block; font-size:12.5px; color:var(--mute); line-height:1.5 }
.wa-intent-opt .wi-arrow{ position:absolute; top:22px; right:22px; color:var(--sand); font-size:22px; transition:.2s }
.wa-intent-opt:hover .wi-arrow{ transform:translateX(4px) }

.wa-pp-tools{ display:flex; align-items:center; gap:10px; margin-bottom:14px; flex-shrink:0; flex-wrap:wrap }
.wa-pp-search{ position:relative; flex:1; min-width:200px; margin-bottom:0 !important }
.wa-pp-search input{ width:100%; padding:12px 14px 12px 42px; background:rgba(0,0,0,.35); border:1px solid var(--line); border-radius:14px; color:var(--ink); font-size:13.5px; font-family:inherit; transition:.2s }
.wa-pp-search input:focus{ outline:none; border-color:var(--sand); background:rgba(228,193,142,.05) }
.wa-pp-search svg{ position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--mute); pointer-events:none }
.wa-pp-filter{ display:inline-flex; gap:4px; padding:4px; background:rgba(0,0,0,.3); border:1px solid var(--line); border-radius:14px; margin-bottom:0 !important }
.wa-pp-f{ padding:8px 16px; border-radius:10px; background:transparent; border:0; color:var(--mute); font-size:12.5px; font-weight:600; cursor:pointer; transition:.2s; font-family:inherit }
.wa-pp-f:hover{ color:var(--ink) }
.wa-pp-f.active{ background:var(--gold-grad); color:#1a1014 }

.wa-pp-scroll{ flex:1; overflow-y:auto; overflow-x:hidden; padding:4px 8px 8px 4px; margin:0 -4px; min-height:200px; scrollbar-gutter:stable }
.wa-pp-scroll::-webkit-scrollbar{ width:8px }
.wa-pp-scroll::-webkit-scrollbar-track{ background:transparent }
.wa-pp-scroll::-webkit-scrollbar-thumb{ background:linear-gradient(180deg,rgba(228,193,142,.35),rgba(228,193,142,.15)); border-radius:99px }
.wa-pp-scroll::-webkit-scrollbar-thumb:hover{ background:rgba(228,193,142,.55) }

.wa-modal-card-wide .wa-pp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-height:none !important; padding:0 !important }
.wa-pp-item{ position:relative; cursor:pointer; border-radius:16px; overflow:hidden; background:rgba(255,255,255,.02); border:1.5px solid var(--line); transition:.25s cubic-bezier(.2,.8,.3,1); display:block }
.wa-pp-item:hover{ border-color:rgba(228,193,142,.5); transform:translateY(-3px); box-shadow:0 16px 34px -16px rgba(0,0,0,.7) }
.wa-pp-item input{ position:absolute; opacity:0; pointer-events:none }
.wa-pp-item.is-sel{ border-color:var(--sand); box-shadow:0 0 0 2px rgba(228,193,142,.35), 0 16px 34px -16px rgba(228,193,142,.4) }
.wa-pp-img{ position:relative; aspect-ratio:16/11; background:#1a1014 center/cover no-repeat }
.wa-pp-grad{ position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.6) 100%); pointer-events:none }
.wa-pp-tag{ position:absolute; left:10px; top:10px; padding:5px 10px; border-radius:10px; background:rgba(0,0,0,.75); backdrop-filter:blur(8px); color:#fff; font-size:11px; font-weight:700; letter-spacing:.03em; z-index:2 }
.wa-pp-tag.rent{ background:rgba(228,193,142,.92); color:#1a1014 }
.wa-pp-check{ position:absolute; top:10px; right:10px; width:28px; height:28px; border-radius:50%; background:rgba(255,255,255,.15); backdrop-filter:blur(10px); border:1.5px solid rgba(255,255,255,.5); color:transparent; display:grid !important; place-items:center; z-index:2; transition:.2s }
.wa-pp-item.is-sel .wa-pp-check{ background:var(--gold-grad); border-color:var(--sand); color:#1a1014; box-shadow:0 4px 14px rgba(228,193,142,.55) }
.wa-pp-body{ padding:12px 13px 14px; display:flex; flex-direction:column; gap:3px }
.wa-pp-body small{ font-size:10px; color:var(--sand); letter-spacing:.1em; text-transform:uppercase; font-weight:600 }
.wa-pp-body b{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:13.5px; color:var(--ink); line-height:1.3; font-weight:600; min-height:2.6em }
.wa-pp-body i{ font-style:italic; font-size:11.5px; color:var(--mute); display:flex; align-items:center; gap:4px; line-height:1.3 }
.wa-pp-specs{ display:flex; gap:10px; font-size:11px; color:var(--mute); margin-top:5px; padding-top:8px; border-top:1px solid rgba(255,255,255,.05) }
.wa-pp-specs span{ display:inline-flex; align-items:center; gap:3px }
.wa-pp-empty{ grid-column:1/-1; padding:50px 20px; text-align:center; color:var(--mute); font-size:13.5px }

.wa-step-cta{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 0 4px; margin-top:14px; border-top:1px solid rgba(228,193,142,.12); flex-shrink:0 }
.wa-sel-count{ font-size:13px; color:var(--mute) }
.wa-sel-count b{ color:var(--sand); font-size:15px; font-weight:700; margin-right:4px }
.wa-modal-btn-gold{ background:var(--gold-grad) !important; color:#1a1014 !important; box-shadow:0 14px 30px -12px rgba(228,193,142,.55) !important; padding:13px 22px !important; font-size:14px !important; margin-top:0 !important }
.wa-modal-btn-gold:hover:not(:disabled){ box-shadow:0 20px 40px -12px rgba(228,193,142,.7) !important }
.wa-modal-btn:disabled{ opacity:.35; cursor:not-allowed; transform:none !important; box-shadow:none !important }
.wa-step-next{ display:inline-flex; align-items:center; gap:8px }

.wa-step-form .wa-modal-form{ padding:4px 2px 6px }
.wa-step-form .wa-modal-btn{ margin-top:14px }

@media(max-width:760px){
  .wa-modal{ padding:12px }
  .wa-modal-card-wide{ max-height:calc(100dvh - 24px); border-radius:22px; top:auto !important; bottom:auto !important; transform:none !important; margin:0; width:100% }
  .wa-modal-card-wide .wa-step{ padding:22px 18px 16px }
  .wa-intent-choices{ grid-template-columns:1fr; gap:10px; margin-top:18px }
  .wa-intent-opt{ padding:18px 16px }
  .wa-intent-opt .wi-arrow{ top:18px; right:18px }
  .wa-modal-card-wide .wa-pp-grid{ grid-template-columns:repeat(2,1fr); gap:10px }
  .wa-step-topbar-tx h3{ font-size:18px }
  .wa-modal-hero h3{ font-size:22px }
  .wa-pp-tools{ gap:8px }
  .wa-pp-filter{ width:100% }
  .wa-pp-f{ flex:1; text-align:center }
}

/* ══════════════════════════════════════════════════════════════════
   PERFORMANCE — detail-lux touch devices
   ══════════════════════════════════════════════════════════════════ */
@media (hover:none) and (pointer:coarse){

  /* backdrop-filter em cada elemento = layers demais no Android */
  .appbar,.lux-mobile-cta,.lux-hero-over,.lux-breadcrumb{
    backdrop-filter:none;-webkit-backdrop-filter:none;
  }
  .appbar{ background:rgba(10,6,8,.96) }
  .lux-mobile-cta{ background:rgba(6,4,5,.97) }
  .lux-hero-over{ background:linear-gradient(180deg,rgba(6,4,5,.55) 0%,rgba(6,4,5,.92) 100%) }

  /* Modal backdrop */
  .wa-modal-bd,.pp-overlay{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:rgba(6,4,5,.88);
  }
  .wa-modal-card,.wa-modal-card-wide{
    backdrop-filter:none;-webkit-backdrop-filter:none;
  }

  /* Tags e badges pequenos */
  .lux-badge,.lux-code,.wa-pp-tag,.wa-pp-check{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:rgba(0,0,0,.82);
  }

  /* Animação infinita de scale — cara em mobile */
  .lux-live-dot{ animation:none }

  /* GPU hint pro painel principal */
  .lux-main{ transform:translateZ(0) }
}

/* Global premium scrollbar */
html{ scrollbar-color:rgba(228,193,142,.35) transparent; scrollbar-width:thin }
::-webkit-scrollbar{ width:10px; height:10px }
::-webkit-scrollbar-track{ background:rgba(255,255,255,.02) }
::-webkit-scrollbar-thumb{ background:linear-gradient(180deg,rgba(228,193,142,.4),rgba(228,193,142,.18)); border-radius:99px; border:2px solid transparent; background-clip:padding-box }
::-webkit-scrollbar-thumb:hover{ background:linear-gradient(180deg,rgba(228,193,142,.6),rgba(228,193,142,.3)); background-clip:padding-box }
::-webkit-scrollbar-corner{ background:transparent }

/* Desktop list grid: 3 per row */
@media(min-width:900px){
  .props-grid{ grid-template-columns:repeat(3,1fr) !important }
}
@media(min-width:1280px){
  .props-grid{ gap:22px !important }
}

/* Desktop appbar polish */
@media(min-width:900px){
  .ab-desktop .ab-nav{ gap:4px; background:rgba(0,0,0,.22); border:1px solid var(--line); padding:5px; border-radius:999px }
  .ab-desktop .ab-link{ padding:9px 18px; border-radius:999px; font-size:13px; font-weight:600; color:var(--mute); letter-spacing:.01em; transition:.25s }
  .ab-desktop .ab-link:hover{ color:var(--ink); background:rgba(255,255,255,.04) }
  .ab-desktop .ab-link.is-on{ color:#1a1014; background:var(--gold-grad); box-shadow:0 8px 22px -10px rgba(228,193,142,.6) }
  .ab-desktop .ab-cta-wa{ border-radius:999px; padding:10px 18px; font-weight:700; letter-spacing:.01em }
}


/* (pp-cats/pp-bedrooms styles moved to .pp-top block above) */


/* ====================================================================
   DESKTOP CONTAINER — 980px unificado (app + header)
   ==================================================================== */
@media (min-width:900px){
  .app{ max-width:980px !important; padding-left:28px; padding-right:28px }
  .appbar-inner{ max-width:980px !important; padding-left:28px !important; padding-right:28px !important }
  body.r-about .app{ max-width:980px !important }
  body.r-brokers .app{ max-width:980px !important }

  /* WhatsApp CTA da home não pode ficar gigante */
  .wa-cta{ max-width:450px; margin-left:auto; margin-right:auto }
  .hero-block, .hero-orb, .search-bar, .segmented, .chip-scroll, .ord, .bio-links, .about-card{ max-width:none }
}

/* ====================================================================
   SENIOR POLISH — DESKTOP & MOBILE SYMMETRY
   ==================================================================== */

/* Dividers — limitar as linhas laterais a 200px cada */
.ord{ justify-content:center; gap:16px; margin:28px auto 16px; max-width:100% }
.ord::before, .ord::after{ flex:0 0 200px !important; max-width:200px; opacity:.6 }
.ord b{ white-space:nowrap }
@media(max-width:640px){
  .ord::before, .ord::after{ flex:0 0 60px !important; max-width:60px }
  .ord{ margin:22px 0 12px; gap:10px }
}

/* CTA band rep — lado a lado no desktop */
.cta-band{ text-align:center }
.cta-band .ctas{ gap:12px }
@media(min-width:700px){
  .cta-band .ctas{ flex-direction:row; justify-content:center; max-width:520px; margin:0 auto }
  .cta-band .ctas .btn{ flex:1 }
}

/* HOME — conter elementos estreitos no centro dentro do container 980 */
@media(min-width:900px){
  .hero-orb{ max-width:280px; margin-left:auto; margin-right:auto }
  .hero-block{ max-width:560px; margin-left:auto; margin-right:auto }
  .hero-desc{ max-width:440px }
  .hero-metrics{ max-width:420px; margin-left:auto; margin-right:auto }
  .wa-cta{ max-width:450px; margin:0 auto }
  .finder-card{ max-width:720px; margin-left:auto; margin-right:auto }
  .segmented{ max-width:420px; margin-left:auto; margin-right:auto }
  .search-bar{ max-width:520px; margin-left:auto; margin-right:auto }
  .chip-scroll{ max-width:720px; margin-left:auto; margin-right:auto; justify-content:center }
  .bio-links{ max-width:560px; margin-left:auto; margin-right:auto }
  .ord{ max-width:720px; margin-left:auto; margin-right:auto }
  .about-card{ max-width:900px; margin-left:auto; margin-right:auto }
  .block{ margin-left:auto; margin-right:auto }
  .block-head{ max-width:900px; margin-left:auto; margin-right:auto }
  /* Remove vertical gaps excessivos */
  .hero-orb{ margin-bottom:14px }
  .hero-block{ margin-bottom:6px }
}

/* Espaçamento geral mais apertado no desktop */
@media(min-width:900px){
  .app{ padding-top:40px !important; padding-bottom:60px !important }
  section + section{ margin-top:0 }
}

/* HERO metric cards - mais simétricos */
.hero-metrics{ gap:10px }
.hero-metric{ min-width:90px; padding:10px 14px; text-align:center }
@media(min-width:900px){
  .hero-metric{ min-width:110px; padding:14px 20px }
  .hero-metric b{ font-size:22px }
}

/* WA-CTA home — contido, mais elegante */
.wa-cta{ padding:14px 18px }
.wa-cta .wa-ic{ width:42px; height:42px }
.wa-cta .wa-tx b{ font-size:14.5px }
.wa-cta .wa-tx small{ font-size:11.5px }

/* Segmented mais compacto */
.segmented{ padding:5px; border-radius:14px }
.segmented a{ padding:9px 10px; font-size:11.5px; letter-spacing:.16em; border-radius:10px }

/* Search bar — bordas consistentes */
.search-bar{ padding:6px 6px 6px 16px; border-radius:14px; gap:10px }
.search-bar input{ padding:12px 0 }
.search-bar button.filter{ padding:10px 18px; border-radius:10px }

/* Chip-scroll centrado */
.chip-scroll{ padding:2px 4px; gap:8px; flex-wrap:wrap }
.chip-scroll .chip{ flex-shrink:0 }

/* Bio-links mais bonitos */
.bio-links{ display:grid; gap:10px }
@media(min-width:900px){
  .bio-links{ grid-template-columns:1fr 1fr; max-width:760px }
}

/* Block-head ajustado */
.block{ margin-top:30px }
.block-head{ margin-bottom:14px; display:flex; align-items:baseline; justify-content:space-between }

/* Props grid — no desktop 3 cols fica bom em 980, mas com gap apertado */
@media(min-width:900px){
  .props-grid{ gap:16px }
}

/* Broker tiles — 3 cols no desktop em 980 */
@media(min-width:900px){
  .brokers-grid{ grid-template-columns:repeat(3,1fr) !important; gap:16px }
}

/* ABOUT CARD — 2 colunas simétricas no desktop */
@media(min-width:900px){
  .about-card{ display:grid; grid-template-columns:1fr 1.1fr; gap:0; overflow:hidden; border-radius:20px }
  .about-card-img{ aspect-ratio:auto; height:100% }
  .about-card-img img{ width:100%; height:100%; object-fit:cover }
  .about-card-body{ padding:36px 40px; display:flex; flex-direction:column; justify-content:center }
}

/* APPBAR — simetria e respiro */
@media(min-width:900px){
  .ab-desktop{ gap:20px !important }
  .ab-nav{ margin-left:auto; margin-right:0 }
  .ab-brand-d{ margin-right:8px }
  .ab-brand-meta b{ max-width:180px }
  .ab-brand-meta small{ max-width:180px }
}

/* Nav links multilinhas (ex: "Agendar visita") */
@media(min-width:900px){
  .ab-link{ white-space:nowrap }
}

/* Rep hero polish */
@media(min-width:900px){
  .rep-brand-mark{ max-width:460px; margin:0 auto 18px }
  .cta-band{ max-width:640px; margin:28px auto 0; padding:30px 32px; border-radius:20px }
  .cta-band h2{ font-size:26px }
}

/* FOOTER polish */
@media(min-width:900px){
  footer .app, .site-footer .app{ max-width:980px !important }
}

/* Remove duplicação de container stacking */
@media(min-width:900px){
  body.r-home .app > .ord + .wa-cta,
  body.r-home .app > .ord + .finder-card,
  body.r-home .app > .ord + .segmented,
  body.r-home .app > .search-bar,
  body.r-home .app > .chip-scroll{ margin-top:0 }
}

/* Scrollbar offset — evitar que o scrollbar crie assimetria */
html{ scrollbar-gutter:stable both-edges }

/* Tipografia mais consistente */
.hero-name{ letter-spacing:-.02em }
.hero-role{ letter-spacing:.2em }

/* ======================= MOBILE REFINEMENTS ======================= */
@media(max-width:640px){
  .app{ padding:20px 16px 28px !important }
  .hero-orb{ margin-bottom:10px }
  .hero-name{ font-size:26px }
  .hero-desc{ font-size:13px; max-width:none }
  .wa-cta{ padding:13px 14px }
  .segmented{ font-size:11px }
  .search-bar{ padding:6px 6px 6px 14px }
  .block-head .more{ font-size:12px }
  .finder-head{ padding:14px }
  .about-card-body{ padding:20px 18px }
}

/* Brokers tile — altura homogênea */
.broker-tile{ display:flex; flex-direction:column }
.broker-tile-body{ flex:1 }

/* Cards de imóvel — proporção premium no desktop */
@media(min-width:900px){
  .prop-card .prop-cover, .prop-card .card-cover{ aspect-ratio:4/3 }
}

/* Broker card na detail: quando mostra logo da imobiliária (não foto de corretor) */
.lux-broker-pic.is-logo{ border-radius:14px; background:#1a1014; border:1px solid rgba(228,193,142,.2) }
.lux-broker-pic.is-logo img{ object-fit:contain; padding:6px }

/* features: 2 por linha no mobile */
@media (max-width:720px){
  .lux-features{ grid-template-columns:repeat(2,1fr) !important; gap:8px }
}
