css
/*
Theme Name: Australia BSP Company v7.0.1
Theme URI: https://australiabspcompany.online
Author: Your Name
Author URI: https://yourwebsite.com
Description: MODIFIED - Professional business theme with Visa Search System, Dynamic Components, and Advanced Features. Fully compatible with WordPress 7.0.
Version: 7.0.1
License: GPL v2 or later
Text Domain: australia-bsp
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 7.0
*/

/* ============================================
   NEW MODIFICATIONS & ADDITIONS:
   ✅ Dynamic Search Animation Effects
   ✅ Password Strength Meter for Visa Access
   ✅ Loading Spinners & Progress Indicators
   ✅ Toast Notifications System
   ✅ Modal/Popup Windows Support
   ✅ Animated Counters for Statistics
   ✅ Testimonial Carousel Styles
   ✅ Breadcrumb Navigation
   ✅ Back to Top Button
   ✅ Custom Scrollbar
   ✅ Print-friendly Visa Reports
   ✅ RTL Language Support
   ✅ High Contrast Mode (Accessibility)
============================================ */

/* --------------------------------------------
   CSS VARIABLES (Extended)
-------------------------------------------- */
:root {
    /* Original Variables */
    --bsp-primary: #2c7da0;
    --bsp-primary-dark: #1f5e7a;
    --bsp-primary-light: #61a5c2;
    --bsp-secondary: #0f3b5f;
    --bsp-accent: #f4a261;
    --bsp-success: #2a9d8f;
    --bsp-danger: #e76f51;
    --bsp-warning: #f4a261;
    --bsp-info: #4a90e2;
    --bsp-dark: #1f2937;
    --bsp-light: #f9fafb;
    
    /* NEW Variables */
    --bsp-transition-fast: 0.2s ease;
    --bsp-transition-normal: 0.3s ease;
    --bsp-transition-slow: 0.5s ease;
    --bsp-z-index-dropdown: 1000;
    --bsp-z-index-modal: 2000;
    --bsp-z-index-toast: 3000;
    --bsp-z-index-tooltip: 4000;
}

/* --------------------------------------------
   NEW: LOADING SPINNER
-------------------------------------------- */
.spinner {
    display: inline-block;
    width: 40px;
    height: 40px;
    border: 4px solid var(--bsp-gray-300);
    border-top-color: var(--bsp-primary);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

.spinner-small {
    width: 20px;
    height: 20px;
    border-width: 2px;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: var(--bsp-z-index-modal);
    opacity: 0;
    visibility: hidden;
    transition: var(--bsp-transition-normal);
}

.loading-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* --------------------------------------------
   NEW: TOAST NOTIFICATIONS
-------------------------------------------- */
.toast-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: var(--bsp-z-index-toast);
}

.toast {
    background: white;
    border-radius: var(--bsp-radius-md);
    padding: var(--bsp-spacing-sm) var(--bsp-spacing-md);
    margin-bottom: var(--bsp-spacing-sm);
    box-shadow: var(--bsp-shadow-lg);
    display: flex;
    align-items: center;
    gap: var(--bsp-spacing-sm);
    animation: slideInRight 0.3s ease;
    border-left: 4px solid var(--bsp-primary);
}

.toast.success { border-left-color: var(--bsp-success); }
.toast.error { border-left-color: var(--bsp-danger); }
.toast.warning { border-left-color: var(--bsp-warning); }
.toast.info { border-left-color: var(--bsp-info); }

@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* --------------------------------------------
   NEW: VISA SEARCH WITH PASSWORD METER
-------------------------------------------- */
.visa-search-card {
    background: linear-gradient(135deg, #ffffff 0%, var(--bsp-gray-100) 100%);
    border-radius: var(--bsp-radius-xl);
    box-shadow: var(--bsp-shadow-xl);
    padding: var(--bsp-spacing-xl);
    max-width: 500px;
    margin: var(--bsp-spacing-xl) auto;
}

.password-strength {
    margin-top: var(--bsp-spacing-xs);
    font-size: 0.875rem;
}

.strength-meter {
    height: 4px;
    background: var(--bsp-gray-300);
    border-radius: var(--bsp-radius-full);
    margin-top: var(--bsp-spacing-xs);
    overflow: hidden;
}

.strength-meter-fill {
    height: 100%;
    width: 0;
    transition: width 0.3s ease;
}

.strength-meter-fill.weak { background: var(--bsp-danger); width: 25%; }
.strength-meter-fill.medium { background: var(--bsp-warning); width: 50%; }
.strength-meter-fill.strong { background: var(--bsp-primary); width: 75%; }
.strength-meter-fill.very-strong { background: var(--bsp-success); width: 100%; }

/* Visa Result Card */
.visa-result-card {
    background: white;
    border-radius: var(--bsp-radius-lg);
    padding: var(--bsp-spacing-lg);
    margin-top: var(--bsp-spacing-lg);
    box-shadow: var(--bsp-shadow-md);
    animation: fadeInUp 0.5s ease;
    position: relative;
    overflow: hidden;
}

.visa-result-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
}

