/* =========================
   GBF – Formulário de Contato (desktop)
   ========================= */

.gbf-contact-form{
  --brand:#009049;
  --whats:#25D366;
  background:#fff;
  border:1px solid #eee;
  border-radius:16px;
  padding:16px;
  box-shadow:0 8px 24px rgba(0,0,0,.06);
  font-family:Roboto,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  font-size:16px;
  line-height:1.4;
  color:#2A2A2A;
}
.gbf-contact-form *{
  box-sizing:border-box;
}

/* Título */
.gbf-contact-form h3{
  margin:0 0 .75rem;
  font-size:22px;
  font-weight:500;
}

/* Blocos / ajuda */
.gbf-contact-form .gbf-field{
  margin-bottom:.9rem;
}
.gbf-contact-form .gbf-help{
  display:block;
  margin-top:.35rem;
  color:#666;
  font-size:.9rem;
}
.gbf-contact-form .gbf-honeypot{
  display:none !important;
}

/* “Raiozinho” flat na nota */
.gbf-contact-form .gbf-help.gbf-note{
  position:relative;
  padding-left:1.3rem;
}
.gbf-contact-form .gbf-help.gbf-note::before{
  content:"";
  position:absolute;
  left:0;
  top:.1rem;
  width:1rem;
  height:1rem;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23F59E0B"><path d="M13 2 3 14h7l-1 8 10-12h-7l1-8z"/></svg>') no-repeat center/100% 100%;
  opacity:.9;
}

/* Rótulos */
.gbf-contact-form .gbf-field > label{
  display:block;
  margin:0 0 .6rem;
  color:#2A2A2A;
}

/* Campos base */
.gbf-contact-form input[type="text"],
.gbf-contact-form input[type="email"],
.gbf-contact-form input[type="tel"],
.gbf-contact-form input[type="datetime-local"],
.gbf-contact-form textarea,
.gbf-contact-form select{
  width:100%;
  min-width:0;
  max-width:100%;
  padding:.8rem 1rem;
  border:1px solid #e5e5e5;
  border-radius:12px;
  background:#fff;
  color:#2A2A2A;
  transition:border-color .15s ease;
  appearance:none;
}
.gbf-contact-form textarea{
  min-height:112px;
  resize:vertical;
}

.gbf-contact-form input:focus,
.gbf-contact-form textarea:focus,
.gbf-contact-form select:focus{
  outline:none;
  border-color:#2A2A2A;
  box-shadow:none;
}

.gbf-contact-form [disabled]{
  opacity:.65;
  cursor:not-allowed;
}

/* ===== Abas ===== */
.gbf-contact-form .gbf-tabs{
  display:flex;
  gap:.5rem;
  margin:0 0 1.25rem;
}
.gbf-contact-form .gbf-tab{
  flex:1 1 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  min-height:48px;
  padding:.55rem .9rem;
  border:1px solid #e1e1e1;
  border-radius:12px;
  background:#fff;
  color:#6C6B6B;
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
  transition:border-color .15s ease, color .15s ease, background-color .15s ease;
}
.gbf-contact-form .gbf-tab:hover{
  border-color:#d7d7d7;
  color:#2A2A2A;
}
.gbf-contact-form .gbf-tab.is-active{
  border-color:#2A2A2A;
  color:#2A2A2A;
}
.gbf-contact-form .gbf-tab:focus-visible{
  outline:none;
  box-shadow:none;
}
.gbf-contact-form .gbf-tab svg{
  width:18px;
  height:18px;
}

/* ===== Segmento (WhatsApp/E-mail) ===== */
.gbf-contact-form .gbf-seg{
  display:inline-flex;
  gap:.5rem;
  flex-wrap:wrap;
  margin-top:.15rem;
}
.gbf-contact-form .gbf-seg .seg{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.55rem .85rem;
  border:1px solid #e5e5e5;
  border-radius:10px;
  background:#fff;
  cursor:pointer;
  transition:all .15s ease;
}
.gbf-contact-form .gbf-seg .seg:hover{
  background:#fafafa;
}
.gbf-contact-form .gbf-seg .seg.is-active{
  border-color:var(--brand);
  background:var(--brand);
  color:#fff;
}
.gbf-contact-form .gbf-seg .seg input[type="radio"]{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

/* ===== Botão principal ===== */
.gbf-contact-form .gbf-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  width:100%;
  min-height:52px;
  padding:.9rem 1.1rem;
  border:0;
  border-radius:12px;
  background:var(--brand);
  color:#fff;
  font-weight:800;
  font-size:16px;
  line-height:1;
  cursor:pointer;
  transition:transform .05s ease, filter .15s ease;
}
.gbf-contact-form .gbf-btn:hover{
  filter:brightness(.97);
}
.gbf-contact-form .gbf-btn:active{
  transform:translateY(1px);
}
.gbf-contact-form .gbf-btn:focus-visible{
  outline:none;
  box-shadow:none;
}

