/* Shared across address search, imported property cards and Housbe listings. */
#passportModal .pp-modal-card,.hbppo .hbppo-panel{width:100%;max-width:980px;border:1px solid #304254;border-radius:24px;background:#081827;color:#edf3f9;box-shadow:0 24px 90px #0009;font-family:Inter,Arial,sans-serif}
#passportModal .pp-modal-card{padding:36px}.hbppo .hbppo-head{padding:28px 32px 0}.hbppo .hbppo-body{padding:24px 32px 30px}
#passportModal .pp-modal-title,.hbppo .hbppo-t{font-size:27px;line-height:1.2;letter-spacing:-.03em;text-transform:none;color:#fff;font-weight:750}
#passportModal .pp-modal-sub,.hbppo .hbppo-s{font-size:14px;line-height:1.65;color:#acbdcf;max-width:650px;margin:10px 0 22px}
.ppx-location-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:36px;align-items:start}
.ppx-form-kicker{display:inline-flex;align-items:center;gap:8px;background:#193247;border:1px solid #36526b;border-radius:30px;padding:7px 12px;font-size:11px;font-weight:700;color:#dbe9f6;margin-bottom:24px;letter-spacing:.035em}
.ppx-form-title{color:#fff;font-size:24px;font-weight:700;letter-spacing:-.025em;line-height:1.3;margin:0 0 12px}
.ppx-form-copy{color:#acbdcf;font-size:14px;line-height:1.65;margin:0 0 25px}
.ppx-base-preview{margin:25px 0 0;padding:18px;border:1px solid #314456;border-radius:14px;background:#102234}
.ppx-base-preview b{color:#fff;font-size:13px}.ppx-base-preview p{font-size:12px;line-height:1.65;color:#adc0d1;margin:8px 0 0}
.ppx-sources{border-radius:18px;background:linear-gradient(150deg,#153148,#0e2336);padding:24px;border:1px solid #36526b}
.ppx-eyebrow{display:block;color:#ed8d89;font-size:10px;line-height:1.5;font-weight:750;letter-spacing:.12em}
.ppx-sources h4{font-size:27px;font-weight:700;line-height:1.16;letter-spacing:-.035em;color:#fff;margin:11px 0}
.ppx-sources>p{font-size:12px;line-height:1.65;color:#afc1d2;margin:0 0 18px}.ppx-source-list{display:grid;gap:11px}
.ppx-source-list>div{display:flex;gap:10px;align-items:flex-start}.ppx-source-dot{width:6px;height:6px;margin-top:6px;background:#e9645f;border-radius:50%;flex-shrink:0}
.ppx-source-list section{margin:0;padding:0;display:block}.ppx-source-list b{display:block;font-size:11px;color:#eff6fc;font-weight:650}.ppx-source-list small{display:block;font-size:10px;line-height:1.5;color:#a0b5ca;margin-top:2px}
.ppx-sources .ppx-source-note{border-top:1px solid #354d62;padding-top:14px;margin:17px 0 0;font-size:10px;color:#9fb4c7}
#passportModal .pp-input,.hbppo .hbppo-in{padding:15px;border:1px solid #41566b;background:#0b2033;color:#fff;border-radius:11px;font-size:14px;min-height:48px}
#passportModal .pp-input:focus,.hbppo .hbppo-in:focus{border-color:#ee7772;box-shadow:0 0 0 3px #e95f5920;outline:none}
#passportModal .pp-btn-primary,.hbppo .hbppo-next{color:#fff;background:#d7443d;border:1px solid #e55c55;box-shadow:0 5px 18px #d7443d20;font-size:13px;letter-spacing:0;text-transform:none;padding:15px;border-radius:11px}
#passportModal .pp-modal-close{z-index:2}.ppx-extra-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}
.ppx-extra-heading h4{font-size:23px;letter-spacing:-.03em;color:#fff;margin:6px 0 0;font-weight:700}.ppx-price-badge{font-size:12px;color:#f4bcba;background:#582c301f;border:1px solid #9d514d;padding:8px 12px;border-radius:30px;white-space:nowrap}
.ppx-extra-sub{font-size:13px;line-height:1.65;color:#acbdcf;margin:12px 0 15px}.ppx-check-status{font-size:11px;color:#adc8db;line-height:1.5;padding:11px 14px;border:1px solid #344f65;background:#142b40;border-radius:10px;margin-bottom:14px}
.ppx-check-status.is-error{color:#ffc2bf;border-color:#95524e}.ppx-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;border:0;margin:0;padding:0;min-width:0}
.ppx-option{display:grid;grid-template-columns:22px minmax(0,1fr);gap:11px;align-items:start;padding:17px;border-radius:13px;border:1px solid #345067;background:#102537;cursor:pointer;transition:border-color .15s,background .15s}
.ppx-option:has(input:checked){border-color:#ec7770;background:#3a252d;box-shadow:inset 0 0 0 1px #c85a5350}.ppx-option:focus-within{outline:2px solid #f0938e;outline-offset:2px}.ppx-option.is-disabled{cursor:default;background:#0c1e2d;border-color:#263d51}
.ppx-option input{width:19px;height:19px;margin:2px 0 0;accent-color:#da4b43}.ppx-option .ppx-title{display:flex;align-items:start;gap:10px;justify-content:space-between;font-size:13px;font-weight:700;color:#fff;line-height:1.35}
.ppx-option .ppx-title em{font-style:normal;color:#f1938d;white-space:nowrap;font-size:12px}.ppx-option p{font-size:11px;line-height:1.6;color:#b4c3d1;margin:8px 0}.ppx-option .ppx-visual{font-size:10px;color:#829fb5;line-height:1.5;display:block}
.ppx-option .ppx-available{display:block;color:#a3d0bc;font-size:10px;line-height:1.45;margin-top:10px}.ppx-option.is-disabled .ppx-title{color:#8fa4b7}.ppx-option.is-disabled .ppx-available{color:#8398a9}
.ppx-total{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;padding:19px 21px;border:1px solid #446176;background:#173349;border-radius:13px}.ppx-total span{color:#a9bece;font-size:11px}.ppx-total b{display:block;color:#fff;font-size:21px;margin-top:4px}.ppx-total>div:last-child{text-align:right}.ppx-total small{display:block;font-size:10px;color:#a9bece}.ppx-total strong{display:block;color:#fff;font-size:30px;line-height:1.2;margin-top:5px;letter-spacing:-.04em}.ppx-total-note{font-size:10px;line-height:1.6;color:#8fa6ba;margin:10px 0 20px}
.ppx-notice{margin:0 0 12px;padding:11px 14px;border-radius:10px;font-size:12.5px;line-height:1.5;color:#ffe2a8;background:#2c2412;border:1px solid #a17b2c}.ppx-notice[hidden]{display:none}
.ppx-sr{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ppx-extras[data-busy="1"]{opacity:.8}.ppx-pay-locked{pointer-events:none;opacity:.4}
@media(max-width:700px){#passportModal .pp-modal-card{padding:28px 20px}.hbppo .hbppo-head{padding:24px 20px 0}.hbppo .hbppo-body{padding:20px}.ppx-location-grid{grid-template-columns:1fr;gap:24px}.ppx-sources{padding:20px}.ppx-source-list{grid-template-columns:1fr 1fr;gap:13px}.ppx-options{grid-template-columns:1fr}.ppx-extra-heading{align-items:flex-start}.ppx-price-badge{font-size:10px;padding:7px}.ppx-extra-heading h4{font-size:21px}.ppx-total{padding:16px}.ppx-total strong{font-size:26px}}
@media(prefers-reduced-motion:reduce){.ppx-option{transition:none}}
/* data-point cards: the glyph is the modal's; chips, group label and NFT note are shared */
.ppx-ic{display:none}
.ppx-group{grid-column:1/-1;margin:6px 0 0;font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:#8fa6ba}
.ppx-option .ppx-visual i{font-style:normal}.ppx-option .ppx-visual i+i::before{content:" · "}
.ppx-nft{margin:14px 0 0;padding:11px 14px;border-radius:10px;font-size:11.5px;line-height:1.55;color:#adc8db;border:1px dashed #3f5a70}.ppx-nft:empty{display:none}
.ppx-nft.is-extra{color:#ffe2a8;border-style:solid;border-color:#a17b2c;background:#2c2412}
/* Shared USPS address form in homepage and listing-card checkout. */
.hbusps{margin:14px 0;padding:14px;border:1px solid rgba(235,216,176,.22);border-radius:12px;background:rgba(9,20,40,.4);color:#eaf2f6;font-size:13px}
.hbusps-provider{margin:0 0 4px;font-size:12px;font-weight:700;letter-spacing:.06em;color:#ebd8b0}
.hbusps-help,.hbusps-note{font-size:12px;line-height:1.5;color:#aebdc9;margin:4px 0 10px}
/* Three rows on a phone, two on a wider screen, so the step still fits one window. */
.hbusps-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.hbusps-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#dce5ed}
.hbusps-grid label[hidden]{display:none}
.hbusps-streetAddress,.hbusps-urbanization{grid-column:1/-1}
.hbusps-secondaryAddress,.hbusps-state{grid-column:span 2}
.hbusps-city,.hbusps-zip{grid-column:span 4}
@media(min-width:560px){.hbusps-streetAddress{grid-column:span 4}.hbusps-city{grid-column:span 3}.hbusps-state{grid-column:span 1}.hbusps-zip{grid-column:span 2}}
.hbusps-grid input,.hbusps-grid select{box-sizing:border-box;width:100%;min-width:0;height:40px;border:1px solid #455162;border-radius:8px;background:#091428;color:#eaf2f6;padding:8px 10px;font:inherit}
.hbusps-grid select{padding:8px 4px}
.hbusps-grid input:focus,.hbusps-grid select:focus{outline:2px solid #ebd8b0;outline-offset:2px}
/* Dim enough that an empty form never reads as filled in; the site theme
   paints placeholders white with text-fill-color, hence !important here. */
.hbusps .hbusps-grid input::placeholder{color:#5f7184!important;-webkit-text-fill-color:#5f7184!important;opacity:1}
.hbusps button{margin-top:12px;min-height:40px;border:1px solid #ebd8b0;border-radius:8px;background:#ebd8b0;color:#091428;padding:10px 14px;font:inherit;font-weight:600;cursor:pointer}
.hbusps button:disabled{opacity:.55;cursor:wait}
.hbusps-status{margin:12px 0 0;line-height:1.55}
/* Verified result: the card rises in, the seal pops and its check draws
   itself, a ring pulses out and a sheen crosses once. Display:none -> grid
   restarts every animation, so each new check plays it again. */
.hbusps-result{position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;
  margin-top:12px;padding:14px 16px;border-radius:12px;border:1px solid rgba(52,211,153,.5);
  background:linear-gradient(135deg,rgba(16,185,129,.2),rgba(9,20,40,.6) 62%);
  box-shadow:0 0 0 1px rgba(52,211,153,.08),0 14px 34px -16px rgba(16,185,129,.6);animation:hbuspsRise .5s cubic-bezier(.2,.8,.2,1) both}
.hbusps-result::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.12) 50%,transparent 65%);transform:translateX(-120%);animation:hbuspsSheen 1.1s .6s ease-out both}
.hbusps-result[hidden],.hbusps-done[hidden]{display:none}
.hbusps-result-body{min-width:0}
.hbusps-result b{display:block;margin-top:6px;color:#fff;font-size:13.5px}
.hbusps-result address{font-style:normal;white-space:pre-line;line-height:1.6;margin:6px 0 8px;color:#e8fff5;font-weight:600;letter-spacing:.02em;overflow-wrap:anywhere}
.hbusps-result p{margin:6px 0;font-size:12px;line-height:1.5;color:#b9cfc6}
.hbusps-result [data-usps-accept]{margin-top:6px}
.hbusps-tag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#05271a;
  background:linear-gradient(90deg,#6ee7b7 0%,#f3e3bf 50%,#6ee7b7 100%);background-size:220% 100%;animation:hbuspsShine 2.2s .55s ease-in-out both}
.hbusps-seal{position:relative;flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#4ff0b0,#0f9f6e 72%);box-shadow:0 0 0 4px rgba(52,211,153,.16),0 10px 22px -8px rgba(16,185,129,.9);
  animation:hbuspsPop .6s .08s cubic-bezier(.2,1.5,.4,1) both}
.hbusps-seal::before{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid rgba(110,231,183,.6);opacity:0;animation:hbuspsPulse 1.5s .55s ease-out 2}
.hbusps-seal svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.hbusps-seal-ok{stroke-dasharray:24;stroke-dashoffset:24;animation:hbuspsDraw .45s .45s ease-out forwards}
.hbusps-seal-warn{display:none}
/* After "Use this address": one line that stays, green-edged fields, a settled button. */
.hbusps-done{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;border-radius:12px;
  border:1px solid rgba(52,211,153,.5);background:linear-gradient(90deg,rgba(16,185,129,.22),rgba(9,20,40,.35));animation:hbuspsRise .45s cubic-bezier(.2,.8,.2,1) both}
.hbusps-done .hbusps-seal{width:34px;height:34px}
.hbusps-done .hbusps-seal svg{width:18px;height:18px}
.hbusps-done b{display:block;color:#d1fae5;font-size:13px;letter-spacing:.02em}
.hbusps-done small{display:block;margin-top:1px;color:#a7c9bb;font-size:11.5px}
.hbusps.is-verified .hbusps-grid input,.hbusps.is-verified .hbusps-grid select{border-color:rgba(52,211,153,.6);transition:border-color .4s}
.hbusps button.is-verified{background:rgba(16,185,129,.12);border-color:rgba(52,211,153,.6);color:#6ee7b7;opacity:1;cursor:default}
/* USPS could not check it: amber, an "!" and no celebration. */
.hbusps.is-unconfirmed .hbusps-result{border-color:rgba(233,179,84,.55);background:linear-gradient(135deg,rgba(161,123,44,.25),rgba(9,20,40,.6) 62%);box-shadow:none}
.hbusps.is-unconfirmed .hbusps-result::after,.hbusps.is-unconfirmed .hbusps-seal::before{display:none}
.hbusps.is-unconfirmed .hbusps-seal{background:radial-gradient(circle at 32% 28%,#f7c873,#b7791f 72%);box-shadow:0 0 0 4px rgba(233,179,84,.16)}
.hbusps.is-unconfirmed .hbusps-seal-ok{display:none}
.hbusps.is-unconfirmed .hbusps-seal-warn{display:inline}
.hbusps.is-unconfirmed .hbusps-tag{background:#f3d9a4;animation:none}
.hbusps.is-unconfirmed .hbusps-done{border-color:rgba(233,179,84,.55);background:linear-gradient(90deg,rgba(161,123,44,.28),rgba(9,20,40,.35))}
.hbusps.is-unconfirmed .hbusps-done b{color:#fde7b8}
@keyframes hbuspsRise{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes hbuspsPop{0%{opacity:0;transform:scale(.35) rotate(-20deg)}65%{opacity:1;transform:scale(1.1) rotate(4deg)}100%{transform:scale(1) rotate(0)}}
@keyframes hbuspsDraw{to{stroke-dashoffset:0}}
@keyframes hbuspsPulse{0%{opacity:.9;transform:scale(.85)}100%{opacity:0;transform:scale(1.45)}}
@keyframes hbuspsSheen{to{transform:translateX(120%)}}
@keyframes hbuspsShine{from{background-position:100% 0}to{background-position:0 0}}
@media (prefers-reduced-motion:reduce){
  .hbusps-result,.hbusps-result::after,.hbusps-done,.hbusps-seal,.hbusps-seal::before,.hbusps-tag,.hbusps-seal-ok{animation:none}
  .hbusps-seal-ok{stroke-dashoffset:0}}
.hbusps-note{margin:10px 0 0;font-size:11px}
