It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: https://iformat.io/avif-to-png/

  1.  
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5.    <meta charset="UTF-8">
  6.    <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7.    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8.    <meta name="google-site-verification" content="fg3AMtGutUViOyvX3uKHBiqAcBWrXCyZjwMpwv53EVs" />
  9.    <title>iformat.io</title>
  10.    <meta name="description"
  11.          content="iFormat.io - Your ultimate file converter and compressor. Convert JPG, PNG, HEIC, WEBP to JPG, PNG, and PDF formats. Fast and reliable file conversion made easy">
  12.  
  13.    
  14.    <link rel="dns-prefetch" href="https://pagead2.googlesyndication.com">
  15.    <link rel="dns-prefetch" href="https://www.googletagmanager.com">
  16.  
  17.    <link rel="icon" href="/static/logo.png" type="image/png">
  18.    <link rel="canonical" href="https://iformat.io/avif-to-png/"/>
  19.  
  20.    
  21.   <link rel="preload" as="style" href="/static/css/tailwind.min.css">
  22.    <link rel="stylesheet" href="/static/css/tailwind.min.css">
  23.  
  24.    
  25.    <meta name="yandex-verification" content="b06651e96519752b"/>
  26.    <meta name="msvalidate.01" content="5CAE4943CEBF239CD78C1EE61E777102"/>
  27.  
  28.    <input type="hidden" name="csrfmiddlewaretoken" value="wBB5MbminKY8NHJxFZWNZHGuen6m2VwmuyfaHiIpFYFL13911o56O0xyiPW45b0l">
  29.  
  30.    
  31.    
  32.        
  33.  
  34.        
  35.  
  36.        
  37.  
  38.        
  39.  
  40.        
  41.    
  42.  
  43.    
  44. </head>
  45. <body>
  46.  
  47.  
  48. <!-- Improved Header -->
  49. <header class="bg-white backdrop-blur-lg sticky top-0 z-50">
  50.    <div class="container mx-auto max-w-screen-xl px-4 lg:px-6">
  51.        <!-- Main Header Row -->
  52.        <div class="flex items-center justify-between h-16">
  53.            <!-- Logo -->
  54.            <div class="flex items-center space-x-3">
  55.                <a href="/" class="flex items-center">
  56.                    <img src="/static/logo.svg"
  57.                         alt="iformat.io Logo"
  58.                         class="h-8 w-auto mr-2"
  59.                         width="120"
  60.                         height="32"
  61.                         loading="eager"
  62.                         decoding="sync">
  63.                    <span class="text-2xl font-normal text-blue-600">iformat.io</span>
  64.                </a>
  65.  
  66.                <!-- Desktop Navigation -->
  67.                <nav class="hidden lg:flex items-center space-x-1 ml-8">
  68.                    <!-- Convert Dropdown -->
  69.                    <div class="relative dropdown group">
  70.                        <button class="flex items-center px-4 py-2 text-gray-800 hover:text-blue-600 hover:bg-gray-50 rounded-lg font-medium transition-all duration-200">
  71.                            Convert
  72.                            <svg class="w-4 h-4 ml-1 transition-transform duration-200 group-hover:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  73.                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
  74.                            </svg>
  75.                        </button>
  76.  
  77.                        <!-- Mega Dropdown Menu -->
  78.                        <div class="dropdown-menu absolute top-full left-0 mt-1 bg-white rounded-xl shadow-xl border border-gray-100 z-50 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200">
  79.                            <div class="p-6">
  80.                                <div class="grid grid-cols-5 gap-6 min-w-[800px]">
  81.                                    <!-- Image Tools -->
  82.                                    <div class="space-y-3">
  83.                                        <div class="flex items-center text-sm font-semibold text-gray-900 mb-4">
  84.                                            <div class="w-7 h-7 bg-gradient-to-br from-green-500 to-emerald-600 rounded-lg flex items-center justify-center mr-3 shadow-sm">
  85.                                                <svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  86.                                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"/>
  87.                                                </svg>
  88.                                            </div>
  89.                                            Image
  90.                                        </div>
  91.                                        <ul class="space-y-1">
  92.                                            <li><a href="/image-converter" class="block px-3 py-2 text-sm text-gray-700 hover:text-green-600 hover:bg-green-50 rounded-md transition-colors">Image Converter</a></li>
  93.                                            <li><a href="/jpg-to-png" class="block px-3 py-2 text-sm text-gray-700 hover:text-green-600 hover:bg-green-50 rounded-md transition-colors">JPG to PNG</a></li>
  94.                                            <li><a href="/png-to-jpg" class="block px-3 py-2 text-sm text-gray-700 hover:text-green-600 hover:bg-green-50 rounded-md transition-colors">PNG to JPG</a></li>
  95.                                            <li><a href="/heic-to-jpg" class="block px-3 py-2 text-sm text-gray-700 hover:text-green-600 hover:bg-green-50 rounded-md transition-colors">HEIC to JPG</a></li>
  96.                                        </ul>
  97.                                    </div>
  98.  
  99.                                    <!-- Audio Tools -->
  100.                                    <div class="space-y-3">
  101.                                        <div class="flex items-center text-sm font-semibold text-gray-900 mb-4">
  102.                                            <div class="w-7 h-7 bg-gradient-to-br from-purple-500 to-violet-600 rounded-lg flex items-center justify-center mr-3 shadow-sm">
  103.                                                <svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  104.                                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19V6l12-3v13M9 19c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zm12-3c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zM9 10l12-3"/>
  105.                                                </svg>
  106.                                            </div>
  107.                                            Audio
  108.                                        </div>
  109.                                        <ul class="space-y-1">
  110.                                            <li><a href="/audio-converter" class="block px-3 py-2 text-sm text-gray-700 hover:text-purple-600 hover:bg-purple-50 rounded-md transition-colors">Audio Converter</a></li>
  111.                                            <li><a href="/mp3-converter" class="block px-3 py-2 text-sm text-gray-700 hover:text-purple-600 hover:bg-purple-50 rounded-md transition-colors">MP3 Converter</a></li>
  112.                                            <li><a href="/mp4-to-mp3" class="block px-3 py-2 text-sm text-gray-700 hover:text-purple-600 hover:bg-purple-50 rounded-md transition-colors">MP4 to MP3</a></li>
  113.                                            <li><a href="/wav-to-mp3" class="block px-3 py-2 text-sm text-gray-700 hover:text-purple-600 hover:bg-purple-50 rounded-md transition-colors">WAV to MP3</a></li>
  114.                                        </ul>
  115.                                    </div>
  116.  
  117.                                    <!-- Video Tools -->
  118.                                    <div class="space-y-3">
  119.                                        <div class="flex items-center text-sm font-semibold text-gray-900 mb-4">
  120.                                            <div class="w-7 h-7 bg-gradient-to-br from-blue-500 to-cyan-600 rounded-lg flex items-center justify-center mr-3 shadow-sm">
  121.                                                <svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  122.                                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"/>
  123.                                                </svg>
  124.                                            </div>
  125.                                            Video
  126.                                        </div>
  127.                                        <ul class="space-y-1">
  128.                                            <li><a href="/video-converter" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">Video Converter</a></li>
  129.                                            <li><a href="/mp4-converter" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">MP4 Converter</a></li>
  130.                                            <li><a href="/avi-to-mp4" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">AVI to MP4</a></li>
  131.                                            <li><a href="/mov-to-mp4" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">MOV to MP4</a></li>
  132.                                        </ul>
  133.                                    </div>
  134.  
  135.                                    <!-- Document Tools -->
  136.                                    <div class="space-y-3">
  137.                                        <div class="flex items-center text-sm font-semibold text-gray-900 mb-4">
  138.                                            <div class="w-7 h-7 bg-gradient-to-br from-blue-500 to-indigo-600 rounded-lg flex items-center justify-center mr-3 shadow-sm">
  139.                                                <svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  140.                                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
  141.                                                </svg>
  142.                                            </div>
  143.                                            Document
  144.                                        </div>
  145.                                        <ul class="space-y-1">
  146.                                            <li><a href="/document-converter" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">Document Converter</a></li>
  147.                                            <li><a href="/pdf-converter" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">PDF Converter</a></li>
  148.                                            <li><a href="/pdf-to-jpg" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">PDF to JPG</a></li>
  149.                                            <li><a href="/docx-to-pdf" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">DOCX to PDF</a></li>
  150.                                        </ul>
  151.                                    </div>
  152.  
  153.                                    <!-- Other Tools -->
  154.                                    <div class="space-y-3">
  155.                                        <div class="flex items-center text-sm font-semibold text-gray-900 mb-4">
  156.                                            <div class="w-7 h-7 bg-gradient-to-br from-orange-500 to-red-500 rounded-lg flex items-center justify-center mr-3 shadow-sm">
  157.                                                <svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  158.                                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/>
  159.                                                </svg>
  160.                                            </div>
  161.                                            Others
  162.                                        </div>
  163.                                        <ul class="space-y-1">
  164.                                            <li><a href="/time-converter" class="block px-3 py-2 text-sm text-gray-700 hover:text-orange-600 hover:bg-orange-50 rounded-md transition-colors">Time Converter</a></li>
  165.                                            <li><a href="/unit-converter" class="block px-3 py-2 text-sm text-gray-700 hover:text-orange-600 hover:bg-orange-50 rounded-md transition-colors">Unit Converter</a></li>
  166.                                        </ul>
  167.                                    </div>
  168.                                </div>
  169.                            </div>
  170.                        </div>
  171.                    </div>
  172.  
  173.                    <!-- Compress Dropdown -->
  174.                    <div class="relative dropdown group">
  175.                        <button class="flex items-center px-4 py-2 text-gray-800 hover:text-blue-600 hover:bg-gray-50 rounded-lg font-medium transition-all duration-200">
  176.                            Compress
  177.                            <svg class="w-4 h-4 ml-1 transition-transform duration-200 group-hover:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  178.                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
  179.                            </svg>
  180.                        </button>
  181.  
  182.                        <div class="dropdown-menu absolute top-full left-0 mt-1 bg-white rounded-xl shadow-xl border border-gray-100 z-50 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200">
  183.                            <div class="p-6">
  184.                                <div class="grid grid-cols-2 gap-6 min-w-[400px]">
  185.                                    <!-- Image Compression -->
  186.                                    <div class="space-y-3">
  187.                                        <div class="flex items-center text-sm font-semibold text-gray-900 mb-4">
  188.                                            <div class="w-7 h-7 bg-gradient-to-br from-green-500 to-emerald-600 rounded-lg flex items-center justify-center mr-3 shadow-sm">
  189.                                                <svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  190.                                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"/>
  191.                                                </svg>
  192.                                            </div>
  193.                                            Image
  194.                                        </div>
  195.                                        <ul class="space-y-1">
  196.                                            <li><a href="/image-compressor" class="block px-3 py-2 text-sm text-gray-700 hover:text-green-600 hover:bg-green-50 rounded-md transition-colors">Image Compressor</a></li>
  197.                                            <li><a href="/png-compressor" class="block px-3 py-2 text-sm text-gray-700 hover:text-green-600 hover:bg-green-50 rounded-md transition-colors">PNG Compressor</a></li>
  198.                                            <li><a href="/jpg-compressor" class="block px-3 py-2 text-sm text-gray-700 hover:text-green-600 hover:bg-green-50 rounded-md transition-colors">JPG Compressor</a></li>
  199.                                            <li><a href="/compress-png-to-100kb" class="block px-3 py-2 text-sm text-gray-700 hover:text-green-600 hover:bg-green-50 rounded-md transition-colors">Compress PNG to 100kb</a></li>
  200.                                        </ul>
  201.                                    </div>
  202.  
  203.                                    <!-- Document Compression -->
  204.                                    <div class="space-y-3">
  205.                                        <div class="flex items-center text-sm font-semibold text-gray-900 mb-4">
  206.                                            <div class="w-7 h-7 bg-gradient-to-br from-blue-500 to-indigo-600 rounded-lg flex items-center justify-center mr-3 shadow-sm">
  207.                                                <svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  208.                                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
  209.                                                </svg>
  210.                                            </div>
  211.                                            Document
  212.                                        </div>
  213.                                        <ul class="space-y-1">
  214.                                            <li><a href="/document-compressor" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">Document Compressor</a></li>
  215.                                            <li><a href="/pdf-compressor" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">PDF Compressor</a></li>
  216.                                            <li><a href="/compress-pdf-to-1mb" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">Compress PDF to 1MB</a></li>
  217.                                            <li><a href="/compress-pdf-to-500kb" class="block px-3 py-2 text-sm text-gray-700 hover:text-blue-600 hover:bg-blue-50 rounded-md transition-colors">Compress PDF to 500kb</a></li>
  218.                                        </ul>
  219.                                    </div>
  220.                                </div>
  221.                            </div>
  222.                        </div>
  223.                    </div>
  224.  
  225.                    <!-- Other Navigation Links -->
  226.                    <a href="/blog" class="px-4 py-2 text-gray-800 hover:text-blue-600 hover:bg-gray-50 rounded-lg font-medium transition-colors">Blog</a>
  227.                    <a href="/donate" class="px-4 py-2 text-gray-800 hover:text-blue-600 hover:bg-gray-50 rounded-lg font-medium transition-colors">Donate</a>
  228.                </nav>
  229.            </div>
  230.  
  231.            <!-- Right Side Actions -->
  232.            <div class="flex items-center space-x-3">
  233.                <!-- Search Button -->
  234.                <button id="searchBtn" class="p-2 text-gray-700 hover:text-blue-600 hover:bg-gray-50 rounded-lg transition-colors" aria-label="Search">
  235.                    <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  236.                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/>
  237.                    </svg>
  238.                </button>
  239.  
  240.                <!-- Authentication Section - Desktop Only -->
  241.                
  242.                    <!-- Guest User Actions - Desktop Only -->
  243.                    <div class="hidden lg:flex items-center space-x-3">
  244.                        <a href="/accounts/login/" class="text-gray-800 hover:text-blue-600 px-3 py-2 rounded-lg hover:bg-gray-50 font-medium transition-colors">
  245.                            Log In
  246.                        </a>
  247.                        <a href="/accounts/signup/" class="bg-blue-600 hover:bg-blue-500 text-white px-4 py-2 rounded-lg font-medium shadow-sm transition-colors">
  248.                            Sign Up
  249.                        </a>
  250.                    </div>
  251.                
  252.  
  253.                <!-- Mobile Menu Button -->
  254.                <button id="mobileMenuBtn" class="lg:hidden p-2 text-gray-700 hover:text-blue-600 hover:bg-gray-50 rounded-lg transition-colors" aria-label="Open mobile menu">
  255.                    <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  256.                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
  257.                    </svg>
  258.                </button>
  259.            </div>
  260.        </div>
  261.    </div>
  262. </header>
  263.  
  264. <!-- Enhanced Search Overlay -->
  265. <div id="searchOverlay" class="fixed inset-0 bg-black/20 backdrop-blur-sm z-50 hidden">
  266.    <div class="flex items-start justify-center pt-20 px-4">
  267.        <div class="w-full max-w-4xl bg-white rounded-xl shadow-2xl">
  268.            <div class="p-6">
  269.                <!-- Search Input Header -->
  270.                <div class="flex items-center mb-4">
  271.                    <svg class="w-5 h-5 text-gray-400 mr-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  272.                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/>
  273.                    </svg>
  274.                    <input type="text" id="searchInput" placeholder="Search tools and converters..." class="flex-1 text-lg search-input border rounded-lg px-4 py-3 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500" autocomplete="off">
  275.                    <button id="closeSearch" class="ml-3 p-2 text-gray-400 hover:text-gray-700 transition-colors">
  276.                        <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  277.                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
  278.                        </svg>
  279.                    </button>
  280.                </div>
  281.  
  282.                <!-- Search Results Container -->
  283.                <div id="searchResults" class="hidden">
  284.                    <div class="border-t pt-4">
  285.                        <div class="text-sm font-semibold text-gray-900 mb-3">
  286.                            <span id="resultsCount">0</span> Tools Found
  287.                        </div>
  288.                        <div id="searchResultsList" class="space-y-2 max-h-80 overflow-y-auto">
  289.                            <!-- Search results will be inserted here -->
  290.                        </div>
  291.                    </div>
  292.                </div>
  293.  
  294.                <!-- Popular Searches -->
  295.                <div id="popularSearches" class="border-t pt-4">
  296.                    <div class="text-sm font-semibold text-gray-900 mb-3">Popular Searches</div>
  297.                    <div class="flex flex-wrap gap-2">
  298.                        <span class="popular-search-tag px-3 py-1 bg-gray-100 text-gray-800 text-sm rounded-full cursor-pointer hover:bg-gray-200 transition-colors" data-search="Image Compressor">Image Compressor</span>
  299.                        <span class="popular-search-tag px-3 py-1 bg-gray-100 text-gray-800 text-sm rounded-full cursor-pointer hover:bg-gray-200 transition-colors" data-search="MP3 Converter">MP3 Converter</span>
  300.                        <span class="popular-search-tag px-3 py-1 bg-gray-100 text-gray-800 text-sm rounded-full cursor-pointer hover:bg-gray-200 transition-colors" data-search="Video Converter">Video Converter</span>
  301.                        <span class="popular-search-tag px-3 py-1 bg-gray-100 text-gray-800 text-sm rounded-full cursor-pointer hover:bg-gray-200 transition-colors" data-search="Time Converter">Time Converter</span>
  302.                        <span class="popular-search-tag px-3 py-1 bg-gray-100 text-gray-800 text-sm rounded-full cursor-pointer hover:bg-gray-200 transition-colors" data-search="JPG to PNG">JPG to PNG</span>
  303.                        <span class="popular-search-tag px-3 py-1 bg-gray-100 text-gray-800 text-sm rounded-full cursor-pointer hover:bg-gray-200 transition-colors" data-search="AVI to MP4">AVI to MP4</span>
  304.                    </div>
  305.                </div>
  306.  
  307.                <!-- No Results State -->
  308.                <div id="noResults" class="hidden border-t pt-4">
  309.                    <div class="text-center py-8">
  310.                        <svg class="w-12 h-12 text-gray-400 mx-auto mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  311.                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.172 16.172a4 4 0 015.656 0M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
  312.                        </svg>
  313.                        <div class="text-lg font-medium text-gray-900 mb-2">No tools found</div>
  314.                        <p class="text-gray-700 mb-4">Try searching for a different term or browse our categories.</p>
  315.                        <button id="browseAllTools" class="text-blue-600 hover:text-blue-700 font-medium">Browse All Tools</button>
  316.                    </div>
  317.                </div>
  318.            </div>
  319.        </div>
  320.    </div>
  321. </div>
  322.  
  323. <!-- Mobile Menu -->
  324. <div id="mobileMenu" class="lg:hidden fixed inset-y-0 left-0 w-80 bg-white shadow-xl z-50 mobile-menu transform -translate-x-full transition-transform duration-300 ease-in-out">
  325.    <div class="flex flex-col h-full">
  326.        <!-- Mobile Header -->
  327.        <div class="flex items-center justify-between p-6 border-b border-gray-200">
  328.            <div class="flex items-center space-x-3">
  329.                <img src="/static/logo.svg" alt="iformat.io Logo" class="h-8 w-auto">
  330.                <span class="text-xl font-normal text-blue-600">iformat.io</span>
  331.            </div>
  332.            <button id="closeMobileMenu" class="p-2 text-gray-700 hover:text-gray-900 transition-colors"
  333.                                aria-label="Close mobile menu">
  334.                <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  335.                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
  336.                </svg>
  337.            </button>
  338.        </div>
  339.  
  340.        <!-- Mobile Navigation -->
  341.        <div class="flex-1 overflow-y-auto p-6">
  342.            <!-- Tools Section -->
  343.            <div class="mb-6">
  344.                <div class="text-sm font-semibold text-gray-900 mb-4">TOOLS</div>
  345.                <div class="space-y-4">
  346.                    <!-- Image Tools -->
  347.                    <div>
  348.                        <div class="flex items-center text-green-600 mb-3">
  349.                            <div class="w-6 h-6 bg-gradient-to-br from-green-500 to-emerald-600 rounded-lg mr-3 flex items-center justify-center">
  350.                                <svg class="w-3 h-3 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  351.                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16"/>
  352.                                </svg>
  353.                            </div>
  354.                            <span class="font-medium">Image</span>
  355.                        </div>
  356.                        <div class="ml-9 space-y-2">
  357.                            <a href="/image-converter" class="block text-sm text-gray-700 py-1 hover:text-green-600 transition-colors">Image Converter</a>
  358.                            <a href="/jpg-to-png" class="block text-sm text-gray-700 py-1 hover:text-green-600 transition-colors">JPG to PNG</a>
  359.                            <a href="/png-to-jpg" class="block text-sm text-gray-700 py-1 hover:text-green-600 transition-colors">PNG to JPG</a>
  360.                        </div>
  361.                    </div>
  362.  
  363.                    <!-- Audio Tools -->
  364.                    <div>
  365.                        <div class="flex items-center text-purple-600 mb-3">
  366.                            <div class="w-6 h-6 bg-gradient-to-br from-purple-500 to-violet-600 rounded-lg mr-3 flex items-center justify-center">
  367.                                <svg class="w-3 h-3 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  368.                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19V6l12-3v13"/>
  369.                                </svg>
  370.                            </div>
  371.                            <span class="font-medium">Audio</span>
  372.                        </div>
  373.                        <div class="ml-9 space-y-2">
  374.                            <a href="/audio-converter" class="block text-sm text-gray-700 py-1 hover:text-purple-600 transition-colors">Audio Converter</a>
  375.                            <a href="/mp3-converter" class="block text-sm text-gray-700 py-1 hover:text-purple-600 transition-colors">MP3 Converter</a>
  376.                        </div>
  377.                    </div>
  378.  
  379.                    <!-- Video Tools -->
  380.                    <div>
  381.                        <div class="flex items-center text-blue-600 mb-3">
  382.                            <div class="w-6 h-6 bg-gradient-to-br from-blue-500 to-cyan-600 rounded-lg mr-3 flex items-center justify-center">
  383.                                <svg class="w-3 h-3 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  384.                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14"/>
  385.                                </svg>
  386.                            </div>
  387.                            <span class="font-medium">Video</span>
  388.                        </div>
  389.                        <div class="ml-9 space-y-2">
  390.                            <a href="/video-converter" class="block text-sm text-gray-700 py-1 hover:text-blue-600 transition-colors">Video Converter</a>
  391.                            <a href="/mp4-converter" class="block text-sm text-gray-700 py-1 hover:text-blue-600 transition-colors">MP4 Converter</a>
  392.                        </div>
  393.                    </div>
  394.  
  395.                    <!-- Other Tools -->
  396.                    <div>
  397.                        <div class="flex items-center text-orange-600 mb-3">
  398.                            <div class="w-6 h-6 bg-gradient-to-br from-orange-500 to-red-500 rounded-lg mr-3 flex items-center justify-center">
  399.                                <svg class="w-3 h-3 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  400.                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/>
  401.                                </svg>
  402.                            </div>
  403.                            <span class="font-medium">Others</span>
  404.                        </div>
  405.                        <div class="ml-9 space-y-2">
  406.                            <a href="/time-converter" class="block text-sm text-gray-700 py-1 hover:text-orange-600 transition-colors">Time Converter</a>
  407.                            <a href="/unit-converter" class="block text-sm text-gray-700 py-1 hover:text-orange-600 transition-colors">Unit Converter</a>
  408.                        </div>
  409.                    </div>
  410.                </div>
  411.            </div>
  412.  
  413.            <!-- Navigation Links -->
  414.            <div class="mb-6 space-y-2">
  415.                <a href="/blog" class="block px-3 py-2 text-gray-800 hover:text-blue-600 hover:bg-gray-50 rounded-md font-medium transition-colors">Blog</a>
  416.                <a href="/donate" class="block px-3 py-2 text-gray-800 hover:text-blue-600 hover:bg-gray-50 rounded-md font-medium transition-colors">Donate</a>
  417.            </div>
  418.        </div>
  419.  
  420.        <!-- Mobile Auth Section -->
  421.        <div class="border-t border-gray-200 p-6">
  422.            
  423.                <!-- Guest Mobile User -->
  424.                <div class="space-y-3">
  425.                    <a href="/accounts/login/" class="block w-full text-center px-4 py-2 border border-gray-300 rounded-lg text-gray-800 hover:bg-gray-50 transition-colors">
  426.                        Log In
  427.                    </a>
  428.                    <a href="/accounts/signup/" class="block w-full text-center px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-lg transition-colors">
  429.                        Sign Up
  430.                    </a>
  431.                </div>
  432.            
  433.        </div>
  434.    </div>
  435. </div>
  436.  
  437. <!-- Mobile Menu Overlay -->
  438. <div id="mobileMenuOverlay" class="lg:hidden fixed inset-0 bg-black/50 z-40 hidden"></div>
  439.  
  440. <style>
  441. /* User Avatar Styling */
  442. .user-avatar {
  443.    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  444.    border: 2px solid white;
  445.    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  446. }
  447.  
  448. /* Enhanced Dropdown Animations */
  449. .dropdown .dropdown-menu {
  450.    transform: translateY(-10px);
  451.    transition: all 0.2s ease-out;
  452. }
  453.  
  454. .dropdown:hover .dropdown-menu,
  455. .dropdown.group:hover .dropdown-menu {
  456.    transform: translateY(0);
  457. }
  458.  
  459. /* Mobile Menu Animations */
  460. .mobile-menu.open {
  461.    transform: translateX(0);
  462. }
  463.  
  464. /* Search Overlay Styling */
  465. .search-overlay {
  466.    animation: fadeIn 0.2s ease-out;
  467. }
  468.  
  469. @keyframes fadeIn {
  470.    from { opacity: 0; }
  471.    to { opacity: 1; }
  472. }
  473.  
  474. .search-input {
  475.    background: rgba(255, 255, 255, 0.9);
  476.    border: 1px solid rgba(59, 130, 246, 0.3);
  477.    transition: all 0.2s ease;
  478. }
  479.  
  480. .search-input:focus {
  481.    border-color: #3b82f6;
  482.    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
  483. }
  484.  
  485. /* Search Result Items */
  486. .search-result-item {
  487.    display: flex;
  488.    align-items: center;
  489.    padding: 12px;
  490.    border-radius: 8px;
  491.    cursor: pointer;
  492.    transition: all 0.2s ease;
  493.    border: 1px solid transparent;
  494. }
  495.  
  496. .search-result-item:hover {
  497.    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
  498.    border-color: #e2e8f0;
  499.    transform: translateY(-1px);
  500. }
  501.  
  502. .search-result-item.selected {
  503.    background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  504.    border-color: #3b82f6;
  505. }
  506.  
  507. .search-result-icon {
  508.    width: 40px;
  509.    height: 40px;
  510.    border-radius: 10px;
  511.    display: flex;
  512.    align-items: center;
  513.    justify-content: center;
  514.    margin-right: 12px;
  515.    flex-shrink: 0;
  516. }
  517.  
  518. .category-image { background: linear-gradient(135deg, #10b981 0%, #059669 100%); }
  519. .category-audio { background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%); }
  520. .category-video { background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%); }
  521. .category-time { background: linear-gradient(135deg, #f97316 0%, #ea580c 100%); }
  522.  
  523. /* Scrollbar Styling */
  524. #searchResultsList::-webkit-scrollbar {
  525.    width: 6px;
  526. }
  527.  
  528. #searchResultsList::-webkit-scrollbar-track {
  529.    background: #f1f1f1;
  530.    border-radius: 3px;
  531. }
  532.  
  533. #searchResultsList::-webkit-scrollbar-thumb {
  534.    background: #c1c1c1;
  535.    border-radius: 3px;
  536. }
  537.  
  538. #searchResultsList::-webkit-scrollbar-thumb:hover {
  539.    background: #a8a8a8;
  540. }
  541.  
  542. /* Responsive Design */
  543. @media (max-width: 1024px) {
  544.    .dropdown-menu {
  545.        position: fixed !important;
  546.        top: 4rem !important;
  547.        left: 1rem !important;
  548.        right: 1rem !important;
  549.        width: auto !important;
  550.        min-width: auto !important;
  551.    }
  552.  
  553.    .dropdown-menu .grid {
  554.        grid-template-columns: repeat(2, 1fr) !important;
  555.        gap: 1rem !important;
  556.    }
  557. }
  558.  
  559. /* Accessibility Improvements */
  560. @media (prefers-reduced-motion: reduce) {
  561.    * {
  562.        animation-duration: 0.01ms !important;
  563.        animation-iteration-count: 1 !important;
  564.        transition-duration: 0.01ms !important;
  565.    }
  566. }
  567.  
  568. /* Focus Styles */
  569. button:focus-visible,
  570. a:focus-visible {
  571.    outline: 2px solid #3b82f6;
  572.    outline-offset: 2px;
  573. }
  574.  
  575. /* Style all links within page descriptions */
  576. .page-description a {
  577.    color: #2563eb; /* Blue color */
  578.    text-decoration: underline;
  579.    font-weight: 500;
  580.    transition: color 0.2s ease;
  581. }
  582.  
  583. .page-description a:hover {
  584.    color: #1d4ed8; /* Darker blue on hover */
  585.    text-decoration: underline;
  586. }
  587. </style>
  588.  
  589. <script>
  590. // Enhanced Header Functionality
  591. class HeaderManager {
  592.    constructor() {
  593.        this.initializeSearch();
  594.        this.initializeMobileMenu();
  595.        this.initializeDropdowns();
  596.        this.bindEvents();
  597.    }
  598.  
  599.    initializeSearch() {
  600.        this.searchBtn = document.getElementById('searchBtn');
  601.        this.searchOverlay = document.getElementById('searchOverlay');
  602.        this.searchInput = document.getElementById('searchInput');
  603.        this.closeSearch = document.getElementById('closeSearch');
  604.        this.searchResults = document.getElementById('searchResults');
  605.        this.searchResultsList = document.getElementById('searchResultsList');
  606.        this.popularSearches = document.getElementById('popularSearches');
  607.        this.noResults = document.getElementById('noResults');
  608.        this.resultsCount = document.getElementById('resultsCount');
  609.  
  610.        this.selectedIndex = -1;
  611.        this.currentResults = [];
  612.  
  613.        this.initializeTools();
  614.    }
  615.  
  616.    initializeMobileMenu() {
  617.        this.mobileMenuBtn = document.getElementById('mobileMenuBtn');
  618.        this.mobileMenu = document.getElementById('mobileMenu');
  619.        this.mobileMenuOverlay = document.getElementById('mobileMenuOverlay');
  620.        this.closeMobileMenu = document.getElementById('closeMobileMenu');
  621.    }
  622.  
  623.    initializeDropdowns() {
  624.        // Enhanced dropdown functionality for better UX
  625.        const dropdowns = document.querySelectorAll('.dropdown');
  626.        dropdowns.forEach(dropdown => {
  627.            const menu = dropdown.querySelector('.dropdown-menu');
  628.            let timeout;
  629.  
  630.            dropdown.addEventListener('mouseenter', () => {
  631.                clearTimeout(timeout);
  632.                menu.style.display = 'block';
  633.                setTimeout(() => {
  634.                    menu.classList.add('opacity-100', 'visible');
  635.                    menu.classList.remove('opacity-0', 'invisible');
  636.                }, 10);
  637.            });
  638.  
  639.            dropdown.addEventListener('mouseleave', () => {
  640.                menu.classList.add('opacity-0', 'invisible');
  641.                menu.classList.remove('opacity-100', 'visible');
  642.                timeout = setTimeout(() => {
  643.                    menu.style.display = 'none';
  644.                }, 200);
  645.            });
  646.        });
  647.    }
  648.  
  649.    initializeTools() {
  650.        this.tools = [
  651.            // Image Tools
  652.            { name: 'Image Converter', category: 'image', url: '/image-converter', description: 'Convert between different image formats', keywords: ['image', 'convert', 'format', 'jpg', 'png', 'gif'] },
  653.            { name: 'JPG to PNG', category: 'image', url: '/jpg-to-png', description: 'Convert JPG images to PNG format', keywords: ['jpg', 'jpeg', 'png', 'convert'] },
  654.            { name: 'PNG to JPG', category: 'image', url: '/png-to-jpg', description: 'Convert PNG images to JPG format', keywords: ['png', 'jpg', 'jpeg', 'convert'] },
  655.            { name: 'HEIC to JPG', category: 'image', url: '/heic-to-jpg', description: 'Convert HEIC images to JPG format', keywords: ['heic', 'jpg', 'jpeg', 'convert', 'apple'] },
  656.            // Audio Tools
  657.            { name: 'Audio Converter', category: 'audio', url: '/audio-converter', description: 'Convert between different audio formats', keywords: ['audio', 'convert', 'mp3', 'wav', 'flac'] },
  658.            { name: 'MP3 Converter', category: 'audio', url: '/mp3-converter', description: 'Convert audio files to MP3 format', keywords: ['mp3', 'convert', 'audio'] },
  659.            { name: 'MP4 to MP3', category: 'audio', url: '/mp4-to-mp3', description: 'Convert MP4 files to MP3 format', keywords: ['mp4', 'mp3', 'convert'] },
  660.            { name: 'WAV to MP3', category: 'audio', url: '/wav-to-mp3', description: 'Convert WAV files to MP3 format', keywords: ['wav', 'mp3', 'convert'] },
  661.            // Video Tools
  662.            { name: 'Video Converter', category: 'video', url: '/video-converter', description: 'Convert between different video formats', keywords: ['video', 'convert', 'mp4', 'avi', 'mov'] },
  663.            { name: 'MP4 Converter', category: 'video', url: '/mp4-converter', description: 'Convert videos to MP4 format', keywords: ['mp4', 'convert', 'video'] },
  664.            { name: 'AVI to MP4', category: 'video', url: '/avi-to-mp4', description: 'Convert AVI videos to MP4 format', keywords: ['avi', 'mp4', 'convert'] },
  665.            { name: 'MOV to MP4', category: 'video', url: '/mov-to-mp4', description: 'Convert MOV videos to MP4 format', keywords: ['mov', 'mp4', 'convert'] },
  666.            // Other Tools
  667.            { name: 'Time Converter', category: 'time', url: '/time-converter', description: 'Convert between different time zones', keywords: ['time', 'timezone', 'convert', 'utc'] },
  668.            { name: 'Unit Converter', category: 'unit', url: '/unit-converter', description: 'Convert between different units', keywords: ['unit', 'convert', 'measurement'] }
  669.        ];
  670.    }
  671.  
  672.    bindEvents() {
  673.        // Search Events
  674.        if (this.searchBtn) {
  675.            this.searchBtn.addEventListener('click', () => this.openSearch());
  676.        }
  677.  
  678.        if (this.closeSearch) {
  679.            this.closeSearch.addEventListener('click', () => this.closeSearchOverlay());
  680.        }
  681.  
  682.        if (this.searchOverlay) {
  683.            this.searchOverlay.addEventListener('click', (e) => {
  684.                if (e.target === this.searchOverlay) {
  685.                    this.closeSearchOverlay();
  686.                }
  687.            });
  688.        }
  689.  
  690.        if (this.searchInput) {
  691.            this.searchInput.addEventListener('input', (e) => this.handleSearch(e.target.value));
  692.            this.searchInput.addEventListener('keydown', (e) => this.handleKeydown(e));
  693.        }
  694.  
  695.        // Mobile Menu Events
  696.        if (this.mobileMenuBtn) {
  697.            this.mobileMenuBtn.addEventListener('click', () => this.openMobileMenu());
  698.        }
  699.  
  700.        if (this.closeMobileMenu) {
  701.            this.closeMobileMenu.addEventListener('click', () => this.closeMobileMenuOverlay());
  702.        }
  703.  
  704.        if (this.mobileMenuOverlay) {
  705.            this.mobileMenuOverlay.addEventListener('click', () => this.closeMobileMenuOverlay());
  706.        }
  707.  
  708.        // Popular Search Tags
  709.        document.querySelectorAll('.popular-search-tag').forEach(tag => {
  710.            tag.addEventListener('click', (e) => {
  711.                const searchTerm = e.target.dataset.search;
  712.                this.performSearch(searchTerm);
  713.            });
  714.        });
  715.  
  716.        // Keyboard Events
  717.        document.addEventListener('keydown', (e) => {
  718.            if (e.key === 'Escape') {
  719.                this.closeSearchOverlay();
  720.                this.closeMobileMenuOverlay();
  721.            }
  722.        });
  723.    }
  724.  
  725.    // Search Methods
  726.    openSearch() {
  727.        if (this.searchOverlay) {
  728.            this.searchOverlay.classList.remove('hidden');
  729.            document.body.style.overflow = 'hidden';
  730.            setTimeout(() => {
  731.                if (this.searchInput) {
  732.                    this.searchInput.focus();
  733.                }
  734.            }, 100);
  735.        }
  736.    }
  737.  
  738.    closeSearchOverlay() {
  739.        if (this.searchOverlay) {
  740.            this.searchOverlay.classList.add('hidden');
  741.            document.body.style.overflow = 'auto';
  742.            if (this.searchInput) {
  743.                this.searchInput.value = '';
  744.            }
  745.            this.showDefaultState();
  746.        }
  747.    }
  748.  
  749.    handleSearch(query) {
  750.        if (query.trim() === '') {
  751.            this.showDefaultState();
  752.            return;
  753.        }
  754.  
  755.        const results = this.searchTools(query);
  756.        this.displayResults(results, query);
  757.        this.selectedIndex = -1;
  758.    }
  759.  
  760.    searchTools(query) {
  761.        const searchTerm = query.toLowerCase().trim();
  762.        return this.tools.filter(tool => {
  763.            return tool.name.toLowerCase().includes(searchTerm) ||
  764.                   tool.description.toLowerCase().includes(searchTerm) ||
  765.                   tool.keywords.some(keyword => keyword.includes(searchTerm)) ||
  766.                   tool.category.includes(searchTerm);
  767.        }).sort((a, b) => {
  768.            const aNameMatch = a.name.toLowerCase().includes(searchTerm);
  769.            const bNameMatch = b.name.toLowerCase().includes(searchTerm);
  770.            if (aNameMatch && !bNameMatch) return -1;
  771.            if (!aNameMatch && bNameMatch) return 1;
  772.            return a.name.localeCompare(b.name);
  773.        });
  774.    }
  775.  
  776.    displayResults(results, query) {
  777.        this.currentResults = results;
  778.  
  779.        if (results.length === 0) {
  780.            this.showNoResults();
  781.            return;
  782.        }
  783.  
  784.        if (this.searchResults) {
  785.            this.searchResults.classList.remove('hidden');
  786.        }
  787.        if (this.popularSearches) {
  788.            this.popularSearches.classList.add('hidden');
  789.        }
  790.        if (this.noResults) {
  791.            this.noResults.classList.add('hidden');
  792.        }
  793.  
  794.        if (this.resultsCount) {
  795.            this.resultsCount.textContent = results.length;
  796.        }
  797.  
  798.        if (this.searchResultsList) {
  799.            this.searchResultsList.innerHTML = results.map((tool, index) => `
  800.                <div class="search-result-item" data-index="${index}" data-url="${tool.url}">
  801.                    <div class="search-result-icon category-${tool.category}">
  802.                        ${this.getCategoryIcon(tool.category)}
  803.                    </div>
  804.                    <div class="flex-1">
  805.                        <div class="font-medium text-gray-900">${this.highlightMatch(tool.name, query)}</div>
  806.                        <p class="text-sm text-gray-700 mt-1">${tool.description}</p>
  807.                        <span class="inline-block mt-2 px-2 py-1 bg-gray-100 text-gray-700 text-xs rounded-full capitalize">${this.getCategoryLabel(tool.category)}</span>
  808.                    </div>
  809.                    <svg class="w-5 h-5 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  810.                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
  811.                    </svg>
  812.                </div>
  813.            `).join('');
  814.  
  815.            // Add click handlers
  816.            this.searchResultsList.querySelectorAll('.search-result-item').forEach(item => {
  817.                item.addEventListener('click', () => {
  818.                    this.selectResult(item.dataset.url, query);
  819.                });
  820.            });
  821.        }
  822.    }
  823.  
  824.    getCategoryIcon(category) {
  825.        const icons = {
  826.            image: '<svg class="w-5 h-5 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"/></svg>',
  827.            audio: '<svg class="w-5 h-5 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19V6l12-3v13M9 19c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zm12-3c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zM9 10l12-3"/></svg>',
  828.            video: '<svg class="w-5 h-5 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"/></svg>',
  829.            time: '<svg class="w-5 h-5 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>'
  830.        };
  831.        return icons[category] || icons.image;
  832.    }
  833.  
  834.    getCategoryLabel(category) {
  835.        const labels = {
  836.            image: 'Image Tool',
  837.            audio: 'Audio Tool',
  838.            video: 'Video Tool',
  839.            time: 'Time Tool'
  840.        };
  841.        return labels[category] || 'Tool';
  842.    }
  843.  
  844.    highlightMatch(text, query) {
  845.        if (!query) return text;
  846.        const regex = new RegExp(`(${query})`, 'gi');
  847.        return text.replace(regex, '<span class="bg-yellow-200 font-semibold">$1</span>');
  848.    }
  849.  
  850.    handleKeydown(e) {
  851.        if (this.currentResults.length === 0) return;
  852.  
  853.        switch (e.key) {
  854.            case 'ArrowDown':
  855.                e.preventDefault();
  856.                this.selectedIndex = Math.min(this.selectedIndex + 1, this.currentResults.length - 1);
  857.                this.updateSelection();
  858.                break;
  859.            case 'ArrowUp':
  860.                e.preventDefault();
  861.                this.selectedIndex = Math.max(this.selectedIndex - 1, -1);
  862.                this.updateSelection();
  863.                break;
  864.            case 'Enter':
  865.                e.preventDefault();
  866.                if (this.selectedIndex >= 0) {
  867.                    this.selectResult(this.currentResults[this.selectedIndex].url, this.searchInput.value);
  868.                }
  869.                break;
  870.        }
  871.    }
  872.  
  873.    updateSelection() {
  874.        if (this.searchResultsList) {
  875.            this.searchResultsList.querySelectorAll('.search-result-item').forEach((item, index) => {
  876.                if (index === this.selectedIndex) {
  877.                    item.classList.add('selected');
  878.                    item.scrollIntoView({block: 'nearest'});
  879.                } else {
  880.                    item.classList.remove('selected');
  881.                }
  882.            });
  883.        }
  884.    }
  885.  
  886.    selectResult(url, query) {
  887.        window.location.href = url;
  888.        this.closeSearchOverlay();
  889.    }
  890.  
  891.    performSearch(searchTerm) {
  892.        if (this.searchInput) {
  893.            this.searchInput.value = searchTerm;
  894.            this.handleSearch(searchTerm);
  895.            this.searchInput.focus();
  896.        }
  897.    }
  898.  
  899.    showDefaultState() {
  900.        if (this.searchResults) {
  901.            this.searchResults.classList.add('hidden');
  902.        }
  903.        if (this.noResults) {
  904.            this.noResults.classList.add('hidden');
  905.        }
  906.        if (this.popularSearches) {
  907.            this.popularSearches.classList.remove('hidden');
  908.        }
  909.    }
  910.  
  911.    showNoResults() {
  912.        if (this.searchResults) {
  913.            this.searchResults.classList.add('hidden');
  914.        }
  915.        if (this.popularSearches) {
  916.            this.popularSearches.classList.add('hidden');
  917.        }
  918.        if (this.noResults) {
  919.            this.noResults.classList.remove('hidden');
  920.        }
  921.    }
  922.  
  923.    // Mobile Menu Methods
  924.    openMobileMenu() {
  925.        if (this.mobileMenu && this.mobileMenuOverlay) {
  926.            this.mobileMenu.classList.add('open');
  927.            this.mobileMenuOverlay.classList.remove('hidden');
  928.            document.body.style.overflow = 'hidden';
  929.        }
  930.    }
  931.  
  932.    closeMobileMenuOverlay() {
  933.        if (this.mobileMenu && this.mobileMenuOverlay) {
  934.            this.mobileMenu.classList.remove('open');
  935.            this.mobileMenuOverlay.classList.add('hidden');
  936.            document.body.style.overflow = 'auto';
  937.        }
  938.    }
  939. }
  940.  
  941. // Initialize when DOM is loaded
  942. document.addEventListener('DOMContentLoaded', function() {
  943.    new HeaderManager();
  944. });
  945. </script>
  946.  
  947.  
  948.  
  949. <div class="min-h-screen bg-white">
  950.    <div class="container mx-auto px-4 flex items-center justify-center min-h-screen">
  951.        <div class="max-w-4xl mx-auto text-center">
  952.  
  953.            <!-- Google Logo Style Element (Optional) -->
  954.            <div class="mb-12">
  955.                <div class="inline-flex items-center space-x-1 text-6xl font-normal tracking-tight">
  956.                    <span class="text-blue-500">4</span>
  957.                    <span class="text-red-500">0</span>
  958.                    <span class="text-yellow-500">4</span>
  959.                </div>
  960.            </div>
  961.  
  962.            <!-- Main Content -->
  963.            <div class="mb-12">
  964.                <h1 class="text-2xl text-gray-800 font-normal mb-4">
  965.                    Page not found
  966.                </h1>
  967.  
  968.                <p class="text-base text-gray-600 mb-8 max-w-md mx-auto leading-6">
  969.                    The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.
  970.                </p>
  971.            </div>
  972.  
  973.            <!-- Action Buttons -->
  974.            <div class="flex flex-col sm:flex-row gap-3 justify-center items-center mb-12">
  975.                <!-- Return Home Button -->
  976.                <a href="/"
  977.                   class="inline-flex items-center px-6 py-2 bg-blue-600 text-white text-sm font-medium rounded hover:bg-blue-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2">
  978.                    <svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  979.                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path>
  980.                    </svg>
  981.                    Go to homepage
  982.                </a>
  983.  
  984.                <!-- Go Back Button -->
  985.                <button onclick="history.back()"
  986.                        class="inline-flex items-center px-6 py-2 border border-gray-300 text-sm font-medium text-gray-700 bg-white rounded hover:bg-gray-50 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2">
  987.                    <svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  988.                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 17l-5-5m0 0l5-5m-5 5h12"></path>
  989.                    </svg>
  990.                    Go back
  991.                </button>
  992.            </div>
  993.  
  994.            <!-- Quick Links Section -->
  995.            <div class="border-t border-gray-200 pt-8">
  996.                <p class="text-sm text-gray-500 mb-6">You might want to try:</p>
  997.  
  998.                <div class="grid grid-cols-2 md:grid-cols-4 gap-4 max-w-md mx-auto">
  999.                    <a href="/" class="group text-center p-4 rounded-lg hover:bg-gray-50 transition-colors duration-200">
  1000.                        <div class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-2 group-hover:bg-blue-100 transition-colors duration-200">
  1001.                            <svg class="w-4 h-4 text-gray-600 group-hover:text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  1002.                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path>
  1003.                            </svg>
  1004.                        </div>
  1005.                        <p class="text-xs text-gray-700 group-hover:text-blue-600">Home</p>
  1006.                    </a>
  1007.  
  1008.                    <a href="/about" class="group text-center p-4 rounded-lg hover:bg-gray-50 transition-colors duration-200">
  1009.                        <div class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-2 group-hover:bg-blue-100 transition-colors duration-200">
  1010.                            <svg class="w-4 h-4 text-gray-600 group-hover:text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  1011.                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
  1012.                            </svg>
  1013.                        </div>
  1014.                        <p class="text-xs text-gray-700 group-hover:text-blue-600">About</p>
  1015.                    </a>
  1016.  
  1017.                    <a href="/contact" class="group text-center p-4 rounded-lg hover:bg-gray-50 transition-colors duration-200">
  1018.                        <div class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-2 group-hover:bg-blue-100 transition-colors duration-200">
  1019.                            <svg class="w-4 h-4 text-gray-600 group-hover:text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  1020.                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path>
  1021.                            </svg>
  1022.                        </div>
  1023.                        <p class="text-xs text-gray-700 group-hover:text-blue-600">Contact</p>
  1024.                    </a>
  1025.  
  1026.                    <a href="/all-tools" class="group text-center p-4 rounded-lg hover:bg-gray-50 transition-colors duration-200">
  1027.                        <div class="w-8 h-8 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-2 group-hover:bg-blue-100 transition-colors duration-200">
  1028.                            <svg class="w-4 h-4 text-gray-600 group-hover:text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  1029.                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19.428 15.428a2 2 0 00-1.022-.547l-2.387-.477a6 6 0 00-3.86.517l-.318.158a6 6 0 01-3.86.517L6.05 15.21a2 2 0 00-1.806.547M8 4h8l-1 1v5.172a2 2 0 00.586 1.414l5 5c1.26 1.26.367 3.414-1.415 3.414H4.828c-1.782 0-2.674-2.154-1.414-3.414l5-5A2 2 0 009 10.172V5L8 4z"></path>
  1030.                            </svg>
  1031.                        </div>
  1032.                        <p class="text-xs text-gray-700 group-hover:text-blue-600">Tools</p>
  1033.                    </a>
  1034.                </div>
  1035.            </div>
  1036.  
  1037.            <!-- Footer Message -->
  1038.            <div class="mt-8">
  1039.                <p class="text-xs text-gray-400">
  1040.                    Error 404
  1041.                </p>
  1042.            </div>
  1043.        </div>
  1044.    </div>
  1045. </div>
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053. <!-- Footer -->
  1054. <footer class="bg-gray-900 text-white py-16">
  1055.    <div class="container mx-auto max-w-screen-xl px-6">
  1056.        <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-8">
  1057.            <!-- AI & Image Tools - NEW -->
  1058.            <div>
  1059.                <div class="flex items-center mb-4">
  1060.                    <div class="text-lg font-semibold text-purple-300">AI & Image Tools</div>
  1061.                    <span class="ml-2 bg-gradient-to-r from-purple-500 to-pink-500 text-white text-xs font-bold px-2 py-0.5 rounded-full">NEW</span>
  1062.                </div>
  1063.                <ul class="space-y-2">
  1064.                    <li>
  1065.                        <a href="/free-bg-remover-online" class="accessible-link-footer flex items-center group">
  1066.                            <span class="mr-1 text-purple-400">✨</span>
  1067.                            AI Background Remover
  1068.                        </a>
  1069.                    </li>
  1070.                    <li><a href="/image-compressor" class="accessible-link-footer">Image Compressor</a></li>
  1071.                    <li><a href="/jpg-to-png" class="accessible-link-footer">JPG to PNG Converter</a></li>
  1072.                    <li><a href="/webp-converter" class="accessible-link-footer">WebP Converter</a></li>
  1073.                    <li><a href="/heic-to-jpg" class="accessible-link-footer">HEIC to JPG</a></li>
  1074.                </ul>
  1075.            </div>
  1076.  
  1077.            <!-- PDF Tools -->
  1078.            <div>
  1079.                <div class="text-lg font-semibold mb-4 text-red-300">PDF Tools</div>
  1080.                <ul class="space-y-2">
  1081.                    <li><a href="/merge-pdf-free-online" class="accessible-link-footer">Merge PDF</a></li>
  1082.                    <li><a href="/split-pdf-free-online" class="accessible-link-footer">Split PDF</a></li>
  1083.                    <li><a href="/pdf-to-doc" class="accessible-link-footer">PDF to Word</a></li>
  1084.                    <li><a href="/docx-to-pdf" class="accessible-link-footer">Word to PDF</a></li>
  1085.                    <li><a href="/pdf-compressor" class="accessible-link-footer">Compress PDF</a></li>
  1086.                </ul>
  1087.            </div>
  1088.  
  1089.            <!-- Video & Audio Tools -->
  1090.            <div>
  1091.                <div class="text-lg font-semibold mb-4 text-blue-300">Video & Audio Tools</div>
  1092.                <ul class="space-y-2">
  1093.                    <li><a href="/video-to-mp3" class="accessible-link-footer">Video to MP3</a></li>
  1094.                    <li><a href="/mp4-to-mp3" class="accessible-link-footer">MP4 to MP3</a></li>
  1095.                    <li><a href="/avi-to-mp4" class="accessible-link-footer">AVI to MP4</a></li>
  1096.                    <li><a href="/flac-to-mp3" class="accessible-link-footer">FLAC to MP3</a></li>
  1097.                    <li><a href="/audio-converter" class="accessible-link-footer">Audio Converter</a></li>
  1098.                </ul>
  1099.            </div>
  1100.  
  1101.            <!-- Time & Unit Converters -->
  1102.            <div>
  1103.                <div class="text-lg font-semibold mb-4 text-green-300">Time & Unit Tools</div>
  1104.                <ul class="space-y-2">
  1105.                    <li><a href="/time-converter" class="accessible-link-footer">Time Zone Converter</a></li>
  1106.                    <li><a href="/convert-utc-to-ist-time" class="accessible-link-footer">UTC to IST</a></li>
  1107.                    <li><a href="/convert-pst-to-jst-time" class="accessible-link-footer">PST to JST</a></li>
  1108.                    <li><a href="/unit-converter" class="accessible-link-footer">Unit Converter</a></li>
  1109.                    <li><a href="/celsius-to-fahrenheit" class="accessible-link-footer">Temp Converter</a></li>
  1110.                </ul>
  1111.            </div>
  1112.  
  1113.            <!-- Company & Support -->
  1114.            <div>
  1115.                <div class="text-lg font-semibold mb-4 text-yellow-300">Company</div>
  1116.                <ul class="space-y-2">
  1117.                    <li><a href="/about-us" class="accessible-link-footer">About Us</a></li>
  1118.                    <li><a href="/blog" class="accessible-link-footer">Blog</a></li>
  1119.                    <li><a href="/contact" class="accessible-link-footer">Contact</a></li>
  1120.                    <li><a href="/privacy-policy" class="accessible-link-footer">Privacy Policy</a></li>
  1121.                    <li><a href="/terms-and-conditions" class="accessible-link-footer">Terms of Service</a></li>
  1122.                </ul>
  1123.            </div>
  1124.        </div>
  1125.  
  1126.        <!-- Footer Bottom Section -->
  1127.        <div class="mt-8 pt-8 border-t border-gray-700">
  1128.            <!-- Brand Section -->
  1129.            <div class="text-center mb-6">
  1130.                <div class="flex flex-col sm:flex-row justify-center items-center space-y-2 sm:space-y-0 sm:space-x-3 mb-3">
  1131.                    <span class="text-2xl font-light text-blue-300">iFormat.io</span>
  1132.                    <span class="hidden sm:inline text-gray-400" aria-hidden="true">•</span>
  1133.                    <span class="text-gray-200 text-lg">Free Online File Converter</span>
  1134.                </div>
  1135.                <p class="text-gray-300 text-sm max-w-2xl mx-auto leading-relaxed">
  1136.                    Convert files online for free with enterprise-grade security and professional quality results.
  1137.                    Now with AI-powered background removal and advanced PDF tools.
  1138.                </p>
  1139.            </div>
  1140.  
  1141.            <!-- Action Links & Credits -->
  1142.            <div class="flex flex-col md:flex-row justify-center items-center space-y-3 md:space-y-0 md:space-x-8 mb-6">
  1143.                <!-- Support Link -->
  1144.                <a href="/donate"
  1145.                   class="inline-flex items-center space-x-2 bg-gradient-to-r from-yellow-600 to-yellow-500 hover:from-yellow-700 hover:to-yellow-600 focus:from-yellow-700 focus:to-yellow-600 text-white px-4 py-2 rounded-lg transition-all duration-200 transform hover:scale-105 focus:scale-105 text-sm font-medium btn-focus"
  1146.                   style="text-decoration: none;">
  1147.                    <span aria-hidden="true">❤️</span>
  1148.                    <span>Support Our Mission</span>
  1149.                </a>
  1150.  
  1151.                <!-- SEO Credit -->
  1152.                <div class="flex items-center space-x-2 text-sm">
  1153.                    <span class="text-gray-300">Powered by:</span>
  1154.                    <a href="https://daikimedia.com"
  1155.                       target="_blank"
  1156.                       rel="noopener noreferrer"
  1157.                       class="inline-flex items-center space-x-1 text-blue-300 hover:text-blue-200 focus:text-blue-200 transition-colors duration-200 font-medium underline underline-offset-2 hover:underline-offset-4 focus:underline-offset-4">
  1158.                        <span>Daiki Media</span>
  1159.                        <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
  1160.                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path>
  1161.                        </svg>
  1162.                    </a>
  1163.                </div>
  1164.            </div>
  1165.  
  1166.            <!-- Copyright -->
  1167.            <div class="text-center pt-4 border-t border-gray-800">
  1168.                <p class="text-gray-300 text-sm">
  1169.                    © 2025 iFormat.io. All rights reserved.
  1170.                </p>
  1171.            </div>
  1172.        </div>
  1173.    </div>
  1174. </footer>
  1175.  
  1176. <script>
  1177.    // Load analytics only after user interaction or after 3 seconds
  1178.    var analyticsLoaded = false;
  1179.  
  1180.    function loadAnalytics() {
  1181.        if (analyticsLoaded) return;
  1182.        analyticsLoaded = true;
  1183.  
  1184.        // Google Analytics
  1185.        var gaScript = document.createElement('script');
  1186.        gaScript.async = true;
  1187.        gaScript.src = 'https://www.googletagmanager.com/gtag/js?id=G-K5PN90MCSZ';
  1188.        document.head.appendChild(gaScript);
  1189.  
  1190.        gaScript.onload = function() {
  1191.            window.dataLayer = window.dataLayer || [];
  1192.            function gtag(){dataLayer.push(arguments);}
  1193.            gtag('js', new Date());
  1194.            gtag('config', 'G-K5PN90MCSZ');
  1195.        };
  1196.  
  1197.        // Google AdSense
  1198.        setTimeout(function() {
  1199.            var adScript = document.createElement('script');
  1200.            adScript.async = true;
  1201.            adScript.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3467883943869698';
  1202.            adScript.crossOrigin = 'anonymous';
  1203.            document.head.appendChild(adScript);
  1204.        }, 500);
  1205.    }
  1206.  
  1207.    // Load on user interaction (better for Core Web Vitals)
  1208.    ['mousedown', 'touchstart', 'keydown', 'scroll'].forEach(function(event) {
  1209.        document.addEventListener(event, loadAnalytics, { once: true, passive: true });
  1210.    });
  1211.  
  1212.    setTimeout(loadAnalytics, 300);
  1213. </script>
  1214.  
  1215.  
  1216.  
  1217. <script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"057a7d89a84246c6b861ed977a629bc1","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
  1218. </body>
  1219. </html>
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda