*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

html,body{
  font-family:Arial, Helvetica, sans-serif;
  background:var(--cor-fundo);
  color:var(--cor-texto);
}

a{
  text-decoration:none;
  color:inherit;
}

img{
  max-width:100%;
  display:block;
}

.container{
  width:min(var(--container), calc(100% - 32px));
  margin:0 auto;
}

.mb-16{
  margin-bottom:16px;
}

.topbar{
  background:var(--cor-topbar-fundo);
  color:var(--cor-topbar-texto);
  padding:10px 0;
  font-size:14px;
}

.topbar-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}

.topbar-left,
.topbar-right{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

.topbar-contact-link{
  color:inherit;
  text-decoration:none;
  transition:color .2s ease;
}

.topbar-contact-link:hover{
  color:var(--cor-topbar-link-hover);
  text-decoration:underline;
}

.main-nav{
  background:var(--cor-secundaria);
  color:var(--cor-branco);
}

.nav-inner{
  min-height:84px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
}

.brand-logo{
  max-height:58px;
  width:auto;
}

.brand-text{
  display:flex;
  flex-direction:column;
  line-height:1.2;
}

.brand-text strong{
  font-size:22px;
}

.brand-text small{
  opacity:.8;
  font-size:12px;
}

.menu{
  list-style:none;
  display:flex;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
}

.menu-contact-item{
  display:flex;
  align-items:center;
  gap:10px;
}

.menu a{
  display:inline-flex;
  align-items:center;
  color:var(--cor-branco);
  font-weight:600;
}

.menu a:hover{
  color:var(--cor-destaque);
}

.menu-admin-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  padding:0;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  transition:transform .2s ease, border-color .2s ease, background .2s ease, color .2s ease;
}

.menu-admin-link svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.menu-admin-link:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.32);
}

.menu-admin-link:focus-visible{
  outline:3px solid rgba(255,255,255,.22);
  outline-offset:3px;
}

.menu-admin-link::after{
  content:attr(data-tooltip);
  position:absolute;
  left:50%;
  bottom:calc(100% + 10px);
  transform:translateX(-50%) translateY(4px);
  opacity:0;
  pointer-events:none;
  padding:6px 10px;
  border-radius:999px;
  background:#ffffff;
  color:#1f2937;
  white-space:nowrap;
  font-size:12px;
  font-weight:700;
  box-shadow:0 10px 24px rgba(15,23,42,.16);
  transition:opacity .2s ease, transform .2s ease;
}

.menu-admin-link:hover::after,
.menu-admin-link:focus-visible::after{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

.site-main{
  min-height:60vh;
}

.hero{
  padding:70px 0;
  background:
    linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.35)),
    linear-gradient(135deg, var(--cor-primaria), var(--cor-secundaria));
  color:var(--cor-branco);
}

.hero-headline{
  text-align:center;
  margin-bottom:20px;
}

.hero-headline h1{
  font-size:34px;
  color:#111;
  background:rgba(255,255,255,.55);
  padding:10px 18px;
  display:inline-block;
  border-radius:8px;
}

.hero-search-wrap{
  background:rgba(255,255,255,.28);
  padding:28px;
  border-radius:14px;
  backdrop-filter:blur(3px);
}

.hero-box{
  max-width:700px;
}

.hero h1{
  font-size:42px;
  margin-bottom:12px;
}

.hero p{
  font-size:18px;
  margin-bottom:24px;
}

.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.btn{
  display:inline-block;
  padding:13px 22px;
  border-radius:8px;
  font-weight:700;
  transition:.2s ease;
  border:none;
  cursor:pointer;
}

.btn-primary{
  background:var(--cor-primaria);
  color:var(--cor-branco);
}

.btn-primary:hover{
  filter:brightness(1.05);
}

.btn-outline{
  border:2px solid var(--cor-branco);
  color:var(--cor-branco);
}

.btn-outline:hover{
  background:rgba(255,255,255,.12);
}

.btn-full{
  width:100%;
  text-align:center;
}

.section{
  padding:50px 0;
}

.section.alt{
  background:#ffffff;
}

.section-title{
  margin-bottom:24px;
}

.section-title h2{
  font-size:32px;
  margin-bottom:8px;
}

.faixa-titulo{
  background:#d9ebec;
  padding:10px 14px;
  margin-bottom:18px;
}

.faixa-titulo h2{
  font-size:24px;
}

.titulo-pagina{
  margin-bottom:24px;
  border-bottom:1px solid #ddd;
  padding-bottom:10px;
}

.titulo-pagina h1{
  font-size:46px;
  color:var(--cor-destaque);
}

.grid-3{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}

.grid-imoveis{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}

.card-box,
.sidebar-box,
.texto-livre{
  background:#fff;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:24px;
}

.card-box h3{
  margin-bottom:10px;
  color:var(--cor-secundaria);
}

.texto-livre{
  line-height:1.7;
}

.texto-livre > * + *{
  margin-top:14px;
}

.texto-livre ul,
.texto-livre ol{
  padding-left:22px;
}

.texto-livre a{
  color:var(--cor-primaria);
  text-decoration:underline;
}

.form-busca,
.form-padrao{
  display:grid;
  gap:14px;
}

.form-busca-horizontal{
  grid-template-columns:repeat(4, 1fr);
  align-items:end;
}

.form-busca-vertical{
  grid-template-columns:1fr;
}

.form-grid-2{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px;
}

.campo{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.campo label{
  font-weight:700;
  color:#1f3d5f;
}

.admin-form-obrigatorio-legenda{
  margin:0 0 14px;
  color:#64748b;
  font-size:13px;
}

.admin-form-obrigatorio-legenda span{
  color:#b91c1c;
  font-weight:800;
}

.admin-panel .campo label[for="codigo"]::after,
.admin-panel .campo label[for="titulo"]::after,
.admin-panel .campo label[for="captador_usuario_id"]::after,
.admin-panel .campo label[for="cidade_id"]::after,
.admin-panel .campo label[for="bairro_id"]::after{
  content:" *";
  color:#b91c1c;
  font-weight:800;
}

.campo select,
.campo input,
.campo textarea{
  width:100%;
  min-height:46px;
  border:1px solid #bfc7cf;
  border-radius:6px;
  padding:10px 12px;
  font-size:15px;
  background:#fff;
}

.campo textarea{
  min-height:120px;
  resize:vertical;
}

.campo-codigo{
  grid-column:span 2;
}

.card-imovel{
  position:relative;
  background:#fff;
  border-radius:10px;
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid #e5e5e5;
  transition:transform .18s ease, box-shadow .18s ease;
}

.card-imovel:focus-within{
  box-shadow:0 0 0 3px rgba(44,122,123,.22), 0 8px 22px rgba(0,0,0,.12);
}

.card-imovel-link-area{
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:inherit;
}

.card-imovel-link-thumb{
  display:block;
}

.card-imovel-thumb{
  position:relative;
  overflow:hidden;
}

.card-imovel-thumb img{
  width:100%;
  height:240px;
  object-fit:cover;
}

.card-imovel-link{
  display:block;
}

.card-imovel-foto-wrap{
  position:relative;
}

.card-imovel-foto{
  width:100%;
  height:240px;
  object-fit:cover;
}

.card-tags{
  position:absolute;
  top:10px;
  right:10px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.tag{
  display:inline-block;
  padding:6px 10px;
  border-radius:6px;
  font-size:13px;
  font-weight:700;
  line-height:1;
}

.tag-finalidade{
  background:#f2c230;
  color:#fff;
}

.tag-tipo{
  background:#f2c230;
  color:#fff;
}

.tag-destaque{
  background:#2c7a7b;
  color:#fff;
}

.card-imovel-badge-destaque{
  position:absolute;
  top:12px;
  left:12px;
  z-index:2;
  background:rgba(0,0,0,.5);
  color:#fff;
  pointer-events:none;
}

.card-imovel-body{
  padding:8px 8px 20px;
  display:flex;
  flex-direction:column;
  gap:14px;
  line-height:1;
}

.card-imovel-meta-top,
.card-imovel-title,
.card-imovel-local,
.card-imovel-preco,
.card-imovel-info{
  margin:0;
}

.card-imovel-title{
  font-size:20px;
  line-height:1.4;
}

.card-imovel-local{
  color:#526071;
  font-size:15px;
  line-height:1;
}

.card-imovel-preco{
  font-size:25px;
  font-weight:800;
  line-height:1.05;
  letter-spacing:-0.02em;
  color:#DD6B20;
}

.card-imovel-info{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  color:#000;
  font-weight:700;
}

.card-imovel-cta{
  position:relative;
  z-index:2;
  margin-top:auto;
}

.card-bairro{
  font-size:14px;
  font-weight:700;
  color:var(--cor-primaria);
  margin-bottom:8px;
}

.card-titulo{
  font-size:18px;
  line-height:1.35;
  min-height:48px;
  margin-bottom:10px;
  color:#111;
}

.card-preco{
  font-size:18px;
  font-weight:700;
  margin-bottom:14px;
  color:#111;
}

.card-meta{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  margin-bottom:12px;
  color:var(--cor-primaria);
  font-weight:700;
}

.card-local{
  color:#555;
  font-size:15px;
}

.sobre-grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:24px;
}

.sidebar-home{
  display:flex;
  flex-direction:column;
  gap:24px;
}

.layout-busca-grid{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:24px;
}

.pagina-form-grid{
  display:grid;
  grid-template-columns:1.4fr .8fr;
  gap:24px;
}

.paginacao{
  display:flex;
  gap:10px;
  justify-content:center;
  margin-top:24px;
  flex-wrap:wrap;
}

.paginacao a{
  min-width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:#fff;
  border:1px solid #ddd;
  font-weight:700;
}

.paginacao a.ativo{
  background:var(--cor-primaria);
  color:#fff;
  border-color:var(--cor-primaria);
}

.detalhe-grid{
  display:grid;
  grid-template-columns:1.4fr .9fr;
  gap:24px;
  align-items:start;
  margin-bottom:30px;
}

.detalhe-grid--com-mapa{
  grid-template-areas:
    "galeria lateral"
    "descricao lateral"
    "mapa lateral";
}

.detalhe-grid--com-mapa.detalhe-grid--com-caracteristicas{
  grid-template-areas:
    "galeria lateral"
    "caracteristicas lateral"
    "descricao lateral"
    "mapa lateral";
}

.detalhe-grid--sem-mapa{
  grid-template-areas:
    "galeria lateral"
    "descricao lateral";
}

.detalhe-grid--sem-mapa.detalhe-grid--com-caracteristicas{
  grid-template-areas:
    "galeria lateral"
    "caracteristicas lateral"
    "descricao lateral";
}

.detalhe-galeria-box{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:12px;
  grid-area:galeria;
  z-index:30;
}

.detalhe-lateral{
  display:flex;
  flex-direction:column;
  gap:24px;
  grid-area:lateral;
}

.detalhe-foto-principal img{
  width:100%;
  height:460px;
  object-fit:cover;
  border-radius:10px;
  box-shadow:var(--shadow);
}

.detalhe-foto-principal{
  position:relative;
  overflow:hidden;
  border-radius:10px;
}

.detalhe-galeria-nav{
  position:absolute;
  top:50%;
  z-index:3;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border:none;
  border-radius:999px;
  background:rgba(15, 23, 42, .6);
  color:#fff;
  font-size:32px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
  backdrop-filter:blur(6px);
  transition:background .2s ease, transform .2s ease;
}

.detalhe-galeria-nav:hover{
  background:rgba(15, 23, 42, .8);
}

.detalhe-galeria-nav:focus-visible{
  outline:3px solid rgba(255,255,255,.9);
  outline-offset:2px;
}

.detalhe-galeria-nav-prev{
  left:14px;
}

.detalhe-galeria-nav-next{
  right:14px;
}

.detalhe-foto-counter{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  min-width:58px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(0,0,0,.58);
  color:#fff;
  font-size:14px;
  font-weight:700;
  letter-spacing:.02em;
  text-align:center;
  box-shadow:0 8px 20px rgba(0,0,0,.16);
}

.detalhe-info{
  background:#fff;
  border-radius:10px;
  box-shadow:var(--shadow);
  padding:24px;
  grid-area:info;
}

.detalhe-info h1{
  font-size:30px;
  margin-bottom:12px;
}

.detalhe-preco{
  font-size:28px;
  font-weight:700;
  color:#DD6B20;
  margin-bottom:20px;
}

.detalhe-lista{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:20px;
}

.detalhe-share-box{
  position:relative;
  display:flex;
  justify-content:flex-end;
  width:100%;
  margin:0;
}

.detalhe-share-box--open{
  z-index:1200;
}

.detalhe-descricao-box{
  grid-area:descricao;
}

.detalhe-caracteristicas-box{
  grid-area:caracteristicas;
}

.detalhe-caracteristicas-box h2,
.detalhe-descricao-box h2{
  margin-bottom:10px;
  color:#111827;
  font-size:28px;
}

.detalhe-caracteristicas-grid{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  grid-auto-flow:row;
  gap:4px 20px;
  margin:0;
  padding:0;
}

.detalhe-caracteristicas-grid li{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:auto;
  padding:1px 0;
  border:none;
  border-radius:0;
  background:transparent;
  color:#334155;
  font-size:14px;
  line-height:1.2;
  white-space:nowrap;
}

.detalhe-caracteristicas-grid li::before{
  content:"";
  width:5px;
  height:5px;
  flex:0 0 5px;
  margin-top:0;
  border-radius:999px;
  background:#94a3b8;
}

.detalhe-share-trigger-wrap{
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.detalhe-share-trigger-label{
  color:#475569;
  font-size:13px;
  font-weight:700;
  letter-spacing:.02em;
  text-transform:uppercase;
}

.share-toggle-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  padding:0;
  border:1px solid #dbe3ea;
  border-radius:999px;
  background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  color:#0f172a;
  box-shadow:0 14px 30px rgba(15,23,42,.10);
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}

.share-toggle-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 36px rgba(15,23,42,.14);
}

