Compare commits

...

16 Commits

Author SHA1 Message Date
66ce1f0436 logo changed 2025-08-11 21:30:32 +05:30
7af087febe logo changed 2025-08-11 21:29:56 +05:30
akash
3def5a5127 Our Mission Page and About Page Updated 2025-08-11 03:08:30 -07:00
akash
6a5ef63a09 Our Mission Page Updated 2025-08-10 22:36:33 -07:00
akash
64f836cae3 Our Mission Page Updated 2025-08-10 22:35:48 -07:00
00fd67bf02 racial-justice page created 2025-08-11 11:05:31 +05:30
akash
f484320e6e Contact Integration Updated 2025-08-09 02:42:28 -07:00
6aee5996e6 footer logo updated 2025-08-08 22:15:04 +05:30
1609019a8e theme color updated 2025-08-08 21:59:18 +05:30
1879a1fc84 theme color updated 2025-08-08 21:58:36 +05:30
akash
5269f2adae Logo Updated 2025-08-08 05:34:28 -07:00
8123783fe5 spacing, responsive checked 2025-08-08 14:47:58 +05:30
012ae44576 home components created 2025-08-08 14:03:41 +05:30
29deaf2575 home components created 2025-08-08 14:03:07 +05:30
akash
531c5626b1 Blog and Detail page updated 2025-08-08 01:31:56 -07:00
28841060c2 index copy created 2025-08-08 12:24:39 +05:30
47 changed files with 2283 additions and 479 deletions

View File

@ -1,4 +1,3 @@
// images
import blogImg1 from "/public/images/blog/img-1.jpg";
import blogImg2 from "/public/images/blog/img-2.jpg";
import blogImg3 from "/public/images/blog/img-3.jpg";
@ -7,47 +6,67 @@ import blogSingleImg1 from "/public/images/blog/blog-single/img-1.jpg";
import blogSingleImg2 from "/public/images/blog/blog-single/img-2.jpg";
import blogSingleImg3 from "/public/images/blog/blog-single/img-3.jpg";
const blogs = [
{
id: '1',
title: 'Were the people who dont just support progressive change.',
slug:'support-progressive-change',
title: 'The people who just support progressive change.',
slug:'the-people-who-just-support-progressive-change.',
screens: blogImg1,
description: 'Consectetur adipiscing elit. Purusout phasellus malesuada lectus.',
description: `
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p>
<blockquote>
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
</blockquote>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p>
`,
author: 'Anne William',
authorTitle:'Sineor Consultant',
para: 'Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit',
authorTitle:'Admin',
create_at: '25 Sep 2023',
blogSingleImg:blogSingleImg1,
blogSingleImg:blogSingleImg1,
comment:'35',
blClass:'format-standard-image',
},
{
id: '2',
title: 'Politics is why we cant have nice things. Like the internet.',
slug:'Like-the-internet',
title: 'Politics is why we have nice things. Like the internet.',
slug:'politics-is-why-we-have-nice-things-like-the-internet.',
screens: blogImg2,
description: 'Consectetur adipiscing elit. Purusout phasellus malesuada lectus.',
description: `
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p>
<blockquote>
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
</blockquote>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p>
`,
author: 'Robert Fox',
authorTitle:'Creative Director',
para: 'Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit',
authorTitle:'Admin',
create_at: '26 Sep 2023',
blogSingleImg:blogSingleImg2,
blogSingleImg:blogSingleImg2,
comment:'80',
blClass:'format-standard-image',
},
{
id: '3',
title: 'Liberty Divided Over Criticism Justice League',
slug:'Criticism-Justice',
slug:'liberty-divided-over-criticism-justice-league',
screens: blogImg3,
description: 'Consectetur adipiscing elit. Purusout phasellus malesuada lectus.',
description: `
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p>
<blockquote>
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
</blockquote>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p>
`,
author: 'Devon Lane',
authorTitle:'Art Director',
para: 'Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit',
authorTitle:'Admin',
create_at: '28 Sep 2023',
blogSingleImg:blogSingleImg3,
comment:'95',
blClass:'format-video',
},
];
export default blogs;
export default blogs;

View File

@ -1,45 +1,68 @@
import React from 'react';
import Link from 'next/link'
import BlogSidebar from '../BlogSidebar/BlogSidebar.js'
import VideoModal from '../ModalVideo/VideoModal'
import blogs from '../../api/blogs'
import Link from 'next/link';
import BlogSidebar from '../BlogSidebar/BlogSidebar.js';
import VideoModal from '../ModalVideo/VideoModal';
import blogs from '../../api/blogs';
import Image from 'next/image.js';
const ClickHandler = () =>{
const ClickHandler = () => {
window.scrollTo(10, 0);
}
};
const BlogList = (props) => {
return(
return (
<section className="wpo-blog-pg-section section-padding">
<div className="container">
<div className="row">
<div className={`col col-lg-8 col-12 ${props.blRight}`}>
<div className={`col col-lg-12 ${props.blRight}`}>
<div className="wpo-blog-content">
{blogs.map((blog, bitem) => (
<div className={`post ${blog.blClass}`}key={bitem}>
<div className="entry-media video-holder">
<Image src={blog.blogSingleImg} alt=""/>
<VideoModal/>
<div className="row">
{blogs.map((blog, bitem) => (
<div className="col-lg-4 col-md-6 col-12" key={bitem}>
<div className={`post ${blog.blClass}`}>
<div className="entry-media">
<Image src={blog.blogSingleImg} alt="" />
{/* <VideoModal /> */}
</div>
<div className="entry-meta">
<ul>
{/* <li><i className="fi flaticon-comment-white-oval-bubble"></i> Comments {blog.comment} </li> */}
<li>
<i className="fi flaticon-calendar"></i> {blog.create_at}
</li>
<li>
<i className="fi flaticon-user"></i>
<Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`}>
{blog.authorTitle}
</Link>
</li>
</ul>
</div>
<div className="entry-details">
<h3 style={{
whiteSpace: 'nowrap',
overflow: 'hidden',
textOverflow: 'ellipsis',
width: '100%',
display: 'block',
}}>
<Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`}>
{blog.title}
</Link>
</h3>
<p>
{blog.para}
</p>
<Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`} className="read-more">
Continue Reading
</Link>
</div>
</div>
</div>
<div className="entry-meta">
<ul>
<li><i className="fi flaticon-user"></i> By <Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`}>{blog.authorTitle}</Link> </li>
<li><i className="fi flaticon-comment-white-oval-bubble"></i> Comments {blog.comment} </li>
<li><i className="fi flaticon-calendar"></i> {blog.create_at}</li>
</ul>
</div>
<div className="entry-details">
<h3><Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`}>{blog.title}</Link></h3>
<p>Law is a great career path if you want to build a broad skill set that includes everything from critical thinking and strategic planning to communications. If you love rising to a challenge.</p>
<Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`} className="read-more">READ MORE...</Link>
</div>
</div>
))}
))}
</div>
<div className="pagination-wrapper pagination-wrapper-left">
{/* <div className="pagination-wrapper pagination-wrapper-left">
<ul className="pg-pagination">
<li>
<Link href="/blog-left-sidebar" aria-label="Previous">
@ -55,16 +78,14 @@ const BlogList = (props) => {
</Link>
</li>
</ul>
</div>
</div> */}
</div>
</div>
<BlogSidebar blLeft={props.blLeft}/>
{/* <BlogSidebar blLeft={props.blLeft}/> */}
</div>
</div>
</section>
)
}
);
};
export default BlogList;

View File

