.aspc {
  --aspc-ink: inherit;
  --aspc-muted: #5f6368;
  --aspc-line: #dcdcdc;
  --aspc-soft: #f6f5f2;
  --aspc-accent: var(--wp--preset--color--primary, #1f3a5f);
  --aspc-good: #1e7d4f;
  --aspc-warn: #a76200;
  --aspc-bad: #b3261e;
  --aspc-radius: 10px;
  max-width: 760px;
  margin: 0 auto;
  font: inherit;
  color: inherit;
  line-height: 1.5;
}
.aspc *, .aspc *::before, .aspc *::after { box-sizing: border-box; }
.aspc-title { margin: 0 0 .25em; }
.aspc-sub { margin: 0 0 1.25em; color: var(--aspc-muted); }
.aspc-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.aspc-card {
  display: flex; flex-direction: column; gap: 6px; text-align: left; cursor: pointer;
  padding: 18px; border: 1px solid var(--aspc-line); border-radius: var(--aspc-radius);
  background: #fff; color: inherit; font: inherit; transition: border-color .15s, box-shadow .15s;
}
.aspc-card:hover, .aspc-card:focus-visible { border-color: var(--aspc-accent); box-shadow: 0 0 0 3px rgba(31, 58, 95, .12); outline: none; }
.aspc-card strong { font-size: 1.05em; }
.aspc-card span { color: var(--aspc-muted); font-size: .92em; }
.aspc-broker { margin-top: 1em; font-size: .88em; color: var(--aspc-muted); }

.aspc-form, .aspc-lead { display: flex; flex-direction: column; gap: 14px; }
.aspc-lead { margin-top: 24px; padding: 20px; border-radius: var(--aspc-radius); background: var(--aspc-soft); }
.aspc-lead h3 { margin: 0; }
.aspc-lead > p { margin: 0; }
.aspc-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; }
.aspc-field { display: flex; flex-direction: column; gap: 4px; }
.aspc-label { font-size: .9em; font-weight: 600; }
.aspc-hint { font-size: .82em; color: var(--aspc-muted); }
.aspc-input {
  width: 100%; padding: 10px 12px; border: 1px solid var(--aspc-line); border-radius: 8px;
  font: inherit; background: #fff; color: inherit;
}
.aspc-input:focus { outline: 2px solid var(--aspc-accent); outline-offset: 0; border-color: transparent; }
.aspc-error { border-color: var(--aspc-bad) !important; }
.aspc-msg { color: var(--aspc-bad); margin: 0; min-height: 0; }
.aspc-msg:empty { display: none; }
.aspc-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.aspc-btn {
  padding: 12px 22px; border: 0; border-radius: 8px; cursor: pointer;
  background: var(--aspc-accent); color: #fff; font: inherit; font-weight: 600;
}
.aspc-btn:disabled { opacity: .6; cursor: progress; }
.aspc-link { background: none; border: 0; padding: 0; color: var(--aspc-accent); text-decoration: underline; cursor: pointer; font: inherit; }
.aspc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

.aspc-ac { position: relative; }
.aspc-suggest {
  position: absolute; z-index: 20; left: 0; right: 0; top: 100%; margin: 4px 0 0; padding: 4px 0; list-style: none;
  background: #fff; border: 1px solid var(--aspc-line); border-radius: 8px; box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
  max-height: 260px; overflow: auto;
}
.aspc-suggest li { padding: 8px 12px; cursor: pointer; font-size: .95em; }
.aspc-suggest li:hover, .aspc-suggest li:focus { background: var(--aspc-soft); outline: none; }