.share-toggle-btn:focus-visible{
  outline:3px solid rgba(15,23,42,.2);
  outline-offset:3px;
}

.detalhe-share-box--open .share-toggle-btn{
  background:linear-gradient(180deg, var(--cor-primaria) 0%, var(--cor-secundaria) 100%);
  border-color:transparent;
  color:#fff;
}

.share-toggle-btn-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.share-toggle-btn-icon svg{
  width:20px;
  height:20px;
  display:block;
}

.detalhe-share-popover{
  position:absolute;
  top:calc(100% + 14px);
  right:0;
  z-index:1300;
  width:min(300px, calc(100vw - 32px));
  max-height:min(72vh, 420px);
  padding:8px;
  border:1px solid #dbe3ea;
  border-radius:16px;
  background:#fff;
  box-shadow:0 28px 60px rgba(15,23,42,.18);
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#cbd5e1 transparent;
}

.detalhe-share-popover::before{
  content:'';
  position:absolute;
  top:-7px;
  right:17px;
  width:14px;
  height:14px;
  background:#fff;
  border-top:1px solid #dbe3ea;
  border-left:1px solid #dbe3ea;
  transform:rotate(45deg);
}

.share-actions-list{
  display:flex;
  flex-direction:column;
  gap:0;
}

.share-action-item{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  padding:8px 10px;
  border:none;
  border-radius:12px;
  background:transparent;
  color:#0f172a;
  text-decoration:none;
  text-align:left;
  cursor:pointer;
  transition:background .18s ease, transform .18s ease;
}

.share-action-item:hover{
  background:#f8fafc;
}

.share-action-item:focus-visible{
  outline:3px solid rgba(15,23,42,.14);
  outline-offset:2px;
}

.share-action-icon{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:999px;
  background:#eef2f7;
  color:#0f172a;
}

.share-action-icon svg{
  width:16px;
  height:16px;
  display:block;
}

.share-action-label{
  font-size:14px;
  font-weight:600;
  line-height:1.2;
}

.share-action-item--facebook .share-action-icon{
  background:rgba(24,119,242,.12);
  color:#1877F2;
}

.share-action-item--linkedin .share-action-icon{
  background:rgba(10,102,194,.12);
  color:#0A66C2;
}

.share-action-item--x .share-action-icon{
  background:rgba(17,24,39,.10);
  color:#111827;
}

.share-action-item--whatsapp .share-action-icon{
  background:rgba(37,211,102,.12);
  color:#25D366;
}

.share-action-item--telegram .share-action-icon{
  background:rgba(34,158,217,.12);
  color:#229ED9;
}

.share-action-item--instagram .share-action-icon{
  background:rgba(221,42,123,.12);
  color:#dd2a7b;
}

.share-action-item--copy .share-action-icon,
.share-action-item--link .share-action-icon{
  background:#eef2ff;
  color:#334155;
}

.share-feedback{
  min-height:16px;
  margin:6px 10px 0;
  font-size:11px;
  color:#526071;
}

.share-feedback-ok{
  color:#166534;
}

.share-feedback-error{
  color:#b91c1c;
}

.alerta{
  border-radius:8px;
  padding:12px 14px;
  margin-bottom:16px;
  font-weight:700;
}

.alerta-erro{
  background:#ffe6e6;
  color:#9b1c1c;
  border:1px solid #f3b7b7;
}

.alerta-ok{
  background:#e6fff0;
  color:#146c43;
  border:1px solid #b9e5c9;
}

.mapa-box{
  background:#fff;
  border-radius:10px;
  box-shadow:var(--shadow);
  overflow:hidden;
}

