/* Letter of Authorization section (commercial-lead form). Loaded after styles.css. */
.loa-section {
  border-top: 1px solid var(--rule);
  padding-top: 18px;
  margin-top: 6px;
  min-width: 0;
}
.loa-section > h3 {
  font-family: var(--display);
  font-weight: 800;
  font-size: 22px;
  letter-spacing: .02em;
  text-transform: uppercase;
  margin: 0 0 6px;
}
.loa-lede { margin: 0 0 12px; color: var(--text); font-size: 15.5px; line-height: 1.5 }
.loa-lede a { color: var(--accent); border-bottom: 1px solid rgba(255, 176, 32, .4) }
.loa-grid { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 16px }
@media (min-width: 640px) {
  .loa-grid { grid-template-columns: 1fr 1fr }
  .loa-grid .full { grid-column: 1 / -1 }
}
.loa-grid [hidden] { display: none !important }
.label-note { text-transform: none; letter-spacing: 0; font-family: var(--body); color: var(--muted) }
/* Authorize box (consent + typed signature), right above the button */
.loa-sign {
  border: 1px solid var(--accent);
  border-radius: 12px;
  padding: 16px;
  background: rgba(255, 176, 32, .05);
  display: grid;
  gap: 14px;
  min-width: 0;
}
.loa-sign[hidden] { display: none }
.loa-sign-title {
  font-family: var(--display);
  font-weight: 800;
  font-size: 20px;
  text-transform: uppercase;
  letter-spacing: .02em;
  margin: 0;
}
.sig-preview-wrap {
  background: #F6F2EA;
  border-radius: 8px;
  padding: 10px 14px 6px;
  min-height: 74px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.sig-preview {
  font-family: "Dancing Script", "Brush Script MT", cursive;
  font-weight: 600;
  font-size: clamp(28px, 7vw, 38px);
  line-height: 1.15;
  color: #0F2673;
  border-bottom: 1px solid #1B1815;
  padding: 0 4px 2px;
  overflow-wrap: anywhere;
}
.sig-preview.is-empty { color: #B3AA9C }
.sig-caption { font-family: var(--mono); font-size: 11px; color: #6F685E; margin-top: 4px; letter-spacing: .05em }
.sig-hint { margin: 6px 0 0; font-size: 13px; color: #FF8A6A; min-height: 1em }
.sig-hint.ok { color: #9BD27A }

/* "?" help button + popover (ESI ID) */
.label-row { display: flex; align-items: center; gap: 8px; margin-bottom: 6px }
.label-row label { margin-bottom: 0 }
.help-btn {
  width: 22px; height: 22px; flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid var(--muted);
  background: transparent;
  color: var(--text);
  font: 600 12px/1 var(--mono);
  cursor: pointer;
  padding: 0;
  position: relative;
}
.help-btn::after { content: ""; position: absolute; inset: -11px } /* 44px tap target */
.help-btn:hover, .help-btn[aria-expanded="true"] { border-color: var(--accent); color: var(--accent) }
.help-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px }
.help-pop {
  margin: 0 0 8px;
  padding: 10px 12px;
  background: var(--ground);
  border: 1px solid var(--accent);
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.45;
  color: var(--text);
}
.help-pop[hidden] { display: none }
.check-label a { color: var(--accent); border-bottom: 1px solid rgba(255, 176, 32, .4) }
.loa-section .loa-sign { margin-top: 18px }

/* Checkbox group (commercial / billing same / SMS), grouped after Notes */
.check-group {
  display: grid;
  gap: 14px;
  border-top: 1px solid var(--rule);
  padding-top: 16px;
  margin-top: 4px;
  min-width: 0;
}
.check-group .check-row { margin-top: 0 }
/* Billing fields revealed inline under "Billing address is the same" when unchecked */
.billing-fields { display: grid; grid-template-columns: 1fr; gap: 14px; padding-left: 28px }
@media (min-width: 640px) { .billing-fields { grid-template-columns: 1fr 1fr } .billing-fields .full { grid-column: 1 / -1 } }
.billing-fields[hidden] { display: none !important }
/* SMS opt-in: appealing lead line + required small print */
.check-label-sms .sms-lead { color: var(--text); font-size: 15px }
.check-label-sms .sms-fine { display: block; margin-top: 4px; font-size: 12.5px; line-height: 1.45; color: var(--muted) }

/* Google Places suggestions (address-autocomplete.js), matched to the dark form */
.pac-container {
  background: var(--surface, #1F1B17);
  border: 1px solid var(--accent, #FFB020);
  border-radius: 8px;
  margin-top: 4px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .45);
  font-family: var(--body, system-ui, sans-serif);
  z-index: 10000;
}
.pac-container::after { background-color: #F6F2EA; border-radius: 0 0 7px 7px } /* keep "powered by Google" visible (required) */
.pac-item { border-top: 1px solid var(--rule, #3A332C); color: var(--muted, #B3AA9C); padding: 8px 10px; font-size: 14px; line-height: 1.4; cursor: pointer }
.pac-item:first-child { border-top: 0 }
.pac-item:hover, .pac-item-selected { background: rgba(255, 176, 32, .12) }
.pac-item-query { color: var(--text, #F6F2EA); font-size: 15px }
.pac-matched { color: var(--accent, #FFB020) }
.pac-icon { display: none }

/* "Best time to call you?" (call-times.js): multi-select checkboxes in the choice-card style */
.call-times-note { clear: both; margin: 0 0 10px }
.choice input[type=checkbox] { width: 18px; height: 18px; margin: 0; flex-shrink: 0; accent-color: var(--accent); cursor: pointer }
.call-times .choice span small { display: block; font-size: 13px; color: var(--muted); margin-top: 2px; font-family: var(--body) }

.sms-consent-links { margin: 4px 0 0 30px; font-size: 12.5px; color: var(--muted) }
.sms-consent-links a { color: var(--text); border-bottom: 1px solid var(--rule) }
.check-label-sms .sms-consent-text { color: var(--text); font-size: 15px; line-height: 1.45 }
