/* ============================================================
   IMOBSYS — PUBLIC STYLESHEET v4
   ============================================================ */
:root {
  --primary:    #1a3c5e;
  --accent:     #e67e22;
  --text:       #1a1a2e;
  --muted:      #6c7a89;
  --bg-light:   #f5f6f8;
  --border:     #e0e4ea;
  --radius:     10px;
  --shadow:     0 6px 32px rgba(0,0,0,.09);
  --shadow-sm:  0 2px 12px rgba(0,0,0,.06);
}
*  { box-sizing: border-box; margin:0; padding:0; }
body { font-family:'DM Sans',sans-serif; color:var(--text); background:#fff; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5,h6 { font-family:'Playfair Display',serif; }
a { text-decoration:none; color:inherit; }
img { max-width:100%; height:auto; display:block; }

/* ─── UTILITIES ─────────────────────────────────────────── */
.brand-text { font-family:'Playfair Display',serif; font-size:1.25rem; font-weight:700; }

/* ═══════════════════════════════════════════════════════════
   HERO
═══════════════════════════════════════════════════════════ */
.hero-section {
  position:relative; min-height:100svh; min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
/* Compensar header fixo de 72px nas páginas não-home */
body:not(.page-home) .page-hero,
body:not(.page-home) .section-banner:first-of-type {
  padding-top:72px;
}
.hero-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  z-index:0;
}
.hero-overlay { position:absolute; inset:0; z-index:1; }
.hero-body {
  position:relative; z-index:2;
  width:100%; max-width:900px; margin:0 auto;
  padding:120px 20px 80px;
  text-align:center;
}
.hero-eyebrow {
  font-size:.75rem; font-weight:700; letter-spacing:3px;
  text-transform:uppercase; color:var(--accent);
  margin-bottom:.75rem;
}
.hero-title {
  font-size:clamp(2.2rem,6vw,4rem); font-weight:700;
  color:#fff; line-height:1.1; margin-bottom:.75rem;
  text-transform:uppercase; text-shadow:0 2px 20px rgba(0,0,0,.4);
}
.hero-sub { font-size:1.05rem; color:rgba(255,255,255,.8); margin-bottom:2rem; }

/* Search box */
.hero-search { max-width:860px; margin:0 auto; }
.hs-tabs { display:flex; gap:0; margin-bottom:0; justify-content:flex-start; }
.hs-tab {
  background:rgba(255,255,255,.18); color:rgba(255,255,255,.85);
  border:none; padding:.5rem 1.5rem; font-size:.88rem; font-weight:700;
  cursor:pointer; transition:.2s; letter-spacing:.5px; border-radius:8px 8px 0 0;
}
.hs-tab.active,.hs-tab:hover { background:#fff; color:var(--primary); }
.hs-fields {
  display:flex; background:#fff;
  border-radius:0 8px 8px 8px;
  box-shadow:0 24px 60px rgba(0,0,0,.3);
  overflow:hidden;
}
.hs-field {
  display:flex; flex-direction:column; justify-content:center;
  padding:.6rem 1.2rem; flex:1; position:relative;
}
.hs-field-select { flex:0 0 180px; }
.hs-border-right { border-right:1px solid var(--border); }
.hs-label {
  font-size:.62rem; font-weight:700; letter-spacing:1.5px;
  color:var(--muted); margin-bottom:2px; text-transform:uppercase;
}
.hs-select {
  border:none; outline:none; background:transparent;
  font-size:.9rem; color:var(--text); font-family:inherit;
  cursor:pointer; padding:0;
}
.hs-btn {
  background:var(--accent); color:#fff;
  border:none; padding:0 2rem; font-size:.88rem; font-weight:700;
  display:flex; align-items:center; gap:.5rem;
  cursor:pointer; transition:background .2s; white-space:nowrap;
  letter-spacing:.5px;
}
.hs-btn:hover { background:#c0620f; }
.hs-extras {
  display:flex; align-items:center; gap:1.5rem;
  margin-top:.75rem; padding-left:.2rem;
}
.hs-extra-link { font-size:.78rem; color:rgba(255,255,255,.65); display:flex; align-items:center; gap:3px; }
.hs-extra-check { display:flex; align-items:center; gap:.4rem; font-size:.78rem; color:rgba(255,255,255,.65); cursor:pointer; }
.hs-extra-check input { accent-color:var(--accent); }
.hero-down {
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%);
  color:rgba(255,255,255,.5); font-size:2rem; cursor:pointer; z-index:5;
  animation:bounce 2s infinite;
}
@keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(8px)} }

