<!doctype html>
<html lang="en"><head><script>window["__codeletBootstrap__"]=JSON.parse('{"A":"A","B":"20261007-04-b4189fb","C":{"Abril Fatface":"YACgEZbkUVE,0","Alfa Slab One":"YACgEYS9sJU,0","Anton":"YACgEcYqQ-A,0","Archivo Black":"YACgEZulLoA,0","Archivo":"YAHO2-t-jNE,0","Arial":"YAGyDvJ_4Ts,0","Baloo 2":"YAHO2IcQUcM,0","Barlow Condensed":"YAFdJljEuFc,0","Bebas Neue":"YACgESME5ew,0","Bricolage Grotesque":"YAFyMcdwzpc,0","Canva Sans":"YAFdJjTk5UU,1","Caveat":"YALBs2ploWQ,0","Cinzel":"YACgEeV8bIQ,0","Cormorant Garamond":"YAFdJhX-538,0","Courier New":"YAGzXiGs0_8,0","Courier Prime":"YAD1aFjegN8,0","DM Sans":"YAD1aU3sLnI,0","DM Serif Display":"YAD1aYG82rc,0","Figtree":"YAHO2b-mV7A,0","Forum":"YACgEcnnqB4,0","Fraunces":"YAFdJpU7Kkk,0","Fredoka":"YACgEZml080,0","Georgia":"YAGzXkO0pEM,0","Hanken Grotesk":"YAHO2VB9G0I,0","Helvetica":"YAFcf7zkXN0,0","IBM Plex Mono":"YAFdJkmvhGI,0","IBM Plex Sans":"YAFdJgT0SHI,0","Impact":"YAFcfnjI7Vk,0","Instrument Serif":"YAHFeOnZNEk,0","Inter":"YAFdJvSyp_k,3","Italiana":"YAHO2Toik_w,0","Jacques Francois":"YAHO2a5g66Q,0","JetBrains Mono":"YAFdJksXcAk,0","Josefin Sans":"YAFdJjvw9Ps,0","Karla":"YAHO2V2NSXM,0","Lato":"YAFdJuFCnaw,0","Libre Baskerville":"YACgEUFdPdA,0","Lobster":"YAD8SnSjSFI,0","Lora":"YACgEXvxf8Q,0","Manrope":"YAHO2b2feC4,0","Merriweather":"YACgEXvHxxs,0","Montserrat":"YAFdtQi73Xs,0","Noto Sans JP":"YAFdJiHXlcI,0","Noto Sans KR":"YAGsojZj-RQ,0","Nunito Sans":"YAFdtQJYB9w,1","Nunito":"YAFdJoNRMmU,1","Oleo Script":"YACgEQQ14jI,0","Oswald":"YACgEQY10lw,0","Outfit":"YAHO2nVlg14,0","Pacifico":"YADLjORQ1u4,0","Playfair Display":"YAFdJhem5V8,1","Plus Jakarta Sans":"YAHO2gdhi18,0","Poppins":"YAFdJjbTu24,1","Press Start 2P":"YAFyGr-8pmQ,0","Quicksand":"YAFdJpYtCxE,1","Raleway":"YAFdJhmxbVQ,1","Roboto Slab":"YAFdJswIKAg,0","Rockwell":"YAFcfyVZnN0,0","Rye":"YACgEdQP21k,0","Sarabun":"YAFdJssSnME,0","Segoe UI":"YAHNdRD1Klw,0","Source Sans 3":"YAG4lO1Mj10,0","Space Grotesk":"YAHO2sjPCSM,0","Space Mono":"YADW1-vpsoc,0","Spectral":"YAHO2rVUHIM,0","Times New Roman":"YAGzXW3gftg,0","Trebuchet MS":"YAFcfrglpVA,0","Ubuntu":"YACgERDU--Q,0","Verdana":"YAGzXTctYtQ,0","Work Sans":"YAGXhLOKv44,0","Yellowtail":"YACgEYG4kG4,0"}}');</script><script src="/_sdk/6542d56fbfe7a3eb.telemetry_sdk.js" integrity="sha512-ECdM0nK7EkwDuOqho2qxgyRQXyBHk9hZqRKMBr+Xsu6zjeHlt+qkO2N2YRiHN7Kg4e1fEHDhjIp4bGJYVypv1g=="></script>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Highbury House of Plants</title>
<script src="https://cdn.tailwindcss.com/3.4.17"></script>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Playfair+Display:wght@400;700&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/lucide@0.263.0/dist/umd/lucide.min.js"></script>
<style>
body { font-family: 'DM Sans', sans-serif; }
.font-display { font-family: 'Playfair Display', serif; }
.fade-in { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease, transform 0.8s ease; }
.fade-in.visible { opacity: 1; transform: translateY(0); }
.card-hover { transition: transform 0.4s ease; }
.card-hover:hover { transform: translateY(-14px); }
.gallery-img { transition: transform 0.5s ease; overflow: hidden; }
.gallery-img img { transition: transform 0.5s ease; }
.gallery-img:hover img { transform: scale(1.08); }
.bounce { animation: bounce 2s infinite; }
@keyframes bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(10px); } }
.fade-in-confirmation { animation: fadeInMessage 0.6s ease-out forwards; }
@keyframes fadeInMessage { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
.hero-overlay { background: none; }
.nav-solid { background-color: #363400 !important; color: #fffcef !important; }
.nav-solid a { color: #fffcef !important; }
a:hover { color: #c6be64 !important; }
.hover-btn { transition: background-color 0.3s ease, color 0.3s ease; }
</style>
<script src="/_sdk/6c2ecc939521f244.data_sdk.js" type="text/javascript" integrity="sha512-gRx8s+XsZDN6mSIQu2sivLZysbV0WHhb5kXNUWlgVb5lCMU1foJYukyMEDPv8Tnoocb8iwqB4XdRrWc7oEGzIQ=="></script>
<script src="/_sdk/ab4336f91e694f96.resizing_sdk.js" type="text/javascript" integrity="sha512-cxmeUrBrNlwwLr+tEu/iwM5F3boeK4qDMoH3QjUPqJptkO5NkaDVhQvyIHIn+3EflI5/uubWzkSA78B1tCswgA=="></script>
</head>
<body data-template-id="__page-root" class="text-gray-800" style="background: rgb(250, 247, 242);"><!-- Nav -->
<nav id="main-nav" class="fixed top-0 left-0 w-full z-50 transition-all duration-500" style="background-color: #363400;">
<div class="max-w-7xl mx-auto px-6 py-4 flex items-center justify-between" style="color: #fffcef;"><span data-template-id="nav-logo" class="canva-text font-display text-xl font-bold tracking-wide" style="color: rgb(255, 252, 239); font-weight: 200; font-style: normal; font-size: 35px;">Blooms & Beauty</span>
<div class="hidden md:flex gap-8 text-sm tracking-widest uppercase"><a href="#shop" class="hover:text-c6be64 transition-colors" style="color: #fffcef;">Shop</a> <a href="#about" class="hover:text-c6be64 transition-colors" style="color: #fffcef;">About</a> <a href="#gallery" class="hover:text-c6be64 transition-colors" style="color: #fffcef;">Gallery</a> <a href="#contact" class="hover:text-c6be64 transition-colors" style="color: #fffcef;">Contact</a>
</div><button id="menu-toggle" class="md:hidden" aria-label="Menu"><i data-lucide="menu" style="width:24px;height:24px;"></i></button>
</div>
<div id="mobile-menu" class="hidden md:hidden px-6 pb-4 space-y-3 text-sm uppercase tracking-widest"><a href="#shop" class="block hover:text-c6be64 transition-colors" style="color: #fffcef;">Shop</a> <a href="#about" class="block hover:text-c6be64 transition-colors" style="color: #fffcef;">About</a> <a href="#gallery" class="block hover:text-c6be64 transition-colors" style="color: #fffcef;">Gallery</a> <a href="#contact" class="block hover:text-c6be64 transition-colors" style="color: #fffcef;">Contact</a>
</div>
</nav><!-- Hero -->
<header class="relative w-full" style="height: calc(100 * min(var(--vh,1vh),1vh));"><img data-template-id="hero-bg" class="canva-image absolute inset-0 w-full h-full object-cover" loading="lazy" src="canva://MAFZeLL_P4E/1" alt="Floral Facial Portrait of a Woman with Flower Vases">
<div class="relative z-10 flex flex-col items-center justify-center h-full text-center px-6 pt-32">
<h1 data-template-id="hero-headline" class="canva-text font-display text-5xl md:text-7xl font-bold relative z-10 -mb-4" style="color: rgb(255, 252, 239); font-weight: 200; font-style: normal; font-size: 159px; letter-spacing: -0.2rem;">Blooms & Beauty</h1><button data-template-id="hero-cta" class="canva-button hover-btn px-8 py-4 rounded-full font-bold uppercase tracking-wider text-lg transition-all mb-12" style="background: rgb(198, 190, 100); color: rgb(54, 52, 0); font-weight: 700; font-style: normal; font-size: 16px;">Explore Collection</button>
<div class="absolute bottom-8 bounce opacity-60">
<i data-lucide="chevron-down" style="width:28px;height:28px;"></i>
</div>
</div>
</header><!-- Shop -->
<section id="shop" data-template-id="shop-section" class="canva-section w-full py-24 px-6" style="background: rgb(255, 252, 239);">
<div class="max-w-6xl mx-auto text-center">
<h2 data-template-id="shop-heading" class="canva-text font-display text-4xl font-bold mb-3 fade-in" style="color: rgb(54, 52, 0); font-weight: 200; font-style: normal; font-size: 80px;">Our Collections</h2>
<p data-template-id="shop-subtext" class="canva-text mb-16 opacity-70 fade-in" style="color: rgb(54, 52, 0); font-weight: 400; font-style: normal; font-size: 16px;">Exquisitely arranged flower bouquets, handcrafted in our North London studio</p>
<div class="grid md:grid-cols-3 gap-8">
<div class="card-hover overflow-hidden fade-in" style="background:#363400;"><img data-template-id="product-img-1" class="canva-image w-full h-64 object-cover" loading="lazy" src="canva://MAEopCsQT_w/1" alt="Assorted Flowers in Glass Vases">
<div class="p-6 text-left">
<h3 data-template-id="product-name-1" class="canva-text font-display text-xl font-bold mb-2" style="color: rgb(255, 252, 239); font-weight: 200; font-style: normal; font-size: 31px;">Assorted Blooms</h3>
<p data-template-id="product-desc-1" class="canva-text text-sm mb-3" style="color: rgb(198, 190, 100); font-weight: 400; font-style: normal; font-size: 16px;">A vibrant mix of seasonal flowers, thoughtfully arranged for a natural look</p><span data-template-id="product-price-1" class="canva-text font-bold" style="color: rgb(238, 205, 211); font-weight: 700; font-style: normal; font-size: 21px;">£45</span>
</div>
</div>
<div class="card-hover overflow-hidden fade-in" style="background:#363400;"><img data-template-id="product-img-2" class="canva-image w-full h-64 object-cover" loading="lazy" src="canva://MAEopMm_q1s/1" alt="White Orchids on Yellow Background">
<div class="p-6 text-left">
<h3 data-template-id="product-name-2" class="canva-text font-display text-xl font-bold mb-2" style="color: rgb(255, 252, 239); font-weight: 200; font-style: normal; font-size: 32px;">White Orchid Stem</h3>
<p data-template-id="product-desc-2" class="canva-text text-sm mb-3" style="color: rgb(198, 190, 100); font-weight: 400; font-style: normal; font-size: 16px;">Elegant white orchids—timeless, minimal, and effortlessly graceful</p><span data-template-id="product-price-2" class="canva-text font-bold" style="color: rgb(238, 205, 211); font-weight: 700; font-style: normal; font-size: 21px;">£55</span>
</div>
</div>
<div class="card-hover overflow-hidden fade-in" style="background:#363400;"><img data-template-id="product-img-3" class="canva-image w-full h-64 object-cover" loading="lazy" src="canva://MAEopGZHsUs/1" alt="Calla Lilies on Pink Background">
<div class="p-6 text-left">
<h3 data-template-id="product-name-3" class="canva-text font-display text-xl font-bold mb-2" style="color: rgb(255, 252, 239); font-weight: 200; font-style: normal; font-size: 32px;">Calla Lily Duo</h3>
<p data-template-id="product-desc-3" class="canva-text text-sm mb-3" style="color: rgb(198, 190, 100); font-weight: 400; font-style: normal; font-size: 16px;">Sculptural calla lilies with soft curves, perfect for an understated statement</p><span data-template-id="product-price-3" class="canva-text font-bold" style="color: rgb(238, 205, 211); font-weight: 700; font-style: normal; font-size: 21px;">£40</span>
</div>
</div>
</div>
</div>
</section><!-- About -->
<section id="about" data-template-id="about-section" class="canva-section w-full py-24 px-6" style="background: rgb(198, 190, 100);">
<div class="max-w-6xl mx-auto grid md:grid-cols-2 gap-12 items-center">
<div class="fade-in gallery-img overflow-hidden"><img data-template-id="about-image" class="canva-image w-full h-96 object-cover" loading="lazy" src="canva://MAFahNTtu8Q/1" alt="Busy Garden Woman Holding a Flowepot">
</div>
<div class="fade-in">
<h2 data-template-id="about-heading" class="canva-text font-display text-4xl font-bold mb-6" style="color: rgb(54, 52, 0); font-weight: 200; font-style: normal; font-size: 80px;">About Us</h2>
<p data-template-id="about-text" class="canva-text leading-relaxed opacity-80" style="color: rgb(54, 52, 0); font-weight: 400; font-style: normal; font-size: 16px;">Born from a passion for flowers and design, Blooms & Beauty creates stunning floral arrangements from our studio in London.
Every bouquet is handcrafted with care, combining seasonal blooms, lush foliage, and artistic vision that transform any space.
We believe beautiful flowers bring joy and elegance into everyday life.</p>
</div>
</div>
</section><!-- Gallery -->
<section id="gallery" data-template-id="gallery-section" class="canva-section w-full py-24 px-6" style="background: rgb(238, 205, 211);">
<div class="max-w-6xl mx-auto">
<h2 data-template-id="gallery-heading" class="canva-text font-display text-4xl font-bold text-center mb-16 fade-in" style="color: rgb(54, 52, 0); font-weight: 200; font-style: normal; font-size: 79px;">The Collection</h2>
<div class="grid gap-5 md:grid-cols-2" style="grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; max-height: 505px;">
<div class="gallery-img overflow-hidden fade-in" style="grid-column: 1; grid-row: 1 / 3;"><img data-template-id="gallery-img-1" class="canva-image w-full h-full object-cover" loading="lazy" src="canva://MAFZeAPqdLg/1" alt="Floral Facial Beauty Portrait of a Woman with Flowers">
</div>
<div class="flex flex-col gap-5" style="grid-column: 2; grid-row: 1 / 3;">
<div class="flex gap-5">
<div class="gallery-img overflow-hidden fade-in flex-1" style="aspect-ratio: 1/1;"><img data-template-id="gallery-img-2" class="canva-image w-full h-full object-cover" loading="lazy" src="canva://MAEopPE3XwA/1" alt="Assorted Flowers on Yellow Backgroun">
</div>
<div class="gallery-img overflow-hidden fade-in flex-1" style="aspect-ratio: 1/1;"><img data-template-id="gallery-img-3" class="canva-image w-full h-full object-cover" loading="lazy" src="canva://MAFZeAgCD7I/1" alt="Floral Facial Woman Holding a Flower Posing">
</div>
</div>
<div class="gallery-img overflow-hidden fade-in flex-1" style="min-height: 0;"><img data-template-id="gallery-img-4" class="canva-image w-full h-full object-cover" loading="lazy" src="canva://MAEopAjMCr8/1" alt="Lily of the Incas on Pink Background">
</div>
</div>
</div>
</div>
</section><!-- Contact -->
<section id="contact" data-template-id="contact-section" class="canva-section w-full py-24 px-6" style="background: rgb(54, 52, 0);">
<div class="max-w-xl mx-auto text-center fade-in">
<h2 data-template-id="contact-heading" class="canva-text font-display text-4xl font-bold mb-4" style="color: rgb(255, 252, 239); font-weight: 200; font-style: normal; font-size: 93px;">Life's better
with blooms.</h2>
<p data-template-id="contact-subtext" class="canva-text opacity-80 mb-8" style="color: rgb(255, 252, 239); font-weight: 400; font-style: normal; font-size: 16px;">Join our newsletter for new collections, care tips, and workshop invites.</p>
<form id="subscribe-form" class="flex gap-3 max-w-md mx-auto"><input data-template-id="contact-email" type="email" class="canva-input flex-1 px-4 py-3 rounded-full bg-white/20 border border-white/30 text-white placeholder-white/60 focus:outline-none focus:border-white" style="color: rgb(255, 252, 239); background: rgba(255, 252, 239, 0.15); font-weight: 400; font-style: normal; font-size: 16px;" placeholder="Enter your email"> <button data-template-id="contact-btn" type="submit" class="canva-button hover-btn px-6 py-3 rounded-full font-semibold text-sm uppercase tracking-wider transition-all" style="background: rgb(198, 190, 100); color: rgb(54, 52, 0); font-weight: 700; font-style: normal; font-size: 16px;">Subscribe</button>
</form>
<div id="subscribe-confirmation-container" class="mt-6">
<p data-template-id="subscribe-confirmation" class="canva-text hidden text-lg font-semibold" style="color: rgb(238, 205, 211); font-weight: 400; font-style: normal; font-size: 16px;">You're subscribed! We'll be in touch.</p>
</div>
</div>
</section><!-- Footer -->
<footer data-template-id="footer-section" class="canva-footer w-full py-8 px-6" style="background: rgb(54, 52, 0);">
<div class="max-w-6xl mx-auto grid grid-cols-1 md:grid-cols-3 gap-8 text-sm md:text-left">
<div class="flex justify-center md:justify-start"><span data-template-id="footer-brand" class="canva-text font-display font-bold" style="color: rgb(255, 252, 239); font-weight: 200; font-style: normal; font-size: 35px;">Blooms & Beauty</span>
</div>
<div class="flex justify-center">
<span data-template-id="footer-text" class="canva-text text-sm opacity-50" style="color: rgb(255, 252, 239); font-weight: 400; font-style: normal; font-size: 16px;">2025 Blooms & Beauty, All rights reserved.</span>
</div>
<div class="flex justify-center md:justify-end">
<div class="flex flex-col items-end gap-2">
<div class="flex items-center gap-2"><i data-lucide="mail" style="width:18px;height:18px;color:#fffcef;"></i> <span data-template-id="footer-email" class="canva-text" style="color: rgb(255, 252, 239); font-weight: 400; font-style: normal; font-size: 16px;">hello@reallygreatesite.com</span>
</div>
<div class="flex items-center gap-2"><i data-lucide="phone" style="width:18px;height:18px;color:#fffcef;"></i> <span data-template-id="footer-phone" class="canva-text" style="color: rgb(255, 252, 239); font-weight: 400; font-style: normal; font-size: 16px;">123-456-7890</span>
</div>
</div>
</div>
</div>
</footer>
<script src="/_sdk/076b13200873adb1.editing_sdk.js" integrity="sha512-ZtNtm8+39bIBEM+BqVFLF2DGJcZDSJkgYAfQa13MND+siMeCmOpG2FoU1Iv6fGQyEH3Y1nIM5T9xiJG2Bq/ozw=="></script>
<script>
lucide.createIcons();
// Mobile menu
document.getElementById('menu-toggle').addEventListener('click', () => {
document.getElementById('mobile-menu').classList.toggle('hidden');
});
document.querySelectorAll('#mobile-menu a').forEach(a => {
a.addEventListener('click', () => document.getElementById('mobile-menu').classList.add('hidden'));
});
// Nav scroll
window.addEventListener('scroll', () => {
document.getElementById('main-nav').classList.toggle('nav-solid', window.scrollY > 100);
});
// Smooth scroll for all hash links
document.querySelectorAll('a[href^="#"]').forEach(a => {
a.addEventListener('click', e => {
e.preventDefault();
document.querySelector(a.getAttribute('href'))?.scrollIntoView({ behavior: 'smooth' });
});
});
// Hero CTA button smooth scroll to shop section
document.querySelector('[data-template-id="hero-cta"]').addEventListener('click', e => {
e.preventDefault();
document.getElementById('shop')?.scrollIntoView({ behavior: 'smooth' });
});
// Fade in on scroll
const obs = new IntersectionObserver(entries => {
entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('visible'); obs.unobserve(e.target); } });
}, { threshold: 0.15 });
document.querySelectorAll('.fade-in').forEach(el => obs.observe(el));
// Hover button handler - delayed binding to allow SDK to apply inline styles first
// Per-button hover configs since buttons have different hover states
const buttonHoverConfigs = {
'hero-cta': {
hoverBackground: '#fffcef',
hoverColor: '#363400',
defaultBackground: '#c6be64',
defaultColor: '#363400'
},
'contact-btn': {
hoverBackground: '#fffcef',
hoverColor: '#363400',
defaultBackground: '#c6be64',
defaultColor: '#363400'
}
};
setTimeout(() => {
const hoverButtons = document.querySelectorAll('.hover-btn');
hoverButtons.forEach(btn => {
const templateId = btn.getAttribute('data-template-id');
const config = buttonHoverConfigs[templateId];
if (!config) return;
const handleHoverStart = function() {
// Apply hover colors with !important priority
this.style.setProperty('background', config.hoverBackground, 'important');
this.style.setProperty('background-color', config.hoverBackground, 'important');
this.style.setProperty('color', config.hoverColor, 'important');
};
const handleHoverEnd = function() {
// Restore the default colors with !important
this.style.setProperty('background', config.defaultBackground, 'important');
this.style.setProperty('background-color', config.defaultBackground, 'important');
this.style.setProperty('color', config.defaultColor, 'important');
};
btn.addEventListener('mouseenter', handleHoverStart);
btn.addEventListener('mouseleave', handleHoverEnd);
btn.addEventListener('touchstart', handleHoverStart);
btn.addEventListener('touchend', handleHoverEnd);
});
}, 500);
// Data SDK initialization and form handling
const dataHandler = {
onDataChanged(data) {
// Just store the data; no UI updates needed
}
};
(async () => {
const initResult = await window.dataSdk.init(dataHandler);
if (!initResult.isOk) {
console.error('Failed to initialize Data SDK');
}
// Form
document.getElementById('subscribe-form').addEventListener('submit', async e => {
e.preventDefault();
const input = e.target.querySelector('input');
const email = input.value.trim();
// Validate email
if (!email || !email.includes('@')) {
return;
}
// Save to Data SDK
const saveResult = await window.dataSdk.create({
email: email,
subscribed_at: new Date().toISOString()
});
if (saveResult.isOk) {
input.value = '';
const confirmation = document.querySelector('[data-template-id="subscribe-confirmation"]');
confirmation.classList.remove('hidden');
confirmation.classList.add('fade-in-confirmation');
}
});
})();
</script>
</body></html>