/* ============================================================
   Imóvel na Bio — Landing page profissional do corretor
   Usa --brand / --brand-2 definidos inline pelo layout.
   ============================================================ */

html { scroll-behavior: smooth; }
.lp-body { background: #fff; }
.lp-body section { scroll-margin-top: 78px; }

/* ----------------- HEADER FIXO + NAV ----------------- */
.lp-nav {
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    background: rgba(255, 255, 255, .96); backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
    transition: box-shadow .2s;
}
.lp-nav.scrolled { box-shadow: 0 6px 24px rgba(18,24,40,.10); }
.lp-nav-inner {
    max-width: 1180px; margin: 0 auto; padding: 0 18px;
    height: 68px; display: flex; align-items: center; gap: 18px;
}
.lp-brand { display: flex; align-items: center; gap: 10px; font-weight: 800; color: var(--text); }
.lp-brand img { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; }
.lp-brand .lp-brand-name { font-size: 1.05rem; line-height: 1.1; }
.lp-brand .lp-brand-sub { font-size: .72rem; color: var(--muted); font-weight: 600; }
.lp-menu { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.lp-menu a {
    padding: 9px 14px; border-radius: 10px; font-weight: 600; font-size: .92rem; color: #374151;
    transition: background .15s, color .15s;
}
.lp-menu a:hover, .lp-menu a.active { background: rgba(0,0,0,.05); color: var(--brand); }
.lp-menu .lp-menu-cta { display: none; }
.lp-nav-cta {
    display: inline-flex; align-items: center; gap: 8px; background: #25d366; color: #fff;
    padding: 10px 16px; border-radius: 10px; font-weight: 700; font-size: .92rem;
}
.lp-icon { width: 1.15em; height: 1.15em; flex: 0 0 auto; fill: currentColor; }
.lp-nav-cta .lp-icon { width: 1.1em; height: 1.1em; }
.lp-burger {
    display: none; margin-left: auto; width: 44px; height: 44px; border: 0; background: transparent;
    cursor: pointer; flex-direction: column; gap: 5px; justify-content: center; align-items: center;
}
.lp-burger span { width: 24px; height: 2px; background: var(--text); border-radius: 2px; transition: .25s; }
.lp-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.lp-burger.open span:nth-child(2) { opacity: 0; }
.lp-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ----------------- HERO ----------------- */
.lp-hero {
    position: relative; min-height: 86vh; display: flex; align-items: center;
    color: #fff; padding: 110px 18px 60px; background-size: cover; background-position: center;
}
.lp-hero::before {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(11,18,32,.55) 0%, rgba(11,18,32,.78) 100%);
}
.lp-hero-inner { position: relative; max-width: 920px; margin: 0 auto; width: 100%; text-align: center; }
.lp-hero-tag {
    display: inline-block; background: var(--brand); padding: 6px 14px; border-radius: 999px;
    font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 18px;
}
.lp-hero h1 { font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 800; line-height: 1.08; margin: 0 auto 14px; max-width: 820px; }
.lp-hero p { font-size: clamp(1rem, 2vw, 1.25rem); opacity: .95; max-width: 720px; margin: 0 auto 28px; }
.lp-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 34px; }

/* busca do hero */
.lp-search {
    background: rgba(255,255,255,.97); border-radius: 16px; padding: 16px;
    box-shadow: var(--shadow-lg); display: grid; gap: 12px; max-width: 920px; margin: 0 auto;
    grid-template-columns: 1fr; color: var(--text);
    text-align: left;
}
@media (min-width: 720px) { .lp-search { grid-template-columns: 1.4fr 1fr 1fr auto; align-items: end; } }
.lp-search .field label { font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); font-weight: 700; margin-bottom: 5px; display:block; }
.lp-search .field input, .lp-search .field select {
    width: 100%; padding: 12px 12px; border: 1px solid var(--line); border-radius: 10px; font: inherit; background:#fff;
}
.lp-search button { height: 46px; padding: 0 22px; }

/* ----------------- SEÇÕES ----------------- */
.lp-section { max-width: 1180px; margin: 0 auto; padding: 70px 18px; }
.lp-section.alt { background: var(--bg); max-width: none; }
.lp-section.alt .lp-section-inner { max-width: 1180px; margin: 0 auto; }
.lp-section-head { text-align: center; max-width: 640px; margin: 0 auto 38px; }
.lp-eyebrow { color: var(--brand); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-size: .8rem; }
.lp-section-head h2 { font-size: clamp(1.6rem, 3.5vw, 2.3rem); font-weight: 800; margin: 8px 0 10px; }
.lp-section-head p { color: var(--muted); font-size: 1.02rem; margin: 0; }

/* chips de filtro centralizados */
.lp-filters { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 26px; }

/* grid de imóveis */
.lp-grid { display: grid; grid-template-columns: 1fr; gap: 22px; }
@media (min-width: 600px) { .lp-grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 980px) { .lp-grid { grid-template-columns: repeat(3,1fr); } }

.lp-card { background:#fff; border:1px solid var(--line); border-radius: 16px; overflow:hidden; display:flex; flex-direction:column;
    transition: transform .18s, box-shadow .18s; box-shadow: 0 2px 10px rgba(18,24,40,.05); }