/* ═══════════════════════════════════════════════════════════
   BANNER / DESTAQUE
═══════════════════════════════════════════════════════════ */
.section-banner {
  display:grid; grid-template-columns:1fr 1fr;
  min-height:400px;
}
.sb-img-wrap { overflow:hidden; position:relative; }
.sb-noimg { width:100%; height:100%; min-height:400px; display:flex; align-items:center; justify-content:center; }
.sb-img-wrap img { width:100%; height:100%; object-fit:cover; }
.sb-info {
  padding:3rem 3.5rem; background:#fff;
  display:flex; flex-direction:column; justify-content:center;
}
.sb-tag {
  font-size:.68rem; font-weight:800; letter-spacing:3px;
  color:var(--accent); text-transform:uppercase; margin-bottom:.75rem;
}
.sb-title {
  font-size:clamp(1.4rem,3vw,2rem); color:var(--primary);
  font-weight:700; margin-bottom:.5rem; line-height:1.25;
}
.sb-location { font-size:.85rem; color:var(--muted); margin-bottom:1rem; display:flex; align-items:center; gap:4px; }
.sb-features { display:flex; gap:1.5rem; margin-bottom:1.25rem; flex-wrap:wrap; }
.sb-features span { display:flex; align-items:center; gap:5px; font-size:.85rem; color:var(--muted); }
.sb-features .material-icons { font-size:16px; color:var(--primary); }
.sb-price { font-size:1.6rem; font-weight:700; color:var(--primary); font-family:'Playfair Display',serif; margin-bottom:1.5rem; }
.sb-price small { font-size:.9rem; font-weight:400; color:var(--muted); }
.sb-btn {
  display:inline-block; background:var(--accent); color:#fff;
  padding:.75rem 2rem; border-radius:var(--radius); font-weight:700;
  font-size:.9rem; transition:.2s; width:fit-content;
}
.sb-btn:hover { background:#c0620f; }

/* ═══════════════════════════════════════════════════════════
   BAIRROS / HOODS
═══════════════════════════════════════════════════════════ */
.section-hoods { padding:3.5rem 0; }
.hoods-title {
  font-size:clamp(1.4rem,3vw,2.2rem); color:#fff; font-weight:700;
  margin-bottom:.4rem; text-align:inherit;
  font-family:var(--font-body,var(--font-head,inherit));
}
.hoods-sub { color:rgba(255,255,255,.8); font-size:.95rem; text-align:inherit; }
.hoods-grid {
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:1.75rem;
  justify-content:center;
}
.hood-item {
  /* Desktop: 4 por linha max, centralizado quando menos */
  flex:0 0 calc(25% - 13px);
  max-width:calc(25% - 13px);
  min-width:160px;
  position:relative; border-radius:10px; overflow:hidden;
  aspect-ratio:1; display:block; cursor:pointer;
  transition:transform .3s;
}
.hood-item:hover { transform:scale(1.04); }
.hood-item img { width:100%; height:100%; object-fit:cover; }
.hood-placeholder {
  width:100%; height:100%;
  background:rgba(0,0,0,.25);
}
.hood-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 55%);
}
.hood-name {
  position:absolute; bottom:12px; left:12px; right:12px;
  color:#fff; font-weight:700; font-size:.95rem;
  font-family:'Playfair Display',serif;
  text-shadow:0 1px 4px rgba(0,0,0,.5);
}

