.rental-map-page { --rental-ink: #102c32; --rental-green: #107753; --rental-line: #dce5e1; background: #f4f6f4; color: var(--rental-ink); }
.rental-map-page * { box-sizing: border-box; }
.rental-map-hero { padding: 9rem 1.2rem 4.3rem; background: radial-gradient(ellipse at 80% 10%, #1b5045 0, transparent 65%), #0b252b; color: #fff; }
.rental-map-hero__inner { width: min(82rem, 100%); margin: auto; }
.rental-map-hero__back { color: #b4cbc6; font-size: .78rem; text-decoration: none; }
.rental-map-kicker { margin: 0 0 .6rem; color: var(--rental-green); font: 700 .7rem/1.5 var(--font-mono, monospace); letter-spacing: .08em; text-transform: uppercase; }
.rental-map-hero .rental-map-kicker { margin-top: 2rem; color: #a5e3bf; }
.rental-map-hero h1 { max-width: 60rem; margin: .75rem 0 1.4rem; font: 760 clamp(2.8rem, 6vw, 5.5rem)/1.02 var(--font-heading, sans-serif); letter-spacing: -.05em; color: #fff; }
.rental-map-hero h1 em { color: #a5e3bf; font-style: normal; }
.rental-map-hero__intro { max-width: 49rem; margin: 0; font-size: clamp(1rem, 1.5vw, 1.18rem); line-height: 1.7; color: #ccdcd5; }
.rental-map-hero__stats { display: flex; flex-wrap: wrap; gap: 2.5rem; margin: 2.4rem 0 0; padding-top: 1.8rem; border-top: 1px solid #ffffff26; }
.rental-map-hero__stats dt { color: #a7bfba; font-size: .74rem; }
.rental-map-hero__stats dd { margin: .35rem 0 0; font: 680 clamp(1.1rem, 2vw, 1.55rem)/1.3 var(--font-heading, sans-serif); }
.rental-map-body { width: min(90rem, 100%); margin: auto; padding: 2.5rem 1.2rem 4rem; }
.rental-map { border: 1px solid var(--rental-line); border-radius: 1.2rem; overflow: hidden; background: #fff; box-shadow: 0 1rem 3rem #102c320b; }
.rental-map [hidden] { display: none !important; }
.rental-map__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.35rem 1.4rem; border-bottom: 1px solid var(--rental-line); }
.rental-map__top h2 { margin: 0; font: 730 clamp(1.2rem, 2.2vw, 1.8rem)/1.2 var(--font-heading, sans-serif); letter-spacing: -.03em; }
.rental-map__top .rental-map-kicker { margin-bottom: .3rem; }
.rental-map__button { min-height: 2.75rem; padding: .55rem .85rem; border: 1px solid #c9d9d2; border-radius: .65rem; background: #fff; color: var(--rental-ink); font-family: inherit; font-size: .76rem; font-weight: 650; line-height: 1.3; cursor: pointer; }
.rental-map button:hover { background: #edf6f0; }
.rental-map button:focus-visible, .rental-map input:focus-visible, .rental-map a:focus-visible, .rental-map-method a:focus-visible { outline: 3px solid #157c56; outline-offset: 3px; }
.rental-map__layout { display: grid; grid-template-columns: minmax(13rem, 16rem) minmax(19rem, 1fr) minmax(14rem, 17rem); min-height: 40rem; }
.rental-map__controls, .rental-map__detail { padding: 1.2rem; background: #fbfcfa; min-width: 0; }
.rental-map__controls { border-right: 1px solid var(--rental-line); }
.rental-map__detail { border-left: 1px solid var(--rental-line); }
.rental-map__search { position: relative; }
.rental-map__search label, .rental-map__metrics legend { display: block; margin-bottom: .6rem; color: #47645f; font-size: .73rem; font-weight: 700; }
.rental-map__search input { width: 100%; height: 2.9rem; border: 1px solid #c9d9d2; border-radius: .65rem; padding: .6rem .7rem; background: #fff; color: var(--rental-ink); font-size: .86rem; }
.rental-map__results { position: absolute; z-index: 10; left: 0; right: 0; top: 5rem; max-height: 20rem; overflow: auto; border: 1px solid #c9d9d2; border-radius: .65rem; background: #fff; box-shadow: 0 1rem 2.5rem #102c3226; }
.rental-map__results button { width: 100%; min-height: 3rem; border: 0; border-bottom: 1px solid var(--rental-line); padding: .7rem; background: #fff; text-align: left; color: var(--rental-ink); cursor: pointer; }
.rental-map__results strong, .rental-map__results small { display: block; }
.rental-map__results strong { font-size: .83rem; }
.rental-map__results small { margin-top: .15rem; color: #58716b; font-size: .7rem; }
.rental-map__help { margin: .6rem 0; color: #58716b; font-size: .72rem; line-height: 1.6; }
.rental-map__help a { color: #076a4b; text-decoration: underline; text-underline-offset: .2em; }
.rental-map__metrics { display: grid; gap: .45rem; margin: 1.3rem 0; border: 0; padding: 0; }
.rental-map__metrics label { display: flex; align-items: center; gap: .6rem; min-height: 3.65rem; border: 1px solid var(--rental-line); border-radius: .65rem; padding: .7rem; cursor: pointer; }
.rental-map__metrics label:has(input:checked) { border-color: #67af8b; background: #edf7f1; }
.rental-map__metrics input { width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--rental-green); }
.rental-map__metrics strong, .rental-map__metrics small { display: block; }
.rental-map__metrics strong { font-size: .79rem; }
.rental-map__metrics small { margin-top: .2rem; font-size: .66rem; color: #58716b; }
.rental-map__legend { padding-top: 1rem; border-top: 1px solid var(--rental-line); }
.rental-map__legend > strong { font-size: .75rem; }
.rental-map__scale { display: grid; height: .65rem; overflow: hidden; margin-top: .7rem; border-radius: 1rem; }
.rental-map__legend-ends { display: flex; justify-content: space-between; gap: .4rem; margin-top: .5rem; color: #526b65; font-size: .59rem; }
.rental-map__legend-ranges { display: grid; gap: .35rem; margin: 1rem 0 0; padding: 0; list-style: none; font-size: .65rem; line-height: 1.3; color: #526b65; }
.rental-map__legend-ranges li { display: flex; align-items: center; gap: .4rem; }
.rental-map__legend i { display: inline-block; flex: 0 0 auto; width: .8rem; height: .6rem; border-radius: .1rem; background: #d9dedb; border: 1px solid #102c3226; }
.rental-map__legend > p { display: flex; align-items: center; gap: .4rem; margin: .7rem 0; font-size: .67rem; color: #58716b; }
.rental-map__views { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.rental-map__canvas-wrap { position: relative; min-width: 0; background: #e7eeea; }
.rental-map__canvas { width: 100%; height: 100%; min-height: 40rem; }
.rental-map__map-status { position: absolute; z-index: 1; left: .8rem; right: .8rem; bottom: 2.3rem; width: fit-content; max-width: calc(100% - 1.6rem); border: 1px solid #ffffff9c; border-radius: .5rem; padding: .5rem .65rem; margin: 0; background: #ffffffeb; color: var(--rental-ink); font-size: .67rem; line-height: 1.45; pointer-events: none; }
.rental-map__noscript { padding: 1rem; font-size: .85rem; }
.rental-map__detail h3 { margin: .7rem 0; font: 700 1.22rem/1.3 var(--font-heading, sans-serif); }
.rental-map__value { margin: 1.2rem 0 .25rem; font: 750 clamp(1.55rem, 2.3vw, 2rem)/1.12 var(--font-heading, sans-serif); letter-spacing: -.035em; overflow-wrap: anywhere; }
.rental-map__value-label { margin: 0 0 1.15rem; color: #58716b; font-size: .68rem; }
.rental-map__facts { margin: 0; }
.rental-map__facts > div { padding: .75rem 0; border-top: 1px solid var(--rental-line); }
.rental-map__facts dt { color: #58716b; font-size: .68rem; }
.rental-map__facts dd { margin: .3rem 0 0; font-size: .84rem; font-weight: 650; }
.rental-map__visible { margin-top: 1.35rem; padding-top: 1rem; border-top: 1px solid var(--rental-line); }
.rental-map__visible h4 { margin: 0; font-size: .78rem; }
.rental-map__section { display: block; width: 100%; border: 1px solid var(--rental-line); border-radius: .4rem; padding: .6rem; margin-top: .4rem; background: #fff; color: var(--rental-ink); text-align: left; font-size: .67rem; line-height: 1.5; cursor: pointer; }
.rental-map__footnote { margin: 0; padding: .9rem 1.4rem; border-top: 1px solid var(--rental-line); color: #58716b; font-size: .7rem; line-height: 1.5; }
.rental-map-method { display: grid; grid-template-columns: minmax(0, 2fr) minmax(14rem, 1fr); gap: 4rem; padding: 3.5rem 1.5rem 0; }
.rental-map-method h2 { margin: .5rem 0 1.1rem; font: 730 clamp(1.8rem, 3vw, 2.5rem)/1.15 var(--font-heading, sans-serif); letter-spacing: -.035em; }
.rental-map-method h3 { margin: 1.8rem 0 .8rem; font-size: 1.15rem; font-weight: 700; }
.rental-map-method p { color: #48645d; font-size: .95rem; line-height: 1.8; margin: 0 0 1rem; }
.rental-map-method a { color: #076a4b; text-decoration: underline; text-underline-offset: .2em; }
.rental-map-method aside { border-left: 1px solid var(--rental-line); padding-left: 2rem; }
.rental-map-method aside h3 { margin-top: 0; }
.rental-map-method aside p, .rental-map-method li { font-size: .82rem; line-height: 1.7; }
.rental-map-method ul { padding-left: 1.2rem; margin: 1rem 0 1.3rem; }
.rental-map-method li { margin-bottom: .7rem; overflow-wrap: anywhere; }
.rental-map-hero--local { padding-bottom: 3rem; }
.rental-map-hero--directory h1 { font-size: clamp(2.7rem, 5vw, 4.8rem); }
.rental-map-hero__intro + .rental-map-hero__intro { margin-top: .8rem; }
.rental-map-hero__date { margin: 1.3rem 0 0; color: #a7bfba; font-size: .75rem; line-height: 1.7; }
.rental-local-breadcrumbs { display: flex; flex-wrap: wrap; gap: .45rem .6rem; color: #b4cbc6; font-size: .73rem; line-height: 1.65; }
.rental-local-breadcrumbs a { color: #d2e7dd; text-decoration: underline; text-underline-offset: .2em; }
.rental-local-summary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 3rem; padding: .5rem 1rem 2.5rem; }
.rental-local-summary h2, .rental-local-browser h2, .rental-local-directory h2 { margin: .4rem 0 1rem; font: 720 clamp(1.6rem, 3vw, 2.25rem)/1.15 var(--font-heading, sans-serif); letter-spacing: -.035em; }
.rental-local-summary p, .rental-local-browser > p:not(.rental-map-kicker) { margin: 0 0 .8rem; color: #48645d; font-size: .95rem; line-height: 1.75; }
.rental-local-statistics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin: 0; }
.rental-local-statistics > div { padding: 1.15rem; border: 1px solid var(--rental-line); border-radius: .8rem; background: #fff; }
.rental-local-statistics dt { color: #58716b; font-size: .75rem; }
.rental-local-statistics dd { margin: .6rem 0; color: var(--rental-ink); font: 700 clamp(1.1rem, 1.6vw, 1.4rem)/1.25 var(--font-heading, sans-serif); }
.rental-local-statistics small { display: block; color: #58716b; font-size: .68rem; line-height: 1.5; }
.rental-local-table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--rental-line); border-radius: .65rem; background: #fff; }
.rental-local-table { width: 100%; min-width: 36rem; border-collapse: collapse; font-size: .78rem; }
.rental-local-table caption { padding: .85rem 1rem; text-align: left; font-size: .71rem; color: #58716b; background: #eef4f0; }
.rental-local-table th, .rental-local-table td { padding: .85rem 1rem; text-align: left; border-top: 1px solid var(--rental-line); vertical-align: top; }
.rental-local-table thead th { font-size: .7rem; color: #47645f; }
.rental-local-table tbody th { font-weight: 650; }
.rental-local-table td { color: #47645f; white-space: nowrap; }
.rental-local-table a { color: #076a4b; text-decoration: underline; text-underline-offset: .2em; }
.rental-local-table tr[hidden] { display: none; }
.rental-local-levels { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1.1rem 0 1.6rem; }
.rental-local-levels a { display: inline-flex; align-items: center; min-height: 2.8rem; border: 1px solid #c9d9d2; border-radius: .7rem; padding: .65rem 1rem; background: #fff; color: #076a4b; text-decoration: none; font-size: .8rem; font-weight: 680; }
.rental-local-levels a:hover, .rental-local-levels a[aria-current="page"] { background: #e5f2e9; border-color: #78ac91; }
.rental-local-levels--bottom { padding: 2rem 1.5rem 0; }
.rental-local-related { display: grid; gap: .7rem; margin-bottom: 1.25rem; }
.rental-local-related a { font-size: .83rem; line-height: 1.65; }
.rental-local-browser { padding: 3rem 1.5rem 0; }
.rental-local-cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .7rem; }
.rental-local-cards > a { display: flex; flex-direction: column; gap: .45rem; padding: 1.1rem; border: 1px solid var(--rental-line); border-radius: .75rem; background: #fff; text-decoration: none; }
.rental-local-cards span { color: #58716b; font-size: .68rem; }
.rental-local-cards strong { color: var(--rental-ink); font-size: 1rem; line-height: 1.35; }
.rental-local-cards small { color: #076a4b; font-size: .7rem; line-height: 1.45; margin-top: auto; }
.rental-local-directory { padding: 1.5rem; border: 1px solid var(--rental-line); border-radius: 1rem; background: #fff; }
.rental-local-directory__heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 1rem; }
.rental-local-directory__search { min-width: 15rem; }
.rental-local-directory__search label { display: block; color: #47645f; font-size: .75rem; font-weight: 700; margin-bottom: .55rem; }
.rental-local-directory__search input { width: 100%; height: 2.8rem; border: 1px solid #c9d9d2; border-radius: .65rem; padding: .6rem .7rem; font-size: .85rem; color: var(--rental-ink); background: #fff; }
.rental-local-directory .rental-local-table { min-width: 50rem; }
.rental-map a.rental-map__button { display: inline-flex; align-items: center; text-decoration: none; }
.rental-map-page .rental-local-levels a:focus-visible, .rental-map-page .rental-local-cards a:focus-visible, .rental-map-page .rental-local-table-scroll:focus-visible, .rental-map-page .rental-local-directory input:focus-visible { outline: 3px solid #157c56; outline-offset: 3px; }
@media (max-width: 1150px) {
    .rental-map__layout { grid-template-columns: 14rem minmax(0, 1fr); }
    .rental-map__detail { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--rental-line); }
    .rental-map__facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
    .rental-map__visible > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; }
    .rental-local-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .rental-local-summary { grid-template-columns: minmax(0, 1fr); gap: 1.2rem; }
}
@media (max-width: 720px) {
    .rental-map-hero { padding: 7.5rem 1rem 2.5rem; }
    .rental-map-hero__stats { gap: 1.3rem; }
    .rental-map-hero__stats dd { font-size: 1.05rem; }
    .rental-map-body { padding: 1.2rem .65rem 2.5rem; }
    .rental-map__top { align-items: flex-start; flex-direction: column; padding: 1.1rem; }
    .rental-map__layout { display: flex; flex-direction: column; }
    .rental-map__controls { border-right: 0; border-bottom: 1px solid var(--rental-line); padding: 1rem; }
    .rental-map__metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 1rem 0; }
    .rental-map__metrics legend { margin-bottom: .6rem; }
    .rental-map__legend-ranges { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rental-map__canvas { height: 27rem; min-height: 27rem; }
    .rental-map__detail { padding: 1rem; }
    .rental-map__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
    .rental-map__visible > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rental-map-method { grid-template-columns: minmax(0, 1fr); gap: 2rem; padding: 2.5rem .7rem 0; }
    .rental-map-method aside { border-left: 0; border-top: 1px solid var(--rental-line); padding: 1.5rem 0 0; }
    .rental-map-hero--local h1 { font-size: clamp(2.4rem, 10vw, 3.1rem); }
    .rental-local-summary { padding: .5rem .65rem 1.5rem; }
    .rental-local-statistics > div { padding: .85rem; }
    .rental-local-statistics dd { font-size: 1.05rem; }
    .rental-local-browser { padding: 2.5rem .7rem 0; }
    .rental-local-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rental-local-cards > a { padding: .9rem; }
    .rental-local-levels--bottom { padding: 1.5rem .7rem 0; }
    .rental-local-directory { padding: 1rem .75rem; }
    .rental-local-directory__heading { flex-direction: column; align-items: stretch; gap: .7rem; }
}
@media (prefers-reduced-motion: reduce) { .rental-map-page *, .rental-map-page *::before, .rental-map-page *::after { scroll-behavior: auto !important; } }