.mapa-placeholder{
  min-height:540px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    linear-gradient(135deg, #eef3f4, #d7e4e6);
  text-align:center;
  padding:30px;
}

.mapa-placeholder h3{
  font-size:28px;
  margin-bottom:8px;
  color:var(--cor-secundaria);
}

.lista-mapa-imoveis{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.item-mapa{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:12px;
  border:1px solid #e6e6e6;
  border-radius:8px;
  background:#fafafa;
}

.item-mapa strong{
  color:var(--cor-secundaria);
}

.item-mapa span{
  color:#666;
  font-size:14px;
}

.item-mapa small{
  color:var(--cor-primaria);
  font-weight:700;
}

.site-footer{
  background:var(--cor-footer-fundo);
  color:var(--cor-footer-texto);
  margin-top:40px;
}

.footer-grid{
  padding:40px 0;
  display:grid;
  grid-template-columns:1.1fr 1fr 1.2fr 1fr;
  gap:24px;
}

.footer-grid h4{
  color:var(--cor-footer-texto);
  margin-bottom:14px;
}

.footer-logo{
  max-height:64px;
  margin-bottom:14px;
}

.footer-links{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.footer-links a{
  color:inherit;
  transition:color .2s ease;
}

.footer-links a:hover{
  color:var(--cor-footer-link-hover);
}

.footer-atendimento p + p{
  margin-top:5px;
  margin-bottom: 10px;
}

.footer-contact-link{
  color:inherit;
  text-decoration:none;
  transition:color .2s ease;
}

.footer-contact-link:hover{
  color:var(--cor-footer-link-hover);
  text-decoration:underline;
}

.footer-social{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  white-space:nowrap;
  border:0;
}

.social-links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  --social-bg:rgba(44,122,123,.10);
  --social-border:rgba(44,122,123,.18);
  --social-color:var(--cor-primaria);
}

.social-links--sm{
  gap:8px;
}

.social-links--sm .social-link{
  width:36px;
  height:36px;
  border-radius:12px;
}

.social-links--md .social-link{
  width:46px;
  height:46px;
  border-radius:15px;
}

.social-links--topbar{
  --social-bg:rgba(255,255,255,.14);
  --social-bg:color-mix(in srgb, var(--cor-topbar-texto) 14%, transparent);
  --social-border:rgba(255,255,255,.28);
  --social-border:color-mix(in srgb, var(--cor-topbar-texto) 28%, transparent);
  --social-color:var(--cor-topbar-texto);
}

.social-links--footer{
  --social-bg:rgba(255,255,255,.08);
  --social-bg:color-mix(in srgb, var(--cor-footer-texto) 10%, transparent);
  --social-border:rgba(255,255,255,.20);
  --social-border:color-mix(in srgb, var(--cor-footer-texto) 20%, transparent);
  --social-color:var(--cor-footer-texto);
}

.social-links--panel{
  --social-bg:rgba(44,122,123,.08);
  --social-border:rgba(44,122,123,.18);
  --social-color:var(--cor-primaria);
}

.social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  color:var(--social-color);
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease, color .18s ease, filter .18s ease;
}

.social-link:hover{
  transform:translateY(-2px);
}

.social-link-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.social-link-icon svg{
  width:20px;
  height:20px;
  display:block;
}

.social-links--sm .social-link-icon svg{
  width:18px;
  height:18px;
}

.social-style-soft .social-link{
  background:var(--social-bg);
  border:1px solid var(--social-border);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
}

.social-style-soft .social-link:hover{
  box-shadow:0 14px 28px rgba(15,23,42,.14);
}

.social-style-outline .social-link{
  background:transparent;
  border:1.5px solid var(--social-border);
}

.social-style-outline.social-links--topbar .social-link,
.social-style-outline.social-links--footer .social-link{
  border-color:var(--social-border);
}

.social-style-outline .social-link:hover{
  background:var(--social-bg);
}

.social-style-brand .social-link{
  color:#fff;
  border:none;
  box-shadow:0 12px 28px rgba(15,23,42,.18);
}

.social-style-brand .social-link--instagram{
  background:linear-gradient(135deg, #f58529 0%, #dd2a7b 52%, #8134af 100%);
}

.social-style-brand .social-link--facebook{
  background:#1877F2;
}

.social-style-brand .social-link--linkedin{
  background:#0A66C2;
}

.social-style-brand .social-link--youtube{
  background:#FF0000;
}

.social-style-brand .social-link:hover{
  filter:brightness(1.06);
}

.social-links--preview{
  pointer-events:none;
}

.social-style-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  margin-top:8px;
}

.social-style-card{
  position:relative;
  display:grid;
  gap:14px;
  padding:18px;
  border:1px solid #d7e2e8;
  border-radius:18px;
  background:#fff;
  cursor:pointer;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.social-style-card:hover{
  transform:translateY(-2px);
  border-color:rgba(44,122,123,.36);
  box-shadow:0 16px 34px rgba(15,23,42,.10);
}

.social-style-card input[type="radio"]{
  position:absolute;
  top:16px;
  right:16px;
}

.social-style-card-copy{
  display:grid;
  gap:4px;
  padding-right:28px;
}

.social-style-card-copy strong{
  color:#0f172a;
}

.social-style-card-copy small{
  color:#64748b;
  line-height:1.45;
}

.social-style-card-active{
  border-color:var(--cor-primaria);
  box-shadow:0 18px 36px rgba(44,122,123,.16);
}

.footer-copy{
  background:var(--cor-footer-fundo);
  background:color-mix(in srgb, var(--cor-footer-fundo) 88%, #000 12%);
  color:var(--cor-footer-texto);
  padding:14px 0;
  text-align:center;
  font-size:14px;
}

.footer-copy-inner{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
}

.footer-copy-link{
  color:inherit;
  text-decoration:none;
  transition:color .2s ease;
}

.footer-copy-button{
  border:none;
  background:none;
  padding:0;
  font:inherit;
  cursor:pointer;
}

.footer-copy-link:hover{
  color:var(--cor-footer-link-hover);
  text-decoration:underline;
}

.cookie-consent{
  position:fixed;
  left:50%;
  bottom:16px;
  z-index:1200;
  transform:translateX(-50%);
  width:min(760px, calc(100% - 32px));
  max-height:calc(100dvh - 32px);
  overflow:auto;
  background:#ffffff;
  border:1px solid #d9e3e8;
  border-radius:18px;
  box-shadow:0 24px 56px rgba(15,23,42,.18);
  -webkit-overflow-scrolling:touch;
}

.cookie-consent[hidden]{
  display:none !important;
}

.cookie-consent-body{
  display:grid;
  gap:14px;
  padding:18px 20px;
}

.cookie-consent-copy{
  display:grid;
  gap:8px;
}

.cookie-consent-copy h3{
  margin:0;
  font-size:18px;
  color:#0f172a;
}

.cookie-consent-copy p{
  margin:0;
  color:#475569;
  line-height:1.55;
}

.cookie-consent-copy a{
  color:var(--cor-primaria);
  font-weight:700;
  text-decoration:underline;
}

.cookie-consent-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.cookie-consent-actions .btn{
  flex:1 1 220px;
  text-align:center;
}

.whatsapp-fixo{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:999;
  background:#25D366;
  color:#fff;
  padding:14px 18px;
  border-radius:999px;
  font-weight:700;
  box-shadow:0 8px 20px rgba(0,0,0,.18);
}

body.has-cookie-consent .whatsapp-fixo{
  bottom:var(--cookie-banner-offset, 112px);
}

@media (max-width: 1100px){
  .form-busca-horizontal{
    grid-template-columns:repeat(2, 1fr);
  }

  .campo-codigo{
    grid-column:span 1;
  }

  .grid-imoveis{
    grid-template-columns:repeat(2, 1fr);
  }

  .sobre-grid,
  .layout-busca-grid,
  .pagina-form-grid{
    grid-template-columns:1fr;
  }

  .detalhe-grid{
    grid-template-columns:1fr;
  }

  .detalhe-grid--com-mapa{
    grid-template-areas:
      "galeria"
      "info"
      "descricao"
      "mapa"
      "interesse";
  }

  .detalhe-grid--sem-mapa{
    grid-template-areas:
      "galeria"
      "info"
      "interesse"
      "descricao";
  }

  .detalhe-grid--com-mapa.detalhe-grid--com-caracteristicas{
    grid-template-areas:
      "galeria"
      "info"
      "caracteristicas"
      "descricao"
      "mapa"
      "interesse";
  }

  .detalhe-grid--sem-mapa.detalhe-grid--com-caracteristicas{
    grid-template-areas:
      "galeria"
      "info"
      "interesse"
      "caracteristicas"
      "descricao";
  }

  .detalhe-lateral{
    display:contents;
  }
}

@media (max-width: 980px){
  .grid-3{
    grid-template-columns:1fr;
  }

  .footer-grid{
    grid-template-columns:1fr 1fr;
  }

  .social-style-grid{
    grid-template-columns:1fr;
  }

  .nav-inner{
    flex-direction:column;
    padding:16px 0;
  }

  .menu{
    justify-content:center;
  }

  .detalhe-share-popover{
    width:min(300px, calc(100vw - 40px));
  }
}

@media (max-width: 640px){
  .grid-imoveis,
  .form-busca-horizontal,
  .footer-grid,
  .form-grid-2{
    grid-template-columns:1fr;
  }

  .detalhe-share-trigger-label{
    font-size:12px;
  }

  .detalhe-share-popover{
    right:0;
    width:min(280px, calc(100vw - 24px));
  }

  .share-action-item{
    gap:8px;
    padding:7px 8px;
  }

  .share-action-label{
    font-size:13px;
  }

  .cookie-consent{
    left:10px;
    right:10px;
    bottom:10px;
    transform:none;
    width:auto;
    max-height:min(58dvh, 360px);
    border-radius:16px;
  }

  .cookie-consent-body{
    gap:12px;
    padding:14px 14px 16px;
  }

  .cookie-consent-copy{
    gap:6px;
  }

  .cookie-consent-copy h3{
    font-size:16px;
  }

  .cookie-consent-copy p{
    font-size:14px;
    line-height:1.45;
  }

  .cookie-consent-actions{
    flex-direction:column;
  }

  .cookie-consent-actions .btn{
    flex:1 1 auto;
    width:100%;
  }

  .share-toggle-btn{
    width:42px;
    height:42px;
  }

  .hero h1{
    font-size:32px;
  }

  .section-title h2{
    font-size:26px;
  }

  .titulo-pagina h1{
    font-size:34px;
  }

  .topbar-inner,
  .topbar-left,
  .topbar-right{
    justify-content:center;
  }

  .card-imovel-foto{
    height:220px;
  }

  .detalhe-foto-principal img{
    height:280px;
  }

  .detalhe-galeria-nav{
    width:40px;
    height:40px;
    font-size:28px;
  }
}

/* ===== ADMIN ===== */
.admin-body{
  background:#f4f6f8;
}

.admin-topbar{
  background:var(--cor-secundaria);
  color:var(--cor-branco);
  padding:14px 0;
}

.admin-topbar-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
}

.admin-user{
  display:flex;
  align-items:center;
  gap:14px;
}

.admin-user a{
  color:var(--cor-destaque);
  font-weight:700;
}

.admin-layout{
  display:grid;
  grid-template-columns:260px 1fr;
  min-height:calc(100vh - 56px);
}

.admin-sidebar{
  background:#111827;
  padding:24px 18px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.admin-sidebar a{
  color:#fff;
  padding:12px 14px;
  border-radius:8px;
  font-weight:700;
}

.admin-sidebar a:hover{
  background:rgba(255,255,255,.08);
}

.admin-content{
  padding:24px;
}

.admin-page-head{
  margin-bottom:24px;
}

.admin-page-head h1{
  font-size:30px;
  margin-bottom:6px;
}

.admin-cards{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
}

.admin-card,
.admin-panel{
  background:#fff;
  border-radius:12px;
  box-shadow:var(--shadow);
  padding:22px;
}

.admin-card h3{
  font-size:16px;
  margin-bottom:10px;
  color:var(--cor-secundaria);
}

.admin-checks{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin:18px 0 24px;
}

.admin-richtext{
  border:1px solid #bfc7cf;
  border-radius:10px;
  background:#fff;
  overflow:hidden;
}

.admin-richtext-toolbar{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:10px 12px;
  border-bottom:1px solid #e2e8f0;
  background:#f8fafc;
}

.admin-richtext-btn{
  min-width:40px;
  height:36px;
  padding:0 10px;
  border:1px solid #cbd5e1;
  border-radius:8px;
  background:#fff;
  color:#0f172a;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
  transition:background .18s ease, border-color .18s ease, color .18s ease;
}

.admin-richtext-btn:hover{
  background:#eef6f6;
  border-color:var(--cor-primaria);
}

.admin-richtext-btn-active{
  background:var(--cor-primaria);
  border-color:var(--cor-primaria);
  color:#fff;
}

.admin-richtext-divider{
  width:1px;
  height:26px;
  background:#dbe3ea;
}

.admin-richtext-editor{
  min-height:280px;
  padding:14px 16px;
  outline:none;
  line-height:1.7;
}

.admin-richtext-editor:empty::before{
  content:attr(data-placeholder);
  color:#94a3b8;
}

.admin-richtext-editor > * + *{
  margin-top:12px;
}

.admin-richtext-editor ul,
.admin-richtext-editor ol{
  padding-left:22px;
}

.admin-richtext-editor a{
  color:var(--cor-primaria);
  text-decoration:underline;
}

.admin-checks label{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:700;
}

.admin-imovel-caracteristicas{
  order:30;
  margin:0 0 12px;
  padding:12px 14px;
  border:1px solid #e5e7eb;
  border-radius:10px;
  background:#fcfcfd;
}

.admin-imovel-caracteristicas legend{
  padding:0 8px;
  color:#111827;
  font-size:16px;
  font-weight:700;
}

.admin-imovel-caracteristicas-group + .admin-imovel-caracteristicas-group,
.admin-imovel-caracteristicas-group.is-separated{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #e5e7eb;
}

.admin-imovel-caracteristicas-options{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:6px 12px;
}

.admin-imovel-caracteristica-option{
  display:flex;
  align-items:flex-start;
  gap:8px;
  color:#475569;
  font-weight:500;
  font-size:13px;
  line-height:1.2;
}

.admin-imovel-caracteristica-option input{
  margin-top:2px;
  flex:0 0 auto;
}

.form-padrao > .admin-checks{
  order:20;
  margin:12px 0 10px;
  gap:14px;
}

.form-padrao > .campo:has(#admin-imovel-mapa){
  order:40;
}

.form-padrao > .campo:has(#modo_mapa_publico){
  order:50;
}

.form-padrao > .campo:has(#descricao){
  order:60;
}

.form-padrao > .admin-form-actions{
  order:70;
}

.admin-login-body{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg, var(--cor-primaria), var(--cor-secundaria));
  padding:20px;
}

.admin-login-box{
  width:min(440px, 100%);
  background:#fff;
  border-radius:14px;
  box-shadow:0 18px 40px rgba(0,0,0,.18);
  padding:28px;
}

.admin-login-box h1{
  font-size:28px;
  margin-bottom:18px;
  text-align:center;
}

@media (max-width: 980px){
  .admin-layout{
    grid-template-columns:1fr;
  }

  .admin-sidebar{
    flex-direction:row;
    flex-wrap:wrap;
  }

  .admin-cards{
    grid-template-columns:repeat(2, 1fr);
  }
}

@media (max-width: 640px){
  .admin-topbar-inner{
    flex-direction:column;
    align-items:flex-start;
  }

  .admin-cards{
    grid-template-columns:1fr;
  }
}


/* ===== ADMIN IMOVEIS ===== */
.admin-page-head-flex{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.admin-toolbar{
  display:flex;
  gap:12px;
  align-items:center;
  margin-bottom:18px;
  flex-wrap:wrap;
}

.admin-search{
  width:min(420px, 100%);
  min-height:46px;
  border:1px solid #cfd6dd;
  border-radius:8px;
  padding:10px 12px;
  font-size:15px;
}

.admin-table-wrap{
  overflow:auto;
}

.admin-table{
  width:100%;
  border-collapse:collapse;
  min-width:980px;
}

.admin-table th,
.admin-table td{
  padding:12px 10px;
  border-bottom:1px solid #e8edf2;
  text-align:left;
  vertical-align:top;
}

.admin-table th{
  background:#f7f9fb;
  color:#111827;
  font-size:14px;
}

.admin-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.btn-sm{
  padding:9px 12px;
  font-size:13px;
}

.btn-danger{
  background:#c62828;
  color:#fff;
}

.btn-danger:hover{
  filter:brightness(1.05);
}

.btn-outline-dark{
  border:1px solid #1f2937;
  color:#1f2937;
  background:#fff;
}

.btn-outline-dark:hover{
  background:#f3f4f6;
}

.admin-form-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:18px;
}

.admin-imovel-form-grid > .admin-panel > .form-padrao > .admin-form-actions{
  display:none;
}


/* ===== ADMIN FOTOS ===== */
.mt-20{
  margin-top:20px;
}

.admin-subtitle{
  margin-bottom:16px;
  font-size:20px;
  color:#111827;
}

.admin-galeria{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:16px;
  align-items:start;
}

.admin-galeria.admin-galeria-saving{
  opacity:.72;
}

.admin-sort-status{
  margin:12px 0 16px;
  padding:10px 12px;
  border-radius:10px;
  font-size:14px;
  font-weight:700;
}

.admin-sort-status-success{
  background:#e8f7ee;
  color:#12693a;
}

.admin-sort-status-error{
  background:#fdecec;
  color:#9f1d1d;
}

.admin-sort-status-loading{
  background:#eef5ff;
  color:#1d4ed8;
}

.admin-foto-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:12px;
  overflow:hidden;
  width:100%;
  max-width:180px;
  margin:0 auto;
  cursor:grab;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, opacity .18s ease;
}

.admin-foto-card:hover{
  border-color:#cbd5e1;
  box-shadow:0 10px 24px rgba(15, 23, 42, .08);
}

.admin-foto-card.admin-foto-card-dragging{
  opacity:.45;
  transform:scale(.98);
  cursor:grabbing;
}

.admin-foto-card.admin-foto-card-over{
  border-color:var(--cor-primaria);
  box-shadow:0 0 0 2px rgba(44, 122, 123, .18);
}

.admin-foto-handle{
  padding:8px 12px;
  background:#f8fafc;
  border-bottom:1px solid #e5e7eb;
  color:#475569;
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-align:center;
  cursor:grab;
}

.admin-foto-wrap img{
  width:100%;
  height:154px;
  object-fit:cover;
  display:block;
}

.admin-foto-info{
  padding:14px;
}

.admin-foto-badges{
  margin-bottom:12px;
}

.badge-capa{
  display:inline-block;
  background:#198754;
  color:#fff;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
}

.badge-ordem{
  display:inline-block;
  background:#e5eef6;
  color:#1e293b;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
}

.admin-actions-col{
  flex-direction:column;
  align-items:stretch;
}

@media (max-width: 1100px){
  .admin-galeria{
    grid-template-columns:repeat(auto-fill, minmax(170px, 1fr));
  }

  .admin-foto-card{
    max-width:170px;
  }
}

@media (max-width: 520px){
  .admin-galeria{
    grid-template-columns:1fr;
  }

  .admin-foto-card{
    max-width:none;
  }
}


/* ===== ADMIN LOCALIZACAO ===== */
.admin-panel-sm{
  max-width:720px;
}


/* ===== BANNERS HOME ===== */

.hero-subheadline{
  margin-top:14px;
  margin-bottom:18px;
  color:#fff;
  font-size:18px;
  font-weight:600;
  text-shadow:0 1px 2px rgba(0,0,0,.25);
}

.hero-cta-wrap{
  margin-bottom:18px;
}

.admin-thumb-banner{
  width:120px;
  height:70px;
  object-fit:cover;
  border-radius:8px;
  display:block;
}

.admin-banner-preview img{
  width:100%;
  max-width:720px;
  height:auto;
  border-radius:12px;
  display:block;
  margin-bottom:18px;
}

.admin-thumb-partner{
  width:120px;
  height:76px;
  object-fit:cover;
  border-radius:10px;
  display:block;
}

.admin-partner-preview{
  margin-top:8px;
}

.admin-partner-preview img{
  width:100%;
  max-width:420px;
  height:auto;
  border-radius:14px;
  display:block;
}

.campo-hint{
  display:block;
  margin-top:8px;
  color:#64748b;
  font-size:13px;
}


/* ===== MAPA LEAFLET ===== */
#mapa-imoveis{
  width:100%;
  min-height:540px;
}

