/* ==========================================================================
   VV Imóveis — estilos do site (tudo isolado em .vv-site)
   ========================================================================== */
.vv-site{
  --navy:#2A2150; --verde:#1FC7A8; --cream:#F2F1FA; --paper:#F7F7FC;
  --ink:#1B2434; --muted:#6B7383; --line:#E4E2F0;
  --navy: var(--vv-navy, #2A2150);
  --verde: var(--vv-verde, #1FC7A8);
  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;
}
.vv-site *,.vv-site *::before,.vv-site *::after{ box-sizing:border-box; }
.vv-site h1,.vv-site h2,.vv-site h3,.vv-site h4{
  font-family:'Poppins','Inter',sans-serif; color:var(--navy);
  line-height:1.14; font-weight:600; text-transform:none; margin:0;
}
.vv-site p{ margin:0 0 12px; }
.vv-site a{ text-decoration:none; color:inherit; box-shadow:none; }
.vv-site a:not([class*="vv-btn"]){ border:0; }
.vv-site img{ max-width:100%; display:block; border:0; }
.vv-site ul{ list-style:none; margin:0; padding:0; }
.vv-container{ max-width:1140px; margin:0 auto; padding:0 22px; }
.vv-center{ text-align:center; }
.vv-right{ text-align:right; }
.vv-muted{ color:var(--muted); font-size:14px; }
.vv-sec{ padding:70px 0; }
.vv-sec-claro{ background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.vv-sec-head{ text-align:center; max-width:640px; margin:0 auto 38px; }
.vv-sec-head h2{ font-size:clamp(28px,4vw,40px); margin-bottom:10px; }
.vv-sec-head p{ color:var(--muted); }
.vv-eyebrow{
  display:inline-flex; align-items:center; gap:9px; font-size:11.5px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:#0F8A74; margin-bottom:10px;
}
.vv-eyebrow::before{ content:""; width:22px; height:1px; background:var(--verde); }

/* Botões ------------------------------------------------------------------ */
.vv-btn,.vv-btn-sm{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 28px; border-radius:999px; background:var(--verde); 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(31,199,168,.3); text-transform:none;
}
.vv-btn:hover{ transform:translateY(-2px); }
.vv-btn-sm{ padding:9px 18px; font-size:13.5px; box-shadow:none; }
.vv-btn.ghost{ background:transparent; border-color:rgba(242,241,250,.45); color:var(--cream); box-shadow:none; }
.vv-btn.ghost:hover{ border-color:var(--verde); color:var(--verde); }
.vv-btn.ghost-dark,.vv-btn-sm.ghost-dark{ background:transparent; border-color:var(--navy); color:var(--navy); box-shadow:none; }
.vv-btn.ghost-dark:hover{ background:var(--navy); color:var(--cream); }
.vv-btns{ display:flex; gap:12px; flex-wrap:wrap; }
.vv-btns.vv-center{ justify-content:center; }

/* Hero -------------------------------------------------------------------- */
.vv-hero{ background:var(--navy); position:relative; overflow:hidden; padding:64px 0 0; text-align:center; }
.vv-hero::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse 55% 45% at 50% 6%, rgba(31,199,168,.2), transparent 62%);
}
.vv-hero .vv-container{ position:relative; z-index:2; padding-bottom:52px; }
.vv-hero-emblema{ width:78px; margin:0 auto 20px; }
.vv-tag{
  display:inline-block; font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--verde); background:rgba(31,199,168,.1); border:1px solid rgba(31,199,168,.32);
  padding:7px 16px; border-radius:999px; margin-bottom:20px;
}
.vv-hero h1{ color:var(--cream); font-size:clamp(32px,5.2vw,54px); max-width:820px; margin:0 auto 16px; }
.vv-hero-sub{ color:rgba(242,241,250,.78); font-size:clamp(15.5px,1.9vw,18px); max-width:600px; margin:0 auto 26px; }
.vv-hero .vv-btns{ justify-content:center; margin-bottom:26px; }
.vv-hero-provas{ display:flex; gap:26px; justify-content:center; flex-wrap:wrap; }
.vv-hero-provas li{ color:rgba(242,241,250,.62); font-size:13.5px; display:flex; align-items:center; gap:8px; }
.vv-hero-provas li::before{ content:""; width:5px; height:5px; background:var(--verde); transform:rotate(45deg); }
.vv-cidades-bar{
  position:relative; z-index:2; border-top:1px solid rgba(31,199,168,.22); background:rgba(0,0,0,.16);
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 24px; padding:16px 22px;
}
.vv-cidades-bar span{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:rgba(242,241,250,.72); font-weight:600; }
.vv-cidades-bar i{ width:4px; height:4px; background:var(--verde); transform:rotate(45deg); display:inline-block; }