.aspc-result h3 { margin: 0 0 .4em; }
.aspc-est-label { font-size: .9em; color: var(--aspc-muted); }
.aspc-est { font-size: 2.2em; font-weight: 700; line-height: 1.15; }
.aspc-est-sub { color: var(--aspc-muted); margin-bottom: 12px; }
.aspc-verdict { display: inline-block; padding: 6px 12px; border-radius: 999px; font-size: .95em; background: var(--aspc-soft); }
.aspc-verdict.aspc-v-market { background: #e6f4ec; color: var(--aspc-good); }
.aspc-verdict.aspc-v-slightly { background: #fdf1df; color: var(--aspc-warn); }
.aspc-verdict.aspc-v-over, .aspc-verdict.aspc-v-cheap { background: #fbe9e7; color: var(--aspc-bad); }
.aspc-verdict-text { margin: .6em 0 0; }

.aspc-scale-wrap { margin: 28px 0 8px; }
.aspc-scale { position: relative; height: 10px; border-radius: 999px; background: var(--aspc-line); }
.aspc-band { position: absolute; top: 0; bottom: 0; border-radius: 999px; background: var(--aspc-accent); opacity: .35; }
.aspc-mark { position: absolute; top: -6px; width: 3px; height: 22px; margin-left: -1px; border-radius: 2px; background: var(--aspc-accent); }
.aspc-mark-price { background: var(--aspc-ink, #222); }
.aspc-mark-price.aspc-v-market { background: var(--aspc-good); }
.aspc-mark-price.aspc-v-slightly { background: var(--aspc-warn); }
.aspc-mark-price.aspc-v-over, .aspc-mark-price.aspc-v-cheap { background: var(--aspc-bad); }
.aspc-mark-price span { position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: .78em; color: var(--aspc-muted); }
.aspc-scale-legend { position: relative; height: 1.4em; margin-top: 8px; font-size: .85em; color: var(--aspc-muted); }
.aspc-scale-legend span { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; }

.aspc-conf { font-size: .9em; color: var(--aspc-muted); }
.aspc-conf-low { color: var(--aspc-warn); }
.aspc-box { margin-top: 16px; padding: 14px 16px; border: 1px solid var(--aspc-line); border-radius: var(--aspc-radius); }
.aspc-box h4 { margin: 0 0 .5em; font-size: 1em; }
.aspc-box ul { margin: 0; padding-left: 1.2em; }
.aspc-box li { margin: .2em 0; }
.aspc-flags { border-color: #f0d9b5; background: #fffaf2; }
.aspc-flag-warn { color: var(--aspc-warn); }
.aspc-dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 16px; margin: 0; }
.aspc-dl dt { color: var(--aspc-muted); }
.aspc-dl dd { margin: 0; }
.aspc-consent { display: flex; gap: 8px; align-items: flex-start; font-size: .9em; }
.aspc-consent input { margin-top: .3em; }
.aspc-sent { background: #e6f4ec; border-color: #bfe3cf; }
.aspc-small { font-size: .8em; color: var(--aspc-muted); margin: 12px 0 0; }

@media (max-width: 640px) {
  .aspc-cards { grid-template-columns: 1fr; }
  .aspc-est { font-size: 1.8em; }
  .aspc-actions { flex-direction: column-reverse; align-items: stretch; }
  .aspc-btn { width: 100%; }
}

/* Live estimate and optional property details. */
.aspc:has(.aspc-layout){max-width:1100px!important}
.aspc-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:32px;align-items:start}
.aspc-live{position:sticky;top:80px;padding:26px;border:1px solid #ded8d1;border-radius:16px;background:#fff;box-shadow:0 8px 30px #00000008}
.aspc-live h3{font-size:18px;margin:0 0 18px}.aspc-live-value{font-size:27px;font-weight:600;line-height:1.4;color:#864c39;overflow-wrap:anywhere}
.aspc-extras{margin:18px 0;padding:18px;border:1px solid #ded8d1;border-radius:10px}.aspc-extras summary{cursor:pointer;font-weight:600}.aspc-extras[open] summary{margin-bottom:18px}
.aspc-layout .aspc-row{flex-wrap:wrap}.aspc-layout .aspc-row .aspc-field{min-width:120px}
@media(max-width:800px){.aspc-layout{grid-template-columns:1fr;gap:20px}.aspc-live{position:static}.aspc-live-value{font-size:25px}}

.aspc [hidden]{display:none!important}.aspc-house-fields{padding:18px;background:#f7f6f2;border-radius:12px}.aspc-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.aspc-live-value{font-size:clamp(20px,2.3vw,30px)}

.aspc-env-list { list-style: none; padding: 0 !important; margin: 0; }
.aspc-env-list li { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 10px 0 10px 14px; border-top: 1px solid var(--aspc-line); position: relative; }
.aspc-env-list li:first-child { border-top: 0; }
.aspc-env-list li:before { content: ""; position: absolute; left: 0; top: 16px; width: 7px; height: 7px; border-radius: 50%; background: #8aa37b; }
.aspc-env-list li.aspc-env-mid:before { background: #d2a03c; }
.aspc-env-list li.aspc-env-high:before { background: #c0583c; }
.aspc-env-list small { grid-column: 1 / -1; color: var(--aspc-muted); font-size: .88em; }

.aspc-ku-name { font-size: .92em; color: var(--aspc-muted); margin: 0 0 6px; }
.aspc-ku-ask { font-size: .92em; margin: 10px 0 0; padding: 10px 12px; background: rgba(136,83,63,.07); border-radius: 8px; }

.aspc-suggest li.aspc-suggest-street { font-weight: 600; }
.aspc-suggest li.aspc-suggest-street small { font-weight: 400; color: var(--aspc-muted); }
