body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-housing-page) {
  --v2h-paper: #f4e8d3;
  --v2h-paper-pale: #fbf2e2;
  --v2h-ink: #0c3554;
  --v2h-ink-soft: #496170;
  --v2h-ochre: #d59b2f;
  --v2h-coral: #d85b37;
  --v2h-teal: #2f7f7c;
  --v2h-sky: #8abac0;
  color: var(--v2h-ink);
  background-color: var(--v2h-paper);
}

body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-housing-page) .app-shell {
  width: min(1440px, calc(100% - 56px));
  overflow: visible;
}

body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-housing-page) #module-view,
body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-housing-page) #module-content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-housing-page) .site-footer {
  display: none;
}

body.editorial-ui.v2-foundation .site-header[data-profile="housing"] {
  position: relative;
  z-index: 30;
  display: grid;
  width: 100%;
  height: 62px;
  min-height: 62px;
  margin: 0;
  grid-template-columns: 1fr auto;
  align-items: center;
  border-bottom: 1px solid rgba(12, 53, 84, .75);
  background: transparent;
}

body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .site-name {
  color: var(--v2h-ink);
  font-family: var(--v2-font-display);
  font-size: 19px;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
}

body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .primary-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1px;
}

body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .nav-action {
  width: auto;
  min-width: 0;
  min-height: 38px;
  padding: 8px 11px;
  border: 1px solid transparent;
  border-radius: 0;
  color: var(--v2h-ink);
  background: transparent;
  font-family: var(--v2-font-display);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
  white-space: nowrap;
}

body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .nav-action:hover,
body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .nav-action:focus-visible {
  border-color: rgba(12, 53, 84, .42);
  background: rgba(251, 242, 226, .62);
}

body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .nav-action[aria-current="page"] {
  border-color: var(--v2h-ink);
  background: rgba(251, 242, 226, .7);
}

.v2-housing-page {
  width: 100%;
  color: var(--v2h-ink);
  font-family: var(--v2-font-interface);
}

.v2h-hero {
  position: relative;
  height: 398px;
  min-height: 398px;
  overflow: hidden;
  border-bottom: 1px solid rgba(12, 53, 84, .55);
  isolation: isolate;
}

.v2h-roots-word {
  position: absolute;
  z-index: 2;
  top: 2px;
  left: -5px;
  color: var(--v2h-ochre);
  font-family: var(--v2-font-display);
  font-size: clamp(156px, 20.4vw, 222px);
  font-weight: 900;
  letter-spacing: -.055em;
  line-height: .82;
  transform: scaleX(.87);
  transform-origin: left top;
}

.v2h-hero-art {
  position: absolute;
  z-index: 1;
  right: 33%;
  bottom: -8px;
  left: 0;
  height: 86%;
  overflow: hidden;
  pointer-events: none;
}

.v2h-hero-art img {
  display: block;
  width: 100%;
  height: 100%;
  margin-left: 0;
  object-fit: cover;
  object-position: 50% 58%;
  mix-blend-mode: multiply;
}

.v2h-hero-copy {
  position: absolute;
  z-index: 4;
  top: 25px;
  right: auto;
  left: 67%;
  width: 31%;
  padding: 21px 0 17px 14px;
  border-left: 1px solid rgba(12, 53, 84, .62);
}

