/* Homepage "How it moves" story: one property through 7 steps, pinned while you scroll.
   The page's body is its own scroll box (overflow-x on html/body), so CSS sticky can't pin here;
   the script adds is-pinned (fixed) while the section fills the screen and is-past once it has scrolled by.
   Steps are driven by initMinimalFlowNarrative (index.html), which sets data-flow-stage and the hs-gN classes. */
.homeStory{position:relative;height:calc(100vh + 7 * 62vh);background:var(--editorial-ink,#111318);color:#fff}
.hs-sticky{position:relative;top:0;height:100vh;display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.5fr);grid-template-rows:1fr auto;gap:0 clamp(24px,4vw,56px);padding:clamp(76px,10vh,96px) clamp(16px,3vw,48px) 18px;overflow:hidden;box-sizing:border-box}
.hs-sticky.is-pinned{position:fixed;top:0;left:0;right:0;z-index:2}
.hs-sticky.is-past{position:absolute;top:auto;bottom:0;left:0;right:0}
.hs-copy{align-self:center;min-width:0}
.hs-kicker{font-size:12px;letter-spacing:.14em;color:rgba(255,255,255,.62);margin:0 0 18px;text-transform:uppercase}
.hs-kicker b{color:#fff;font-weight:600}
.hs-heads{display:grid;font-size:clamp(40px,4.8vw,76px);line-height:.98}
.hs-heads h2{grid-area:1/1;margin:0;font-size:inherit;line-height:inherit;letter-spacing:-.04em;font-weight:500;color:#fff;opacity:0;transform:translateY(18px);transition:opacity .45s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.hs-heads h2.on{opacity:1;transform:none}
.hs-heads h2.past{transform:translateY(-18px)}
.hs-subs{display:grid;margin-top:clamp(18px,3vh,30px);font-size:17px;line-height:1.55;max-width:420px}
.hs-subs p{grid-area:1/1;margin:0;color:rgba(255,255,255,.76);opacity:0;transition:opacity .4s ease .08s}
.hs-subs p.on{opacity:1}
.hs-cta{margin-top:22px;opacity:0;transform:translateY(8px);transition:opacity .4s,transform .5s;pointer-events:none}
.homeStory[data-flow-stage="6"] .hs-cta{opacity:1;transform:none;pointer-events:auto}

.hs-canvas{--home-muted:#5d6472;position:relative;align-self:center;width:100%;aspect-ratio:1.45;max-height:calc(100vh - 190px);background:#f5f4ef;color:#111318;border-radius:18px;overflow:hidden}
.hs-canvas *{transition-timing-function:cubic-bezier(.2,.8,.2,1)}
.hs-ring{position:absolute;left:50%;top:50%;width:76%;height:86%;border-radius:50%;transform:translate(-50%,-50%) scale(.2);opacity:0;border:1.5px dashed rgba(30,79,216,.45);background:radial-gradient(ellipse at center,rgba(30,79,216,.07),rgba(30,79,216,0) 70%);transition:transform .8s,opacity .5s}
.hs-ring em{position:absolute;right:8%;top:8%;font-style:normal;font-size:11px;font-weight:600;color:#1e4fd8;background:#fff;border:1px solid #c9d6fb;padding:3px 8px;border-radius:999px}
.hs-pulse{position:absolute;left:50%;top:50%;width:76%;height:86%;border-radius:50%;border:2px solid #1e4fd8;transform:translate(-50%,-50%) scale(.2);opacity:0}
.hs-g1 .hs-ring{transform:translate(-50%,-50%) scale(1);opacity:1}
.hs-at1 .hs-pulse{animation:hsPulse 1.6s ease-out .1s 1}
.hs-g4 .hs-ring{opacity:0;transform:translate(-50%,-50%) scale(1.2)}
@keyframes hsPulse{0%{opacity:.6;transform:translate(-50%,-50%) scale(.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.05)}}

.hs-prop{position:absolute;left:50%;top:50%;width:min(40%,330px);transform:translate(-50%,-50%);background:#fff;border:1px solid #111318;padding:18px 20px 16px;transition:top .8s,opacity .4s;z-index:3;box-sizing:border-box}
.hs-pin{position:absolute;left:50%;top:-30px;width:26px;height:26px;margin-left:-13px;border-radius:50% 50% 50% 0;transform:rotate(-45deg) translateY(-12px);background:#1e4fd8;opacity:0;transition:opacity .3s,transform .5s cubic-bezier(.3,1.6,.5,1)}
.hs-pin::after{content:"";position:absolute;inset:8px;border-radius:50%;background:#fff}
.hs-g0 .hs-pin{opacity:1;transform:rotate(-45deg)}
.hs-g4 .hs-pin{opacity:0}
.hs-prop .hs-label{display:block;font-size:10px;letter-spacing:.12em;color:#5d6472;margin-bottom:6px}
.hs-prop strong{display:block;font-size:clamp(18px,2.2vw,28px);letter-spacing:-.03em;font-weight:600;line-height:1.1}
.hs-prop .hs-where{display:block;font-size:12px;color:#5d6472;margin-top:4px}
.hs-bar{height:4px;background:#e6e4dd;margin:14px 0 8px;border-radius:2px;overflow:hidden}
.hs-bar i{display:block;height:100%;width:8%;background:#1e4fd8;transition:width .8s}
.hs-prop footer{display:flex;justify-content:space-between;gap:8px;font-size:11px;font-weight:600}
.hs-prop footer b{color:#1e4fd8}
.hs-prop footer em{font-style:normal;color:#5d6472;font-weight:500}
.hs-g4 .hs-prop{top:17%}
.hs-g6 .hs-prop{opacity:0}

.hs-chip{position:absolute;left:var(--x);top:var(--y);width:min(23%,190px);transform:translate(calc(-50% + var(--ox)),calc(-50% + var(--oy))) scale(.9);opacity:0;background:#fff;border:1px solid #d9d6cc;border-radius:10px;padding:9px 11px;font-size:12px;transition:transform .8s,opacity .5s,border-color .3s;transition-delay:calc(var(--i) * 60ms);z-index:2;box-sizing:border-box}
.hs-chip .hs-type{display:block;font-size:9.5px;font-weight:700;letter-spacing:.1em;color:#1e4fd8}
.hs-chip b{display:block;font-size:13px;margin:2px 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs-chip .hs-tag{display:inline-block;font-size:10.5px;font-weight:600;color:#344054;background:#f2f4f7;border-radius:999px;padding:2px 7px}
.hs-chip .hs-tag.mine{background:#e7f6ec;color:#067647}
.hs-chip .hs-state{display:block;height:0;overflow:hidden;font-size:11px;font-weight:600;color:#5d6472;transition:height .3s}
.hs-chip .hs-sent,.hs-chip .hs-time{display:none}
.hs-g1 .hs-chip{transform:translate(-50%,-50%);opacity:1}
.hs-g2 .hs-chip .hs-state{height:17px;margin-top:5px}
.hs-g2 .hs-chip .hs-sent{display:inline}
.hs-g3 .hs-chip .hs-sent{display:none}
.hs-g3 .hs-chip .hs-time{display:inline;color:#1e4fd8}
.hs-g3 .hs-chip{border-color:#1e4fd8}
.hs-g4 .hs-chip{opacity:0;transform:translate(-50%,-50%) scale(.85);transition-delay:0s}

.hs-lines{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.hs-lines line{vector-effect:non-scaling-stroke;stroke:#1e4fd8;stroke-width:1.5;stroke-dasharray:3 4;opacity:0;transition:opacity .4s}
.hs-g2 .hs-lines line{opacity:.8;animation:hsFlow 1s linear infinite}
.hs-g4 .hs-lines line{opacity:0}
@keyframes hsFlow{to{stroke-dashoffset:-14}}

.hs-rail{position:absolute;left:7%;right:7%;top:46%;display:grid;grid-template-columns:repeat(6,1fr);opacity:0;transform:translateY(16px);transition:opacity .5s .2s,transform .7s .2s;z-index:2}
.hs-rail::before{content:"";position:absolute;left:8%;right:8%;top:28px;height:2px;background:#1e4fd8;transform:scaleX(0);transform-origin:left;transition:transform 1s .3s}
.hs-rail div{text-align:center;font-size:11px;position:relative}
.hs-rail time{display:block;font-weight:700;font-size:12px;margin-bottom:8px}
.hs-rail i{display:block;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #1e4fd8;margin:0 auto 8px;position:relative;z-index:1;box-sizing:border-box}
.hs-rail b{display:block;font-weight:600}
.hs-rail .ok{color:#067647;font-weight:600}
.hs-g4 .hs-rail{opacity:1;transform:none}
.hs-g4 .hs-rail::before{transform:scaleX(1)}
.hs-g6 .hs-rail{opacity:0}

.hs-reports{position:absolute;left:10%;right:10%;top:70%;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;z-index:2}
.hs-reports span{background:#fff;border:1px solid #d9d6cc;border-radius:8px;padding:8px;font-size:11px;font-weight:600;opacity:0;transform:translateY(-26px);transition:opacity .4s,transform .6s;transition-delay:calc(var(--i) * 80ms)}
.hs-reports span i{font-style:normal;color:#1e4fd8;display:block;font-size:13px}
.hs-g5 .hs-reports span{opacity:1;transform:none}
.hs-g6 .hs-reports span{opacity:0;transition-delay:0s}

.hs-done{position:absolute;inset:8% 9%;background:#fff;border:1px solid #111318;display:grid;align-content:center;justify-items:start;padding:clamp(20px,4vw,48px);opacity:0;transform:scale(.97);transition:opacity .5s,transform .6s;z-index:5;pointer-events:none}
.hs-done .hs-label{font-size:11px;letter-spacing:.12em;color:#1e4fd8;font-weight:600}
.hs-done h3{font-size:clamp(28px,4vw,56px);letter-spacing:-.04em;line-height:1;margin:10px 0 22px;font-weight:600;color:#111318}
.hs-nums{display:flex;gap:clamp(16px,3vw,40px);margin-bottom:24px}
.hs-nums b{display:block;font-size:clamp(26px,3vw,40px);font-weight:600}
.hs-nums span{font-size:12px;color:#5d6472}
.hs-g6 .hs-done{opacity:1;transform:none;pointer-events:auto}

.hs-stages{grid-column:1/-1;display:grid;grid-template-columns:repeat(7,1fr);gap:8px;border-top:1px solid rgba(255,255,255,.18);padding-top:14px;margin-top:14px}
.hs-stages button{background:none;border:0;color:#c2ccda;text-align:left;font-size:12px;padding:4px 0;display:flex;gap:8px;align-items:center;white-space:nowrap;cursor:pointer}
.hs-stages button i{width:7px;height:7px;border-radius:50%;border:1px solid currentColor;flex:none}
.hs-stages button[aria-current=step]{color:#fff}
.hs-stages button[aria-current=step] i{background:#6d97ff;border-color:#6d97ff}
.hs-stages button:focus-visible{outline:3px solid rgba(109,151,255,.6);outline-offset:2px}

/* Phone: still one short pinned scene (headline on top, the scene below), not a long list. */
@media (max-width:760px){
  .homeStory{height:calc(100vh + 7 * 55vh)}
  .hs-sticky{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;padding:clamp(64px,9vh,80px) 14px 14px}
  .hs-copy{align-self:start}
  .hs-kicker{margin-bottom:10px}
  .hs-heads{font-size:32px}
  .hs-subs{font-size:14px;margin-top:10px}
  .hs-cta{display:none}
  .hs-canvas{aspect-ratio:auto;height:100%;max-height:none;border-radius:14px;margin-top:10px}
  .hs-prop{width:62%;padding:12px 14px}
  .hs-chip{width:46%;padding:7px 8px}
  .hs-chip b{font-size:12px}
  .hs-ring,.hs-pulse{width:92%;height:78%}
  .hs-rail{left:4%;right:4%;grid-template-columns:repeat(3,1fr);row-gap:18px;top:38%}
  .hs-rail::before{display:none}
  .hs-reports{grid-template-columns:repeat(3,1fr);top:74%;left:6%;right:6%}
  .hs-done .minimalCta{width:100%;justify-content:center}
  .hs-stages{gap:4px}
  .hs-stages button span{display:none}
  .hs-stages button{justify-content:center}
  .hs-stages button i{width:9px;height:9px}
}
/* Reduced motion: no pinning or movement; each step's final state shows as you reach it. */
@media (prefers-reduced-motion:reduce){.hs-canvas *,.hs-heads h2,.hs-subs p,.hs-cta{transition:none!important;animation:none!important}}

/* Features: the new "Find inspectors" row */
.minimalFeatures .featureNewTag{display:inline-block;margin-left:10px;padding:3px 9px;border-radius:999px;background:#eef3ff;color:#1e4fd8;font-size:12px;font-style:normal;font-weight:700;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}

/* Story buttons match the homepage's other calls to action. */
.homeStory a.minimalCta{display:inline-flex;align-items:center;min-height:48px;padding:0 22px;border:0;border-radius:8px;background:#1e4fd8;color:#fff;font-size:15px;font-weight:600;text-decoration:none}
.homeStory a.minimalCta:hover{background:#1a3fb0;color:#fff}
.homeStory a.minimalCta:focus-visible{outline:2px solid #6d97ff;outline-offset:3px}
/* The homepage colors every paragraph ink; the kicker sits on the dark story. */
.homeStory .hs-kicker{color:rgba(255,255,255,.62)}
@media (max-width:760px){.hs-prop{width:58%}}
/* Phone: compact cards so six fit around the property without touching. Once requests go out,
   each card shows its status in place of the reason it was suggested. */
@media (max-width:760px){
  .hs-prop .hs-where{display:none}
  .hs-prop .hs-bar{margin:10px 0 6px}
  .hs-prop strong{font-size:18px}
  .hs-chip{padding:6px 8px}
  .hs-chip b{margin:1px 0 3px}
  .hs-g2 .hs-chip .hs-tag{display:none}
  .hs-g2 .hs-chip .hs-state{margin-top:0}
}
@media (max-width:760px){.hs-g5 .hs-rail{opacity:0}.hs-reports{top:44%}}
