/* ===============================
   BVGN — Base (estrutura geral e layout)
   =============================== */

/* Container */
.bvgn-container {
  max-width: 1240px;
  margin: 0 auto;
  padding: clamp(12px, 2.5vw, 28px);
}
.bvgn-container * {
  box-sizing: border-box;
}

/* Grid principal (imagem + info) */
.bvgn-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(380px, 540px);
  gap: clamp(18px, 2.6vw, 36px);
  align-items: start;
}

/* Permite que elementos dentro de .bvgn-info usem grid direto */
.bvgn-info {
  display: contents;
  min-width: 0;
}

/* IMAGEM */
.bvgn-media {
  grid-column: 1;
  background: #fff;
  border: 1px solid #eef2f7;
  border-radius: 18px;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.05);
  padding: clamp(10px, 1.4vw, 18px);
}
.bvgn-imagem {
  display: block;
  max-width: 100%;
  width: 100%;
  height: auto;
  max-height: 560px;
  object-fit: contain;
  border-radius: 14px;
  box-shadow: 0 4px 12px rgba(0,0,0,.06);
  margin-bottom: 16px;
}

/* TÍTULO E DESCRIÇÃO */
.bvgn-titulo {
  grid-column: 2;
  margin: 2px 0 6px;
  font-size: clamp(22px, 2.3vw, 28px);
  font-weight: 800;
  letter-spacing: .2px;
  color: #1f2937;
}
.bvgn-descricao {
  grid-column: 2;
  font-size: 1rem;
  color: #4b5563;
  margin-bottom: 16px;
  line-height: 1.5;
}
.bvgn-descricao p {
  margin: 0 0 12px;
}
.bvgn-descricao ul,
.bvgn-descricao ol {
  margin: 8px 0 12px 18px;
  padding: 0;
}
.bvgn-descricao li {
  margin: 4px 0;
}

/* Faixa inferior (coluna full) */
.bvgn-col-full {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  justify-items: center;
}
.bvgn-col-full > * {
  width: 100%;
  max-width: 560px;
  margin: 0;
}

@media (min-width: 1280px) {
  .bvgn-col-full > * {
    max-width: 640px;
  }
}

/* Observações (ex: textarea) */

.bvgn-informacoes {
  display: none;
  /* grid-column: 1 / -1;
  max-width: 560px;
  width: 100%;
  margin: 24px auto 0; */
}

.bvgn-informacoes textarea {
  width: 100%;
  min-height: 100px;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 14px 16px;
  font-size: 15px;
  color: #1f2937;
  background: #fff;
  resize: vertical;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.bvgn-informacoes textarea:focus {
  outline: 0;
  border-color: #0d6efd;
  box-shadow: 0 0 0 4px rgba(13,110,253,.12);
  background: #fff;
}

/* Espaço entre blocos */
.bvgn-container > * + * {
  margin-top: 20px;
}

/* Mobile */
@media (max-width: 640px) {
  .bvgn-informacoes textarea {
    font-size: 14px;
    padding: 12px 14px;
  }
}

/* ================================
   BVGN — Responsivo
   ================================ */

@media (max-width: 1024px) {
  .bvgn-container .bvgn-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .bvgn-container .bvgn-variacao {
    flex-basis: 100%;
    min-width: 0;
  }

  .bvgn-container :is(
    .bvgn-taxas,
    .bvgn-agendamento,
    .bvgn-totais,
    .bvgn-informacoes,
    .bvgn-botao-cotacao
  ) {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}

/* === BVGN — Cards padrão e títulos === */
:root{
  --bv-card-bg:#fff;
  --bv-card-bd:#e9edf3;
  --bv-card-radius:14px;
  --bv-card-shadow:0 6px 18px rgba(0,0,0,.06);
  --bv-title: #1f2937;
  --bv-muted: #6b7280;
}

/* cards principais */
.bvgn-taxas,
.bvgn-agendamento,
.bvgn-totais{
  background: var(--bv-card-bg);
  border:1px solid var(--bv-card-bd);
  border-radius: var(--bv-card-radius);
  box-shadow: var(--bv-card-shadow);
  padding:20px;
}

/* títulos dos blocos (ex: PROTEÇÃO / SERVIÇOS OPCIONAIS) */
.bvgn-totais-titulo{
  font: 800 0.95rem/1.2 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  letter-spacing:.3px;
  color: var(--bv-title);
  text-transform:uppercase;
  margin:0 0 10px;
}

/* textos “metadados” (ex: Plano selecionado / Retirada / Período) */
.bvgn-totais .bvgn-var,
.bvgn-totais .bvgn-local,
.bvgn-totais .bvgn-dias{
  color: var(--bv-muted);
  font-size:.95rem;
  margin: 3px 0;
}

/* remove o espaço superior nas páginas de produto */
.single-product.woocommerce .page_content_wrap {
  padding-top: 10px !important; /* ajuste conforme desejar */
}


/* ajuste do layout mobile para pegar 100% */
@media (max-width: 640px) {
  .page_content_wrap .content_wrap,
  .page_content_wrap .content_wrap_fullscreen,
  .content_wrap,
  .content_container {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  /* remove o espaço superior nas páginas de produto */
  .single-product.woocommerce .page_content_wrap {
    padding-top: 10px !important;
}

@media (max-width: 640px) {
  body.single-product .elementor-section.elementor-section-boxed > .elementor-container {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }
  .elementor-element-403b1ae{
    overflow-x: hidden !important; /* corta qualquer vazamento */
    display:none;
}
}

/* fim  ajuste do layout mobile para pegar 100% */
