khy_website/contact.html
George Birikorang 228095ed83
All checks were successful
continuous-integration/drone/push Build is passing
feat: implement responsive mobile menu and navigation enhancements across all pages
2025-09-08 20:52:51 -07:00

878 lines
30 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Contact - KHY</title>
<meta
name="description"
content="Get in touch with KHY for professional furniture and design services."
/>
<link rel="stylesheet" href="styles/main.css" />
<style>
/* Smooth scrolling for the entire page */
html {
scroll-behavior: smooth;
}
/* Active navigation link styling */
.nav-link.active {
color: #b8873f !important;
font-weight: 500;
}
/* Force responsive behavior */
@media (min-width: 640px) {
.sm\:hidden {
display: none !important;
}
.sm\:flex {
display: flex !important;
}
}
</style>
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Playfair+Display:wght@100;200;300;400;500;600;700&family=Poppins:wght@400;500;600&display=swap"
rel="stylesheet"
/>
</head>
<body class="bg-white font-sans text-gray-800">
<!-- Header -->
<header
class="fixed w-full h-20 sm:h-28 top-0 left-0 bg-white shadow-[0_8px_24px_rgba(0,0,0,0.06)] border-b border-black/10 z-50"
>
<nav class="h-full">
<div
class="max-w-7xl mx-auto h-full flex items-center justify-between px-5"
>
<!-- Logo Section -->
<div class="flex items-center">
<img
src="assets/images/khy_logo.png"
alt="KHY Logo"
class="h-12 sm:h-20 w-auto drop-shadow-sm"
/>
</div>
<!-- Desktop Navigation -->
<ul class="hidden sm:flex space-x-10">
<li>
<a
href="index.html"
class="nav-link text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors text-shadow-default"
>Home</a
>
</li>
<li>
<a
href="index.html#products"
class="nav-link text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors text-shadow-default"
>Products</a
>
</li>
<li>
<a
href="index.html#projects-button"
class="nav-link text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors text-shadow-default"
>Projects</a
>
</li>
<li>
<a
href="index.html#clients"
class="nav-link text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors text-shadow-default"
>Clients</a
>
</li>
<li>
<a
href="index.html#about"
class="nav-link text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors text-shadow-default"
>About</a
>
</li>
<li>
<a
href="contact.html"
class="nav-link text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors text-shadow-default"
>Contact</a
>
</li>
<li>
<a
href="blog.html"
class="nav-link text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors text-shadow-default"
>Blog</a
>
</li>
<li>
<a
href="quote.html"
class="nav-link text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors text-shadow-default"
>Quote</a
>
</li>
</ul>
<!-- Mobile Quote Button and Hamburger -->
<div class="sm:hidden flex items-center space-x-3">
<!-- Quote Button -->
<a
href="quote.html"
class="px-3 py-1 border border-black text-black font-playfair text-sm font-normal tracking-wider hover:bg-black hover:text-white transition-colors"
>
Quote
</a>
<!-- Hamburger Button -->
<button
id="mobile-menu-button"
class="text-black hover:text-gray-600 transition-colors"
aria-label="Open mobile menu"
>
<svg
class="w-7 h-7"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M4 6h16M4 12h16M4 18h16"
></path>
</svg>
</button>
</div>
</div>
</nav>
</header>
<!-- Mobile Menu Overlay -->
<div
id="mobile-menu-overlay"
class="fixed inset-0 bg-black bg-opacity-50 z-40 hidden transition-opacity duration-300 sm:hidden"
></div>
<!-- Mobile Menu -->
<div
id="mobile-menu"
class="fixed top-0 right-0 h-full w-80 bg-white shadow-xl z-50 transform translate-x-full transition-transform duration-300 sm:hidden"
>
<!-- Mobile Menu Header -->
<div
class="flex items-center justify-between p-5 border-b border-gray-200"
>
<img
src="assets/images/khy_logo.png"
alt="KHY Logo"
class="h-10 w-auto"
/>
<button
id="mobile-menu-close"
class="p-2 text-black hover:text-gray-600 transition-colors"
aria-label="Close mobile menu"
>
<svg
class="w-6 h-6"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M6 18L18 6M6 6l12 12"
></path>
</svg>
</button>
</div>
<!-- Mobile Menu Items -->
<nav class="p-5">
<ul class="flex flex-col space-y-4">
<li>
<a
href="index.html"
class="nav-link block text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors py-2"
>Home</a
>
</li>
<li>
<a
href="index.html#products"
class="nav-link block text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors py-2"
>Products</a
>
</li>
<li>
<a
href="index.html#projects-button"
class="nav-link block text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors py-2"
>Projects</a
>
</li>
<li>
<a
href="index.html#clients"
class="nav-link block text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors py-2"
>Clients</a
>
</li>
<li>
<a
href="index.html#about"
class="nav-link block text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors py-2"
>About</a
>
</li>
<li>
<a
href="contact.html"
class="block text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors py-2"
>Contact</a
>
</li>
<li>
<a
href="blog.html"
class="block text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors py-2"
>Blog</a
>
</li>
<li>
<a
href="quote.html"
class="block text-black hover:text-gray-600 font-playfair text-md font-extralight tracking-wider transition-colors py-2"
>Quote</a
>
</li>
</ul>
</nav>
</div>
<main>
<!-- Hero Section -->
<section class="relative h-80 mt-20 sm:mt-28">
<!-- Background Image -->
<div class="absolute inset-0 w-full h-full">
<img
src="assets/images/first_homepage.jpg"
alt="Modern office interior"
class="w-full h-full object-cover object-center"
style="filter: blur(2px)"
/>
</div>
<!-- White Overlay -->
<div class="absolute inset-0 bg-white bg-opacity-60"></div>
<!-- Overlay Content -->
<div
class="absolute z-10 inset-0 flex items-center justify-center text-center text-black"
>
<h1
class="font-playfair font-medium text-3xl md:text-4xl lg:text-5xl leading-tight"
>
Contact
</h1>
</div>
</section>
<!-- Get In Touch Section -->
<section class="relative bg-white py-20">
<div class="max-w-7xl mx-auto px-5">
<!-- Section Header -->
<div class="text-center mb-16">
<h2
class="font-playfair font-bold text-2xl md:text-3xl lg:text-4xl leading-tight text-black mb-6"
>
Get In Touch With Us
</h2>
<p
class="font-playfair font-normal text-base leading-relaxed text-gray-500 max-w-2xl mx-auto"
>
For More Information About Our Product & Services. Please Feel
Free To Drop Us An Email. Our Staff Always Be There To Help You
Out. Do Not Hesitate!
</p>
</div>
<!-- Contact Content -->
<div class="grid grid-cols-1 lg:grid-cols-2 gap-16">
<!-- Contact Information -->
<div class="bg-white p-8 rounded-lg shadow-sm">
<div class="space-y-8">
<!-- Address -->
<div class="flex items-start space-x-4">
<img
src="assets/icons/address.png"
alt="Address"
class="w-6 mt-1"
/>
<div>
<h3
class="font-playfair font-semibold text-2xl text-black mb-2"
>
Address
</h3>
<p
class="font-playfair font-normal text-base leading-relaxed text-black"
>
5 Labone Crescent, <br />
Greater Accra, <br />
Ghana
</p>
</div>
</div>
<!-- Phone -->
<div class="flex items-start space-x-4">
<img
src="assets/icons/phone.png"
alt="Phone"
class="w-6 h-6 mt-1"
/>
<div>
<h3
class="font-playfair font-semibold text-2xl text-black mb-2"
>
Phone
</h3>
<p
class="font-playfair font-normal text-base leading-relaxed text-black"
>
Mobile: +(233) 546-6789
</p>
</div>
</div>
<!-- Working Time -->
<div class="flex items-start space-x-4">
<img
src="assets/icons/time.png"
alt="Time"
class="w-6 h-6 mt-1"
/>
<div>
<h3
class="font-playfair font-semibold text-2xl text-black mb-2"
>
Working Time
</h3>
<p
class="font-playfair font-normal text-base leading-relaxed text-black"
>
Monday-Friday: 9AM - 5PM
</p>
</div>
</div>
</div>
</div>
<!-- Contact Form -->
<div class="bg-white p-8 rounded-lg shadow-sm">
<form id="contact-form" class="space-y-6">
<!-- Name -->
<div>
<label
class="block font-playfair font-semibold text-base text-black mb-2"
>
Your name
</label>
<input
type="text"
id="contact-name"
name="name"
placeholder="First name last name"
class="w-full px-4 py-3 font-playfair font-normal text-base text-gray-500 bg-white border border-gray-300 rounded-lg focus:outline-none focus:border-uc-gold"
required
/>
</div>
<!-- Email -->
<div>
<label
class="block font-playfair font-semibold text-base text-black mb-2"
>
Email address
</label>
<input
type="email"
id="contact-email"
name="email"
placeholder="your@email.com"
class="w-full px-4 py-3 font-playfair font-normal text-base text-gray-500 bg-white border border-gray-300 rounded-lg focus:outline-none focus:border-uc-gold"
required
/>
</div>
<!-- Subject -->
<div>
<label
class="block font-playfair font-semibold text-base text-black mb-2"
>
Subject
</label>
<input
type="text"
id="contact-subject"
name="subject"
placeholder="Title of your message"
class="w-full px-4 py-3 font-playfair font-normal text-base text-gray-500 bg-white border border-gray-300 rounded-lg focus:outline-none focus:border-uc-gold"
required
/>
</div>
<!-- Message -->
<div>
<label
class="block font-playfair font-semibold text-base text-black mb-2"
>
Message
</label>
<textarea
rows="5"
id="contact-message"
name="message"
placeholder="Type your message here ..."
class="w-full px-4 py-3 font-playfair font-normal text-base text-gray-500 bg-white border border-gray-300 rounded-lg focus:outline-none focus:border-uc-gold resize-none"
required
></textarea>
</div>
<!-- Success Message -->
<div
id="contact-success"
class="hidden bg-green-50 border border-green-200 text-green-800 px-4 py-3 rounded-lg font-playfair font-normal text-base mb-4"
style="display: none"
>
Thank you for your message! We will reply to you shortly.
</div>
<!-- Error Message -->
<div
id="contact-error"
class="hidden bg-red-50 border border-red-200 text-red-800 px-4 py-3 rounded-lg font-playfair font-normal text-base mb-4"
style="display: none"
>
Please fill in all required fields before submitting.
</div>
<!-- Submit Button -->
<button
type="submit"
id="contact-submit"
class="bg-uc-gold text-white font-playfair font-normal text-base px-8 py-3 rounded-lg hover:bg-opacity-90 transition-all"
>
Submit
</button>
</form>
</div>
</div>
</div>
</section>
<!-- Features Section -->
<section class="relative bg-floral-white py-16">
<div class="max-w-7xl mx-auto px-5">
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8">
<!-- High Quality -->
<div class="flex items-center space-x-4">
<div class="w-12 h-12">
<img
src="assets/icons/trophy.png"
alt="Trophy"
class="w-full h-full object-contain"
/>
</div>
<div>
<h3
class="font-playfair font-semibold text-2xl text-black mb-1"
>
High Quality
</h3>
<p class="font-playfair font-normal text-lg text-gray-500">
crafted from top materials
</p>
</div>
</div>
<!-- Warranty Protection -->
<div class="flex items-center space-x-4">
<div class="w-12 h-12">
<img
src="assets/icons/warranty.png"
alt="Guarantee"
class="w-full h-full object-contain"
/>
</div>
<div>
<h3
class="font-playfair font-semibold text-2xl text-black mb-1"
>
Warranty Protection
</h3>
<p class="font-playfair font-normal text-lg text-gray-500">
Over 2 years
</p>
</div>
</div>
<!-- Free Shipping -->
<div class="flex items-center space-x-4">
<div class="w-12 h-12">
<img
src="assets/icons/shipping.png"
alt="Shipping"
class="w-full h-full object-contain"
/>
</div>
<div>
<h3
class="font-playfair font-semibold text-2xl text-black mb-1"
>
Free Shipping
</h3>
<p class="font-playfair font-normal text-lg text-gray-500">
Order over 150 $
</p>
</div>
</div>
<!-- 24/7 Support -->
<div class="flex items-center space-x-4">
<div class="w-12 h-12">
<img
src="assets/icons/support.png"
alt="Support"
class="w-full h-full object-contain"
/>
</div>
<div>
<h3
class="font-playfair font-semibold text-2xl text-black mb-1"
>
24 / 7 Support
</h3>
<p class="font-playfair font-normal text-lg text-gray-500">
Dedicated support
</p>
</div>
</div>
</div>
</div>
</section>
</main>
<!-- Footer Separator -->
<div class="border-t border-gray-200"></div>
<!-- Footer -->
<footer class="bg-white">
<!-- Main Footer Content -->
<div class="max-w-7xl mx-auto px-5 py-16">
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8">
<!-- Company Information -->
<div class="space-y-2">
<!-- Logo -->
<div class="w-16 h-20">
<img
src="assets/images/khy_logo.png"
alt="khy"
class="w-full h-full object-contain"
/>
</div>
<!-- Address -->
<p
class="font-playfair font-normal text-base leading-relaxed text-gray-600"
>
5 Labone Crescent, Greater Accra, Ghana
</p>
<!-- Contact Info -->
<div class="space-y-1">
<!-- Phone -->
<div class="flex items-center space-x-3">
<img
src="assets/images/phone.png"
alt="Phone"
class="w-4 h-4"
/>
<span class="font-playfair font-normal text-base text-gray-800">
+233 (555) 76677
</span>
</div>
<!-- Email -->
<div class="flex items-center space-x-3">
<img src="assets/images/mail.png" alt="Email" class="w-4 h-4" />
<span class="font-playfair font-normal text-base text-gray-800">
design@khyltd.com
</span>
</div>
</div>
</div>
<!-- Quick Links -->
<div class="space-y-6">
<h3
class="font-playfair font-normal text-md leading-relaxed tracking-wider text-eerie-black uppercase"
>
Quick Links
</h3>
<div class="space-y-4">
<a
href="#"
class="block font-playfair font-normal text-base leading-relaxed tracking-wider text-gray-800 hover:text-black transition-colors"
>
Home
</a>
<a
href="#"
class="block font-playfair font-normal text-base leading-relaxed tracking-wider text-gray-800 hover:text-black transition-colors"
>
Products
</a>
<a
href="#"
class="block font-playfair font-normal text-base leading-relaxed tracking-wider text-gray-800 hover:text-black transition-colors"
>
About
</a>
</div>
</div>
<!-- Help -->
<div class="space-y-6">
<h3
class="font-playfair font-normal text-md leading-relaxed tracking-wider text-eerie-black uppercase"
>
Help
</h3>
<div class="space-y-4">
<a
href="#"
class="block font-playfair font-normal text-base leading-relaxed tracking-wider text-gray-800 hover:text-black transition-colors"
>
Contact Us
</a>
<a
href="#"
class="block font-playfair font-normal text-base leading-relaxed tracking-wider text-gray-800 hover:text-black transition-colors"
>
Privacy Policies
</a>
<a
href="#"
class="block font-playfair font-normal text-base leading-relaxed tracking-wider text-gray-800 hover:text-black transition-colors"
>
Terms and Conditions
</a>
</div>
</div>
<!-- Newsletter -->
<div class="space-y-6">
<h3
class="font-playfair font-normal text-md leading-relaxed tracking-wider text-eerie-black uppercase"
>
Newsletter
</h3>
<div class="space-y-4">
<div class="flex items-center space-x-4">
<input
type="email"
placeholder="Enter Your Email Address"
class="flex-1 font-playfair font-normal text-sm leading-relaxed tracking-wider text-taupe-gray bg-transparent border-b border-black focus:outline-none focus:border-black"
/>
<button
class="font-playfair font-normal text-sm leading-relaxed tracking-wider text-gray-800 border-b border-black hover:text-black transition-colors"
>
Subscribe
</button>
</div>
</div>
</div>
</div>
</div>
<!-- Copyright Section -->
<div class="border-t border-light-silver">
<div class="max-w-7xl mx-auto px-5 py-4">
<p
class="font-playfair font-normal text-xs leading-relaxed text-davys-grey"
>
© 2025 khy. All rights reserved.
</p>
</div>
</div>
</footer>
<script src="scripts/main.js?v=1.1"></script>
<script>
// Contact form validation and submission
document.addEventListener("DOMContentLoaded", function () {
const contactForm = document.getElementById("contact-form");
const successMessage = document.getElementById("contact-success");
const errorMessage = document.getElementById("contact-error");
const submitButton = document.getElementById("contact-submit");
if (contactForm) {
contactForm.addEventListener("submit", function (e) {
e.preventDefault();
// Get form fields
const name = document.getElementById("contact-name").value.trim();
const email = document.getElementById("contact-email").value.trim();
const subject = document
.getElementById("contact-subject")
.value.trim();
const message = document
.getElementById("contact-message")
.value.trim();
// Hide any existing messages
successMessage.classList.add("hidden");
errorMessage.classList.add("hidden");
// Validate all fields
if (!name || !email || !subject || !message) {
// Show error message
errorMessage.classList.remove("hidden");
errorMessage.style.display = "block";
// Highlight empty fields with red border
const fields = [name, email, subject, message];
const fieldIds = [
"contact-name",
"contact-email",
"contact-subject",
"contact-message",
];
fieldIds.forEach((fieldId, index) => {
const field = document.getElementById(fieldId);
if (!fields[index]) {
field.classList.add("border-red-500");
field.classList.remove("border-gray-300");
} else {
field.classList.remove("border-red-500");
field.classList.add("border-gray-300");
}
});
// Scroll to error message
errorMessage.scrollIntoView({
behavior: "smooth",
block: "center",
});
// Hide error message after 3 seconds
setTimeout(() => {
errorMessage.classList.add("hidden");
errorMessage.style.display = "none";
}, 3000);
return;
}
// Validate email format
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRegex.test(email)) {
errorMessage.textContent = "Please enter a valid email address.";
errorMessage.classList.remove("hidden");
errorMessage.style.display = "block";
document
.getElementById("contact-email")
.classList.add("border-red-500");
document
.getElementById("contact-email")
.classList.remove("border-gray-300");
// Hide error message after 3 seconds
setTimeout(() => {
errorMessage.classList.add("hidden");
errorMessage.style.display = "none";
}, 3000);
return;
}
// All validation passed - show success message
successMessage.classList.remove("hidden");
successMessage.style.display = "block";
// Reset form
contactForm.reset();
// Reset all field borders
const allFields = [
"contact-name",
"contact-email",
"contact-subject",
"contact-message",
];
allFields.forEach((fieldId) => {
const field = document.getElementById(fieldId);
field.classList.remove("border-red-500");
field.classList.add("border-gray-300");
});
// Scroll to success message
successMessage.scrollIntoView({
behavior: "smooth",
block: "center",
});
// Hide success message after 3 seconds
setTimeout(() => {
successMessage.classList.add("hidden");
successMessage.style.display = "none";
}, 3000);
// Optional: Disable submit button temporarily
submitButton.disabled = true;
submitButton.textContent = "Message Sent!";
submitButton.classList.add("bg-green-600");
submitButton.classList.remove("bg-uc-gold");
// Re-enable button after 3 seconds
setTimeout(() => {
submitButton.disabled = false;
submitButton.textContent = "Submit";
submitButton.classList.remove("bg-green-600");
submitButton.classList.add("bg-uc-gold");
}, 3000);
});
// Real-time validation feedback
const formFields = [
"contact-name",
"contact-email",
"contact-subject",
"contact-message",
];
formFields.forEach((fieldId) => {
const field = document.getElementById(fieldId);
if (field) {
field.addEventListener("input", function () {
// Remove error styling when user starts typing
this.classList.remove("border-red-500");
this.classList.add("border-gray-300");
// Hide error message when user starts correcting
if (this.value.trim()) {
errorMessage.classList.add("hidden");
}
});
}
});
}
});
</script>
</body>
</html>