Beauty Parlor Studio Template
Preview
Edit
Download
Run
Download Options
HTML File
Download as .html file
CSS File
Download as .css file
JavaScript File
Download as .js file
Combined HTML
All code in one HTML file
Project ZIP
All files in a ZIP archive
Cancel
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Lumière Beauty Studio | Premium Beauty Services</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.css"> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600;700&family=Poppins:wght@300;400;500;600;700&display=swap"> </head> <body> <!-- Header & Navigation --> <header id="header"> <div class="container header-container"> <div class="logo">Lumière<span>.</span></div> <div class="mobile-toggle" id="mobileToggle"> <i class="fas fa-bars"></i> </div> <nav> <ul id="navMenu"> <li><a href="#home">Home</a></li> <li><a href="#services">Services</a></li> <li><a href="#prices">Prices</a></li> <li><a href="#booking">Booking</a></li> <li><a href="#offers">Offers</a></li> </ul> </nav> </div> </header> <!-- Hero Section --> <section class="hero" id="home"> <div class="hero-content"> <h1>Elevate Your Beauty Experience</h1> <p>At Lumière Beauty Studio, we transform beauty into an art form. Our expert team provides personalized treatments in a luxurious, serene environment designed to rejuvenate both body and spirit.</p> <div class="hero-buttons"> <a href="#booking" class="btn">Book Appointment</a> <a href="#services" class="btn btn-secondary">Explore Services</a> </div> </div> </section> <!-- Services Section --> <section id="services"> <div class="container"> <div class="section-title fade-in"> <h2>Signature Services</h2> <p>Indulge in our curated selection of premium beauty treatments, each designed to enhance your natural radiance.</p> </div> <div class="services-grid"> <div class="service-card fade-in"> <div class="service-img" style="background-image: url('https://images.unsplash.com/photo-1560066984-138dadb4c035?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80');"></div> <div class="service-content"> <h3>Hair Artistry</h3> <p>Masterful cuts, precision coloring, and luxurious treatments using exclusive products for hair that shines with health and style.</p> <div class="price"><i class="fas fa-tag"></i> From $65</div> </div> </div> <div class="service-card fade-in"> <div class="service-img" style="background-image: url('https://images.unsplash.com/photo-1512496015851-a90fb38ba796?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80');"></div> <div class="service-content"> <h3>Facial Rejuvenation</h3> <p>Advanced skincare treatments tailored to your unique complexion, delivering visible results and lasting radiance.</p> <div class="price"><i class="fas fa-tag"></i> From $85</div> </div> </div> <div class="service-card fade-in"> <div class="service-img" style="background-image: url('https://images.unsplash.com/photo-1632345031435-8727f6897d53?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8NHx8bmFpbHxlbnwwfHwwfHx8MA%3D%3D');"></div> <div class="service-content"> <h3>Luxury Nail Care</h3> <p>From classic manicures to intricate nail art, experience meticulous nail care in our serene nail lounge.</p> <div class="price"><i class="fas fa-tag"></i> From $45</div> </div> </div> </div> </div> </section> <!-- Price List Section --> <section class="price-list" id="prices"> <div class="container"> <div class="section-title fade-in"> <h2>Transparent Pricing</h2> <p>Quality beauty services with clear, upfront pricing. No hidden fees, just exceptional value.</p> </div> <table class="price-table fade-in"> <thead> <tr> <th>Service Category</th> <th>Treatment Details</th> <th>Investment</th> </tr> </thead> <tbody> <tr> <td>Signature Haircut</td> <td>Consultation, precision cut, wash, and style</td> <td>$65 - $120</td> </tr> <tr> <td>Premium Color</td> <td>Full color with olaplex treatment</td> <td>$95 - $180</td> </tr> <tr> <td>Lumière Facial</td> <td>90-minute customized facial with massage</td> <td>$85 - $140</td> </tr> <tr> <td>Luxe Manicure</td> <td>Spa manicure with paraffin treatment</td> <td>$45 - $75</td> </tr> <tr> <td>Bridal Glow</td> <td>Full bridal package with trial session</td> <td>$250 - $450</td> </tr> <tr> <td>Expert Waxing</td> <td>Full body waxing with soothing aftercare</td> <td>$40 - $95</td> </tr> <tr> <td>Lash Enhancement</td> <td>Lash extensions or lift with tint</td> <td>$75 - $150</td> </tr> </tbody> </table> </div> </section> <!-- Before-After Gallery --> <section id="gallery"> <div class="container"> <div class="section-title fade-in"> <h2>Transformations Gallery</h2> <p>Witness the artistry of our experts through these stunning client transformations.</p> </div> <div class="gallery-grid"> <div class="gallery-item fade-in"> <img src="https://images.unsplash.com/photo-1596462502278-27bfdc403348?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80" alt="Hair Transformation" class="gallery-img"> <div class="gallery-overlay"> <span>Color Transformation</span> <p>From faded blonde to rich caramel balayage</p> </div> </div> <div class="gallery-item fade-in"> <img src="https://images.unsplash.com/photo-1570172619644-dfd03ed5d881?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80" alt="Makeup Transformation" class="gallery-img"> <div class="gallery-overlay"> <span>Bridal Glow Up</span> <p>Natural bridal makeup for the perfect day</p> </div> </div> <div class="gallery-item fade-in"> <img src="https://plus.unsplash.com/premium_photo-1661432806304-6d6cb7bfa4c1?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8NXx8bmFpbHxlbnwwfHwwfHx8MA%3D%3D" alt="Nail Art" class="gallery-img"> <div class="gallery-overlay"> <span>Nail Artistry</span> <p>Custom designed nail art for special occasions</p> </div> </div> <div class="gallery-item fade-in"> <img src="https://images.unsplash.com/photo-1616394584738-fc6e612e71b9?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80" alt="Skincare Treatment" class="gallery-img"> <div class="gallery-overlay"> <span>Skin Rejuvenation</span> <p>Advanced facial for radiant, glowing skin</p> </div> </div> </div> </div> </section> <!-- Booking Form --> <section class="booking-section" id="booking"> <div class="container"> <div class="section-title fade-in"> <h2>Reserve Your Appointment</h2> <p>Secure your preferred time with our beauty experts. We'll confirm your booking within 24 hours.</p> </div> <form class="booking-form fade-in"> <div class="form-row"> <div class="form-group"> <label for="name"><i class="fas fa-user"></i> Full Name</label> <input type="text" id="name" class="form-control" placeholder="Enter your full name" required> </div> <div class="form-group"> <label for="phone"><i class="fas fa-phone"></i> Contact Number</label> <input type="tel" id="phone" class="form-control" placeholder="Your phone number" required> </div> </div> <div class="form-row"> <div class="form-group"> <label for="email"><i class="fas fa-envelope"></i> Email Address</label> <input type="email" id="email" class="form-control" placeholder="Your email address" required> </div> <div class="form-group"> <label for="date"><i class="fas fa-calendar"></i> Preferred Date</label> <input type="date" id="date" class="form-control" required> </div> </div> <div class="form-row"> <div class="form-group"> <label for="service"><i class="fas fa-spa"></i> Select Service</label> <select id="service" class="form-control" required> <option value="">Choose a treatment</option> <option value="hair">Hair Artistry</option> <option value="facial">Facial Rejuvenation</option> <option value="nails">Luxury Nail Care</option> <option value="makeup">Bridal & Special Event</option> <option value="waxing">Expert Waxing</option> <option value="lashes">Lash Enhancement</option> <option value="package">Full Package</option> </select> </div> <div class="form-group"> <label for="time"><i class="fas fa-clock"></i> Preferred Time</label> <select id="time" class="form-control" required> <option value="">Select your preferred time</option> <option value="9am">9:00 AM</option> <option value="10:30am">10:30 AM</option> <option value="12pm">12:00 PM</option> <option value="2pm">2:00 PM</option> <option value="3:30pm">3:30 PM</option> <option value="5pm">5:00 PM</option> </select> </div> </div> <div class="form-group"> <label for="message"><i class="fas fa-comment"></i> Special Requests</label> <textarea id="message" class="form-control" placeholder="Any specific requests, concerns, or notes for our team..."></textarea> </div> <button type="submit" class="btn" style="width: 100%; padding: 1.2rem; font-size: 1.1rem; margin-top: 1rem;"> <i class="fas fa-paper-plane"></i> Confirm Reservation </button> </form> </div> </section> <!-- Offers Section --> <section id="offers"> <div class="container"> <div class="section-title fade-in"> <h2>Exclusive Offers</h2> <p>Special promotions to enhance your beauty journey with us.</p> </div> <div class="offers-container"> <div class="offer-card fade-in"> <div class="offer-badge">New Client</div> <h3>First Visit Special</h3> <p>Experience our premium services with 25% off your first treatment. Plus, receive a complimentary consultation with our beauty director.</p> <a href="#booking" class="btn" style="background-color: var(--dark); border-color: var(--dark);">Claim Offer</a> </div> <div class="offer-card fade-in"> <div class="offer-badge">Limited</div> <h3>Bridal Bliss Package</h3> <p>Complete bridal preparation including trial, day-of services, and a pre-wedding facial at 20% savings. Perfect for your special day.</p> <a href="#booking" class="btn" style="background-color: var(--dark); border-color: var(--dark);">Book Package</a> </div> <div class="offer-card fade-in"> <div class="offer-badge">Seasonal</div> <h3>Beauty Duo</h3> <p>Bring a friend and both enjoy 15% off any service. Share the experience of luxury beauty treatments with someone special.</p> <a href="#booking" class="btn" style="background-color: var(--dark); border-color: var(--dark);">Book Together</a> </div> </div> </div> </section> <!-- Instagram Feed --> <section class="instagram-section" id="instagram"> <div class="container"> <div class="section-title fade-in"> <h2>Our Beauty Diary</h2> <p>Follow our journey and get inspired by our latest work and behind-the-scenes moments.</p> </div> <div class="instagram-feed"> <div class="insta-item fade-in"> <img src="https://images.unsplash.com/photo-1522335789203-aabd1fc54bc9?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80" alt="Instagram Post" class="insta-img"> <div class="insta-overlay"> <i class="fab fa-instagram insta-icon"></i> </div> </div> <div class="insta-item fade-in"> <img src="https://images.unsplash.com/photo-1560066984-138dadb4c035?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80" alt="Instagram Post" class="insta-img"> <div class="insta-overlay"> <i class="fab fa-instagram insta-icon"></i> </div> </div> <div class="insta-item fade-in"> <img src="https://images.unsplash.com/photo-1596462502278-27bfdc403348?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80" alt="Instagram Post" class="insta-img"> <div class="insta-overlay"> <i class="fab fa-instagram insta-icon"></i> </div> </div> <div class="insta-item fade-in"> <img src="https://images.unsplash.com/photo-1512496015851-a90fb38ba796?ixlib=rb-4.0.3&auto=format&fit=crop&w=800&q=80" alt="Instagram Post" class="insta-img"> <div class="insta-overlay"> <i class="fab fa-instagram insta-icon"></i> </div> </div> <div class="insta-item fade-in"> <img src="https://images.unsplash.com/photo-1512496015851-a90fb38ba796?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8M3x8cGFybG91cnxlbnwwfHwwfHx8MA%3D%3D" alt="Instagram Post" class="insta-img"> <div class="insta-overlay"> <i class="fab fa-instagram insta-icon"></i> </div> </div> </div> <div class="instagram-handle fade-in"> <p>Follow <a href="https://instagram.com" target="_blank">@lumierestudio</a> for daily beauty inspiration and exclusive content</p> </div> </div> </section> <!-- Footer --> <footer> <div class="container"> <div class="footer-content"> <div class="footer-column"> <h3>Lumière Beauty Studio</h3> <p>Where beauty meets artistry. Our luxurious studio offers an oasis of tranquility and expert beauty treatments designed to enhance your natural radiance.</p> <div class="social-icons"> <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-pinterest-p"></i></a> <a href="#"><i class="fab fa-tiktok"></i></a> </div> </div> <div class="footer-column"> <h3>Contact Information</h3> <div class="contact-info"> <p><i class="fas fa-map-marker-alt"></i> 123 Luxe Avenue, Beauty District</p> <p><i class="fas fa-phone"></i> (555) 123-4567</p> <p><i class="fas fa-envelope"></i> contact@lumierebeauty.com</p> <p><i class="fas fa-clock"></i> Mon-Fri: 9am-8pm | Sat: 9am-6pm | Sun: 10am-4pm</p> </div> </div> <div class="footer-column"> <h3>Quick Access</h3> <a href="#services">Our Services</a> <a href="#prices">Service Menu</a> <a href="#gallery">Client Gallery</a> <a href="#offers">Special Offers</a> <a href="#booking">Book Appointment</a> <a href="#instagram">Instagram Feed</a> </div> </div> <div class="copyright"> <p>© 2023 Lumière Beauty Studio. All rights reserved. | Crafted with elegance and precision</p> </div> </div> </footer> </body> </html>
CSS
:root { --primary: #c9a88e; --primary-dark: #a88c75; --secondary: #f5f0eb; --dark: #2a2a2a; --light: #ffffff; --accent: #e8d7c5; --text: #5a5a5a; --transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); --shadow: 0 10px 30px rgba(0, 0, 0, 0.08); --radius: 12px; } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: 'Poppins', sans-serif; line-height: 1.6; color: var(--text); background-color: var(--light); overflow-x: hidden; } h1, h2, h3, h4, h5 { font-family: 'Cormorant Garamond', serif; font-weight: 600; color: var(--dark); line-height: 1.2; } .container { width: 90%; max-width: 1200px; margin: 0 auto; padding: 0 15px; } /* Header */ header { background-color: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05); transition: var(--transition); } header.scrolled { padding: 5px 0; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); } .header-container { display: flex; justify-content: space-between; align-items: center; padding: 1.2rem 0; transition: var(--transition); } .logo { font-family: 'Cormorant Garamond', serif; font-size: 2.4rem; font-weight: 700; color: var(--dark); letter-spacing: 1px; } .logo span { color: var(--primary); } nav ul { display: flex; list-style: none; } nav li { margin-left: 2.2rem; position: relative; } nav a { text-decoration: none; color: var(--dark); font-weight: 500; font-size: 0.95rem; letter-spacing: 0.5px; transition: var(--transition); padding: 5px 0; } nav a:hover { color: var(--primary); } nav a::after { content: ''; position: absolute; width: 0; height: 2px; background-color: var(--primary); bottom: -2px; left: 0; transition: var(--transition); } nav a:hover::after { width: 100%; } .mobile-toggle { display: none; font-size: 1.5rem; cursor: pointer; color: var(--dark); } /* Hero Section */ .hero { background: linear-gradient(135deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.6) 100%), url('https://images.unsplash.com/photo-1560066984-138dadb4c035?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80'); background-size: cover; background-position: center; background-attachment: fixed; color: var(--light); text-align: center; padding: 10rem 1rem 8rem; min-height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; } .hero-content { max-width: 800px; animation: fadeUp 1s ease-out; } @keyframes fadeUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .hero h1 { font-size: 4.5rem; color: var(--light); margin-bottom: 1.5rem; letter-spacing: 1px; } .hero p { font-size: 1.2rem; margin-bottom: 2.5rem; opacity: 0.9; max-width: 700px; margin-left: auto; margin-right: auto; } .btn { display: inline-block; background-color: var(--primary); color: var(--light); padding: 1rem 2.5rem; border-radius: 50px; text-decoration: none; font-weight: 500; transition: var(--transition); border: 2px solid var(--primary); font-size: 1rem; letter-spacing: 0.5px; cursor: pointer; } .btn:hover { background-color: transparent; color: var(--primary); transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); } .btn-secondary { background-color: transparent; border: 2px solid var(--light); color: var(--light); margin-left: 1rem; } .btn-secondary:hover { background-color: var(--light); color: var(--dark); } /* Section Styles */ .section-title { text-align: center; margin: 5rem 0 3.5rem; position: relative; } .section-title h2 { font-size: 3.2rem; display: inline-block; position: relative; padding-bottom: 1rem; } .section-title h2::after { content: ''; position: absolute; width: 80px; height: 3px; background-color: var(--primary); bottom: 0; left: 50%; transform: translateX(-50%); } .section-title p { max-width: 600px; margin: 1rem auto 0; font-size: 1.1rem; color: var(--text); } /* Services Section */ .services-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 2.5rem; margin-bottom: 5rem; } .service-card { background-color: var(--light); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); transition: var(--transition); position: relative; } .service-card:hover { transform: translateY(-15px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12); } .service-img { height: 240px; background-size: cover; background-position: center; transition: transform 0.8s ease; } .service-card:hover .service-img { transform: scale(1.05); } .service-content { padding: 2rem; } .service-content h3 { font-size: 1.8rem; margin-bottom: 0.8rem; } .service-content p { margin-bottom: 1.5rem; color: var(--text); } .price { color: var(--primary); font-weight: 600; font-size: 1.4rem; display: flex; align-items: center; } .price i { margin-right: 8px; font-size: 1.2rem; } /* Price List */ .price-list { background-color: var(--secondary); padding: 5rem 0; position: relative; } .price-list::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: linear-gradient(to right, var(--primary), var(--accent)); } .price-table { width: 100%; border-collapse: collapse; background-color: var(--light); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); } .price-table thead { background: linear-gradient(to right, var(--primary), var(--primary-dark)); } .price-table th { padding: 1.5rem; text-align: left; color: var(--light); font-weight: 600; font-size: 1.1rem; } .price-table td { padding: 1.5rem; border-bottom: 1px solid #eee; } .price-table tr:last-child td { border-bottom: none; } .price-table tr:hover { background-color: rgba(201, 168, 142, 0.05); } /* Gallery */ .gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.8rem; margin-bottom: 5rem; } .gallery-item { position: relative; border-radius: var(--radius); overflow: hidden; height: 320px; cursor: pointer; } .gallery-img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s ease; } .gallery-item:hover .gallery-img { transform: scale(1.1); } .gallery-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to top, rgba(201, 168, 142, 0.9), transparent); display: flex; flex-direction: column; justify-content: flex-end; padding: 2rem; opacity: 0; transition: var(--transition); } .gallery-item:hover .gallery-overlay { opacity: 1; } .gallery-overlay span { color: white; font-weight: 600; font-size: 1.3rem; margin-bottom: 0.5rem; } .gallery-overlay p { color: rgba(255, 255, 255, 0.8); font-size: 0.9rem; } /* Booking Form */ .booking-section { background: linear-gradient(135deg, var(--secondary) 0%, #f9f5f0 100%); padding: 5rem 0; position: relative; overflow: hidden; } .booking-section::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url('https://images.unsplash.com/photo-1560066984-138dadb4c035?ixlib=rb-4.0.3&auto=format&fit=crop&w=500&q=80'); background-size: cover; background-position: center; opacity: 0.03; } .booking-form { max-width: 800px; margin: 0 auto; background-color: var(--light); padding: 3rem; border-radius: var(--radius); box-shadow: var(--shadow); position: relative; z-index: 1; } .form-row { display: flex; flex-wrap: wrap; margin: 0 -1rem; } .form-group { flex: 1; min-width: 250px; padding: 0 1rem; margin-bottom: 1.8rem; } .form-group label { display: block; margin-bottom: 0.7rem; color: var(--dark); font-weight: 500; font-size: 0.95rem; } .form-control { width: 100%; padding: 1rem 1.2rem; border: 1px solid #e0e0e0; border-radius: 8px; font-family: 'Poppins', sans-serif; font-size: 1rem; transition: var(--transition); background-color: #fafafa; } .form-control:focus { outline: none; border-color: var(--primary); background-color: var(--light); box-shadow: 0 0 0 3px rgba(201, 168, 142, 0.1); } textarea.form-control { min-height: 140px; resize: vertical; } /* Offers Section */ .offers-container { display: flex; flex-wrap: wrap; justify-content: center; gap: 2.5rem; margin-bottom: 5rem; } .offer-card { flex: 1; min-width: 320px; max-width: 380px; background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: white; border-radius: var(--radius); padding: 2.5rem; box-shadow: 0 15px 30px rgba(201, 168, 142, 0.3); position: relative; overflow: hidden; transition: var(--transition); } .offer-card:hover { transform: translateY(-10px); box-shadow: 0 20px 40px rgba(201, 168, 142, 0.4); } .offer-card:nth-child(2) { background: linear-gradient(135deg, #a88c75 0%, #8a7260 100%); } .offer-card:nth-child(3) { background: linear-gradient(135deg, #b89a82 0%, #9c806a 100%); } .offer-badge { position: absolute; top: 25px; right: -35px; background-color: var(--dark); color: white; padding: 0.5rem 3rem; transform: rotate(45deg); font-weight: 600; font-size: 0.9rem; letter-spacing: 1px; } .offer-card h3 { color: white; font-size: 2rem; margin-bottom: 1.2rem; } .offer-card p { margin-bottom: 2rem; opacity: 0.9; line-height: 1.7; } /* Instagram Feed */ .instagram-section { background-color: var(--dark); color: var(--light); padding: 5rem 0; text-align: center; position: relative; } .instagram-section .section-title h2 { color: var(--light); } .instagram-section .section-title p { color: rgba(255, 255, 255, 0.7); } .instagram-feed { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1.5rem; margin-bottom: 2.5rem; } .insta-item { position: relative; border-radius: 10px; overflow: hidden; height: 220px; cursor: pointer; } .insta-img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .insta-item:hover .insta-img { transform: scale(1.1); } .insta-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(201, 168, 142, 0.9), rgba(168, 140, 117, 0.9)); display: flex; justify-content: center; align-items: center; opacity: 0; transition: var(--transition); } .insta-item:hover .insta-overlay { opacity: 1; } .insta-icon { color: white; font-size: 2.5rem; } .instagram-handle { font-size: 1.3rem; margin-top: 1.5rem; } .instagram-handle a { color: var(--primary); text-decoration: none; font-weight: 600; transition: var(--transition); } .instagram-handle a:hover { color: var(--accent); } /* Footer */ footer { background-color: var(--dark); color: var(--light); padding: 5rem 0 2.5rem; } .footer-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 3rem; margin-bottom: 3rem; } .footer-column h3 { color: var(--light); font-size: 1.6rem; margin-bottom: 1.8rem; position: relative; padding-bottom: 0.8rem; } .footer-column h3::after { content: ''; position: absolute; width: 50px; height: 2px; background-color: var(--primary); bottom: 0; left: 0; } .footer-column p, .footer-column a { color: rgba(255, 255, 255, 0.7); margin-bottom: 1rem; display: block; text-decoration: none; transition: var(--transition); line-height: 1.8; } .footer-column a:hover { color: var(--primary); transform: translateX(5px); } .contact-info i { width: 20px; margin-right: 10px; color: var(--primary); } .social-icons { display: flex; gap: 1rem; margin-top: 1.8rem; } .social-icons a { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; background-color: rgba(255, 255, 255, 0.1); border-radius: 50%; color: white; transition: var(--transition); } .social-icons a:hover { background-color: var(--primary); transform: translateY(-5px); } .copyright { text-align: center; padding-top: 2.5rem; border-top: 1px solid rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.5); font-size: 0.95rem; } /* Responsive Design */ @media (max-width: 992px) { .hero h1 { font-size: 3.5rem; } .section-title h2 { font-size: 2.8rem; } } @media (max-width: 768px) { nav ul { display: none; position: fixed; top: 80px; left: 0; width: 100%; background-color: var(--light); flex-direction: column; padding: 2rem 0; box-shadow: 0 10px 20px rgba(0,0,0,0.1); text-align: center; z-index: 999; } nav ul.active { display: flex; } nav li { margin: 0; padding: 0.8rem 2rem; } .mobile-toggle { display: block; } .hero h1 { font-size: 2.8rem; } .hero p { font-size: 1.1rem; } .btn-secondary { margin-left: 0; margin-top: 1rem; } .booking-form { padding: 2rem; } } @media (max-width: 576px) { .hero { padding: 8rem 1rem 6rem; } .hero h1 { font-size: 2.3rem; } .section-title h2 { font-size: 2.2rem; } .form-group { min-width: 100%; } .offer-card { min-width: 100%; } } /* Animation classes */ .fade-in { opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease, transform 0.6s ease; } .fade-in.visible { opacity: 1; transform: translateY(0); }
JavaScript
// Mobile menu toggle const mobileToggle = document.getElementById('mobileToggle'); const navMenu = document.getElementById('navMenu'); mobileToggle.addEventListener('click', function() { navMenu.classList.toggle('active'); mobileToggle.innerHTML = navMenu.classList.contains('active') ? '<i class="fas fa-times"></i>' : '<i class="fas fa-bars"></i>'; }); // Header scroll effect window.addEventListener('scroll', function() { const header = document.getElementById('header'); if (window.scrollY > 50) { header.classList.add('scrolled'); document.querySelector('.header-container').style.padding = '0.8rem 0'; } else { header.classList.remove('scrolled'); document.querySelector('.header-container').style.padding = '1.2rem 0'; } }); // Smooth scrolling for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function(e) { e.preventDefault(); const targetId = this.getAttribute('href'); if(targetId === '#') return; const targetElement = document.querySelector(targetId); if(targetElement) { // Close mobile menu if open if (navMenu.classList.contains('active')) { navMenu.classList.remove('active'); mobileToggle.innerHTML = '<i class="fas fa-bars"></i>'; } window.scrollTo({ top: targetElement.offsetTop - 100, behavior: 'smooth' }); } }); }); // Form submission const bookingForm = document.querySelector('.booking-form'); bookingForm.addEventListener('submit', function(e) { e.preventDefault(); // Get form data const name = document.getElementById('name').value; const service = document.getElementById('service').value; const date = document.getElementById('date').value; const time = document.getElementById('time').value; // Simple form validation if (!name || !service || !date || !time) { alert('Please fill in all required fields.'); return; } // Show success message const serviceText = document.querySelector(`#service option[value="${service}"]`).textContent; const timeText = document.querySelector(`#time option[value="${time}"]`).textContent; alert(`Thank you ${name}! Your booking for ${serviceText} on ${date} at ${timeText} has been received. We will contact you shortly to confirm your appointment.`); // Reset form bookingForm.reset(); // Reset date to tomorrow const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); document.getElementById('date').value = tomorrow.toISOString().split('T')[0]; }); // Set minimum date for booking to today const dateInput = document.getElementById('date'); const today = new Date().toISOString().split('T')[0]; dateInput.min = today; // Set default date to tomorrow const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); dateInput.value = tomorrow.toISOString().split('T')[0]; // Scroll animations const fadeElements = document.querySelectorAll('.fade-in'); const fadeInOnScroll = function() { fadeElements.forEach(element => { const elementTop = element.getBoundingClientRect().top; const elementVisible = 150; if (elementTop < window.innerHeight - elementVisible) { element.classList.add('visible'); } }); }; window.addEventListener('scroll', fadeInOnScroll); // Initial check fadeInOnScroll();
Output Preview
Desktop
Mobile
Fullscreen