.bg-grid-pattern{background-image:linear-gradient(90deg,rgba(0,0,0,.05) 1px,transparent 0),linear-gradient(180deg,rgba(0,0,0,.05) 1px,transparent 0);background-size:20px 20px}.map-ripple{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;background-color:transparent;border-radius:50%;border:2px solid hsl(var(--primary));animation:ripple 2s ease-out infinite;z-index:5}@keyframes ripple{0%{width:16px;height:16px;opacity:1}to{width:80px;height:80px;opacity:0}}.contact-page .hero-section{overflow:hidden}.contact-page .gradient-text{background:linear-gradient(to right,var(--primary),var(--accent-foreground));-webkit-background-clip:text;background-clip:text;color:transparent}.dark .contact-page .bg-grid-pattern{background-image:linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 0),linear-gradient(180deg,rgba(255,255,255,.05) 1px,transparent 0)}