/*
Theme Name: Lançamentos & Cia
Theme URI: https://lecvirtual.com.br
Author: Lançamentos & Cia
Description: Tema customizado para a imobiliária Lançamentos & Cia, baseado em Underscores.
Version: 1.0
Text Domain: lecvirtual
*/

/* ==============================
   Variáveis e Reset
   ============================== */
:root {
  --color-primary: #D4AF37;
  --color-secondary-start: #B88E23;
  --color-secondary-end: #F0C75E;
  --color-text-light: #FFFFFF;
  --color-text-dark: #111111;
  --color-bg-dark: #111111;
  --color-bg-light: #F5F5F5;
  --color-bg-lighter: #EEEEEE;
  --font-heading: 'Montserrat', sans-serif;
  --font-body: 'Open Sans', sans-serif;

  /* ouro mais vivo para selo/ícones dos cards */
  --gold-bright: #FFC107;
}

*,
*::before,
*::after { box-sizing: border-box; }

html, body { height: 100%; }

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--color-text-light);
  background-color: var(--color-bg-dark);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, picture, video, canvas, svg { display: block; max-width: 100%; }

a { color: var(--color-primary); text-decoration: none; }
a:hover { opacity: .9; }

/* Container padrão */
.container {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 1rem;
}

/* Utilitário de botão */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .6rem 1rem;
  border: 0;
  border-radius: .375rem;
  background: var(--color-primary);
  color: var(--color-text-light);
  font-weight: 600;
  cursor: pointer;
}

/* ==============================
   Header e Navegação
   ============================== */
.site-header { background: var(--color-bg-dark); }

.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 80px;
  gap: 1rem;
}

.site-logo { margin-right: 1rem; }
.site-logo img { max-height: 60px; width: auto; }

/* Nav centralizada entre logo e CTA */
.site-nav { flex: 1; text-align: center; }

.site-nav ul {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: inline-flex;
  gap: 2rem;
}
.site-nav li { margin: 0; }

.site-nav a {
  color: var(--color-text-light);
  font-family: var(--font-heading);
  font-weight: 600;
}
.site-nav a:hover { color: var(--color-secondary-start); }

/* Menu mobile */
.menu-toggle {
  display: none;
  background: transparent;
  border: none;
  font-size: 1.5rem;
  color: var(--color-text-light);
}
@media (max-width: 768px) {
  .site-nav { display: none; }
  .menu-toggle { display: inline-block; }
}

/* ==============================
   HERO (capa da Home)
   ============================== */
.hero { position: relative; padding: 5rem 0; color: var(--color-text-light); }
.hero .overlay { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.hero .hero-content { position: relative; z-index: 1; text-align: center; }
.hero h1 {
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 2.5vw + 1rem, 2.8rem);
  margin: 0 0 1rem;
}
.hero p { margin: 0 0 2rem; font-size: 1.125rem; }

/* ==============================
   Formulário de busca
   ============================== */
.search-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1rem;
  background: #fff;
  color: var(--color-text-dark);
  padding: 1rem;
  border-radius: .5rem;
  box-shadow: 0 8px 24px rgba(0,0,0,.15);
}
.search-form select,
.search-form input[type="text"],
.search-form input[type="number"]{
  width: 100%;
  padding: .65rem .75rem;
  border: 1px solid #ddd;
  border-radius: .375rem;
  background: #fff;
  color: #222;
  outline: none;
}
.search-form select:focus,
.search-form input:focus{
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(212,175,55,.2);
}
.search-form .btn, .btn.btn-search{
  background: var(--color-primary);
  color: var(--color-text-light);
  border: 0;
  padding: .8rem 1rem;
  border-radius: .375rem;
  font-weight: 700;
}

/* ==============================
   Seções com contraste (Home)
   ============================== */