/* Grid de produtos --------------------------------------------------------- */
.vv-grid-produtos{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; }
.vv-produto-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;
}
.vv-produto-card:hover{ transform:translateY(-4px); box-shadow:0 16px 38px rgba(20,37,61,.13); border-color:var(--verde); }
.vv-card-foto{ position:relative; aspect-ratio:4/3; background:#EFEBE3; }
.vv-card-foto img{ width:100%; height:100%; object-fit:cover; }
.vv-card-sem-foto{ display:flex; align-items:center; justify-content:center; height:100%; color:var(--muted); font-size:13px; }
.vv-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;
}
.vv-selo-int{ left:auto; right:12px; background:#2A2150; }
.vv-card-corpo{ padding:18px 18px 16px; display:flex; flex-direction:column; flex:1; }
.vv-card-local{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#0F8A74; font-weight:700; }
.vv-produto-card h3{ font-size:22px; margin:6px 0 10px; }
.vv-card-specs{ display:flex; flex-wrap:wrap; gap:6px 14px; margin-bottom:14px; }
.vv-card-specs span{ font-size:13px; color:var(--muted); }
.vv-card-rodape{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line); padding-top:12px; }
.vv-card-rodape strong{ font-family:'Poppins','Inter',sans-serif; font-size:24px; color:var(--navy); }
.vv-card-cod{ font-size:11px; color:var(--muted); letter-spacing:.1em; }
.vv-sec-destaque .vv-center{ margin-top:32px; }
.vv-vazio{ text-align:center; padding:40px 20px; background:var(--paper); border:1px dashed var(--line); border-radius:14px; }
.vv-vazio p{ color:var(--muted); margin-bottom:16px; }

/* Filtros ----------------------------------------------------------------- */
.vv-filtros{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:26px; justify-content:center; }
.vv-filtros select,.vv-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;
}
.vv-vitrine{ padding:40px 0; }

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

/* Sobre ------------------------------------------------------------------- */
.vv-sobre{ display:grid; grid-template-columns:.8fr 1.2fr; gap:48px; align-items:center; }
.vv-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); }
.vv-retrato::before{ content:""; position:absolute; top:-8px; left:-8px; width:50px; height:50px;
  border-top:1px solid var(--verde); border-left:1px solid var(--verde); }
.vv-retrato img{ width:100%; border-radius:2px; }
.vv-retrato figcaption{ display:flex; align-items:center; gap:12px; margin-top:12px; padding:12px 4px 10px;
  border-top:1px solid rgba(31,199,168,.3); }
.vv-retrato figcaption img{ width:30px; }
.vv-retrato figcaption b{ display:block; font-family:'Poppins','Inter',sans-serif; font-size:19px; color:var(--cream); }
.vv-retrato figcaption em{ display:block; font-style:normal; font-size:9px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--verde); font-weight:600; margin-top:3px; }
.vv-sobre-txt h2{ font-size:clamp(28px,3.8vw,38px); margin-bottom:14px; }
.vv-sobre-txt p{ color:#404A5C; font-size:16px; }
.vv-stats{ display:flex; gap:12px; margin-top:22px; flex-wrap:wrap; }
.vv-stats div{ flex:1; min-width:130px; background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:15px 12px; text-align:center; }
.vv-stats b{ display:block; font-family:'Poppins','Inter',sans-serif; font-size:30px; color:var(--navy); line-height:1; }
.vv-stats span{ font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); font-weight:600; }

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

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

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

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

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

