mirror of
https://github.com/myronblair/parkerslingshotrentals
synced 2026-06-30 17:50:31 -05:00
Initial commit
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
*.log
|
||||||
|
.DS_Store
|
||||||
|
*.swp
|
||||||
|
|
||||||
|
uploads/
|
||||||
+139
@@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Parker County Slingshot Rentals — Booking Request Handler
|
||||||
|
*/
|
||||||
|
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
header('Access-Control-Allow-Origin: https://parkerslingshotrentals.com');
|
||||||
|
header('Access-Control-Allow-Methods: POST, OPTIONS');
|
||||||
|
header('Access-Control-Allow-Headers: Content-Type');
|
||||||
|
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(204); exit; }
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||||
|
http_response_code(405);
|
||||||
|
echo json_encode(['success' => false, 'error' => 'Method not allowed']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── CONFIG ────────────────────────────────────────────────────────────
|
||||||
|
define('SENDGRID_API_KEY', 'SG.YOUR_KEY_HERE'); // <-- replace with your SendGrid API key
|
||||||
|
define('MAIL_FROM', 'noreply@parkerslingshotrentals.com');
|
||||||
|
define('MAIL_FROM_NAME', 'Parker County Slingshot Rentals');
|
||||||
|
define('ADMIN_EMAIL', 'info@parkerslingshotrentals.com'); // where booking alerts go
|
||||||
|
// ─────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
$input = json_decode(file_get_contents('php://input'), true);
|
||||||
|
if (!$input) { $input = $_POST; }
|
||||||
|
|
||||||
|
$name = trim(strip_tags($input['name'] ?? ''));
|
||||||
|
$email = trim(strip_tags($input['email'] ?? ''));
|
||||||
|
$phone = trim(strip_tags($input['phone'] ?? ''));
|
||||||
|
$package = trim(strip_tags($input['package'] ?? ''));
|
||||||
|
$date = trim(strip_tags($input['date'] ?? ''));
|
||||||
|
$message = trim(strip_tags($input['message'] ?? ''));
|
||||||
|
|
||||||
|
// Basic validation
|
||||||
|
if (!$name || !$email || !$package || !$date) {
|
||||||
|
http_response_code(400);
|
||||||
|
echo json_encode(['success' => false, 'error' => 'Name, email, package, and date are required.']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||||
|
http_response_code(400);
|
||||||
|
echo json_encode(['success' => false, 'error' => 'Invalid email address.']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$packages = [
|
||||||
|
'half-day' => 'Half Day (4 hrs) — $99',
|
||||||
|
'full-day' => 'Full Day (8 hrs) — $169',
|
||||||
|
'weekend' => 'Weekend (48 hrs) — $299',
|
||||||
|
];
|
||||||
|
$packageLabel = $packages[$package] ?? ucfirst($package);
|
||||||
|
$dateFormatted = date('F j, Y', strtotime($date));
|
||||||
|
|
||||||
|
// ── SEND ADMIN ALERT ──────────────────────────────────────────────────
|
||||||
|
$adminHtml = '
|
||||||
|
<div style="max-width:600px;margin:0 auto;font-family:Arial,sans-serif;">
|
||||||
|
<div style="background:#f97316;padding:24px;text-align:center;">
|
||||||
|
<h1 style="color:#fff;margin:0;font-size:22px;">New Booking Request!</h1>
|
||||||
|
<p style="color:rgba(255,255,255,.85);margin:4px 0 0;font-size:14px;">Parker County Slingshot Rentals</p>
|
||||||
|
</div>
|
||||||
|
<div style="padding:28px;background:#fff;border:1px solid #e5e7eb;">
|
||||||
|
<table style="width:100%;border-collapse:collapse;font-size:15px;">
|
||||||
|
<tr><td style="padding:10px 0;color:#6b7280;width:100px;">Name</td>
|
||||||
|
<td style="padding:10px 0;font-weight:600;">' . htmlspecialchars($name) . '</td></tr>
|
||||||
|
<tr><td style="padding:10px 0;color:#6b7280;">Email</td>
|
||||||
|
<td style="padding:10px 0;"><a href="mailto:' . htmlspecialchars($email) . '" style="color:#f97316;">' . htmlspecialchars($email) . '</a></td></tr>
|
||||||
|
<tr><td style="padding:10px 0;color:#6b7280;">Phone</td>
|
||||||
|
<td style="padding:10px 0;">' . (htmlspecialchars($phone) ?: '<em style="color:#9ca3af;">not provided</em>') . '</td></tr>
|
||||||
|
<tr><td style="padding:10px 0;color:#6b7280;">Package</td>
|
||||||
|
<td style="padding:10px 0;font-weight:700;color:#f97316;">' . htmlspecialchars($packageLabel) . '</td></tr>
|
||||||
|
<tr><td style="padding:10px 0;color:#6b7280;">Date</td>
|
||||||
|
<td style="padding:10px 0;font-weight:600;">' . htmlspecialchars($dateFormatted) . '</td></tr>
|
||||||
|
</table>
|
||||||
|
' . ($message ? '<div style="margin-top:16px;padding:16px;background:#fff7ed;border-radius:8px;border-left:4px solid #f97316;"><p style="margin:0;font-size:14px;color:#374151;line-height:1.6;">' . nl2br(htmlspecialchars($message)) . '</p></div>' : '') . '
|
||||||
|
<p style="margin-top:20px;font-size:13px;color:#9ca3af;">Submitted ' . date('F j, Y \a\t g:i A') . ' CT</p>
|
||||||
|
</div>
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
// ── SEND CUSTOMER CONFIRMATION ────────────────────────────────────────
|
||||||
|
$confirmHtml = '
|
||||||
|
<div style="max-width:600px;margin:0 auto;font-family:Arial,sans-serif;">
|
||||||
|
<div style="background:#0d0d0d;padding:24px;text-align:center;">
|
||||||
|
<h1 style="color:#f97316;margin:0;font-size:22px;">Parker County Slingshot Rentals</h1>
|
||||||
|
</div>
|
||||||
|
<div style="padding:32px;background:#fff;">
|
||||||
|
<h2 style="color:#0d0d0d;margin-top:0;">Booking Request Received!</h2>
|
||||||
|
<p style="color:#374151;line-height:1.6;">Hey ' . htmlspecialchars($name) . ', we got your request and will confirm availability within a few hours.</p>
|
||||||
|
<div style="background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:20px;margin:24px 0;">
|
||||||
|
<h3 style="margin-top:0;color:#f97316;font-size:16px;">Your Request Summary</h3>
|
||||||
|
<p style="margin:4px 0;font-size:14px;color:#374151;"><strong>Package:</strong> ' . htmlspecialchars($packageLabel) . '</p>
|
||||||
|
<p style="margin:4px 0;font-size:14px;color:#374151;"><strong>Requested Date:</strong> ' . htmlspecialchars($dateFormatted) . '</p>
|
||||||
|
</div>
|
||||||
|
<p style="color:#374151;line-height:1.6;">We\'ll reach out to you at <strong>' . htmlspecialchars($email) . '</strong>' . ($phone ? ' or <strong>' . htmlspecialchars($phone) . '</strong>' : '') . ' to confirm your ride.</p>
|
||||||
|
<p style="color:#374151;line-height:1.6;">Questions? Call or text us at <strong>(817) 555-0199</strong>.</p>
|
||||||
|
<p style="color:#374151;line-height:1.6;">Ride on,<br><strong>The Parker County Slingshot Team</strong></p>
|
||||||
|
</div>
|
||||||
|
<div style="background:#f3f4f6;padding:16px;text-align:center;">
|
||||||
|
<p style="margin:0;font-size:12px;color:#9ca3af;">© ' . date('Y') . ' Parker County Slingshot Rentals — Weatherford, TX</p>
|
||||||
|
</div>
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
function sendgridSend(string $toEmail, string $toName, string $subject, string $html): bool {
|
||||||
|
$payload = json_encode([
|
||||||
|
'personalizations' => [['to' => [['email' => $toEmail, 'name' => $toName]]]],
|
||||||
|
'from' => ['email' => MAIL_FROM, 'name' => MAIL_FROM_NAME],
|
||||||
|
'subject' => $subject,
|
||||||
|
'content' => [['type' => 'text/html', 'value' => $html]],
|
||||||
|
]);
|
||||||
|
|
||||||
|
$ch = curl_init('https://api.sendgrid.com/v3/mail/send');
|
||||||
|
curl_setopt_array($ch, [
|
||||||
|
CURLOPT_RETURNTRANSFER => true,
|
||||||
|
CURLOPT_POST => true,
|
||||||
|
CURLOPT_POSTFIELDS => $payload,
|
||||||
|
CURLOPT_HTTPHEADER => [
|
||||||
|
'Authorization: Bearer ' . SENDGRID_API_KEY,
|
||||||
|
'Content-Type: application/json',
|
||||||
|
],
|
||||||
|
CURLOPT_TIMEOUT => 20,
|
||||||
|
CURLOPT_SSL_VERIFYPEER => false,
|
||||||
|
]);
|
||||||
|
$response = curl_exec($ch);
|
||||||
|
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
|
curl_close($ch);
|
||||||
|
return $code === 202;
|
||||||
|
}
|
||||||
|
|
||||||
|
$apiKey = SENDGRID_API_KEY;
|
||||||
|
if ($apiKey && strpos($apiKey, 'YOUR_KEY') === false) {
|
||||||
|
sendgridSend(ADMIN_EMAIL, 'Parker Slingshot Admin',
|
||||||
|
"New Booking Request: {$name} — {$packageLabel} on {$dateFormatted}", $adminHtml);
|
||||||
|
sendgridSend($email, $name,
|
||||||
|
"Booking Request Confirmed — Parker County Slingshot", $confirmHtml);
|
||||||
|
} else {
|
||||||
|
error_log('[Parker Slingshot] SENDGRID_API_KEY not configured');
|
||||||
|
}
|
||||||
|
|
||||||
|
echo json_encode(['success' => true, 'message' => 'Booking request received! We\'ll be in touch shortly.']);
|
||||||
+751
@@ -0,0 +1,751 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Parker County Slingshot Rentals | Polaris Slingshot | Weatherford, TX</title>
|
||||||
|
<meta name="description" content="Rent a Polaris Slingshot in Parker County, TX. Experience the thrill of open-air three-wheel driving through Weatherford and the DFW area. Book online today — daily and weekend rentals available." />
|
||||||
|
<meta name="keywords" content="Polaris Slingshot rental, Parker County slingshot rental, Weatherford TX slingshot, DFW slingshot rental, three wheel rental Texas, slingshot car rental, open air vehicle rental, adventure rental Weatherford" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
<link rel="canonical" href="https://parkerslingshotrentals.com/" />
|
||||||
|
|
||||||
|
<!-- Open Graph -->
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:site_name" content="Parker County Slingshot Rentals" />
|
||||||
|
<meta property="og:title" content="Parker County Slingshot Rentals | Polaris Slingshot | Weatherford, TX" />
|
||||||
|
<meta property="og:description" content="Rent a Polaris Slingshot in Parker County, TX. Daily and weekend rentals. Experience open-air three-wheel driving through the beautiful Texas Hill Country near DFW." />
|
||||||
|
<meta property="og:url" content="https://parkerslingshotrentals.com/" />
|
||||||
|
<meta property="og:image" content="https://parkerslingshotrentals.com/assets/og-image.jpg" />
|
||||||
|
<meta property="og:locale" content="en_US" />
|
||||||
|
|
||||||
|
<!-- Twitter Card -->
|
||||||
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
|
<meta name="twitter:title" content="Parker County Slingshot Rentals | Polaris Slingshot | Weatherford, TX" />
|
||||||
|
<meta name="twitter:description" content="Rent a Polaris Slingshot in Parker County, TX. Daily and weekend rentals available. Book today!" />
|
||||||
|
<meta name="twitter:image" content="https://parkerslingshotrentals.com/assets/og-image.jpg" />
|
||||||
|
|
||||||
|
<!-- JSON-LD Structured Data -->
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@graph": [
|
||||||
|
{
|
||||||
|
"@type": "LocalBusiness",
|
||||||
|
"@id": "https://parkerslingshotrentals.com/#business",
|
||||||
|
"name": "Parker County Slingshot Rentals",
|
||||||
|
"description": "Polaris Slingshot rentals in Parker County, Texas. Daily and weekend rentals available for thrill-seekers near Weatherford and the DFW metroplex.",
|
||||||
|
"url": "https://parkerslingshotrentals.com",
|
||||||
|
"telephone": "+1-817-555-0199",
|
||||||
|
"email": "info@parkerslingshotrentals.com",
|
||||||
|
"priceRange": "$$",
|
||||||
|
"currenciesAccepted": "USD",
|
||||||
|
"paymentAccepted": "Cash, Credit Card",
|
||||||
|
"address": {
|
||||||
|
"@type": "PostalAddress",
|
||||||
|
"addressLocality": "Weatherford",
|
||||||
|
"addressRegion": "TX",
|
||||||
|
"postalCode": "76086",
|
||||||
|
"addressCountry": "US"
|
||||||
|
},
|
||||||
|
"geo": {
|
||||||
|
"@type": "GeoCoordinates",
|
||||||
|
"latitude": 32.7554,
|
||||||
|
"longitude": -97.7981
|
||||||
|
},
|
||||||
|
"openingHoursSpecification": [
|
||||||
|
{
|
||||||
|
"@type": "OpeningHoursSpecification",
|
||||||
|
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
|
||||||
|
"opens": "09:00",
|
||||||
|
"closes": "18:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "OpeningHoursSpecification",
|
||||||
|
"dayOfWeek": ["Saturday","Sunday"],
|
||||||
|
"opens": "08:00",
|
||||||
|
"closes": "20:00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sameAs": [],
|
||||||
|
"hasOfferCatalog": {
|
||||||
|
"@type": "OfferCatalog",
|
||||||
|
"name": "Slingshot Rental Packages",
|
||||||
|
"itemListElement": [
|
||||||
|
{
|
||||||
|
"@type": "Offer",
|
||||||
|
"itemOffered": {
|
||||||
|
"@type": "Product",
|
||||||
|
"name": "Half-Day Slingshot Rental",
|
||||||
|
"description": "4-hour Polaris Slingshot rental — perfect for a quick thrill around Parker County."
|
||||||
|
},
|
||||||
|
"priceCurrency": "USD",
|
||||||
|
"price": "99.00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "Offer",
|
||||||
|
"itemOffered": {
|
||||||
|
"@type": "Product",
|
||||||
|
"name": "Full-Day Slingshot Rental",
|
||||||
|
"description": "8-hour Polaris Slingshot rental — explore Weatherford, Mineral Wells, and beyond."
|
||||||
|
},
|
||||||
|
"priceCurrency": "USD",
|
||||||
|
"price": "169.00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "Offer",
|
||||||
|
"itemOffered": {
|
||||||
|
"@type": "Product",
|
||||||
|
"name": "Weekend Slingshot Rental",
|
||||||
|
"description": "48-hour weekend Polaris Slingshot rental — the ultimate Texas road trip experience."
|
||||||
|
},
|
||||||
|
"priceCurrency": "USD",
|
||||||
|
"price": "299.00"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "WebSite",
|
||||||
|
"@id": "https://parkerslingshotrentals.com/#website",
|
||||||
|
"url": "https://parkerslingshotrentals.com",
|
||||||
|
"name": "Parker County Slingshot Rentals",
|
||||||
|
"publisher": {"@id": "https://parkerslingshotrentals.com/#business"},
|
||||||
|
"potentialAction": {
|
||||||
|
"@type": "SearchAction",
|
||||||
|
"target": "https://parkerslingshotrentals.com/?s={search_term_string}",
|
||||||
|
"query-input": "required name=search_term_string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "FAQPage",
|
||||||
|
"mainEntity": [
|
||||||
|
{
|
||||||
|
"@type": "Question",
|
||||||
|
"name": "Do I need a motorcycle license to rent a Polaris Slingshot in Texas?",
|
||||||
|
"acceptedAnswer": {
|
||||||
|
"@type": "Answer",
|
||||||
|
"text": "In Texas, a standard Class C driver's license is sufficient to operate a Polaris Slingshot. No motorcycle endorsement is required. You must be 25 or older to rent."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "Question",
|
||||||
|
"name": "What is included in the rental?",
|
||||||
|
"acceptedAnswer": {
|
||||||
|
"@type": "Answer",
|
||||||
|
"text": "Every rental includes the Polaris Slingshot, helmets for all riders, a safety orientation, a suggested route map, roadside assistance, and comprehensive insurance coverage."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "Question",
|
||||||
|
"name": "How many people can ride in a Polaris Slingshot?",
|
||||||
|
"acceptedAnswer": {
|
||||||
|
"@type": "Answer",
|
||||||
|
"text": "The Polaris Slingshot seats two people — a driver and one passenger. Both will enjoy an open-air, sports-car-style driving experience."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "Question",
|
||||||
|
"name": "Where can I drive the Slingshot?",
|
||||||
|
"acceptedAnswer": {
|
||||||
|
"@type": "Answer",
|
||||||
|
"text": "You can drive throughout Parker County and the surrounding DFW area including Weatherford, Mineral Wells, Granbury, and Azle. We provide a recommended scenic route guide with every rental."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!-- Fonts & Icons -->
|
||||||
|
<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@400;500;600;700&family=Barlow+Condensed:wght@600;700;800&display=swap" rel="stylesheet" />
|
||||||
|
|
||||||
|
<style>
|
||||||
|
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--orange: #f97316;
|
||||||
|
--orange-dark: #ea580c;
|
||||||
|
--black: #0d0d0d;
|
||||||
|
--dark: #1a1a2e;
|
||||||
|
--gray: #6b7280;
|
||||||
|
--light: #f9fafb;
|
||||||
|
--white: #ffffff;
|
||||||
|
--radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html { scroll-behavior: smooth; }
|
||||||
|
body { font-family: 'Inter', sans-serif; background: var(--black); color: var(--white); line-height: 1.6; }
|
||||||
|
|
||||||
|
/* NAV */
|
||||||
|
nav {
|
||||||
|
position: fixed; top: 0; left: 0; right: 0; z-index: 100;
|
||||||
|
display: flex; align-items: center; justify-content: space-between;
|
||||||
|
padding: 1rem 2rem;
|
||||||
|
background: rgba(13,13,13,0.92);
|
||||||
|
backdrop-filter: blur(8px);
|
||||||
|
border-bottom: 1px solid rgba(255,255,255,0.06);
|
||||||
|
}
|
||||||
|
.nav-logo { font-family: 'Barlow Condensed', sans-serif; font-size: 1.4rem; font-weight: 800; color: var(--orange); letter-spacing: 0.5px; text-decoration: none; }
|
||||||
|
.nav-links { display: flex; gap: 2rem; list-style: none; }
|
||||||
|
.nav-links a { color: rgba(255,255,255,0.8); text-decoration: none; font-weight: 500; font-size: 0.9rem; transition: color 0.2s; }
|
||||||
|
.nav-links a:hover { color: var(--orange); }
|
||||||
|
.nav-cta { background: var(--orange); color: white; padding: 0.6rem 1.4rem; border-radius: 6px; text-decoration: none; font-weight: 600; font-size: 0.9rem; transition: background 0.2s; }
|
||||||
|
.nav-cta:hover { background: var(--orange-dark); }
|
||||||
|
|
||||||
|
/* HERO */
|
||||||
|
.hero {
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex; align-items: center; justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
padding: 6rem 2rem 4rem;
|
||||||
|
background: linear-gradient(135deg, #0d0d0d 0%, #1a0a00 50%, #0d0d0d 100%);
|
||||||
|
position: relative; overflow: hidden;
|
||||||
|
}
|
||||||
|
.hero::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute; inset: 0;
|
||||||
|
background: radial-gradient(ellipse at center, rgba(249,115,22,0.12) 0%, transparent 70%);
|
||||||
|
}
|
||||||
|
.hero-badge {
|
||||||
|
display: inline-block;
|
||||||
|
background: rgba(249,115,22,0.15);
|
||||||
|
border: 1px solid rgba(249,115,22,0.4);
|
||||||
|
color: var(--orange);
|
||||||
|
padding: 0.35rem 1rem;
|
||||||
|
border-radius: 999px;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
font-weight: 600;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
.hero h1 {
|
||||||
|
font-family: 'Barlow Condensed', sans-serif;
|
||||||
|
font-size: clamp(3rem, 8vw, 6rem);
|
||||||
|
font-weight: 800;
|
||||||
|
line-height: 1;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
.hero h1 span { color: var(--orange); }
|
||||||
|
.hero p {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: rgba(255,255,255,0.7);
|
||||||
|
max-width: 600px;
|
||||||
|
margin: 0 auto 2.5rem;
|
||||||
|
}
|
||||||
|
.hero-btns { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
|
||||||
|
.btn-primary {
|
||||||
|
background: var(--orange); color: white;
|
||||||
|
padding: 0.85rem 2rem; border-radius: 8px;
|
||||||
|
text-decoration: none; font-weight: 700; font-size: 1rem;
|
||||||
|
transition: background 0.2s, transform 0.15s;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.btn-primary:hover { background: var(--orange-dark); transform: translateY(-2px); }
|
||||||
|
.btn-secondary {
|
||||||
|
background: rgba(255,255,255,0.08); color: white;
|
||||||
|
border: 1px solid rgba(255,255,255,0.2);
|
||||||
|
padding: 0.85rem 2rem; border-radius: 8px;
|
||||||
|
text-decoration: none; font-weight: 600; font-size: 1rem;
|
||||||
|
transition: background 0.2s;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.btn-secondary:hover { background: rgba(255,255,255,0.14); }
|
||||||
|
.hero-scroll { margin-top: 4rem; opacity: 0.4; font-size: 0.8rem; letter-spacing: 1px; text-transform: uppercase; }
|
||||||
|
|
||||||
|
/* SECTIONS */
|
||||||
|
section { padding: 5rem 2rem; }
|
||||||
|
.container { max-width: 1100px; margin: 0 auto; }
|
||||||
|
.section-label { font-size: 0.75rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--orange); margin-bottom: 0.75rem; }
|
||||||
|
.section-title { font-family: 'Barlow Condensed', sans-serif; font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; margin-bottom: 1rem; }
|
||||||
|
.section-sub { color: rgba(255,255,255,0.6); font-size: 1rem; max-width: 560px; margin-bottom: 3rem; }
|
||||||
|
|
||||||
|
/* WHY */
|
||||||
|
.why { background: #111111; }
|
||||||
|
.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; }
|
||||||
|
.feature-card {
|
||||||
|
background: rgba(255,255,255,0.04);
|
||||||
|
border: 1px solid rgba(255,255,255,0.07);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
padding: 2rem;
|
||||||
|
transition: border-color 0.2s;
|
||||||
|
}
|
||||||
|
.feature-card:hover { border-color: rgba(249,115,22,0.4); }
|
||||||
|
.feature-icon { font-size: 2rem; margin-bottom: 1rem; }
|
||||||
|
.feature-card h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 0.5rem; }
|
||||||
|
.feature-card p { color: rgba(255,255,255,0.55); font-size: 0.9rem; }
|
||||||
|
|
||||||
|
/* PRICING */
|
||||||
|
.pricing { background: var(--black); }
|
||||||
|
.pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; }
|
||||||
|
.price-card {
|
||||||
|
background: rgba(255,255,255,0.04);
|
||||||
|
border: 1px solid rgba(255,255,255,0.08);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
padding: 2.5rem 2rem;
|
||||||
|
text-align: center;
|
||||||
|
position: relative;
|
||||||
|
transition: transform 0.2s, border-color 0.2s;
|
||||||
|
}
|
||||||
|
.price-card:hover { transform: translateY(-4px); border-color: rgba(249,115,22,0.3); }
|
||||||
|
.price-card.featured {
|
||||||
|
border-color: var(--orange);
|
||||||
|
background: rgba(249,115,22,0.07);
|
||||||
|
}
|
||||||
|
.price-badge {
|
||||||
|
position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
|
||||||
|
background: var(--orange); color: white;
|
||||||
|
padding: 0.25rem 1rem; border-radius: 999px;
|
||||||
|
font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px;
|
||||||
|
}
|
||||||
|
.price-name { font-size: 0.85rem; font-weight: 600; color: var(--orange); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 0.5rem; }
|
||||||
|
.price-amount { font-family: 'Barlow Condensed', sans-serif; font-size: 3.5rem; font-weight: 800; line-height: 1; margin-bottom: 0.25rem; }
|
||||||
|
.price-amount sup { font-size: 1.5rem; vertical-align: top; margin-top: 0.5rem; }
|
||||||
|
.price-duration { color: rgba(255,255,255,0.5); font-size: 0.85rem; margin-bottom: 1.5rem; }
|
||||||
|
.price-features { list-style: none; text-align: left; margin-bottom: 2rem; }
|
||||||
|
.price-features li { padding: 0.4rem 0; color: rgba(255,255,255,0.7); font-size: 0.9rem; display: flex; align-items: center; gap: 0.5rem; }
|
||||||
|
.price-features li::before { content: '✓'; color: var(--orange); font-weight: 700; flex-shrink: 0; }
|
||||||
|
|
||||||
|
/* HOW IT WORKS */
|
||||||
|
.how { background: #111111; }
|
||||||
|
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; counter-reset: steps; }
|
||||||
|
.step { text-align: center; counter-increment: steps; }
|
||||||
|
.step-num {
|
||||||
|
width: 56px; height: 56px; border-radius: 50%;
|
||||||
|
background: rgba(249,115,22,0.15); border: 2px solid var(--orange);
|
||||||
|
display: flex; align-items: center; justify-content: center;
|
||||||
|
font-family: 'Barlow Condensed', sans-serif; font-size: 1.4rem; font-weight: 800; color: var(--orange);
|
||||||
|
margin: 0 auto 1rem;
|
||||||
|
}
|
||||||
|
.step h3 { font-size: 1rem; font-weight: 700; margin-bottom: 0.5rem; }
|
||||||
|
.step p { color: rgba(255,255,255,0.55); font-size: 0.875rem; }
|
||||||
|
|
||||||
|
/* ROUTES */
|
||||||
|
.routes { background: var(--black); }
|
||||||
|
.routes-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; }
|
||||||
|
.route-card {
|
||||||
|
background: rgba(255,255,255,0.03);
|
||||||
|
border: 1px solid rgba(255,255,255,0.07);
|
||||||
|
border-radius: var(--radius); padding: 1.75rem;
|
||||||
|
}
|
||||||
|
.route-card h3 { font-size: 1rem; font-weight: 700; margin-bottom: 0.4rem; }
|
||||||
|
.route-card .miles { font-size: 0.8rem; color: var(--orange); font-weight: 600; margin-bottom: 0.5rem; }
|
||||||
|
.route-card p { color: rgba(255,255,255,0.5); font-size: 0.875rem; }
|
||||||
|
|
||||||
|
/* FAQ */
|
||||||
|
.faq { background: #111111; }
|
||||||
|
.faq-list { display: flex; flex-direction: column; gap: 0; max-width: 760px; }
|
||||||
|
details {
|
||||||
|
border-bottom: 1px solid rgba(255,255,255,0.08);
|
||||||
|
padding: 1.25rem 0;
|
||||||
|
}
|
||||||
|
details:first-child { border-top: 1px solid rgba(255,255,255,0.08); }
|
||||||
|
summary {
|
||||||
|
font-weight: 600; font-size: 1rem; cursor: pointer;
|
||||||
|
list-style: none; display: flex; justify-content: space-between; align-items: center;
|
||||||
|
}
|
||||||
|
summary::-webkit-details-marker { display: none; }
|
||||||
|
summary::after { content: '+'; font-size: 1.4rem; color: var(--orange); flex-shrink: 0; transition: transform 0.2s; }
|
||||||
|
details[open] summary::after { transform: rotate(45deg); }
|
||||||
|
details p { color: rgba(255,255,255,0.6); margin-top: 0.75rem; font-size: 0.95rem; }
|
||||||
|
|
||||||
|
/* CONTACT */
|
||||||
|
.contact { background: var(--black); }
|
||||||
|
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
|
||||||
|
@media (max-width: 700px) { .contact-grid { grid-template-columns: 1fr; gap: 2rem; } }
|
||||||
|
.contact-info h2 { font-family: 'Barlow Condensed', sans-serif; font-size: 2.5rem; font-weight: 800; margin-bottom: 1rem; }
|
||||||
|
.contact-info p { color: rgba(255,255,255,0.6); margin-bottom: 2rem; }
|
||||||
|
.contact-detail { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; color: rgba(255,255,255,0.7); font-size: 0.95rem; }
|
||||||
|
.contact-detail span:first-child { font-size: 1.2rem; }
|
||||||
|
.contact-form { display: flex; flex-direction: column; gap: 1rem; }
|
||||||
|
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
|
||||||
|
@media (max-width: 500px) { .form-row { grid-template-columns: 1fr; } }
|
||||||
|
.contact-form input, .contact-form select, .contact-form textarea {
|
||||||
|
background: rgba(255,255,255,0.05);
|
||||||
|
border: 1px solid rgba(255,255,255,0.1);
|
||||||
|
border-radius: 8px; padding: 0.85rem 1rem;
|
||||||
|
color: white; font-family: inherit; font-size: 0.95rem;
|
||||||
|
outline: none; transition: border-color 0.2s; width: 100%;
|
||||||
|
}
|
||||||
|
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--orange); }
|
||||||
|
.contact-form select option { background: #1a1a1a; }
|
||||||
|
.contact-form textarea { resize: vertical; min-height: 120px; }
|
||||||
|
.contact-form button {
|
||||||
|
background: var(--orange); color: white;
|
||||||
|
border: none; border-radius: 8px;
|
||||||
|
padding: 0.9rem; font-size: 1rem; font-weight: 700;
|
||||||
|
cursor: pointer; transition: background 0.2s;
|
||||||
|
}
|
||||||
|
.contact-form button:hover { background: var(--orange-dark); }
|
||||||
|
.form-msg { padding: 0.75rem 1rem; border-radius: 8px; font-size: 0.9rem; display: none; }
|
||||||
|
.form-msg.success { background: rgba(34,197,94,0.15); border: 1px solid rgba(34,197,94,0.3); color: #4ade80; display: block; }
|
||||||
|
.form-msg.error { background: rgba(239,68,68,0.15); border: 1px solid rgba(239,68,68,0.3); color: #f87171; display: block; }
|
||||||
|
|
||||||
|
/* FOOTER */
|
||||||
|
footer {
|
||||||
|
background: #080808;
|
||||||
|
border-top: 1px solid rgba(255,255,255,0.06);
|
||||||
|
padding: 2.5rem 2rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.footer-logo { font-family: 'Barlow Condensed', sans-serif; font-size: 1.4rem; font-weight: 800; color: var(--orange); margin-bottom: 0.5rem; }
|
||||||
|
footer p { color: rgba(255,255,255,0.35); font-size: 0.85rem; }
|
||||||
|
.footer-links { display: flex; gap: 1.5rem; justify-content: center; margin: 1rem 0; flex-wrap: wrap; }
|
||||||
|
.footer-links a { color: rgba(255,255,255,0.4); text-decoration: none; font-size: 0.85rem; transition: color 0.2s; }
|
||||||
|
.footer-links a:hover { color: var(--orange); }
|
||||||
|
|
||||||
|
/* RESPONSIVE NAV */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.nav-links { display: none; }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- Navigation -->
|
||||||
|
<nav aria-label="Main navigation">
|
||||||
|
<a href="/" class="nav-logo">Parker County Slingshot</a>
|
||||||
|
<ul class="nav-links">
|
||||||
|
<li><a href="#why">Why Us</a></li>
|
||||||
|
<li><a href="#pricing">Pricing</a></li>
|
||||||
|
<li><a href="#how">How It Works</a></li>
|
||||||
|
<li><a href="#routes">Routes</a></li>
|
||||||
|
<li><a href="#faq">FAQ</a></li>
|
||||||
|
</ul>
|
||||||
|
<a href="#contact" class="nav-cta">Book Now</a>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- Hero -->
|
||||||
|
<header class="hero" role="banner">
|
||||||
|
<div style="position:relative;z-index:1;">
|
||||||
|
<div class="hero-badge">Weatherford, Texas</div>
|
||||||
|
<h1>Feel the Road.<br /><span>Rent a Slingshot.</span></h1>
|
||||||
|
<p>Parker County's premier Polaris Slingshot rental experience. Open-air freedom, three-wheel thrills, Texas roads built for adventure.</p>
|
||||||
|
<div class="hero-btns">
|
||||||
|
<a href="#pricing" class="btn-primary">View Rental Packages</a>
|
||||||
|
<a href="#how" class="btn-secondary">How It Works</a>
|
||||||
|
</div>
|
||||||
|
<p class="hero-scroll">Scroll to explore ↓</p>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!-- Why Choose Us -->
|
||||||
|
<section class="why" id="why" aria-label="Why choose Parker County Slingshot Rentals">
|
||||||
|
<div class="container">
|
||||||
|
<p class="section-label">Why Us</p>
|
||||||
|
<h2 class="section-title">Built for the Thrill-Seeker</h2>
|
||||||
|
<p class="section-sub">Everything you need for an unforgettable open-road experience — no hassle, just pure adrenaline.</p>
|
||||||
|
<div class="features-grid">
|
||||||
|
<div class="feature-card">
|
||||||
|
<div class="feature-icon">🏎️</div>
|
||||||
|
<h3>Polaris Slingshot SL</h3>
|
||||||
|
<p>Our fleet features the latest Polaris Slingshot models — powerful, fast, and impossible to ignore on Texas roads.</p>
|
||||||
|
</div>
|
||||||
|
<div class="feature-card">
|
||||||
|
<div class="feature-icon">🛡️</div>
|
||||||
|
<h3>Full Coverage Insurance</h3>
|
||||||
|
<p>Every rental includes comprehensive coverage. Drive with confidence knowing you're fully protected.</p>
|
||||||
|
</div>
|
||||||
|
<div class="feature-card">
|
||||||
|
<div class="feature-icon">🗺️</div>
|
||||||
|
<h3>Scenic Route Guides</h3>
|
||||||
|
<p>We hand you a curated Texas route map — the best backroads, vistas, and stops around Parker County.</p>
|
||||||
|
</div>
|
||||||
|
<div class="feature-card">
|
||||||
|
<div class="feature-icon">⛑️</div>
|
||||||
|
<h3>Safety First</h3>
|
||||||
|
<p>DOT-approved helmets included with every rental. Safety orientation for all drivers before you hit the road.</p>
|
||||||
|
</div>
|
||||||
|
<div class="feature-card">
|
||||||
|
<div class="feature-icon">📞</div>
|
||||||
|
<h3>Roadside Assistance</h3>
|
||||||
|
<p>24/7 roadside support so you're never stranded. We've got your back from pickup to return.</p>
|
||||||
|
</div>
|
||||||
|
<div class="feature-card">
|
||||||
|
<div class="feature-icon">✅</div>
|
||||||
|
<h3>Easy Booking</h3>
|
||||||
|
<p>Simple online reservation, flexible pickup times, and transparent pricing. No hidden fees — ever.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Pricing -->
|
||||||
|
<section class="pricing" id="pricing" aria-label="Slingshot rental pricing">
|
||||||
|
<div class="container">
|
||||||
|
<p class="section-label">Rental Packages</p>
|
||||||
|
<h2 class="section-title">Pick Your Adventure</h2>
|
||||||
|
<p class="section-sub">Transparent pricing. No surprise fees. Just you, the open road, and a machine that turns heads.</p>
|
||||||
|
<div class="pricing-grid">
|
||||||
|
<div class="price-card">
|
||||||
|
<p class="price-name">Half Day</p>
|
||||||
|
<p class="price-amount"><sup>$</sup>99</p>
|
||||||
|
<p class="price-duration">4 hours of freedom</p>
|
||||||
|
<ul class="price-features">
|
||||||
|
<li>Polaris Slingshot SL</li>
|
||||||
|
<li>DOT helmets included</li>
|
||||||
|
<li>Safety orientation</li>
|
||||||
|
<li>Route map & guide</li>
|
||||||
|
<li>Full insurance coverage</li>
|
||||||
|
<li>Roadside assistance</li>
|
||||||
|
</ul>
|
||||||
|
<a href="#contact" class="btn-primary" style="display:block;width:100%;text-align:center;">Book Half Day</a>
|
||||||
|
</div>
|
||||||
|
<div class="price-card featured">
|
||||||
|
<div class="price-badge">Most Popular</div>
|
||||||
|
<p class="price-name">Full Day</p>
|
||||||
|
<p class="price-amount"><sup>$</sup>169</p>
|
||||||
|
<p class="price-duration">8 hours of adventure</p>
|
||||||
|
<ul class="price-features">
|
||||||
|
<li>Polaris Slingshot SL</li>
|
||||||
|
<li>DOT helmets included</li>
|
||||||
|
<li>Safety orientation</li>
|
||||||
|
<li>Route map & guide</li>
|
||||||
|
<li>Full insurance coverage</li>
|
||||||
|
<li>Roadside assistance</li>
|
||||||
|
</ul>
|
||||||
|
<a href="#contact" class="btn-primary" style="display:block;width:100%;text-align:center;">Book Full Day</a>
|
||||||
|
</div>
|
||||||
|
<div class="price-card">
|
||||||
|
<p class="price-name">Weekend</p>
|
||||||
|
<p class="price-amount"><sup>$</sup>299</p>
|
||||||
|
<p class="price-duration">48-hour getaway</p>
|
||||||
|
<ul class="price-features">
|
||||||
|
<li>Polaris Slingshot SL</li>
|
||||||
|
<li>DOT helmets included</li>
|
||||||
|
<li>Safety orientation</li>
|
||||||
|
<li>Route map & guide</li>
|
||||||
|
<li>Full insurance coverage</li>
|
||||||
|
<li>24/7 roadside assistance</li>
|
||||||
|
</ul>
|
||||||
|
<a href="#contact" class="btn-primary" style="display:block;width:100%;text-align:center;">Book Weekend</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p style="text-align:center;color:rgba(255,255,255,0.4);font-size:0.85rem;margin-top:2rem;">Must be 25+ with valid driver's license. Security deposit required. Prices include tax.</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- How It Works -->
|
||||||
|
<section class="how" id="how" aria-label="How the rental process works">
|
||||||
|
<div class="container">
|
||||||
|
<p class="section-label">The Process</p>
|
||||||
|
<h2 class="section-title">Ready in 4 Simple Steps</h2>
|
||||||
|
<p class="section-sub">From booking to keys in hand — we make it effortless so you can focus on the fun.</p>
|
||||||
|
<div class="steps">
|
||||||
|
<div class="step">
|
||||||
|
<div class="step-num">1</div>
|
||||||
|
<h3>Choose Your Package</h3>
|
||||||
|
<p>Half day, full day, or weekend — pick the adventure that fits your schedule and budget.</p>
|
||||||
|
</div>
|
||||||
|
<div class="step">
|
||||||
|
<div class="step-num">2</div>
|
||||||
|
<h3>Book & Confirm</h3>
|
||||||
|
<p>Fill out our simple booking form or give us a call. We'll confirm your reservation within 24 hours.</p>
|
||||||
|
</div>
|
||||||
|
<div class="step">
|
||||||
|
<div class="step-num">3</div>
|
||||||
|
<h3>Show Up & Roll Out</h3>
|
||||||
|
<p>Arrive at pickup, complete your safety briefing, grab your helmets and route map, and hit the road.</p>
|
||||||
|
</div>
|
||||||
|
<div class="step">
|
||||||
|
<div class="step-num">4</div>
|
||||||
|
<h3>Return & Relive</h3>
|
||||||
|
<p>Return the Slingshot at the agreed time. Tell everyone about the best day you've had in Texas.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Scenic Routes -->
|
||||||
|
<section class="routes" id="routes" aria-label="Recommended scenic driving routes">
|
||||||
|
<div class="container">
|
||||||
|
<p class="section-label">Scenic Routes</p>
|
||||||
|
<h2 class="section-title">Texas Roads Worth Driving</h2>
|
||||||
|
<p class="section-sub">We know the best roads. Every rental comes with a recommended route guide — here's a taste.</p>
|
||||||
|
<div class="routes-grid">
|
||||||
|
<div class="route-card">
|
||||||
|
<h3>The Parker County Loop</h3>
|
||||||
|
<p class="miles">~45 miles • 1.5 hrs</p>
|
||||||
|
<p>Roll through Weatherford's historic downtown, Millsap, and back through the rolling Texas plains. The perfect intro ride.</p>
|
||||||
|
</div>
|
||||||
|
<div class="route-card">
|
||||||
|
<h3>Possum Kingdom Run</h3>
|
||||||
|
<p class="miles">~80 miles • 2.5 hrs</p>
|
||||||
|
<p>Head northwest toward Mineral Wells and Possum Kingdom Lake. Hill Country scenery, lake views, and open highway.</p>
|
||||||
|
</div>
|
||||||
|
<div class="route-card">
|
||||||
|
<h3>Granbury & Glen Rose</h3>
|
||||||
|
<p class="miles">~70 miles • 2 hrs</p>
|
||||||
|
<p>Cruise south to the charming Granbury square and dinosaur country in Glen Rose. Great for couples and history lovers.</p>
|
||||||
|
</div>
|
||||||
|
<div class="route-card">
|
||||||
|
<h3>DFW Sunset Cruise</h3>
|
||||||
|
<p class="miles">~60 miles • 2 hrs</p>
|
||||||
|
<p>Head east toward the Fort Worth skyline at golden hour, loop through Azle and back. City lights in an open cockpit.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- FAQ -->
|
||||||
|
<section class="faq" id="faq" aria-label="Frequently asked questions">
|
||||||
|
<div class="container">
|
||||||
|
<p class="section-label">FAQ</p>
|
||||||
|
<h2 class="section-title">Questions & Answers</h2>
|
||||||
|
<p class="section-sub">Everything you need to know before you book.</p>
|
||||||
|
<div class="faq-list">
|
||||||
|
<details>
|
||||||
|
<summary>Do I need a motorcycle license to rent a Polaris Slingshot in Texas?</summary>
|
||||||
|
<p>In Texas, a standard Class C driver's license is all you need. No motorcycle endorsement required. You must be 25 or older with a clean driving record to rent.</p>
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary>What's included in every rental?</summary>
|
||||||
|
<p>Every rental includes the Polaris Slingshot, DOT-approved helmets for driver and passenger, a safety orientation, a suggested scenic route map, roadside assistance, and comprehensive insurance coverage.</p>
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary>How many people can ride in a Polaris Slingshot?</summary>
|
||||||
|
<p>The Polaris Slingshot is a two-seater — one driver and one passenger. Both experience the open-air thrill side by side in sports-car-style seats.</p>
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary>Is there a security deposit?</summary>
|
||||||
|
<p>Yes, a refundable security deposit is required at the time of pickup. The deposit is returned in full upon safe return of the vehicle with no damage.</p>
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary>Can I drive outside of Parker County?</summary>
|
||||||
|
<p>Yes — you can drive throughout the DFW area including Weatherford, Mineral Wells, Granbury, Azle, and Fort Worth. We'll note any restrictions in your rental agreement.</p>
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary>What if it rains?</summary>
|
||||||
|
<p>The Polaris Slingshot can be driven in light rain, but we recommend rescheduling in severe weather for your safety and comfort. We offer flexible rescheduling with 24-hour notice.</p>
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary>How do I cancel or reschedule?</summary>
|
||||||
|
<p>Cancel or reschedule free of charge up to 24 hours before your rental start time. Cancellations within 24 hours are subject to a 50% fee.</p>
|
||||||
|
</details>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Contact / Booking -->
|
||||||
|
<section class="contact" id="contact" aria-label="Contact and booking">
|
||||||
|
<div class="container">
|
||||||
|
<div class="contact-grid">
|
||||||
|
<div class="contact-info">
|
||||||
|
<p class="section-label">Book Your Rental</p>
|
||||||
|
<h2>Ready to Ride?</h2>
|
||||||
|
<p>Send us your preferred date and package and we'll confirm availability within a few hours. Can't wait? Give us a call.</p>
|
||||||
|
<div class="contact-detail">
|
||||||
|
<span>📍</span>
|
||||||
|
<span>Weatherford, TX 76086<br />(Exact pickup address provided at booking)</span>
|
||||||
|
</div>
|
||||||
|
<div class="contact-detail">
|
||||||
|
<span>📞</span>
|
||||||
|
<a href="tel:+18175550199" style="color:inherit;text-decoration:none;">(817) 555-0199</a>
|
||||||
|
</div>
|
||||||
|
<div class="contact-detail">
|
||||||
|
<span>✉️</span>
|
||||||
|
<a href="mailto:info@parkerslingshotrentals.com" style="color:inherit;text-decoration:none;">info@parkerslingshotrentals.com</a>
|
||||||
|
</div>
|
||||||
|
<div class="contact-detail">
|
||||||
|
<span>🕐</span>
|
||||||
|
<span>Mon–Fri: 9am–6pm • Sat–Sun: 8am–8pm</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<form class="contact-form" id="bookingForm" novalidate>
|
||||||
|
<div class="form-row">
|
||||||
|
<input type="text" name="name" placeholder="Your Name" required />
|
||||||
|
<input type="email" name="email" placeholder="Email Address" required />
|
||||||
|
</div>
|
||||||
|
<input type="tel" name="phone" placeholder="Phone Number" />
|
||||||
|
<select name="package" required>
|
||||||
|
<option value="">Select Rental Package</option>
|
||||||
|
<option value="half-day">Half Day — $99</option>
|
||||||
|
<option value="full-day">Full Day — $169</option>
|
||||||
|
<option value="weekend">Weekend — $299</option>
|
||||||
|
</select>
|
||||||
|
<input type="date" name="date" required />
|
||||||
|
<textarea name="message" placeholder="Anything else we should know? (optional)"></textarea>
|
||||||
|
<button type="submit">Send Booking Request</button>
|
||||||
|
<div class="form-msg" id="formMsg"></div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer>
|
||||||
|
<p class="footer-logo">Parker County Slingshot Rentals</p>
|
||||||
|
<div class="footer-links">
|
||||||
|
<a href="#why">Why Us</a>
|
||||||
|
<a href="#pricing">Pricing</a>
|
||||||
|
<a href="#how">How It Works</a>
|
||||||
|
<a href="#routes">Routes</a>
|
||||||
|
<a href="#faq">FAQ</a>
|
||||||
|
<a href="#contact">Contact</a>
|
||||||
|
</div>
|
||||||
|
<p>© 2026 Parker County Slingshot Rentals — Weatherford, Texas. All rights reserved.</p>
|
||||||
|
<p style="margin-top:0.5rem;">Polaris Slingshot® is a registered trademark of Polaris Inc. We are an independent rental operator.</p>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Set min date to today on date picker
|
||||||
|
const dateInput = document.querySelector('input[type="date"]');
|
||||||
|
if (dateInput) {
|
||||||
|
const today = new Date().toISOString().split('T')[0];
|
||||||
|
dateInput.min = today;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('bookingForm').addEventListener('submit', async function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
const form = this;
|
||||||
|
const msg = document.getElementById('formMsg');
|
||||||
|
const btn = form.querySelector('button[type="submit"]');
|
||||||
|
btn.textContent = 'Sending...';
|
||||||
|
btn.disabled = true;
|
||||||
|
msg.className = 'form-msg';
|
||||||
|
msg.style.display = 'none';
|
||||||
|
|
||||||
|
const data = {
|
||||||
|
name: form.querySelector('[name="name"]').value,
|
||||||
|
email: form.querySelector('[name="email"]').value,
|
||||||
|
phone: form.querySelector('[name="phone"]').value,
|
||||||
|
package: form.querySelector('[name="package"]').value,
|
||||||
|
date: form.querySelector('[name="date"]').value,
|
||||||
|
message: form.querySelector('[name="message"]').value,
|
||||||
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
const res = await fetch('/contact.php', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
body: JSON.stringify(data),
|
||||||
|
});
|
||||||
|
const json = await res.json();
|
||||||
|
if (json.success) {
|
||||||
|
msg.className = 'form-msg success';
|
||||||
|
msg.textContent = json.message || 'Thanks! We received your request and will be in touch soon.';
|
||||||
|
msg.style.display = 'block';
|
||||||
|
form.reset();
|
||||||
|
if (dateInput) dateInput.min = new Date().toISOString().split('T')[0];
|
||||||
|
btn.textContent = 'Request Sent!';
|
||||||
|
btn.style.background = '#16a34a';
|
||||||
|
} else {
|
||||||
|
throw new Error(json.error || 'Something went wrong.');
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
msg.className = 'form-msg error';
|
||||||
|
msg.textContent = err.message || 'Something went wrong. Please try again or call us directly.';
|
||||||
|
msg.style.display = 'block';
|
||||||
|
btn.textContent = 'Send Booking Request';
|
||||||
|
btn.disabled = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
User-agent: *
|
||||||
|
Allow: /
|
||||||
|
|
||||||
|
Sitemap: https://parkerslingshotrentals.com/sitemap.xml
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
||||||
|
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
||||||
|
<url>
|
||||||
|
<loc>https://parkerslingshotrentals.com/</loc>
|
||||||
|
<lastmod>2026-05-19</lastmod>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
<priority>1.0</priority>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
||||||
Reference in New Issue
Block a user