/* ===== Rodapé ===== */
.gbf-actions{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
}

/* cadeado */
.gbf-privacy-note .icon{
  width:14px;
  height:14px;
  opacity:.55;
  flex:0 0 16px;
}
/* texto sobre os dados*/
.gbf-actions > small{
  order:1;
  flex:0 0 100%;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:.3rem;
  color:rgba(42,42,42,.55);
}

/* Botão WhatsApp – ícone only (join.chat) */
.gbf-btn-whats--icon{
  width:56px;
  height:56px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  margin-top:.5rem;
  border:0;
  border-radius:999px;
  background:var(--whats);
  color:#fff;
  text-decoration:none;
  line-height:1;
  cursor:pointer;
  transition:transform .05s ease, filter .15s ease;
}
.gbf-btn-whats--icon:hover{
  filter:brightness(.96);
}
.gbf-btn-whats--icon:active{
  transform:translateY(1px);
}
.gbf-btn-whats--icon svg{
  width:28px;
  height:28px;
  display:block;
}
.gbf-btn-whats--icon .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;
}

/* Alinhamento do botão WPP no rodapé */
.gbf-actions .gbf-btn-whats--icon{
  order:2;
  margin-left:auto;
}

/* Oculta ícone extra no mobile */
@media (max-width: 768px){
  .gbf-actions .gbf-btn-whats--icon{
    display:none !important;
  }
}

/* Status */
.gbf-contact-form .gbf-contact-status{
  margin-top:.6rem;
  font-size:.95rem;
  color:#2A2A2A;
}

/* ===== Ícones nos inputs ===== */
.gbf-contact-form input[type="tel"]{
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%236C6B6B" d="M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l1.98-1.98a1 1 0 0 1 1.01-.24c1.11.37 2.31.56 3.55.56a1 1 0 0 1 1 1V21a1 1 0 0 1-1 1C10.85 22 2 13.15 2 2a1 1 0 0 1 1-1h3.28a1 1 0 0 1 1 1c0 1.24.19 2.44.56 3.55a1 1 0 0 1-.24 1.01L6.62 10.79z"/></svg>');
  background-repeat:no-repeat;
  background-position:14px 50%;
  background-size:18px 18px;
  padding-left:2.65rem;
}
.gbf-contact-form input[type="tel"]:focus{
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%232A2A2A" d="M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l1.98-1.98a1 1 0 0 1 1.01-.24c1.11.37 2.31.56 3.55.56a1 1 0 0 1 1 1V21a1 1 0 0 1-1 1C10.85 22 2 13.15 2 2a1 1 0 0 1 1-1h3.28a1 1 0 0 1 1 1c0 1.24.19 2.44.56 3.55a1 1 0 0 1-.24 1.01L6.62 10.79z"/></svg>');
}
.gbf-contact-form input[type="email"]{
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%236C6B6B" d="M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Zm0 4-8 5L4 8V6l8 5 8-5v2Z"/></svg>');
  background-repeat:no-repeat;
  background-position:14px 50%;
  background-size:18px 18px;
  padding-left:2.85rem;
}
.gbf-contact-form input[type="email"]:focus{
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%232A2A2A" d="M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Zm0 4-8 5L4 8V6l8 5 8-5v2Z"/></svg>');
}

/* ===== Mini-calendário (Agendar visita) ===== */

/* Esconde input nativo, mantendo acessível */
#gbf-pane-visita > input[type="datetime-local"]{
  position:absolute !important;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  border:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}

/* Bloco cinza */
.gbf-contact-form .gbf-visit-ui{
  background:#F3F4F6;
  padding:12px;
  border-radius:12px;
}

/* Cabeçalho: label + navegação */
.gbf-contact-form .gbf-visit-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:.5rem;
}

/* Navegação */
.gbf-contact-form .gbf-date-navwrap{
  display:flex;
  gap:.5rem;
  margin:0;
}
.gbf-contact-form .gbf-date-nav{
  width:40px;
  height:40px;
  border:1px solid #e6e6e6;
  border-radius:10px;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.05);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.gbf-contact-form .gbf-date-nav svg{
  width:18px;
  height:18px;
  color:#6C6B6B;
}