/* Formulários ------------------------------------------------------------- */
.vv-form{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px; max-width:760px; }
.vv-form label{ display:block; font-size:13.5px; font-weight:600; color:var(--navy); margin-bottom:14px; }
.vv-form input,.vv-form select,.vv-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;
}
.vv-form-linha{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.vv-form-produto{ max-width:100%; }
.vv-form-wrap{ padding-top:20px; padding-bottom:20px; }

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

/* ==========================================================================
   AS DUAS PORTAS (home)
   ========================================================================== */
.vv-portas{ display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:760px; margin:30px auto 0; }
.vv-porta{
  display:flex; align-items:center; gap:14px; text-align:left;
  background:rgba(242,241,250,.06); border:1px solid rgba(31,199,168,.4);
  border-radius:14px; padding:18px 20px; transition:background .18s,border-color .18s,transform .18s;
}
.vv-porta:hover{ background:rgba(31,199,168,.14); border-color:var(--verde); transform:translateY(-3px); }
.vv-porta-ico{ flex-shrink:0; width:42px; height:42px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  background:var(--verde); color:var(--navy); }
.vv-porta-ico svg{ width:22px; height:22px; }
.vv-porta-txt{ flex:1; display:block; }
.vv-porta-txt b{ display:block; font-family:'Poppins','Inter',sans-serif; font-size:24px; color:var(--cream); line-height:1.15; }
.vv-porta-txt em{ display:block; font-style:normal; font-size:12.5px; color:rgba(242,241,250,.62); margin-top:2px; }
.vv-porta-seta{ color:var(--verde); font-size:20px; }
.vv-porta-2 .vv-porta-ico{ background:transparent; border:1px solid var(--verde); color:var(--verde); }

/* ==========================================================================
   CATÁLOGO POR CATEGORIAS
   ========================================================================== */
.vv-catalogo{ margin-bottom:22px; }
.vv-cat-linha{ display:flex; align-items:flex-start; gap:14px; padding:10px 0; flex-wrap:wrap; }
.vv-cat-lab{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#0F8A74; font-weight:700; padding-top:8px; min-width:140px; }
.vv-cat-chips{ display:flex; flex-wrap:wrap; gap:8px; flex:1; }
.vv-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; }
.vv-chip b{ color:var(--muted); font-weight:600; font-size:11.5px; }
.vv-chip:hover{ border-color:var(--verde); }
.vv-chip.ativo{ background:var(--navy); color:var(--cream); border-color:var(--navy); }
.vv-chip.ativo b{ color:var(--verde); }

/* ==========================================================================
   PAINEL DENTRO DO SITE
   ========================================================================== */
.vv-area-acoes{ display:flex; gap:8px; }
.vv-painel-topo{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.vv-painel-h3{ font-family:'Poppins','Inter',sans-serif; font-size:24px; color:var(--navy); margin:26px 0 12px; }
.vv-painel-atalhos{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:20px 0 8px; }
.vv-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; }
.vv-painel-atalhos a:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(20,37,61,.22); }
.vv-painel-atalhos strong{ display:block; font-family:'Poppins','Inter',sans-serif; font-size:21px; color:var(--cream); line-height:1.2; }
.vv-painel-atalhos span{ display:block; font-size:12.5px; color:rgba(242,241,250,.6); margin-top:5px; }

