Text Content
<!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>ServSafe® Proctor Gilbert & East Valley AZ | Swearengen Solutions</title>
<link rel="canonical" href="https://servsafe.pages.dev/" />
<meta name="description" content="Official Registered ServSafe® Proctor by Carolyn Swearengen. Fast, stress-free Food Protection Manager exam proctoring serving Gilbert, Chandler, Mesa, Tempe, and the East Valley.">
<meta name="keywords" content="ServSafe Proctor, Food Manager Certification, Gilbert AZ, Chandler AZ, Mesa AZ, Tempe AZ, Scottsdale, Ahwatukee, Food Safety Exam, Proctoring Service East Valley, Carolyn Swearengen, Swearengen Solutions, ServSafe Exam Code, ANSI Food Safety, In-person exam proctor">
<meta name="author" content="Swearengen Solutions">
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<meta property="og:title" content="Get ServSafe® Certified in the East Valley - No Waiting">
<meta property="og:description" content="Local, stress-free proctoring for food service professionals. Online and print exams available in Gilbert, Chandler, Mesa, and surrounding areas.">
<meta property="og:url" content="https://servsafe.pages.dev/">
<meta property="og:image" content="https://i.imgur.com/L0886nr.png">
<meta property="og:type" content="website">
<meta property="og:locale" content="en_US">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Swearengen Solutions",
"url": "https://servsafe.pages.dev/",
"image": "https://i.imgur.com/L0886nr.png",
"telephone": "+1-480-788-3859",
"email": "SwearengenCarolyn@icloud.com",
"priceRange": "$69-$99",
"address": {
"@type": "PostalAddress",
"addressLocality": "Gilbert",
"addressRegion": "AZ",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 33.3528,
"longitude": -111.7890
},
"areaServed": [
{"@type": "City", "name": "Gilbert"},
{"@type": "City", "name": "Chandler"},
{"@type": "City", "name": "Mesa"},
{"@type": "City", "name": "Tempe"},
{"@type": "City", "name": "Scottsdale"},
{"@type": "City", "name": "Ahwatukee"}
],
"description": "Certified ServSafe Examination Proctor providing flexible testing appointments for food service professionals in the Arizona East Valley.",
"founder": {
"@type": "Person",
"name": "Carolyn Swearengen"
}
}
</script>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
<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=DM+Sans:wght@400;500;700&family=Fraunces:wght@600;700&display=swap" rel="stylesheet">
<style>
/* --- CUSTOM THEME VARIABLES --- */
:root {
--bg-dark: #0f172a; /* Slate 900 */
--bg-card: #1e293b; /* Slate 800 */
--text-main: #f1f5f9; /* Slate 100 */
--text-muted: #94a3b8; /* Slate 400 */
--accent-green: #22c55e; /* Green 500 */
--accent-blue: #3b82f6; /* Blue 500 */
}
body {
font-family: 'DM Sans', sans-serif;
background-color: var(--bg-dark);
color: var(--text-main);
}
h1, h2, h3, h4 {
font-family: 'Fraunces', serif;
}
/* --- UTILITIES --- */
.gradient-text {
background: linear-gradient(135deg, var(--accent-green), var(--accent-blue));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.btn-primary {
background: linear-gradient(135deg, var(--accent-green), #16a34a);
transition: all 0.3s ease;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 10px 30px rgba(34, 197, 94, 0.3);
}
/* Form Styling */
.form-input, .form-select, .form-textarea {
background-color: var(--bg-card);
border: 1px solid rgba(255,255,255,0.1);
color: white;
width: 100%;
padding: 12px 16px;
border-radius: 12px;
transition: all 0.3s;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
outline: none;
border-color: var(--accent-green);
box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.2);
}
option {
background-color: var(--bg-card);
color: white;
padding: 10px;
}
/* FAQ Accordion */
details > summary {
list-style: none;
}
details > summary::-webkit-details-marker {
display: none;
}
details[open] {
background-color: rgba(34, 197, 94, 0.05);
}
/* Modal Scrollbar */
#contactModal > div::-webkit-scrollbar {
width: 8px;
}
#contactModal > div::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.05);
border-radius: 10px;
}
#contactModal > div::-webkit-scrollbar-thumb {
background: rgba(34, 197, 94, 0.3);
border-radius: 10px;
}
</style>
</head>
<body class="antialiased selection:bg-green-500 selection:text-white">
<nav class="fixed w-full z-40 bg-slate-900/90 backdrop-blur-md border-b border-white/5">
<div class="max-w-6xl mx-auto px-6 h-20 flex items-center justify-between">
<a href="#" class="flex items-center gap-3 group">
<div class="w-10 h-10 rounded-lg bg-green-500 flex items-center justify-center shadow-lg shadow-green-500/20 group-hover:scale-110 transition-transform">
<span class="font-bold text-slate-900 text-xl">SS</span>
</div>
<span class="font-bold text-lg tracking-tight">Swearengen Solutions</span>
</a>
<div class="hidden md:flex items-center gap-8">
<a href="#process" class="text-slate-300 hover:text-green-400 transition-colors text-sm font-medium">Process</a>
<a href="#pricing" class="text-slate-300 hover:text-green-400 transition-colors text-sm font-medium">Pricing</a>
<a href="#faq" class="text-slate-300 hover:text-green-400 transition-colors text-sm font-medium">FAQ</a>
<button onclick="openModal()" class="px-5 py-2.5 rounded-full bg-white/5 hover:bg-white/10 border border-white/10 text-sm font-semibold transition-all">Book Now</button>
</div>
</div>
</nav>
<section class="pt-32 pb-20 px-6 relative overflow-hidden">
<div class="absolute inset-0 -z-20">
<img src="https://images.unsplash.com/photo-1514933651103-005eec06c04b?q=80&w=1934&auto=format&fit=crop" alt="Restaurant background" class="w-full h-full object-cover opacity-[0.08]">
</div>
<div class="absolute inset-0 bg-gradient-to-b from-slate-900/80 via-slate-900/95 to-slate-900 -z-10"></div>
<div class="absolute top-0 left-1/2 -translate-x-1/2 w-[800px] h-[500px] bg-green-500/20 rounded-full blur-[120px] -z-10"></div>
<div class="max-w-4xl mx-auto text-center relative z-10">
<div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-slate-800/80 backdrop-blur border border-white/10 mb-8 shadow-xl">
<span class="w-2 h-2 rounded-full bg-green-500 animate-pulse"></span>
<span class="text-xs font-semibold tracking-wide uppercase text-slate-300">Official Registered Proctor</span>
</div>
<h1 class="text-5xl md:text-7xl font-bold mb-8 leading-tight drop-shadow-lg">
Get Your <span class="gradient-text">ServSafe® Certification</span><br>with Confidence.
</h1>
<p class="text-lg md:text-xl text-slate-300 max-w-2xl mx-auto mb-10 leading-relaxed drop-shadow">
Skip the crowded testing centers. I provide professional, stress-free proctoring for Food Managers in Gilbert, Chandler, and the East Valley.
</p>
<div class="flex flex-col sm:flex-row gap-4 justify-center">
<button onclick="openModal()" class="btn-primary px-8 py-4 rounded-full font-bold text-white shadow-lg shadow-green-500/25">
Schedule Your Exam
</button>
</div>
</div>
</section>
<div id="contactModal" class="fixed inset-0 z-50 hidden items-center justify-center bg-slate-950/80 backdrop-blur-sm p-4 opacity-0 transition-opacity duration-300">
<div class="bg-slate-800 rounded-3xl p-8 md:p-10 border border-white/10 shadow-2xl w-full max-w-2xl relative max-h-[90vh] overflow-y-auto transform scale-95 transition-transform duration-300" id="modalContent">
<button onclick="closeModal()" class="absolute top-6 right-6 text-slate-400 hover:text-white transition-colors text-3xl leading-none">×</button>
<div class="text-center mb-8">
<span class="text-green-500 font-bold tracking-wider uppercase text-sm">Ready to Pass?</span>
<h2 class="text-3xl font-bold mt-2 mb-2">Schedule Your Exam</h2>
<p class="text-slate-400 text-sm">Fill out the form below. I typically reply within 2 hours.</p>
</div>
<form id="my-form" action="https://formspree.io/f/xkovzqqw" method="POST">
<div class="grid md:grid-cols-2 gap-6 mb-6">
<div>
<label class="block text-xs font-bold uppercase text-slate-500 mb-2">Full Name *</label>
<input type="text" name="name" required class="form-input" placeholder="Your Name">
</div>
<div>
<label class="block text-xs font-bold uppercase text-slate-500 mb-2">Email Address *</label>
<input type="email" name="email" required class="form-input" placeholder="you@email.com">
</div>
</div>
<div class="mb-6">
<label class="block text-xs font-bold uppercase text-slate-500 mb-2">Phone Number *</label>
<input type="tel" name="phone" required class="form-input" placeholder="(480) 555-0123">
</div>
<div class="mb-6">
<label class="block text-xs font-bold uppercase text-slate-500 mb-2">Which Package? *</label>
<select id="packageSelect" name="service_package" required class="form-select text-white transition-all">
<option value="" disabled selected class="text-slate-400">-- Select Option --</option>
<option value="Full_Service_99" class="text-white bg-slate-800">Full Service ($99) - Includes Proctoring + Exam Code</option>
<option value="Proctor_Only_69" class="text-white bg-slate-800">Proctor Only ($69) - I already purchased an Exam Code</option>
<option value="Group_Quote" class="text-white bg-slate-800">Group / Corporate Quote</option>
<option value="More_Info" class="text-white bg-slate-800">I'm not sure yet / Need more information</option>
</select>
</div>
<div id="disclaimerDiv" class="mb-6 hidden bg-orange-500/10 border border-orange-500/20 p-4 rounded-xl transition-all duration-300">
<label class="flex items-start gap-3 cursor-pointer">
<input type="checkbox" id="disclaimerCheck" name="voucher_acknowledgment" class="mt-1 w-5 h-5 rounded border-slate-600 text-green-500 focus:ring-green-500 bg-slate-900 cursor-pointer">
<span class="text-sm text-orange-200 leading-snug font-medium">
<strong>Official Acknowledgment:</strong> I understand that the "Proctor Only" package includes proctoring administration <em>only</em>. I acknowledge that I am required to purchase a valid Exam Access Code directly from ServSafe.com prior to my scheduled testing appointment in order to take the exam.
</span>
</label>
</div>
<div class="grid md:grid-cols-2 gap-6 mb-6">
<div>
<label class="block text-xs font-bold uppercase text-slate-500 mb-2">Preferred Date</label>
<input type="date" name="date" class="form-input">
</div>
<div>
<label class="block text-xs font-bold uppercase text-slate-500 mb-2">Preferred Time</label>
<select name="time" class="form-select text-white">
<option value="" disabled selected class="text-slate-400">-- Select --</option>
<option value="Morning" class="text-white bg-slate-800">Morning (8am - 12pm)</option>
<option value="Afternoon" class="text-white bg-slate-800">Afternoon (12pm - 5pm)</option>
<option value="Evening" class="text-white bg-slate-800">Evening (5pm - 8pm)</option>
<option value="Flexible" class="text-white bg-slate-800">Flexible / Any Time</option>
</select>
</div>
</div>
<div class="mb-8">
<label class="block text-xs font-bold uppercase text-slate-500 mb-2">Additional Notes</label>
<textarea name="message" rows="3" class="form-textarea" placeholder="Specific location request? Questions?"></textarea>
</div>
<button type="submit" id="my-form-button" class="w-full py-4 rounded-xl bg-green-500 hover:bg-green-400 text-slate-900 font-bold text-lg transition-all shadow-lg shadow-green-500/25">
Send Request
</button>
<p id="my-form-status" class="text-center mt-4 text-sm font-semibold h-6"></p>
</form>
</div>
</div>
<section id="process" class="py-12 px-6 bg-slate-900/50 border-y border-white/5 relative">
<div class="max-w-6xl mx-auto">
<div class="text-center mb-12">
<h2 class="text-3xl font-bold mb-4">How It Works</h2>
<p class="text-slate-400">A simple 4-step process to get certified.</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-4 gap-6 relative z-10">
<div class="bg-slate-800 p-6 rounded-2xl border border-white/5 hover:border-white/20 transition-all duration-300 shadow-xl">
<div class="w-10 h-10 rounded-full bg-green-500/20 text-green-400 flex items-center justify-center font-bold text-lg mb-4 border border-green-500/20">1</div>
<h3 class="text-lg font-bold text-white mb-2">Book Appointment</h3>
<p class="text-sm text-slate-400">Request a time using the form. I serve the entire East Valley.</p>
</div>
<div class="bg-slate-800 p-6 rounded-2xl border border-white/5 hover:border-white/20 transition-all duration-300 shadow-xl">
<div class="w-10 h-10 rounded-full bg-blue-500/20 text-blue-400 flex items-center justify-center font-bold text-lg mb-4 border border-blue-500/20">2</div>
<h3 class="text-lg font-bold text-white mb-2">Prepare</h3>
<p class="text-sm text-slate-400">Study your materials. Bring a valid Photo ID and a Wi-Fi capable laptop.</p>
</div>
<div class="bg-slate-800 p-6 rounded-2xl border border-white/5 hover:border-white/20 transition-all duration-300 shadow-xl">
<div class="w-10 h-10 rounded-full bg-purple-500/20 text-purple-400 flex items-center justify-center font-bold text-lg mb-4 border border-purple-500/20">3</div>
<h3 class="text-lg font-bold text-white mb-2">Take Exam</h3>
<p class="text-sm text-slate-400">I verify your identity, unlock the secure exam, and monitor the session.</p>
</div>
<div class="bg-slate-800 p-6 rounded-2xl border border-white/5 hover:border-white/20 transition-all duration-300 shadow-xl">
<div class="w-10 h-10 rounded-full bg-green-500 text-slate-900 flex items-center justify-center font-bold text-lg mb-4 shadow-lg shadow-green-500/20">4</div>
<h3 class="text-lg font-bold text-white mb-2">Get Certified</h3>
<p class="text-sm text-slate-400">For online exams, you receive your pass/fail status immediately. No waiting.</p>
</div>
</div>
</div>
</section>
<section class="py-20 px-6">
<div class="max-w-6xl mx-auto">
<div class="bg-slate-800 rounded-3xl p-8 md:p-12 border border-white/5 shadow-2xl relative overflow-hidden">
<div class="absolute top-0 right-0 w-64 h-64 bg-green-500/5 rounded-full blur-3xl -mr-16 -mt-16"></div>
<div class="flex flex-col lg:flex-row gap-12 items-center relative z-10">
<div class="flex-1">
<span class="text-green-400 font-bold uppercase tracking-wider text-xs mb-2 block">The Gold Standard</span>
<h2 class="text-3xl md:text-4xl font-bold mb-6">ServSafe® Food Protection Manager</h2>
<p class="text-slate-400 mb-6 leading-relaxed">
This certification is the industry standard for food safety, recognized by the American National Standards Institute (ANSI) and the Conference for Food Protection (CFP). It is required for the "Person in Charge" (PIC) at most food establishments.
</p>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-4 mb-8">
<div class="flex items-start gap-3">
<span class="text-green-500 mt-1">✓</span>
<div>
<strong class="text-white block">Who is it for?</strong>
<span class="text-slate-400 text-sm">Owners, Kitchen Managers, Chefs, Shift Leaders.</span>
</div>
</div>
<div class="flex items-start gap-3">
<span class="text-green-500 mt-1">✓</span>
<div>
<strong class="text-white block">What does it cover?</strong>
<span class="text-slate-400 text-sm">Foodborne microorganisms, allergens, hygiene, & regulations.</span>
</div>
</div>
</div>
</div>
<div class="w-full lg:w-1/3">
<div class="bg-slate-900/50 rounded-2xl p-6 border border-white/10">
<h3 class="text-white font-bold text-lg mb-6 border-b border-white/10 pb-4">Exam Specs</h3>
<ul class="space-y-6">
<li class="flex items-center gap-4">
<div class="w-10 h-10 rounded-full bg-blue-500/10 flex items-center justify-center text-blue-400 text-xl">📝</div>
<div>
<div class="text-2xl font-bold text-white">90</div>
<div class="text-xs text-slate-400 uppercase tracking-wide">Questions</div>
</div>
</li>
<li class="flex items-center gap-4">
<div class="w-10 h-10 rounded-full bg-purple-500/10 flex items-center justify-center text-purple-400 text-xl">⏱️</div>
<div>
<div class="text-2xl font-bold text-white">2 Hrs</div>
<div class="text-xs text-slate-400 uppercase tracking-wide">Time Limit</div>
</div>
</li>
<li class="flex items-center gap-4">
<div class="w-10 h-10 rounded-full bg-green-500/10 flex items-center justify-center text-green-400 text-xl">🎯</div>
<div>
<div class="text-2xl font-bold text-white">75%</div>
<div class="text-xs text-slate-400 uppercase tracking-wide">Passing Score</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="about" class="py-10 px-6">
<div class="max-w-5xl mx-auto">
<div class="rounded-3xl p-1 bg-gradient-to-br from-green-500/20 to-blue-500/20">
<div class="bg-slate-800 rounded-[22px] p-8 md:p-12 flex flex-col md:flex-row items-center gap-10">
<div class="flex-shrink-0 relative">
<div class="w-32 h-32 rounded-2xl bg-gradient-to-br from-green-500 to-emerald-600 flex items-center justify-center shadow-2xl shadow-green-900/50">
<svg class="w-16 h-16 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/></svg>
</div>
<div class="absolute -bottom-4 -right-4 bg-white text-slate-900 px-4 py-1 rounded-full text-xs font-bold shadow-lg">
VERIFIED
</div>
</div>
<div class="text-center md:text-left flex-1">
<h3 class="text-2xl font-bold mb-3">Officially Registered ServSafe® Proctor</h3>
<p class="text-slate-400 mb-6 leading-relaxed">
My name is <strong>Carolyn Swearengen</strong>. I founded Swearengen Solutions to offer a local, human alternative to impersonal testing centers. Whether you are a restaurant owner or a manager, I ensure your exam is compliant, secure, and convenient.
</p>
<div class="flex flex-wrap gap-3 justify-center md:justify-start">
<span class="px-3 py-1.5 rounded-lg bg-green-500/10 text-green-400 text-sm font-medium border border-green-500/20">✓ Instant Results</span>
<span class="px-3 py-1.5 rounded-lg bg-blue-500/10 text-blue-400 text-sm font-medium border border-blue-500/20">✓ Flexible Hours</span>
<span class="px-3 py-1.5 rounded-lg bg-purple-500/10 text-purple-400 text-sm font-medium border border-purple-500/20">✓ Local Expert</span>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="pricing" class="py-20 px-6">
<div class="max-w-6xl mx-auto">
<div class="text-center mb-16">
<h2 class="text-3xl md:text-4xl font-bold mb-4">Simple, Transparent Pricing</h2>
<p class="text-slate-400">Choose the package that fits your needs.</p>
</div>
<div class="flex flex-col lg:flex-row gap-8 items-center justify-center">
<div class="w-full max-w-sm bg-slate-800 rounded-3xl p-8 border border-white/5 hover:border-white/10 transition-all order-2 lg:order-1">
<h3 class="text-xl font-bold text-slate-300 mb-2">Proctor Only</h3>
<div class="flex items-baseline gap-1 mb-6">
<span class="text-4xl font-bold text-white">$69</span>
<span class="text-slate-500">/exam</span>
</div>
<p class="text-sm text-slate-400 mb-8 border-b border-white/5 pb-6">
Perfect if you have already purchased your own exam code from ServSafe.
</p>
<ul class="space-y-4 mb-8">
<li class="flex items-center gap-3 text-sm text-slate-300">
<span class="text-green-500">✓</span> Professional Proctoring (2 Hrs)
</li>
<li class="flex items-center gap-3 text-sm text-slate-300">
<span class="text-green-500">✓</span> Secure Administration
</li>
<li class="flex items-center gap-3 text-sm text-slate-500 line-through decoration-slate-600">
Exam Voucher Included
</li>
</ul>
<button onclick="openModal('Proctor_Only_69')" class="block w-full py-3 rounded-xl border border-slate-600 text-center font-semibold hover:bg-slate-700 transition-colors">Select Basic</button>
</div>
<div class="w-full max-w-md bg-gradient-to-b from-slate-700 to-slate-800 rounded-3xl p-1 relative border border-green-500/30 shadow-2xl shadow-green-900/20 order-1 lg:order-2 transform lg:-translate-y-4">
<div class="absolute -top-4 left-1/2 -translate-x-1/2 bg-green-500 text-slate-900 px-4 py-1 rounded-full text-xs font-bold uppercase tracking-wider shadow-lg">
Most Popular
</div>
<div class="bg-slate-800/90 rounded-[20px] p-8 h-full backdrop-blur-sm">
<h3 class="text-2xl font-bold text-white mb-2">Full Service</h3>
<div class="flex items-baseline gap-1 mb-6">
<span class="text-5xl font-bold text-green-400">$99</span>
<span class="text-slate-500">/exam</span>
</div>
<p class="text-sm text-slate-300 mb-8 border-b border-white/10 pb-6">
Everything you need. I provide the exam code so you don't have to worry about it.
</p>
<ul class="space-y-4 mb-8">
<li class="flex items-center gap-3 text-sm font-medium text-white">
<div class="w-6 h-6 rounded-full bg-green-500/20 flex items-center justify-center text-green-500 text-xs">✓</div>
Includes Exam Voucher ($36 Value)
</li>
<li class="flex items-center gap-3 text-sm text-slate-300">
<div class="w-6 h-6 rounded-full bg-green-500/20 flex items-center justify-center text-green-500 text-xs">✓</div>
Professional Proctoring (2 Hrs)
</li>
<li class="flex items-center gap-3 text-sm text-slate-300">
<div class="w-6 h-6 rounded-full bg-green-500/20 flex items-center justify-center text-green-500 text-xs">✓</div>
Instant Pass/Fail Results
</li>
</ul>
<button onclick="openModal('Full_Service_99')" class="block w-full py-4 rounded-xl bg-green-500 hover:bg-green-400 text-slate-900 text-center font-bold transition-colors shadow-lg shadow-green-500/25">Select Premium</button>
</div>
</div>
</div>
<div class="text-center mt-12">
<p class="text-slate-400 text-sm">Need to certify your whole staff? <button onclick="openModal('Group_Quote')" class="text-green-400 underline hover:text-green-300 decoration-green-500/50 underline-offset-4">Contact me for a Group Quote.</button></p>
</div>
</div>
</section>
<section class="py-16 px-6 bg-slate-900 border-y border-white/5">
<div class="max-w-6xl mx-auto flex flex-col md:flex-row items-center gap-12">
<div class="flex-1 z-10">
<h2 class="text-3xl font-bold mb-4">Serving the East Valley</h2>
<p class="text-slate-400 mb-8">
Based in Gilbert, I provide mobile proctoring services. We can meet at your business or a neutral public location (like a library) in any of these areas:
</p>
<div class="grid grid-cols-2 gap-4 mb-8">
<div class="flex items-center gap-3 p-3 rounded-lg bg-slate-800/50 border border-white/5">
<span class="text-green-500 text-xl">📍</span>
<span class="font-medium">Gilbert</span>
</div>
<div class="flex items-center gap-3 p-3 rounded-lg bg-slate-800/50 border border-white/5">
<span class="text-green-500 text-xl">📍</span>
<span class="font-medium">Chandler</span>
</div>
<div class="flex items-center gap-3 p-3 rounded-lg bg-slate-800/50 border border-white/5">
<span class="text-green-500 text-xl">📍</span>
<span class="font-medium">Mesa</span>
</div>
<div class="flex items-center gap-3 p-3 rounded-lg bg-slate-800/50 border border-white/5">
<span class="text-green-500 text-xl">📍</span>
<span class="font-medium">Tempe</span>
</div>
</div>
<div class="p-4 rounded-xl bg-blue-500/10 border border-blue-500/20 flex gap-4 items-start">
<span class="text-2xl">💡</span>
<p class="text-sm text-blue-200">
<strong>Don't see your city?</strong> I may be able to travel to you for a small travel fee. <button onclick="openModal()" class="underline hover:text-white transition-colors">Just ask!</button>
</p>
</div>
</div>
<div class="flex-1 w-full h-[500px] rounded-2xl overflow-hidden shadow-2xl shadow-black/50 border border-white/10 relative group z-0 bg-[#0e1629]">
<div id="map" class="w-full h-full"></div>
<div class="absolute inset-0 bg-gradient-to-t from-slate-900/80 to-transparent pointer-events-none z-[400]"></div>
<div class="absolute bottom-6 left-6 pointer-events-none z-[400]">
<p class="text-white font-bold text-lg drop-shadow-md">Local & Reliable</p>
<p class="text-green-400 text-sm drop-shadow-md">Arizona Native</p>
</div>
</div>
</div>
</section>
<section id="faq" class="py-20 px-6">
<div class="max-w-3xl mx-auto">
<h2 class="text-3xl font-bold mb-10 text-center">Frequently Asked Questions</h2>
<div class="space-y-4">
<details class="group bg-slate-800 rounded-xl border border-white/5 open:border-green-500/30 transition-colors" open>
<summary class="flex justify-between items-center cursor-pointer p-6 font-semibold">
What exactly is a ServSafe Proctor, and do I need one?
<span class="text-green-500 transform group-open:rotate-180 transition-transform">▼</span>
</summary>
<div class="px-6 pb-6 text-slate-400 text-sm leading-relaxed border-t border-white/5 pt-4">
A Registered ServSafe Proctor is an individual authorized by the National Restaurant Association to securely administer the Food Protection Manager Certification Exam. <strong>Yes, you need one!</strong> The exam cannot be taken unmonitored. <br><br>
<em>Note: I am a Proctor, not an Instructor. You should complete your self-study or online instructional course prior to scheduling your exam with me.</em>
</div>
</details>
<details class="group bg-slate-800 rounded-xl border border-white/5 open:border-green-500/30 transition-colors">
<summary class="flex justify-between items-center cursor-pointer p-6 font-semibold">
Online vs. Print Exam: Which should I choose?
<span class="text-green-500 transform group-open:rotate-180 transition-transform">▼</span>
</summary>
<div class="px-6 pb-6 text-slate-400 text-sm leading-relaxed border-t border-white/5 pt-4">
I highly recommend the <strong>Online Exam</strong>. With the online format, you bring your laptop, take the test on Wi-Fi, and receive your Pass/Fail score <em>immediately</em> upon finishing. <br><br>
If you choose a traditional paper exam, the physical answer sheet must be mailed back to ServSafe for grading, which typically takes 10+ business days to process your results. Both formats require you to be physically present with me.
</div>
</details>
<details class="group bg-slate-800 rounded-xl border border-white/5 open:border-green-500/30 transition-colors">
<summary class="flex justify-between items-center cursor-pointer p-6 font-semibold">
What is an Exam Access Code (Voucher)?
<span class="text-green-500 transform group-open:rotate-180 transition-transform">▼</span>
</summary>
<div class="px-6 pb-6 text-slate-400 text-sm leading-relaxed border-t border-white/5 pt-4">
An Exam Access Code is a unique, one-time-use digital key required to unlock the online test on the ServSafe platform. <br><br>
If you choose my <strong>Full Service ($99)</strong> package, I will provide this code for you on test day. If you choose the <strong>Proctor Only ($69)</strong> package, you are responsible for purchasing the code yourself directly from ServSafe.com prior to our meeting.
</div>
</details>
<details class="group bg-slate-800 rounded-xl border border-white/5 open:border-green-500/30 transition-colors">
<summary class="flex justify-between items-center cursor-pointer p-6 font-semibold">
Can I take the exam from home via webcam instead?
<span class="text-green-500 transform group-open:rotate-180 transition-transform">▼</span>
</summary>
<div class="px-6 pb-6 text-slate-400 text-sm leading-relaxed border-t border-white/5 pt-4">
<strong>No, I do not offer remote webcam proctoring.</strong> Remote proctoring is a completely separate service provided exclusively by a third-party company called <em>ProctorU</em>, which you must register for directly through the ServSafe website.<br><br>
I provide <strong>in-person proctoring</strong> in the East Valley. Many students prefer my local service because it is less invasive, you don't have to install strict monitoring software on your personal computer, and I handle the technical exam setup for you on-site.
</div>
</details>
<details class="group bg-slate-800 rounded-xl border border-white/5 open:border-green-500/30 transition-colors">
<summary class="flex justify-between items-center cursor-pointer p-6 font-semibold">
What do I need to bring on test day?
<span class="text-green-500 transform group-open:rotate-180 transition-transform">▼</span>
</summary>
<div class="px-6 pb-6 text-slate-400 text-sm leading-relaxed border-t border-white/5 pt-4">
On the day of your appointment, you must bring:
<ul class="list-disc pl-5 mt-2 space-y-1">
<li>A valid, <strong>Government-Issued Photo ID</strong> (Driver's License, Passport, etc.)</li>
<li>A <strong>laptop</strong> or tablet with a physical keyboard that is capable of connecting to Wi-Fi.</li>
<li>Your ServSafe.com account login credentials (username and password).</li>
</ul>
<em>Please note: Phones, smartwatches, and physical notes are strictly prohibited during the exam.</em>
</div>
</details>
</div>
</div>
</section>
<section id="contact-banner" class="py-24 px-6 relative overflow-hidden">
<div class="absolute inset-0 -z-20">
<img src="https://images.unsplash.com/photo-1556740738-b6a63e27c4df?q=80&w=2000&auto=format&fit=crop" alt="Customer service background" class="w-full h-full object-cover opacity-10">
</div>
<div class="absolute inset-0 bg-gradient-to-br from-slate-900/90 to-slate-900/95 -z-10"></div>
<div class="max-w-2xl mx-auto text-center relative z-10">
<h2 class="text-4xl font-bold mt-2 mb-6">Ready to secure your certification?</h2>
<button onclick="openModal()" class="px-10 py-5 rounded-full bg-green-500 text-slate-900 font-bold text-xl shadow-lg shadow-green-500/25 hover:bg-green-400 hover:scale-105 transition-all">
Book Your Appointment Now
</button>
</div>
</section>
<footer class="bg-slate-950 py-16 px-6 border-t border-white/5 text-slate-400 font-light">
<div class="max-w-6xl mx-auto grid grid-cols-1 md:grid-cols-4 gap-12 mb-12">
<div>
<a href="#" class="flex items-center gap-3 mb-6">
<div class="w-8 h-8 rounded-md bg-green-500 flex items-center justify-center text-slate-900 font-bold">SS</div>
<span class="text-white font-bold text-lg">Swearengen Solutions</span>
</a>
<p class="text-sm leading-relaxed mb-6">
Professional, reliable, and compliant ServSafe® proctoring services for the East Valley food service industry.
</p>
</div>
<div>
<h4 class="text-white font-bold mb-6">Services</h4>
<ul class="space-y-4 text-sm">
<li><button onclick="openModal()" class="hover:text-green-400 transition-colors">Online Proctoring</button></li>
<li><button onclick="openModal()" class="hover:text-green-400 transition-colors">Print Exam Proctoring</button></li>
<li><button onclick="openModal('Group_Quote')" class="hover:text-green-400 transition-colors">Corporate Groups</button></li>
</ul>
</div>
<div>
<h4 class="text-white font-bold mb-6">Quick Links</h4>
<ul class="space-y-4 text-sm">
<li><a href="#about" class="hover:text-green-400 transition-colors">About Me</a></li>
<li><a href="#process" class="hover:text-green-400 transition-colors">The Process</a></li>
<li><a href="#faq" class="hover:text-green-400 transition-colors">FAQ / Help</a></li>
</ul>
</div>
<div>
<h4 class="text-white font-bold mb-6">Connect</h4>
<ul class="space-y-4 text-sm">
<li class="flex items-center gap-3">
<span class="text-green-500 text-lg">📞</span>
<a href="tel:+14807883859" class="text-white hover:text-green-400 underline decoration-green-500/50 underline-offset-4 transition-colors">Call Me</a>
</li>
<li class="flex items-center gap-3">
<span class="text-green-500 text-lg">✉️</span>
<a href="mailto:SwearengenCarolyn@icloud.com" class="hover:text-white underline decoration-green-500/50 underline-offset-4 transition-colors">Email Me</a>
</li>
<li class="flex items-start gap-3">
<span class="text-green-500 text-lg mt-0.5">📍</span>
<span>Gilbert, AZ<br><span class="text-xs italic opacity-80">Serving East Valley</span></span>
</li>
</ul>
</div>
</div>
<div class="max-w-6xl mx-auto pt-8 border-t border-white/5 text-xs opacity-50 leading-relaxed text-center md:text-left">
<p class="mb-2">© 2024 Swearengen Solutions. All rights reserved.</p>
<p>
Disclaimer: This website is maintained by an independent, certified ServSafe® proctor. All exam administration follows NRAEF protocols and standards.
ServSafe® is a registered trademark of the National Restaurant Association Educational Foundation (NRAEF). I am an independently certified and registered
ServSafe® proctor authorized to administer official exams on behalf of the NRAEF.
</p>
</div>
</footer>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script>
/* --- Modal & Disclaimer Logic --- */
const modal = document.getElementById('contactModal');
const modalContent = document.getElementById('modalContent');
const packageSelect = document.getElementById('packageSelect');
const disclaimerDiv = document.getElementById('disclaimerDiv');
const disclaimerCheck = document.getElementById('disclaimerCheck');
// Toggle disclaimer based on package selection
packageSelect.addEventListener('change', function() {
if(this.value === 'Proctor_Only_69') {
disclaimerDiv.classList.remove('hidden');
disclaimerCheck.required = true;
} else {
disclaimerDiv.classList.add('hidden');
disclaimerCheck.required = false;
disclaimerCheck.checked = false; // Reset checkbox if they switch away
}
});
function openModal(packageValue = '') {
modal.classList.remove('hidden');
modal.classList.add('flex');
// Small delay to allow the flex display to render before fading in
setTimeout(() => {
modal.classList.remove('opacity-0');
modalContent.classList.remove('scale-95');
}, 10);
document.body.style.overflow = 'hidden'; // Prevent background scrolling
if (packageValue) {
packageSelect.value = packageValue;
} else {
packageSelect.value = '';
}
// Trigger the change event to check if disclaimer needs to be shown
packageSelect.dispatchEvent(new Event('change'));
}
function closeModal() {
modal.classList.add('opacity-0');
modalContent.classList.add('scale-95');
setTimeout(() => {
modal.classList.add('hidden');
modal.classList.remove('flex');
document.body.style.overflow = '';
}, 300); // Matches transition duration
}
// Close modal if user clicks outside the form container
modal.addEventListener('click', function(e) {
if (e.target === modal) {
closeModal();
}
});
/* --- Form Submission Logic --- */
var form = document.getElementById("my-form");
async function handleSubmit(event) {
event.preventDefault();
var status = document.getElementById("my-form-status");
var data = new FormData(event.target);
var btn = document.getElementById("my-form-button");
var originalBtnText = btn.innerHTML;
btn.innerHTML = "Sending...";
btn.disabled = true;
btn.classList.add('opacity-75');
fetch(event.target.action, {
method: form.method,
body: data,
headers: { 'Accept': 'application/json' }
}).then(response => {
if (response.ok) {
status.innerHTML = "Thanks! I'll be in touch shortly.";
status.style.color = "#4ade80"; // Green 400
form.reset();
packageSelect.dispatchEvent(new Event('change')); // Reset disclaimer UI
btn.innerHTML = "Request Sent ✓";
setTimeout(() => {
closeModal();
status.innerHTML = "";
btn.innerHTML = originalBtnText;
btn.disabled = false;
btn.classList.remove('opacity-75');
}, 3000);
} else {
response.json().then(data => {
if (Object.hasOwn(data, 'errors')) {
status.innerHTML = data["errors"].map(error => error["message"]).join(", ")
} else {
status.innerHTML = "Oops! There was a problem submitting your form"
}
status.style.color = "#f87171"; // Red 400
btn.innerHTML = originalBtnText;
btn.disabled = false;
btn.classList.remove('opacity-75');
})
}
}).catch(error => {
status.innerHTML = "Oops! There was a problem submitting your form";
status.style.color = "#f87171"; // Red 400
btn.innerHTML = originalBtnText;
btn.disabled = false;
btn.classList.remove('opacity-75');
});
}
form.addEventListener("submit", handleSubmit);
/* --- Leaflet Map Initialization --- */
const map = L.map('map', {
zoomControl: false, // Turned off default zoom to look cleaner, can be enabled
scrollWheelZoom: false // Prevents getting stuck zooming while scrolling the page
}).setView([33.33, -111.82], 11);
L.tileLayer(
'https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/{z}/{x}/{y}{r}.png',
{
maxZoom: 20,
attribution: '© Stadia Maps © OpenMapTiles'
}
).addTo(map);
const serviceArea = [
[33.2173522157954, -111.85438110575977],
[33.219708086004985, -111.71469716019743],
[33.43254759960239, -111.70237226345631],
[33.42688077785593, -111.96531876717081],
[33.304784070957254, -111.96548715617189],
[33.2173522157954, -111.85438110575977]
];
L.polygon(serviceArea, {
color: "#22c55e", // Matching tailwind green-500
weight: 2,
fillColor: "#22c55e",
fillOpacity: 0.15
}).addTo(map);
map.fitBounds(serviceArea);
</script>
</body>
</html>