/* Contact motion: decorative depth without moving form controls. */
.page-contact .quick-action-icon,.page-contact .contact-method-icon{position:relative;box-shadow:0 9px 0 color-mix(in srgb,var(--primary) 15%,transparent),0 18px 28px #10264018;animation:contact-icon-float 5s ease-in-out infinite;transform-style:preserve-3d}
.page-contact .quick-action-card:nth-child(2) .quick-action-icon,.page-contact .contact-method:nth-child(2) .contact-method-icon{animation-delay:-1.7s}
.page-contact .quick-action-card:nth-child(3) .quick-action-icon,.page-contact .contact-method:nth-child(3) .contact-method-icon{animation-delay:-3.3s}
.page-contact .response-banner svg{animation:contact-clock 8s ease-in-out infinite}
.page-contact .contact-form-header{position:relative;isolation:isolate;overflow:hidden}
.page-contact .contact-form-header::before{content:'';position:absolute;z-index:-1;width:180px;height:180px;right:-75px;top:-65px;border:1px solid #ffffff35;border-radius:28px;box-shadow:0 0 0 25px #ffffff06,0 0 0 50px #ffffff04;animation:contact-header 16s linear infinite}
.page-contact .map-section{padding:70px 0;background:var(--bg-secondary)}
.page-contact .map-container{height:auto;min-height:440px;max-width:1176px;margin:auto;padding:32px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px;border:1px solid var(--border);border-radius:24px;background:var(--bg-primary);overflow:hidden}
.page-contact .map-placeholder{text-align:left;position:relative;z-index:1;color:var(--text-secondary)}
.page-contact .map-placeholder>svg{color:var(--primary);opacity:1;width:44px;height:44px;animation:contact-icon-float 5s ease-in-out infinite}
.page-contact .map-placeholder h2{color:var(--text-primary);font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.25;margin:12px 0 18px}
.page-contact .map-placeholder p{line-height:1.9;margin-bottom:20px}
.page-contact .map-placeholder a{display:inline-block;padding:12px 0}
.location-stage{position:relative;height:350px;perspective:900px;display:grid;place-items:center}
.location-plane{position:relative;width:290px;height:290px;border:1px solid #63a6bb66;border-radius:20px;background:repeating-linear-gradient(0deg,transparent 0 53px,#7ab5cc33 54px 56px),repeating-linear-gradient(90deg,transparent 0 53px,#7ab5cc33 54px 56px),#17394d;box-shadow:0 12px 0 #102c40,0 24px 0 #0c2234,0 45px 50px #081c3a44;transform:rotateX(52deg) rotateZ(-28deg);transform-style:preserve-3d;animation:location-drift 9s ease-in-out infinite}
.location-plane::before,.location-plane::after{content:'';position:absolute;background:#78c6c4;opacity:.5;border-radius:5px;left:0;top:46%;width:100%;height:14px}
.location-plane::after{transform:rotate(90deg)}
.location-building{position:absolute;width:48px;height:48px;border-radius:7px;background:linear-gradient(135deg,#6a99b2,#335d7a);box-shadow:7px 9px 0 #0c2439;transform:translateZ(16px)}
.location-building:nth-child(1){left:26px;top:28px}.location-building:nth-child(2){right:28px;top:35px;width:64px}.location-building:nth-child(3){left:38px;bottom:28px;width:64px}.location-building:nth-child(4){right:30px;bottom:28px}
.location-ring{position:absolute;inset:75px;border:2px solid #8fe1d3;border-radius:50%;transform:translateZ(6px);animation:location-pulse 3s ease-out infinite}
.location-ring:nth-of-type(2){animation-delay:-1.5s}
.location-pin{position:absolute;left:calc(50% - 30px);top:92px;width:60px;height:76px;color:#86dfce;filter:drop-shadow(0 12px 12px #0004);animation:location-pin 4s ease-in-out infinite}
.location-caption{position:absolute;bottom:0;color:var(--text-tertiary);font-size:.75rem;letter-spacing:.04em}
@keyframes contact-icon-float{0%,100%{transform:perspective(400px) translateY(0) rotateY(-8deg)}50%{transform:perspective(400px) translateY(-6px) rotateY(8deg)}}
@keyframes contact-clock{0%,80%,100%{transform:rotate(0)}90%{transform:rotate(16deg)}}
@keyframes contact-header{to{transform:rotate(360deg)}}
@keyframes location-drift{0%,100%{transform:rotateX(52deg) rotateZ(-28deg) translateY(0)}50%{transform:rotateX(48deg) rotateZ(-23deg) translateY(-10px)}}
@keyframes location-pulse{0%{scale:.5;opacity:1}100%{scale:1.5;opacity:0}}
@keyframes location-pin{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@media(max-width:767px){.page-contact .map-section{padding:40px 16px}.page-contact .map-container{grid-template-columns:minmax(0,1fr);gap:24px;padding:24px 18px}.location-stage{height:290px}.location-plane{width:230px;height:230px}.location-ring{inset:60px}.location-pin{top:70px}.page-contact .map-placeholder{text-align:center}}
@media(prefers-reduced-motion:reduce){.page-contact .quick-action-icon,.page-contact .contact-method-icon,.page-contact .response-banner svg,.page-contact .contact-form-header::before,.page-contact .map-placeholder>svg,.location-plane,.location-ring,.location-pin{animation:none!important}}
/* Keep every icon front-facing and leave room for the full 3D silhouette. */
.page-contact .quick-action-icon,.page-contact .contact-method-icon,.page-contact .map-placeholder>svg{overflow:visible;flex-shrink:0;animation-name:contact-icon-complete}
.page-contact .quick-action-icon svg,.page-contact .contact-method-icon svg{display:block;flex-shrink:0;overflow:visible}
.page-contact .quick-action-card{min-width:0}
.page-contact .map-container{scroll-margin-top:100px}
.page-contact .location-stage{min-width:0}
.page-contact .location-plane{width:min(290px,65%);height:auto;aspect-ratio:1}
.page-contact .location-ring{inset:26%}
@keyframes contact-icon-complete{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(min-width:768px) and (max-width:1100px){.page-contact .quick-action-card{flex-direction:column;align-items:flex-start}}
@media(max-width:767px){.page-contact .location-stage{height:300px}.page-contact .location-pin{top:80px}.page-contact .location-building{width:17%;height:17%}.page-contact .location-building:nth-child(2),.page-contact .location-building:nth-child(3){width:22%}}