.vv-cat-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
.vv-cat-box{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px; }
.vv-cat-box h3{ font-size:22px; margin-bottom:6px; }
.vv-cat-box .vv-form{ border:0; padding:0; max-width:none; }
.vv-cat-lista{ margin:14px 0; }
.vv-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; }
.vv-cat-lista li:last-child{ border-bottom:0; }
.vv-cat-form{ display:flex; gap:8px; }
.vv-cat-form input{ flex:1; padding:10px 12px; border:1px solid var(--line); border-radius:10px; font-family:inherit; }
.vv-link-del{ color:#8A3B3B; font-size:12.5px; }
.vv-link-del:hover{ text-decoration:underline; }

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

@media (max-width:960px){
  .vv-portas{ grid-template-columns:1fr; }
  .vv-painel-atalhos{ grid-template-columns:1fr 1fr; }
  .vv-cat-grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .vv-painel-atalhos{ grid-template-columns:1fr; }
  .vv-cat-lab{ min-width:100%; padding-top:0; }
  .vv-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.vv-fullwidth{ overflow-x:hidden; }
body.vv-fullwidth .entry-content,
body.vv-fullwidth .wp-block-post-content,
body.vv-fullwidth .page-content,
body.vv-fullwidth .site-content,
body.vv-fullwidth .content-area,
body.vv-fullwidth .site-main,
body.vv-fullwidth main.site-main,
body.vv-fullwidth main#main,
body.vv-fullwidth article.page,
body.vv-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.vv-fullwidth .is-layout-constrained > .vv-site,
body.vv-fullwidth .entry-content > .vv-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 .vv-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.vv-fullwidth .vv-topo,
body.vv-fullwidth .vv-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)
   ======================================================================== */
.vv-topo{
	--navy: var(--vv-navy, #2A2150);
	--verde: var(--vv-verde, #1FC7A8);
	--paper:#F7F7FC;
	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.vv-topo-fixo .vv-topo{
	position:sticky;
	top:0;
	z-index:800;
	box-shadow:0 1px 0 rgba(20,37,61,.06);
}
body.admin-bar.vv-topo-fixo .vv-topo{ top:32px; }
@media (max-width:782px){
	body.admin-bar.vv-topo-fixo .vv-topo{ top:46px; }
}

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

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

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

@media (max-width:820px){
	.vv-topo-in{ flex-wrap:wrap; padding:9px 14px; gap:10px; }
	.vv-topo-marca b{ font-size:17px; }
	.vv-topo-wa span{ display:none; }
	.vv-topo-wa{ padding:9px 12px; }
	.vv-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;
	}
	.vv-topo-menu a{ padding:4px 10px; font-size:13.5px; }
	.vv-topo-menu a:first-child{ padding-left:0; }
}

.vv-rodape-marca{
	--navy: var(--vv-navy, #2A2150);
	--verde: var(--vv-verde, #1FC7A8);
	background:var(--navy);
	color:rgba(242,241,250,.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(242,241,250,.13);
}
.vv-rodape-marca .vv-topo-in{ padding:26px 18px; flex-wrap:wrap; gap:14px; }
.vv-rodape-marca b{ display:block; font-family:'Poppins','Inter',sans-serif; font-size:20px; color:#F2F1FA; }
.vv-rodape-marca span{ font-size:12.5px; letter-spacing:.05em; }
.vv-rodape-links{ display:flex; flex-wrap:wrap; gap:18px; margin-left:auto; }
.vv-rodape-links a{ color:rgba(242,241,250,.8); font-size:13.5px; text-decoration:none; }
.vv-rodape-links a:hover{ color:var(--verde,#1FC7A8); }
@media (max-width:640px){
	.vv-rodape-links{ margin-left:0; width:100%; gap:14px; }
}

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

/* v2.2 — formulário: aceite LGPD, erro e armadilha anti-robô */
.vv-armadilha{ position:absolute!important; left:-9999px!important; width:1px; height:1px; overflow:hidden; }
.vv-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;
}
.vv-form label.vv-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;
}
.vv-form label.vv-aceite input{ margin-top:2px; width:17px; height:17px; flex:0 0 auto; }
.vv-form label.vv-aceite a{ color:var(--navy,#2A2150); text-decoration:underline; }

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

/* ===========================================================================
   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.vv-app-site{
	margin:0;
	padding:0;
	background:#fff;
	overflow-x:hidden;
}
body.vv-app-site .vv-conteudo-proprio{
	display:block;
	width:100%;
	max-width:none;
	margin:0;
	padding:0;
}
body.vv-app-site .vv-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.vv-app-site .vv-topo,
body.vv-app-site .vv-rodape-marca{
	width:100%;
	max-width:none;
	margin:0;
}

/* ==========================================================================
   VicaVox — acréscimos
   ========================================================================== */

/* Vídeo embutido (YouTube/Vimeo) */
.vv-video{ position:relative; width:100%; aspect-ratio:16/9; border-radius:14px; overflow:hidden; background:#000; margin:8px 0 4px; }
.vv-video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* Convite de login (shortcode de reserva) */
.vv-login-conv{ max-width:420px; margin:60px auto; text-align:center; background:#fff; border:1px solid var(--line); border-radius:16px; padding:40px 32px; }
.vv-login-conv img{ margin:0 auto 14px; }
.vv-login-conv h2{ margin-bottom:6px; }
.vv-login-conv p{ color:var(--muted); }

/* Preço riscado no card */
.vv-card-rodape strong s{ margin-right:6px; }
