const {useEffect,useMemo,useState}=React; const IMG=(id,w=1400)=>`https://images.unsplash.com/photo-${id}?auto=format&fit=crop&w=${w}&q=88`; const hero=[IMG('1519741497674-611481863552'),IMG('1511285560929-80b456fea0bc'),IMG('1519225421980-715cb0215aed'),IMG('1465495976277-4387d4b0e4a6')]; const portraits=[IMG('1529636798458-92182e3d3b5b'),IMG('1520854221256-17451cc331bf'),IMG('1507504031003-bb6d8f2f7d0d'),IMG('1517841905240-472988babdf9'),IMG('1488426862026-3ee34a7d66df'),IMG('1519741497674-611481863552')]; const portfolio=[...portraits,...hero,...portraits]; const serviceImgs=[IMG('1519741497674-611481863552'),IMG('1511285560929-80b456fea0bc'),IMG('1504150558240-0b4fd8946624'),IMG('1529636798458-92182e3d3b5b'),IMG('1519225421980-715cb0215aed'),IMG('1464366400600-7168b8af9bc3')]; const services=['Wedding Photography','Pre-Wedding Stories','Cinematic Films','Portraits','Engagements','Events & Celebrations']; const navItems=[['About','#about'],['Portfolio','/portfolio'],['Services','#services'],['Films','/films'],['Journal','/journal'],['Contact','#contact']]; function Brand(){return Click O Shoot} function EnquiryModal({open,onClose,defaultService=''}){const[form,setForm]=useState({name:'',email:'',phone:'',event_date:'',service:defaultService||services[0],message:''});const[status,setStatus]=useState('');useEffect(()=>{if(open){document.body.classList.add('modal-open');setStatus('');setForm(f=>({...f,service:defaultService||f.service}))}else document.body.classList.remove('modal-open');return()=>document.body.classList.remove('modal-open')},[open,defaultService]);if(!open)return null;const submit=async e=>{e.preventDefault();setStatus('Sending...');try{const r=await fetch('/api.php?action=enquiry',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(form)});const d=await r.json();setStatus(d.message||'Enquiry received.');if(d.success)setForm({...form,name:'',email:'',phone:'',event_date:'',message:''})}catch(err){setStatus('Unable to send right now. Please try again.')}};return
e.target===e.currentTarget&&onClose()}>

LET'S CREATE SOMETHING BEAUTIFUL

Tell us about
your story.

Share a few details and our team will get back to you with availability, ideas and a tailored quote.

