:root {
    --hc-ink: #3e3a37;
    --hc-deep: #702c1d;
    --hc-deep-warm: #853826;
    --hc-green: #2f6b5f;
    --hc-jade: #489081;
    --hc-cobalt: #233469;
    --hc-copper: #a84a34;
    --hc-vermilion: #853826;
    --hc-orange: #c2684f;
    --hc-gold: #c9a46c;
    --hc-ivory: #f2efea;
    --hc-paper: #faf7f3;
    --hc-line: #dcd8d3;
    --hc-muted: #8c8680;
    --hc-shadow: 0 18px 48px rgba(112, 44, 29, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.historic-city-page { margin: 0; color: var(--hc-ink); background: var(--hc-paper); font-family: "Microsoft YaHei", "PingFang SC", sans-serif; }
button, input, select { font: inherit; }
.hc-shell { width: min(1440px, calc(100% - 48px)); margin: 0 auto; }
.hc-skip-link { position: fixed; z-index: 999; left: 12px; top: -60px; padding: 10px 14px; color: #fff; background: var(--hc-copper); }
.hc-skip-link:focus { top: 12px; }
.hc-header { position: relative; z-index: 80; height: 72px; color: #fff; background: linear-gradient(100deg, #4b1a13 0%, #702c1d 48%, #5d2419 72%, #3b1510 100%); border-bottom: 1px solid rgba(194, 104, 79, .58); box-shadow: 0 8px 28px rgba(54, 27, 22, .24); }
.hc-header-inner { height: 100%; display: grid; grid-template-columns: 280px 1fr auto; align-items: center; gap: 28px; }
.hc-brand { display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; }
.hc-brand img { width: 44px; height: 44px; object-fit: contain; }
.hc-brand span { display: grid; line-height: 1.16; }
.hc-brand small { color: #e7d8cf; font-size: 13px; }
.hc-brand strong { font-size: 19px; letter-spacing: 2px; }
.hc-global-nav { display: flex; justify-content: center; align-items: stretch; height: 100%; }
.hc-global-nav a { position: relative; display: flex; align-items: center; padding: 0 20px; color: #eadbd4; text-decoration: none; font-size: 16px; }
.hc-global-nav a::after { content: ""; position: absolute; left: 22px; right: 22px; bottom: 0; height: 3px; transform: scaleX(0); background: linear-gradient(90deg, var(--hc-orange), var(--hc-gold)); box-shadow: 0 -2px 10px rgba(194, 104, 79, .28); transition: transform .2s ease; }
.hc-global-nav a:hover, .hc-global-nav a.active { color: #fff; background: rgba(194, 104, 79, .10); }
.hc-global-nav a.active::after { transform: scaleX(1); }
.hc-user { display: flex; align-items: center; gap: 13px; font-size: 14px; white-space: nowrap; }
.hc-user span { color: #e6c7a8; font-weight: 700; }
.hc-user a { color: #eadbd4; text-decoration: none; }

.hc-hero { position: relative; min-height: 540px; overflow: hidden; color: #fff; background: var(--hc-deep); }
.hc-hero::before { content: ""; position: absolute; inset: 0; background-image: var(--hc-hero-image); background-position: center 38%; background-size: cover; filter: saturate(.86) brightness(.93) contrast(1.03); transform: scale(1.02); }
.hc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(112, 44, 29, .90) 0%, rgba(112, 44, 29, .62) 40%, rgba(62, 58, 55, .22) 72%, rgba(31, 24, 21, .34) 100%), linear-gradient(0deg, rgba(74, 38, 29, .42), transparent 66%); }
.hc-hero::after { content: ""; position: absolute; right: -140px; bottom: -260px; width: 580px; height: 580px; border: 82px solid rgba(72, 144, 129, .11); border-radius: 50%; }
.hc-hero-grid { position: relative; z-index: 2; min-height: 540px; display: grid; grid-template-columns: 1.07fr .93fr; align-items: center; gap: 74px; }
.hc-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; color: #f2efea; font-size: 15px; }
.hc-eyebrow span { padding: 6px 11px; color: var(--hc-deep); background: linear-gradient(90deg, #f2e5d9, #d9b58e); font-weight: 800; letter-spacing: 1px; }
.hc-hero-copy h1 { margin: 0; font-family: "STSong", "SimSun", serif; font-size: clamp(48px, 4.3vw, 68px); line-height: 1.18; letter-spacing: 4px; }
.hc-hero-copy h1 em { color: #e6c39c; font-style: normal; font-size: 1.1em; letter-spacing: 18px; text-shadow: 0 8px 26px rgba(54, 30, 24, .28); }
.hc-hero-intro { max-width: 720px; margin: 24px 0 0; color: #f2efea; font-size: 17px; line-height: 1.9; }
.hc-hero-actions { display: flex; gap: 14px; margin-top: 28px; }
.hc-primary-button, .hc-secondary-button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: 0 22px; color: #fff; text-decoration: none; font-weight: 700; border-radius: 2px; }
.hc-primary-button { color: #fff; background: linear-gradient(100deg, var(--hc-deep-warm), var(--hc-copper)); box-shadow: 0 12px 30px rgba(112, 44, 29, .28); }
.hc-secondary-button { border: 1px solid rgba(242, 239, 234, .58); background: rgba(74, 42, 33, .26); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06); backdrop-filter: blur(8px); }
.hc-hero-panel { padding: 23px; background: linear-gradient(145deg, rgba(78, 38, 29, .88), rgba(57, 43, 38, .84)); border: 1px solid rgba(194, 104, 79, .58); box-shadow: 0 30px 70px rgba(47, 30, 25, .30), inset 0 1px rgba(242, 239, 234, .10); backdrop-filter: blur(13px); }
.hc-hero-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid rgba(255, 255, 255, .13); }
.hc-hero-panel-head div { display: grid; gap: 3px; }
.hc-hero-panel-head span { font-size: 18px; font-weight: 800; }
.hc-hero-panel-head small { color: #d8cbc4; font-size: 12px; }
.hc-hero-panel-head strong { padding: 5px 9px; color: #cbe1db; background: rgba(72, 144, 129, .14); border: 1px solid rgba(72, 144, 129, .52); font-size: 13px; }
.hc-kpi-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.hc-kpi-grid article { min-height: 104px; padding: 18px 11px 13px; border-right: 1px solid rgba(255, 255, 255, .10); border-bottom: 1px solid rgba(255, 255, 255, .10); }
.hc-kpi-grid article:nth-child(3n) { border-right: 0; }
.hc-kpi-grid article:nth-child(n+4) { border-bottom: 0; }
.hc-kpi-grid small { display: block; min-height: 38px; color: #d8cbc4; font-size: 13px; line-height: 1.5; }
.hc-kpi-grid strong { color: #fff; font: 800 34px/1 Arial, sans-serif; }
.hc-kpi-grid span { margin-left: 4px; color: #e5ddd8; font-size: 13px; }

.hc-section-nav { position: sticky; z-index: 50; top: 0; background: rgba(253, 250, 246, .97); border-bottom: 1px solid var(--hc-line); box-shadow: 0 6px 18px rgba(89, 32, 23, .07); backdrop-filter: blur(10px); }
.hc-section-nav .hc-shell { min-height: 52px; display: flex; align-items: center; justify-content: center; gap: 4px; overflow-x: auto; }
.hc-section-nav a { flex: 0 0 auto; padding: 9px 17px; color: #625a55; text-decoration: none; font-size: 15px; }
.hc-section-nav a:hover { color: var(--hc-deep-warm); background: #f3e7df; }
.hc-system-message { width: min(1440px, calc(100% - 48px)); margin: 18px auto 0; padding: 12px 16px; color: var(--hc-green); background: #edf5f2; border: 1px solid #b9d4ce; }

.hc-section { padding: 58px 0; scroll-margin-top: 54px; }
.hc-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 25px; }
.hc-section-heading > div:first-child { flex: 0 0 auto; }
.hc-section-heading > div:first-child p { margin: 0 0 5px; color: var(--hc-copper); font-size: 12px; font-weight: 800; letter-spacing: 2.5px; }
.hc-section-heading h2 { margin: 0; color: var(--hc-deep); font-family: "STSong", "SimSun", serif; font-size: 34px; letter-spacing: 2px; }
.hc-section-heading > p { max-width: 720px; margin: 0; color: var(--hc-muted); font-size: 15px; line-height: 1.75; }
.hc-section-heading.light h2 { color: #fff; }
.hc-section-heading.light > p { color: #e6d9d2; }

.hc-overview { background: var(--hc-ivory); }
.hc-overview-grid { display: grid; grid-template-columns: .84fr 1.16fr; gap: 20px; }
.hc-story-card { position: relative; min-height: 340px; padding: 30px; overflow: hidden; color: #fff; background: linear-gradient(145deg, var(--hc-copper) 0%, var(--hc-deep-warm) 55%, var(--hc-deep) 100%); box-shadow: var(--hc-shadow); }
.hc-story-card::after { content: "1965"; position: absolute; right: -14px; bottom: -25px; color: rgba(255, 255, 255, .055); font: 800 108px/1 Arial, sans-serif; }
.hc-story-card > span { color: #ead0b3; font-size: 13px; letter-spacing: 2px; }
.hc-story-card h3 { max-width: 520px; margin: 15px 0; font-family: "STSong", "SimSun", serif; font-size: 28px; line-height: 1.45; }
.hc-story-card p { max-width: 580px; margin: 0; color: #eadfd9; line-height: 1.85; }
.hc-story-card dl { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin: 25px 0 0; }
.hc-story-card dl div { padding: 13px; background: rgba(255, 255, 255, .065); border: 1px solid rgba(255, 255, 255, .10); }
.hc-story-card dt { color: #ddcbc2; font-size: 12px; }
.hc-story-card dd { margin: 5px 0 0; color: #fff; font-weight: 800; }
.hc-timeline { position: relative; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.hc-timeline-item { position: relative; min-height: 102px; padding: 16px 18px 15px 72px; background: #fffdf9; border: 1px solid var(--hc-line); }
.hc-timeline-item::before { content: attr(data-year); position: absolute; left: 16px; top: 16px; width: 42px; height: 42px; display: grid; place-content: center; color: #fff; background: var(--hc-copper); border-radius: 50%; font: 800 12px Arial, sans-serif; }
.hc-timeline-item span { color: var(--hc-copper); font-size: 12px; }
.hc-timeline-item h3 { margin: 3px 0 4px; color: var(--hc-deep); font-size: 16px; }
.hc-timeline-item p { margin: 0; color: #746e69; font-size: 13px; line-height: 1.55; }

.hc-pattern-section { background: var(--hc-paper); }
.hc-pattern-group + .hc-pattern-group { margin-top: 26px; }
.hc-group-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--hc-line); }
.hc-group-head h3 { margin: 0; color: var(--hc-green); font-size: 20px; }
.hc-group-head span { color: var(--hc-muted); font-size: 13px; }
.hc-area-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.hc-area-card, .hc-block-card { position: relative; min-height: 190px; padding: 20px; overflow: hidden; background: #fffdf9; border: 1px solid var(--hc-line); box-shadow: 0 9px 24px rgba(112, 44, 29, .055); }
.hc-area-card::after, .hc-block-card::after { content: attr(data-index); position: absolute; right: 8px; top: -5px; color: rgba(168, 74, 52, .07); font: 800 66px Arial, sans-serif; }
.hc-area-card > span, .hc-block-card > span { color: var(--hc-copper); font-size: 12px; font-weight: 700; }
.hc-area-card h4, .hc-block-card h4 { position: relative; z-index: 1; margin: 12px 0 7px; color: var(--hc-deep); font-size: 19px; }
.hc-area-card strong, .hc-block-card strong { display: block; color: var(--hc-jade); font-size: 22px; }
.hc-area-card p, .hc-block-card p { position: relative; z-index: 1; margin: 10px 0 0; color: #746f6b; font-size: 13px; line-height: 1.6; }
.hc-block-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.hc-block-card { border-top: 4px solid var(--hc-copper); }

.hc-map-section { background: linear-gradient(135deg, #3f211b 0%, #702c1d 58%, #4b4b3f 125%); }
.hc-map-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(330px, .45fr); gap: 18px; }
.hc-map-card, .hc-district-panel { background: rgba(250, 247, 243, .98); box-shadow: 0 25px 60px rgba(38, 27, 23, .22); }
.hc-map-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--hc-line); }
.hc-map-head div { display: grid; gap: 3px; }
.hc-map-head strong { color: var(--hc-deep); font-size: 18px; }
.hc-map-head span { color: var(--hc-muted); font-size: 13px; }
.hc-map-head button { height: 34px; padding: 0 13px; color: var(--hc-green); background: #edf5f2; border: 1px solid #b8d1cb; cursor: pointer; }
.hc-map-canvas { position: relative; height: 500px; min-height: 500px; overflow: hidden; background: #e9eee9; }
.hc-map-canvas .ol-viewport { position: absolute !important; inset: 0; width: auto !important; height: auto !important; filter: saturate(.98) brightness(1.05) contrast(.99); }
.hc-map-canvas .ol-scale-line { left: 12px; bottom: 10px; background: rgba(10, 38, 42, .7); }
.hc-map-canvas .ol-scale-line-inner { color: #fff; border-color: #fff; font-size: 11px; }
.hc-map-loading { position: absolute; z-index: 8; inset: 0; display: grid; place-content: center; padding: 24px; color: #596a66; text-align: center; background: rgba(242, 239, 234, .88); pointer-events: none; }
.hc-map-loading[hidden] { display: none; }
.hc-map-loading.is-error { color: #8b4827; }
.hc-map-note { display: flex; min-height: 44px; align-items: center; gap: 20px; padding: 0 18px; color: #6f706c; font-size: 13px; border-top: 1px solid var(--hc-line); }
.hc-map-note span { display: inline-flex; align-items: center; gap: 7px; }
.hc-map-note i { width: 13px; height: 13px; border-radius: 2px; }
.hc-map-note i.boundary { background: rgba(72, 144, 129, .18); border: 2px solid var(--hc-jade); }
.hc-map-note i.aggregate { background: var(--hc-copper); border-radius: 50%; }
.hc-map-note strong { margin-left: auto; color: var(--hc-deep); }
.hc-district-panel { padding: 20px; }
.hc-card-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.hc-card-heading h3 { margin: 0; color: var(--hc-deep); font-size: 19px; }
.hc-card-heading span { color: var(--hc-copper); font-weight: 800; }
.hc-district-list { display: grid; gap: 8px; }
.hc-district-item { display: grid; grid-template-columns: 1fr auto; gap: 5px 12px; padding: 12px 13px; text-align: left; background: #f2efea; border: 1px solid transparent; cursor: pointer; }
.hc-district-item:hover, .hc-district-item.active { background: #edf5f2; border-color: #9fc5bc; }
.hc-district-item strong { color: var(--hc-deep); font-size: 16px; }
.hc-district-item > span { color: var(--hc-copper); font-weight: 800; }
.hc-district-item small { grid-column: 1 / -1; color: #73716d; font-size: 12px; }
.hc-map-data-state { margin-top: 18px; padding: 15px; color: #625d59; background: #f1eeea; border-left: 4px solid var(--hc-jade); }
.hc-map-data-state strong { color: var(--hc-deep); }
.hc-map-data-state p { margin: 6px 0 0; font-size: 13px; line-height: 1.65; }

.hc-buildings-section { background: var(--hc-ivory); }
.hc-filter-panel { display: grid; grid-template-columns: 1.7fr repeat(3, 1fr) 1.05fr auto; gap: 10px; align-items: end; padding: 16px; background: #fffdf9; border: 1px solid var(--hc-line); box-shadow: 0 10px 30px rgba(112, 44, 29, .06); }
.hc-filter-panel label { display: grid; gap: 6px; }
.hc-filter-panel label span { color: #625b57; font-size: 13px; }
.hc-filter-panel input, .hc-filter-panel select { width: 100%; height: 41px; padding: 0 10px; color: var(--hc-ink); background: #faf7f3; border: 1px solid #cfc9c3; }
.hc-filter-panel input:focus, .hc-filter-panel select:focus { outline: 2px solid rgba(72, 144, 129, .17); border-color: var(--hc-jade); }
.hc-filter-actions { display: flex; gap: 7px; }
.hc-filter-actions button { height: 41px; padding: 0 15px; background: #fff; border: 1px solid #cfc9bd; cursor: pointer; }
.hc-filter-actions button:first-child { color: #fff; background: var(--hc-green); border-color: var(--hc-green); }
.hc-building-rollup { display: flex; flex-wrap: wrap; gap: 22px; min-height: 48px; align-items: center; padding: 0 5px; color: #647475; font-size: 14px; }
.hc-building-rollup strong { color: var(--hc-deep); }
.hc-building-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.hc-building-card { min-width: 0; overflow: hidden; background: #fffdf9; border: 1px solid var(--hc-line); box-shadow: 0 10px 25px rgba(112, 44, 29, .055); }
.hc-building-image { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, #eedbd1, #f7eee3); }
.hc-building-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.hc-building-card:hover .hc-building-image img { transform: scale(1.035); }
.hc-building-placeholder { width: 100%; height: 100%; display: grid; place-content: center; color: #806563; font-family: "STSong", serif; font-size: 25px; background: linear-gradient(135deg, #edddd4, #f3e8d9); }
.hc-building-code { position: absolute; left: 10px; top: 10px; padding: 4px 7px; color: #fff; background: rgba(112, 44, 29, .86); font-size: 12px; }
.hc-building-copy { padding: 15px 16px 16px; }
.hc-building-meta { display: flex; justify-content: space-between; gap: 10px; color: var(--hc-copper); font-size: 12px; }
.hc-building-copy h3 { min-height: 48px; margin: 7px 0 5px; color: var(--hc-deep); font-size: 17px; line-height: 1.42; }
.hc-building-copy > p { min-height: 42px; margin: 0; overflow: hidden; color: #76716d; font-size: 13px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.hc-building-copy footer { display: flex; align-items: center; justify-content: space-between; margin-top: 13px; padding-top: 11px; border-top: 1px solid #ece8df; }
.hc-building-copy footer span { color: #6c7b7a; font-size: 12px; }
.hc-building-copy button { padding: 0; color: var(--hc-cobalt); background: none; border: 0; cursor: pointer; font-weight: 700; }
.hc-empty { grid-column: 1 / -1; padding: 50px; color: #73817f; text-align: center; background: #fff; border: 1px dashed #cbc5b9; }
.hc-pagination { display: flex; justify-content: center; align-items: center; gap: 14px; margin-top: 20px; }
.hc-pagination button { min-width: 88px; height: 36px; color: var(--hc-cobalt); background: #fffdf9; border: 1px solid #c9c4be; cursor: pointer; }
.hc-pagination button:disabled { color: #a7aeaa; cursor: not-allowed; }
.hc-pagination span { color: #687776; font-size: 13px; }

.hc-memory-section { background: linear-gradient(135deg, #3f211b 0%, #702c1d 58%, #38554f 125%); }
.hc-gallery-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 13px; }
.hc-gallery-card { position: relative; min-height: 260px; overflow: hidden; color: #fff; background: #47251e; }
.hc-gallery-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.hc-gallery-card:hover img { transform: scale(1.05); }
.hc-gallery-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(67, 35, 28, .94) 0%, rgba(168, 74, 52, .08) 70%); }
.hc-gallery-card div { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 18px; }
.hc-gallery-card span { color: #dfc2a1; font-size: 12px; }
.hc-gallery-card h3 { margin: 5px 0 0; font-size: 16px; line-height: 1.4; }

.hc-plans-section { background: var(--hc-paper); }
.hc-plan-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; }
.hc-plan-card { overflow: hidden; background: #fffdf9; border: 1px solid var(--hc-line); box-shadow: 0 12px 30px rgba(112, 44, 29, .065); }
.hc-plan-card button { width: 100%; padding: 0; text-align: left; background: none; border: 0; cursor: zoom-in; }
.hc-plan-card img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; }
.hc-plan-card div { padding: 15px 17px 17px; }
.hc-plan-card h3 { margin: 0 0 6px; color: var(--hc-deep); font-size: 17px; }
.hc-plan-card p { margin: 0; color: #76716d; font-size: 13px; line-height: 1.6; }

.hc-policy-section { background: linear-gradient(135deg, #3d1d17, #702c1d 62%, #553027); }
.hc-policy-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.hc-policy-card { display: grid; grid-template-columns: 108px 1fr auto; align-items: center; gap: 18px; min-height: 122px; padding: 18px 20px; color: #eadfda; text-decoration: none; background: rgba(255, 255, 255, .055); border: 1px solid rgba(255, 255, 255, .12); }
.hc-policy-card:hover { background: rgba(255, 255, 255, .09); border-color: rgba(72, 144, 129, .62); }
.hc-policy-date { color: #dfbd97; text-align: center; font-size: 13px; }
.hc-policy-date strong { display: block; font: 800 23px/1 Arial, sans-serif; }
.hc-policy-copy span { color: #d7c4bb; font-size: 12px; }
.hc-policy-copy h3 { margin: 5px 0; color: #fff; font-size: 16px; }
.hc-policy-copy p { margin: 0; color: #dacbc4; font-size: 13px; line-height: 1.55; }
.hc-policy-arrow { color: #8dc0b5; font-size: 22px; }
.hc-footer { color: #d9c5be; background: #321014; border-top: 1px solid rgba(232, 117, 45, .20); }
.hc-footer .hc-shell { min-height: 58px; display: flex; align-items: center; justify-content: space-between; }
.hc-footer strong { color: #d9c39b; }

/* 游客端仅展示公开故事、成效与政策，不加载资源台账、空间与内部图集。 */
.hc-public-notice { color: #684239; background: #f6efe8; border-top: 1px solid #e5d0be; border-bottom: 1px solid #e5d0be; }
.hc-public-notice .hc-shell { display: flex; align-items: center; gap: 16px; min-height: 58px; }
.hc-public-notice strong { flex: 0 0 auto; color: #a7502b; font-size: 15px; }
.hc-public-notice span { color: #7c655c; font-size: 13px; line-height: 1.7; }

.hc-dialog, .hc-plan-dialog { position: fixed; inset: 0; width: min(920px, calc(100% - 36px)); max-height: 88vh; margin: auto; padding: 0; color: var(--hc-ink); background: var(--hc-paper); border: 0; box-shadow: 0 30px 90px rgba(0, 0, 0, .38); }
.hc-dialog::backdrop, .hc-plan-dialog::backdrop { background: rgba(39, 27, 23, .76); backdrop-filter: blur(3px); }
.hc-dialog-close { position: absolute; z-index: 5; right: 13px; top: 11px; width: 36px; height: 36px; color: #fff; background: rgba(76, 37, 28, .70); border: 1px solid rgba(255, 255, 255, .25); border-radius: 50%; cursor: pointer; font-size: 25px; }
.hc-dialog-head { padding: 24px 62px 21px 25px; color: #fff; background: linear-gradient(100deg, var(--hc-deep), var(--hc-copper) 68%, var(--hc-jade)); }
.hc-dialog-head span { color: #e8d2ba; font-size: 12px; }
.hc-dialog-head h2 { margin: 5px 0 0; font-family: "STSong", serif; font-size: 27px; }
#dialog-building-body { max-height: calc(88vh - 105px); overflow-y: auto; padding: 22px 25px 27px; }
.hc-detail-layout { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 20px; }
.hc-detail-images { display: grid; gap: 10px; align-content: start; }
.hc-detail-images img { width: 100%; max-height: 380px; object-fit: contain; background: #e8e6de; }
.hc-detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 0; }
.hc-detail-grid div { padding: 10px 12px; background: #f0ede5; border: 1px solid #e2dcd0; }
.hc-detail-grid dt { color: #817c77; font-size: 12px; }
.hc-detail-grid dd { margin: 4px 0 0; color: var(--hc-deep); font-weight: 700; }
.hc-detail-content { margin-top: 13px; padding: 14px 15px; background: #fff; border-left: 4px solid var(--hc-copper); }
.hc-detail-content h3 { margin: 0 0 7px; color: var(--hc-deep); font-size: 16px; }
.hc-detail-content p { margin: 0; color: #6f706c; line-height: 1.75; }
.hc-plan-dialog { width: min(1300px, calc(100% - 34px)); background: #47251e; }
.hc-plan-dialog > img { display: block; width: 100%; max-height: 76vh; object-fit: contain; background: #e7e7e2; }
.hc-plan-dialog > div { padding: 13px 58px 16px 20px; color: #eadfda; }
.hc-plan-dialog h2 { margin: 0; font-size: 18px; }
.hc-plan-dialog p { margin: 4px 0 0; color: #d7c4bb; font-size: 13px; }

@media (max-width: 1280px) {
    .hc-global-nav a { padding: 0 12px; font-size: 14px; }
    .hc-hero-grid { gap: 36px; }
    .hc-building-grid { grid-template-columns: repeat(3, 1fr); }
    .hc-gallery-grid { grid-template-columns: repeat(4, 1fr); }
    .hc-filter-panel { grid-template-columns: 1.5fr repeat(2, 1fr); }
    .hc-filter-actions { grid-column: auto; }
}

@media (max-width: 980px) {
    .hc-shell { width: min(100% - 30px, 1440px); }
    .hc-header { height: auto; }
    .hc-header-inner { min-height: 70px; grid-template-columns: 1fr auto; }
    .hc-global-nav { grid-column: 1 / -1; order: 3; height: 46px; overflow-x: auto; justify-content: flex-start; }
    .hc-user { grid-column: 2; grid-row: 1; }
    .hc-hero-grid { grid-template-columns: 1fr; padding: 60px 0; }
    .hc-hero-panel { max-width: 720px; }
    .hc-overview-grid, .hc-map-layout { grid-template-columns: 1fr; }
    .hc-area-grid { grid-template-columns: repeat(3, 1fr); }
    .hc-block-grid { grid-template-columns: repeat(2, 1fr); }
    .hc-building-grid, .hc-plan-grid { grid-template-columns: repeat(2, 1fr); }
    .hc-gallery-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 680px) {
    .hc-shell { width: min(100% - 22px, 1440px); }
    .hc-brand img { width: 38px; height: 38px; }
    .hc-brand strong { font-size: 16px; }
    .hc-user span, .hc-user a:first-of-type { display: none; }
    .hc-hero-copy h1 { font-size: 42px; }
    .hc-hero-copy h1 em { letter-spacing: 9px; }
    .hc-hero-actions, .hc-section-heading { align-items: stretch; flex-direction: column; }
    .hc-kpi-grid { grid-template-columns: repeat(2, 1fr); }
    .hc-kpi-grid article:nth-child(3n) { border-right: 1px solid rgba(255, 255, 255, .1); }
    .hc-kpi-grid article:nth-child(2n) { border-right: 0; }
    .hc-kpi-grid article:nth-child(n+4) { border-bottom: 1px solid rgba(255, 255, 255, .1); }
    .hc-kpi-grid article:nth-child(n+5) { border-bottom: 0; }
    .hc-timeline, .hc-area-grid, .hc-block-grid, .hc-building-grid, .hc-gallery-grid, .hc-plan-grid, .hc-policy-list { grid-template-columns: 1fr; }
    .hc-filter-panel { grid-template-columns: 1fr; }
    .hc-filter-actions button { flex: 1; }
    .hc-map-canvas { height: 420px; min-height: 420px; }
    .hc-map-note { flex-wrap: wrap; padding: 10px 14px; }
    .hc-map-note strong { width: 100%; margin-left: 0; }
    .hc-policy-card { grid-template-columns: 82px 1fr auto; padding: 15px 12px; }
    .hc-detail-layout { grid-template-columns: 1fr; }
    .hc-footer .hc-shell { align-items: flex-start; flex-direction: column; justify-content: center; gap: 4px; }
    .hc-public-notice .hc-shell { align-items: flex-start; flex-direction: column; gap: 2px; padding: 13px 0; }
}
