<!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta name="description" content="Micko Electrical website generated with Tailwind CSS." />
        <title>Micko Electrical</title>
        <script src="https://cdn.tailwindcss.com?plugins=forms,typography,aspect-ratio"></script>
        <script>
          // Tailwind config with custom theme colors
          tailwind.config = {"theme":{"extend":{"colors":{"primary":"#0066FF","secondary":"#FFC107","accent":"#4CAF50","background":"#FFFFFF","text":"#212529"},"fontFamily":{"heading":["Oswald","serif"],"body":["Roboto","sans-serif"]}}}};
        </script>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Oswald|Roboto:wght@400;600;700&display=swap" />
  <link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css">
        <style>
          @keyframes fadeInUp {
            from { opacity: 0; transform: translateY(30px); }
            to { opacity: 1; transform: translateY(0); }
          }
          .fade-in-up { animation: fadeInUp 0.6s ease-out forwards; opacity: 0; }
          .stagger-1 { animation-delay: 0.1s; }
          .stagger-2 { animation-delay: 0.2s; }
          .stagger-3 { animation-delay: 0.3s; }
        </style>
        <script>
          // Suppress Tailwind CDN development warning in console
          (function() {
            const originalWarn = console.warn;
            console.warn = function(...args) {
              if (args[0] && typeof args[0] === 'string' && args[0].includes('cdn.tailwindcss.com should not be used in production')) {
                return; // Suppress this specific warning
              }
              originalWarn.apply(console, args);
            };
          })();
        </script>
      </head>
      <body class="bg-background text-text antialiased">
        <header class="sticky top-0 z-50 bg-background backdrop-blur-md shadow-sm">
  <div class="container mx-auto px-4 py-3 flex items-center justify-between">
    <a href="#welcome" class="text-2xl font-bold text-primary">{brand.name}</a>
    <nav class="hidden md:flex items-center space-x-6">
      <ul class="flex space-x-6">
        <li class="relative group">
          <a href="#welcome" class="text-text hover:text-primary transition-colors">Welcome</a>
        </li>
        <li class="relative group">
          <a href="#what-we-offer" class="text-text hover:text-primary transition-colors">What We Offer</a>
        </li>
        <li class="relative group">
          <a href="#about" class="text-text hover:text-primary transition-colors">About</a>
        </li>
        <li class="relative group">
          <a href="#testimonials" class="text-text hover:text-primary transition-colors">Testimonials</a>
        </li>
        <li class="relative group">
          <a href="#get-in-touch" class="text-text hover:text-primary transition-colors">Get in Touch</a>
        </li>
      </ul>
    </nav>
    <button id="mobile-menu-toggle" class="md:hidden p-2 rounded-md focus:outline-none focus:ring-2 focus:ring-primary text-text">
      <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path>
      </svg>
    </button>
  </div>
  <div id="mobile-menu" class="hidden md:hidden absolute top-full left-0 w-full bg-background shadow-md py-2">
    <nav class="flex flex-col items-center space-y-2">
      <a href="#welcome" class="block w-full text-center py-2 text-text hover:bg-secondary hover:text-primary transition-colors">Welcome</a>
      <a href="#what-we-offer" class="block w-full text-center py-2 text-text hover:bg-secondary hover:text-primary transition-colors">What We Offer</a>
      <a href="#about" class="block w-full text-center py-2 text-text hover:bg-secondary hover:text-primary transition-colors">About</a>
      <a href="#testimonials" class="block w-full text-center py-2 text-text hover:bg-secondary hover:text-primary transition-colors">Testimonials</a>
      <a href="#get-in-touch" class="block w-full text-center py-2 text-text hover:bg-secondary hover:text-primary transition-colors">Get in Touch</a>
    </nav>
  </div>
