/* 信息卡片与地图独立分区，避免绝对定位造成遮挡。 */
.contact-location{background:radial-gradient(ellipse at 10% 15%,#def5ff85,transparent 50%),radial-gradient(ellipse at 90% 70%,#edeaff8a,transparent 50%),#f7fbff}
.contact-location .location-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;min-height:0;padding:28px;border:1px solid #d7e8f3;border-radius:28px;isolation:isolate;background:linear-gradient(110deg,#edf8fff0,#f4f6ffed),url('digital-collaboration.webp') center/cover;overflow:hidden}
.contact-location .location-layout:before{content:'';position:absolute;inset:-40%;z-index:-1;background:radial-gradient(ellipse at 35% 40%,#80d8f72e,transparent 40%),radial-gradient(ellipse at 70% 60%,#b1a5ff25,transparent 38%);animation:location-atmosphere 18s ease-in-out infinite alternate;pointer-events:none}
@keyframes location-atmosphere{to{translate:4% 3%;rotate:7deg}}
.contact-location .location-details,.contact-location .campus-details{position:relative;top:auto;right:auto;left:auto;width:100%;min-height:0;margin:0;padding:30px;border:1px solid #dfebf3;border-radius:22px;background:#fff;box-shadow:0 8px 25px #2c64800a;backdrop-filter:none;align-self:stretch;z-index:1}
.contact-location .location-details{grid-column:1;grid-row:1;justify-content:flex-start}
.contact-location .campus-details{grid-column:2;grid-row:1;background:linear-gradient(140deg,#fff,#f4faff)}
.contact-location .location-details h3,.contact-location .campus-details h3{font-size:30px;line-height:1.4;margin:14px 0 16px}
.contact-location .remote-modes{gap:18px;margin:24px 0;padding-top:22px}.contact-location .remote-modes p{line-height:1.9}
.contact-location .location-layout>.district-map{position:relative;inset:auto;grid-column:1/-1;grid-row:2;min-height:0;height:195px;border:1px solid #d4e7f0;border-radius:18px;z-index:0;overflow:hidden;background:linear-gradient(115deg,#e7f6fa,#eaf2ff)}
.contact-location .district-map .district-art{position:absolute;left:0;right:auto;top:0;width:100%;height:100%;max-width:none;opacity:.19;pointer-events:none}
.contact-location .district-map .district-art text,.contact-location .district-map .map-pin{display:none}
.location-map-labels{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;font-size:13px;color:#3b657f}
.location-map-labels>span{font-weight:600}.location-map-labels>div{display:flex;flex-wrap:wrap;gap:10px}.location-map-labels>div>span{padding:5px 12px;border:1px solid #d4e8f1;border-radius:20px;background:#ffffffe8;font-size:12px;color:#5c7a90}
.location-flow{position:absolute;inset:38px 0 0;width:100%;height:155px;pointer-events:none;overflow:visible}.location-flow path{fill:none;stroke:#60bddd;stroke-width:1.4;opacity:.35}.location-flow path:nth-child(2){stroke:#9a9be0;opacity:.25}.location-flow path.location-flow-signal{stroke:#32aacf;stroke-width:2.5;stroke-dasharray:10 15;opacity:.8;animation:location-flow 9s linear infinite}
@keyframes location-flow{to{stroke-dashoffset:-300}}
.contact-location .district-caption{padding-top:16px;line-height:1.8}
@media(max-width:1100px){.contact-location .location-layout{gap:18px;padding:22px}.contact-location .location-details,.contact-location .campus-details{padding:24px}.contact-location .remote-modes{grid-template-columns:1fr}}
@media(max-width:820px){.contact-location .location-layout{grid-template-columns:1fr;padding:18px}.contact-location .location-details{grid-column:1;grid-row:1}.contact-location .campus-details{grid-column:1;grid-row:2}.contact-location .location-layout>.district-map{grid-column:1;grid-row:3;height:200px}.contact-location .remote-modes{grid-template-columns:1fr 1fr}.location-map-labels{align-items:flex-start;flex-direction:column;padding:18px;gap:10px}.location-flow{top:65px;height:130px}}
@media(max-width:480px){.contact-location .location-layout{padding:12px;gap:14px;border-radius:22px}.contact-location .location-details,.contact-location .campus-details{padding:23px;border-radius:17px}.contact-location .remote-modes{grid-template-columns:1fr}.contact-location .location-details h3,.contact-location .campus-details h3{font-size:27px}.location-map-labels{font-size:12px}.location-map-labels>div{gap:6px}.location-map-labels>div>span{font-size:11px;padding:4px 9px}}
@media(prefers-reduced-motion:reduce){.contact-location .location-layout:before,.location-flow path.location-flow-signal{animation:none}}
/* V3.3 园区空间示意：道路、建筑、绿地与真实沿路动线。 */
.contact-location .location-layout>.terrain-map{height:auto;min-height:0;display:block;background:#f5f9fa;border:1px solid #d4e4ed;overflow:hidden}.terrain-heading{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;gap:16px;background:#ffffffeb;border-bottom:1px solid #dfebf0}.terrain-heading>div{display:flex;align-items:center;gap:16px}.terrain-heading span{font-size:12px;color:#6b8797}.terrain-heading b{font-size:16px;color:#244d65}.terrain-heading .terrain-note{font-size:11px;color:#718998}.terrain-viewport{overflow:hidden}.terrain-svg{width:100%;height:auto;display:block;min-height:250px;background:#edf3f2}.terrain-route-under{fill:none;stroke:#9fdded;stroke-width:8;stroke-linejoin:round;opacity:.5}.terrain-route{fill:none;stroke:#258fb8;stroke-width:2.7;stroke-linejoin:round;stroke-dasharray:8 10;animation:terrain-travel 5s linear infinite}.terrain-pulse{transform-box:fill-box;transform-origin:center;animation:terrain-pulse 3s ease-out infinite}@keyframes terrain-travel{to{stroke-dashoffset:-180}}@keyframes terrain-pulse{0%{scale:.8;opacity:.8}100%{scale:1.7;opacity:0}}.terrain-legend{display:flex;align-items:center;gap:22px;padding:13px 24px;background:#ffffffde;font-size:11px;color:#658191}.terrain-legend>span{display:flex;align-items:center;gap:7px;white-space:nowrap}.terrain-legend i{display:block;width:11px;height:9px;border-radius:2px}.legend-building{background:#ccdce5;border:1px solid #a9c2d0}.legend-park{background:#bddccd}.legend-route{height:2px!important;background:#258fb8}.terrain-legend small{margin-left:auto;font-size:11px;color:#7b919e}
@media(max-width:820px){.terrain-heading{align-items:flex-start;flex-direction:column;gap:6px;padding:16px}.terrain-heading>div{align-items:flex-start;flex-direction:column;gap:5px}.terrain-svg{width:900px;max-width:none;height:300px;min-height:0;transform:none}.terrain-viewport{height:300px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.terrain-legend{padding:12px 16px;gap:12px;flex-wrap:wrap}.terrain-legend small{width:100%;margin-left:0}.terrain-heading b{font-size:15px}}
@media(min-width:481px) and (max-width:820px){.terrain-svg{width:100%;height:auto;min-height:220px;transform:none}.terrain-viewport{height:auto}}
@media(prefers-reduced-motion:reduce){.terrain-route,.terrain-pulse{animation:none}}

