
    /* Global Typography & Core Overrides */
    body { font-family: 'Inter', sans-serif; background-color: #FFFFFF; }
    h1, h2, h3, h4, h5, h6, .font-heading { font-family: 'Montserrat', sans-serif; }

    /* Animations */
    .animate-fade-up { opacity: 0; transform: translateY(30px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
    .animate-fade-up.visible { opacity: 1; transform: translateY(0); }
    .animate-fade-in { opacity: 0; transition: all 1s ease; }
    .animate-fade-in.visible { opacity: 1; }
    .animate-slide-right { opacity: 0; transform: translateX(-30px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
    .animate-slide-right.visible { opacity: 1; transform: translateX(0); }

    /* Form Styling */
    .form-input-wrapper { position: relative; transition: all 0.3s ease; }
    .form-input-wrapper i { 
        position: absolute; 
        left: 16px; 
        top: 50%; 
        transform: translateY(-50%); 
        color: #9CA3AF; 
        transition: all 0.3s ease; 
        font-size: 14px;
    }
    .form-input-wrapper.textarea-wrapper i {
        top: 20px;
        transform: none;
    }
    .form-control {
        width: 100%;
        background-color: #FAFAFA;
        border: 1px solid #E5E7EB;
        border-radius: 6px;
        padding: 14px 16px 14px 44px;
        font-size: 13px;
        color: #082C3D;
        transition: all 0.3s ease;
    }
    .form-control::placeholder { color: #9CA3AF; }
    .form-control:focus {
        outline: none;
        border-color: #E44B2F;
        background-color: #FFFFFF;
        box-shadow: 0 0 0 4px rgba(228, 75, 47, 0.1);
    }
    .form-control:focus + i, .form-input-wrapper:focus-within i {
        color: #E44B2F;
    }

    /* Topographic Pattern Background for Contact Section */
    .bg-topo-pattern {
        background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23082c3d' fill-opacity='0.02' fill-rule='evenodd'/%3E%3C/svg%3E");
    }

    /* Custom Map Card Hover */
.map-card {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.map-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px -10px rgba(8, 44, 61, 0.15);
}

/* Make map wider on desktop */
/* Make map wider and taller on desktop */
@media (min-width: 1024px) {
    .map-card {
        width: calc(200% + 130px);
        margin-left: calc(-100% - 90px);
        height: 340px;
    }
}
.map-pin-pulse {
    animation: pin-pulse 2s infinite;
}

@keyframes pin-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(228, 75, 47, 0.4);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(228, 75, 47, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(228, 75, 47, 0);
    }
}

