:root {
  --paper: #f5f8fb;
  --ink: #152536;
  --muted: #526579;
  --accent: #0868ad;
  --line: #dce7ed;
  --radius: 14px;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.55; }
a { color: var(--accent); text-underline-offset: .18em; }
button, summary, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; cursor: pointer; }
[hidden] { display: none !important; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
:focus-visible { outline: 3px solid #b26c19; outline-offset: 4px; }
html { scroll-padding-top: 80px; scroll-behavior: auto; }
.site-container { width: min(1320px, calc(100% - 64px)); margin-inline: auto; }
#main-content { padding-block: 20px 64px; }
.site-footer { border-top: 1px solid var(--line); padding-block: 24px 32px; color: var(--muted); font-size: 14px; }
.site-footer[hidden] { display: none; }
.site-footer h2 { font-size: 16px; margin-bottom: 12px; }
.site-footer h3 { font-size: 14px; font-weight: 600; margin-bottom: 4px; }
.footer-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 24px; }
.footer-groups ul { list-style: none; padding: 0; margin: 0; }
.footer-groups a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 699px) {
  .footer-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
.site-header { position: sticky; top: 0; z-index: 30; background: linear-gradient(110deg, #182a3a, #174654); border-bottom: 1px solid #244b5b; box-shadow: 0 3px 14px #102b4014; }
.site-nav { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; min-height: 64px; gap: 8px; }
.site-brand { display: inline-flex; gap: 10px; align-items: center; min-height: 44px; color: #fff; font-size: 20px; font-weight: 700; text-decoration: none; letter-spacing: -.4px; }
.site-brand i { color: #fff; background: linear-gradient(135deg, #096db5, #087967); border-radius: 8px; padding: 5px 7px; font-size: 21px; line-height: 1.2; }
.brand-name { line-height: 1.15; }
.brand-name small { display: block; margin-top: 3px; color: #c2dbe5; font-size: 11px; font-weight: 500; letter-spacing: 1.2px; text-transform: uppercase; }
.site-menu a { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 14px; border-radius: 999px; color: #fff; background: #ffffff12; font-weight: 600; text-decoration: none; }
.site-menu a:hover { background: #ffffff24; }
.menu-toggle { display: none; min-width: 44px; min-height: 44px; border: 1px solid #ffffff55; border-radius: 8px; color: #fff; background: #ffffff12; gap: 6px; align-items: center; justify-content: center; padding: 6px 10px; }
.menu-toggle .menu-symbol { display: inline; font-size: 24px; line-height: 1; }
.skip-link { position: absolute; left: 12px; top: -80px; z-index: 100; background: #fff; padding: 12px; }
.skip-link:focus { top: 4px; }
h1, h2, p { margin-top: 0; }
h1 { font-size: clamp(26px, 2.3vw, 34px); line-height: 1.2; font-weight: 650; letter-spacing: -.7px; }
h2 { font-size: 22px; font-weight: 650; line-height: 1.3; }
.eyebrow { font-size: 12px; font-weight: 700; letter-spacing: 1.4px; color: var(--muted); margin-bottom: 8px; }
.results-heading { margin-bottom: 16px; }
.results-heading h1 { margin-bottom: 8px; }
.filter-panel { border: 1px solid #d5e5ed; border-left: 3px solid #138477; border-radius: 16px; background: #edf5f8; box-shadow: 0 4px 12px #19384b08; margin-bottom: 16px; }
.filter-panel > summary { padding: 12px 18px; font-weight: 650; min-height: 48px; cursor: pointer; }
.filter-count { color: var(--muted); }
.filter-groups { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(155px, .65fr); gap: 20px; padding: 12px 20px; }
.filter-groups--two { grid-template-columns: minmax(0, 1fr) max-content; }
.filter-groups--two section[aria-labelledby="features-heading"] { justify-self: end; }
.filter-groups h2 { font-size: 13px; letter-spacing: .5px; margin-bottom: 10px; color: #36566b; }
.filter-groups h2 i { margin-right: 5px; color: #12796f; }
.filter-groups section + section { border-left: 1px solid #d0e1e8; padding-left: 20px; }
.filter-options { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-groups section[aria-labelledby="area-heading"] .filter-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 660px; }
.filter-groups section[aria-labelledby="area-heading"] .filter-option { position: relative; min-width: 0; text-align: center; }
.filter-groups section[aria-labelledby="area-heading"] .filter-check { position: absolute; left: 10px; }
.filter-groups section[aria-labelledby="features-heading"] .filter-option { position: relative; text-align: center; }
.filter-groups section[aria-labelledby="features-heading"] .filter-check { position: absolute; left: 10px; }
.filter-option { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 44px; padding: 8px 14px; border: 1px solid #c4dbee; border-radius: 999px; background: #fff; color: #075d9e; font-size: 14px; font-weight: 600; line-height: 1.4; white-space: nowrap; text-decoration: none; }
.filter-check { width: 12px; flex-shrink: 0; visibility: hidden; }
.filter-option.is-selected .filter-check { visibility: visible; }
.filter-option:hover { background: #eef7ff; border-color: var(--accent); box-shadow: 0 3px 10px #0868ad1c; }
.filter-option.is-selected { background: linear-gradient(135deg, #0868ad, #087967); color: white; border-color: transparent; box-shadow: 0 4px 12px #0868ad26; }
.search-summary { display: flex; justify-content: flex-end; margin-block: 8px 16px; }
.search-summary p { margin: 0; font-size: 14px; color: var(--muted); }
.clear-filters { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 10px; font-size: 14px; }
.property-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.property-card { position: relative; min-width: 0; border: 1px solid #e2eaf0; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 10px 28px #18344b12; transition: box-shadow .15s ease, border-color .15s ease; }
.property-card.is-clickable { cursor: pointer; }
.property-card.is-clickable:hover, .property-card:focus-within { border-color: #b6d1e3; box-shadow: 0 14px 34px #18344b22; }
.property-media { aspect-ratio: 5 / 4; background: #e8f1f7; position: relative; overflow: hidden; }
.property-media > .property-swiper { position: absolute; inset: 0; width: 100%; height: 100%; }
.swiper-wrapper { display: flex; height: 100%; }
.swiper-slide { flex-shrink: 0; width: 100%; }
.swiper:not(.swiper-initialized):not(.gallery-fallback) .swiper-slide:not(:first-child) { display: none; }
.property-swiper .swiper-slide a { display: block; height: 100%; }
.property-swiper img { width: 100%; height: 100%; object-fit: cover; display: block; }
.photo-prev, .photo-next, .gallery-prev, .gallery-next { width: 44px; height: 44px; border: 1px solid #d9e1e5; border-radius: 50%; font-size: 30px; line-height: 1; background: #fff; color: #173f57; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.photo-prev, .photo-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; box-shadow: 0 2px 8px #0002; }
.photo-prev { left: 10px; }
.photo-next { right: 10px; }
.card-photo-count { position: absolute; bottom: 10px; right: 12px; z-index: 3; color: #fff; background: #202b32; border-radius: 6px; padding: 2px 8px; font-size: 12px; }
.property-card-content { padding: 18px; }
.property-price { position: absolute; top: 12px; left: 12px; z-index: 4; max-width: 58%; padding: 7px 11px; border-radius: 999px; background: #fffffffa; box-shadow: 0 3px 12px #102b4026; color: #14283b; font-size: 17px; letter-spacing: -.2px; font-weight: 700; line-height: 1.2; margin: 0; }
.publication-age { position: absolute; top: 12px; right: 12px; z-index: 4; max-width: 34%; padding: 6px 9px; border-radius: 999px; background: #ffffffed; color: #42596a; font-size: 12px; font-weight: 600; line-height: 1.5; }
.property-card .card-metadata { display: flex; align-items: baseline; flex-wrap: nowrap; gap: 6px; min-width: 0; margin: 0 0 10px; font-size: 14px; line-height: 1.5; font-weight: 500; color: var(--muted); white-space: nowrap; overflow-wrap: normal; }
.metadata-area { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; font-weight: 650; color: #075d9e; }
.metadata-rooms, .metadata-size, .metadata-separator { flex: 0 0 auto; }
.metadata-separator { color: #79909f; }
.card-excerpt { color: var(--muted); font-size: 14px; line-height: 1.5; margin-bottom: 6px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.card-open { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; margin-top: 12px; border-radius: 9px; background: #0868ad; color: #fff; font-size: 14px; font-weight: 650; text-decoration: none; }
.card-open:hover { background: #07578f; color: #fff; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; padding: 10px 20px; border: 1px solid var(--accent); border-radius: 8px; background: var(--accent); color: #fff; font-size: 15px; font-weight: 650; text-decoration: none; }
.button:hover { color: #fff; background: #103b56; }
.button-quiet { background: #fff; color: var(--accent); border-color: var(--line); }
.button-quiet:hover { background: #edf2f5; color: var(--accent); }
.button:disabled { opacity: .65; cursor: wait; }
.load-more-area { text-align: center; padding-top: 24px; }
#load-status { color: var(--muted); margin-bottom: 12px; font-size: 14px; display: flex; justify-content: center; align-items: center; gap: 10px; }
#results-sentinel { height: 1px; }
.loading-spinner { width: 22px; height: 22px; border: 3px solid #d8e7ee; border-top-color: var(--accent); border-radius: 50%; animation: loading-spin .8s linear infinite; }
@keyframes loading-spin { to { transform: rotate(360deg); } }
#browse-error { padding: 14px 18px; background: #fff4e8; border: 1px solid #dbb688; border-radius: 8px; margin-bottom: 16px; }
#browse-error p { margin: 0; }
#restore-retry { margin-top: 12px; }
.fallback-previous { display: block; padding: 12px; min-height: 44px; }
.results-ready .fallback-previous { display: none; }
.empty-results { padding: 32px; background: white; border-radius: var(--radius); text-align: center; }
.photo-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; min-height: 180px; background: #e9e9e4; color: var(--muted); }
.archive-photo-placeholder { min-height: clamp(220px, 32vw, 360px); padding: 24px; border: 1px solid #d5e5ed; border-radius: var(--radius); background: #edf5f8; text-align: center; font-weight: 650; }
.archive-disclosure { margin-top: 8px; color: var(--muted); font-size: 14px; line-height: 1.45; }
.archive-disclosure strong { color: #36566b; }
.archive-disclosure p { margin: 2px 0 0; }
.listing-navigation { display: flex; align-items: center; min-height: 44px; padding-right: 200px; margin-bottom: 12px; }
.listing-navigation .seo-breadcrumbs { min-width: 0; margin-bottom: 0; }
.return-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; text-decoration: none; font-weight: 650; }
.listing-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; list-style: none; padding: 0; margin: 0; font-size: 14px; color: var(--muted); }
.listing-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; }
.listing-breadcrumb li + li::before { content: "/"; padding-right: 8px; color: #89949b; }
.property-detail { background: #fff; border-radius: 18px; padding: 24px; box-shadow: 0 12px 36px #17364c0c; }
.listing-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 24px; margin-bottom: 20px; }
.listing-heading h1 { font-size: 32px; margin: 0; }
.listing-heading .eyebrow { font-size: 14px; letter-spacing: .2px; margin-bottom: 4px; }
.listing-price { font-size: 28px; font-weight: 750; letter-spacing: -.7px; margin: 0; align-self: center; justify-self: start; padding: 7px 14px; border-radius: 999px; color: #075d9e; background: #eaf4ff; }
.listing-summary { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.listing-area { display: inline-flex; align-items: center; gap: 5px; min-width: 0; max-width: 100%; margin: 0; padding: 5px 10px; border-radius: 999px; font-size: 15px; color: #075d9e; background: #eaf4ff; overflow-wrap: anywhere; }
.listing-area span { min-width: 0; }
.listing-essentials { display: flex; flex-wrap: wrap; gap: 8px 10px; list-style: none; padding: 0; margin: 0; font-size: 15px; }
.listing-essentials li { padding: 5px 10px; border-radius: 999px; background: #f4f7fa; white-space: nowrap; }
.listing-overview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(350px, 31%); gap: 32px; align-items: start; margin-bottom: 28px; }
.listing-gallery { min-width: 0; }
.gallery-main { width: 100%; height: auto; aspect-ratio: 3 / 2; border-radius: var(--radius); overflow: hidden; background: #eef0ed; touch-action: pan-y pinch-zoom; }
.gallery-main .swiper-slide { height: 100%; }
.full-photo-link { display: flex; height: 100%; width: 100%; align-items: center; justify-content: center; }
.gallery-main img { width: 100%; height: 100%; object-fit: contain; display: block; }
.gallery-main .gallery-prev, .gallery-main .gallery-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 4; box-shadow: 0 4px 14px #102b4033; }
.gallery-main .gallery-prev { left: 12px; }
.gallery-main .gallery-next { right: 12px; }
#gallery-count { position: absolute; bottom: 12px; right: 12px; z-index: 4; padding: 4px 10px; border-radius: 999px; background: #08151ed9; color: white; font-size: 13px; font-variant-numeric: tabular-nums; pointer-events: none; }
.gallery-expand { position: absolute; top: 12px; right: 12px; z-index: 4; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid #ffffff55; border-radius: 10px; background: #08151ed9; color: white; font-size: 28px; text-decoration: none; }
.gallery-expand:hover { color: white; background: #174654; }
.thumbnail-filmstrip { padding-top: 12px; }
.gallery-enhanced .thumbnail-filmstrip { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 10px; }
.filmstrip-nav { width: 44px; height: 44px; padding: 0; border: 1px solid #d6e3eb; border-radius: 50%; color: #173f57; background: #f5f9fc; font-size: 28px; }
.gallery-thumbnails { position: relative; display: flex; overflow-x: auto; gap: 10px; padding: 5px 3px 9px; scroll-padding-inline: 3px; scrollbar-width: thin; scrollbar-color: #9db6c6 #edf3f7; }
.gallery-thumbnail { flex: 0 0 clamp(96px, 7.5vw, 112px); aspect-ratio: 4 / 3; position: relative; border-radius: 10px; border: 3px solid transparent; overflow: hidden; background: #edf3f7; scroll-snap-align: start; }
.gallery-thumbnail[aria-pressed="true"] { border-color: #087b8d; box-shadow: 0 0 0 2px #13847722; }
.gallery-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Gallery and technical information share one desktop hero; narrow screens stack. */
.listing-content { display: block; }
.technical-column { min-width: 0; }
.explore-more { width: 100%; margin-top: 14px; padding: 10px 14px; gap: 8px; border-color: #b8d8e2; background: #eaf5f8; color: #075d75; font-size: 14px; text-align: center; overflow-wrap: anywhere; }
/* Detail utilities share the existing area action's width and spacing. */
.property-action { width: 100%; min-height: 44px; margin-top: 14px; padding: 10px 14px; gap: 8px; font-size: 14px; text-align: center; }
.original-ad { background: #ffec99; border-color: #e6c65f; color: #594300; }
.original-ad:hover { background: #ffe066; border-color: #caa637; color: #453400; }
.brochure-action { background: #b42336; border-color: #b42336; color: #fff; }
.brochure-action:hover { background: #921d2c; border-color: #921d2c; color: #fff; }
.pdf-icon { width: 22px; height: 22px; flex: 0 0 22px; }
.explore-more:hover { background: #075d75; border-color: #075d75; color: #fff; }
.technical-rail { min-width: 0; padding: 20px; border: 1px solid #dce7ed; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px #17364c0a; }
.key-details h2 { font-size: 20px; margin-bottom: 14px; }
.details-grid { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.details-grid > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, auto); align-items: center; gap: 12px; min-height: 38px; padding-block: 7px; border-bottom: 1px solid #e8edf0; }
.details-grid > div:last-child { border: 0; }
.details-grid dt { font-size: 14px; font-weight: 600; color: var(--muted); }
.details-grid dd { margin: 0; font-size: 14px; font-weight: 650; text-align: right; }
.fact-state { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border: 1px solid; border-radius: 999px; font-size: 13px; line-height: 1.3; }
.fact-positive .fact-state { color: #146749; }
.fact-positive .fact-state { background: #edf8f1; border-color: #b8dcc9; }
.fact-negative .fact-state { color: #a12c3c; }
.fact-negative .fact-state { background: #fff1f2; border-color: #edc8cf; }
.listing-description { margin: 0; max-width: 76ch; }
.technical-rail .energy-information { border-top: 1px dashed #bdcbd3; padding-top: 16px; margin: 16px 0 0; }
.technical-rail .energy-information > h2 { font-size: 16px; margin-bottom: 12px; }
.property-card-content, .listing-heading, .description-copy, .details-grid, .listing-breadcrumb { overflow-wrap: anywhere; }
.description-copy { max-width: 72ch; font-size: 16px; line-height: 1.75; }
.description-copy p { margin-bottom: 18px; }
.energy-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.energy-scale { min-width: 0; }
.energy-scale:only-child { grid-column: 1 / -1; }
.energy-scale h3 { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 13px; font-weight: 700; margin: 0 0 5px; }
.energy-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; min-height: 28px; padding: 2px 8px; border-radius: 7px; background: #e9eef2; color: #152536; font-size: 19px; box-shadow: inset 0 0 0 1px #15253618; overflow-wrap: anywhere; }
.energy-grade-a { background: #00a6d6; }
.energy-grade-b { background: #23b55a; }
.energy-grade-c { background: #7ac943; }
.energy-grade-d { background: #f2c230; }
.energy-grade-e { background: #f29b38; }
.energy-grade-f { background: #f06a2b; }
.energy-grade-g { background: #e53935; color: #fff; }
.energy-legend { font-size: 11px; line-height: 1.4; color: var(--muted); margin-bottom: 6px; }
.energy-ladder { list-style: none; padding: 0; margin: 0; }
.energy-ladder li { display: flex; align-items: center; gap: 9px; min-height: 19px; padding: 2px 5px; font-size: 11px; line-height: 1.25; }
.energy-ladder li > span:first-child { width: 14px; }
.energy-bar { position: relative; height: 10px; width: 30%; background: #00a6d6; color: #00a6d6; border-radius: 2px; }
.energy-bar::after { content: ""; position: absolute; right: -6px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 6px solid currentColor; }
.energy-b .energy-bar { width: 36%; background: #23b55a; color: #23b55a; }
.energy-c .energy-bar { width: 42%; background: #7ac943; color: #7ac943; }
.energy-d .energy-bar { width: 48%; background: #f2c230; color: #f2c230; }
.energy-e .energy-bar { width: 54%; background: #f29b38; color: #f29b38; }
.energy-f .energy-bar { width: 60%; background: #f06a2b; color: #f06a2b; }
.energy-g .energy-bar { width: 66%; background: #e53935; color: #e53935; }
.energy-selected { font-weight: 700; outline: 1px solid #0b5d8d88; outline-offset: -1px; border-radius: 4px; background: #edf4f8; }
.energy-selected strong { margin-left: auto; font-size: 12px; color: #174654; }
#photo-dialog { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 12px 20px; border: 0; border-radius: 0; background: #08151e; color: #fff; }
#photo-dialog[open] { display: flex; flex-direction: column; gap: 8px; }
#photo-dialog::backdrop { background: #08151e; }
.lightbox-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-shrink: 0; }
.lightbox-toolbar h2 { font-size: 16px; margin: 0; }
.lightbox-toolbar .button { gap: 8px; }
.lightbox-toolbar .button { background: #172d3b; border-color: #426071; color: #fff; }
.lightbox-image { flex: 1; min-height: 0; background: #08151e; display: flex; align-items: center; justify-content: center; touch-action: pan-y pinch-zoom; }
.lightbox-image img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.lightbox-controls { position: absolute; top: 50%; left: 12px; right: 12px; display: flex; justify-content: space-between; pointer-events: none; }
.lightbox-controls .button { width: 48px; height: 48px; padding: 0; border-radius: 50%; font-size: 32px; line-height: 1; background: #172d3bcc; border-color: #426071; color: #fff; pointer-events: auto; }
.photo-overview { flex: 1; min-height: 0; overflow-y: auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); grid-auto-rows: max-content; align-content: start; align-items: start; gap: 12px; padding: 8px 4px; }
.overview-photo { position: relative; padding: 0; min-width: 0; min-height: 110px; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: #172d3b; color: white; aspect-ratio: 4 / 3; }
.overview-photo[aria-pressed="true"] { border-color: #66c4de; }
.overview-photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.overview-photo span { position: absolute; bottom: 6px; right: 6px; min-width: 24px; padding: 2px 6px; border-radius: 5px; background: #08151ee6; font-size: 12px; }
body.photos-open { overflow: hidden; }
/* One validated detail return anchor stays beside the heading at every viewport. */
#back-to-results {
  position: fixed;
  z-index: 20;
  right: max(32px, calc((100vw - 1320px) / 2), env(safe-area-inset-right, 0px));
  top: calc(64px + 20px + env(safe-area-inset-top, 0px));
  width: max-content;
  max-width: calc(100% - 32px);
  min-height: 44px;
  padding: 9px 16px;
  border: 1px solid #b8d0df;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 3px 14px #15253626;
  font-size: 1rem;
  line-height: 1.4;
  text-align: center;
}
#back-to-results:hover { background: #edf5f8; }
body.photos-open #back-to-results {
  visibility: hidden;
  pointer-events: none;
}
body:has(.site-menu.is-open) #back-to-results {
  visibility: hidden;
  pointer-events: none;
}
@media (min-width: 700px) and (min-height: 501px) {
  .filter-panel > summary { display: none; }
}
@media (min-width: 1100px) {
  .filter-groups--two section[aria-labelledby="area-heading"] .filter-options { grid-template-columns: repeat(6, minmax(0, 1fr)); max-width: none; }
}
@media (min-width: 1100px) and (max-width: 1249px) {
  .filter-groups--two section[aria-labelledby="area-heading"] .filter-option { padding-inline: 6px; font-size: 12px; }
}
@media (max-width: 1099px) {
  .property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .listing-overview { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .details-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
  .technical-rail .energy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-main { height: min(500px, 56vh); aspect-ratio: auto; }
  .filter-groups { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
  .filter-groups--two { grid-template-columns: minmax(0, 1fr); }
  .filter-groups--two section[aria-labelledby="features-heading"] { justify-self: stretch; }
  .filter-groups:not(.filter-groups--two) section:last-child { grid-column: 1 / -1; border-left: 0; padding-left: 0; border-top: 1px solid #d0e1e8; padding-top: 12px; }
}
@media (max-width: 699px) {
  .site-container { width: calc(100% - 32px); }
  #main-content { padding-top: 20px; }
  .site-nav { min-height: 58px; }
  .navigation-ready .menu-toggle { display: inline-flex; }
  .navigation-ready .site-menu { display: none; width: 100%; padding-bottom: 8px; }
  .navigation-ready .site-menu.is-open { display: block; }
  .site-brand { font-size: 18px; }
  .menu-toggle span:not(.menu-symbol) { display: none; }
  .property-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .results-heading { margin-bottom: 18px; }
  .eyebrow { display: none; }
  .filter-groups { grid-template-columns: minmax(0, 1fr); padding: 0 14px 16px; }
  .listing-navigation { padding-right: 190px; }
  #back-to-results { right: max(16px, env(safe-area-inset-right, 0px)); top: calc(58px + 20px + env(safe-area-inset-top, 0px)); font-size: 14px; padding-inline: 12px; }
  .filter-groups section + section { border-left: 0; padding-left: 0; border-top: 1px solid #d0e1e8; padding-top: 12px; }
  .search-summary { align-items: start; margin-bottom: 16px; }
  .property-price { font-size: 16px; }
  .listing-navigation { gap: 4px 16px; margin-bottom: 12px; }
  .listing-breadcrumb { font-size: 12px; }
  .listing-heading { gap: 8px; }
  .listing-heading h1 { font-size: 26px; }
  .listing-heading .eyebrow { display: block; font-size: 14px; }
  .listing-price { grid-column: 1 / -1; font-size: 28px; }
  .listing-essentials { font-size: 14px; gap: 5px 14px; }
  .gallery-main { height: clamp(230px, 72vw, 320px); }
  .property-detail { padding: 16px; }
  .technical-rail { padding: 18px; }
  .details-grid { grid-template-columns: minmax(0, 1fr); }
  .energy-scale h3 { font-size: 12px; }
  #photo-dialog { padding: 8px; }
  .photo-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .lightbox-toolbar { gap: 8px; }
  .lightbox-toolbar h2 { font-size: 14px; }
  .lightbox-toolbar .button { padding-inline: 10px; }
}
@media (max-height: 500px) and (orientation: landscape) {
  html { scroll-padding-top: 12px; }
  .site-header { position: static; }
  #back-to-results { top: calc(52px + 16px + env(safe-area-inset-top, 0px)); right: max(16px, env(safe-area-inset-right, 0px)); }
  .site-nav { min-height: 52px; }
  #main-content { padding-top: 16px; }
  .results-heading { margin-bottom: 12px; }
  .results-heading h1 { font-size: 27px; }
  .results-heading .eyebrow, .page-context { display: none; }
  .navigation-ready .menu-toggle { display: inline-flex; }
  .navigation-ready .site-menu { display: none; width: 100%; padding-bottom: 8px; }
  .navigation-ready .site-menu.is-open { display: block; }
  .filter-panel { margin-bottom: 8px; }
  .filter-groups { grid-template-columns: minmax(0, 1fr); }
  .filter-groups section + section { border-left: 0; padding-left: 0; border-top: 1px solid #d0e1e8; padding-top: 12px; }
  .listing-navigation { margin-bottom: 8px; }
  .listing-heading { gap: 8px; margin-bottom: 16px; }
  .listing-heading h1 { font-size: 26px; }
  .listing-price { font-size: 26px; }
  .listing-essentials { font-size: 14px; }
  .gallery-main { height: clamp(140px, calc(100svh - 150px), 300px); }
  .property-detail { padding: 16px; }
  .property-media { aspect-ratio: 4 / 3; }
  #photo-dialog { padding: 8px; gap: 6px; }
  .lightbox-toolbar h2 { font-size: 14px; }
}
@media (max-width: 699px) and (min-height: 501px) and (orientation: portrait) {
  .filter-groups section[aria-labelledby="area-heading"] .filter-options { gap: 6px; }
  .filter-groups section[aria-labelledby="area-heading"] .filter-option { padding-inline: 4px; font-size: 11px; }
  .filter-groups section[aria-labelledby="area-heading"] .filter-check { left: 5px; }
  .listing-navigation .seo-breadcrumbs { overflow: hidden; white-space: nowrap; -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 22px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 22px), transparent); }
  .listing-navigation .seo-breadcrumbs ol { flex-wrap: nowrap; width: max-content; }
  .listing-navigation .seo-breadcrumbs li { flex: none; white-space: nowrap; overflow-wrap: normal; }
  .listing-heading { grid-template-columns: max-content minmax(0, 1fr); gap: 8px; }
  .listing-heading > div:first-child { grid-column: 1 / -1; }
  .listing-heading h1 { font-size: 18px; line-height: 1.2; letter-spacing: -.5px; }
  .listing-summary { display: contents; }
  .listing-price { grid-column: 1; grid-row: 2; font-size: 24px; padding: 6px 10px; white-space: nowrap; }
  .listing-area { grid-column: 2; grid-row: 2; justify-self: end; max-width: 100%; padding: 5px 8px; font-size: 14px; }
  .listing-area span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .listing-essentials { grid-column: 1 / -1; gap: 0; font-size: 14px; }
  .listing-essentials li { padding: 0; background: none; }
  .listing-essentials li + li::before { content: "·"; margin-inline: 7px; color: #79909f; }
  .gallery-main { height: var(--portrait-frame-height, auto); min-height: 210px; max-height: min(460px, 60svh); aspect-ratio: 4 / 3; transition: height .16s ease; }
  .property-detail { overflow-anchor: none; }
}
@media (min-width: 700px) and (max-width: 1099px) and (max-height: 500px) and (orientation: landscape) {
  .listing-overview { grid-template-columns: minmax(0, 1.29fr) minmax(300px, 1fr); gap: 20px; }
  .gallery-main { height: auto; aspect-ratio: 4 / 3; }
  .technical-rail { padding: 16px; }
  .key-details h2 { font-size: 18px; margin-bottom: 10px; }
  .details-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .details-grid > div { min-height: 34px; padding-block: 6px; gap: 8px; }
  .details-grid dt, .details-grid dd { font-size: 13px; }
  .technical-rail .energy-information { margin-top: 12px; padding-top: 12px; }
  .technical-rail .energy-information > h2 { font-size: 14px; margin-bottom: 8px; }
  .technical-rail .energy-grid { gap: 10px; }
  .energy-scale h3 { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }

@media (prefers-reduced-motion: reduce) { .loading-spinner { animation: none; } }

/* Short landscape photo mode: controls overlay the immersive canvas. The
   overview keeps its normal toolbar and internal scrolling layout. */
@media (min-width: 700px) and (max-width: 1099px) and (max-height: 500px) and (orientation: landscape) {
  #photo-dialog[open]:has(.lightbox-image:not([hidden])) { height: 100vh; height: 100dvh; padding: 0; gap: 0; overflow: hidden; }
  #photo-dialog[open]:has(.lightbox-image:not([hidden])) .lightbox-image { flex: none; width: 100%; height: 100vh; height: 100dvh; margin: 0; padding: 0; }
  #photo-dialog[open]:has(.lightbox-image:not([hidden])) .lightbox-toolbar { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
  #photo-dialog[open]:has(.lightbox-image:not([hidden])) .lightbox-toolbar h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  #photo-dialog[open]:has(.lightbox-image:not([hidden])) .lightbox-toolbar .button { position: absolute; min-height: 44px; padding: 8px 14px; border-radius: 10px; background: #172d3be6; pointer-events: auto; }
  #photo-dialog[open]:has(.lightbox-image:not([hidden])) #close-photos { top: max(8px, env(safe-area-inset-top)); right: max(8px, env(safe-area-inset-right)); }
  #photo-dialog[open]:has(.lightbox-image:not([hidden])) #toggle-overview { bottom: max(8px, env(safe-area-inset-bottom)); left: max(8px, env(safe-area-inset-left)); }
  #photo-dialog[open]:has(.lightbox-image:not([hidden])) #lightbox-count { position: absolute; bottom: max(8px, env(safe-area-inset-bottom)); right: max(8px, env(safe-area-inset-right)); padding: 5px 10px; border-radius: 8px; background: #172d3be6; font-size: 13px; }
  #photo-dialog[open]:has(.lightbox-image:not([hidden])) .lightbox-controls { z-index: 2; left: max(8px, env(safe-area-inset-left)); right: max(8px, env(safe-area-inset-right)); transform: translateY(-50%); }
}

/* Restrained visible collection context and real hierarchy, without card/gallery changes. */
.seo-breadcrumbs { margin-bottom: 10px; color: var(--muted); font-size: 13px; line-height: 1.4; }
.seo-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; padding: 0; margin: 0; }
.seo-breadcrumbs li { min-width: 0; overflow-wrap: anywhere; }
.seo-breadcrumbs li + li::before { content: "›"; padding-inline: 8px; color: var(--muted); }

/* Contextual detail links retain the finite collection identities. */
.collection-explore{margin:.75rem 0 0;font-size:.875rem;line-height:1.5}
.collection-explore a{text-underline-offset:.15em}

/* Supplied positive-feature detail links stay subordinate. */
.feature-explore{list-style:none;margin:.65rem 0 0;padding:0;font-size:.8125rem;line-height:1.5;display:flex;flex-wrap:wrap;gap:.3rem .8rem}
.feature-explore a{text-underline-offset:.15em}
