chris ad5c984a46 Mirror live open/closed status to contact page
Add #status and #hours-* IDs to the contact page hours tile and load
update.js so the same live open/closed logic from the homepage runs
on the contact page. Guard against missing #message element so update.js
works on pages that don't have the marquee banner.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 19:45:21 -04:00

185 lines
8.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-theme="light">
<head>
<script defer data-domain="beachpartyballoons.com" src="https://metrics.beachpartyballoons.com/js/script.hash.outbound-links.js"></script>
<script>window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }</script>
<link rel="apple-touch-icon" sizes="180x180" href="../assets/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="../assets/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="../assets/favicon/favicon-16x16.png">
<link rel="manifest" href="../assets/favicon/site.webmanifest">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contact Us — Beach Party Balloons</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.2/css/bulma.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Autour+One&family=Mogra&family=Rubik+Glitch&display=swap" rel="stylesheet">
<link rel="stylesheet" href="../style.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" integrity="sha512-Evv84Mr4kqVGRNSgIGL/F/aIDqQb7xQ2vcrdIwxfjThSH8CSR7PBEakCr51Ck+w+/U6swU2Im1vVX0SVk9ABhg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="/nav.js" defer></script>
<meta name="description" content="Get in touch with Beach Party Balloons in Milford, CT. Send a message, upload inspiration photos, and we'll plan your perfect balloon arrangement.">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Beach Party Balloons">
<meta property="og:title" content="Contact Us — Beach Party Balloons">
<meta property="og:description" content="Get in touch with Beach Party Balloons in Milford, CT. Send a message, upload inspiration photos, and we'll plan your perfect balloon arrangement.">
<meta property="og:url" content="https://beachpartyballoons.com/contact/">
<meta property="og:image" content="https://beachpartyballoons.com/assets/logo/BeachPartyBalloons-logo.webp">
<meta property="og:image:alt" content="Beach Party Balloons">
<meta name="twitter:card" content="summary_large_image">
</head>
<body>
<div id="site-nav"></div>
<button onclick="topFunction()" class="has-text-dark" id="top" title="Go to top">Top</button>
<section class="contact-hero">
<h1 class="is-size-2 has-text-weight-bold">Contact Us</h1>
<p class="is-size-5 mt-2">Have questions or ready to plan your event? We'd love to hear from you.</p>
</section>
<div class="contact-tiles">
<div class="contact-tile">
<i class="fas fa-map-marker-alt"></i>
<div>
<div class="contact-tile-label">Visit Us</div>
<a target="_blank" href="https://maps.app.goo.gl/gRk6NztgMRUsSVJf9">554 Boston Post Road<br>Milford, CT 06460</a>
</div>
</div>
<div class="contact-tile">
<i class="fas fa-phone"></i>
<div>
<div class="contact-tile-label">Call Us</div>
<a href="tel:2032835626">203.283.5626</a>
</div>
</div>
<div class="contact-tile">
<i class="fas fa-clock"></i>
<div>
<div class="contact-tile-label">Shop Hours</div>
<p id="status"></p>
<p id="hours-tuesday-friday">Tuesday Friday: 10:005:00</p>
<p id="hours-saturday">Saturday: 9:003:00</p>
<p id="hours-sunday-monday">Sunday Monday: Closed</p>
</div>
</div>
</div>
<div class="form-container">
<h2 class="is-size-4 has-text-centered mb-4">Send a Message</h2>
<form id="contactForm" novalidate>
<!-- Honeypot: hidden from humans, filled by bots -->
<div style="display:none;" aria-hidden="true">
<input type="text" name="website" tabindex="-1" autocomplete="off">
</div>
<div class="columns is-mobile">
<div class="column">
<div class="field">
<label class="label">First name <span class="has-text-danger">*</span></label>
<div class="control">
<input class="input" type="text" name="firstName" placeholder="Jane" required autocomplete="given-name">
</div>
<p class="help is-danger" id="err-firstName" style="display:none;"></p>
</div>
</div>
<div class="column">
<div class="field">
<label class="label">Last name <span class="has-text-danger">*</span></label>
<div class="control">
<input class="input" type="text" name="lastName" placeholder="Smith" required autocomplete="family-name">
</div>
<p class="help is-danger" id="err-lastName" style="display:none;"></p>
</div>
</div>
</div>
<div class="field">
<label class="label">Email <span class="has-text-danger">*</span></label>
<div class="control">
<input class="input" type="email" name="email" placeholder="you@example.com" required autocomplete="email">
</div>
<p class="help is-danger" id="err-email" style="display:none;"></p>
</div>
<div class="field">
<label class="label">Phone Number <span class="has-text-danger">*</span></label>
<div class="control">
<input class="input" type="tel" name="phone" placeholder="(203) 555-0123" required autocomplete="tel">
</div>
<p class="help is-danger" id="err-phone" style="display:none;"></p>
</div>
<div class="columns is-mobile">
<div class="column">
<div class="field">
<label class="label">Event Type</label>
<div class="control">
<div class="select is-fullwidth">
<select name="eventType">
<option value="">Select a type…</option>
<option value="Birthday">Birthday</option>
<option value="Corporate">Corporate</option>
<option value="Wedding">Wedding</option>
<option value="Walk-in">Walk-in</option>
<option value="Other">Other</option>
</select>
</div>
</div>
</div>
</div>
<div class="column">
<div class="field">
<label class="label">Event Date</label>
<div class="control">
<input class="input" type="date" name="eventDate">
</div>
</div>
</div>
</div>
<div class="field">
<label class="label">Message <span class="has-text-danger">*</span></label>
<div class="control">
<textarea class="textarea" name="message" placeholder="Tell us about your event…" rows="4" required></textarea>
</div>
<p class="help is-danger" id="err-message" style="display:none;"></p>
</div>
<div class="field">
<label class="label">Photos <span class="has-text-grey is-size-7">(up to 3 images)</span></label>
<div class="control">
<div id="dropzone">
<p><i class="fas fa-images"></i> Drag &amp; drop photos here, or <span class="has-text-info" style="text-decoration:underline;">browse</span></p>
<p class="is-size-7 has-text-grey mt-1">JPEG · PNG · HEIC · WebP — max 10 MB each</p>
<input id="photoInput" type="file" name="photos" accept="image/*" multiple style="display:none;">
</div>
<div id="photoPreview"></div>
<p id="photoError" class="help is-danger" style="display:none;">Maximum 3 photos — extras were ignored.</p>
</div>
</div>
<div id="formAlert" class="notification" style="display:none;"></div>
<div class="field">
<altcha-widget
challenge="/api/altcha"
style="--altcha-color-border: #dbdbdb; --altcha-border-radius: 4px; --altcha-color-text: #363636;"
></altcha-widget>
<p class="help is-danger" id="err-altcha" style="display:none;">Please complete the verification.</p>
</div>
<div class="field">
<div class="control">
<button type="submit" id="submitBtn" class="button is-info is-fullwidth">Send Message</button>
</div>
</div>
</form>
</div>
<div id="site-footer"></div>
<script src="../script.js"></script>
<script src="../easter-egg.js"></script>
<script src="../update.js"></script>
<script src="../contact-form.js"></script>
<script async src="https://cdn.jsdelivr.net/npm/altcha@3.1.0/dist/main/altcha.min.js" type="module"></script>
</body>
</html>