/* The entry is one desktop viewport: useful preview, location choice, one CTA. */
.ve-entry {
  --navy:var(--ink); --red:var(--brick); --paper:var(--ivory); --soft:#bcc8db;
  display:grid; grid-template-columns:1fr 1fr; grid-template-rows:minmax(0,1fr) auto;
  column-gap:clamp(36px,5vw,90px); row-gap:24px;
  height:calc(100svh - var(--site-header-height,75px));
  /* Content edges line up with .wrap on every page that embeds the entry. */
  padding:clamp(24px,4vh,48px) max(var(--gut), calc((100% - var(--wrap)) / 2 + var(--gut))) 28px;
  background:var(--navy); color:var(--paper);
  scroll-margin-top:0;
}
.ve-entry[hidden],.valuation-flow[hidden] { display:none; }
.ve-entry p { max-width:none; }
.ve-entry :focus-visible { outline:2px solid #fff; outline-offset:5px; }
.ve-left { min-width:0; min-height:0; display:flex; flex-direction:column; }
.ve-eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 20px; font-size:var(--type-eyebrow); font-weight:var(--weight-label); text-transform:uppercase; letter-spacing:var(--tracking-eyebrow); color:var(--paper); }
.ve-eyebrow i { flex:none; height:2px; width:28px; background:var(--red); }
.ve-intro :is(h1,h2) { color:var(--paper); font-family:var(--heading-family,var(--sans)); font-size:var(--heading-size,var(--type-display)); font-weight:var(--heading-weight,var(--weight-heading)); letter-spacing:var(--heading-tracking,var(--tracking-editorial)); line-height:var(--heading-line,var(--line-display)); margin:0 0 20px; }
.ve-lede { color:var(--on-ink-65); font-size:var(--type-lead); line-height:var(--line-lead); margin:0; max-width:36em; }
.ve-reassurance { display:flex; align-items:flex-start; gap:9px; margin:16px 0 0; color:var(--paper); font-size:var(--type-body); font-weight:var(--weight-label); line-height:var(--line-body); }
.ve-reassurance svg { flex:none; width:22px; height:24px; color:var(--red); }
.ve-benefits { list-style:none; padding:0; margin:22px 0 16px; display:flex; flex-wrap:wrap; gap:12px 24px; }
.ve-benefits li { display:flex; align-items:center; gap:9px; color:var(--on-ink-65); font-size:var(--type-metadata); }
.ve-benefits svg { flex:none; width:24px; height:26px; color:var(--red); }

