/* ==========================================================================
   JF Imóveis — estilos do site (tudo isolado em .jf-site)
   ========================================================================== */
.jf-site{
  --navy:#14253D; --gold:#C5A572; --cream:#F4F0E8; --paper:#FBF9F5;
  --ink:#1B2434; --muted:#6B7383; --line:#E7E0D4;
  --navy: var(--jf-navy, #14253D);
  --gold: var(--jf-gold, #C5A572);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--ink); line-height:1.6; font-size:16px;
  width:100% !important; max-width:none !important;
  margin-left:0 !important; margin-right:0 !important;
}
.jf-site *,.jf-site *::before,.jf-site *::after{ box-sizing:border-box; }
.jf-site h1,.jf-site h2,.jf-site h3,.jf-site h4{
  font-family:'Cormorant Garamond',Georgia,serif; color:var(--navy);
  line-height:1.14; font-weight:600; text-transform:none; margin:0;
}
.jf-site p{ margin:0 0 12px; }
.jf-site a{ text-decoration:none; color:inherit; box-shadow:none; }
.jf-site a:not([class*="jf-btn"]){ border:0; }
.jf-site img{ max-width:100%; display:block; border:0; }
.jf-site ul{ list-style:none; margin:0; padding:0; }
.jf-container{ max-width:1140px; margin:0 auto; padding:0 22px; }
.jf-center{ text-align:center; }
.jf-right{ text-align:right; }
.jf-muted{ color:var(--muted); font-size:14px; }
.jf-sec{ padding:70px 0; }
.jf-sec-claro{ background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.jf-sec-head{ text-align:center; max-width:640px; margin:0 auto 38px; }
.jf-sec-head h2{ font-size:clamp(28px,4vw,40px); margin-bottom:10px; }
.jf-sec-head p{ color:var(--muted); }
.jf-eyebrow{
  display:inline-flex; align-items:center; gap:9px; font-size:11.5px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:#8A6A3C; margin-bottom:10px;
}
.jf-eyebrow::before{ content:""; width:22px; height:1px; background:var(--gold); }

/* Botões ------------------------------------------------------------------ */
.jf-btn,.jf-btn-sm{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 28px; border-radius:999px; background:var(--gold); color:var(--navy);
  font-weight:600; font-size:15px; border:1.5px solid transparent; cursor:pointer;
  font-family:'Inter',sans-serif; transition:transform .18s,box-shadow .18s,background .18s;
  box-shadow:0 8px 20px rgba(197,165,114,.3); text-transform:none;
}
.jf-btn:hover{ transform:translateY(-2px); }
.jf-btn-sm{ padding:9px 18px; font-size:13.5px; box-shadow:none; }
.jf-btn.ghost{ background:transparent; border-color:rgba(244,240,232,.45); color:var(--cream); box-shadow:none; }
.jf-btn.ghost:hover{ border-color:var(--gold); color:var(--gold); }
.jf-btn.ghost-dark,.jf-btn-sm.ghost-dark{ background:transparent; border-color:var(--navy); color:var(--navy); box-shadow:none; }
.jf-btn.ghost-dark:hover{ background:var(--navy); color:var(--cream); }
.jf-btns{ display:flex; gap:12px; flex-wrap:wrap; }
.jf-btns.jf-center{ justify-content:center; }

/* Hero -------------------------------------------------------------------- */
.jf-hero{ background:var(--navy); position:relative; overflow:hidden; padding:64px 0 0; text-align:center; }
.jf-hero::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse 55% 45% at 50% 6%, rgba(197,165,114,.2), transparent 62%);
}
.jf-hero .jf-container{
  position:relative; z-index:2; padding-bottom:52px;
  width:100%; max-width:1140px; margin-left:auto; margin-right:auto;
  display:flex; flex-direction:column; align-items:center;
}
.jf-hero .jf-container > *{ max-width:100%; }
/* O emblema pode vir como <img> (logo enviado) ou <span class="jf-mono">.
   Como .jf-site img é display:block, um <span> inline em volta fazia o
   margin:0 auto não valer e a marca encostava na esquerda no computador.
   Virando bloco, a abertura inteira fica centrada em qualquer tela. */
.jf-hero-emblema{ display:block; width:78px; max-width:78px; margin:0 auto 20px; }
.jf-hero-emblema img,.jf-hero-emblema .jf-mono{ display:block; margin:0 auto; }
.jf-tag{
  display:inline-block; font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); background:rgba(197,165,114,.1); border:1px solid rgba(197,165,114,.32);
  padding:7px 16px; border-radius:999px; margin-bottom:20px;
}
.jf-hero h1{ color:var(--cream); font-size:clamp(32px,5.2vw,54px); width:100%; max-width:820px; margin:0 auto 16px; }
.jf-hero-sub{ color:rgba(244,240,232,.78); font-size:clamp(15.5px,1.9vw,18px); width:100%; max-width:600px; margin:0 auto 26px; }
.jf-hero .jf-btns{ justify-content:center; margin-bottom:26px; }
.jf-hero-provas{ display:flex; gap:26px; justify-content:center; flex-wrap:wrap; }
.jf-hero-provas li{ color:rgba(244,240,232,.62); font-size:13.5px; display:flex; align-items:center; gap:8px; }
.jf-hero-provas li::before{ content:""; width:5px; height:5px; background:var(--gold); transform:rotate(45deg); }
.jf-cidades-bar{
  position:relative; z-index:2; border-top:1px solid rgba(197,165,114,.22); background:rgba(0,0,0,.16);
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 24px; padding:16px 22px;
}
.jf-cidades-bar span{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:rgba(244,240,232,.72); font-weight:600; }
.jf-cidades-bar i{ width:4px; height:4px; background:var(--gold); transform:rotate(45deg); display:inline-block; }

