/* ============================================================
   Cotinguiba Imóveis — style.css
   ============================================================ */

:root {
  --cor-primaria:     #0B3D91;
  --cor-secundaria:   #005BBB;
  --cor-destaque:     #D71920;
  --cor-fundo:        #FFFFFF;
  --cor-fundo-suave:  #F5F7FA;
  --cor-texto:        #1F2937;
  --cor-texto-suave:  #6B7280;
  --cor-borda:        #E5E7EB;
  --cor-whatsapp:     #25D366;
  --shadow-sm:        0 2px 8px rgba(0,0,0,.06);
  --shadow-md:        0 4px 20px rgba(0,0,0,.10);
  --shadow-lg:        0 8px 40px rgba(0,0,0,.14);
  --radius:           12px;
  --transition:       .25s ease;
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; color: var(--cor-texto); background: var(--cor-fundo); line-height: 1.65; }
img { max-width: 100%; }
a { text-decoration: none; color: inherit; }

/* ── Navbar ── */
.navbar { border-bottom: 1px solid var(--cor-borda); z-index: 1030; }
.brand-icon { font-size: 1.7rem; color: var(--cor-primaria); }
.brand-text { font-size: 1.15rem; color: var(--cor-texto); }
.brand-text strong { color: var(--cor-primaria); }
.nav-link { font-weight: 500; color: var(--cor-texto) !important; padding: .45rem .75rem !important; border-radius: 8px; transition: background var(--transition); }
.nav-link:hover { background: var(--cor-fundo-suave); color: var(--cor-primaria) !important; }