.v2h-hero-copy h1 {
  max-width: 12ch;
  margin: 0 0 18px;
  color: var(--v2h-ink);
  font-family: var(--v2-font-editorial);
  font-size: clamp(43px, 4.9vw, 58px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1.02;
}

.v2h-hero-copy p,
.v2h-hero-copy small {
  display: block;
  max-width: 30ch;
  margin: 0;
  color: var(--v2h-ink);
  font-family: var(--v2-font-editorial);
  font-size: 20px;
  line-height: 1.35;
}

.v2h-hero-copy small {
  margin-top: 8px;
  color: var(--v2h-ink-soft);
  font-size: 15px;
}

.v2h-workspace {
  display: grid;
  width: 100%;
  height: 590px;
  min-height: 590px;
  grid-template-columns: minmax(0, 37fr) minmax(0, 63fr);
  border: 1px solid rgba(12, 53, 84, .72);
  border-top: 0;
  background: rgba(251, 242, 226, .17);
}

.v2h-input-panel,
.v2h-result-panel {
  min-width: 0;
  height: 100%;
  overflow: hidden;
}

.v2h-input-panel {
  display: flex;
  padding: 17px 18px 14px;
  flex-direction: column;
  border-right: 1px solid rgba(12, 53, 84, .56);
}

.v2h-input-panel > header p,
.v2h-result-header p,
.v2h-sensitivity header p,
.v2h-bottom-row article > p,
.v2h-exclusions summary small {
  margin: 0 0 4px;
  color: var(--v2h-ink);
  font-family: var(--v2-font-display);
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .045em;
  line-height: 1.2;
  text-transform: uppercase;
}

.v2h-input-panel > header h2,
.v2h-result-header h2,
.v2h-sensitivity h2,
.v2h-bottom-row h2,
.v2h-mechanism h2 {
  margin: 0;
  color: var(--v2h-ink);
  font-family: var(--v2-font-editorial);
  font-size: 23px;
  font-weight: 400;
  letter-spacing: -.02em;
  line-height: 1.08;
}

.v2h-mode {
  display: grid;
  margin: 13px 0 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid rgba(12, 53, 84, .5);
}

.v2h-mode button {
  min-height: 52px;
  padding: 5px 7px;
  border: 0;
  border-right: 1px solid rgba(12, 53, 84, .35);
  border-radius: 0;
  color: var(--v2h-ink);
  background: transparent;
  font: 700 14px/1.12 var(--v2-font-interface);
}

.v2h-mode button:last-child {
  border-right: 0;
}

.v2h-mode button[aria-pressed="true"] {
  color: var(--v2h-paper-pale);
  background: var(--v2h-teal);
}

.v2h-primary-fields {
  display: grid;
  grid-template-columns: 1fr;
}

.v2h-field {
  display: grid;
  min-width: 0;
  min-height: 78px;
  padding: 8px 0;
  grid-template-columns: 115px minmax(0, 1fr);
  align-items: center;
  column-gap: 10px;
  border-bottom: 1px solid rgba(12, 53, 84, .18);
}

.v2h-field > label,
.v2h-advanced-field > label {
  color: var(--v2h-ink);
  font-family: var(--v2-font-display);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.2;
}

.v2h-field > label {
  display: flex;
  align-items: center;
  gap: 3px;
  white-space: nowrap;
}

.v2h-help {
  display: inline-flex;
  width: 16px;
  height: 16px;
  min-width: 16px !important;
  min-height: 16px !important;
  padding: 0;
  margin-left: 3px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(12, 53, 84, .64);
  border-radius: 50%;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  cursor: help;
}

.v2h-input-wrap {
  position: relative;
  display: flex;
  height: 45px;
  min-width: 0;
  align-items: center;
  border: 1px solid rgba(12, 53, 84, .5);
  background: rgba(255, 250, 240, .55);
}

.v2h-input-wrap input {
  width: 100%;
  min-width: 0;
  height: 43px;
  padding: 3px 9px;
  border: 0;
  border-radius: 0;
  color: var(--v2h-ink);
  background: transparent;
  font: 400 26px/1 var(--v2-font-editorial);
  text-align: right;
}

.v2h-input-wrap input:focus {
  outline: 2px solid var(--v2h-teal);
  outline-offset: 1px;
}

.v2h-prefix,
.v2h-suffix {
  display: inline-flex;
  height: 100%;
  padding: 0 7px;
  align-items: center;
  border-right: 1px solid rgba(12, 53, 84, .3);
  color: var(--v2h-ink);
  font-size: 14px;
  font-weight: 700;
}

.v2h-suffix {
  border-right: 0;
  border-left: 1px solid rgba(12, 53, 84, .3);
}

.v2h-field > small {
  grid-column: 2;
  margin: 3px 2px -2px 0;
  color: var(--v2h-ink-soft);
  font-size: 10px;
  line-height: 1.2;
  text-align: right;
}

.v2h-advanced {
  margin-top: 9px;
  border: 1px solid rgba(12, 53, 84, .45);
  background: rgba(255, 250, 240, .35);
}

.v2h-advanced > summary,
.v2h-chart-table > summary,
.v2h-exclusions > summary {
  display: flex;
  min-height: 55px;
  padding: 8px 11px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--v2h-ink);
  cursor: pointer;
  list-style: none;
}