/* ═══════════════════════════════════════════════════════════
   SOBRE
═══════════════════════════════════════════════════════════ */
.section-about { padding:4.5rem 0; background:#fff; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.about-img-wrap { border-radius:16px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/3; }
.about-img-wrap img { width:100%; height:100%; object-fit:cover; }
.about-img-placeholder { background:linear-gradient(135deg,var(--primary),var(--accent)); display:flex; align-items:center; justify-content:center; }
.about-title { font-size:clamp(1.5rem,3vw,2rem); color:var(--primary); margin-bottom:1.25rem; }
.about-body { color:var(--muted); line-height:1.8; font-size:.96rem; margin-bottom:1.5rem; }
.about-link {
  display:inline-flex; align-items:center; gap:.4rem;
  color:var(--accent); font-weight:700; font-size:.9rem;
  border-bottom:2px solid transparent; transition:.2s;
}
.about-link:hover { border-color:var(--accent); }

/* ═══════════════════════════════════════════════════════════
   SOLUÇÕES
═══════════════════════════════════════════════════════════ */
.section-solutions { padding:4.5rem 0; background:var(--bg-light); }
.sol-main-title { font-size:clamp(1.5rem,3vw,2rem); color:var(--primary); margin-bottom:.5rem; }
.sol-main-sub { color:var(--muted); font-size:.95rem; }
.sol-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2.5rem; }
.sol-col { padding:0; }
.sol-eyebrow { font-size:.72rem; font-weight:700; letter-spacing:2px; color:var(--muted); text-transform:uppercase; margin-bottom:.4rem; }
.sol-title { font-size:1.5rem; color:var(--primary); font-weight:700; margin-bottom:.9rem; line-height:1.25; }
.sol-text { color:var(--muted); font-size:.88rem; line-height:1.8; margin-bottom:1rem; }
.sol-link { display:inline-flex; align-items:center; gap:.35rem; color:var(--accent); font-weight:700; font-size:.85rem; transition:.2s; }
.sol-link:hover { gap:.6rem; }