.item-mapa-card{
  display:grid;
  grid-template-columns:92px 1fr;
  gap:12px;
  padding:10px;
  border:1px solid #e6e6e6;
  border-radius:10px;
  background:#fafafa;
}

.item-mapa-thumb img{
  width:100%;
  height:92px;
  object-fit:cover;
  border-radius:8px;
}

.item-mapa-body{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.item-mapa-btn{
  border:none;
  background:none;
  text-align:left;
  cursor:pointer;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.item-mapa-btn strong{
  color:var(--cor-secundaria);
}

.item-mapa-btn span{
  color:#666;
  font-size:14px;
}

.item-mapa-btn small{
  color:var(--cor-primaria);
  font-weight:700;
}

.item-mapa-link{
  color:var(--cor-primaria);
  font-weight:700;
  font-size:14px;
}

.map-popup{
  width:220px;
}

.map-popup img{
  width:100%;
  height:120px;
  object-fit:cover;
  border-radius:8px;
  margin-bottom:8px;
}

.map-popup-body{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.map-popup-body strong{
  color:#111;
}

.map-popup-body span{
  color:#666;
  font-size:13px;
}

.map-popup-body small{
  color:var(--cor-primaria);
  font-weight:700;
}

.map-popup-body a{
  color:var(--cor-secundaria);
  font-weight:700;
  font-size:14px;
}

@media (max-width: 640px){
  .item-mapa-card{
    grid-template-columns:1fr;
  }

  .item-mapa-thumb img{
    height:180px;
  }

  #mapa-imoveis{
    min-height:420px;
  }
}

.leaflet-container{
  background:#dbeafe;
}


/* ===== REFINO PUBLICO ===== */
.menu-toggle{
  display:none;
  border:none;
  background:transparent;
  color:var(--cor-branco);
  font-size:30px;
  cursor:pointer;
}

.hero-search-wrap-home{
  max-width:100%;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.15);
}

.hero-kicker{
  display:inline-block;
  margin-bottom:12px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  color:#fff;
  font-size:13px;
  font-weight:700;
  letter-spacing:.3px;
}

.hero-subheadline{
  max-width:760px;
  margin:14px auto 18px;
  color:#fff;
  font-size:18px;
  font-weight:600;
  text-shadow:0 1px 2px rgba(0,0,0,.25);
}

.faixa-titulo-flex{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.faixa-titulo p{
  margin-top:6px;
  color:#4b5563;
}

@media (max-width: 980px){
  .menu-toggle{
    display:block;
  }

  .menu{
    width:100%;
    display:none;
    flex-direction:column;
    gap:10px;
    padding:10px 0 0;
  }

  .menu.menu-open{
    display:flex;
  }

  .menu li{
    width:100%;
  }

  .menu-contact-item{
    gap:10px;
  }

  .menu-contact-item > a:first-child{
    flex:1;
  }

  .menu a{
    display:block;
    width:100%;
    padding:12px 14px;
    background:rgba(255,255,255,.06);
    border-radius:8px;
  }

  .menu-admin-link{
    width:44px;
    min-width:44px;
    padding:0;
    flex:none;
  }
}


/* ===== DASHBOARD E LEADS ===== */
.admin-cards-6{
  grid-template-columns:repeat(6, 1fr);
}

.admin-card p{
  font-size:28px;
  font-weight:700;
  color:var(--cor-primaria);
}

.admin-dashboard-summary{
  padding:0;
  overflow:hidden;
}

.admin-dashboard-summary-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:24px 24px 10px;
  flex-wrap:wrap;
}

.admin-dashboard-summary-head h2{
  margin:0;
  color:#111827;
}

.admin-dashboard-summary-head p{
  margin:6px 0 0;
  color:#6b7280;
  line-height:1.5;
}

.admin-dashboard-summary-period{
  color:#94a3b8;
  font-size:14px;
  white-space:nowrap;
}

.admin-dashboard-summary-list{
  display:flex;
  flex-direction:column;
}

.admin-dashboard-summary-item{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:14px 24px;
  border-top:1px solid #e8edf2;
}

.admin-dashboard-summary-icon{
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#0f172a;
  flex-shrink:0;
}

.admin-dashboard-summary-icon svg{
  width:22px;
  height:22px;
  display:block;
}

.admin-dashboard-summary-text{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  align-items:baseline;
  gap:4px 6px;
  color:#334155;
  line-height:1.5;
  min-width:0;
}

.admin-dashboard-summary-text strong{
  color:#111827;
  font-size:18px;
  line-height:1;
}

.admin-dashboard-summary-text span{
  font-size:13px;
}

.admin-dashboard-insights{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:20px;
}

.admin-dashboard-insight{
  position:relative;
  overflow:visible;
}

.admin-dashboard-insight:focus-visible{
  outline:3px solid rgba(44,122,123,.18);
  outline-offset:3px;
}

.admin-dashboard-insight-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.admin-dashboard-insight-top h3{
  margin:0;
  color:#111827;
  font-size:16px;
}

.admin-dashboard-insight-top p{
  margin:6px 0 0;
  color:#64748b;
  font-size:13px;
}

.admin-dashboard-insight-help{
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#eef6f6;
  color:var(--cor-primaria);
  font-size:14px;
  font-weight:800;
  flex-shrink:0;
}

.admin-dashboard-insight-value{
  display:block;
  color:var(--cor-primaria);
  font-size:28px;
  font-weight:700;
  line-height:1.1;
}

.admin-dashboard-insight-tooltip{
  position:absolute;
  left:18px;
  right:18px;
  bottom:calc(100% + 12px);
  padding:16px 18px;
  border-radius:14px;
  background:#0f172a;
  color:#f8fafc;
  box-shadow:0 18px 34px rgba(15,23,42,.24);
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index:15;
  pointer-events:none;
}

.admin-dashboard-insight-tooltip::after{
  content:"";
  position:absolute;
  left:28px;
  top:100%;
  border-width:8px 8px 0 8px;
  border-style:solid;
  border-color:#0f172a transparent transparent transparent;
}

.admin-dashboard-insight-tooltip h4{
  margin:0 0 8px;
  color:#ffffff;
  font-size:14px;
}

.admin-dashboard-insight-tooltip p{
  margin:0;
  color:#dbe7f3;
  font-size:13px;
  line-height:1.55;
}

.admin-dashboard-insight-tooltip p + p{
  margin-top:8px;
}

.admin-dashboard-insight:hover .admin-dashboard-insight-tooltip,
.admin-dashboard-insight:focus-within .admin-dashboard-insight-tooltip{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.admin-dashboard-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-top:24px;
}

.admin-lista-simple{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.admin-lista-item{
  padding:14px;
  border:1px solid #e8edf2;
  border-radius:10px;
  background:#fafbfc;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.admin-lista-item strong{
  color:#111827;
}

.admin-lista-item span{
  color:#4b5563;
  font-size:14px;
}

.admin-lista-item small{
  color:#6b7280;
  font-size:12px;
}

.admin-top-link{
  margin-top:16px;
}

.admin-top-link a{
  color:var(--cor-primaria);
  font-weight:700;
}

.admin-col-msg{
  min-width:220px;
  max-width:320px;
  white-space:normal;
  line-height:1.45;
}

@media (max-width: 760px){
  .admin-page-head{
    margin-bottom:18px;
  }

  .admin-page-head h1{
    font-size:24px;
    margin-bottom:4px;
  }

  .admin-dashboard-summary-head{
    padding:20px 18px 8px;
    gap:10px;
  }

  .admin-dashboard-summary-head h2{
    font-size:20px;
  }

  .admin-dashboard-summary-head p{
    font-size:13px;
  }

  .admin-dashboard-summary-period{
    font-size:12px;
    white-space:normal;
  }

  .admin-dashboard-summary-item{
    gap:12px;
    padding:12px 18px;
  }

  .admin-dashboard-summary-icon{
    width:20px;
    height:20px;
  }

  .admin-dashboard-summary-icon svg{
    width:18px;
    height:18px;
  }

  .admin-dashboard-summary-text{
    grid-template-columns:1fr;
    gap:2px;
  }

  .admin-dashboard-summary-text strong{
    font-size:16px;
  }

  .admin-dashboard-summary-text span{
    font-size:12px;
    line-height:1.35;
  }

  .admin-dashboard-insights{
    grid-template-columns:1fr;
    gap:14px;
  }

  .admin-dashboard-insight{
    padding:18px;
  }

  .admin-dashboard-insight-top{
    margin-bottom:10px;
  }

  .admin-dashboard-insight-value{
    font-size:22px;
  }

  .admin-dashboard-insight-tooltip{
    position:static;
    margin-top:14px;
    opacity:1;
    visibility:visible;
    transform:none;
    pointer-events:auto;
  }

  .admin-dashboard-insight-tooltip::after{
    display:none;
  }

  .admin-dashboard-grid{
    gap:14px;
    margin-top:18px;
  }

  .admin-dashboard-grid > .admin-panel{
    padding:18px;
  }

  .admin-table-cards{
    min-width:0;
    border-collapse:separate;
    border-spacing:0;
  }

  .admin-table-cards thead{
    display:none;
  }

  .admin-table-cards tbody{
    display:grid;
    gap:14px;
  }

  .admin-table-cards tbody tr{
    display:block;
    background:#fff;
    border:1px solid #e5ecf3;
    border-radius:16px;
    box-shadow:0 12px 24px rgba(15,23,42,.06);
    overflow:hidden;
  }

  .admin-table-cards tbody td{
    display:grid;
    grid-template-columns:minmax(88px, 108px) minmax(0, 1fr);
    gap:8px 12px;
    width:100%;
    padding:12px 14px;
    border-bottom:1px solid #eef2f7;
    overflow-wrap:anywhere;
  }

  .admin-table-cards tbody td:last-child{
    border-bottom:none;
  }

  .admin-table-cards tbody td::before{
    content:attr(data-label);
    color:#64748b;
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  .admin-table-cards tbody td[colspan]{
    display:block;
    padding:18px 14px;
    border-bottom:none;
    color:#64748b;
    text-align:center;
  }

  .admin-table-cards tbody td[colspan]::before{
    display:none;
  }

  .admin-table-cards .admin-table-cell-wide,
  .admin-table-cards .admin-table-cell-actions,
  .admin-table-cards .admin-table-cell-media{
    grid-template-columns:1fr;
  }

  .admin-table-cards .admin-table-cell-wide::before,
  .admin-table-cards .admin-table-cell-actions::before,
  .admin-table-cards .admin-table-cell-media::before{
    margin-bottom:4px;
  }

  .admin-table-cards .admin-table-cell-media img{
    width:min(100%, 180px);
    height:auto;
    max-height:120px;
    object-fit:contain;
  }

  .admin-table-cards .admin-actions{
    flex-direction:column;
    align-items:stretch;
    width:100%;
  }

  .admin-table-cards .admin-actions a,
  .admin-table-cards .admin-actions form,
  .admin-table-cards .admin-actions button{
    width:100%;
  }

  .admin-table-cards .admin-actions form{
    display:block;
  }

  .admin-table-cards .btn-sm{
    text-align:center;
  }

  .admin-table-cards .admin-col-msg{
    min-width:0;
    max-width:none;
  }
}

@media (max-width: 1200px){
  .admin-cards-6{
    grid-template-columns:repeat(3, 1fr);
  }
}

@media (max-width: 980px){
  .admin-dashboard-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 640px){
  .admin-cards-6{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width: 520px){
  .admin-cards-6{
    grid-template-columns:1fr;
  }
}


/* ===== HERO CAROUSEL ===== */
.hero{
  padding:0;
  position:relative;
}

.hero-carousel{
  position:relative;
  overflow:hidden;
}

.hero-slides{
  position:relative;
}

.hero-slide{
  display:none;
  min-height:620px;
  align-items:center;
  background:
    linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.35)),
    linear-gradient(135deg, var(--cor-primaria), var(--cor-secundaria));
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  color:var(--cor-branco);
  padding:70px 0;
}

.hero-slide-active{
  display:flex;
}

.hero-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  width:48px;
  height:48px;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:34px;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(4px);
}

.hero-nav:hover{
  background:rgba(255,255,255,.28);
}

.hero-nav-prev{
  left:18px;
}

.hero-nav-next{
  right:18px;
}

.hero-dots{
  position:absolute;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:5;
}

.hero-dot{
  width:12px;
  height:12px;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,.45);
  cursor:pointer;
}

