.hero .call-panel__row > .btn { display: flex; width: 100%; min-height: 48px; justify-content: center; text-align: center; }
.sticky-cta > .btn { flex: 1 1 0; min-width: 0; min-height: 48px; justify-content: center; text-align: center; }
.hero .call-panel__row > .btn,
.sticky-cta > .btn { display: inline-flex; align-items: center; box-sizing: border-box; min-height: 52px; padding: 10px 12px; line-height: 1.25; }
.hero .call-panel__row + .call-panel__row { margin-top: 8px; }
.hero .call-panel__row > .btn:active,
.sticky-cta > .btn:active { filter: brightness(.9); }

/* Scroll accents sit inside the existing entrance animation. */
@media (prefers-reduced-motion: no-preference) {
  [data-hero] .photo--hero .photo__img { translate: 0 calc(-.5 * var(--photo-drift, 0px)); scale: 1.08; }
  [data-hero] .hero__title {
    translate: 0 var(--title-drift, 0px);
    opacity: var(--title-opacity, 1);
  }
  [data-route] .route__card { translate: 0 var(--card-slide, 0px); }
}

#sales-search { display: grid; gap: .65rem; margin-bottom: 1rem; }
#sales-search input { width: 100%; min-width: 0; min-height: 48px; border: 1px solid currentColor; border-radius: .5rem; padding: .65rem; font: inherit; }
#sales-search button { justify-content: center; min-height: 52px; }
#nearby-sales { scroll-margin-top: 6rem; }
#nearby-sales[hidden] { display: none; }
#nearby-sales .card, #nearby-sales .faq__item { margin-block: 1rem; }
#nearby-sales summary { cursor: pointer; padding: .75rem; font-weight: 800; }
.sales-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }

.guide-fields { display: grid; gap: .8rem; padding: .75rem; max-width: 36rem; }
.guide-fields label { display: grid; gap: .25rem; }
.guide-fields input, .guide-fields select { min-height: 48px; width: 100%; padding: .5rem; font: inherit; border: 1px solid currentColor; border-radius: .5rem; }
@media (max-width: 48rem) {
  [data-hero] .hero__grid { padding-top: 1.5rem; gap: 1rem; }
  [data-hero] .hero__title { font-size: clamp(1.8rem, 7vw, 2.5rem); }
}

