:root{
  --navy:#1c2b4a;
  --navy-d:#12203a;
  --gold:#c9973f;
  --gold-d:#ad7f2f;
  --bg:#f6f5f2;
  --paper:#ffffff;
  --ink:#22262e;
  --dim:#6b7078;
  --line:rgba(28,43,74,.12);
  --green:#2f8f5b;
  --red:#c0392b;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Segoe UI",Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
h1,h2,h3{line-height:1.2;font-weight:800;letter-spacing:-.01em}

/* ---------- Header ---------- */
.site-header{background:var(--navy);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 2px 12px rgba(0,0,0,.12)}
.site-header .inner{display:flex;align-items:center;justify-content:space-between;padding:16px 20px}
.logo{font-size:20px;font-weight:800;color:#fff}
.logo span{color:var(--gold)}
.nav{display:flex;align-items:center;gap:26px}
.nav a{color:#dfe3ec;font-size:14px;font-weight:600}
.nav a:hover{color:var(--gold)}
.nav .btn-wpp{background:var(--gold);color:var(--navy-d);padding:9px 16px;border-radius:6px;font-weight:700}
.nav .btn-wpp:hover{background:#e0b464}
.menu-toggle{display:none;background:none;border:none;color:#fff;font-size:24px;cursor:pointer}

/* ---------- Hero / busca ---------- */
.hero{background:linear-gradient(150deg,#233a63,#12203a);color:#fff;padding:56px 0 70px}
.hero h1{font-size:clamp(26px,4vw,38px);margin-bottom:10px}
.hero p{color:#c7cde0;font-size:16px;max-width:560px}
.search-box{background:#fff;border-radius:12px;padding:18px;margin-top:28px;
  box-shadow:0 20px 50px -20px rgba(0,0,0,.5);display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:12px}
.search-box select,.search-box input{width:100%;padding:12px 12px;border:1.5px solid var(--line);border-radius:7px;
  font-size:14px;color:var(--ink);background:#fff}
.search-box button{background:var(--navy);color:#fff;border:none;border-radius:7px;padding:12px 22px;
  font-weight:700;cursor:pointer;white-space:nowrap}
.search-box button:hover{background:var(--navy-d)}

/* ---------- Cards de imóvel ---------- */
.section{padding:52px 0}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:26px;flex-wrap:wrap;gap:10px}
.section-head h2{font-size:26px;color:var(--navy)}
.section-head .ver-todos{font-size:14px;font-weight:700;color:var(--gold-d)}
.grid-imoveis{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:22px}
.card{background:var(--paper);border-radius:12px;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 10px 30px -22px rgba(0,0,0,.25);transition:.18s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(0,0,0,.35)}
.card .thumb{position:relative;aspect-ratio:4/3;background:#dfe2e6 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40"><rect width="40" height="40" fill="%23dfe2e6"/></svg>') center/cover}
.card .thumb img{width:100%;height:100%;object-fit:cover}
.card .badge{position:absolute;top:10px;left:10px;background:var(--gold);color:var(--navy-d);
  font-size:11px;font-weight:800;letter-spacing:.04em;padding:5px 10px;border-radius:5px;text-transform:uppercase}
.card .badge.aluguel{background:var(--green);color:#fff}
.card .status-tag{position:absolute;top:10px;right:10px;background:rgba(20,25,35,.75);color:#fff;
  font-size:10.5px;font-weight:700;padding:4px 9px;border-radius:5px;text-transform:uppercase}
.card .body{padding:16px 16px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.card .preco{font-size:19px;font-weight:800;color:var(--navy)}
.card .preco small{font-size:12px;color:var(--dim);font-weight:600}
.card .titulo{font-size:14.5px;font-weight:700;color:var(--ink)}
.card .local{font-size:13px;color:var(--dim)}
.card .specs{display:flex;gap:14px;margin-top:auto;padding-top:10px;border-top:1px solid var(--line);
  font-size:12.5px;color:var(--dim)}
.card .specs span{display:flex;align-items:center;gap:5px}
.empty-state{padding:60px 20px;text-align:center;color:var(--dim)}
.empty-state h3{color:var(--navy);margin-bottom:8px}

/* ---------- Filtros (página de listagem) ---------- */
.filtros-bar{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:16px;
  display:grid;grid-template-columns:repeat(5,1fr) auto;gap:10px;margin-bottom:28px}
.filtros-bar select,.filtros-bar input{padding:10px;border:1.5px solid var(--line);border-radius:6px;font-size:13.5px}
.filtros-bar button{background:var(--navy);color:#fff;border:none;border-radius:6px;padding:10px 18px;
  font-weight:700;cursor:pointer}
.resultado-count{color:var(--dim);font-size:14px;margin-bottom:16px}

/* ---------- Ficha do imóvel ---------- */
.imovel-header{padding:26px 0 10px}
.imovel-header .breadcrumb{font-size:13px;color:var(--dim);margin-bottom:10px}
.imovel-header h1{font-size:24px;color:var(--navy)}
.imovel-header .local{color:var(--dim);margin-top:4px}
.galeria{display:grid;grid-template-columns:2fr 1fr;gap:8px;border-radius:12px;overflow:hidden;margin:20px 0;
  max-height:460px}
.galeria .principal{height:460px;background:#dfe2e6}
.galeria .principal img{width:100%;height:100%;object-fit:cover}
.galeria .miniaturas{display:grid;grid-template-rows:repeat(2,1fr);gap:8px}
.galeria .miniaturas div{background:#dfe2e6;overflow:hidden;position:relative}
.galeria .miniaturas img{width:100%;height:100%;object-fit:cover}
.galeria .miniaturas .mais{position:absolute;inset:0;background:rgba(20,25,35,.6);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px}
.imovel-grid{display:grid;grid-template-columns:2fr 1fr;gap:36px;align-items:start;margin-top:10px}
.info-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:22px;margin-bottom:20px}
.info-card h3{font-size:16px;color:var(--navy);margin-bottom:14px}
.specs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.specs-grid .item{text-align:center;padding:14px 8px;background:var(--bg);border-radius:8px}
.specs-grid .item b{display:block;font-size:18px;color:var(--navy)}
.specs-grid .item span{font-size:12px;color:var(--dim)}
.descricao{white-space:pre-line;color:var(--ink);font-size:15px}
.sidebar-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:22px;
  position:sticky;top:90px}
.sidebar-card .preco{font-size:26px;font-weight:800;color:var(--navy);margin-bottom:4px}
.sidebar-card .cod{font-size:12px;color:var(--dim);margin-bottom:18px}
.btn-full{display:block;width:100%;text-align:center;padding:13px;border-radius:7px;font-weight:700;
  font-size:14.5px;margin-bottom:10px;cursor:pointer;border:none}
.btn-wpp-full{background:#25d366;color:#fff}
.btn-wpp-full:hover{background:#1ebc59}
.btn-outline{background:transparent;border:1.5px solid var(--navy);color:var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-d);color:#aeb4c2;padding:38px 0;margin-top:40px;font-size:13px}
.site-footer .inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px}
.site-footer .col b{color:#fff;display:block;margin-bottom:8px;font-size:15px}
.wpp-float{position:fixed;bottom:22px;right:22px;background:#25d366;color:#fff;width:56px;height:56px;
  border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;z-index:60;
  box-shadow:0 8px 22px rgba(0,0,0,.3)}

/* ---------- Admin ---------- */
.admin-body{background:#eef0f3;min-height:100vh}
.admin-topbar{background:var(--navy-d);color:#fff;padding:14px 22px;display:flex;justify-content:space-between;align-items:center}
.admin-topbar a{color:#cfd4e0;font-size:13px}
.admin-wrap{max-width:1100px;margin:26px auto;padding:0 20px}
.admin-card{background:#fff;border-radius:10px;border:1px solid var(--line);padding:24px;margin-bottom:20px}
.admin-table{width:100%;border-collapse:collapse;font-size:13.5px}
.admin-table th{text-align:left;padding:10px 12px;background:#f2f3f6;color:var(--dim);font-size:11.5px;
  text-transform:uppercase;letter-spacing:.04em}
.admin-table td{padding:10px 12px;border-top:1px solid var(--line)}
.admin-table tr:hover td{background:#fafafa}
.admin-table .thumb-sm{width:48px;height:48px;border-radius:6px;object-fit:cover;background:#e2e5ea}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:5px}
.tag.venda{background:#fde8c8;color:#8a5a12}
.tag.aluguel{background:#d7f2e2;color:#166534}
.tag.disponivel{background:#e1f4e6;color:var(--green)}
.tag.reservado{background:#fff2d6;color:#a06a00}
.tag.vendido, .tag.alugado{background:#f0f0f0;color:#777}
.btn{display:inline-block;padding:9px 16px;border-radius:6px;font-size:13.5px;font-weight:700;
  cursor:pointer;border:none;text-align:center}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-d)}
.btn-danger{background:#fdeceb;color:var(--red)}
.btn-danger:hover{background:#f8d7d3}
.btn-sm{padding:6px 12px;font-size:12.5px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-row{margin-bottom:16px}
.form-row.full{grid-column:1/-1}
.form-row label{display:block;font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:6px;
  text-transform:uppercase;letter-spacing:.03em}
.form-row input,.form-row select,.form-row textarea{width:100%;padding:11px 12px;border:1.5px solid var(--line);
  border-radius:6px;font-size:14.5px;font-family:inherit}
.form-row textarea{resize:vertical}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--navy-d)}
.login-card{background:#fff;border-radius:12px;padding:36px 32px;width:360px;box-shadow:0 30px 70px -20px rgba(0,0,0,.5)}
.login-card h2{color:var(--navy);margin-bottom:20px;text-align:center}
.alert{padding:12px 14px;border-radius:7px;font-size:13.5px;margin-bottom:16px}
.alert-error{background:#fdeceb;color:var(--red)}
.alert-success{background:#e1f4e6;color:var(--green)}
.upload-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.upload-list .up-item{position:relative;width:90px;height:90px;border-radius:6px;overflow:hidden;border:1px solid var(--line)}
.upload-list .up-item img{width:100%;height:100%;object-fit:cover}
.upload-list .up-item .cover-flag{position:absolute;top:2px;left:2px;background:var(--gold);color:var(--navy-d);
  font-size:9px;font-weight:800;padding:2px 5px;border-radius:3px}
.upload-list .up-item button{position:absolute;top:2px;right:2px;background:rgba(200,40,30,.9);color:#fff;
  border:none;border-radius:4px;font-size:11px;width:18px;height:18px;cursor:pointer}

@media(max-width:860px){
  .nav{position:fixed;inset:64px 0 0 0;background:var(--navy);flex-direction:column;padding:24px;
    transform:translateX(100%);transition:.2s;align-items:flex-start;gap:18px}
  .nav.open{transform:translateX(0)}
  .menu-toggle{display:block}
  .search-box{grid-template-columns:1fr 1fr;padding:14px}
  .search-box button{grid-column:1/-1}
  .filtros-bar{grid-template-columns:1fr 1fr}
  .filtros-bar button{grid-column:1/-1}
  .imovel-grid{grid-template-columns:1fr}
  .sidebar-card{position:static}
  .galeria{grid-template-columns:1fr;max-height:none}
  .galeria .principal{height:280px}
  .galeria .miniaturas{grid-template-columns:repeat(2,1fr);grid-template-rows:none;height:130px}
  .form-grid{grid-template-columns:1fr}
  .site-footer .inner{flex-direction:column}
}