</header>
<a href="#get-in-touch" class="fixed bottom-4 right-4 z-50 px-4 py-2 bg-primary text-text rounded-full shadow-lg hover:bg-accent transition-colors">Emergency? Call Now</a>
        <main id="content">
          <section id="welcome" class="relative py-16 md:py-24 lg:py-32 bg-background overflow-hidden">
  <div class="absolute inset-0">
    <img src="https://images.unsplash.com/photo-1660330589693-99889d60181e?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4MTQ1MjR8MHwxfHNlYXJjaHwxOXx8ZWxlY3RyaWNpYW4lMjB3b3JraW5nJTIwb24lMjB3aXJpbmclMjBpbnxlbnwwfHx8fDE3NjIzOTM5Njh8MA&ixlib=rb-4.1.0&q=80&w=1080" alt="Electrician working on wiring in modern home" class="w-full h-full object-cover opacity-70"/>
    <div class="absolute inset-0 bg-gradient-to-t from-primary/40 to-transparent"></div>
  </div>
  <div class="relative z-10 container mx-auto px-4 text-center fade-in-up">
    <h1 class="text-4xl md:text-5xl lg:text-6xl font-extrabold leading-tight mb-4 text-text">
      Micko Electrical: Your Local West-Side Sparky
    </h1>
    <p class="text-lg md:text-xl font-normal mb-8 text-text">
      Reliable, No-BS Electrical Services. 24/7 Emergency Callouts.
    </p>
    <div class="flex flex-col sm:flex-row justify-center gap-4">
      <a href="#get-in-touch" class="inline-flex items-center justify-center px-6 py-3 border border-transparent text-base font-medium rounded-3xl shadow-2xl bg-primary text-background hover:bg-opacity-90 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary/50 transition-all duration-300 transform hover:scale-105">
        Get a Free Quote
      </a>
      <a href="tel:+1234567890" class="inline-flex items-center justify-center px-6 py-3 border border-text text-base font-medium rounded-3xl text-text bg-transparent hover:bg-secondary/20 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-secondary/50 transition-all duration-300 transform hover:scale-105">
        Emergency Callout
      </a>
    </div>
  </div>
  <a href="tel:+1234567890" class="fixed bottom-4 right-4 z-50 inline-flex items-center px-5 py-3 rounded-full bg-accent text-background font-bold shadow-lg text-sm sm:text-base hover:bg-accent/90 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-accent/50 transition-all duration-300 transform hover:scale-105">
    Emergency? Call Now
  </a>
</section>

<section id="what-we-offer" class="py-16 sm:py-24 bg-background">
    <div class="max-w-screen-xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
        <div class="text-center mb-12 lg:mb-16">
            <h2 class="text-4xl font-extrabold text-text sm:text-5xl lg:text-6xl tracking-tight">
                Our Expert Electrical Services
            </h2>
            <p class="mt-4 text-xl text-text/80 max-w-2xl mx-auto">
                From homes to businesses, we've got your electrical needs covered across Perth's western suburbs.
            </p>
        </div>

        <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8">
            
            <div class="bg-secondary p-8 rounded-2xl shadow-lg border border-text/10 hover:shadow-2xl transition-shadow duration-300" data-aos="fade-up" data-aos-delay="100">
                <div class="text-5xl mb-4">🏠</div>
                <h3 class="text-2xl font-semibold text-text mb-2">Domestic Electrical</h3>
                <p class="text-text/80">Safe, reliable solutions for your home. Wiring, lighting, and fault finding.</p>
            </div>
            
            <div class="bg-secondary p-8 rounded-2xl shadow-lg border border-text/10 hover:shadow-2xl transition-shadow duration-300" data-aos="fade-up" data-aos-delay="200">
                <div class="text-5xl mb-4">🏢</div>
                <h3 class="text-2xl font-semibold text-text mb-2">Commercial Electrical</h3>
                <p class="text-text/80">Keep your business running smoothly with our professional electrical installations and maintenance.</p>
            </div>
            
            <div class="bg-secondary p-8 rounded-2xl shadow-lg border border-text/10 hover:shadow-2xl transition-shadow duration-300" data-aos="fade-up" data-aos-delay="300">
                <div class="text-5xl mb-4">☀️</div>
                <h3 class="text-2xl font-semibold text-text mb-2">Solar Services</h3>
                <p class="text-text/80">Installation, maintenance, and repairs for efficient solar power systems.</p>
            </div>
            
            <div class="bg-secondary p-8 rounded-2xl shadow-lg border border-text/10 hover:shadow-2xl transition-shadow duration-300" data-aos="fade-up" data-aos-delay="400">
                <div class="text-5xl mb-4">⚡</div>
                <h3 class="text-2xl font-semibold text-text mb-2">24/7 Emergency Callouts</h3>
                <p class="text-text/80">Immediate assistance for urgent electrical issues, day or night.</p>
            </div>
        </div>
    </div>

    <a href="#get-in-touch" class="fixed bottom-6 right-6 z-50 bg-primary text-text px-6 py-3 rounded-full shadow-xl hover:bg-primary/90 transition-colors duration-300 text-lg font-semibold flex items-center space-x-2">
        <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"></path></svg>
        <span>Emergency? Call Now</span>
    </a>