.lp-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.lp-card .lp-thumb { position: relative; aspect-ratio: 4/3; background:#e9ebf0; overflow:hidden; }
.lp-card .lp-thumb img { width:100%; height:100%; object-fit: cover; transition: transform .4s; }
.lp-card:hover .lp-thumb img { transform: scale(1.05); }
.lp-card .lp-tags { position:absolute; top:12px; left:12px; display:flex; flex-wrap:wrap; gap:6px; max-width:calc(100% - 24px); }
.lp-tag-purpose { background: var(--brand); color:#fff; padding:4px 10px; border-radius:999px; font-size:.72rem; font-weight:700; text-transform:uppercase; }
.lp-card .badge { position:absolute; top:12px; right:12px; }
.lp-card-body { padding:16px; display:flex; flex-direction:column; gap:8px; flex:1; }
.lp-price { font-size:1.35rem; font-weight:800; color:var(--text); }
.lp-price small { color: var(--muted); font-weight:600; font-size:.7em; }
.lp-card-title { font-weight:700; font-size:1rem; }
.lp-card-loc { color:var(--muted); font-size:.88rem; display:flex; align-items:center; gap:5px; }
.lp-feats { display:flex; gap:14px; color:#4b5563; font-size:.85rem; border-top:1px solid var(--line); padding-top:12px; margin-top:2px; }
.lp-feats span { display:inline-flex; align-items:center; gap:5px; }
.lp-card-actions { margin-top:auto; display:flex; gap:8px; padding-top:12px; }
.lp-card-actions .btn { flex:1; }
.lp-card-actions .lp-card-share { flex:0 0 auto; width:42px; padding-left:0; padding-right:0; }
.lp-card-actions .lp-card-share .lp-icon { width:18px; height:18px; }

/* ----------------- SOBRE ----------------- */
.lp-about-grid { display:grid; gap:36px; align-items:flex-start; grid-template-columns:1fr; }
@media (min-width: 880px) { .lp-about-grid { grid-template-columns: 0.8fr 1.2fr; } }
.lp-about-photo { position:relative; }
.lp-about-photo img { width:100%; border-radius:20px; aspect-ratio:4/5; object-fit:cover; box-shadow: var(--shadow-lg); }
.lp-about-photo .lp-creci { position:absolute; bottom:-14px; left:24px; background:var(--brand); color:#fff; padding:10px 18px; border-radius:12px; font-weight:700; box-shadow:var(--shadow); }
.lp-about h2 { font-size: clamp(1.6rem,3.5vw,2.2rem); font-weight:800; margin:8px 0 14px; }
.lp-tagline { font-weight:700; color:var(--text) !important; margin-top:-4px !important; }
.lp-profile-badges { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.lp-profile-badges span {
    display:inline-flex; align-items:center; padding:7px 11px; border-radius:999px;
    background:#fff; border:1px solid var(--line); color:#374151; font-size:.84rem; font-weight:700;
}
.lp-about p { color:#4b5563; font-size:1.05rem; line-height:1.7; }
.lp-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:26px 0; }
.lp-stat { background:#fff; border:1px solid var(--line); border-radius:14px; padding:18px 14px; text-align:center; }
.lp-stat b { display:block; font-size:1.8rem; font-weight:800; color:var(--brand); }
.lp-stat small { color:var(--muted); font-size:.82rem; }
.lp-profile-grid { display:grid; grid-template-columns:1fr; gap:16px; margin:0 0 24px; }
@media (min-width: 680px) { .lp-profile-grid { grid-template-columns:1fr 1fr; } }
.lp-profile-grid h3 { margin:0 0 10px; font-size:.95rem; }
.lp-chip-list { display:flex; flex-wrap:wrap; gap:8px; }
.lp-chip-list span {
    display:inline-flex; align-items:center; padding:7px 10px; border-radius:999px;
    background:rgba(31,111,235,.08); color:var(--brand); font-size:.82rem; font-weight:700;
}

/* ----------------- CONTATO ----------------- */
.lp-contact { background: linear-gradient(160deg, var(--brand) 0%, var(--brand-2) 130%); color:#fff; }
.lp-contact .lp-section-inner { max-width:1180px; margin:0 auto; padding:70px 18px; text-align:center; }
.lp-contact h2 { font-size:clamp(1.7rem,4vw,2.4rem); font-weight:800; margin:0 0 12px; }
.lp-contact p { opacity:.92; font-size:1.1rem; max-width:560px; margin:0 auto 28px; }
.lp-contact-actions { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.share-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.property-share-grid { display:grid; grid-template-columns:1fr; gap:16px; margin:24px 0; }
@media (min-width: 820px) { .property-share-grid { grid-template-columns: minmax(0,1.5fr) 300px; align-items:stretch; } }
.share-card, .qr-card { box-shadow: var(--shadow); }
.qr-card img { width:180px; max-width:100%; border:1px solid var(--line); border-radius:12px; margin:8px 0 14px; background:#fff; }
.detail-inline-icon { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.detail-inline-icon .lp-icon { color:var(--brand); }
.lp-qr-panel {
    margin:28px auto 0; max-width:760px; display:flex; align-items:center; justify-content:space-between; gap:20px;
    text-align:left; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:16px;
    padding:18px; backdrop-filter: blur(8px);
}
.lp-qr-panel h3 { margin:0 0 6px; display:flex; align-items:center; gap:8px; color:#fff; }
.lp-qr-panel p { margin:0 0 12px; opacity:.88; }
.lp-qr-panel img { width:128px; border-radius:12px; background:#fff; padding:8px; flex:0 0 auto; }
@media (max-width: 640px) {
    .lp-qr-panel { flex-direction:column; text-align:center; }
    .lp-qr-panel h3, .lp-qr-panel .share-actions { justify-content:center; }
}

/* ----------------- RODAPÉ ----------------- */
.lp-footer { background:#0b1220; color:#9aa3b2; padding:40px 18px; text-align:center; }
.lp-footer .lp-footer-name { color:#fff; font-weight:800; font-size:1.1rem; margin-bottom:6px; }
.lp-footer a { color:#cdd3e0; }
.lp-footer .lp-footer-credit { margin-top:18px; font-size:.8rem; opacity:.7; }
.lp-footer-install { margin-top:14px; }
.lp-footer-install .btn { border-color:rgba(255,255,255,.2); color:#cdd3e0; font-size:.8rem; padding:7px 16px; }

/* ----------------- BOTÕES FLUTUANTES ----------------- */
/* column-reverse mantém o WhatsApp sempre como o botão mais baixo da pilha. */
.lp-fab { position: fixed; right: 18px; bottom: 18px; z-index: 95; display:flex; flex-direction:column-reverse; gap:12px; align-items:flex-end; }
/* Se a barra fixa de WhatsApp estiver presente, sobe o FAB para não sobrepor. */
.has-sticky-wa .lp-fab { bottom: calc(84px + env(safe-area-inset-bottom)); }
.lp-fab a, .lp-fab button {
    width:56px; height:56px; border-radius:50%; border:0; cursor:pointer; display:flex; align-items:center; justify-content:center;
    box-shadow: var(--shadow-lg); font-size:1.5rem; color:#fff;
}
.lp-fab .lp-fab-wa { background:#25d366; font-size:0; }
.lp-fab .lp-fab-wa svg { width:30px; height:30px; display:block; fill:#fff; }
.lp-fab .lp-fab-install {
    width:auto; min-width:56px; height:40px; border-radius:999px; padding:0 14px;
    background:#111827; font-size:.82rem; font-weight:800;
}
.lp-fab .lp-fab-top { background: var(--brand-2); opacity:0; pointer-events:none; transition:opacity .25s; }
.lp-fab .lp-fab-top.show { opacity:1; pointer-events:auto; }

.lp-empty { text-align:center; color:var(--muted); padding:50px 16px; grid-column:1/-1; }
.lp-link-btn { background:none; border:0; color:var(--brand); font:inherit; font-weight:700; cursor:pointer; text-decoration:underline; }

/* ----------------- FILTRO DO CATÁLOGO ----------------- */
.lp-filterbar { display:flex; flex-direction:column; gap:12px; margin:0 0 24px; }
.lp-filter-search { position:relative; display:flex; align-items:center; }
.lp-filter-search .lp-icon { position:absolute; left:14px; width:20px; height:20px; fill:var(--muted); pointer-events:none; }
.lp-filter-search input {
    width:100%; padding:14px 16px 14px 44px; border:1px solid var(--line); border-radius:12px;
    font:inherit; background:#fff;
}
.lp-filter-row { display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; }
.lp-filter-row select, .lp-filter-row input {
    width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:10px; font:inherit; background:#fff; color:var(--text);
}
.lp-filter-row .btn { padding:11px 12px; }
.lp-filter-count { color:var(--muted); font-size:.88rem; font-weight:600; }
.lp-more-wrap { display:flex; justify-content:center; margin-top:28px; }

/* ----------------- DEPOIMENTOS ----------------- */
.lp-testi-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:18px; }
.lp-testi {
    background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm);
    padding:22px; margin:0; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:12px;
}
.lp-testi-stars { color:#f59e0b; letter-spacing:2px; font-size:1rem; }
.lp-testi blockquote { margin:0; color:#374151; line-height:1.6; font-size:1rem; }
.lp-testi figcaption { display:flex; align-items:center; gap:12px; margin-top:auto; }
.lp-testi figcaption img { width:46px; height:46px; border-radius:50%; object-fit:cover; }
.lp-testi figcaption strong { display:block; font-size:.95rem; }
.lp-testi figcaption small { color:var(--muted); }

/* ----------------- SELOS (Novidade / Baixou o preço) — agora dentro de .lp-tags ----------------- */
.lp-flag { display:inline-block; padding:4px 10px; border-radius:999px; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.02em; color:#fff; box-shadow:var(--shadow); }
.lp-flag-new { background:#16a34a; }
.lp-flag-drop { background:#ef4444; }
.lp-old-price { color:var(--muted); text-decoration:line-through; font-weight:600; font-size:.82em; }

/* ----------------- "Responde em minutos" ----------------- */
.lp-reply-line {
    display:inline-flex; align-items:center; gap:7px; margin:16px 0 0;
    background:rgba(22,163,74,.12); color:#15803d; font-weight:700; font-size:.88rem;
    padding:8px 16px; border-radius:999px; line-height:1;
}
/* Seção de contato — estilo diferenciado */
.lp-reply-line.on-dark {
    display:flex; align-items:center; justify-content:center; gap:8px;
    background:rgba(255,255,255,.10); color:#fff; font-size:.95rem; font-weight:600;
    padding:12px 24px; border-radius:12px; border:1px solid rgba(255,255,255,.25);
    margin:0 auto 28px; max-width:520px; width:fit-content; letter-spacing:.01em;
}

/* ----------------- VÍDEO INCORPORADO ----------------- */
.video-embed { position:relative; width:100%; aspect-ratio:16/9; border-radius:var(--radius-sm); overflow:hidden; background:#000; margin-bottom:8px; }
.video-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }

.property-more-info-grid { display:grid; gap:12px; margin-top:12px; }
.property-more-info-grid .property-info-row {
    display:flex; justify-content:space-between; align-items:center; gap:14px;
    padding:14px 16px; border:1px solid var(--line); border-radius:16px; background:#fff;
}
.property-more-info-grid .property-info-row span { color:var(--muted); font-size:.9rem; flex:none; }
.property-more-info-grid .property-info-row strong { color:var(--text); text-align:right; min-width:0; word-break:break-word; }
@media (min-width:600px) { .property-more-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Em largura total (fim da página) aproveita o espaço com 3 colunas. */
@media (min-width:980px) { .property-more-info-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ----------------- GALERIA: botão ampliar + lightbox ----------------- */
.gallery-main { position:relative; }
.gallery-zoom {
    position:absolute; right:12px; bottom:12px; background:rgba(11,18,32,.65); color:#fff; border:0;
    border-radius:999px; padding:8px 14px; font:inherit; font-size:.85rem; font-weight:700; cursor:pointer;
}
.lp-lightbox { position:fixed; inset:0; z-index:2000; background:rgba(8,11,18,.94); display:flex; align-items:center; justify-content:center; }
.lp-lightbox[hidden] { display:none; }
.lp-lb-stage { max-width:100%; max-height:100%; display:flex; align-items:center; justify-content:center; padding:20px; }
.lp-lb-stage img { max-width:92vw; max-height:86vh; object-fit:contain; border-radius:6px; transition:transform .2s; touch-action:none; cursor:zoom-in; }
.lp-lb-stage img.zoomed { transform:scale(2.2); cursor:zoom-out; }
.lp-lb-close, .lp-lb-nav {
    position:absolute; border:0; background:rgba(255,255,255,.14); color:#fff; cursor:pointer; line-height:1;
    display:flex; align-items:center; justify-content:center; border-radius:50%;
}
.lp-lb-close { top:14px; right:16px; width:46px; height:46px; font-size:1.8rem; }
.lp-lb-nav { top:50%; transform:translateY(-50%); width:52px; height:52px; font-size:2rem; }
.lp-lb-prev { left:14px; } .lp-lb-next { right:14px; }
.lp-lb-close:hover, .lp-lb-nav:hover { background:rgba(255,255,255,.28); }
.lp-lb-counter { position:absolute; bottom:18px; left:50%; transform:translateX(-50%); color:#fff; font-weight:600; font-size:.9rem; background:rgba(0,0,0,.4); padding:4px 12px; border-radius:999px; }
@media (max-width:600px) { .lp-lb-nav { width:44px; height:44px; font-size:1.6rem; } }

/* ----------------- FAQ ----------------- */
.lp-faq { max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:10px; }
.lp-faq-item { background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:0 18px; }
.lp-faq-item summary { cursor:pointer; padding:16px 0; font-weight:700; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:10px; }
.lp-faq-item summary::-webkit-details-marker { display:none; }
.lp-faq-item summary::after { content:'+'; font-size:1.4rem; color:var(--brand); font-weight:700; line-height:1; }
.lp-faq-item[open] summary::after { content:'\2212'; }
.lp-faq-answer { padding:0 0 16px; color:#4b5563; line-height:1.6; }

/* ----------------- INFRAESTRUTURA (página do imóvel) ----------------- */
.amenities-list { display:grid; grid-template-columns:repeat(2, 1fr); gap:10px 24px; margin:6px 0 8px; }
@media (min-width:760px) { .amenities-list { grid-template-columns:repeat(3, 1fr); } }
.amenity-item { display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:12px 14px; }
.amenity-check-icon { width:18px; height:18px; flex:0 0 auto; fill:var(--brand); }
.amenity-item span { font-weight:600; color:var(--text); font-size:.92rem; }

/* ----------------- SOBRE O CORRETOR (página do imóvel) ----------------- */
.lp-broker-about-head { display:flex; gap:16px; align-items:flex-start; }
.lp-broker-avatar { width:72px; height:72px; border-radius:50%; object-fit:cover; flex:0 0 auto; }
.lp-broker-tags { display:grid; grid-template-columns:1fr; gap:14px; margin-top:16px; }
@media (min-width:600px) { .lp-broker-tags { grid-template-columns:1fr 1fr; } }
.lp-broker-tags h4 { margin:0 0 8px; font-size:.85rem; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); }

/* ----------------- IMÓVEIS SEMELHANTES ----------------- */
/* Banner "veio de um Story" na página do imóvel */
.lp-story-banner { display:flex; align-items:center; gap:11px; margin:14px 0 4px; padding:12px 16px;
    border-radius:12px; font-size:.95rem; color:#0b1b3a;
    background:linear-gradient(100deg,#fdeafe,#e8eefe); border:1px solid #e3d3f7; }
.lp-story-banner .lp-story-ico { font-size:1.3rem; line-height:1; flex:none; }

.lp-similar { margin-top:34px; }
/* Em largura total no fim da página: separa do conteúdo acima. */
.lp-similar--full { margin-top:40px; padding-top:36px; border-top:1px solid var(--line); }
/* Na página do imóvel (com sidebar), os "semelhantes" aproveitam toda a largura
   da coluna principal: 4 cards por linha no desktop largo, com minmax(0,1fr) para
   o conteúdo nunca estourar o card. */
@media (min-width: 1080px) {
    .lp-similar .lp-grid { grid-template-columns:repeat(4, minmax(0,1fr)); gap:18px; }
    /* card mais estreito: tudo continua organizado dentro do bloco */
    .lp-similar .lp-card-body { padding:14px; gap:7px; }
    .lp-similar .lp-price { font-size:1.2rem; }
    .lp-similar .lp-feats { flex-wrap:wrap; gap:7px 12px; font-size:.8rem; }
    .lp-similar .lp-card-actions { gap:6px; }
    .lp-similar .lp-card-actions .lp-card-share { width:38px; }
}

/* ----------------- PÁGINA DO IMÓVEL: LAYOUT SIDEBAR ----------------- */
.lp-detail { padding: 92px 18px 40px; }
.lp-detail-inner { max-width: 1100px; margin: 0 auto; }
.lp-back-link { display:inline-block; margin-bottom:16px; font-size:.9rem; }
.lp-back-link:hover { color:var(--brand); }
.lp-detail-layout { display:flex; flex-direction:column; gap:0; }
.lp-detail-header { margin-top:18px; }
.lp-detail-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.lp-detail-title { margin:10px 0 4px; font-size:clamp(1.4rem,3vw,2rem); }

/* Mobile CTA — visível apenas no mobile */
.lp-mobile-cta {
    background:#fff; border:1px solid var(--line); border-radius:14px;
    padding:16px; margin:16px 0; display:flex; flex-direction:column; gap:10px;
}
.lp-mobile-price { font-size:1.65rem; font-weight:800; color:var(--brand); }
.lp-mobile-specs { margin:0 0 6px; }

/* Sidebar — visível apenas no desktop */
.lp-detail-sidebar { display:none; }

.lp-sidebar-sticky { position:sticky; top:82px; }
.lp-sidebar-card {
    background:#fff; border:1px solid var(--line); border-radius:16px;
    padding:20px; box-shadow:var(--shadow);
}
.lp-sidebar-old-price { color:var(--muted); text-decoration:line-through; font-size:.92rem; font-weight:600; }
.lp-sidebar-price { font-size:1.75rem; font-weight:800; color:var(--brand); margin:4px 0 16px; }
.lp-sidebar-price small { font-size:.55em; color:var(--muted); font-weight:600; }
/* Na sidebar estreita (320px) os specs ficam SEMPRE em 2 colunas que encolhem
   (minmax(0,1fr)) para não estourar o card no desktop. */
.lp-sidebar-specs { margin:0 0 4px; grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
.lp-sidebar-specs .spec { padding:10px 8px; }
.lp-sidebar-specs .spec small { font-size:.78rem; }

/* Linha de localização/tipo dentro da sidebar */
.lp-sidebar-where { display:flex; gap:8px; align-items:flex-start; font-size:.9rem; color:var(--muted); margin:0 0 14px; }
.lp-sidebar-where svg { width:18px; height:18px; flex:none; margin-top:1px; fill:var(--brand); }
.lp-sidebar-where strong { color:var(--text); font-weight:600; }

/* Linha "responde em minutos" perto do CTA */
.lp-sidebar-reply { display:flex; align-items:center; gap:7px; justify-content:center; margin:10px 0 0; font-size:.82rem; color:var(--muted); }
.lp-sidebar-reply .dot { width:8px; height:8px; border-radius:50%; background:#25d366; box-shadow:0 0 0 3px rgba(37,211,102,.18); flex:none; }

/* Mini-bloco do corretor na sidebar */
.lp-sidebar-broker { display:flex; align-items:center; gap:11px; margin-top:8px; text-decoration:none; color:inherit; }
.lp-sidebar-broker:hover .nm { color:var(--brand); }
.lp-sidebar-broker img { width:46px; height:46px; border-radius:50%; object-fit:cover; flex:none; }
.lp-sidebar-broker .nm { font-weight:700; font-size:.95rem; color:var(--text); line-height:1.2; }
.lp-sidebar-broker .sb { font-size:.8rem; color:var(--muted); }

/* Selos de confiança */
.lp-sidebar-trust { display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:14px; }
.lp-sidebar-trust span { display:inline-flex; align-items:center; gap:6px; font-size:.78rem; color:var(--muted); }
.lp-sidebar-trust svg { width:15px; height:15px; fill:var(--brand); flex:none; }
.lp-sidebar-divider { border:none; border-top:1px solid var(--line); margin:16px 0; }
/* Sempre 1 coluna na sidebar estreita (320px): rótulo à esquerda, valor à
   direita, sem colidir nem vazar. */
.lp-sidebar-info { list-style:none; padding:0; margin:0; display:grid; grid-template-columns: 1fr; gap:10px; font-size:.9rem; }
.lp-sidebar-info li { display:flex; justify-content:space-between; align-items:baseline; gap:14px; }
.lp-sidebar-info li span { color:var(--muted); flex:none; }
.lp-sidebar-info li strong { color:var(--text); text-align:right; min-width:0; word-break:break-word; }
.lp-sidebar-secondary { display:flex; flex-direction:column; gap:8px; margin-top:10px; }

/* Contador de fotos na galeria */
.lp-gallery-counter {
    position:absolute; bottom:52px; right:14px; z-index:3;
    background:rgba(11,18,32,.65); color:#fff; backdrop-filter:blur(4px);
    font-size:.8rem; font-weight:700; padding:4px 11px; border-radius:999px;
    pointer-events:none; letter-spacing:.02em;
}

/* Desktop: ativa o layout de 2 colunas */
@media (min-width: 900px) {
    .lp-detail { padding: 96px 24px 60px; }
    .lp-detail-inner { max-width: 1200px; }
    .lp-detail-layout { display:grid; grid-template-columns:1fr 320px; gap:32px; align-items:flex-start; }
    .lp-detail-sidebar { display:block; }
    .lp-mobile-cta, .lp-mobile-specs { display:none !important; }
    /* Sticky-wa não faz sentido no desktop (há sidebar) */
    .sticky-wa { display:none; }
}

/* ----------------- REDES NO RODAPÉ ----------------- */
.lp-footer-social { display:flex; gap:10px; justify-content:center; margin:14px 0 4px; }
.lp-footer-social a {
    width:40px; height:40px; border-radius:50%; background:rgba(0,0,0,.05);
    display:inline-flex; align-items:center; justify-content:center; color:var(--muted); transition:background .15s, color .15s;
}
.lp-footer-social a:hover { background:var(--brand); color:#fff; }
.lp-footer-social a svg { width:20px; height:20px; fill:currentColor; }

.lp-menu-backdrop {
    position: fixed; inset: 0; background: rgba(11,18,32,.45);
    opacity: 0; pointer-events: none; transition: opacity .25s; z-index: 90;
}
.lp-menu-backdrop.show { opacity: 1; pointer-events: auto; }
body.lp-menu-open { overflow: hidden; }

/* ----------------- MOBILE ----------------- */
@media (max-width: 860px) {
    .lp-menu {
        position: fixed; top: 68px; left:0; right:0; background:#fff; flex-direction:column;
        align-items:stretch; gap:0; padding:8px 8px 14px; border-bottom:1px solid var(--line);
        box-shadow: var(--shadow-lg); transform: translateY(-130%); transition: transform .28s; margin:0;
        z-index: 101;
    }
    .lp-menu.open { transform: translateY(0); }
    .lp-menu a { padding:14px 16px; border-radius:10px; font-size:1rem; }
    .lp-nav-cta { display:none; }
    .lp-menu .lp-menu-cta { display:flex; justify-content:center; background:#25d366; color:#fff; margin-top:6px; }
    .lp-burger { display:flex; }
    .lp-burger:active { background: rgba(0,0,0,.06); border-radius:8px; }
    .lp-hero { min-height: 90vh; }
    .lp-section { padding: 50px 18px; }
    .lp-contact .lp-section-inner { padding:50px 18px; }
    .lp-filter-row { grid-template-columns:repeat(2, 1fr); }

    /* Oculta a busca do hero — o filtro do catálogo já cobre essa função no mobile. */
    #lpHeroSearch { display: none; }

    /* Botões do hero: empilhados em coluna, largura total e fáceis de tocar. */
    .lp-hero-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
        padding: 0 4px;
        margin-bottom: 0;
    }
    .lp-hero-actions .btn {
        width: 100%;
        justify-content: center;
        font-size: 1.05rem;
        padding: 16px 20px;
    }
    .lp-fab {
        right: 14px;
        bottom: calc(8px + env(safe-area-inset-bottom));
        gap: 10px;
    }
    .lp-fab a, .lp-fab button { width:52px; height:52px; }
    .lp-fab .lp-fab-install { width:auto; height:38px; }
}

/* ============================================================
   BLOG — Imóvel na Bio
   ============================================================ */

/* Variáveis */
.blog-page {
    --bl-ink: #0b1220;
    --bl-soft: #475069;
    --bl-line: #e7eaf1;
    --bl-bg: #f5f7fb;
    --bl-brand: #1f6feb;
    --bl-brand-d: #1552c9;
    --bl-wa: #25d366;
    --bl-radius: 16px;
    font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    -webkit-font-smoothing: antialiased;
    background: #fff;
    color: var(--bl-ink);
}
.blog-page * { box-sizing: border-box; }
.blog-page a { color: inherit; text-decoration: none; }

/* Layout */
.bl-wrap { width: 100%; max-width: 1140px; margin: 0 auto; padding: 0 22px; }
.bl-wrap--narrow { max-width: 780px; }

/* Header */
.bl-header {
    position: sticky; top: 0; z-index: 100;
    background: rgba(255,255,255,.92); backdrop-filter: saturate(180%) blur(12px);
    border-bottom: 1px solid var(--bl-line);
}
.bl-header-inner {
    max-width: 1140px; margin: 0 auto; padding: 0 22px;
    height: 66px; display: flex; align-items: center; gap: 24px;
}
.bl-logo { display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 1rem; color: var(--bl-ink); }
.bl-nav { display: flex; gap: 6px; margin-left: auto; }
.bl-nav a { padding: 8px 14px; border-radius: 8px; font-weight: 600; font-size: .93rem; color: var(--bl-soft); transition: background .15s, color .15s; }
.bl-nav a:hover, .bl-nav a.active { background: var(--bl-bg); color: var(--bl-brand); }
.bl-header .bl-cta {
    display: inline-flex; align-items: center; background: var(--bl-brand); color: #fff;
    padding: 9px 18px; border-radius: 8px; font-weight: 700; font-size: .9rem;
    transition: background .15s, transform .15s;
}
.bl-header .bl-cta:hover { background: var(--bl-brand-d); transform: translateY(-1px); }

/* Hero do blog */
.bl-hero { background: linear-gradient(160deg, #f0f5ff 0%, #fff 60%); padding: 72px 0 64px; text-align: center; }
.bl-eyebrow { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--bl-brand); margin-bottom: 14px; }
.bl-hero h1 { font-size: clamp(1.9rem, 4vw, 3rem); font-weight: 800; line-height: 1.12; letter-spacing: -.02em; color: var(--bl-ink); max-width: 700px; margin: 0 auto 18px; }
.bl-hero-sub { font-size: 1.1rem; color: var(--bl-soft); max-width: 520px; margin: 0 auto; }

/* Tags */
.bl-tag { display: inline-block; padding: 4px 12px; border-radius: 999px; background: #e8f0fe; color: var(--bl-brand); font-size: .76rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 12px; }

/* Artigo em destaque */
.bl-articles-section { padding: 64px 0 80px; }
.bl-featured {
    display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center;
    background: var(--bl-bg); border-radius: 24px; overflow: hidden; margin-bottom: 56px;
}
.bl-featured-img { display: block; height: 380px; overflow: hidden; }
.bl-featured-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.bl-featured-img:hover img { transform: scale(1.04); }
.bl-featured-body { padding: 40px 40px 40px 0; }
.bl-featured-body h2 { font-size: clamp(1.3rem, 2.4vw, 1.85rem); font-weight: 800; line-height: 1.18; letter-spacing: -.02em; margin-bottom: 14px; }
.bl-featured-body h2 a:hover { color: var(--bl-brand); }
.bl-excerpt { color: var(--bl-soft); line-height: 1.65; margin-bottom: 18px; font-size: .97rem; }
.bl-meta { display: flex; align-items: center; gap: 8px; font-size: .83rem; color: #9ca3af; margin-bottom: 22px; }
.bl-dot { color: #d1d5db; }
.bl-read-more { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--bl-brand); font-size: .95rem; }
.bl-read-more:hover { text-decoration: underline; }

/* Grid de cards */
.bl-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.bl-grid--related { margin-top: 40px; }
.bl-card { border-radius: var(--bl-radius); overflow: hidden; border: 1px solid var(--bl-line); background: #fff; transition: box-shadow .2s, transform .2s; }
.bl-card:hover { box-shadow: 0 8px 32px rgba(11,18,40,.12); transform: translateY(-3px); }
.bl-card-img { display: block; height: 200px; overflow: hidden; }
.bl-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.bl-card:hover .bl-card-img img { transform: scale(1.05); }
.bl-card-body { padding: 22px 22px 26px; }
.bl-card-body h3 { font-size: 1.05rem; font-weight: 700; line-height: 1.3; margin-bottom: 10px; letter-spacing: -.01em; }
.bl-card-body h3 a:hover { color: var(--bl-brand); }

/* CTA seção */
.bl-cta-section { padding: 0 0 80px; }
.bl-cta-box {
    background: linear-gradient(135deg, var(--bl-brand) 0%, #1552c9 100%);
    color: #fff; border-radius: 24px; padding: 56px 48px; text-align: center;
}
.bl-cta-box h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800; margin-bottom: 14px; letter-spacing: -.02em; }
.bl-cta-box p { font-size: 1.05rem; opacity: .88; max-width: 560px; margin: 0 auto 32px; line-height: 1.6; }
.bl-cta-btns { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }
.bl-btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 24px; border-radius: 999px; font-weight: 700; font-size: .97rem; cursor: pointer; transition: transform .15s, box-shadow .2s; }
.bl-btn:hover { transform: translateY(-2px); }
.bl-btn-brand { background: var(--bl-brand); color: #fff; box-shadow: 0 10px 28px -10px rgba(31,111,235,.6); }
.bl-btn-brand:hover { background: var(--bl-brand-d); }
.bl-btn-ghost { background: rgba(255,255,255,.15); color: #fff; border: 1.5px solid rgba(255,255,255,.4); }
.bl-btn-ghost:hover { background: rgba(255,255,255,.25); }
.bl-btn-wa { background: var(--bl-wa); color: #fff; box-shadow: 0 10px 28px -10px rgba(37,211,102,.5); }
.bl-btn-wa:hover { background: #1ebd5b; }

/* Breadcrumb */
.bl-breadcrumb { background: var(--bl-bg); border-bottom: 1px solid var(--bl-line); }
.bl-breadcrumb .bl-wrap { height: 44px; display: flex; align-items: center; gap: 8px; font-size: .83rem; color: var(--bl-soft); }
.bl-breadcrumb a { color: var(--bl-soft); }
.bl-breadcrumb a:hover { color: var(--bl-brand); }

/* Hero do artigo */
.bl-article-hero { padding: 52px 0 36px; }
.bl-article-hero h1 { font-size: clamp(1.8rem, 3.8vw, 2.8rem); font-weight: 800; line-height: 1.12; letter-spacing: -.03em; margin: 12px 0 22px; }
.bl-article-meta { display: flex; align-items: center; gap: 10px; font-size: .87rem; color: #6b7280; flex-wrap: wrap; }
.bl-meta-author { display: flex; align-items: center; gap: 5px; font-weight: 600; }

/* Imagem principal do artigo */
.bl-article-img-wrap { padding-bottom: 48px; }
.bl-article-img { width: 100%; height: auto; max-height: 480px; object-fit: cover; border-radius: 20px; display: block; }

/* Corpo do artigo */
.bl-article-body { padding-bottom: 48px; }
.bl-prose { font-family: "Lora", "Georgia", serif; font-size: 1.1rem; line-height: 1.85; color: #1a1f2e; }
.bl-prose .blog-lead { font-size: 1.22rem; line-height: 1.75; color: #374151; font-weight: 400; margin-bottom: 36px; padding-bottom: 32px; border-bottom: 2px solid var(--bl-line); }
.bl-prose h2 { font-family: "Plus Jakarta Sans", sans-serif; font-size: 1.45rem; font-weight: 800; letter-spacing: -.02em; color: var(--bl-ink); margin: 48px 0 18px; line-height: 1.2; }
.bl-prose p { margin-bottom: 20px; }
.bl-prose ul, .bl-prose ol { margin: 0 0 22px 0; padding-left: 24px; }
.bl-prose li { margin-bottom: 10px; line-height: 1.7; }
.bl-prose strong { font-weight: 700; color: var(--bl-ink); }
.bl-prose a { color: var(--bl-brand); text-decoration: underline; }

/* Compartilhamento */
.bl-share { display: flex; align-items: center; gap: 12px; margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--bl-line); font-size: .88rem; color: var(--bl-soft); flex-wrap: wrap; }
.bl-share a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 8px; border: 1px solid var(--bl-line); font-weight: 600; font-size: .85rem; color: var(--bl-ink); transition: background .15s, border-color .15s; }
.bl-share a:hover { background: var(--bl-bg); border-color: var(--bl-brand); color: var(--bl-brand); }

/* CTA inline */
.bl-article-cta { padding: 0 0 56px; }
.bl-inline-cta {
    background: linear-gradient(135deg, #eef4ff 0%, #f0f5ff 100%);
    border: 1.5px solid #c7d9ff; border-radius: 20px; padding: 36px 40px;
    display: flex; align-items: center; gap: 32px; justify-content: space-between; flex-wrap: wrap;
}
.bl-inline-cta-text strong { font-size: 1.1rem; font-weight: 800; color: var(--bl-ink); display: block; margin-bottom: 8px; }
.bl-inline-cta-text p { font-size: .93rem; color: var(--bl-soft); line-height: 1.55; margin: 0; max-width: 480px; }

/* Artigos relacionados */
.bl-related { padding: 0 0 80px; }
.bl-related-title { font-size: 1.45rem; font-weight: 800; letter-spacing: -.02em; margin-bottom: 32px; }

/* Footer */
.bl-footer { background: var(--bl-ink); color: rgba(255,255,255,.75); padding: 64px 0 0; }
.bl-footer-inner { max-width: 1140px; margin: 0 auto; padding: 0 22px 48px; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 48px; }
.bl-footer .bl-logo { color: #fff; }
.bl-footer-brand p { font-size: .88rem; margin-top: 12px; line-height: 1.55; max-width: 240px; }
.bl-footer-links { display: flex; flex-direction: column; gap: 10px; }
.bl-footer-links strong { color: #fff; font-size: .85rem; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 4px; }
.bl-footer-links a { font-size: .88rem; color: rgba(255,255,255,.6); transition: color .15s; }
.bl-footer-links a:hover { color: #fff; }
.bl-footer-copy { border-top: 1px solid rgba(255,255,255,.1); max-width: 1140px; margin: 0 auto; padding: 20px 22px; font-size: .82rem; color: rgba(255,255,255,.4); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bl-footer-copy a { color: rgba(255,255,255,.5); }
.bl-footer-copy a:hover { color: #fff; }
.bl-footer-sep { color: rgba(255,255,255,.2); }

/* ---- Mobile ---- */
@media (max-width: 900px) {
    .bl-featured { grid-template-columns: 1fr; }
    .bl-featured-img { height: 260px; }
    .bl-featured-body { padding: 28px 24px 32px; }
    .bl-grid { grid-template-columns: repeat(2, 1fr); }
    .bl-footer-inner { grid-template-columns: 1fr 1fr; }
    .bl-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .bl-hero { padding: 52px 0 44px; }
    .bl-grid { grid-template-columns: 1fr; }
    .bl-inline-cta { flex-direction: column; align-items: flex-start; }
    .bl-footer-inner { grid-template-columns: 1fr; gap: 32px; }
    .bl-nav { display: none; }
}
