<!DOCTYPE html>

<html lang="en" class="scroll-smooth">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Prime Handyman Service LLC | Premium Home Repairs & Maintenance</title>

    <script src="https://cdn.tailwindcss.com"></script>

    <script>

        tailwind.config = {

            theme: {

                extend: {

                    colors: {

                        'prime-navy': '#1e3a5f',

                        'prime-gold': '#d4a84b',

                    }

                }

            }

        }

    </script>

    <link rel="preconnect" href="https://fonts.googleapis.com">

    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">

    <style>

        body {

            font-family: 'Inter', sans-serif;

        }

    </style>

    <script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>

</head>

<body class="bg-gray-50 text-gray-900 flex flex-col min-h-screen">

    <header class="bg-white border-b border-gray-200 sticky top-0 z-50 shadow-sm">

        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 h-20 flex items-center justify-between">

            <div class="flex items-center space-x-2">

                <svg class="h-8 w-8 text-prime-gold" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">

                    <path stroke-linecap="round" stroke-linejoin="round" d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.381-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z" />

                </svg>

                <span class="text-xl font-bold text-prime-navy tracking-tight">Prime Handyman</span>

            </div>

            <nav class="hidden md:flex space-x-8 items-center">

                <a href="#services" class="text-gray-600 hover:text-prime-navy font-medium transition">Our Services</a>

                <a href="#contact" class="bg-prime-navy text-white px-5 py-2.5 rounded-md font-medium hover:bg-opacity-90 transition shadow-sm border border-transparent hover:border-prime-gold">Get a Quote</a>

            </nav>

        </div>

    </header>

    <main class="flex-grow">

        <section class="bg-prime-navy text-white py-20 lg:py-32 relative overflow-hidden">

            <div class="absolute inset-0 bg-opacity-10 bg-[radial-gradient(#d4a84b_1px,transparent_1px)] [background-size:16px_16px]"></div>

            <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">

                <div class="lg:w-2/3">

                    <span class="text-prime-gold uppercase tracking-widest font-semibold text-sm block mb-3">Premium Home Care & Upgrades</span>

                    <h1 class="text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight text-white mb-6">

                        Professional Property Solutions, <span class="text-prime-gold">Executed Perfectly.</span>

                    </h1>

                    <p class="text-lg sm:text-xl text-gray-300 mb-8 max-w-2xl">

                        From urgent residential repairs to seamless commercial installations, Prime Handyman Service LLC delivers elite craftsmanship to homeowners across Arizona.

                    </p>

                    <div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">

                        <a href="#contact" class="bg-prime-gold text-prime-navy text-center font-bold px-8 py-4 rounded-md shadow-md hover:bg-white transition">

                            Schedule a Service

                        </a>

                        <a href="#services" class="border border-gray-400 text-center text-white font-medium px-8 py-4 rounded-md hover:bg-white hover:text-prime-navy transition">

                            Explore Services

                        </a>

                    </div>

                </div>

            </div>

        </section>

        <section id="services" class="py-20 bg-white">

            <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">

                <div class="text-center max-w-3xl mx-auto mb-16">

                    <h2 class="text-3xl sm:text-4xl font-bold text-prime-navy mb-4">Our Professional Expertise</h2>

                    <div class="w-24 h-1 bg-prime-gold mx-auto mb-6"></div>

                    <p class="text-gray-600">We handle your property to-do list with licensed precision, high-quality materials, and exceptional customer service.</p>

                </div>

                <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">

                    <div class="p-8 border border-gray-100 rounded-xl bg-gray-50 shadow-sm hover:shadow-md transition">

                        <div class="w-12 h-12 bg-prime-navy rounded-lg flex items-center justify-center text-prime-gold mb-6">

                            <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path></svg>

                        </div>

                        <h3 class="text-xl font-bold text-prime-navy mb-3">General Home Repairs</h3>

                        <p class="text-gray-600 text-sm leading-relaxed">Drywall patching, door adjustments, hardware upgrades, and structural touch-ups executed to flawless standards.</p>

                    </div>

                    <div class="p-8 border border-gray-100 rounded-xl bg-gray-50 shadow-sm hover:shadow-md transition">

                        <div class="w-12 h-12 bg-prime-navy rounded-lg flex items-center justify-center text-prime-gold mb-6">

                            <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10</path></svg>

                        </div>

                        <h3 class="text-xl font-bold text-prime-navy mb-3">Smart Appliance Installations</h3>

                        <p class="text-gray-600 text-sm leading-relaxed">Mounting modern smart TVs, configuring custom lighting fixtures, smart thermostats, and appliance hookups.</p>

                    </div>

                    <div class="p-8 border border-gray-100 rounded-xl bg-gray-50 shadow-sm hover:shadow-md transition">

                        <div class="w-12 h-12 bg-prime-navy rounded-lg flex items-center justify-center text-prime-gold mb-6">

                            <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6</path></svg>

                        </div>

                        <h3 class="text-xl font-bold text-prime-navy mb-3">Carpentry & Assembly</h3>

                        <p class="text-gray-600 text-sm leading-relaxed">Precision furniture assembly, custom shelving design, premium trim work, and detailed baseboard integration.</p>

                    </div>

                </div>

            </div>

        </section>

        <section id="contact" class="py-20 bg-gray-50 border-t border-gray-200">

            <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8">

                <div class="bg-white rounded-2xl shadow-xl border border-gray-100 overflow-hidden p-8 sm:p-12">

                    <div class="text-center mb-10">

                        <h2 class="text-3xl font-bold text-prime-navy mb-2">Request an Estimate</h2>

                        <p class="text-gray-500 text-sm">Fill out the secure form below. Our operations team will respond within 2-4 business hours.</p>

                    </div>

                    <form id="leadForm" class="space-y-6">

                        <div class="grid grid-cols-1 sm:grid-cols-2 gap-6">

                            <div>

                                <label for="name" class="block text-sm font-semibold text-gray-700 mb-2">Full Name *</label>

                                <input type="text" id="name" required class="w-full px-4 py-3 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-prime-navy focus:border-prime-navy transition">

                            </div>

                            <div>

                                <label for="email" class="block text-sm font-semibold text-gray-700 mb-2">Email Address *</label>

                                <input type="email" id="email" required class="w-full px-4 py-3 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-prime-navy focus:border-prime-navy transition">

                            </div>

                        </div>

                        <div class="grid grid-cols-1 sm:grid-cols-2 gap-6">

                            <div>

                                <label for="phone" class="block text-sm font-semibold text-gray-700 mb-2">Phone Number *</label>

                                <input type="tel" id="phone" required class="w-full px-4 py-3 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-prime-navy focus:border-prime-navy transition">

                            </div>

                            <div>

                                <label for="zip" class="block text-sm font-semibold text-gray-700 mb-2">ZIP Code *</label>

                                <input type="text" id="zip" pattern="[0-9]{5}" required title="Five digit zip code" class="w-full px-4 py-3 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-prime-navy focus:border-prime-navy transition">

                            </div>

                        </div>

                        <div>

                            <label for="message" class="block text-sm font-semibold text-gray-700 mb-2">Project Details & Scope *</label>

                            <textarea id="message" rows="4" required placeholder="Please describe the repairs or installation services you need..." class="w-full px-4 py-3 border border-gray-300 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-prime-navy focus:border-prime-navy transition"></textarea>

                        </div>

                        <div>

                            <button type="submit" id="submitBtn" class="w-full bg-prime-navy text-white font-bold py-4 rounded-lg shadow-md hover:bg-opacity-95 focus:outline-none focus:ring-4 focus:ring-blue-200 transition flex items-center justify-center space-x-2 disabled:opacity-50 disabled:cursor-not-allowed">

                                <span id="btnText">Submit Request</span>

                                <span id="spinner" class="hidden animate-spin rounded-full h-5 w-5 border-b-2 border-white"></span>

                            </button>

                        </div>

                    </form>

                    <div id="formAlert" class="mt-6 hidden p-4 rounded-lg text-sm font-medium transition-all duration-300"></div>

                </div>

            </div>

        </section>

    </main>

    <footer class="bg-prime-navy text-gray-400 py-12 border-t border-gray-800">

        <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center sm:text-left flex flex-col sm:flex-row justify-between items-center space-y-4 sm:space-y-0">

            <p class="text-sm">&copy; 2026 Prime Handyman Service LLC. All rights reserved. Servicing Arizona.</p>

            <p class="text-xs text-gray-500">Domain: <a href="https://prime-handyman-az.com" class="hover:underline text-prime-gold">prime-handyman-az.com</a></p>

        </div>

    </footer>

    <script>

        // 1. SUPABASE ARCHITECTURE CONFIGURATION

        // Replace these empty strings with your actual client-side credentials from the Supabase Dashboard

        const SUPABASE_URL = 'YOUR_SUPABASE_URL';

        const SUPABASE_ANON_KEY = 'YOUR_SUPABASE_ANON_KEY';

        let supabase = null;

        // Gracefully initialize Supabase client if keys are present

        if (SUPABASE_URL !== 'YOUR_SUPABASE_URL' && SUPABASE_ANON_KEY !== 'YOUR_SUPABASE_ANON_KEY') {

            supabase = window.supabase.createClient(SUPABASE_URL, SUPABASE_ANON_KEY);

        } else {

            console.warn("PrimeOps CRM Alert: Supabase integration is currently inactive. Please insert your valid URL and Anon Key inside the script tag.");

        }

        // 2. DOM ELEMENT SELECTORS

        const leadForm = document.getElementById('leadForm');

        const submitBtn = document.getElementById('submitBtn');

        const btnText = document.getElementById('btnText');

        const spinner = document.getElementById('spinner');

        const formAlert = document.getElementById('formAlert');

        // 3. SECURE FORM SUBMISSION INTERACTION

        leadForm.addEventListener('submit', async (e) => {

            e.preventDefault();

            // Guardrail check for configuration

            if (!supabase) {

                showAlert('Configuration Error: Supabase URL/Key placeholders have not been replaced.', 'error');

                return;

            }

            // UI UX State: Disable submit workflow

            setLoadingState(true);

            hideAlert();

            // Extract values directly from form schema

            const submissionData = {

                name: document.getElementById('name').value.trim(),

                email: document.getElementById('email').value.trim(),

                phone: document.getElementById('phone').value.trim(),

                zip_code: document.getElementById('zip').value.trim(),

                message: document.getElementById('message').value.trim(),

                created_at: new Date().toISOString()

            };

            try {

                // Post asynchronous insertion payload into Supabase custom table schema

                const { error } = await supabase

                    .from('contact_submissions')

                    .insert([submissionData]);

                if (error) throw error;

                // UX Success Feedback Loop

                showAlert('Thank you! Your request has been securely transmitted. A team coordinator will reach out shortly.', 'success');

                leadForm.reset();

            } catch (err) {

                console.error('Database insertion breakdown:', err);

                showAlert(`Submission failed: ${err.message || 'Please check connection properties and try again.'}`, 'error');

            } finally {

                // Return interface interaction status to original form parameters

                setLoadingState(false);

            }

        });

        // 4. INTERFACE HELPER METHODS

        function setLoadingState(isLoading) {

            submitBtn.disabled = isLoading;

            if (isLoading) {

                btnText.textContent = "Processing Request...";

                spinner.classList.remove('hidden');

            } else {

                btnText.textContent = "Submit Request";

                spinner.classList.add('hidden');

            }

        }

        function showAlert(message, type) {

            formAlert.textContent = message;

            formAlert.classList.remove('hidden', 'bg-green-100', 'text-green-800', 'border', 'border-green-200', 'bg-red-100', 'text-red-800', 'border-red-200');

           

            if (type === 'success') {

                formAlert.classList.add('bg-green-100', 'text-green-800', 'border', 'border-green-200');

            } else {

                formAlert.classList.add('bg-red-100', 'text-red-800', 'border', 'border-red-200');

            }

        }

        function hideAlert() {

            formAlert.classList.add('hidden');

        }

    </script>

</body>

</html>