d / index.html
natee28's picture
Add 2 files
8548306 verified
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Elite Auto Detailing | Premium Car Care Services</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script src="https://js.stripe.com/v3/"></script>
<style>
:root {
--primary: #3a86ff;
--primary-dark: #2667cc;
--dark-bg: linear-gradient(135deg, #1a1a1a 0%, #121212 100%);
--dark-bg-alt: #252525;
--text: #f0f0f0;
--text-muted: #b0b0b0;
--light-bg: linear-gradient(135deg, #f9f9f9 0%, #e0e0e0 100%);
--light-bg-alt: #ffffff;
--shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body {
background: var(--dark-bg);
color: var(--text);
min-height: 100vh;
transition: all 0.5s ease;
overflow-x: hidden;
}
/* Header */
header {
padding: 1.5rem 5%;
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
backdrop-filter: blur(10px);
background-color: rgba(26, 26, 26, 0.8);
}
.logo {
display: flex;
align-items: center;
gap: 10px;
}
.logo i {
font-size: 1.8rem;
color: var(--primary);
}
.logo h1 {
font-weight: 700;
font-size: 1.5rem;
background: linear-gradient(to right, var(--primary), #6c5ce7);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
nav ul {
display: flex;
gap: 2rem;
list-style: none;
}
nav ul li a {
text-decoration: none;
color: var(--text);
font-weight: 500;
transition: color 0.3s ease;
position: relative;
}
nav ul li a:hover {
color: var(--primary);
}
nav ul li a::after {
content: '';
position: absolute;
width: 0;
height: 2px;
bottom: -5px;
left: 0;
background-color: var(--primary);
transition: width 0.3s ease;
}
nav ul li a:hover::after {
width: 100%;
}
.theme-toggle {
background: none;
border: none;
color: var(--text);
font-size: 1.3rem;
cursor: pointer;
transition: transform 0.3s ease;
}
.theme-toggle:hover {
transform: rotate(30deg);
}
/* Hero Section */
.hero {
height: 100vh;
display: flex;
align-items: center;
padding: 0 10%;
position: relative;
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: url('https://images.unsplash.com/photo-1624380543793-8a59daf69e3e?ixlib=rb-4.0.3&auto=format&fit=crop&w=1350&q=80') no-repeat center center/cover;
opacity: 0.3;
z-index: -1;
}
.hero-content {
max-width: 600px;
animation: fadeIn 1s ease forwards;
}
.hero-content h2 {
font-size: 3rem;
margin-bottom: 1rem;
line-height: 1.2;
}
.hero-content h2 span {
color: var(--primary);
}
.hero-content p {
font-size: 1.1rem;
margin-bottom: 2rem;
color: var(--text-muted);
line-height: 1.6;
}
.btn {
display: inline-block;
background: var(--primary);
color: white;
padding: 0.8rem 1.8rem;
border-radius: 50px;
text-decoration: none;
font-weight: 600;
transition: all 0.3s ease;
border: none;
cursor: pointer;
}
.btn:hover {
background: var(--primary-dark);
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(58, 134, 255, 0.2);
}
.btn-outline {
background: transparent;
border: 2px solid var(--primary);
color: var(--primary);
margin-left: 1rem;
}
.btn-outline:hover {
background: var(--primary);
color: white;
}
/* Services Section */
.section {
padding: 8rem 10%;
}
.section-title {
text-align: center;
margin-bottom: 5rem;
}
.section-title h2 {
font-size: 2.5rem;
display: inline-block;
position: relative;
padding-bottom: 1rem;
}
.section-title h2::after {
content: '';
position: absolute;
width: 60px;
height: 3px;
bottom: 0;
left: 50%;
transform: translateX(-50%);
background: var(--primary);
}
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.service-card {
background: var(--dark-bg-alt);
padding: 2.5rem;
border-radius: 15px;
transition: all 0.3s ease;
opacity: 0;
transform: translateY(20px);
}
.service-card.visible {
opacity: 1;
transform: translateY(0);
}
.service-card:hover {
transform: translateY(-10px);
box-shadow: var(--shadow);
}
.service-icon {
font-size: 2.5rem;
color: var(--primary);
margin-bottom: 1.5rem;
}
.service-card h3 {
font-size: 1.5rem;
margin-bottom: 1rem;
}
.service-card p {
color: var(--text-muted);
margin-bottom: 1.5rem;
line-height: 1.6;
}
.price {
font-size: 1.8rem;
font-weight: 700;
color: var(--primary);
margin-bottom: 1rem;
}
/* Booking Section */
.booking {
background: var(--dark-bg-alt);
padding: 5rem 10%;
text-align: center;
}
.booking-form {
max-width: 800px;
margin: 0 auto;
background: var(--dark-bg);
padding: 3rem;
border-radius: 15px;
box-shadow: var(--shadow);
opacity: 0;
transform: scale(0.9);
transition: all 0.5s ease;
}
.booking-form.visible {
opacity: 1;
transform: scale(1);
}
.form-group {
margin-bottom: 1.5rem;
text-align: left;
}
.form-group label {
display: block;
margin-bottom: 0.5rem;
font-weight: 500;
}
.form-control {
width: 100%;
padding: 0.8rem 1rem;
border-radius: 8px;
border: none;
background: rgba(255, 255, 255, 0.1);
color: var(--text);
font-size: 1rem;
transition: all 0.3s ease;
}
.form-control:focus {
outline: none;
box-shadow: 0 0 0 3px rgba(58, 134, 255, 0.3);
background: rgba(255, 255, 255, 0.15);
}
.form-row {
display: flex;
gap: 1.5rem;
}
.form-row .form-group {
flex: 1;
}
/* Payment Section */
.payment-section {
margin-top: 2rem;
padding: 2rem;
background: rgba(0, 0, 0, 0.2);
border-radius: 10px;
}
#card-element {
background: rgba(255, 255, 255, 0.1);
padding: 12px;
border-radius: 8px;
margin-bottom: 1.5rem;
}
/* Testimonials */
.testimonials {
position: relative;
}
.testimonial-slider {
display: flex;
overflow-x: auto;
scroll-snap-type: x mandatory;
gap: 2rem;
scrollbar-width: none; /* Firefox */
-ms-overflow-style: none; /* IE and Edge */
padding-bottom: 2rem;
}
.testimonial-slider::-webkit-scrollbar {
display: none; /* Chrome, Safari, Opera */
}
.testimonial-card {
min-width: 350px;
background: var(--dark-bg-alt);
padding: 2rem;
border-radius: 15px;
scroll-snap-align: start;
box-shadow: var(--shadow);
}
.testimonial-card .rating {
color: #ffc107;
margin-bottom: 1rem;
font-size: 1.2rem;
}
.testimonial-card p {
color: var(--text-muted);
font-style: italic;
margin-bottom: 1.5rem;
line-height: 1.6;
}
.client-info {
display: flex;
align-items: center;
gap: 1rem;
}
.client-avatar {
width: 50px;
height: 50px;
border-radius: 50%;
overflow: hidden;
}
.client-avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}
.client-name h4 {
font-weight: 600;
}
.client-name p {
color: var(--primary);
margin: 0;
font-size: 0.9rem;
}
/* Gallery */
.gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 1rem;
margin-top: 3rem;
}
.gallery-item {
border-radius: 10px;
overflow: hidden;
position: relative;
height: 250px;
transition: all 0.3s ease;
}
.gallery-item:hover {
transform: scale(1.03);
box-shadow: var(--shadow);
}
.gallery-item img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s ease;
}
.gallery-item:hover img {
transform: scale(1.1);
}
.gallery-item::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
opacity: 0;
transition: opacity 0.3s ease;
}
.gallery-item:hover::after {
opacity: 1;
}
/* FAQ Section */
.faq-item {
margin-bottom: 1rem;
border-radius: 8px;
overflow: hidden;
background: var(--dark-bg-alt);
box-shadow: var(--shadow);
}
.faq-question {
padding: 1.5rem;
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
font-weight: 600;
transition: background 0.3s ease;
}
.faq-question:hover {
background: rgba(255, 255, 255, 0.05);
}
.faq-answer {
padding: 0 1.5rem;
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease, padding 0.3s ease;
color: var(--text-muted);
}
.faq-item.active .faq-answer {
padding: 0 1.5rem 1.5rem;
max-height: 500px;
}
.faq-toggle {
transition: transform 0.3s ease;
}
.faq-item.active .faq-toggle {
transform: rotate(180deg);
}
/* Footer */
footer {
background: #0a0a0a;
padding: 5rem 10% 2rem;
margin-top: 5rem;
}
.footer-content {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 3rem;
margin-bottom: 3rem;
}
.footer-column h3 {
font-size: 1.3rem;
margin-bottom: 1.5rem;
position: relative;
display: inline-block;
}
.footer-column h3::after {
content: '';
position: absolute;
width: 40px;
height: 2px;
bottom: -8px;
left: 0;
background: var(--primary);
}
.footer-column p, .footer-column a {
color: var(--text-muted);
line-height: 1.8;
transition: color 0.3s ease;
text-decoration: none;
display: block;
margin-bottom: 0.8rem;
}
.footer-column a:hover {
color: var(--primary);
}
.social-links {
display: flex;
gap: 1rem;
margin-top: 1rem;
}
.social-links a {
width: 40px;
height: 40px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.1);
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
}
.social-links a:hover {
background: var(--primary);
transform: translateY(-3px);
}
.footer-bottom {
text-align: center;
padding-top: 2rem;
border-top: 1px solid rgba(255, 255, 255, 0.1);
color: var(--text-muted);
font-size: 0.9rem;
}
/* Login Form */
.login-form {
max-width: 400px;
margin: 0 auto;
background: var(--dark-bg-alt);
padding: 2rem;
border-radius: 15px;
box-shadow: var(--shadow);
}
.login-form h3 {
text-align: center;
margin-bottom: 1.5rem;
}
/* Backend Preview */
.backend-preview {
background: var(--dark-bg);
padding: 5rem 10%;
}
.backend-features {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
margin-top: 3rem;
}
.feature-card {
background: var(--dark-bg-alt);
padding: 2rem;
border-radius: 15px;
text-align: center;
transition: all 0.3s ease;
}
.feature-card:hover {
transform: translateY(-10px);
box-shadow: var(--shadow);
}
.feature-icon {
font-size: 2.5rem;
color: var(--primary);
margin-bottom: 1rem;
}
.feature-card h3 {
margin-bottom: 1rem;
}
.feature-card p {
color: var(--text-muted);
line-height: 1.6;
}
/* Animations */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Responsive */
@media (max-width: 768px) {
header {
padding: 1rem;
}
nav ul {
display: none;
}
.hero {
padding: 0 5%;
}
.hero-content h2 {
font-size: 2.2rem;
}
.section {
padding: 5rem 5%;
}
.form-row {
flex-direction: column;
gap: 0;
}
.btn-outline {
margin-left: 0;
margin-top: 1rem;
}
}
[data-theme="light"] {
--dark-bg: var(--light-bg);
--dark-bg-alt: var(--light-bg-alt);
--text: #333333;
--text-muted: #666666;
--shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}
</style>
</head>
<body>
<header>
<div class="logo">
<i class="fas fa-car"></i>
<h1>Elite Auto Detailing</h1>
</div>
<nav>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#services">Services</a></li>
<li><a href="#gallery">Gallery</a></li>
<li><a href="#testimonials">Testimonials</a></li>
<li><a href="#faq">FAQ</a></li>
<li><a href="#booking">Book Now</a></li>
</ul>
</nav>
<button class="theme-toggle" id="themeToggle">
<i class="fas fa-moon"></i>
</button>
</header>
<section class="hero" id="home">
<div class="hero-content">
<h2>Premium <span>Car Detailing</span> Services</h2>
<p>Revitalize your vehicle's appearance with our professional detailing services. We use only the highest quality products and techniques to bring back that showroom shine.</p>
<div>
<a href="#booking" class="btn">Book Now</a>
<a href="#services" class="btn btn-outline">Our Services</a>
</div>
</div>
</section>
<section class="section" id="services">
<div class="section-title">
<h2>Our Services</h2>
</div>
<div class="services-grid">
<div class="service-card">
<div class="service-icon">
<i class="fas fa-spray-can"></i>
</div>
<h3>Exterior Detailing</h3>
<p>Complete exterior cleaning including hand wash, clay bar treatment, polishing, and wax application for unmatched shine.</p>
<div class="price">$149+</div>
<a href="#booking" class="btn">Book Service</a>
</div>
<div class="service-card">
<div class="service-icon">
<i class="fas fa-pump-soap"></i>
</div>
<h3>Interior Detailing</h3>
<p>Deep clean for your interior including shampooing carpets, leather conditioning, and thorough sanitization.</p>
<div class="price">$179+</div>
<a href="#booking" class="btn">Book Service</a>
</div>
<div class="service-card">
<div class="service-icon">
<i class="fas fa-spa"></i>
</div>
<h3>Full Detailing</h3>
<p>Complete interior and exterior detailing package for comprehensive vehicle rejuvenation.</p>
<div class="price">$299+</div>
<a href="#booking" class="btn">Book Service</a>
</div>
<div class="service-card">
<div class="service-icon">
<i class="fas fa-shield-alt"></i>
</div>
<h3>Ceramic Coating</h3>
<p>Advanced paint protection with ceramic coating that lasts for years with proper maintenance.</p>
<div class="price">$499+</div>
<a href="#booking" class="btn">Book Service</a>
</div>
</div>
</section>
<section class="booking" id="booking">
<div class="section-title">
<h2>Book Your Service</h2>
</div>
<form id="bookingForm" class="booking-form" onsubmit="processBooking(event)">
<div class="form-row">
<div class="form-group">
<label for="name">Full Name</label>
<input type="text" id="name" class="form-control" required>
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" id="email" class="form-control" required>
</div>
</div>
<div class="form-row">
<div class="form-group">
<label for="phone">Phone Number</label>
<input type="tel" id="phone" class="form-control" required>
</div>
<div class="form-group">
<label for="vehicle">Vehicle Make/Model</label>
<input type="text" id="vehicle" class="form-control" required>
</div>
</div>
<div class="form-row">
<div class="form-group">
<label for="service">Service Type</label>
<select id="service" class="form-control" required>
<option value="">Select a Service</option>
<option value="exterior">Exterior Detailing ($149)</option>
<option value="interior">Interior Detailing ($179)</option>
<option value="full">Full Detailing ($299)</option>
<option value="ceramic">Ceramic Coating ($499)</option>
</select>
</div>
<div class="form-group">
<label for="date">Appointment Date</label>
<input type="date" id="date" class="form-control" required>
</div>
</div>
<div class="form-group">
<label for="notes">Special Requests</label>
<textarea id="notes" class="form-control" rows="3"></textarea>
</div>
<div class="payment-section">
<h4>Payment Information</h4>
<p>We require a $50 deposit to secure your appointment.</p>
<div id="card-element" class="form-control"></div>
<div id="card-errors" role="alert" style="color: #dc3545; margin-bottom: 15px;"></div>
<button type="submit" class="btn" id="submitBtn">
<span id="button-text">Pay Deposit & Book Now</span>
<span id="button-spinner" style="display: none;">
<i class="fas fa-spinner fa-spin"></i> Processing...
</span>
</button>
</div>
</form>
</section>
<section class="section" id="testimonials">
<div class="section-title">
<h2>Customer Testimonials</h2>
</div>
<div class="testimonial-slider">
<div class="testimonial-card">
<div class="rating">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
<p>"My car looks brand new after the full detailing! The team was professional and thorough. Will definitely be coming back!"</p>
<div class="client-info">
<div class="client-avatar">
<img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Michael Johnson">
</div>
<div class="client-name">
<h4>Michael Johnson</h4>
<p>BMW 5 Series Owner</p>
</div>
</div>
</div>
<div class="testimonial-card">
<div class="rating">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
<p>"The ceramic coating was worth every penny. My car beads water like nothing I've ever seen. Highly recommend!"</p>
<div class="client-info">
<div class="client-avatar">
<img src="https://randomuser.me/api/portraits/women/44.jpg" alt="Sarah Williams">
</div>
<div class="client-name">
<h4>Sarah Williams</h4>
<p>Porsche 911 Owner</p>
</div>
</div>
</div>
<div class="testimonial-card">
<div class="rating">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star-half-alt"></i>
</div>
<p>"I spilled coffee all over my seats, and they got it completely out. The interior smells amazing and looks as good as new."</p>
<div class="client-info">
<div class="client-avatar">
<img src="https://randomuser.me/api/portraits/men/75.jpg" alt="David Chen">
</div>
<div class="client-name">
<h4>David Chen</h4>
<p>Tesla Model 3 Owner</p>
</div>
</div>
</div>
</div>
</section>
<section class="section" id="gallery">
<div class="section-title">
<h2>Our Work</h2>
</div>
<div class="gallery">
<div class="gallery-item">
<img src="https://images.unsplash.com/photo-1598550872911-e344d8a62cf8?ixlib=rb-4.0.3&auto=format&fit=crop&w=1350&q=80" alt="Car Detailing">
</div>
<div class="gallery-item">
<img src="https://images.unsplash.com/photo-1542362567-b07e54358753?ixlib=rb-4.0.3&auto=format&fit=crop&w=1350&q=80" alt="Car Wash">
</div>
<div class="gallery-item">
<img src="https://images.unsplash.com/photo-1621761191319-c6fb62004040?ixlib=rb-4.0.3&auto=format&fit=crop&w=1350&q=80" alt="Interior Cleaning">
</div>
<div class="gallery-item">
<img src="https://images.unsplash.com/photo-1607863689396-0a57df2e1e96?ixlib=rb-4.0.3&auto=format&fit=crop&w=1350&q=80" alt="Wax Application">
</div>
<div class="gallery-item">
<img src="https://images.unsplash.com/photo-1598514982316-5a2a4b5e0ba0?ixlib=rb-4.0.3&auto=format&fit=crop&w=1350&q=80" alt="Polishing">
</div>
<div class="gallery-item">
<img src="https://images.unsplash.com/photo-1551269901-5c5e14c25df7?ixlib=rb-4.0.3&auto=format&fit=crop&w=1350&q=80" alt="Shiny Paint">
</div>
</div>
</section>
<section class="section" id="faq">
<div class="section-title">
<h2>Frequently Asked Questions</h2>
</div>
<div class="faq-list">
<div class="faq-item">
<div class="faq-question">
<span>How long does detailing take?</span>
<i class="fas fa-chevron-down faq-toggle"></i>
</div>
<div class="faq-answer">
<p>Our exterior detailing typically takes 2-3 hours, interior detailing 3-4 hours, and full detailing packages generally require 5-6 hours. Ceramic coating applications take the longest at 1-2 days due to curing requirements.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
<span>What's the difference between wax and ceramic coating?</span>
<i class="fas fa-chevron-down faq-toggle"></i>
</div>
<div class="faq-answer">
<p>Traditional wax provides shine and protection for 1-3 months, while ceramic coating forms a molecular bond with your paint that lasts for years with proper maintenance. Ceramic coating also offers superior protection against UV rays, chemicals, and environmental contaminants.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
<span>Can you remove scratches from my car?</span>
<i class="fas fa-chevron-down faq-toggle"></i>
</div>
<div class="faq-answer">
<p>We can improve or remove many light scratches through our polishing process. However, deep scratches that penetrate the clear coat may require touch-up paint or professional repainting. We'll assess your specific case during the booking process.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
<span>Do you offer mobile detailing services?</span>
<i class="fas fa-chevron-down faq-toggle"></i>
</div>
<div class="faq-answer">
<p>Yes! We offer mobile detailing within a 20-mile radius of our main location. There is a small travel fee depending on distance, and we require access to water and electrical outlets at your location for our equipment.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
<span>How often should I get my car detailed?</span>
<i class="fas fa-chevron-down faq-toggle"></i>
</div>
<div class="faq-answer">
<p>We recommend exterior detailing every 3-6 months and interior detailing every 6-12 months, depending on your vehicle usage and climate conditions. Ceramic coated vehicles need maintenance washes every 1-2 weeks and annual inspections to maintain warranty.</p>
</div>
</div>
</div>
</section>
<section class="backend-preview">
<div class="section-title">
<h2>Business Management Dashboard</h2>
<p>Preview of our powerful backend system (Admin access required)</p>
</div>
<div class="backend-features">
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-calendar-alt"></i>
</div>
<h3>Appointment Scheduling</h3>
<p>Real-time calendar with drag-and-drop booking, automated reminders, and conflict detection.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-wallet"></i>
</div>
<h3>Payment Processing</h3>
<p>Secure credit card payments, deposit management, and automatic payment tracking.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-chart-line"></i>
</div>
<h3>Business Analytics</h3>
<p>Detailed reports on revenue, service popularity, customer retention, and team performance.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-user-shield"></i>
</div>
<h3>Customer Management</h3>
<p>Complete customer profiles with service history, vehicle details, and preference tracking.</p>
</div>
</div>
<div class="login-form" id="adminLogin">
<h3>Admin Login</h3>
<div class="form-group">
<label for="username">Username</label>
<input type="text" id="username" class="form-control" required>
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" id="password" class="form-control" required>
</div>
<button type="button" class="btn" onclick="adminLogin()">Login</button>
</div>
</section>
<footer>
<div class="footer-content">
<div class="footer-column">
<h3>Elite Auto Detailing</h3>
<p>Premium car care services using professional techniques and high-quality products to restore your vehicle's appearance.</p>
<div class="social-links">
<a href="#"><i class="fab fa-facebook-f"></i></a>
<a href="#"><i class="fab fa-instagram"></i></a>
<a href="#"><i class="fab fa-twitter"></i></a>
<a href="#"><i class="fab fa-yelp"></i></a>
</div>
</div>
<div class="footer-column">
<h3>Quick Links</h3>
<a href="#home">Home</a>
<a href="#services">Services</a>
<a href="#gallery">Gallery</a>
<a href="#testimonials">Testimonials</a>
<a href="#faq">FAQ</a>
<a href="#booking">Booking</a>
</div>
<div class="footer-column">
<h3>Services</h3>
<a href="#booking">Exterior Detailing</a>
<a href="#booking">Interior Detailing</a>
<a href="#booking">Full Detailing</a>
<a href="#booking">Ceramic Coating</a>
<a href="#booking">Paint Correction</a>
<a href="#booking">Headlight Restoration</a>
</div>
<div class="footer-column">
<h3>Contact Us</h3>
<p><i class="fas fa-map-marker-alt"></i> 123 Detail Street, Auto City, CA 90210</p>
<p><i class="fas fa-phone"></i> (555) 123-4567</p>
<p><i class="fas fa-envelope"></i> info@eliteautodetail.com</p>
<p><i class="fas fa-clock"></i> Mon-Sat: 8am-6pm</p>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2023 Elite Auto Detailing. All Rights Reserved.</p>
</div>
</footer>
<script>
// Theme Toggle
const themeToggle = document.getElementById('themeToggle');
const body = document.body;
themeToggle.addEventListener('click', () => {
const currentTheme = body.getAttribute('data-theme');
if (currentTheme === 'dark') {
body.setAttribute('data-theme', 'light');
themeToggle.innerHTML = '<i class="fas fa-sun"></i>';
} else {
body.setAttribute('data-theme', 'dark');
themeToggle.innerHTML = '<i class="fas fa-moon"></i>';
}
localStorage.setItem('theme', body.getAttribute('data-theme'));
});
// Check for saved theme preference
const savedTheme = localStorage.getItem('theme');
if (savedTheme) {
body.setAttribute('data-theme', savedTheme);
if (savedTheme === 'light') {
themeToggle.innerHTML = '<i class="fas fa-sun"></i>';
}
}
// Scroll animations
const animateOnScroll = () => {
const elements = document.querySelectorAll('.service-card, .booking-form');
elements.forEach(element => {
const elementPosition = element.getBoundingClientRect().top;
const windowHeight = window.innerHeight;
if (elementPosition < windowHeight - 100) {
element.classList.add('visible');
}
});
};
window.addEventListener('scroll', animateOnScroll);
window.addEventListener('load', animateOnScroll);
// FAQ accordion
const faqItems = document.querySelectorAll('.faq-item');
faqItems.forEach(item => {
const question = item.querySelector('.faq-question');
question.addEventListener('click', () => {
// Close all other items
faqItems.forEach(otherItem => {
if (otherItem !== item && otherItem.classList.contains('active')) {
otherItem.classList.remove('active');
}
});
item.classList.toggle('active');
});
});
// Smooth scrolling for navigation
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
e.preventDefault();
const targetId = this.getAttribute('href');
const targetElement = document.querySelector(targetId);
if (targetElement) {
window.scrollTo({
top: targetElement.offsetTop - 80,
behavior: 'smooth'
});
}
});
});
// Stripe Payment Integration
const stripe = Stripe('pk_test_YOUR_STRIPE_PUBLIC_KEY'); // Replace with your actual public key
// Create a card element and mount it
const elements = stripe.elements();
const cardElement = elements.create('card');
cardElement.mount('#card-element');
// Handle form submission
async function processBooking(e) {
e.preventDefault();
const submitBtn = document.getElementById('submitBtn');
const buttonText = document.getElementById('button-text');
const buttonSpinner = document.getElementById('button-spinner');
// Show loading state
buttonText.style.display = 'none';
buttonSpinner.style.display = 'inline-block';
submitBtn.disabled = true;
// Collect form data
const formData = {
name: document.getElementById('name').value,
email: document.getElementById('email').value,
phone: document.getElementById('phone').value,
vehicle: document.getElementById('vehicle').value,
service: document.getElementById('service').value,
date: document.getElementById('date').value,
notes: document.getElementById('notes').value
};
try {
// In a real application, you would first create a Payment Intent on your server
// and then confirm it client-side with Stripe.js
// Create a fake Payment Intent (in production, this would be done on your backend)
const paymentIntent = await fakeCreatePaymentIntent(5000); // $50 deposit
// Confirm the payment
const { error, paymentIntent: confirmedPayment } = await stripe.confirmCardPayment(
paymentIntent.client_secret, {
payment_method: {
card: cardElement,
billing_details: {
name: formData.name,
email: formData.email
}
}
}
);
if (error) {
document.getElementById('card-errors').textContent = error.message;
buttonText.style.display = 'inline-block';
buttonSpinner.style.display = 'none';
submitBtn.disabled = false;
return;
}
// Payment successful - submit booking to backend
const bookingResponse = await fakeSubmitBooking(formData, confirmedPayment.id);
alert('Booking confirmed! We have sent a confirmation to your email.');
document.getElementById('bookingForm').reset();
} catch (error) {
console.error('Error:', error);
alert('An error occurred. Please try again.');
} finally {
buttonText.style.display = 'inline-block';
buttonSpinner.style.display = 'none';
submitBtn.disabled = false;
}
}
// In a real application, these would be API calls to your backend
function fakeCreatePaymentIntent(amount) {
return new Promise(resolve => {
setTimeout(() => {
resolve({
id: 'pi_' + Math.random().toString(36).substr(2, 8),
client_secret: 'pi_' + Math.random().toString(36).substr(2) + '_secret_' + Math.random().toString(36).substr(2),
amount: amount,
currency: 'usd',
status: 'requires_payment_method'
});
}, 1000);
});
}
function fakeSubmitBooking(formData, paymentId) {
console.log('Submitting booking:', formData);
console.log('Payment ID:', paymentId);
return new Promise(resolve => {
setTimeout(() => {
resolve({
success: true,
bookingId: 'book_' + Math.random().toString(36).substr(2, 8)
});
}, 1500);
});
}
// Admin login function
function adminLogin() {
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
// In a real application, this would validate against a backend
if (username === 'admin' && password === 'password') {
alert('Successfully logged in! Redirecting to admin dashboard...');
// In a real app: window.location.href = '/admin';
} else {
alert('Invalid credentials. Please try again.');
}
}
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <a href="https://enzostvs-deepsite.hf.space" style="color: #fff;" target="_blank" >DeepSite</a> <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;"></p></body>
</html>