/* A-Plan iOS-inspired public theme. It intentionally follows the existing
   data and controls; illustration screens are not used as product data. */
:root {
  color-scheme: light;
  --blue: #007aff;
  --deep: #111827;
  --light: #eef6ff;
  --line: #dce3ee;
  --muted: #737f94;
  --green: #27a16b;
  --red: #d25a5a;
  --ios-bg: #f2f2f7;
  --ios-surface: #fff;
  --ios-border: #e2e7f0;
  --ios-shadow: 0 12px 36px rgba(30, 48, 82, .07), 0 2px 8px rgba(30, 48, 82, .035);
  --ios-shadow-hover: 0 18px 42px rgba(0, 91, 191, .14), 0 3px 12px rgba(25, 52, 96, .07);
  --ios-radius: 24px;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", Arial, sans-serif;
}
html { background: var(--ios-bg); }
body { color: #151c2e; background: var(--ios-bg); font-size: 15px; line-height: 1.43; }
button, input, select, textarea { font-family: inherit; }
button { -webkit-tap-highlight-color: transparent; }
::selection { background: #cfe8ff; color: #0b376e; }
:where(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid #64aeff;
  outline-offset: 3px;
}
h1 { color: #111827; font-size: clamp(28px, 2.45vw, 40px); font-weight: 800; letter-spacing: -.045em; line-height: 1.12; }
h2 { color: #151c2e; font-size: 23px; letter-spacing: -.03em; }
h3, .card-title { color: #1b2436; font-size: 18px; font-weight: 760; letter-spacing: -.02em; }
.help, .muted, .field__label, .summary-row { color: var(--muted); }
.small, .help, .note { font-size: 13px; line-height: 1.48; }
.container { width: min(calc(100% - 48px), 1640px); }
.shell { min-height: 100dvh; }
.main { padding: 23px 0 30px; }

/* Navigation and persistent bottom action dock */
.topbar { background: transparent; border: 0; }
.topbar__inner {
  display: flex;
  min-height: 80px;
  gap: 15px;
  align-items: center;
  margin-top: 14px;
  padding: 9px 18px;
  border: 1px solid rgba(222, 229, 239, .95);
  border-radius: 27px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 9px 30px rgba(41, 62, 100, .065);
  -webkit-backdrop-filter: blur(22px);
  backdrop-filter: blur(22px);
}
.site-menu > summary, .icon-button {
  width: 44px;
  height: 44px;
  border: 1px solid var(--ios-border);
  border-radius: 15px;
  background: #f7f9fd;
  color: #4f617d;
  box-shadow: none;
}
.topbar .brand { min-width: 156px; gap: 10px; }
.brand__mark { width: 44px; height: 44px; border-radius: 14px; background: #e9f3ff; box-shadow: none; color: var(--blue); }
.brand__name { color: #10192b; font-size: 23px; font-weight: 850; }
.brand__name em { color: var(--blue); }
.brand__tag { color: #8793a6; font-size: 10px; white-space: nowrap; }
.topbar .stepbar { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: center; flex: 1; gap: 4px; min-width: 0; background: transparent; border: 0; }
.topbar .step { position: relative; display: flex; justify-content: center; gap: 8px; min-width: 0; min-height: 48px; color: #929caf; padding: 5px 3px; }
.topbar .step__num { width: 35px; height: 35px; flex: none; border: 1px solid #d9e0eb; border-radius: 50%; color: #7b8799; background: #f2f4f8; font-size: 14px; font-weight: 750; }
.topbar .step__label { display: block; color: inherit; font-size: 12px; font-weight: 730; line-height: 1.2; }
.topbar .step__sub { display: none; }
.topbar .step.is-active { color: #1b273a; }
.topbar .step.is-active .step__num { color: #fff; background: var(--blue); border-color: var(--blue); box-shadow: 0 6px 13px #007aff38; }
.topbar .step.is-done { color: #2477dd; }
.topbar .step.is-done .step__num { color: #fff; background: var(--blue); border-color: var(--blue); box-shadow: 0 5px 12px #007aff24; }
.topbar .step.is-skipped .step__num { color: #a43b4b; background: #fff0f1; border-color: #e4b4bb; }
.top-actions { margin-left: 0; gap: 8px; }
.pill, .info-pill { color: #53677f; background: rgba(248,250,253,.95); border: 1px solid var(--ios-border); border-radius: 999px; font-size: 11px; font-weight: 650; }
.pill { padding: 9px 12px; }
.info-pill { padding: 10px 14px; }
.info-pill::before { color: var(--blue); }
.footer { position: sticky; bottom: 0; z-index: 40; background: transparent; border: 0; padding-bottom: max(12px, env(safe-area-inset-bottom)); }
.footer__inner { min-height: 76px; padding: 10px 13px; border: 1px solid var(--ios-border); border-radius: 23px; background: rgba(255,255,255,.91); box-shadow: 0 -4px 25px rgba(45,65,100,.06); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); }
.footer-progress { gap: 11px; color: #8a97a9; font-size: 12px; }
.footer-progress i { width: 120px; height: 5px; background: #e8edf5; }
.footer-progress i::before { background: var(--blue); }
.footer-actions { gap: 10px; }
.footer-actions .btn { min-width: 126px; }
.footer-actions .btn--primary { min-width: 250px; }

/* Shared surfaces, controls, and interaction */
.panel { background: rgba(255,255,255,.96); border: 1px solid var(--ios-border); border-radius: var(--ios-radius); box-shadow: var(--ios-shadow); }
.panel-pad, .summary, .selected-project, .payment-choice, .cost-panel, .lead-panel { padding: 24px; }
.page-head { margin-bottom: 19px; align-items: center; }
.page-head p, .location-intro { color: #7c8a9f; font-size: 15px; }
.eyebrow { color: var(--blue); font-size: 11px; font-weight: 800; }
.page-head--project { margin-bottom: 18px; }
.field__label { color: #59677d; font-size: 13px; font-weight: 680; }
.control { min-height: 48px; padding: 11px 14px; color: #1f2b40; background: #fff; border: 1px solid #d9e1ed; border-radius: 13px; font-size: 15px; box-shadow: 0 1px 2px #283b5d08; }
.control:hover { border-color: #b9d3ef; }
.control:focus { border-color: var(--blue); outline: 3px solid #d9ecff; }
.control::placeholder { color: #a2aaba; }
.segmented { gap: 4px; padding: 5px; border-radius: 15px; background: #eef0f5; }
.segmented button { min-height: 43px; border-radius: 11px; color: #69778d; font-size: 14px; }
.segmented button.is-active { color: var(--blue); background: #fff; box-shadow: 0 2px 8px #233d6622; }
.btn, .mini-btn, .chip, .program, .option-card, .package-level, .map-controls button {
  border-color: #d8e1ec;
  background: #fff;
  color: #263449;
  box-shadow: 0 2px 6px #27476b0a;
}
.btn { min-height: 48px; padding: 11px 20px; border-radius: 14px; font-size: 14px; font-weight: 760; }
.btn:hover { border-color: #9bc8f7; background: #f7fbff; }
.btn--primary { color: #fff; border-color: #0879f5; background: linear-gradient(135deg,#0879f5,#087afa 65%,#1289f8); box-shadow: 0 9px 20px #007aff30; }
.btn--primary:hover { color: #fff; background: linear-gradient(135deg,#006ee8,#087af1); border-color: #0070e7; box-shadow: 0 13px 24px #007aff40; }
.btn--light { color: var(--blue); background: #eaf4ff; border-color: #d6eaff; }
.btn:disabled { opacity: .52; box-shadow: none; }
.btn--small { min-height: 42px; font-size: 13px; }
.chip { min-height: 42px; padding: 9px 13px; border-radius: 12px; color: #68758a; font-size: 13px; }
.chip.is-active { color: #006de4; background: #e6f3ff; border-color: #87c0fa; box-shadow: inset 0 0 0 1px #9fd0ff30; }
.note, .warning, .success { padding: 13px 15px; border-radius: 14px; font-size: 13px; }
.note { color: #64758c; background: #f4f7fb; border-color: #e2eaf3; }
.warning { background: #fff7f5; border-color: #f2d7d2; }
.success { background: #eefbf5; border-color: #c8ecdb; }
.stat { padding: 12px; border-radius: 13px; color: #1f324a; background: #f6f9fd; border-color: #e2e9f2; }
.stat span { color: #8290a5; font-size: 12px; }
.stat strong { color: #1a2b43; font-size: 15px; }
.summary-row { padding: 11px 0; border-color: #e7ebf1; font-size: 13px; }
.summary-row b { color: #1b2b41; font-size: 13px; font-weight: 750; }
.price-main { color: #10192b; font-size: 33px; }
.summary-hero, .cost-hero { background: linear-gradient(115deg,#0670ec 0%,#148cfb 54%,#55c4ef 100%); border-radius: 20px; box-shadow: 0 10px 22px #007aff22; }
.summary-hero span, .summary-hero small, .cost-hero small { color: #e9f5ff; }
.summary-hero strong, .cost-hero strong { color: #fff; }
:where(button:not(:disabled), .site-menu > summary) { transition: transform .18s ease, filter .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease; }
@media (hover: hover) {
  :where(button:not(:disabled), .site-menu > summary):hover { transform: translateY(-2px); filter: none; }
  :where(.project-card:not(:disabled), .developer):hover { box-shadow: var(--ios-shadow-hover); }
}
:where(button:not(:disabled), .site-menu > summary):active { transform: scale(.985); filter: brightness(.98); }

/* Step 1 — projects */
.stage-grid { gap: 16px; }
.stage-grid--project {
  display: grid;
  grid-template-columns: minmax(270px, .9fr) minmax(0, 2.15fr) minmax(330px, 1.1fr);
  grid-template-rows: minmax(0, 1fr);
  height: min(calc(100dvh - 215px), 820px);
  min-height: 620px;
}
.stage-grid--project > .filters {
  grid-column: 1; grid-row: 1;
  display: flex; flex-direction: column; flex-wrap: nowrap; align-items: stretch;
  gap: 17px; padding: 23px; overflow-y: auto;
}
.stage-grid--project > .filters .card-title { margin: 0 0 4px; font-size: 20px; }
.filters .filter-group { display: block; }
.filters .filter-group > label { display: block; margin-bottom: 9px; color: #57667c; }
.filters .chip-row { gap: 7px; }
.filters .filter-area { flex: none; min-width: 0; display: block; padding-top: 5px; }
.filter-area__range { height: 35px; }
.filter-area__track { top: 16px; background: linear-gradient(to right, #e1e6ee 0 var(--range-from), #007aff var(--range-from) var(--range-to), #e1e6ee var(--range-to) 100%); }
.filter-area__range input { height: 35px; }
.filter-area__range input::-webkit-slider-thumb { width: 19px; height: 19px; margin-top: -7px; border: 3px solid #fff; background: #007aff; box-shadow: 0 1px 6px #0059bd6b; }
.filter-area__range input::-moz-range-thumb { width: 15px; height: 15px; border: 3px solid #fff; background: #007aff; box-shadow: 0 1px 6px #0059bd6b; }
.filter-area__limits { color: #a0a9b8; font-size: 11px; }
.stage-grid--project > .project-panel { grid-column: 2; grid-row: 1; min-height: 0; overflow: hidden; padding: 18px; }
.project-panel .admin-toolbar { margin-bottom: 10px; }
.project-panel .admin-toolbar h3 { font-size: 18px; }
.project-instruction { margin-bottom: 13px; color: #8794a8; }
.stage-grid--project .project-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; max-height: calc(100% - 80px); overflow-y: auto; padding: 2px 4px 10px 2px; }
.project-card { border: 1px solid #e0e7ef; border-radius: 19px; box-shadow: 0 3px 10px #233d6610; }
.project-card.is-selected { border: 2px solid var(--blue); box-shadow: 0 0 0 4px #007aff16, 0 8px 24px #007aff17; }
.project-card:hover { transform: translateY(-3px); border-color: #66b2ff; }
.project-card__media, .project-card .aplan-image, .stage-grid--project .project-card .aplan-image { height: clamp(205px, 26vh, 280px); }
.project-card__image--3 { background: #f7fbff; }
.project-card__content { padding: 14px 15px 15px; }
.project-card__line { align-items: center; gap: 5px 9px; }
.project-card__line strong { flex: 1 0 100%; color: #152033; font-size: 18px; }
.project-card__meta { color: #7c8a9e; }
.project-card__price { margin-left: auto; color: #18283c; }
.project-card__hint { background: #152d49c9; border-radius: 8px; }
.stage-grid--project > .selected-project { grid-column: 3; grid-row: 1; padding: 19px; overflow-y: auto; }
.selected-project__identity h2 { font-size: 23px; margin: 3px 0 13px; }
.stage-grid--project .selected-project .aplan-image:not(.aplan-image--plan) { height: 190px; }
.stage-grid--project .selected-project .aplan-image--plan { height: 220px; }
.selected-project .aplan-image { border-radius: 15px; }
.selected-project__details .stat-grid { gap: 8px; }
.selected-project__plan .help { margin-top: 7px; color: #94a0b0; }
.plan-popover { border-color: #cfdfef; border-radius: 18px; background: #f8fbff; box-shadow: var(--ios-shadow-hover); }

/* Step 2 — estimate sections */
.stage-grid--package { grid-template-columns: minmax(255px,.8fr) minmax(0,2.1fr) minmax(315px,.95fr); }
.package-nav { gap: 6px; padding: 18px; }
.package-picker { padding: 3px 3px 17px; margin-bottom: 9px; border-bottom-color: #e8edf4; }
.package-picker .field__label { color: #425673; font-size: 13px; }
.package-picker .control { font-size: 14px; }
.package-nav button { min-height: 46px; padding: 11px 13px; color: #607087; border-radius: 13px; font-size: 14px; }
.package-nav button.has-selection { color: #21324a; }
.package-nav button.has-selection > span:last-child { color: #007aff; background: #dcefff; }
.package-nav button.is-active { color: #0071e8; background: #e8f3ff; border-color: #cce6ff; }
.package-nav button.is-active > span:last-child { color: #fff; background: #007aff; }
.package-content { padding: 25px; min-height: 620px; }
.package-content h3 { margin: 0 0 5px; font-size: 25px; }
.package-content .help { margin-bottom: 18px; }
.option-list { gap: 12px; }
.option-card { min-height: 93px; padding: 17px 19px; border: 1px solid #dce5ef; border-radius: 17px; }
.option-card.is-selected { border: 2px solid var(--blue); background: #f4faff; box-shadow: 0 6px 17px #007aff16; }
.option-card strong { color: #1c2c43; font-size: 16px; }
.option-card b { color: #1a2b42; font-size: 15px; }
.option-card small { color: #8793a5; font-size: 13px; }
.option-card__recommended { color: #006fe6; background: #e3f1ff; border-radius: 999px; }
.stage-grid--package > .summary { gap: 10px; padding: 18px; }
.stage-grid--package > .summary .aplan-image { height: 205px; border-radius: 17px; }
.stage-grid--package > .summary h3 { font-size: 18px; margin-top: 4px; }
.stage-grid--package .price-main { margin: 10px 0; }
.stage-grid--package > .summary .summary-row { padding: 9px 0; line-height: 1.28; }

/* Step 3 — location and map */
.location-title { margin-bottom: 5px; }
.location-intro { margin-bottom: 17px; }
.stage-grid--location { grid-template-columns: minmax(245px,.8fr) minmax(0,2.25fr) minmax(280px,.9fr); grid-template-rows: minmax(0,1fr); height: min(calc(100dvh - 225px), 850px); min-height: 660px; }
.stage-grid--location > .panel-pad, .stage-grid--location > .location-summary { min-height: 0; overflow-y: auto; }
.stage-grid--location > .panel-pad { padding: 20px; }
.stage-grid--location .field { margin: 19px 0; }
.stage-grid--location .card-title { font-size: 18px; }
.ownership-toggle { min-height: 52px; border: 1px solid #dae3ed; border-radius: 13px; background: #f8fbff; color: #264463; }
.ownership-toggle.is-active { border-color: #8cc6ff; background: #e7f3ff; color: #006fe6; }
.ownership-toggle__mark { border-color: #aebdce; }
.ownership-toggle.is-active .ownership-toggle__mark { border-color: #007aff; background: #007aff; }
.plot-ownership .help { color: #8794a6; }
.location-picker > summary { font-size: 14px; }
.location-picker[open] > summary { border-color: #007aff; background: #f4faff; }
.location-picker > summary::after { color: #007aff; }
.location-picker__menu { border-color: #dae7f4; border-radius: 15px; box-shadow: var(--ios-shadow-hover); }
.location-picker__item { color: #26374f; border-bottom-color: #eef1f6; border-radius: 8px; }
.location-picker__item:hover, .location-picker__item.is-selected { background: #e8f4ff; }
.plot-area { padding: 16px; background: #f6f9fd; border: 1px solid #e0e7ef; border-radius: 15px; }
.plot-area__value { color: #17253a; font-size: 19px; }
.plot-area input[type=range] { accent-color: #007aff; }
.stage-grid--location .map-panel { overflow: hidden; border-color: #dde5ef; background: #dfe5e9; }
.map .map-territory { fill: #f8f9f5; stroke: #8097a6; stroke-width: 1.65; }
.map .map-boundary { stroke: #c3d1d4; }
.map .map-lake { fill: #b4dcf3; }
.map .map-river, .map-detail-water { stroke: #8bcbed; }
.map-detail-water--river { stroke: #53b1e5; }
.map-detail-road--motorway, .map-detail-road--trunk { stroke: #e6aa7c; }
.map-detail-road--primary, .map-detail-road--secondary { stroke: #e9bd8f; }
.map .map-settlement.is-priced circle, .map .map-place.is-priced circle { fill: #007aff; stroke: #0757a6; }
.map-settlement text, .map .map-place text { fill: #24516f; }
.map-selection-pin path { fill: #007aff; }
.map-selection-pin circle { fill: #fff; stroke: #0757a6; }
.map-controls button { width: 43px; height: 43px; border: 1px solid #dce6f0; border-radius: 12px; background: #fff; color: #007aff; box-shadow: 0 3px 10px #233d6622; }
.map-meta { max-width: 250px; padding: 12px 15px; color: #526579; background: #ffffffeb; border-color: #dce6ef; border-radius: 14px; box-shadow: 0 4px 15px #23446a18; }
.map-meta b { color: #1d3249; }
.map-price-legend span { background: #007aff; border-color: #0757a6; }
.stage-grid--location > .location-summary { gap: 13px; padding: 19px; }
.location-summary .summary-hero { padding: 19px; min-height: 132px; }
.location-summary .summary-hero strong { margin: 12px 0 5px; font-size: 30px; }
.location-summary .summary-row { padding: 8px 0; }
.location-summary .note { margin-top: 7px; }

/* Step 4 — budget and financing */
.stage-grid--cost { grid-template-columns: 1fr 1fr; gap: 17px; }
.cost-panel, .payment-choice { padding: 26px; }
.stage-grid--cost .payment-choice { display: flex; flex-direction: column; }
.payment-highlight-slot { align-self: flex-end; width: 66%; margin-top: auto; padding-top: 18px; }
.payment-highlight-slot .payment-box { margin: 0; }
.cost-hero { padding: 25px 27px; margin-bottom: 25px; }
.cost-hero strong { font-size: clamp(34px,3vw,47px); }
.cost-panel h3, .payment-choice h3 { font-size: 20px; }
.cost-row { grid-template-columns: minmax(0,1fr) minmax(70px,28%) minmax(110px,25%); padding: 16px 0; border-color: #e7ecf3; font-size: 14px; }
.cost-row small { color: #8c98a9; font-size: 12px; }
.cost-row b { color: #23334b; }
.bar { height: 7px; background: #eef2f8; }
.bar span { background: linear-gradient(90deg,#007aff,#55c2f3); }
.cost-branch { border-color: #e7ecf3; }
.cost-branch > summary { min-height: 58px; color: #1b2a42; }
.cost-branch__chevron { color: #007aff; }
.cost-branch__children { border-color: #b8ddff; }
.cost-branch__children .cost-row::before { border-color: #b8ddff; }
.payment-choice > .segmented { margin: 16px 0 25px; }
.program-row { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.program { min-height: 104px; padding: 15px; border: 1px solid #dde6ef; border-radius: 16px; }
.program.is-selected { background: #f1f8ff; border: 2px solid #007aff; box-shadow: 0 6px 17px #007aff14; }
.program strong { color: #1c2b42; font-size: 14px; }
.program b { color: #007aff; font-size: 14px; }
.payment-choice .field { margin: 17px 0; }
.zero-down { border-color: #d9e2ec; color: #30435f; border-radius: 13px; }
.zero-down input, .lead-consents input, .select-recipient input { accent-color: #007aff; }
.payment-box { background: #ecf6ff; color: #183657; border: 1px solid #dceeff; border-radius: 18px; }
.payment-box b { color: #006fe6; font-size: 28px; }
.payment-stats .stat { padding: 18px; }
.payment-stats strong { font-size: 20px; }
.payment-stats--deal { margin: 0 0 10px; }
.deal-total { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; padding: 13px 17px; border: 1px solid #cfe4ff; border-radius: 13px; background: #eef6ff; color: #244166; font-size: 14px; font-weight: 720; }
.deal-total strong { color: #0872e7; font-size: 21px; white-space: nowrap; }
.construction-payments { margin-top: 20px; }
.construction-payments h3 { margin-bottom: 9px; }
.construction-payments .summary-row { padding: 13px 0; font-size: 13px; }
.construction-payments .summary-row b { color: #172c49; font-size: 14px; }
.construction-payments .help { margin: 12px 0 0; }
.financing-details { margin-top: 24px; }

/* Step 5 — developers and contact */
.results-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.developer { min-height: 365px; padding: 23px; border-color: #e0e7f0; }
.developer--affiliate { border: 2px solid #80bcff; }
.developer:hover, .developer:focus-within { border-color: #76b9ff; box-shadow: var(--ios-shadow-hover); }
.developer__mark { width: 50px; height: 50px; color: #007aff; background: #e8f3ff; border-radius: 15px; }
.developer__badge { color: #36638f; background: #ecf5ff; border-radius: 999px; font-size: 11px; }
.developer h3 { font-size: 20px; }
.developer ul { color: #62748b; font-size: 13px; line-height: 1.65; }
.developer .stat { padding: 10px 12px; }
.select-recipient { margin-top: auto; color: #006fdf; background: #e7f3ff; border-color: #d2e9ff; border-radius: 13px; }
.result-bottom { grid-template-columns: minmax(0,.95fr) minmax(0,1.55fr); gap: 16px; margin-top: 17px; }
.result-bottom > .summary, .lead-panel { min-height: 300px; }
.lead-panel .card-title { font-size: 20px; }
.lead-consents { color: #617087; font-size: 13px; }
.lead-consents a { color: #007aff; }
.lead-submit { align-items: end; }
.lead-submit .btn { min-width: 240px; }

/* Other pages share controls and surfaces without changing their behavior. */
.admin-layout .panel, .admin-login, .legal-page { background: #fff; }
.admin-nav button.is-active, .admin-list button.is-selected { color: #006fe6; background: #e8f4ff; border-color: #8fc7ff; }
.status-tag { color: #0070e7; background: #e7f3ff; }
.toast { color: #fff; background: #1c2d43; border-radius: 14px; }

/* Keep columns readable as the viewport narrows. */
@media (max-width: 1340px) {
  .topbar .step__label { font-size: 11px; }
  .topbar .brand { min-width: 136px; }
  .stage-grid--project { grid-template-columns: 230px minmax(0,1fr) 285px; }
  .stage-grid--package { grid-template-columns: 235px minmax(0,1fr) 300px; }
  .stage-grid--location { grid-template-columns: 235px minmax(0,1fr) 275px; }
  .program-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 1100px) {
  .topbar__inner { flex-wrap: wrap; }
  .topbar .stepbar { order: 5; flex-basis: 100%; }
  .top-actions { margin-left: auto; }
  .stage-grid--project { grid-template-columns: 230px minmax(0,1fr); height: auto; min-height: 0; }
  .stage-grid--project > .filters { grid-column: 1; grid-row: 1 / span 2; }
  .stage-grid--project > .project-panel { grid-column: 2; grid-row: 1; min-height: 620px; }
  .stage-grid--project > .selected-project { grid-column: 2; grid-row: 2; overflow: visible; }
  .stage-grid--package { grid-template-columns: 225px minmax(0,1fr); }
  .stage-grid--package > .summary { grid-column: 2; }
  .stage-grid--location { grid-template-columns: 250px minmax(0,1fr); height: auto; }
  .stage-grid--location > .map-panel { min-height: 600px; }
  .stage-grid--location > .location-summary { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .payment-highlight-slot { align-self: stretch; width: 100%; }
  .container { width: calc(100% - 24px); }
  .topbar__inner { display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; gap: 8px; margin-top: 8px; padding: 9px; border-radius: 20px; }
  .site-menu { grid-column: 1; grid-row: 1; }
  .topbar .brand { grid-column: 2; grid-row: 1; }
  .topbar .brand__mark { width: 39px; height: 39px; }
  .topbar .top-actions { grid-column: 3; grid-row: 1; margin: 0; }
  .topbar .stepbar { grid-column: 1 / -1; grid-row: 2; width: 100%; gap: 0; }
  .topbar .step { min-height: 47px; }
  .topbar .step__label { display: none; }
  .topbar .step__num { width: 35px; height: 35px; }
  .main { padding-top: 19px; }
  .page-head { align-items: flex-start; }
  .page-head .info-pill { display: none; }
  .stage-grid--project, .stage-grid--package, .stage-grid--location { display: flex; flex-direction: column; height: auto; min-height: 0; }
  .stage-grid--project > .filters, .stage-grid--project > .project-panel, .stage-grid--project > .selected-project,
  .stage-grid--package > .package-nav, .stage-grid--package > .package-content, .stage-grid--package > .summary,
  .stage-grid--location > .panel-pad, .stage-grid--location > .map-panel, .stage-grid--location > .location-summary {
    width: 100%; min-height: 0; overflow: visible;
  }
  .stage-grid--project > .filters { order: 0; gap: 14px; padding: 18px; }
  .filters .filter-group { display: block; }
  .filters .filter-area { min-width: 0; }
  .stage-grid--project > .project-panel { order: 1; }
  .stage-grid--project > .selected-project { order: 2; }
  .stage-grid--project .project-grid { grid-template-columns: 1fr; max-height: none; overflow: visible; }
  .stage-grid--package > .package-nav { order: 0; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stage-grid--package > .package-content { order: 1; }
  .stage-grid--package > .summary { order: 2; }
  .stage-grid--location > .panel-pad { order: 0; }
  .stage-grid--location > .map-panel { order: 1; height: min(65vh,520px); min-height: 390px; overflow: hidden; }
  .stage-grid--location > .location-summary { order: 2; }
  .stage-grid--cost, .stage-grid--search, .result-bottom { grid-template-columns: 1fr; }
  .results-grid { grid-template-columns: 1fr; }
  .cost-panel, .payment-choice { padding: 20px; }
  .program-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lead-form { grid-template-columns: 1fr; }
  .footer { padding-bottom: 0; }
  .footer__inner { min-height: 72px; border-radius: 18px 18px 0 0; }
  .footer-progress { display: none; }
  .footer-actions { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.5fr); width: 100%; }
  .footer-actions .btn, .footer-actions .btn--primary { width: 100%; min-width: 0; padding-inline: 8px; }
}
@media (max-width: 430px) {
  .stage-grid--package > .package-nav { grid-template-columns: 1fr 1fr; }
  .stage-grid--project .project-card__media { height: 215px; }
  .program-row, .payment-stats, .two-fields { grid-template-columns: 1fr; }
  .cost-row { grid-template-columns: minmax(0,1fr) auto; gap: 7px; }
  .cost-row .bar { display: none; }
  .developer { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  :where(button, .project-card, .developer) { transition: none !important; }
  :where(button:not(:disabled), .site-menu > summary):hover { transform: none; }
}
@media print {
  html, body { background: #fff; }
  .topbar__inner, .panel, .footer__inner { box-shadow: none; }
}

/* Content-level details from the approved screens. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.project-panel__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 13px; }
.project-panel__head > div { min-width: 0; }
.project-panel__head h3 { margin: 0 0 5px; }
.project-panel__head .project-instruction { margin: 0; }
.project-search { display: block; position: relative; width: min(260px,35%); flex: none; }
.project-search::before { content: '⌕'; position: absolute; left: 13px; top: 8px; color: #8295ad; font-size: 24px; line-height: 1; pointer-events: none; }
.project-search .control { min-height: 42px; padding: 9px 12px 9px 39px; border-radius: 13px; font-size: 13px; background: #f7f9fc; }
.stage-grid--project .project-grid { max-height: calc(100% - 85px); }

.option-card__header { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; }
.option-card__name { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; min-width: 0; }
.option-card__header > b { flex: none; }
.option-card__radio { display: inline-grid; place-items: center; width: 21px; height: 21px; flex: none; border: 2px solid #b6c2d0; border-radius: 50%; background: #fff; }
.option-card.is-selected .option-card__radio { border-color: #007aff; }
.option-card.is-selected .option-card__radio::after { content: ''; width: 9px; height: 9px; border-radius: 50%; background: #007aff; }
.option-card__body { display: block; margin: 10px 0 0 29px; }
.option-card__copy { display: block; color: #78889c; font-size: 13px; line-height: 1.47; }
.option-card__copy small { display: block; margin-top: 9px; color: #a0aab8; font-size: 11px; }
.option-card--illustrated { min-height: 185px; }
.option-card--illustrated .option-card__body { display: grid; grid-template-columns: 200px minmax(0,1fr); align-items: center; gap: 17px; margin: 13px 0 0 29px; }
.option-card__body img { display: block; width: 200px; height: 126px; object-fit: cover; border-radius: 12px; border: 1px solid #e0e6ed; }
.option-card__recommended { margin-top: 0; }
.result-bottom > .summary .aplan-image { display: block; width: 100%; height: 175px; flex: none; margin: 1px 0 10px; border-radius: 16px; overflow: hidden; }
.result-bottom > .summary .aplan-image img { width: 100%; height: 100%; object-fit: cover; }
.developer { display: flex; flex-direction: column; }
.developer ul { margin-bottom: auto; }
.developer > .note { margin-top: auto; }
.page-head--project { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.page-head--project h1 { margin-bottom: 4px; }
.page-head--project p { margin: 0; }
.page-head--project .project-search { width: min(380px,34%); margin-bottom: 2px; }
.filters .chip-row { display: flex; flex-wrap: wrap; }
.filters .chip { min-width: 51px; text-align: center; }
.filter-area__inputs { display: flex; align-items: end; gap: 9px; margin-top: 16px; }
.filter-area__inputs > label { flex: 1; min-width: 0; color: #7d8aa0; font-size: 11px; }
.filter-area__inputs > label > span { display: block; margin-bottom: 5px; }
.filter-area__inputs > label > .control { width: 100%; min-height: 42px; padding: 8px 10px; font-size: 13px; font-weight: 700; }
.filter-area__inputs > span { padding-bottom: 12px; color: #a7b3c4; }
.filter-footnote { margin: auto 0 0; padding: 13px; border: 1px solid #e0eaf8; border-radius: 13px; color: #68809b; background: #f1f7ff; font-size: 12px; line-height: 1.45; }
.option-card__visual { position: relative; display: block; width: 200px; height: 126px; overflow: hidden; border: 1px solid #e0e6ed; border-radius: 12px; background-color: #f4f6f8; background-repeat: no-repeat; }
.option-card__visual img { width: 100%; height: 100%; object-fit: cover; border: 0; border-radius: 0; }
.option-card__measure { position: absolute; left: 7px; bottom: 7px; max-width: calc(100% - 14px); padding: 4px 7px; border: 1px solid #d8e9fa; border-radius: 7px; color: #165caa; background: rgba(255,255,255,.95); font-size: 10px; font-weight: 800; line-height: 1.2; box-shadow: 0 2px 7px #213f6021; }
.option-card__dimension { position: absolute; top: 8px; right: 8px; display: grid; min-width: 90px; padding: 7px 9px 6px; border: 1px solid #afd1ef; border-radius: 9px; color: #124e87; background: rgba(255,255,255,.96); box-shadow: 0 3px 12px #15395c38; text-align: center; }
.option-card__dimension small { font-size: 9px; font-weight: 700; line-height: 1.1; }
.option-card__dimension strong { font-size: 15px; line-height: 1.25; white-space: nowrap; }
.option-card__dimension i { display: block; position: relative; width: 100%; height: 1px; margin-top: 4px; background: #1673ca; }
.option-card__dimension i::before, .option-card__dimension i::after { content: ''; position: absolute; top: -3px; width: 1px; height: 7px; background: #1673ca; }
.option-card__dimension i::before { left: 0; }
.option-card__dimension i::after { right: 0; }
.option-card__visual:has(.option-card__dimension) .option-card__measure { display: none; }
.option-card__conditional { display: block; margin-top: 6px; color: #1263be; font-size: 12px; font-style: normal; font-weight: 700; }
.option-card__visual--brick { background-image: url('/assets/ui/materials-atlas.png'); background-size: 300% 300%; background-position: 0 0; }
.option-card__visual--gas-block { background-image: url('/assets/ui/materials-atlas.png'); background-size: 300% 300%; background-position: 50% 0; }
.option-card__visual--partition { background-image: url('/assets/ui/materials-atlas.png'); background-size: 300% 300%; background-position: 100% 0; }
.option-card__visual--ring-beam { background-image: url('/assets/ui/materials-atlas.png'); background-size: 300% 300%; background-position: 0 50%; }
.option-card__visual--window { background-image: url('/assets/ui/materials-atlas.png'); background-size: 300% 300%; background-position: 50% 50%; }
.option-card__visual--roof { background-image: url('/assets/ui/materials-atlas.png'); background-size: 300% 300%; background-position: 100% 50%; }
.option-card__visual--plaster { background-image: url('/assets/ui/materials-atlas.png'); background-size: 300% 300%; background-position: 0 100%; }
.option-card__visual--door { background-image: url('/assets/ui/materials-atlas.png'); background-size: 300% 300%; background-position: 50% 100%; }
.option-card__visual--drainage { background-image: url('/assets/ui/materials-atlas.png'); background-size: 300% 300%; background-position: 100% 100%; }
.option-card__visual--boiler { background-image: url('/assets/ui/systems-atlas.png'); background-size: 200% 200%; background-position: 0 0; }
.option-card__visual--electrical { background-image: url('/assets/ui/systems-atlas.png'); background-size: 200% 200%; background-position: 100% 0; }
.option-card__visual--plumbing { background-image: url('/assets/ui/systems-atlas.png'); background-size: 200% 200%; background-position: 0 100%; }
.option-card__visual--blind-area { background-image: url('/assets/ui/systems-atlas.png'); background-size: 200% 200%; background-position: 100% 100%; }
.option-card--illustrated { position: relative; min-height: 198px; padding-right: calc(35% + 27px); text-align: left; }
.option-card--illustrated .option-card__header { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.option-card--illustrated .option-card__header > b { margin-left: 29px; color: #1263be; font-size: 18px; }
.option-card--illustrated .option-card__body { display: block; margin: 10px 0 0 29px; }
.option-card--illustrated .option-card__visual { position: absolute; top: 6px; right: 12px; width: 34%; height: calc(100% - 12px); }
.option-card--illustrated .option-card__copy { display: block; }
@media (max-width: 760px) {
  .page-head--project { display: block; }
  .page-head--project .project-search { width: 100%; margin-top: 12px; }
  .project-panel__head { flex-direction: column; }
  .project-search { width: 100%; }
  .stage-grid--project .project-grid { max-height: none; }
  .option-card--illustrated .option-card__body { display: block; }
}
@media (max-width: 430px) {
  .option-card--illustrated { min-height: 165px; padding-right: calc(38% + 18px); }
  .option-card--illustrated .option-card__body { margin-left: 0; }
  .option-card--illustrated .option-card__header > b { margin-left: 0; }
  .option-card--illustrated .option-card__visual { width: 36%; }
  .option-card__measure { font-size: 9px; }
}

/* Location panels share the same navigation and bottom dock as every stage. */
.shell:has(.stage-grid--location) .main { padding-top: 18px; }
.shell:has(.stage-grid--location) .main > .container { width: min(calc(100% - 48px), 1560px); }
.stage-grid--location { display: grid; grid-template-columns: minmax(0,460fr) minmax(0,730fr) minmax(0,315fr); grid-template-rows: minmax(0,1fr); gap: 16px; height: 680px; min-height: 0; }
.stage-grid--location > .location-settings, .stage-grid--location > .map-panel, .stage-grid--location > .location-summary { grid-row: 1; min-height: 0; overflow: visible; }
.stage-grid--location > .location-settings { grid-column: 1; display: block; padding: 26px 24px; }
.stage-grid--location > .map-panel { grid-column: 2; display: block; border: 0; }
.stage-grid--location > .location-summary { grid-column: 3; display: block; padding: 26px 21px; }
.location-settings .location-title { max-width: none; margin: 0 0 12px; font-size: 26px; line-height: 1.12; letter-spacing: -.035em; }
.location-settings .location-intro { max-width: 385px; margin: 0 0 26px; color: #7483a3; font-size: 16px; line-height: 1.42; }
.location-settings .ownership-toggle { justify-content: space-between; min-height: 80px; padding: 13px 18px; border: 0; border-radius: 17px; background: #f6f7fa; }
.location-settings .ownership-toggle.is-active { background: #eaf4ff; }
.ownership-toggle__text strong, .ownership-toggle__text small { display: block; }
.ownership-toggle__text strong { color: #13203a; font-size: 16px; font-weight: 730; }
.ownership-toggle__text small { margin-top: 4px; color: #8491ac; font-size: 13px; font-weight: 400; }
.location-settings .ownership-toggle__mark { position: relative; display: block; width: 57px; height: 34px; margin-left: auto; border: 0; border-radius: 999px; background: #b6bed1; }
.location-settings .ownership-toggle__mark::after { content: ''; position: absolute; left: 3px; top: 3px; width: 28px; height: 28px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px #21304d26; transition: transform .2s ease; }
.location-settings .ownership-toggle.is-active .ownership-toggle__mark { background: #007aff; border: 0; }
.location-settings .ownership-toggle.is-active .ownership-toggle__mark::after { transform: translateX(23px); }
.location-settings__divider { height: 1px; margin: 22px 0 26px; background: #e4e9f1; }
.stage-grid--location .location-settings .field { margin: 0 0 28px; }
.location-settings .field__label { margin-bottom: 10px; color: #1d2944; font-size: 17px; font-weight: 710; }
.location-settings .location-picker > summary { justify-content: flex-start; min-height: 56px; gap: 12px; padding: 9px 13px; font-size: 15px; }
.location-settings .location-picker > summary::after { display: none; }
.location-picker__icon { color: #a9b5cf; font-size: 26px; line-height: 1; }
.location-picker__value { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.location-picker__chevron { margin-left: auto; color: #8190aa; font-size: 22px; }
.location-settings .location-field > .help { display: block; margin-top: 8px; color: #8594b0; font-size: 13px; }
.stage-grid--location .location-settings .plot-area { margin: 20px 0 0; padding: 0; border: 0; background: transparent; }
.plot-area__heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 11px; }
.location-settings .plot-area__heading .field__label { margin: 0; }
.location-settings .plot-area__value { margin: 0; font-size: 17px; }
.location-settings .plot-area input[type=range] { width: 100%; height: 36px; accent-color: #007aff; }
.location-settings .plot-area__scale { color: #8392b0; font-size: 12px; }
.location-guidance, .location-summary__info { display: flex; gap: 13px; align-items: flex-start; color: #627cae; background: #eff6ff; border-radius: 13px; font-size: 13px; line-height: 1.45; }
.location-guidance { margin-top: 30px; padding: 14px 16px; }
.location-guidance > span:first-child, .location-summary__info > span:first-child { flex: none; color: #007aff; font-size: 21px; line-height: 1; }
.location-settings .location-unpriced { margin-top: 15px; }
.location-summary h3 { margin: 0 0 12px; font-size: 20px; }
.location-summary__price { padding: 0 0 24px; border-bottom: 1px solid #e0e6ef; color: #111a34; font-size: clamp(25px,2.25vw,34px); font-weight: 800; letter-spacing: -.035em; white-space: nowrap; }
.stage-grid--location .location-summary__details { display: block; margin-top: 8px; }
.stage-grid--location .location-summary__details .summary-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 18px 0; border-bottom: 1px solid #edf0f5; color: #7183a1; }
.stage-grid--location .location-summary__details .summary-row span, .stage-grid--location .location-summary__details .summary-row b { font-size: 14px; line-height: 1.25; }
.stage-grid--location .location-summary__details .summary-row b { color: #15203a; font-weight: 650; text-align: right; }
.location-summary__info { margin-top: 20px; padding: 17px 14px; }
.location-summary__method { margin-top: 20px; color: #7183a1; font-size: 12px; }
.location-summary__method summary { cursor: pointer; color: #58739b; }
.location-summary__method > div { padding-top: 9px; }
.location-summary__method .summary-row { padding: 7px 0; }
.location-summary__method p { margin: 9px 0; }
.map-region-chip { position: absolute; z-index: 3; top: 17px; left: 18px; display: flex; align-items: center; gap: 11px; min-height: 44px; padding: 8px 15px; border: 0; border-radius: 999px; color: #17213a; background: #ffffffef; box-shadow: 0 4px 14px #253c6533; font-size: 15px; cursor: pointer; }
.map-region-chip > span:first-child { color: #007aff; font-size: 24px; line-height: 1; }
.map-region-chip > span:last-child { margin-left: 14px; color: #6f809b; font-size: 21px; line-height: 1; }
.stage-grid--location .map-panel { background: #e8efea; }
.map .map-territory { fill: #eaf2df; stroke: none; }
.stage-grid--location .map .map-urban { display: block; fill: #619ee935; stroke: #4587cfaa; stroke-width: 1.05; vector-effect: non-scaling-stroke; pointer-events: none; }
.stage-grid--location .map .map-builtup-area { fill: #619ee92c; stroke: #4587cf80; stroke-width: .8; vector-effect: non-scaling-stroke; pointer-events: none; }
.map .map-territory-outline { fill: none; stroke: #607464; stroke-width: 1.7; stroke-dasharray: 4 3; vector-effect: non-scaling-stroke; pointer-events: none; }
.map .map-neighbor-road { fill: none; stroke: #c4c9c6; stroke-width: 1; opacity: .65; vector-effect: non-scaling-stroke; pointer-events: none; }
.map-neighbor-labels { fill: #7b8496; font-size: 2px; font-weight: 700; letter-spacing: .1em; pointer-events: none; }
.map .map-landcover { stroke: none; pointer-events: none; }
.map .map-landcover--field { fill: #cce5b4; opacity: .88; }
.map .map-landcover--forest { fill: #a7d495; opacity: .97; }
.map .map-landcover--meadow { fill: #c1e0a8; opacity: .92; }
.map .map-overview-lake { fill: #8dccf5; stroke: #7bbce6; stroke-width: 1; vector-effect: non-scaling-stroke; pointer-events: none; }
.map .map-overview-water { fill: none; stroke: #9ad4f0; stroke-width: 1; stroke-linecap: round; vector-effect: non-scaling-stroke; pointer-events: none; }
.map .map-overview-water--river { stroke: #78c2e9; stroke-width: 1.7; }
.map .map-overview-road { fill: none; stroke: #eac897; stroke-width: 1.1; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; pointer-events: none; }
.map .map-overview-road--motorway, .map .map-overview-road--trunk { stroke: #e5aa71; stroke-width: 2.2; }
.map .map-overview-road--primary { stroke: #e9b783; stroke-width: 1.7; }
.map .map-overview-road--tertiary { stroke: #ddd6b6; stroke-width: .8; }
.map[data-zoom="district"] .map-overview-road, .map[data-zoom="district"] .map-overview-water { display: none; }
.map[data-zoom="overview"] .zone-shape { fill: transparent; stroke: transparent; }
.map[data-zoom="overview"] .zone-shape:hover { fill: #007aff22; stroke: #007aff; }
.map[data-zoom="overview"] .zone-shape.is-selected { fill: #007aff10; stroke: #007aff77; }
.map-panel .map[data-zoom="overview"] .map-place--minor { display: block; }
.map-panel .map-place text { fill: #16233b; font-size: var(--map-label-size,1.7px); font-weight: 630; stroke: #fff; stroke-width: 2.5; }
.map-panel .map-place.is-priced circle { fill: #007aff; stroke: #fff; }
.map-panel .map-place circle { fill: #fff; stroke: #2470bb; }
.stage-grid--location .map-controls { right: 14px; bottom: 19px; gap: 6px; }
.stage-grid--location .map-controls button { width: 42px; height: 42px; border-radius: 12px; color: #172a4b; font-size: 24px; }
.stage-grid--location .map-controls button:last-child { margin-top: 7px; font-size: 18px; transform: rotate(-35deg); }
.stage-grid--location .map-meta { left: 16px; bottom: 16px; max-width: none; padding: 8px 12px; border-radius: 10px; font-size: 11px; }
.map-attribution { position: absolute; z-index: 2; right: 66px; bottom: 10px; color: #52606d; font-size: 9px; text-shadow: 0 1px #fff; }

/* Review updates: progress, package chooser, plan preview and totals. */
.journey-progress{display:flex;align-items:center;gap:12px;padding:8px 2px 2px;color:#71839d;font-size:12px;font-weight:700}
.journey-progress__bar{flex:1;display:block;height:7px;overflow:hidden;border-radius:99px;background:#dae5f4}
.journey-progress__bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#007aff,#4ab9f2);transition:width .25s}
.journey-progress>span:last-child{white-space:nowrap}
.footer-actions{display:flex;justify-content:space-between;width:100%}
.footer-actions .btn--primary{margin-left:auto}
.project-card__zones{grid-template-columns:repeat(2,1fr)}
.stage-grid--project .selected-project .aplan-image--plan{height:300px}
.stage-grid--project .selected-project .aplan-image--plan img{width:100%;height:100%;object-fit:contain}
.plan-popover{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
.package-overview__cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:18px}
.package-overview__card{display:flex;flex-direction:column;overflow:hidden;padding:0;border:1px solid #dce7f2;border-radius:17px;background:#fff;text-align:left;color:#17243c;box-shadow:0 3px 10px #1d437012}
.package-overview__card.is-selected{border:2px solid #007aff;background:#f1f8ff;box-shadow:0 0 0 3px #007aff19}
.package-overview__card img{display:block;width:100%;height:160px;object-fit:cover;background:#eff5fb}
.package-overview__card-body{display:grid;grid-template-columns:1fr auto;gap:5px 9px;align-items:center;padding:12px 14px 14px}
.package-overview__card-body strong{font-size:17px}
.package-overview__price{grid-column:1/-1;color:#0874ed;font-weight:800;font-size:17px}
.package-overview__card-body small{grid-column:1/-1;color:#7b8ca4;font-size:12px}
.package-overview__check{grid-column:2;grid-row:1;color:#fff;background:#a9b7c9;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;font-size:13px}
.package-overview__card.is-selected .package-overview__check{background:#007aff}
.package-overview__custom{margin-right:9px}
.package-summary__total{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:16px 0 3px;border-top:2px solid #dbe8f5;font-size:14px;font-weight:750}
.package-summary__total strong{font-size:23px;color:#0873eb;white-space:nowrap}
.package-summary__empty{padding:16px 0;color:#7388a2;font-size:13px;line-height:1.4}
.stage-grid--location>.location-summary{display:flex;flex-direction:column}
.location-summary__total{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:18px;padding-top:16px;border-top:2px solid #dbe8f5;color:#172641;font-size:14px;font-weight:750}
.location-summary__total strong{font-size:clamp(22px,2vw,32px);white-space:nowrap}
.map-panel .map[data-zoom="overview"] .map-place--minor{display:none}
.mortgage-setup{padding:13px;border:1px solid #d7e8fa;border-radius:14px;background:#f8fbff}
.mortgage-setup .field{margin:0 0 8px}
.mortgage-setup .zero-down{margin-top:4px;background:#fff}
.cost-panel{display:flex;flex-direction:column}
.cost-panel .cost-row{padding:9px 0;line-height:1.25}
.cost-panel .cost-row small{margin-top:2px;line-height:1.2}
.cost-panel .cost-branch>summary{min-height:42px}
.cost-panel .cost-hero{margin:22px 0 0}
@media (max-width: 1230px) {
  .stage-grid--location { grid-template-columns: minmax(290px,1fr) minmax(0,1.55fr) minmax(260px,.76fr); }
  .location-settings .location-title { font-size: 27px; }
}
@media (max-width: 1000px) {
  .stage-grid--location { grid-template-columns: minmax(300px,.95fr) minmax(0,1.6fr); height: auto; }
  .stage-grid--location > .location-settings { grid-column: 1; grid-row: 1; }
  .stage-grid--location > .map-panel { grid-column: 2; grid-row: 1; height: 620px; }
  .stage-grid--location > .location-summary { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(2,1fr); gap: 8px 20px; }
  .location-summary h3, .location-summary__price { grid-column: 1; }
  .stage-grid--location .location-summary__details { grid-column: 2; grid-row: 1 / span 2; }
  .location-summary__info, .location-summary__method { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .shell:has(.stage-grid--location) .main > .container { width: calc(100% - 24px); }
  .stage-grid--location { display: flex; flex-direction: column; height: auto; gap: 12px; }
  .stage-grid--location > .location-settings, .stage-grid--location > .map-panel, .stage-grid--location > .location-summary { display: block; width: 100%; height: auto; overflow: visible; flex: none; }
  .stage-grid--location > .location-settings { order: 0; padding: 22px; }
  .stage-grid--location > .map-panel { order: 1; height: min(65vh,520px); min-height: 390px; overflow: hidden; }
  .stage-grid--location > .location-summary { order: 2; padding: 22px; }
  .location-settings .location-title { font-size: 26px; }
  .location-summary__info, .location-summary__method { grid-column: auto; }
  .map-attribution { display: none; }
  .journey-progress{padding:8px 0 0;font-size:11px}
  .stage-grid--project .selected-project .aplan-image--plan{height:250px}
  .package-overview__cards{grid-template-columns:1fr 1fr}
  .package-overview__card img{height:120px}
  .plan-popover{max-width:92vw;max-height:62dvh}
}
@media(max-width:430px){.package-overview__cards{grid-template-columns:1fr}.package-overview__card img{height:150px}}

/* Project filters: compact segmented controls and a clearly selected range. */
.stage-grid--project > .filters{gap:22px;padding:25px}
.stage-grid--project > .filters .card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;font-size:21px;line-height:1.2}
.filters__icon{width:22px;height:22px;flex:none;color:#64758c}
.filters .filter-group > label{margin-bottom:10px;color:#4c5d75;font-size:15px;font-weight:650}
.filters .chip-row{display:grid;gap:4px;width:100%;padding:4px;border-radius:15px;background:#eef1f6}
.filters > .filter-group:nth-child(2) .chip-row{grid-template-columns:repeat(3,minmax(0,1fr))}
.filters > .filter-group:nth-child(3) .chip-row{grid-template-columns:repeat(5,minmax(0,1fr))}
.filters .chip{min-width:0;min-height:40px;padding:8px 4px;border:0;border-radius:11px;background:transparent;color:#53627a;font-size:14px;font-weight:600;box-shadow:none}
.filters .chip.is-active{border:0;background:#087dff;color:#fff;box-shadow:0 3px 8px #087dff2e}
.filters .filter-area{padding-top:0}
.filter-area__value{display:none}
.filter-area__limits{margin:2px 0 -2px;color:#64738a;font-size:14px;font-weight:550}
.filter-area__range{height:32px}
.filter-area__track{top:14px;height:7px;background:linear-gradient(to right,#e1e5ec 0 var(--range-from),#087dff var(--range-from) var(--range-to),#e1e5ec var(--range-to) 100%)}
.filter-area__range input{height:32px}
.filter-area__range input::-webkit-slider-thumb{width:21px;height:21px;margin-top:-7px;border:2px solid #087dff;background:#fff;box-shadow:0 2px 6px #1d66b245}
.filter-area__range input::-moz-range-thumb{width:19px;height:19px;border:2px solid #087dff;background:#fff;box-shadow:0 2px 6px #1d66b245}
@media(min-width:761px){
  .stage-grid--project{height:auto;min-height:0;grid-template-rows:auto;align-items:start}
  .stage-grid--project > .filters,.stage-grid--project > .project-panel,.stage-grid--project > .selected-project{min-height:0;height:auto;align-self:start}
  .stage-grid--project > .project-panel{display:block;overflow:visible}
  .stage-grid--project .project-grid{flex:none;min-height:0;max-height:72dvh;overflow-y:auto;align-content:start}
}
@media(max-width:760px){
  .stage-grid--project > .filters{padding:22px;gap:19px}
  .filters .chip{font-size:13px}
}

/* The package chooser leads the section list; choices move forward smoothly. */
.package-nav .package-nav__main{min-height:52px;margin-bottom:9px;border:1px solid #d7e9fb;background:#f3f8ff;color:#175caa;font-weight:800}
.package-nav .package-nav__main.is-active{border-color:#8cc4ff;background:#e6f2ff;color:#006ce4}
.package-nav .package-nav__main > span:last-child{color:#087dff;background:#e1efff}
.package-content--leaving .package-work{animation:package-section-out .2s ease-in both;pointer-events:none}
.package-content--entering .package-work{animation:package-section-in .28s cubic-bezier(.16,1,.3,1) both}
@keyframes package-section-out{to{opacity:0;transform:translateX(-22px)}}
@keyframes package-section-in{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}

/* Shorter material cards with a wider visual column. */
.option-list{gap:8px}
.option-card--illustrated{min-height:139px;padding:10px calc(45% + 17px) 10px 14px}
.option-card--illustrated .option-card__header{gap:4px}
.option-card--illustrated .option-card__name{gap:4px}
.option-card--illustrated .option-card__header > b{margin-left:29px;font-size:16px;line-height:1.2}
.option-card--illustrated .option-card__body{margin:5px 0 0 29px}
.option-card--illustrated .option-card__copy{font-size:12px;line-height:1.3}
.option-card--illustrated .option-card__visual{top:5px;right:7px;width:44%;height:calc(100% - 10px)}
.option-card--illustrated .option-card__recommended{display:block;width:max-content;max-width:100%;margin:6px 0 0;padding:2px 7px;font-size:11px;line-height:1.25}
@media(max-width:430px){
  .option-card--illustrated{padding-right:calc(47% + 12px);min-height:139px}
  .option-card--illustrated .option-card__visual{width:45%}
  .option-card--illustrated .option-card__body,.option-card--illustrated .option-card__header > b{margin-left:0}
}

/* Make each estimate section visibly pending or selected. */
.package-summary__line{min-height:37px;margin:3px 0;padding:8px 10px;border:1px solid transparent;border-radius:10px;transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.package-summary__line.is-pending{background:#f1f3f7;border-color:#e7ebf2;color:#66758d}
.package-summary__line.is-pending b{color:#55647a}
.package-summary__line.is-chosen{background:rgba(8,125,255,.045);border-color:transparent;border-bottom-color:#80baff;color:#425875}
.package-summary__line.is-chosen b{color:#087dff}
@media(prefers-reduced-motion:reduce){
  .package-content--leaving .package-work,.package-content--entering .package-work{animation:none}
}

/* Keep the three columns aligned between project choice and configuration. */
@media(min-width:1341px){
  .stage-grid--project,.stage-grid--package,.stage-grid--location{grid-template-columns:minmax(270px,.9fr) minmax(0,2.15fr) minmax(330px,1.1fr)}
}
@media(min-width:1101px) and (max-width:1340px){
  .stage-grid--project,.stage-grid--package,.stage-grid--location{grid-template-columns:230px minmax(0,1fr) 285px}
}
@media(min-width:761px) and (max-width:1100px){
  .stage-grid--project,.stage-grid--package,.stage-grid--location{grid-template-columns:230px minmax(0,1fr)}
  .stage-grid--location>.location-summary{grid-column:2;grid-row:2}
  .stage-grid--location>.location-settings{grid-row:1 / span 2}
}
@media(min-width:761px){
  .shell:has(.stage-grid--location) .main{padding-top:23px}
  .shell:has(.stage-grid--location) .main>.container{width:min(calc(100% - 48px),1560px)}
  .location-settings .location-title{font-size:24px;margin-bottom:24px}
}
@media(min-width:1101px){
  .stage-grid--location{height:min(calc(100dvh - 225px),820px);min-height:620px}
  .stage-grid--location>.location-settings,.stage-grid--location>.map-panel,.stage-grid--location>.location-summary{height:100%}
}

/* Direction chooser and the first screen of the new property flows. */
.direction-nav{flex:1;min-width:0;text-align:center;color:#596c86;font-size:14px;font-weight:700}
.landing-main{display:flex;align-items:center;padding-block:58px 90px}
.landing-main>.container{width:min(calc(100% - 48px),1320px)}
.welcome-hero{text-align:center}
.welcome-hero h1{font-size:clamp(38px,4.6vw,70px);margin-bottom:36px}
.direction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:900px;margin-inline:auto;text-align:left}
.direction-card{position:relative;display:flex;flex-direction:column;min-width:0;padding:9px;overflow:hidden;text-align:left;border:1px solid rgba(255,255,255,.85);border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(247,250,255,.76));box-shadow:0 15px 35px #26436612, inset 0 1px #fff;backdrop-filter:blur(24px) saturate(1.3);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.direction-card:hover{transform:translateY(-4px);box-shadow:0 22px 45px #2643661d, inset 0 1px #fff}
.direction-card.is-selected{border-color:#087dff;box-shadow:0 16px 38px #087dff24,0 0 0 3px #dcebff,inset 0 1px #fff}
.direction-card__visual{display:block;height:225px;overflow:hidden;border-radius:19px;background:#dfebf5}
.direction-card__visual img,.direction-card__visual svg{display:block;width:100%;height:100%;object-fit:cover}
.direction-card__fallback{display:grid;place-items:center;height:100%;font-size:90px;color:#4f8bd3}
.direction-card__content{position:relative;display:flex;flex-direction:column;gap:9px;min-height:145px;padding:20px 15px 18px}
.direction-card__number{font-size:11px;font-weight:800;letter-spacing:.13em;color:#087dff}
.direction-card__content strong{max-width:95%;font-size:20px;line-height:1.2;color:#172238}
.direction-card__content>span:last-child{color:#687990;font-size:14px;line-height:1.35}
.direction-card__check{position:absolute;right:14px;top:14px;display:grid;place-items:center;width:25px;height:25px;border:1px solid #d7e1ec;border-radius:50%;background:#edf1f7;color:transparent;font-weight:800}
.direction-card.is-selected .direction-card__check{border-color:#087dff;background:#087dff;color:#fff}
.welcome-hero.is-opening .direction-card:not(.is-selected){opacity:.35;transform:scale(.97)}
.welcome-hero.is-opening .direction-card.is-selected{transform:translateY(-7px) scale(1.025);box-shadow:0 25px 55px #087dff31}
.quiz-entering{animation:quiz-enter .32s cubic-bezier(.2,.8,.2,1) both}
@keyframes quiz-enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
.entry-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:16px}
.entry-form,.entry-summary{padding:30px}
.entry-form h2,.entry-summary h2{margin-bottom:12px}
.entry-form__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.entry-form__fields>.field:first-child{grid-column:1/-1}
.entry-summary p{color:#687990;line-height:1.5}
.entry-summary .btn{margin-top:12px}

/* A light, legible iOS glass treatment shared by the quiz panels. */
.stage-grid--project>.panel,.stage-grid--package>.panel,.stage-grid--location>.panel{
  border-color:rgba(255,255,255,.88);
  background:linear-gradient(155deg,rgba(255,255,255,.91),rgba(252,253,255,.75));
  box-shadow:0 15px 36px #243b6015,0 3px 9px #36517409,inset 0 1px rgba(255,255,255,.96);
  -webkit-backdrop-filter:blur(24px) saturate(1.45);
  backdrop-filter:blur(24px) saturate(1.45);
}
.stage-grid--location>.map-panel{background:#e8efea}
.page-head+.skipped-panel{margin-top:0}
@media(min-width:761px){
  .page-head--project{min-height:98px;margin-bottom:19px;align-items:flex-start}
  .page-head--project .project-search{align-self:flex-end}
}
@media(max-width:900px){
  .direction-grid{grid-template-columns:1fr;max-width:580px;margin-inline:auto}
  .direction-card{flex-direction:row;align-items:stretch}
  .direction-card__visual{width:38%;height:auto;min-height:165px;flex:none}
  .direction-card__content{min-height:165px;justify-content:center}
  .entry-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .direction-nav{display:none}
  .landing-main{padding-block:30px 70px}
  .landing-main>.container{width:calc(100% - 24px)}
  .welcome-hero h1{font-size:38px;margin-bottom:25px}
  .direction-grid{gap:11px}
  .direction-card__visual{width:34%;min-height:150px}
  .direction-card__content{min-height:150px;padding:14px 12px;gap:6px}
  .direction-card__content strong{font-size:16px}
  .direction-card__content>span:last-child{font-size:12px}
  .entry-form,.entry-summary{padding:22px}
  .entry-form__fields{grid-template-columns:1fr}
}

/* Apartment quiz: the same stable three-column rhythm as the house flow. */
.apartment-page-head{min-height:98px;margin-bottom:19px}
.apartment-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:16px;align-items:stretch;min-height:610px}
.apartment-grid>.panel,.apartment-center>.panel,.apartment-empty,.apartment-card{border:1px solid rgba(255,255,255,.88);background:linear-gradient(155deg,rgba(255,255,255,.93),rgba(252,253,255,.79));box-shadow:var(--ios-shadow);-webkit-backdrop-filter:blur(24px) saturate(1.45);backdrop-filter:blur(24px) saturate(1.45)}
.apartment-summary{padding:22px;min-width:0}
.apartment-summary h3{margin:0 0 18px}
.apartment-summary__stat strong,.apartment-count strong{display:block;color:#087dff;font-size:23px;line-height:1.1}
.apartment-summary__stat span,.apartment-count span{display:block;margin-top:6px;color:#738299;font-size:12px}
.apartment-center{min-width:0;display:flex;flex-direction:column;gap:14px}
.apartment-work{padding:26px;min-height:610px}
.apartment-work h2{margin:0 0 20px}
.apartment-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px;align-items:start}
.apartment-fields .field{margin:10px 0}
.apartment-fields .field:first-child:nth-last-child(2){grid-column:1/-1}
.apartment-fields .control{background:rgba(255,255,255,.82)}
.apartment-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:22px}
.apartment-mode{display:flex;flex-direction:column;gap:8px;min-height:114px;text-align:left;border:1px solid #dce5f2;border-radius:16px;background:#f7f9fc;color:#172238;padding:18px;transition:border-color .2s,background-color .2s,transform .2s}
.apartment-mode:hover{transform:translateY(-2px)}
.apartment-mode.is-selected{border-color:#7cb8ff;background:#eef6ff}
.apartment-mode strong{font-size:17px}
.apartment-mode span,.apartment-hint{color:#738299;font-size:13px;line-height:1.45}
.apartment-hint{grid-column:1/-1;margin:14px 0 0;padding:13px 15px;border:1px solid #e2e9f3;border-radius:12px;background:#f5f8fc}
.apartment-summary__stat{padding:16px;border:1px solid #dfe9f5;border-radius:14px;background:#f0f6ff;margin:12px 0}
.apartment-summary__rows{margin:13px 0}
.apartment-summary>p{font-size:12px;color:#7a899e;line-height:1.45}
.apartment-results__intro{display:flex;justify-content:space-between;align-items:start;gap:14px;margin:0 0 6px}
.apartment-results__intro h2{margin:0 0 4px}
.apartment-results__intro p{margin:0;color:#738299;font-size:12px}
.apartment-count{text-align:right;white-space:nowrap}
.apartment-results{display:grid;gap:12px}
.apartment-filters{padding:18px 20px;border-radius:20px}
.apartment-filters__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.apartment-filters__head h2{font-size:19px;margin:0}
.apartment-filters__head span,.apartment-filters>p{color:#738299;font-size:12px}
.apartment-filters__fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end}
.apartment-filters__fields .field{min-width:0;margin:10px 0 0}
.apartment-filters__fields .field__label{font-size:11px;min-height:17px}
.apartment-filters__fields .control{min-height:42px;padding:8px 9px;font-size:12px}
.apartment-filters>p{margin:10px 0 0}
.apartment-card{overflow:hidden;border-radius:19px;display:grid;grid-template-columns:28% minmax(0,1fr)}
.apartment-card.is-selected{border-color:#78b6ff;box-shadow:0 7px 25px #087dff1c}
.apartment-card__hero{min-height:250px;background:#edf2f8;color:#8292a8;display:grid;place-items:center;text-align:center;font-size:12px}
.apartment-card__hero img{width:100%;height:100%;max-height:400px;object-fit:cover}
.apartment-card__body{padding:17px;min-width:0}
.apartment-card h3{margin:3px 0;font-size:19px}
.apartment-card p{margin:0 0 8px;color:#738299;font-size:12px}
.apartment-card__body>strong{color:#087dff;font-size:16px}
.apartment-card__plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:13px}
.apartment-plan{display:flex;flex-direction:column;text-align:left;padding:5px;min-width:0;overflow:hidden;border:1px solid #e2e8f2;border-radius:11px;background:#fff;color:#203047}
.apartment-plan.is-selected{border-color:#087dff;background:#f0f7ff}
.apartment-plan__visual{height:78px;width:100%;display:grid;place-items:center;border-radius:7px;overflow:hidden;background:#f1f4f8;color:#94a1b3;text-align:center;font-size:10px}
.apartment-plan__visual img{width:100%;height:100%;object-fit:contain}
.apartment-plan__copy{display:grid;gap:2px;padding:6px 2px}
.apartment-plan__copy strong{font-size:10px}
.apartment-plan__copy b{font-size:11px;color:#087dff}
.apartment-plan__copy small{font-size:9px;color:#7b899d}
.apartment-card__actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.apartment-card__actions .btn{min-height:35px;padding:7px 10px;font-size:11px;text-decoration:none}
.apartment-empty{padding:38px;border-radius:18px;color:#6b7e96;text-align:center}
.apartment-finish>p{max-width:580px;color:#6f7f97}
.apartment-offer{margin-top:28px;border-top:1px solid #dce5f2;padding-top:23px}
.apartment-offer p{color:#738299;font-size:13px}
.apartment-inquiry{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;max-width:650px}
.apartment-inquiry .field{margin:8px 0}
.apartment-inquiry__wide{grid-column:1/-1}
.apartment-consent{display:flex;align-items:start;gap:8px;margin:12px 0;color:#5d6d83;font-size:12px}
.apartment-consent input{margin-top:2px}
.apartment-inquiry .btn{justify-self:start}
.topbar .stepbar--apartment{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1100px){.apartment-grid{grid-template-columns:minmax(0,1fr) 250px;min-height:0}.apartment-work{min-height:480px}.apartment-filters__fields{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.apartment-page-head{min-height:0}.apartment-grid{display:flex;flex-direction:column;gap:12px}.apartment-summary,.apartment-work{padding:19px;min-height:0}.apartment-summary{order:3}.apartment-card{grid-template-columns:1fr}.apartment-card__hero{height:170px;min-height:0}.apartment-card__hero img{max-height:170px}.apartment-results__intro{display:block}.apartment-count{text-align:left;margin-top:8px}.topbar .stepbar--apartment .step__label{display:none}.apartment-filters__fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.apartment-fields,.apartment-modes,.apartment-inquiry{grid-template-columns:1fr}.apartment-plan__visual{height:70px}.apartment-card__plans{grid-template-columns:repeat(2,minmax(0,1fr))}.apartment-page-head h1{font-size:30px}.apartment-summary{grid-column:auto}.apartment-filters__head{display:block}}

/* Quiz chrome stays in place; the workspace and its long cards own scrolling. */
body:has(.shell > .footer){overflow:hidden}
.shell:has(> .footer){height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.shell:has(> .footer)>.topbar,.shell:has(> .footer)>.footer{flex:none}
.shell:has(> .footer)>.main{flex:1;min-height:0;overflow:hidden;padding-bottom:10px}
.shell:has(> .footer)>.main>.container{height:100%;min-height:0;display:flex;flex-direction:column}
.shell:has(> .footer) .page-head{flex:none;min-height:98px;margin-bottom:19px;align-items:flex-start}
.shell:has(> .footer) .page-head .info-pill,.shell:has(> .footer) .page-head .project-search{align-self:flex-end}
.shell:has(> .footer) .stage-grid,.shell:has(> .footer) .apartment-grid{flex:1;min-height:0;height:auto;overflow:hidden;align-items:stretch}
.shell:has(> .footer) .stage-grid>.panel,.shell:has(> .footer) .apartment-grid>.panel{min-height:0;max-height:100%;height:100%;overflow-y:auto;overscroll-behavior:contain}
.shell:has(> .footer) .stage-grid--project>.filters,.shell:has(> .footer) .stage-grid--project>.project-panel,.shell:has(> .footer) .stage-grid--project>.selected-project{align-self:stretch;height:100%;min-height:0}
.shell:has(> .footer) .stage-grid--project>.project-panel{display:flex;flex-direction:column;overflow:hidden}
.shell:has(> .footer) .stage-grid--project .project-grid{flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain}
.shell:has(> .footer) .stage-grid--location>.map-panel{min-height:0;height:100%;overflow:hidden}
.shell:has(> .footer) .stage-grid--location>.location-settings,.shell:has(> .footer) .stage-grid--location>.location-summary{height:100%;overflow-y:auto}
.shell:has(> .footer) .apartment-center{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.shell:has(> .footer) .apartment-work{min-height:100%}
.shell:has(> .footer) .apartment-summary{height:100%;overflow-y:auto;overscroll-behavior:contain}
.stage-five-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
@media(max-width:1100px){
  .shell:has(> .footer)>.main{overflow-y:auto;overscroll-behavior:contain}
  .shell:has(> .footer)>.main>.container{height:auto;min-height:100%;display:block}
  .shell:has(> .footer) .stage-grid,.shell:has(> .footer) .apartment-grid{height:auto;min-height:0;overflow:visible}
  .shell:has(> .footer) .stage-grid>.panel,.shell:has(> .footer) .apartment-grid>.panel{height:auto;max-height:none;overflow:visible}
  .shell:has(> .footer) .apartment-center{height:auto;overflow:visible}
  .shell:has(> .footer) .apartment-work{min-height:0}
  .shell:has(> .footer) .apartment-summary{height:auto;overflow:visible}
  .shell:has(> .footer) .stage-grid--location>.map-panel{height:620px;min-height:0}
  .stage-five-body{height:auto;overflow:visible}
}
@media(max-width:760px){
  .shell:has(> .footer) .page-head{min-height:0}
  .shell:has(> .footer) .stage-grid--project>.filters,.shell:has(> .footer) .stage-grid--project>.project-panel,.shell:has(> .footer) .stage-grid--project>.selected-project{height:auto}
  .shell:has(> .footer) .stage-grid--project>.project-panel{display:block;overflow:visible}
  .shell:has(> .footer) .stage-grid--project .project-grid{max-height:none;overflow:visible}
  .shell:has(> .footer) .stage-grid--location>.map-panel{height:min(65vh,520px);min-height:390px}
}
@media(prefers-reduced-motion:reduce){.quiz-entering{animation:none}.welcome-hero.is-opening .direction-card{transform:none}}

/* The public entrance is a house-building presentation; apartment work remains available in code. */
.landing-nav{display:flex;justify-content:center;align-items:center;gap:30px;flex:1;min-width:0}
.landing-nav a{text-decoration:none;color:#5f7089;font-size:13px;font-weight:700;white-space:nowrap;transition:color .2s}
.landing-nav a:hover{color:#087dff}
.landing-main{display:block;padding:62px 0 0}
.landing-main>.container{width:min(calc(100% - 48px),1500px)}
.landing-content{overflow:hidden}
.landing-kicker{display:inline-block;color:#087dff;font-size:11px;font-weight:850;letter-spacing:.14em;line-height:1.4}
.landing-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.94fr);gap:42px;align-items:center;text-align:left}
.landing-hero__copy{padding:24px 0}
.landing-hero h1{max-width:790px;margin:20px 0 26px;font-size:clamp(46px,4.55vw,75px);line-height:1.04;letter-spacing:-.06em}
.landing-hero h1 em{font-style:normal;color:#087dff}
.landing-hero__lead{max-width:680px;margin:0;color:#5c6d86;font-size:18px;line-height:1.62}
.landing-hero__actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin:31px 0 24px}
.landing-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;min-height:58px;padding:13px 21px;border-radius:16px;font-size:15px}
.landing-cta span{font-size:21px;line-height:1}
.landing-text-link{font-size:14px;font-weight:750;color:#174f96;text-decoration:none}
.landing-text-link:hover{text-decoration:underline}
.landing-hero__reassurance{display:flex;flex-wrap:wrap;gap:11px 24px;color:#78879d;font-size:12px}
.landing-hero__reassurance span:before{content:'✓';display:inline-grid;place-items:center;width:18px;height:18px;margin-right:8px;border-radius:50%;background:#e7f3ff;color:#087dff;font-weight:900}
.landing-hero__visual{position:relative;height:550px;min-width:0;border-radius:31px;overflow:hidden;background:#d9e7e7;box-shadow:0 26px 60px #34496626}
.landing-hero__visual:after{content:'';position:absolute;inset:48% 0 0;background:linear-gradient(transparent,rgba(8,28,45,.65))}
.landing-hero__visual img{width:100%;height:100%;object-fit:cover}
.landing-flow-card{position:absolute;left:24px;right:24px;bottom:25px;z-index:1;display:grid;gap:6px;padding:20px 23px;border:1px solid #ffffff88;border-radius:18px;background:#ffffffd9;box-shadow:0 12px 28px #0b233237;backdrop-filter:blur(20px)}
.landing-flow-card span,.landing-compare__preview-top{font-size:10px;font-weight:850;letter-spacing:.13em;color:#087dff}
.landing-flow-card strong{font-size:21px;color:#112139;letter-spacing:-.03em}
.landing-flow-card small{font-size:12px;color:#687b92}
.landing-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:57px 0 110px;padding:12px;border:1px solid #e0e9f4;border-radius:24px;background:#e3eaf3;box-shadow:var(--ios-shadow)}
.landing-proof>div{display:flex;align-items:center;gap:16px;min-height:85px;padding:17px 21px;background:#ffffffd6;color:#273b55;font-size:14px;font-weight:700}
.landing-proof>div:first-child{border-radius:16px 0 0 16px}.landing-proof>div:last-child{border-radius:0 16px 16px 0}
.landing-proof b{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:11px;background:#e9f3ff;color:#087dff;font-size:13px}
.landing-section{padding:0 0 112px;scroll-margin-top:35px}
.landing-section__intro{max-width:800px;margin-bottom:36px}
.landing-section h2,.landing-final h2{margin:15px 0 14px;font-size:clamp(32px,3.2vw,49px);line-height:1.12;letter-spacing:-.05em}
.landing-section__intro p,.landing-safety__head>p,.landing-compare__copy>p,.landing-final>p{max-width:710px;color:#65758e;font-size:16px;line-height:1.6}
.landing-benefits,.landing-safety__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.landing-benefits article,.landing-safety__grid article{padding:28px;border:1px solid #fff;border-radius:23px;background:linear-gradient(145deg,#fff,#f9fbfecc);box-shadow:var(--ios-shadow)}
.landing-benefit__icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:27px;border-radius:16px;background:#e9f3ff;color:#087dff;font-size:26px}
.landing-benefits h3,.landing-safety__grid h3{font-size:22px;margin:0 0 11px}
.landing-benefits p,.landing-safety__grid p{margin:0;color:#6d7e96;font-size:14px;line-height:1.6}
.landing-safety{padding:57px 49px 47px;margin:0 0 110px;border-radius:32px;background:linear-gradient(132deg,#e8f1ff,#f8fbff 64%,#ecf4ff)}
.landing-safety__head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:31px}
.landing-safety__head>div{max-width:590px}.landing-safety__head>p{max-width:450px;margin-bottom:6px;font-size:14px}
.landing-safety__grid article{min-height:255px}
.landing-safety__grid article>span{display:block;margin-bottom:26px;color:#087dff;font-size:11px;font-weight:850;letter-spacing:.13em}
.landing-source-link{display:inline-block;margin-top:15px;color:#087dff;font-size:12px;font-weight:750;text-decoration:none}
.landing-source-link:hover{text-decoration:underline}
.landing-safety__note{margin:22px 0 0;color:#667991;font-size:12px;line-height:1.5}
.landing-compare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:70px;align-items:center}
.landing-compare__copy>p{margin-bottom:22px}
.landing-compare__copy ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:0 0 29px;padding:0;list-style:none;color:#294363;font-size:14px;font-weight:700}
.landing-compare__copy li:before{content:'✓';margin-right:9px;color:#087dff}
.landing-compare__preview{padding:31px;border:1px solid #e7edf6;border-radius:27px;background:#fff;box-shadow:0 23px 55px #30476017}
.landing-compare__preview-top{display:flex;justify-content:space-between;margin-bottom:13px}
.landing-compare__preview-row{display:grid;grid-template-columns:minmax(120px,1.3fr) repeat(3,minmax(0,1fr));gap:12px;align-items:center;min-height:65px;border-bottom:1px solid #e8edf4;color:#52647e;font-size:14px;font-weight:700}
.landing-compare__preview-row i{height:18px;border-radius:7px;background:linear-gradient(90deg,#e6f0fc,#f4f8fd)}
.landing-compare__preview-row:nth-child(3) i:nth-child(3),.landing-compare__preview-row:nth-child(4) i:nth-child(2){background:linear-gradient(90deg,#8ac3ff,#d4eaff)}
.landing-compare__preview>p{margin:21px 0 0;color:#8391a3;font-size:12px;line-height:1.5}
.landing-faq{display:grid;grid-template-columns:minmax(230px,.75fr) minmax(0,1.25fr);gap:50px;padding-top:10px}
.landing-faq__items{display:grid;gap:11px}
.landing-faq__items details{border:1px solid #e2e9f2;border-radius:17px;background:#fff;box-shadow:0 4px 14px #34496609}
.landing-faq__items summary{padding:20px 23px;cursor:pointer;color:#253750;font-size:16px;font-weight:750}
.landing-faq__items details p{padding:0 23px 20px;margin:0;color:#65758e;font-size:14px;line-height:1.55}
.landing-final{text-align:center;padding:62px 25px 70px;border-radius:29px;background:linear-gradient(130deg,#e7f1ff,#f8fbff);border:1px solid #e0eafa}
.landing-final h2{max-width:720px;margin-inline:auto}.landing-final p{margin:0 auto 26px}
.landing-footer{display:flex;justify-content:space-between;gap:24px;align-items:center;flex-wrap:wrap;padding:34px 0 50px;color:#8693a5;font-size:11px}
.landing-footer>div{display:flex;gap:10px 20px;flex-wrap:wrap}.landing-footer a{color:#647e9e;text-decoration:none}.landing-footer a:hover{text-decoration:underline}
.landing-main.is-opening .landing-hero{animation:landing-exit .28s ease both}
@keyframes landing-exit{to{opacity:0;transform:translateY(-12px)}}
@media(max-width:1100px){.landing-hero{gap:26px}.landing-hero__visual{height:480px}.landing-hero h1{font-size:52px}.landing-safety{padding:42px 30px}.landing-compare{gap:35px}}
@media(max-width:760px){.landing-nav{display:none}.landing-main{padding-top:30px}.landing-main>.container{width:calc(100% - 24px)}.landing-hero{grid-template-columns:1fr;gap:18px}.landing-hero__copy{padding:0 7px}.landing-hero h1{font-size:clamp(39px,9vw,54px);margin:16px 0}.landing-hero__lead{font-size:15px}.landing-hero__visual{height:370px}.landing-proof{grid-template-columns:1fr;margin:25px 0 77px}.landing-proof>div,.landing-proof>div:first-child,.landing-proof>div:last-child{border-radius:13px;min-height:65px}.landing-benefits,.landing-safety__grid{grid-template-columns:1fr}.landing-benefits article{padding:22px}.landing-benefit__icon{margin-bottom:15px}.landing-section{padding-bottom:72px}.landing-safety{padding:29px 18px;margin-bottom:74px}.landing-safety__head{display:block}.landing-safety__head>p{max-width:none}.landing-safety__grid article{min-height:0;padding:22px}.landing-safety__grid article>span{margin-bottom:14px}.landing-compare,.landing-faq{grid-template-columns:1fr;gap:24px}.landing-compare__copy{padding:0 5px}.landing-compare__preview{padding:22px}.landing-faq{padding-top:0}.landing-faq .landing-section__intro{margin-bottom:0}.landing-final{padding:38px 19px 45px}.landing-footer{padding-bottom:35px}}
@media(max-width:430px){.landing-hero__actions{align-items:stretch;flex-direction:column;gap:15px}.landing-cta{width:100%}.landing-hero__visual{height:300px}.landing-flow-card{left:13px;right:13px;bottom:13px;padding:13px}.landing-flow-card strong{font-size:15px}.landing-compare__copy ul{grid-template-columns:1fr}.landing-compare__preview-row{grid-template-columns:minmax(90px,1.3fr) repeat(3,minmax(0,1fr));gap:6px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.landing-main.is-opening .landing-hero{animation:none}}