@ -0,0 +1,70 @@
import React from 'react';
import Link from 'next/link'
import BlogSidebar from '../BlogSidebar/BlogSidebar.js'
import VideoModal from '../ModalVideo/VideoModal'
import blogs from '../../api/blogs'
import Image from 'next/image.js';
const ClickHandler = () =>{
window.scrollTo(10, 0);
}
const BlogList2 = (props) => {
return(
<section className="wpo-blog-pg-section section-padding">
<div className="container">
<div className="row">
<div className={`col col-lg-8 col-12 ${props.blRight}`}>
<div className="wpo-blog-content">
{blogs.map((blog, bitem) => (
<div className={`post ${blog.blClass}`}key={bitem}>
<div className="entry-media video-holder">
<Image src={blog.blogSingleImg} alt=""/>
<VideoModal/>
</div>
<div className="entry-meta">
<ul>
<li><i className="fi flaticon-user"></i> By <Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`}>{blog.authorTitle}</Link> </li>
<li><i className="fi flaticon-comment-white-oval-bubble"></i> Comments {blog.comment} </li>
<li><i className="fi flaticon-calendar"></i> {blog.create_at}</li>
</ul>
</div>
<div className="entry-details">
<h3><Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`}>{blog.title}</Link></h3>
<p>Law is a great career path if you want to build a broad skill set that includes everything from critical thinking and strategic planning to communications. If you love rising to a challenge.</p>
<Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`} className="read-more">READ MORE...</Link>
</div>
</div>
))}
<div className="pagination-wrapper pagination-wrapper-left">
<ul className="pg-pagination">
<li>
<Link href="/blog-left-sidebar" aria-label="Previous">
<i className="fi ti-angle-left"></i>
</Link>
</li>
<li className="active"><Link href="/blog-left-sidebar">1</Link></li>
<li><Link href="/blog-left-sidebar">2</Link></li>
<li><Link href="/blog-left-sidebar">3</Link></li>
<li>
<Link href="/blog-left-sidebar" aria-label="Next">
<i className="fi ti-angle-right"></i>
</Link>
</li>
</ul>
</div>
</div>
</div>
<BlogSidebar blLeft={props.blLeft}/>
</div>
</div>
</section>
)
}
export default BlogList2;

View File

@ -25,7 +25,7 @@ const BlogSection = () => {
<div className="wpo-blog-content">
<ul>
<li><a href="blog-single.html">{blog.create_at}</a></li>
<li>by: <Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`}>{blog.author}</Link></li>
<li>by: <Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`}>{blog.authorTitle}</Link></li>
</ul>
<h2><Link onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`}>{blog.title}</Link></h2>
<Link className="more" onClick={ClickHandler} href={'/blog-single/[slug]'} as={`/blog-single/${blog.slug}`}>Continue Reading</Link>

View File

@ -1,117 +1,188 @@
import React, { useState } from 'react'
import SimpleReactValidator from 'simple-react-validator';
"use client";
import React, { useState, useRef } from "react";
import SimpleReactValidator from "simple-react-validator";
import ReCAPTCHA from "react-google-recaptcha";
import axios from "axios";
const ContactForm = () => {
const [forms, setForms] = useState({
name: "",
email: "",
subject: "",
phone: "",
message: "",
});
const [forms, setForms] = useState({
name: '',
email: '',
subject: '',
phone: '',
message: ''
});
const [validator] = useState(new SimpleReactValidator({
className: 'errorMessage'
}));
const changeHandler = e => {
setForms({ ...forms, [e.target.name]: e.target.value })
if (validator.allValid()) {
validator.hideMessages();
} else {
validator.showMessages();
const [validator] = useState(
new SimpleReactValidator({
className: "errorMessage",
})
);
const recaptchaRef = useRef(null);
const [recaptchaToken, setRecaptchaToken] = useState(null);
const RECAPTCHA_SITEKEY = "your_recaptcha_site_key_here";
const changeHandler = (e) => {
const { name, value } = e.target;
setForms({ ...forms, [name]: value });
if (validator.allValid()) {
validator.hideMessages();
} else {
validator.showMessages();
}
};
const handleRecaptcha = (token) => {
setRecaptchaToken(token);
};
const submitHandler = async (e) => {
e.preventDefault();
if (validator.allValid()) {
validator.hideMessages();
const emailPayload = {
name: forms.name,
email: forms.email,
phone: forms.phone,
subject: forms.subject,
message: `Subject: ${forms.subject}\n\nMessage:\n${forms.message}`,
to: "your-receiving-email@example.com",
senderName: "Website Contact Form",
recaptchaToken: recaptchaToken,
};
try {
const response = await axios.post(
"https://mailserver.metatronnest.com/send",
emailPayload,
{ headers: { "Content-Type": "application/json" } }
);
alert(response?.data?.message || "Message sent successfully!");
setForms({
name: "",
email: "",
subject: "",
phone: "",
message: "",
});
validator.hideMessages();
if (recaptchaRef.current) {
try {
recaptchaRef.current.reset();
} catch (err) {
}
}
};
setRecaptchaToken(null);
} catch (err) {
alert("Failed to send message. Please try again later.");
}
} else {
validator.showMessages();
setForms((prev) => ({ ...prev }));
}
};
const submitHandler = e => {
e.preventDefault();
if (validator.allValid()) {
validator.hideMessages();
setForms({
name: '',
email: '',
subject: '',
phone: '',
message: ''
})
} else {
validator.showMessages();
}
};
return (
<form onSubmit={(e) => submitHandler(e)} className="contact-validation-active">
<div className="row">
<div className="col col-lg-6 col-12">
<div className="form-field">
<input
value={forms.name}
type="text"
name="name"
onBlur={changeHandler}
onChange={changeHandler}
placeholder="Your Name"
/>
{validator.message("name", forms.name, "required|alpha_space")}
</div>
</div>
return (
<form onSubmit={(e) => submitHandler(e)} className="contact-validation-active" >
<div className="row">
<div className="col col-lg-6 col-12">
<div className="form-field">
<input
value={forms.name}
type="text"
name="name"
onBlur={(e) => changeHandler(e)}
onChange={(e) => changeHandler(e)}
placeholder="Your Name" />
{validator.message('name', forms.name, 'required|alpha_space')}
</div>
</div>
<div className="col col-lg-6 col-12">
<div className="form-field">
<input
value={forms.email}
type="email"
name="email"
onBlur={(e) => changeHandler(e)}
onChange={(e) => changeHandler(e)}
placeholder="Your Email" />
{validator.message('email', forms.email, 'required|email')}
</div>
</div>
<div className="col col-lg-6 col-12">
<div className="form-field">
<input
value={forms.phone}
type="phone"
name="phone"
onBlur={(e) => changeHandler(e)}
onChange={(e) => changeHandler(e)}
placeholder="Your phone" />
{validator.message('phone', forms.phone, 'required|phone')}
</div>
</div>
<div className="col col-lg-6 col-12">
<div className="form-field">
<select
onBlur={(e) => changeHandler(e)}
onChange={(e) => changeHandler(e)}
value={forms.subject}
type="text"
name="subject">
<option>River Development</option>
<option>Village Development</option>
<option>Road Development</option>
<option>Town Development</option>
<option>Social Development</option>
</select>
{validator.message('subject', forms.subject, 'required')}
</div>
</div>
<div className="col col-lg-12 col-12">
<textarea
onBlur={(e) => changeHandler(e)}
onChange={(e) => changeHandler(e)}
value={forms.message}
type="text"
name="message"
placeholder="Message">
</textarea>
{validator.message('message', forms.message, 'required')}
</div>
</div>
<div className="submit-area">
<button type="submit" className="theme-btn">Submit Now</button>
</div>
</form >
)
}
<div className="col col-lg-6 col-12">
<div className="form-field">
<input
value={forms.email}
type="email"
name="email"
onBlur={changeHandler}
onChange={changeHandler}
placeholder="Your Email"
/>
{validator.message("email", forms.email, "required|email")}
</div>
</div>
export default ContactForm;
<div className="col col-lg-6 col-12">
<div className="form-field">
<input
value={forms.phone}
type="phone"
name="phone"
onBlur={changeHandler}
onChange={changeHandler}
placeholder="Your phone"
/>
{validator.message("phone", forms.phone, "required|phone")}
</div>
</div>
<div className="col col-lg-6 col-12">
<div className="form-field">
<select
onBlur={changeHandler}
onChange={changeHandler}
value={forms.subject}
name="subject"
>
<option value="">Select Subject</option>
<option>River Development</option>
<option>Village Development</option>
<option>Road Development</option>
<option>Town Development</option>
<option>Social Development</option>
</select>
{validator.message("subject", forms.subject, "required")}
</div>
</div>
<div className="col col-lg-12 col-12">
<textarea
onBlur={changeHandler}
onChange={changeHandler}
value={forms.message}
name="message"
placeholder="Message"
></textarea>
{validator.message("message", forms.message, "required")}
</div>
<div className="col col-lg-12 col-12" style={{ marginTop: 12 }}>
<ReCAPTCHA
ref={recaptchaRef}
sitekey={RECAPTCHA_SITEKEY}
onChange={handleRecaptcha}
/>
</div>
</div>
<div className="submit-area" style={{ marginTop: 12 }}>
<button type="submit" className="theme-btn">
Submit Now
</button>
</div>
</form>
);
};
export default ContactForm;

View File

@ -1,7 +1,63 @@
import React from "react";
import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
import Link from 'next/link'
import SectionTitle from "../SectionTitle/SectionTitle";
import Services from '../../api/service'
const settings = {
dots: true,
arrows: true,
speed: 1000,
slidesToShow: 4,
slidesToScroll: 1,
autoplay: false,
responsive: [
{
breakpoint: 1400,
settings: {
slidesToShow: 3,
slidesToScroll: 1,
infinite: true,
}
},
{
breakpoint: 1200,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
infinite: true,
centerMode: false,
}
},
{
breakpoint: 991,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
centerMode: false,
}
},
{
breakpoint: 767,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
centerMode: false,
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
centerMode: false,
}
}
]
};
const ClickHandler = () => {
window.scrollTo(10, 0);
@ -9,100 +65,29 @@ const ClickHandler = () => {
const Features = (props) => {
return (
<section className="wpo-features-area">
<section className={`wpo-service-section section-padding ${props.sClass}`}>
<div className="container">
<div className="features-wrap">
<div className="row">
<div className="col col-lg-3 col-md-6 col-12">
<div className="feature-item-wrap">
<div className="feature-item">
<div className="icon">
<i className="fi flaticon-goal"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/about">Our Mission</Link></h2>
</div>
</div>
<div className="feature-item-hidden">
<div className="icon">
<i className="fi flaticon-goal"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/about">Our Mission</Link></h2>
<p>Empowering communities through compassionate action, positive change with charity mission.</p>
<SectionTitle subTitle={'Mission And Vision'} Title={'How we can build a better country together!'}/>
<div className="row-grid wpo-service-slider">
<Slider {...settings}>
{Services.slice(0, 5).map((service, srv) => (
<div className="grid" key={srv}>
<div className="wpo-service-item">
<div className="wpo-service-text">
<div className="service-icon">
<i className={`fi ${service.icon}`}></i>
</div>
<h2><Link onClick={ClickHandler} href={'/service-single/[slug]'} as={`/service-single/${service.slug}`}>{service.sTitle}</Link></h2>
<p>{service.description}</p>
</div>
</div>
</div>
</div>
<div className="col col-lg-3 col-md-6 col-12">
<div className="feature-item-wrap">
<div className="feature-item">
<div className="icon">
<i className="fi flaticon-conference-1"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/campaign">Campaign Events</Link></h2>
</div>
</div>
<div className="feature-item-hidden">
<div className="icon">
<i className="fi flaticon-conference-1"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/campaign">Campaign Events</Link></h2>
<p>Join us in supporting a worthy cause at our charity event, together we can make a difference.</p>
</div>
</div>
</div>
</div>
<div className="col col-lg-3 col-md-6 col-12">
<div className="feature-item-wrap">
<div className="feature-item">
<div className="icon">
<i className="fi flaticon-charity"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/donate">Make Donation</Link></h2>
</div>
</div>
<div className="feature-item-hidden">
<div className="icon">
<i className="fi flaticon-charity"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/donate">Make Donation</Link></h2>
<p>Donate now to help those in need! Make a difference by taking action with
your donation.</p>
</div>
</div>
</div>
</div>
<div className="col col-lg-3 col-md-6 col-12">
<div className="feature-item-wrap">
<div className="feature-item">
<div className="icon">
<i className="fi flaticon-community"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/volunteer">Join Volunteer</Link></h2>
</div>
</div>
<div className="feature-item-hidden">
<div className="icon">
<i className="fi flaticon-community"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/volunteer">Join Volunteer</Link></h2>
<p>Join our team of volunteers and help make a positive impact in your community today.</p>
</div>
</div>
</div>
</div>
</div>
))}
</Slider>
</div>
</div>
</section>
)
);
}
export default Features;

View File

@ -0,0 +1,108 @@
import React from "react";
import Link from 'next/link'
const ClickHandler = () => {
window.scrollTo(10, 0);
}
const Features = (props) => {
return (
<section className="wpo-features-area">
<div className="container">
<div className="features-wrap">
<div className="row">
<div className="col col-lg-3 col-md-6 col-12">
<div className="feature-item-wrap">
<div className="feature-item">
<div className="icon">
<i className="fi flaticon-goal"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/about">Our Mission</Link></h2>
</div>
</div>
<div className="feature-item-hidden">
<div className="icon">
<i className="fi flaticon-goal"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/about">Our Mission</Link></h2>
<p>Empowering communities through compassionate action, positive change with charity mission.</p>
</div>
</div>
</div>
</div>
<div className="col col-lg-3 col-md-6 col-12">
<div className="feature-item-wrap">
<div className="feature-item">
<div className="icon">
<i className="fi flaticon-conference-1"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/campaign">Campaign Events</Link></h2>
</div>
</div>
<div className="feature-item-hidden">
<div className="icon">
<i className="fi flaticon-conference-1"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/campaign">Campaign Events</Link></h2>
<p>Join us in supporting a worthy cause at our charity event, together we can make a difference.</p>
</div>
</div>
</div>
</div>
<div className="col col-lg-3 col-md-6 col-12">
<div className="feature-item-wrap">
<div className="feature-item">
<div className="icon">
<i className="fi flaticon-charity"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/donate">Make Donation</Link></h2>
</div>
</div>
<div className="feature-item-hidden">
<div className="icon">
<i className="fi flaticon-charity"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/donate">Make Donation</Link></h2>
<p>Donate now to help those in need! Make a difference by taking action with
your donation.</p>
</div>
</div>
</div>
</div>
<div className="col col-lg-3 col-md-6 col-12">
<div className="feature-item-wrap">
<div className="feature-item">
<div className="icon">
<i className="fi flaticon-community"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/volunteer">Join Volunteer</Link></h2>
</div>
</div>
<div className="feature-item-hidden">
<div className="icon">
<i className="fi flaticon-community"></i>
</div>
<div className="feature-text">
<h2><Link onClick={ClickHandler} href="/volunteer">Join Volunteer</Link></h2>
<p>Join our team of volunteers and help make a positive impact in your community today.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
)
}
export default Features;

View File

@ -1,6 +1,8 @@
import React from 'react'
import CountUp, { useCountUp } from 'react-countup';
import VideoModal from '../ModalVideo/VideoModal';
import fImg from '/public/images/funfact2.jpg'
import Image from 'next/image';
const FunFact = (props) => {
@ -12,46 +14,51 @@ const FunFact = (props) => {
});
return (
<section className="wpo-fun-fact-section content">
<div className="right-bg">
<VideoModal/>
</div>
<div className="container-fluid">
<div className="row">
<div className="col col-lg-6">
<div className="wpo-fun-fact-wrap">
<div className="wpo-fun-fact-grids clearfix">
<div className="grid">
<div className="info">
<h3><span><CountUp end={35} enableScrollSpy /></span>K</h3>
<p>Total People lived in our city</p>
<div className={props.fnTpClass}>
<section className={`wpo-fun-fact-section-s2 content ${props.fnClass}`}>
<div className="container">
<div className="row">
<div className="col col-lg-12">
<div className="wpo-fun-fact-wrap">
<div className="wpo-fun-fact-grids clearfix">
<div className="grid">
<div className="info">
<h3><span><CountUp end={35} enableScrollSpy /></span>K</h3>
<p>Total People lived in our city</p>
</div>
</div>
</div>
<div className="grid">
<div className="info">
<h3><span><CountUp end={12} enableScrollSpy /></span>K</h3>
<p>Square kilometers region covers</p>
<div className="grid">
<div className="info">
<h3><span><CountUp end={12} enableScrollSpy /></span>K</h3>
<p>Square kilometers region covers</p>
</div>
</div>
</div>
<div className="grid">
<div className="info">
<h3><span><CountUp end={25} enableScrollSpy /></span>%</h3>
<p>Private & domestic garden land</p>
<div className="grid">
<div className="info">
<h3><span><CountUp end={25} enableScrollSpy /></span>%</h3>
<p>Private & domestic garden land</p>
</div>
</div>
</div>
<div className="grid">
<div className="info">
<h3><span><CountUp end={8} enableScrollSpy /></span>th</h3>
<p>Average Costs of Home Ownership</p>
<div className="grid">
<div className="info">
<h3><span><CountUp end={8} enableScrollSpy /></span>th</h3>
<p>Average Costs of Home Ownership</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<div className="funfact-video">
<div className="container">
<Image src={fImg} alt="" />
<VideoModal />
</div>
</div>
<span id="counter" className='d-none' />
</section>
<span id="counter" className='d-none'/>
</div>
)
}

