/* Static pages (property, hubs, about) — layered on styles.css. */
body.page { display: block; height: auto; }
body.app { overflow: hidden; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 0 16px; }
.topbar.site { position: sticky; top: 0; flex-wrap: wrap; }
.sitenav { display: flex; gap: 4px 16px; flex-wrap: wrap; flex: 1; }
.sitenav a { color: var(--ink); text-decoration: none; font-weight: 500; }
.sitenav a:hover { color: var(--accent); }
.langlink { text-decoration: none; color: var(--ink); font-size: 13px; }
.lang a { padding: 7px 11px; font-weight: 600; font-size: 12px; text-decoration: none; color: var(--ink); }
.lang a.on { background: var(--ink); color: var(--surface); }
.crumbs { font-size: 13px; color: var(--ink-2); margin: 16px 0 10px; }
.crumbs a { color: var(--ink-2); }
.ppage .crumbs { max-width: 1180px; margin: 16px auto 10px; padding: 0 16px; }
.pwrap { max-width: 1180px; margin: 0 auto; padding: 0 16px 24px; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; }
.pmain h2 { font: 650 19px/1.3 var(--serif); margin: 0 0 8px; }
.phero { margin: 0 0 16px; position: relative; border-radius: var(--radius); overflow: hidden; background: var(--surface-2); }
.phero img { display: block; width: 100%; max-height: 520px; object-fit: cover; }
.phero figcaption { position: absolute; right: 8px; bottom: 6px; font-size: 11px; text-shadow: 0 1px 2px #000; }
.phero figcaption a { color: #fff; }
.pside { position: sticky; top: 76px; align-self: start; display: flex; flex-direction: column; gap: 10px; }
.minimap { height: 300px; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: var(--surface-2); }
.btn.wide { display: block; text-align: center; text-decoration: none; color: var(--ink); width: 100%; }
.tag.risk { background: #9b2c2c; color: #fff; }
.tablewrap { overflow-x: auto; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; margin: 12px 0 28px; }
a.card { text-decoration: none; color: inherit; }
.nearby h2, .hub h2 { font: 650 20px/1.3 var(--serif); margin: 24px 0 6px; }
.hub-title { font: 650 32px/1.15 var(--serif); margin: 6px 0 6px; }
.az { columns: 3 260px; padding-left: 18px; margin: 0 0 8px; }
.az li { margin: 2px 0; break-inside: avoid; }
.prose { max-width: 760px; padding-bottom: 40px; font-size: 15.5px; line-height: 1.6; }
.prose h2 { font: 650 21px/1.3 var(--serif); margin: 26px 0 6px; }
.sitefoot { border-top: 1px solid var(--line); background: var(--surface); padding: 18px 0 26px; margin-top: 20px; font-size: 13px; }
.sitefoot p { margin: 6px 0; }
.small { font-size: 12px; }
.seo-links { padding: 4px 16px 20px; font-size: 12.5px; color: var(--ink-2); flex: none; }
.seo-links p { margin: 6px 0; }
.seo-links a { color: var(--ink-2); }
.d-share { display: flex; gap: 8px; flex-wrap: wrap; margin: 6px 0 4px; }
.d-share .btn { text-decoration: none; color: var(--ink); font-size: 13px; padding: 6px 12px; }
.d-title a { color: inherit; text-decoration: none; }
@media (max-width: 900px) {
  .pwrap { grid-template-columns: 1fr; }
  .pside { position: static; }
  .minimap { height: 240px; }
  body.app { overflow: hidden; }
}
@media (max-width: 560px) {
  .sitenav { order: 3; flex-basis: 100%; font-size: 13px; }
  .hub-title { font-size: 26px; }
  .grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .card-img { aspect-ratio: 4 / 3; }
}
body.app .results { overflow-y: auto; }
body.app .cards { flex: none; overflow: visible; }
.gallery figure { margin: 0; min-width: 0; }
.gallery figcaption, .gallery-credit { display: block; font-size: 11px; overflow-wrap: anywhere; }