/* Estados desabilitado */
.gbf-contact-form .gbf-date-nav[disabled],
.gbf-contact-form .gbf-date-nav[aria-disabled="true"],
.gbf-contact-form .gbf-date-nav.is-disabled{
  opacity:.45;
  pointer-events:none;
  cursor:not-allowed;
}

/* Faixa de dias */
.gbf-contact-form .gbf-date-scroll{
  display:flex;
  gap:.5rem;
  overflow-x:auto;
  padding:.25rem .25rem .5rem;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  border:0;
  border-radius:12px;
  scrollbar-width:none;
}
.gbf-contact-form .gbf-date-scroll::-webkit-scrollbar{
  display:none;
  height:0;
}

/* Botões de dia */
.gbf-contact-form .gbf-date-btn{
  scroll-snap-align:start;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.15rem;
  min-width:66px;
  padding:.55rem .6rem;
  border:1px solid #e5e5e5;
  border-radius:10px;
  background:#fff;
  color:#2A2A2A;
  cursor:pointer;
  transition:border-color .15s ease, background-color .15s ease, color .15s ease;
}
.gbf-contact-form .gbf-date-btn .dow{
  font-size:.78rem;
  color:#666;
}
.gbf-contact-form .gbf-date-btn .day{
  font-size:1.25rem;
  font-weight:700;
  line-height:1;
}
.gbf-contact-form .gbf-date-btn .mon{
  font-size:.78rem;
  color:#666;
}
.gbf-contact-form .gbf-date-btn:hover{
  border-color:#dcdcdc;
}
.gbf-contact-form .gbf-date-btn:focus-visible{
  outline:none;
  border-color:var(--brand);
}
.gbf-contact-form .gbf-date-btn.is-selected{
  border-color:#2A2A2A;
  color:#2A2A2A;
  background:#fff;
}
.gbf-contact-form .gbf-date-btn.is-disabled{
  opacity:.45;
  pointer-events:none;
}

/* Horário centralizado + ícone relógio */
.gbf-contact-form .gbf-time-row{
  margin-top:.5rem;
  display:flex;
  justify-content:center;
}
.gbf-contact-form .gbf-visit-ui .gbf-time{
  width:auto !important;
  display:inline-block;
  min-width:0;
  max-width:100%;
  padding:.7rem 1rem .7rem 2.65rem;
  border:1px solid #e5e5e5;
  border-radius:12px;
  background:#fff;
  color:#2A2A2A;
  appearance:none;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%236C6B6B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg>');
  background-repeat:no-repeat;
  background-position:14px 50%;
  background-size:18px 18px;
}
.gbf-contact-form .gbf-visit-ui .gbf-time:focus{
  border-color:#2A2A2A;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%232A2A2A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg>');
}

/* ===== Erros ===== */
.gbf-contact-form .gbf-error{
  display:block;
  margin-top:.35rem;
  font-size:.92rem;
  color:#E61E26;
}
.gbf-contact-form .gbf-field.has-error input,
.gbf-contact-form .gbf-field.has-error textarea,
.gbf-contact-form .gbf-field.has-error select{
  border-color:#E61E26 !important;
}
.gbf-contact-form .gbf-field.has-error input:focus,
.gbf-contact-form .gbf-field.has-error textarea:focus,
.gbf-contact-form .gbf-field.has-error select:focus{
  border-color:#E61E26 !important;
}

/* Erro específico do calendário/horário */
.gbf-contact-form .gbf-field.has-error #gbf-pane-visita .gbf-date-scroll{
  border:1px solid #E61E26 !important;
  border-radius:12px;
}
.gbf-contact-form .gbf-field.has-error #gbf-pane-visita .gbf-time{
  border-color:#E61E26 !important;
}

/* ===== Time picker custom ===== */

.gbf-contact-form .gbf-time-select{
  position:relative;
  display:inline-block;
  flex:0 0 auto;
  width:auto;
  box-sizing:border-box;
}