.section-dark { background:#111; color:#fff; padding:2rem 0; }
.section-light{ background:#f5f5f5; color:#111; padding:2rem 0; }
.section-title{
  text-align:center;
  font-family:var(--font-heading);
  font-size: clamp(1.6rem, 2vw + 1rem, 2.2rem);
  margin: 0 0 1rem;
}
.section-dark .section-title{ color:#fff; }
.section-light .section-title{ color:#111; }

/* ==============================
   (versão antiga) Seção Destaques e Cards simples
   ============================== */
.destaques { background: var(--color-bg-light); color: var(--color-text-dark); }
.destaques h2 { font-family: var(--font-heading); color: var(--color-primary); margin: 0 0 2rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2rem; }
.card-imovel{
  background:#fff;border-radius:.5rem;overflow:hidden;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
  transition: transform .2s ease, box-shadow .2s ease;
}
.card-imovel:hover{ transform: translateY(-4px); box-shadow: 0 10px 24px rgba(0,0,0,.12); }
.card-imovel .card-content{ padding:1rem; }
.card-imovel h3{ margin:0 0 .5rem; font-family:var(--font-heading); font-size:1.125rem; color:#111; }
.card-imovel p{ margin:0 0 .5rem; }
.card-imovel ul{ list-style:none; padding:0; margin:0; display:flex; gap:1rem; font-size:.9rem; color:#333; }

/* ==============================
   Footer
   ============================== */
.site-footer{
  position: relative; /* garante que nunca "suma" */
  background: var(--color-bg-dark);
  color: var(--color-text-light);
  padding: 2rem 0 1rem;
}
.site-footer .container{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  padding-bottom: 1rem;
}
.site-footer nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:1.5rem; }
.site-footer nav a{ color:var(--color-text-light); font-family:var(--font-body); font-size:.9rem; }
.site-footer p{
  width:100%;
  text-align:center;
  margin:1rem 0 0;
  font-size:.875rem;
  color:#ccc;
}

/* ==============================
   Botão flutuante de WhatsApp
   ============================== */
.whatsapp-float{
  position: fixed !important;
  bottom: calc(20px + env(safe-area-inset-bottom)) !important;
  right: 20px !important;
  left: auto !important;
  width: 60px; height: 60px;
  border-radius: 50%;
  z-index: 99999;
  display: flex; align-items: center; justify-content: center;
  background: #25D366; /* verde WhatsApp */
  box-shadow: 0 6px 16px rgba(0,0,0,.25);
}
.whatsapp-float img{ width:34px; height:34px; display:block; }
.whatsapp-float::after{
  content:""; position:absolute; inset:0; border-radius:50%;
  animation: pulse-ring 2s infinite;
}
@keyframes pulse-ring{
  0%{ box-shadow:0 0 0 0 rgba(37,211,102,.6); }
  70%{ box-shadow:0 0 0 18px rgba(37,211,102,0); }
  100%{ box-shadow:0 0 0 0 rgba(37,211,102,0); }
}

/* ==============================
   Responsividade extra
   ============================== */
@media (max-width: 480px){
  .site-nav ul { gap: 1rem; }
  .card-imovel h3 { font-size: 1rem; }
  .whatsapp-float { width: 56px; height: 56px; }
  .whatsapp-float img { width: 30px; height: 30px; }
}

/* ======== Cards por Região ======== */
.regions { background: var(--color-bg-light); padding: 3rem 0; color: var(--color-text-dark); }
.section-subtitle { text-align:center; margin: 0 0 2rem; color:#666; }
.region-grid{ display:grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap:1.25rem; }
.region-card{
  position:relative; height:220px; border-radius:.6rem; overflow:hidden; display:block; color:#fff;
  box-shadow:0 8px 22px rgba(0,0,0,.18); transition: transform .2s ease, box-shadow .2s ease;
}
.region-card:hover{ transform: translateY(-4px); box-shadow:0 16px 32px rgba(0,0,0,.22); }
.region-bg{ position:absolute; inset:0; background-size:cover; background-position:center; filter: brightness(.85); }
.region-overlay{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.6) 100%); }
.region-info{ position:absolute; left:16px; right:16px; bottom:14px; }
.region-info h3{ margin:0 0 .25rem; font-family:var(--font-heading); font-size:1.1rem; }
.region-info span{ opacity:.9; }

/* ======== Filtros ======== */
.filters { background:#fff; padding: 2rem 0; }
.filters-form{ display:grid; gap:1rem; grid-template-columns: repeat(6, 1fr); }
.filters-form .filter-field{ display:flex; flex-direction:column; gap:.35rem; }
.filters-form label{ font-size:.9rem; color:#555; }
.filters-form select, .filters-form input{
  padding:.65rem .75rem; border:1px solid #ddd; border-radius:.375rem; background:#fff;
}
.filters-form .filter-actions{ display:flex; align-items:end; }
.filters-form .btn{ width:100%; }
@media (max-width: 1024px){ .filters-form{ grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px){  .filters-form{ grid-template-columns: 1fr; } }

/* ===== Cards LV (novos) ===== */
.lv-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:1.25rem;
}
@media(max-width:1024px){ .lv-grid{grid-template-columns:repeat(2, minmax(0,1fr));} }
@media(max-width:640px){  .lv-grid{grid-template-columns:1fr;} }

.lv-card{
  position:relative;
  background:#fff; color:#111;
  border-radius:14px; overflow:hidden;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
  transition:transform .15s ease, box-shadow .15s ease;
}
.lv-card:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(0,0,0,.18); }
.lv-card__link{ color:inherit; text-decoration:none; display:block; height:100%; }

.lv-card__media{
  aspect-ratio: 4 / 3;
  width:100%; background-size:cover; background-position:center;
}
.lv-badge{
  position:absolute; top:.75rem; left:.75rem;
  background:#111; color:#fff; font-weight:700; font-size:.75rem;
  padding:.35rem .6rem; border-radius:.5rem;
}
.lv-badge--gold{ background:var(--gold-bright); color:#222; }

.lv-card__body{ padding:1rem 1rem 1.25rem; }
.lv-card__status{
  color:#7a7a7a; font-size:.78rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.02em; margin-bottom:.35rem;
}
.lv-card__title{
  margin:.15rem 0 .5rem;
  font:600 1.1rem/1.3 var(--font-heading, 'Montserrat', sans-serif);
  color:#111;
}
.lv-card__specs{
  list-style:none; margin:0 0 .75rem; padding:0;
  display:flex; gap:1rem; flex-wrap:wrap; color:#444; font-size:.9rem;
}
.lv-card__specs li{ display:flex; align-items:center; gap:.35rem; white-space:nowrap; }

/* ícones vetoriais dos specs */
.lv-icon{ display:inline-flex; align-items:center; }
.lv-icon svg{ width:18px; height:18px; margin-right:.35rem; color:var(--gold-bright); }

.lv-card__price{
  font:800 1.05rem/1 var(--font-heading, 'Montserrat', sans-serif);
  color:#0f172a;
}


@media (max-width: 768px) {
  .site-header { position: relative; }
  .site-nav { display: none; }
  .site-nav.is-open {
    display: block;
    position: absolute;
    left: 0; right: 0; top: 100%;
    background: var(--color-bg-dark);
    padding: 1rem 0;
    border-top: 1px solid rgba(255,255,255,.08);
    z-index: 9999;
  }
  .site-nav ul { flex-direction: column; gap: 1rem; margin: 0; }
  .menu-toggle { display: inline-block; }
}






/* ====== Contato ====== */
.contact-page { padding: 1.5rem 0 3rem; }
.contact-intro { color: var(--color-text-light); margin: 0 0 1rem; }
.contact-intro p:last-child { margin-bottom: 0; }

.contact-wrap{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 2rem;
  align-items: start;
}

@media (max-width: 980px){
  .contact-wrap{ grid-template-columns: 1fr; }
}

.contact-form label{
  display:block;
  font-weight: 700;
  color: var(--color-text-light);
  margin: .15rem 0 .35rem;
}

.contact-form input,
.contact-form textarea{
  width: 100%;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  color: #111;
  padding: .95rem 1rem;
  outline: none;
}
.contact-form textarea{ min-height: 260px; }

.contact-form .field{ margin-bottom: 1rem; }
.contact-form .field-group{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 680px){
  .contact-form .field-group{ grid-template-columns: 1fr; }
}

/* Botão no padrão ouro do site */
.btn.btn-gold{
  background: var(--color-primary);
  color: #111;
  font-weight: 800;
  border-radius: 12px;
  padding: .9rem 1.6rem;
  border: none;
  cursor: pointer;
  box-shadow: 0 8px 16px rgba(0,0,0,.25);
}
.btn.btn-gold:hover{ filter: brightness(1.05); }

.form-actions{ display:flex; justify-content:flex-end; }

.contact-note{
  color:#cfcfcf;
  font-size: .9rem;
  margin-top: .5rem;
}

/* Cartão de localização */
.contact-card{
  background: #fff;
  color: #0b1220;
  border-radius: 16px;
  padding: 1.25rem 1.25rem;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.card-title{
  font-family: var(--font-heading);
  margin: 0 0 .75rem;
  color: #0b1220;
}
.contact-item{
  display:flex; align-items:flex-start; gap:.75rem;
  padding: .75rem 0;
  border-top: 1px solid #eef0f3;
}
.contact-item:first-of-type{ border-top: 0; }

.ci-ico{
  display:inline-flex; align-items:center; justify-content:center;
  width: 36px; height: 36px; border-radius: 8px;
  background: #f3f6fb; font-size: 18px;
}
.ci-text a{ color:#0b5bd1; text-decoration:none; }
.ci-text a:hover{ text-decoration:underline; }

/* Garantir respiro nas laterais no mobile */
.container{ padding-left: 1rem; padding-right: 1rem; }


/* CSS suave de ancora */
html { scroll-behavior: smooth; }




.single-emp .chip--white{ background:#fff; color:#111; border:1px solid #e5e5e5; }
.single-emp .lv-card__specs li{ display:flex; align-items:center; gap:.35rem; }

.single-emp .quick.quick--specs .lv-icon{display:inline-flex; margin-right:.35rem; vertical-align:-2px}
.single-emp .quick.quick--specs .lv-icon svg{width:16px; height:16px /*; color:inherit*/ }




/* Clamp de 3 linhas com toggle */
.single-emp .lv-clamp{ --lines:3; overflow:hidden; }
.single-emp .lv-clamp[data-expanded="0"]{
  display:-webkit-box; -webkit-line-clamp:var(--lines); -webkit-box-orient:vertical;
}
.single-emp .lv-more{
  display:inline-block; margin-top:.25rem; font-size:.95rem;
  opacity:.85; text-decoration:underline; cursor:pointer;
  background:none; border:0; padding:0; color:inherit;
}
.single-emp .lv-more:hover{ opacity:1; }
