diff --git a/src/app/careers/page.tsx b/src/app/careers/page.tsx index f4c9e9a..19d5694 100644 --- a/src/app/careers/page.tsx +++ b/src/app/careers/page.tsx @@ -12,7 +12,7 @@ import ServiceSection from "@/components/careers/ServiceSection"; import WorkProcessSection from "@/components/careers/WorkProcessSection"; import FeaturesSection from "@/components/home/home-1/FeaturesSection"; import PageHeader from "@/components/common/PageHeader"; -import AboutService from "@/components/services/AboutService"; +import AboutService from "@/components/services-digital-solutions/AboutService"; import AboutThree from "@/components/home/AboutThree"; import FaqFour from "@/components/home/FaqFour"; diff --git a/src/app/faq/page.tsx b/src/app/faq/page.tsx index fd5c3fe..51bdd04 100644 --- a/src/app/faq/page.tsx +++ b/src/app/faq/page.tsx @@ -7,6 +7,7 @@ import InnerBanner from "@/components/common/InnerBanner"; import FaqPageSection from "@/components/faq/FaqPageSection"; import FaqVideoSection from "@/components/careers/FaqVideoSection"; import PageHeader from "@/components/common/PageHeader"; +import FaqSection from "@/components/home/home-3/FaqSection"; export default function FaqPage() { useEffect(() => { @@ -27,6 +28,7 @@ export default function FaqPage() { + diff --git a/src/app/globals.css b/src/app/globals.css index 3ae2740..72b17f9 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -2024,6 +2024,7 @@ body { border-radius: 10px; padding: 58px 30px 40px 200px; z-index: 2; + top: -91px; } .contact-one__info__icon { @@ -5191,7 +5192,7 @@ body { font-weight: 400; line-height: 26px; color: var(--pelocis-white, #fff); - margin: 0 0 59px; + margin: 0 0 -10px; } @media (min-width: 1200px) { @@ -5218,7 +5219,7 @@ body { gap: 20px; padding: 30px 0; border-bottom: 1px solid var(--pelocis-border-color, #DDDDDD); - margin-bottom: 26px; + /* margin-bottom: 26px; */ } .about-three__card__item h3 { @@ -8628,4 +8629,1571 @@ body { 66% { transform: translateY(15px) translateX(-10px) scale(0.95) rotate(-4deg); } -} \ No newline at end of file +} + +/* ============================================================ + NEW TESTIMONIALS & PARALLAX SECTION + ============================================================ */ +.testimonial1-section-area { + position: relative; + z-index: 1; +} + +.section-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(26, 31, 43, 0.85); + z-index: 0; +} + +.sp1 { + padding: 100px 0; +} + +@media (max-width: 767px) { + .sp1 { + padding: 60px 0; + } +} + +.testimonial-bubble { + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); + border: 1px solid rgba(255, 255, 255, 0.1); + padding: 30px; + border-radius: 20px; + background: rgba(255, 255, 255, 0.05); + backdrop-filter: blur(10px); +} + +.testimonial-bubble:hover { + transform: translateY(-5px); +} + +.testi-author-info img { + transition: transform 0.3s ease; +} + +.testi-card-wrapper:hover .testi-author-info img { + transform: scale(1.1); +} + +.vl-btn2 { + background: #3779b9; + color: #fff; + padding: 16px 35px; + border-radius: 50px; + font-weight: 700; + transition: all 0.3s ease; + border: none; + text-decoration: none !important; +} + +.vl-btn2:hover { + background: #fff; + color: #1a1f2b; + transform: translateY(-3px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); +} + +/* Parallax Utility */ +.parallax-bg { + background-attachment: fixed !important; +} + +@media (max-width: 1024px) { + .parallax-bg { + background-attachment: scroll !important; + } +} +/* Navigation Dropdown Arrow Rotation */ +.has-dropdown > a > i { + display: inline-block; + transition: transform 0.3s ease; +} + +.has-dropdown:hover > a > i { + transform: rotate(180deg); +} + +.main-menu ul li { + margin-right: 30px; +} + +.main-menu ul li a { + font-weight: 700 !important; + letter-spacing: 0.5px; +} + +.main-menu ul li a:hover { + color: #3779b9 !important; +} + +/* Google Reviews Branding Styles */ +.google-reviews-branding-global { + margin-top: 15px; + display: flex; + flex-direction: column; +} + +.google-reviews-branding-global .google-logo { + font-size: 28px; + font-weight: 700; + line-height: 1.2; + letter-spacing: 3px; + font-family: 'Product Sans', 'Google Sans', Roboto, Arial, sans-serif; + display: flex; + align-items: center; +} + +.google-reviews-branding-global .reviews-text-stars { + font-size: 13px; + font-weight: 700; + line-height: 1.2; + font-family: 'Product Sans', 'Google Sans', Roboto, Arial, sans-serif; + display: flex; + align-items: center; + gap: 5px; + margin-top: -2px; +} + +.google-reviews-branding-global .stars-container { + display: flex; + gap: 1px; + font-size: 13px; + line-height: 1; +} + +/* Testimonials Section Styles */ +.testimonials-two-box-solid { + background: #fff; + padding: 40px 30px 40px 80px; + border-left: 4px solid #3779b9; + position: relative; + margin-left: 60px; + min-height: 320px; + transition: all 0.3s ease; + display: flex; + flex-direction: column; +} + +.author-image-solid { + position: absolute; + left: -50px; + top: 50%; + transform: translateY(-50%); + z-index: 5; +} + +.author-image-solid img { + height: 100px !important; + width: 100px !important; + border-radius: 50%; + object-fit: cover; + border: 5px solid #fff; + box-shadow: 0 5px 15px rgba(0,0,0,0.1); +} + +.icon-quote-testi { + position: absolute; + top: 25px; + right: 25px; + font-size: 40px; + color: rgba(55, 121, 185, 0.1); +} + +.content-solid h4 { + font-size: 20px; + margin-bottom: 2px; + font-weight: 700; + color: #1a1f2b; +} + +.content-solid .tag { + color: #787878; + font-size: 13px; + display: block; + margin-bottom: 10px; +} + +.ratings-solid { + display: flex; + gap: 4px; + margin-bottom: 15px; + color: #FBBC04; +} + +.ratings-solid li { + list-style: none; + font-size: 14px; +} + +.content-solid p { + font-size: 14px; + line-height: 1.6; + color: #555; + margin: 0; + display: -webkit-box; + WebkitLineClamp: 5; + WebkitBoxOrient: vertical; + overflow: hidden; + height: 112px; +} + +.testimonial-dot-inner { + list-style: none; + display: flex !important; + justify-content: center; + padding: 0; + margin-top: 30px; + gap: 10px; +} + +.testimonial-dot-inner li button { + font-size: 0; + width: 12px; + height: 12px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.3); + border: none; + cursor: pointer; + transition: all 0.3s ease; +} + +.testimonial-dot-inner li.slick-active button { + background: #3779b9; + transform: scale(1.3); +} + +/* Home Contact Form Styles */ +.home-contact-form-container-global { + background: #1a1f2b; + padding: 50px; + border-radius: 24px; + box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2); +} + +.form-label-custom-global { + display: block; + margin-bottom: 8px; + font-weight: 700; + color: #fff; + font-size: 14px; + letter-spacing: 0.5px; +} + +.form-input-custom-global, .form-textarea-custom-global, .form-select-custom-styled-global { + width: 100%; + padding: 18px 25px; + border: 1px solid #e2e8f0; + background-color: #fff; + border-radius: 12px; + outline: none; + font-size: 15px; + color: #1e293b; + transition: all 0.3s ease; +} + +.form-textarea-custom-global { + min-height: 120px; + resize: vertical; +} + +.form-input-custom-global:focus, .form-textarea-custom-global:focus, .form-select-custom-styled-global:focus { + border-color: #3779b9; + box-shadow: 0 0 0 4px rgba(55, 121, 185, 0.1); +} + +.submit-btn-custom-global { + width: 100%; + background: #3779b9; + color: #fff; + padding: 20px 30px; + border: none; + border-radius: 12px; + font-weight: 700; + cursor: pointer; + transition: all 0.3s ease; + text-transform: uppercase; + letter-spacing: 1.5px; + font-size: 15px; + box-shadow: 0 10px 20px rgba(99, 102, 241, 0.2); +} + +.submit-btn-custom-global:hover { + background: #1e293b; + transform: translateY(-3px); + box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3); +} + +/* Why Choose Us Section Styles */ +.why-choose-us { + padding: 80px 0; + background: #eaf0f9; +} +@media (max-width: 767px) { + .why-choose-us { + padding: 60px 0; + } +} +.why-choose-us .section-subtitle { + color: #3779b9; + font-weight: 700; + margin-bottom: 15px; + display: flex; + align-items: center; + gap: 12px; + font-size: 15px; + text-transform: uppercase; + letter-spacing: 1px; +} +.why-choose-us .rotate-triangle { + font-size: 14px; + transform: rotate(-30deg); + margin-top: -2px; +} +.why-choose-us .section-title { + font-size: 44px; + font-weight: 800; + color: #1a1a1a; + line-height: 1.2; + margin-bottom: 25px; +} +.why-choose-us .section-desc { + font-size: 16px; + color: #666; + line-height: 1.7; + margin-bottom: 35px; +} +.why-choose-us .feature-item { + padding: 25px 0; +} +.why-choose-us .border-top-line { + border-top: 1px solid #eee; +} +.why-choose-us .feature-icon { + width: 70px; + height: 70px; + background: #3779b9; + border-radius: 6px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 25px; + flex-shrink: 0; + color: #fff; + font-size: 28px; +} +.why-choose-us .feature-content h4 { + font-size: 22px; + font-weight: 700; + margin-bottom: 8px; + color: #1a1a1a; +} +.why-choose-us .feature-content p { + font-size: 15px; + color: #666; + margin: 0; +} +.why-choose-us .bottom-note { + padding-top: 30px; + border-top: 1px solid #eee; +} +.why-choose-us .note-item { + display: flex; + align-items: flex-start; + gap: 15px; +} +.why-choose-us .note-item i { + color: #1a1a1a; + font-size: 18px; + margin-top: 3px; +} +.why-choose-us .note-item span { + font-size: 16px; + color: #444; + font-weight: 500; + line-height: 1.5; +} +.why-choose-us .image-area-wrapper { + padding-left: 20px; +} +.why-choose-us .main-image { + width: 100%; + border-radius: 4px; + overflow: hidden; + box-shadow: 0 30px 60px rgba(0,0,0,0.1); +} +.why-choose-us .main-image img { + width: 100%; + display: block; +} +.why-choose-us .circular-image { + position: absolute; + top: 50%; + left: -80px; + transform: translateY(-50%); + width: 280px; + height: 280px; + background: #fff; + padding: 10px; + border-radius: 50%; + box-shadow: 0 10px 40px rgba(0,0,0,0.15); + z-index: 2; +} +.why-choose-us .inner-circle { + width: 100%; + height: 100%; + border-radius: 50%; + overflow: hidden; + border: 2px solid #fff; +} +.why-choose-us .inner-circle img { + width: 100%; + height: 100%; + object-fit: cover; +} +@media (max-width: 1199px) { + .why-choose-us .circular-image { + width: 220px; + height: 220px; + left: -50px; + } + .why-choose-us .section-title { + font-size: 36px; + } +} +@media (max-width: 991px) { + .why-choose-us .content-area { + padding-right: 0; + margin-bottom: 60px; + } + .why-choose-us .image-area-wrapper { + padding-left: 0; + } + .why-choose-us .circular-image { + width: 200px; + height: 200px; + left: -30px; + } +} +@media (max-width: 575px) { + .why-choose-us .circular-image { + position: relative; + top: 0; + left: 0; + transform: none; + margin: -60px auto 0; + } +} + +/* FAQ Two Section Styles */ +.faq-two { + padding: 120px 0 200px; + position: relative; + background-color: #0f172a; + clip-path: none !important; +} +.faq-two .faq-two__bg { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-attachment: fixed; + background-size: cover; + opacity: 0.15; +} +.faq-two .contact-form-card { + background: rgba(26, 31, 43, 0.8); + backdrop-filter: blur(10px); + padding: 60px; + border-radius: 30px; + border: 1px solid rgba(255, 255, 255, 0.05); + box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3); + margin-bottom: 20px; +} +.faq-two .section-subtitle { + color: #3779b9; + text-transform: uppercase; + letter-spacing: 2px; + font-weight: 700; + font-size: 14px; + display: block; + margin-bottom: 15px; +} +.faq-two .section-heading { + font-size: 42px; + font-weight: 800; + margin-bottom: 0; +} +.faq-two .faq-form-label { + display: block; + color: #fff; + font-size: 14px; + font-weight: 700; + margin-bottom: 8px; + letter-spacing: 0.5px; +} +.faq-two .faq-error { + color: #ff6b6b; + font-size: 12px; + margin-top: 5px; + display: block; +} +.faq-two .faq-contact-form input, +.faq-two .faq-contact-form textarea, +.faq-two .faq-select { + width: 100%; + background: #fff !important; + border: 1px solid #e2e8f0; + padding: 18px 25px; + border-radius: 12px; + color: #1e293b; + outline: none; + transition: all 0.3s ease; + font-size: 15px; +} +.faq-two .faq-select option { + background: #fff; + color: #1e293b; +} +.faq-two .faq-contact-form textarea { + min-height: 150px; + resize: vertical; +} +.faq-two .faq-contact-form input:focus, +.faq-two .faq-contact-form textarea:focus, +.faq-two .faq-select:focus { + border-color: #3779b9; + box-shadow: 0 0 0 4px rgba(55, 121, 185, 0.1); +} +.faq-two .primary-btn-1, .faq-two .primary-btn-1-link { + background: #3779b9; + color: #fff; + padding: 18px 45px; + border-radius: 12px; + font-weight: 700; + border: none; + cursor: pointer; + display: inline-flex; + align-items: center; + gap: 10px; + transition: all 0.3s ease; + text-transform: uppercase; + font-size: 14px; + letter-spacing: 1px; + margin-top: 25px; + box-shadow: 0 10px 20px rgba(99, 102, 241, 0.2); +} +.faq-two .primary-btn-1:hover, .faq-two .primary-btn-1-link:hover { + background: #1e293b; + transform: translateY(-3px); + box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3); + color: #fff; +} + +/* Video Three Section Styles */ +.video-three .video-three__inner { + border-radius: 30px; + overflow: hidden; + min-height: 500px; + display: flex; + align-items: center; + justify-content: center; + position: relative; +} +.video-three .video-three__inner::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(15, 23, 42, 0.6); +} +.video-three .video-content-overlay { + position: relative; + z-index: 1; + text-align: center; + max-width: 800px; + padding: 0 20px; +} +.video-three .consultation-title { + font-size: 48px; + color: #fff; + font-weight: 800; + line-height: 1.2; + margin-bottom: 20px; +} +.video-three .consultation-text { + font-size: 20px; + color: rgba(255, 255, 255, 0.8); + margin-bottom: 0; +} +@media (max-width: 991px) { + .video-three .consultation-title { font-size: 36px; } + .faq-two .contact-form-card { padding: 40px 30px; } +} +@media (max-width: 767px) { + .video-three .consultation-title { font-size: 30px; } +} + +/* Contact One Section Styles */ +.contact-one .form-label { + display: block; + margin-bottom: 8px; + font-weight: 700; + color: #fff; + font-size: 14px; + letter-spacing: 0.5px; +} +.contact-one .form-input, .contact-one .form-textarea, .contact-one .form-select-custom { + width: 100%; + padding: 18px 25px; + border: 1px solid #e2e8f0; + background-color: #fff; + border-radius: 12px; + outline: none; + font-size: 15px; + color: #1e293b; + transition: all 0.3s ease; +} +.contact-one .form-textarea { + min-height: 120px; + resize: vertical; +} +.contact-one .form-input:focus, .contact-one .form-textarea:focus, .contact-one .form-select-custom:focus { + border-color: #3779b9; + box-shadow: 0 0 0 4px rgba(55, 121, 185, 0.1); +} +.contact-one .submit-btn { + width: 100%; + border: none; + transition: all 0.3s ease; +} +.contact-one .text-danger { + color: #ff6b6b; + font-size: 12px; + margin-top: 5px; + display: block; +} + +/* Contact Popup Styles */ +.contact-popup-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(2, 6, 11, 0.85); + backdrop-filter: blur(8px); + z-index: 9999; + display: flex; + align-items: center; + justify-content: center; + padding: 15px; + opacity: 0; + visibility: hidden; + transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1); +} +.contact-popup-overlay.active { + opacity: 1; + visibility: visible; +} +.contact-popup-content { + background: #fff; + width: 100%; + max-width: 1000px; + max-height: 95vh; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 40px 100px rgba(0,0,0,0.4); + position: relative; + display: flex; + flex-direction: column; +} +.contact-popup-content .info-panel { + padding: 50px; + display: flex; + flex-direction: column; + justify-content: center; +} +.contact-popup-content .info-inner { + position: relative; + z-index: 1; +} +.contact-popup-content .title { + font-size: 28px; + font-weight: 800; + margin-bottom: 15px; + line-height: 1.2; + color: #ffffff !important; +} +.contact-popup-content .desc { + font-size: 15px; + color: #ffffff !important; + line-height: 1.5; +} +.contact-popup-content .contact-details { + margin-top: 30px; + margin-bottom: 25px; +} +.contact-popup-content .detail-item { + display: flex; + align-items: center; + margin-bottom: 15px; + gap: 12px; +} +.contact-popup-content .icon { + width: 40px; + height: 40px; + border-radius: 50%; + background: rgba(255,255,255,0.1); + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; +} +.contact-popup-content .text p { + margin: 0; + color: #ffffff !important; + font-size: 12px; +} +.contact-popup-content .text h5 { + margin: 0; + font-size: 15px; + color: #ffffff !important; +} +.contact-popup-content .social-links { + display: flex; + gap: 10px; +} +.contact-popup-content .social-icon { + width: 32px; + height: 32px; + border-radius: 50%; + background: rgba(255,255,255,0.1); + display: flex; + align-items: center; + justify-content: center; + color: #fff; + transition: 0.3s; + font-size: 13px; +} +.contact-popup-content .social-icon:hover { + background: #fff; + color: #3779b9; +} +.contact-popup-content .form-panel { + padding: 40px 50px; + position: relative; + background: #fff; + overflow-y: auto; + scrollbar-width: thin; + scrollbar-color: #3779b9 #f1f1f1; +} +.contact-popup-content .form-title { + font-size: 26px; + font-weight: 800; + margin-bottom: 25px; + color: #1a1f2b; + letter-spacing: -0.5px; +} +.contact-popup-content .form-input, +.contact-popup-content .form-textarea, +.contact-popup-content .form-select { + width: 100%; + padding: 14px 20px; + border-radius: 12px; + border: 1px solid #e2e8f0; + outline: none; + background: #fff; + transition: all 0.3s ease; + font-size: 14px; + color: #1e293b; +} +.contact-popup-content .submit-btn { + width: 100%; + border: none; + padding: 16px; + border-radius: 12px; + margin-top: 20px; + background: #3779b9; + color: #fff; + font-weight: 700; + font-size: 15px; + cursor: pointer; + transition: all 0.3s ease; + text-transform: uppercase; + letter-spacing: 1px; +} +.contact-popup-content .status-wrapper { + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} +.contact-popup-content .close-btn { + position: absolute; + top: 20px; + right: 20px; + background: #f3f4f6; + border: none; + width: 35px; + height: 35px; + border-radius: 50%; + font-size: 18px; + cursor: pointer; + color: #1a1f2b; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.3s; + z-index: 100; +} +@media (max-width: 991px) { + .contact-popup-content .info-panel { display: none; } + .contact-popup-content .form-panel { padding: 40px 30px; } + .contact-popup-content { max-width: 550px; } +} +@media (max-width: 575px) { + .contact-popup-content .form-title { font-size: 20px; margin-bottom: 15px; } + .contact-popup-content .form-input, + .contact-popup-content .form-textarea, + .contact-popup-content .form-select { font-size: 13px; padding: 8px 12px; } + .contact-popup-content .g-recaptcha { + transform: scale(0.85); + transform-origin: 0 0; + } +} + +/* About Service Section Styles */ +.about-service { + padding: 80px 0; + background: #fff; + overflow: hidden; +} +@media (max-width: 767px) { + .about-service { + padding: 60px 0; + } +} +.about-service .experience-box { + position: absolute; + top: 0; + left: 0; + background: #3779b9; + color: #fff; + padding: 40px 30px; + z-index: 3; + text-align: center; + border-radius: 4px; + box-shadow: 0 10px 30px rgba(60, 114, 252, 0.3); +} +.about-service .experience-box h3 { + font-size: 54px; + font-weight: 800; + margin: 0; + line-height: 1; +} +.about-service .experience-box span { + font-size: 16px; + font-weight: 600; + display: block; + margin-top: 5px; + line-height: 1.2; +} +.about-service .main-img-wrap { + width: 100%; + max-width: 450px; + border-radius: 10px; + overflow: hidden; + margin-left: auto; + box-shadow: 0 20px 50px rgba(0,0,0,0.08); +} +.about-service .main-img-wrap img { + width: 100%; + display: block; +} +.about-service .curved-img-wrap { + position: absolute; + bottom: -40px; + left: -20px; + width: 320px; + height: 320px; + border-radius: 100px 30px 100px 100px; + overflow: hidden; + border: 8px solid #fff; + z-index: 2; + box-shadow: 0 15px 45px rgba(0,0,0,0.12); +} +.about-service .curved-img-wrap img { + width: 100%; + height: 100%; + object-fit: cover; +} +.about-service .dots-shape { + position: absolute; + top: 80px; + left: -40px; + z-index: 1; + opacity: 0.4; +} +.about-service .section-subtitle { + color: #3779b9; + font-weight: 700; + margin-bottom: 15px; + display: flex; + align-items: center; + gap: 12px; + font-size: 15px; + text-transform: uppercase; + letter-spacing: 1.5px; +} +.about-service .section-title { + font-size: 46px; + font-weight: 800; + color: #0f172a; + line-height: 1.2; + margin-bottom: 25px; +} +.about-service .section-desc { + font-size: 16px; + color: #64748b; + line-height: 1.8; + margin-bottom: 35px; +} +.about-service .maroon-icon { + color: #0f172a; + font-size: 18px; + margin-right: 12px; +} +.about-service .bullet-item span { + font-size: 16px; + font-weight: 600; + color: #0f172a; +} +.about-service .about-more-btn { + display: inline-flex; + align-items: center; + background: #3779b9; + color: #fff; + padding: 8px 8px 8px 25px; + border-radius: 6px; + text-decoration: none; + font-weight: 700; + font-size: 14px; + letter-spacing: 1px; + transition: all 0.3s ease; +} +.about-service .about-more-btn:hover { + background: #2563eb; + transform: translateY(-2px); +} +.about-service .icon-circle { + width: 40px; + height: 40px; + background: #fff; + color: #3779b9; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + margin-left: 20px; +} +.about-service .animate-bounce-y { + animation: bounceY 4s infinite ease-in-out; +} +@media (max-width: 1199px) { + .about-service .content-area { + padding-left: 30px; + } + .about-service .section-title { + font-size: 38px; + } + .about-service .curved-img-wrap { + width: 260px; + height: 260px; + } +} +@media (max-width: 991px) { + .about-service .about-image-stack { + margin-bottom: 80px; + padding-left: 0; + } + .about-service .content-area { + padding-left: 0; + } +} +@media (max-width: 575px) { + .about-service .curved-img-wrap { + width: 200px; + height: 200px; + bottom: -20px; + left: 0; + } + .about-service .experience-box { + padding: 25px 20px; + } + .about-service .experience-box h3 { + font-size: 40px; + } +} + +/* Blog Section One Styles */ +.blog-section-one .blog-image { + position: relative; + display: block; + overflow: hidden; + border-radius: 20px 20px 0 0; +} +.blog-section-one .blog-image img { + width: 100%; + border-radius: 20px 20px 0 0; +} +.blog-section-one .blog-category-tag { + position: absolute; + bottom: 0px; + right: 0px; + background: #3779b9; + color: #fff; + padding: 10px 20px; + font-size: 13px; + font-weight: 700; + text-transform: uppercase; + z-index: 2; + border-radius: 12px 0 0 0; + letter-spacing: 0.5px; +} +.blog-section-one .blog-style-one { + border-left: 1px solid #e2e8f0; + border-right: 1px solid #e2e8f0; + border-bottom: 1px solid #e2e8f0; + border-radius: 20px 20px 15px 15px; + background: #fff; + transition: all 0.3s ease; +} +.blog-section-one .blog-style-one:hover { + border-color: #3779b9; + box-shadow: 0 10px 30px rgba(55, 121, 185, 0.1); +} +.blog-section-one .blog-content { + padding: 30px 25px; +} +.blog-section-one .blog-title { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + line-height: 1.5; + height: 3em; +} +.blog-section-one .post-meta span { + display: inline-flex; + align-items: center; + gap: 8px; + margin-right: 15px; + font-size: 14px; + color: #64748b; +} +.blog-section-one .post-meta i { + color: #3779b9; +} + +/* Blog Section Three Styles (Home-3) */ +.blog-section-three .blog-title-box { + display: flex; + align-items: flex-end; + justify-content: space-between; + flex-wrap: wrap; + gap: 20px; +} +.blog-section-three .blog-image { + position: relative; + display: block; + overflow: hidden; + border-radius: 20px 20px 0 0; +} +.blog-section-three .blog-image img { + width: 100%; + border-radius: 20px 20px 0 0; +} +.blog-section-three .blog-category-tag { + position: absolute; + bottom: 0px; + right: 0px; + background: #3779b9; + color: #fff; + padding: 10px 25px; + font-size: 14px; + font-weight: 700; + text-transform: uppercase; + z-index: 2; + border-radius: 12px 0 0 0; +} +.blog-section-three .blog-style-one { + border-left: 1px solid #e2e8f0; + border-right: 1px solid #e2e8f0; + border-bottom: 1px solid #e2e8f0; + border-radius: 20px 20px 15px 15px; + background: #fff; + transition: all 0.3s ease; +} +.blog-section-three .blog-style-one:hover { + border-color: #3779b9; + box-shadow: 0 10px 30px rgba(55, 121, 185, 0.1); +} +.blog-section-three .blog-content { + padding: 30px 25px; +} +.blog-section-three .blog-title { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + line-height: 1.5; + height: 3em; +} + +/* Blog Two Section Styles (Home-2) */ +.blog-two-section .blog-two-title-area { + display: flex; + align-items: flex-end; + justify-content: space-between; + flex-wrap: wrap; + gap: 20px; +} +.blog-two-section .blog-image { + position: relative; + display: block; + overflow: hidden; + border-radius: 20px 20px 0 0; +} +.blog-two-section .blog-image img { + width: 100%; + border-radius: 20px 20px 0 0; +} +.blog-two-section .blog-category-tag { + position: absolute; + bottom: 0px; + right: 0px; + background: #3779b9; + color: #fff; + padding: 10px 20px; + font-size: 11px; + font-weight: 700; + text-transform: uppercase; + z-index: 2; + border-radius: 12px 0 0 0; +} +.blog-two-section .blog-style-two { + border-left: 1px solid #e2e8f0; + border-right: 1px solid #e2e8f0; + border-bottom: 1px solid #e2e8f0; + border-radius: 20px 20px 15px 15px; + background: #fff; + transition: all 0.3s ease; + height: 100%; +} +.blog-two-section .blog-style-two:hover { + border-color: #3779b9; + box-shadow: 0 10px 30px rgba(55, 121, 185, 0.1); +} +.blog-two-section .blog-content-area { + padding: 30px 25px; +} +.blog-two-section .blog-title { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + line-height: 1.5; + height: 3em; +} + +/* FAQ Page Section Styles */ +.faq-page-section { + background: #f8fbff; + padding: 80px 0; +} +.faq-page-section .section-subtitle { + color: #3779b9; + font-weight: 700; + margin-bottom: 15px; + display: inline-flex; + align-items: center; + gap: 10px; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 14px; +} +.faq-page-section .section-title { + font-size: 48px; + font-weight: 800; + color: #1a1f2b; + margin-bottom: 20px; +} +.faq-page-section .section-desc { + color: #64748b; + font-size: 16px; +} +.faq-page-section .faq-item { + background: #fff; + border-radius: 12px; + border: 1px solid #e2e8f0; + margin-bottom: 15px; + overflow: hidden; + transition: all 0.3s ease; + box-shadow: 0 4px 15px rgba(0,0,0,0.02); +} +.faq-page-section .faq-item.active { + border-color: #3779b9; + box-shadow: 0 10px 30px rgba(55, 121, 185, 0.1); +} +.faq-page-section .faq-question { + width: 100%; + padding: 18px 25px; + display: flex; + justify-content: space-between; + align-items: center; + background: none; + border: none; + text-align: left; + cursor: pointer; + outline: none; +} +.faq-page-section .question-text { + font-size: 15px; + font-weight: 700; + color: #1a1f2b; + line-height: 1.4; +} +.faq-page-section .faq-item.active .question-text { + color: #3779b9; +} +.faq-page-section .faq-icon { + width: 28px; + height: 28px; + min-width: 28px; + background: #f1f5f9; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 11px; + color: #64748b; + transition: all 0.3s ease; +} +.faq-page-section .faq-item.active .faq-icon { + background: #3779b9; + color: #fff; + transform: rotate(180deg); +} +.faq-page-section .faq-answer { + max-height: 0; + overflow: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} +.faq-page-section .faq-answer.show { + max-height: 300px; +} +.faq-page-section .answer-inner { + padding: 0 25px 20px; + color: #64748b; + line-height: 1.6; + font-size: 14px; +} +.faq-page-section .faq-center-image-wrap { + padding: 0 15px; +} +.faq-page-section .main-faq-img { + width: 100%; + max-width: 400px; + border-radius: 20px; + box-shadow: 0 20px 40px rgba(0,0,0,0.1); +} +@media (max-width: 991px) { + .faq-page-section .section-desc { + margin-top: 20px !important; + padding-left: 0 !important; + border-left: none !important; + } + .faq-page-section .col-lg-4 { + margin-bottom: 30px; + } + .faq-page-section .faq-center-image-wrap { + order: -1; + margin-bottom: 40px; + } + .faq-page-section .section-title { + font-size: 36px; + } +} + +/* Contact Status Styles */ +.status-container { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + min-height: 400px; + padding: 20px; + animation: fadeIn 0.5s ease-out; +} +.status-container .status-card { + background: #fff; + width: 100%; + max-width: 400px; + padding: 60px 40px; + border-radius: 24px; + text-align: center; + position: relative; + overflow: hidden; + box-shadow: 0 20px 50px rgba(0, 0, 0, 0.05); + animation: slideUp 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275); +} +.status-container .bubbles { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + pointer-events: none; +} +.status-container .bubble { + position: absolute; + border-radius: 50%; + opacity: 0.6; +} +.status-container.success .bubble { background: #87b031; } +.status-container.error .bubble { background: #f1595d; } + +.status-container .bubble-1 { width: 12px; height: 12px; top: 15%; left: 10%; animation: float 3s infinite ease-in-out; } +.status-container .bubble-2 { width: 8px; height: 8px; top: 25%; right: 15%; animation: float 4s infinite ease-in-out; } +.status-container .bubble-3 { width: 15px; height: 15px; bottom: 20%; left: 15%; animation: float 5s infinite ease-in-out; } +.status-container .bubble-4 { width: 10px; height: 10px; bottom: 15%; right: 10%; animation: float 3.5s infinite ease-in-out; } +.status-container .bubble-5 { width: 6px; height: 6px; top: 40%; left: 5%; animation: float 6s infinite ease-in-out; } +.status-container .bubble-6 { width: 14px; height: 14px; top: 60%; right: 5%; animation: float 4.5s infinite ease-in-out; } +.status-container .bubble-7 { width: 9px; height: 9px; top: 10%; right: 30%; animation: float 3.2s infinite ease-in-out; } +.status-container .bubble-8 { width: 11px; height: 11px; bottom: 10%; left: 40%; animation: float 4.8s infinite ease-in-out; } +.status-container .bubble-9 { width: 7px; height: 7px; top: 50%; left: 20%; animation: float 5.5s infinite ease-in-out; } +.status-container .bubble-10 { width: 13px; height: 13px; bottom: 40%; right: 25%; animation: float 3.8s infinite ease-in-out; } +.status-container .bubble-11 { width: 8px; height: 8px; top: 70%; left: 35%; animation: float 4.2s infinite ease-in-out; } +.status-container .bubble-12 { width: 10px; height: 10px; top: 5%; left: 50%; animation: float 3.6s infinite ease-in-out; } + +.status-container .icon-wrapper { + margin-bottom: 30px; + display: flex; + justify-content: center; + animation: bounce 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.3s both; +} +.status-container .icon-circle { + width: 100px; + height: 100px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 40px; + position: relative; +} +.status-container.success .icon-circle { + background: rgba(135, 176, 49, 0.15); + color: #87b031; + border: 4px solid #87b031; +} +.status-container.error .icon-circle { + background: rgba(241, 89, 93, 0.15); + color: #f1595d; + border: 4px solid #f1595d; +} +.status-container .status-title { + font-size: 32px; + font-weight: 800; + margin-bottom: 12px; + animation: fadeIn 0.5s ease-out 0.5s both; +} +.status-container.success .status-title { color: #87b031; } +.status-container.error .status-title { color: #f1595d; } + +.status-container .status-message { + font-size: 16px; + color: #64748b; + margin-bottom: 40px; + line-height: 1.6; + animation: fadeIn 0.5s ease-out 0.6s both; +} +.status-container .status-btn { + padding: 16px 40px; + border: none; + border-radius: 14px; + font-weight: 700; + font-size: 16px; + cursor: pointer; + transition: all 0.3s ease; + width: 100%; + max-width: 200px; + animation: fadeIn 0.5s ease-out 0.7s both; +} +.status-container.success .status-btn { + background: #87b031; + color: #fff; + box-shadow: 0 10px 20px rgba(135, 176, 49, 0.3); +} +.status-container.success .status-btn:hover { + background: #769a2b; + transform: translateY(-3px); + box-shadow: 0 15px 30px rgba(135, 176, 49, 0.4); +} +.status-container.error .status-btn { + background: #f1595d; + color: #fff; + box-shadow: 0 10px 20px rgba(241, 89, 93, 0.3); +} +.status-container.error .status-btn:hover { + background: #e04a4e; + transform: translateY(-3px); + box-shadow: 0 15px 30px rgba(241, 89, 93, 0.4); +} + +/* Map Section Styles */ +.map-area { + margin-bottom: -10px; +} +.map-area .map-wrapper { + height: 500px; + width: 100%; + overflow: hidden; + border: none; +} +.map-area iframe { + display: block; + width: 100%; + height: 100%; + border: none; + background: transparent; + filter: grayscale(1); +} + +/* Contact Section Styles (Root) */ +.contact-area .form-label { + display: block; + margin-bottom: 10px; + font-weight: 700; + color: #fff; + font-size: 15px; + letter-spacing: 0.5px; +} +.contact-area .contact-info-item .icon { + width: 75px; + height: 75px; + background: #fff; + border: 1px solid rgba(99, 102, 241, 0.2); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + margin-right: 25px; + color: #3779b9; + font-size: 28px; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 10px 25px rgba(99, 102, 241, 0.1); +} +.contact-area .contact-info-item:hover .icon { + background: #3779b9; + color: #fff; + transform: scale(1.1) rotate(10deg); + box-shadow: 0 15px 30px rgba(99, 102, 241, 0.3); +} +.contact-area .contact-info-item .content span { + display: block; + font-size: 13px; + color: #64748b; + margin-bottom: 6px; + text-transform: uppercase; + letter-spacing: 1px; + font-weight: 600; +} +.contact-area .contact-info-item .content h6 { + font-size: 22px; + font-weight: 700; + margin: 0; + color: #1e293b; +} +.contact-area .contact-info-item .content h6 a { + color: inherit; + text-decoration: none; + transition: color 0.3s ease; +} +.contact-area .contact-info-item .content h6 a:hover { + color: #3779b9; +} +.contact-area .contact-form-wrapper { + background: #1a1f2b; + padding: 60px; + border-radius: 24px; + box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1); +} +.contact-area .contact-form input, +.contact-area .contact-form textarea, +.contact-area .contact-form select { + width: 100%; + padding: 18px 25px; + border: 1px solid #e2e8f0; + background: #fff !important; + border-radius: 12px; + outline: none; + transition: all 0.3s ease; + font-size: 15px; + color: #1e293b; +} +.contact-area .contact-form textarea { + min-height: 150px; + resize: vertical; +} +.contact-area .contact-form input:focus, +.contact-area .contact-form textarea:focus, +.contact-area .contact-form select:focus { + border-color: #3779b9; + box-shadow: 0 0 0 4px rgba(55, 121, 185, 0.1); +} +.contact-area .primary-btn-1 { + background: #3779b9; + color: #fff; + padding: 20px 30px; + border: none; + border-radius: 12px; + font-weight: 700; + cursor: pointer; + transition: all 0.3s ease; + text-transform: uppercase; + letter-spacing: 1.5px; + font-size: 15px; + margin-top: 10px; + box-shadow: 0 10px 20px rgba(99, 102, 241, 0.2); +} +.contact-area .primary-btn-1:hover { + background: #1e293b; + transform: translateY(-3px); + box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3); +} +.contact-area .text-danger { + color: #ff6b6b; + font-size: 12px; + margin-top: 5px; + display: block; +} +@media (max-width: 991px) { + .contact-area .contact-form-wrapper { + margin-top: 60px; + padding: 40px; + } +} +@media (max-width: 575px) { + .contact-area .contact-form-wrapper { + padding: 25px; + } +} diff --git a/src/app/page.tsx b/src/app/page.tsx index fe55d24..d1553ec 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -46,9 +46,9 @@ export default function MainPage() {
- - + + diff --git a/src/app/services/[slug]/page.tsx b/src/app/services-digital-solutions/[slug]/page.tsx similarity index 91% rename from src/app/services/[slug]/page.tsx rename to src/app/services-digital-solutions/[slug]/page.tsx index d8e2eaf..a6cd462 100644 --- a/src/app/services/[slug]/page.tsx +++ b/src/app/services-digital-solutions/[slug]/page.tsx @@ -2,7 +2,7 @@ import React from "react"; import Header1 from "@/components/layout/Header1"; import Footer1 from "@/components/layout/Footer1"; import PageHeader from "@/components/common/PageHeader"; -import ServiceDetails from "@/components/services/ServiceDetails"; +import ServiceDetails from "@/components/services-digital-solutions/ServiceDetails"; import { psychologyServices } from "@/utils/data"; import { notFound } from "next/navigation"; diff --git a/src/app/services/page.tsx b/src/app/services-digital-solutions/page.tsx similarity index 96% rename from src/app/services/page.tsx rename to src/app/services-digital-solutions/page.tsx index 8f84788..5f1f1a8 100644 --- a/src/app/services/page.tsx +++ b/src/app/services-digital-solutions/page.tsx @@ -21,7 +21,7 @@ import Header1 from "@/components/layout/Header1"; import WorkProcessSection from "@/components/home/home-2/WorkProcessSection"; import ServiceSection2 from "@/components/careers/ServiceSection"; import WorkProcessSection2 from "@/components/careers/WorkProcessSection"; -import AboutService from "@/components/services/AboutService"; +import AboutService from "@/components/services-digital-solutions/AboutService"; import PageHeader from "@/components/common/PageHeader"; import AboutTwo from "@/components/home/AboutTwo"; diff --git a/src/components/about/WhyChooseUs.tsx b/src/components/about/WhyChooseUs.tsx index 4855a75..3c60ecf 100644 --- a/src/components/about/WhyChooseUs.tsx +++ b/src/components/about/WhyChooseUs.tsx @@ -65,167 +65,6 @@ const WhyChooseUs = () => { - ); }; diff --git a/src/components/careers/ContactSection.tsx b/src/components/careers/ContactSection.tsx index f7e20fe..4916961 100644 --- a/src/components/careers/ContactSection.tsx +++ b/src/components/careers/ContactSection.tsx @@ -1,9 +1,31 @@ "use client"; -import React, { useEffect, useRef } from "react"; +import React, { useState, useEffect, useRef } from "react"; +import ReCAPTCHA from "react-google-recaptcha"; +import axios from "axios"; const ContactSection = () => { const sectionRef = useRef(null); + const [formData, setFormData] = useState({ + name: "", + phone: "", + email: "", + service: "", + message: "", + }); + + const [formErrors, setFormErrors] = useState({}); + const [captchaToken, setCaptchaToken] = useState(null); + const [alert, setAlert] = useState({ show: false, type: "", message: "" }); + + const handleChange = (e: React.ChangeEvent) => { + const { name, value } = e.target; + setFormData((prev) => ({ ...prev, [name]: value })); + }; + + const handleCaptchaChange = (token: string | null) => { + setCaptchaToken(token); + }; useEffect(() => { const observer = new IntersectionObserver( @@ -42,15 +64,71 @@ const ContactSection = () => { return () => observer.disconnect(); }, []); - const handleSubmit = (e: React.FormEvent) => { + const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); - // Handle form submission logic here + + const errors: any = {}; + if (!formData.name.trim()) errors.name = "Name is required."; + if (!formData.phone.trim()) errors.phone = "Phone is required."; + if (!formData.email.trim()) errors.email = "Email is required."; + if (!formData.service.trim()) errors.service = "Please select a service."; + if (!formData.message.trim()) errors.message = "Message is required."; + if (!captchaToken) errors.captcha = "Please verify the CAPTCHA."; + + setFormErrors(errors); + if (Object.keys(errors).length > 0) return; + + const emailData = { + ...formData, + message: `Service: ${formData.service}

Message: ${formData.message}`, + to: "info@metatroncubesolutions.com", + senderName: "Metatroncube Careers Contact", + recaptchaToken: captchaToken, + }; + + try { + const res = await axios.post("https://mailserver.metatronnest.com/send", emailData, { + headers: { "Content-Type": "application/json" }, + }); + + setAlert({ + show: true, + type: "success", + message: res?.data?.message || "Message sent successfully!", + }); + + setFormData({ + name: "", + phone: "", + email: "", + service: "", + message: "", + }); + setCaptchaToken(null); + setFormErrors({}); + } catch (error) { + console.error("❌ Error sending email:", error); + setAlert({ + show: true, + type: "danger", + message: "Failed to send message. Please try again later.", + }); + } }; + useEffect(() => { + if (alert.show) { + const timer = setTimeout(() => { + setAlert((prev) => ({ ...prev, show: false })); + }, 5000); + return () => clearTimeout(timer); + } + }, [alert.show]); + return (
-
+
@@ -60,8 +138,9 @@ const ContactSection = () => { Let's call together just contact line

- ++255225551, +6544144444 + +1-647-679-7651

+
@@ -95,23 +174,93 @@ const ContactSection = () => { Get free Business touch Customers me.
-

- Business tailored it design, management & support services
business agency elit, sed do eiusmod tempor. -

+ + {alert.show && ( +
+ {alert.message} +
+ )} +
-
- +
+ + + {formErrors.name && {formErrors.name}}
-
- +
+ + + {formErrors.email && {formErrors.email}}
-
- +
+ + + {formErrors.phone && {formErrors.phone}}
-
-
diff --git a/src/components/careers/FaqVideoSection.tsx b/src/components/careers/FaqVideoSection.tsx index 7f9404c..bdc4059 100644 --- a/src/components/careers/FaqVideoSection.tsx +++ b/src/components/careers/FaqVideoSection.tsx @@ -1,10 +1,88 @@ "use client"; -import React from "react"; +import React, { useState, useEffect } from "react"; +import ReCAPTCHA from "react-google-recaptcha"; +import axios from "axios"; const FaqVideoSection = () => { + const [formData, setFormData] = useState({ + name: "", + phone: "", + email: "", + service: "", + message: "", + }); + + const [formErrors, setFormErrors] = useState({}); + const [captchaToken, setCaptchaToken] = useState(null); + const [alert, setAlert] = useState({ show: false, type: "", message: "" }); + + const handleChange = (e: React.ChangeEvent) => { + const { name, value } = e.target; + setFormData((prev) => ({ ...prev, [name]: value })); + }; + + const handleCaptchaChange = (token: string | null) => { + setCaptchaToken(token); + }; + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + + const errors: any = {}; + if (!formData.name.trim()) errors.name = "Name is required."; + if (!formData.phone.trim()) errors.phone = "Phone is required."; + if (!formData.email.trim()) errors.email = "Email is required."; + if (!formData.service.trim()) errors.service = "Please select a service."; + if (!formData.message.trim()) errors.message = "Message is required."; + if (!captchaToken) errors.captcha = "Please verify the CAPTCHA."; + + setFormErrors(errors); + if (Object.keys(errors).length > 0) return; + + const emailData = { + ...formData, + message: `Service: ${formData.service}

Message: ${formData.message}`, + to: "info@metatroncubesolutions.com", + senderName: "Metatroncube FAQ Section Contact", + recaptchaToken: captchaToken, + }; + + try { + const res = await axios.post("https://mailserver.metatronnest.com/send", emailData, { + headers: { "Content-Type": "application/json" }, + }); + + setAlert({ + show: true, + type: "success", + message: res?.data?.message || "Message sent successfully!", + }); + + setFormData({ name: "", phone: "", email: "", service: "", message: "" }); + setCaptchaToken(null); + setFormErrors({}); + } catch (error) { + console.error("Error sending email:", error); + setAlert({ + show: true, + type: "danger", + message: "Failed to send message. Please try again later.", + }); + } + }; + + useEffect(() => { + if (alert.show) { + const timer = setTimeout(() => { + setAlert((prev) => ({ ...prev, show: false })); + }, 5000); + return () => clearTimeout(timer); + } + }, [alert.show]); + return ( - <> +
{ Get In Touch

Have a Project in Mind?

- + + {alert.show && ( +
+ {alert.message} +
+ )} + +
- + + + {formErrors.name && {formErrors.name}}
- + + + {formErrors.email && {formErrors.email}}
- + + + {formErrors.phone && {formErrors.phone}}
- + + + {formErrors.service && {formErrors.service}}
- + + + {formErrors.message && {formErrors.message}} +
+
+ + {formErrors.captcha && {formErrors.captcha}}
-
-
+ +
@@ -68,142 +208,7 @@ const FaqVideoSection = () => {
- - - + ); }; diff --git a/src/components/careers/ServiceSection.tsx b/src/components/careers/ServiceSection.tsx index 01e9323..8889ccc 100644 --- a/src/components/careers/ServiceSection.tsx +++ b/src/components/careers/ServiceSection.tsx @@ -80,7 +80,7 @@ const ServiceSection2 = () => {

- {service.title} + {service.title}

{service.description}

diff --git a/src/components/common/ContactPopup/ContactPopup.tsx b/src/components/common/ContactPopup/ContactPopup.tsx index 235298d..04a55a3 100644 --- a/src/components/common/ContactPopup/ContactPopup.tsx +++ b/src/components/common/ContactPopup/ContactPopup.tsx @@ -3,12 +3,6 @@ import React, { useEffect, useState } from 'react'; import { createPortal } from 'react-dom'; import ReCAPTCHA from "react-google-recaptcha"; import axios from "axios"; - -interface ContactPopupProps { - isOpen: boolean; - onClose: () => void; -} - import ContactStatus from '../../contact/ContactStatus'; interface ContactPopupProps { @@ -35,7 +29,6 @@ const ContactPopup: React.FC = ({ isOpen, onClose }) => { setMounted(true); }, []); - // Close on ESC key useEffect(() => { const handleEsc = (e: KeyboardEvent) => { if (e.key === 'Escape') onClose(); @@ -63,7 +56,7 @@ const ContactPopup: React.FC = ({ isOpen, onClose }) => { if (!formData.businessName.trim()) errors.businessName = "Business name requested."; if (!formData.projectRequirement.trim()) errors.projectRequirement = "Requirement details needed."; if (!formData.budgetRange) errors.budgetRange = "Please select a budget range."; - // if (!captchaToken) errors.captcha = "Please verify the CAPTCHA."; + if (!captchaToken) errors.captcha = "Please verify the CAPTCHA."; setFormErrors(errors); if (Object.keys(errors).length > 0) return; @@ -73,7 +66,7 @@ const ContactPopup: React.FC = ({ isOpen, onClose }) => { const emailData = { ...formData, message: `Business: ${formData.businessName}
Budget: ${formData.budgetRange}

Requirement: ${formData.projectRequirement}`, - to: "akashlucaas@gmail.com", + to: "info@metatroncubesolutions.com", senderName: "Metatroncube Contact Popup", recaptchaToken: captchaToken, }; @@ -149,7 +142,6 @@ const ContactPopup: React.FC = ({ isOpen, onClose }) => { - {/* Right Side: Form */}
+
-
- -
-
- -
-
- -
-
- -
-
- -
- - + + - - - + + ); }; diff --git a/src/components/contact/ContactStatus.tsx b/src/components/contact/ContactStatus.tsx index 6774541..bc409da 100644 --- a/src/components/contact/ContactStatus.tsx +++ b/src/components/contact/ContactStatus.tsx @@ -41,170 +41,6 @@ const ContactStatus: React.FC = ({ type, message, onClose }) - ); }; diff --git a/src/components/contact/MapSection.tsx b/src/components/contact/MapSection.tsx index 00c2ad6..8afdeb4 100644 --- a/src/components/contact/MapSection.tsx +++ b/src/components/contact/MapSection.tsx @@ -17,25 +17,6 @@ const MapSection = () => { > - ); }; diff --git a/src/components/faq/FaqPageSection.tsx b/src/components/faq/FaqPageSection.tsx index 772e60b..134d7f1 100644 --- a/src/components/faq/FaqPageSection.tsx +++ b/src/components/faq/FaqPageSection.tsx @@ -135,7 +135,7 @@ const FaqPageSection = () => {
-

+

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.

@@ -229,143 +229,6 @@ const FaqPageSection = () => {
- ); }; diff --git a/src/components/home/CounsellingSolutions.tsx b/src/components/home/CounsellingSolutions.tsx index 80b31ee..627d487 100644 --- a/src/components/home/CounsellingSolutions.tsx +++ b/src/components/home/CounsellingSolutions.tsx @@ -6,7 +6,28 @@ const CounsellingSolutions: React.FC = () => {
+
+
+ pelocis + pelocis +
+ + + + WATCH VIDEO +
+
+
+
@@ -34,30 +55,11 @@ const CounsellingSolutions: React.FC = () => { The right therapist can help you develop the skills to manage - - - Discover More - - -
-
-
-
- pelocis - pelocis -
- - +
+ + Discover More   | + - WATCH VIDEO
diff --git a/src/components/home/HomeContactOne.tsx b/src/components/home/HomeContactOne.tsx index 3d3e1d0..0afc726 100644 --- a/src/components/home/HomeContactOne.tsx +++ b/src/components/home/HomeContactOne.tsx @@ -1,14 +1,92 @@ "use client"; -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; +import ReCAPTCHA from "react-google-recaptcha"; +import axios from "axios"; const HomeContactOne = () => { - const [distance, setDistance] = useState(7000); + const [formData, setFormData] = useState({ + name: "", + phone: "", + email: "", + service: "", + message: "", + }); - const handleRangeChange = (e: React.ChangeEvent) => { - setDistance(parseInt(e.target.value)); + const [formErrors, setFormErrors] = useState({}); + const [captchaToken, setCaptchaToken] = useState(null); + const [alert, setAlert] = useState({ show: false, type: "", message: "" }); + + const handleChange = (e: React.ChangeEvent) => { + const { name, value } = e.target; + setFormData((prev) => ({ ...prev, [name]: value })); }; + const handleCaptchaChange = (token: string | null) => { + setCaptchaToken(token); + }; + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + + const errors: any = {}; + if (!formData.name.trim()) errors.name = "Name is required."; + if (!formData.phone.trim()) errors.phone = "Phone is required."; + if (!formData.email.trim()) errors.email = "Email is required."; + if (!formData.service.trim()) errors.service = "Please select a service."; + if (!formData.message.trim()) errors.message = "Message is required."; + if (!captchaToken) errors.captcha = "Please verify the CAPTCHA."; + + setFormErrors(errors); + if (Object.keys(errors).length > 0) return; + + const emailData = { + ...formData, + message: `Service: ${formData.service}

Message: ${formData.message}`, + to: "info@metatroncubesolutions.com", + senderName: "Metatroncube Home Contact", + recaptchaToken: captchaToken, + }; + + try { + const res = await axios.post("https://mailserver.metatronnest.com/send", emailData, { + headers: { "Content-Type": "application/json" }, + }); + + setAlert({ + show: true, + type: "success", + message: res?.data?.message || "Message sent successfully!", + }); + + setFormData({ + name: "", + phone: "", + email: "", + service: "", + message: "", + }); + setCaptchaToken(null); + setFormErrors({}); + } catch (error) { + console.error("❌ Error sending email:", error); + setAlert({ + show: true, + type: "danger", + message: "Failed to send message. Please try again later.", + }); + } + }; + + useEffect(() => { + if (alert.show) { + const timer = setTimeout(() => { + setAlert((prev) => ({ ...prev, show: false })); + }, 5000); + return () => clearTimeout(timer); + } + }, [alert.show]); + return (
{ >
-
-
+
+
-
-
-
-
-
-
OUR CONTACT US
-

If Your Problem Contact Us For
Immediately Center

+
+ +
+
+
+
+
OUR CONTACT US
+

If Your Problem Contact Us For
Immediately Center

+
+ pelocis
- pelocis
-

- Business tailored design, management & support services Business - business agency elit, sed do eiusmod tempor majority have - in some we form, by injected humour solution. -

-
-
-
- - -
-
- - -
-
- - -
-
- -
+ + {alert.show && ( +
+ {alert.message} +
+ )} + +
+
+ + + {formErrors.name && {formErrors.name}} +
+
+ + + {formErrors.email && {formErrors.email}} +
+
+ + + {formErrors.phone && {formErrors.phone}} +
+
+ + {formErrors.service && {formErrors.service}} +
+
+ + + {formErrors.message && {formErrors.message}} +
+ +
+ + {formErrors.captcha && {formErrors.captcha}} +
+ +
+
-
- -
-
- + +
-
+
); }; diff --git a/src/components/home/MedicalServices.tsx b/src/components/home/MedicalServices.tsx index c4be806..1a46095 100644 --- a/src/components/home/MedicalServices.tsx +++ b/src/components/home/MedicalServices.tsx @@ -5,45 +5,45 @@ import React, { useState, useEffect } from "react"; const services = [ { id: 0, - title: "Excellent infection prevention", - text: "Lorem ipsum dolor sit amet, conse ctetur adipiscing eliteiusmod tempor incididunt", + title: "Website Development", + text: "Custom website development tailored to your business needs.", icon: "/assets/imgs/icon/icon-6.png", - link: "service-details.html", + link: "/services-digital-solutions/web-development", }, { id: 1, - title: "Health patients comprehensive", - text: "From its medieval origins to the digital era , learn everything there is to know", + title: "Mobile Application Development", + text: "High-performance mobile apps for iOS and Android.", icon: "/assets/imgs/icon/icon-2.png", - link: "service-details.html", + link: "/services-digital-solutions/mobile-app-development", }, { id: 2, - title: "Pediatric Hematology Oncology", - text: "Creation timelines for the standard lorem ipsum passage vary, with some citing the", + title: "Graphic Designing", + text: "Creative graphic design solutions for your brand.", icon: "/assets/imgs/icon/icon-3.png", - link: "service-details.html", + link: "/services-digital-solutions/graphic-designing", }, { id: 3, - title: "Care Pediatric & Medicine", - text: "Letraset's dry-transfer sheets, and later entered the digital world via Aldus", + title: "UI / UX Designing", + text: "User-centric design experiences that engage and convert.", icon: "/assets/imgs/icon/icon-4.png", - link: "service-details.html", + link: "/services-digital-solutions/ui-ux-designing", }, { id: 4, - title: "Labor & Delivery: The Birthplace", - text: "Some claim lorem ipsum threatens to promote design over content, while others defend", + title: "SEO & Content Writing", + text: "Optimization and content that drives organic growth.", icon: "/assets/imgs/icon/icon-5.png", - link: "service-details.html", + link: "/services-digital-solutions/seo-content-writing", }, { id: 5, - title: "Urogynecology & Pelvic Health", - text: "Generally, lorem ipsum is best suited to keeping templates from looking bare or", + title: "Digital Marketing", + text: "Strategic digital marketing to grow your online presence.", icon: "/assets/imgs/icon/icon-6.png", - link: "service-details.html", + link: "/services-digital-solutions/digital-marketing", }, ]; @@ -91,7 +91,7 @@ const MedicalServices = () => {
diff --git a/src/components/home/PortfolioSection.tsx b/src/components/home/PortfolioSection.tsx index 0a45514..82bdd9c 100644 --- a/src/components/home/PortfolioSection.tsx +++ b/src/components/home/PortfolioSection.tsx @@ -210,6 +210,13 @@ export default function PortfolioSection() { return (
+
+
+
+
PORTFOLIO
+

Our Latest Work

+
+
{/* ── Filter Tabs ── */}
diff --git a/src/components/home/WhyChooseTwo.tsx b/src/components/home/WhyChooseTwo.tsx index 8f627f5..b3093b1 100644 --- a/src/components/home/WhyChooseTwo.tsx +++ b/src/components/home/WhyChooseTwo.tsx @@ -65,7 +65,7 @@ const WhyChooseTwo: React.FC = ({ reverse = false }) => {
-
+
pelocis
diff --git a/src/components/home/home-1/BlogSection.tsx b/src/components/home/home-1/BlogSection.tsx index fa7b653..fe1238e 100644 --- a/src/components/home/home-1/BlogSection.tsx +++ b/src/components/home/home-1/BlogSection.tsx @@ -48,59 +48,6 @@ const BlogSection = ({ hideHeader = false }: { hideHeader?: boolean }) => (
-
); diff --git a/src/components/home/home-1/BrandSection.tsx b/src/components/home/home-1/BrandSection.tsx index e31aab0..dc36f80 100644 --- a/src/components/home/home-1/BrandSection.tsx +++ b/src/components/home/home-1/BrandSection.tsx @@ -9,7 +9,6 @@ const BrandSection = () => { tagline="OUR PARTNERS" title="Trusted by Leaders Worldwide" centered={true} - className="mb-50" />
diff --git a/src/components/home/home-1/ProjectsSection.tsx b/src/components/home/home-1/ProjectsSection.tsx index 4391738..b4cb4cb 100644 --- a/src/components/home/home-1/ProjectsSection.tsx +++ b/src/components/home/home-1/ProjectsSection.tsx @@ -7,7 +7,7 @@ const ProjectsSection = () => {
-
+
PROJECTS

Our Latest Projects

diff --git a/src/components/home/home-1/ServiceSliderSection.tsx b/src/components/home/home-1/ServiceSliderSection.tsx index 28349d3..de47378 100644 --- a/src/components/home/home-1/ServiceSliderSection.tsx +++ b/src/components/home/home-1/ServiceSliderSection.tsx @@ -16,7 +16,7 @@ const ServiceSliderSection = () => {
-
+
SERVICES WE’RE OFFERING

Exclusive IT Services

diff --git a/src/components/home/home-1/ServiceThreeSlider.tsx b/src/components/home/home-1/ServiceThreeSlider.tsx index 7e07521..58ef382 100644 --- a/src/components/home/home-1/ServiceThreeSlider.tsx +++ b/src/components/home/home-1/ServiceThreeSlider.tsx @@ -27,7 +27,7 @@ const ServiceThreeSlider = () => {
-
+
@@ -46,7 +46,7 @@ const ServiceThreeSlider = () => {

- {service.title} + {service.title}

{service.description}

diff --git a/src/components/home/home-1/TeamSection.tsx b/src/components/home/home-1/TeamSection.tsx index 0601a79..bc5d84a 100644 --- a/src/components/home/home-1/TeamSection.tsx +++ b/src/components/home/home-1/TeamSection.tsx @@ -5,7 +5,7 @@ const TeamSection = () => (
-
+
OUR team

Our Leadership Team

diff --git a/src/components/home/home-1/TestimonialsSection.tsx b/src/components/home/home-1/TestimonialsSection.tsx index 25f9860..40f921b 100644 --- a/src/components/home/home-1/TestimonialsSection.tsx +++ b/src/components/home/home-1/TestimonialsSection.tsx @@ -1,57 +1,156 @@ -import React from "react"; -import { testimonialSlides } from "@/utils/data"; +"use client"; +import React, { useState, useEffect } from "react"; +import Slider from "react-slick"; +import GoogleReviewsBranding from "@/components/common/GoogleReviewsBranding"; -const TestimonialsSection = () => ( -
-
-
-
-
-
-
-
- +const TestimonialsSection = () => { + const [reviews, setReviews] = useState([]); + const [loading, setLoading] = useState(true); + + useEffect(() => { + async function loadReviews() { + try { + const res = await fetch("/api/reviews"); + const data = await res.json(); + const cleaned = (data.reviews || []).filter((r: any) => + (r.snippet || r.text || r.review_text || r.description || r.body || r.content) + ); + setReviews(cleaned); + } catch (error) { + console.error("Failed to fetch reviews", error); + } finally { + setLoading(false); + } + } + loadReviews(); + }, []); + + const displayedReviews = reviews.length > 0 && reviews.length < 4 + ? [...reviews, ...reviews, ...reviews] + : reviews; + + const settings = { + dots: true, + arrows: false, + infinite: displayedReviews.length > 2, + speed: 600, + slidesToShow: 2, + slidesToScroll: 1, + autoplay: true, + autoplaySpeed: 5000, + dotsClass: "testimonial-dot-inner", + responsive: [ + { + breakpoint: 1200, + settings: { + slidesToShow: 2, + } + }, + { + breakpoint: 991, + settings: { + slidesToShow: 1, + } + } + ] + }; + + function getReviewText(r: any) { + return r.text || r.description || r.snippet || r.review_text || r.body || r.content || ""; + } + + function getProfileImage(r: any, index: number) { + const url = r.user?.thumbnail || r.profile_photo_url || r.author_profile_photo_url || r.user?.profile_photo_url || r.thumbnail || r.profile_picture || r.avatar || r.author_image; + if (!url) return `/assets/imgs/resources/testimonials-${(index % 2) + 1}.png`; + if (typeof url === 'string' && url.startsWith("http")) return url; + return `https://lh3.googleusercontent.com/${url}`; + } + + return ( +
+
+
+
+
+
+
+
+ +
-
-
-
-
-
-
-
-
TESTIMONIALS
-

Our Client Feedback

-
- -
-
-
- {[1, 2, 1].map((num, i) => ( -
-
-
-
-

Kathryn Murphy

- Engineering -
    - {[1, 2, 3, 4, 5].map((r) =>
  • )} -
-

“ Consectetur adipiscing elit. Integer is nunc viverra laoreet est the is porta pretium metus aliquam eget maecenas porta is nunc viverra Aenean ”

-
+
+
+
+
+ +
+
+
+
TESTIMONIALS
+

Our Client Feedback

+
+
+
- ))} +
+ +
+ +
+ {loading ? ( +
+

Loading reviews from Google...

+
+ ) : displayedReviews.length > 0 ? ( + + {displayedReviews.map((slide, index) => { + const profileImg = getProfileImage(slide, index); + const name = slide.user?.name || slide.author_name || "Valued Client"; + const rating = slide.rating || 5; + return ( +
+
+
+ {name} +
+
+ +
+
+

{name}

+ Verified Google Review +
    + {[...Array(rating)].map((_, i) => ( +
  • + ))} +
+

+ "{getReviewText(slide)}" +

+
+
+
+ ); + })} +
+ ) : ( +
+

No reviews found.

+
+ )}
-
-
-
-
-
-); +
+ ); +}; export default TestimonialsSection; diff --git a/src/components/home/home-2/Blog2Section.tsx b/src/components/home/home-2/Blog2Section.tsx index 40f3a62..3e560a8 100644 --- a/src/components/home/home-2/Blog2Section.tsx +++ b/src/components/home/home-2/Blog2Section.tsx @@ -64,48 +64,6 @@ const Blog2Section = () => (
- ); diff --git a/src/components/home/home-3/BlogSection.tsx b/src/components/home/home-3/BlogSection.tsx index 3f9e688..ce20a75 100644 --- a/src/components/home/home-3/BlogSection.tsx +++ b/src/components/home/home-3/BlogSection.tsx @@ -2,7 +2,7 @@ import { blogs } from "@/utils/data"; import Link from "next/link"; const BlogSection = () => ( -
+
@@ -47,48 +47,6 @@ const BlogSection = () => ( ))}
- -
); diff --git a/src/components/home/home-3/ProjectsSection.tsx b/src/components/home/home-3/ProjectsSection.tsx index c4304d8..3d57b71 100644 --- a/src/components/home/home-3/ProjectsSection.tsx +++ b/src/components/home/home-3/ProjectsSection.tsx @@ -7,7 +7,7 @@ const ProjectsSection = () => {
-
+
PROJECTS

Explore Our Recent Projects

diff --git a/src/components/home/home-3/ServiceSection.tsx b/src/components/home/home-3/ServiceSection.tsx index 642d24c..7dc4e4e 100644 --- a/src/components/home/home-3/ServiceSection.tsx +++ b/src/components/home/home-3/ServiceSection.tsx @@ -36,7 +36,7 @@ const ServiceSection = () => {
-
+
SERVICES WE’RE OFFERING

Exclusive IT Services

diff --git a/src/components/layout/NavMenu.tsx b/src/components/layout/NavMenu.tsx index 96b2123..7955934 100644 --- a/src/components/layout/NavMenu.tsx +++ b/src/components/layout/NavMenu.tsx @@ -3,24 +3,24 @@ import Link from "next/link"; const NavMenu = () => (
    -
  • Home
  • -
  • About
  • +
  • HOME
  • - Services + SERVICE
      -
    • Website Development
    • -
    • Mobile Application Development
    • -
    • Graphic Designing
    • -
    • UI / UX Designing
    • -
    • SEO & Content Writing
    • -
    • Digital Marketing
    • +
    • WEBSITE DEVELOPMENT
    • +
    • MOBILE APPLICATION DEVELOPMENT
    • +
    • GRAPHIC DESIGNING
    • +
    • UI / UX DESIGNING
    • +
    • SEO & CONTENT WRITING
    • +
    • DIGITAL MARKETING
  • -
  • Careers
  • -
  • Portfolio
  • +
  • PORTFOLIO
  • +
  • ABOUT
  • +
  • CAREERS
  • +
  • BLOG
  • +
  • CONTACT
  • FAQ
  • -
  • Blog
  • -
  • Contact
); diff --git a/src/components/mobile-app-development-service/support/common/ContactPopup/ContactPopup.tsx b/src/components/mobile-app-development-service/support/common/ContactPopup/ContactPopup.tsx index cde8c5c..d2643a6 100644 --- a/src/components/mobile-app-development-service/support/common/ContactPopup/ContactPopup.tsx +++ b/src/components/mobile-app-development-service/support/common/ContactPopup/ContactPopup.tsx @@ -3,6 +3,7 @@ import React, { useEffect, useState } from 'react'; import { createPortal } from 'react-dom'; import ReCAPTCHA from "react-google-recaptcha"; import axios from "axios"; +import ContactStatus from '@/components/contact/ContactStatus'; interface ContactPopupProps { isOpen: boolean; @@ -10,6 +11,7 @@ interface ContactPopupProps { } const ContactPopup: React.FC = ({ isOpen, onClose }) => { + const [status, setStatus] = useState<'idle' | 'submitting' | 'success' | 'error'>('idle'); const [formData, setFormData] = useState({ name: "", phone: "", @@ -17,12 +19,11 @@ const ContactPopup: React.FC = ({ isOpen, onClose }) => { businessName: "", projectRequirement: "", budgetRange: "", + appType: "", }); const [formErrors, setFormErrors] = useState({}); const [captchaToken, setCaptchaToken] = useState(null); - const [alert, setAlert] = useState({ show: false, type: "", message: "" }); - const [isSubmitting, setIsSubmitting] = useState(false); const [mounted, setMounted] = useState(false); useEffect(() => { @@ -57,32 +58,27 @@ const ContactPopup: React.FC = ({ isOpen, onClose }) => { if (!formData.businessName.trim()) errors.businessName = "Business name requested."; if (!formData.projectRequirement.trim()) errors.projectRequirement = "Requirement details needed."; if (!formData.budgetRange) errors.budgetRange = "Please select a budget range."; - // if (!captchaToken) errors.captcha = "Please verify the CAPTCHA."; + if (!captchaToken) errors.captcha = "Please verify the CAPTCHA."; setFormErrors(errors); if (Object.keys(errors).length > 0) return; - setIsSubmitting(true); + setStatus('submitting'); const emailData = { ...formData, - message: `Business: ${formData.businessName}
Budget: ${formData.budgetRange}

Requirement: ${formData.projectRequirement}`, - to: "selvipalanikumarn@gmail.com", + message: `Business: ${formData.businessName}
App Type: ${formData.appType}
Budget: ${formData.budgetRange}

Requirement: ${formData.projectRequirement}`, + to: "info@metatroncubesolutions.com", senderName: "Metatroncube Contact Popup", recaptchaToken: captchaToken, }; try { - const res = await axios.post("https://mailserver.metatronnest.com/send", emailData, { + await axios.post("https://mailserver.metatronnest.com/send", emailData, { headers: { "Content-Type": "application/json" }, }); - setAlert({ - show: true, - type: "success", - message: res?.data?.message || "Message sent successfully!", - }); - + setStatus('success'); setFormData({ name: "", phone: "", @@ -90,31 +86,24 @@ const ContactPopup: React.FC = ({ isOpen, onClose }) => { businessName: "", projectRequirement: "", budgetRange: "", + appType: "", }); setCaptchaToken(null); setFormErrors({}); - // Close after delay - setTimeout(onClose, 2000); } catch (error) { console.error("❌ Error sending email:", error); - setAlert({ - show: true, - type: "danger", - message: "Failed to send message. Please try again later.", - }); - } finally { - setIsSubmitting(false); + setStatus('error'); } }; - useEffect(() => { - if (alert.show) { - const timer = setTimeout(() => { - setAlert((prev) => ({ ...prev, show: false })); - }, 5000); - return () => clearTimeout(timer); + const handleCloseStatus = () => { + if (status === 'success') { + onClose(); + setStatus('idle'); + } else { + setStatus('idle'); } - }, [alert.show]); + }; if (!mounted || !isOpen) return null; @@ -126,22 +115,22 @@ const ContactPopup: React.FC = ({ isOpen, onClose }) => {
-

Let’s Discuss Your App Idea

-

Fill out the form and our team will contact you within 24 hours.

+

Let's Discuss Your App Idea

+

Fill out the form and our team will contact you within 24 hours.

-

Email Us

-
info@metatroncubesolutions.com
+

Email Us

+
info@metatroncubesolutions.com
-

Call Us Free

-
+1-647-679-7651
+

Call Us Free

+
+1-647-679-7651
@@ -156,83 +145,84 @@ const ContactPopup: React.FC = ({ isOpen, onClose }) => {
- {/* Right Side: Form */} + {/* Right Side: Form or Status */}
-

Start Your Project

+ {status === 'idle' || status === 'submitting' ? ( + <> +

Start Your Project

+
+
+
+ + {formErrors.name && {formErrors.name}} +
+
+ + {formErrors.email && {formErrors.email}} +
+
+ + {formErrors.phone && {formErrors.phone}} +
+
+ + {formErrors.businessName && {formErrors.businessName}} +
+
+ +
+
+ + {formErrors.budgetRange && {formErrors.budgetRange}} +
+
- {alert.show && ( -
- {alert.message} + + {formErrors.projectRequirement && {formErrors.projectRequirement}} + +
+
+ +
+ {formErrors.captcha && {formErrors.captcha}} +
+ + + + + ) : ( +
+
)} - -
-
-
- - {formErrors.name && {formErrors.name}} -
-
- - {formErrors.email && {formErrors.email}} -
-
- - {formErrors.phone && {formErrors.phone}} -
-
- - {formErrors.businessName && {formErrors.businessName}} -
-
- - {formErrors.budgetRange && {formErrors.budgetRange}} -
-
- - {formErrors.budgetRange && {formErrors.budgetRange}} -
-
- - - {formErrors.projectRequirement && {formErrors.projectRequirement}} - -
-
- -
- {formErrors.captcha && {formErrors.captcha}} -
- - -
@@ -417,6 +407,14 @@ const ContactPopup: React.FC = ({ isOpen, onClose }) => { transform: translateY(-1px); } + .status-wrapper { + display: flex; + align-items: center; + justify-content: center; + height: 100%; + min-height: 400px; + } + /* Mobile Optimizations */ @media (max-width: 991px) { .info-panel { display: none; } diff --git a/src/components/services-digital-solutions/AboutService.tsx b/src/components/services-digital-solutions/AboutService.tsx new file mode 100644 index 0000000..829b53d --- /dev/null +++ b/src/components/services-digital-solutions/AboutService.tsx @@ -0,0 +1,83 @@ +import React from "react"; + +const AboutService = () => { + return ( +
+
+
+
+
+ {/* Experience Box */} + {/*
+

37+

+ Years Experience +
*/} + + {/* Background Image */} +
+ Office Meeting +
+ + {/* Foreground Curved Image */} +
+ Collaborative Work +
+ + {/* Decorative Dots */} +
+ dots +
+
+
+ +
+
+
+
+
+
OUR ABOUT US
+

We Provide Professional Advice
About This Business.

+
+ +

+ Business tailored design, management & support services Business business agency elit, + sed do eiusmod tempor majority have in some we form, by injected humour solution. +

+
+ +
+
+ {/*
+ Team +
*/} +
+
+ + Great solution for your business growth. +
+
+ + Remind yourself Business know fact. +
+
+
+
+ + +
+
+
+
+ +
+ ); +}; + +export default AboutService; diff --git a/src/components/services/ServiceDetails.tsx b/src/components/services-digital-solutions/ServiceDetails.tsx similarity index 99% rename from src/components/services/ServiceDetails.tsx rename to src/components/services-digital-solutions/ServiceDetails.tsx index 290034a..cbbc477 100644 --- a/src/components/services/ServiceDetails.tsx +++ b/src/components/services-digital-solutions/ServiceDetails.tsx @@ -32,7 +32,7 @@ const ServiceDetails: React.FC = ({ service }) => {
    {psychologyServices.map((item) => (
  • - + {item.title} diff --git a/src/components/services/AboutService.tsx b/src/components/services/AboutService.tsx deleted file mode 100644 index 3817022..0000000 --- a/src/components/services/AboutService.tsx +++ /dev/null @@ -1,275 +0,0 @@ -import React from "react"; - -const AboutService = () => { - return ( -
    -
    -
    -
    -
    - {/* Experience Box */} - {/*
    -

    37+

    - Years Experience -
    */} - - {/* Background Image */} -
    - Office Meeting -
    - - {/* Foreground Curved Image */} -
    - Collaborative Work -
    - - {/* Decorative Dots */} -
    - dots -
    -
    -
    - -
    -
    -
    -
    -
    -
    OUR ABOUT US
    -

    We Provide Professional Advice
    About This Business.

    -
    - -

    - Business tailored design, management & support services Business business agency elit, - sed do eiusmod tempor majority have in some we form, by injected humour solution. -

    -
    - -
    -
    - {/*
    - Team -
    */} -
    -
    - - Great solution for your business growth. -
    -
    - - Remind yourself Business know fact. -
    -
    -
    -
    - - -
    -
    -
    -
    - - -
    - ); -}; - -export default AboutService; diff --git a/src/components/web-development-service/Pricing.tsx b/src/components/web-development-service/Pricing.tsx index b56406e..cf8fe9b 100644 --- a/src/components/web-development-service/Pricing.tsx +++ b/src/components/web-development-service/Pricing.tsx @@ -112,4 +112,4 @@ const Pricing = () => { ); }; -export default Pricing; \ No newline at end of file +export default Pricing; diff --git a/src/utils/data.ts b/src/utils/data.ts index d6f6356..674ee69 100644 --- a/src/utils/data.ts +++ b/src/utils/data.ts @@ -550,10 +550,10 @@ export const pricingPlans: PricingType[] = [ export const psychologyServices = [ { id: 1, - title: "Cognitive Psychology", - slug: "cognitive-psychology", - icon: "fa-solid fa-brain", - image: "https://bracketweb.com/pelocishtml/assets/images/resources/service-d-2.jpg", + title: "Website Development", + slug: "web-development", + icon: "fa-solid fa-code", + image: "https://bracketweb.com/pelocishtml/assets/images/resources/service-d-2.jpg", description: "Business tailored design, management & support services Business for free.", content: `

    Essential Tips For Managing Over Whelming Situations

    @@ -583,10 +583,10 @@ export const psychologyServices = [ }, { id: 2, - title: "Academic Psychology", - slug: "academic-psychology", - icon: "fa-solid fa-graduation-cap", - image: "https://bracketweb.com/pelocishtml/assets/images/resources/service-d-2.jpg", + title: "Mobile Application Development", + slug: "mobile-app-development", + icon: "fa-solid fa-mobile-screen-button", + image: "https://bracketweb.com/pelocishtml/assets/images/resources/service-d-2.jpg", description: "Business tailored design, management & support services Business for free.", content: `

    Essential Tips For Managing Over Whelming Situations

    @@ -616,9 +616,9 @@ export const psychologyServices = [ }, { id: 3, - title: "Career Counseling", - slug: "career-counseling", - icon: "fa-solid fa-user-tie", + title: "Graphic Designing", + slug: "graphic-designing", + icon: "fa-solid fa-palette", image: "https://bracketweb.com/pelocishtml/assets/images/resources/service-d-2.jpg", description: "Business tailored design, management & support services Business for free.", content: ` @@ -649,9 +649,9 @@ export const psychologyServices = [ }, { id: 4, - title: "Clinical Psychology", - slug: "clinical-psychology", - icon: "fa-solid fa-stethoscope", + title: "UI / UX Designing", + slug: "ui-ux-designing", + icon: "fa-solid fa-palette", image: "https://bracketweb.com/pelocishtml/assets/images/resources/service-d-2.jpg", description: "Business tailored design, management & support services Business for free.", content: ` @@ -682,10 +682,10 @@ export const psychologyServices = [ }, { id: 5, - title: "Psychiatric Treatment", - slug: "psychiatric-treatment", - icon: "fa-solid fa-hospital-user", - image: "https://bracketweb.com/pelocishtml/assets/images/resources/service-d-2.jpg", + title: "SEO & Content Writing", + slug: "seo-content-writing", + icon: "fa-solid fa-palette", + image: "https://bracketweb.com/pelocishtml/assets/images/resources/service-d-2.jpg", description: "Business tailored design, management & support services Business for free.", content: `

    Essential Tips For Managing Over Whelming Situations

    @@ -715,10 +715,10 @@ export const psychologyServices = [ }, { id: 6, - title: "Family Therapy", - slug: "family-therapy", - icon: "fa-solid fa-hospital-user", - image: "https://bracketweb.com/pelocishtml/assets/images/resources/service-d-2.jpg", + title: "Digital Marketing", + slug: "digital-marketing", + icon: "fa-solid fa-palette", + image: "https://bracketweb.com/pelocishtml/assets/images/resources/service-d-2.jpg", description: "Business tailored design, management & support services Business for free.", content: `

    Essential Tips For Managing Over Whelming Situations