.v2h-advanced > summary::-webkit-details-marker,
.v2h-chart-table > summary::-webkit-details-marker,
.v2h-exclusions > summary::-webkit-details-marker {
  display: none;
}

.v2h-advanced > summary span {
  display: grid;
  gap: 2px;
}

.v2h-advanced > summary strong {
  font: 700 15px/1.2 var(--v2-font-display);
}

.v2h-advanced > summary small {
  color: var(--v2h-ink-soft);
  font-size: 10px;
  line-height: 1.2;
}

.v2h-advanced summary svg,
.v2h-chart-table summary svg,
.v2h-exclusions summary svg {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  transition: transform .15s ease;
}

.v2h-advanced[open] > summary svg,
.v2h-chart-table[open] > summary svg,
.v2h-exclusions[open] > summary svg {
  transform: rotate(45deg);
}

.v2h-advanced[open] {
  position: absolute;
  z-index: 40;
  width: min(900px, calc(100vw - 56px));
  max-height: min(78vh, 720px);
  overflow: auto;
  box-shadow: 0 16px 50px rgba(12, 53, 84, .18);
}

.v2h-advanced-body {
  padding: 12px;
  border-top: 1px solid rgba(12, 53, 84, .35);
  background: var(--v2h-paper-pale);
}

.v2h-advanced-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.v2h-advanced-field {
  display: grid;
  gap: 5px;
}

.v2h-advanced-field > span {
  display: flex;
  height: 38px;
  border: 1px solid rgba(12, 53, 84, .4);
  background: rgba(255, 250, 240, .6);
}

.v2h-advanced-field input,
.v2h-advanced-field select {
  width: 100%;
  min-width: 0;
  border: 0;
  border-radius: 0;
  color: var(--v2h-ink);
  background: transparent;
  font: 16px/1 var(--v2-font-editorial);
  text-align: right;
}

.v2h-advanced-field i {
  display: inline-flex;
  min-width: 27px;
  align-items: center;
  justify-content: center;
  border-left: 1px solid rgba(12, 53, 84, .25);
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
}

.v2h-budget-overlap {
  display: grid;
  margin: 14px 0;
  padding: 10px;
  grid-template-columns: 1.2fr .9fr .9fr;
  align-items: end;
  gap: 12px;
  border: 1px solid rgba(12, 53, 84, .3);
}

.v2h-budget-overlap legend {
  padding-inline: 5px;
  font: 700 12px var(--v2-font-interface);
}

.v2h-budget-overlap p {
  margin: 0;
  color: var(--v2h-ink-soft);
  font-size: 11px;
  line-height: 1.35;
}

.v2h-budget-overlap > div {
  display: grid;
  height: 38px;
  grid-template-columns: 1fr 1fr;
  border: 1px solid rgba(12, 53, 84, .4);
}

.v2h-budget-overlap button {
  border: 0;
  border-right: 1px solid rgba(12, 53, 84, .3);
  border-radius: 0;
  color: var(--v2h-ink);
  background: transparent;
  font: 700 11px var(--v2-font-interface);
}

.v2h-budget-overlap button[aria-pressed="true"] {
  color: var(--v2h-paper-pale);
  background: var(--v2h-teal);
}

.v2h-side-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.v2h-side-actions button {
  min-height: 42px;
  border: 1px solid var(--v2h-ink);
  border-radius: 0;
  color: var(--v2h-ink);
  background: transparent;
  font: 700 12px var(--v2-font-interface);
}

.v2h-side-actions button:first-child {
  color: var(--v2h-paper-pale);
  background: var(--v2h-ink);
}

.v2h-compare-button {
  display: flex;
  width: 100%;
  min-height: 50px;
  margin-top: 10px;
  padding: 8px 14px;
  align-items: center;
  justify-content: space-between;
  border: 1px solid var(--v2h-coral);
  border-radius: 0;
  color: var(--v2h-paper-pale);
  background: var(--v2h-coral);
  font: 700 16px var(--v2-font-display);
}

.v2h-compare-button:hover,
.v2h-compare-button:focus-visible {
  color: var(--v2h-coral);
  background: transparent;
}

.v2h-input-boundary {
  margin: 7px 0 0;
  color: var(--v2h-ink-soft);
  font: italic 10px/1.25 var(--v2-font-editorial);
  text-align: center;
}