/* Grid de imóveis --------------------------------------------------------- */
.jf-grid-imoveis{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; }
.jf-imovel-card{
  display:flex; flex-direction:column; height:100%; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden;
  box-shadow:0 2px 12px rgba(20,37,61,.05); transition:transform .2s,box-shadow .2s,border-color .2s;
}
.jf-imovel-card:hover{ transform:translateY(-4px); box-shadow:0 16px 38px rgba(20,37,61,.13); border-color:var(--gold); }
.jf-card-foto{ position:relative; aspect-ratio:4/3; background:#EFEBE3; }
.jf-card-foto img{ width:100%; height:100%; object-fit:cover; }
.jf-card-sem-foto{ display:flex; align-items:center; justify-content:center; height:100%; color:var(--muted); font-size:13px; }
.jf-card-selo{
  position:absolute; top:12px; left:12px; color:#fff; font-size:10.5px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; padding:5px 11px; border-radius:999px;
}
.jf-selo-int{ left:auto; right:12px; background:#14253D; }
.jf-card-corpo{ padding:18px 18px 16px; display:flex; flex-direction:column; flex:1; }
.jf-card-local{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#8A6A3C; font-weight:700; }
.jf-imovel-card h3{ font-size:22px; margin:6px 0 10px; }
.jf-card-specs{ display:flex; flex-wrap:wrap; gap:6px 14px; margin-bottom:14px; }
.jf-card-specs span{ font-size:13px; color:var(--muted); }
.jf-card-rodape{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line); padding-top:12px; }
.jf-card-rodape strong{ font-family:'Cormorant Garamond',serif; font-size:24px; color:var(--navy); }
.jf-card-cod{ font-size:11px; color:var(--muted); letter-spacing:.1em; }
.jf-sec-destaque .jf-center{ margin-top:32px; }
.jf-vazio{ text-align:center; padding:40px 20px; background:var(--paper); border:1px dashed var(--line); border-radius:14px; }
.jf-vazio p{ color:var(--muted); margin-bottom:16px; }

/* Filtros ----------------------------------------------------------------- */
.jf-filtros{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:26px; justify-content:center; }
.jf-filtros select,.jf-filtros input{
  padding:11px 14px; border:1px solid var(--line); border-radius:10px; font-size:14px;
  background:#fff; color:var(--ink); min-width:150px; font-family:inherit;
}
.jf-vitrine{ padding:40px 0; }

/* Três checagens ---------------------------------------------------------- */
.jf-tres{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.jf-mini{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px 22px; }
.jf-mini-num{ font-family:'Cormorant Garamond',serif; font-size:14px; letter-spacing:.2em; color:#8A6A3C; font-weight:700; }
.jf-mini h3{ font-size:23px; margin:6px 0 8px; }
.jf-mini p{ font-size:14.5px; color:#404A5C; margin:0; }
.jf-nota{ margin-top:26px; color:var(--muted); font-size:14.5px; }
.jf-nota a{ color:#8A6A3C; font-weight:600; border-bottom:1px solid var(--gold); }

/* Sobre ------------------------------------------------------------------- */
.jf-sobre{ display:grid; grid-template-columns:.8fr 1.2fr; gap:48px; align-items:center; }
.jf-retrato{ position:relative; background:var(--navy); padding:12px 12px 4px; border-radius:3px; margin:0;
  box-shadow:0 26px 60px rgba(20,37,61,.2); }
.jf-retrato::before{ content:""; position:absolute; top:-8px; left:-8px; width:50px; height:50px;
  border-top:1px solid var(--gold); border-left:1px solid var(--gold); }
.jf-retrato img{ width:100%; border-radius:2px; }
.jf-retrato figcaption{ display:flex; align-items:center; gap:12px; margin-top:12px; padding:12px 4px 10px;
  border-top:1px solid rgba(197,165,114,.3); }
.jf-retrato figcaption img{ width:30px; }
.jf-retrato figcaption b{ display:block; font-family:'Cormorant Garamond',serif; font-size:19px; color:var(--cream); }
.jf-retrato figcaption em{ display:block; font-style:normal; font-size:9px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold); font-weight:600; margin-top:3px; }
.jf-sobre-txt h2{ font-size:clamp(28px,3.8vw,38px); margin-bottom:14px; }
.jf-sobre-txt p{ color:#404A5C; font-size:16px; }
.jf-stats{ display:flex; gap:12px; margin-top:22px; flex-wrap:wrap; }
.jf-stats div{ flex:1; min-width:130px; background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:15px 12px; text-align:center; }
.jf-stats b{ display:block; font-family:'Cormorant Garamond',serif; font-size:30px; color:var(--navy); line-height:1; }
.jf-stats span{ font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); font-weight:600; }

/* FAQ --------------------------------------------------------------------- */
.jf-faq details{ background:#fff; border:1px solid var(--line); border-radius:12px; margin-bottom:10px; max-width:760px; margin-left:auto; margin-right:auto; }
.jf-faq details[open]{ border-color:var(--gold); }
.jf-faq summary{ cursor:pointer; padding:17px 46px 17px 20px; font-weight:600; font-size:16px; color:var(--navy); position:relative; list-style:none; }
.jf-faq summary::-webkit-details-marker{ display:none; }
.jf-faq summary::after{ content:""; position:absolute; right:20px; top:50%; width:8px; height:8px;
  border-right:1.5px solid var(--gold); border-bottom:1.5px solid var(--gold); transform:translateY(-70%) rotate(45deg); }
.jf-faq details[open] summary::after{ transform:translateY(-30%) rotate(-135deg); }
.jf-faq details p{ padding:0 20px 18px; color:#404A5C; font-size:15px; }

/* CTA final --------------------------------------------------------------- */
.jf-cta-final{ background:var(--navy); padding:70px 0; text-align:center; position:relative; overflow:hidden; }
.jf-cta-final::before{ content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse 55% 60% at 50% 100%, rgba(197,165,114,.2), transparent 62%); }
.jf-cta-final .jf-container{ position:relative; z-index:2; }
.jf-cta-final h2{ color:var(--cream); font-size:clamp(28px,4.2vw,42px); margin-bottom:12px; }
.jf-cta-final h2 em{ font-style:italic; color:var(--gold); }
.jf-cta-final p{ color:rgba(244,240,232,.74); margin-bottom:26px; }
.jf-fine{ color:rgba(244,240,232,.45); font-size:12.5px; margin-top:18px; }
.jf-fine-dark{ color:var(--muted); font-size:12.5px; }

/* WhatsApp flutuante ------------------------------------------------------ */
.jf-wa-float{ position:fixed; right:18px; bottom:18px; z-index:900; width:54px; height:54px; border-radius:50%;
  background:var(--gold); color:var(--navy); display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px rgba(20,37,61,.3); }
.jf-wa-float:hover{ transform:scale(1.06); }

/* Página do imóvel -------------------------------------------------------- */
.jf-single{ padding:36px 0 60px; }
.jf-voltar{ display:inline-block; color:var(--muted); font-size:13.5px; margin-bottom:18px; }
.jf-single-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:22px; }
.jf-single-head h1{ font-size:clamp(28px,4vw,42px); margin:4px 0; }
.jf-cod{ font-size:12px; letter-spacing:.12em; color:var(--muted); display:inline-flex; align-items:center; gap:10px; }
.jf-cod .jf-card-selo{ position:static; }
.jf-single-preco{ text-align:right; }
.jf-single-preco strong{ display:block; font-family:'Cormorant Garamond',serif; font-size:34px; color:var(--navy); }
.jf-single-preco span{ display:block; font-size:13px; color:var(--muted); }
.jf-single-capa img{ width:100%; max-height:520px; object-fit:cover; border-radius:16px; }
.jf-single-galeria{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-top:10px; }
.jf-single-galeria img{ width:100%; height:110px; object-fit:cover; border-radius:10px; }
.jf-single-corpo{ display:grid; grid-template-columns:1.6fr .9fr; gap:36px; margin-top:36px; }
.jf-single-txt h2{ font-size:26px; margin:22px 0 10px; }
.jf-single-txt h2:first-child{ margin-top:0; }
.jf-carac{ display:flex; flex-wrap:wrap; gap:8px; }
.jf-carac li{ background:var(--paper); border:1px solid var(--line); border-radius:999px; padding:7px 14px; font-size:13.5px; }
.jf-interno{ margin-top:24px; background:#FFF8E9; border:1px solid #E8D9B4; border-radius:10px; padding:14px 16px; }
.jf-interno strong{ display:block; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#8A6A3C; margin-bottom:4px; }
.jf-single-ficha{ background:var(--navy); border-radius:16px; padding:26px 24px; align-self:start; position:sticky; top:20px; }
.jf-single-ficha h3{ color:var(--cream); font-size:22px; margin-bottom:14px; }
.jf-single-ficha ul{ margin-bottom:20px; }
.jf-single-ficha li{ display:flex; justify-content:space-between; gap:12px; padding:9px 0;
  border-bottom:1px solid rgba(197,165,114,.18); font-size:14px; color:rgba(244,240,232,.7); }
.jf-single-ficha li b{ color:var(--cream); font-weight:600; }
.jf-single-ficha .jf-btn{ width:100%; }
.jf-single-ficha .jf-fine-dark{ color:rgba(244,240,232,.45); text-align:center; margin-top:12px; }
.jf-relacionados{ margin-top:56px; }
.jf-relacionados h2{ font-size:28px; margin-bottom:20px; }

/* Área do colaborador ----------------------------------------------------- */
.jf-area{ padding:40px 0 60px; max-width:1140px; margin:0 auto; width:100%; }
.jf-area,.jf-vitrine,.jf-form-wrap{ padding-left:22px; padding-right:22px; }
.jf-login{ max-width:420px; margin:40px auto; background:#fff; border:1px solid var(--line);
  border-radius:16px; padding:34px 30px; text-align:center; box-shadow:0 14px 40px rgba(20,37,61,.08); }
.jf-login img{ width:64px; margin:0 auto 14px; }
.jf-login h2{ font-size:28px; margin-bottom:6px; }
.jf-login p{ color:var(--muted); font-size:14.5px; }
.jf-login label{ display:block; text-align:left; font-size:13.5px; font-weight:600; margin-bottom:4px; }
.jf-login input[type=text],.jf-login input[type=password]{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:10px; margin-bottom:12px; font-family:inherit; }
.jf-login input[type=submit]{ width:100%; padding:13px; border:0; border-radius:999px; background:var(--gold);
  color:var(--navy); font-weight:700; cursor:pointer; font-size:15px; }
.jf-area-head{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:22px; }
.jf-area-head h2{ font-size:32px; }
.jf-abas{ display:flex; gap:6px; flex-wrap:wrap; border-bottom:1px solid var(--line); margin-bottom:24px; }
.jf-abas a{ padding:11px 18px; font-size:14px; font-weight:600; color:var(--muted); border-bottom:2px solid transparent; }
.jf-abas a.ativa{ color:var(--navy); border-bottom-color:var(--gold); }
.jf-area-nota{ color:var(--muted); font-size:14px; margin-bottom:18px; }
.jf-material-item{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px; margin-bottom:14px; }
.jf-material-item h4{ font-size:20px; margin-bottom:8px; }
.jf-material-item textarea{ width:100%; border:1px solid var(--line); border-radius:8px; padding:10px;
  font-family:inherit; font-size:13.5px; color:#404A5C; background:var(--paper); }
.jf-material-fotos{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.jf-material-fotos img{ width:74px; height:74px; object-fit:cover; border-radius:8px; }
.jf-tabela{ width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.jf-tabela th{ text-align:left; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); padding:12px 14px; background:var(--paper); }
.jf-tabela td{ padding:12px 14px; border-top:1px solid var(--line); font-size:14.5px; }
.jf-stats-area{ margin-bottom:22px; }
.jf-ok{ background:#E9F5EE; border:1px solid #BEDCCB; color:#1F5138; padding:13px 16px; border-radius:10px; margin-bottom:18px; }
.jf-erro{ background:#FBEAEA; border:1px solid #E5BEBE; color:#7A2B2B; padding:13px 16px; border-radius:10px; margin-bottom:18px; }

/* Formulários ------------------------------------------------------------- */
.jf-form{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px; max-width:760px; }
.jf-form label{ display:block; font-size:13.5px; font-weight:600; color:var(--navy); margin-bottom:14px; }
.jf-form input,.jf-form select,.jf-form textarea{
  width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:10px; margin-top:5px;
  font-family:inherit; font-size:14.5px; font-weight:400; color:var(--ink); background:#fff;
}
.jf-form-linha{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.jf-form-imovel{ max-width:100%; }
.jf-form-wrap{ padding-top:20px; padding-bottom:20px; }

/* Responsivo -------------------------------------------------------------- */
@media (max-width:960px){
  .jf-grid-imoveis{ grid-template-columns:repeat(2,1fr); }
  .jf-tres{ grid-template-columns:1fr; }
  .jf-sobre{ grid-template-columns:1fr; gap:30px; }
  .jf-retrato{ max-width:360px; margin:0 auto; }
  .jf-single-corpo{ grid-template-columns:1fr; }
  .jf-single-ficha{ position:static; }
  .jf-single-galeria{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:640px){
  .jf-sec{ padding:52px 0; }
  .jf-grid-imoveis{ grid-template-columns:1fr; }
  .jf-form-linha{ grid-template-columns:1fr; }
  .jf-single-head{ flex-direction:column; align-items:flex-start; }
  .jf-single-preco{ text-align:left; }
  .jf-hero-provas{ flex-direction:column; align-items:center; gap:8px; }
  .jf-filtros select,.jf-filtros input{ width:100%; }
  .jf-btn{ width:100%; }
  .jf-btns{ width:100%; }
}

/* ==========================================================================
   AS DUAS PORTAS (home)
   ========================================================================== */
.jf-portas{ display:grid; grid-template-columns:1fr 1fr; gap:16px; width:100%; max-width:760px; margin:30px auto 0; }
.jf-porta{
  display:flex; align-items:center; gap:14px; text-align:left;
  background:rgba(244,240,232,.06); border:1px solid rgba(197,165,114,.4);
  border-radius:14px; padding:18px 20px; transition:background .18s,border-color .18s,transform .18s;
}
.jf-porta:hover{ background:rgba(197,165,114,.14); border-color:var(--gold); transform:translateY(-3px); }
.jf-porta-ico{ flex-shrink:0; width:42px; height:42px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  background:var(--gold); color:var(--navy); }
.jf-porta-ico svg{ width:22px; height:22px; }
.jf-porta-txt{ flex:1; display:block; }
.jf-porta-txt b{ display:block; font-family:'Cormorant Garamond',serif; font-size:24px; color:var(--cream); line-height:1.15; }
.jf-porta-txt em{ display:block; font-style:normal; font-size:12.5px; color:rgba(244,240,232,.62); margin-top:2px; }
.jf-porta-seta{ color:var(--gold); font-size:20px; }
.jf-porta-2 .jf-porta-ico{ background:transparent; border:1px solid var(--gold); color:var(--gold); }

/* ==========================================================================
   CATÁLOGO POR CATEGORIAS
   ========================================================================== */
.jf-catalogo{ margin-bottom:22px; }
.jf-cat-linha{ display:flex; align-items:flex-start; gap:14px; padding:10px 0; flex-wrap:wrap; }
.jf-cat-lab{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#8A6A3C; font-weight:700; padding-top:8px; min-width:140px; }
.jf-cat-chips{ display:flex; flex-wrap:wrap; gap:8px; flex:1; }
.jf-chip{ display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:999px;
  border:1px solid var(--line); background:#fff; font-size:13.5px; color:var(--ink); transition:all .16s; }
.jf-chip b{ color:var(--muted); font-weight:600; font-size:11.5px; }
.jf-chip:hover{ border-color:var(--gold); }
.jf-chip.ativo{ background:var(--navy); color:var(--cream); border-color:var(--navy); }
.jf-chip.ativo b{ color:var(--gold); }

/* ==========================================================================
   PAINEL DENTRO DO SITE
   ========================================================================== */
.jf-area-acoes{ display:flex; gap:8px; }
.jf-painel-topo{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.jf-painel-h3{ font-family:'Cormorant Garamond',serif; font-size:24px; color:var(--navy); margin:26px 0 12px; }
.jf-painel-atalhos{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:20px 0 8px; }
.jf-painel-atalhos a{ background:var(--navy); border-radius:12px; padding:18px 18px 16px; display:block;
  border:1px solid var(--navy); transition:transform .18s,box-shadow .18s; }
.jf-painel-atalhos a:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(20,37,61,.22); }
.jf-painel-atalhos strong{ display:block; font-family:'Cormorant Garamond',serif; font-size:21px; color:var(--cream); line-height:1.2; }
.jf-painel-atalhos span{ display:block; font-size:12.5px; color:rgba(244,240,232,.6); margin-top:5px; }

.jf-cat-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
.jf-cat-box{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px; }
.jf-cat-box h3{ font-size:22px; margin-bottom:6px; }
.jf-cat-box .jf-form{ border:0; padding:0; max-width:none; }
.jf-cat-lista{ margin:14px 0; }
.jf-cat-lista li{ display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:9px 0; border-bottom:1px solid #F1ECE3; font-size:14.5px; }
.jf-cat-lista li:last-child{ border-bottom:0; }
.jf-cat-form{ display:flex; gap:8px; }
.jf-cat-form input{ flex:1; padding:10px 12px; border:1px solid var(--line); border-radius:10px; font-family:inherit; }
.jf-link-del{ color:#8A3B3B; font-size:12.5px; }
.jf-link-del:hover{ text-decoration:underline; }

.jf-checks{ margin:6px 0 16px; }
.jf-checks-lab{ display:block; font-size:13.5px; font-weight:600; color:var(--navy); margin-bottom:8px; }
.jf-check{ display:inline-flex !important; align-items:center; gap:7px; margin:0 14px 8px 0; font-weight:400 !important; font-size:14px !important; }
.jf-check input{ width:auto !important; margin:0 !important; }
.jf-check-inline{ display:flex !important; align-items:center; gap:7px; align-self:end; padding-bottom:12px; }
.jf-check-inline input{ width:auto !important; margin:0 !important; }
.jf-fotos-edit{ display:flex; flex-wrap:wrap; gap:10px; }
.jf-foto-edit{ display:block !important; font-size:11.5px !important; text-align:center; color:var(--muted) !important; font-weight:400 !important; }
.jf-foto-edit img{ width:88px; height:88px; object-fit:cover; border-radius:8px; margin-bottom:4px; }
.jf-foto-edit input{ width:auto !important; margin:0 4px 0 0 !important; }
.jf-form select[multiple]{ min-height:130px; }

@media (max-width:960px){
  .jf-portas{ grid-template-columns:1fr; }
  .jf-painel-atalhos{ grid-template-columns:1fr 1fr; }
  .jf-cat-grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .jf-painel-atalhos{ grid-template-columns:1fr; }
  .jf-cat-lab{ min-width:100%; padding-top:0; }
  .jf-area-head{ flex-direction:column; align-items:flex-start; }
}


/* ==========================================================================
   Largura total sem truque de viewport: neutraliza o container do tema
   apenas nas páginas do plugin (classe aplicada no <body>).
   ========================================================================== */
body.jf-fullwidth{ overflow-x:hidden; }
body.jf-fullwidth .entry-content,
body.jf-fullwidth .wp-block-post-content,
body.jf-fullwidth .page-content,
body.jf-fullwidth .site-content,
body.jf-fullwidth .content-area,
body.jf-fullwidth .site-main,
body.jf-fullwidth main.site-main,
body.jf-fullwidth main#main,
body.jf-fullwidth article.page,
body.jf-fullwidth article.type-page{
  max-width:none !important;
  width:auto !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
/* temas de bloco: o layout "constrained" limita os filhos */
body.jf-fullwidth .is-layout-constrained > .jf-site,
body.jf-fullwidth .entry-content > .jf-site{
  max-width:none !important;
  width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* A barra da marca e o rodapé são irmãos de .jf-site, não filhos dele:
   sem estas regras o tema apertava os dois na largura da coluna de texto e
   sobrava uma faixa branca dos dois lados. */
body.jf-fullwidth .jf-topo,
body.jf-fullwidth .jf-rodape-marca{
  max-width:none !important;
  width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  float:none !important;
  clear:both;
}

/* ===========================================================================
   v2.2 — Barra da marca (substitui o cabeçalho do tema)
   ======================================================================== */
.jf-topo{
	--navy: var(--jf-navy, #14253D);
	--gold: var(--jf-gold, #C5A572);
	--paper:#FBF9F5;
	background:var(--paper);
	border-bottom:1px solid rgba(20,37,61,.10);
	position:relative;
	z-index:10;
}

/* Só gruda no alto se a corretora ligar a opção — assim a barra nunca passa
   por cima de um cartão no meio da rolagem sem que ninguém tenha pedido. */
body.jf-topo-fixo .jf-topo{
	position:sticky;
	top:0;
	z-index:800;
	box-shadow:0 1px 0 rgba(20,37,61,.06);
}
body.admin-bar.jf-topo-fixo .jf-topo{ top:32px; }
@media (max-width:782px){
	body.admin-bar.jf-topo-fixo .jf-topo{ top:46px; }
}

.jf-topo-in{
	max-width:1180px; margin:0 auto;
	padding:10px 18px;
	display:flex; align-items:center; gap:16px;
}
.jf-topo-marca{ display:flex; align-items:center; gap:10px; text-decoration:none; margin-right:auto; min-width:0; }
.jf-topo-marca img{ width:34px; height:34px; object-fit:contain; flex:0 0 auto; }
.jf-topo-marca span{ display:flex; flex-direction:column; line-height:1.15; min-width:0; }
.jf-topo-marca b{
	font-family:'Cormorant Garamond',Georgia,serif;
	font-size:19px; font-weight:700; color:var(--navy,#14253D);
	white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.jf-topo-marca em{ font-style:normal; font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:#8a8676; }

.jf-topo-menu{ display:flex; align-items:center; gap:20px; }
.jf-topo-menu a{
	font-size:14px; font-weight:600; color:var(--navy,#14253D);
	text-decoration:none; white-space:nowrap; opacity:.85;
}
.jf-topo-menu a:hover{ opacity:1; }
.jf-topo-menu .jf-topo-area{ font-size:13px; opacity:.6; }

.jf-topo-wa{
	display:inline-flex; align-items:center; gap:7px;
	background:var(--gold,#C5A572); color:var(--navy,#14253D);
	font-size:13.5px; font-weight:700;
	padding:9px 16px; border-radius:999px; text-decoration:none;
	white-space:nowrap;
}
.jf-topo-wa:hover{ filter:brightness(1.06); }

@media (max-width:820px){
	.jf-topo-in{ flex-wrap:wrap; padding:9px 14px; gap:10px; }
	.jf-topo-marca b{ font-size:17px; }
	.jf-topo-wa span{ display:none; }
	.jf-topo-wa{ padding:9px 12px; }
	.jf-topo-menu{
		order:3; width:100%;
		gap:0; justify-content:space-between;
		border-top:1px solid rgba(20,37,61,.08);
		padding-top:8px;
		overflow-x:auto; -webkit-overflow-scrolling:touch;
	}
	.jf-topo-menu a{ padding:4px 10px; font-size:13.5px; }
	.jf-topo-menu a:first-child{ padding-left:0; }
}

.jf-rodape-marca{
	--navy: var(--jf-navy, #14253D);
	--gold: var(--jf-gold, #C5A572);
	background:var(--navy);
	color:rgba(244,240,232,.75);
	margin:0;
	width:100%;
	/* linha discreta para o rodapé não virar um bloco só com a chamada final,
	   que também é escura */
	border-top:1px solid rgba(244,240,232,.13);
}
.jf-rodape-marca .jf-topo-in{ padding:26px 18px; flex-wrap:wrap; gap:14px; }
.jf-rodape-marca b{ display:block; font-family:'Cormorant Garamond',Georgia,serif; font-size:20px; color:#F4F0E8; }
.jf-rodape-marca span{ font-size:12.5px; letter-spacing:.05em; }
.jf-rodape-links{ display:flex; flex-wrap:wrap; gap:18px; margin-left:auto; }
.jf-rodape-links a{ color:rgba(244,240,232,.8); font-size:13.5px; text-decoration:none; }
.jf-rodape-links a:hover{ color:var(--gold,#C5A572); }
@media (max-width:640px){
	.jf-rodape-links{ margin-left:0; width:100%; gap:14px; }
}

/* ===========================================================================
   v2.2 — Apresentação em PDF do imóvel
   ======================================================================== */
.jf-pdf-bloco{
	display:flex; align-items:center; gap:14px;
	background:#fff;
	border:1px solid rgba(20,37,61,.12);
	border-left:4px solid var(--gold,#C5A572);
	border-radius:12px;
	padding:16px 18px;
	margin:22px 0;
}
.jf-pdf-ico{
	flex:0 0 auto; width:42px; height:42px; border-radius:9px;
	background:rgba(197,165,114,.16); color:var(--navy,#14253D);
	display:flex; align-items:center; justify-content:center;
}
.jf-pdf-txt{ flex:1; min-width:0; }
.jf-pdf-txt b{ display:block; font-size:15px; color:var(--navy,#14253D); }
.jf-pdf-txt span{ font-size:12.5px; color:#7a7668; }
.jf-pdf-bloco .jf-btn-sm{ flex:0 0 auto; }
@media (max-width:560px){
	.jf-pdf-bloco{ flex-wrap:wrap; }
	.jf-pdf-bloco .jf-btn-sm{ width:100%; text-align:center; }
}

/* v2.2 — formulário: aceite LGPD, erro e armadilha anti-robô */
.jf-armadilha{ position:absolute!important; left:-9999px!important; width:1px; height:1px; overflow:hidden; }
.jf-erro{
	background:#fdeeee; border-left:4px solid #8A3B3B; color:#722;
	padding:13px 16px; border-radius:0 8px 8px 0; margin-bottom:16px; font-size:14px; line-height:1.55;
}
.jf-form label.jf-aceite{
	display:flex; align-items:flex-start; gap:10px;
	font-weight:400; font-size:12.5px; line-height:1.55; color:#4a5568;
	background:#f7f5f1; padding:12px 14px; border-radius:9px; margin-bottom:16px;
}
.jf-form label.jf-aceite input{ margin-top:2px; width:17px; height:17px; flex:0 0 auto; }
.jf-form label.jf-aceite a{ color:var(--navy,#14253D); text-decoration:underline; }

/* v2.3 — monograma no lugar do logo, quando não há arquivo enviado */
.jf-mono{
	display:inline-flex;align-items:center;justify-content:center;
	border-radius:50%;
	font-family:'Cormorant Garamond',Georgia,serif;
	font-weight:600;line-height:1;letter-spacing:.02em;
	flex:0 0 auto;
}
.jf-retrato-mono{
	aspect-ratio:3/4;width:100%;
	display:flex;align-items:center;justify-content:center;
	background:linear-gradient(160deg,var(--navy,#14253D),#0d1929);
}
.jf-retrato-mono .jf-mono{
	width:120px;height:120px;font-size:44px;
	border:2px solid var(--gold,#C5A572);color:var(--gold,#C5A572);
}

/* ===========================================================================
   v2.4 — Página montada pelo próprio plugin
   Sem cabeçalho e sem rodapé de tema no caminho: o documento é nosso, então
   basta zerar o que o CSS do tema ainda tenta impor no corpo da página.
   ======================================================================== */
body.jf-app-site{
	margin:0;
	padding:0;
	background:#fff;
	overflow-x:hidden;
}
body.jf-app-site .jf-conteudo-proprio{
	display:block;
	width:100%;
	max-width:none;
	margin:0;
	padding:0;
}
body.jf-app-site .jf-conteudo-proprio > *{
	max-width:none;
	margin-left:0;
	margin-right:0;
}
/* alguns temas empurram tudo para baixo por causa da barra do WordPress;
   o próprio WordPress já cuida disso, então não precisamos de mais nada */
body.jf-app-site .jf-topo,
body.jf-app-site .jf-rodape-marca{
	width:100%;
	max-width:none;
	margin:0;
}

/* ===========================================================================
   v2.5 — Selos da miniatura
   Venda/aluguel no alto (é a primeira pergunta de todo cliente) e o estágio
   da obra embaixo, sobre uma sombra, para ler bem em foto clara.
   ======================================================================== */
.jf-selo{
  display:inline-flex; align-items:center; color:#fff; font-size:10.5px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; padding:5px 11px; border-radius:999px;
  line-height:1; white-space:nowrap;
}
.jf-card-selo{
  position:absolute; top:12px; left:12px; color:#fff; font-size:10.5px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; padding:5px 11px; border-radius:999px;
}
.jf-selos{ position:absolute; display:flex; flex-wrap:wrap; gap:6px; z-index:2; max-width:calc(100% - 24px); }
.jf-selos-cima{ top:12px; left:12px; }
.jf-selos-baixo{ left:12px; right:12px; bottom:12px; }
.jf-selo-int{ position:absolute; top:12px; right:12px; background:#14253D; z-index:3; }
.jf-selo-estagio{ box-shadow:0 2px 8px rgba(0,0,0,.28); }
.jf-selo-origem{
  background:rgba(20,37,61,.86); color:#F4F0E8;
  backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
  max-width:100%; overflow:hidden; text-overflow:ellipsis; display:inline-block;
}
.jf-card-foto::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:46%;
  background:linear-gradient(to top, rgba(12,20,33,.42), transparent);
  opacity:0; transition:opacity .2s; pointer-events:none;
}
.jf-card-foto:has(.jf-selos-baixo)::after{ opacity:1; }

/* ===========================================================================
   v2.5 — Painel de busca
   ======================================================================== */
.jf-oculto{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.jf-busca{
  background:#fff; border:1px solid var(--line); border-radius:16px;
  padding:16px 16px 6px; margin-bottom:16px;
  box-shadow:0 3px 16px rgba(20,37,61,.05);
}
.jf-busca-linha{ display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; }
.jf-busca-campo{ display:flex; flex-direction:column; gap:4px; flex:1 1 160px; min-width:150px; margin-bottom:10px; }
.jf-busca-campo > span{
  font-size:10.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:#8A6A3C;
}
.jf-busca-campo select,.jf-busca-campo input{
  width:100%; padding:11px 13px; border:1.5px solid var(--line); border-radius:10px;
  font-size:14.5px; font-family:inherit; color:var(--ink); background:#fff; height:44px;
}
.jf-busca-campo select:focus,.jf-busca-campo input:focus{ outline:none; border-color:var(--gold); }
.jf-busca-texto{ flex:2 1 240px; }
.jf-busca-min{ flex:1 1 120px; min-width:110px; }
.jf-busca-enviar{ height:44px; margin-bottom:10px; flex:0 0 auto; padding:0 26px; }

.jf-busca-mais{ border-top:1px solid var(--line); margin:2px -16px 0; padding:0 16px; }
.jf-busca-mais summary{
  cursor:pointer; list-style:none; padding:13px 26px 13px 0; position:relative;
  display:flex; flex-wrap:wrap; align-items:baseline; gap:10px;
}
.jf-busca-mais summary::-webkit-details-marker{ display:none; }
.jf-busca-mais summary span{ font-size:14px; font-weight:700; color:var(--navy); }
.jf-busca-mais summary em{ font-style:normal; font-size:12.5px; color:var(--muted); }
.jf-busca-mais summary::after{
  content:""; position:absolute; right:4px; top:50%; width:8px; height:8px;
  border-right:1.6px solid var(--gold); border-bottom:1.6px solid var(--gold);
  transform:translateY(-70%) rotate(45deg); transition:transform .18s;
}
.jf-busca-mais[open] summary::after{ transform:translateY(-30%) rotate(-135deg); }
.jf-busca-grupo{ padding:4px 0 0; border-top:1px dashed #EFEAE0; margin-top:8px; }
.jf-busca-grupo:first-of-type{ border-top:0; margin-top:0; }
.jf-busca-lab{
  display:block; font-size:11px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--navy); margin:12px 0 8px;
}
.jf-busca-checks{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.jf-busca-check{ display:inline-flex; align-items:center; gap:7px; cursor:pointer;
  border:1.5px solid var(--line); border-radius:999px; padding:7px 14px; font-size:13.5px;
  background:#fff; transition:border-color .16s,background .16s; }
.jf-busca-check:hover{ border-color:var(--gold); }
.jf-busca-check input{ width:16px; height:16px; margin:0; accent-color:var(--gold); }
.jf-busca-check:has(input:checked){ background:var(--navy); color:var(--cream); border-color:var(--navy); }
.jf-busca-rodape{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; padding:6px 0 16px; }
.jf-busca-limpar{ font-size:13.5px; color:var(--muted); border-bottom:1px solid var(--line); }
.jf-busca-limpar:hover{ color:#8A3B3B; border-color:#8A3B3B; }

/* barra de resultado ------------------------------------------------------- */
.jf-busca-barra{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  flex-wrap:wrap; margin:0 0 12px;
}
.jf-busca-conta{ font-size:14.5px; color:var(--muted); }
.jf-busca-conta strong{ font-family:'Cormorant Garamond',serif; font-size:24px; color:var(--navy); margin-right:4px; }
.jf-busca-controles{ display:flex; gap:12px; flex-wrap:wrap; }
.jf-busca-controles label{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:var(--muted); }
.jf-busca-controles select{
  padding:8px 11px; border:1.5px solid var(--line); border-radius:9px;
  font-size:13.5px; font-family:inherit; background:#fff; color:var(--ink);
}

.jf-busca-etiquetas{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:18px; }
.jf-etiqueta{
  display:inline-flex; align-items:center; gap:8px; font-size:12.5px;
  background:var(--paper); border:1px solid var(--line); border-radius:999px;
  padding:6px 12px; color:var(--ink); transition:border-color .16s,color .16s;
}
.jf-etiqueta i{ font-style:normal; color:var(--muted); font-size:14px; line-height:1; }
.jf-etiqueta:hover{ border-color:#8A3B3B; color:#8A3B3B; }
.jf-etiqueta:hover i{ color:#8A3B3B; }
.jf-etiqueta-limpar{ background:transparent; border-style:dashed; color:var(--muted); }

/* paginação ---------------------------------------------------------------- */
.jf-paginacao{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  flex-wrap:wrap; margin-top:32px; padding-top:22px; border-top:1px solid var(--line);
}
.jf-pag-info{ font-size:13.5px; color:var(--muted); }
.jf-pag-info b{ color:var(--navy); }
.jf-pag-nums{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.jf-pag-nums a,.jf-pag-atual{
  min-width:40px; height:40px; padding:0 12px; border-radius:10px;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:600; border:1.5px solid var(--line); background:#fff; color:var(--ink);
}
.jf-pag-nums a:hover{ border-color:var(--gold); color:#8A6A3C; }
.jf-pag-atual{ background:var(--navy); border-color:var(--navy); color:var(--cream); }
.jf-pag-seta{ color:var(--muted) !important; }
.jf-pag-gap{ color:var(--muted); padding:0 2px; }

.jf-vitrine .jf-container{ padding-left:0; padding-right:0; }

@media (max-width:640px){
  .jf-busca{ padding:14px 14px 4px; }
  .jf-busca-campo{ flex:1 1 100%; }
  .jf-busca-min{ flex:1 1 calc(50% - 5px); min-width:0; }
  .jf-busca-enviar{ width:100%; }
  .jf-busca-barra{ flex-direction:column; align-items:flex-start; }
  .jf-busca-controles{ width:100%; }
  .jf-busca-controles label{ flex:1; }
  .jf-busca-controles select{ flex:1; }
  .jf-paginacao{ flex-direction:column; align-items:flex-start; }
  .jf-pag-seta{ width:100%; }
}