</section>

<section id="about" class="py-16 md:py-24 bg-background relative overflow-hidden"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10"> <div class="md:grid md:grid-cols-2 md:gap-12 items-center"> <div class="mb-10 md:mb-0" data-aos="fade-up"> <div class="bg-secondary p-6 md:p-8 rounded-2xl border border-text/10 shadow-lg"> <h2 class="text-3xl sm:text-4xl lg:text-5xl font-extrabold text-text mb-4 leading-tight">Fair Dinkum Local Sparky</h2> <p class="text-lg text-text mb-6">With 15 years experience, Micko Electrical delivers reliable, professional service. We're your trusted West-Side electrician.</p> <p class="text-text leading-relaxed">Micko Electrical brings a 'No-BS, tradie-tough' approach to every job, ensuring honest advice and quality workmanship. We pride ourselves on being a local business, deeply familiar with the unique electrical needs of Perth's western suburbs.</p> </div> </div> <div data-aos="fade-up" data-aos-delay="200"> <img src="https://images.unsplash.com/photo-1617191571237-7e025a3e22a3?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w4MTQ1MjR8MHwxfHNlYXJjaHwyfHxtaWNrbyUyMGVsZWN0cmljYWwlMjBvd25lciUyMHNtaWxpbmclMkMlMjBsaWNlbnNlZHxlbnwwfHx8fDE3NjIzOTM5Njl8MA&ixlib=rb-4.1.0&q=80&w=1080" alt="Micko Electrical owner smiling" class="w-full h-auto object-cover rounded-2xl shadow-lg border border-text/10"/> </div> </div> </div> <a href="#get-in-touch" class="fixed bottom-6 right-6 z-50 bg-accent text-background py-3 px-6 rounded-full shadow-xl hover:bg-accent/90 focus:outline-none focus:ring-4 focus:ring-accent/60 transition-all duration-300 ease-in-out"> Emergency? Call Now </a></section>

<section id="testimonials" class="py-16 bg-background relative"> <div class="container mx-auto px-4"> <div class="text-center mb-12"> <h2 class="text-text text-4xl md:text-5xl font-bold mb-4" data-aos="fade-up">What Our Clients Say</h2> <p class="text-text/70 text-lg md:text-xl max-w-2xl mx-auto" data-aos="fade-up" data-aos-delay="100">Hear from satisfied homeowners and businesses in Perth's western suburbs.</p> </div> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> <div class="bg-secondary p-6 rounded-2xl border border-text/10 shadow-lg" data-aos="fade-up" data-aos-delay="200"> <p class="text-text text-lg italic mb-4">"Micko Electrical was prompt and professional. Fixed our issue quickly and efficiently. Highly recommend!"</p> <p class="text-text/80 font-semibold">- Sarah L., Cottesloe</p> </div> <div class="bg-secondary p-6 rounded-2xl border border-text/10 shadow-lg" data-aos="fade-up" data-aos-delay="300"> <p class="text-text text-lg italic mb-4">"Reliable and fair dinkum service. Micko sorted our solar panel issue with no fuss."</p> <p class="text-text/80 font-semibold">- David P., Duncraig</p> </div> <div class="bg-secondary p-6 rounded-2xl border border-text/10 shadow-lg" data-aos="fade-up" data-aos-delay="400"> <p class="text-text text-lg italic mb-4">"Great service for our commercial fit-out. On time and within budget."</p> <p class="text-text/80 font-semibold">- Eco Cafe, Subiaco</p> </div> </div> </div> <a href="#get-in-touch" class="fixed bottom-6 right-6 bg-accent text-background py-3 px-6 rounded-full shadow-xl hover:opacity-90 transition duration-300 focus:outline-none focus:ring-4 focus:ring-accent/60 z-50"> Emergency? Call Now </a> </section>