.v2h-result-panel {
  display: flex;
  padding: 16px 17px 13px;
  flex-direction: column;
}

.v2h-result-header {
  display: flex;
  min-height: 90px;
  flex-direction: column;
  align-items: start;
  gap: 10px;
  border-bottom: 1px solid rgba(12, 53, 84, .34);
}

.v2h-result-toggle {
  display: grid;
  width: 360px;
  grid-template-columns: 1fr 1.25fr;
  border: 1px solid rgba(12, 53, 84, .5);
}

.v2h-result-toggle button {
  min-height: 36px;
  padding: 5px 8px;
  border: 0;
  border-right: 1px solid rgba(12, 53, 84, .32);
  border-radius: 0;
  color: var(--v2h-ink);
  background: transparent;
  font: 700 13px var(--v2-font-interface);
}

.v2h-result-toggle button:last-child {
  border-right: 0;
}

.v2h-result-toggle button[aria-pressed="true"] {
  color: var(--v2h-paper-pale);
  background: var(--v2h-ink);
}

.v2h-result-body {
  min-height: 0;
  flex: 1;
  overflow: hidden;
}

.v2h-chart-block {
  height: 100%;
}

.v2h-chart-key {
  display: flex;
  min-height: 21px;
  align-items: center;
  justify-content: flex-end;
  gap: 13px;
  color: var(--v2h-ink);
  font-size: 10px;
  font-weight: 700;
}

.v2h-chart-key span::before {
  display: inline-block;
  width: 12px;
  height: 7px;
  margin-right: 5px;
  border: 1px solid currentColor;
  content: "";
}