.hero-dot-active{
  background:#fff;
}

.hero-search-wrap-home{
  max-width:100%;
  background:rgba(10, 15, 20, .28);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 18px 40px rgba(0,0,0,.18);
}

.hero-headline h1{
  max-width:860px;
  margin:0 auto 12px;
}

.grid-imoveis{
  align-items:stretch;
}

.card-imovel:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 22px rgba(0,0,0,.12);
}

@media (hover: hover) and (pointer: fine){
  .card-imovel-cta{
    min-height:52px;
    display:flex;
    align-items:flex-end;
    opacity:0;
    transform:translateY(10px);
    pointer-events:none;
    transition:opacity .18s ease, transform .22s ease;
  }

  .card-imovel:hover .card-imovel-cta,
  .card-imovel:focus-within .card-imovel-cta{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
  }
}

@media (hover: none), (pointer: coarse){
  .card-imovel-cta{
    display:none;
  }
}

.sidebar-box,
.card-box,
.texto-livre,
.admin-panel,
.admin-card{
  border:1px solid rgba(17,24,39,.04);
}

@media (max-width: 980px){
  .hero-slide{
    min-height:560px;
    padding:60px 0;
  }

  .hero-nav{
    width:42px;
    height:42px;
    font-size:28px;
  }
}

@media (max-width: 640px){
  .hero-slide{
    min-height:520px;
    padding:40px 0 60px;
  }

  .hero-nav{
    display:none;
  }

  .hero-kicker{
    font-size:12px;
  }

  .hero-subheadline{
    font-size:16px;
  }
}


