/* ==========================================================================
   Imóveis Bixiga — estilos da vertical, escopados em .pib (§9.2)
   Variáveis no topo (antes de style.css do tema, §1.2). Todo seletor de
   componente começa por .pib; overlays anexados ao body (lightbox, toast,
   back-top, contador flutuante) ficam fora do escopo por necessidade.
   ========================================================================== */

:root{
	--pb-green:#006838; --pb-green-dark:#016831; --pb-green-light:#018a40;
	--pb-red:#d71921; --pb-red-dark:#b3141b; --pb-gold:#c8a24a; --pb-orange:#ff642e;
	--pb-ink:#222; --pb-text:#444; --pb-muted:#777; --pb-line:#e6e6e6;
	--pb-bg:#fff; --pb-bg-soft:#f5f5f5;
	--pb-radius:10px; --pb-radius-sm:6px;
	--pb-shadow:0 2px 10px rgba(0,0,0,.08); --pb-shadow-lg:0 8px 30px rgba(0,0,0,.14);
	--pb-font-head:'Raleway','Segoe UI',Arial,sans-serif;
	--pb-font-body:'Open Sans','Segoe UI',Arial,sans-serif;
	--pb-container:1200px;
}

/* ---- Base do container (§9.2 camada 3: só o essencial com !important) ---- */
.pib{ font-family:var(--pb-font-body); font-size:15px; line-height:1.6; color:var(--pb-text); }
.pib *,.pib *::before,.pib *::after{ box-sizing:border-box; }
.pib h1,.pib h2,.pib h3,.pib h4{ font-family:var(--pb-font-head)!important; color:var(--pb-ink); line-height:1.25; margin:0 0 .5em; font-weight:700; }
.pib a{ color:var(--pb-green); text-decoration:none; transition:color .15s ease; }
.pib a:hover{ color:var(--pb-green-dark); }
.pib img{ max-width:100%; height:auto; }
/* [hidden] precisa vencer os display: das classes de componente (grade, mapa). */
.pib [hidden]{ display:none!important; }
/* Nem todo tema define .screen-reader-text; garantimos no nosso escopo. */
.pib .screen-reader-text{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); white-space:nowrap; }
.pib .pb-container{ width:100%; max-width:var(--pb-container); margin:0 auto; padding:0 20px; }
.pib .pb-block{ padding:48px 0; }
.pib .pb-block--soft{ background:var(--pb-bg-soft); }
.pib .pb-block__head{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
.pib .pb-icon{ flex:0 0 auto; vertical-align:middle; }
.pib .pb-mb-0{ margin-bottom:0; }
.pib .pb-text-muted{ color:var(--pb-muted); }

/* ---- Botões ---- */
.pib .pb-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--pb-font-head); font-weight:600; font-size:14px; line-height:1; padding:12px 22px; border:2px solid transparent; border-radius:var(--pb-radius-sm); cursor:pointer; transition:all .18s ease; text-align:center; white-space:nowrap; }
.pib .pb-btn--green{ background:var(--pb-green); color:#fff; }
.pib .pb-btn--green:hover{ background:var(--pb-green-dark); color:#fff; }
.pib .pb-btn--red{ background:var(--pb-red); color:#fff; }
.pib .pb-btn--red:hover{ background:var(--pb-red-dark); color:#fff; }
.pib .pb-btn--wpp{ background:#25d366; color:#fff; }
.pib .pb-btn--wpp:hover{ background:#1da851; color:#fff; }
.pib .pb-btn--outline{ background:#fff; color:var(--pb-green); border-color:var(--pb-green); }
.pib .pb-btn--outline:hover{ background:var(--pb-green); color:#fff; }
.pib .pb-btn--ghost{ background:transparent; color:var(--pb-ink); border-color:var(--pb-line); }
.pib .pb-btn--ghost:hover{ border-color:var(--pb-green); color:var(--pb-green); }
.pib .pb-btn--block{ width:100%; }
.pib .pb-btn--sm{ padding:8px 14px; font-size:13px; }
.pib .pb-btn--lg{ padding:15px 30px; font-size:16px; }

/* ---- Badges / selos / títulos ---- */
.pib .pb-badge{ display:inline-block; padding:4px 10px; border-radius:20px; font-size:11px; font-weight:700; font-family:var(--pb-font-head); text-transform:uppercase; letter-spacing:.03em; }
.pib .pb-badge--venda{ background:var(--pb-green); color:#fff; }
.pib .pb-badge--aluguel{ background:var(--pb-red); color:#fff; }
.pib .pb-badge--destaque{ background:var(--pb-gold); color:#fff; }
.pib .pb-badge--sold{ background:#555; color:#fff; }
.pib .pb-selo{ display:inline-block; padding:4px 10px; border-radius:20px; font-size:11px; font-weight:800; font-family:var(--pb-font-head); text-transform:uppercase; letter-spacing:.04em; color:#fff; }
.pib .pb-selo--vitrine{ background:var(--pb-orange); }
.pib .pb-selo--exclusivo{ background:var(--pb-green); }
.pib .pb-selo--novo{ background:var(--pb-red); }
.pib .pb-section-title{ font-size:26px; position:relative; padding-bottom:12px; margin-bottom:24px; }
.pib .pb-section-title::after{ content:""; position:absolute; left:0; bottom:0; width:56px; height:4px; background:var(--pb-red); border-radius:2px; }

/* ---- Tarja de rua ---- */
.pib .pb-tarja-rua{ display:inline-flex; align-items:center; gap:5px; font-size:13px; color:var(--pb-muted); }
.pib a.pb-tarja-rua:hover{ color:var(--pb-green); }

/* ---- HERO ----
   Camadas, de baixo p/ cima: gradiente verde → ladrilho hidráulico (motivo das
   casas do bairro) → brilho vermelho da marca → silhueta de telhados na base. */
.pib .pb-hero{ position:relative; isolation:isolate; color:#fff; overflow:hidden; padding:74px 0 104px;
	background:
		radial-gradient(120% 90% at 15% 0%, rgba(1,138,64,.55), transparent 60%),
		linear-gradient(135deg,#013d22 0%,#01562e 38%,#006838 70%,#017a39 100%);
}
.pib .pb-hero--image{ background-size:cover; background-position:center; background-repeat:no-repeat; }

/* Ladrilho: losango + círculo em lattice, bem discreto. */
.pib .pb-hero::before{
	content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%23fff' stroke-opacity='.07' stroke-width='1.1'%3E%3Cpath d='M24 1 47 24 24 47 1 24Z'/%3E%3Ccircle cx='24' cy='24' r='6.5'/%3E%3Cpath d='M0 0h48v48H0z'/%3E%3C/g%3E%3C/svg%3E");
	background-size:48px 48px;
	-webkit-mask-image:linear-gradient(105deg,#000 0%,rgba(0,0,0,.35) 55%,transparent 78%);
	mask-image:linear-gradient(105deg,#000 0%,rgba(0,0,0,.35) 55%,transparent 78%);
}
.pib .pb-hero__overlay{ position:absolute; inset:0; z-index:-1; pointer-events:none;
	background:radial-gradient(circle at 84% -12%, rgba(215,25,33,.42), transparent 46%); }
.pib .pb-hero--image .pb-hero__overlay{ background:linear-gradient(100deg, rgba(1,61,34,.92) 0%, rgba(1,86,46,.78) 45%, rgba(0,0,0,.45) 100%); }
.pib .pb-hero--image::before{ opacity:.45; }

/* Telhados do Bixiga na borda inferior. */
.pib .pb-hero__skyline{
	position:absolute; left:0; right:0; bottom:0; height:72px; z-index:-1; pointer-events:none;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='72' viewBox='0 0 320 72'%3E%3Cg fill='%23fff' fill-opacity='.08'%3E%3Crect x='0' y='46' width='34' height='26'/%3E%3Crect x='40' y='34' width='28' height='38'/%3E%3Cpath d='M36 34 54 20 72 34Z'/%3E%3Crect x='74' y='50' width='40' height='22'/%3E%3Crect x='120' y='28' width='24' height='44'/%3E%3Cpath d='M116 28 132 14 148 28Z'/%3E%3Crect x='152' y='44' width='36' height='28'/%3E%3Crect x='192' y='38' width='30' height='34'/%3E%3Cpath d='M188 38 207 24 226 38Z'/%3E%3Crect x='230' y='52' width='44' height='20'/%3E%3Crect x='278' y='36' width='26' height='36'/%3E%3Cpath d='M274 36 291 22 308 36Z'/%3E%3Crect x='306' y='48' width='14' height='24'/%3E%3C/g%3E%3C/svg%3E");
	background-repeat:repeat-x; background-position:left bottom; background-size:320px 72px;
}

.pib .pb-hero__inner{ position:relative; display:grid; grid-template-columns:1fr 460px; gap:48px; align-items:center; }

/* Etiqueta acima do título */
.pib .pb-hero__eyebrow{ display:inline-flex; align-items:center; gap:8px; margin-bottom:18px;
	padding:6px 14px 6px 11px; border-radius:30px; background:rgba(255,255,255,.12);
	border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(3px);
	font-family:var(--pb-font-head); font-weight:700; font-size:12px; letter-spacing:.09em; text-transform:uppercase; }
.pib .pb-hero__eyebrow i{ width:7px; height:7px; border-radius:50%; background:var(--pb-red); box-shadow:0 0 0 3px rgba(215,25,33,.28); }

.pib .pb-hero__text h1{ color:#fff!important; font-size:clamp(30px,3.6vw,46px); font-weight:800; line-height:1.1; letter-spacing:-.015em; margin-bottom:16px; text-wrap:balance; }
/* Trecho marcado com *asteriscos* nas Configurações. */
.pib .pb-hero__hl{ background:none; color:#fff; position:relative; white-space:nowrap; }
.pib .pb-hero__hl::after{ content:""; position:absolute; left:0; right:0; bottom:-.1em; height:.14em;
	background:var(--pb-red); border-radius:3px; }
.pib .pb-hero__text p{ font-size:17px; line-height:1.6; opacity:.92; max-width:500px; margin-bottom:0; }

/* Atalhos de busca (chips). O "Ver todos" é o de contorno — fecha a fileira
   como saída para quem não quer filtrar nada. */
.pib .pb-hero__chips{ display:flex; flex-wrap:wrap; gap:9px; margin-top:24px; }
.pib .pb-chip{ display:inline-flex; align-items:center; padding:9px 16px; border-radius:30px;
	background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.26); color:#fff;
	font-family:var(--pb-font-head); font-weight:600; font-size:13.5px; line-height:1;
	transition:background .16s ease, border-color .16s ease, transform .16s ease; }
.pib .pb-chip:hover{ background:#fff; border-color:#fff; color:var(--pb-green); transform:translateY(-1px); }
.pib .pb-chip:focus-visible{ outline:2px solid var(--pb-gold); outline-offset:2px; }
.pib .pb-chip--all{ background:transparent; border-color:rgba(255,255,255,.5); }
.pib .pb-chip--all:hover{ background:#fff; color:var(--pb-green); }

/* Pontos de confiança */
.pib .pb-hero__points{ list-style:none; margin:26px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px 22px; }
.pib .pb-hero__points li{ display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; font-family:var(--pb-font-head); color:rgba(255,255,255,.9); }
.pib .pb-hero__points .pb-icon{ color:var(--pb-gold); }

/* Card de busca: elevado, com faixa de marca no topo */
.pib .pb-hero__search .pb-filters{ position:relative; padding-top:26px; border-radius:14px; overflow:hidden;
	box-shadow:0 24px 60px rgba(0,0,0,.28), 0 2px 6px rgba(0,0,0,.14); }
.pib .pb-hero__search .pb-filters::before{ content:""; position:absolute; top:0; left:0; right:0; height:4px;
	background:linear-gradient(90deg,var(--pb-green) 0%,var(--pb-green-light) 45%,var(--pb-gold) 72%,var(--pb-red) 100%); }

/* ---- FILTROS ---- */
.pib .pb-filters{ background:#fff; border-radius:var(--pb-radius); box-shadow:var(--pb-shadow-lg); padding:22px; color:var(--pb-text); }
.pib .pb-filters--sidebar{ box-shadow:var(--pb-shadow); position:sticky; top:100px; }
.pib .pb-filters__tabs{ display:flex; background:var(--pb-bg-soft); border-radius:var(--pb-radius-sm); padding:4px; margin-bottom:16px; }
.pib .pb-tab{ flex:1; text-align:center; padding:10px; border-radius:var(--pb-radius-sm); font-family:var(--pb-font-head); font-weight:700; font-size:14px; cursor:pointer; color:var(--pb-muted); }
.pib .pb-tab input{ position:absolute; opacity:0; }
.pib .pb-tab.is-active{ background:var(--pb-green); color:#fff; }
.pib .pb-filters__row{ display:flex; gap:12px; flex-wrap:wrap; }
.pib .pb-field{ flex:1 1 100%; margin-bottom:14px; min-width:0; }
.pib .pb-field--half{ flex:1 1 calc(50% - 6px); }
.pib .pb-field label{ display:block; font-size:12px; font-weight:700; font-family:var(--pb-font-head); text-transform:uppercase; letter-spacing:.03em; color:var(--pb-muted); margin-bottom:6px; }
.pib .pb-field select,.pib .pb-field input{ width:100%; padding:11px 12px; border:1px solid var(--pb-line); border-radius:var(--pb-radius-sm); font-size:14px; font-family:var(--pb-font-body); background:#fff; color:var(--pb-ink); }
.pib .pb-field select:focus,.pib .pb-field input:focus{ outline:none; border-color:var(--pb-green); box-shadow:0 0 0 3px rgba(0,104,56,.12); }
.pib .pb-pills{ display:flex; gap:6px; flex-wrap:wrap; }
.pib .pb-pill{ flex:1; text-align:center; padding:9px 4px; border:1px solid var(--pb-line); border-radius:var(--pb-radius-sm); font-weight:600; font-size:13px; cursor:pointer; color:var(--pb-text); min-width:44px; }
.pib .pb-pill input{ position:absolute; opacity:0; }
.pib .pb-pill.is-active{ background:var(--pb-green); color:#fff; border-color:var(--pb-green); }
.pib .pb-filters__more{ margin:6px 0 14px; }
.pib .pb-filters__more summary{ cursor:pointer; font-weight:700; font-family:var(--pb-font-head); color:var(--pb-green); padding:6px 0; }
.pib .pb-checks{ display:grid; grid-template-columns:1fr 1fr; gap:6px 12px; margin-top:10px; }
.pib .pb-check{ font-size:13px; display:flex; align-items:center; gap:6px; cursor:pointer; }
.pib .pb-filters__actions{ margin-top:6px; }
.pib .pb-filters__clear{ display:block; text-align:center; margin-top:10px; font-size:13px; color:var(--pb-muted); }

/* ---- TIPOS / BAIRROS ---- */
.pib .pb-types{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.pib .pb-type-card{ background:#fff; border:1px solid var(--pb-line); border-radius:var(--pb-radius); padding:22px 14px; text-align:center; color:var(--pb-ink); display:flex; flex-direction:column; align-items:center; gap:6px; transition:.18s; }
.pib .pb-type-card:hover{ border-color:var(--pb-green); box-shadow:var(--pb-shadow); transform:translateY(-2px); color:var(--pb-green); }
.pib .pb-type-card span{ font-family:var(--pb-font-head); font-weight:700; font-size:15px; }
.pib .pb-type-card small{ color:var(--pb-muted); font-size:12px; }
.pib .pb-neighborhoods{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.pib .pb-hood{ display:flex; align-items:center; gap:8px; background:var(--pb-bg-soft); border-radius:var(--pb-radius-sm); padding:12px 14px; color:var(--pb-ink); font-weight:600; }
.pib .pb-hood:hover{ background:var(--pb-green); color:#fff; }
.pib .pb-hood b{ margin-left:auto; background:#fff; color:var(--pb-green); border-radius:20px; padding:1px 9px; font-size:12px; }
.pib .pb-hood:hover b{ color:var(--pb-green); }

/* ---- GRID / CARDS ---- */
.pib .pb-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.pib .pb-grid--3{ grid-template-columns:repeat(3,1fr); }
.pib .pb-grid--4{ grid-template-columns:repeat(4,1fr); }
.pib .pb-card{ background:#fff; border:1px solid var(--pb-line); border-radius:var(--pb-radius); overflow:hidden; display:flex; flex-direction:column; transition:.18s; }
.pib .pb-card:hover{ box-shadow:var(--pb-shadow-lg); transform:translateY(-3px); border-color:transparent; }
.pib .pb-card__media{ position:relative; aspect-ratio:16/10; background:var(--pb-bg-soft); overflow:hidden; }
.pib .pb-card__slider{ display:block; width:100%; height:100%; }
.pib .pb-card__slides,.pib .pb-card__img{ width:100%; height:100%; }
.pib .pb-card__img{ object-fit:cover; }
.pib .pb-card__noimg{ display:flex; align-items:center; justify-content:center; height:100%; color:#c8c8c8; }
.pib .pb-card__badges{ position:absolute; top:10px; left:10px; display:flex; gap:6px; z-index:2; }
.pib .pb-card__sold{ position:absolute; inset:0; background:rgba(0,0,0,.55); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--pb-font-head); font-weight:800; font-size:20px; text-transform:uppercase; letter-spacing:.05em; z-index:3; }
.pib .pb-fav-btn{ position:absolute; top:10px; right:10px; z-index:2; width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.92); border:0; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--pb-ink); transition:.15s; }
.pib .pb-fav-btn:hover{ background:#fff; color:var(--pb-red); }
.pib .pb-fav-btn.is-active{ background:var(--pb-red); color:#fff; }
.pib .pb-fav-btn.is-active .pb-icon{ fill:#fff; }
.pib .pb-card__nav{ position:absolute; top:50%; transform:translateY(-50%); width:32px; height:32px; border-radius:50%; border:0; background:rgba(0,0,0,.4); color:#fff; font-size:20px; cursor:pointer; opacity:0; transition:.15s; z-index:2; }
.pib .pb-card__media:hover .pb-card__nav{ opacity:1; }
.pib .pb-card__nav--prev{ left:8px; } .pib .pb-card__nav--next{ right:8px; }
.pib .pb-card__dots{ position:absolute; bottom:8px; left:0; right:0; display:flex; gap:5px; justify-content:center; z-index:2; }
.pib .pb-card__dot{ width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.6); }
.pib .pb-card__dot.is-active{ background:#fff; width:18px; border-radius:3px; }
.pib .pb-card__body{ padding:16px; display:flex; flex-direction:column; gap:8px; flex:1; position:relative; }
.pib .pb-card__price{ font-family:var(--pb-font-head); }
.pib .pb-card__price strong{ font-size:22px; color:var(--pb-green); font-weight:800; }
.pib .pb-card__price span{ color:var(--pb-muted); font-size:14px; }
.pib .pb-card__fees{ margin:0; font-size:12px; color:var(--pb-muted); display:flex; gap:12px; flex-wrap:wrap; }
.pib .pb-card__title{ font-size:16px; margin:0; line-height:1.3; }
.pib .pb-card__title a{ color:var(--pb-ink); }
.pib .pb-card__title a:hover{ color:var(--pb-green); }
.pib .pb-card__addr{ margin:0; font-size:13px; color:var(--pb-muted); display:flex; align-items:center; gap:5px; }
.pib .pb-specs{ list-style:none; margin:6px 0 0; padding:10px 0 0; display:flex; gap:14px; flex-wrap:wrap; border-top:1px solid var(--pb-line); }
.pib .pb-specs li{ display:flex; align-items:center; gap:5px; font-size:13px; color:var(--pb-text); font-weight:600; }
.pib .pb-specs .pb-icon{ color:var(--pb-green); }
.pib .pb-card__footer{ margin-top:auto; display:flex; gap:8px; padding-top:6px; }
.pib .pb-card__footer .pb-btn{ flex:1; }
.pib .pb-card__ref{ font-size:11px; color:#aaa; }

/* ---- Card de rua ---- */
.pib .pb-card-rua{ background:#fff; border:1px solid var(--pb-line); border-radius:var(--pb-radius); overflow:hidden; display:flex; flex-direction:column; }
.pib .pb-card-rua__media{ aspect-ratio:16/10; background:var(--pb-bg-soft); display:flex; align-items:center; justify-content:center; color:#c8c8c8; }
.pib .pb-card-rua__media img{ width:100%; height:100%; object-fit:cover; }
.pib .pb-card-rua__body{ padding:14px; }
.pib .pb-card-rua__body h3{ font-size:16px; margin:0 0 6px; }
.pib .pb-card-rua__body p{ font-size:13px; color:var(--pb-muted); margin:0 0 8px; }
.pib .pb-card-rua__metro{ font-size:12px; color:var(--pb-green); display:inline-flex; align-items:center; gap:5px; }

/* ---- ARCHIVE ---- */
.pib .pb-breadcrumb{ padding:16px 0 0; }
.pib .pb-breadcrumb ol{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; font-size:13px; color:var(--pb-muted); }
.pib .pb-breadcrumb li:not(:last-child)::after{ content:"›"; margin-left:8px; color:#bbb; }
.pib .pb-archive-title{ font-size:30px; margin:10px 0 20px; }
.pib .pb-archive{ display:grid; grid-template-columns:320px 1fr; gap:30px; align-items:start; padding-bottom:50px; }
.pib .pb-sidebar-title{ font-size:18px; margin-bottom:14px; }
/* Filtros aplicados: cada pílula remove só o próprio critério. */
.pib .pb-active-filters{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.pib .pb-active-filters__label{ font-size:12px; font-weight:700; font-family:var(--pb-font-head); text-transform:uppercase; letter-spacing:.04em; color:var(--pb-muted); }
.pib .pb-active-filter{ display:inline-flex; align-items:center; gap:7px; padding:6px 12px; border-radius:30px;
	background:var(--pb-bg-soft); border:1px solid var(--pb-line); color:var(--pb-ink); font-size:13px; font-weight:600; }
.pib .pb-active-filter span[aria-hidden]{ font-size:16px; line-height:1; color:var(--pb-muted); }
.pib .pb-active-filter:hover{ border-color:var(--pb-red); color:var(--pb-red); background:#fff; }
.pib .pb-active-filter:hover span[aria-hidden]{ color:var(--pb-red); }
.pib .pb-active-filters__clear{ font-size:13px; color:var(--pb-muted); text-decoration:underline; }
.pib .pb-active-filters__clear:hover{ color:var(--pb-red); }

.pib .pb-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:20px; flex-wrap:wrap; }
.pib .pb-toolbar__count{ margin:0; color:var(--pb-text); }
.pib .pb-toolbar__count strong{ color:var(--pb-green); font-size:18px; }
.pib .pb-toolbar__right{ display:flex; align-items:center; gap:14px; }
.pib .pb-view-toggle{ display:flex; border:1px solid var(--pb-line); border-radius:var(--pb-radius-sm); overflow:hidden; }
.pib .pb-view-btn{ background:#fff; border:0; padding:9px 12px; cursor:pointer; color:var(--pb-muted); }
.pib .pb-view-btn.is-active{ background:var(--pb-green); color:#fff; }
.pib .pb-sort{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--pb-muted); }
.pib .pb-sort select{ padding:8px 10px; border:1px solid var(--pb-line); border-radius:var(--pb-radius-sm); font-family:var(--pb-font-body); }
.pib .pb-map{ height:640px; border-radius:var(--pb-radius); overflow:hidden; border:1px solid var(--pb-line); }
.pib .pb-map__canvas{ width:100%; height:100%; }
.pb-map-popup{ text-align:center; width:180px; }
.pb-map-popup img{ width:100%; height:100px; object-fit:cover; border-radius:6px; margin-bottom:6px; }
.pb-map-popup strong{ display:block; color:var(--pb-green); font-size:16px; }
.pb-map-popup span{ display:block; font-size:13px; margin:2px 0; }
.pb-map-popup small{ color:var(--pb-muted); }
.pb-map-popup a{ display:inline-block; margin-top:6px; font-weight:700; }
.pib .pb-filters-mobile-toggle{ display:none; margin-bottom:14px; }
.pib .pb-pagination-wrap{ margin-top:34px; text-align:center; }
.pib .pb-load-more{ margin-bottom:20px; min-width:240px; }
.pib .pb-pagination ul{ list-style:none; display:flex; gap:6px; justify-content:center; padding:0; margin:0; flex-wrap:wrap; }
.pib .pb-pagination a,.pib .pb-pagination span{ display:block; padding:9px 14px; border:1px solid var(--pb-line); border-radius:var(--pb-radius-sm); color:var(--pb-ink); font-weight:600; }
.pib .pb-pagination .current{ background:var(--pb-green); color:#fff; border-color:var(--pb-green); }
.pib .pb-pagination a:hover{ border-color:var(--pb-green); color:var(--pb-green); }
.pib .pb-empty{ grid-column:1/-1; text-align:center; padding:60px 20px; color:var(--pb-muted); }
.pib .pb-empty .pb-icon{ color:#ccc; margin-bottom:12px; }
.pib .pb-empty h3{ margin-bottom:8px; }
.pib .pb-loading{ grid-column:1/-1; text-align:center; color:var(--pb-muted); padding:40px; }

/* ---- SINGLE ---- */
.pib .pb-gallery{ padding-top:16px; }
.pib .pb-gallery__grid{ display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:8px; border-radius:var(--pb-radius); overflow:hidden; max-height:460px; }
.pib .pb-gallery__item{ position:relative; overflow:hidden; display:block; background:var(--pb-bg-soft); }
.pib .pb-gallery__item img{ width:100%; height:100%; object-fit:cover; min-height:120px; transition:.3s; }
.pib .pb-gallery__item:hover img{ transform:scale(1.04); }
.pib .pb-gallery__item--main{ grid-row:1/3; grid-column:1; }
.pib .pb-gallery__item--main img{ min-height:260px; }
.pib .pb-gallery__more{ position:absolute; inset:0; background:rgba(0,0,0,.55); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--pb-font-head); font-weight:800; font-size:20px; }
.pib .pb-gallery__placeholder{ grid-column:1/-1; display:flex; align-items:center; justify-content:center; height:300px; color:#ccc; background:var(--pb-bg-soft); }
.pib .pb-single__layout{ display:grid; grid-template-columns:1fr 360px; gap:36px; align-items:start; padding:36px 20px 50px; }
.pib .pb-single__badges{ display:flex; align-items:center; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
.pib .pb-single__ref{ font-size:12px; color:var(--pb-muted); margin-left:auto; }
.pib .pb-single__title{ font-size:28px; margin-bottom:8px; }
.pib .pb-single__addr{ color:var(--pb-muted); display:flex; align-items:center; gap:6px; margin:0 0 14px; }
.pib .pb-single__actions{ display:flex; gap:10px; }
.pib .pb-single__specs{ margin:22px 0; padding:18px; background:var(--pb-bg-soft); border-radius:var(--pb-radius); }
.pib .pb-single__specs .pb-specs{ border:0; padding:0; gap:26px; }
.pib .pb-single__specs .pb-specs li{ font-size:15px; flex-direction:column; gap:4px; align-items:center; }
.pib .pb-single__specs .pb-icon{ width:22px; height:22px; }
.pib .pb-single__section{ margin-bottom:34px; }
.pib .pb-single__desc{ line-height:1.75; }
.pib .pb-details-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0 30px; }
.pib .pb-details-grid li{ display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px solid var(--pb-line); font-size:14px; }
.pib .pb-details-grid__k{ color:var(--pb-muted); }
.pib .pb-details-grid__v{ font-weight:700; color:var(--pb-ink); }
.pib .pb-features{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:10px 20px; }
.pib .pb-features li{ display:flex; align-items:center; gap:8px; font-size:14px; }
.pib .pb-features .pb-icon{ color:var(--pb-green); }
.pib .pb-media-embeds .pb-embed{ position:relative; padding-top:56.25%; margin-bottom:14px; }
.pib .pb-media-embeds iframe{ position:absolute; inset:0; width:100%; height:100%; border-radius:var(--pb-radius); }
.pib .pb-single__map{ height:340px; border-radius:var(--pb-radius); overflow:hidden; border:1px solid var(--pb-line); }
.pib .pb-single__aside{ position:sticky; top:100px; }
.pib .pb-contact-card{ background:#fff; border:1px solid var(--pb-line); border-radius:var(--pb-radius); box-shadow:var(--pb-shadow); padding:22px; }
.pib .pb-contact-card__label{ display:block; font-size:12px; color:var(--pb-muted); text-transform:uppercase; letter-spacing:.03em; font-weight:700; }
.pib .pb-contact-card__price strong{ font-family:var(--pb-font-head); font-size:30px; color:var(--pb-green); font-weight:800; }
.pib .pb-contact-card__price > span{ color:var(--pb-muted); }
.pib .pb-contact-card__fees{ margin:8px 0 0; font-size:12px; color:var(--pb-muted); display:flex; flex-direction:column; gap:2px; }
.pib .pb-contact-card__total{ margin:8px 0 0; font-size:13px; color:var(--pb-ink); }
.pib .pb-contact-card__anun,.pib .pb-contact-card__creci{ font-size:13px; color:var(--pb-text); display:flex; align-items:center; gap:6px; margin:10px 0 0; }
.pib .pb-contact-card__anun{ padding-top:14px; border-top:1px solid var(--pb-line); }
.pib .pb-contact-card .pb-btn{ margin-top:10px; }
.pib .pb-contact-form{ margin-top:18px; padding-top:18px; border-top:1px solid var(--pb-line); }
.pib .pb-contact-form__title{ font-family:var(--pb-font-head); font-weight:700; margin:0 0 10px; }
.pib .pb-contact-form input,.pib .pb-contact-form textarea,.pib .pb-contact-form select{ width:100%; padding:11px 12px; border:1px solid var(--pb-line); border-radius:var(--pb-radius-sm); margin-bottom:10px; font-family:var(--pb-font-body); font-size:14px; }
.pib .pb-contact-form input:focus,.pib .pb-contact-form textarea:focus{ outline:none; border-color:var(--pb-green); box-shadow:0 0 0 3px rgba(0,104,56,.12); }
.pib .pb-contact-form__feedback{ font-size:13px; margin:10px 0 0; }
.pib .pb-contact-form__feedback.is-ok{ color:var(--pb-green); }
.pib .pb-contact-form__feedback.is-error{ color:var(--pb-red); }
.pib .pb-similar{ padding-bottom:50px; }

/* ---- RUA (single) ---- */
.pib .pb-rua-hero{ background:linear-gradient(135deg,#014f2b,#006838); color:#fff; padding:40px 0; }
.pib .pb-rua-hero h1{ color:#fff!important; font-size:32px; }
.pib .pb-rua-hero p{ opacity:.94; max-width:640px; }
.pib .pb-rua-hero__stats{ display:flex; gap:22px; flex-wrap:wrap; margin-top:14px; font-size:14px; }
.pib .pb-rua-hero__stats strong{ font-size:18px; }
.pib .pb-rua__layout{ display:grid; grid-template-columns:1fr 300px; gap:36px; align-items:start; }
.pib .pb-rua__text{ line-height:1.8; }
.pib .pb-rua__box{ background:var(--pb-bg-soft); border-radius:var(--pb-radius); padding:18px; }
.pib .pb-rua__box h3{ font-size:16px; }

/* ---- CTA / ANUNCIE / PAGE ---- */
.pib .pb-cta{ background:linear-gradient(120deg,var(--pb-red),var(--pb-red-dark)); color:#fff; padding:44px 0; }
.pib .pb-cta__inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.pib .pb-cta h2{ color:#fff!important; font-size:26px; margin-bottom:6px; }
.pib .pb-cta p{ margin:0; opacity:.92; }
.pib .pb-anuncie-hero{ background:var(--pb-green); color:#fff; padding:44px 0; text-align:center; }
.pib .pb-anuncie-hero h1{ color:#fff!important; font-size:32px; }
.pib .pb-anuncie-hero p{ margin:0 auto; opacity:.92; max-width:680px; }
.pib .pb-anuncie__grid{ display:grid; grid-template-columns:1fr 1.2fr; gap:40px; align-items:start; }
.pib .pb-form-row{ display:flex; gap:12px; flex-wrap:wrap; }
.pib .pb-form-row input,.pib .pb-form-row select{ flex:1 1 calc(50% - 6px); }
.pib .pb-anuncie__form input,.pib .pb-anuncie__form textarea,.pib .pb-anuncie__form select{ width:100%; padding:13px 14px; border:1px solid var(--pb-line); border-radius:var(--pb-radius-sm); margin-bottom:10px; font-family:var(--pb-font-body); font-size:14px; }
.pib .pb-page{ max-width:820px; }
.pib .pb-page__content{ line-height:1.75; }
.pib .pb-page__content h2{ margin-top:1.4em; }

/* ==========================================================================
   Full width nas telas da vertical (classe pib-fullwidth no body, §9.2)
   Todo tema envolve o conteúdo num container (~1140–1200px) e às vezes numa
   coluna de ~66%. Neutralizamos os wrappers — só nas páginas da vertical.
   O .pib traz o seu próprio .pb-container, então nada é perdido.
   ========================================================================== */
/* ColorMag Pro (site publicado): #cm-content > .cm-container > .pib.
   IMPORTANTE: .cm-container é o container genérico do tema — aparece também no
   cabeçalho (#cm-header-1), no menu (#cm-primary-nav) e no rodapé
   (.cm-footer-bar). Só o de dentro de #cm-content pode ser alargado, senão o
   topo e o rodapé do site também esticam.
   Versões clássicas usam #main > .inner-wrap > #primary. */
body.pib-fullwidth #cm-content,
body.pib-fullwidth #cm-content > .cm-container,
body.pib-fullwidth #cm-content > .cm-container > .cm-primary,
body.pib-fullwidth #main,
body.pib-fullwidth #main > .inner-wrap,
/* ChromeNews / ChromeMag (XAMPP local). */
body.pib-fullwidth #content.container-wrapper,
body.pib-fullwidth .section-block-upper,
/* Comuns. */
body.pib-fullwidth #content,
body.pib-fullwidth #primary,
body.pib-fullwidth #primary.content-area,
body.pib-fullwidth main.site-main{
	width:100%!important; max-width:none!important;
	margin-left:0!important; margin-right:0!important;
	padding-left:0!important; padding-right:0!important;
	float:none!important;
}
body.pib-fullwidth #cm-content .cm-secondary,
body.pib-fullwidth #secondary,
body.pib-fullwidth .widget-area.sidebar{ display:none!important; }
body.pib-fullwidth .pib{ width:100%; }

/* O ColorMag Pro aplica transform:translate(0,0) no .cm-container. Mesmo sendo
   identidade, isso cria um bloco de contenção e prende overlays position:fixed
   (lightbox, toast, favoritos) dentro da coluna de conteúdo. */
body.pib-fullwidth #cm-content .cm-container,
body.pib-fullwidth #cm-content .cm-row{ transform:none!important; }

/* ==========================================================================
   Overlays fora do escopo .pib (anexados ao body)
   ========================================================================== */
.pb-lightbox{ position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:9998; display:flex; align-items:center; justify-content:center; }
/* O atributo [hidden] do UA (display:none) perde para a classe acima; sem esta
   regra o overlay fica sempre visível e o botão de fechar não surte efeito. */
.pb-lightbox[hidden]{ display:none!important; }
.pb-lightbox__img{ max-width:90vw; max-height:86vh; border-radius:6px; }
.pb-lightbox__close{ position:absolute; top:18px; right:24px; background:none; border:0; color:#fff; font-size:40px; cursor:pointer; line-height:1; }
.pb-lightbox__nav{ position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.15); border:0; color:#fff; font-size:40px; width:56px; height:56px; border-radius:50%; cursor:pointer; }
.pb-lightbox__nav--prev{ left:20px; } .pb-lightbox__nav--next{ right:20px; }
.pb-lightbox__counter{ position:absolute; bottom:22px; left:0; right:0; text-align:center; color:#fff; font-size:14px; }
.pb-toast{ position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px); background:var(--pb-ink,#222); color:#fff; padding:12px 22px; border-radius:30px; font-size:14px; z-index:9999; opacity:0; pointer-events:none; transition:.25s; font-family:var(--pb-font-body); }
.pb-toast.is-visible{ opacity:1; transform:translateX(-50%) translateY(0); }
.pb-back-top{ position:fixed; bottom:24px; right:24px; width:46px; height:46px; border-radius:50%; background:var(--pb-green,#006838); color:#fff; border:0; font-size:20px; cursor:pointer; opacity:0; pointer-events:none; transition:.2s; z-index:400; box-shadow:0 8px 30px rgba(0,0,0,.14); }
.pb-back-top.is-visible{ opacity:1; pointer-events:auto; }
.pb-back-top:hover{ background:var(--pb-red,#d71921); }
/* Contador flutuante de favoritos (o header é do ColorMag, §crit. de aceite) */
.pb-fav-float{ position:fixed; bottom:82px; right:24px; z-index:400; display:none; align-items:center; gap:7px; background:#fff; color:var(--pb-ink,#222); border:1px solid var(--pb-line,#e6e6e6); border-radius:30px; padding:9px 15px; font-family:var(--pb-font-head); font-weight:700; font-size:14px; box-shadow:0 8px 30px rgba(0,0,0,.14); }
.pb-fav-float.is-visible{ display:inline-flex; }
.pb-fav-float .pb-icon{ color:var(--pb-red,#d71921); }
.pb-fav-float b{ background:var(--pb-red,#d71921); color:#fff; border-radius:20px; min-width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; font-size:12px; padding:0 5px; }

/* ==========================================================================
   Responsivo
   ========================================================================== */
@media (max-width:1024px){
	.pib .pb-hero{ padding:56px 0 84px; }
	.pib .pb-hero__inner{ grid-template-columns:1fr; gap:32px; }
	.pib .pb-hero__search{ max-width:520px; }
	.pib .pb-single__layout{ grid-template-columns:1fr; }
	.pib .pb-single__aside{ position:static; }
	.pib .pb-rua__layout{ grid-template-columns:1fr; }
	.pib .pb-types,.pib .pb-neighborhoods,.pib .pb-grid--4{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:900px){
	.pib .pb-archive{ grid-template-columns:1fr; }
	.pib .pb-filters-mobile-toggle{ display:flex; }
	.pib .pb-archive__filters{ display:none; }
	.pib .pb-archive__filters.is-open{ display:block; }
	.pib .pb-filters--sidebar{ position:static; }
	.pib .pb-anuncie__grid{ grid-template-columns:1fr; }
}
@media (max-width:680px){
	.pib .pb-grid,.pib .pb-grid--3,.pib .pb-grid--4{ grid-template-columns:1fr; }
	.pib .pb-hero{ padding:40px 0 68px; }
	.pib .pb-hero__skyline{ height:52px; background-size:240px 54px; }
	.pib .pb-hero__points{ flex-direction:column; gap:9px; margin-top:20px; }
	.pib .pb-hero__eyebrow{ font-size:11px; letter-spacing:.06em; }
	/* No celular os chips vêm antes do formulário longo: viram a saída de um toque. */
	.pib .pb-hero__chips{ gap:8px; margin-top:20px; }
	.pib .pb-chip{ padding:8px 14px; font-size:13px; }
	.pib .pb-types,.pib .pb-neighborhoods{ grid-template-columns:repeat(2,1fr); }
	.pib .pb-checks{ grid-template-columns:1fr; }
	.pib .pb-features{ grid-template-columns:1fr 1fr; }
	.pib .pb-details-grid{ grid-template-columns:1fr; }
	.pib .pb-gallery__grid{ grid-template-columns:1fr 1fr; grid-template-rows:auto; }
	.pib .pb-gallery__item--main{ grid-column:1/-1; grid-row:auto; }
	.pib .pb-cta__inner{ flex-direction:column; text-align:center; }
}