/* ── Buttons ── */
.btn-primario {
  background: var(--cor-primaria); color: #fff; border: none;
  padding: .65rem 1.6rem; border-radius: 8px; font-weight: 600;
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition);
}
.btn-primario:hover { background: var(--cor-secundaria); color: #fff; transform: translateY(-1px); box-shadow: var(--shadow-md); }

.btn-destaque {
  background: var(--cor-destaque); color: #fff; border: none;
  padding: .65rem 1.6rem; border-radius: 8px; font-weight: 600;
  transition: background var(--transition), transform var(--transition);
}
.btn-destaque:hover { background: #b8141a; color: #fff; transform: translateY(-1px); }

.btn-whatsapp {
  background: var(--cor-whatsapp); color: #fff !important; border: none;
  padding: .55rem 1.2rem; border-radius: 8px; font-weight: 600;
  white-space: nowrap; font-size: 1rem;
  transition: background var(--transition);
}
@media (max-width: 575.98px) {
  .btn-whatsapp { font-size: .9rem; padding: .5rem 1rem; }
}
.btn-whatsapp:hover { background: #1ebe5a; color: #fff; }

.btn-outline-primario {
  background: transparent; color: var(--cor-primaria); border: 2px solid var(--cor-primaria);
  padding: .6rem 1.5rem; border-radius: 8px; font-weight: 600;
  transition: all var(--transition);
}
.btn-outline-primario:hover { background: var(--cor-primaria); color: #fff; }

/* ── Hero ── */
.hero {
  background:
    linear-gradient(160deg, rgba(7,31,74,.94) 0%, rgba(11,61,145,.90) 55%, rgba(13,79,168,.87) 100%),
    url('../img/bg.jpg') center/cover no-repeat;
  color: #fff; padding: 90px 0 70px; position: relative; overflow: hidden;
}
.hero-bg-pattern {
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    radial-gradient(circle at 15% 60%, rgba(255,255,255,.04) 0%, transparent 45%),
    radial-gradient(circle at 85% 20%, rgba(255,255,255,.03) 0%, transparent 40%);
}
.hero-title {
  font-size: clamp(1.7rem, 3.8vw, 2.75rem); font-weight: 800;
  text-align: center; line-height: 1.2; text-shadow: 0 2px 14px rgba(0,0,0,.28);
}
.hero-subtitle {
  text-align: center; font-size: 1rem; opacity: .82;
  max-width: 500px; margin: .75rem auto 2rem;
}

/* Painel de filtros hero */
.hero-filtros-panel {
  background: rgba(255,255,255,.13);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border: none;
  border-bottom: 5px solid var(--cor-destaque);
  border-radius: 16px; padding: 1.75rem 2rem;
  box-shadow: 0 8px 40px rgba(0,0,0,.28);
  max-width: 920px; margin: 0 auto;
}
.hero-filtros-panel .form-label {
  color: rgba(255,255,255,.88); font-size: .8rem; font-weight: 600;
  margin-bottom: .28rem; display: block;
}
.hero-filtros-panel .form-control,
.hero-filtros-panel .form-select {
  background: rgba(255,255,255,.96); border: none; border-radius: 8px;
  padding: .62rem .9rem; font-size: .9rem; color: var(--cor-texto);
  transition: box-shadow var(--transition);
}
.hero-filtros-panel .form-control:focus,
.hero-filtros-panel .form-select:focus {
  box-shadow: 0 0 0 3px rgba(215,25,32,.4); outline: none;
}
.btn-filtrar {
  background: var(--cor-secundaria); color: #fff; border: none;
  border-radius: 8px; font-weight: 700; font-size: .95rem;
  padding: .68rem 1.8rem; width: 100%; letter-spacing: .03em;
  transition: background var(--transition), transform var(--transition);
}
.btn-filtrar:hover { background: var(--cor-primaria); transform: translateY(-1px); }

/* ── Range slider de preço — custom puro ── */
.preco-range-wrap { padding: 0 2px; }
.preco-range-display {
  color: rgba(255,255,255,.95);
  font-size: .82rem; font-weight: 600;
  text-align: center; margin-bottom: .75rem;
  letter-spacing: .01em; min-height: 1.1em;
}
.preco-range-track {
  position: relative;
  height: 4px;
  background: rgba(255,255,255,.2);
  border-radius: 4px;
  margin: 14px 10px;
  cursor: pointer;
  user-select: none; -webkit-user-select: none;
}
.preco-range-fill {
  position: absolute;
  height: 100%; top: 0;
  background: var(--cor-destaque);
  border-radius: 4px;
  pointer-events: none;
}
.preco-range-thumb {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  width: 20px; height: 20px;
  background: var(--cor-destaque);
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(215,25,32,.25), 0 2px 6px rgba(0,0,0,.35);
  cursor: grab; z-index: 2;
  transition: box-shadow .15s, transform .1s;
}
.preco-range-thumb:active  { cursor: grabbing; transform: translateY(-50%) scale(1.2); box-shadow: 0 0 0 5px rgba(215,25,32,.35), 0 3px 10px rgba(0,0,0,.4); }
.preco-range-thumb:focus   { outline: none; box-shadow: 0 0 0 4px rgba(215,25,32,.5); }

/* ── Section titles ── */
.section-title { font-size: 1.75rem; font-weight: 800; color: var(--cor-texto); }
.section-title span { color: var(--cor-primaria); }
.section-subtitle { color: var(--cor-texto-suave); font-size: 1rem; }
.section-divider { width: 52px; height: 4px; background: var(--cor-destaque); border-radius: 2px; margin: .6rem 0 1.5rem; }

/* Tabs Comprar / Alugar */
.tabs-finalidade { display: flex; gap: .5rem; justify-content: center; margin-bottom: 2rem; }
.tab-btn {
  padding: .55rem 2.2rem; border-radius: 8px; border: 2px solid var(--cor-borda);
  background: #fff; color: var(--cor-texto-suave); font-weight: 600; font-size: .95rem;
  cursor: pointer; transition: all var(--transition);
}
.tab-btn.active {
  background: var(--cor-destaque); border-color: var(--cor-destaque);
  color: #fff; box-shadow: 0 4px 14px rgba(215,25,32,.3);
}
.tab-btn:not(.active):hover { border-color: var(--cor-primaria); color: var(--cor-primaria); }

/* ── Card de imóvel ── */
.imovel-card {
  background: #fff; border-radius: var(--radius); overflow: hidden;
  box-shadow: var(--shadow-sm); border: 1px solid var(--cor-borda);
  transition: transform var(--transition), box-shadow var(--transition);
  height: 100%; display: flex; flex-direction: column; position: relative; cursor: pointer;
}
.imovel-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.imovel-card-link { position: absolute; inset: 0; z-index: 1; }
.imovel-card-actions, .card-badges { position: relative; z-index: 2; }

/* Imagem */
.imovel-card-img { position: relative; overflow: hidden; height: 210px; background: #e5e7eb; }
.imovel-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.imovel-card:hover .imovel-card-img img { transform: scale(1.06); }

/* Badges na imagem */
.card-badges { position: absolute; top: 10px; left: 10px; right: 10px; display: flex; gap: 6px; }
.tag-tipo {
  background: var(--cor-primaria); color: #fff; font-size: .7rem; font-weight: 700;
  padding: 4px 12px; border-radius: 4px; letter-spacing: .05em; text-transform: uppercase;
}
.tag-finalidade {
  background: var(--cor-primaria); color: #fff; font-size: .7rem; font-weight: 700;
  padding: 4px 12px; border-radius: 4px; letter-spacing: .05em; text-transform: uppercase;
}
.tag-destaque {
  background: var(--cor-destaque); color: #fff; font-size: .7rem; font-weight: 700;
  padding: 4px 12px; border-radius: 4px; letter-spacing: .05em; text-transform: uppercase;
  margin-left: auto;
}
.tag-empreendimento {
  background: #7c3aed; color: #fff; font-size: .65rem; font-weight: 700;
  padding: 4px 10px; border-radius: 4px; letter-spacing: .05em; text-transform: uppercase;
}
.emp-status { display: flex; align-items: center; gap: .4rem; font-size: .8rem; color: var(--cor-texto-suave); font-weight: 600; }
.emp-consulte { font-size: .85rem; font-weight: 700; color: #7c3aed; letter-spacing: .02em; }

/* Corpo */
.imovel-card-body { padding: 1.1rem 1.15rem 1.2rem; flex: 1; display: flex; flex-direction: column; gap: .35rem; }
.imovel-card-title { font-size: .88rem; font-weight: 400; color: var(--cor-texto); line-height: 1.35; margin: 0; }
.imovel-card-loc { font-size: .98rem; font-weight: 600; color: var(--cor-texto); margin: 0; }
.imovel-card-loc i { color: var(--cor-primaria); }
.imovel-card-codigo { font-size: .75rem; color: #888; margin: 2px 0 6px; font-weight: 600; letter-spacing: .03em; }
.imovel-card-codigo i { color: var(--cor-destaque); margin-right: 1px; }

/* Features */
.imovel-card-features {
  display: flex; gap: .9rem; align-items: center; flex-wrap: wrap;
  padding: .55rem 0; border-top: 1px solid var(--cor-borda); border-bottom: 1px solid var(--cor-borda);
  margin: .3rem 0;
}
.feat-item { display: flex; align-items: center; gap: 5px; font-size: .82rem; color: var(--cor-texto-suave); font-weight: 500; }
.feat-item i { font-size: .95rem; color: var(--cor-primaria); }

/* Mantém compatibilidade com feature-badge usado em imoveis.php */
.feature-badge { background: var(--cor-fundo-suave); border: 1px solid var(--cor-borda); border-radius: 6px; padding: 3px 8px; font-size: .77rem; color: var(--cor-texto-suave); display: flex; align-items: center; gap: 4px; }
.feature-badge i { color: var(--cor-primaria); }

/* Preço */
.imovel-card-preco { font-size: 1.18rem; font-weight: 800; color: var(--cor-primaria); margin-top: auto; }

/* Ações */
.imovel-card-actions { display: flex; gap: .5rem; margin-top: .6rem; }
.imovel-card-actions a { flex: 1; text-align: center; padding: .5rem; border-radius: 8px; font-size: .82rem; font-weight: 600; transition: all var(--transition); }
.imovel-card-actions .btn-ver { background: var(--cor-primaria); color: #fff; }
.imovel-card-actions .btn-ver:hover { background: var(--cor-secundaria); }
.imovel-card-actions .btn-wa { background: var(--cor-whatsapp); color: #fff; }
.imovel-card-actions .btn-wa:hover { background: #1ebe5a; }

/* ── Galeria ── */
.galeria-principal { border-radius: var(--radius); overflow: hidden; background: #111; }
.galeria-principal img { width: 100%; max-height: 480px; object-fit: cover; cursor: zoom-in; }
.galeria-thumbs { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .5rem; }
.galeria-thumb {
  width: 78px; height: 58px; border-radius: 8px; overflow: hidden;
  border: 2px solid transparent; cursor: pointer; transition: border-color var(--transition);
}
.galeria-thumb.active, .galeria-thumb:hover { border-color: var(--cor-primaria); }
.galeria-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* Modal galeria */
.galeria-modal-img { max-height: 80vh; object-fit: contain; }

/* ── Status obra infographic ── */
.status-obra-bar { display: flex; align-items: center; gap: 0; margin: 1.5rem 0; }
.status-etapa {
  display: flex; flex-direction: column; align-items: center; gap: .4rem;
  flex: 1; position: relative; padding: .75rem .5rem;
  background: var(--cor-fundo-suave); border: 2px solid var(--cor-borda);
  border-radius: 10px; text-align: center; transition: all var(--transition);
}
.status-etapa.ativa { background: var(--cor-primaria); border-color: var(--cor-primaria); color: #fff; }
.status-etapa.ativa .etapa-icon { color: #fff; }
.status-etapa.ativa .etapa-label { color: #fff; }
.etapa-icon { font-size: 1.6rem; color: var(--cor-texto-suave); }
.etapa-label { font-size: .8rem; font-weight: 600; color: var(--cor-texto-suave); }
.status-connector { flex: 0 0 32px; height: 3px; background: var(--cor-borda); }
.status-connector.ativo { background: var(--cor-primaria); }

/* ── Informações do imóvel ── */
.info-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1rem; }
.info-item { background: var(--cor-fundo-suave); border: 1px solid var(--cor-borda); border-radius: 10px; padding: 1rem; text-align: center; }
.info-item i { font-size: 1.5rem; color: var(--cor-primaria); display: block; margin-bottom: .4rem; }
.info-item .info-valor { font-size: 1.1rem; font-weight: 700; color: var(--cor-texto); }
.info-item .info-label { font-size: .75rem; color: var(--cor-texto-suave); margin-top: 2px; }

/* Medidas do terreno */
.medidas-terreno-grid { display: flex; flex-wrap: wrap; gap: .75rem; }
.medida-item {
  background: var(--cor-fundo-suave); border: 1px solid var(--cor-borda);
  border-radius: 50px; padding: .45rem 1.1rem;
  display: flex; flex-direction: column; align-items: center; min-width: 140px;
}
.medida-label { font-size: .72rem; color: var(--cor-texto-suave); white-space: nowrap; }
.medida-valor { font-size: .9rem; font-weight: 700; color: var(--cor-texto); white-space: nowrap; }

/* ── Por que nos escolher ── */
/* ── Seção Diferenciais ─────────────────────────── */
.section-diferenciais { background: #071f4a; padding: 4.5rem 0; }
.section-diferenciais .section-title { color: #fff; }
.section-diferenciais .section-title span { color: #60a5fa; }
.section-diferenciais .section-divider { background: #60a5fa; }
.diferencial-subtitle { color: rgba(255,255,255,.55); font-size: .92rem; max-width: 480px; margin: .25rem auto 0; }

.diferencial-card {
  position: relative; overflow: hidden;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.09);
  border-top: 3px solid #2563eb;
  border-radius: var(--radius);
  padding: 2rem 1.5rem 1.5rem;
  transition: background .25s, transform .25s;
}
.diferencial-card:hover { background: rgba(255,255,255,.09); transform: translateY(-5px); }

.diferencial-num {
  position: absolute; top: -.75rem; right: .75rem;
  font-size: 5.5rem; font-weight: 900; line-height: 1;
  color: rgba(255,255,255,.04); pointer-events: none; user-select: none;
}
.diferencial-icon {
  width: 52px; height: 52px; border-radius: 12px;
  background: rgba(37,99,235,.3);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; color: #93c5fd;
  margin-bottom: 1.25rem;
}
.diferencial-title { color: #fff; font-weight: 700; font-size: 1rem; margin-bottom: .5rem; }
.diferencial-desc { color: rgba(255,255,255,.55); font-size: .875rem; margin-bottom: 0; line-height: 1.65; }

/* ── Seções ── */
.section-light { background: var(--cor-fundo-suave); }
.section-dark  { background: var(--cor-primaria); color: #fff; }
.section-cta-bg {
  position: relative;
  color: #fff;
  background:
    linear-gradient(160deg, rgba(7,31,74,.97) 0%, rgba(11,61,145,.95) 55%, rgba(13,79,168,.93) 100%),
    url('../img/bg.jpg') center/cover no-repeat;
}

/* ── Localização / Mapa ── */
.section-localizacao { background: #fff; }
.loc-badge {
  display: inline-flex; align-items: center; gap: .35rem;
  background: rgba(11,61,145,.08); color: var(--cor-primaria);
  font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  padding: .35rem .9rem; border-radius: 100px;
}
/* mapa full-bleed */
.loc-mapa-full {
  position: relative;
  width: 100%;
  height: 520px;
}
.loc-mapa-full iframe {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  border: 0; display: block;
}
/* card overlay */
.loc-info-overlay {
  position: absolute;
  top: 50%; right: 5%;
  transform: translateY(-50%);
  width: 360px;
  background: var(--cor-primaria);
  border-radius: 20px;
  padding: 2rem 1.8rem;
  display: flex; flex-direction: column; gap: 1.4rem;
  box-shadow: 0 16px 56px rgba(0,0,0,.35);
  z-index: 10;
}
.loc-info-header { display: flex; align-items: center; gap: 1rem; }
.loc-logo-icon {
  width: 52px; height: 52px; border-radius: 12px;
  background: rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.5rem; color: #fff; flex-shrink: 0;
}
.loc-info-header h4 { color: #fff; font-size: 1.15rem; font-weight: 800; }
.loc-tag {
  display: inline-block;
  background: var(--cor-destaque); color: #fff;
  font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
  padding: .15rem .55rem; border-radius: 100px;
}
.loc-detail-list { display: flex; flex-direction: column; gap: 1rem; }
.loc-detail-item { display: flex; align-items: flex-start; gap: .85rem; }
.loc-detail-icon {
  width: 36px; height: 36px; border-radius: 8px;
  background: rgba(255,255,255,.12);
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem; color: rgba(255,255,255,.85); flex-shrink: 0; margin-top: 1px;
}
.loc-detail-label { font-size: .7rem; color: rgba(255,255,255,.6); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.loc-detail-value { font-size: .88rem; color: #fff; font-weight: 600; line-height: 1.45; margin-top: 1px; }
.btn-como-chegar {
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff; color: var(--cor-primaria);
  font-weight: 700; font-size: .88rem;
  padding: .65rem 1.1rem; border-radius: 10px;
  text-decoration: none; transition: background var(--transition), transform var(--transition);
  flex: 1; white-space: nowrap;
}
.btn-como-chegar:hover { background: rgba(255,255,255,.88); transform: translateY(-2px); color: var(--cor-primaria); }
.btn-como-chegar-wa {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--cor-whatsapp); color: #fff;
  font-weight: 700; font-size: .88rem;
  padding: .65rem 1.1rem; border-radius: 10px;
  text-decoration: none; transition: filter var(--transition), transform var(--transition);
  flex: 1; white-space: nowrap;
}
.btn-como-chegar-wa:hover { filter: brightness(1.08); transform: translateY(-2px); color: #fff; }
.loc-card-footer {
  display: flex; gap: .6rem;
  padding-top: .5rem;
  border-top: 1px solid rgba(255,255,255,.15);
  margin-top: .5rem;
}
@media (max-width: 900px) {
  .loc-mapa-full { height: 600px; }
  .loc-info-overlay {
    position: relative; top: auto; right: auto; transform: none;
    width: 100%; border-radius: 0;
    box-shadow: none;
  }
  .loc-mapa-full { height: 340px; }
}

/* ── Quem Somos / Equipe ── */
.section-quem-somos { background: var(--cor-fundo-suave); }

/* Hero interno da página */
.qs-hero {
  position: relative; overflow: hidden;
  background: linear-gradient(120deg, #071f4a 0%, var(--cor-primaria) 55%, #1a56c4 100%);
  padding: 5rem 0 4rem;
  color: #fff;
}

/* Elementos geométricos decorativos */
.qs-hero-geo { position: absolute; inset: 0; pointer-events: none; }
.qs-geo-circle {
  position: absolute; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.07);
}
.qs-geo-c1 { width: 480px; height: 480px; top: -180px; right: -100px; }
.qs-geo-c2 { width: 280px; height: 280px; bottom: -120px; right: 120px; border-color: rgba(255,255,255,.05); }
.qs-geo-line {
  position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: linear-gradient(to bottom, var(--cor-destaque), transparent);
}

/* Conteúdo do hero */
.qs-hero-inner {
  position: relative; z-index: 1;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem;
  flex-wrap: wrap;
}
.qs-hero-overline {
  font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: rgba(255,255,255,.55); margin: 0 0 .75rem;
}
.qs-hero-title {
  font-size: clamp(1.6rem, 3vw, 2.5rem);
  font-weight: 800; line-height: 1.2;
  color: #fff; margin: 0 0 1rem;
}
.qs-hero-sub { color: rgba(255,255,255,.65); font-size: .97rem; margin: 0; line-height: 1.7; }

/* Crachá CRECI no canto direito */
.qs-hero-creci {
  display: flex; align-items: center; gap: .75rem;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 14px;
  padding: 1rem 1.4rem;
  backdrop-filter: blur(6px);
  flex-shrink: 0;
  white-space: nowrap;
}
.qs-hero-creci > i { font-size: 2rem; color: #60a5fa; }
.qs-hero-creci span { display: block; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: rgba(255,255,255,.6); }
.qs-hero-creci strong { display: block; font-size: 1.6rem; font-weight: 900; color: #fff; line-height: 1.1; }

.qs-breadcrumb { --bs-breadcrumb-divider-color: rgba(255,255,255,.35); margin: 0; }
.qs-breadcrumb .breadcrumb-item a { color: rgba(255,255,255,.65); text-decoration: none; }
.qs-breadcrumb .breadcrumb-item a:hover { color: #fff; }
.qs-breadcrumb .breadcrumb-item.active { color: rgba(255,255,255,.45); }
.qs-breadcrumb .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.3); }

/* Cards de estatísticas — mantidos mas não usados */
.qs-stat-card {
  background: var(--cor-fundo-suave);
  border-radius: 14px;
  padding: 1rem 1.2rem;
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: .2rem;
}
.qs-stat-card i { font-size: 1.4rem; color: var(--cor-primaria); }
.qs-stat-card strong { font-size: 1.4rem; font-weight: 800; color: var(--cor-texto); line-height: 1; }
.qs-stat-card span { font-size: .75rem; color: var(--cor-texto-suave); font-weight: 500; }

/* Bloco de diferenciais (substitui Missão/Visão/Valores) */
.qs-diferenciais-wrap {
  display: flex; flex-direction: column; gap: 1.5rem;
}
.qs-diferencial-item {
  display: flex; align-items: flex-start; gap: 1rem;
  background: var(--cor-fundo-suave);
  border-radius: 14px;
  padding: 1.25rem 1.4rem;
  border-left: 4px solid var(--cor-primaria);
}
.qs-dif-icon {
  width: 42px; height: 42px; border-radius: 10px;
  background: var(--cor-primaria);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem; color: #fff; flex-shrink: 0;
}
.qs-dif-titulo { font-size: .95rem; font-weight: 700; color: var(--cor-texto); margin: 0 0 .25rem; }
.qs-dif-texto  { font-size: .84rem; color: var(--cor-texto-suave); margin: 0; line-height: 1.6; }

/* ── Seção Sobre Repaginada ─────────────────────────────── */
.qs-sobre-section {
  background: #f8faff;
  padding: 4.5rem 0 4rem;
}
.qs-sobre-topo { margin-bottom: 2.5rem; }
.qs-sobre-texto {
  display: flex; flex-direction: column; gap: 1rem;
  height: 100%; justify-content: center;
}
.qs-sobre-texto p { color: var(--cor-texto-suave); line-height: 1.75; margin: 0; }

/* Badge CRECI em destaque */
.qs-creci-badge {
  display: inline-flex; align-items: center; gap: .85rem;
  background: var(--cor-primaria);
  color: #fff;
  border-radius: 14px;
  padding: .9rem 1.4rem;
  margin-top: .5rem;
  width: fit-content;
}
.qs-creci-badge > i { font-size: 1.8rem; opacity: .85; }
.qs-creci-label { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .07em; opacity: .8; }
.qs-creci-num   { display: block; font-size: 1.4rem; font-weight: 800; line-height: 1.1; }

/* Grid 2x2 de cards de diferenciais — mantido mas substituído por lista */
.qs-cards-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; height: 100%;
}
.qs-dif-card { background: #fff; border-radius: 16px; padding: 1.5rem 1.25rem; border: 1px solid #e5eaf3; border-top: 4px solid var(--cor-primaria); }
.qs-dif-card-icon { width: 46px; height: 46px; border-radius: 12px; background: rgba(11,61,145,.08); display: flex; align-items: center; justify-content: center; font-size: 1.3rem; color: var(--cor-primaria); margin-bottom: .85rem; }
.qs-dif-card-titulo { font-size: .92rem; font-weight: 700; color: var(--cor-texto); margin: 0 0 .4rem; }
.qs-dif-card-texto  { font-size: .82rem; color: var(--cor-texto-suave); margin: 0; line-height: 1.6; }

/* ── Lista editorial de serviços ─────────────────────────── */
.qs-servicos-lista {
  display: flex; flex-direction: column;
  border: 1px solid #dde4f0;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
}
.qs-servico-item {
  display: flex; align-items: flex-start; gap: 1.25rem;
  padding: 1.5rem 1.75rem;
  border-bottom: 1px solid #edf0f7;
  transition: background .18s;
}
.qs-servico-item:last-child { border-bottom: none; }
.qs-servico-item:hover { background: #f4f7ff; }
.qs-servico-num {
  font-size: 1.5rem; font-weight: 900; line-height: 1;
  color: var(--cor-primaria); opacity: .18;
  min-width: 2rem; text-align: right; padding-top: .1rem;
  font-variant-numeric: tabular-nums;
}
.qs-servico-item:hover .qs-servico-num { opacity: .45; }
.qs-servico-corpo { flex: 1; }
.qs-servico-titulo { font-size: .95rem; font-weight: 700; color: var(--cor-texto); margin: 0 0 .3rem; }
.qs-servico-texto  { font-size: .84rem; color: var(--cor-texto-suave); margin: 0; line-height: 1.6; }
.qs-badge {
  display: inline-flex; align-items: center; gap: .35rem;
  background: rgba(11,61,145,.08); color: var(--cor-primaria);
  font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  padding: .35rem .9rem; border-radius: 100px;
}
.equipe-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,.08);
  text-align: center;
  transition: transform var(--transition), box-shadow var(--transition);
}
.equipe-card:hover { transform: translateY(-4px); box-shadow: 0 10px 32px rgba(0,0,0,.13); }
.equipe-foto-wrap {
  width: 100%; height: 180px;
  overflow: hidden;
  background: #e5e7eb;
}
.equipe-foto-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.equipe-card:hover .equipe-foto-wrap img { transform: scale(1.05); }
.equipe-info {
  padding: .85rem .75rem 1rem;
  display: flex; flex-direction: column; align-items: center; gap: .3rem;
}
.equipe-nome { font-size: .9rem; font-weight: 700; color: var(--cor-texto); margin: 0; }
.equipe-cargo {
  font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em;
  color: var(--cor-destaque); background: rgba(215,25,32,.08);
  padding: .14rem .55rem; border-radius: 100px;
}
.equipe-bio {
  font-size: .78rem; color: var(--cor-texto-suave); line-height: 1.45;
  margin: .2rem 0 .05rem; max-height: 3.4em; overflow: hidden;
}
.equipe-contatos { display: flex; gap: .45rem; margin-top: .3rem; }
.equipe-btn-wa, .equipe-btn-email {
  width: 30px; height: 30px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: .9rem; text-decoration: none; transition: transform var(--transition);
}
.equipe-btn-wa    { background: var(--cor-whatsapp); color: #fff; }
.equipe-btn-email { background: var(--cor-primaria); color: #fff; }
.equipe-btn-wa:hover, .equipe-btn-email:hover { transform: scale(1.15); color: #fff; }

/* ── WhatsApp fixo ── */
.whatsapp-float {
  position: fixed; bottom: 24px; right: 24px; z-index: 999;
  background: var(--cor-whatsapp); color: #fff; width: 56px; height: 56px;
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 1.6rem; box-shadow: var(--shadow-md); transition: transform var(--transition);
}
.whatsapp-float:hover { transform: scale(1.1); color: #fff; }

/* ── Footer ── */
.site-footer {
  background: #fff;
  color: var(--cor-texto);
  padding: 3.5rem 0 0;
  border-top: 1px solid var(--cor-borda);
}
.footer-brand-link img { display: block; }
.footer-desc { font-size: .88rem; color: var(--cor-texto-suave); line-height: 1.7; max-width: 320px; }
.footer-title { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--cor-texto); margin-bottom: .85rem; }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li + li { margin-top: .45rem; }
.footer-links a { color: var(--cor-texto-suave); font-size: .88rem; transition: color var(--transition); }
.footer-links a:hover { color: var(--cor-primaria); }

/* Contato lista */
.footer-contact-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .75rem; }
.footer-contact-list li { display: flex; align-items: flex-start; gap: .6rem; font-size: .88rem; color: var(--cor-texto-suave); }
.footer-contact-list a { color: var(--cor-texto-suave); transition: color var(--transition); }
.footer-contact-list a:hover { color: var(--cor-primaria); }
.footer-contact-icon {
  width: 32px; height: 32px; flex-shrink: 0;
  background: var(--cor-fundo-suave);
  border: 1px solid var(--cor-borda);
  border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .9rem; color: var(--cor-primaria);
}

/* Redes sociais */
.footer-social { display: flex; gap: .5rem; }
.footer-social-btn {
  width: 36px; height: 36px;
  border: 1px solid var(--cor-borda);
  border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1rem; color: var(--cor-texto-suave);
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.footer-social-btn:hover { background: var(--cor-primaria); color: #fff; border-color: var(--cor-primaria); }

/* Bottom bar */
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--cor-borda);
  margin-top: 2.5rem;
  padding: 1rem 0;
  flex-wrap: wrap;
  gap: .5rem;
}
.footer-copy { font-size: .82rem; color: var(--cor-texto-suave); }

/* ── Filtros ── */
.filtros-panel { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow-sm); padding: 1.25rem; margin-bottom: 1.5rem; }

/* ── Filtros — página imóveis ── */
.filtros-card {
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--cor-borda);
  overflow: hidden;
}

/* Barra principal */
.filtros-topbar {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 1rem 1.25rem;
  flex-wrap: wrap;
}
.filtros-search-wrap {
  flex: 1;
  min-width: 220px;
  position: relative;
}
.filtros-search-icon {
  position: absolute;
  left: .85rem;
  top: 50%;
  transform: translateY(-50%);
  color: #9ca3af;
  font-size: .95rem;
  pointer-events: none;
}
.filtros-search-input {
  width: 100%;
  padding: .55rem .9rem .55rem 2.2rem;
  border: 1px solid var(--cor-borda);
  border-radius: 50px;
  font-size: .9rem;
  outline: none;
  background: var(--cor-fundo-suave);
  transition: border-color .2s, box-shadow .2s;
}
.filtros-search-input:focus {
  border-color: var(--cor-secundaria);
  box-shadow: 0 0 0 3px rgba(0,91,187,.12);
  background: #fff;
}

/* Pills finalidade */
.filtros-finalidade-pills {
  display: flex;
  gap: .35rem;
  background: var(--cor-fundo-suave);
  border-radius: 50px;
  padding: .25rem;
  border: 1px solid var(--cor-borda);
  flex-shrink: 0;
}
.pill-btn {
  border: none;
  background: transparent;
  padding: .35rem .9rem;
  border-radius: 50px;
  font-size: .82rem;
  font-weight: 600;
  color: var(--cor-texto-suave);
  cursor: pointer;
  transition: background .18s, color .18s;
  white-space: nowrap;
}
.pill-btn:hover { background: #e5e7eb; color: var(--cor-texto); }
.pill-btn.active { background: var(--cor-primaria); color: #fff; }

.filtros-btn-buscar {
  border-radius: 50px;
  padding: .5rem 1.4rem;
  font-size: .88rem;
  flex-shrink: 0;
}
@media (max-width: 575.98px) {
  .filtros-topbar { gap: .6rem; padding: .85rem 1rem; }
  .filtros-search-wrap { flex: 0 0 100%; min-width: 0; }
  .filtros-finalidade-pills { flex: 0 0 100%; justify-content: stretch; }
  .filtros-finalidade-pills .pill-btn { flex: 1; text-align: center; }
  .filtros-btn-buscar { flex: 0 0 100%; text-align: center; }
}

/* Toggle filtros avançados */
.filtros-avancados-toggle {
  display: flex;
  align-items: center;
  gap: .3rem;
  padding: .65rem 1.25rem;
  border-top: 1px solid var(--cor-borda);
  font-size: .85rem;
  font-weight: 600;
  color: var(--cor-primaria);
  cursor: pointer;
  user-select: none;
  background: var(--cor-fundo-suave);
  transition: background .15s;
}
.filtros-avancados-toggle:hover { background: #e9eef6; }
.filtros-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  background: var(--cor-destaque);
  color: #fff;
  border-radius: 50px;
  font-size: .7rem;
  font-weight: 700;
}
.filtros-chevron { transition: transform .2s; }
.filtros-avancados-toggle.open .filtros-chevron { transform: rotate(180deg); }

/* Corpo filtros avançados */
.filtros-avancados-body {
  display: none;
  padding: 1.25rem;
  border-top: 1px solid var(--cor-borda);
}
.filtros-avancados-body.show { display: block; }
.filtros-label {
  display: block;
  font-size: .78rem;
  font-weight: 600;
  color: var(--cor-texto-suave);
  margin-bottom: .3rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* Botões contador (quartos, suítes, vagas) */
.filtros-counter-group {
  display: flex;
  gap: .3rem;
  flex-wrap: wrap;
}
.counter-btn {
  border: 1px solid var(--cor-borda);
  background: #fff;
  border-radius: 6px;
  padding: .3rem .65rem;
  font-size: .82rem;
  font-weight: 600;
  color: var(--cor-texto);
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.counter-btn:hover { border-color: var(--cor-primaria); color: var(--cor-primaria); }
.counter-btn.active { background: var(--cor-primaria); border-color: var(--cor-primaria); color: #fff; }

/* Footer filtros */
.filtros-avancados-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .6rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--cor-borda);
}
.filtros-avancados-footer .btn {
  padding: .45rem 1.1rem;
  font-size: .85rem;
  line-height: 1.5;
}

/* ── Paginação ── */
.pagination .page-link { border-radius: 8px !important; margin: 0 2px; border: 1.5px solid var(--cor-borda); color: var(--cor-primaria); }
.pagination .page-item.active .page-link { background: var(--cor-primaria); border-color: var(--cor-primaria); }

/* ── Alerts ── */
.alert { border-radius: 10px; }

/* ── Página de detalhes ── */
.detalhe-preco { font-size: 2rem; font-weight: 800; color: var(--cor-primaria); }
.detalhe-loc { color: var(--cor-texto-suave); font-size: 1rem; }
.detalhe-loc i { color: var(--cor-primaria); }
.detalhe-codigo { font-size: .85rem; color: #888; font-weight: 700; letter-spacing: .04em; margin: 2px 0 6px; }
.detalhe-codigo i { color: var(--cor-destaque); margin-right: 2px; }

/* Botões de ação da página de detalhe */
.detalhe-acoes { flex-wrap: wrap; }
button.btn-acao-detalhe {
  display: inline-flex !important; align-items: center; gap: .3rem;
  background: var(--cor-fundo-suave) !important; border: 1px solid var(--cor-borda) !important;
  border-radius: 50px !important; padding: .3rem .85rem; font-size: .82rem;
  font-weight: 600; color: var(--cor-texto-suave) !important; cursor: pointer;
  transition: background .15s, color .15s, border-color .15s; outline: none;
  appearance: none; -webkit-appearance: none; line-height: 1.4;
}
button.btn-acao-detalhe:hover { background: #e9eef6 !important; color: var(--cor-primaria) !important; border-color: var(--cor-primaria) !important; }
button.btn-acao-detalhe.copiado { background: #d1fae5 !important; color: #065f46 !important; border-color: #6ee7b7 !important; }
button.btn-acao-icone {
  width: 34px !important; height: 34px !important; border-radius: 50% !important;
  background: var(--cor-fundo-suave) !important; border: 1px solid var(--cor-borda) !important;
  display: flex !important; align-items: center; justify-content: center;
  font-size: .95rem; color: var(--cor-texto-suave) !important; cursor: pointer;
  transition: background .15s, color .15s, border-color .15s; outline: none;
  appearance: none; -webkit-appearance: none; padding: 0;
}
button.btn-acao-icone:hover { background: #e9eef6 !important; color: var(--cor-primaria) !important; border-color: var(--cor-primaria) !important; }

/* ── Mapa ── */
.mapa-wrapper { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--cor-borda); }
.mapa-wrapper iframe { display: block; }

/* intl-tel-input no formulário de contato */
.iti { width: 100%; }
.iti__flag-container + input { border-left: none; border-radius: 0 var(--radius) var(--radius) 0 !important; }
.iti--separate-dial-code .iti__selected-flag {
  border-radius: var(--radius) 0 0 var(--radius);
  background: var(--cor-fundo-suave);
  border: 1px solid var(--cor-borda);
  border-right: none;
}

/* Sidebar detalhe — sem barra de rolagem visível */
.sidebar-sticky {
  overflow: visible;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.sidebar-sticky::-webkit-scrollbar { display: none; }

/* ── Comodidades ── */
.comodidades-wrap { display: flex; flex-direction: column; gap: 1.25rem; }
.comodidades-cat-titulo { font-size: .95rem; font-weight: 700; color: var(--cor-primaria); margin-bottom: .5rem; padding-bottom: .25rem; border-bottom: 2px solid var(--cor-destaque); display: inline-block; }
.comodidade-item { font-size: .85rem; color: var(--cor-texto); display: flex; align-items: center; gap: .15rem; }
.comodidade-item i { color: var(--cor-primaria); font-weight: 700; font-size: .9rem; }

/* ── Hero stats ── */
.hero-stats { display: flex; gap: 2.5rem; flex-wrap: wrap; justify-content: center; margin-top: 2rem; }
.hero-stat { text-align: center; }
.hero-stat strong { font-size: 1.7rem; font-weight: 800; display: block; }
.hero-stat span { font-size: .82rem; opacity: .78; }

/* ── Responsivo ── */
@media (max-width: 767.98px) {
  .hero { padding: 60px 0 50px; }
  .hero-title { font-size: 1.55rem; }
  .hero-filtros-panel { padding: 1.2rem 1rem; }
  .info-grid { grid-template-columns: repeat(2, 1fr); }
  .status-obra-bar { flex-direction: column; gap: .5rem; }
  .status-connector { width: 3px; height: 20px; }
  .galeria-thumbs { justify-content: center; }
  .imovel-card-actions { flex-direction: column; }
  .tabs-finalidade { flex-wrap: nowrap; }
  .tab-btn { flex: 1; text-align: center; padding: .55rem .5rem; }
}
