.contact-map{display:grid;grid-template-columns:minmax(270px,.85fr) minmax(0,1.65fr);border:1px solid var(--line);margin-top:64px;background:var(--paper);align-items:stretch}.contact-map-info{padding:clamp(28px,3.5vw,55px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.contact-map-info .eyebrow{font-size:11px;letter-spacing:.18em;color:var(--accent);margin-bottom:20px}.contact-map h2{font-size:clamp(30px,3.2vw,44px);color:#113163;margin-bottom:25px}.contact-map address{font-style:normal;line-height:1.85;font-size:14px;margin-bottom:28px}.contact-map address p{margin:0}.contact-map-address-cn{margin-top:12px!important;font-size:13px}.contact-map-info .button{white-space:normal;text-align:left;gap:18px;background:transparent;padding-inline:20px}.contact-map-info .button:hover{background:var(--accent);color:#fff}.contact-map-info .contact-map-note{font-size:11px;line-height:1.8;margin-top:20px}.contact-map-frame{min-width:0;min-height:480px;background:#e6edf6}
@media(max-width:900px){.contact-map{grid-template-columns:1fr}.contact-map-info{padding:32px}.contact-map h2{max-width:600px}.contact-map-frame{min-height:370px}}
@media(max-width:480px){.contact-map{margin-top:40px}.contact-map-info{padding:26px}.contact-map h2{font-size:32px}.contact-map address{font-size:13px}.contact-map-frame{min-height:320px}}

.contact-map-frame{position:relative;overflow:hidden}.contact-map-preview{display:block;position:absolute;inset:0;background:#e6edf6}.contact-map-preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.contact-map-preview:hover img{filter:saturate(1.1)}.contact-map-place{position:absolute;top:18px;left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 16px;width:max-content;max-width:calc(100% - 36px);background:#fff;color:#113163;box-shadow:0 2px 10px #1131631a;font-size:13px}.contact-map-attribution{position:absolute;right:0;bottom:0;background:#ffffffed;color:#273f55;padding:3px 8px;font-size:10px;line-height:1.6}.contact-map-attribution a{text-decoration:underline}

/* Follow module shares the same social profiles and inline icons as the header/footer. */
.contact-follow{display:grid;grid-template-columns:minmax(270px,.85fr) minmax(0,1.65fr);gap:clamp(32px,4vw,64px);align-items:start;margin-top:64px;padding-block:40px;border-block:1px solid var(--line)}
.contact-follow-intro .eyebrow{font-size:11px;letter-spacing:.18em;color:var(--accent);margin-bottom:16px}
.contact-follow-intro h2{font-size:clamp(30px,3.2vw,44px);color:#113163;margin-bottom:20px}
.contact-follow-intro>p:last-child{max-width:360px;font-size:14px;line-height:1.85}
.social-links.contact-social-links{display:flex;flex-direction:column;align-items:stretch;gap:0;min-width:0}
.contact-social-links>a{display:flex;align-items:center;justify-content:flex-start;gap:24px;width:100%;height:auto;min-height:88px;padding:20px 12px;border-bottom:1px solid var(--line);color:#113163}
.contact-social-links>a:first-child{border-top:1px solid var(--line)}
.contact-social-links svg{width:26px;height:26px;color:var(--accent)}
.contact-social-label{flex:1;min-width:0}.contact-social-label strong{display:block;font-size:20px;font-weight:600;line-height:1.4}.contact-social-label small{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.6}
.contact-social-arrow{font-size:24px;color:var(--accent)}
.contact-social-links>a:hover{background:var(--paper);color:var(--accent)}
@media(max-width:900px){.contact-follow{grid-template-columns:1fr;gap:28px}.contact-follow-intro>p:last-child{max-width:600px}.contact-follow-intro h2 br{display:none}}
@media(max-width:480px){.contact-follow{margin-top:40px;padding-block:28px}.contact-follow-intro h2{font-size:32px}.contact-social-links>a{gap:18px;padding-inline:8px;min-height:84px}.contact-social-label strong{font-size:18px}}