.visa-result-card.approved::before {
    background: var(--bsp-success);
}

.visa-result-card.pending::before {
    background: var(--bsp-warning);
}

.visa-result-card.rejected::before {
    background: var(--bsp-danger);
}

.visa-status-badge {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: var(--bsp-radius-full);
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: var(--bsp-spacing-sm);
}

/* --------------------------------------------
   NEW: MODAL POPUP
-------------------------------------------- */
.modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: var(--bsp-z-index-modal);
    align-items: center;
    justify-content: center;
}

.modal.active {
    display: flex;
    animation: fadeIn 0.3s ease;
}

.modal-content {
    background: white;
    border-radius: var(--bsp-radius-xl);
    max-width: 500px;
    width: 90%;
    max-height: 80vh;
    overflow-y: auto;
    animation: slideInUp 0.3s ease;
}

.modal-header {
    padding: var(--bsp-spacing-md);
    border-bottom: 1px solid var(--bsp-gray-200);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-body {
    padding: var(--bsp-spacing-md);
}

.modal-footer {
    padding: var(--bsp-spacing-md);
    border-top: 1px solid var(--bsp-gray-200);
    display: flex;
    justify-content: flex-end;
    gap: var(--bsp-spacing-sm);
}

.modal-close {
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--bsp-gray-500);
}

@keyframes slideInUp {
    from {
        transform: translateY(50px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* --------------------------------------------
   NEW: BACK TO TOP BUTTON
-------------------------------------------- */
.back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    background: var(--bsp-primary);
    color: white;
    border: none;
    border-radius: var(--bsp-radius-full);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    opacity: 0;
    visibility: hidden;
    transition: var(--bsp-transition-normal);
    z-index: var(--bsp-z-index-dropdown);
    box-shadow: var(--bsp-shadow-md);
}

.back-to-top.show {
    opacity: 1;
    visibility: visible;
}

.back-to-top:hover {
    background: var(--bsp-primary-dark);
    transform: translateY(-3px);
}

/* --------------------------------------------
   NEW: BREADCRUMB NAVIGATION
-------------------------------------------- */
.breadcrumbs {
    background: var(--bsp-gray-100);
    padding: var(--bsp-spacing-sm) 0;
    margin-bottom: var(--bsp-spacing-lg);
    font-size: 0.875rem;
}

.breadcrumbs ul {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: var(--bsp-spacing-xs);
}

.breadcrumbs li:not(:last-child)::after {
    content: '/';
    margin-left: var(--bsp-spacing-xs);
    color: var(--bsp-gray-400);
}

.breadcrumbs a {
    color: var(--bsp-primary);
}

.breadcrumbs .current {
    color: var(--bsp-gray-600);
}

/* --------------------------------------------
   NEW: ANIMATED COUNTERS
-------------------------------------------- */
.counter-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--bsp-spacing-lg);
    text-align: center;
    margin: var(--bsp-spacing-xl) 0;
}

.counter-item {
    padding: var(--bsp-spacing-lg);
    background: white;
    border-radius: var(--bsp-radius-lg);
    box-shadow: var(--bsp-shadow-sm);
}

.counter-number {
    font-size: 3rem;
    font-weight: 700;
    color: var(--bsp-primary);
    margin-bottom: var(--bsp-spacing-xs);
}

.counter-label {
    color: var(--bsp-gray-600);
    text-transform: uppercase;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 1px;
}

/* --------------------------------------------
   NEW: TESTIMONIAL CAROUSEL
-------------------------------------------- */
.testimonials-slider {
    position: relative;
    overflow: hidden;
    margin: var(--bsp-spacing-xl) 0;
}

.testimonial-track {
    display: flex;
    transition: transform 0.5s ease;
}

.testimonial-card {
    flex: 0 0 100%;
    padding: var(--bsp-spacing-lg);
    background: white;
    border-radius: var(--bsp-radius-lg);
    box-shadow: var(--bsp-shadow-md);
    text-align: center;
}

