/* ============================================================
   HomeLynx V7.0.2 — visual restoration
   Source of truth: original V7 concept palette + depth language.
   Product architecture/logic remains V7.0.1.
   ============================================================ */
body.vis2{
  --v2-paper:#FBFDFC;
  --v2-ink:#071D29;
  --v2-mute:#52666B;
  --v2-faint:#71858A;
  --v2-line:#DFE9E6;
  --v2-green:#087563;
  --v2-mint:#8EE5D2;
  --v2-soft:#EDF7F4;
  --v2-soft2:#F6FAF8;
  --v2-amber:#8B6718;
  --v2-amber-line:#DFC98C;
  --v3-shadow:0 18px 52px rgba(7,29,41,.10);
  --v3-shadow-sm:0 8px 24px rgba(7,29,41,.08);
  background:var(--v2-paper);
  color:var(--v2-ink);
}
body.vis2 #view{padding-top:10px}
@media(min-width:1024px){body.vis2 #view{padding-top:34px}}

/* Global chrome: glassy, branded, compact. */
body.vis2 #tabbar{
  left:12px; right:12px; bottom:10px;
  height:calc(68px + env(safe-area-inset-bottom));
  padding:0 8px env(safe-area-inset-bottom);
  border:1px solid rgba(223,233,230,.9);
  border-radius:24px;
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  box-shadow:0 16px 48px rgba(7,29,41,.12);
}
body.vis2 #tabbar .tab{
  color:#71858A; font-size:11.5px; font-weight:650; letter-spacing:0;
  border-radius:16px; margin:6px 3px;
}
body.vis2 #tabbar .tab.active{color:var(--v2-green);background:var(--v2-soft);font-weight:800}
body.vis2 #rail{background:#fff;border-right:1px solid var(--v2-line);box-shadow:10px 0 34px rgba(7,29,41,.04)}
body.vis2 #rail .brand-mark{background:linear-gradient(135deg,var(--v2-green),#0b5249);color:#fff;box-shadow:0 8px 18px rgba(8,117,99,.18)}
body.vis2 #rail .brand-name{color:var(--v2-ink);font-weight:800}
body.vis2 #rail .rail-link{border-radius:999px;padding:10px 14px;color:var(--v2-mute);font-weight:650}
body.vis2 #rail .rail-link.active{background:var(--v2-soft);color:var(--v2-green);font-weight:800}

/* Honest fixture state, but visually subordinate. */
body.vis2 .fixture-banner,
body.vis2 .fixture-banner.demo{
  background:rgba(237,247,244,.72);border:1px solid var(--v2-line);border-radius:999px;
  padding:7px 11px;margin:12px 0 16px;color:var(--v2-faint);font-size:10px;line-height:1.25;
  letter-spacing:.11em;text-transform:uppercase;font-weight:750;width:max-content;max-width:100%;
}

/* Type: confident technology product, not paper editorial. */
.v2-eyebrow{font-size:11px;font-weight:850;letter-spacing:.13em;color:var(--v2-green);margin-bottom:12px}
.v2-display{font-size:54px;font-weight:820;letter-spacing:-.045em;line-height:1;color:var(--v2-ink)}
.v2-display.green{color:var(--v2-green)}
.v2-h1{font-size:30px;font-weight:820;letter-spacing:-.035em;line-height:1.08;color:var(--v2-ink)}
.v2-h2{font-size:21px;font-weight:800;letter-spacing:-.025em;color:var(--v2-ink)}
.v2-body{font-size:16px;line-height:1.58;color:#42565C}
.v2-quiet{font-size:14px;line-height:1.5;color:var(--v2-mute)}
.v2-foot{font-size:12px;line-height:1.55;color:var(--v2-faint)}
.v2-sec{margin-top:28px}
.v2-sec-tight{margin-top:24px}
.v2-rule{border-top-color:var(--v2-line)}

/* Media gets the original V7 premium depth back. */
.v2-bleed{margin-left:0;margin-right:0}
.v2-hero{margin-top:10px;border-radius:30px;overflow:hidden;box-shadow:var(--v3-shadow);background:#dbeee8}
.v2-hero img{height:48vh;min-height:310px;max-height:520px;border-radius:0}
.v2-hero.tall img{height:54vh;max-height:590px}
@media(max-width:560px){.v2-hero{border-radius:26px}.v2-hero img{height:43vh;min-height:300px}}

/* Home: intelligence earns a dark hero surface. */
.v3-intel-card{
  position:relative;overflow:hidden;
  padding:24px;border-radius:28px;
  background:linear-gradient(145deg,#071D29 0%,#0D3440 58%,#087563 145%);
  color:#fff;box-shadow:var(--v3-shadow);
}
.v3-intel-card:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-80px;top:-110px;background:radial-gradient(circle,rgba(142,229,210,.28),transparent 66%);pointer-events:none}
.v3-intel-card .v2-eyebrow{color:var(--v2-mint)}
.v3-intel-card .v2-body{color:rgba(255,255,255,.88);position:relative;z-index:1}
.v3-intel-card .v2-textbtn{color:#fff;text-decoration-color:rgba(255,255,255,.32);position:relative;z-index:1}

/* Search affordance mirrors the concept search boxes. */
.v2-search{height:60px;margin-top:24px;padding:0 18px;background:#fff;border:1px solid var(--v2-line);border-radius:18px;color:var(--v2-mute);box-shadow:var(--v3-shadow-sm);font-weight:650}
.v2-search:active{background:var(--v2-soft2)}

/* Pathways become premium context modules rather than hairline-only rows. */
.v2-paths{margin-top:26px;border-top:0;display:grid;gap:10px}
.v2-path{padding:17px 18px;border:1px solid var(--v2-line);border-radius:20px;background:#fff;box-shadow:0 8px 22px rgba(7,29,41,.045)}
.v2-path .lbl{font-weight:800;color:var(--v2-ink)}
.v2-path .sub{color:var(--v2-faint)}
.v2-path .chev{color:var(--v2-green);font-weight:700}
.v2-path:active{transform:scale(.99);background:var(--v2-soft2)}

/* Lens controls recover the compact original segmented-control language. */
.v2-lenses{gap:3px;margin:24px 0 0;padding:5px;border:1px solid var(--v2-line);border-radius:16px;background:var(--v2-soft);overflow:hidden}
.v2-lenses button{flex:1;padding:10px 8px;border-radius:12px;font-size:13.5px;font-weight:750;color:var(--v2-faint)}
.v2-lenses button.active{background:#fff;color:var(--v2-ink);box-shadow:0 5px 16px rgba(7,29,41,.08)}
.v2-lens-note{background:#fff;border:1px solid var(--v2-line);border-radius:18px;padding:16px 17px;box-shadow:0 6px 18px rgba(7,29,41,.045)}

/* Signature ask-vs-estimate block: this is the visual center of V7. */
.v3-signature{
  padding:24px;border-radius:30px;background:linear-gradient(155deg,#071D29 0%,#0E3440 70%,#0B6A5B 145%);
  color:#fff;box-shadow:var(--v3-shadow);position:relative;overflow:hidden;
}
.v3-signature:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-100px;top:-120px;background:radial-gradient(circle,rgba(142,229,210,.24),transparent 68%);pointer-events:none}
.v3-signature .v2-eyebrow{color:rgba(255,255,255,.62);position:relative;z-index:1}
.v3-signature .v2-display{color:#fff;position:relative;z-index:1}
.v3-signature .v2-display.green{color:var(--v2-mint)}
.v3-signature .v2-rule{border-top-color:rgba(255,255,255,.16);position:relative;z-index:1}
.v3-signature .v2-quiet{color:rgba(255,255,255,.82);position:relative;z-index:1}
.v3-signature .v2-foot{color:rgba(255,255,255,.60);position:relative;z-index:1}

/* Own: premium private intelligence, not beige paper. */
.v2-private-rule{height:4px;border-radius:999px;background:linear-gradient(90deg,var(--v2-green),var(--v2-mint));margin:18px 0 24px}
.v3-own-hero{padding:24px;border-radius:28px;background:linear-gradient(145deg,#071D29 0%,#0E3440 63%,#087563 150%);box-shadow:var(--v3-shadow);color:#fff}
.v3-own-hero .v2-eyebrow{color:var(--v2-mint)}
.v3-own-hero .v2-display{color:#fff}
.v3-own-hero .v2-rows{margin-top:22px}
.v3-own-hero .v2-row{border-top-color:rgba(255,255,255,.14)}
.v3-own-hero .v2-row:last-child{border-bottom-color:rgba(255,255,255,.14)}
.v3-own-hero .v2-row .k{color:rgba(255,255,255,.66)}
.v3-own-hero .v2-row .v{color:#fff}
.v3-firewall{padding:22px;border:1px solid var(--v2-line);border-radius:24px;background:#fff;box-shadow:var(--v3-shadow-sm)}

/* General sections regain selective containment/depth. */
.v2-page > .v2-sec:not(.v3-signature):not(.v3-firewall),
.v2-page > .v2-sec-tight:not(.v3-intel-card):not(.v3-own-hero){
  padding:22px;border:1px solid var(--v2-line);border-radius:24px;background:#fff;box-shadow:0 8px 24px rgba(7,29,41,.055)
}

/* Definition rows and evidence. */
.v2-rows{margin-top:20px}
.v2-row{padding:12px 0;border-top:1px solid #EAF1EF;font-size:14.5px}
.v2-row:last-child{border-bottom:1px solid #EAF1EF}
.v2-row .k{color:var(--v2-mute)}
.v2-row .v{font-weight:750;color:var(--v2-ink)}
.v2-comp{padding:15px 0;border-top:1px solid var(--v2-line)}
.v2-comp .a{font-weight:800}
.v2-risk{padding:16px 0;border-top:1px solid #EAF1EF;margin-top:0}
.v2-risk:first-of-type{border-top:0}

/* Search results: premium listing cards with HomeLynx signal in the card body. */
.v2-result{margin-top:26px;background:#fff;border:1px solid var(--v2-line);border-radius:26px;overflow:hidden;box-shadow:var(--v3-shadow-sm);padding-bottom:18px}
.v2-result:first-of-type{margin-top:24px}
.v2-result .v2-bleed{margin:0}
.v2-result img{aspect-ratio:16/9;width:100%;object-fit:cover}
.v2-result > .price,.v2-result > .addr,.v2-result > p,.v2-result > .meta{margin-left:18px!important;margin-right:18px!important}
.v2-result .price{font-size:29px;font-weight:820;color:var(--v2-ink);margin-top:17px!important;letter-spacing:-.035em}
.v2-result .addr{font-weight:800;font-size:15.5px;margin-top:7px}
.v2-result .meta{color:var(--v2-faint)}
.v2-signal{display:inline-flex!important;width:auto;margin-top:12px!important;padding:7px 10px;border-radius:999px;background:var(--v2-soft);color:var(--v2-green);font-weight:800;font-size:12px;line-height:1.3}
.v2-signal.warn{background:#FBF3DF;color:#7A4E0C}
.v2-badge{background:#fff;border-color:var(--v2-line);font-weight:800;color:var(--v2-mute)}
.v2-badge.stale{background:#FBF3DF}

/* Search/List toggle and text buttons. */
.v2-toggle{display:inline-flex;gap:2px;margin-top:16px;padding:4px;border-radius:999px;background:var(--v2-soft);border:1px solid var(--v2-line)}
.v2-toggle button{padding:8px 14px;border:0;border-radius:999px;color:var(--v2-faint);font-weight:750}
.v2-toggle button.active{background:#fff;color:var(--v2-ink);box-shadow:0 4px 14px rgba(7,29,41,.08)}
.v2-textbtn{color:var(--v2-green);font-weight:800;text-decoration-color:rgba(8,117,99,.22)}

/* Forms + cards restore premium rounded geometry. */
.v2-card{border-radius:24px;border-color:var(--v2-line);box-shadow:var(--v3-shadow-sm);padding:22px}
.v2-inputrow{padding:15px 17px;border:1px solid var(--v2-line);border-radius:16px;background:#fff;box-shadow:0 6px 18px rgba(7,29,41,.04)}
.v2-input{background:#fff;border:1px solid var(--v2-line);border-radius:14px;padding:13px 14px}
.v2-input:focus{border-color:var(--v2-green);box-shadow:0 0 0 3px rgba(8,117,99,.10)}
.v2-send{background:var(--v2-green);border-color:var(--v2-green);color:#fff;font-weight:800}
.v2-cta{background:var(--v2-green);border-radius:14px;box-shadow:0 10px 24px rgba(8,117,99,.18);font-weight:800}

/* Notices/conflicts. */
.v2-notice{padding:18px;border:1px solid var(--v2-line);border-radius:20px;background:var(--v2-soft2)}
body.vis2 .check-ico.ok{color:var(--v2-green);border-color:var(--v2-green)}
.v2-path .sel{color:var(--v2-green)}

/* Sticky action bar: floating glass, green primary. */
body.vis2 .sticky-cta{
  left:12px;right:12px;bottom:92px;border:1px solid var(--v2-line);border-radius:20px;
  background:rgba(255,255,255,.95);box-shadow:0 16px 42px rgba(7,29,41,.12);padding:10px;
}
body.vis2 .sticky-cta .btn-line{border-radius:12px;color:var(--v2-ink);font-weight:750}
body.vis2 .sticky-cta .btn-primary{background:var(--v2-green);border-radius:12px;font-weight:800}
@media(min-width:1024px){body.vis2 .sticky-cta{left:252px;bottom:24px;right:24px}}

/* Reduced motion for final deploy. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* V7.0.3 — live search + autocomplete + interactive map */
.hlx-ac-wrap{position:relative}
.hlx-suggestions{position:absolute;z-index:120;left:0;right:0;top:100%;margin-top:8px;background:#fff;border:1px solid var(--v2-line);border-radius:18px;box-shadow:0 18px 46px rgba(7,29,41,.16);overflow:hidden}
.hlx-suggest{display:block;width:100%;text-align:left;padding:13px 16px;border:0;border-bottom:1px solid #EAF1EF;background:#fff;color:var(--v2-ink)}
.hlx-suggest:last-child{border-bottom:0}.hlx-suggest:active,.hlx-suggest:focus{background:var(--v2-soft);outline:0}
.hlx-suggest-main{display:block;font-size:14.5px;font-weight:800}.hlx-suggest-sub{display:block;margin-top:3px;font-size:12.5px;color:var(--v2-faint)}
.v3-no-photo{aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(145deg,#DFF3EE,#F8FCFB);color:var(--v2-green);font-weight:800}
.v3-no-photo small{font-size:12px;color:var(--v2-faint);font-weight:650}
.hlx-map-shell{border:1px solid var(--v2-line);border-radius:28px;overflow:hidden;background:#DDEBE7;box-shadow:var(--v3-shadow);position:relative}
.hlx-map-canvas{height:56vh;min-height:420px;max-height:650px;position:relative;overflow:hidden;touch-action:none;background:#DDEBE7;cursor:grab}
.hlx-map-canvas:active{cursor:grabbing}.hlx-map-tiles,.hlx-map-pins{position:absolute;inset:0}.hlx-map-tiles img{position:absolute;width:256px;height:256px;max-width:none;user-select:none;-webkit-user-drag:none}
.hlx-map-pins{pointer-events:none}.hlx-map-pin{pointer-events:auto;position:absolute;transform:translate(-50%,-100%);border:2px solid #fff;border-radius:999px;padding:7px 9px;background:var(--v2-ink);color:#fff;font-size:11.5px;font-weight:850;box-shadow:0 7px 18px rgba(7,29,41,.28);white-space:nowrap}
.hlx-map-pin:after{content:"";position:absolute;left:50%;bottom:-7px;transform:translateX(-50%) rotate(45deg);width:10px;height:10px;background:var(--v2-ink);border-right:2px solid #fff;border-bottom:2px solid #fff}
.hlx-map-pin:focus,.hlx-map-pin:active{background:var(--v2-green);outline:3px solid rgba(142,229,210,.55)}
.hlx-map-controls{position:absolute;right:12px;top:12px;display:grid;gap:6px}.hlx-map-controls button{width:42px;height:42px;border:1px solid rgba(223,233,230,.95);border-radius:13px;background:rgba(255,255,255,.95);color:var(--v2-ink);font-size:25px;font-weight:700;box-shadow:0 8px 18px rgba(7,29,41,.12)}
.hlx-map-attrib{position:absolute;right:7px;bottom:6px;padding:3px 6px;border-radius:6px;background:rgba(255,255,255,.84);font-size:9px;color:#52666B}
.hlx-map-detail{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;background:#fff;border-top:1px solid var(--v2-line);font-size:13px;color:var(--v2-mute)}.hlx-map-detail strong{color:var(--v2-ink);font-size:14px}.hlx-map-detail .num{font-weight:850;color:var(--v2-green);font-size:16px}

/* V7.0.7 — photo-ready listing rail. Real provider/MLS media only; no fake-home substitution. */
.v3-photo-frame{position:relative;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(145deg,#DFF3EE,#F8FCFB)}
.v3-photo-frame img{display:block;width:100%;height:100%;aspect-ratio:auto!important;object-fit:cover}
.v3-photo-count,.v2-photo-badge{position:absolute;right:12px;bottom:12px;padding:6px 9px;border-radius:999px;background:rgba(7,29,41,.82);color:#fff;font-size:11px;font-weight:800;line-height:1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 5px 14px rgba(7,29,41,.18)}
.v3-no-photo{min-height:210px;padding:30px 22px;text-align:center}
.v3-no-photo.detail{min-height:320px}
.v3-no-photo-icon{width:58px;height:58px;margin-bottom:5px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.72}
.v3-no-photo span{font-size:16px}
.v3-no-photo small{max-width:280px;line-height:1.45}

.v2-photo-gallery{position:relative;margin-top:10px;border-radius:30px;overflow:hidden;background:#DDEBE7;box-shadow:var(--v3-shadow)}
.v2-photo-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.v2-photo-track::-webkit-scrollbar{display:none}
.v2-photo-slide{flex:0 0 100%;margin:0;scroll-snap-align:start;background:#DDEBE7}
.v2-photo-slide img{display:block;width:100%;height:48vh;min-height:310px;max-height:520px;object-fit:cover}
@media(max-width:560px){
  .v2-photo-gallery{border-radius:26px}
  .v2-photo-slide img{height:43vh;min-height:300px}
  .v3-photo-count,.v2-photo-badge{right:10px;bottom:10px}
}

/* Photo-enrichment: provenance/licensing caption. Rendered only when the
   photo object carries attribution (Mapillary/NAIP/listing). V7.0.9 adds
   clickable Mapillary image + contributor links; visual system unchanged. */
.v3-photo-attr{
  display:block;margin-top:8px;font-size:11.5px;line-height:1.45;
  color:var(--v2-faint,#71858A);font-weight:600;letter-spacing:.01em;
}
.v3-photo-frame .v3-photo-attr{
  position:absolute;left:10px;bottom:10px;margin:0;max-width:calc(100% - 20px);
  background:rgba(7,29,41,.62);color:#fff;border-radius:8px;padding:4px 8px;
  font-size:10.5px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.v3-photo-frame{position:relative}
.v3-photo-attr.detail{margin:10px 2px 0}
.v3-photo-attr a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.v3-photo-frame .v3-photo-attr a{color:#fff}
