diff --git a/public/assets/css/main.css b/public/assets/css/main.css index 7e9a096..2f11b5a 100644 --- a/public/assets/css/main.css +++ b/public/assets/css/main.css @@ -2643,12 +2643,15 @@ only screen and (min-width: 576px) and (max-width: 767px) { } .footer-widget-2 ul.service-list li::before { - content: "\e902"; - font-family: 'icomoon'; + content: ""; + background-image: url("/assets/img/arrow-white.png"); + background-size: contain; + background-repeat: no-repeat; + width: 14px; + height: 14px; position: absolute; - top: 0; - left: -30px; - transition: all 500ms ease; + top: 6px; + left: -25px; } .footer-widget-2 ul.service-list li:hover { diff --git a/public/assets/img/home/section10/footer-img.webp b/public/assets/img/home/section10/footer-img.webp new file mode 100644 index 0000000..10b5b60 Binary files /dev/null and b/public/assets/img/home/section10/footer-img.webp differ diff --git a/public/assets/img/home/section3/3.webp b/public/assets/img/home/section3/3.webp index 7333481..b27dc6f 100644 Binary files a/public/assets/img/home/section3/3.webp and b/public/assets/img/home/section3/3.webp differ diff --git a/src/app/website-development-service/page.tsx b/src/app/website-development-service/page.tsx index 0865eea..2513da2 100644 --- a/src/app/website-development-service/page.tsx +++ b/src/app/website-development-service/page.tsx @@ -1,5 +1,5 @@ import React from "react"; -import MainLayout from "@/components/layout/MainLayout"; +import MainLayout from "@/components/web-development-service/support/layout/MainLayout"; import Hero from "@/components/web-development-service/Hero"; import BannerBottom from "@/components/web-development-service/BannerBottom"; import BrandSlider from "@/components/web-development-service/BrandSlider"; diff --git a/src/components/faq/FaqPageSection.tsx b/src/components/faq/FaqPageSection.tsx index 02f81e6..772e60b 100644 --- a/src/components/faq/FaqPageSection.tsx +++ b/src/components/faq/FaqPageSection.tsx @@ -124,15 +124,19 @@ const FaqPageSection = () => { return (
-
-
-
+
+
+
- FAQ + Digital Mastery Unlocked -

Frequently Asked Questions

-

- Transparent answers to the most common questions about our agency, development process, and partnership models. +

Metatroncube FAQs: Web-Apps, SEO, & Digital Marketing

+
+
+
+
+

+ Welcome to Metatroncube’s FAQ page, where we delve into the intricacies of Web-App Development, the nuances of SEO, and the dynamics of Digital Marketing. Our goal is to address your queries and provide insightful answers that empower your digital journey, whether you’re navigating website design, mobile app development, or looking for effective digital marketing strategies.

@@ -254,10 +258,14 @@ const FaqPageSection = () => { } .section-desc { color: #64748b; - max-width: 600px; - margin: 0 auto; font-size: 16px; - margin-bottom: 40px; + } + @media (max-width: 991px) { + .section-desc { + margin-top: 20px !important; + padding-left: 0 !important; + border-left: none !important; + } } .faq-item { background: #fff; diff --git a/src/components/home/PortfolioSection.tsx b/src/components/home/PortfolioSection.tsx index 01e03ff..0a45514 100644 --- a/src/components/home/PortfolioSection.tsx +++ b/src/components/home/PortfolioSection.tsx @@ -155,10 +155,10 @@ function MobileCard({ item, onOpen }: { item: (typeof MobileAppServicesData)[0],

{item.name}

{item.category === "live" && ( - 🟢 Live + Live )} {item.category === "coming-soon" && ( - 🔜 Coming Soon + Coming Soon )}
diff --git a/src/components/layout/Footer/Footer.tsx b/src/components/layout/Footer/Footer.tsx index 20c8745..42bb5a1 100644 --- a/src/components/layout/Footer/Footer.tsx +++ b/src/components/layout/Footer/Footer.tsx @@ -1,7 +1,7 @@ import Link from 'next/link'; import React from 'react'; -const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', containerClass = 'vl-footer1-section-area', topSpace = false }) => { +const Footer = ({ logo = '/assets/img/logo.webp', containerClass = 'vl-footer1-section-area', topSpace = false }) => { const currentYear = new Date().getFullYear(); const companyLinks = [ @@ -19,7 +19,7 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta const socialLinks = [ { icon: 'fa-facebook-f', link: 'https://www.facebook.com/metatroncubecanada', bg: '#0866ff' }, { icon: 'fa-instagram', link: 'https://www.instagram.com/metatron_digitalagency', bg: '#d62976' }, - { icon: 'fa-x-twitter', link: 'https://x.com/MetatroncubeDA', bg: '#000' }, + { icon: 'fa-brands fa-twitter', link: 'https://x.com/MetatroncubeDA', bg: '#000' }, { icon: 'fa-linkedin-in', link: 'https://www.linkedin.com/company/metatroncube-software-solutions/posts/?feedView=all', bg: '#0077b5' }, { icon: 'fa-youtube', link: 'https://www.youtube.com/@metatron_digitalagency', bg: '#ff0000' }, ]; @@ -28,7 +28,7 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta
{/* Light overlay to ensure text readability */} -
+
{topSpace && ( <> @@ -51,7 +51,7 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta
MetatronCube Logo
-

+

We build high-converting, fast, and SEO-optimized websites that generate leads, increase sales, and accelerate your business growth.

@@ -89,7 +89,7 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta
-

+

Company

@@ -98,9 +98,9 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta
  • ) => { e.currentTarget.style.color = '#3779b9'; }} - onMouseLeave={(e: React.MouseEvent) => { e.currentTarget.style.color = '#1a1f2b'; }} + onMouseLeave={(e: React.MouseEvent) => { e.currentTarget.style.color = '#fff'; }} > {item.label} @@ -114,7 +114,7 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta
    -

    +

    Services

    @@ -123,9 +123,9 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta
  • ) => { e.currentTarget.style.color = '#3779b9'; }} - onMouseLeave={(e: React.MouseEvent) => { e.currentTarget.style.color = '#1a1f2b'; }} + onMouseLeave={(e: React.MouseEvent) => { e.currentTarget.style.color = '#fff'; }} > {item.label} @@ -140,7 +140,7 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta
    -

    +

    Get In Touch

    @@ -151,7 +151,7 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta
    @@ -163,7 +163,7 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta
    -

    +

    Waterloo, Ontario Canada

    @@ -175,7 +175,7 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta
  • @@ -189,7 +189,7 @@ const Footer = ({ logo = '/assets/img/home/footer/footer-logo-black.webp', conta
    -

    © Copyright {currentYear} - MetatronCube. All Right Reserved

    +

    © Copyright {currentYear} - MetatronCube. All Right Reserved

    diff --git a/src/components/layout/Footer1.tsx b/src/components/layout/Footer1.tsx index ae15edf..b17a6ee 100644 --- a/src/components/layout/Footer1.tsx +++ b/src/components/layout/Footer1.tsx @@ -12,9 +12,10 @@ const Footer1 = () => (
    -

    Phasellus ultricies aliquam volutpat ullamcorper laoreet neque, a lacinia curabitur lacinia mollis

    +

    Metatroncube Software Solutions: Where innovation meets execution to elevate your digital presence. Partner with us for bespoke web and app development that powers your business growth.

    + @@ -23,38 +24,35 @@ const Footer1 = () => (
    -

    Our Services

    +

    Quick Links

      -
    • IT Management
    • -
    • SEO Optimization
    • -
    • Web Development
    • -
    • Cyber Security
    • -
    • Data Security
    • +
    • Home
    • +
    • About
    • +
    • Careers
    • +
    • Portfolio
    • +
    • Faq
    • +
    • Blog
    • +
    • Contact
    -
    -

    Latest Post

    -
      - {[1, 2].map((num) => ( -
    • -
      -
      -
      - 05 Dec, 2024 -
      {num === 1 ? "Tacking the Changes of Retail Industry" : "What’s the Holding Back the It Solution"}
      -
      -
      -
    • - ))} +
      +

      Our Services

      +
        +
      • Website Development
      • +
      • Mobile Application Development
      • +
      • Graphic Designing
      • +
      • UI / UX Designing
      • +
      • SEO & Content Writing
      • +
      • Digital Marketing

    Newsletter

    -

    Sign Up For News & Get 30% Off in New User.

    +

    Subscribe our newsletter to get our latest update & news

    @@ -72,10 +70,14 @@ const Footer1 = () => (
    - © All Copyright 2024 by Metatron + + © {new Date().getFullYear()} by{" "} + Metatroncube Software Solutions. + All Rights Reserved. +
    - Terms & Condition + Accessibility Statement Privacy Policy
    diff --git a/src/components/mobile-app-development-service/style-app.css b/src/components/mobile-app-development-service/style-app.css index 0eac666..6938eb9 100644 --- a/src/components/mobile-app-development-service/style-app.css +++ b/src/components/mobile-app-development-service/style-app.css @@ -19386,41 +19386,77 @@ img { font-size: 16px; line-height: 1.6; } + /* New Button Styles - Theme Blue-Dark-Blue Gradient + Radius + Icon */ -.vl-btn1, .vl-btn2, .vl-btn3, .vl-btn4, .vl-btn5, .vl-btn6, .kf-demo-btn, .secondary-cta { - background: linear-gradient(90deg, #3779b9 0%, #1a1f2b 50%, #3779b9 100%) !important; - background-size: 200% auto !important; - border-radius: 10px !important; - color: #fff !important; - padding: 20px 30px !important; - border: none !important; - transition: all 0.5s ease !important; - display: inline-flex !important; - align-items: center !important; - justify-content: center !important; - gap: 8px !important; - text-decoration: none !important; +.vl-btn1, +.vl-btn2, +.vl-btn3, +.vl-btn4, +.vl-btn5, +.vl-btn6, +.kf-demo-btn, +.secondary-cta { + background: linear-gradient(90deg, #3779b9 0%, #1a1f2b 50%, #3779b9 100%) !important; + background-size: 200% auto !important; + border-radius: 10px !important; + color: #fff !important; + padding: 15px 20px !important; + border: none !important; + transition: all 0.5s ease !important; + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; + gap: 8px !important; + text-decoration: none !important; } -.vl-btn1:hover, .vl-btn2:hover, .vl-btn3:hover, .vl-btn4:hover, .vl-btn5:hover, .vl-btn6:hover, .kf-demo-btn:hover, .secondary-cta:hover { - background-position: right center !important; - color: #fff !important; - transform: translateY(-2px) !important; - box-shadow: 0 5px 15px rgba(55, 121, 185, 0.4) !important; +.vl-btn1:hover, +.vl-btn2:hover, +.vl-btn3:hover, +.vl-btn4:hover, +.vl-btn5:hover, +.vl-btn6:hover, +.kf-demo-btn:hover, +.secondary-cta:hover { + background-position: right center !important; + color: #fff !important; + transform: translateY(-2px) !important; + box-shadow: 0 5px 15px rgba(55, 121, 185, 0.4) !important; } /* icon styles */ -.vl-btn1 i, .vl-btn2 i, .vl-btn3 i, .vl-btn4 i, .vl-btn5 i, .vl-btn6 i, .kf-demo-btn i, .secondary-cta i { - display: inline-block !important; - font-size: 14px !important; - margin-left: 5px !important; - transition: transform 0.3s ease !important; +.vl-btn1 i, +.vl-btn2 i, +.vl-btn3 i, +.vl-btn4 i, +.vl-btn5 i, +.vl-btn6 i, +.kf-demo-btn i, +.secondary-cta i { + display: inline-block !important; + font-size: 14px !important; + margin-left: 5px !important; + transition: transform 0.3s ease !important; } -.vl-btn1:hover i, .vl-btn2:hover i, .vl-btn3:hover i, .vl-btn4:hover i, .vl-btn5:hover i, .vl-btn6:hover i, .kf-demo-btn:hover i, .secondary-cta:hover i { - transform: translateX(3px) !important; +.vl-btn1:hover i, +.vl-btn2:hover i, +.vl-btn3:hover i, +.vl-btn4:hover i, +.vl-btn5:hover i, +.vl-btn6:hover i, +.kf-demo-btn:hover i, +.secondary-cta:hover i { + transform: translateX(3px) !important; } -.vl-btn1::after, .vl-btn2::after, .vl-btn3::after, .vl-btn4::after, .vl-btn5::after, .vl-btn6::after, .kf-demo-btn::after, .secondary-cta::after { - display: none !important; -} +.vl-btn1::after, +.vl-btn2::after, +.vl-btn3::after, +.vl-btn4::after, +.vl-btn5::after, +.vl-btn6::after, +.kf-demo-btn::after, +.secondary-cta::after { + display: none !important; +} \ No newline at end of file diff --git a/src/components/mobile-app-development-service/support/layout/Footer/Footer.tsx b/src/components/mobile-app-development-service/support/layout/Footer/Footer.tsx index a178c3b..12167d5 100644 --- a/src/components/mobile-app-development-service/support/layout/Footer/Footer.tsx +++ b/src/components/mobile-app-development-service/support/layout/Footer/Footer.tsx @@ -9,7 +9,7 @@ const Footer = ({ logo = '/assets/img-app/home/footer/footer-logo-black.webp', c { label: 'About Us', link: '#about' }, { label: 'Portfolio', link: '#portfolio' }, { label: 'Faq', link: '#faq' }, - { label: 'Contact', link: '/pages/contact' }, + { label: 'Contact', link: '#contact-trigger' }, ]; const serviceLinks = [ @@ -101,6 +101,12 @@ const Footer = ({ logo = '/assets/img-app/home/footer/footer-logo-black.webp', c style={{ color: '#1a1f2b', textDecoration: 'none', transition: 'color 0.3s' }} onMouseEnter={(e: React.MouseEvent) => { e.currentTarget.style.color = '#3779b9'; }} onMouseLeave={(e: React.MouseEvent) => { e.currentTarget.style.color = '#1a1f2b'; }} + onClick={(e) => { + if (item.link === '#contact-trigger') { + e.preventDefault(); + window.dispatchEvent(new CustomEvent('openContactPopup')); + } + }} > {item.label} @@ -126,6 +132,12 @@ const Footer = ({ logo = '/assets/img-app/home/footer/footer-logo-black.webp', c style={{ color: '#1a1f2b', textDecoration: 'none', transition: 'color 0.3s' }} onMouseEnter={(e: React.MouseEvent) => { e.currentTarget.style.color = '#3779b9'; }} onMouseLeave={(e: React.MouseEvent) => { e.currentTarget.style.color = '#1a1f2b'; }} + onClick={(e) => { + if (item.link === '#contact-trigger') { + e.preventDefault(); + window.dispatchEvent(new CustomEvent('openContactPopup')); + } + }} > {item.label} diff --git a/src/components/web-development-service/CaseStudies.tsx b/src/components/web-development-service/CaseStudies.tsx index 7d08dea..4ff818e 100644 --- a/src/components/web-development-service/CaseStudies.tsx +++ b/src/components/web-development-service/CaseStudies.tsx @@ -41,7 +41,7 @@ const CaseStudies = () => { slidesToShow: 3, slidesToScroll: 1, autoplay: true, - autoplaySpeed: 3000, + autoplaySpeed: 2000, arrows: false, pauseOnHover: true, responsive: [ diff --git a/src/components/web-development-service/Pricing.tsx b/src/components/web-development-service/Pricing.tsx index dc87559..b56406e 100644 --- a/src/components/web-development-service/Pricing.tsx +++ b/src/components/web-development-service/Pricing.tsx @@ -37,7 +37,7 @@ const Pricing = () => { background: plan.isPopular ? '#1a1f2b' : '#fff', transition: 'all 0.4s', border: plan.isPopular ? 'none' : '1px solid #e3eaf4', - boxShadow: plan.isPopular ? '0 30px 60px rgba(0,0,0,0.15)' : 'none', + boxShadow: '0 30px 60px rgba(0,0,0,0.5)', position: 'relative', height: '100%', display: 'flex', diff --git a/src/components/web-development-service/style.css b/src/components/web-development-service/style.css index 5a67618..e2effe2 100644 --- a/src/components/web-development-service/style.css +++ b/src/components/web-development-service/style.css @@ -3416,7 +3416,7 @@ Location: } .service1-section-area .service1-boxarea:hover h5::after { - background: #1a1f2b; + background: #fff; transition: all 0.4s; left: 26px; } @@ -3522,7 +3522,7 @@ Location: left: 0; top: 6px; transition: all 0.4s; - background: #1a1f2b; + background: #3779b9; } .service2-section-area { @@ -19393,7 +19393,7 @@ img { background-size: 200% auto !important; border-radius: 10px !important; color: #fff !important; - padding: 20px 30px !important; + padding: 15px 20px !important; border: none !important; transition: all 0.5s ease !important; display: inline-flex !important; diff --git a/src/components/web-development-service/support/layout/Footer/Footer.tsx b/src/components/web-development-service/support/layout/Footer/Footer.tsx new file mode 100644 index 0000000..07b5058 --- /dev/null +++ b/src/components/web-development-service/support/layout/Footer/Footer.tsx @@ -0,0 +1,213 @@ +import Link from 'next/link'; +import React from 'react'; + +const Footer = ({ logo = '/assets/img/logo.webp', containerClass = 'vl-footer1-section-area', topSpace = false }) => { + const currentYear = new Date().getFullYear(); + + const companyLinks = [ + { label: 'Home', link: '#home' }, + { label: 'About Us', link: '#about' }, + { label: 'Portfolio', link: '#portfolio' }, + { label: 'Faq', link: '#faq' }, + { label: 'Contact', link: '#contact-trigger' }, + ]; + + const serviceLinks = [ + { label: 'Website Development', link: '#services' }, + ]; + + const socialLinks = [ + { icon: 'fa-facebook-f', link: 'https://www.facebook.com/metatroncubecanada', bg: '#0866ff' }, + { icon: 'fa-instagram', link: 'https://www.instagram.com/metatron_digitalagency', bg: '#d62976' }, + { icon: 'fa-brands fa-twitter', link: 'https://x.com/MetatroncubeDA', bg: '#000' }, + { icon: 'fa-linkedin-in', link: 'https://www.linkedin.com/company/metatroncube-software-solutions/posts/?feedView=all', bg: '#0077b5' }, + { icon: 'fa-youtube', link: 'https://www.youtube.com/@metatron_digitalagency', bg: '#ff0000' }, + ]; + + return ( +
    + {/* Light overlay to ensure text readability */} +
    + + {topSpace && ( + <> +
    +
    + + )} +
    +
    + {/* Column 1: Logo & Description */} +
    +
    + MetatronCube Logo +
    +

    + We build high-converting, fast, and SEO-optimized websites that generate leads, increase sales, and accelerate your business growth. +

    +
    + +
    +
    + + {/* Column 2: Company */} +
    +
    +
    +

    + Company + +

    +
      + {companyLinks.map((item, idx) => ( +
    • + ) => { e.currentTarget.style.color = '#3779b9'; }} + onMouseLeave={(e: React.MouseEvent) => { e.currentTarget.style.color = '#fff'; }} + onClick={(e) => { + if (item.link === '#contact-trigger') { + e.preventDefault(); + window.dispatchEvent(new CustomEvent('openContactPopup')); + } + }} + > + {item.label} + +
    • + ))} +
    +
    +
    + + {/* Column 3: Services */} +
    +
    +
    +

    + Services + +

    +
      + {serviceLinks.map((item, idx) => ( +
    • + ) => { e.currentTarget.style.color = '#3779b9'; }} + onMouseLeave={(e: React.MouseEvent) => { e.currentTarget.style.color = '#fff'; }} + onClick={(e) => { + if (item.link === '#contact-trigger') { + e.preventDefault(); + window.dispatchEvent(new CustomEvent('openContactPopup')); + } + }} + > + {item.label} + +
    • + ))} +
    +
    +
    + + {/* Column 4: Newsletter */} + {/* Column 4: Location */} + +
    + +
    +
    +
    +
    +

    © Copyright {currentYear} - MetatronCube. All Right Reserved

    +
    +
    +
    +
    +
    + ); +}; + +export default Footer; diff --git a/src/components/web-development-service/support/layout/Header/Header.tsx b/src/components/web-development-service/support/layout/Header/Header.tsx new file mode 100644 index 0000000..bc5b7ce --- /dev/null +++ b/src/components/web-development-service/support/layout/Header/Header.tsx @@ -0,0 +1,73 @@ +"use client"; +import React, { useState, useEffect } from 'react'; +import Link from 'next/link'; +import useSticky from '@/hooks/useSticky'; +import NavItems from './NavItems'; +import MobileMenu from './MobileMenu'; +import ContactPopup from '@/components/common/ContactPopup/ContactPopup'; + +const Header = () => { + const sticky = useSticky(); + const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); + const [isPopupOpen, setIsPopupOpen] = useState(false); + + useEffect(() => { + const handleOpenPopup = () => setIsPopupOpen(true); + window.addEventListener('openContactPopup', handleOpenPopup); + return () => window.removeEventListener('openContactPopup', handleOpenPopup); + }, []); + + const toggleMobileMenu = () => { + setIsMobileMenuOpen(!isMobileMenuOpen); + }; + + return ( + <> +
    +
    +
    +
    +
    +
    + + MetatronCube + +
    +
    +
    +
    + +
    +
    +
    +
    + + + +
    +
    + +
    +
    +
    +
    +
    +
    + + + setIsPopupOpen(false)} /> + + ); +}; + +export default Header; diff --git a/src/components/web-development-service/support/layout/Header/MobileMenu.tsx b/src/components/web-development-service/support/layout/Header/MobileMenu.tsx new file mode 100644 index 0000000..6981792 --- /dev/null +++ b/src/components/web-development-service/support/layout/Header/MobileMenu.tsx @@ -0,0 +1,86 @@ +"use client"; +import React from 'react'; +import Link from 'next/link'; + +interface MobileMenuProps { + isMobileMenuOpen: boolean; + toggleMobileMenu: () => void; + themeBtn?: string; + arrow?: boolean; + arrow2?: boolean; +} + +const navItems = [ + { title: 'Home', link: '#home' }, + { title: 'About', link: '#about' }, + { title: 'Services', link: '#services' }, + { title: 'Portfolio', link: '#portfolio' }, + { title: 'FAQ', link: '#faq' }, + { title: 'Contact', link: '#contact-trigger' }, +]; + +const MobileMenu: React.FC = ({ isMobileMenuOpen, toggleMobileMenu }) => { + return ( +
    +
    +
    +
    +
    + + logo + +
    +
    + +
    +
    + +
    + +
    + +
    + + +
    +
    +

    Follow Us

    + + + + + +
    +
    +
    +
    +
    + ); +}; + +export default MobileMenu; diff --git a/src/components/web-development-service/support/layout/Header/NavItems.tsx b/src/components/web-development-service/support/layout/Header/NavItems.tsx new file mode 100644 index 0000000..0b75406 --- /dev/null +++ b/src/components/web-development-service/support/layout/Header/NavItems.tsx @@ -0,0 +1,42 @@ +import Link from 'next/link'; +import React from 'react'; + +interface NavItemsProps { + themeBtn?: string; + arrow?: boolean; + arrow2?: boolean; + btnSpace?: boolean; +} + +const navItems = [ + { title: 'Home', link: '#home' }, + { title: 'About', link: '#about' }, + { title: 'Services', link: '#services' }, + { title: 'Portfolio', link: '#portfolio' }, + { title: 'FAQ', link: '#faq' }, + { title: 'Contact', link: '#contact-trigger' }, +]; + +const NavItems: React.FC = () => { + return ( +
      + {navItems.map((item, index) => ( +
    • + { + if (item.link === '#contact-trigger') { + e.preventDefault(); + window.dispatchEvent(new CustomEvent('openContactPopup')); + } + }} + > + {item.title} + +
    • + ))} +
    + ); +}; + +export default NavItems; diff --git a/src/components/web-development-service/support/layout/MainLayout.tsx b/src/components/web-development-service/support/layout/MainLayout.tsx new file mode 100644 index 0000000..0835bd0 --- /dev/null +++ b/src/components/web-development-service/support/layout/MainLayout.tsx @@ -0,0 +1,26 @@ +"use client"; +import React, { useEffect } from 'react'; +import AOS from 'aos'; +import Header from './Header/Header'; +import Footer from './Footer/Footer'; +import CTA from '@/components/layout/CTA/CTA'; + +const MainLayout = ({ children }: { children: React.ReactNode }) => { + useEffect(() => { + AOS.init({ + duration: 1000, + once: true, + }); + }, []); + + return ( + <> +
    +
    {children}
    + +