/* Ver na Vitrine - Layout HivePress Elementor v1.5
   Correção importante: somente a LINHA PRINCIPAL das listagens vira grid.
   Linhas internas do card do HivePress não são alteradas. Isso evita cards
   estreitos e textos quebrados letra por letra no Elementor/celular. */

.vnv-hp-grid,
.vnv-hp-grid > .hp-listings,
.vnv-hp-grid > .hp-listings > .hp-listings__items,
.vnv-hp-grid .vnv-category-group,
.vnv-hp-grid .vnv-category-group > .hp-listings,
.vnv-hp-grid .vnv-category-group > .hp-listings > .hp-listings__items {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box;
}

/* Somente grids de listagem de primeiro nível. */
.vnv-hp-grid > .hp-row,
.vnv-hp-grid > .hp-listings > .hp-row,
.vnv-hp-grid > .hp-listings > .hp-listings__items > .hp-row,
.vnv-hp-grid .vnv-category-group > .hp-listings > .hp-row,
.vnv-hp-grid .vnv-category-group > .hp-listings > .hp-listings__items > .hp-row {
  display: grid !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  align-items: stretch;
  box-sizing: border-box;
}

/* Somente os itens diretamente dentro do grid principal. */
.vnv-hp-grid > .hp-row > .hp-grid__item,
.vnv-hp-grid > .hp-row > [class*="hp-col-"],
.vnv-hp-grid > .hp-listings > .hp-row > .hp-grid__item,
.vnv-hp-grid > .hp-listings > .hp-row > [class*="hp-col-"],
.vnv-hp-grid > .hp-listings > .hp-listings__items > .hp-row > .hp-grid__item,
.vnv-hp-grid > .hp-listings > .hp-listings__items > .hp-row > [class*="hp-col-"],
.vnv-hp-grid .vnv-category-group > .hp-listings > .hp-row > .hp-grid__item,
.vnv-hp-grid .vnv-category-group > .hp-listings > .hp-row > [class*="hp-col-"],
.vnv-hp-grid .vnv-category-group > .hp-listings > .hp-listings__items > .hp-row > .hp-grid__item,
.vnv-hp-grid .vnv-category-group > .hp-listings > .hp-listings__items > .hp-row > [class*="hp-col-"] {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.vnv-hp-grid.vnv-equal-height > .hp-row > .hp-grid__item,
.vnv-hp-grid.vnv-equal-height > .hp-row > [class*="hp-col-"],
.vnv-hp-grid.vnv-equal-height > .hp-listings > .hp-row > .hp-grid__item,
.vnv-hp-grid.vnv-equal-height > .hp-listings > .hp-row > [class*="hp-col-"],
.vnv-hp-grid.vnv-equal-height > .hp-listings > .hp-listings__items > .hp-row > .hp-grid__item,
.vnv-hp-grid.vnv-equal-height > .hp-listings > .hp-listings__items > .hp-row > [class*="hp-col-"],
.vnv-hp-grid.vnv-equal-height .vnv-category-group > .hp-listings > .hp-row > .hp-grid__item,
.vnv-hp-grid.vnv-equal-height .vnv-category-group > .hp-listings > .hp-row > [class*="hp-col-"],
.vnv-hp-grid.vnv-equal-height .vnv-category-group > .hp-listings > .hp-listings__items > .hp-row > .hp-grid__item,
.vnv-hp-grid.vnv-equal-height .vnv-category-group > .hp-listings > .hp-listings__items > .hp-row > [class*="hp-col-"] {
  display: flex;
}

.vnv-hp-grid.vnv-equal-height .hp-listing,
.vnv-hp-grid.vnv-equal-height .hp-listing--view-block {
  width: 100%;
  height: 100%;
  min-width: 0 !important;
  max-width: 100% !important;
  display: flex;
  flex-direction: column;
  box-sizing: border-box !important;
}

.vnv-hp-grid.vnv-equal-height .hp-listing__content { flex: 1 1 auto; }

.vnv-hp-grid .hp-listing__content,
.vnv-hp-grid .hp-listing__details--primary,
.vnv-hp-grid .hp-listing__details--secondary,
.vnv-hp-grid .hp-listing__footer {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.vnv-hp-grid .hp-listing__image,
.vnv-hp-grid .hp-listing__image a {
  width: 100%;
  min-width: 0;
  overflow: hidden;
  display: block;
}
.vnv-hp-grid .hp-listing__image img,
.vnv-hp-grid .hp-listing__image a img {
  display: block;
  width: 100%;
  max-width: 100%;
}

.vnv-hp-grid .hp-listing__title,
.vnv-hp-grid .hp-listing__title a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--vnv-title-lines, 2);
  overflow: hidden;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  white-space: normal !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.vnv-hp-grid .hp-listing__description,
.vnv-hp-grid .hp-listing__details--primary > *:not(.hp-listing__title) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--vnv-excerpt-lines, 2);
  overflow: hidden;
  overflow-wrap: break-word;
  word-break: normal;
}