.guide-shortcuts { position: sticky; top: var(--header-h, 6rem); z-index: 2; background: white; padding-block: .5rem; }
.guide-choices { display: grid; gap: .5rem; margin-block: .75rem 1rem; }
.guide-choices button { min-height: 48px; justify-content: flex-start; text-align: left; }
.guide-choices button[aria-expanded="true"] { background: #17324d; color: white; }
.guide-panel { margin-bottom: 1.25rem; }
.guide-panel[hidden] { display: none; }
.condition-question { margin-block: 1rem; padding: .75rem; border: 1px solid #73899c; border-radius: .5rem; }
.condition-choices { display: flex; flex-wrap: wrap; gap: .5rem; }
.condition-choices label { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; padding-inline: .55rem; border: 1px solid #73899c; border-radius: .5rem; cursor: pointer; }
.condition-choices label:has(:checked) { background: #17324d; color: white; }
.condition-question p { margin-top: .4rem; }

/* Conversation controls: existing brand colors, generous mobile touch targets. */
.guide-panel { max-width: 48rem; padding: clamp(1rem, 4vw, 2rem); }
.guide-choices { max-width: 48rem; gap: .75rem; }
.guide-choices button { display: flex; justify-content: space-between; border: 1px solid var(--line); border-radius: 1rem; padding: 1rem; background: var(--white); box-shadow: 0 2px 4px #17324d06, 0 8px 20px #17324d08; }
.guide-choices button::after { content: '+'; margin-left: .75rem; font-size: 1.5rem; }
.guide-choices button[aria-expanded="true"]::after { content: '−'; }
.guide-choices button:hover { border-color: var(--navy); }
.guide-choices button:active { transform: translateY(1px); }
.guide-fields { max-width: none; padding: 0; gap: 1rem; }
.calculator-intro, .calculator-note { font-size: 1rem; color: var(--ink-muted); }
.slider-field { border: 1px solid var(--line); border-radius: 1rem; padding: 1rem; min-width: 0; background: var(--white); }
.slider-heading { display: flex; flex-wrap: wrap; gap: .25rem .75rem; justify-content: space-between; align-items: baseline; }
.slider-heading label { font-weight: 700; font-size: 1.0625rem; }
.cost-state { color: var(--ink-muted); font-size: 1rem; }
.is-included { border-color: var(--navy); }
.is-included .cost-state { color: var(--navy); font-weight: 700; }
.amount-entry { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; font-size: 1.5rem; font-weight: 700; }
.guide-fields .amount-entry input { min-width: 0; width: 100%; border: 1px solid var(--line); color: var(--navy); background: var(--sky); font-size: 1.5rem; font-weight: 700; }
.guide-fields .money-slider { appearance: none; -webkit-appearance: none; display: block; width: 100%; height: 44px; padding: 0; margin: .5rem 0 0; border: 0; background: transparent; cursor: pointer; }
.money-slider::-webkit-slider-runnable-track { height: 8px; border-radius: 9px; background: linear-gradient(to right, var(--orange) var(--fill, 0%), var(--track) var(--fill, 0%)); }
.money-slider::-moz-range-track { height: 8px; border-radius: 9px; background: var(--track); }
.money-slider::-moz-range-progress { height: 8px; background: var(--orange); }
.money-slider::-webkit-slider-thumb { appearance: none; width: 28px; height: 28px; margin-top: -10px; border-radius: 50%; border: 3px solid var(--white); background: var(--navy); box-shadow: 0 0 0 1px var(--navy), 0 3px 8px #17324d26; }
.money-slider::-moz-range-thumb { width: 24px; height: 24px; border-radius: 50%; border: 3px solid var(--white); background: var(--navy); box-shadow: 0 0 0 1px var(--navy); }
.money-slider:hover { filter: brightness(.9); }
.money-slider:active { filter: brightness(.8); }
.slider-scale { display: flex; justify-content: space-between; color: var(--ink-muted); font-size: 1rem; }
.clear-cost { min-height: 44px; border: 0; background: transparent; color: var(--navy); text-decoration: underline; font: inherit; font-size: 1rem; cursor: pointer; padding: .5rem 0 0; }
.clear-cost:hover { text-decoration-thickness: 2px; }
.clear-cost:active { opacity: .7; }
.guide-fields output { display: block; border-left: 4px solid var(--orange); border-radius: .5rem; padding: 1.25rem; background: var(--sky); font-weight: 700; line-height: 1.7; }
.condition-question { min-width: 0; border: 1px solid var(--line); border-radius: 1rem; padding: 1rem; }
.condition-question legend { padding: 0 .25rem; font-weight: 700; font-size: 1.0625rem; }
.condition-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.condition-choices label { position: relative; min-height: 56px; justify-content: center; padding: .5rem .15rem; border-color: var(--line); border-radius: .75rem; font-size: 1rem; font-weight: 700; text-align: center; }
.condition-choices input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.condition-choices label:hover { border-color: var(--navy); background: var(--sky); }
.condition-choices label:has(:checked) { background: var(--navy); color: white; border-color: var(--navy); box-shadow: inset 0 -3px var(--orange); }
.condition-choices label:active { transform: scale(.97); }
.condition-choices label:has(:focus-visible), .guide-fields :focus-visible, .guide-choices button:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }
.condition-question p { font-size: 1rem; color: var(--ink-muted); }
.condition-question p:empty { display: none; }
.condition-question p:not(:empty) { background: var(--sky); border-radius: .5rem; padding: .75rem; margin-top: .75rem; }
.guide-panel { scroll-margin-top: calc(var(--header-h, 5rem) + 5rem); }
#guide-condition > p { font-size: 1rem; line-height: 1.7; }
/* Guided conversation: one decision, an explanation, and a clear next step. */
#nearby-sales [hidden] { display: none; }
#nearby-sales { padding-block: 2rem; }
#nearby-sales > .container { max-width: 48rem; }
#nearby-sales h2, #nearby-sales h3, #nearby-sales legend { scroll-margin-top: calc(var(--header-h) + 1.25rem); }
#nearby-sales h2 { font-size: clamp(1.7rem, 5vw, 2.2rem); }
#nearby-sales p, #nearby-sales summary, #nearby-sales label { font-size: 1rem; }
#nearby-sales .eyebrow { font-size: .875rem; }
.guide-shortcuts { position: static; background: none; padding: 0; }
.guide-shortcuts a { font-size: 1rem; }
.guide-choices button { width: 100%; font: inherit; color: var(--navy); cursor: pointer; align-items: center; min-height: 88px; }
.guide-choices button::after { content: none; }
.guide-choices strong { font-size: 1.125rem; display: block; }
.guide-choices small { display: block; font-size: 1rem; margin-top: .25rem; color: var(--ink-muted); font-weight: 400; }
.guide-panel { margin-top: 1rem; }
.guide-panel h3 { font-size: 1.5rem; line-height: 1.25; }
.guide-panel .eyebrow { margin-top: .75rem; }
.guide-intro { color: var(--ink-muted); line-height: 1.6; margin: .75rem 0 1rem; }
.guide-back { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem 0; background: none; border: 0; font: inherit; font-size: 1rem; color: var(--navy); cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.guide-back:hover { text-decoration-thickness: 2px; }
.guide-back:active { opacity: .7; }
.guide-panel button:focus-visible, .guide-panel summary:focus-visible, .guide-panel a:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.estimate-card { background: var(--sky); border: 1px solid var(--line); border-radius: 1rem; padding: 1rem; }
.sample-tag { font-size: .75rem; font-weight: 800; letter-spacing: .04em; }
.estimate-lines { margin: .75rem 0; }
.estimate-lines > div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .25rem 1rem; padding-block: .5rem; font-size: 1rem; }
.estimate-lines dt { color: var(--ink-muted); }
.estimate-lines dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.estimate-total { border-top: 1px solid var(--line-strong); padding-top: 1rem; }
.estimate-total > span { font-size: 1rem; }
.estimate-total > strong { display: block; font-size: clamp(1.2rem, 5.8vw, 1.85rem); line-height: 1.3; letter-spacing: -.03em; font-variant-numeric: tabular-nums; margin-top: .25rem; }
#nearby-sales .estimate-total p { font-size: 1rem; line-height: 1.5; margin-top: .5rem; color: var(--ink-muted); }
.guide-fields .condition-question { margin: .25rem 0; }
.guide-disclosure { border-top: 1px solid var(--line); padding-block: .5rem; }
#nearby-sales .guide-disclosure summary { padding: .75rem 0; min-height: 44px; }
.guide-disclosure > p { margin: .75rem 0; line-height: 1.65; }
.guide-fields label { font-weight: 700; }
.guide-fields .condition-choices label { display: flex; }
.amount-tools { display: flex; align-items: center; justify-content: space-between; font-size: .875rem; }
.amount-tools button { width: 44px; height: 44px; border: 1px solid var(--line-strong); border-radius: 50%; background: white; color: var(--navy); font-size: 1.5rem; cursor: pointer; }
.amount-tools button:hover { background: var(--sky); }
.amount-tools button:active { transform: scale(.95); }
.agent-assumptions { border: 0; padding: 1rem 0 0; margin-top: 1rem; }
.agent-assumptions legend { font-weight: 700; font-size: 1rem; }
.assumption-choices { display: grid; gap: .5rem; }
.assumption-choices label { display: flex; align-items: center; gap: .5rem; min-height: 48px; border: 1px solid var(--line); border-radius: .5rem; padding: .5rem; cursor: pointer; }
.guide-fields .assumption-choices input { width: 20px; min-height: 20px; accent-color: var(--navy); }
.assumption-choices label:has(:checked) { background: var(--sky); border-color: var(--navy); }
.assumption-choices label:hover { border-color: var(--navy); }
.assumption-choices label:active { opacity: .8; }
#agent-quote, #agent-example { margin-top: 1rem; }
.guide-invite { border-top: 1px solid var(--line); padding-top: 1.25rem; margin-top: 1.5rem; }
.guide-invite h3 { font-size: 1.25rem; }
.guide-invite p { margin: .75rem 0 1rem; line-height: 1.65; }
.guide-invite .btn { display: flex; justify-content: center; }
.condition-navigation { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.condition-navigation .btn { font-size: 1rem; min-height: 48px; flex: 1; justify-content: center; }
#nearby-sales .step-count { font-size: 1rem; font-weight: 700; color: var(--ink-muted); margin-top: 1.25rem; }
.condition-question { margin-top: .75rem; }
.guide-error { border-left: 3px solid var(--orange); padding: .75rem; background: var(--sky); }
@media(max-width:48rem) {
  .guide-started .guide-shortcuts { display: none; }
  .sticky-cta { bottom: max(.5rem, env(safe-area-inset-bottom)); }
  #nearby-sales { padding-bottom: 6rem; }
  .guide-panel { padding: 1rem; }
}
/* Second mobile review: keep the estimate and the next question close. */
.guide-panel > .eyebrow { display: none; }
.guide-panel > h3 { margin-top: .75rem; }
.estimate-lines > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: .5rem; }
.estimate-lines dd { text-align: right; }
@media(max-width:48rem) {
  .js .guide-started .sticky-cta { visibility: visible; transform: none; }
  #nearby-sales .guide-panel { gap: 0; }
}
#nearby-sales h2, #nearby-sales h3, #nearby-sales legend { scroll-margin-top: 8rem; }

/* Driftstop: retain the original website touch-target contract. */
#nearby-sales .guide-back, #nearby-sales summary { min-height: 48px; }
#nearby-sales .money-slider { height: 48px; }
#nearby-sales .amount-tools button { width: 48px; height: 48px; }
#nearby-sales .btn--primary, #sales-search button, .sticky-cta .btn--primary { min-height: 56px; }
