/* Custom Theme Variables */
    :root {
      --font-sans: 'Inter', system-ui, sans-serif;
      --color-brand-primary: #2563eb;
      --color-brand-accent: #f97316;
      --color-bg-light: #f8fafc;
      --color-text-dark: #0f172a;
      --page-max: 1200px;
    }
    
    body {
      font-family: var(--font-sans);
      background-color: var(--color-bg-light);
      color: var(--color-text-dark);
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }

    /* Bootstrap Overrides/Extensions */
    a { text-decoration: none; }
    
    .text-primary { color: var(--color-brand-primary) !important; }
    .bg-primary { background-color: var(--color-brand-primary) !important; }
    .btn-primary { 
      background-color: var(--color-brand-primary); 
      border-color: var(--color-brand-primary); 
    }
    .btn-primary:hover { 
      background-color: #1d4ed8; 
      border-color: #1d4ed8;
    }
    
    .text-accent { color: var(--color-brand-accent) !important; }
    .bg-accent { background-color: var(--color-brand-accent) !important; }
    .btn-accent { 
      background-color: var(--color-brand-accent); 
      border-color: var(--color-brand-accent);
      color: white; 
    }
    .btn-accent:hover { 
      background-color: #ea580c; 
      border-color: #ea580c;
      color: white;
    }

    .container-max {
      max-width: var(--page-max);
      margin-left: auto;
      margin-right: auto;
    }

    /* Animation Utilities */
    @keyframes float {
      0%, 100% { transform: translateY(0px); }
      50% { transform: translateY(-10px); }
    }
    .animate-float { animation: float 6s ease-in-out infinite; }
    
    @keyframes pulse-slow {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.5; }
    }
    .animate-pulse-slow { animation: pulse-slow 3s cubic-bezier(0.4, 0, 0.6, 1) infinite; }

    /* Map Marker Pulse */
    @keyframes marker-pulse {
        0% { transform: scale(1); opacity: 0.7; }
        70% { transform: scale(2.5); opacity: 0; }
        100% { transform: scale(1); opacity: 0; }
    }
    .marker-ring {
        position: absolute;
        top: 0; left: 0; right: 0; bottom: 0;
        border-radius: 50%;
        animation: marker-pulse 2s infinite;
        z-index: -1;
    }

    /* Glassmorphism */
    .glass {
      background: rgba(255, 255, 255, 0.7);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(255, 255, 255, 0.5);
    }
    
    .glass-dark {
      background: rgba(15, 23, 42, 0.9);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid rgba(255, 255, 255, 0.1);
    }

    /* Background Ambience */
    .ambience-blob-blue {
      position: absolute;
      top: -20%; right: -10%;
      width: 800px; height: 800px;
      background: rgba(96, 165, 250, 0.1);
      border-radius: 50%;
      filter: blur(100px);
      z-index: -1;
    }
    .ambience-blob-orange {
      position: absolute;
      top: 40%; left: -10%;
      width: 600px; height: 600px;
      background: rgba(253, 186, 116, 0.1);
      border-radius: 50%;
      filter: blur(100px);
      z-index: -1;
    }

    /* REALISTIC CSS MAP STYLES */
    .map-container {
        background-color: #e2e8f0; /* Land color */
        position: relative;
        overflow: hidden;
    }

    /* Roads Grid */
    .map-roads {
        position: absolute;
        inset: -20%; /* Extend beyond container for rotation if needed */
        width: 140%;
        height: 140%;
        background-image: 
            linear-gradient(rgba(255,255,255,1) 8px, transparent 8px),
            linear-gradient(90deg, rgba(255,255,255,1) 8px, transparent 8px);
        background-size: 100px 100px;
        background-position: center;
        transform: rotate(15deg); /* Slight angle for realism */
    }

    /* Secondary Roads (Fainter) */
    .map-roads::after {
        content: '';
        position: absolute;
        inset: 0;
        background-image: 
            linear-gradient(rgba(255,255,255,0.6) 2px, transparent 2px),
            linear-gradient(90deg, rgba(255,255,255,0.6) 2px, transparent 2px);
        background-size: 25px 25px;
        z-index: -1;
    }

    /* Map Features (Parks, Water) */
    .map-feature {
        position: absolute;
        border-radius: 4px;
        transform: rotate(15deg);
    }
    .feature-park { background-color: #dcfce7; }
    .feature-water { background-color: #bfdbfe; }
    .feature-block { background-color: #f1f5f9; box-shadow: 1px 1px 2px rgba(0,0,0,0.05); }

    /* Custom Marker Styling */
    .emp-marker {
        position: absolute;
        transform: translate(-50%, -100%);
        display: flex;
        flex-direction: column;
        align-items: center;
        z-index: 10;
        cursor: pointer;
        transition: transform 0.2s;
    }
    .emp-marker:hover {
        transform: translate(-50%, -110%) scale(1.1);
        z-index: 20;
    }
    .marker-head {
        width: 36px;
        height: 36px;
        border-radius: 50%;
        background: white;
        border: 2px solid white;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
        display: grid;
        place-items: center;
        font-size: 10px;
        font-weight: 800;
        position: relative;
    }
    .marker-pin {
        width: 0; 
        height: 0; 
        border-left: 6px solid transparent;
        border-right: 6px solid transparent;
        border-top: 8px solid white;
        margin-top: -1px;
        filter: drop-shadow(0 2px 2px rgba(0,0,0,0.1));
    }
    .marker-label {
        position: absolute;
        top: -26px;
        background: white;
        padding: 2px 8px;
        border-radius: 4px;
        font-size: 10px;
        font-weight: 700;
        white-space: nowrap;
        box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        opacity: 0;
        transition: opacity 0.2s;
        pointer-events: none;
    }
    .emp-marker:hover .marker-label { opacity: 1; }

    /* Feature Cards Hover Effect */
    .feature-card {
      transition: all 0.3s ease;
    }
    .feature-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    }

    /* Accordion Customization */
    .accordion-button:not(.collapsed) {
      background-color: #eff6ff;
      color: var(--color-text-dark);
      box-shadow: none;
    }
    .accordion-button:focus {
      box-shadow: none;
      border-color: rgba(0,0,0,.125);
    }
    .accordion-item {
      border: 1px solid #e2e8f0;
      border-radius: 0.75rem !important;
      margin-bottom: 1rem;
      overflow: hidden;
    }

    /* CTA Gradient */
    .cta-gradient {
      background: linear-gradient(135deg, #2563eb 0%, #4338ca 100%);
    }

    /* Utility Helpers */
    .text-slate-600 { color: #475569; }
    .text-slate-500 { color: #64748b; }
    .bg-slate-50 { background-color: #f8fafc; }
    .bg-slate-900 { background-color: #0f172a; }
    .rounded-xl { border-radius: 0.75rem; }
    .rounded-2xl { border-radius: 1rem; }
    .rounded-3xl { border-radius: 1.5rem; }
    
    .nav-link { font-weight: 500; color: #475569; }
    .nav-link:hover { color: var(--color-brand-primary); }

    /* Ping Animation Helpers */
    .ping-container { position: relative; display: flex; height: 8px; width: 8px; }
    .ping-animate {
      animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
      position: absolute; display: inline-flex; height: 100%; width: 100%;
      border-radius: 50%; opacity: 0.75;
    }
    .ping-static {
      position: relative; display: inline-flex; border-radius: 50%;
      height: 8px; width: 8px;
    }
    @keyframes ping {
      75%, 100% { transform: scale(2); opacity: 0; }
    }
