/* Container do bloco de introdução */
.form-hero{ padding-block: clamp(24px, 5vw, 64px); }
.form-hero .lead{ max-width: 70ch; color: #444; }

/* Seção do formulário */
.form-section{ padding-block: clamp(16px, 4.5vw, 56px); }

/* Estilo do contêiner do formulário (.vr-form legado e .form atual) */
.vr-form,
.form{
  background:#fff;
  border:1px solid #eee;
  border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.06);
  padding:clamp(16px, 3vw, 28px);
}

/* Grid de campos */
.form-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(12px, 2.2vw, 18px);
}
.form-group--full{ grid-column:1 / -1; }

@media (min-width: 860px){
  .form-grid{ grid-template-columns: repeat(2, 1fr); }
  .form-group--full{ grid-column:1 / 3; }
}

/* Campos base */
label{ display:block; font-weight:600; margin:0 0 .35rem; }
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"],
select, textarea{
  width:100%;
  border:1px solid #e1e1e1;
  border-radius:10px;
  padding:.8rem 1rem;
  font:inherit;
  line-height:1.4;
  background:#fff;
  transition:border-color .2s ease, box-shadow .2s ease;
}
input::placeholder, textarea::placeholder{ color:#9a9a9a; }

/* Foco acessível */
input:focus, select:focus, textarea:focus{
  outline:none;
  border-color:#159d6e;
  box-shadow:0 0 0 3px rgba(21,157,110,.15);
}

/* Ajuda, ações e estados */
.help{ display:block; color:#666; margin-top:.25rem; font-size:.92rem; }
.form-actions{ display:flex; gap:.8rem; justify-content:flex-end; margin-top:1rem; }
@media (max-width:560px){
  .form-actions{ flex-direction:column; }
  .form-actions .btn{ width:100%; justify-content:center; }
}

.error{ color:#b00020; font-size:.9rem; margin-top:.3rem; display:block; }
[aria-invalid="true"]{
  border-color:#b00020 !important;
  box-shadow:0 0 0 3px rgba(176,0,32,.12) !important;
}
[aria-busy="true"]{ opacity:.7; pointer-events:none; }

/* Acessibilidade extra */
.sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* =========================================================
   LINHAS ESPECIAIS
   ========================================================= */

/* (legado) 3 colunas: Modalidade + Cidade/UF + Bairro */
.form-row{
  display:grid;
  gap:clamp(12px, 2vw, 16px);
  align-items:end;
}
.form-row--3{
  grid-template-columns:
    minmax(180px, 220px)
    minmax(180px, 260px)
    minmax(160px, 240px);
}
.form-row--3 .form-group select,
.form-row--3 .form-group input[type="text"],
.form-row--3 .form-group input[type="tel"],
.form-row--3 .form-group input[type="email"]{
  width:100%; max-width:100%;
}

/* NOVO layout “split”: [Modalidade] | [Cidade/UF + Bairro]
   -> força ocupar as 2 colunas do grid principal */
.form-row--split{
  grid-column: 1 / -1;
  grid-template-columns: minmax(190px, 240px) 1fr; /* esquerda enxuta, direita fluida */
}
.form-row--split .col-left .form-group select{
  width:100%; max-width:100%;
}

/* grid interno (à direita) com 2 colunas para Cidade e Bairro */
.form-grid-inline{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:clamp(12px, 2vw, 16px);
}
.form-grid-inline .form-group input[type="text"]{
  width:100%; max-width:100%;
}

/* Responsivo: empilha tudo em telas menores */
@media (max-width: 860px){
  .form-row--3{ grid-template-columns:1fr; }
  .form-row--split{ grid-template-columns:1fr; }
  .form-grid-inline{ grid-template-columns:1fr; }
}

/* =========================================================
   Checkbox inline (LGPD)
   ========================================================= */
.checkbox-inline{
  display:flex; align-items:center; gap:.6rem;
}
.checkbox-inline input[type="checkbox"]{
  width:18px; height:18px; accent-color:#159d6e;
}
.checkbox-inline label{
  margin:0; font-weight:500; display:inline;
}
