@import url('/assets/fonts/chinese.css?v=5');
:root{--han-hk:'HK Atlas Han HK','PingFang HK','PingFang TC','Noto Sans CJK HK','Microsoft JhengHei',sans-serif;--han-sc:'HK Atlas Han SC','PingFang SC','Noto Sans CJK SC','Microsoft YaHei',sans-serif;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','HK Atlas Han HK','PingFang HK','PingFang TC',sans-serif}
:lang(zh-Hant),:lang(zh-HK){font-family:var(--han-hk)!important}
:lang(zh-Hans),:lang(zh-CN){font-family:var(--han-sc)!important}
:is(h1,h2,h3):lang(zh){font-weight:600;letter-spacing:.015em;line-height:1.4}
:lang(zh) p{line-height:1.85;letter-spacing:.015em}
.secondary-name:lang(zh),.detail-secondary:lang(zh),.place-local-name:lang(zh){font-weight:650;letter-spacing:.025em;line-height:1.55}
.brand small{font-family:var(--han-hk)}
.search-wrap .search-clear{position:absolute;inset-inline-end:5px;top:4px;width:40px;height:40px;font-size:1.5625rem}
.search-wrap input{padding-inline-end:46px}.directory-link{display:inline-block;margin:0 0 10px}.place-area{font-size:var(--text-heading);font-weight:650}

/* One rem-based type scale for every language and viewport. At the browser's
   normal 16px root: captions 14, controls 15, body 16, place titles 18, sections 20.
   Small screens keep the same reading sizes; spacing and disclosure adapt. */
:root{--text-caption:.875rem;--text-small:.9375rem;--text-body:1rem;--text-title:1.125rem;--text-heading:1.25rem;--line-reading:1.65;font-size:100%;--muted:#58695f}
body{font-size:var(--text-body);line-height:1.5}p,dd{line-height:var(--line-reading)}
input:not([type=checkbox]):not([type=range]),select,textarea{font-size:var(--text-body);min-height:44px;max-width:100%}
.caption,.place-category,.place-address,.eyebrow,.card-stats,.range-endpoints,.source-chip,.language-english,.collection-footer{font-size:var(--text-caption);line-height:1.55}
.place-copy h3,.card-copy h3{font-size:var(--text-title);line-height:1.45;font-weight:650}
.place-local-name:lang(zh),.secondary-name:lang(zh){font-size:var(--text-title)!important;font-weight:600!important;line-height:1.6!important}
.place-facts dt,.endpoints small{font-size:var(--text-small);font-weight:500}.place-facts dd{font-size:var(--text-body)}
.intro>p,.city-intro>p:last-child,.route-description,.transit-content>p{font-size:var(--text-body);line-height:var(--line-reading)}
.sidebar button,.sidebar summary{min-height:44px}.sidebar .text-link{display:inline-flex;align-items:center;min-height:44px}
.search-wrap{height:auto;min-height:48px}.search-wrap input{min-height:48px}.search-wrap .search-clear{height:44px;width:44px;top:2px}
.directory .langs,.directory .region-links{font-size:var(--text-small)}.directory li small{font-size:var(--text-caption)}.directory li a{font-size:var(--text-body)}
.lands-credit,.maplibregl-ctrl-attrib{font-size:.75rem!important;line-height:1.4}.lands-credit{max-width:calc(100% - 90px)}
.operator-attribution{font-size:var(--text-caption);border-top:1px solid var(--line);padding-top:20px;margin-top:30px}.operator-attribution summary{min-height:44px;cursor:pointer}.operator-attribution address{font-style:normal;line-height:1.8;padding-block:12px}

/* Weight carries hierarchy; size remains readable at every viewport. */
:root{--weight-reading:400;--weight-secondary:500;--weight-control:600;--weight-heading:700}
body{font-weight:var(--weight-reading)}
h1,h2,h3,h4,.place-copy h3,.card-copy h3{font-weight:var(--weight-heading)}
button,input,select,textarea{font-family:inherit}
button,summary,.view-switcher a,.main-tabs button,.back-link,.text-link,.source-page-link,.map-return,.directory-categories a{font-weight:var(--weight-control)}
:is(button,a)[aria-current],button[aria-pressed=true],.main-tabs button.active,.page-links [aria-current]{font-weight:var(--weight-heading)}
input:not([type=checkbox]):not([type=range]),select,textarea{font-weight:var(--weight-secondary)}
input::placeholder,textarea::placeholder{font-weight:var(--weight-secondary);color:var(--muted);opacity:1}
.caption,.place-category,.place-address,.eyebrow,.card-stats,.range-endpoints,.language-english,.collection-footer,.secondary-name,.place-local-name{font-weight:var(--weight-secondary)}
.place-facts dt,.endpoints small,.filter-grid label,.place-display-setting label,.source-record dt{font-weight:var(--weight-control)}
.place-facts dd,.source-record dd{font-weight:var(--weight-reading)}
.stats strong,.weather-reading strong,.walking-budget strong,.landuse-card strong{font-weight:var(--weight-heading);font-variant-numeric:tabular-nums}
:is(h1,h2,h3,h4):lang(zh){font-weight:600;letter-spacing:.01em}
.place-local-name:lang(zh),.secondary-name:lang(zh),.detail-secondary:lang(zh){font-weight:600!important;letter-spacing:.015em}
:lang(zh) p,:lang(zh) dd{font-weight:450}
:lang(zh) .caption,:lang(zh) .eyebrow,:lang(zh) .place-address{font-weight:500}
.brand small{font-weight:600;letter-spacing:.025em}
.lands-credit,.maplibregl-ctrl-attrib{font-weight:500}