/* ===== IDENTIDADE VISUAL ===== */
.admin-identidade-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:20px;
}

.admin-identidade-card{
  background:#fff;
  border:1px solid #e8edf2;
  border-radius:12px;
  padding:18px;
}

.admin-identidade-card h4{
  margin-bottom:14px;
  color:#111827;
}

.admin-identidade-preview{
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
  margin-bottom:16px;
  border:1px dashed #cfd8e3;
  border-radius:10px;
  background:#fafbfc;
}

.admin-identidade-preview img{
  max-width:100%;
  max-height:90px;
  object-fit:contain;
}

.admin-identidade-preview-favicon img{
  max-width:48px;
  max-height:48px;
}

.admin-identidade-note{
  margin:0 0 14px;
  color:#526071;
  font-size:14px;
  line-height:1.45;
}

.admin-identidade-status{
  margin:0 0 18px;
  padding:12px 14px;
  border-radius:10px;
  font-size:14px;
  line-height:1.5;
}

.admin-identidade-status-warn{
  background:#fff7e6;
  border:1px solid #f6d89a;
  color:#92400e;
}

.admin-config-group{
  margin-top:8px;
  padding:20px;
  border:1px solid #e5ecf3;
  border-radius:14px;
  background:#f8fafc;
}

.admin-config-group-head{
  margin-bottom:16px;
}

.admin-config-group-head h3{
  margin-bottom:6px;
  color:#111827;
}

.admin-config-group-head p{
  margin:0;
  color:#526071;
  line-height:1.5;
}

.admin-config-corretores{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}

.admin-config-corretor-card{
  background:#fff;
  border:1px solid #e5ecf3;
  border-radius:12px;
  padding:16px;
  display:grid;
  gap:12px;
}

.admin-config-corretor-card h4{
  margin:0;
  color:#1f3d5f;
}

.admin-config-story-card textarea{
  min-height:120px;
  resize:vertical;
}

.admin-config-story-status{
  color:#526071;
  line-height:1.5;
}

.admin-identidade-preview-story{
  min-height:180px;
}

.admin-identidade-preview-story img{
  width:100%;
  max-width:none;
  max-height:180px;
  object-fit:cover;
  border-radius:8px;
}

@media (max-width: 980px){
  .admin-identidade-grid{
    grid-template-columns:1fr;
  }

  .admin-config-corretores{
    grid-template-columns:1fr;
  }
}


/* ===== USUARIOS ADMIN ===== */
.admin-panel-sm{
  max-width:760px;
}


/* ===== PERMISSOES USUARIOS ===== */
.admin-permissions-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:18px;
}

.admin-permissions-card{
  background:#fff;
  border:1px solid #e8edf2;
  border-radius:12px;
  padding:18px;
}

.admin-permissions-card h3{
  margin-bottom:12px;
  color:#111827;
  font-size:18px;
}

.admin-perm-item{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-bottom:10px;
  font-weight:600;
  color:#374151;
}

@media (max-width: 900px){
  .admin-permissions-grid{
    grid-template-columns:1fr;
  }
}


/* ===== EXPORTACAO LEADS ===== */
.admin-page-head-flex{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}


/* ===== ANALYTICS IMOVEIS ADMIN ===== */
.admin-cards-5{
  grid-template-columns:repeat(5, 1fr);
}

.admin-cards-3{
  grid-template-columns:repeat(3, 1fr);
}

.admin-card-soft{
  background:#fafbfc;
}

.admin-card-highlight{
  background:linear-gradient(135deg, rgba(44,122,123,.10), rgba(228,195,90,.16));
}

