.inner-page .inner-content.contact-page-content { isolation: isolate; overflow: hidden; background-color: #f1f3f2; }
.contact-page-content::before, .contact-page-content::after { content: ""; position: absolute; pointer-events: none; z-index: 0; }
.contact-page-content::before { inset: -32px; background: url('/images/portfolio-light-texture.png') center / cover no-repeat; opacity: .22; animation: contact-surface-drift 30s ease-in-out infinite alternate; animation-play-state: paused; }
.contact-page-content::after { inset: -30% -45%; background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .56) 49%, transparent 63%); animation: contact-surface-light 24s ease-in-out infinite alternate; animation-play-state: paused; }
.contact-page-content.contact-surface-active::before, .contact-page-content.contact-surface-active::after { animation-play-state: running; }
.contact-page-content > .contact-location { position: relative; z-index: 1; }
@keyframes contact-surface-drift { from { transform: translate3d(-12px, -8px, 0); } to { transform: translate3d(12px, 8px, 0); } }
@keyframes contact-surface-light { from { transform: translate3d(-16%, 0, 0); opacity: .35; } to { transform: translate3d(16%, 0, 0); opacity: .7; } }
.contact-layout.contact-location { grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: 72px; align-items: center; overflow: hidden; }
.contact-location .contact-location-info { border-top: 0; }
.contact-location .contact-location-info > div { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 26px 0; }
.contact-location .contact-location-info > div:first-child { padding-top: 0; }
.contact-location dt { color: #718076; font-size: 14px; }
.contact-location dd { color: #244d38; font-size: 22px; line-height: 1.7; overflow-wrap: anywhere; }
.contact-location dd a { display: block; width: fit-content; max-width: 100%; color: inherit; }
.contact-location dd a:hover { color: #37875c; }
.contact-location dd a:focus-visible { outline: 2px solid #276448; outline-offset: 4px; }
.contact-value + .contact-value { margin-top: 12px; }
.contact-value small { display: block; color: #718076; font-size: 13px; }
.contact-location .contact-location-info .contact-value { display: block; padding: 0; border: 0; }
[data-contact-group][hidden], [data-contact-wechat][hidden], [data-footer-wechat][hidden] { display: none !important; }
body[data-contact-preview] { pointer-events: none; }
body[data-contact-preview] .contact-reveal-ready .contact-location-info, body[data-contact-preview] .contact-reveal-ready .contact-location-map { opacity: 1; transform: none; transition: none; }
.contact-location .contact-wechat { border-bottom: 0; padding-bottom: 0; }
.contact-wechat img { display: block; width: 160px; height: 160px; object-fit: contain; background: #fff; box-shadow: 0 8px 18px -12px rgba(30, 53, 40, .3); }
.contact-location-map { margin: 0; min-width: 0; }
.contact-location-map svg { display: block; width: 100%; aspect-ratio: 680 / 520; overflow: visible; }
.contact-location-map figcaption { display: flex; align-items: center; justify-content: center; gap: 10px; color: #597264; font-size: 14px; }
.contact-map-key { width: 9px; height: 9px; border-radius: 50%; background: #276448; }
.contact-map-province { fill: #b7cbc0; stroke: #f5f8f6; stroke-width: 1; vector-effect: non-scaling-stroke; }
.contact-map-province.is-henan { fill: #357550; stroke: #1f563b; stroke-width: 1.4; }
.contact-map-pin-ring { fill: #fff; stroke: #276448; stroke-width: 1.5; }
.contact-map-pin { fill: #276448; }
.contact-map-leader { fill: none; stroke: #276448; stroke-width: 1.5; }
.contact-map-label { fill: #244d38; font-family: "Microsoft YaHei", sans-serif; font-size: 18px; font-weight: 700; }
.contact-map-label-sub { fill: #6e8175; font-family: "Microsoft YaHei", sans-serif; font-size: 12px; }
.contact-reveal-ready .contact-location-info { opacity: 0; transform: translate3d(64px, 0, 0); }
.contact-reveal-ready .contact-location-map { opacity: 0; transform: translate3d(-64px, 0, 0); }
.contact-reveal-ready .contact-location-info, .contact-reveal-ready .contact-location-map { transition: opacity 0s ease, transform 0s ease; }
.contact-reveal-ready.contact-reveal-visible .contact-location-info, .contact-reveal-ready.contact-reveal-visible .contact-location-map { opacity: 1; transform: none; transition-duration: 1.4s; transition-timing-function: cubic-bezier(.16, .72, .2, 1); }
@media (max-width: 900px) {
    .contact-layout.contact-location { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .contact-location dd { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .contact-page-content::before, .contact-page-content::after { animation: none; transform: none; }
    .contact-reveal-ready .contact-location-info, .contact-reveal-ready .contact-location-map { opacity: 1; transform: none; transition: none; }
}