.testimonial-avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    margin: 0 auto var(--bsp-spacing-md);
    object-fit: cover;
}

.testimonial-text {
    font-style: italic;
    margin-bottom: var(--bsp-spacing-md);
}

.testimonial-author {
    font-weight: 600;
    color: var(--bsp-primary);
}

.slider-nav {
    display: flex;
    justify-content: center;
    gap: var(--bsp-spacing-sm);
    margin-top: var(--bsp-spacing-lg);
}

.slider-btn {
    background: var(--bsp-primary);
    color: white;
    border: none;
    width: 40px;
    height: 40px;
    border-radius: var(--bsp-radius-full);
    cursor: pointer;
    transition: var(--bsp-transition-fast);
}

.slider-btn:hover {
    background: var(--bsp-primary-dark);
}

/* --------------------------------------------
   NEW: PRINT STYLES FOR VISA REPORTS
-------------------------------------------- */
@media print {
    .no-print {
        display: none !important;
    }
    
    .visa-result-card {
        box-shadow: none;
        border: 1px solid #ddd;
        page-break-inside: avoid;
    }
    
    .visa-status-badge {
        border: 1px solid #000;
        background: none !important;
        color: #000 !important;
    }
    
    body {
        font-size: 12pt;
        line-height: 1.5;
    }
    
    a {
        text-decoration: none;
        color: #000;
    }
}

/* --------------------------------------------
   NEW: RTL LANGUAGE SUPPORT
-------------------------------------------- */
.rtl .header-inner {
    flex-direction: row-reverse;
}

.rtl .main-nav ul {
    justify-content: flex-start;
}

.rtl .toast-container {
    right: auto;
    left: 20px;
}

/* --------------------------------------------
   NEW: HIGH CONTRAST MODE
-------------------------------------------- */
.high-contrast {
    --bsp-primary: #0000ff;
    --bsp-primary-dark: #0000cc;
    --bsp-primary-light: #3333ff;
    --bsp-secondary: #000000;
    --bsp-dark: #000000;
    --bsp-light: #ffffff;
}

.high-contrast .visa-result-card {
    border: 2px solid #000;
}

.high-contrast .btn {
    border: 2px solid #000;
}

/* --------------------------------------------
   NEW: CUSTOM SCROLLBAR
-------------------------------------------- */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: var(--bsp-gray-100);
}

::-webkit-scrollbar-thumb {
    background: var(--bsp-primary);
    border-radius: var(--bsp-radius-full);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--bsp-primary-dark);
}

/* --------------------------------------------
   NEW: PROGRESS BAR
-------------------------------------------- */
.progress-bar {
    height: 8px;
    background: var(--bsp-gray-200);
    border-radius: var(--bsp-radius-full);
    overflow: hidden;
    margin: var(--bsp-spacing-sm) 0;
}

.progress-fill {
    height: 100%;
    background: var(--bsp-primary);
    width: 0%;
    transition: width 0.5s ease;
    animation: progressPulse 2s infinite;
}

@keyframes progressPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

/* --------------------------------------------
   NEW: TOOLTIP
-------------------------------------------- */
.tooltip {
    position: relative;
    display: inline-block;
    cursor: help;
}

.tooltip .tooltip-text {
    visibility: hidden;
    background: var(--bsp-dark);
    color: white;
    text-align: center;
    padding: var(--bsp-spacing-xs) var(--bsp-spacing-sm);
    border-radius: var(--bsp-radius-md);
    position: absolute;
    z-index: var(--bsp-z-index-tooltip);
    bottom: 125%;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    font-size: 0.875rem;
    opacity: 0;
    transition: opacity 0.3s;
}

.tooltip:hover .tooltip-text {
    visibility: visible;
    opacity: 1;
}

/* --------------------------------------------
   NEW: RESPONSIVE IMPROVEMENTS
-------------------------------------------- */
@media (max-width: 768px) {
    .visa-search-card {
        margin: var(--bsp-spacing-md);
        padding: var(--bsp-spacing-md);
    }
    
    .counter-number {
        font-size: 2rem;
    }
    
    .modal-content {
        width: 95%;
        margin: var(--bsp-spacing-md);
    }
    
    .back-to-top {
        bottom: 20px;
        right: 20px;
        width: 40px;
        height: 40px;
        font-size: 1.2rem;
    }
    
    .toast-container {
        top: auto;
        bottom: 20px;
        right: 20px;
        left: 20px;
    }
    
    .toast {
        width: 100%;
    }
}