/* ═══════════════════════════════════════════════════════════
   PROPRIEDADES / SLIDER
═══════════════════════════════════════════════════════════ */
.section-props { padding:4rem 0; background:#fff; }
.section-props-alt { background:var(--bg-light); }
.props-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:2rem; flex-wrap:wrap; gap:1rem; }
.props-sub { font-size:.8rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--muted); margin-bottom:.35rem; }
.props-title { font-size:clamp(1.4rem,3vw,1.9rem); color:var(--primary); font-weight:700; }
.props-more { color:var(--accent); font-weight:700; font-size:.88rem; white-space:nowrap; }
.props-more:hover { text-decoration:underline; }
.props-slider-wrap { position:relative; }
.ps-track {
  display:flex; gap:24px;
  overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none;
  padding:8px 4px 12px;
}
.ps-track::-webkit-scrollbar { display:none; }
.ps-arrow {
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%;
  background:#fff; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; z-index:10; box-shadow:var(--shadow-sm);
  transition:.2s; color:var(--primary);
}
.ps-arrow:hover { background:var(--primary); color:#fff; border-color:var(--primary); }
.ps-prev { left:-22px; }
.ps-next { right:-22px; }

/* Card do imóvel */
.ps-card {
  flex:0 0 calc(33.333% - 16px); scroll-snap-align:start;
  background:#fff; border-radius:14px;
  box-shadow:var(--shadow-sm); border:1px solid var(--border);
  overflow:hidden; transition:transform .25s,box-shadow .25s;
  display:flex; flex-direction:column;
}
.ps-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.ps-card-img, .ps-card-img-wrap {
  display:block; position:relative;
  aspect-ratio:1/1; overflow:hidden;
}
.ps-card-img img, .ps-card-img-wrap img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.ps-card:hover .ps-card-img img, .ps-card:hover .ps-card-img-wrap img { transform:scale(1.05); }
.ps-card-noimg {
  width:100%; height:100%;
  background:linear-gradient(135deg,var(--bg-light),#dde1e7);
  display:flex; align-items:center; justify-content:center;
  color:#bbb;
}
.ps-card-noimg .material-icons { font-size:48px; }
.ps-badge {
  position:absolute; top:12px; right:12px;
  background:var(--accent); color:#fff;
  font-size:.68rem; font-weight:700; padding:3px 10px; border-radius:20px;
}
.ps-card-body { padding:1.1rem; flex:1; display:flex; flex-direction:column; }
.ps-card-type {
  display:inline-block; font-size:.65rem; font-weight:800;
  letter-spacing:1.5px; text-transform:uppercase;
  color:var(--primary); margin-bottom:.4rem;
  background:rgba(26,60,94,.08); padding:2px 8px; border-radius:4px;
}
.ps-card-type-rent { color:var(--accent); background:rgba(230,126,34,.1); }
.ps-card-title { font-size:.95rem; font-weight:700; color:var(--primary); margin-bottom:.35rem; line-height:1.35; }
.ps-card-title a { color:inherit; }
.ps-card-title a:hover { color:var(--accent); }
.ps-card-loc { font-size:.78rem; color:var(--muted); margin-bottom:.75rem; flex:1; }
.ps-card-feats {
  display:flex; gap:.75rem; font-size:.75rem; color:var(--muted);
  padding:.6rem 0; border-top:1px solid var(--border); margin-bottom:.75rem;
}
.ps-card-price { font-size:1.1rem; font-weight:700; color:var(--primary); font-family:'Playfair Display',serif; }
.ps-card-price small { font-size:.78rem; font-weight:400; color:var(--muted); }
.props-empty {
  text-align:center; padding:3rem; color:var(--muted);
}
.props-empty .material-icons { font-size:48px; display:block; margin-bottom:.75rem; opacity:.35; }
.props-empty-link { display:inline-block; margin-top:1rem; color:var(--accent); font-weight:700; }

/* ═══════════════════════════════════════════════════════════
   PÁGINAS INTERNAS — HEADER COMPENSADOR
═══════════════════════════════════════════════════════════ */
.page-hero {
  background:var(--primary); padding:110px 0 36px; color:#fff;
  margin-top:0;
}
.page-hero h1 { color:#fff; font-size:clamp(1.5rem,3vw,2.2rem); }
.page-hero p { color:rgba(255,255,255,.75); font-size:.9rem; }

/* ═══════════════════════════════════════════════════════════
   LISTAGEM DE IMÓVEIS
═══════════════════════════════════════════════════════════ */
.filter-card { border:1px solid var(--border); border-radius:12px; }
.property-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.property-card {
  background:#fff; border-radius:14px;
  box-shadow:var(--shadow-sm); border:1px solid var(--border);
  overflow:hidden; transition:transform .25s,box-shadow .25s;
  display:flex; flex-direction:column;
}
.property-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.property-card-img { position:relative; aspect-ratio:1/1; overflow:hidden; }
.property-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.property-card:hover .property-card-img img { transform:scale(1.05); }
.property-card-img .img-placeholder {
  width:100%; height:100%; background:linear-gradient(135deg,var(--bg-light),#dde1e7);
  display:flex; align-items:center; justify-content:center; color:#bbb;
}
.badge-type {
  position:absolute; top:12px; left:12px;
  background:var(--primary); color:#fff;
  font-size:.65rem; font-weight:700; padding:3px 10px; border-radius:20px;
}
.badge-featured {
  position:absolute; top:12px; right:12px;
  background:var(--accent); color:#fff;
  font-size:.65rem; font-weight:700; padding:2px 8px; border-radius:20px;
}
.property-card-body { padding:1.1rem; flex:1; }
.property-card-title { font-size:.95rem; font-weight:700; color:var(--primary); margin-bottom:.35rem; line-height:1.35; }
.property-card-location { font-size:.78rem; color:var(--muted); margin-bottom:.75rem; display:flex; align-items:center; gap:4px; }
.property-card-location .material-icons { font-size:14px; color:var(--accent); }
.property-card-features { display:flex; gap:.75rem; font-size:.75rem; color:var(--muted); padding:.6rem 0; border-top:1px solid var(--border); margin-bottom:.75rem; flex-wrap:wrap; }
.property-card-feature { display:flex; align-items:center; gap:3px; }
.property-card-feature .material-icons { font-size:14px; color:var(--primary); }
.property-card-price { display:flex; flex-direction:column; gap:2px; }
.price-label { font-size:.65rem; color:var(--muted); text-transform:uppercase; letter-spacing:1px; }
.price-value { font-size:1.15rem; font-weight:700; color:var(--primary); font-family:'Playfair Display',serif; }
.price-rent { color:var(--accent); }
.property-card-link { display:block; text-align:center; background:var(--primary); color:#fff; padding:.65rem 1rem; font-size:.85rem; font-weight:600; transition:.2s; border-radius:0 0 var(--radius,8px) var(--radius,8px); }
.property-card-link:hover { background:var(--accent); }

/* ═══════════════════════════════════════════════════════════
   IMOVEL DETALHE
═══════════════════════════════════════════════════════════ */
.imovel-gallery-main { width:100%; height:420px; object-fit:cover; border-radius:16px; }
.imovel-gallery-thumb { height:88px; object-fit:cover; border-radius:8px; cursor:pointer; transition:.2s; }
.imovel-gallery-thumb:hover { opacity:.8; }
.imovel-price-card { background:var(--primary); border-radius:16px; padding:1.5rem; color:#fff; }
.imovel-price-main { font-size:2rem; font-weight:700; font-family:'Playfair Display',serif; }
.feature-tag { display:inline-flex; align-items:center; gap:6px; background:var(--bg-light); border-radius:8px; padding:7px 14px; font-size:.83rem; }
.feature-tag .material-icons { font-size:16px; color:var(--primary); }

/* ═══════════════════════════════════════════════════════════
   FORMS
═══════════════════════════════════════════════════════════ */
.form-control, .form-select {
  border-radius:8px !important; border:1.5px solid var(--border) !important;
  padding:.65rem 1rem !important; font-size:.92rem !important; font-family:inherit !important;
  transition:border-color .2s !important;
}
.form-control:focus, .form-select:focus {
  border-color:var(--primary) !important;
  box-shadow:0 0 0 3px rgba(26,60,94,.08) !important;
}
.btn { font-weight:600 !important; transition:all .2s !important; }
.btn-primary { background:var(--primary) !important; border-color:var(--primary) !important; border-radius:var(--radius) !important; }
.btn-primary:hover { filter:brightness(1.12) !important; }
.btn-outline-primary { color:var(--primary) !important; border-color:var(--primary) !important; border-radius:var(--radius) !important; }
.btn-outline-primary:hover { background:var(--primary) !important; color:#fff !important; }
.btn-search { background:var(--primary) !important; color:#fff !important; border-radius:var(--radius) !important; }

/* ═══════════════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════════════ */
.site-footer { padding:4rem 0 2rem; }
.site-footer a { color:rgba(255,255,255,.62); font-size:.85rem; display:block; margin-bottom:.45rem; transition:.2s; }
.site-footer a:hover { color:var(--accent); }
.footer-title { color:#fff !important; font-size:.82rem; font-weight:700; letter-spacing:1px; text-transform:uppercase; margin-bottom:1rem; }

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════ */
@media (max-width:1100px) {
  .ps-card { flex:0 0 calc(50% - 12px); }
}
@media (max-width:991px) {
  .section-banner { grid-template-columns:1fr; }
  .sb-img-wrap { height:280px; }
  .about-grid { grid-template-columns:1fr; }
  .about-img-wrap { aspect-ratio:16/7; }
  .sol-grid { grid-template-columns:1fr; gap:2rem; }
  .property-grid { grid-template-columns:repeat(2,1fr); }
  /* hoods: 2 por linha no tablet */
  .hood-item { flex:0 0 calc(50% - 8px); max-width:calc(50% - 8px); }
  .hero-section { min-height:auto; padding-bottom:0; }
  .hero-body { padding:100px 16px 60px; }
}
@media (max-width:767px) {
  .hs-fields { flex-direction:column; border-radius:0 8px 8px 8px; }
  .hs-field { border-right:none; border-bottom:1px solid var(--border); padding:.75rem 1.1rem; }
  .hs-field:last-child { border-bottom:none; }
  .hs-field-select { flex:1; }
  .hs-btn { padding:1rem; justify-content:center; border-radius:0 0 8px 8px; }
  .hs-tabs { flex-wrap:nowrap; overflow-x:auto; gap:4px; padding-bottom:4px; }
  .hs-tab { padding:.4rem 1rem; font-size:.82rem; white-space:nowrap; }
  .ps-arrow { display:none; }
  .ps-card { flex:0 0 82vw; }
  .property-grid { grid-template-columns:1fr; }
  .props-header { flex-direction:column; align-items:flex-start; }
  .sol-grid { gap:2rem; }
  .section-solutions { padding:3rem 0; }
  .ps-track { padding:4px 0 10px; }
}
@media (max-width:480px) {
  .hero-title { font-size:1.9rem; }
  .hero-body { padding:80px 12px 50px; }
  .hoods-grid { gap:8px; }
  .hood-item { flex:0 0 calc(50% - 4px); max-width:calc(50% - 4px); min-width:0; }
}

/* Hero carrossel */
.hero-carousel-bg { position:absolute;inset:0;z-index:0;overflow:hidden; }
.hero-carousel-slide {
  position:absolute;inset:0;opacity:0;
  transition:opacity 1.2s ease;
  background-size:cover;background-position:center;
}
.hero-carousel-slide.active { opacity:1; }

/* ═══════════════════════════════════════════════════════════
   STATS BAR
═══════════════════════════════════════════════════════════ */
.stats-bar { padding:2.5rem 0; }
.stats-inner {
  display:flex; flex-wrap:wrap;
  justify-content:space-around; align-items:center;
  gap:1.5rem;
}
.stat-item {
  display:flex; flex-direction:column; align-items:center;
  text-align:center; padding:.5rem 1.5rem;
  position:relative;
}
.stat-item + .stat-item::before {
  content:''; position:absolute; left:0; top:15%; height:70%;
  width:1px; background:rgba(255,255,255,.2);
}
.stat-number {
  font-family:'Playfair Display',serif;
  font-size:clamp(2rem,4vw,2.8rem);
  font-weight:700; color:#fff; line-height:1;
}
.stat-label {
  font-size:.75rem; letter-spacing:1px;
  text-transform:uppercase; margin-top:.35rem;
  color:rgba(255,255,255,.65);
}

/* Hero carrossel */
.hero-carousel-bg { position:absolute;inset:0;z-index:0;overflow:hidden; }
.hero-carousel-slide {
  position:absolute;inset:0;opacity:0;
  transition:opacity 1.4s ease;
  background-size:cover;background-position:center;
}
.hero-carousel-slide.active { opacity:1; }

.sol-icon-wrap {
  width:52px; height:52px; border-radius:12px;
  background:linear-gradient(135deg,var(--primary),var(--accent));
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1rem;
}
.sol-icon-wrap .material-icons { color:#fff; font-size:26px; }