<section id="get-in-touch" class="relative py-16 lg:py-24 bg-secondary">
    <div class="container mx-auto px-4 relative z-10 scroll-reveal fade-in-up">
        <div class="max-w-3xl mx-auto text-center mb-12">
            <h2 class="text-4xl lg:text-5xl font-extrabold text-text mb-4">Get in Touch Today</h2>
            <p class="text-lg text-text/80">For reliable electrical services or 24/7 emergencies, contact Micko Electrical.</p>
        </div>

        <div class="grid md:grid-cols-2 gap-12 lg:gap-16">
            <!-- Contact Form -->
            <div class="bg-background p-8 lg:p-10 rounded-2xl shadow-lg border border-text/10">
                <h3 class="text-2xl font-bold text-text mb-6">Send Us a Message</h3>
                <form action="#" method="POST" class="space-y-6">
                    <div>
                        <label for="name" class="block text-sm font-medium text-text mb-2">Name</label>
                        <input type="text" id="name" name="name" required
                               class="w-full px-4 py-3 rounded-xl border border-text/10 bg-background text-text shadow-sm focus:outline-none focus:ring-2 focus:ring-accent/60 focus:border-transparent transition duration-200 ease-in-out">
                    </div>
                    <div>
                        <label for="email" class="block text-sm font-medium text-text mb-2">Email</label>
                        <input type="email" id="email" name="email" required
                               class="w-full px-4 py-3 rounded-xl border border-text/10 bg-background text-text shadow-sm focus:outline-none focus:ring-2 focus:ring-accent/60 focus:border-transparent transition duration-200 ease-in-out">
                    </div>
                    <div>
                        <label for="phone" class="block text-sm font-medium text-text mb-2">Phone</label>
                        <input type="tel" id="phone" name="phone"
                               class="w-full px-4 py-3 rounded-xl border border-text/10 bg-background text-text shadow-sm focus:outline-none focus:ring-2 focus:ring-accent/60 focus:border-transparent transition duration-200 ease-in-out">
                    </div>
                    <div>
                        <label for="message" class="block text-sm font-medium text-text mb-2">Message</label>
                        <textarea id="message" name="message" rows="5" required
                                  class="w-full px-4 py-3 rounded-xl border border-text/10 bg-background text-text shadow-sm focus:outline-none focus:ring-2 focus:ring-accent/60 focus:border-transparent transition duration-200 ease-in-out"></textarea>
                    </div>
                    <button type="submit"
                            class="w-full inline-flex justify-center items-center px-6 py-3 border border-transparent text-base font-medium rounded-xl shadow-sm text-text bg-primary hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary/70 transition duration-200 ease-in-out">
                        Send Message
                    </button>
                </form>
            </div>

            <!-- Contact Info -->
            <div class="bg-background p-8 lg:p-10 rounded-2xl shadow-lg border border-text/10 space-y-8">
                <h3 class="text-2xl font-bold text-text mb-6">Our Details</h3>
                <div>
                    <h4 class="text-lg font-semibold text-text mb-2">Phone</h4>
                    <p class="text-text/80 text-lg">
                        <a href="tel:04XX XXX XXX" class="hover:text-primary transition duration-200 ease-in-out">04XX XXX XXX</a>
                    </p>
                </div>
                <div>
                    <h4 class="text-lg font-semibold text-text mb-2">Email</h4>
                    <p class="text-text/80 text-lg">
                        <a href="mailto:info@mickoelectrical.com.au" class="hover:text-primary transition duration-200 ease-in-out">info@mickoelectrical.com.au</a>
                    </p>
                </div>
                <div>
                    <h4 class="text-lg font-semibold text-text mb-2">Location</h4>
                    <p class="text-text/80 text-lg">Servicing Perth's Western Suburbs</p>
                </div>
            </div>
        </div>
    </div>
