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