View File

@ -0,0 +1,58 @@
import React from 'react'
import CountUp, { useCountUp } from 'react-countup';
import VideoModal from '../ModalVideo/VideoModal';
const FunFact = (props) => {
useCountUp({
ref: 'counter',
end: 1234567,
enableScrollSpy: true,
scrollSpyDelay: 1000,
});
return (
<section className="wpo-fun-fact-section content">
<div className="right-bg">
<VideoModal/>
</div>
<div className="container-fluid">
<div className="row">
<div className="col col-lg-6">
<div className="wpo-fun-fact-wrap">
<div className="wpo-fun-fact-grids clearfix">
<div className="grid">
<div className="info">
<h3><span><CountUp end={35} enableScrollSpy /></span>K</h3>
<p>Total People lived in our city</p>
</div>
</div>
<div className="grid">
<div className="info">
<h3><span><CountUp end={12} enableScrollSpy /></span>K</h3>
<p>Square kilometers region covers</p>
</div>
</div>
<div className="grid">
<div className="info">
<h3><span><CountUp end={25} enableScrollSpy /></span>%</h3>
<p>Private & domestic garden land</p>
</div>
</div>
<div className="grid">
<div className="info">
<h3><span><CountUp end={8} enableScrollSpy /></span>th</h3>
<p>Average Costs of Home Ownership</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<span id="counter" className='d-none' />
</section>
)
}
export default FunFact;

View File

@ -0,0 +1,15 @@
import React from 'react'
import VideoModal from '../ModalVideo/VideoModal';
import fImg from '/public/images/funfact3.jpg'
import Image from 'next/image';
const FunFactVideo = (props) => {
return (
<div className="funfact-video mt-0">
<Image src={fImg} alt="" />
<VideoModal />
</div>
)
}
export default FunFactVideo;

View File