Fast responseWe usually reply within 24 hours.
{status&&
{status}
}
} function Header({onEnquire}){const[open,setOpen]=useState(false);const go=(e,href)=>{if(href.startsWith('#')){e.preventDefault();setOpen(false);if(location.pathname!=='/')location.href='/'+href;else document.querySelector(href)?.scrollIntoView({behavior:'smooth'});}else setOpen(false)};return
} function Hero({onEnquire}){const[i,setI]=useState(0);useEffect(()=>{const t=setInterval(()=>setI(x=>(x+1)%hero.length),5200);return()=>clearInterval(t)},[]);return

WEDDING PHOTOGRAPHY · CINEMATIC FILMS

Every love story
deserves to be remembered.

Timeless photographs and cinematic films for couples who want to feel their day all over again.

Explore Our Work ▶ Watch Films
{hero.map((_,n)=>
SCROLL TO DISCOVER
} function About(){return

OUR APPROACH

We capture emotions,
not just pictures.

At Click O Shoot, we believe the best photographs don't feel staged. They feel like you — the laugh you didn't plan, the hand you reached for, the tear you tried to hide.

Our visual language blends candid storytelling with elegant composition and cinematic colour, creating photographs and films that stay meaningful long after the celebration ends.

Discover our journal →
500+Stories Captured
5+Years of Experience
50+Locations
Elegant Bengali wedding portrait by Click O Shoot
Couple wedding moment photographed by Click O Shoot
stories
through
love
} function Portraits(){const[start,setStart]=useState(0);const visible=useMemo(()=>Array.from({length:4},(_,k)=>portraits[(start+k)%portraits.length]),[start]);return

THE PORTRAITS

Frames that feel alive.

{visible.map((src,i)=>
Wedding portrait photography in Kolkata by Click O Shoot
0{i+1}
)}
View complete portfolio →
} function Services({onEnquire}){return

WHAT WE CREATE

For every special moment.

From your first look to the last dance, we document the moments that make your story yours.

{services.map((name,i)=>
{`${name}

{name}

{['Candid, traditional and editorial coverage crafted around every emotion.','Beautiful locations, natural chemistry and photographs that feel like you.','Emotion-led wedding films with music, movement and a cinematic finish.','Elegant portraits for couples, families, creators and milestones.','Intimate engagement coverage with a refined, story-first visual style.','Birthdays, anniversaries, receptions and private celebrations.'][i]}

)}
} function Films({onEnquire}){const vids=[['Wedding Story',IMG('1492684223066-81342ee5ff30'),'04:18'],['Pre-Wedding Film',IMG('1511285560929-80b456fea0bc'),'03:26'],['Cinematic Highlights',IMG('1504150558240-0b4fd8946624'),'05:02']];const[selected,setSelected]=useState(0);return

CINEMATIC FILMS

Relive your moments
in motion.

Beautifully crafted wedding films that bring your celebration back to life — frame by frame, feeling by feeling.

A Film by Click O Shoot
{vids.map((v,i)=>)}
} function Packages({onEnquire}){return

COLLECTIONS

Choose how you want
your story told.

Flexible coverage designed around intimate ceremonies, full wedding days and destination celebrations.

{[['Essential','Wedding Photography','Starting from ₹25,000','Perfect for intimate celebrations.'],['Signature','Photo + Cinematic Film','Starting from ₹45,000','Our most-loved complete storytelling collection.'],['Heirloom','Full Wedding Experience','Custom quotation','For multi-day and destination celebrations.']].map((p,i)=>
{i===1?'MOST POPULAR':'COLLECTION 0'+(i+1)}

{p[0]}

{p[1]}{p[2]}

{p[3]}

)}
} function JournalPreview(){const[fallback]=useState([{title:'How to Choose Your Wedding Photographer',excerpt:'The little things that make a big difference when choosing someone to document your day.',category:'WEDDING GUIDE',image:IMG('1519225421980-715cb0215aed'),slug:'how-to-choose-your-wedding-photographer'},{title:'A Guide to Beautiful Pre-Wedding Photos',excerpt:'Simple ways to make your pre-wedding session feel relaxed, natural and completely yours.',category:'PRE-WEDDING',image:IMG('1511285560929-80b456fea0bc'),slug:'guide-to-beautiful-pre-wedding-photos'},{title:'Why Your Wedding Film Matters',excerpt:'Photos freeze a frame. Films bring the voices, movement and atmosphere back.',category:'CINEMATIC',image:IMG('1492684223066-81342ee5ff30'),slug:'why-your-wedding-film-matters'}]);const[posts,setPosts]=useState(fallback);useEffect(()=>{fetch('/api.php?action=posts&limit=3').then(r=>r.json()).then(d=>{if(d.posts?.length)setPosts(d.posts)}).catch(()=>{})},[]);return

THE JOURNAL

Stories, tips & inspiration.

Visit journal →
{posts.map(p=>)}
} function Testimonials(){return

KIND WORDS

What our couples say.

{[['Ankita & Rahul','Kolkata','“They made us forget the camera was even there. Every photograph feels like us.”'],['Taniya & Abhishek','Howrah','“Our pre-wedding shoot became a story we will keep coming back to.”'],['Priya & Sayan','Durgapur','“A talented and incredibly kind team. We felt comfortable from the first meeting.”']].map(x=>

{x[2]}

{x[0]}{x[1]} · ★★★★★
)}
} function Contact({onEnquire}){return

LET'S CREATE

Your story.
Beautifully told.

Tell us about your celebration and we'll get back to you with availability, ideas and a tailored quote.

☎ +91 98765 43210✉ hello@clickoshoot.in⌖ Kolkata, West Bengal

Ready to make it memorable?

Dates fill quickly. Tell us what you're planning and let's see if we're the right fit.

} function Footer(){return } function PortfolioPage({onEnquire}){const[selected,setSelected]=useState(null);return <>

THE COMPLETE PORTFOLIO

Stories in every frame.

Explore weddings, portraits, pre-wedding stories and the quiet in-between moments captured by Click O Shoot.

{portfolio.map((src,i)=>)}