/* Huaguoshan neighbourhood planner. The shared site chrome keeps its own styles. */
main.hg-site .hg-local-number { display:inline-grid; place-items:center; flex:none; min-width:25px; height:25px; margin:0 7px 0 0; padding:0 5px; border-radius:50%; background:#bf6711; color:#fff; font:bold 12px/1 Arial; vertical-align:middle; }
main.hg-site .hg-local-number[data-category="services"] { background:#a13c95; }
main.hg-site .hg-local-number[data-category="nightlife"] { background:#6c42bb; }
main.hg-site .hg-local-number[data-category="hotels"] { background:#1474b8; }
main.hg-site .hg-service-group { margin-top:16px; }
main.hg-site .hg-service-group>h3 { margin-bottom:9px; font-size:18px; }
main.hg-site .hg-map-directory { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin-top:10px; }
main.hg-site .hg-map-directory a { display:flex; align-items:center; min-height:38px; padding:5px; border:1px solid var(--hg-line); border-radius:5px; font-size:12px; }
main.hg-site .hg-map-label.hg-map-local-label { display:grid; place-items:center; width:28px; height:28px; min-width:28px; padding:0; border:2px solid #fff; border-radius:50%; color:#fff; background:var(--hg-marker-color); box-shadow:0 1px 5px #173f7050; }
main.hg-site .hg-map-label.hg-map-local-label strong { color:#fff; font:bold 13px/1 Arial; }
main.hg-site .hg-map-label.hg-map-local-label::before,main.hg-site .hg-map-label.hg-map-local-label::after { display:none; }
@media(max-width:600px) { main.hg-site .hg-map-directory { grid-template-columns:repeat(2,minmax(0,1fr)); } }
main.hg-site [data-hg-map] .leaflet-popup-content { overflow-wrap:anywhere; }
@media(max-width:600px) {
 main.hg-site [data-hg-map][data-hg-popup-open="true"] .leaflet-top { display:none; }
}
main.hg-site .hg-local-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
main.hg-site .hg-local-card { display:flex; flex-direction:column; gap:8px; padding:14px; border:1px solid var(--hg-line); border-radius:9px; background:linear-gradient(155deg,#fff,#f5f9ff); }
main.hg-site .hg-local-top { display:flex; gap:8px; align-items:center; color:#087a76; font-size:12px; font-weight:700; }
main.hg-site .hg-local-top .hg-icon { width:22px; height:22px; margin:0; }
main.hg-site .hg-local-card h3 { font-size:18px; }
main.hg-site .hg-local-card h3 small { display:block; margin-top:4px; font-size:13px; line-height:1.4; color:var(--hg-muted); letter-spacing:0; font-weight:500; }
main.hg-site .hg-local-card .hg-local-area { color:#0051bc; font-size:12px; font-weight:700; }
main.hg-site .hg-local-card address { display:grid; gap:4px; margin-top:auto; padding:9px 0; font-style:normal; font-size:12px; color:var(--hg-muted); border-top:1px solid var(--hg-line); overflow-wrap:anywhere; }
main.hg-site .hg-local-links { display:flex; gap:9px 12px; flex-wrap:wrap; align-items:center; font-size:12px; }
main.hg-site .hg-local-links .hg-button { padding:7px 11px; min-height:36px; font-size:12px; }
main.hg-site .hg-local-jump { display:flex; flex-wrap:wrap; gap:6px 14px; padding:8px 0; font-size:12px; font-weight:700; }
main.hg-site .hg-local-searches { display:flex; gap:10px 18px; flex-wrap:wrap; padding:12px; margin-top:12px; border-radius:8px; background:var(--hg-wash); font-size:12px; }
main.hg-site .hg-local-searches strong { flex-basis:100%; }
main.hg-site .hg-local-section>.hg-note { margin-top:12px; }
@media(max-width:600px) { main.hg-site .hg-local-grid { grid-template-columns:minmax(0,1fr); } }
main.hg-site {
  --hg-blue:#0068f5; --hg-navy:#0b276b; --hg-muted:#557399; --hg-line:#dbe8f9;
  --hg-wash:#f3f8ff; --hg-teal:#00a48d; width:100%; max-width:none; margin:0;
  padding:0; color:var(--hg-navy); background:#fff; font:14px/1.45 Arial,Helvetica,"Microsoft YaHei",sans-serif;
}
main.hg-site .hg-page,
main.hg-site .hg-page *,
main.hg-site .hg-page *::before,
main.hg-site .hg-page *::after { box-sizing:border-box; }
main.hg-site .hg-page { width:100%; margin:0; padding:0 0 24px; background:#fff; }
main.hg-site .hg-page :is(section,article,aside,nav,div,form,fieldset,figure,label) { min-width:0; }
main.hg-site .hg-page :is(h1,h2,h3,h4,p,ul,ol,dl,figure,fieldset) { margin:0; }
main.hg-site .hg-page :is(h1,h2,h3,h4) { color:var(--hg-navy); font-family:inherit; font-style:normal; font-weight:800; line-height:1.2; letter-spacing:-.03em; text-transform:none; text-shadow:none; }
main.hg-site .hg-page :is(h1,h2,h3,p,a,strong,small,span,label,dt,dd) { overflow-wrap:break-word; }
main.hg-site .hg-page a { color:#0054dd; text-decoration:none; text-underline-offset:3px; }
main.hg-site .hg-page a:hover { text-decoration:underline; }
main.hg-site .hg-page img { display:block; width:100%; max-width:100%; }
main.hg-site .hg-page :is(button,input,select,textarea) { min-width:0; max-width:100%; font-family:inherit; }
main.hg-site .hg-page :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid #d99000; outline-offset:3px; }
main.hg-site .hg-page [hidden] { display:none!important; }
main.hg-site .hg-page:not([data-hg-ui-ready="true"]) :is(form,[data-hg-save],[data-hg-save-place],button[data-hg-focus],.hg-map-filters) { display:none!important; }
main.hg-site [data-hg-map-fallback] .is-muted { opacity:.22; }
main.hg-site .hg-page [id] { scroll-margin-top:100px; }
main.hg-site .hg-icon { display:block; flex:0 0 23px; width:23px; height:23px; color:var(--hg-blue); }
main.hg-site .hg-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:42px; padding:9px 14px; border:1px solid var(--hg-blue); border-radius:5px; color:#fff; background:var(--hg-blue); font-size:12px; font-weight:700; line-height:1.3; text-align:center; text-decoration:none; cursor:pointer; }
main.hg-site .hg-page a.hg-button { color:#fff; }
main.hg-site .hg-button:hover,
main.hg-site .hg-page a.hg-button:hover { border-color:#0057d2; color:#fff; background:#0057d2; text-decoration:none; }
main.hg-site :is(.hg-button-outline,.hg-button.outline,.hg-button.secondary) { border-color:#94bdf5; color:#0054dd; background:#fff; }
main.hg-site .hg-page a:is(.hg-button-outline,.hg-button.outline,.hg-button.secondary) { color:#0054dd; }
main.hg-site :is(.hg-button-outline,.hg-button.outline,.hg-button.secondary):hover,
main.hg-site .hg-page a:is(.hg-button-outline,.hg-button.outline,.hg-button.secondary):hover { border-color:#5c9eec; color:#0049c4; background:#edf5ff; }
main.hg-site .hg-button svg { flex:0 0 17px; width:17px; height:17px; }
main.hg-site .hg-note { margin-top:7px!important; color:#607a9a; font-size:11px; line-height:1.45; }
main.hg-site .hg-kicker { color:#4474a4; font-size:10px; font-weight:700; line-height:1.3; letter-spacing:.08em; text-transform:uppercase; }
main.hg-site .hg-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; margin-bottom:11px; }
main.hg-site .hg-heading h2,
main.hg-site .hg-panel > h2 { color:#0031df; font-size:24px; line-height:1.15; }
main.hg-site .hg-heading p,
main.hg-site .hg-section-copy { color:var(--hg-muted); font-size:12px; line-height:1.4; }
main.hg-site .hg-heading > a { margin-left:auto; color:#0054dd; font-size:11px; }

/* A real street map forms the full-width introduction. */
main.hg-site .hg-hero { position:relative; isolation:isolate; height:480px; min-height:480px; overflow:hidden; background:#e1f0f7; }
main.hg-site .hg-map-shell { position:relative; isolation:isolate; overflow:hidden; background:#e3f1f7; }
main.hg-site .hg-map-stage { position:absolute; z-index:0; inset:0; width:100%; height:100%; overflow:hidden; background:#e3f1f7; }
main.hg-site .hg-map-shell > :is([data-hg-map-fallback],[data-hg-map]),
main.hg-site .hg-map-stage > :is([data-hg-map-fallback],[data-hg-map]) { position:absolute; inset:0; display:block; width:100%; height:100%; margin:0; border:0; border-radius:0; }
main.hg-site [data-hg-map-fallback] > svg { display:block; width:100%; height:100%; max-width:none; }
@media (min-width:1000px) { main.hg-site .hg-map-stage [data-hg-map-fallback] { padding-left:390px; } }
@media (min-width:768px) and (max-width:999px) {
  main.hg-site .hg-hero { display:flex; flex-direction:column; height:auto; min-height:0; }
  main.hg-site .hg-intro { order:0; width:calc(100% - 40px); max-width:none; margin:20px auto; }
  main.hg-site .hg-map-stage { position:relative; order:1; inset:auto; height:370px; min-height:370px; }
}
main.hg-site [data-hg-map] { display:block; visibility:hidden; background:#e3f1f7; font-family:Arial,"Microsoft YaHei",sans-serif; }
main.hg-site [data-hg-map-mode="street-map"] > [data-hg-map],
main.hg-site .hg-map-shell[data-hg-map-mode="street-map"] [data-hg-map],
main.hg-site .hg-map-stage[data-hg-map-mode="street-map"] [data-hg-map] { visibility:visible; }
main.hg-site [data-hg-map-mode="street-map"] > [data-hg-map-fallback],
main.hg-site .hg-map-shell[data-hg-map-mode="street-map"] [data-hg-map-fallback],
main.hg-site .hg-map-stage[data-hg-map-mode="street-map"] [data-hg-map-fallback] { visibility:hidden; pointer-events:none; }
main.hg-site [data-hg-map] .leaflet-tile { max-width:none!important; max-height:none!important; }
main.hg-site [data-hg-map] .leaflet-pane svg { max-width:none!important; }
main.hg-site [data-hg-map] .leaflet-control-zoom a { color:#19496f; }
main.hg-site [data-hg-map] .leaflet-control-attribution { max-width:calc(100vw - 24px); padding:2px 5px; color:#325b79; background:#fffffff0; font-size:10px; line-height:1.35; }
main.hg-site [data-hg-map] .leaflet-control-attribution a { color:#075cb1; }
main.hg-site .hg-map-stage .leaflet-top.leaflet-left { left:auto; right:0; }
main.hg-site .hg-map-stage .leaflet-top.leaflet-left .leaflet-control { float:right; margin-right:12px; margin-left:0; }
main.hg-site .hg-intro { position:relative; z-index:600; width:345px; max-width:calc(100% - 56px); margin:26px 0 24px max(28px,calc((100vw - 1370px)/2)); padding:19px 21px 16px; border:1px solid #d1e4f2; border-radius:7px; color:var(--hg-navy); background:#f7fcfff2; box-shadow:0 5px 22px #1b5a8026; backdrop-filter:blur(4px); }
main.hg-site .hg-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:0 0 10px; padding:0; color:#4e7094; font-size:10px; line-height:1.4; list-style:none; }
main.hg-site .hg-breadcrumb a { color:#315f92; }
main.hg-site .hg-intro .hg-kicker { margin:0 0 5px; }
main.hg-site .hg-intro h1 { margin:0; color:#072367; font-size:36px; line-height:1.05; letter-spacing:-.045em; }
main.hg-site .hg-intro h1 :is(span,small) { display:block; margin-top:4px; color:#235286; font-size:21px; font-weight:600; line-height:1.2; letter-spacing:0; }
main.hg-site .hg-intro .hg-subtitle { margin:9px 0 0!important; color:#15396e; font-size:16px; font-weight:700; line-height:1.3; }
main.hg-site .hg-intro > p:not(.hg-kicker):not(.hg-subtitle) { margin:9px 0 0; color:#46668e; font-size:12px; line-height:1.5; }
main.hg-site .hg-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; }
main.hg-site .hg-intro .hg-actions { display:grid; grid-template-columns:1fr 1fr; }
main.hg-site .hg-intro .hg-actions .hg-button { width:100%; min-height:42px; gap:5px; padding:9px 6px; font-size:11px; }
main.hg-site .hg-perks { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:14px 0 0!important; padding:12px 0 0; border-top:1px solid #dce8f3; list-style:none; }
main.hg-site .hg-perks > * { display:flex; flex-direction:column; gap:4px; min-width:0; color:#41648d; font-size:9px; line-height:1.3; }
main.hg-site .hg-perks strong { color:#0068cf; font-size:12px; font-weight:700; }
main.hg-site .hg-perks svg { width:20px; height:20px; color:#0075c9; }
main.hg-site .hg-map-legend { position:absolute; z-index:650; top:17px; right:62px; display:grid; gap:7px; max-width:230px; margin:0; padding:10px 12px; border:1px solid #d4e5ef; border-radius:6px; color:#2f537f; background:#ffffffed; box-shadow:0 2px 9px #285a761a; font-size:11px; line-height:1.3; list-style:none; }
main.hg-site .hg-map-legend > :is(span,li,div) { display:flex; align-items:center; gap:7px; }
main.hg-site .hg-map-legend i { display:inline-block; flex:none; width:10px; height:10px; border:2px solid #fff; border-radius:50%; background:var(--hg-marker-color,#0068f5); box-shadow:0 0 0 1px var(--hg-marker-color,#0068f5); }
main.hg-site .hg-map-legend small { color:#5a7898; font-size:10px; }
main.hg-site :is(.hg-map-marker,.hg-map-icon) { border:0; background:transparent; }
main.hg-site .hg-map-label { width:max-content; max-width:190px; padding:5px 8px; border:1px solid #fff; border-left:3px solid var(--hg-marker-color,#0068f5); border-radius:5px; color:#173f70; background:#fffffff5; box-shadow:0 2px 7px #12445b33; font:700 11px/1.25 Arial,"Microsoft YaHei",sans-serif; text-align:center; white-space:nowrap; }
main.hg-site .hg-map-label small { display:block; margin-top:2px; color:#50718e; font-size:10px; font-weight:400; }
main.hg-site .hg-map-label a { color:inherit; }
main.hg-site .hg-map-label.is-selected { outline:2px solid #0054dd; outline-offset:2px; }
main.hg-site .hg-map-popup { color:#244a75; font:12px/1.45 Arial,"Microsoft YaHei",sans-serif; }
main.hg-site .hg-map-popup strong { color:#12366d; font-size:14px; }
main.hg-site .hg-map-popup p { margin:6px 0; }
main.hg-site .hg-map-popup a { display:inline-flex; align-items:center; min-height:30px; color:#0054dd; }

/* The planner uses the same compact blue-and-white rhythm as the area index. */
main.hg-site .hg-wrap { width:min(1370px,calc(100% - 56px)); margin:13px auto 0; }
main.hg-site .hg-facts { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin-bottom:12px; }
main.hg-site .hg-facts > * { display:flex; align-items:flex-start; gap:8px; padding:10px 11px; border:1px solid var(--hg-line); border-radius:6px; background:#f8fbff; }
main.hg-site .hg-facts svg { flex:0 0 22px; width:22px; height:22px; color:var(--hg-blue); }
main.hg-site .hg-facts :is(strong,dt) { display:block; color:#18417e; font-size:11px; font-weight:700; line-height:1.25; }
main.hg-site .hg-facts :is(span,small,dd,p) { display:block; margin:3px 0 0; color:#577599; font-size:10px; line-height:1.3; }
main.hg-site .hg-layout { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:12px; align-items:start; }
main.hg-site :is(.hg-main,.hg-sidebar) { display:flex; flex-direction:column; gap:12px; min-width:0; }
main.hg-site .hg-panel { min-width:0; padding:14px; border:1px solid var(--hg-line); border-radius:7px; background:#fff; }
main.hg-site .hg-panel > h2 { margin-bottom:10px; }
main.hg-site .hg-panel > p { color:var(--hg-muted); font-size:12px; line-height:1.45; }
main.hg-site .hg-panel > p + :is(form,div,ul,ol) { margin-top:11px; }
main.hg-site .hg-fit form { display:grid; gap:11px; }
main.hg-site .hg-fit fieldset { min-width:0; margin:0; padding:0; border:0; }
main.hg-site .hg-fit legend { margin-bottom:7px; color:#31558b; font-size:11px; font-weight:700; }
main.hg-site .hg-priorities { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
main.hg-site .hg-priorities > :is(label,button) { position:relative; display:flex; align-items:center; justify-content:center; gap:7px; min-height:52px; padding:8px 7px; border:1px solid #d6e4f7; border-radius:5px; color:#18417e; background:#fff; font-size:11px; line-height:1.25; text-align:left; cursor:pointer; }
main.hg-site .hg-priorities :is(label:has(input:checked),button[aria-pressed="true"]) { border-color:#79aef5; color:#0052d6; background:#eaf3ff; box-shadow:inset 0 0 0 1px #bed7fa; }
main.hg-site .hg-priorities input[type="checkbox"] { flex:none; width:14px; height:14px; margin:0; accent-color:var(--hg-blue); }
main.hg-site .hg-priorities svg { flex:0 0 21px; width:21px; height:21px; color:#0069f3; }
main.hg-site .hg-priorities > :nth-child(4n+2) svg { color:#9a59c8; }
main.hg-site .hg-priorities > :nth-child(4n+3) svg { color:#009c86; }
main.hg-site .hg-fit-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) auto; gap:8px; align-items:end; }
main.hg-site .hg-fit-fields label { display:grid; gap:5px; color:#31558b; font-size:11px; line-height:1.3; }
main.hg-site .hg-fit-fields select { width:100%; min-height:38px; padding:8px 26px 8px 8px; border:1px solid #cadcf5; border-radius:5px; color:#173c7a; background:#fff; font-size:12px; line-height:1.3; }
main.hg-site .hg-fit-fields .hg-button { min-height:38px; padding:8px 12px; font-size:11px; }
main.hg-site .hg-fit-result { padding:10px 12px; border:1px solid #d1e5fb; border-left:3px solid var(--hg-blue); border-radius:5px; color:#365e88; background:#f1f7ff; font-size:12px; line-height:1.5; }
main.hg-site .hg-fit-result strong { color:#12428b; }
main.hg-site .hg-fit-result p + p { margin-top:5px; }
main.hg-site .hg-three { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
main.hg-site .hg-card { min-width:0; overflow:hidden; border:1px solid #dce8f7; border-radius:6px; background:#fff; }
main.hg-site .hg-card > img,
main.hg-site .hg-card > a > img { width:100%; aspect-ratio:1.8/1; object-fit:cover; }
main.hg-site .hg-card-body { padding:11px; }
main.hg-site .hg-card:not(:has(> img)):not(:has(> a > img)) { padding:11px; }
main.hg-site .hg-card h3 { color:#1242a2; font-size:15px; line-height:1.25; }
main.hg-site .hg-card h3 small { display:block; margin-top:2px; color:#41648d; font-size:11px; font-weight:500; letter-spacing:0; }
main.hg-site .hg-card p { margin-top:6px; color:#557499; font-size:12px; line-height:1.45; }
main.hg-site .hg-card :is(ul,ol) { margin-top:7px; padding-left:16px; color:#557499; font-size:11px; line-height:1.5; }
main.hg-site .hg-card .hg-icon { margin-bottom:8px; }
main.hg-site .hg-card a:not(.hg-button) { display:inline-flex; align-items:center; min-height:30px; margin-top:5px; font-size:11px; font-weight:700; }
main.hg-site .hg-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px!important; padding:0; list-style:none; }
main.hg-site :is(.hg-tags > *, .hg-badge) { display:inline-flex; align-items:center; gap:4px; padding:4px 7px; border:1px solid #d7e6f8; border-radius:4px; color:#27619d; background:#f1f7ff; font-size:10px; line-height:1.25; }

/* Mount Blue is the featured housing anchor, with real photography. */
main.hg-site :is(.hg-feature-MountBlue,.hg-housing) { border-color:#b9d4f5; background:#f9fcff; }
main.hg-site .hg-housing-grid { display:grid; grid-template-columns:minmax(220px,.95fr) minmax(0,1.2fr); gap:15px; align-items:start; }
main.hg-site .hg-housing-grid > :is(figure,img) { width:100%; overflow:hidden; border-radius:5px; }
main.hg-site .hg-housing-grid img { width:100%; height:auto; aspect-ratio:1.4/1; object-fit:cover; border-radius:5px; }
main.hg-site .hg-housing-grid figcaption { margin-top:5px; color:#6b83a0; font-size:10px; line-height:1.35; }
main.hg-site .hg-housing-grid h3 { color:#123c8e; font-size:21px; line-height:1.2; }
main.hg-site .hg-housing-grid h3 :is(span,small) { display:block; margin-top:3px; color:#42678f; font-size:13px; font-weight:500; letter-spacing:0; }
main.hg-site .hg-housing-grid p { margin-top:8px; color:#557499; font-size:12px; line-height:1.5; }
main.hg-site .hg-housing-grid :is(ul,ol) { display:grid; gap:5px; margin-top:10px; padding-left:17px; color:#42668f; font-size:12px; line-height:1.4; }
main.hg-site .hg-housing-grid .hg-actions { margin-top:11px; }
main.hg-site .hg-housing-grid .hg-button { min-height:38px; font-size:11px; }
main.hg-site :is(.hg-callout,.hg-marker-badge) { margin-top:10px; padding:9px 11px; border:1px solid #cee4f7; border-left:3px solid #00a48d; border-radius:5px; color:#3a6088; background:#eff9fb; font-size:11px; line-height:1.45; }
main.hg-site .hg-marker-badge { display:inline-flex; align-items:center; gap:6px; margin:0 0 8px; padding:4px 7px; border-left-width:1px; color:#087d74; font-size:10px; font-weight:700; }

main.hg-site .hg-map-panel .hg-map-shell { height:420px; min-height:420px; margin-top:10px; border:1px solid #cfdfed; border-radius:6px; }
main.hg-site .hg-map-filters { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:10px; }
main.hg-site .hg-map-filters :is(button,a,label) { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:34px; padding:6px 10px; border:1px solid #cfdef3; border-radius:4px; color:#315f96; background:#fff; font-size:11px; line-height:1.3; text-decoration:none; cursor:pointer; }
main.hg-site .hg-map-filters :is(button,a,label):hover { border-color:#7daff1; background:#f4f9ff; }
main.hg-site .hg-map-filters :is([aria-pressed="true"],.is-active,label:has(input:checked)) { border-color:#78aaf1; color:#0052d6; background:#eaf3ff; }
main.hg-site .hg-map-filters svg { flex:none; width:15px; height:15px; color:#0068f5; }
main.hg-site .hg-map-filters input { width:13px; height:13px; margin:0; accent-color:var(--hg-blue); }
main.hg-site .hg-places { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:10px; }
main.hg-site .hg-places > :is(a,article,div) { min-width:0; padding:10px; border:1px solid #dce8f7; border-radius:5px; color:#3b618b; background:#fff; font-size:11px; line-height:1.4; }
main.hg-site .hg-places :is(h3,strong) { display:block; color:#16489c; font-size:13px; line-height:1.25; }
main.hg-site .hg-places p { margin-top:5px; color:#557499; font-size:11px; }
main.hg-site .hg-places a:not(:first-child) { display:inline-flex; align-items:center; min-height:30px; margin-top:4px; font-size:11px; }
main.hg-site .hg-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:10px!important; padding:0; list-style:none; counter-reset:hg-step; }
main.hg-site .hg-steps > * { position:relative; min-width:0; padding:10px; border:1px solid #dce8f7; border-radius:5px; background:#f8fbff; counter-increment:hg-step; }
main.hg-site .hg-steps > *::before { display:flex; align-items:center; justify-content:center; width:24px; height:24px; margin-bottom:8px; border-radius:50%; color:#fff; background:var(--hg-blue); font-size:11px; font-weight:700; content:counter(hg-step); }
main.hg-site .hg-steps :is(h3,strong) { display:block; color:#234d87; font-size:12px; line-height:1.3; }
main.hg-site .hg-steps p { margin-top:5px; color:#58769a; font-size:11px; line-height:1.45; }
main.hg-site .hg-steps small { display:block; margin-top:6px; color:#286ac0; font-size:10px; }
main.hg-site .hg-scenarios { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }

/* Practical checks and saved choices stay alongside the guide. */
main.hg-site .hg-sidebar .hg-panel { padding:13px; }
main.hg-site .hg-sidebar :is(.hg-heading h2,.hg-panel > h2) { color:#17438d; font-size:18px; line-height:1.2; }
main.hg-site .hg-sidebar :is(h3,strong) { color:#234b83; }
main.hg-site .hg-sidebar p { color:#58769a; font-size:11px; line-height:1.5; }
main.hg-site .hg-sidebar dl { display:grid; gap:0; }
main.hg-site .hg-sidebar dl > div { display:grid; grid-template-columns:75px minmax(0,1fr); gap:8px; padding:8px 0; border-bottom:1px solid #e5edf8; }
main.hg-site .hg-sidebar dl > div:first-child { padding-top:0; }
main.hg-site .hg-sidebar dl > div:last-child { padding-bottom:0; border-bottom:0; }
main.hg-site .hg-sidebar dt { color:#6c83a0; font-size:10px; line-height:1.4; }
main.hg-site .hg-sidebar dd { margin:0; color:#315687; font-size:11px; font-weight:600; line-height:1.4; }
main.hg-site .hg-sidebar .hg-button { width:100%; margin-top:10px; min-height:40px; font-size:11px; }
main.hg-site .hg-sidebar .hg-button[aria-pressed="true"] { border-color:#148e78; background:#148e78; color:#fff; }
main.hg-site .hg-sidebar :is(ul,ol) { display:grid; gap:7px; margin-top:8px; padding-left:16px; color:#557499; font-size:11px; line-height:1.45; }
main.hg-site .hg-side-links { padding:0!important; list-style:none; }
main.hg-site .hg-side-links li + li { border-top:1px solid #e6eef8; }
main.hg-site .hg-side-links a { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:35px; font-size:11px; }
main.hg-site .hg-side-links svg { flex:none; width:14px; height:14px; }
main.hg-site .hg-commute { display:grid; gap:9px; margin-top:8px!important; padding:0!important; list-style:none; }
main.hg-site .hg-commute > * { padding-bottom:9px; border-bottom:1px solid #e5edf8; }
main.hg-site .hg-commute > :last-child { padding-bottom:0; border-bottom:0; }
main.hg-site .hg-commute strong { display:block; font-size:12px; }
main.hg-site .hg-commute p { margin-top:3px; }
main.hg-site .hg-commute a { display:inline-flex; align-items:center; min-height:30px; font-size:11px; }
main.hg-site .hg-page details { margin-top:9px; border-top:1px solid #e2ecf8; }
main.hg-site .hg-page summary { padding:10px 0 4px; color:#315a8d; font-size:11px; font-weight:700; line-height:1.4; cursor:pointer; }
main.hg-site .hg-page details > :is(p,ul,ol,div) { margin-top:6px; color:#607a9a; font-size:11px; line-height:1.5; }
main.hg-site .hg-page details ul { padding-left:16px; }
main.hg-site .hg-page details li + li { margin-top:6px; }
main.hg-site .hg-page details a { overflow-wrap:anywhere; }

@media (min-width:1400px) {
  main.hg-site .hg-priorities { grid-template-columns:repeat(10,minmax(0,1fr)); }
  main.hg-site .hg-priorities > :is(label,button) { flex-direction:column; gap:5px; min-height:70px; padding:7px 3px; font-size:10px; text-align:center; }
  main.hg-site .hg-priorities input[type="checkbox"] { position:absolute; top:5px; right:5px; width:11px; height:11px; }
}
@media (max-width:1199px) {
  main.hg-site .hg-facts { grid-template-columns:repeat(3,minmax(0,1fr)); }
  main.hg-site .hg-layout { grid-template-columns:minmax(0,1fr) 240px; }
  main.hg-site .hg-fit-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  main.hg-site .hg-fit-fields .hg-button { grid-column:1 / -1; justify-self:start; min-width:150px; }
  main.hg-site .hg-housing-grid { grid-template-columns:minmax(180px,.9fr) minmax(0,1.1fr); gap:12px; }
  main.hg-site .hg-steps { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:999px) {
  main.hg-site .hg-wrap { width:calc(100% - 40px); }
  main.hg-site .hg-layout { grid-template-columns:minmax(0,1fr); }
  main.hg-site .hg-sidebar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  main.hg-site .hg-sidebar > :last-child:nth-child(odd) { grid-column:1 / -1; }
  main.hg-site .hg-intro { margin-left:20px; }
  main.hg-site .hg-map-legend { max-width:190px; font-size:10px; }
}
@media (max-width:767px) {
  main.hg-site .hg-hero { display:flex; flex-direction:column; height:auto; min-height:0; overflow:visible; background:#f0f7fd; }
  main.hg-site .hg-intro { order:0; flex:none; width:calc(100% - 28px); max-width:none; margin:14px auto; padding:17px 18px; }
  main.hg-site .hg-intro h1 { font-size:34px; }
  main.hg-site .hg-intro h1 :is(span,small) { display:inline-block; margin:0 0 0 9px; font-size:19px; }
  main.hg-site .hg-intro .hg-subtitle { max-width:540px; }
  main.hg-site .hg-intro > p:not(.hg-kicker):not(.hg-subtitle) { max-width:600px; }
  main.hg-site .hg-intro .hg-actions { max-width:350px; }
  main.hg-site .hg-perks { max-width:430px; }
  main.hg-site .hg-map-stage { position:relative; order:1; flex:none; inset:auto; height:330px; min-height:330px; }
  main.hg-site .hg-hero > .hg-map-legend { top:auto; right:58px; bottom:213px; max-width:210px; }
  main.hg-site .hg-map-stage .hg-map-legend { right:58px; }
  main.hg-site .hg-wrap { width:calc(100% - 28px); margin-top:12px; }
  main.hg-site .hg-facts { gap:6px; }
  main.hg-site .hg-facts > * { gap:6px; padding:9px; }
  main.hg-site .hg-facts svg { flex-basis:19px; width:19px; height:19px; }
  main.hg-site .hg-panel { padding:12px; }
  main.hg-site .hg-heading h2,
  main.hg-site .hg-panel > h2 { font-size:22px; }
  main.hg-site .hg-heading p { flex-basis:100%; }
  main.hg-site .hg-priorities > :is(label,button) { flex-direction:column; gap:5px; min-height:70px; padding:7px 4px; font-size:10px; text-align:center; }
  main.hg-site .hg-priorities input[type="checkbox"] { position:absolute; top:5px; right:5px; width:11px; height:11px; }
  main.hg-site .hg-housing-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  main.hg-site .hg-housing-grid img { aspect-ratio:1/1; }
  main.hg-site .hg-housing-grid h3 { font-size:19px; }
  main.hg-site .hg-housing-grid .hg-actions { display:grid; }
  main.hg-site .hg-map-panel .hg-map-shell { height:420px; min-height:420px; }
  main.hg-site .hg-map-label { max-width:160px; padding:4px 6px; font-size:10px; }
}
@media (max-width:539px) {
  main.hg-site .hg-intro { padding:16px; }
  main.hg-site .hg-intro h1 { font-size:32px; }
  main.hg-site .hg-intro h1 :is(span,small) { display:block; margin:4px 0 0; font-size:18px; }
  main.hg-site .hg-intro .hg-subtitle { font-size:15px; }
  main.hg-site .hg-hero > .hg-map-legend,
  main.hg-site .hg-map-stage .hg-map-legend { right:55px; max-width:200px; padding:8px 10px; }
  main.hg-site .hg-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  main.hg-site .hg-facts > * { min-height:57px; }
  main.hg-site .hg-priorities { grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; }
  main.hg-site .hg-priorities > :is(label,button) { min-height:76px; font-size:9px; }
  main.hg-site .hg-fit-fields { gap:8px; }
  main.hg-site .hg-fit-fields select { min-height:42px; padding-left:7px; font-size:12px; }
  main.hg-site .hg-fit-fields .hg-button { width:100%; min-height:42px; }
  main.hg-site :is(.hg-three,.hg-scenarios,.hg-places) { grid-template-columns:minmax(0,1fr); gap:8px; }
  main.hg-site .hg-card { padding:12px; }
  main.hg-site .hg-card:has(> img),
  main.hg-site .hg-card:has(> a > img) { padding:0; }
  main.hg-site .hg-card .hg-icon { margin-bottom:7px; }
  main.hg-site .hg-card h3 { font-size:15px; }
  main.hg-site .hg-housing-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  main.hg-site .hg-housing-grid img { aspect-ratio:1.7/1; }
  main.hg-site .hg-housing-grid .hg-actions { grid-template-columns:1fr 1fr; }
  main.hg-site .hg-map-filters { gap:5px; }
  main.hg-site .hg-map-filters :is(button,a,label) { flex:1 1 auto; min-height:38px; padding:7px 8px; font-size:10px; }
  main.hg-site .hg-steps { grid-template-columns:minmax(0,1fr); gap:7px; }
  main.hg-site .hg-steps > * { display:grid; grid-template-columns:26px minmax(0,1fr); gap:0 9px; padding:10px; }
  main.hg-site .hg-steps > *::before { grid-column:1; grid-row:1 / 4; margin:0; }
  main.hg-site .hg-steps > * > * { grid-column:2; }
  main.hg-site .hg-steps p { margin-top:3px; }
  main.hg-site .hg-sidebar { display:flex; }
  main.hg-site .hg-sidebar .hg-panel { padding:12px; }
  main.hg-site .hg-sidebar dl > div { grid-template-columns:90px minmax(0,1fr); }
  main.hg-site .hg-sidebar :is(p,dd,.hg-side-links a) { font-size:12px; }
  main.hg-site .hg-sidebar .hg-commute p { font-size:11px; }
}
@media (max-width:359px) {
  main.hg-site .hg-wrap { width:calc(100% - 20px); }
  main.hg-site .hg-intro { width:calc(100% - 20px); padding:14px; }
  main.hg-site .hg-intro h1 { font-size:30px; }
  main.hg-site .hg-intro .hg-actions .hg-button { gap:4px; font-size:10px; }
  main.hg-site .hg-perks { gap:5px; }
  main.hg-site .hg-perks strong { font-size:11px; }
  main.hg-site .hg-facts > * { padding:8px; }
  main.hg-site .hg-facts :is(strong,dt) { font-size:10px; }
  main.hg-site .hg-panel { padding:10px; }
  main.hg-site .hg-heading h2,
  main.hg-site .hg-panel > h2 { font-size:21px; }
  main.hg-site .hg-priorities { gap:4px; }
  main.hg-site .hg-priorities > :is(label,button) { min-height:78px; padding:7px 2px; font-size:9px; }
  main.hg-site .hg-priorities svg { flex-basis:19px; width:19px; height:19px; }
  main.hg-site .hg-housing-grid .hg-actions { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) {
  main.hg-site .hg-page *,
  main.hg-site .hg-page *::before,
  main.hg-site .hg-page *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
@media (forced-colors:active) {
  main.hg-site :is(.hg-intro,.hg-map-legend,.hg-map-label,.hg-panel,.hg-card,.hg-facts > *,.hg-fit-result) { border-color:CanvasText; color:CanvasText; background:Canvas; }
  main.hg-site .hg-priorities :is(label:has(input:checked),button[aria-pressed="true"]),
  main.hg-site .hg-map-filters :is([aria-pressed="true"],.is-active) { color:HighlightText; background:Highlight; }
}
@media print {
  main.hg-site .hg-hero { height:auto; min-height:0; overflow:visible; background:#fff; }
  main.hg-site .hg-intro { width:100%; max-width:none; margin:0; padding:12px 0; border:0; background:#fff; box-shadow:none; }
  main.hg-site :is(.hg-map-stage,.hg-map-legend,.hg-actions,.hg-fit form,.hg-map-filters,.hg-map-panel .hg-map-shell,.hg-sidebar .hg-button) { display:none!important; }
  main.hg-site .hg-wrap { width:100%; margin-top:12px; }
  main.hg-site .hg-layout { grid-template-columns:minmax(0,1fr); }
  main.hg-site .hg-panel { break-inside:avoid; }
  main.hg-site .hg-sidebar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
