<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="google-site-verification" content="fg3AMtGutUViOyvX3uKHBiqAcBWrXCyZjwMpwv53EVs" /> <title>iformat.io</title> <meta name="description" 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"> <link rel="dns-prefetch" href="https://pagead2.googlesyndication.com"> <link rel="dns-prefetch" href="https://www.googletagmanager.com"> <link rel="icon" href="/static/logo.png" type="image/png"> <link rel="canonical" href="https://iformat.io/avif-to-png/"/> <link rel="preload" as="style" href="/static/css/tailwind.min.css"> <link rel="stylesheet" href="/static/css/tailwind.min.css"> <meta name="yandex-verification" content="b06651e96519752b"/> <meta name="msvalidate.01" content="5CAE4943CEBF239CD78C1EE61E777102"/> <input type="hidden" name="csrfmiddlewaretoken" value="oTGVmDNAWXkPaujypUmGZDtuvV8RsgEy7Z64ZZyWmvJ0rQWjfU6DUXRa1e68q1GF"> </head><body> <!-- Improved Header --><header class="bg-white backdrop-blur-lg sticky top-0 z-50"> <div class="container mx-auto max-w-screen-xl px-4 lg:px-6"> <!-- Main Header Row --> <div class="flex items-center justify-between h-16"> <!-- Logo --> <div class="flex items-center space-x-3"> <a href="/" class="flex items-center"> <img src="/static/logo.svg" alt="iformat.io Logo" class="h-8 w-auto mr-2" width="120" height="32" loading="eager" decoding="sync"> <span class="text-2xl font-normal text-blue-600">iformat.io</span> </a> <!-- Desktop Navigation --> <nav class="hidden lg:flex items-center space-x-1 ml-8"> <!-- Convert Dropdown --> <div class="relative dropdown group"> <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"> Convert <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"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/> </svg> </button> <!-- Mega Dropdown Menu --> <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"> <div class="p-6"> <div class="grid grid-cols-5 gap-6 min-w-[800px]"> <!-- Image Tools --> <div class="space-y-3"> <div class="flex items-center text-sm font-semibold text-gray-900 mb-4"> <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"> <svg class="w-4 h-4 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> </div> Image </div> <ul class="space-y-1"> <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> <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> <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> <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> </ul> </div> <!-- Audio Tools --> <div class="space-y-3"> <div class="flex items-center text-sm font-semibold text-gray-900 mb-4"> <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"> <svg class="w-4 h-4 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> </div> Audio </div> <ul class="space-y-1"> <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> <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> <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> <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> </ul> </div> <!-- Video Tools --> <div class="space-y-3"> <div class="flex items-center text-sm font-semibold text-gray-900 mb-4"> <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"> <svg class="w-4 h-4 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> </div> Video </div> <ul class="space-y-1"> <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> <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> <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> <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> </ul> </div> <!-- Document Tools --> <div class="space-y-3"> <div class="flex items-center text-sm font-semibold text-gray-900 mb-4"> <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"> <svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <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"/> </svg> </div> Document </div> <ul class="space-y-1"> <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> <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> <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> <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> </ul> </div> <!-- Other Tools --> <div class="space-y-3"> <div class="flex items-center text-sm font-semibold text-gray-900 mb-4"> <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"> <svg class="w-4 h-4 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> </div> Others </div> <ul class="space-y-1"> <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> <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> </ul> </div> </div> </div> </div> </div> <!-- Compress Dropdown --> <div class="relative dropdown group"> <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"> Compress <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"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/> </svg> </button> <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"> <div class="p-6"> <div class="grid grid-cols-2 gap-6 min-w-[400px]"> <!-- Image Compression --> <div class="space-y-3"> <div class="flex items-center text-sm font-semibold text-gray-900 mb-4"> <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"> <svg class="w-4 h-4 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> </div> Image </div> <ul class="space-y-1"> <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> <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> <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> <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> </ul> </div> <!-- Document Compression --> <div class="space-y-3"> <div class="flex items-center text-sm font-semibold text-gray-900 mb-4"> <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"> <svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <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"/> </svg> </div> Document </div> <ul class="space-y-1"> <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> <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> <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> <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> </ul> </div> </div> </div> </div> </div> <!-- Other Navigation Links --> <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> <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> </nav> </div> <!-- Right Side Actions --> <div class="flex items-center space-x-3"> <!-- Search Button --> <button id="searchBtn" class="p-2 text-gray-700 hover:text-blue-600 hover:bg-gray-50 rounded-lg transition-colors" aria-label="Search"> <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <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"/> </svg> </button> <!-- Authentication Section - Desktop Only --> <!-- Guest User Actions - Desktop Only --> <div class="hidden lg:flex items-center space-x-3"> <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"> Log In </a> <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"> Sign Up </a> </div> <!-- Mobile Menu Button --> <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"> <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/> </svg> </button> </div> </div> </div></header> <!-- Enhanced Search Overlay --><div id="searchOverlay" class="fixed inset-0 bg-black/20 backdrop-blur-sm z-50 hidden"> <div class="flex items-start justify-center pt-20 px-4"> <div class="w-full max-w-4xl bg-white rounded-xl shadow-2xl"> <div class="p-6"> <!-- Search Input Header --> <div class="flex items-center mb-4"> <svg class="w-5 h-5 text-gray-400 mr-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <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"/> </svg> <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"> <button id="closeSearch" class="ml-3 p-2 text-gray-400 hover:text-gray-700 transition-colors"> <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/> </svg> </button> </div> <!-- Search Results Container --> <div id="searchResults" class="hidden"> <div class="border-t pt-4"> <div class="text-sm font-semibold text-gray-900 mb-3"> <span id="resultsCount">0</span> Tools Found </div> <div id="searchResultsList" class="space-y-2 max-h-80 overflow-y-auto"> <!-- Search results will be inserted here --> </div> </div> </div> <!-- Popular Searches --> <div id="popularSearches" class="border-t pt-4"> <div class="text-sm font-semibold text-gray-900 mb-3">Popular Searches</div> <div class="flex flex-wrap gap-2"> <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> <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> <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> <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> <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> <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> </div> </div> <!-- No Results State --> <div id="noResults" class="hidden border-t pt-4"> <div class="text-center py-8"> <svg class="w-12 h-12 text-gray-400 mx-auto mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <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"/> </svg> <div class="text-lg font-medium text-gray-900 mb-2">No tools found</div> <p class="text-gray-700 mb-4">Try searching for a different term or browse our categories.</p> <button id="browseAllTools" class="text-blue-600 hover:text-blue-700 font-medium">Browse All Tools</button> </div> </div> </div> </div> </div></div> <!-- Mobile Menu --><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"> <div class="flex flex-col h-full"> <!-- Mobile Header --> <div class="flex items-center justify-between p-6 border-b border-gray-200"> <div class="flex items-center space-x-3"> <img src="/static/logo.svg" alt="iformat.io Logo" class="h-8 w-auto"> <span class="text-xl font-normal text-blue-600">iformat.io</span> </div> <button id="closeMobileMenu" class="p-2 text-gray-700 hover:text-gray-900 transition-colors" aria-label="Close mobile menu"> <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path> </svg> </button> </div> <!-- Mobile Navigation --> <div class="flex-1 overflow-y-auto p-6"> <!-- Tools Section --> <div class="mb-6"> <div class="text-sm font-semibold text-gray-900 mb-4">TOOLS</div> <div class="space-y-4"> <!-- Image Tools --> <div> <div class="flex items-center text-green-600 mb-3"> <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"> <svg class="w-3 h-3 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 16"/> </svg> </div> <span class="font-medium">Image</span> </div> <div class="ml-9 space-y-2"> <a href="/image-converter" class="block text-sm text-gray-700 py-1 hover:text-green-600 transition-colors">Image Converter</a> <a href="/jpg-to-png" class="block text-sm text-gray-700 py-1 hover:text-green-600 transition-colors">JPG to PNG</a> <a href="/png-to-jpg" class="block text-sm text-gray-700 py-1 hover:text-green-600 transition-colors">PNG to JPG</a> </div> </div> <!-- Audio Tools --> <div> <div class="flex items-center text-purple-600 mb-3"> <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"> <svg class="w-3 h-3 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19V6l12-3v13"/> </svg> </div> <span class="font-medium">Audio</span> </div> <div class="ml-9 space-y-2"> <a href="/audio-converter" class="block text-sm text-gray-700 py-1 hover:text-purple-600 transition-colors">Audio Converter</a> <a href="/mp3-converter" class="block text-sm text-gray-700 py-1 hover:text-purple-600 transition-colors">MP3 Converter</a> </div> </div> <!-- Video Tools --> <div> <div class="flex items-center text-blue-600 mb-3"> <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"> <svg class="w-3 h-3 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 14"/> </svg> </div> <span class="font-medium">Video</span> </div> <div class="ml-9 space-y-2"> <a href="/video-converter" class="block text-sm text-gray-700 py-1 hover:text-blue-600 transition-colors">Video Converter</a> <a href="/mp4-converter" class="block text-sm text-gray-700 py-1 hover:text-blue-600 transition-colors">MP4 Converter</a> </div> </div> <!-- Other Tools --> <div> <div class="flex items-center text-orange-600 mb-3"> <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"> <svg class="w-3 h-3 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> </div> <span class="font-medium">Others</span> </div> <div class="ml-9 space-y-2"> <a href="/time-converter" class="block text-sm text-gray-700 py-1 hover:text-orange-600 transition-colors">Time Converter</a> <a href="/unit-converter" class="block text-sm text-gray-700 py-1 hover:text-orange-600 transition-colors">Unit Converter</a> </div> </div> </div> </div> <!-- Navigation Links --> <div class="mb-6 space-y-2"> <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> <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> </div> </div> <!-- Mobile Auth Section --> <div class="border-t border-gray-200 p-6"> <!-- Guest Mobile User --> <div class="space-y-3"> <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"> Log In </a> <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"> Sign Up </a> </div> </div> </div></div> <!-- Mobile Menu Overlay --><div id="mobileMenuOverlay" class="lg:hidden fixed inset-0 bg-black/50 z-40 hidden"></div> <style>/* User Avatar Styling */.user-avatar { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border: 2px solid white; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);} /* Enhanced Dropdown Animations */.dropdown .dropdown-menu { transform: translateY(-10px); transition: all 0.2s ease-out;} .dropdown:hover .dropdown-menu,.dropdown.group:hover .dropdown-menu { transform: translateY(0);} /* Mobile Menu Animations */.mobile-menu.open { transform: translateX(0);} /* Search Overlay Styling */.search-overlay { animation: fadeIn 0.2s ease-out;} @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; }} .search-input { background: rgba(255, 255, 255, 0.9); border: 1px solid rgba(59, 130, 246, 0.3); transition: all 0.2s ease;} .search-input:focus { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);} /* Search Result Items */.search-result-item { display: flex; align-items: center; padding: 12px; border-radius: 8px; cursor: pointer; transition: all 0.2s ease; border: 1px solid transparent;} .search-result-item:hover { background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); border-color: #e2e8f0; transform: translateY(-1px);} .search-result-item.selected { background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%); border-color: #3b82f6;} .search-result-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; margin-right: 12px; flex-shrink: 0;} .category-image { background: linear-gradient(135deg, #10b981 0%, #059669 100%); }.category-audio { background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%); }.category-video { background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%); }.category-time { background: linear-gradient(135deg, #f97316 0%, #ea580c 100%); } /* Scrollbar Styling */#searchResultsList::-webkit-scrollbar { width: 6px;} #searchResultsList::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 3px;} #searchResultsList::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 3px;} #searchResultsList::-webkit-scrollbar-thumb:hover { background: #a8a8a8;} /* Responsive Design */@media (max-width: 1024px) { .dropdown-menu { position: fixed !important; top: 4rem !important; left: 1rem !important; right: 1rem !important; width: auto !important; min-width: auto !important; } .dropdown-menu .grid { grid-template-columns: repeat(2, 1fr) !important; gap: 1rem !important; }} /* Accessibility Improvements */@media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }} /* Focus Styles */button:focus-visible,a:focus-visible { outline: 2px solid #3b82f6; outline-offset: 2px;} /* Style all links within page descriptions */.page-description a { color: #2563eb; /* Blue color */ text-decoration: underline; font-weight: 500; transition: color 0.2s ease;} .page-description a:hover { color: #1d4ed8; /* Darker blue on hover */ text-decoration: underline;}</style> <script>// Enhanced Header Functionalityclass HeaderManager { constructor() { this.initializeSearch(); this.initializeMobileMenu(); this.initializeDropdowns(); this.bindEvents(); } initializeSearch() { this.searchBtn = document.getElementById('searchBtn'); this.searchOverlay = document.getElementById('searchOverlay'); this.searchInput = document.getElementById('searchInput'); this.closeSearch = document.getElementById('closeSearch'); this.searchResults = document.getElementById('searchResults'); this.searchResultsList = document.getElementById('searchResultsList'); this.popularSearches = document.getElementById('popularSearches'); this.noResults = document.getElementById('noResults'); this.resultsCount = document.getElementById('resultsCount'); this.selectedIndex = -1; this.currentResults = []; this.initializeTools(); } initializeMobileMenu() { this.mobileMenuBtn = document.getElementById('mobileMenuBtn'); this.mobileMenu = document.getElementById('mobileMenu'); this.mobileMenuOverlay = document.getElementById('mobileMenuOverlay'); this.closeMobileMenu = document.getElementById('closeMobileMenu'); } initializeDropdowns() { // Enhanced dropdown functionality for better UX const dropdowns = document.querySelectorAll('.dropdown'); dropdowns.forEach(dropdown => { const menu = dropdown.querySelector('.dropdown-menu'); let timeout; dropdown.addEventListener('mouseenter', () => { clearTimeout(timeout); menu.style.display = 'block'; setTimeout(() => { menu.classList.add('opacity-100', 'visible'); menu.classList.remove('opacity-0', 'invisible'); }, 10); }); dropdown.addEventListener('mouseleave', () => { menu.classList.add('opacity-0', 'invisible'); menu.classList.remove('opacity-100', 'visible'); timeout = setTimeout(() => { menu.style.display = 'none'; }, 200); }); }); } initializeTools() { this.tools = [ // Image Tools { name: 'Image Converter', category: 'image', url: '/image-converter', description: 'Convert between different image formats', keywords: ['image', 'convert', 'format', 'jpg', 'png', 'gif'] }, { name: 'JPG to PNG', category: 'image', url: '/jpg-to-png', description: 'Convert JPG images to PNG format', keywords: ['jpg', 'jpeg', 'png', 'convert'] }, { name: 'PNG to JPG', category: 'image', url: '/png-to-jpg', description: 'Convert PNG images to JPG format', keywords: ['png', 'jpg', 'jpeg', 'convert'] }, { name: 'HEIC to JPG', category: 'image', url: '/heic-to-jpg', description: 'Convert HEIC images to JPG format', keywords: ['heic', 'jpg', 'jpeg', 'convert', 'apple'] }, // Audio Tools { name: 'Audio Converter', category: 'audio', url: '/audio-converter', description: 'Convert between different audio formats', keywords: ['audio', 'convert', 'mp3', 'wav', 'flac'] }, { name: 'MP3 Converter', category: 'audio', url: '/mp3-converter', description: 'Convert audio files to MP3 format', keywords: ['mp3', 'convert', 'audio'] }, { name: 'MP4 to MP3', category: 'audio', url: '/mp4-to-mp3', description: 'Convert MP4 files to MP3 format', keywords: ['mp4', 'mp3', 'convert'] }, { name: 'WAV to MP3', category: 'audio', url: '/wav-to-mp3', description: 'Convert WAV files to MP3 format', keywords: ['wav', 'mp3', 'convert'] }, // Video Tools { name: 'Video Converter', category: 'video', url: '/video-converter', description: 'Convert between different video formats', keywords: ['video', 'convert', 'mp4', 'avi', 'mov'] }, { name: 'MP4 Converter', category: 'video', url: '/mp4-converter', description: 'Convert videos to MP4 format', keywords: ['mp4', 'convert', 'video'] }, { name: 'AVI to MP4', category: 'video', url: '/avi-to-mp4', description: 'Convert AVI videos to MP4 format', keywords: ['avi', 'mp4', 'convert'] }, { name: 'MOV to MP4', category: 'video', url: '/mov-to-mp4', description: 'Convert MOV videos to MP4 format', keywords: ['mov', 'mp4', 'convert'] }, // Other Tools { name: 'Time Converter', category: 'time', url: '/time-converter', description: 'Convert between different time zones', keywords: ['time', 'timezone', 'convert', 'utc'] }, { name: 'Unit Converter', category: 'unit', url: '/unit-converter', description: 'Convert between different units', keywords: ['unit', 'convert', 'measurement'] } ]; } bindEvents() { // Search Events if (this.searchBtn) { this.searchBtn.addEventListener('click', () => this.openSearch()); } if (this.closeSearch) { this.closeSearch.addEventListener('click', () => this.closeSearchOverlay()); } if (this.searchOverlay) { this.searchOverlay.addEventListener('click', (e) => { if (e.target === this.searchOverlay) { this.closeSearchOverlay(); } }); } if (this.searchInput) { this.searchInput.addEventListener('input', (e) => this.handleSearch(e.target.value)); this.searchInput.addEventListener('keydown', (e) => this.handleKeydown(e)); } // Mobile Menu Events if (this.mobileMenuBtn) { this.mobileMenuBtn.addEventListener('click', () => this.openMobileMenu()); } if (this.closeMobileMenu) { this.closeMobileMenu.addEventListener('click', () => this.closeMobileMenuOverlay()); } if (this.mobileMenuOverlay) { this.mobileMenuOverlay.addEventListener('click', () => this.closeMobileMenuOverlay()); } // Popular Search Tags document.querySelectorAll('.popular-search-tag').forEach(tag => { tag.addEventListener('click', (e) => { const searchTerm = e.target.dataset.search; this.performSearch(searchTerm); }); }); // Keyboard Events document.addEventListener('keydown', (e) => { if (e.key === 'Escape') { this.closeSearchOverlay(); this.closeMobileMenuOverlay(); } }); } // Search Methods openSearch() { if (this.searchOverlay) { this.searchOverlay.classList.remove('hidden'); document.body.style.overflow = 'hidden'; setTimeout(() => { if (this.searchInput) { this.searchInput.focus(); } }, 100); } } closeSearchOverlay() { if (this.searchOverlay) { this.searchOverlay.classList.add('hidden'); document.body.style.overflow = 'auto'; if (this.searchInput) { this.searchInput.value = ''; } this.showDefaultState(); } } handleSearch(query) { if (query.trim() === '') { this.showDefaultState(); return; } const results = this.searchTools(query); this.displayResults(results, query); this.selectedIndex = -1; } searchTools(query) { const searchTerm = query.toLowerCase().trim(); return this.tools.filter(tool => { return tool.name.toLowerCase().includes(searchTerm) || tool.description.toLowerCase().includes(searchTerm) || tool.keywords.some(keyword => keyword.includes(searchTerm)) || tool.category.includes(searchTerm); }).sort((a, b) => { const aNameMatch = a.name.toLowerCase().includes(searchTerm); const bNameMatch = b.name.toLowerCase().includes(searchTerm); if (aNameMatch && !bNameMatch) return -1; if (!aNameMatch && bNameMatch) return 1; return a.name.localeCompare(b.name); }); } displayResults(results, query) { this.currentResults = results; if (results.length === 0) { this.showNoResults(); return; } if (this.searchResults) { this.searchResults.classList.remove('hidden'); } if (this.popularSearches) { this.popularSearches.classList.add('hidden'); } if (this.noResults) { this.noResults.classList.add('hidden'); } if (this.resultsCount) { this.resultsCount.textContent = results.length; } if (this.searchResultsList) { this.searchResultsList.innerHTML = results.map((tool, index) => ` <div class="search-result-item" data-index="${index}" data-url="${tool.url}"> <div class="search-result-icon category-${tool.category}"> ${this.getCategoryIcon(tool.category)} </div> <div class="flex-1"> <div class="font-medium text-gray-900">${this.highlightMatch(tool.name, query)}</div> <p class="text-sm text-gray-700 mt-1">${tool.description}</p> <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> </div> <svg class="w-5 h-5 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/> </svg> </div> `).join(''); // Add click handlers this.searchResultsList.querySelectorAll('.search-result-item').forEach(item => { item.addEventListener('click', () => { this.selectResult(item.dataset.url, query); }); }); } } getCategoryIcon(category) { const icons = { 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>', 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>', 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>', 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>' }; return icons[category] || icons.image; } getCategoryLabel(category) { const labels = { image: 'Image Tool', audio: 'Audio Tool', video: 'Video Tool', time: 'Time Tool' }; return labels[category] || 'Tool'; } highlightMatch(text, query) { if (!query) return text; const regex = new RegExp(`(${query})`, 'gi'); return text.replace(regex, '<span class="bg-yellow-200 font-semibold">$1</span>'); } handleKeydown(e) { if (this.currentResults.length === 0) return; switch (e.key) { case 'ArrowDown': e.preventDefault(); this.selectedIndex = Math.min(this.selectedIndex + 1, this.currentResults.length - 1); this.updateSelection(); break; case 'ArrowUp': e.preventDefault(); this.selectedIndex = Math.max(this.selectedIndex - 1, -1); this.updateSelection(); break; case 'Enter': e.preventDefault(); if (this.selectedIndex >= 0) { this.selectResult(this.currentResults[this.selectedIndex].url, this.searchInput.value); } break; } } updateSelection() { if (this.searchResultsList) { this.searchResultsList.querySelectorAll('.search-result-item').forEach((item, index) => { if (index === this.selectedIndex) { item.classList.add('selected'); item.scrollIntoView({block: 'nearest'}); } else { item.classList.remove('selected'); } }); } } selectResult(url, query) { window.location.href = url; this.closeSearchOverlay(); } performSearch(searchTerm) { if (this.searchInput) { this.searchInput.value = searchTerm; this.handleSearch(searchTerm); this.searchInput.focus(); } } showDefaultState() { if (this.searchResults) { this.searchResults.classList.add('hidden'); } if (this.noResults) { this.noResults.classList.add('hidden'); } if (this.popularSearches) { this.popularSearches.classList.remove('hidden'); } } showNoResults() { if (this.searchResults) { this.searchResults.classList.add('hidden'); } if (this.popularSearches) { this.popularSearches.classList.add('hidden'); } if (this.noResults) { this.noResults.classList.remove('hidden'); } } // Mobile Menu Methods openMobileMenu() { if (this.mobileMenu && this.mobileMenuOverlay) { this.mobileMenu.classList.add('open'); this.mobileMenuOverlay.classList.remove('hidden'); document.body.style.overflow = 'hidden'; } } closeMobileMenuOverlay() { if (this.mobileMenu && this.mobileMenuOverlay) { this.mobileMenu.classList.remove('open'); this.mobileMenuOverlay.classList.add('hidden'); document.body.style.overflow = 'auto'; } }} // Initialize when DOM is loadeddocument.addEventListener('DOMContentLoaded', function() { new HeaderManager();});</script> <div class="min-h-screen bg-white"> <div class="container mx-auto px-4 flex items-center justify-center min-h-screen"> <div class="max-w-4xl mx-auto text-center"> <!-- Google Logo Style Element (Optional) --> <div class="mb-12"> <div class="inline-flex items-center space-x-1 text-6xl font-normal tracking-tight"> <span class="text-blue-500">4</span> <span class="text-red-500">0</span> <span class="text-yellow-500">4</span> </div> </div> <!-- Main Content --> <div class="mb-12"> <h1 class="text-2xl text-gray-800 font-normal mb-4"> Page not found </h1> <p class="text-base text-gray-600 mb-8 max-w-md mx-auto leading-6"> The page you are looking for might have been removed, had its name changed, or is temporarily unavailable. </p> </div> <!-- Action Buttons --> <div class="flex flex-col sm:flex-row gap-3 justify-center items-center mb-12"> <!-- Return Home Button --> <a href="/" 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"> <svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <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> </svg> Go to homepage </a> <!-- Go Back Button --> <button onclick="history.back()" 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"> <svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 17l-5-5m0 0l5-5m-5 5h12"></path> </svg> Go back </button> </div> <!-- Quick Links Section --> <div class="border-t border-gray-200 pt-8"> <p class="text-sm text-gray-500 mb-6">You might want to try:</p> <div class="grid grid-cols-2 md:grid-cols-4 gap-4 max-w-md mx-auto"> <a href="/" class="group text-center p-4 rounded-lg hover:bg-gray-50 transition-colors duration-200"> <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"> <svg class="w-4 h-4 text-gray-600 group-hover:text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <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> </svg> </div> <p class="text-xs text-gray-700 group-hover:text-blue-600">Home</p> </a> <a href="/about" class="group text-center p-4 rounded-lg hover:bg-gray-50 transition-colors duration-200"> <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"> <svg class="w-4 h-4 text-gray-600 group-hover:text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <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> </svg> </div> <p class="text-xs text-gray-700 group-hover:text-blue-600">About</p> </a> <a href="/contact" class="group text-center p-4 rounded-lg hover:bg-gray-50 transition-colors duration-200"> <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"> <svg class="w-4 h-4 text-gray-600 group-hover:text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <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> </svg> </div> <p class="text-xs text-gray-700 group-hover:text-blue-600">Contact</p> </a> <a href="/all-tools" class="group text-center p-4 rounded-lg hover:bg-gray-50 transition-colors duration-200"> <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"> <svg class="w-4 h-4 text-gray-600 group-hover:text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <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> </svg> </div> <p class="text-xs text-gray-700 group-hover:text-blue-600">Tools</p> </a> </div> </div> <!-- Footer Message --> <div class="mt-8"> <p class="text-xs text-gray-400"> Error 404 </p> </div> </div> </div></div> <!-- Footer --><footer class="bg-gray-900 text-white py-16"> <div class="container mx-auto max-w-screen-xl px-6"> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-8"> <!-- AI & Image Tools - NEW --> <div> <div class="flex items-center mb-4"> <div class="text-lg font-semibold text-purple-300">AI & Image Tools</div> <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> </div> <ul class="space-y-2"> <li> <a href="/free-bg-remover-online" class="accessible-link-footer flex items-center group"> <span class="mr-1 text-purple-400">✨</span> AI Background Remover </a> </li> <li><a href="/image-compressor" class="accessible-link-footer">Image Compressor</a></li> <li><a href="/jpg-to-png" class="accessible-link-footer">JPG to PNG Converter</a></li> <li><a href="/webp-converter" class="accessible-link-footer">WebP Converter</a></li> <li><a href="/heic-to-jpg" class="accessible-link-footer">HEIC to JPG</a></li> </ul> </div> <!-- PDF Tools --> <div> <div class="text-lg font-semibold mb-4 text-red-300">PDF Tools</div> <ul class="space-y-2"> <li><a href="/merge-pdf-free-online" class="accessible-link-footer">Merge PDF</a></li> <li><a href="/split-pdf-free-online" class="accessible-link-footer">Split PDF</a></li> <li><a href="/pdf-to-doc" class="accessible-link-footer">PDF to Word</a></li> <li><a href="/docx-to-pdf" class="accessible-link-footer">Word to PDF</a></li> <li><a href="/pdf-compressor" class="accessible-link-footer">Compress PDF</a></li> </ul> </div> <!-- Video & Audio Tools --> <div> <div class="text-lg font-semibold mb-4 text-blue-300">Video & Audio Tools</div> <ul class="space-y-2"> <li><a href="/video-to-mp3" class="accessible-link-footer">Video to MP3</a></li> <li><a href="/mp4-to-mp3" class="accessible-link-footer">MP4 to MP3</a></li> <li><a href="/avi-to-mp4" class="accessible-link-footer">AVI to MP4</a></li> <li><a href="/flac-to-mp3" class="accessible-link-footer">FLAC to MP3</a></li> <li><a href="/audio-converter" class="accessible-link-footer">Audio Converter</a></li> </ul> </div> <!-- Time & Unit Converters --> <div> <div class="text-lg font-semibold mb-4 text-green-300">Time & Unit Tools</div> <ul class="space-y-2"> <li><a href="/time-converter" class="accessible-link-footer">Time Zone Converter</a></li> <li><a href="/convert-utc-to-ist-time" class="accessible-link-footer">UTC to IST</a></li> <li><a href="/convert-pst-to-jst-time" class="accessible-link-footer">PST to JST</a></li> <li><a href="/unit-converter" class="accessible-link-footer">Unit Converter</a></li> <li><a href="/celsius-to-fahrenheit" class="accessible-link-footer">Temp Converter</a></li> </ul> </div> <!-- Company & Support --> <div> <div class="text-lg font-semibold mb-4 text-yellow-300">Company</div> <ul class="space-y-2"> <li><a href="/about-us" class="accessible-link-footer">About Us</a></li> <li><a href="/blog" class="accessible-link-footer">Blog</a></li> <li><a href="/contact" class="accessible-link-footer">Contact</a></li> <li><a href="/privacy-policy" class="accessible-link-footer">Privacy Policy</a></li> <li><a href="/terms-and-conditions" class="accessible-link-footer">Terms of Service</a></li> </ul> </div> </div> <!-- Footer Bottom Section --> <div class="mt-8 pt-8 border-t border-gray-700"> <!-- Brand Section --> <div class="text-center mb-6"> <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"> <span class="text-2xl font-light text-blue-300">iFormat.io</span> <span class="hidden sm:inline text-gray-400" aria-hidden="true">•</span> <span class="text-gray-200 text-lg">Free Online File Converter</span> </div> <p class="text-gray-300 text-sm max-w-2xl mx-auto leading-relaxed"> Convert files online for free with enterprise-grade security and professional quality results. Now with AI-powered background removal and advanced PDF tools. </p> </div> <!-- Action Links & Credits --> <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"> <!-- Support Link --> <a href="/donate" 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" style="text-decoration: none;"> <span aria-hidden="true">❤️</span> <span>Support Our Mission</span> </a> <!-- SEO Credit --> <div class="flex items-center space-x-2 text-sm"> <span class="text-gray-300">Powered by:</span> <a href="https://daikimedia.com" target="_blank" rel="noopener noreferrer" 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"> <span>Daiki Media</span> <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"> <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> </svg> </a> </div> </div> <!-- Copyright --> <div class="text-center pt-4 border-t border-gray-800"> <p class="text-gray-300 text-sm"> © 2025 iFormat.io. All rights reserved. </p> </div> </div> </div></footer> <script> // Load analytics only after user interaction or after 3 seconds var analyticsLoaded = false; function loadAnalytics() { if (analyticsLoaded) return; analyticsLoaded = true; // Google Analytics var gaScript = document.createElement('script'); gaScript.async = true; gaScript.src = 'https://www.googletagmanager.com/gtag/js?id=G-K5PN90MCSZ'; document.head.appendChild(gaScript); gaScript.onload = function() { window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-K5PN90MCSZ'); }; // Google AdSense setTimeout(function() { var adScript = document.createElement('script'); adScript.async = true; adScript.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3467883943869698'; adScript.crossOrigin = 'anonymous'; document.head.appendChild(adScript); }, 500); } // Load on user interaction (better for Core Web Vitals) ['mousedown', 'touchstart', 'keydown', 'scroll'].forEach(function(event) { document.addEventListener(event, loadAnalytics, { once: true, passive: true }); }); setTimeout(loadAnalytics, 300);</script> <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></body></html>