/* Two overlapping cards suggest the result without duplicating the form. */
.ve-preview { position:relative; flex:1; min-height:130px; max-height:260px; margin-top:12px; }
.ve-previewDepth { position:absolute; inset:0; }
.ve-houseCard,.ve-valueCard { position:absolute; background:var(--paper); color:var(--navy); border-radius:8px; box-shadow:0 12px 28px #00132930; }
.ve-houseCard { left:3%; top:3%; width:38%; height:91%; transform:rotate(-4deg); overflow:hidden; }
.ve-houseCard img { display:block; width:100%; height:100%; object-fit:contain; padding:8px; }
.ve-valueCard { left:32%; top:18%; width:66%; padding:clamp(16px,1.5vw,24px); transform:rotate(-2deg); container-type:inline-size; }
.ve-valueCard > span { font-size:var(--type-metadata); }
.ve-valueCard > strong { display:block; font-family:var(--sans); font-size:var(--type-h3); font-weight:var(--weight-heading); letter-spacing:var(--tracking-heading); line-height:var(--line-h3); white-space:nowrap; }
.ve-valueCard > p { font-size:var(--type-caption); color:var(--ink-55); margin:5px 0 15px; }
.ve-resultMeta { display:flex; align-items:center; justify-content:space-between; gap:8px; border-top:1px solid #09234d15; padding-top:10px; }
.ve-localData { font-size:var(--type-caption); font-weight:var(--weight-label); }
.ve-localData i { font-style:normal; color:#176653; }
.ve-resultMeta small { color:var(--ink-55); font-size:var(--type-caption); }

.ve-right { display:grid; grid-template-rows:auto minmax(0,1fr); gap:12px; min-width:0; min-height:0; }
.ve-mapCopy { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.ve-mapCopy h3 { color:var(--paper); font-size:var(--heading-size,var(--type-h3)); font-weight:var(--heading-weight,var(--weight-heading)); letter-spacing:var(--heading-tracking,var(--tracking-heading)); margin:0 0 5px; line-height:var(--heading-line,var(--line-h3)); }
.ve-mapCopy h3 { white-space:pre-line; }
.ve-mapCopy p { font-size:var(--type-body); color:var(--soft); margin:0; line-height:var(--line-body); }
.ve-mapCopy .ve-sales { display:flex; align-items:center; gap:10px; flex:none; }
.ve-sales strong { font-family:var(--sans); color:var(--red); font-size:var(--type-data); font-weight:var(--weight-heading); line-height:var(--line-data); }
.ve-sales span { font-size:var(--type-caption); }
.ve-map { min-height:0; width:100%; }
.ve-mapStage { position:relative; width:100%; height:100%; }
.ve-mobilePicker { display:none; }
.ve-mapStage > svg { display:block; width:100%; height:100%; overflow:visible; }
.ve-map .canton-map__region { fill:#12365c; stroke:#8b9bae; stroke-width:.7; fill-opacity:1; vector-effect:non-scaling-stroke; transform:none; transition:fill var(--motion-fast) var(--ease),stroke var(--motion-fast) var(--ease); cursor:pointer; }
.ve-map .canton-map__region.is-preview { fill:#38638e; stroke:#b7cde1; }
.ve-map .canton-map__region.is-active { fill:#4e7fb0; stroke:#edf3fc; stroke-width:1.3; transform:none; }
.ve-map .canton-map__region:hover,.ve-map .canton-map__region:focus-visible { fill:#608fc1; stroke:#fff; stroke-width:1.3; outline:none; }
.ve-map .canton-map__dot { fill:var(--red); stroke:#fff; stroke-width:2; r:5.5; pointer-events:none; }
.ve-map .canton-map__count,.ve-map .canton-map__count-bg { display:none!important; }
.ve-mapLabel { font-family:var(--sans); font-size:var(--type-metadata); fill:#ebeff7; pointer-events:none; }
.ve-mapTooltip { position:absolute; z-index:3; padding:9px 14px; color:var(--navy); background:var(--paper); border-radius:6px; box-shadow:0 8px 24px #00162d26; transform:translate(-50%,calc(-100% - 18px)); pointer-events:none; white-space:nowrap; animation:veEnter var(--motion-quick) var(--ease); }
.ve-mapTooltip[hidden] { display:none; }
.ve-mapTooltip::after { content:""; position:absolute; top:calc(100% - 1px); left:calc(50% - 7px); border:7px solid transparent; border-bottom:0; border-top-color:var(--paper); }
.ve-mapTooltip strong { display:block; font-size:var(--type-metadata); line-height:var(--line-metadata); font-weight:var(--weight-medium); }
.ve-mapTooltip span { display:block; font-size:var(--type-metadata); color:#6c7e9a; }
.ve-mapTooltip b { color:var(--red); font-weight:var(--weight-medium); }

.ve-action { grid-column:2; grid-row:2; align-self:end; min-width:0; }
.ve-primaryCta { width:100%; max-width:500px; border:1px solid var(--red); background:var(--red); color:#fff; border-radius:6px; display:inline-flex; align-items:center; justify-content:space-between; gap:16px; min-height:58px; padding:13px 24px; font-weight:var(--weight-medium); font-size:var(--type-ui); line-height:var(--line-ui); transition:background var(--motion-fast) var(--ease); }
.ve-ctaArrow { flex:none; font-size:var(--type-icon); line-height:var(--line-icon); transition:transform var(--motion-fast) var(--ease); }
.ve-primaryCta:is(:hover,:focus-visible) { background:var(--brick-dark); }
.ve-primaryCta:is(:hover,:focus-visible) .ve-ctaArrow { transform:translateX(4px); }
.ve-process { grid-column:1; grid-row:2; align-self:end; display:grid; grid-template-columns:1fr 1.25fr .85fr; gap:18px; list-style:none; margin:0; padding:18px 0 0; border-top:1px solid #ffffff26; }
.ve-process li { display:flex; gap:10px; align-items:baseline; }
.ve-process li > span { color:var(--brick-on-ink); font-size:var(--type-metadata); }
.ve-process p { color:var(--on-ink-65); margin:0; font-size:var(--type-metadata); line-height:var(--line-metadata); }

@keyframes veEnter { from { opacity:0; translate:0 18px; } to { opacity:1; translate:0 0; } }
/* Scroll reveals move the paper cards without changing their composition.
   The map settles gently; the primary action stays visible and usable. */
.ve-entry :is(.ve-houseCard,.ve-valueCard) { --motion-rise:26px; --motion-reveal:780ms; }
.ve-entry .ve-map { --motion-rise:12px; --motion-reveal:760ms; }
@media (max-width:760px) {
  .ve-entry :is(.ve-houseCard,.ve-valueCard) { --motion-rise:16px; --motion-reveal:620ms; }
  .ve-entry .ve-map { --motion-rise:8px; --motion-reveal:620ms; }
}

@media (min-width:1000px) and (max-height:760px) {
  .ve-entry { row-gap:16px; padding-top:24px; padding-bottom:20px; }
  .ve-eyebrow { margin-bottom:var(--space-eyebrow-heading); }
  .ve-intro :is(h1,h2) { font-size:var(--heading-size,var(--type-display)); margin-bottom:14px; }
  .ve-lede { font-size:var(--type-lead); }
  .ve-benefits { margin:16px 0 8px; font-size:var(--type-metadata); }
  .ve-preview { margin-top:6px; max-height:210px; }
  .ve-valueCard { padding:14px 18px; }
  .ve-valueCard > p { margin-bottom:8px; }
  .ve-primaryCta { min-height:54px; font-size:var(--type-ui); }
}
/* Stack naturally on narrow screens and when browser zoom leaves little height. */
@media (max-width:999px), (max-height:599px) {
  .ve-entry { height:auto; min-height:calc(100svh - var(--site-header-height,75px)); grid-template-columns:1fr; grid-template-rows:auto; gap:30px; padding:32px var(--gut); }
  .ve-intro :is(h1,h2) { font-size:var(--heading-size,var(--type-display)); }
  .ve-left { grid-column:1; grid-row:1; }
  .ve-preview { flex:none; height:210px; width:min(100%,560px); margin:20px auto 0; }
  .ve-valueCard > strong { font-size:var(--type-h3); }
  .ve-right { grid-column:1; grid-row:2; gap:18px; }
  .ve-map { height:clamp(350px,65vw,500px); }
  .ve-action { grid-column:1; grid-row:3; }
  .ve-primaryCta { max-width:none; }
  .ve-process { grid-column:1; grid-row:4; }
}
@media (max-width:480px) {
  .ve-entry { row-gap:26px; }
  .ve-eyebrow { font-size:var(--type-eyebrow); }
  .ve-lede { font-size:var(--type-lead); }
  .ve-benefits { gap:10px 18px; }
  .ve-benefits li { font-size:var(--type-metadata); }
  .ve-preview { height:170px; }
  .ve-valueCard { left:28%; width:72%; padding:14px 12px; }
  .ve-valueCard > span { font-size:var(--type-caption); }
  /* Phones: the example range must fit inside the card. */
  .ve-valueCard > strong { font-size:var(--type-h4); }
  .ve-valueCard > p { font-size:var(--type-caption); margin-bottom:10px; }
  .ve-localData { font-size:var(--type-caption); }
  .ve-resultMeta small { font-size:var(--type-caption); }
  .ve-mapCopy { gap:12px; }
  .ve-mapCopy h3 { font-size:var(--heading-size,var(--type-h3)); }
  .ve-mapCopy p { font-size:var(--type-body); }
  .ve-mapCopy .ve-sales { flex-direction:column; gap:4px; align-items:flex-start; }
  .ve-sales strong { font-size:var(--type-data); }
  .ve-sales span { font-size:var(--type-caption); }
  .ve-primaryCta { font-size:var(--type-ui); padding-inline:18px; }
  .ve-process { gap:12px; }
  .ve-process li { gap:6px; }
  .ve-process p { font-size:var(--type-metadata); }
}
@media (max-width:600px) {
  .ve-right { grid-template-rows:auto auto auto; }
  .ve-mobilePicker { display:grid; gap:8px; color:var(--paper); font-size:var(--type-metadata); font-weight:var(--weight-label); }
  .ve-mobilePicker select { width:100%; min-height:48px; padding:10px 14px; border:1px solid #ffffff55; border-radius:6px; background:var(--paper); color:var(--navy); font:var(--weight-body) var(--type-body)/var(--line-body) var(--sans); }
  .ve-mobilePicker select:focus-visible { outline:3px solid #fff; outline-offset:3px; }
}
@media (prefers-reduced-motion:reduce) {
  .ve-entry,.ve-entry * { animation:none!important; transition:none!important; }
  .ve-previewDepth,.ve-primaryCta:is(:hover,:focus-visible),.ve-primaryCta:is(:hover,:focus-visible) .ve-ctaArrow { transform:none; }
}

/* Phones: the start button stays in reach while the intro, example and map scroll by. */
@media (max-width:760px) {
  .ve-action { position:sticky; bottom:0; z-index:6; margin-inline:calc(-1 * var(--gut)); padding:14px var(--gut) calc(14px + env(safe-area-inset-bottom)); background:linear-gradient(to bottom, rgba(9,35,77,0), var(--navy) 34%); }
}

/* Keep the full seven-digit range inside its preview card at every width. */
.ve-valueCard > strong { font-size:var(--type-estimate-preview); }

/* Reserve the final digit width during the one-time estimate count. */
.ve-valueCard [data-count] { display:inline-block; font-variant-numeric:tabular-nums; text-align:right; }