</section>

<!-- Floating 'Emergency? Call Now' button -->
<a href="tel:04XX XXX XXX"
   class="fixed bottom-8 right-8 z-50 bg-accent text-background px-6 py-3 rounded-full shadow-xl flex items-center space-x-2 hover:bg-accent/90 focus:outline-none focus:ring-2 focus:ring-accent/70 transition duration-300 ease-in-out animate-bounce">
    <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
        <path d="M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.54 1.06l-1.548.774a11.037 11.037 0 006.105 6.105l.774-1.548a1 1 0 011.06-.54l4.435.74a1 1 0 01.836.986V17a1 1 0 01-1 1h-2C7.82 18 2 12.18 2 5V3z"></path>
    </svg>
    <span class="font-semibold text-lg">Emergency? Call Now</span>
</a>
        </main>
        <footer class="bg-secondary text-primary py-8">
  <div class="container mx-auto px-4 grid grid-cols-1 md:grid-cols-3 gap-8">
    <div class="space-y-4">
      <h3 class="text-xl font-semibold">{{"Micko Electrical"}}</h3>
      <p class="text-sm">&copy; {{2025}} {{Micko Electrical}}</p>
    </div>
    <div>
      <h3 class="text-xl font-semibold mb-4">Navigation</h3>
      <ul class="space-y-2">
        <li><a href="#welcome" class="hover:underline">Welcome</a></li>
        <li><a href="#what-we-offer" class="hover:underline">What We Offer</a></li>
        <li><a href="#about" class="hover:underline">About</a></li>
        <li><a href="#testimonials" class="hover:underline">Testimonials</a></li>
        <li><a href="#get-in-touch" class="hover:underline">Get In Touch</a></li>
      </ul>
    </div>
    <div>
      <h3 class="text-xl font-semibold mb-4">Contact</h3>
      <p class="text-sm">Phone: 0401 234 567</p>
      <p class="text-sm">Email: micko@sparkywest.com.au</p>
      <p class="text-sm mt-2">Serving: Perth’s western suburbs (Subiaco, Cottesloe, Claremont, Nedlands, Duncraig, Joondalup)</p>
    </div>
  </div>
</footer>
        <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script>
  document.addEventListener('DOMContentLoaded', function() {
    AOS.init();
      AOS.init();
      AOS.init();
  });
</script>
        <script>
          const toggle = document.getElementById('mobile-menu-toggle');
          const menu = document.getElementById('mobile-menu');
          if (toggle && menu) {
            toggle.addEventListener('click', () => {
              menu.classList.toggle('hidden');
            });
          }


          document.querySelectorAll('a[href^="#"]').forEach(anchor => {
            anchor.addEventListener('click', function (e) {
              const target = document.querySelector(this.getAttribute('href'));
              if (target) {
                e.preventDefault();
                target.scrollIntoView({ behavior: 'smooth', block: 'start' });
              }
            });
          });

          // Conditional scroll animations (class added by enhancement level)
          if (document.querySelector('.fade-in-up')) {
            const observerOptions = { threshold: 0.1, rootMargin: '0px 0px -50px 0px' };
            const observer = new IntersectionObserver((entries) => {
              entries.forEach(entry => {
                if (entry.isIntersecting) {
                  entry.target.classList.add('opacity-100');
                  entry.target.style.animation = 'fadeInUp 0.6s ease-out forwards';
                  observer.unobserve(entry.target);
                }
              });
            }, observerOptions);
            document.querySelectorAll('.fade-in-up').forEach(el => observer.observe(el));
          }
        </script>
      </body>
    </html>