.service-fields:empty { display: none; }
.service-fields { display: grid; gap: 1rem; }
.service-fields fieldset { border: 1px solid #d5d2c9; padding: 1rem; margin: 0; min-width: 0; }
.service-fields legend { font-weight: 700; padding: 0 .35rem; }
.dynamic-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem 1rem; margin-top: .35rem; }
.choice-grid label { display: inline-flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: .55rem; width: fit-content; max-width: 100%; font-weight: 500; }
.choice-grid label span { line-height: 1.3; }
.choice-grid input { width: auto; margin: 0; }
.form-status { min-height: 1.5em; margin: .75rem 0 0; font-weight: 700; }
.form-status.success { color: #176437; }
.form-status.error { color: #a3261c; }
.quote-form button:disabled { cursor: wait; opacity: .65; }
.form-privacy a { color: #0a2d55; text-decoration: underline; text-decoration-color: #0c8993; text-underline-offset: 4px; }
@media (max-width: 620px) {
  .choice-grid, .dynamic-grid { grid-template-columns: 1fr; }
  .service-fields fieldset { padding: .85rem; }
}

/* Keep checkbox/radio controls beside their labels */
.choice-grid label {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: .55rem;
  width: fit-content;
  max-width: 100%;
}

.choice-grid input[type="checkbox"],
.choice-grid input[type="radio"] {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px;
  flex: 0 0 18px;
  margin: 0;
  padding: 0;
}
