Help
RSS
API
Feed
Maltego
Contact
Domain > www.craftin.in
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-03-06
149.100.143.249
(
ClassC
)
2026-01-28
172.67.147.177
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Wed, 28 Jan 2026 16:38:31 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveServer: cloudflarecf-cache-status: DYNAMICReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sxY24EJe3T4hrRZWN4TNQ41f2Nc8N21jo4U790qGr9FU2OAj05BptJRQoYUfcl%2BtSaa%2BH2NK%2F7H3Bv12FyujmSEJDO%2FeDhEExM5jHiQ%3D%3D}}Last-Modified: Sat, 17 Jan 2026 12:17:00 GMTVary: Accept-EncodingNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}CF-RAY: 9c51ebaadc522d7c-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html langen> head> meta charsetUTF-8 /> meta nameviewport contentwidthdevice-width, initial-scale1.0 /> title>CraftInnove Services (I) Pvt. Ltd. | CISPL/title> !-- Tailwind CSS CDN --> script srchttps://cdn.tailwindcss.com>/script> !-- Alpine.js --> script srchttps://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js defer >/script> !-- Meta & Favicons --> meta namedescription contentCraftInnove Services (I) Pvt. Ltd. offers HVAC, Solar, Electrical, Fire Alarm, CCTV, and Painting services in Thane & Mumbai. /> link relicon hrefimages/favicon.png /> link hrefhttps://fonts.googleapis.com/css2?familyInter:wght@400;500;600;700&displayswap relstylesheet /> link relstylesheet hrefhttps://unpkg.com/aos@2.3.1/dist/aos.css/> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css /> style> html, body { overflow-x: hidden; } body { font-family: Inter, sans-serif; } html { scroll-behavior: smooth; } .logo-item { flex: 0 0 20%; max-width: 20%; padding: 0 2rem; height: 6rem; object-fit: contain; /*filter: grayscale(100%);*/ transition: filter 0.3s ease; } .logo-item:hover { filter: grayscale(0%); } /* Continuous motion */ @keyframes marqueeMove { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } .marquee { width: 100%; animation: marqueeMove 40s linear infinite; } .marquee:hover { animation-play-state: paused; /* optional */ } .nav-link { position: relative; padding-bottom: 4px; transition: color 0.3s ease; } .nav-link::after { content: ; position: absolute; left: 0; bottom: 0; width: 0; height: 2px; background-color: #fbbf24; /* amber-400 */ transition: width 0.3s ease; } .nav-link:hover::after { width: 100%; } .nav-link:hover { color: #fbbf24; } @media (max-width: 640px) { .logo-item { max-width: 100%; } .marquee { animation: marqueeMove 22s linear infinite; } } @media (max-width: 400px) { .logo-item { max-width: 100%; } .marquee { animation: marqueeMove 22s linear infinite; } } #marquee-track { will-change: transform; transition: transform 0s linear; } #marquee-track img { height: 90px; width: auto; object-fit: contain; } @media (max-width: 640px) { #marquee-track img { height: 110px; } } @keyframes shine { 0% { background-position: -200px; } 100% { background-position: 200px; } } .animate-shine { background-size: 400px 100%; animation: shine 3s linear infinite; } .thumb.active-thumb { /*outline: 3px solid #ef4444 !important;*/ /* red-500 */ outline-offset: 2px; border-color: #ef4444 !important; border-width: 2px; } #parallax-bg { position: absolute; width: 100%; height: 100%; background-size: cover; background-position: center; will-change: transform; z-index: 0; } .parallax-overlay { position: absolute; inset: 0; z-index: 1; } .parallax-content { position: relative; z-index: 2; } /style> !-- Swiper CSS --> link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css/> style> /* Active thumbnail red border */ .thumb-active > div { border: 3px solid #ff4444 !important; box-shadow: 0 0 12px rgba(255, 0, 0, 0.5); } .myMainSwiper .swiper-slide { height: 420px !important; } .myThumbsSwiper .swiper-slide > div { width: 6rem; height: 6rem; } /style> !-- Timeline CSS --> style> :root{ --amber:#fbbf24; --neon:#0fff84; --neon-strong:#7cffb6; --bg:#071122; } #timelineSection { margin: 0; background: radial-gradient(900px 400px at 8% 10%, rgba(123,63,0,0.04), transparent 6%), var(--bg); color: #e6eef8; font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial; } /* layout constants */ :root { --item-gap: 140px; --card-h: 320px; --svg-w:160; --svg-x:50; } /* decorative blobs */ .blob{ position:absolute; pointer-events:none; mix-blend-mode:screen; opacity:0.12; filter: blur(42px); } .blob-1{ background:linear-gradient(135deg,#f59e0b,#fbbf24); width:460px; height:420px; left:-6%; top:-6%; border-radius:40%; } .blob-2{ background:linear-gradient(135deg,#06b6d4,#7c3aed); width:520px; height:520px; right:-6%; bottom:6%; border-radius:48%; opacity:0.08; } /* svg wrapper */ .svg-wrap{ position:absolute; left:50%; transform:translateX(-50%); pointer-events:none; z-index:1; overflow:visible; } /* base faint track */ .base-track { stroke: rgba(255,255,255,0.04); stroke-width:4; fill:none; stroke-linecap:round; } /* neon segment style */ .seg-neon { stroke: var(--neon); stroke-width:4; fill:none; stroke-linecap:round; stroke-linejoin:round; filter: drop-shadow(0 0 12px rgba(15,255,132,0.35)); } /* stroke-dash animation for neon segments */ .stroke-dash { stroke-dasharray: 1200; stroke-dashoffset: 1200; animation: drawSeg 1.2s ease forwards; } @keyframes drawSeg { to { stroke-dashoffset: 0 } } /* pulse-dot style (circle traveling per segment) */ .pulse-dot { filter: drop-shadow(0 0 10px rgba(124,255,182,0.9)); } /* orb travel keyframes fallback (offset-distance animation) */ @keyframes travel { to { offset-distance: 100%; } } /* year badge */ .year-badge { width:70px; height:70px; border-radius:999px; display:grid; place-items:center; background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01)); border:1px solid rgba(255,255,255,0.04); position:relative; } .year-badge .num { color:var(--bg); background:linear-gradient(180deg,var(--amber), #ffc857); padding:6px 10px; border-radius:999px; font-weight:700; } .badge-ripple { position:absolute; inset:0; border-radius:999px; box-shadow:0 0 0 0 rgba(251,191,36,0.12); animation:ripple 2.6s infinite; opacity:0.95; } @keyframes ripple { 0%{box-shadow:0 0 0 0 rgba(251,191,36,0.18)} 70%{box-shadow:0 0 40px 22px rgba(251,191,36,0.02)} 100%{box-shadow:0 0 0 0 rgba(251,191,36,0)} } /* tilt */ .tilt-card { transform-style:preserve-3d; perspective:1200px; will-change:transform; } .tilt-inner { transition: transform .18s cubic-bezier(.2,.8,.2,1); transform-origin:center; backface-visibility:hidden; } .glass { background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); border:1px solid rgba(255,255,255,0.04); } .card-img { width:100%; height:200px; border-radius:10px; object-fit:cover; background-size:cover; background-position:center; } .lit { box-shadow:0 18px 60px rgba(124,252,128,0.06), 0 0 40px rgba(124,252,128,0.06) !important; border:1px solid rgba(124,252,128,0.08) !important; } /* responsive */ @media (max-width:768px){ :root { --item-gap: 90px; --card-h: 220px; --svg-w: 120; --svg-x:40; } .year-badge { width:56px; height:56px; } .card-img { height:140px; } #svgContainer svg { opacity: 0.25; /* or 0.3, subtle */ filter: blur(2px); } } /style> /head> body classbg-white text-gray-800> !-- NAVBAR --> header x-datanavbarHandler x-initinit() classfixed top-0 left-0 w-full z-50 bg-gray-900 shadow-md transition-all duration-300 > div classcontainer mx-auto flex items-center justify-between px-6 py-4> !-- Logo --> a hrefindex.html classflex items-center space-x-2> img srcimages/logobg.png altCraftInnove Services logo classh-14 w-auto /> span classfont-semibold text-amber-400 text-lg>CISPL/span> /a> !-- Desktop Menu --> nav classhidden md:flex space-x-2> template x-forlink in links :keylink.id> a :hreflink.href classpx-4 py-2 rounded-md font-medium text-sm transition-all duration-300 :classlink.active ? bg-amber-400 text-gray-900 font-semibold : text-gray-300 hover:bg-gray-800 hover:text-amber-400 x-textlink.label >/a> /template> /nav> !-- Mobile Menu Button --> button @clickopen !open classmd:hidden text-gray-300 focus:outline-none aria-labelToggle menu > i :classopen ? fas fa-times text-2xl : fas fa-bars text-2xl>/i> /button> /div> !-- Mobile Dropdown Menu --> nav x-showopen x-transition:entertransition ease-out duration-300 x-transition:enter-startopacity-0 -translate-y-4 x-transition:enter-endopacity-100 translate-y-0 x-transition:leavetransition ease-in duration-200 x-transition:leave-startopacity-100 translate-y-0 x-transition:leave-endopacity-0 -translate-y-4 classmd:hidden bg-gray-800 border-t border-gray-700 > div classflex flex-col items-center space-y-3 py-6> template x-forlink in links :keylink.id> a :hreflink.href @clickopen false classblock w-40 text-center px-4 py-2 rounded-md font-medium transition-all duration-300 :classlink.active ? bg-amber-400 text-gray-900 font-semibold : text-gray-300 hover:bg-gray-700 hover:text-amber-400 x-textlink.label >/a> /template> /div> /nav> !-- Animated golden shimmer --> div classabsolute bottom-0 left-0 w-full h-3px bg-gradient-to-r from-amber-400 via-yellow-300 to-amber-500 animate-shine>/div> /header> !-- Add top padding to offset fixed navbar --> div classpt-20>/div> !-- HERO SECTION --> section idhome classrelative bg-gray-900 pt-20> !-- Background image --> div classabsolute inset-0> img srcimages/hero-bg.png altTechnician inspecting rooftop solar and HVAC equipment classw-full h-full object-cover opacity-90 /> div classabsolute inset-0 bg-gradient-to-r from-black/60 to-black/30>/div> /div> div classrelative container mx-auto px-6 py-20 lg:py-28> div classgrid grid-cols-1 lg:grid-cols-2 gap-10 items-center> div classtext-white max-w-xl> h1 classtext-3xl sm:text-4xl lg:text-5xl font-semibold leading-tight >Trusted Electrical, HVAC, Solar & CCTV Surveillance Solutions — span classtext-amber-400>Since 2019/span> /h1> p classmt-4 text-gray-200> Complete installation, AMC and maintenance services for commercial & residential projects across Thane & Mumbai. /p> div classmt-6 flex flex-col sm:flex-row gap-3> a href#contact classinline-block px-6 py-3 bg-amber-400 text-gray-900 font-medium rounded-lg shadow hover:shadow-lg transition > Request a Quote /a> a hreftel:+919136525729 classinline-block px-6 py-3 border border-white/20 text-white rounded-lg hover:bg-white/5 transition > Call Now: 9136525729 /a> /div> p classmt-4 text-sm text-gray-300> Rapid response • Certified technicians • Project & AMC expertise /p> div classmt-6 flex items-center gap-4 text-gray-300 text-sm > span>Trusted by:/span> div classflex gap-3 items-center> img srcimages/client-ibm.png altIBM classh-12 sm:h-24 /> img srcimages/client-saicity.png altSai City Dombivli classh-12 sm:h-24 /> img srcimages/client-karnika.png altKarnika 2.0 Diva East classh-12 sm:h-24 /> /div> /div> /div> div classspace-y-4> div classbg-white/5 rounded-2xl p-6 backdrop-blur-md shadow-md> h3 classtext-lg text-white font-semibold mb-6 relative inline-block>Quick Services span classabsolute left-0 -bottom-2 w-16 h-1 bg-amber-400 rounded-full>/span> /h3> ul classgrid grid-cols-2 sm:grid-cols-2 gap-4 text-gray-200> li classflex flex-col items-center justify-center text-center p-4 bg-white/5 rounded-xl hover:bg-white/10 hover:-translate-y-1 transform transition-all duration-300> img srcicons/hvac.svg altHVAC Service & AMC classh-12 w-12 mb-3 /> span classtext-sm font-medium leading-snug>HVAC Service & AMC/span> /li> li classflex flex-col items-center justify-center text-center p-4 bg-white/5 rounded-xl hover:bg-white/10 hover:-translate-y-1 transform transition-all duration-300> img srcicons/solar.svg altSolar Install & AMC classh-12 w-12 mb-3 /> span classtext-sm font-medium leading-snug>Solar Install & AMC/span> /li> li classflex flex-col items-center justify-center text-center p-4 bg-white/5 rounded-xl hover:bg-white/10 hover:-translate-y-1 transform transition-all duration-300> img srcicons/electrical.svg altElectrical Maintenance classh-12 w-12 mb-3 /> span classtext-sm font-medium leading-snug>Electrical Maintenance/span> /li> li classflex flex-col items-center justify-center text-center p-4 bg-white/5 rounded-xl hover:bg-white/10 hover:-translate-y-1 transform transition-all duration-300> img srcicons/fire.svg altFire Alarm & Safety classh-12 w-12 mb-3 /> span classtext-sm font-medium leading-snug>Fire Alarm & Safety/span> /li> /ul> /div> div classbg-white/10 rounded-2xl p-4 text-gray-300> p classtext-sm> Need immediate support? Call a hreftel:+919136525729 classtext-amber-400 underline >9136525729/a > or email a href/cdn-cgi/l/email-protection#4d3e2c21283e0d2e3f2c2b392423632423 classtext-amber-400 underline>span class__cf_email__ data-cfemail86f5e7eae3f5c6e5f4e7e0f2efe8a8efe8>email protected/span>/a > /p> /div> /div> /div> /div> /section> !-- OUR SERVICES SECTION --> section idservices classpy-20 bg-gray-200 pt-24> div classcontainer mx-auto px-6 text-center> h2 classtext-3xl font-bold text-gray-800 mb-4 relative inline-block data-aosfade-up data-aos-delay0> Our Core Services span classabsolute left-0 -bottom-2 w-16 h-1 bg-amber-400 rounded-full>/span> /h2> p classtext-gray-600 max-w-2xl mx-auto mb-12 data-aosfade-up data-aos-delay100> From HVAC systems to solar energy, electrical maintenance, and safety solutions — CISPL provides expert installation and AMC services for every need. /p> div classgrid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8> div data-aosfade-up data-aos-delay200 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/electrical.svg altElectrical Maintenance classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>Electrical Services & AMC/h3> p classtext-gray-600 text-sm> All-inclusive electrical installation, maintenance, and annual contracts for total system reliability. /p> /div> div data-aosfade-up data-aos-delay0 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/hvac.svg altHVAC Services classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>HVAC Services & Maintenance/h3> p classtext-gray-600 text-sm> Complete HVAC installation, repair, and AMC by certified experts for commercial and residential spaces. /p> /div> div data-aosfade-up data-aos-delay100 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/solar.svg altSolar Installation classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>Solar Installation & AMC/h3> p classtext-gray-600 text-sm> Sustainable solar energy solutions with reliable installation, service, and annual maintenance contracts. /p> /div> div data-aosfade-up data-aos-delay400 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/cctv.svg altCCTV Surveillance classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>CCTV Surveillance Systems/h3> p classtext-gray-600 text-sm> Advanced CCTV setup, monitoring, and support — safeguard your home or business with smart surveillance. /p> /div> div data-aosfade-up data-aos-delay300 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/fire.svg altFire Alarm Systems classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>Fire Alarm Systems/h3> p classtext-gray-600 text-sm> Reliable fire alarm installation and servicing solutions to ensure safety and compliance. /p> /div> div data-aosfade-up data-aos-delay500 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/paint.svg altPainting Services classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>Professional Painting Work/h3> p classtext-gray-600 text-sm> Interior & exterior painting with precision and quality finishing for residential and commercial projects. /p> /div> /div> /div> /section> !-- ABOUT US SECTION --> section idabout classpy-20 bg-white pt-24> div classcontainer mx-auto px-6 grid grid-cols-1 lg:grid-cols-2 gap-12 items-center> div data-aosfade-right data-aos-delay0> h2 classtext-3xl font-bold text-gray-800 mb-4 relative inline-block>About CraftInnove Services (I) Pvt. Ltd. span classabsolute left-0 -bottom-2 w-16 h-1 bg-amber-400 rounded-full>/span> /h2> p classtext-gray-600 mb-6 leading-relaxed> Established in span classfont-semibold text-gray-800>2019/span> and based in Thane, strong>CraftInnove Services (I) Pvt. Ltd. (CISPL)/strong> is a trusted provider of strong>Electrical, HVAC, Solar, Fire Alarm, CCTV, and Painting solutions/strong>. Our mission is to deliver reliable, energy-efficient, and cost-effective services with professionalism and precision. /p> p classtext-gray-600 mb-6 leading-relaxed> With a team of qualified engineers and skilled technicians, we take pride in executing projects of every scale — from residential buildings to large commercial facilities. We focus on safety, long-term performance, and complete customer satisfaction. /p> ul classtext-gray-700 mb-8 space-y-2> li classflex items-start gap-2> span classtext-amber-500 font-bold text-lg>•/span> span>Expert service in HVAC, Solar, and Electrical installations/span> /li> li classflex items-start gap-2> span classtext-amber-500 font-bold text-lg>•/span> span>Reliable AMC & maintenance contracts ensuring system longevity/span> /li> li classflex items-start gap-2> span classtext-amber-500 font-bold text-lg>•/span> span>Client-centric approach backed by professional integrity/span> /li> /ul> a href#contact classinline-block px-6 py-3 bg-amber-400 text-gray-900 font-semibold rounded-lg shadow hover:shadow-md transition> Learn More /a> /div> div classmax-w-6xl mx-auto p-6> div classgrid md:grid-cols-130px_1fr gap-6 items-start> !-- Thumbnails --> div classswiper myThumbsSwiper md:h-420px h-auto w-full md:w-auto> div classswiper-wrapper> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about.jpg altAbout classw-24 h-24 object-cover/> /div> /div> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about2.jpg altAbout 2 classw-24 h-24 object-cover/> /div> /div> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about3.jpg altAbout 3 classw-24 h-24 object-cover/> /div> /div> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about4.jpg altAbout 4 classw-24 h-24 object-cover/> /div> /div> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about5.jpg altAbout 5 classw-24 h-24 object-cover/> /div> /div> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about6.jpg altAbout 6 classw-24 h-24 object-cover/> /div> /div> /div> /div> !-- Main Slider --> div classswiper myMainSwiper rounded-lg overflow-hidden shadow-lg w-full max-w-900px mx-auto> div classswiper-wrapper> div classswiper-slide flex items-center justify-center bg-gray-100> img srcimages/about.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> div classswiper-slide flex items-center justify-center bg-gray-200> img srcimages/about2.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> div classswiper-slide flex items-center justify-center bg-gray-300> img srcimages/about3.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> div classswiper-slide flex items-center justify-center bg-gray-100> img srcimages/about4.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> div classswiper-slide flex items-center justify-center bg-gray-300> img srcimages/about5.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> div classswiper-slide flex items-center justify-center bg-gray-100> img srcimages/about6.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> /div> !-- Navigation --> div classswiper-button-next>/div> div classswiper-button-prev>/div> /div> /div> /div> /div> /section> !-- PARALLAX SECTION --> section classrelative overflow-hidden h-150vh flex items-center justify-center> div idparallax-bg stylebackground-image: url(images/solar-panel.jpg);>/div> div classparallax-overlay bg-gray-700/70>/div> div classrelative z-20 text-center text-white x-datacounterSection() x-initinit()> div classparallax-content text-center px-6 max-w-3xl> h2 classtext-4xl md:text-6xl font-bold text-white mb-4 drop-shadow-lg> Crafting Excellence Throughspan classtext-amber-400> Numbers/span> /h2> div classw-28 h-1 bg-gradient-to-r from-amber-400 via-yellow-300 to-amber-500 mx-auto mt-6 mb-6 rounded-full>/div> /div> div classgrid grid-cols-3 gap-10 text-center font-bold max-w-3xl mx-auto> div data-aosfade-up data-aos-delay50> h3 classtext-4xl text-amber-400 mb-2 x-textdisplay(experience,+)>0+/h3> p classtext-sm uppercase tracking-wide text-gray-200>Years Experience/p> /div> div data-aosfade-up data-aos-delay100> h3 classtext-4xl text-amber-400 mb-2 x-textdisplay(compliance,%)>0%/h3> p classtext-sm uppercase tracking-wide text-gray-200>Compliance/p> /div> div data-aosfade-up data-aos-delay150> h3 classtext-4xl text-amber-400 mb-2 x-textdisplay(projects,+)>0+/h3> p classtext-sm uppercase tracking-wide text-gray-200>Projects Completed/p> /div> /div> /div> /section> !-- STATS SECTION (Count-Up + Icons + Glow) --> section classbg-gray-900 py-20> div classcontainer mx-auto px-6> div classtext-center mb-12 data-aosfade-up> h2 classtext-3xl md:text-4xl font-bold text-white> Our span classtext-amber-400>Achievements/span> /h2> p classtext-gray-300 mt-2> A quick look at our journey of excellence and trust. /p> /div> !-- Stats Grid --> div classgrid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-10> !-- Stat 1 --> div classtext-center data-aoszoom-in data-aos-delay100> div classbg-gray-800 border border-gray-700 p-8 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> i classfas fa-user-tie text-amber-400 text-4xl mb-4>/i> h3 classtext-4xl font-bold text-white count data-count6>0/h3> p classtext-gray-300 mt-2 text-sm>Years of Expertise/p> /div> /div> !-- Stat 2 --> div classtext-center data-aoszoom-in data-aos-delay200> div classbg-gray-800 border border-gray-700 p-8 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> i classfas fa-project-diagram text-amber-400 text-4xl mb-4>/i> h3 classtext-4xl font-bold text-white count data-count150>0/h3> p classtext-gray-300 mt-2 text-sm>Projects Completed/p> /div> /div> !-- Stat 3 --> div classtext-center data-aoszoom-in data-aos-delay300> div classbg-gray-800 border border-gray-700 p-8 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> i classfas fa-users text-amber-400 text-4xl mb-4>/i> h3 classtext-4xl font-bold text-white count data-count100>0/h3> p classtext-gray-300 mt-2 text-sm>Clients Served/p> /div> /div> !-- Stat 4 --> div classtext-center data-aoszoom-in data-aos-delay400> div classbg-gray-800 border border-gray-700 p-8 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> i classfas fa-award text-amber-400 text-4xl mb-4>/i> h3 classtext-4xl font-bold text-white count data-count100>0/h3> p classtext-gray-300 mt-2 text-sm>Compliance Score/p> /div> /div> /div> /div> /section> !-- OUR TIMELINE SECTION --> section idtimelineSection> div classrelative min-h-screen> div classblob blob-1>/div> div classblob blob-2>/div> main classcontainer mx-auto px-6 py-12 relative z-10> header classtext-center mb-8> h1 classtext-4xl md:text-5xl font-extrabold>Our span stylecolor:var(--amber)>Journey/span>/h1> p classtext-gray-300 mt-2 max-w-2xl mx-auto>A story of growth, innovation, and excellence shaping CraftInnove’s legacy./p> /header> !-- sticky year nav --> div classsticky top-6 z-40 mb-8 flex justify-center> div classbg-gray-800/50 backdrop-blur-md px-4 py-2 rounded-full border border-gray-700 shadow> button onclickscrollToYear(y2019) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2019/button> button onclickscrollToYear(y2020) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2020/button> button onclickscrollToYear(y2021) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2021/button> button onclickscrollToYear(y2022) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2022/button> button onclickscrollToYear(y2023) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2023/button> button onclickscrollToYear(y2024) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2024/button> /div> /div> section classrelative> !-- svg container --> div idsvgContainer classsvg-wrap aria-hiddentrue>/div> !-- bottom fade --> div classpath-fade styleposition:absolute; left:50%; transform:translateX(-50%); width:160px; height:260px; bottom:-40px; background:linear-gradient(180deg, transparent 30%, rgba(7,17,34,0.95) 85%, rgba(7,17,34,1) 100%); pointer-events:none; z-index:12;>/div> !-- timeline list --> div idtimeline classtimeline-list mx-auto max-w-6xl relative z-20> !-- 2019 --> article idy2019 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-right> div classmd:w-1/2 md:pr-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#071233,#002b36);>/div> div classabsolute -top-3 -left-3 year-badge> div classnum>2019/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2019 — The Beginning/h3> p classmt-2 text-gray-300>Company founded and initial projects initiated with safety-first approach./p> /div> /div> div classmd:w-1/2>/div> /article> !-- 2020 --> article idy2020 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-left> div classmd:w-1/2>/div> div classmd:w-1/2 md:pl-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#041a3a,#004057);>/div> div classabsolute -top-3 -right-3 year-badge> div classnum>2020/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2020 — Licensed & Compliant/h3> p classmt-2 text-gray-300>Received Government license and strengthened compliance processes./p> /div> /div> /article> !-- 2021 --> article idy2021 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-right> div classmd:w-1/2 md:pr-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#041014,#013440);>/div> div classabsolute -top-3 -left-3 year-badge> div classnum>2021/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2021 — Service Expansion/h3> p classmt-2 text-gray-300>Expanded into IT parks and commercial projects with top-tier execution./p> /div> /div> div classmd:w-1/2>/div> /article> !-- 2022 --> article idy2022 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-left> div classmd:w-1/2>/div> div classmd:w-1/2 md:pl-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#09121a,#004d3a);>/div> div classabsolute -top-3 -right-3 year-badge> div classnum>2022/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2022 — Advanced Services/h3> p classmt-2 text-gray-300>Launched thermography, audits and solar solutions./p> /div> /div> /article> !-- 2023 --> article idy2023 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-right> div classmd:w-1/2 md:pr-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#041020,#012030);>/div> div classabsolute -top-3 -left-3 year-badge> div classnum>2023/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2023 — Prestigious Clients/h3> p classmt-2 text-gray-300>Partnered with IBM, Sai City and Karnika projects — delivering trusted results./p> /div> /div> div classmd:w-1/2>/div> /article> !-- 2024 --> article idy2024 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-left> div classmd:w-1/2>/div> div classmd:w-1/2 md:pl-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#071233,#003b2f);>/div> div classabsolute -top-3 -right-3 year-badge> div classnum>2024/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2024 — 100+ Installations/h3> p classmt-2 text-gray-300>Completed 100+ installations and expanded into new regions./p> /div> /div> /article> /div> !-- /timeline-list --> /section> /main> /div> /section> !-- OUR CLIENTS SECTION --> section idclients classpy-20 bg-gray-200 overflow-hidden pt-24> div classtext-center mb-12> h2 classtext-3xl font-bold text-gray-800 mb-4 relative inline-block data-aosfade-up> Our Valued Clients span classabsolute left-0 -bottom-2 w-16 h-1 bg-amber-400 rounded-full>/span> /h2> p classtext-gray-600 max-w-2xl mx-auto data-aosfade-up data-aos-delay100> Trusted by organizations and housing projects across Maharashtra. /p> /div> !-- marquee wrapper --> div classrelative w-full overflow-hidden data-aosfade-up data-aos-delay200> div classflex items-center idmarquee-track> !-- first set --> img srcimages/client-ibm.svg altIBM classlogo-item /> img srcimages/client-saicity.svg altSai City classlogo-item /> img srcimages/client-karnika.svg altKarnika classlogo-item /> img srcimages/client-piramal.png altPiramal classlogo-item /> img srcimages/client-peninsula.png altPeninsula classlogo-item styleheight:140px; /> img srcimages/client-birla.png altBirla classlogo-item /> img srcimages/client-flextronics.png altFlextronics classlogo-item /> img srcimages/client-nice.png altNice classlogo-item /> !-- duplicate set --> img srcimages/client-ibm.svg altIBM classlogo-item /> img srcimages/client-saicity.svg altSai City classlogo-item /> img srcimages/client-karnika.svg altKarnika classlogo-item /> img srcimages/client-piramal.png altPiramal classlogo-item /> img srcimages/client-peninsula.png altPeninsula classlogo-item styleheight:140px; /> img srcimages/client-birla.png altBirla classlogo-item /> img srcimages/client-flextronics.png altFlextronics classlogo-item /> img srcimages/client-nice.png altNice classlogo-item /> img srcimages/client-ibm.svg altIBM classlogo-item /> /div> /div> /section> !-- CONTACT SECTION --> section idcontact classpy-20 pt-24 bg-stone-50 relative> div classcontainer mx-auto px-6 grid grid-cols-1 lg:grid-cols-2 gap-12 items-stretch> !-- Left: Contact Info --> div classflex flex-col justify-between data-aosfade-right> div> h2 classtext-3xl font-bold text-gray-800 mb-4 relative inline-block> Get in Touch span classabsolute left-0 -bottom-2 w-16 h-1 bg-amber-400 rounded-full>/span> /h2> p classtext-gray-600 mb-6 leading-relaxed> Have a project in mind or need expert engineering support? Reach out to us — our team will be happy to assist you. /p> ul classtext-gray-700 mb-8 space-y-4> li classflex items-start gap-3> i classfa-solid fa-location-dot text-amber-500 text-lg mt-1>/i> span> Near Golden Dyes, Co Agra Road,br> Muktai Nagar, Majiwada, Thane West /span> /li> li classflex items-center gap-3> i classfa-solid fa-envelope text-amber-500 text-lg>/i> a href/cdn-cgi/l/email-protection#1063717c7563507362717664797e3e797e classhover:text-amber-500 transition> span class__cf_email__ data-cfemail89fae8e5ecfac9eafbe8effde0e7a7e0e7>email protected/span> /a> /li> li classflex items-center gap-3> i classfa-solid fa-phone text-amber-500 text-lg>/i> a hreftel:+919619405763 classhover:text-amber-500 transition>+91 96194 05763/a>, a hreftel:+919503144302 classhover:text-amber-500 transition>+91 95031 44302/a> /li> /ul> /div> !-- Map --> div classrounded-xl overflow-hidden shadow-sm aos-init aos-animate data-aosfade-up data-aos-delay100> iframe srchttps://www.google.com/maps?qNear-Golden-Dyes,+Co-Agra+Road,+Muktai+Nagar,+Majiwada,+Thane+West&outputembed classw-full h-60 border-0 loadinglazy> /iframe> /div> /div> !-- Right: CTA --> div classh-full flex items-center justify-center bg-amber-400 rounded-2xl shadow-lg p-10 data-aosfade-left> div classtext-center max-w-md> i classfa-solid fa-clipboard-list text-gray-900 text-4xl mb-5>/i> h3 classtext-3xl font-bold text-gray-900 mb-4> Have a Project in Mind? /h3> p classtext-gray-800 mb-8 leading-relaxed> Let’s discuss your requirements and deliver a solution that is efficient, compliant, and future-ready. /p> a hrefcontact.html classinline-block bg-gray-900 text-white px-10 py-4 rounded-full font-semibold text-lg hover:bg-gray-800 transition shadow-md > Contact Our Team /a> p classtext-sm text-gray-800 mt-6> Response within strong>24 hours/strong> /p> /div> /div> /div> /section> !-- FOOTER SECTION --> footer classbg-gray-900 text-gray-300 pt-16 pb-10> div classcontainer mx-auto px-6 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-10 border-t border-gray-700/50 pt-10> !-- Logo + About --> div classspace-y-4 data-aosfade-up data-aos-delay0> h3 classtext-xl font-semibold text-white relative inline-block>CraftInnove Services (I) Pvt. Ltd. span classabsolute left-0 -bottom-2 w-16 h-1 bg-blue-400 rounded-full>/span> /h3> h5 classtext-md font-semibold text-amber-400>SINCE 2019/h5> p classtext-sm leading-relaxed text-gray-400> Delivering excellence in Electrical, HVAC, Solar, Fire & Facility Management services across Maharashtra since 2019. /p> div classflex space-x-4 pt-2> a href# classtext-gray-400 hover:text-amber-400 transition>i classfab fa-facebook-f text-lg>/i>/a> a hrefhttps://www.linkedin.com/in/craftinnove-services-b9b402395 classtext-gray-400 hover:text-amber-400 transition target_blank>i classfab fa-linkedin-in text-lg>/i>/a> a href# classtext-gray-400 hover:text-amber-400 transition>i classfab fa-instagram text-lg>/i>/a> /div> /div> !-- Quick Links --> div classspace-y-4 border-l border-dotted border-gray-700 pl-8 data-aosfade-up data-aos-delay100> h4 classtext-lg font-semibold text-white>Quick Links/h4> ul classspace-y-3 text-sm text-gray-400> li>a hrefindex.html classhover:text-amber-400 transition>Home/a>/li> li>a hrefabout.html classhover:text-amber-400 transition>About Us/a>/li> li>a hrefservices.html classhover:text-amber-400 transition>Our Services/a>/li> li>a hrefclients.html classhover:text-amber-400 transition>Our Clients/a>/li> li>a hrefcontact.html classhover:text-amber-400 transition>Contact Us/a>/li> li>a hrefcareer.html classhover:text-amber-400 transition>Careers/a>/li> /ul> /div> !-- Contact Info --> div classspace-y-4 border-l border-dotted border-gray-700 pl-8 data-aosfade-up data-aos-delay200> h4 classtext-lg font-semibold text-white>Contact/h4> ul classspace-y-3 text-sm text-gray-400> li classflex items-start gap-3> i classfa-solid fa-location-dot text-amber-400 mt-1>/i> span>Near Golden Dyes, Co Agra Road, br>Muktai Nagar, Majiwada, Thane West/span> /li> li classflex items-center gap-3> i classfa-solid fa-envelope text-amber-400>/i> a href/cdn-cgi/l/email-protection#c7b4a6aba2b487a4b5a6a1b3aea9e9aea9 classhover:text-amber-400 transition>span class__cf_email__ data-cfemail5625373a33251635243730223f38783f38>email protected/span>/a> /li> li classflex items-center gap-3> i classfa-solid fa-phone text-amber-400>/i> a hreftel:+919136525729 classhover:text-amber-400 transition>+91 91365 25729/a> a hreftel:+919503144302 classhover:text-amber-400 transition>+91 95031 44302/a> /li> /ul> /div> !-- Working Hours --> div classspace-y-4 border-l border-dotted border-gray-700 pl-8 data-aosfade-up data-aos-delay300> h4 classtext-lg font-semibold text-white>Working Hours/h4> ul classspace-y-2 text-sm text-gray-400> li classflex justify-between>span>Monday - Friday:/span> span>9:00 AM - 6:00 PM/span>/li> li classflex justify-between>span>Saturday:/span> span>9:00 AM - 2:00 PM/span>/li> li classflex justify-between>span>Sunday:/span> span classtext-amber-400>Closed/span>/li> /ul> div classpt-4> a href#contact classinline-block px-4 py-2 bg-amber-400 text-gray-900 font-semibold rounded-lg shadow hover:shadow-md transition>Get Quote/a> /div> /div> /div> div classtext-center mt-10 pt-6 border-t border-gray-800> p classtext-sm text-gray-500> © span idyear>/span> CraftInnove Services (I) Pvt. Ltd. — All Rights Reserved /p> /div> /footer> script data-cfasyncfalse src/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js>/script>script> // Auto-update footer year document.getElementById(year).textContent new Date().getFullYear(); /script> script srchttps://unpkg.com/aos@2.3.1/dist/aos.js>/script> script> AOS.init({ duration: 800, // speed of animation once: false, // animate only once per scroll easing: ease-in-out, // smooth motion }); /script> script> const track document.getElementById(marquee-track); let scrollSpeed window.innerWidth 640 ? 1.5 : 0.5; // faster on mobile let position 0; function animate() { position - scrollSpeed; if (Math.abs(position) > track.scrollWidth / 2) position 0; // seamless reset track.style.transform `translateX(${position}px)`; requestAnimationFrame(animate); } animate(); /script> script> document.addEventListener(alpine:init, () > { Alpine.data(navbarHandler, () > ({ open: false, links: { id: home, label: Home, href: index.html }, { id: services, label: Services, href: services.html }, { id: about, label: About, href: about.html }, { id: clients, label: Clients, href: clients.html }, { id: contact, label: Contact, href: contact.html }, { id: careers, label: Careers, href: career.html }, , init() { this.highlightCurrentPage(); }, highlightCurrentPage() { const currentPage window.location.pathname.split(/).pop() || index.html; this.links.forEach(link > { // Mark link as active if current page matches link.active link.href currentPage; }); }, })); }); /script> !-- Alpine Counter Script --> script> function counterSection() { return { experience: 0, compliance: 0, projects: 0, _animated: false, _pageLoaded: false, init() { window.addEventListener(load, () > { this._pageLoaded true; this.setupObserver(); }); }, setupObserver() { const observer new IntersectionObserver((entries, obs) > { const entry entries0; // trigger when at least 60% visible if ( this._pageLoaded && entry.isIntersecting && entry.intersectionRatio > 0.6 && !this._animated ) { this._animated true; // staggered starts setTimeout(() > this.animateValue(experience, 0, 6, 1500), 200); setTimeout(() > this.animateValue(compliance, 0, 100, 1500), 800); setTimeout(() > this.animateValue(projects, 0, 30, 1500), 1600); obs.disconnect(); } }, { threshold: 0, 0.25, 0.5, 0.6, 0.75, 1 }); observer.observe(this.$el); }, animateValue(key, start, end, duration) { const startTime performance.now(); const animate (now) > { const elapsed now - startTime; const progress Math.min(elapsed / duration, 1); const ease 1 - Math.pow(1 - progress, 3); // easeOutCubic thiskey start + (end - start) * ease; if (progress 1) requestAnimationFrame(animate); else thiskey end; }; requestAnimationFrame(animate); }, display(value, suffix ) { return Math.round(value) + suffix; } }; } /script> script srchttps://unpkg.com/preline/dist/preline.js>/script> script> document.querySelectorAll(#pagination-cispl-2 .thumb).forEach((item) > { item.addEventListener(click, function () { // remove highlight from all document.querySelectorAll(#pagination-cispl-2 .thumb) .forEach(t > t.classList.remove(active-thumb)); // highlight the clicked one this.classList.add(active-thumb); }); }); /script> !-- Swiper JS --> script srchttps://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js>/script> script> /* Thumbnail slider */ const thumbs new Swiper(.myThumbsSwiper, { spaceBetween: 10, watchSlidesProgress: true, breakpoints: { // 📱 MOBILE — horizontal row 0: { direction: horizontal, slidesPerView: 3, freeMode: true, }, // 💻 DESKTOP — vertical list 768: { direction: vertical, slidesPerView: 4, } } }); /* Main slider */ const main new Swiper(.myMainSwiper, { spaceBetween: 10, autoplay: { delay: 2500, disableOnInteraction: false }, navigation: { nextEl: .swiper-button-next, prevEl: .swiper-button-prev, }, thumbs: { swiper: thumbs }, }); function updateActiveThumb() { document .querySelectorAll(.myThumbsSwiper .swiper-slide) .forEach(slide > slide.classList.remove(thumb-active)); let active document.querySelectorAll(.myThumbsSwiper .swiper-slide)main.realIndex; if (active) active.classList.add(thumb-active); } main.on(slideChange, updateActiveThumb); thumbs.on(click, updateActiveThumb); updateActiveThumb(); /script> !-- PARALLAX SCROLL JS --> script> const bg document.getElementById(parallax-bg); window.addEventListener(scroll, () > { const scrollY window.scrollY; const sectionTop bg.parentElement.offsetTop; const distance scrollY - sectionTop; if (distance > 0 && distance window.innerHeight * 2) { const move distance * 0.20; // adjust for stronger/weaker effect bg.style.transform `translateY(${move}px)`; } }); /script> script srchttps://cdn.jsdelivr.net/npm/countup.js@2.0.7/dist/countUp.umd.js>/script> script> // Trigger count-up animation when stats enter screen function animateStats() { const elements document.querySelectorAll(.count); elements.forEach((el) > { const endValue el.getAttribute(data-count); const counter new countUp.CountUp(el, endValue, { duration: 2.5, separator: ,, }); if (!counter.error) { counter.start(); } }); } // Detect when section enters viewport let statsPlayed false; window.addEventListener(scroll, () > { const statsSection document.querySelector(.count).getBoundingClientRect(); if (!statsPlayed && statsSection.top window.innerHeight) { animateStats(); statsPlayed true; } }); /script> !-- Timeline Script --> script> /* Convert Catmull-Rom points to cubic Bézier segments */ function catmullRom2bezier(points, t 0.5) { const beziers ; for (let i 0; i points.length - 1; i++) { const p0 pointsi - 1 || pointsi; const p1 pointsi; const p2 pointsi + 1; const p3 pointsi + 2 || p2; const c1x p1.x + (p2.x - p0.x) * t / 6; const c1y p1.y + (p2.y - p0.y) * t / 6; const c2x p2.x - (p3.x - p1.x) * t / 6; const c2y p2.y - (p3.y - p1.y) * t / 6; beziers.push({ c1x, c1y, c2x, c2y, x: p2.x, y: p2.y }); } return beziers; } function buildFullPath(points) { if (!points.length) return ; let d `M ${points0.x} ${points0.y}`; const beziers catmullRom2bezier(points); beziers.forEach(b > { d + ` C ${b.c1x} ${b.c1y}, ${b.c2x} ${b.c2y}, ${b.x} ${b.y}`; }); return { d, beziers }; } function getPointsForTimeline() { const items Array.from(document.querySelectorAll(#timeline articleid^y)); // container top to compute relative y inside svg const containerTop document.getElementById(timeline).getBoundingClientRect().top + window.scrollY; const svgCenterX parseFloat(getComputedStyle(document.documentElement).getPropertyValue(--svg-x)) || 50; const horizOffset Math.min(48, svgCenterX - 10); return items.map((item, idx) > { const rect item.getBoundingClientRect(); const centerY Math.round(rect.top + window.scrollY - containerTop + rect.height / 2); const side (idx % 2 0) ? -1 : 1; // alternate const x Math.round(svgCenterX + side * horizOffset); return { x, y: centerY }; }); } function createSegmentPathString(pointA, bezierSegment) { return `M ${pointA.x} ${pointA.y} C ${bezierSegment.c1x} ${bezierSegment.c1y}, ${bezierSegment.c2x} ${bezierSegment.c2y}, ${bezierSegment.x} ${bezierSegment.y}`; } function generateSVG() { const container document.getElementById(svgContainer); container.innerHTML ; // clear prior const points getPointsForTimeline(); if (points.length 2) return; // Build full path and compute beziers const { d: fullD, beziers } buildFullPath(points); // svg sizing const lastY pointspoints.length - 1.y; const svgHeight Math.max(lastY + 420, 1600); const svgWidth parseFloat(getComputedStyle(document.documentElement).getPropertyValue(--svg-w)) || 160; // create svg element const svgNS http://www.w3.org/2000/svg; const svg document.createElementNS(svgNS, svg); svg.setAttribute(width, svgWidth); svg.setAttribute(height, svgHeight); svg.setAttribute(viewBox, `0 0 ${svgWidth} ${svgHeight}`); svg.classList.add(neon-svg); // create base faint track (full) const base document.createElementNS(svgNS, path); base.setAttribute(d, fullD); base.setAttribute(class, base-track); svg.appendChild(base); // create segmented neon paths (one per segment) const segmentsGroup document.createElementNS(svgNS, g); segmentsGroup.setAttribute(id, segments); svg.appendChild(segmentsGroup); const segmentPaths ; for (let i 0; i beziers.length; i++) { const segD createSegmentPathString(pointsi, beziersi); const segPath document.createElementNS(svgNS, path); segPath.setAttribute(d, segD); segPath.setAttribute(id, `seg${i+1}`); segPath.setAttribute(class, seg-neon stroke-dash); segPath.setAttribute(style, `animation-delay: ${i*0.12}s; stroke: ${getComputedStyle(document.documentElement).getPropertyValue(--neon) || #0fff84}`); segmentsGroup.appendChild(segPath); segmentPaths.push(segPath); } // add a soft tail after the last point for natural ending const last pointspoints.length - 1; const tailD `M ${last.x} ${last.y} C ${last.x+18} ${last.y+60}, ${last.x+8} ${last.y+150}, ${last.x} ${last.y+150}`; const tail document.createElementNS(svgNS, path); tail.setAttribute(d, tailD); tail.setAttribute(stroke, rgba(15,255,132,0.55)); tail.setAttribute(stroke-width, 6); tail.setAttribute(fill,none); tail.setAttribute(stroke-linecap,round); svg.appendChild(tail); // append svg to container container.appendChild(svg); for (let i 0; i beziers.length; i++) { const segD segmentPathsi.getAttribute(d); const orb document.createElement(div); orb.className pulse-dot; orb.style.position absolute; orb.style.width 12px; orb.style.height 12px; orb.style.borderRadius 999px; orb.style.background var(--neon-strong); orb.style.left `calc(50% - 6px)`; // centered horizontally over svg column orb.style.top `0px`; orb.style.offsetPath `path(${segD})`; // different durations/delays for variety const dur 5.5 + (i * 0.6); // segment-dependent duration orb.style.animation `travel ${dur}s linear ${i * 0.2}s infinite`; orb.style.filter drop-shadow(0 0 10px rgba(15,255,132,0.9)); orb.style.zIndex 6; container.appendChild(orb); } if (!document.getElementById(orbTravelKeyframes)) { const style document.createElement(style); style.id orbTravelKeyframes; style.innerHTML `@keyframes travel { to { offset-distance: 100%; } }`; document.head.appendChild(style); } // return objects for observer use return { svg, segments: segmentPaths, tail, points }; } // debounced rebuild let rebuildTimer null; function rebuildSVG(){ clearTimeout(rebuildTimer); rebuildTimer setTimeout(() > { generateSVG(); AOS.refresh(); // reattach observer after short delay setTimeout(attachObserver, 200); }, 120); } // initial build and on resize window.addEventListener(load, () > { rebuildSVG(); setTimeout(rebuildSVG, 300); }); window.addEventListener(resize, () > rebuildSVG()); /* Card tilt */ document.addEventListener(DOMContentLoaded, () > { document.querySelectorAll(.tilt-card).forEach(card > { const inner card.querySelector(.tilt-inner); if (!inner) return; card.addEventListener(mousemove, (e) > { const rect card.getBoundingClientRect(); const x (e.clientX - rect.left) / rect.width - 0.5; const y (e.clientY - rect.top) / rect.height - 0.5; const rx (y * 8) * -1; const ry (x * 10); inner.style.transform `rotateX(${rx}deg) rotateY(${ry}deg) translateZ(8px)`; }); card.addEventListener(mouseleave, () > inner.style.transform rotateX(0) rotateY(0) translateZ(0)); }); }); /* IntersectionObserver: light segments and badges when visible */ function attachObserver(){ const svgWrap document.getElementById(svgContainer); const neonPaths svgWrap.querySelectorAll(.seg-neon); const articles Array.from(document.querySelectorAll(#timeline articleid^y)); // map segments: segment i corresponds to article i and i+1 visually const obs new IntersectionObserver((entries) > { entries.forEach(entry > { const el entry.target; const idx articles.indexOf(el); if (idx -1) return; // compute which segment to highlight const segIndex Math.min(idx, neonPaths.length - 1); if (entry.isIntersecting) { el.querySelector(.year-badge)?.classList.add(lit); // highlight segIndex path strongly neonPaths.forEach((p, i) > { if (i segIndex) { p.style.stroke rgb(15,255,132); p.style.filter drop-shadow(0 0 20px rgba(15,255,132,0.95)); } else { p.style.stroke getComputedStyle(document.documentElement).getPropertyValue(--neon); p.style.filter ; } }); } else { el.querySelector(.year-badge)?.classList.remove(lit); } }); }, { threshold: 0.42 }); // observe all articles document.querySelectorAll(#timeline articleid^y).forEach(a > obs.observe(a)); } /* helper: smooth scroll to year */ function scrollToYear(id){ document.getElementById(id)?.scrollIntoView({behavior:smooth, block:center}); } /script> script> /* Add multiple moving neon orbs along the full SVG path with staggered delays */ function addNeonOrbs() { const container document.getElementById(svgContainer); if (!container) return; const svg container.querySelector(svg); if (!svg) return; const basePath svg.querySelector(.base-track); const tailPath Array.from(svg.querySelectorAll(path)) .find(p > p.getAttribute(stroke)?.startsWith(rgba)); // tail path if (!basePath) return; // Combine base-track + tail path for full travel const fullD basePath.getAttribute(d) + (tailPath ? + tailPath.getAttribute(d) : ); const ns http://www.w3.org/2000/svg; // create glow filter if not exists if (!svg.querySelector(#orbGlow)) { const defs document.createElementNS(ns,defs); const filter document.createElementNS(ns,filter); filter.setAttribute(id,orbGlow); const feGaussian document.createElementNS(ns,feGaussianBlur); feGaussian.setAttribute(stdDeviation,4); feGaussian.setAttribute(result,blur); const feMerge document.createElementNS(ns,feMerge); const feMergeNode1 document.createElementNS(ns,feMergeNode); feMergeNode1.setAttribute(in,blur); const feMergeNode2 document.createElementNS(ns,feMergeNode); feMergeNode2.setAttribute(in,SourceGraphic); feMerge.appendChild(feMergeNode1); feMerge.appendChild(feMergeNode2); filter.appendChild(feGaussian); filter.appendChild(feMerge); defs.appendChild(filter); svg.appendChild(defs); } // create hidden path for motion let fullPath svg.querySelector(#fullPathForOrb); if (!fullPath) { fullPath document.createElementNS(ns,path); fullPath.setAttribute(d, fullD); fullPath.setAttribute(id, fullPathForOrb); fullPath.setAttribute(fill,none); svg.appendChild(fullPath); } const numOrbs 3; // number of moving orbs const duration 8; // total duration in seconds const delayStep duration / numOrbs; // stagger delay between orbs for (let i 0; i numOrbs; i++) { const orb document.createElementNS(ns,circle); orb.setAttribute(r,7); orb.setAttribute(fill,#7cffb6); orb.setAttribute(filter,url(#orbGlow)); const animate document.createElementNS(ns,animateMotion); animate.setAttribute(dur, `${duration}s`); animate.setAttribute(repeatCount,indefinite); animate.setAttribute(begin, `${i * delayStep}s`); // stagger start time const mpath document.createElementNS(ns,mpath); mpath.setAttributeNS(http://www.w3.org/1999/xlink,xlink:href,#fullPathForOrb); animate.appendChild(mpath); orb.appendChild(animate); svg.appendChild(orb); } } // wait until your dynamic SVG is ready window.addEventListener(load, () > { setTimeout(addNeonOrbs, 500); // small delay to ensure timeline SVG is built }); /script> /body>script>undefined typeof _trfq || (window._trfq );undefined typeof _trfd && (window._trfd),_trfd.push({tccl.baseHost:secureserver.net},{ap:cpsh-oh},{server:p3plzcpnl504588},{dcenter:p3},{cp_id:10822310},{cp_cl:8}) // Monitoring performance to make your website faster. If you want to opt-out, please contact web hosting support./script>script srchttps://img1.wsimg.com/traffic-assets/js/tccl.min.js>/script>/html>
Port 443
HTTP/1.1 200 OKDate: Wed, 28 Jan 2026 16:38:31 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-alivelast-modified: Sat, 17 Jan 2026 12:17:00 GMTNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}vary: Accept-EncodingReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sW7Q4vuvsuQmFGx%2Fp4myfQ3l8UAqmaTGb6Q22mGuTq3G7EWaNNWmVhKOuU6j3ISrs%2FoCUENODw5UBtFfABYq2UrlTNJsfGrAt8JMwYg%3D%3D}}Server: cloudflarecf-cache-status: DYNAMICCF-RAY: 9c51ebac1ecb0c31-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html langen> head> meta charsetUTF-8 /> meta nameviewport contentwidthdevice-width, initial-scale1.0 /> title>CraftInnove Services (I) Pvt. Ltd. | CISPL/title> !-- Tailwind CSS CDN --> script srchttps://cdn.tailwindcss.com>/script> !-- Alpine.js --> script srchttps://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js defer >/script> !-- Meta & Favicons --> meta namedescription contentCraftInnove Services (I) Pvt. Ltd. offers HVAC, Solar, Electrical, Fire Alarm, CCTV, and Painting services in Thane & Mumbai. /> link relicon hrefimages/favicon.png /> link hrefhttps://fonts.googleapis.com/css2?familyInter:wght@400;500;600;700&displayswap relstylesheet /> link relstylesheet hrefhttps://unpkg.com/aos@2.3.1/dist/aos.css/> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css /> style> html, body { overflow-x: hidden; } body { font-family: Inter, sans-serif; } html { scroll-behavior: smooth; } .logo-item { flex: 0 0 20%; max-width: 20%; padding: 0 2rem; height: 6rem; object-fit: contain; /*filter: grayscale(100%);*/ transition: filter 0.3s ease; } .logo-item:hover { filter: grayscale(0%); } /* Continuous motion */ @keyframes marqueeMove { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } .marquee { width: 100%; animation: marqueeMove 40s linear infinite; } .marquee:hover { animation-play-state: paused; /* optional */ } .nav-link { position: relative; padding-bottom: 4px; transition: color 0.3s ease; } .nav-link::after { content: ; position: absolute; left: 0; bottom: 0; width: 0; height: 2px; background-color: #fbbf24; /* amber-400 */ transition: width 0.3s ease; } .nav-link:hover::after { width: 100%; } .nav-link:hover { color: #fbbf24; } @media (max-width: 640px) { .logo-item { max-width: 100%; } .marquee { animation: marqueeMove 22s linear infinite; } } @media (max-width: 400px) { .logo-item { max-width: 100%; } .marquee { animation: marqueeMove 22s linear infinite; } } #marquee-track { will-change: transform; transition: transform 0s linear; } #marquee-track img { height: 90px; width: auto; object-fit: contain; } @media (max-width: 640px) { #marquee-track img { height: 110px; } } @keyframes shine { 0% { background-position: -200px; } 100% { background-position: 200px; } } .animate-shine { background-size: 400px 100%; animation: shine 3s linear infinite; } .thumb.active-thumb { /*outline: 3px solid #ef4444 !important;*/ /* red-500 */ outline-offset: 2px; border-color: #ef4444 !important; border-width: 2px; } #parallax-bg { position: absolute; width: 100%; height: 100%; background-size: cover; background-position: center; will-change: transform; z-index: 0; } .parallax-overlay { position: absolute; inset: 0; z-index: 1; } .parallax-content { position: relative; z-index: 2; } /style> !-- Swiper CSS --> link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css/> style> /* Active thumbnail red border */ .thumb-active > div { border: 3px solid #ff4444 !important; box-shadow: 0 0 12px rgba(255, 0, 0, 0.5); } .myMainSwiper .swiper-slide { height: 420px !important; } .myThumbsSwiper .swiper-slide > div { width: 6rem; height: 6rem; } /style> !-- Timeline CSS --> style> :root{ --amber:#fbbf24; --neon:#0fff84; --neon-strong:#7cffb6; --bg:#071122; } #timelineSection { margin: 0; background: radial-gradient(900px 400px at 8% 10%, rgba(123,63,0,0.04), transparent 6%), var(--bg); color: #e6eef8; font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial; } /* layout constants */ :root { --item-gap: 140px; --card-h: 320px; --svg-w:160; --svg-x:50; } /* decorative blobs */ .blob{ position:absolute; pointer-events:none; mix-blend-mode:screen; opacity:0.12; filter: blur(42px); } .blob-1{ background:linear-gradient(135deg,#f59e0b,#fbbf24); width:460px; height:420px; left:-6%; top:-6%; border-radius:40%; } .blob-2{ background:linear-gradient(135deg,#06b6d4,#7c3aed); width:520px; height:520px; right:-6%; bottom:6%; border-radius:48%; opacity:0.08; } /* svg wrapper */ .svg-wrap{ position:absolute; left:50%; transform:translateX(-50%); pointer-events:none; z-index:1; overflow:visible; } /* base faint track */ .base-track { stroke: rgba(255,255,255,0.04); stroke-width:4; fill:none; stroke-linecap:round; } /* neon segment style */ .seg-neon { stroke: var(--neon); stroke-width:4; fill:none; stroke-linecap:round; stroke-linejoin:round; filter: drop-shadow(0 0 12px rgba(15,255,132,0.35)); } /* stroke-dash animation for neon segments */ .stroke-dash { stroke-dasharray: 1200; stroke-dashoffset: 1200; animation: drawSeg 1.2s ease forwards; } @keyframes drawSeg { to { stroke-dashoffset: 0 } } /* pulse-dot style (circle traveling per segment) */ .pulse-dot { filter: drop-shadow(0 0 10px rgba(124,255,182,0.9)); } /* orb travel keyframes fallback (offset-distance animation) */ @keyframes travel { to { offset-distance: 100%; } } /* year badge */ .year-badge { width:70px; height:70px; border-radius:999px; display:grid; place-items:center; background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01)); border:1px solid rgba(255,255,255,0.04); position:relative; } .year-badge .num { color:var(--bg); background:linear-gradient(180deg,var(--amber), #ffc857); padding:6px 10px; border-radius:999px; font-weight:700; } .badge-ripple { position:absolute; inset:0; border-radius:999px; box-shadow:0 0 0 0 rgba(251,191,36,0.12); animation:ripple 2.6s infinite; opacity:0.95; } @keyframes ripple { 0%{box-shadow:0 0 0 0 rgba(251,191,36,0.18)} 70%{box-shadow:0 0 40px 22px rgba(251,191,36,0.02)} 100%{box-shadow:0 0 0 0 rgba(251,191,36,0)} } /* tilt */ .tilt-card { transform-style:preserve-3d; perspective:1200px; will-change:transform; } .tilt-inner { transition: transform .18s cubic-bezier(.2,.8,.2,1); transform-origin:center; backface-visibility:hidden; } .glass { background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); border:1px solid rgba(255,255,255,0.04); } .card-img { width:100%; height:200px; border-radius:10px; object-fit:cover; background-size:cover; background-position:center; } .lit { box-shadow:0 18px 60px rgba(124,252,128,0.06), 0 0 40px rgba(124,252,128,0.06) !important; border:1px solid rgba(124,252,128,0.08) !important; } /* responsive */ @media (max-width:768px){ :root { --item-gap: 90px; --card-h: 220px; --svg-w: 120; --svg-x:40; } .year-badge { width:56px; height:56px; } .card-img { height:140px; } #svgContainer svg { opacity: 0.25; /* or 0.3, subtle */ filter: blur(2px); } } /style> /head> body classbg-white text-gray-800> !-- NAVBAR --> header x-datanavbarHandler x-initinit() classfixed top-0 left-0 w-full z-50 bg-gray-900 shadow-md transition-all duration-300 > div classcontainer mx-auto flex items-center justify-between px-6 py-4> !-- Logo --> a hrefindex.html classflex items-center space-x-2> img srcimages/logobg.png altCraftInnove Services logo classh-14 w-auto /> span classfont-semibold text-amber-400 text-lg>CISPL/span> /a> !-- Desktop Menu --> nav classhidden md:flex space-x-2> template x-forlink in links :keylink.id> a :hreflink.href classpx-4 py-2 rounded-md font-medium text-sm transition-all duration-300 :classlink.active ? bg-amber-400 text-gray-900 font-semibold : text-gray-300 hover:bg-gray-800 hover:text-amber-400 x-textlink.label >/a> /template> /nav> !-- Mobile Menu Button --> button @clickopen !open classmd:hidden text-gray-300 focus:outline-none aria-labelToggle menu > i :classopen ? fas fa-times text-2xl : fas fa-bars text-2xl>/i> /button> /div> !-- Mobile Dropdown Menu --> nav x-showopen x-transition:entertransition ease-out duration-300 x-transition:enter-startopacity-0 -translate-y-4 x-transition:enter-endopacity-100 translate-y-0 x-transition:leavetransition ease-in duration-200 x-transition:leave-startopacity-100 translate-y-0 x-transition:leave-endopacity-0 -translate-y-4 classmd:hidden bg-gray-800 border-t border-gray-700 > div classflex flex-col items-center space-y-3 py-6> template x-forlink in links :keylink.id> a :hreflink.href @clickopen false classblock w-40 text-center px-4 py-2 rounded-md font-medium transition-all duration-300 :classlink.active ? bg-amber-400 text-gray-900 font-semibold : text-gray-300 hover:bg-gray-700 hover:text-amber-400 x-textlink.label >/a> /template> /div> /nav> !-- Animated golden shimmer --> div classabsolute bottom-0 left-0 w-full h-3px bg-gradient-to-r from-amber-400 via-yellow-300 to-amber-500 animate-shine>/div> /header> !-- Add top padding to offset fixed navbar --> div classpt-20>/div> !-- HERO SECTION --> section idhome classrelative bg-gray-900 pt-20> !-- Background image --> div classabsolute inset-0> img srcimages/hero-bg.png altTechnician inspecting rooftop solar and HVAC equipment classw-full h-full object-cover opacity-90 /> div classabsolute inset-0 bg-gradient-to-r from-black/60 to-black/30>/div> /div> div classrelative container mx-auto px-6 py-20 lg:py-28> div classgrid grid-cols-1 lg:grid-cols-2 gap-10 items-center> div classtext-white max-w-xl> h1 classtext-3xl sm:text-4xl lg:text-5xl font-semibold leading-tight >Trusted Electrical, HVAC, Solar & CCTV Surveillance Solutions — span classtext-amber-400>Since 2019/span> /h1> p classmt-4 text-gray-200> Complete installation, AMC and maintenance services for commercial & residential projects across Thane & Mumbai. /p> div classmt-6 flex flex-col sm:flex-row gap-3> a href#contact classinline-block px-6 py-3 bg-amber-400 text-gray-900 font-medium rounded-lg shadow hover:shadow-lg transition > Request a Quote /a> a hreftel:+919136525729 classinline-block px-6 py-3 border border-white/20 text-white rounded-lg hover:bg-white/5 transition > Call Now: 9136525729 /a> /div> p classmt-4 text-sm text-gray-300> Rapid response • Certified technicians • Project & AMC expertise /p> div classmt-6 flex items-center gap-4 text-gray-300 text-sm > span>Trusted by:/span> div classflex gap-3 items-center> img srcimages/client-ibm.png altIBM classh-12 sm:h-24 /> img srcimages/client-saicity.png altSai City Dombivli classh-12 sm:h-24 /> img srcimages/client-karnika.png altKarnika 2.0 Diva East classh-12 sm:h-24 /> /div> /div> /div> div classspace-y-4> div classbg-white/5 rounded-2xl p-6 backdrop-blur-md shadow-md> h3 classtext-lg text-white font-semibold mb-6 relative inline-block>Quick Services span classabsolute left-0 -bottom-2 w-16 h-1 bg-amber-400 rounded-full>/span> /h3> ul classgrid grid-cols-2 sm:grid-cols-2 gap-4 text-gray-200> li classflex flex-col items-center justify-center text-center p-4 bg-white/5 rounded-xl hover:bg-white/10 hover:-translate-y-1 transform transition-all duration-300> img srcicons/hvac.svg altHVAC Service & AMC classh-12 w-12 mb-3 /> span classtext-sm font-medium leading-snug>HVAC Service & AMC/span> /li> li classflex flex-col items-center justify-center text-center p-4 bg-white/5 rounded-xl hover:bg-white/10 hover:-translate-y-1 transform transition-all duration-300> img srcicons/solar.svg altSolar Install & AMC classh-12 w-12 mb-3 /> span classtext-sm font-medium leading-snug>Solar Install & AMC/span> /li> li classflex flex-col items-center justify-center text-center p-4 bg-white/5 rounded-xl hover:bg-white/10 hover:-translate-y-1 transform transition-all duration-300> img srcicons/electrical.svg altElectrical Maintenance classh-12 w-12 mb-3 /> span classtext-sm font-medium leading-snug>Electrical Maintenance/span> /li> li classflex flex-col items-center justify-center text-center p-4 bg-white/5 rounded-xl hover:bg-white/10 hover:-translate-y-1 transform transition-all duration-300> img srcicons/fire.svg altFire Alarm & Safety classh-12 w-12 mb-3 /> span classtext-sm font-medium leading-snug>Fire Alarm & Safety/span> /li> /ul> /div> div classbg-white/10 rounded-2xl p-4 text-gray-300> p classtext-sm> Need immediate support? Call a hreftel:+919136525729 classtext-amber-400 underline >9136525729/a > or email a href/cdn-cgi/l/email-protection#f083919c9583b09382919684999ede999e classtext-amber-400 underline>span class__cf_email__ data-cfemail0a796b666f794a69786b6c7e6364246364>email protected/span>/a > /p> /div> /div> /div> /div> /section> !-- OUR SERVICES SECTION --> section idservices classpy-20 bg-gray-200 pt-24> div classcontainer mx-auto px-6 text-center> h2 classtext-3xl font-bold text-gray-800 mb-4 relative inline-block data-aosfade-up data-aos-delay0> Our Core Services span classabsolute left-0 -bottom-2 w-16 h-1 bg-amber-400 rounded-full>/span> /h2> p classtext-gray-600 max-w-2xl mx-auto mb-12 data-aosfade-up data-aos-delay100> From HVAC systems to solar energy, electrical maintenance, and safety solutions — CISPL provides expert installation and AMC services for every need. /p> div classgrid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8> div data-aosfade-up data-aos-delay200 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/electrical.svg altElectrical Maintenance classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>Electrical Services & AMC/h3> p classtext-gray-600 text-sm> All-inclusive electrical installation, maintenance, and annual contracts for total system reliability. /p> /div> div data-aosfade-up data-aos-delay0 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/hvac.svg altHVAC Services classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>HVAC Services & Maintenance/h3> p classtext-gray-600 text-sm> Complete HVAC installation, repair, and AMC by certified experts for commercial and residential spaces. /p> /div> div data-aosfade-up data-aos-delay100 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/solar.svg altSolar Installation classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>Solar Installation & AMC/h3> p classtext-gray-600 text-sm> Sustainable solar energy solutions with reliable installation, service, and annual maintenance contracts. /p> /div> div data-aosfade-up data-aos-delay400 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/cctv.svg altCCTV Surveillance classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>CCTV Surveillance Systems/h3> p classtext-gray-600 text-sm> Advanced CCTV setup, monitoring, and support — safeguard your home or business with smart surveillance. /p> /div> div data-aosfade-up data-aos-delay300 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/fire.svg altFire Alarm Systems classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>Fire Alarm Systems/h3> p classtext-gray-600 text-sm> Reliable fire alarm installation and servicing solutions to ensure safety and compliance. /p> /div> div data-aosfade-up data-aos-delay500 classbg-white rounded-2xl shadow-md p-8 flex flex-col items-center text-center hover:-translate-y-1 hover:shadow-lg transform transition-all duration-300> img srcicons/paint.svg altPainting Services classh-16 w-16 mb-4 /> h3 classtext-lg font-semibold text-gray-800 mb-2>Professional Painting Work/h3> p classtext-gray-600 text-sm> Interior & exterior painting with precision and quality finishing for residential and commercial projects. /p> /div> /div> /div> /section> !-- ABOUT US SECTION --> section idabout classpy-20 bg-white pt-24> div classcontainer mx-auto px-6 grid grid-cols-1 lg:grid-cols-2 gap-12 items-center> div data-aosfade-right data-aos-delay0> h2 classtext-3xl font-bold text-gray-800 mb-4 relative inline-block>About CraftInnove Services (I) Pvt. Ltd. span classabsolute left-0 -bottom-2 w-16 h-1 bg-amber-400 rounded-full>/span> /h2> p classtext-gray-600 mb-6 leading-relaxed> Established in span classfont-semibold text-gray-800>2019/span> and based in Thane, strong>CraftInnove Services (I) Pvt. Ltd. (CISPL)/strong> is a trusted provider of strong>Electrical, HVAC, Solar, Fire Alarm, CCTV, and Painting solutions/strong>. Our mission is to deliver reliable, energy-efficient, and cost-effective services with professionalism and precision. /p> p classtext-gray-600 mb-6 leading-relaxed> With a team of qualified engineers and skilled technicians, we take pride in executing projects of every scale — from residential buildings to large commercial facilities. We focus on safety, long-term performance, and complete customer satisfaction. /p> ul classtext-gray-700 mb-8 space-y-2> li classflex items-start gap-2> span classtext-amber-500 font-bold text-lg>•/span> span>Expert service in HVAC, Solar, and Electrical installations/span> /li> li classflex items-start gap-2> span classtext-amber-500 font-bold text-lg>•/span> span>Reliable AMC & maintenance contracts ensuring system longevity/span> /li> li classflex items-start gap-2> span classtext-amber-500 font-bold text-lg>•/span> span>Client-centric approach backed by professional integrity/span> /li> /ul> a href#contact classinline-block px-6 py-3 bg-amber-400 text-gray-900 font-semibold rounded-lg shadow hover:shadow-md transition> Learn More /a> /div> div classmax-w-6xl mx-auto p-6> div classgrid md:grid-cols-130px_1fr gap-6 items-start> !-- Thumbnails --> div classswiper myThumbsSwiper md:h-420px h-auto w-full md:w-auto> div classswiper-wrapper> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about.jpg altAbout classw-24 h-24 object-cover/> /div> /div> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about2.jpg altAbout 2 classw-24 h-24 object-cover/> /div> /div> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about3.jpg altAbout 3 classw-24 h-24 object-cover/> /div> /div> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about4.jpg altAbout 4 classw-24 h-24 object-cover/> /div> /div> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about5.jpg altAbout 5 classw-24 h-24 object-cover/> /div> /div> div classswiper-slide flex items-center justify-center> div classrounded-md border overflow-hidden> img srcimages/about6.jpg altAbout 6 classw-24 h-24 object-cover/> /div> /div> /div> /div> !-- Main Slider --> div classswiper myMainSwiper rounded-lg overflow-hidden shadow-lg w-full max-w-900px mx-auto> div classswiper-wrapper> div classswiper-slide flex items-center justify-center bg-gray-100> img srcimages/about.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> div classswiper-slide flex items-center justify-center bg-gray-200> img srcimages/about2.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> div classswiper-slide flex items-center justify-center bg-gray-300> img srcimages/about3.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> div classswiper-slide flex items-center justify-center bg-gray-100> img srcimages/about4.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> div classswiper-slide flex items-center justify-center bg-gray-300> img srcimages/about5.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> div classswiper-slide flex items-center justify-center bg-gray-100> img srcimages/about6.jpg altSlide Image classw-full h-full object-cover rounded-lg/> /div> /div> !-- Navigation --> div classswiper-button-next>/div> div classswiper-button-prev>/div> /div> /div> /div> /div> /section> !-- PARALLAX SECTION --> section classrelative overflow-hidden h-150vh flex items-center justify-center> div idparallax-bg stylebackground-image: url(images/solar-panel.jpg);>/div> div classparallax-overlay bg-gray-700/70>/div> div classrelative z-20 text-center text-white x-datacounterSection() x-initinit()> div classparallax-content text-center px-6 max-w-3xl> h2 classtext-4xl md:text-6xl font-bold text-white mb-4 drop-shadow-lg> Crafting Excellence Throughspan classtext-amber-400> Numbers/span> /h2> div classw-28 h-1 bg-gradient-to-r from-amber-400 via-yellow-300 to-amber-500 mx-auto mt-6 mb-6 rounded-full>/div> /div> div classgrid grid-cols-3 gap-10 text-center font-bold max-w-3xl mx-auto> div data-aosfade-up data-aos-delay50> h3 classtext-4xl text-amber-400 mb-2 x-textdisplay(experience,+)>0+/h3> p classtext-sm uppercase tracking-wide text-gray-200>Years Experience/p> /div> div data-aosfade-up data-aos-delay100> h3 classtext-4xl text-amber-400 mb-2 x-textdisplay(compliance,%)>0%/h3> p classtext-sm uppercase tracking-wide text-gray-200>Compliance/p> /div> div data-aosfade-up data-aos-delay150> h3 classtext-4xl text-amber-400 mb-2 x-textdisplay(projects,+)>0+/h3> p classtext-sm uppercase tracking-wide text-gray-200>Projects Completed/p> /div> /div> /div> /section> !-- STATS SECTION (Count-Up + Icons + Glow) --> section classbg-gray-900 py-20> div classcontainer mx-auto px-6> div classtext-center mb-12 data-aosfade-up> h2 classtext-3xl md:text-4xl font-bold text-white> Our span classtext-amber-400>Achievements/span> /h2> p classtext-gray-300 mt-2> A quick look at our journey of excellence and trust. /p> /div> !-- Stats Grid --> div classgrid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-10> !-- Stat 1 --> div classtext-center data-aoszoom-in data-aos-delay100> div classbg-gray-800 border border-gray-700 p-8 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> i classfas fa-user-tie text-amber-400 text-4xl mb-4>/i> h3 classtext-4xl font-bold text-white count data-count6>0/h3> p classtext-gray-300 mt-2 text-sm>Years of Expertise/p> /div> /div> !-- Stat 2 --> div classtext-center data-aoszoom-in data-aos-delay200> div classbg-gray-800 border border-gray-700 p-8 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> i classfas fa-project-diagram text-amber-400 text-4xl mb-4>/i> h3 classtext-4xl font-bold text-white count data-count150>0/h3> p classtext-gray-300 mt-2 text-sm>Projects Completed/p> /div> /div> !-- Stat 3 --> div classtext-center data-aoszoom-in data-aos-delay300> div classbg-gray-800 border border-gray-700 p-8 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> i classfas fa-users text-amber-400 text-4xl mb-4>/i> h3 classtext-4xl font-bold text-white count data-count100>0/h3> p classtext-gray-300 mt-2 text-sm>Clients Served/p> /div> /div> !-- Stat 4 --> div classtext-center data-aoszoom-in data-aos-delay400> div classbg-gray-800 border border-gray-700 p-8 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> i classfas fa-award text-amber-400 text-4xl mb-4>/i> h3 classtext-4xl font-bold text-white count data-count100>0/h3> p classtext-gray-300 mt-2 text-sm>Compliance Score/p> /div> /div> /div> /div> /section> !-- OUR TIMELINE SECTION --> section idtimelineSection> div classrelative min-h-screen> div classblob blob-1>/div> div classblob blob-2>/div> main classcontainer mx-auto px-6 py-12 relative z-10> header classtext-center mb-8> h1 classtext-4xl md:text-5xl font-extrabold>Our span stylecolor:var(--amber)>Journey/span>/h1> p classtext-gray-300 mt-2 max-w-2xl mx-auto>A story of growth, innovation, and excellence shaping CraftInnove’s legacy./p> /header> !-- sticky year nav --> div classsticky top-6 z-40 mb-8 flex justify-center> div classbg-gray-800/50 backdrop-blur-md px-4 py-2 rounded-full border border-gray-700 shadow> button onclickscrollToYear(y2019) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2019/button> button onclickscrollToYear(y2020) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2020/button> button onclickscrollToYear(y2021) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2021/button> button onclickscrollToYear(y2022) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2022/button> button onclickscrollToYear(y2023) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2023/button> button onclickscrollToYear(y2024) classpx-2 py-1 text-sm text-gray-300 hover:text-amber-400>2024/button> /div> /div> section classrelative> !-- svg container --> div idsvgContainer classsvg-wrap aria-hiddentrue>/div> !-- bottom fade --> div classpath-fade styleposition:absolute; left:50%; transform:translateX(-50%); width:160px; height:260px; bottom:-40px; background:linear-gradient(180deg, transparent 30%, rgba(7,17,34,0.95) 85%, rgba(7,17,34,1) 100%); pointer-events:none; z-index:12;>/div> !-- timeline list --> div idtimeline classtimeline-list mx-auto max-w-6xl relative z-20> !-- 2019 --> article idy2019 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-right> div classmd:w-1/2 md:pr-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#071233,#002b36);>/div> div classabsolute -top-3 -left-3 year-badge> div classnum>2019/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2019 — The Beginning/h3> p classmt-2 text-gray-300>Company founded and initial projects initiated with safety-first approach./p> /div> /div> div classmd:w-1/2>/div> /article> !-- 2020 --> article idy2020 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-left> div classmd:w-1/2>/div> div classmd:w-1/2 md:pl-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#041a3a,#004057);>/div> div classabsolute -top-3 -right-3 year-badge> div classnum>2020/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2020 — Licensed & Compliant/h3> p classmt-2 text-gray-300>Received Government license and strengthened compliance processes./p> /div> /div> /article> !-- 2021 --> article idy2021 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-right> div classmd:w-1/2 md:pr-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#041014,#013440);>/div> div classabsolute -top-3 -left-3 year-badge> div classnum>2021/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2021 — Service Expansion/h3> p classmt-2 text-gray-300>Expanded into IT parks and commercial projects with top-tier execution./p> /div> /div> div classmd:w-1/2>/div> /article> !-- 2022 --> article idy2022 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-left> div classmd:w-1/2>/div> div classmd:w-1/2 md:pl-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#09121a,#004d3a);>/div> div classabsolute -top-3 -right-3 year-badge> div classnum>2022/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2022 — Advanced Services/h3> p classmt-2 text-gray-300>Launched thermography, audits and solar solutions./p> /div> /div> /article> !-- 2023 --> article idy2023 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-right> div classmd:w-1/2 md:pr-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#041020,#012030);>/div> div classabsolute -top-3 -left-3 year-badge> div classnum>2023/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2023 — Prestigious Clients/h3> p classmt-2 text-gray-300>Partnered with IBM, Sai City and Karnika projects — delivering trusted results./p> /div> /div> div classmd:w-1/2>/div> /article> !-- 2024 --> article idy2024 classtilt-card md:flex md:items-center md:gap-8 stylemin-height:var(--card-h); data-aosfade-left> div classmd:w-1/2>/div> div classmd:w-1/2 md:pl-6> div classtilt-inner glass p-6 rounded-2xl shadow-lg hover:shadow-amber-400/20 transition> div classrelative> div classcard-img stylebackground:linear-gradient(120deg,#071233,#003b2f);>/div> div classabsolute -top-3 -right-3 year-badge> div classnum>2024/div> div classbadge-ripple>/div> /div> /div> h3 classtext-2xl font-bold mt-4>2024 — 100+ Installations/h3> p classmt-2 text-gray-300>Completed 100+ installations and expanded into new regions./p> /div> /div> /article> /div> !-- /timeline-list --> /section> /main> /div> /section> !-- OUR CLIENTS SECTION --> section idclients classpy-20 bg-gray-200 overflow-hidden pt-24> div classtext-center mb-12> h2 classtext-3xl font-bold text-gray-800 mb-4 relative inline-block data-aosfade-up> Our Valued Clients span classabsolute left-0 -bottom-2 w-16 h-1 bg-amber-400 rounded-full>/span> /h2> p classtext-gray-600 max-w-2xl mx-auto data-aosfade-up data-aos-delay100> Trusted by organizations and housing projects across Maharashtra. /p> /div> !-- marquee wrapper --> div classrelative w-full overflow-hidden data-aosfade-up data-aos-delay200> div classflex items-center idmarquee-track> !-- first set --> img srcimages/client-ibm.svg altIBM classlogo-item /> img srcimages/client-saicity.svg altSai City classlogo-item /> img srcimages/client-karnika.svg altKarnika classlogo-item /> img srcimages/client-piramal.png altPiramal classlogo-item /> img srcimages/client-peninsula.png altPeninsula classlogo-item styleheight:140px; /> img srcimages/client-birla.png altBirla classlogo-item /> img srcimages/client-flextronics.png altFlextronics classlogo-item /> img srcimages/client-nice.png altNice classlogo-item /> !-- duplicate set --> img srcimages/client-ibm.svg altIBM classlogo-item /> img srcimages/client-saicity.svg altSai City classlogo-item /> img srcimages/client-karnika.svg altKarnika classlogo-item /> img srcimages/client-piramal.png altPiramal classlogo-item /> img srcimages/client-peninsula.png altPeninsula classlogo-item styleheight:140px; /> img srcimages/client-birla.png altBirla classlogo-item /> img srcimages/client-flextronics.png altFlextronics classlogo-item /> img srcimages/client-nice.png altNice classlogo-item /> img srcimages/client-ibm.svg altIBM classlogo-item /> /div> /div> /section> !-- CONTACT SECTION --> section idcontact classpy-20 pt-24 bg-stone-50 relative> div classcontainer mx-auto px-6 grid grid-cols-1 lg:grid-cols-2 gap-12 items-stretch> !-- Left: Contact Info --> div classflex flex-col justify-between data-aosfade-right> div> h2 classtext-3xl font-bold text-gray-800 mb-4 relative inline-block> Get in Touch span classabsolute left-0 -bottom-2 w-16 h-1 bg-amber-400 rounded-full>/span> /h2> p classtext-gray-600 mb-6 leading-relaxed> Have a project in mind or need expert engineering support? Reach out to us — our team will be happy to assist you. /p> ul classtext-gray-700 mb-8 space-y-4> li classflex items-start gap-3> i classfa-solid fa-location-dot text-amber-500 text-lg mt-1>/i> span> Near Golden Dyes, Co Agra Road,br> Muktai Nagar, Majiwada, Thane West /span> /li> li classflex items-center gap-3> i classfa-solid fa-envelope text-amber-500 text-lg>/i> a href/cdn-cgi/l/email-protection#7407151811073417061512001d1a5a1d1a classhover:text-amber-500 transition> span class__cf_email__ data-cfemail6714060b02142704150601130e09490e09>email protected/span> /a> /li> li classflex items-center gap-3> i classfa-solid fa-phone text-amber-500 text-lg>/i> a hreftel:+919619405763 classhover:text-amber-500 transition>+91 96194 05763/a>, a hreftel:+919503144302 classhover:text-amber-500 transition>+91 95031 44302/a> /li> /ul> /div> !-- Map --> div classrounded-xl overflow-hidden shadow-sm aos-init aos-animate data-aosfade-up data-aos-delay100> iframe srchttps://www.google.com/maps?qNear-Golden-Dyes,+Co-Agra+Road,+Muktai+Nagar,+Majiwada,+Thane+West&outputembed classw-full h-60 border-0 loadinglazy> /iframe> /div> /div> !-- Right: CTA --> div classh-full flex items-center justify-center bg-amber-400 rounded-2xl shadow-lg p-10 data-aosfade-left> div classtext-center max-w-md> i classfa-solid fa-clipboard-list text-gray-900 text-4xl mb-5>/i> h3 classtext-3xl font-bold text-gray-900 mb-4> Have a Project in Mind? /h3> p classtext-gray-800 mb-8 leading-relaxed> Let’s discuss your requirements and deliver a solution that is efficient, compliant, and future-ready. /p> a hrefcontact.html classinline-block bg-gray-900 text-white px-10 py-4 rounded-full font-semibold text-lg hover:bg-gray-800 transition shadow-md > Contact Our Team /a> p classtext-sm text-gray-800 mt-6> Response within strong>24 hours/strong> /p> /div> /div> /div> /section> !-- FOOTER SECTION --> footer classbg-gray-900 text-gray-300 pt-16 pb-10> div classcontainer mx-auto px-6 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-10 border-t border-gray-700/50 pt-10> !-- Logo + About --> div classspace-y-4 data-aosfade-up data-aos-delay0> h3 classtext-xl font-semibold text-white relative inline-block>CraftInnove Services (I) Pvt. Ltd. span classabsolute left-0 -bottom-2 w-16 h-1 bg-blue-400 rounded-full>/span> /h3> h5 classtext-md font-semibold text-amber-400>SINCE 2019/h5> p classtext-sm leading-relaxed text-gray-400> Delivering excellence in Electrical, HVAC, Solar, Fire & Facility Management services across Maharashtra since 2019. /p> div classflex space-x-4 pt-2> a href# classtext-gray-400 hover:text-amber-400 transition>i classfab fa-facebook-f text-lg>/i>/a> a hrefhttps://www.linkedin.com/in/craftinnove-services-b9b402395 classtext-gray-400 hover:text-amber-400 transition target_blank>i classfab fa-linkedin-in text-lg>/i>/a> a href# classtext-gray-400 hover:text-amber-400 transition>i classfab fa-instagram text-lg>/i>/a> /div> /div> !-- Quick Links --> div classspace-y-4 border-l border-dotted border-gray-700 pl-8 data-aosfade-up data-aos-delay100> h4 classtext-lg font-semibold text-white>Quick Links/h4> ul classspace-y-3 text-sm text-gray-400> li>a hrefindex.html classhover:text-amber-400 transition>Home/a>/li> li>a hrefabout.html classhover:text-amber-400 transition>About Us/a>/li> li>a hrefservices.html classhover:text-amber-400 transition>Our Services/a>/li> li>a hrefclients.html classhover:text-amber-400 transition>Our Clients/a>/li> li>a hrefcontact.html classhover:text-amber-400 transition>Contact Us/a>/li> li>a hrefcareer.html classhover:text-amber-400 transition>Careers/a>/li> /ul> /div> !-- Contact Info --> div classspace-y-4 border-l border-dotted border-gray-700 pl-8 data-aosfade-up data-aos-delay200> h4 classtext-lg font-semibold text-white>Contact/h4> ul classspace-y-3 text-sm text-gray-400> li classflex items-start gap-3> i classfa-solid fa-location-dot text-amber-400 mt-1>/i> span>Near Golden Dyes, Co Agra Road, br>Muktai Nagar, Majiwada, Thane West/span> /li> li classflex items-center gap-3> i classfa-solid fa-envelope text-amber-400>/i> a href/cdn-cgi/l/email-protection#6e1d0f020b1d2e0d1c0f081a0700400700 classhover:text-amber-400 transition>span class__cf_email__ data-cfemail2152404d4452614253404755484f0f484f>email protected/span>/a> /li> li classflex items-center gap-3> i classfa-solid fa-phone text-amber-400>/i> a hreftel:+919136525729 classhover:text-amber-400 transition>+91 91365 25729/a> a hreftel:+919503144302 classhover:text-amber-400 transition>+91 95031 44302/a> /li> /ul> /div> !-- Working Hours --> div classspace-y-4 border-l border-dotted border-gray-700 pl-8 data-aosfade-up data-aos-delay300> h4 classtext-lg font-semibold text-white>Working Hours/h4> ul classspace-y-2 text-sm text-gray-400> li classflex justify-between>span>Monday - Friday:/span> span>9:00 AM - 6:00 PM/span>/li> li classflex justify-between>span>Saturday:/span> span>9:00 AM - 2:00 PM/span>/li> li classflex justify-between>span>Sunday:/span> span classtext-amber-400>Closed/span>/li> /ul> div classpt-4> a href#contact classinline-block px-4 py-2 bg-amber-400 text-gray-900 font-semibold rounded-lg shadow hover:shadow-md transition>Get Quote/a> /div> /div> /div> div classtext-center mt-10 pt-6 border-t border-gray-800> p classtext-sm text-gray-500> © span idyear>/span> CraftInnove Services (I) Pvt. Ltd. — All Rights Reserved /p> /div> /footer> script data-cfasyncfalse src/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js>/script>script> // Auto-update footer year document.getElementById(year).textContent new Date().getFullYear(); /script> script srchttps://unpkg.com/aos@2.3.1/dist/aos.js>/script> script> AOS.init({ duration: 800, // speed of animation once: false, // animate only once per scroll easing: ease-in-out, // smooth motion }); /script> script> const track document.getElementById(marquee-track); let scrollSpeed window.innerWidth 640 ? 1.5 : 0.5; // faster on mobile let position 0; function animate() { position - scrollSpeed; if (Math.abs(position) > track.scrollWidth / 2) position 0; // seamless reset track.style.transform `translateX(${position}px)`; requestAnimationFrame(animate); } animate(); /script> script> document.addEventListener(alpine:init, () > { Alpine.data(navbarHandler, () > ({ open: false, links: { id: home, label: Home, href: index.html }, { id: services, label: Services, href: services.html }, { id: about, label: About, href: about.html }, { id: clients, label: Clients, href: clients.html }, { id: contact, label: Contact, href: contact.html }, { id: careers, label: Careers, href: career.html }, , init() { this.highlightCurrentPage(); }, highlightCurrentPage() { const currentPage window.location.pathname.split(/).pop() || index.html; this.links.forEach(link > { // Mark link as active if current page matches link.active link.href currentPage; }); }, })); }); /script> !-- Alpine Counter Script --> script> function counterSection() { return { experience: 0, compliance: 0, projects: 0, _animated: false, _pageLoaded: false, init() { window.addEventListener(load, () > { this._pageLoaded true; this.setupObserver(); }); }, setupObserver() { const observer new IntersectionObserver((entries, obs) > { const entry entries0; // trigger when at least 60% visible if ( this._pageLoaded && entry.isIntersecting && entry.intersectionRatio > 0.6 && !this._animated ) { this._animated true; // staggered starts setTimeout(() > this.animateValue(experience, 0, 6, 1500), 200); setTimeout(() > this.animateValue(compliance, 0, 100, 1500), 800); setTimeout(() > this.animateValue(projects, 0, 30, 1500), 1600); obs.disconnect(); } }, { threshold: 0, 0.25, 0.5, 0.6, 0.75, 1 }); observer.observe(this.$el); }, animateValue(key, start, end, duration) { const startTime performance.now(); const animate (now) > { const elapsed now - startTime; const progress Math.min(elapsed / duration, 1); const ease 1 - Math.pow(1 - progress, 3); // easeOutCubic thiskey start + (end - start) * ease; if (progress 1) requestAnimationFrame(animate); else thiskey end; }; requestAnimationFrame(animate); }, display(value, suffix ) { return Math.round(value) + suffix; } }; } /script> script srchttps://unpkg.com/preline/dist/preline.js>/script> script> document.querySelectorAll(#pagination-cispl-2 .thumb).forEach((item) > { item.addEventListener(click, function () { // remove highlight from all document.querySelectorAll(#pagination-cispl-2 .thumb) .forEach(t > t.classList.remove(active-thumb)); // highlight the clicked one this.classList.add(active-thumb); }); }); /script> !-- Swiper JS --> script srchttps://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js>/script> script> /* Thumbnail slider */ const thumbs new Swiper(.myThumbsSwiper, { spaceBetween: 10, watchSlidesProgress: true, breakpoints: { // 📱 MOBILE — horizontal row 0: { direction: horizontal, slidesPerView: 3, freeMode: true, }, // 💻 DESKTOP — vertical list 768: { direction: vertical, slidesPerView: 4, } } }); /* Main slider */ const main new Swiper(.myMainSwiper, { spaceBetween: 10, autoplay: { delay: 2500, disableOnInteraction: false }, navigation: { nextEl: .swiper-button-next, prevEl: .swiper-button-prev, }, thumbs: { swiper: thumbs }, }); function updateActiveThumb() { document .querySelectorAll(.myThumbsSwiper .swiper-slide) .forEach(slide > slide.classList.remove(thumb-active)); let active document.querySelectorAll(.myThumbsSwiper .swiper-slide)main.realIndex; if (active) active.classList.add(thumb-active); } main.on(slideChange, updateActiveThumb); thumbs.on(click, updateActiveThumb); updateActiveThumb(); /script> !-- PARALLAX SCROLL JS --> script> const bg document.getElementById(parallax-bg); window.addEventListener(scroll, () > { const scrollY window.scrollY; const sectionTop bg.parentElement.offsetTop; const distance scrollY - sectionTop; if (distance > 0 && distance window.innerHeight * 2) { const move distance * 0.20; // adjust for stronger/weaker effect bg.style.transform `translateY(${move}px)`; } }); /script> script srchttps://cdn.jsdelivr.net/npm/countup.js@2.0.7/dist/countUp.umd.js>/script> script> // Trigger count-up animation when stats enter screen function animateStats() { const elements document.querySelectorAll(.count); elements.forEach((el) > { const endValue el.getAttribute(data-count); const counter new countUp.CountUp(el, endValue, { duration: 2.5, separator: ,, }); if (!counter.error) { counter.start(); } }); } // Detect when section enters viewport let statsPlayed false; window.addEventListener(scroll, () > { const statsSection document.querySelector(.count).getBoundingClientRect(); if (!statsPlayed && statsSection.top window.innerHeight) { animateStats(); statsPlayed true; } }); /script> !-- Timeline Script --> script> /* Convert Catmull-Rom points to cubic Bézier segments */ function catmullRom2bezier(points, t 0.5) { const beziers ; for (let i 0; i points.length - 1; i++) { const p0 pointsi - 1 || pointsi; const p1 pointsi; const p2 pointsi + 1; const p3 pointsi + 2 || p2; const c1x p1.x + (p2.x - p0.x) * t / 6; const c1y p1.y + (p2.y - p0.y) * t / 6; const c2x p2.x - (p3.x - p1.x) * t / 6; const c2y p2.y - (p3.y - p1.y) * t / 6; beziers.push({ c1x, c1y, c2x, c2y, x: p2.x, y: p2.y }); } return beziers; } function buildFullPath(points) { if (!points.length) return ; let d `M ${points0.x} ${points0.y}`; const beziers catmullRom2bezier(points); beziers.forEach(b > { d + ` C ${b.c1x} ${b.c1y}, ${b.c2x} ${b.c2y}, ${b.x} ${b.y}`; }); return { d, beziers }; } function getPointsForTimeline() { const items Array.from(document.querySelectorAll(#timeline articleid^y)); // container top to compute relative y inside svg const containerTop document.getElementById(timeline).getBoundingClientRect().top + window.scrollY; const svgCenterX parseFloat(getComputedStyle(document.documentElement).getPropertyValue(--svg-x)) || 50; const horizOffset Math.min(48, svgCenterX - 10); return items.map((item, idx) > { const rect item.getBoundingClientRect(); const centerY Math.round(rect.top + window.scrollY - containerTop + rect.height / 2); const side (idx % 2 0) ? -1 : 1; // alternate const x Math.round(svgCenterX + side * horizOffset); return { x, y: centerY }; }); } function createSegmentPathString(pointA, bezierSegment) { return `M ${pointA.x} ${pointA.y} C ${bezierSegment.c1x} ${bezierSegment.c1y}, ${bezierSegment.c2x} ${bezierSegment.c2y}, ${bezierSegment.x} ${bezierSegment.y}`; } function generateSVG() { const container document.getElementById(svgContainer); container.innerHTML ; // clear prior const points getPointsForTimeline(); if (points.length 2) return; // Build full path and compute beziers const { d: fullD, beziers } buildFullPath(points); // svg sizing const lastY pointspoints.length - 1.y; const svgHeight Math.max(lastY + 420, 1600); const svgWidth parseFloat(getComputedStyle(document.documentElement).getPropertyValue(--svg-w)) || 160; // create svg element const svgNS http://www.w3.org/2000/svg; const svg document.createElementNS(svgNS, svg); svg.setAttribute(width, svgWidth); svg.setAttribute(height, svgHeight); svg.setAttribute(viewBox, `0 0 ${svgWidth} ${svgHeight}`); svg.classList.add(neon-svg); // create base faint track (full) const base document.createElementNS(svgNS, path); base.setAttribute(d, fullD); base.setAttribute(class, base-track); svg.appendChild(base); // create segmented neon paths (one per segment) const segmentsGroup document.createElementNS(svgNS, g); segmentsGroup.setAttribute(id, segments); svg.appendChild(segmentsGroup); const segmentPaths ; for (let i 0; i beziers.length; i++) { const segD createSegmentPathString(pointsi, beziersi); const segPath document.createElementNS(svgNS, path); segPath.setAttribute(d, segD); segPath.setAttribute(id, `seg${i+1}`); segPath.setAttribute(class, seg-neon stroke-dash); segPath.setAttribute(style, `animation-delay: ${i*0.12}s; stroke: ${getComputedStyle(document.documentElement).getPropertyValue(--neon) || #0fff84}`); segmentsGroup.appendChild(segPath); segmentPaths.push(segPath); } // add a soft tail after the last point for natural ending const last pointspoints.length - 1; const tailD `M ${last.x} ${last.y} C ${last.x+18} ${last.y+60}, ${last.x+8} ${last.y+150}, ${last.x} ${last.y+150}`; const tail document.createElementNS(svgNS, path); tail.setAttribute(d, tailD); tail.setAttribute(stroke, rgba(15,255,132,0.55)); tail.setAttribute(stroke-width, 6); tail.setAttribute(fill,none); tail.setAttribute(stroke-linecap,round); svg.appendChild(tail); // append svg to container container.appendChild(svg); for (let i 0; i beziers.length; i++) { const segD segmentPathsi.getAttribute(d); const orb document.createElement(div); orb.className pulse-dot; orb.style.position absolute; orb.style.width 12px; orb.style.height 12px; orb.style.borderRadius 999px; orb.style.background var(--neon-strong); orb.style.left `calc(50% - 6px)`; // centered horizontally over svg column orb.style.top `0px`; orb.style.offsetPath `path(${segD})`; // different durations/delays for variety const dur 5.5 + (i * 0.6); // segment-dependent duration orb.style.animation `travel ${dur}s linear ${i * 0.2}s infinite`; orb.style.filter drop-shadow(0 0 10px rgba(15,255,132,0.9)); orb.style.zIndex 6; container.appendChild(orb); } if (!document.getElementById(orbTravelKeyframes)) { const style document.createElement(style); style.id orbTravelKeyframes; style.innerHTML `@keyframes travel { to { offset-distance: 100%; } }`; document.head.appendChild(style); } // return objects for observer use return { svg, segments: segmentPaths, tail, points }; } // debounced rebuild let rebuildTimer null; function rebuildSVG(){ clearTimeout(rebuildTimer); rebuildTimer setTimeout(() > { generateSVG(); AOS.refresh(); // reattach observer after short delay setTimeout(attachObserver, 200); }, 120); } // initial build and on resize window.addEventListener(load, () > { rebuildSVG(); setTimeout(rebuildSVG, 300); }); window.addEventListener(resize, () > rebuildSVG()); /* Card tilt */ document.addEventListener(DOMContentLoaded, () > { document.querySelectorAll(.tilt-card).forEach(card > { const inner card.querySelector(.tilt-inner); if (!inner) return; card.addEventListener(mousemove, (e) > { const rect card.getBoundingClientRect(); const x (e.clientX - rect.left) / rect.width - 0.5; const y (e.clientY - rect.top) / rect.height - 0.5; const rx (y * 8) * -1; const ry (x * 10); inner.style.transform `rotateX(${rx}deg) rotateY(${ry}deg) translateZ(8px)`; }); card.addEventListener(mouseleave, () > inner.style.transform rotateX(0) rotateY(0) translateZ(0)); }); }); /* IntersectionObserver: light segments and badges when visible */ function attachObserver(){ const svgWrap document.getElementById(svgContainer); const neonPaths svgWrap.querySelectorAll(.seg-neon); const articles Array.from(document.querySelectorAll(#timeline articleid^y)); // map segments: segment i corresponds to article i and i+1 visually const obs new IntersectionObserver((entries) > { entries.forEach(entry > { const el entry.target; const idx articles.indexOf(el); if (idx -1) return; // compute which segment to highlight const segIndex Math.min(idx, neonPaths.length - 1); if (entry.isIntersecting) { el.querySelector(.year-badge)?.classList.add(lit); // highlight segIndex path strongly neonPaths.forEach((p, i) > { if (i segIndex) { p.style.stroke rgb(15,255,132); p.style.filter drop-shadow(0 0 20px rgba(15,255,132,0.95)); } else { p.style.stroke getComputedStyle(document.documentElement).getPropertyValue(--neon); p.style.filter ; } }); } else { el.querySelector(.year-badge)?.classList.remove(lit); } }); }, { threshold: 0.42 }); // observe all articles document.querySelectorAll(#timeline articleid^y).forEach(a > obs.observe(a)); } /* helper: smooth scroll to year */ function scrollToYear(id){ document.getElementById(id)?.scrollIntoView({behavior:smooth, block:center}); } /script> script> /* Add multiple moving neon orbs along the full SVG path with staggered delays */ function addNeonOrbs() { const container document.getElementById(svgContainer); if (!container) return; const svg container.querySelector(svg); if (!svg) return; const basePath svg.querySelector(.base-track); const tailPath Array.from(svg.querySelectorAll(path)) .find(p > p.getAttribute(stroke)?.startsWith(rgba)); // tail path if (!basePath) return; // Combine base-track + tail path for full travel const fullD basePath.getAttribute(d) + (tailPath ? + tailPath.getAttribute(d) : ); const ns http://www.w3.org/2000/svg; // create glow filter if not exists if (!svg.querySelector(#orbGlow)) { const defs document.createElementNS(ns,defs); const filter document.createElementNS(ns,filter); filter.setAttribute(id,orbGlow); const feGaussian document.createElementNS(ns,feGaussianBlur); feGaussian.setAttribute(stdDeviation,4); feGaussian.setAttribute(result,blur); const feMerge document.createElementNS(ns,feMerge); const feMergeNode1 document.createElementNS(ns,feMergeNode); feMergeNode1.setAttribute(in,blur); const feMergeNode2 document.createElementNS(ns,feMergeNode); feMergeNode2.setAttribute(in,SourceGraphic); feMerge.appendChild(feMergeNode1); feMerge.appendChild(feMergeNode2); filter.appendChild(feGaussian); filter.appendChild(feMerge); defs.appendChild(filter); svg.appendChild(defs); } // create hidden path for motion let fullPath svg.querySelector(#fullPathForOrb); if (!fullPath) { fullPath document.createElementNS(ns,path); fullPath.setAttribute(d, fullD); fullPath.setAttribute(id, fullPathForOrb); fullPath.setAttribute(fill,none); svg.appendChild(fullPath); } const numOrbs 3; // number of moving orbs const duration 8; // total duration in seconds const delayStep duration / numOrbs; // stagger delay between orbs for (let i 0; i numOrbs; i++) { const orb document.createElementNS(ns,circle); orb.setAttribute(r,7); orb.setAttribute(fill,#7cffb6); orb.setAttribute(filter,url(#orbGlow)); const animate document.createElementNS(ns,animateMotion); animate.setAttribute(dur, `${duration}s`); animate.setAttribute(repeatCount,indefinite); animate.setAttribute(begin, `${i * delayStep}s`); // stagger start time const mpath document.createElementNS(ns,mpath); mpath.setAttributeNS(http://www.w3.org/1999/xlink,xlink:href,#fullPathForOrb); animate.appendChild(mpath); orb.appendChild(animate); svg.appendChild(orb); } } // wait until your dynamic SVG is ready window.addEventListener(load, () > { setTimeout(addNeonOrbs, 500); // small delay to ensure timeline SVG is built }); /script> /body>script>undefined typeof _trfq || (window._trfq );undefined typeof _trfd && (window._trfd),_trfd.push({tccl.baseHost:secureserver.net},{ap:cpsh-oh},{server:p3plzcpnl504588},{dcenter:p3},{cp_id:10822310},{cp_cl:8}) // Monitoring performance to make your website faster. If you want to opt-out, please contact web hosting support./script>script srchttps://img1.wsimg.com/traffic-assets/js/tccl.min.js>/script>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]