/* One coordinate plane for full and pocket maps; only the basemap scales. */
.map-place-profile[data-map-profile-id="jiayu-home"] .map-profile-overview-heading,
.map-place-profile[data-map-profile-id="jiayu-home"] .map-profile-tabs { display: none; }
.sancheng-bridges { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.sancheng-mini-world { display:block; position:absolute; width:100%; aspect-ratio:5/4; top:50%; left:0; transform:translateY(-50%); overflow:hidden; }
.sancheng-mini-world > img { display:block; position:absolute; width:100%; height:100%; left:0; top:0; max-width:none; }
.sancheng-mini-pin { position:absolute; width:4%; aspect-ratio:1; border-radius:50% 50% 50% 0; border:.6px solid white; background:#db3628; transform:translate(-50%,-100%) rotate(-45deg); }
.map-app-bar { grid-template-columns:230px minmax(260px,660px); background:#fafafa; }
.map-workspace { grid-template-columns:320px minmax(0,1fr); }
.map-results-panel { border-color:#d5d7d9; box-shadow:1px 0 4px #00000012; }
.map-panel-heading { padding:17px 20px; border-bottom:1px solid #e3e5e7; color:#3c4043; font-size:16px; font-weight:600; }
.map-search-status { border:0; padding:18px 20px; color:#5f6368; font-size:14px; }
.map-search-form { position:relative; }
.map-search-suggestions { position:absolute; top:100%; left:0; right:0; z-index:20; max-height:min(360px,50dvh); overflow-y:auto; overscroll-behavior:contain; border:1px solid #b8c4d0; border-top:0; border-radius:0 0 4px 4px; background:#fff; box-shadow:0 5px 12px #0003; text-align:left; }
.map-search-suggestions[hidden] { display:none; }
.map-search-form .map-search-option { display:block; width:100%; height:auto; padding:11px 13px; min-height:44px; border:0; border-radius:0; background:#fff; box-shadow:none; text-shadow:none; text-align:left; cursor:pointer; color:#263849; font:400 16px/1.4 Arial,"Microsoft JhengHei",sans-serif; white-space:normal; overflow-wrap:anywhere; }
.map-search-option + .map-search-option { border-top:1px solid #edf0f3; }
.map-search-form .map-search-option:hover,.map-search-form .map-search-option[aria-selected="true"],.map-search-form .map-search-option:focus-visible { background:#e7f0fb; }
.map-search-option b { display:block; font-weight:400; }
.map-search-option small { display:block; margin-top:3px; color:#637587; font-size:12px; }
.map-search-empty { padding:14px; color:#637587; font:400 14px/1.5 Arial,"Microsoft JhengHei",sans-serif; }
.map-results-panel > small { padding:16px 20px; font-size:12px; line-height:1.7; }
.map-selected-place { margin:8px 4px; padding:16px; border:0; background:white; box-shadow:none; }
.map-selected-place small { margin-top:7px; font-size:13px; line-height:1.6; }
.map-selected-place b { color:#202124; font-size:17px; }
.map-viewer { background:#f0f1f2; }
.map-tile-layer { inset:auto; left:50%; top:50%; }
.map-tile-layer > img { position:absolute; width:300%; height:300%; left:-100%; top:-100%; object-fit:fill; }
.map-viewer:not(.is-dragging) .map-tile-layer { transition:none; }
.map-marker-layer { position:absolute; inset:0; pointer-events:none; }
.map-destination-marker { display:block; width:32px; height:44px; min-width:0; transform:translate(-50%,-100%); transform-origin:50% 100%; filter:none; pointer-events:none; cursor:pointer; }
.map-destination-pin > path:first-child,.map-destination-pin > circle { pointer-events:visiblePainted; }
.map-destination-marker b,.map-destination-pin .pin-glint { pointer-events:none; }
.map-destination-pin { display:block; width:32px; height:44px; border:0; border-radius:0; background:transparent; box-shadow:none; transform:none; overflow:visible; filter:drop-shadow(0 1px 1px #0004); }
.map-destination-pin > path:first-child { fill:#df3527; stroke:#b42b21; stroke-width:1; }
.map-destination-pin .pin-glint { fill:none; stroke:#ff847a; stroke-width:1; opacity:.8; }
.map-destination-pin circle { fill:white; stroke:#b42b21; stroke-width:.5; }
.map-destination-marker.is-selected .map-destination-pin { background:transparent; box-shadow:none; }
.map-destination-marker.is-selected .map-destination-pin > path:first-child { fill:#3076ce; stroke:#1f579e; }
.map-destination-marker.is-selected .pin-glint { stroke:#9cc6fb; }
.map-destination-marker.is-selected circle { stroke:#1f579e; }
.map-destination-marker b { position:absolute; top:46px; left:50%; transform:translateX(-50%); margin:0; padding:0; color:#3c4043; border:0; border-radius:0; background:transparent; box-shadow:none; font:500 13px/1.4 Arial,"Microsoft JhengHei",sans-serif; text-shadow:0 1px 2px white,1px 0 2px white,-1px 0 2px white,0 -1px 2px white; }
.map-destination-marker.is-selected b { color:#174ea6; border:0; background:transparent; font-weight:700; }
.map-destination-marker:hover { filter:none; z-index:7; }
.map-destination-marker:focus-visible { z-index:8; outline:2px solid #276dc5; outline-offset:3px; filter:none; }
.map-destination-marker.is-label-hidden b { visibility:hidden; }
.map-destination-marker.is-label-hidden:is(:hover,:focus-visible) b { visibility:visible; }
.map-context-label { position:absolute; transform:translate(-50%,-50%); color:#80868b; font:14px/1.4 Arial,"Microsoft JhengHei",sans-serif; letter-spacing:.12em; white-space:nowrap; text-shadow:0 1px 2px #fff9; }
.map-context-label.is-park { color:#4b8050; font-size:14px; }
.map-context-label.is-water { color:#547a9b; font-size:14px; letter-spacing:.25em; writing-mode:vertical-rl; }
.map-context-label.is-road { color:#697c8a; font-size:12px; letter-spacing:.03em; text-shadow:0 1px 2px #fff,1px 0 2px #fff; }
.map-place-profile { margin:0; padding:0; color:#30363b; }
.map-place-profile .map-profile-title { display:block; padding:18px 20px 12px; }
.map-profile-title h2 { margin:0 0 9px; font:500 22px/1.4 Arial,"Microsoft JhengHei",sans-serif; }
.map-profile-overview-heading > p { margin:7px 0 0; color:#61717d; font-size:13px; line-height:1.6; }
.map-rating-line { display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:13px; }
.map-rating-line strong { font-weight:400; font-size:14px; }
.map-rating-line button,.map-profile-tabs button { color:#007c91; font-family:inherit; cursor:pointer; box-shadow:none; border-radius:0; }
.map-rating-line button { padding:4px; border:0; background:transparent; font-size:13px; }
.map-rating-stars { position:relative; display:inline-block; flex-shrink:0; width:auto; height:20px; overflow:hidden; font:17px/20px Arial,sans-serif; letter-spacing:0; color:#dadce0; white-space:nowrap; vertical-align:middle; }
.map-rating-stars > i { position:absolute; inset:0 auto 0 0; display:block; font-style:normal; overflow:hidden; color:#fbbc04; }
.map-profile-tabs { display:flex; justify-content:space-around; border-bottom:1px solid #dfe3e6; }
.map-profile-tabs button { padding:12px 16px; font-size:14px; border:0; border-bottom:2px solid transparent; background:transparent; min-height:44px; }
.map-profile-tabs button[aria-selected="true"] { border-bottom-color:#00869b; font-weight:600; }
.map-profile-tabs button:hover { background:#eef8fa; }
.map-profile-tabs button:focus-visible,.map-rating-line button:focus-visible { outline:2px solid #00869b; outline-offset:-3px; }
.map-place-profile [hidden] { display:none !important; }
.map-place-overview { padding:16px 20px; border-bottom:1px solid #e1e5e8; scroll-margin-top:8px; }
.map-place-profile .map-depart-button { display:flex; align-items:center; justify-content:center; gap:8px; margin:0 0 16px; padding:10px 22px; width:auto; border:0; border-radius:24px; color:white; background:#00869b; font-size:14px; box-shadow:none; }
.map-place-profile .map-depart-button:hover { background:#006e80; }
.map-place-profile .map-depart-button i { display:block; margin:0; width:14px; height:17px; border:0; background:currentColor; clip-path:polygon(50% 0,100% 100%,50% 76%,0 100%); transform:none; }
.map-place-description { margin:0 0 15px; font-size:14px; line-height:1.7; color:#46545e; }
.map-place-description:empty { display:none; }
.map-address { display:flex; gap:12px; align-items:flex-start; }
.map-address svg { flex:0 0 21px; width:21px; height:23px; fill:none; stroke:#00869b; stroke-width:1.8; }
.map-address address { font-style:normal; font-size:14px; line-height:1.65; overflow-wrap:anywhere; }
.map-place-reviews { padding:18px 20px 20px; scroll-margin-top:10px; }
.map-place-reviews h3 { margin:0 0 18px; font-size:16px; font-weight:500; }
.map-review-summary { display:flex; gap:16px; align-items:center; margin-bottom:16px; }
.map-review-bars { flex:1; min-width:0; }
.map-review-bars > div { display:flex; gap:8px; align-items:center; height:18px; color:#657681; font-size:12px; }
.map-review-bars > div > i { display:block; flex:1; height:7px; border-radius:8px; background:#eef0f2; overflow:hidden; }
.map-review-bars em { display:block; height:100%; border-radius:8px; background:#fbbc04; }
.map-review-score { display:flex; flex:0 0 85px; flex-direction:column; align-items:center; }
.map-review-score > strong { font:400 38px/1.2 Arial,sans-serif; color:#28353f; }
.map-review-score > span:last-child { margin-top:4px; color:#00869b; font-size:12px; }
.map-review { padding:16px 0; border-top:1px solid #ebedef; }
.map-review > header { display:flex; gap:10px; align-items:center; margin-bottom:8px; font-size:14px; }
.map-review-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.map-review-time { color:#70757a; font:400 13px/1.4 Arial,"Microsoft JhengHei",sans-serif; white-space:nowrap; }
.map-review-avatar { display:grid; place-items:center; flex:0 0 30px; height:30px; border-radius:50%; background:#61969b; color:white; font-size:14px; }
.map-review-avatar.avatar-1 { background:#a18265; }
.map-review-avatar.avatar-2 { background:#788cab; }
.map-review-avatar.avatar-3 { background:#7e9a71; }
.map-review > p { margin:7px 0 0; color:#39444c; font-size:14px; line-height:1.75; }
.map-place-profile .map-private-place { font-size:13px; color:#61717d; }
.map-viewer.is-compact .map-context-label { visibility:hidden; }
.map-viewer.is-compact .map-context-label.is-water { visibility:visible; }
.map-scale { bottom:56px; left:auto; right:8px; padding:5px 7px 3px; color:#4e555b; background:#ffffffdb; pointer-events:none; }
.map-scale i { display:block; width:80px; height:5px; border:1px solid #59636a; border-top:0; }
.map-scale span { display:block; margin-top:2px; padding:0; color:#4e555b; border:0; background:transparent; font-size:11px; }
.map-zoom-control { top:14px; left:14px; width:34px; border:1px solid #dadce0; border-radius:3px; overflow:hidden; box-shadow:0 1px 5px #0003; }
.map-zoom-control button { width:32px; height:34px; background:#fff; border-color:#e5e5e5; }
.map-zoom-control button:hover { background:#f1f3f4; }
@media(max-width:760px) {
 .map-app-bar { grid-template-columns:126px minmax(0,1fr); }
 .map-workspace { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr) auto; }
 .map-viewer { position:relative; inset:auto; grid-row:1; min-height:220px; }
 .map-results-panel { position:relative; inset:auto; grid-row:2; max-height:230px; border:0; border-top:1px solid #dadce0; padding:0; overflow:auto; }
 .map-panel-heading { display:none; }
 .map-search-status { padding:12px 16px 4px; min-height:0; }
 .map-results-panel > small { padding:7px 16px 10px; }
 .map-selected-place { margin:0; padding:8px 6px 0; }
 .map-selected-place b { font-size:15px; }
 .map-destination-list { padding:0 10px; }
 .map-selected-place small { margin-top:2px; font-size:12px; }
 .map-place-profile { padding:0; }
 .map-place-profile .map-profile-title { padding:12px 16px 9px; }
 .map-profile-title h2 { font-size:19px; }
 .map-place-overview,.map-place-reviews { padding:14px 16px; }
 .map-zoom-control { left:8px; top:8px; }
 .screen.map-mode ~ .restart-corner { bottom:8px; right:8px; }
}
@media(max-width:760px) and (max-height:520px) {
 .map-workspace { grid-template-columns:190px minmax(0,1fr); grid-template-rows:minmax(0,1fr); }
 .map-results-panel { grid-row:1; grid-column:1; max-height:none; border-top:0; border-right:1px solid #dadce0; }
 .map-viewer { grid-row:1; grid-column:2; min-height:0; }
}
@media(max-width:430px) { .map-search-form { grid-template-columns:minmax(0,1fr) 72px; } .map-search-form button { padding:0 6px; white-space:nowrap; } }
