* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.glass { background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.site-header .brand { display: flex; align-items: center; gap: 10px; }
.site-header .brand > span { font-size: 18px; font-weight: 650; line-height: 1.2; }
.site-header .brand small { display: block; margin-top: 3px; font-size: 9px; font-weight: 650; letter-spacing: .14em; color: #526a7e; }
.site-navigation { position: relative; z-index: 1; }
.catalog-page { padding-top: 16px; }
.national-module, .directory-module, .world-module, .famous-module, .search-results { background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 3px 18px #284e7010; }
.national-module { margin-top: 0; }
.famous-cities span { display: inline-block; padding: 5px 10px; border-radius: 5px; color: #425e73; font-size: 14px; line-height: 26px; }
.famous-cities span:hover { background: #eaf3fa; }
.place-label { display: flex; align-items: center; min-width: 0; min-height: 43px; padding: 7px 11px; color: #46535f; font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.search-results { margin-bottom: 20px; overflow: hidden; }
.search-result-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; padding: 16px 22px 22px; }
.search-result-list a { display: block; padding: 10px 12px; border-radius: 6px; background: #f2f7fb; color: #315872; }
.search-result-list a:hover { background: #e5f0f8; }
.search-result-list small { display: block; margin-top: 3px; color: #61788a; font-size: 11px; }
.directory-page { min-height: 56vh; }
.directory-page .breadcrumbs { margin-bottom: 17px; }
.directory-page .directory-module { overflow: hidden; }
.catalog-footer { padding-top: 16px; }
@media(max-width:640px) {
 .catalog-page { padding-top: 12px; }
 .search-result-list { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 12px 15px 17px; }
 .place-label { min-height: 42px; padding: 7px 8px; font-size: 13px; }
 .famous-cities span { padding: 5px 7px; font-size: 13px; line-height: 24px; }
}
.error-page { display:grid; align-items:center; min-height:52vh; padding:36px 0 60px; }
.error-panel { width:min(680px,100%); margin:0 auto; padding:clamp(28px,6vw,56px); border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 4px 20px #284e7012; text-align:center; }
.error-code { margin:0; color:#6d90aa; font-size:clamp(72px,18vw,132px); font-weight:300; line-height:.9; letter-spacing:-.06em; }
.error-panel h1 { margin:19px 0 8px; color:#30363e; font-size:clamp(22px,4vw,30px); font-weight:600; line-height:1.4; }
.error-message { max-width:36em; margin:0 auto; color:#596773; font-size:14px; line-height:1.8; }
.error-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin-top:24px; }
.error-actions a { display:inline-flex; min-height:42px; align-items:center; justify-content:center; padding:9px 18px; border:1px solid transparent; border-radius:5px; font-size:13px; font-weight:550; }
.error-actions .error-primary { background:#2b75ad; color:#fff; }
.error-actions .error-secondary { border-color:#d4e3ee; background:#edf5fc; color:#275f83; }
.error-actions a:focus-visible { outline:2px solid #2b75ad; outline-offset:3px; }
@media(max-width:480px) { .error-page { min-height:48vh; padding-block:22px 38px; } .error-panel { padding:30px 18px; } .error-actions a { flex:1 1 130px; } }