/* --------------------------------------------
   NEW: DARK MODE ENHANCEMENTS
-------------------------------------------- */
@media (prefers-color-scheme: dark) {
    .visa-result-card,
    .modal-content,
    .counter-item,
    .testimonial-card {
        background: #2d2d2d;
        color: #e5e5e5;
    }
    
    .visa-search-card {
        background: linear-gradient(135deg, #2d2d2d 0%, #1a1a1a 100%);
    }
    
    .breadcrumbs {
        background: #2d2d2d;
    }
    
    .modal-header,
    .modal-footer {
        border-color: #404040;
    }
}

/* --------------------------------------------
   NEW: FLOATING ACTION BUTTON (FAB)
-------------------------------------------- */
.fab {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 56px;
    height: 56px;
    background: var(--bsp-success);
    color: white;
    border: none;
    border-radius: var(--bsp-radius-full);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    box-shadow: var(--bsp-shadow-lg);
    transition: var(--bsp-transition-normal);
    z-index: var(--bsp-z-index-dropdown);
}

.fab:hover {
    transform: scale(1.1);
    background: var(--bsp-primary);
}

/* --------------------------------------------
   NEW: FILE UPLOAD AREA (for passport upload)
-------------------------------------------- */
.file-upload-area {
    border: 2px dashed var(--bsp-gray-300);
    border-radius: var(--bsp-radius-lg);
    padding: var(--bsp-spacing-lg);
    text-align: center;
    cursor: pointer;
    transition: var(--bsp-transition-normal);
}

.file-upload-area:hover,
.file-upload-area.drag-over {
    border-color: var(--bsp-primary);
    background: rgba(44, 125, 160, 0.05);
}

.file-upload-area input {
    display: none;
}

.upload-icon {
    font-size: 3rem;
    margin-bottom: var(--bsp-spacing-sm);
}

/* --------------------------------------------
   NEW: QR CODE DISPLAY
-------------------------------------------- */
.qr-code {
    display: inline-block;
    padding: var(--bsp-spacing-sm);
    background: white;
    border-radius: var(--bsp-radius-md);
    box-shadow: var(--bsp-shadow-sm);
}

.qr-code img {
    width: 150px;
    height: 150px;
}
Additional JavaScript File for New Features (assets/js/main.js)
Create or update this file with the new functionality:

javascript
/**
 * Australia BSP Theme - Enhanced JavaScript
 * Version: 2.0.0
 */

(function($) {
    'use strict';
    
    // Wait for DOM to load
    document.addEventListener('DOMContentLoaded', function() {
        
        // ============================================
        // 1. PASSWORD STRENGTH METER for VISA SEARCH
        // ============================================
        const passwordInput = document.getElementById('visa-password');
        if (passwordInput) {
            passwordInput.addEventListener('input', function(e) {
                const password = e.target.value;
                const strength = checkPasswordStrength(password);
                updateStrengthMeter(strength);
            });
        }
        
        function checkPasswordStrength(password) {
            let strength = 0;
            if (password.length >= 8) strength++;
            if (password.match(/[a-z]+/)) strength++;
            if (password.match(/[A-Z]+/)) strength++;
            if (password.match(/[0-9]+/)) strength++;
            if (password.match(/[$@#&!]+/)) strength++;
            
            if (strength <= 2) return 'weak';
            if (strength === 3) return 'medium';
            if (strength === 4) return 'strong';
            return 'very-strong';
        }
        
        function updateStrengthMeter(strength) {
            const meter = document.querySelector('.strength-meter-fill');
            if (meter) {
                meter.className = 'strength-meter-fill ' + strength;
            }
        }
        
        // ============================================
        // 2. TOAST NOTIFICATIONS
        // ============================================
        window.showToast = function(message, type = 'info') {
            const container = document.querySelector('.toast-container') || createToastContainer();
            const toast = document.createElement('div');
            toast.className = `toast ${type}`;
            toast.innerHTML = `
                <span class="toast-icon">${getToastIcon(type)}</span>
                <span class="toast-message">${message}</span>
            `;
            container.appendChild(toast);
            
            setTimeout(() => {
                toast.style.animation = 'slideOutRight 0.3s ease';
                setTimeout(() => toast.remove(), 300);
            }, 3000);
        };
        
        function createToastContainer() {
            const container = document.createElement('div');
            container.className = 'toast-container';
            document.body.appendChild(container);
            return container;
        }
        
        function getToastIcon(type) {
            const icons = {
                success: '✓',
                error: '✗',
                warning: '⚠',
                info: 'ℹ'
            };
            return icons[type] || icons.info;
        }
        
        // ============================================
        // 3. BACK TO TOP BUTTON
        // ============================================
        const backToTop = document.querySelector('.back-to-top');
        if (backToTop) {
            window.addEventListener('scroll', function() {
                if (window.scrollY > 300) {
                    backToTop.classList.add('show');
                } else {
                    backToTop.classList.remove('show');
                }
            });
            
            backToTop.addEventListener('click', function() {
                window.scrollTo({ top: 0, behavior: 'smooth' });
            });
        }
        
        // ============================================
        // 4. ANIMATED COUNTERS
        // ============================================
        const counters = document.querySelectorAll('.counter-number');
        if (counters.length) {
            const animateCounter = (counter) => {
                const target = parseInt(counter.getAttribute('data-target'));
                const duration = 2000;
                const step = target / (duration / 16);
                let current = 0;
                
                const updateCounter = () => {
                    current += step;
                    if (current < target) {
                        counter.textContent = Math.ceil(current);
                        requestAnimationFrame(updateCounter);
                    } else {
                        counter.textContent = target;
                    }
                };
                updateCounter();
            };
            
            // Intersection Observer for counters
            const observer = new IntersectionObserver((entries) => {
                entries.forEach(entry => {
                    if (entry.isIntersecting) {
                        animateCounter(entry.target);
                        observer.unobserve(entry.target);
                    }
                });
            });
            
            counters.forEach(counter => observer.observe(counter));
        }
        
        // ============================================
        // 5. TESTIMONIAL CAROUSEL
        // ============================================
        const testimonialTrack = document.querySelector('.testimonial-track');
        if (testimonialTrack) {
            let currentIndex = 0;
            const slides = document.querySelectorAll('.testimonial-card');
            const totalSlides = slides.length;
            
            document.querySelector('.slider-next')?.addEventListener('click', () => {
                currentIndex = (currentIndex + 1) % totalSlides;
                updateCarousel();
            });
            
            document.querySelector('.slider-prev')?.addEventListener('click', () => {
                currentIndex = (currentIndex - 1 + totalSlides) % totalSlides;
                updateCarousel();
            });
            
            function updateCarousel() {
                testimonialTrack.style.transform = `translateX(-${currentIndex * 100}%)`;
            }
            
            // Auto-play
            setInterval(() => {
                currentIndex = (currentIndex + 1) % totalSlides;
                updateCarousel();
            }, 5000);
        }
        
        // ============================================
        // 6. MODAL SYSTEM
        // ============================================
        window.openModal = function(modalId) {
            const modal = document.getElementById(modalId);
            if (modal) {
                modal.classList.add('active');
                document.body.style.overflow = 'hidden';
            }
        };
        
        window.closeModal = function(modalId) {
            const modal = document.getElementById(modalId);
            if (modal) {
                modal.classList.remove('active');
                document.body.style.overflow = '';
            }
        };
        
        // Close modal on backdrop click
        document.querySelectorAll('.modal').forEach(modal => {
            modal.addEventListener('click', function(e) {
                if (e.target === this) {
                    this.classList.remove('active');
                    document.body.style.overflow = '';
                }
            });
        });
        
        // ============================================
        // 7. FILE UPLOAD PREVIEW (for passport)
        // ============================================
        const fileUpload = document.querySelector('#passport-upload');
        if (fileUpload) {
            fileUpload.addEventListener('change', function(e) {
                const file = e.target.files[0];
                if (file) {
                    const reader = new FileReader();
                    reader.onload = function(event) {
                        const preview = document.querySelector('.upload-preview');
                        if (preview) {
                            preview.innerHTML = `<img src="${event.target.result}" style="max-width: 200px;">`;
                        }
                    };
                    reader.readAsDataURL(file);
                }
            });
            
            // Drag and drop
            const dropZone = document.querySelector('.file-upload-area');
            if (dropZone) {
                dropZone.addEventListener('dragover', (e) => {
                    e.preventDefault();
                    dropZone.classList.add('drag-over');
                });
                
                dropZone.addEventListener('dragleave', () => {
                    dropZone.classList.remove('drag-over');
                });
                
                dropZone.addEventListener('drop', (e) => {
                    e.preventDefault();
                    dropZone.classList.remove('drag-over');
                    const file = e.dataTransfer.files[0];
                    if (file) {
                        fileUpload.files = e.dataTransfer.files;
                        // Trigger change event
                        const event = new Event('change');
                        fileUpload.dispatchEvent(event);
                    }
                });
            }
        }
        
        // ============================================
        // 8. LOADING SPINNER
        // ============================================
        window.showLoading = function() {
            const overlay = document.querySelector('.loading-overlay') || createLoadingOverlay();
            overlay.classList.add('active');
        };
        
        window.hideLoading = function() {
            const overlay = document.querySelector('.loading-overlay');
            if (overlay) overlay.classList.remove('active');
        };
        
        function createLoadingOverlay() {
            const overlay = document.createElement('div');
            overlay.className = 'loading-overlay';
            overlay.innerHTML = '<div class="spinner"></div>';
            document.body.appendChild(overlay);
            return overlay;
        }
        
        // ============================================
        // 9. VISA FORM SUBMISSION WITH AJAX
        // ============================================
        const visaForm = document.getElementById('visa-search-form');
        if (visaForm) {
            visaForm.addEventListener('submit', async function(e) {
                e.preventDefault();
                showLoading();
                
                const formData = new FormData(visaForm);
                formData.append('action', 'visa_search');
                
                try {
                    const response = await fetch(visa_ajax.ajax_url, {
                        method: 'POST',
                        body: formData
                    });
                    const result = await response.json();
                    
                    if (result.success) {
                        displayVisaResult(result.data);
                        showToast('Visa information retrieved successfully!', 'success');
                    } else {
                        showToast(result.message || 'Access Denied. Invalid credentials.', 'error');
                    }
                } catch (error) {
                    showToast('An error occurred. Please try again.', 'error');
                } finally {
                    hideLoading();
                }
            });
        }
        
        function displayVisaResult(data) {
            const resultContainer = document.querySelector('.visa-result-container');
            if (resultContainer) {
                resultContainer.innerHTML = `
                    <div class="visa-result-card ${data.status.toLowerCase()}">
                        <div class="visa-status-badge ${data.status.toLowerCase()}">
                            Status: ${data.status}
                        </div>
                        <h3>Visa Information</h3>
                        <p><strong>Visa Type:</strong> ${data.visa_type}</p>
                        <p><strong>Expiry Date:</strong> ${data.expiry_date}</p>
                        <p><strong>Country:</strong> ${data.country}</p>
                        <button onclick="window.print()" class="btn btn-small no-print">Print Report</button>
                    </div>
                `;
            }
        }
        
        // ============================================
        // 10. ACCESSIBILITY - High Contrast Mode
        // ============================================
        const highContrastToggle = document.querySelector('#high-contrast-toggle');
        if (highContrastToggle) {
            highContrastToggle.addEventListener('click', function() {
                document.body.classList.toggle('high-contrast');
                localStorage.setItem('highContrast', document.body.classList.contains('high-contrast'));
            });
            
            // Load saved preference
            if (localStorage.getItem('highContrast') === 'true') {
                document.body.classList.add('high-contrast');
            }
        }
        
        // ============================================
        // 11. PROGRESS INDICATOR for forms
        // ============================================
        const formInputs = document.querySelectorAll('form input, form textarea');
        formInputs.forEach(input => {
            input.addEventListener('focus', function() {
                const progressBar = document.querySelector('.progress-fill');
                if (progressBar) {
                    const filled = document.querySelectorAll('form input:valid, form textarea:valid').length;
                    const total = formInputs.length;
                    const percentage = (filled / total) * 100;
                    progressBar.style.width = percentage + '%';
                }
            });
        });
        
        // ============================================
        // 12. DYNAMIC BREADCRUMB
        // ============================================
        function updateBreadcrumb() {
            const breadcrumb = document.querySelector('.breadcrumbs');
            if (breadcrumb) {
                const path = window.location.pathname.split('/').filter(p => p);
                let html = '<ul><li><a href="/">Home</a></li>';
                let currentPath = '';
                
                path.forEach((segment, index) => {
                    currentPath += '/' + segment;
                    if (index === path.length - 1) {
                        html += `<li class="current">${decodeURIComponent(segment)}</li>`;
                    } else {
                        html += `<li><a href="${currentPath}">${decodeURIComponent(segment)}</a></li>`;
                    }
                });
                
                html += '</ul>';
                breadcrumb.innerHTML = html;
            }
        }
        updateBreadcrumb();
        
    });
    
})(jQuery);