.admin-imovel-list{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.admin-imovel-card{
  display:grid;
  grid-template-columns:220px 1fr 160px;
  gap:18px;
  padding:16px;
  border:1px solid #e8edf2;
  border-radius:14px;
  background:#fff;
}

.admin-imovel-thumb img{
  width:100%;
  height:160px;
  object-fit:cover;
  border-radius:12px;
  display:block;
}

.admin-imovel-main{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.admin-imovel-top{
  display:flex;
  justify-content:space-between;
  gap:18px;
}

.admin-imovel-codigo{
  color:#6b7280;
  font-size:13px;
  margin-bottom:4px;
}

.admin-imovel-top h3{
  margin:0 0 6px;
  color:#111827;
  font-size:22px;
}

.admin-imovel-local{
  color:#4b5563;
  font-size:14px;
}

.admin-imovel-preco{
  font-size:26px;
  font-weight:700;
  color:var(--cor-primaria);
  white-space:nowrap;
}

.admin-imovel-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.badge-status,
.badge-destaque,
.badge-finalidade,
.badge-tipo{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
}

.badge-status{ background:#eef6ff; color:#2563eb; }
.badge-destaque{ background:#fff7e6; color:#b45309; }
.badge-finalidade{ background:#ecfdf5; color:#059669; }
.badge-tipo{ background:#f3f4f6; color:#374151; }

.admin-imovel-analytics{
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:4px;
}

.admin-otimizacao-circle{
  width:92px;
  height:92px;
  border-radius:999px;
  border:8px solid #d1d5db;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  background:#fff;
}

.admin-otimizacao-circle strong{
  font-size:22px;
  color:#111827;
  line-height:1;
}

.admin-otimizacao-circle span{
  font-size:11px;
  color:#6b7280;
  margin-top:4px;
  text-align:center;
}

.admin-otimizacao-circle.otimo{ border-color:#22c55e; }
.admin-otimizacao-circle.bom{ border-color:#f59e0b; }
.admin-otimizacao-circle.ruim{ border-color:#ef4444; }

.admin-imovel-diagnostico{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.admin-imovel-nivel strong{
  font-size:18px;
  color:#111827;
}

.admin-imovel-faltando{
  color:#6b7280;
  font-size:14px;
  line-height:1.5;
}

.admin-imovel-faltando.ok{
  color:#059669;
  font-weight:700;
}

.admin-imovel-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
  justify-content:flex-start;
}

.admin-imovel-status-form{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px;
  border:1px solid #e8edf2;
  border-radius:12px;
  background:#fafbfc;
}

.admin-imovel-status-form label{
  color:#475569;
  font-size:12px;
  font-weight:700;
}

.admin-imovel-status-select{
  min-height:40px;
  border:1px solid #cfd6dd;
  border-radius:10px;
  padding:8px 10px;
  background:#fff;
  color:#111827;
}

.admin-qrcode-preview{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(300px, .75fr);
  gap:20px;
  align-items:start;
}

.admin-qrcode-preview-image img{
  width:100%;
  display:block;
  border-radius:18px;
  box-shadow:0 18px 34px rgba(15,23,42,.12);
}

.admin-qrcode-preview-meta{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.admin-qrcode-preview-block h2,
.admin-qrcode-preview-block h3{
  margin:0 0 10px;
  color:#111827;
}

.admin-qrcode-preview-block p{
  margin:0;
  color:#475569;
  line-height:1.6;
}

.admin-qrcode-preview-block p + p{
  margin-top:8px;
}

.admin-qrcode-preview-link{
  color:var(--cor-primaria);
  font-weight:700;
  overflow-wrap:anywhere;
}

.btn-full{
  width:100%;
}

.admin-imovel-form-grid{
  display:grid;
  grid-template-columns:1.6fr .9fr;
  gap:20px;
}

.admin-imovel-side-column{
  grid-column:2;
  display:flex;
  flex-direction:column;
  gap:20px;
  align-self:start;
}

.admin-imovel-actions-panel h3{
  margin:0 0 14px;
  color:#111827;
}

.admin-imovel-actions-panel .admin-form-actions{
  margin-top:0;
  display:flex;
  flex-direction:column;
}

.admin-imovel-actions-panel .btn{
  width:100%;
}

.admin-imovel-actions-panel .admin-form-actions > .btn-primary:not(.admin-imovel-submit-main){
  display:none;
}

.admin-diagnostico-head{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:18px;
}

.admin-diagnostico-head h3{
  margin:0 0 6px;
}

.admin-diagnostico-head p{
  margin:0;
  color:#6b7280;
}

.admin-checklist{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.admin-check-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:10px;
  font-size:14px;
}

.admin-check-item.ok{
  background:#ecfdf5;
  color:#065f46;
}

.admin-check-item.fail{
  background:#fef2f2;
  color:#991b1b;
}

.admin-sugestoes{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid #e5e7eb;
}

.admin-sugestoes h4{
  margin-bottom:10px;
}

.admin-sugestoes ul{
  margin:0;
  padding-left:18px;
}

.admin-sugestoes li{
  margin-bottom:8px;
  color:#4b5563;
}

@media (max-width: 1200px){
  .admin-cards-5{
    grid-template-columns:repeat(3, 1fr);
  }

  .admin-imovel-caracteristicas-options{
    grid-template-columns:repeat(4, minmax(0, 1fr));
  }

  .admin-imovel-card{
    grid-template-columns:180px 1fr;
  }

  .admin-imovel-actions{
    grid-column:1 / -1;
    flex-direction:row;
    flex-wrap:wrap;
  }

  .admin-imovel-actions .btn,
  .admin-imovel-actions form{
    width:auto;
  }

  .admin-imovel-actions .admin-imovel-status-form{
    width:220px;
  }
}

@media (max-width: 980px){
  .admin-cards-3{
    grid-template-columns:1fr;
  }

  .detalhe-caracteristicas-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .admin-imovel-caracteristicas-options{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  .admin-imovel-form-grid{
    grid-template-columns:1fr;
  }

  .admin-imovel-side-column{
    grid-column:auto;
  }

  .admin-qrcode-preview{
    grid-template-columns:1fr;
  }
}

@media (max-width: 760px){
  .admin-imovel-caracteristicas{
    padding:12px;
  }

  .admin-imovel-caracteristicas-options{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:6px 10px;
  }

  .admin-imovel-card{
    grid-template-columns:1fr;
  }

  .admin-imovel-thumb img{
    height:220px;
  }

  .admin-imovel-top{
    flex-direction:column;
  }

  .admin-imovel-actions{
    flex-direction:column;
  }

  .admin-imovel-actions .btn,
  .admin-imovel-actions form,
  .admin-imovel-actions .admin-imovel-status-form{
    width:100%;
  }

  .admin-cards-5{
    grid-template-columns:1fr;
  }
}

@media (max-width: 640px){
  .detalhe-caracteristicas-grid{
    grid-template-columns:1fr;
  }

  .admin-imovel-caracteristicas-options{
    grid-template-columns:1fr;
  }
}


/* ===== METRICAS REAIS IMOVEIS ===== */
.admin-chart-wrap{
  position:relative;
  height:340px;
}

.admin-imovel-metricas-reais{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:6px;
  color:#374151;
  font-size:14px;
}

.admin-imovel-metricas-reais span strong{
  color:#111827;
}

@media (max-width: 760px){
  .admin-chart-wrap{
    height:230px;
  }

  .admin-imovel-metricas-reais{
    flex-direction:column;
    gap:6px;
  }
}


/* ===== RANKING E METRICAS AVANCADAS ===== */
.admin-ranking-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.admin-ranking-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 14px;
  border:1px solid #e8edf2;
  border-radius:10px;
  background:#fafbfc;
}

.admin-ranking-item strong{
  display:block;
  color:#111827;
  overflow-wrap:anywhere;
}

.admin-ranking-item span{
  color:#6b7280;
  font-size:13px;
}

.admin-ranking-item b{
  font-size:18px;
  color:var(--cor-primaria);
}

@media (max-width: 760px){
  .admin-ranking-item{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
  }

  .admin-ranking-item b{
    font-size:16px;
  }
}


/* ===== ANALYTICS INDIVIDUAL IMOVEL ===== */
.admin-header-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.admin-imovel-analytics-top{
  display:grid;
  grid-template-columns:1.5fr .8fr;
  gap:20px;
}

.admin-analytics-imovel-head{
  display:flex;
  gap:18px;
  align-items:flex-start;
}

.admin-analytics-imovel-head img{
  width:220px;
  height:150px;
  object-fit:cover;
  border-radius:12px;
  flex-shrink:0;
}

.admin-analytics-imovel-head h2{
  margin:0 0 8px;
  color:#111827;
}

.admin-analytics-imovel-head p{
  margin:0 0 12px;
  color:#6b7280;
  line-height:1.5;
}

.admin-sugestoes-no-border{
  margin-top:0;
  padding-top:0;
  border-top:none;
}

@media (max-width: 980px){
  .admin-imovel-analytics-top{
    grid-template-columns:1fr;
  }
}

@media (max-width: 760px){
  .admin-analytics-imovel-head{
    flex-direction:column;
  }

  .admin-analytics-imovel-head img{
    width:100%;
    height:220px;
  }
}


/* ===== LEAD VINCULADO AO IMOVEL ===== */
.detalhe-form-box{
  margin-top:0;
  padding:18px;
  border:1px solid #e8edf2;
  border-radius:12px;
  background:#fafbfc;
  grid-area:interesse;
}

.detalhe-form-box h3{
  margin-bottom:14px;
  color:#111827;
}

.detalhe-acoes{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:16px;
}


/* ===== MAPA IMOVEL ADMIN/PUBLICO ===== */
#admin-imovel-mapa{
  width:100%;
  height:380px;
  border-radius:12px;
  border:1px solid #dbe3ea;
  overflow:hidden;
  margin-top:10px;
}

.admin-mapa-tools{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.admin-mapa-feedback{
  color:#6b7280;
  font-size:14px;
}

.detalhe-mapa-box{
  position:relative;
  margin-top:0;
  grid-area:mapa;
  z-index:1;
}

.detalhe-mapa-box h2{
  margin-bottom:12px;
}

#detalhe-mapa-imovel{
  width:100%;
  height:380px;
  border-radius:12px;
  border:1px solid #dbe3ea;
  overflow:hidden;
}

@media (max-width: 760px){
  #admin-imovel-mapa,
  #detalhe-mapa-imovel{
    height:300px;
  }
}

/* ===== LOCALIZACAO APROXIMADA ===== */
.campo-help{
  display:block;
  margin-top:6px;
  color:#6b7280;
  font-size:13px;
  line-height:1.4;
}

.mapa-label-aprox{
  display:block;
  margin-top:6px;
  font-style:normal;
  font-size:12px;
  color:#b45309;
  font-weight:700;
}

.mapa-aviso-aprox{
  margin-bottom:12px;
  padding:10px 12px;
  border-radius:10px;
  background:#fff7e6;
  color:#92400e;
  font-size:14px;
  font-weight:600;
}


/* ===== MAPA APROXIMADO ===== */
.leaflet-interactive {
  transition: all .2s ease;
}


/* ===== HOME AJUSTADA ===== */
.hero-home{
  position:relative;
  min-height:680px;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.35) 100%);
}

.hero-home-container{
  position:relative;
  z-index:2;
}

.hero-box{
  max-width:1200px;
  padding:40px 28px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:20px;
  background:rgba(6,18,20,.62);
  backdrop-filter:blur(4px);
}

.hero-badge{
  display:inline-flex;
  padding:8px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-weight:700;
  font-size:14px;
  margin-bottom:18px;
}

.hero-box h1{
  margin:0 0 14px;
  color:#fff;
  font-size:56px;
  line-height:1.05;
  max-width:1200px;
}

.hero-box p{
  margin:0 0 22px;
  color:#eef6f7;
  font-size:22px;
  font-weight:600;
}

.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:26px;
}

.btn-outline-light{
  border:2px solid #fff;
  color:#fff;
  background:transparent;
}

.btn-outline-light:hover{
  background:#fff;
  color:#111827;
}

.hero-search{
  margin-top:12px;
}

.hero-search-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
  color:var(--cor-hero-search-grid-texto);
}

.hero-search-grid .campo label{
  color:var(--cor-hero-search-grid-texto);
}

.hero-search-grid .campo select,
.hero-search-grid .campo input,
.hero-search-grid .campo textarea,
.hero-search-grid .campo select option{
  color:var(--cor-hero-search-grid-campos);
}

.hero-search-grid .campo input::placeholder,
.hero-search-grid .campo textarea::placeholder{
  color:color-mix(in srgb, var(--cor-hero-search-grid-campos) 72%, #ffffff 28%);
}

.hero-search-codigo{
  grid-column:span 2;
}

.hero-search-actions{
  margin-top:18px;
}

.section-head-home{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:22px;
  padding:14px 16px;
  background:var(--cor-section-head-home-fundo);
  border-radius:10px;
}

.section-head-home h2{
  margin:0 0 6px;
  color:var(--cor-section-head-home-principal);
}

.section-head-home p{
  margin:0;
  color:var(--cor-section-head-home-secundario);
}

.section-home-showcase{
  background:#fff;
}

.home-showcase{
  display:grid;
  gap:28px;
}

.home-showcase-head{
  display:grid;
  gap:18px;
}

.home-showcase-head h2{
  max-width:900px;
  margin:0 auto;
  text-align:center;
  font-size:clamp(28px, 3.2vw, 40px);
  color:#102a33;
  line-height:1.18;
}

.home-showcase-head h4{
  margin: 0 auto;
}

.home-showcase-toolbar{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:16px;
}

.home-showcase-tabs{
  grid-column:2;
  justify-self:center;
  display:inline-flex;
  align-items:center;
  gap:34px;
  max-width:100%;
  padding:0 8px;
  border-bottom:1px solid #d9e3eb;
}

.home-showcase-tab{
  position:relative;
  padding:0 0 14px;
  border:none;
  background:none;
  color:#78879a;
  font-size:18px;
  font-weight:700;
  cursor:pointer;
  transition:color .18s ease;
}

.home-showcase-tab:hover,
.home-showcase-tab:focus-visible{
  color:#1f3d5f;
}

.home-showcase-tab:focus-visible{
  outline:none;
}

.home-showcase-tab-active{
  color:#1f3d5f;
}

.home-showcase-tab-active::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  border-radius:999px;
  background:var(--cor-primaria);
}

.home-showcase-arrows{
  grid-column:3;
  justify-self:end;
  display:flex;
  align-items:center;
  gap:12px;
}

.home-showcase-arrow{
  width:48px;
  height:48px;
  border-radius:999px;
  border:1px solid #e5ecf3;
  background:#fff;
  color:#4f6470;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  transition:transform .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}

.home-showcase-arrow:hover,
.home-showcase-arrow:focus-visible{
  color:#102a33;
  border-color:#c8d5de;
  box-shadow:0 10px 24px rgba(15,23,42,.08);
  transform:translateY(-1px);
}

.home-showcase-panel{
  display:grid;
  gap:22px;
}

.home-showcase-panel[hidden]{
  display:none !important;
}

.home-showcase-footer{
  display:flex;
  justify-content:center;
}

.grid-imoveis{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
}

.grid-imoveis.home-showcase-grid{
  --home-showcase-gap:22px;
  --home-showcase-columns:4;
  grid-template-columns:none;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - (var(--home-showcase-gap) * (var(--home-showcase-columns) - 1))) / var(--home-showcase-columns));
  gap:var(--home-showcase-gap);
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  padding:4px 2px 10px;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
  scrollbar-color:#cbd5e1 transparent;
}

.grid-imoveis.home-showcase-grid::-webkit-scrollbar{
  height:8px;
}

.grid-imoveis.home-showcase-grid::-webkit-scrollbar-thumb{
  background:#cbd5e1;
  border-radius:999px;
}

.grid-imoveis.home-showcase-grid > *{
  min-width:0;
  scroll-snap-align:start;
}

.home-showcase-grid .card-imovel{
  min-width:0;
}

.home-showcase-grid .card-imovel-thumb img{
  height:210px;
}

.home-showcase-grid .card-imovel-body{
  padding:10px 10px 16px;
  gap:10px;
}

.home-showcase-grid .card-imovel-title{
  font-size:18px;
}

.home-showcase-grid .card-imovel-local{
  font-size:13px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.home-showcase-grid .card-imovel-preco{
  font-size:22px;
}

.home-showcase-grid .card-imovel-info{
  gap:8px;
  flex-wrap:nowrap;
  justify-content:space-between;
  font-size:12px;
  letter-spacing:-0.01em;
}

.home-showcase-grid .card-imovel-info span{
  min-width:0;
  white-space:nowrap;
}

.section-alt{
  background:#f7fafb;
}

.section-partners-home{
  overflow:hidden;
  background:#f7fafb;
}

.partners-home-head{
  margin-bottom:22px;
  text-align:center;
}

.partners-home-head h2{
  margin-bottom:8px;
}

.partners-home-head p{
  max-width:640px;
  margin:0 auto;
  color:#4f6470;
}

.partners-marquee{
  overflow:visible;
}

.partners-marquee-track{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:20px;
  width:100%;
  justify-items:center;
}

.partner-card{
  width:100%;
  max-width:230px;
  display:grid;
  grid-template-rows:168px minmax(152px, auto);
  border-radius:20px;
  overflow:hidden;
  background:#fff;
  border:1px solid #dfe9ee;
  box-shadow:0 14px 34px rgba(15,23,42,.08);
}

.partner-card--image-only{
  grid-template-rows:168px;
}

.partner-card-media{
  min-height:0;
  padding:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f8fbfc;
}

.partner-card-media img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.partner-card-visual-link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
}

.partner-card-body{
  min-height:0;
  padding:14px 14px 16px;
  display:flex;
  flex-direction:column;
  gap:8px;
  overflow:hidden;
}

.partner-card-body h3{
  font-size:16px;
  color:#102a33;
  line-height:1.3;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.partner-card-body--custom-color{
  --partner-info-color:#102a33;
}

.partner-card-title-link{
  color:inherit;
}

.partner-card-body--custom-color h3,
.partner-card-body--custom-color .partner-card-title-link,
.partner-card-body--custom-color .partner-card-contact a,
.partner-card-body--custom-color .partner-card-contact span{
  color:var(--partner-info-color);
}

.partner-card-title-link:hover{
  color:var(--cor-primaria);
}

.partner-card-body--custom-color .partner-card-title-link:hover,
.partner-card-body--custom-color .partner-card-contact a:hover{
  color:color-mix(in srgb, var(--partner-info-color) 82%, #000000 18%);
}

.partner-card-contact{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-height:0;
  overflow:hidden;
}

.partner-card-contact a,
.partner-card-contact span{
  font-size:13px;
  color:#4f6470;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.partner-card-contact a{
  color:var(--cor-primaria);
  font-weight:700;
}

.partner-card-contact a:hover{
  color:#184b4d;
}

.partner-card-external-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:center;
  margin-top:auto;
  min-width:150px;
  padding:8px 10px;
  border-radius:999px;
  background:rgba(44,122,123,.1);
  text-align:center;
}

.partner-card-body--custom-color .partner-card-external-link{
  background:color-mix(in srgb, var(--partner-info-color) 12%, transparent);
}

.section-sobre-home{
  background:#fff;
}

.section-sobre-story{
  padding-top:28px;
  padding-bottom:10px;
}

.sobre-story-shell{
  background:#fff;
  border:1px solid #e8edf2;
  border-radius:24px;
  box-shadow:0 14px 38px rgba(15,23,42,.08);
  overflow:hidden;
}

.sobre-story-intro{
  max-width:760px;
  padding:30px 30px 6px;
}

.sobre-story-kicker,
.sobre-story-label{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:8px 14px;
  border-radius:999px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
  font-weight:700;
}

.sobre-story-kicker{
  margin-bottom:14px;
  color:var(--cor-secundaria);
  background:color-mix(in srgb, var(--cor-destaque) 24%, white);
}

.sobre-story-intro h1{
  margin-bottom:12px;
}

.sobre-story-intro p{
  margin:0;
  color:#526071;
  font-size:17px;
  line-height:1.7;
}

.sobre-story-carousel{
  position:relative;
  padding:18px;
}

.sobre-story-slides{
  position:relative;
}

.sobre-story-slide{
  position:relative;
  display:none;
  min-height:500px;
  border-radius:22px;
  overflow:hidden;
  background:
    linear-gradient(135deg, #102030 0%, #1f3d5f 100%);
}

.sobre-story-slide.hero-slide-active{
  display:block;
}

.sobre-story-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.sobre-story-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(5,11,19,.86) 0%, rgba(5,11,19,.62) 42%, rgba(5,11,19,.2) 100%);
}

.sobre-story-copy{
  position:relative;
  z-index:1;
  min-height:500px;
  max-width:620px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:16px;
  padding:44px;
  color:#fff;
}

.sobre-story-label{
  color:#fff;
  background:rgba(255,255,255,.14);
  backdrop-filter:blur(4px);
}

.sobre-story-copy h2{
  margin:0;
  color:#fff;
  font-size:clamp(30px, 4vw, 52px);
  line-height:1.05;
}

.sobre-story-copy p{
  margin:0;
  color:rgba(255,255,255,.9);
  font-size:18px;
  line-height:1.75;
}

.sobre-story-carousel .hero-nav{
  top:auto;
  bottom:34px;
  transform:none;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
}

.sobre-story-carousel .hero-nav-prev{
  left:auto;
  right:96px;
}

.sobre-story-carousel .hero-nav-next{
  right:36px;
}

.sobre-story-carousel .hero-dots{
  left:44px;
  bottom:42px;
  transform:none;
}

.sobre-home-grid{
  display:grid;
  grid-template-columns:1.6fr .9fr;
  gap:24px;
  align-items:start;
}

.sobre-home-box,
.sobre-page-box{
  background:#fff;
  border:1px solid #e8edf2;
  border-radius:16px;
  padding:22px;
  box-shadow:0 8px 24px rgba(15,23,42,.05);
}

.sobre-home-grid h2,
.sobre-page-content h2{
  margin-bottom:14px;
}

.sobre-home-lateral{
  display:flex;
  flex-direction:column;
  gap:22px;
}

.page-head{
  margin-bottom:28px;
}

.page-head h1{
  margin-bottom:10px;
}

.sobre-page-grid{
  display:grid;
  grid-template-columns:1.5fr .9fr;
  gap:24px;
  align-items:start;
}

.sobre-page-content{
  display:flex;
  flex-direction:column;
  gap:22px;
}

.sobre-page-sidebar{
  display:flex;
  flex-direction:column;
  gap:22px;
}

@media (max-width: 1100px){
  .grid-imoveis{
    grid-template-columns:repeat(2, 1fr);
  }

  .grid-imoveis.home-showcase-grid{
    --home-showcase-columns:3;
  }

  .hero-search-grid{
    grid-template-columns:repeat(2, 1fr);
  }

  .hero-search-codigo{
    grid-column:span 2;
  }

  .home-showcase-toolbar{
    grid-template-columns:1fr;
    justify-items:center;
  }

  .home-showcase-tabs{
    grid-column:auto;
  }

  .home-showcase-arrows{
    grid-column:auto;
    justify-self:center;
  }

  .sobre-home-grid,
  .sobre-page-grid{
    grid-template-columns:1fr;
  }

  .sobre-story-copy{
    max-width:100%;
  }
}

@media (max-width: 760px){
  .hero-home{
    min-height:auto;
    padding:40px 0;
  }

  .hero-box{
    padding:24px 18px;
  }

  .hero-box h1{
    font-size:34px;
  }

  .hero-box p{
    font-size:18px;
  }

  .hero-search-grid,
  .grid-imoveis{
    grid-template-columns:1fr;
  }

  .grid-imoveis.home-showcase-grid{
    --home-showcase-columns:1.15;
    --home-showcase-gap:16px;
    grid-auto-columns:calc((100% - var(--home-showcase-gap)) / var(--home-showcase-columns));
    padding-bottom:6px;
  }

  .home-showcase-head{
    gap:14px;
  }

  .home-showcase-head h2{
    font-size:24px;
  }

  .home-showcase-tabs{
    gap:18px;
    overflow-x:auto;
    padding:0 4px;
    scrollbar-width:none;
  }

  .home-showcase-tabs::-webkit-scrollbar{
    display:none;
  }

  .home-showcase-tab{
    white-space:nowrap;
    font-size:16px;
  }

  .hero-search-codigo{
    grid-column:span 1;
  }

  .section-head-home{
    flex-direction:column;
    align-items:flex-start;
  }

  .partners-marquee-track{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:16px;
  }

  .partner-card{
    max-width:none;
  }

  .section-sobre-story{
    padding-top:16px;
  }

  .sobre-story-intro{
    padding:24px 20px 4px;
  }

  .sobre-story-carousel{
    padding:14px;
  }

  .sobre-story-slide,
  .sobre-story-copy{
    min-height:420px;
  }

  .sobre-story-copy{
    padding:26px 22px 84px;
  }

  .sobre-story-copy p{
    font-size:16px;
    line-height:1.65;
  }

  .sobre-story-carousel .hero-dots{
    left:22px;
    bottom:22px;
  }

  .sobre-story-carousel .hero-nav-prev{
    right:76px;
  }

  .sobre-story-carousel .hero-nav-next{
    right:18px;
  }
}

@media (max-width: 560px){
  .partners-marquee-track{
    grid-template-columns:1fr;
  }
}
