/* ============================================================
   Heritage Property Services — website quote form
   Replaces the JotForm embed. Brand: red #E02127, blue #4054B2,
   Roboto body / Ubuntu buttons, to match the Elementor kit.
   ============================================================ */
.hps-quote{--hps-red:#E02127;--hps-red-d:#c0161c;--hps-blue:#4054B2;--hps-ink:#1d1d1f;
  --hps-muted:#6b6b70;--hps-line:#ddd6c8;--hps-bg:#fff;
  font-family:"Roboto",Arial,Helvetica,sans-serif;color:var(--hps-ink);
  background:var(--hps-bg);border:1px solid var(--hps-line);border-radius:10px;
  padding:26px 26px 22px;box-shadow:0 1px 2px rgba(0,0,0,.03),0 10px 26px rgba(0,0,0,.05);
  max-width:100%;box-sizing:border-box}
.hps-quote *{box-sizing:border-box}
.hps-form{display:flex;flex-direction:column;gap:15px;margin:0}
.hps-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.hps-field{display:flex;flex-direction:column;min-width:0}
.hps-field label{font-size:13px;font-weight:700;margin:0 0 6px;color:#3a3a3f;letter-spacing:.01em}
.hps-field .req{color:var(--hps-red)}
.hps-quote input,.hps-quote select,.hps-quote textarea{
  width:100%;font-family:inherit;font-size:15px;color:var(--hps-ink);background:#fff;
  border:1.5px solid var(--hps-line);border-radius:7px;padding:12px 13px;transition:border-color .15s,box-shadow .15s}
.hps-quote textarea{resize:vertical;min-height:104px}
.hps-quote select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b6b70' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.hps-quote input:focus,.hps-quote select:focus,.hps-quote textarea:focus{
  outline:none;border-color:var(--hps-blue);box-shadow:0 0 0 3px rgba(64,84,178,.14)}
.hps-quote input.hps-bad,.hps-quote textarea.hps-bad{border-color:var(--hps-red);box-shadow:0 0 0 3px rgba(224,33,39,.12)}
.hps-submit{font-family:"Ubuntu",Arial,sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.04em;
  font-size:15px;color:#fff;background:var(--hps-red);border:0;border-radius:100px;padding:15px 30px;
  cursor:pointer;align-self:flex-start;transition:background .16s,transform .16s,box-shadow .16s;
  box-shadow:0 6px 16px rgba(224,33,39,.24);display:inline-flex;align-items:center;gap:10px}
.hps-submit:hover:not(:disabled){background:var(--hps-red-d);transform:translateY(-1px)}
.hps-submit:focus-visible{outline:3px solid var(--hps-blue);outline-offset:2px}
.hps-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.hps-spin{width:16px;height:16px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;
  border-radius:50%;animation:hps-sp .7s linear infinite;display:none}
.hps-submit.is-busy .hps-spin{display:inline-block}
@keyframes hps-sp{to{transform:rotate(360deg)}}
.hps-note{font-size:12.5px;color:var(--hps-muted);margin:2px 0 0;line-height:1.5}
.hps-status{margin:0;font-size:14.5px;font-weight:500;line-height:1.5;min-height:0}
.hps-status.err{color:var(--hps-red)}
.hps-status.ok{color:#1f8a54}
.hps-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
/* success panel */
.hps-done{text-align:center;padding:16px 6px 8px}
.hps-done .tick{width:58px;height:58px;border-radius:50%;background:#eaf7ef;color:#1f8a54;
  display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.hps-done h3{font-family:"Roboto",Arial,sans-serif;font-weight:900;font-size:21px;margin:0 0 8px;color:var(--hps-ink)}
.hps-done p{margin:0 auto;max-width:44ch;color:var(--hps-muted);font-size:15px;line-height:1.6}
.hps-done .tel{display:inline-block;margin-top:14px;font-weight:700;color:var(--hps-red);text-decoration:none;font-size:16px}
@media (max-width:680px){
  .hps-quote{padding:20px 18px 18px}
  .hps-row{grid-template-columns:1fr}
  .hps-submit{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.hps-quote *{transition:none!important;animation:none!important}}