.gbf-contact-form .gbf-time-trigger{
  all:unset;
  display:flex;
  align-items:center;
  gap:.5rem;
  height:40px;
  padding:0 .9rem 0 2.2rem;
  border:1px solid #e5e5e5;
  border-radius:9999px;
  background:#fff;
  color:#2A2A2A;
  cursor:pointer;
  line-height:1;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
  font:inherit;
}
.gbf-contact-form .gbf-time-trigger .ico{
  position:absolute;
  left:12px;
  top:50%;
  transform:translateY(-50%);
  width:16px;
  height:16px;
  opacity:.8;
  background:no-repeat center/100% 100%;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%236C6B6B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg>');
}
.gbf-contact-form .gbf-time-trigger .chev{
  margin-left:auto;
  width:14px;
  height:14px;
  opacity:.8;
  background:no-repeat center/100% 100%;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%236C6B6B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>');
}
.gbf-contact-form .gbf-time-trigger:focus-visible{
  outline:2px solid var(--brand,#009049);
  outline-offset:2px;
}

/* Esconde o <select> nativo */
.gbf-contact-form .gbf-time-select select.gbf-time{
  position:absolute;
  left:-9999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  clip-path:inset(50%);
  opacity:0;
  pointer-events:none;
  border:0;
  margin:0;
  padding:0;
}

/* Popover */
.gbf-contact-form .gbf-time-popover{
  position:absolute;
  z-index:9999;
  top:calc(100% + 8px);
  left:0;
  width:auto;
  min-width:100%;
  max-width:none;
  box-sizing:border-box;
  max-height:260px;
  overflow-y:auto;
  overflow-x:hidden;
  padding:8px 4px 8px 8px;
  border:1px solid #e9e9e9;
  border-radius:12px;
  background:#fff;
  box-shadow:0 12px 24px rgba(0,0,0,.12);
  display:block;
}
.gbf-contact-form .gbf-time-popover[hidden]{
  display:none !important;
}

/* Scrollbar discreta */
.gbf-contact-form .gbf-time-popover{
  scrollbar-width:thin;
  scrollbar-color:rgba(0,0,0,.22) transparent;
}
.gbf-contact-form .gbf-time-popover::-webkit-scrollbar{
  width:6px;
  height:0;
}
.gbf-contact-form .gbf-time-popover::-webkit-scrollbar-track{
  background:transparent;
  border-radius:999px;
}
.gbf-contact-form .gbf-time-popover::-webkit-scrollbar-thumb{
  background:rgba(0,0,0,.22);
  border-radius:999px;
}

/* Opção de horário */
.gbf-contact-form .gbf-time-popover .gbf-time-opt{
  all:unset;
  display:flex;
  align-items:center;
  gap:.6rem;
  width:100%;
  padding:.55rem .9rem;
  border-radius:8px;
  cursor:pointer;
  color:#2A2A2A;
  font:inherit;
  line-height:1.2;
}
.gbf-contact-form .gbf-time-popover .gbf-time-opt:hover{
  background:#f6f7f8;
}
.gbf-contact-form .gbf-time-popover .gbf-time-opt:focus-visible{
  outline:2px solid var(--brand,#009049);
  outline-offset:2px;
}

/* “Rádio” visual */
.gbf-contact-form .gbf-time-popover .gbf-time-opt .dot{
  position:relative;
  flex:0 0 20px;
  width:20px;
  height:20px;
  border-radius:999px;
  border:2px solid #d6d6d6;
  background:#fff;
}
.gbf-contact-form .gbf-time-popover .gbf-time-opt .dot::after{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:inherit;
  background:transparent;
}
.gbf-contact-form .gbf-time-popover .gbf-time-opt.is-selected .dot::after{
  background:var(--brand,#009049);
}

/* Label do horário */
.gbf-contact-form .gbf-time-popover .gbf-time-opt .lbl{
  display:inline-block;
  white-space:nowrap;
}

/* Estado selecionado */
.gbf-contact-form .gbf-time-popover .gbf-time-opt.is-selected{
  background:#f5f5f5;
  color:#2A2A2A;
}
.gbf-contact-form .gbf-time-popover .gbf-time-opt.is-selected .dot{
  border-color:var(--brand,#009049);
}
.gbf-contact-form .gbf-time-popover .gbf-time-opt.is-selected .dot::after{
  background:var(--brand,#009049);
}

/* =========================
   Barra de contato (Telefone / Mensagem / WhatsApp)
   ========================= */

/* Esconde por padrão no desktop */
.gbf-contact-bar{
  display:none;
}

/* ===== Mobile: barra fixa + modal do formulário ===== */
@media (max-width: 767px){

  /* Barra fixa no rodapé */
  .gbf-contact-bar{
    display:flex !important;
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:997; /* abaixo do overlay e do formulário */
    padding:10px 12px 10px;
    gap:.5rem;
    background:#fff;
    box-shadow:0 -4px 16px rgba(0,0,0,.18);
    font-family:Roboto,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;

    /* começa escondida para evitar "salto" ao carregar */
    opacity:0;
    transform:translateY(100%);
    pointer-events:none;
    transition:opacity .2s ease, transform .2s ease;
  }

  /* JS sinaliza que está pronto */
  body.gbf-contact-bar-ready .gbf-contact-bar{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
  }

  .gbf-contact-bar__btn{
    flex:1 1 0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.4rem;
    padding:.7rem .9rem;
    border-radius:999px;
    border:1px solid #e5e5e5;
    background:#fff;
    color:#2A2A2A;
    font-size:14px;
    font-weight:600;
    text-decoration:none;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }

  /* Botão Ligar: só ícone, borda escura */
  .gbf-contact-bar__btn--phone{
    border-color:#2A2A2A;
    flex:0 0 54px;
    padding:0;
    justify-content:center;
  }
  .gbf-contact-bar__btn--phone .gbf-contact-bar__label{
    display:none;
  }

  .gbf-contact-bar__btn--phone:active,
  .gbf-contact-bar__btn--phone:focus{
    background:#fff;
    border-color:#2A2A2A;
    color:#2A2A2A;
  }

  /* Mensagem: fundo escuro sempre */
  .gbf-contact-bar__btn--message{
    background:#2A2A2A;
    border-color:#2A2A2A;
    color:#fff;
  }
  .gbf-contact-bar__btn--message:active,
  .gbf-contact-bar__btn--message:focus{
    background:#2A2A2A;
    border-color:#2A2A2A;
    color:#fff;
  }

  /* WhatsApp: verde com texto branco */
  .gbf-contact-bar__btn--whats{
    background:#25D366;
    border-color:#25D366;
    color:#fff;
  }
  .gbf-contact-bar__btn--whats:active,
  .gbf-contact-bar__btn--whats:focus{
    background:#25D366;
    border-color:#25D366;
    color:#fff;
  }

  .gbf-contact-bar__btn--message,
  .gbf-contact-bar__btn--whats{
    flex:1 1 0;
  }

  .gbf-contact-bar__icon{
    display:inline-flex;
    align-items:center;
  }
  .gbf-contact-bar__icon svg{
    width:18px;
    height:18px;
    display:block;
  }
  /* telefone um pouquinho maior */
  .gbf-contact-bar__btn--phone .gbf-contact-bar__icon svg{
    width:20px;
    height:20px;
  }
  .gbf-contact-bar__btn--whats .gbf-contact-bar__icon svg{
    width:17px;
    height:17px;
  }

  .gbf-contact-bar__btn--phone   .gbf-contact-bar__icon svg path,
  .gbf-contact-bar__btn--message .gbf-contact-bar__icon svg path{
    fill:currentColor;
  }
  .gbf-contact-bar__btn--whats .gbf-contact-bar__icon svg path{
    fill:#fff;
  }

  /* Overlay escuro do modal */
  .gbf-contact-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.45);
    opacity:0;
    visibility:hidden;
    transition:opacity .25s ease;
    z-index:998;
  }
  .gbf-contact-overlay.is-open{
    opacity:1;
    visibility:visible;
  }

  /* Formulário em painel deslizante */
  .gbf-contact-form{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    margin:0;
    max-height:86vh;
    overflow-y:auto;
    padding:20px 20px 20px;
    border-radius:18px 18px 0 0;
    box-shadow:0 -4px 16px rgba(0,0,0,.18);
    transform:translateY(100%);
    opacity:0;
    visibility:visible;   /* fica fora da tela, mas já disponível */
    pointer-events:none;
    transition:none;
    z-index:999;
  }

  /* só anima quando o JS adiciona .gbf-anim */
  .gbf-contact-form.gbf-anim{
    transition:transform .25s ease, opacity .25s ease;
  }

  .gbf-contact-form.is-open{
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }

  /* trava scroll do fundo */
  html.gbf-no-scroll,
  body.gbf-no-scroll{
    overflow:hidden;
    touch-action:none;
  }
}

/* Telas muito estreitas (ex: 320px) */
@media (max-width: 376px){
  .gbf-contact-bar{
    padding:6px 8px 8px;
    gap:.35rem;
  }
  .gbf-contact-bar__btn{
    padding:.55rem .6rem;
    font-size:13px;
    gap:.3rem;
  }
}

/* Cabeçalho do formulário */
.gbf-contact-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin:0 0 .75rem;
}

/* zera margin do h3 dentro do head */
.gbf-contact-head h3{
  margin:0;
}

/* botão de fechar – escondido por padrão (desktop) */
.gbf-contact-close{
  all:unset;
  display:none;
  width:32px;
  height:32px;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  cursor:pointer;
  font-size:18px;
  line-height:1;
  color:#6C6B6B;
}

.gbf-contact-close:focus-visible{
  outline:2px solid #009049;
  outline-offset:2px;
}

/* Mobile: mostra o botão de fechar */
@media (max-width: 767px){
  .gbf-contact-close{
    display:inline-flex;
  }
}