:root{
  --bg:#f5f7fa;
  --surface:#ffffff;
  --surface-2:#f0f3f8;
  --border:#e1e6ef;
  --navy: #091a34;
  --navy-2: #051021;
  --gold: #b88b40;
  --gold-2: #9e7533;
  --text:#0d1b2a;
  --muted:#5f6f86;
  --radius:16px;
  --max:1160px;
  --font: 'Open Sans', ui-sans-serif, system-ui, sans-serif;
  --font-heading: 'Montserrat', sans-serif;
  --shadow: 0 12px 32px rgba(9, 26, 52, .08);
  --icon-blue: #091a34;
}

*{box-sizing:border-box}
html,body{ margin:0;padding:0; font-family:var(--font); background:var(--bg); color:var(--text); overflow-x: hidden; scroll-behavior: smooth;}
html{ scroll-padding-top: 150px; }
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 18px; position: relative;}
h1, h2, h3, h4, .headline, .price { font-family: var(--font-heading); }

/* TOPBAR */
.topbar{ position:sticky; top:0; z-index:50; background: var(--navy); border-bottom: 3px solid var(--gold); box-shadow: 0 4px 12px rgba(0,0,0,0.2); }
.nav{position:relative;display:flex;align-items:center;justify-content:space-between; padding:12px 0; gap:14px;}
.brand{display:flex; align-items:center; gap:14px; min-width: 320px; cursor: pointer;}
.logo{ width: 210px; height: 115px; display:flex; align-items:center; justify-content:center; flex-shrink: 0; }
.logo img{ width:100%; height:100%; object-fit:contain; transform: scale(1.25); }
.brand h1{font-size:16px;margin:0;line-height:1.2; color: #ffffff;}
.brand small{display:block;color: #d1d5db; font-weight:600; font-family: var(--font); font-size: 11px; margin-top: 4px;}
.menu{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.menu a{ color: #ffffff; font-weight:600; padding:8px 12px; border-radius:12px; font-size: 14px; transition: 0.3s;}
.menu a:hover{background: rgba(255,255,255,0.1); color: var(--gold);}
.menu-toggle{display:none; align-items:center; justify-content:center; width:44px; height:44px; border:none; border-radius:14px; background: rgba(255,255,255,.12); color:#fff; font-size: 24px; cursor:pointer; transition: 0.2s;}
.menu-toggle:hover{background: rgba(255,255,255,.2);}
.nav-actions{display:flex;gap:10px;align-items:center}
.btn{ display:inline-flex;align-items:center;justify-content:center;gap:10px; padding:12px 16px;border-radius:14px; border:1px solid #dfe3ea; background:#fff; color:var(--navy); cursor:pointer; transition:.2s; font-weight:700; font-size: 14px; text-align: center; }
.btn:hover{transform:translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,0.1);}
.btn.primary{ background: var(--navy); color:#fff; border-color: var(--navy); }
.btn.primary:hover{background: var(--navy-2)}
.btn.accent{ background: var(--gold); color:#fff; border-color: var(--gold); }
.btn.accent:hover{background: var(--gold-2)}
.btn.whats{ background: linear-gradient(135deg,#25D366,#57f09a); color:#083018; border-color: rgba(0,0,0,.08); }

/* HERO */
.hero{ padding:40px 0 30px; background: linear-gradient(180deg, #ffffff 0%, #f6f8fc 100%); color: var(--text); border-bottom: 1px solid var(--border); }
.hero-grid{ display:grid;grid-template-columns:1.1fr 0.9fr; gap:40px; align-items:start; }
.headline{ font-size:42px;line-height:1.2;margin:0 0 10px; letter-spacing:-.02em;color:var(--navy); font-weight: 800; }
.headline .gold{color:var(--gold)}
.sub{ color:var(--muted); font-size:16px; line-height:1.6; margin:0 0 24px; font-weight:600; }

/* FILTROS E BUSCA */
.search-container { max-width: 900px; margin: 0 auto; position: relative;}
.filter-pills { display: flex; justify-content: center; gap: 10px; margin-bottom: -15px; position: relative; z-index: 2; flex-wrap: wrap; }
.pill { background: #fff; border: 1px solid var(--border); padding: 10px 25px; border-radius: 50px; cursor: pointer; font-weight: 700; color: var(--navy); transition: 0.3s; box-shadow: 0 4px 10px rgba(0,0,0,0.03); }
.pill.active { border-color: var(--gold); color: var(--gold); background: #fdfaf4; }
.search-box { background: #fff; padding: 40px 30px 30px; border-radius: 20px; box-shadow: 0 15px 40px rgba(0,0,0,0.08); border: 1px solid var(--border); }
.search-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; align-items: flex-end; margin-bottom: 20px;}
.search-group label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 8px; color: var(--navy); padding-left: 5px; }
.search-group select { width: 100%; padding: 14px; border-radius: 12px; border: 1px solid #eee; background: #f8f9fa; font-weight: 600; color: var(--navy); outline: none; font-family: var(--font);}

/* FILTROS MULTIPLA ESCOLHA (TAGS) */
.checkbox-group { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 5px; }
.checkbox-tag { display: inline-block; }
.checkbox-tag input[type="checkbox"] { display: none; }
.checkbox-tag label { display: inline-block; padding: 10px 18px; background: #f8f9fa; border: 1px solid #eee; border-radius: 50px; cursor: pointer; font-size: 13px; font-weight: 700; color: var(--navy); transition: 0.3s; user-select: none; }
.checkbox-tag input[type="checkbox"]:checked + label { background: #fdfaf4; border-color: var(--gold); color: var(--gold); box-shadow: 0 4px 10px rgba(0,0,0,0.03); }

/* CARROSSEL DESTAQUES */
.destaques-container { padding: 50px 0 10px; background: var(--bg); }
.carousel-wrapper { position: relative; padding: 10px 0; }
.destaques-slider { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 10px 0 30px 0; scroll-behavior: smooth; scrollbar-width: none; }
.destaques-slider::-webkit-scrollbar { display: none; }
.destaque-card { display: block; min-width: 340px; height: 420px; border-radius: 20px; overflow: hidden; position: relative; scroll-snap-align: start; cursor: pointer; flex-shrink: 0; box-shadow: 0 10px 30px rgba(9, 26, 52, 0.1); transition: transform 0.3s; background-color: var(--border); }
.destaque-card:hover { transform: translateY(-8px); box-shadow: 0 15px 35px rgba(9, 26, 52, 0.15); }
.destaque-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.destaque-card:hover img { transform: scale(1.05); }
.destaque-overlay { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(9, 26, 52, 0.95) 0%, rgba(9, 26, 52, 0.5) 60%, transparent 100%); padding: 40px 24px 24px; color: #fff; display: flex; flex-direction: column; justify-content: flex-end; pointer-events: none;}
.destaque-tag { background: var(--gold); color: #fff; font-size: 11px; font-weight: 800; padding: 6px 12px; border-radius: 999px; align-self: flex-start; margin-bottom: 12px; text-transform: uppercase; letter-spacing: 1px; }
.destaque-title { font-size: 24px; font-family: var(--font-heading); font-weight: 800; margin: 0 0 8px 0; line-height: 1.2; text-shadow: 0 2px 4px rgba(0,0,0,0.5);}
.destaque-meta { font-size: 14px; color: #e1e6ef; margin-bottom: 8px; font-weight: 600;}
.destaque-price { font-size: 18px; font-weight: 800; color: #fff; margin-top: 4px;}
.btn-slider { position: absolute; top: 45%; transform: translateY(-50%); background: rgba(9, 26, 52, 0.85); color: #fff; border: none; width: 50px; height: 50px; border-radius: 50%; font-size: 24px; font-weight: bold; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: 0.3s; backdrop-filter: blur(5px); z-index: 10; box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
.btn-slider:hover { background: var(--gold); transform: translateY(-50%) scale(1.1); }
.slider-prev { left: -15px; }
.slider-next { right: -15px; }

/* LISTAS DE IMÓVEIS */
section{padding:50px 0}
.section-title{ display:flex;align-items:flex-end;justify-content:space-between; gap:14px; flex-wrap: wrap; margin-bottom: 30px;}
.section-title h2{margin:0;font-size:32px;color:var(--navy);letter-spacing:-.01em; font-weight: 800;}
.section-title p{margin:0;color:var(--muted);font-weight:600; font-size: 16px;}

.listings { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.listing { display: flex; flex-direction: column; padding: 16px; border: 1px solid var(--border); border-radius: 20px; background: #fff; box-shadow: 0 4px 12px rgba(0,0,0,0.03); transition: 0.3s; height: 100%;}
.listing:hover { box-shadow: var(--shadow); transform: translateY(-3px); border-color: rgba(9,26,52,0.1); }
.photo { display: block; width: 100%; height: 220px; border-radius: 16px; overflow: hidden; border: 1px solid var(--border); background: var(--surface-2); position: relative; margin-bottom: 15px; flex-shrink: 0;}
.photo img { width: 100%; height: 100%; object-fit: cover; transition: 0.5s; }
.listing:hover .photo img { transform: scale(1.05); }
.listing-content { display: flex; flex-direction: column; flex: 1; }
.listing h3 { margin: 0; color: var(--navy); font-size: 20px; letter-spacing: -.01em; font-weight: 800; line-height: 1.3;}
.listing h3 a:hover { color: var(--gold); }
.meta { margin-top: 8px; color: var(--muted); font-weight: 600; line-height: 1.5; font-size: 13px;}
.tagrow { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.tag { font-size: 11px; color: var(--navy); background: var(--surface-2); border: 1px solid var(--border); padding: 4px 10px; border-radius: 999px; font-weight: 700; }
.row-bottom { margin-top: auto; display: flex; flex-direction: column; gap: 15px; padding-top: 16px; border-top: 1px dashed var(--border); }
.price-box { line-height: 1.2; }
.price-label { font-size: 13px; color: var(--muted); font-weight: 600; }
.price { font-size: 20px; font-weight: 800; color: var(--gold); }
.listing-actions { display: flex; gap: 10px; width: 100%; }

/* SERVIÇOS E CONTATO */
#servicos { background: transparent; padding: 80px 0; border-top: 1px solid var(--border);}
#servicos .section-title h2 { color: var(--navy); }
#servicos .section-title p { color: var(--muted); }
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
#servicos .block { padding:30px; border:1px solid var(--border); border-radius:20px; background: #fff; box-shadow: 0 4px 12px rgba(0,0,0,0.03); }
#servicos .block h3 { font-size: 20px; font-weight: 700; color: var(--navy); }
#servicos .block .meta { color: var(--muted); }
#servicos .block .tag { background: #f1f4f9; color: var(--navy); border: 1px solid #e1e6ee; }

.captacao-banner { background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); color: #fff; padding: 60px 30px; border-radius: 20px; text-align: center; box-shadow: 0 20px 40px rgba(9, 26, 52, 0.15); border: 1px solid rgba(255,255,255,0.05); margin-top: 40px; }
.captacao-banner h2 { font-size: 32px; margin: 0 0 15px 0; color: #fff; font-family: var(--font-heading); font-weight: 800; }
.captacao-banner p { font-size: 16px; color: #d1d5db; max-width: 650px; margin: 0 auto 30px auto; line-height: 1.6; font-weight: 500;}

.cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.box{ background:#fff; border:1px solid var(--border); border-radius:20px; padding:30px; box-shadow: 0 4px 12px rgba(0,0,0,0.03);}
.box h4{margin:0 0 15px;color:var(--navy); font-size: 20px; font-weight: 800;}
.box ul{margin:0;padding-left:18px;color:var(--muted);line-height:1.8;font-weight:600}
.form{display:grid;gap:15px}
.form input, .form textarea{ width:100%; background:var(--bg); border:1px solid var(--border); border-radius:12px; padding:16px; color:var(--navy); outline:none; font-weight:600; font-family: var(--font); }
.form input:focus, .form textarea:focus { border-color: var(--gold); }
.form textarea{min-height:140px;resize:vertical}

/* Consentimento (LGPD) e campo antispam dos formulários */
.consent{ display:flex; align-items:flex-start; gap:10px; font-size:12px; line-height:1.45; color:var(--muted); font-weight:600; text-align:left; margin-bottom:15px; cursor:pointer; }
.form .consent input, .form-ebook .consent input{ width:18px; height:18px; padding:0; margin:1px 0 0; flex-shrink:0; accent-color: var(--navy); }
.hp-wrap{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; opacity:0; }

/* SEÇÃO EBOOK */
#ebook-section { background: var(--bg) !important; padding: 80px 0 !important; display: block !important; width: 100%; }
.ebook-grid { display: flex; flex-wrap: wrap; gap: 50px; align-items: center; justify-content: space-between; }
.ebook-text-content { flex: 1.2; min-width: 320px; }
.ebook-form-card { flex: 0.8; min-width: 320px; max-width: 450px; }
.tag-ebook { background: var(--navy); color: #ffffff; font-size: 11px; font-weight: 800; padding: 10px 22px; border-radius: 50px; display: inline-block; margin-bottom: 25px; text-transform: uppercase; letter-spacing: 1px; border: none !important; }
.ebook-text-content h2 { color: var(--navy); font-size: 42px; font-weight: 800; margin-bottom: 20px; line-height: 1.1; }
.ebook-text-content p { color: var(--navy); font-size: 18px; line-height: 1.6; margin-bottom: 15px; opacity: 0.9; }
.ebook-form-card { background: #ffffff; border-radius: 24px; padding: 40px; box-shadow: 0 15px 35px rgba(9, 26, 52, 0.08); border: 1px solid var(--border); }
.form-ebook input { width: 100%; background: var(--bg); border: 1px solid var(--border); border-radius: 12px; padding: 16px; margin-bottom: 15px; font-size: 16px; font-family: var(--font); color: var(--navy); outline: none; transition: 0.3s; }
.form-ebook input:focus { border-color: var(--gold); background: #fff; }
.btn-ebook { width: 100%; padding: 18px; background: var(--gold); color: #fff; border: none; border-radius: 12px; font-weight: 800; font-size: 16px; cursor: pointer; text-transform: uppercase; transition: 0.3s; }
.btn-ebook:hover { background: var(--gold-2); transform: translateY(-2px); }

/* FOOTER */
.footer{ padding:50px 0; background: var(--navy); color:#d1d5db; }
.footgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}
.small{font-size:13px; font-weight:500; line-height: 1.6; color: #e5e7eb;}
.footer b {color: var(--gold); font-family: var(--font-heading); font-size: 16px;}
.footer a.small:hover {color: #ffffff; text-decoration: underline;}
.whats-float{ position:fixed; right:20px; bottom:20px; z-index:50; border-radius:999px; box-shadow: 0 16px 40px rgba(0,0,0,.2); font-size: 16px; padding: 16px 28px;}

/* PÁGINAS E TRANSIÇÕES (index.html) */
#view-todos-imoveis { display: none; }
#view-home { display: block; }

.nav-voltar { padding: 20px 0; border-bottom: 1px solid var(--border); margin-bottom: 30px; }
.nav-voltar a, .nav-voltar button { background: transparent; border: none; font-family: var(--font-heading); font-weight: 700; font-size: 16px; color: var(--navy); cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.nav-voltar a:hover, .nav-voltar button:hover { color: var(--gold); }

/* PÁGINA DO IMÓVEL (imovel.html) */
.imovel-header { margin-bottom: 30px; }
.imovel-header h1 { font-size: 38px; color: var(--navy); margin: 0 0 10px 0; }
.imovel-header .price { font-size: 32px; color: var(--gold); margin-bottom: 15px; }
.imovel-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 40px; align-items: start; }
.carousel-container { position: relative; width: 100%; border-radius: 20px; overflow: hidden; border: 1px solid var(--border); box-shadow: var(--shadow); background: #fff;}
.carousel-main { width: 100%; height: 500px; position: relative; background-color: var(--border); }
.carousel-main img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; }
.carousel-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(9, 26, 52, 0.7); color: #fff; border: none; width: 50px; height: 50px; border-radius: 50%; font-size: 24px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: 0.3s; backdrop-filter: blur(5px);}
.carousel-btn:hover { background: var(--gold); }
.btn-prev { left: 15px; }
.btn-next { right: 15px; }
.carousel-thumbs { display: flex; gap: 10px; padding: 15px; overflow-x: auto; background: var(--surface-2); }
.carousel-thumbs img { width: 100px; height: 70px; object-fit: cover; border-radius: 8px; cursor: pointer; border: 2px solid transparent; transition: 0.2s; opacity: 0.6; background-color: #ddd; flex-shrink: 0;}
.carousel-thumbs img:hover, .carousel-thumbs img.active { border-color: var(--gold); opacity: 1; }
.imovel-sidebar { background: #fff; padding: 30px; border-radius: 20px; border: 1px solid var(--border); box-shadow: var(--shadow); position: sticky; top: 170px;}
.imovel-sidebar h3 { font-size: 22px; color: var(--navy); margin: 0 0 20px 0; border-bottom: 2px solid var(--surface-2); padding-bottom: 10px;}
.btn-share { width: 100%; margin-top: 12px; padding: 14px; font-size: 15px; }

.feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 15px; margin-bottom: 30px; }
.feature-item { display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 600; color: var(--navy); line-height: 1.3;}
.feature-icon { width: 34px; height: 34px; background-color: var(--navy); border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #fff; flex-shrink: 0; box-shadow: 0 2px 6px rgba(9, 26, 52, 0.3); }
.feature-icon svg { width: 18px; height: 18px; fill: currentColor; }

.mapa-container { margin-top: 40px; background: #fff; padding: 30px; border-radius: 20px; border: 1px solid var(--border); box-shadow: var(--shadow); }
.mapa-container h3 { font-size: 26px; color: var(--navy); margin: 0 0 20px 0; }
.iframe-mapa { width: 100%; height: 400px; border-radius: 16px; border: none; }

.nao-encontrado { text-align: center; padding: 80px 20px; background: #fff; border: 1px solid var(--border); border-radius: 20px; box-shadow: var(--shadow); margin-bottom: 40px; }
.nao-encontrado h1 { font-size: 30px; color: var(--navy); margin: 0 0 12px; }
.nao-encontrado p { color: var(--muted); font-weight: 600; margin: 0 0 25px; }

/* LIGHTBOX */
.lightbox { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(9, 26, 52, 0.95); align-items: center; justify-content: center; backdrop-filter: blur(5px); }
.lightbox img { max-width: 90%; max-height: 90%; border-radius: 12px; box-shadow: 0 10px 40px rgba(0,0,0,0.5); object-fit: contain; }
.lightbox-close { position: absolute; top: 20px; right: 30px; color: white; font-size: 50px; font-weight: bold; cursor: pointer; transition: 0.3s; }
.lightbox-close:hover { color: var(--gold); }
.lightbox-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,0.1); color: white; border: none; width: 60px; height: 60px; border-radius: 50%; font-size: 30px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: 0.3s; }
.lightbox-btn:hover { background: var(--gold); }
.lb-prev { left: 40px; }
.lb-next { right: 40px; }

/* Mobile / Responsivo */
@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr; gap: 40px;}
  .menu{display:none; position:absolute; top:100%; right:18px; width:min(280px, calc(100% - 36px)); flex-direction:column; gap:10px; background: rgba(9,26,52,0.96); border-radius: 18px; padding: 16px 18px 18px; z-index:60;}
  .menu.open{display:flex;}
  .menu a{ width:100%; padding: 14px 16px; }
  .menu-toggle{display:inline-flex;}
  .grid3{grid-template-columns:1fr}
  .footgrid{grid-template-columns:1fr}
  .cols{grid-template-columns:1fr}
  .listings{grid-template-columns: repeat(2, 1fr)}
  .imovel-grid { grid-template-columns: 1fr; }
  .imovel-sidebar { position: relative; top: 0; }
  .btn-slider { display: none; }
}
@media (max-width: 768px){
  .search-grid { grid-template-columns: 1fr; }
  .search-box { padding: 30px 20px 20px; }
}
@media (max-width: 620px){
  html{ scroll-padding-top: 120px; }
  section {padding: 40px 0;}
  .headline{font-size:32px}
  .brand{min-width:auto}
  .logo {width: 140px; height: 90px;}
  .nav-actions {display: none;}
  .destaque-card { min-width: 280px; height: 360px; }
  .destaque-title { font-size: 20px;}
  .destaque-price { font-size: 16px;}
  .listings{grid-template-columns: 1fr;}
  .listing-actions {flex-direction: column;}
  .listing-actions .btn {width: 100%;}
  .carousel-main { height: 300px; }
  .imovel-header h1 { font-size: 28px; }
  .captacao-banner { padding: 40px 20px; }
  .captacao-banner h2 { font-size: 26px; }
  .lightbox-btn { width: 40px; height: 40px; font-size: 20px; }
  .lb-prev { left: 10px; }
  .lb-next { right: 10px; }
}