.vnv-editor-note,
.vnv-empty-message {
  padding: 14px 16px;
  border: 1px dashed #aab6c5;
  border-radius: 8px;
  background: #f7f9fc;
  color: #334155;
  font-size: 14px;
}

.vnv-hp-grid .vnv-category-group { width: 100%; }
.vnv-hp-grid .vnv-category-title {
  margin: 24px 0 14px;
  font-size: 1.35rem;
  line-height: 1.25;
}
.vnv-hp-grid .vnv-category-title:first-child { margin-top: 0; }

@media (max-width: 767px) {
  .vnv-hp-grid.vnv-mobile-compact .hp-listing__content { padding: 9px !important; }
  .vnv-hp-grid.vnv-mobile-compact .hp-listing__title,
  .vnv-hp-grid.vnv-mobile-compact .hp-listing__title a { line-height: 1.2; }
  .vnv-hp-grid.vnv-hide-description-mobile .hp-listing__description { display: none !important; }
  .vnv-hp-grid.vnv-hide-footer-mobile .hp-listing__footer { display: none !important; }
}

/* ===== WhatsApp / telefone ===== */
.vnv-card-whatsapp {
  width: 100%;
  display: block;
  clear: both;
  margin-top: 8px;
}
.vnv-whatsapp-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 38px;
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--vnv-wa-bg, #25D366);
  color: var(--vnv-wa-color, #fff) !important;
  text-decoration: none !important;
  font-weight: 700;
  line-height: 1.2;
  box-sizing: border-box;
}
.vnv-whatsapp-button::before {
  content: "☎";
  margin-right: 6px;
  font-size: .95em;
}
.vnv-whatsapp-button:hover,
.vnv-whatsapp-button:focus {
  filter: brightness(.94);
  color: var(--vnv-wa-color, #fff) !important;
}

.vnv-hp-grid .hp-listing__attribute--phone,
.vnv-hp-grid .hp-listing__attribute--telefone,
.vnv-hp-grid [class*="hp-listing__attribute--phone"],
.vnv-hp-grid [class*="hp-listing__attribute--telefone"] {
  display: block !important;
  width: 100% !important;
  max-width: 100%;
  clear: both;
  white-space: normal;
  overflow-wrap: anywhere;
  box-sizing: border-box;
}

@media (max-width: 767px) {
  .vnv-hp-grid .hp-listing__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
  }
  .vnv-hp-grid .hp-listing__attribute--phone,
  .vnv-hp-grid .hp-listing__attribute--telefone,
  .vnv-hp-grid [class*="hp-listing__attribute--phone"],
  .vnv-hp-grid [class*="hp-listing__attribute--telefone"] {
    flex: 0 0 100%;
    font-size: 12px;
    line-height: 1.25;
    margin: 0 0 3px !important;
  }
  .vnv-hp-grid .vnv-card-whatsapp { flex: 0 0 100%; margin-top: 4px; }
  .vnv-hp-grid .vnv-whatsapp-button { min-height: 34px; padding: 7px 6px; font-size: 12px; }
}

/* Plano gratuito / WhatsApp indisponível */
.vnv-whatsapp-button--disabled {
  background: #d7dce2 !important;
  color: #7a838d !important;
  cursor: not-allowed !important;
  opacity: .78;
  pointer-events: none !important;
  filter: none !important;
  user-select: none;
}
.vnv-whatsapp-button--disabled::before {
  opacity: .75;
}

/* v1.5.2 - botão WhatsApp como bloco independente do rodapé do HivePress. */
.hp-listing--view-block > .vnv-card-whatsapp,
.vnv-hp-grid .hp-listing--view-block > .vnv-card-whatsapp {
  padding: 8px 10px 10px;
  margin-top: 0;
  box-sizing: border-box;
}
.vnv-equal-height .hp-listing--view-block > .vnv-card-whatsapp {
  margin-top: auto;
}