@ -1,6 +1,6 @@
import React from 'react'
import Link from 'next/link'
import Logo from '/public/images/logo-s2.svg'
import Logo from '/public/images/logo.png'
import Image from 'next/image'
const HeaderTopbar = () => {

View File

@ -1,7 +1,7 @@
import React from "react";
import Header from '../header/Header';
import Header2 from '../header2/Header2';
export default function Navbar(props) {
export default function Navbar2(props) {
const [scroll, setScroll] = React.useState(0);
const handleScroll = () => setScroll(document.documentElement.scrollTop);
@ -15,7 +15,7 @@ export default function Navbar(props) {
return (
<div className={className}>
<Header hclass={props.hclass} Logo={props.Logo} topbarNone={props.topbarNone} />
<Header2 hclass={props.hclass} Logo={props.Logo} topbarNone={props.topbarNone} />
</div>
);
}

View File

@ -0,0 +1,21 @@
import React from "react";
import Header from '../header/Header';
export default function Navbar(props) {
const [scroll, setScroll] = React.useState(0);
const handleScroll = () => setScroll(document.documentElement.scrollTop);
React.useEffect(() => {
window.addEventListener("scroll", handleScroll);
return () => window.removeEventListener("scroll", handleScroll);
}, []);
const className = scroll > 80 ? "fixed-navbar active" : "fixed-navbar";
return (
<div className={className}>
<Header hclass={props.hclass} Logo={props.Logo} topbarNone={props.topbarNone} />
</div>
);
}

View File

@ -0,0 +1,183 @@
import React, { useState } from 'react';
import { TabContent, TabPane, Nav, NavItem, NavLink, Row } from 'reactstrap';
import classnames from 'classnames';
import Link from 'next/link'
import Services from '../../api/service'
import Image from 'next/image';
const ClickHandler = () => {
window.scrollTo(10, 0);
}
const ServiceSectionS2 = () => {
const [activeTab, setActiveTab] = useState('1');
const toggle = tab => {
if (activeTab !== tab) setActiveTab(tab);
}
return (
<div className="wpo-campaign-area-s4 section-padding">
<div className="container">
<div className="wpo-campaign-wrap">
<Nav tabs>
<NavItem>
<NavLink
className={classnames({ active: activeTab === '1' })}
onClick={() => { toggle('1'); }}
>
Education
</NavLink>
</NavItem>
<NavItem>
<NavLink
className={classnames({ active: activeTab === '2' })}
onClick={() => { toggle('2'); }}
>
Social Services
</NavLink>
</NavItem>
<NavItem>
<NavLink
className={classnames({ active: activeTab === '3' })}
onClick={() => { toggle('3'); }}
>
Business
</NavLink>
</NavItem>
<NavItem>
<NavLink
className={classnames({ active: activeTab === '4' })}
onClick={() => { toggle('4'); }}
>
Qualification
</NavLink>
</NavItem>
<NavItem>
<NavLink
className={classnames({ active: activeTab === '5' })}
onClick={() => { toggle('5'); }}
>
Development
</NavLink>
</NavItem>
</Nav>
<TabContent activeTab={activeTab}>
<TabPane tabId="1">
<div className="row">
{Services.slice(5, 8).map((service, srv) => (
<div className="col-lg-4 col-md-6 col-12" key={srv}>
<div className="wpo-campaign-single">
<div className="wpo-campaign-item">
<div className="wpo-campaign-img">
<Image src={service.sImgS} alt="" />
</div>
<div className="wpo-campaign-content">
<div className="wpo-campaign-text-top">
<h2><Link onClick={ClickHandler} href={'/service-single/[slug]'} as={`/service-single/${service.slug}`}>{service.sTitle}</Link></h2>
<p>{service.description}</p>
</div>
</div>
</div>
</div>
</div>
))}
</div>
</TabPane>
<TabPane tabId="2">
<div className="row">
{Services.slice(8, 11).map((service, srv) => (
<div className="col-lg-4 col-md-6 col-12" key={srv}>
<div className="wpo-campaign-single">
<div className="wpo-campaign-item">
<div className="wpo-campaign-img">
<Image src={service.sImgS} alt="" />
</div>
<div className="wpo-campaign-content">
<div className="wpo-campaign-text-top">
<h2><Link onClick={ClickHandler} href={'/service-single/[slug]'} as={`/service-single/${service.slug}`}>{service.sTitle}</Link></h2>
<p>{service.description}</p>
</div>
</div>
</div>
</div>
</div>
))}
</div>
</TabPane>
<TabPane tabId="3">
<Row>
{Services.slice(11, 14).map((service, srv) => (
<div className="col-lg-4 col-md-6 col-12" key={srv}>
<div className="wpo-campaign-single">
<div className="wpo-campaign-item">
<div className="wpo-campaign-img">
<Image src={service.sImgS} alt="" />
</div>
<div className="wpo-campaign-content">
<div className="wpo-campaign-text-top">
<h2><Link onClick={ClickHandler} href={'/service-single/[slug]'} as={`/service-single/${service.slug}`}>{service.sTitle}</Link></h2>
<p>{service.description}</p>
</div>
</div>
</div>
</div>
</div>
))}
</Row>
</TabPane>
<TabPane tabId="4">
<Row>
{Services.slice(14, 17).map((service, srv) => (
<div className="col-lg-4 col-md-6 col-12" key={srv}>
<div className="wpo-campaign-single">
<div className="wpo-campaign-item">
<div className="wpo-campaign-img">
<Image src={service.sImgS} alt="" />
</div>
<div className="wpo-campaign-content">
<div className="wpo-campaign-text-top">
<h2><Link onClick={ClickHandler} href={'/service-single/[slug]'} as={`/service-single/${service.slug}`}>{service.sTitle}</Link></h2>
<p>{service.description}</p>
</div>
</div>
</div>
</div>
</div>
))}
</Row>
</TabPane>
<TabPane tabId="5">
<Row>
{Services.slice(17, 20).map((service, srv) => (
<div className="col-lg-4 col-md-6 col-12" key={srv}>
<div className="wpo-campaign-single">
<div className="wpo-campaign-item">
<div className="wpo-campaign-img">
<Image src={service.sImgS} alt="" />
</div>
<div className="wpo-campaign-content">
<div className="wpo-campaign-text-top">
<h2><Link onClick={ClickHandler} href={'/service-single/[slug]'} as={`/service-single/${service.slug}`}>{service.sTitle}</Link></h2>
<p>{service.description}</p>
</div>
</div>
</div>
</div>
</div>
))}
</Row>
</TabPane>
</TabContent>
</div>
</div>
</div>
);
}
export default ServiceSectionS2;

View File

@ -47,7 +47,7 @@ const Testimonial = (props) => {
return (
<section className={`wpo-testimonial-section ${props.tmClass}`}>
<section className={`wpo-testimonial-section section-padding ${props.tmClass}`}>
<div className="container">
<div className="wpo-testimonial-wrap">
<div className="row align-items-center">

View File

@ -0,0 +1,95 @@
import React from 'react'
import sign from '/public/images/signeture.png'
import Image from 'next/image';
const AboutSection = (props) => {
return (
<section className={`wpo-about-section section-padding ${props.abClass}`}>
<div className="container">
<div className="wpo-about-wrap">
<div className="row align-items-center">
<div className="col-lg-6 col-md-12 col-12">
<div className="wpo-about-img">
<Image src={props.abimg} alt="" />
<div className="wpo-about-img-text">
<h4>1998</h4>
<div className="rotate-text">
<span>W</span>
<span>e</span>
<span>A</span>
<span>r</span>
<span>e</span>
<span>W</span>
<span>o</span>
<span>r</span>
<span>k</span>
<span>i</span>
<span>n</span>
<span>g</span>
<span>F</span>
<span>o</span>
<span>r</span>
<span>Y</span>
<span>o</span>
<span>u</span>
<span>S</span>
<span>i</span>
<span>n</span>
<span>c</span>
<span>e</span>
</div>
<div className="dots">
<span></span>
<span></span>
<span></span>
</div>
<div className="border-shape-1"></div>
<div className="border-shape-2"></div>
<div className="border-shape-3"></div>
</div>
<div className="about-shape">
<div className="shape-1"></div>
<div className="shape-2"></div>
<div className="shape-3"></div>
<div className="shape-4"></div>
</div>
</div>
</div>
<div className="col-lg-6 col-md-12 col-12">
<div className="wpo-about-text">
<div className="wpo-section-title">
<span>About Politian</span>
<h2>We Can Work Together For Create a Better Future.</h2>
</div>
<p>The leader is eager to listen to the needs of the youth generation and to hear what
solutions they have to the problems they are facing. He hopes to find solutions that
will help them lead meaningful lives and make lasting change in the world. </p>
<p>He believes that the collaboration between the youth and the leaders of society is
necessary to bring about a brighter future. Now, he is ready to take the first step
to making that happen.</p>
<div className="quote">
<p>We can start by taking small steps and making small changes that can have a big
impact on the world.</p>
</div>
<div className="wpo-about-left-info">
<div className="wpo-about-left-inner">
<div className="wpo-about-left-text">
<h5>Robert Willum</h5>
<span>CEO & Founder of Manit</span>
</div>
</div>
<div className="signeture">
<Image src={sign} alt="" />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
)
}
export default AboutSection;

View File

@ -0,0 +1,32 @@
import React from 'react';
import Link from 'next/link'
const ClickHandler = () => {
window.scrollTo(10, 0);
}
const Donors = () => {
return (
<section className="wpo-donors-section section-padding-bottom">
<div className="container">
<div className="wpo-donors-wrap">
<div className="row align-items-center">
<div className="col-lg-6">
<h2>Would you like to become one of
our honorable donors?</h2>
</div>
<div className="col-lg-6">
<div className="donors-btn">
<Link onClick={ClickHandler} href="/donate">$10 Donation</Link>
<Link onClick={ClickHandler} href="/donate">Other</Link>
</div>
</div>
</div>
</div>
</div>
</section>
);
}
export default Donors;

View File

@ -0,0 +1,93 @@
import React from "react";
import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
import Link from 'next/link'
import SectionTitle from "../SectionTitle/SectionTitle";
import Services from '../../api/service'
const settings = {
dots: true,
arrows: true,
speed: 1000,
slidesToShow: 4,
slidesToScroll: 1,
autoplay: false,
responsive: [
{
breakpoint: 1400,
settings: {
slidesToShow: 3,
slidesToScroll: 1,
infinite: true,
}
},
{
breakpoint: 1200,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
infinite: true,
centerMode: false,
}
},
{
breakpoint: 991,
settings: {
slidesToShow: 2,
slidesToScroll: 1,
centerMode: false,
}
},
{
breakpoint: 767,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
centerMode: false,
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
centerMode: false,
}
}
]
};
const ClickHandler = () => {
window.scrollTo(10, 0);
}
const ServicesSection = (props) => {
return (
<section className={`wpo-service-section section-padding-top ${props.sClass}`}>
<div className="container">
<SectionTitle subTitle={'Mission And Vision'} Title={'How we can build a better country together!'}/>
<div className="row-grid wpo-service-slider">
<Slider {...settings}>
{Services.slice(0, 5).map((service, srv) => (
<div className="grid" key={srv}>
<div className="wpo-service-item">
<div className="wpo-service-text">
<div className="service-icon">
<i className={`fi ${service.icon}`}></i>
</div>
<h2><Link onClick={ClickHandler} href={'/service-single/[slug]'} as={`/service-single/${service.slug}`}>{service.sTitle}</Link></h2>
<p>{service.description}</p>
</div>
</div>
</div>
))}
</Slider>
</div>
</div>
</section>
);
}
export default ServicesSection;

View File

@ -0,0 +1,46 @@
import React from 'react'
import Link from 'next/link'
import Team from '../../api/team'
import SectionTitle from '../SectionTitle/SectionTitle';
import Image from 'next/image';
const ClickHandler = () => {
window.scrollTo(10, 0);
}
const TeamsSection = (props) => {
return (
<section className={`wpo-team-section section-padding-top-bottom ${props.tmClass}`}>
<div className="container">
<SectionTitle subTitle={'Our Team'} Title={'Meet Our City Council'} />
<div className="wpo-team-wrap">
<div className="row">
{Team.map((team, aitem) => (
<div className="col col-lg-3 col-md-6 col-12" key={aitem}>
<div className="wpo-team-item">
<div className="wpo-team-img">
<div className="wpo-team-img-box">
<Image src={team.tImg} alt="" />
<ul>
<li><Link onClick={ClickHandler} href="/"><i className="fi flaticon-facebook-app-symbol"></i></Link></li>
<li><Link onClick={ClickHandler} href="/"><i className="fi flaticon-twitter"></i></Link></li>
<li><Link onClick={ClickHandler} href="/"><i className="fi flaticon-linkedin"></i></Link></li>
</ul>
</div>
</div>
<div className="wpo-team-text">
<h2><Link onClick={ClickHandler} href={'/team-single/[slug]'} as={`/team-single/${team.slug}`}>{team.name}</Link></h2>
<span>{team.title}</span>
</div>
</div>
</div>
))}
</div>
</div>
</div>
</section>
)
}
export default TeamsSection;

View File

@ -0,0 +1,123 @@
import React, { useState } from 'react';
import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
import ts1 from '/public/images/about-s2.jpg'
import ts2 from '/public/images/about-s2.jpg'
import ts3 from '/public/images/about-s2.jpg'
import thumb1 from '/public/images/testimonial/thumb1.png'
import thumb2 from '/public/images/testimonial/thumb2.png'
import thumb3 from '/public/images/testimonial/thumb3.png'
import Image from 'next/image';
const testimonial = [
{
id: '01',
tImg: ts1,
thumbImg: thumb1,
Des: "Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong remedies.",
Title: 'Robert Willum',
Sub: "President of BPT",
},
{
id: '02',
tImg: ts2,
thumbImg: thumb2,
Des: "Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong remedies.",
Title: 'Leslie Alexander',
Sub: "President of TBP",
},
{
id: '03',
tImg: ts3,
thumbImg: thumb3,
Des: "Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong remedies.",
Title: 'David Joy',
Sub: "President of AML",
}
]
const TestimonialSection = (props) => {
const [nav1, setNav1] = useState();
const [nav2, setNav2] = useState();
return (
<section className={`wpo-testimonial-section section-padding-top ${props.tmClass}`}>
<div className="container">
<div className="wpo-testimonial-wrap">
<div className="row align-items-center">
<div className="col-lg-6 col-12 order-lg-1 order-1">
<div class="wpo-section-title-new">
<h2>How we can build a better country together!</h2>
</div>
<div className="wpo-testimonial-items">
<div className="right-slide">
<Slider asNavFor={nav2} ref={(slider1) => setNav1(slider1)} dots={true} arrows={false}>
{
testimonial.map((tesmnl, tsm) => (
<div className="wpo-testimonial-item" key={tsm}>
<div className="wpo-testimonial-text">
<i className="fi flaticon-right-quote-sign"></i>
<p>{tesmnl.Des}</p>
{/* <div className="wpo-testimonial-text-btm">
<div className="wpo-testimonial-text-btm-img">
<Image src={tesmnl.thumbImg} alt=""/>
</div>
<div className="wpo-testimonial-text-btm-info">
<h3>{tesmnl.Title}</h3>
<span>{tesmnl.Sub}</span>
</div>
</div> */}
</div>
</div>
))
}
</Slider>
</div>
</div>
</div>
<div className="col-lg-6 col-12 order-lg-1 order-2">
<div className="testimonial-left">
<div className="testimonial-left-inner">
<div className="left-slide">
<Slider
asNavFor={nav1}
ref={(slider2) => setNav2(slider2)}
slidesToShow={1}
fade={true}
dots={false}
arrows={false}
swipeToSlide={true}
focusOnSelect={true}
>
{
testimonial.map((tesmnl, tsm) => (
<div className="testimonial-img" key={tsm}>
<Image src={tesmnl?.tImg} alt="" />
</div>
))
}
</Slider>
</div>
{/* <div className="shape-1"></div>
<div className="border-s1"></div>
<div className="border-s2"></div>
<div className="border-s3"></div> */}
</div>
</div>
</div>
</div>
</div>
</div>
</section>
);
}
export default TestimonialSection;

View File

@ -1,6 +1,6 @@
import React from 'react'
import Link from 'next/link'
import Logo from '/public/images/logo.svg'
import Logo from '/public/images/janhanlaw-logo.png'
import Services from '../../api/service';
import Image from 'next/image';

View File

@ -2,7 +2,7 @@ import React, { useState } from 'react'
import Link from 'next/link'
import HeaderTopbar from '../HeaderTopbar/HeaderTopbar'
import MobileMenu from '../MobileMenu/MobileMenu'
import Logo from '/public/images/logo-s2.svg'
import Logo from '/public/images/logo.png'
import Image from 'next/image'
const Header2 = (props) => {
@ -46,7 +46,12 @@ const Header2 = (props) => {
<li><Link onClick={ClickHandler} href="/home4">Female Candidate</Link></li>
</ul>
</li>
<li><Link onClick={ClickHandler} href="/about">About us</Link></li>
<li><Link onClick={ClickHandler} href="/about">About us</Link>
<ul className="sub-menu">
<li><Link onClick={ClickHandler} href="/about/our-mission">Our Mission</Link></li>
<li><Link onClick={ClickHandler} href="/about/racial-justice">Racial Justice</Link></li>
</ul>
</li>
<li className="menu-item-has-children">
<Link onClick={ClickHandler} href="/">Campaign</Link>
<ul className="sub-menu">

View File

@ -1,47 +1,107 @@
import React from "react";
import Slider from "react-slick";
import Link from 'next/link'
import hero1 from '/public/images/slider/1.png'
import Image from "next/image";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
const settings = {
dots: true,
arrows: false,
speed: 1200,
slidesToShow: 1,
slidesToScroll: 1,
autoplay: false,
autoplaySpeed: 2500,
fade: true
};
const Hero = () => {
const ClickHandler = () => {
window.scrollTo(10, 0);
}
return (
<section className="static-hero">
<section className="wpo-hero-slider">
<div className="hero-container">
<div className="hero-inner">
<div className="container-fluid">
<div className="hero-content">
<div data-swiper-parallax="300" className="slide-title-sub">
<span>We Are Waiting For You</span>
</div>
<div data-swiper-parallax="300" className="slide-title">
<h2>Lets Make The World Great Again</h2>
</div>
<div data-swiper-parallax="400" className="slide-text">
<p>We can start by taking small steps and making small changes that can have a big
impact on the world.</p>
</div>
<div className="clearfix"></div>
<div data-swiper-parallax="500" className="slide-btns">
<Link onClick={ClickHandler} href="/about" className="theme-btn">Join The Campaign</Link>
</div>
<div className="politian-pic">
<Image src={hero1} alt="" />
<div className="politian-shape">
<div className="shape-1"></div>
<div className="shape-2"></div>
<div className="shape-3"></div>
<div className="shape-4"></div>
<div className="hero-wrapper">
<Slider {...settings}>
<div className="hero-slide">
<div className="slide-inner slide-bg-image" style={{ backgroundImage: `url(${'images/slider/slide-1.jpg'})` }}>
<div className="container-fluid">
<div className="slide-content">
<div data-swiper-parallax="300" className="slide-title">
<h2>Wisdom. Freedom. Hope.</h2>
</div>
<div data-swiper-parallax="400" className="slide-text">
<p>We can taking small steps and making small changes.</p>
</div>
<div className="clearfix"></div>
<div className="slide-btns">
<Link href="/about" className="theme-btn">Join The Campaign</Link>
</div>
</div>
</div>
</div>
</div>
</div>
<div className="hero-slide">
<div className="slide-inner slide-bg-image" style={{ backgroundImage: `url(${'images/slider/slide-2.jpg'})` }}>
<div className="container-fluid">
<div className="slide-content">
<div data-swiper-parallax="300" className="slide-title">
<h2>Wisdom. Freedom. Hope.</h2>
</div>
<div data-swiper-parallax="400" className="slide-text">
<p>We can taking small steps and making small changes.</p>
</div>
<div className="clearfix"></div>
<div className="slide-btns">
<Link href="/about" className="theme-btn">Join The Campaign</Link>
</div>
</div>
</div>
</div>
</div>
<div className="hero-slide">
<div className="slide-inner slide-bg-image" style={{ backgroundImage: `url(${'images/slider/slide-3.jpg'})` }}>
<div className="container-fluid">
<div className="slide-content">
<div data-swiper-parallax="300" className="slide-title">
<h2>Wisdom. Freedom. Hope.</h2>
</div>
<div data-swiper-parallax="400" className="slide-text">
<p>We can taking small steps and making small changes.</p>
</div>
<div className="clearfix"></div>
<div className="slide-btns">
<Link href="/about" className="theme-btn">Join The Campaign</Link>
</div>
</div>
</div>
</div>
</div>
<div className="hero-slide">
<div className="slide-inner slide-bg-image" style={{ backgroundImage: `url(${'images/slider/slide-4.jpg'})` }}>
<div className="container-fluid">
<div className="slide-content">
<div data-swiper-parallax="300" className="slide-title">
<h2>Wisdom. Freedom. Hope.</h2>
</div>
<div data-swiper-parallax="400" className="slide-text">
<p>We can taking small steps and making small changes.</p>
</div>
<div className="clearfix"></div>
<div className="slide-btns">
<Link href="/about" className="theme-btn">Join The Campaign</Link>
</div>
</div>
</div>
</div>
</div>
</Slider>
</div>
</div>
<div className="hero-shape">
<svg viewBox="0 0 1920 193" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 0L960 193L1920 0V193H0V0Z" fill="white" />
</svg>
</div>
</section>
)
}

49
components/hero/hero2.js Normal file
View File

@ -0,0 +1,49 @@
import React from "react";
import Link from 'next/link'
import hero1 from '/public/images/slider/1.png'
import Image from "next/image";
const Hero = () => {
const ClickHandler = () => {
window.scrollTo(10, 0);
}
return (
<section className="static-hero">
<div className="hero-container">
<div className="hero-inner">
<div className="container-fluid">
<div className="hero-content">
<div data-swiper-parallax="300" className="slide-title-sub">
<span>We Are Waiting For You</span>
</div>
<div data-swiper-parallax="300" className="slide-title">
<h2>Lets Make The World Great Again</h2>
</div>
<div data-swiper-parallax="400" className="slide-text">
<p>We can start by taking small steps and making small changes that can have a big
impact on the world.</p>
</div>
<div className="clearfix"></div>
<div data-swiper-parallax="500" className="slide-btns">
<Link onClick={ClickHandler} href="/about" className="theme-btn">Join The Campaign</Link>
</div>
<div className="politian-pic">
<Image src={hero1} alt="" />
<div className="politian-shape">
<div className="shape-1"></div>
<div className="shape-2"></div>
<div className="shape-3"></div>
<div className="shape-4"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
)
}
export default Hero;

View File

@ -0,0 +1,92 @@
import React from 'react';
import Link from 'next/link';
const OurMission = () => {
return (
<section className="wpo-blog-single-section section-padding">
<div className="container">
<div className="row">
<div className="col-12">
<div className="wpo-blog-content">
<div className="post format-standard-image">
<div
className="entry-media"
style={{ width: "100%", height: "auto", overflow: "hidden" }}
>
<img
src="/images/blog/img-4.jpg"
alt=""
/>
</div>
<div className="entry-meta">
<ul>
<li>
<i className="fi flaticon-user"></i> By{' '}
<Link href="/blog-single/support-progressive-change">Jenny Jack</Link>
</li>
<li>
<i className="fi flaticon-comment-white-oval-bubble"></i> Comments 5
</li>
<li>
<i className="fi flaticon-calendar"></i> May 7, 2025
</li>
</ul>
</div>
<h2>Our Mission</h2>
<p>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc.Combined with a handful of model sentence structures, generate Lorem Ipsum which looks, Combined with a handful of model sentence structures, generate Lorem Ipsum which looks, Combined with a handful of model sentence structures, generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.
</p>
<blockquote>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc. The generated Lorem Ipsum is therefore always free from repetition.
</blockquote>
<p>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc. The generated Lorem Ipsum is therefore always free from repetition. Combined with a handful of model sentence structures, generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition.
</p>
<div className="gallery">
<div>
<img src="/images/blog/img-3.jpg" alt="" />
</div>
<div>
<img src="/images/blog/img-2.jpg" alt="" />
</div>
</div>
<p className='mt-4'>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc.Combined with a handful of model sentence structures, generate Lorem Ipsum which looks, Combined with a handful of model sentence structures, generate Lorem Ipsum which looks, Combined with a handful of model sentence structures, generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.
</p>
<blockquote>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc. The generated Lorem Ipsum is therefore always free from repetition.
</blockquote>
<p>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc. The generated Lorem Ipsum is therefore always free from repetition. Combined with a handful of model sentence structures, generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
);
};
export default OurMission;

View File

@ -0,0 +1,92 @@
import React from 'react';
import Link from 'next/link';
const RacialJustice = () => {
return (
<section className="wpo-blog-single-section section-padding">
<div className="container">
<div className="row">
<div className="col-12">
<div className="wpo-blog-content">
<div className="post format-standard-image">
<div
className="entry-media"
style={{ width: "100%", height: "auto", overflow: "hidden" }}
>
<img
src="/images/blog/img-4.jpg"
alt=""
/>
</div>
<div className="entry-meta">
<ul>
<li>
<i className="fi flaticon-user"></i> By{' '}
<Link href="/blog-single/support-progressive-change">Jenny Angel</Link>
</li>
<li>
<i className="fi flaticon-comment-white-oval-bubble"></i> Comments 5
</li>
<li>
<i className="fi flaticon-calendar"></i> March 14, 2025
</li>
</ul>
</div>
<h2>Racial Justice</h2>
<p>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc.Combined with a handful of model sentence structures, generate Lorem Ipsum which looks, Combined with a handful of model sentence structures, generate Lorem Ipsum which looks, Combined with a handful of model sentence structures, generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.
</p>
<blockquote>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc. The generated Lorem Ipsum is therefore always free from repetition.
</blockquote>
<p>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc. The generated Lorem Ipsum is therefore always free from repetition. Combined with a handful of model sentence structures, generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition.
</p>
<div className="gallery">
<div>
<img src="/images/blog/img-3.jpg" alt="" />
</div>
<div>
<img src="/images/blog/img-2.jpg" alt="" />
</div>
</div>
<p className='mt-4'>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc.Combined with a handful of model sentence structures, generate Lorem Ipsum which looks, Combined with a handful of model sentence structures, generate Lorem Ipsum which looks, Combined with a handful of model sentence structures, generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.
</p>
<blockquote>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc. The generated Lorem Ipsum is therefore always free from repetition.
</blockquote>
<p>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks
reasonable. The generated Lorem Ipsum is therefore always free from repetition,
injected humour, or non-characteristic words etc. The generated Lorem Ipsum is therefore always free from repetition. Combined with a handful of model sentence structures, generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
);
};
export default RacialJustice;

496
package-lock.json generated
View File

@ -1,5 +1,5 @@
{
"name": "politian",
"name": "janahan-law",
"lockfileVersion": 2,
"requires": true,
"packages": {
@ -10,6 +10,7 @@
"@mui/material": "^5.11.0",
"@mui/styled-engine-sc": "^5.11.0",
"animate.css": "^4.1.1",
"axios": "^1.11.0",
"bootstrap": "^5.1.3",
"eslint-config-next": "^13.0.7",
"next": "^13.0.7",
@ -21,6 +22,7 @@
"react-datepicker": "^4.8.0",
"react-dom": "^18.2.0",
"react-fontawesome": "^1.7.1",
"react-google-recaptcha": "^3.1.0",
"react-medium-image-zoom": "^4.3.4",
"react-modal-video": "^2.0.1",
"react-owl-carousel": "^2.3.1",
@ -1615,6 +1617,12 @@
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
"integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
},
"node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"license": "MIT"
},
"node_modules/axe-core": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.1.tgz",
@ -1623,6 +1631,17 @@
"node": ">=4"
}
},
"node_modules/axios": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz",
"integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.4",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/axobject-query": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
@ -1853,6 +1872,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@ -1973,6 +2005,18 @@
"simple-swizzle": "^0.2.2"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/commander": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
@ -2160,6 +2204,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/detect-libc": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
@ -2208,6 +2261,20 @@
"ssr-window": "^4.0.0"
}
},
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
"es-errors": "^1.3.0",
"gopd": "^1.2.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/electron-to-chromium": {
"version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
@ -2309,6 +2376,51 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/es-define-property": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-set-tostringtag": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.6",
"has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-shim-unscopables": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
@ -3205,6 +3317,42 @@
"resolved": "https://registry.npmjs.org/focus-options-polyfill/-/focus-options-polyfill-1.5.1.tgz",
"integrity": "sha512-7yH20IePROHJLLbJvqqtsG420jE6DuukccapiB/WagtUpnc98r9NzHbX5rnjCDgdZqLgcqlzGjn+8l0Zb8Zf9w=="
},
"node_modules/follow-redirects": {
"version": "1.15.11",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
"integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
"license": "MIT",
"engines": {
"node": ">=4.0"
},
"peerDependenciesMeta": {
"debug": {
"optional": true
}
}
},
"node_modules/form-data": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"es-set-tostringtag": "^2.1.0",
"hasown": "^2.0.2",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
@ -3216,9 +3364,13 @@
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/function.prototype.name": {
"version": "1.1.5",
@ -3255,18 +3407,42 @@
}
},
"node_modules/get-intrinsic": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.3"
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
"math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
"es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/get-symbol-description": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
@ -3364,11 +3540,12 @@
"integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="
},
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"dependencies": {
"get-intrinsic": "^1.1.3"
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@ -3429,9 +3606,10 @@
}
},
"node_modules/has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
@ -3440,11 +3618,12 @@
}
},
"node_modules/has-tostringtag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
"integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"license": "MIT",
"dependencies": {
"has-symbols": "^1.0.2"
"has-symbols": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
@ -3453,6 +3632,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/he": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
@ -3996,6 +4187,15 @@
"node": ">=10"
}
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@ -4016,6 +4216,27 @@
"node": ">=8.6"
}
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mimic-response": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
@ -4517,6 +4738,12 @@
"react-is": "^16.13.1"
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"license": "MIT"
},
"node_modules/pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@ -4620,6 +4847,19 @@
"node": ">=0.10.0"
}
},
"node_modules/react-async-script": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/react-async-script/-/react-async-script-1.2.0.tgz",
"integrity": "sha512-bCpkbm9JiAuMGhkqoAiC0lLkb40DJ0HOEJIku+9JDjxX3Rcs+ztEOG13wbrOskt3n2DTrjshhaQ/iay+SnGg5Q==",
"license": "MIT",
"dependencies": {
"hoist-non-react-statics": "^3.3.0",
"prop-types": "^15.5.0"
},
"peerDependencies": {
"react": ">=16.4.1"
}
},
"node_modules/react-awesome-reveal": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/react-awesome-reveal/-/react-awesome-reveal-4.1.0.tgz",
@ -4708,6 +4948,19 @@
"react": ">=0.12.0"
}
},
"node_modules/react-google-recaptcha": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/react-google-recaptcha/-/react-google-recaptcha-3.1.0.tgz",
"integrity": "sha512-cYW2/DWas8nEKZGD7SCu9BSuVz8iOcOLHChHyi7upUuVhkpkhYG/6N3KDiTQ3XAiZ2UAZkfvYKMfAHOzBOcGEg==",
"license": "MIT",
"dependencies": {
"prop-types": "^15.5.0",
"react-async-script": "^1.2.0"
},
"peerDependencies": {
"react": ">=16.4.1"
}
},
"node_modules/react-intersection-observer": {
"version": "9.4.1",
"resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.4.1.tgz",
@ -7114,11 +7367,26 @@
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
"integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"axe-core": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.1.tgz",
"integrity": "sha512-lCZN5XRuOnpG4bpMq8v0khrWtUOn+i8lZSb6wHZH56ZfbIEv6XwJV84AAueh9/zi7qPVJ/E4yz6fmsiyOmXR4w=="
},
"axios": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz",
"integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
"requires": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.4",
"proxy-from-env": "^1.1.0"
}
},
"axobject-query": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
@ -7283,6 +7551,15 @@
"get-intrinsic": "^1.0.2"
}
},
"call-bind-apply-helpers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"requires": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
}
},
"callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@ -7374,6 +7651,14 @@
"simple-swizzle": "^0.2.2"
}
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"delayed-stream": "~1.0.0"
}
},
"commander": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
@ -7509,6 +7794,11 @@
"object-keys": "^1.1.1"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
},
"detect-libc": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
@ -7548,6 +7838,16 @@
"ssr-window": "^4.0.0"
}
},
"dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"requires": {
"call-bind-apply-helpers": "^1.0.1",
"es-errors": "^1.3.0",
"gopd": "^1.2.0"
}
},
"electron-to-chromium": {
"version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
@ -7639,6 +7939,35 @@
"unbox-primitive": "^1.0.2"
}
},
"es-define-property": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="
},
"es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
},
"es-object-atoms": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"requires": {
"es-errors": "^1.3.0"
}
},
"es-set-tostringtag": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"requires": {
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.6",
"has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
}
},
"es-shim-unscopables": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
@ -8306,6 +8635,23 @@
"resolved": "https://registry.npmjs.org/focus-options-polyfill/-/focus-options-polyfill-1.5.1.tgz",
"integrity": "sha512-7yH20IePROHJLLbJvqqtsG420jE6DuukccapiB/WagtUpnc98r9NzHbX5rnjCDgdZqLgcqlzGjn+8l0Zb8Zf9w=="
},
"follow-redirects": {
"version": "1.15.11",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
"integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="
},
"form-data": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"es-set-tostringtag": "^2.1.0",
"hasown": "^2.0.2",
"mime-types": "^2.1.12"
}
},
"fs-constants": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
@ -8317,9 +8663,9 @@
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
},
"function.prototype.name": {
"version": "1.1.5",
@ -8344,13 +8690,29 @@
"peer": true
},
"get-intrinsic": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.3"
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
"math-intrinsics": "^1.1.0"
}
},
"get-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"requires": {
"dunder-proto": "^1.0.1",
"es-object-atoms": "^1.0.0"
}
},
"get-symbol-description": {
@ -8423,12 +8785,9 @@
"integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="
},
"gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"requires": {
"get-intrinsic": "^1.1.3"
}
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="
},
"graceful-fs": {
"version": "4.2.10",
@ -8473,16 +8832,24 @@
}
},
"has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="
},
"has-tostringtag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
"integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"requires": {
"has-symbols": "^1.0.2"
"has-symbols": "^1.0.3"
}
},
"hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"requires": {
"function-bind": "^1.1.2"
}
},
"he": {
@ -8875,6 +9242,11 @@
"yallist": "^4.0.0"
}
},
"math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="
},
"merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@ -8889,6 +9261,19 @@
"picomatch": "^2.3.1"
}
},
"mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"requires": {
"mime-db": "1.52.0"
}
},
"mimic-response": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
@ -9237,6 +9622,11 @@
"react-is": "^16.13.1"
}
},
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@ -9315,6 +9705,15 @@
}
}
},
"react-async-script": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/react-async-script/-/react-async-script-1.2.0.tgz",
"integrity": "sha512-bCpkbm9JiAuMGhkqoAiC0lLkb40DJ0HOEJIku+9JDjxX3Rcs+ztEOG13wbrOskt3n2DTrjshhaQ/iay+SnGg5Q==",
"requires": {
"hoist-non-react-statics": "^3.3.0",
"prop-types": "^15.5.0"
}
},
"react-awesome-reveal": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/react-awesome-reveal/-/react-awesome-reveal-4.1.0.tgz",
@ -9375,6 +9774,15 @@
"prop-types": "^15.5.6"
}
},
"react-google-recaptcha": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/react-google-recaptcha/-/react-google-recaptcha-3.1.0.tgz",
"integrity": "sha512-cYW2/DWas8nEKZGD7SCu9BSuVz8iOcOLHChHyi7upUuVhkpkhYG/6N3KDiTQ3XAiZ2UAZkfvYKMfAHOzBOcGEg==",
"requires": {
"prop-types": "^15.5.0",
"react-async-script": "^1.2.0"
}
},
"react-intersection-observer": {
"version": "9.4.1",
"resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.4.1.tgz",

View File

@ -11,6 +11,7 @@
"@mui/material": "^5.11.0",
"@mui/styled-engine-sc": "^5.11.0",
"animate.css": "^4.1.1",
"axios": "^1.11.0",
"bootstrap": "^5.1.3",
"eslint-config-next": "^13.0.7",
"next": "^13.0.7",
@ -22,6 +23,7 @@
"react-datepicker": "^4.8.0",
"react-dom": "^18.2.0",
"react-fontawesome": "^1.7.1",
"react-google-recaptcha": "^3.1.0",
"react-medium-image-zoom": "^4.3.4",
"react-modal-video": "^2.0.1",
"react-owl-carousel": "^2.3.1",

View File

@ -8,24 +8,29 @@ import Scrollbar from '../../components/scrollbar/scrollbar'
import TeamSection from '../../components/TeamSection/TeamSection';
import Testimonial from '../../components/Testimonial/Testimonial';
import FunFact from '../../components/FunFact/FunFact';
import Donors from '../../components/Donors/Donors';
import Donors from '../../components/aboutPage/Donors';
import PartnerSection from '../../components/PartnerSection/PartnerSection';
import Footer from '../../components/footer/Footer';
import abimg from '/public/images/about.jpg'
import abimg from '/public/images/about-s2.jpg'
import AboutSection from '../../components/aboutPage/AboutSection';
import ServicesSection from '../../components/aboutPage/SevicesSection';
import TeamsSection from '../../components/aboutPage/TeamSection';
import TestimonialSection from '../../components/aboutPage/TestimonialSection';
const AboutPage = () => {
return (
<Fragment>
<Navbar2 />
<PageTitle pageTitle={'About Us'} pagesub={'About'} />
<About abimg={abimg} abClass={"pt-padding"}/>
<ServiceSection />
<CampaignSection />
<Testimonial />
<FunFact />
<TeamSection />
<AboutSection abimg={abimg} abClass={'wpo-about-section-s2'}/>
<ServicesSection />
{/* <CampaignSection /> */}
{/* <Testimonial /> */}
{/* <FunFact /> */}
<TestimonialSection/>
<TeamsSection />
<Donors />
<PartnerSection/>
{/* <PartnerSection/> */}
<Footer />
<Scrollbar />
</Fragment>

View File

@ -0,0 +1,19 @@
import React, { Fragment } from 'react';
import Navbar2 from '../../components/Navbar2/Navbar2';
import PageTitle from '../../components/pagetitle/PageTitle'
import Scrollbar from '../../components/scrollbar/scrollbar'
import Footer from '../../components/footer/Footer';
import OurMission from '../../components/our-mission';
const AboutPage = () => {
return (
<Fragment>
<Navbar2 />
<PageTitle pageTitle={'Racial-Justice'} pagesub={'Racial-Justice'} />
<OurMission />
<Footer />
<Scrollbar />
</Fragment>
)
};
export default AboutPage;

View File

@ -0,0 +1,19 @@
import React, { Fragment } from 'react';
import Navbar2 from '../../components/Navbar2/Navbar2';
import PageTitle from '../../components/pagetitle/PageTitle'
import Scrollbar from '../../components/scrollbar/scrollbar'
import Footer from '../../components/footer/Footer';
import RacialJuctice from '../../components/racial-justice';
const AboutPage = () => {
return (
<Fragment>
<Navbar2 />
<PageTitle pageTitle={'Racial-Justice'} pagesub={'Racial-Justice'} />
<RacialJuctice />
<Footer />
<Scrollbar />
</Fragment>
)
};
export default AboutPage;

View File

@ -33,37 +33,43 @@ const BlogSingle = (props) => {
<section className="wpo-blog-single-section section-padding">
<div className="container">
<div className="row">
<div className={`col col-lg-8 col-12 ${props.blRight}`}>
<div className={`col col-lg-12 col-12 ${props.blRight}`}>
<div className="wpo-blog-content">
<div className="post format-standard-image">
<div className="entry-media">
<Image src={BlogDetails?.blogSingleImg} alt="" />
<div style={{ width: "100%", height: "400px", position: "relative" }}>
<Image
src={BlogDetails?.blogSingleImg}
alt=""
fill
style={{ objectFit: "cover" }}
/>
</div>
</div>
<div className="entry-meta">
<ul>
<li><i className="fi ti-user"></i> By <Link href="/">{BlogDetails?.author}</Link> </li>
<li><i className="fi ti-comment-alt"></i> Comments {BlogDetails?.comment}</li>
<li><i className="fi flaticon-calendar"></i> {BlogDetails?.create_at}</li>
<li><i className="fi ti-user"></i> By <Link href="/">{BlogDetails?.authorTitle}</Link> </li>
{/* <li><i className="fi ti-comment-alt"></i> Comments {BlogDetails?.comment}</li> */}
</ul>
</div>
<h2>{BlogDetails?.title}</h2>
<p>There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful.</p>
<blockquote>
Combined with a handful of model sentence structures, generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.
</blockquote>
<p>I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself,</p>
<div
dangerouslySetInnerHTML={{ __html: BlogDetails?.description }}
></div>
<div className="gallery">
{/* <div className="gallery">
<div>
<Image src={gl1} alt="" />
</div>
<div>
<Image src={gl2} alt="" />
</div>
</div>
</div> */}
</div>
<div className="tag-share clearfix">
{/* <div className="tag-share clearfix">
<div className="tag">
<span>Share: </span>
<ul>
@ -72,8 +78,8 @@ const BlogSingle = (props) => {
<li><Link href="/blog-single/support-progressive-change">Political</Link></li>
</ul>
</div>
</div>
<div className="tag-share-s2 clearfix">
</div> */}
{/* <div className="tag-share-s2 clearfix">
<div className="tag">
<span>Share: </span>
<ul>
@ -83,9 +89,9 @@ const BlogSingle = (props) => {
<li><Link href="/">pinterest</Link></li>
</ul>
</div>
</div>
</div> */}
<div className="author-box">
{/* <div className="author-box">
<div className="author-avatar">
<Link href="/" target="_blank"><Image src={blog6} alt="" /></Link>
</div>
@ -101,9 +107,9 @@ const BlogSingle = (props) => {
</ul>
</div>
</div>
</div>
</div> */}
<div className="more-posts">
{/* <div className="more-posts">
<div className="previous-post">
<Link href="/">
@ -120,9 +126,9 @@ const BlogSingle = (props) => {
</Link>
</div>
</div>
</div> */}
<div className="comments-area">
{/* <div className="comments-area">
<div className="comments-section">
<h3 className="comments-title">Comments</h3>
<ol className="comments">
@ -199,51 +205,14 @@ const BlogSingle = (props) => {
</li>
</ul>
</li>
<li className="comment">
<div>
<div className="comment-theme">
<div className="comment-image"><Image src={blog3} alt="" /></div>
</div>
<div className="comment-main-area">
<div className="comment-wrapper">
<div className="comments-meta">
<h4>John Abraham <span className="comments-date">January 12,2022
At 9.00am</span></h4>
</div>
<div className="comment-area">
<p>I will give you a complete account of the system, and
expound the actual teachings of the great explorer of
the truth, </p>
<div className="comments-reply">
<Link href="/" className="comment-reply-link"><span>Reply</span></Link>
</div>
</div>
</div>
</div>
</div>
</li>
</ol>
</div>
<div className="comment-respond">
<h3 className="comment-reply-title">Post Comments</h3>
<form onSubmit={submitHandler} id="commentform" className="comment-form">
<div className="form-textarea">
<textarea id="comment" placeholder="Write Your Comments..."></textarea>
</div>
<div className="form-inputs">
<input placeholder="Website" type="url" />
<input placeholder="Name" type="text" />
<input placeholder="Email" type="email" />
</div>
<div className="form-submit">
<input id="submit" value="Post Comment" type="submit" />
</div>
</form>
</div>
</div>
</div> */}
</div>
</div>
<BlogSidebar blLeft={props.blLeft} />
{/* <BlogSidebar blLeft={props.blLeft} /> */}
</div>
</div>
</section>

View File

@ -9,7 +9,7 @@ const BlogPage =() => {
return(
<Fragment>
<Navbar2/>
<PageTitle pageTitle={'Latest News'} pagesub={'Blog'}/>
<PageTitle pageTitle={'Blog'} pagesub={'Blog'}/>
<BlogList/>
<Footer/>
<Scrollbar/>

40
pages/index-2.js Normal file
View File

@ -0,0 +1,40 @@
import React, {Fragment} from 'react';
import Navbar from '../components/Navbar/Navbar'
import Hero from '../components/hero/hero';
import Features from '../components/Features/Features';
import About from '../components/about/about';
import ServiceSection from '../components/ServiceSection/ServiceSection';
import CampaignSection from '../components/CampaignSection/CampaignSection';
import Testimonial from '../components/Testimonial/Testimonial';
import FunFact from '../components/FunFact/FunFact';
import TeamSection from '../components/TeamSection/TeamSection';
import BlogSection from '../components/BlogSection/BlogSection';
import InstagramSection from '../components/InstagramSection/InstagramSection';
import Donors from '../components/Donors/Donors';
import PartnerSection from '../components/PartnerSection/PartnerSection';
import abimg from '/public/images/about.jpg'
import Footer from '../components/footer/Footer';
import Scrollbar from '../components/scrollbar/scrollbar';
const HomePage =() => {
return(
<Fragment>
<Navbar hclass={'wpo-site-header-s1'} topbarNone={'topbar-none'} Logo={'/images/logo.svg'}/>
<Hero/>
<Features/>
<About abimg={abimg}/>
<ServiceSection/>
<CampaignSection/>
<Testimonial/>
<FunFact/>
<TeamSection/>
<Donors/>
<BlogSection/>
<InstagramSection/>
<PartnerSection/>
<Footer/>
<Scrollbar/>
</Fragment>
)
};
export default HomePage;

View File

@ -1,9 +1,10 @@
import React, {Fragment} from 'react';
import React, { Fragment } from 'react';
import Navbar from '../components/Navbar/Navbar'
import Hero from '../components/hero/hero';
import Features from '../components/Features/Features';
import About from '../components/about/about';
import ServiceSection from '../components/ServiceSection/ServiceSection';
import ServiceSectionS2 from '../components/ServiceSectionS2/ServiceSectionS2';
import CampaignSection from '../components/CampaignSection/CampaignSection';
import Testimonial from '../components/Testimonial/Testimonial';
import FunFact from '../components/FunFact/FunFact';
@ -13,27 +14,30 @@ import InstagramSection from '../components/InstagramSection/InstagramSection';
import Donors from '../components/Donors/Donors';
import PartnerSection from '../components/PartnerSection/PartnerSection';
import abimg from '/public/images/about.jpg'
import FunFactVideo from '../components/FunFactVideo/FunFactVideo';
import Footer from '../components/footer/Footer';
import Scrollbar from '../components/scrollbar/scrollbar';
const HomePage =() => {
return(
const HomePage = () => {
return (
<Fragment>
<Navbar hclass={'wpo-site-header-s1'} topbarNone={'topbar-none'} Logo={'/images/logo.svg'}/>
<Hero/>
<Features/>
<About abimg={abimg}/>
<ServiceSection/>
<CampaignSection/>
<Testimonial/>
<FunFact/>
<TeamSection/>
<Donors/>
<BlogSection/>
<InstagramSection/>
<PartnerSection/>
<Footer/>
<Scrollbar/>
<Navbar hclass={'wpo-site-header-s1'} topbarNone={'topbar-none'} Logo={'/images/logo.svg'} />
<Hero />
<Features sClass={'wpo-service-section-s2'} />
<About abimg={abimg} abClass={'wpo-about-section-s2'}/>
<ServiceSection />
<FunFact fnTpClass={'funfact-wrap-sec'} fnClass={'wpo-fun-fact-section-s3'} />
<ServiceSectionS2 />
<Testimonial />
<FunFactVideo />
{/* <CampaignSection/> */}
<TeamSection />
<Donors />
<BlogSection />
{/* <InstagramSection/> */}
{/* <PartnerSection/> */}
<Footer />
<Scrollbar />
</Fragment>
)
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
public/images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@ -89,9 +89,38 @@ img {
padding: 90px 0;
}
@include media-query( 767px ) {
padding: 80px 0;
padding: 90px 0;
}
}
.section-padding-top-bottom{
padding-top: 120px !important;
}
.section-padding-top{
padding-top: 120px !important;
}
.section-padding-bottom{
padding-bottom: 120px !important;
}
@media (max-width: 768px) {
.section-padding-top .section-padding-top .section {
padding-top: 60px;
padding-bottom: 60px;
padding: 60px 0px 60px 0px;
}
}
.pt-100 {
padding-top: 100px;
@ -281,7 +310,8 @@ ul.smothscroll {
z-index: 99;
}
ul.smothscroll a {
background-color: rgba(255, 74, 23, 0.7);
// background-color: rgba(255, 74, 23, 0.7);
background-color: rgba(193, 32, 38, 1);
width: 45px;
height: 45px;
line-height: 45px;
@ -294,7 +324,7 @@ ul.smothscroll a {
border: 2px solid #ff4a17;
}
ul.smothscroll a:hover {
background-color: #ff4a17;
background-color: rgba(193, 32, 38, 1);
color: #fff;
}

View File

@ -9,7 +9,7 @@
z-index: 1;
position: relative;
font-size: 18px;
background: linear-gradient(90deg, #ED6B37 11.32%, #EC180C 95.28%);
background: linear-gradient(90deg, #E14448 11.32%, #C12026 95.28%);
font-family: $heading-font;
border-radius: 0px;
@ -22,7 +22,7 @@
width: 100%;
height: 100%;
transition: opacity 0.5s ease-out;
background: linear-gradient(90deg, #EC180C 11.32%, #ED6B37 95.28%);
background: linear-gradient(90deg, #C12026 11.32%, #E14448 95.28%);
opacity: 0;
z-index: -1;
border-radius: 5px;

View File

@ -44,4 +44,53 @@
font-size: 18px;
}
}
.wpo-section-title-new {
// text-align: center;
max-width: 577px;
// margin: 0 auto;
margin-bottom: 10px;
span {
font-family: 'Futura PT';
font-style: normal;
font-weight: 450;
font-size: 20px;
line-height: 26px;
text-transform: uppercase;
background: $theme-primary-color-gradient;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
text-fill-color: transparent;
}
h2 {
font-size: 42px;
margin: 0;
font-family: $heading-font;
font-style: normal;
font-weight: 500;
font-size: 50px;
line-height: 64px;
margin-top: 10px;
@include media-query(767px) {
font-size: 32px;
line-height: 40px;
margin-top: 10px;
}
@include media-query(330px) {
font-size: 30px;
}
}
p {
font-size: 18px;
}
}

View File

@ -54,9 +54,10 @@ $black: #000;
$small-black: #333;
$cyan: #848892; //
$theme-primary-color: #ED6B37; //
$theme-primary-color: #c12026; //
$theme-primary-color-s2: #EC180C; //
$theme-primary-color-gradient:linear-gradient(90deg, #ED6B37 11.32%, #EC180C 95.28%); //
// $theme-primary-color-gradient:linear-gradient(90deg, #ED6B37 11.32%, #EC180C 95.28%); //
$theme-primary-color-gradient:linear-gradient(90deg, #E14448 11.32%, #C12026 95.28%); //
$body-bg-color: #fff;
$section-bg-color: #F9F9F9; //
$section-bg-color-s2: #F8F2F2; //

View File

@ -2,7 +2,8 @@
4. wpo-footer
--------------------------------------------------------------*/
.wpo-site-footer {
background: linear-gradient(286.02deg, #080A14 38.02%, #10121E 61.92%, #282A34 74.32%, #404354 90.71%, #343643 99.65%);
// background: linear-gradient(286.02deg, #080A14 38.02%, #10121E 61.92%, #282A34 74.32%, #404354 90.71%, #343643 99.65%);
background-color: #1b2646;
background-size: cover;
position: relative;
font-size: 16px;
@ -15,7 +16,7 @@
top: 0;
width: 960px;
height: 100%;
background: #23242F;
// background: #23242F;
content: "";
clip-path: polygon(57% 0, 100% 0, 100% 100%, 0% 100%);
z-index: -1;

View File

@ -145,7 +145,7 @@
border: 0;
text-align: center;
position: relative;
text-decoration: underline;
// text-decoration: underline;
@include media-query(767px) {
padding: 55px 25px;

View File

@ -134,10 +134,22 @@
}
a.read-more {
color: $text-color;
text-transform: capitalize;
font-size: 16px;
font-style: normal;
font-weight: 700;
font-size: 18px;
line-height: 25px;
background: $theme-primary-color-gradient;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
// text-fill-color: transparent;
display: inline-block;
padding-bottom: 5px;
border-bottom: 1px solid $theme-primary-color;
@media(max-width:1199px) {
font-size: 14px;
}
&:hover {
color: $theme-primary-color;
}

View File

@ -177,7 +177,7 @@
.wpo-about-section-s2,
.wpo-about-section-s3,
.wpo-about-section-s4 {
padding-top: 150px;
padding-bottom: 0px;
@media(max-width:991px) {
padding-top: 0;
@ -587,7 +587,7 @@
.wpo-service-section,
.wpo-service-section-s2 {
@media(max-width:991px) {
padding-top: 0;
padding-top: 90px;
}
.wpo-service-slider {
@ -846,12 +846,12 @@
.wpo-campaign-area-s3,
.wpo-campaign-area-s4,
.wpo-campaign-area-s5 {
padding-bottom: 90px;
padding-bottom: 120px;
position: relative;
z-index: 1;
@media(max-width:991px) {
padding-bottom: 70px;
padding-bottom: 90px;
}
&:before {
@ -1077,7 +1077,7 @@
.wpo-testimonial-section {
position: relative;
padding-bottom: 0;
padding-top: 0;
.wpo-testimonial-wrap {
position: relative;
@ -1575,10 +1575,10 @@
/* 3.7 wpo-team-section */
.wpo-team-section {
padding-bottom: 90px;
padding-bottom: 120px;
@media(max-width:991px) {
padding-bottom: 60px;
padding-bottom: 90px;
}
.wpo-team-wrap {
@ -1849,12 +1849,12 @@
.wpo-blog-section,
.wpo-blog-section-s2 {
padding-bottom: 90px;
// padding-bottom: 120px;
position: relative;
z-index: 1;
@media(max-width:767px) {
padding-bottom: 60px;
padding-bottom: 90px;
}
.wpo-blog-item {

View File

@ -16,7 +16,7 @@
@include media-query(991px) {
margin-top: 0px;
padding: 80px 0;
padding: 90px 0;
}
.wpo-section-title{

View File

@ -40,7 +40,7 @@
.wpo-campaign-area-s4 {
padding-top: 0;
// padding-top: 120px;
&:before,
&:after {