.v2h-chart-key .is-equity { color: #9a6c14; }
.v2h-chart-key .is-equity::before { background: rgba(213, 155, 47, .76); }
.v2h-chart-key .is-mortgage { color: #b84629; }
.v2h-chart-key .is-mortgage::before { background: rgba(216, 91, 55, .7); }
.v2h-chart-key .is-invested { color: #246d6b; }
.v2h-chart-key .is-invested::before { background: rgba(47, 127, 124, .7); }
.v2h-chart-key .is-rent { color: #4d818b; }
.v2h-chart-key .is-rent::before { background: rgba(138, 186, 192, .48); }

.v2h-balance-chart {
  display: block;
  width: 100%;
  height: auto;
  max-height: 344px;
  overflow: visible;
}

.v2h-grid line {
  stroke: rgba(12, 53, 84, .17);
  stroke-dasharray: 2 4;
}

.v2h-grid text,
.v2h-year-tick text,
.v2h-end-label text,
.v2h-component-label {
  fill: var(--v2h-ink);
  font-family: var(--v2-font-interface);
  font-size: 12px;
}

.v2h-year-tick line,
.v2h-zero {
  stroke: rgba(12, 53, 84, .64);
}

.v2h-area-equity {
  fill: rgba(213, 155, 47, .67);
  stroke: #9a6c14;
  stroke-width: 1;
}

.v2h-area-mortgage {
  fill: rgba(216, 91, 55, .65);
  stroke: #b84629;
  stroke-width: 1;
}

.v2h-area-invested {
  fill: rgba(47, 127, 124, .69);
  stroke: #246d6b;
  stroke-width: 1;
}

.v2h-area-rent {
  fill: rgba(138, 186, 192, .45);
  stroke: #4d818b;
  stroke-width: 1;
  stroke-dasharray: 3 3;
}

.v2h-net-line {
  fill: none;
  stroke-width: 2.1;
}

.v2h-net-line.is-buy { stroke: var(--v2h-ink); }
.v2h-net-line.is-rent { stroke: var(--v2h-paper-pale); stroke-dasharray: 4 3; }

.v2h-component-label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .07em;
}

.v2h-end-label text:first-child {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
}

.v2h-end-label text:last-child {
  font-family: var(--v2-font-editorial);
  font-size: 24px;
}

.v2h-end-label.is-buy text:first-child,
.v2h-end-label.is-buy text:last-child { fill: var(--v2h-coral); }
.v2h-end-label.is-rent text:first-child,
.v2h-end-label.is-rent text:last-child { fill: var(--v2h-teal); }

.v2h-hit {
  fill: transparent;
  outline: none;
  pointer-events: all;
}

.v2h-hit:focus {
  fill: rgba(255, 255, 255, .13);
  stroke: var(--v2h-ink);
  stroke-width: 1;
}

.v2h-focus-dot {
  fill: var(--v2h-paper-pale);
  opacity: 0;
  pointer-events: none;
  stroke-width: 2;
}

.v2h-focus-dot.is-buy { stroke: var(--v2h-coral); }
.v2h-focus-dot.is-rent { stroke: var(--v2h-teal); }

.v2h-hit:focus + .v2h-focus-dot,
.v2h-hit:focus + .v2h-focus-dot + .v2h-focus-dot {
  opacity: 1;
}

.v2h-chart-table {
  border-top: 1px solid rgba(12, 53, 84, .3);
}

.v2h-chart-table > summary {
  min-height: 27px;
  padding: 3px 2px;
  justify-content: flex-start;
  color: var(--v2h-ink);
  font: 700 12px var(--v2-font-display);
  text-transform: uppercase;
}

.v2h-chart-table summary svg {
  width: 16px;
  height: 16px;
}

.v2h-chart-table[open] {
  position: absolute;
  z-index: 45;
  right: 16px;
  bottom: 13px;
  left: calc(37% + 17px);
  max-height: 430px;
  overflow: auto;
  border: 1px solid var(--v2h-ink);
  background: var(--v2h-paper-pale);
  box-shadow: 0 14px 44px rgba(12, 53, 84, .16);
}

.v2h-chart-table[open] > summary {
  padding-inline: 12px;
}

.v2h-table-scroll {
  overflow: auto;
}

.v2h-table-scroll table {
  width: 100%;
  border-collapse: collapse;
  font-size: 10px;
  white-space: nowrap;
}

.v2h-table-scroll caption {
  padding: 8px 10px;
  color: var(--v2h-ink);
  font: 400 18px var(--v2-font-editorial);
  text-align: left;
}

.v2h-table-scroll th,
.v2h-table-scroll td {
  padding: 6px 8px;
  border: 1px solid rgba(12, 53, 84, .2);
  text-align: right;
}

.v2h-table-scroll th:first-child {
  text-align: left;
}

.v2h-difference {
  display: grid;
  min-height: 72px;
  padding: 7px 10px;
  grid-template-columns: 180px 1fr;
  align-items: center;
  column-gap: 12px;
  border: 1px solid rgba(216, 91, 55, .72);
  background: rgba(251, 242, 226, .5);
}

.v2h-difference > span {
  color: var(--v2h-coral);
  font-family: var(--v2-font-display);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1.25;
  text-transform: uppercase;
}

.v2h-difference strong {
  display: flex;
  color: var(--v2h-ink);
  align-items: baseline;
  justify-content: flex-end;
  gap: 12px;
  font: 400 13px/1.18 var(--v2-font-editorial);
}

.v2h-difference strong b {
  color: var(--v2h-ink);
  font: 400 30px/1 var(--v2-font-editorial);
}

.v2h-difference strong em {
  max-width: 15ch;
  color: var(--v2h-ink-soft);
  font-size: 11px;
  font-style: normal;
}

.v2h-difference small {
  display: grid;
  grid-column: 2;
  grid-template-columns: 1fr auto 1fr;
  gap: 13px;
  color: var(--v2h-ink-soft);
  font-size: 10px;
}

.v2h-difference small i {
  font-style: normal;
}

.v2h-difference small i:last-child {
  text-align: right;
}

.v2h-monthly-view {
  display: grid;
  padding-top: 10px;
  gap: 9px;
}

.v2h-month-row {
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(12, 53, 84, .25);
}

.v2h-month-row header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}

.v2h-month-row header div {
  display: grid;
}

.v2h-month-row header b {
  font: 400 19px var(--v2-font-editorial);
}

.v2h-month-row header span {
  color: var(--v2h-ink-soft);
  font-size: 9px;
}

.v2h-month-row header > strong {
  font: 400 24px var(--v2-font-editorial);
}

.v2h-month-row header small {
  font: 700 9px var(--v2-font-interface);
}

.v2h-month-bar {
  display: flex;
  width: var(--bar-width);
  height: 24px;
  margin: 5px 0;
  overflow: hidden;
  border: 1px solid rgba(12, 53, 84, .55);
}

.v2h-month-bar > span {
  flex: var(--share) 1 0;
  min-width: 2px;
  outline-offset: -2px;
}

.v2h-month-bar .is-equity { background: var(--v2h-ochre); }
.v2h-month-bar .is-interest { background: var(--v2h-coral); }
.v2h-month-bar .is-tax { background: #8d593d; }
.v2h-month-bar .is-insurance { background: #a7786b; }
.v2h-month-bar .is-hoa { background: #bb8761; }
.v2h-month-bar .is-maintenance { background: #dec098; }
.v2h-month-bar .is-rent { background: var(--v2h-teal); }
.v2h-month-bar .is-renter-insurance { background: var(--v2h-sky); }

.v2h-month-row dl {
  display: flex;
  margin: 0;
  flex-wrap: wrap;
  gap: 3px 12px;
}

.v2h-month-row dl div {
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--v2h-ink-soft);
  font-size: 9px;
}

.v2h-month-row dt {
  display: flex;
  align-items: center;
  gap: 3px;
}

.v2h-month-row dt i {
  width: 7px;
  height: 7px;
  background: var(--v2h-ochre);
}

.v2h-month-row dd {
  margin: 0;
  color: var(--v2h-ink);
  font-weight: 700;
}

.v2h-principal-note {
  display: grid;
  margin: 0;
  padding: 7px 9px;
  grid-template-columns: 20px 1fr;
  column-gap: 8px;
  color: var(--v2h-ink-soft);
  border: 1px solid rgba(47, 127, 124, .45);
  font-size: 10px;
  line-height: 1.3;
}

.v2h-principal-note span {
  display: inline-flex;
  width: 20px;
  height: 20px;
  grid-row: 1 / 3;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--v2h-teal);
  border-radius: 50%;
  color: var(--v2h-teal);
  font-family: var(--v2-font-editorial);
  font-style: italic;
}

.v2h-principal-note strong {
  color: var(--v2h-ink);
}

.v2h-sensitivity {
  height: 193px;
  min-height: 193px;
  margin-top: 16px;
  padding: 13px 20px 9px;
  border: 1px solid rgba(12, 53, 84, .58);
  background: rgba(251, 242, 226, .2);
}

.v2h-sensitivity > header {
  display: flex;
  min-height: 32px;
  align-items: start;
  border-bottom: 1px solid rgba(12, 53, 84, .25);
}

.v2h-sensitivity > header h2 {
  font-family: var(--v2-font-display);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.v2h-sensitivity-grid {
  display: grid;
  height: 98px;
  min-height: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.v2h-sensitivity-control {
  display: grid;
  padding: 10px 17px 3px;
  grid-template-columns: 1fr;
  align-content: start;
  border-right: 1px solid rgba(12, 53, 84, .22);
  color: var(--v2h-ink);
  min-height: 0;
  overflow: visible;
}

.v2h-sensitivity-control:last-child {
  border-right: 0;
}

.v2h-sensitivity-control > span {
  font-family: var(--v2-font-display);
  font-size: 15px;
  font-weight: 700;
}

.v2h-sensitivity-control strong {
  color: var(--v2h-coral);
  font: 400 17px var(--v2-font-editorial);
  text-align: left;
}

.v2h-sensitivity-control input {
  width: 100%;
  height: 34px;
  grid-column: 1;
  accent-color: var(--v2h-teal);
}

.v2h-sensitivity > footer {
  display: flex;
  height: 31px;
  align-items: center;
  gap: 10px;
  justify-content: flex-start !important;
  border-top: 1px solid rgba(12, 53, 84, .28);
  background: var(--v2h-paper);
}

.v2h-sensitivity > footer span {
  display: inline-flex;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--v2h-paper-pale);
  background: var(--v2h-ink);
}

.v2h-sensitivity > footer p {
  flex: 0 1 auto;
  width: auto;
  margin: 0 !important;
  color: var(--v2h-teal);
  font: 400 14px var(--v2-font-editorial);
  text-align: left !important;
}

.v2h-bottom-row {
  display: grid;
  height: 183px;
  min-height: 183px;
  margin-top: 16px;
  grid-template-columns: 33fr 33fr 34fr;
  gap: 16px;
  border: 0;
  background: transparent;
}

.v2h-current-cash,
.v2h-mechanism,
.v2h-exclusions {
  min-width: 0;
  padding: 14px 18px;
  border: 1px solid rgba(12, 53, 84, .58);
}

.v2h-current-cash > div {
  display: grid;
  margin-top: 17px;
  grid-template-columns: 37px 1fr;
  align-items: center;
  gap: 9px;
}

.v2h-cash-icon {
  display: inline-flex;
  width: 35px;
  height: 35px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: var(--v2h-paper-pale);
}

.v2h-cash-icon.is-buy { background: var(--v2h-ochre); }
.v2h-cash-icon.is-rent { background: var(--v2h-teal); }
.v2h-cash-icon svg { width: 25px; height: 25px; }

.v2h-current-cash b {
  display: grid;
  grid-template-columns: 38px auto 1fr;
  align-items: baseline;
  color: var(--v2h-ink);
  font-size: 15px;
}

.v2h-current-cash b em {
  grid-column: 1 / -1;
  color: var(--v2h-ink-soft);
  font: 400 10px/1.2 var(--v2-font-editorial);
}

.v2h-current-cash strong {
  font: 400 23px var(--v2-font-editorial);
}

.v2h-current-cash small {
  font-size: 8px;
}

.v2h-mechanism {
  position: relative;
  display: grid;
  overflow: hidden;
  grid-template-columns: 43% 57%;
}

.v2h-mechanism picture {
  position: absolute;
  inset: 0 58% 0 0;
}

.v2h-mechanism img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 77% 54%;
  mix-blend-mode: multiply;
}

.v2h-mechanism > div {
  position: relative;
  z-index: 2;
  grid-column: 2;
  align-self: center;
}

.v2h-mechanism > div > p {
  margin-bottom: 6px;
  color: var(--v2h-ink);
  font: 800 15px/1.1 var(--v2-font-display);
  letter-spacing: .035em;
  text-transform: uppercase;
}

.v2h-mechanism h2 {
  font-size: 18px;
}

.v2h-mechanism a {
  display: inline-flex;
  margin-top: 12px;
  gap: 8px;
  color: var(--v2h-teal);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.v2h-exclusions {
  border-right: 1px solid rgba(12, 53, 84, .58);
}

.v2h-exclusions > summary {
  height: 100%;
  padding: 0;
  align-items: flex-start;
  padding-top: 4px;
}

.v2h-exclusions summary strong {
  max-width: none;
  color: var(--v2h-ink);
  font: 800 16px/1.08 var(--v2-font-display);
  letter-spacing: .035em;
  text-transform: uppercase;
}

.v2h-exclusions[open] {
  position: relative;
  z-index: 5;
  overflow: auto;
  background: var(--v2h-paper-pale);
}

.v2h-exclusions[open] > summary {
  height: auto;
  min-height: 58px;
  border-bottom: 1px solid rgba(12, 53, 84, .28);
}

.v2h-exclusions > div p {
  margin: 9px 0;
  color: var(--v2h-ink-soft);
  font-size: 10px;
  line-height: 1.35;
}

.v2h-footer {
  display: grid;
  height: 54px;
  min-height: 54px;
  margin-top: 16px;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 12px;
  border-top: 1px solid rgba(12, 53, 84, .75);
  color: var(--v2h-ink-soft);
  font: 400 13px var(--v2-font-editorial);
  text-align: center;
}

.v2h-footer > span:first-child {
  display: inline-flex;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  color: var(--v2h-ink);
}

.v2h-footer > span:first-child svg {
  width: 36px;
  height: 36px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.2;
}


.v2-housing-page button,
.v2-housing-page a,
.v2-housing-page summary,
.v2-housing-page input,
.v2-housing-page select,
.v2-housing-page [tabindex="0"] {
  touch-action: manipulation;
}

.v2-housing-page button:focus-visible,
.v2-housing-page a:focus-visible,
.v2-housing-page summary:focus-visible,
.v2-housing-page input:focus-visible,
.v2-housing-page select:focus-visible,
.v2-housing-page [tabindex="0"]:focus-visible {
  outline: 2px solid var(--v2h-teal);
  outline-offset: 2px;
}

@media (max-width: 1180px) {
  body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .nav-action {
    padding-inline: 7px;
    font-size: 14px;
  }
}

@media (max-width: 820px) {
  body.editorial-ui.v2-foundation:has(#module-view:not([hidden]) .v2-housing-page) .app-shell {
    width: min(100% - 28px, 760px);
  }

  body.editorial-ui.v2-foundation .site-header[data-profile="housing"] {
    height: auto;
    min-height: 94px;
    padding: 10px 0;
    grid-template-columns: 1fr;
    gap: 5px;
  }

  body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .primary-nav {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .nav-action {
    width: 100%;
    padding-inline: 4px;
    white-space: normal;
  }

  body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .nav-action:nth-child(2),
  body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .nav-action:nth-child(3),
  body.editorial-ui.v2-foundation .site-header[data-profile="housing"] .nav-action:nth-child(4) {
    display: none;
  }

  .v2h-hero {
    height: 420px;
  }

  .v2h-roots-word {
    top: 12px;
    font-size: clamp(114px, 27vw, 190px);
  }

  .v2h-hero-copy {
    top: 125px;
    right: 0;
    left: auto;
    width: min(58%, 390px);
  }

  .v2h-hero-art {
    right: 0;
  }

  .v2h-workspace {
    height: auto;
    grid-template-columns: 1fr;
  }

  .v2h-input-panel,
  .v2h-result-panel {
    height: auto;
    min-height: 600px;
    overflow: visible;
  }

  .v2h-input-panel {
    border-right: 0;
    border-bottom: 1px solid rgba(12, 53, 84, .55);
  }

  .v2h-advanced[open] {
    position: static;
    width: 100%;
    max-height: none;
    box-shadow: none;
  }

  .v2h-advanced-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .v2h-budget-overlap {
    grid-template-columns: 1fr;
  }

  .v2h-result-panel {
    min-height: 650px;
  }

  .v2h-chart-table[open] {
    position: static;
    max-height: 390px;
  }

  .v2h-sensitivity {
    height: auto;
  }

  .v2h-sensitivity-grid {
    height: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .v2h-sensitivity-control:nth-child(2) {
    border-right: 0;
  }

  .v2h-bottom-row {
    height: auto;
    grid-template-columns: 1fr;
  }

  .v2h-current-cash,
  .v2h-mechanism,
  .v2h-exclusions {
    min-height: 170px;
    border-right: 0;
    border-bottom: 1px solid rgba(12, 53, 84, .35);
  }

  .v2h-exclusions {
    border-bottom: 0;
  }
}

@media (max-width: 520px) {
  .v2h-hero {
    height: 390px;
  }

  .v2h-roots-word {
    font-size: 104px;
  }

  .v2h-hero-copy {
    top: 95px;
    width: 73%;
    padding-left: 14px;
  }

  .v2h-hero-copy h1 {
    font-size: 32px;
  }

  .v2h-mode {
    grid-template-columns: 1fr;
  }

  .v2h-mode button {
    border-right: 0;
    border-bottom: 1px solid rgba(12, 53, 84, .3);
  }

  .v2h-field {
    grid-template-columns: 1fr;
  }

  .v2h-field > small {
    grid-column: 1;
  }

  .v2h-advanced-grid,
  .v2h-sensitivity-grid,
  .v2h-side-actions {
    grid-template-columns: 1fr;
  }

  .v2h-result-header,
  .v2h-sensitivity > header {
    grid-template-columns: 1fr;
  }

  .v2h-result-toggle {
    width: 100%;
  }

  .v2h-chart-key {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .v2h-difference {
    grid-template-columns: 1fr;
  }

  .v2h-difference small {
    grid-column: 1;
  }

  .v2h-footer {
    height: auto;
    padding: 12px 0;
    grid-template-columns: auto 1fr;
  }

  .v2h-footer > span:last-child {
    grid-column: 2;
  }
}

@media (prefers-reduced-motion: reduce) {
  .v2-housing-page *,
  .v2-housing-page *::before,
  .v2-housing-page *::after {
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }
}

@media print {
  body.editorial-ui.v2-foundation:has(.v2-housing-page) .site-header,
  .v2h-compare-button,
  .v2h-side-actions {
    display: none !important;
  }

  .v2h-advanced:not([open]),
  .v2h-chart-table:not([open]),
  .v2h-exclusions:not([open]) {
    display: none;
  }
}
