From 637846a80c1369b761dad16cc913dcd163da1afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90=E1=BB=97=20Minh=20Nh=E1=BA=ADt?= Date: Tue, 14 Apr 2026 19:28:35 +0700 Subject: [PATCH] feat: Create FE home page and about page --- .env.example | 2 +- app/about/page.tsx | 26 +- app/components/about/AboutFeatures.tsx | 53 -- app/components/about/AboutHero.tsx | 39 - app/components/about/AboutIntro.tsx | 28 - app/components/about/AboutMission.tsx | 79 -- app/components/about/AboutNews.tsx | 75 -- app/components/about/Campus.tsx | 65 ++ app/components/about/HeroSection.tsx | 74 ++ app/components/about/HistoryTimeline.tsx | 39 + app/components/about/LeaderShip_Broad.tsx | 66 ++ app/components/about/LeaderShip_Message.tsx | 73 ++ app/components/about/Mission.tsx | 51 ++ app/components/about/WhyParis.tsx | 65 ++ app/components/about/about.css | 902 ++++++++++++++++++++ app/components/about/index.ts | 5 - app/components/home/Achievements.tsx | 47 - app/components/home/BlogPreview.tsx | 116 --- app/components/home/FAQSection.tsx | 83 -- app/components/home/HeroSection.tsx | 171 +--- app/components/home/Partners.tsx | 66 -- app/components/home/QuickLinksGrid.tsx | 67 ++ app/components/home/Testimonials.tsx | 74 -- app/components/home/VideoGallery.tsx | 35 - app/components/home/VisaCountries.tsx | 82 -- app/components/home/VisaSolutions.tsx | 52 -- app/components/home/WhyChooseUs.tsx | 109 --- app/components/home/home.css | 514 +++++++++++ app/globals.css | 43 +- app/page.tsx | 24 +- public/assets/css/main.css | 593 ------------- public/assets/img/logo/Logo_HaiLearning.jpg | Bin 60990 -> 0 bytes public/assets/img/logo/Logo_ULDP.png | Bin 0 -> 14428 bytes public/assets/img/logo/black-logo.svg | 18 - public/assets/img/logo/white-logo.svg | 18 - 35 files changed, 1989 insertions(+), 1765 deletions(-) delete mode 100644 app/components/about/AboutFeatures.tsx delete mode 100644 app/components/about/AboutHero.tsx delete mode 100644 app/components/about/AboutIntro.tsx delete mode 100644 app/components/about/AboutMission.tsx delete mode 100644 app/components/about/AboutNews.tsx create mode 100644 app/components/about/Campus.tsx create mode 100644 app/components/about/HeroSection.tsx create mode 100644 app/components/about/HistoryTimeline.tsx create mode 100644 app/components/about/LeaderShip_Broad.tsx create mode 100644 app/components/about/LeaderShip_Message.tsx create mode 100644 app/components/about/Mission.tsx create mode 100644 app/components/about/WhyParis.tsx create mode 100644 app/components/about/about.css delete mode 100644 app/components/about/index.ts delete mode 100644 app/components/home/Achievements.tsx delete mode 100644 app/components/home/BlogPreview.tsx delete mode 100644 app/components/home/FAQSection.tsx delete mode 100644 app/components/home/Partners.tsx create mode 100644 app/components/home/QuickLinksGrid.tsx delete mode 100644 app/components/home/Testimonials.tsx delete mode 100644 app/components/home/VideoGallery.tsx delete mode 100644 app/components/home/VisaCountries.tsx delete mode 100644 app/components/home/VisaSolutions.tsx delete mode 100644 app/components/home/WhyChooseUs.tsx create mode 100644 app/components/home/home.css delete mode 100644 public/assets/img/logo/Logo_HaiLearning.jpg create mode 100644 public/assets/img/logo/Logo_ULDP.png delete mode 100644 public/assets/img/logo/black-logo.svg delete mode 100644 public/assets/img/logo/white-logo.svg diff --git a/.env.example b/.env.example index b913a3c..dd446c7 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,2 @@ PORT=3000 -NEXT_PUBLIC_API_URL=https://www.hailearning.edu.vn/ \ No newline at end of file +NEXT_PUBLIC_API_URL=http://localhost:3001 \ No newline at end of file diff --git a/app/about/page.tsx b/app/about/page.tsx index e8958c5..8c71402 100644 --- a/app/about/page.tsx +++ b/app/about/page.tsx @@ -1,24 +1,26 @@ -import { AboutHero, AboutIntro, AboutMission, AboutFeatures, AboutNews } from "../components/about"; import { aboutApi } from "../../api/aboutApi"; +import HeroSection from "../components/about/HeroSection"; +import Mission from "../components/about/Mission"; +import WhyParis from "../components/about/WhyParis"; +import HistoryTimeline from "../components/about/HistoryTimeline"; +import LeadershipMessage from "../components/about/LeaderShip_Message"; +import LeadershipBoard from "../components/about/LeaderShip_Broad"; +import Campus from "../components/about/Campus"; -// Force dynamic rendering - không cache export const dynamic = 'force-dynamic'; export default async function AboutPage() { const data = await aboutApi.getAbout(); - if (!data) { - return null; - } - return ( <> - - - - - + + + + + + + ); } - diff --git a/app/components/about/AboutFeatures.tsx b/app/components/about/AboutFeatures.tsx deleted file mode 100644 index 30ee458..0000000 --- a/app/components/about/AboutFeatures.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import Link from "next/link"; -import { AboutData } from "../../about/types"; - -interface AboutFeaturesProps { - data: AboutData["features"]; -} - -const AboutFeatures = ({ data }: AboutFeaturesProps) => { - return ( -
-
-
-
-
-
- img -
-
-
-
-
- {data.subheading} -

{data.heading}

-
-

{data.description}

- {data.items.map((item, index) => ( -
-
- img -
-
-
{item.title}
-

{item.description}

-
-
- ))} - - {data.ctaButton.label} - - -
-
-
-
-
-
- ); -}; - -export default AboutFeatures; diff --git a/app/components/about/AboutHero.tsx b/app/components/about/AboutHero.tsx deleted file mode 100644 index 9ab631c..0000000 --- a/app/components/about/AboutHero.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import Link from 'next/link'; -import { AboutData } from '../../about/types'; - -interface AboutHeroProps { - data: AboutData['hero']; -} - -const AboutHero = ({ data }: AboutHeroProps) => { - return ( -
-
- img -
-
-
-

{data.title}

- {Array.isArray(data.breadcrumb) && ( -
    - {data.breadcrumb.map((item, index) => ( -
  • - {index === data.breadcrumb.length - 1 ? ( - item - ) : ( - <> - {item} - - - )} -
  • - ))} -
- )} -
-
-
- ); -}; - -export default AboutHero; diff --git a/app/components/about/AboutIntro.tsx b/app/components/about/AboutIntro.tsx deleted file mode 100644 index 0e828c2..0000000 --- a/app/components/about/AboutIntro.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { AboutData } from "../../about/types"; - -interface AboutIntroProps { - data: AboutData["intro"]; -} - -const AboutIntro = ({ data }: AboutIntroProps) => { - return ( -
-
-
-
- {data.subheading} -

{data.heading}

-
-

{data.description}

-
-
-
- img -
-
-
-
- ); -}; - -export default AboutIntro; diff --git a/app/components/about/AboutMission.tsx b/app/components/about/AboutMission.tsx deleted file mode 100644 index ba6d6d8..0000000 --- a/app/components/about/AboutMission.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import Link from "next/link"; -import { AboutData } from "../../about/types"; - -interface AboutMissionProps { - data: AboutData["mission"]; -} - -const AboutMission = ({ data }: AboutMissionProps) => { - return ( -
-
- img -
-
-
-
-
-
- img -
- img -
-
- img -
-
- img -
-
- img -
-
-
-
-
-
- {data.subheading} -

{data.heading}

-
-

- {data.description} -

-
- {data.items.map((item, index) => ( -
- - - {item.label}- - -

{item.description}

-
- ))} -
-
    - {data.features.map((feature, index) => ( -
  • - - {feature} -
  • - ))} -
- - {data.ctaButton.label} - - -
-
-
-
-
-
- ); -}; - -export default AboutMission; diff --git a/app/components/about/AboutNews.tsx b/app/components/about/AboutNews.tsx deleted file mode 100644 index f188cde..0000000 --- a/app/components/about/AboutNews.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import Link from "next/link"; -import { AboutData } from "../../about/types"; - -interface AboutNewsProps { - data: AboutData["news"]; -} - -const AboutNews = ({ data }: AboutNewsProps) => { - return ( -
-
-
-
- {data.subheading} -

{data.heading}

-
- - {data.ctaButton.label} - - -
-
- {data.items.map((item, index) => ( -
-
-
- img - {item.category} -
-
-
-
-
-
-
-
-
- Comment ({item.comments}) - _ {item.date} -
-

- {item.title} -

-
-
- img - By {item.author.name} -
- - View Articles - -
-
-
-
- ))} -
-
-
- ); -}; - -export default AboutNews; diff --git a/app/components/about/Campus.tsx b/app/components/about/Campus.tsx new file mode 100644 index 0000000..c8d477c --- /dev/null +++ b/app/components/about/Campus.tsx @@ -0,0 +1,65 @@ +import Link from "next/link"; + +const CENTERS = [ + { + tag: "Biosciences", + tagColor: "blue", + title: "Institut Pasteur Collaborative Lab", + desc: "A premier center focusing on immunology, genetics, and infectious diseases.", + img: "https://storage.googleapis.com/uxpilot-auth.appspot.com/115ee2f067-72629210549870cf0d35.png", + href: "#", + }, + { + tag: "Humanities", + tagColor: "yellow", + title: "Center for European Studies", + desc: "Housing over 2 million volumes and dedicated to historical and sociological research.", + img: "https://storage.googleapis.com/uxpilot-auth.appspot.com/c11358a8da-a7b331f85d1fbd27c851.png", + href: "#", + }, + { + tag: "Technology", + tagColor: "green", + title: "AI & Robotics Institute", + desc: "Pioneering developments in machine learning, automation, and computational science.", + img: "https://storage.googleapis.com/uxpilot-auth.appspot.com/97fca8b57f-238aa78a799f22cf1cd1.png", + href: "#", + }, +]; + +const Campus = () => { + return ( +
+
+
+

Campus & Research Centers

+

+ State-of-the-art facilities nestled in the historic Latin Quarter, designed to foster innovation and collaboration. +

+
+ +
+ {CENTERS.map((center, i) => ( +
+
+ {center.title} +
+
+ + {center.tag} + +

{center.title}

+

{center.desc}

+ + Explore Facility + +
+
+ ))} +
+
+
+ ); +}; + +export default Campus; diff --git a/app/components/about/HeroSection.tsx b/app/components/about/HeroSection.tsx new file mode 100644 index 0000000..362026a --- /dev/null +++ b/app/components/about/HeroSection.tsx @@ -0,0 +1,74 @@ +import { AboutData } from "@/app/about/types"; +import { getCmsImageUrl } from "@/utils/image"; +import Link from "next/link"; + +interface HeroSectionProps { + data?: AboutData | null; +} + +const HeroSection = ({ data }: HeroSectionProps) => { + const title = data?.hero?.title || "A Legacy of Liberal Arts & Research"; + const backgroundImage = data?.hero?.backgroundImage + ? getCmsImageUrl(data.hero.backgroundImage) + : null; + + return ( +
+
+
+ {/* Left: Text */} +
+
+
+ + Our Identity +
+

+

+ Founded in the heart of Paris, Université Libérale is dedicated to fostering + critical thinking, interdisciplinary innovation, and global understanding through + a rigorous liberal arts curriculum and world-class research initiatives. +

+
+ +
+

+
+ + {/* Right: Image */} +
+
+ University campus +
+
+ +
+
+

Top 50

+

Global Research Ranking

+
+
+
+
+
+
+
+ ); +}; + +export default HeroSection; diff --git a/app/components/about/HistoryTimeline.tsx b/app/components/about/HistoryTimeline.tsx new file mode 100644 index 0000000..f1c5959 --- /dev/null +++ b/app/components/about/HistoryTimeline.tsx @@ -0,0 +1,39 @@ +const TIMELINE = [ + { year: "1895", title: "Foundation", desc: "Established as an independent institute for liberal studies by a group of visionary scholars.", side: "left" }, + { year: "1945", title: "Post-War Expansion", desc: "Expanded faculties to include modern sciences and established the first dedicated research hub.", side: "right" }, + { year: "1982", title: "Global Partnerships", desc: "Initiated formal exchange programs and research partnerships with leading universities worldwide.", side: "left" }, + { year: "2020", title: "Modern Research Era", desc: "Inauguration of the new interdisciplinary research center, focusing on sustainable global development.", side: "right" }, +]; + +const HistoryTimeline = () => { + return ( +
+
+
+

Our History

+

A legacy of academic excellence spanning over a century.

+
+ +
+
+ + {TIMELINE.map((item, i) => ( +
+
+

{item.year}

+

{item.title}

+

{item.desc}

+
+
+
+
+
+
+ ))} +
+
+
+ ); +}; + +export default HistoryTimeline; diff --git a/app/components/about/LeaderShip_Broad.tsx b/app/components/about/LeaderShip_Broad.tsx new file mode 100644 index 0000000..eefd6bc --- /dev/null +++ b/app/components/about/LeaderShip_Broad.tsx @@ -0,0 +1,66 @@ +import Link from "next/link"; + +const LEADERS = [ + { + name: "Dr. Eleanor Laurent", + role: "President", + img: "https://storage.googleapis.com/uxpilot-auth.appspot.com/8ce6757572-cd9d4e986dee9e71d10c.png", + }, + { + name: "Prof. Marcus Dubois", + role: "Dean of Humanities", + img: "https://storage.googleapis.com/uxpilot-auth.appspot.com/3aae15d87b-020f60df05ac2c52a087.png", + }, + { + name: "Dr. Sophie Martin", + role: "Dean of Research", + img: "https://storage.googleapis.com/uxpilot-auth.appspot.com/3fc05a202c-26e5f00c35a829b5462d.png", + }, + { + name: "Prof. Jean-Paul Roux", + role: "Provost", + img: "https://storage.googleapis.com/uxpilot-auth.appspot.com/3aae15d87b-c36f00cff7803c4209d4.png", + }, +]; + +const LeadershipBoard = () => { + return ( +
+
+
+
+ + University Leadership + +
+

Meet Our Leaders

+

Guiding our academic vision and institutional strategy.

+
+ +
+ {LEADERS.map((leader, i) => ( +
+
+ {leader.name} +
+
+

{leader.name}

+

{leader.role}

+
+ + + + + + +
+
+
+ ))} +
+
+
+ ); +}; + +export default LeadershipBoard; diff --git a/app/components/about/LeaderShip_Message.tsx b/app/components/about/LeaderShip_Message.tsx new file mode 100644 index 0000000..95396b8 --- /dev/null +++ b/app/components/about/LeaderShip_Message.tsx @@ -0,0 +1,73 @@ +import Link from "next/link"; + +const LeadershipMessage = () => { + return ( +
+
+
+ {/* Main content */} +
+
+

A Message from the President

+
+
+
+

+ "Research is not just about discovery; it is about responsibility. As a premier institution in Paris, we carry the torch of enlightenment into the 21st century." +

+

+ Welcome to Paris Research University. For decades, our halls have echoed with the profound debates of brilliant minds and the quiet hum of groundbreaking laboratories. We stand at the intersection of history and the future, leveraging our rich heritage to propel innovation that addresses the world's most pressing challenges. +

+

+ Our commitment is unwavering: to foster an inclusive, vibrant academic community where interdisciplinary collaboration thrives. We invite you to explore our centers, engage with our faculty, and join us in our relentless pursuit of knowledge. +

+
+
+
+ President +
+
+

Dr. Jean-UX Pilot Laurent

+

President & Vice-Chancellor

+
+ +
+
+ + {/* Sidebar */} +
+
+
+

Accreditation & Standards

+

Learn about our rigorous academic standards and global recognitions.

+ + View Credentials + +
+ +
+
+ +
+

Global Partnerships

+

Explore our network of industry and academic collaborators.

+ + Discover Network + +
+ +
+

Have Questions?

+ + Contact Administration + +
+
+
+
+
+
+ ); +}; + +export default LeadershipMessage; diff --git a/app/components/about/Mission.tsx b/app/components/about/Mission.tsx new file mode 100644 index 0000000..dc64fe3 --- /dev/null +++ b/app/components/about/Mission.tsx @@ -0,0 +1,51 @@ +const VALUES = [ + { + icon: "fa-solid fa-book-open", + title: "Liberal Arts Foundation", + desc: "Providing a broad intellectual foundation that encourages critical thinking, creativity, and the ability to adapt to a rapidly changing world.", + }, + { + icon: "fa-solid fa-microscope", + title: "Research Excellence", + desc: "Fostering a culture of rigorous inquiry and innovation, supporting faculty and students in pushing the boundaries of knowledge.", + }, + { + icon: "fa-solid fa-globe", + title: "Global Perspective", + desc: "Cultivating an inclusive environment that values diverse perspectives and prepares students to engage with complex global challenges.", + }, +]; + +const Mission = () => { + return ( +
+
+
+
+ + Core Principles + +
+

Our Mission & Values

+

+ We are committed to advancing human knowledge and cultivating responsible global citizens through transformative education. +

+
+ +
+ {VALUES.map((item, i) => ( +
+
+ +
+

{item.title}

+

{item.desc}

+
+ ))} +
+
+
+ ); +}; + +export default Mission; diff --git a/app/components/about/WhyParis.tsx b/app/components/about/WhyParis.tsx new file mode 100644 index 0000000..276aeff --- /dev/null +++ b/app/components/about/WhyParis.tsx @@ -0,0 +1,65 @@ +const FEATURES = [ + "Access to world-renowned museums, archives, and libraries.", + "A hub for international organizations and global policy.", + "A vibrant cultural ecosystem that enriches the liberal arts experience.", +]; + +const IMAGES = [ + { src: "https://storage.googleapis.com/uxpilot-auth.appspot.com/4df3620db3-dda28233c91d6369d039.png", alt: "Parisian cafe and street", tall: false }, + { src: "https://storage.googleapis.com/uxpilot-auth.appspot.com/a45c3de13a-8173142c33595269388d.png", alt: "Students in Parisian library", tall: true }, + { src: "https://storage.googleapis.com/uxpilot-auth.appspot.com/fe39e27ab6-40f9c9b4851f3b8176da.png", alt: "Seine river with historic bridges", tall: true }, + { src: "https://storage.googleapis.com/uxpilot-auth.appspot.com/cb66207ea0-16795a67db08ef0e6f8c.png", alt: "Modern research facility", tall: false }, +]; + +const WhyParis = () => { + return ( +
+
+
+ {/* Left: Image grid */} +
+
+
+ {IMAGES[0].alt} + {IMAGES[1].alt} +
+
+ {IMAGES[2].alt} + {IMAGES[3].alt} +
+
+
+ + {/* Right: Text */} +
+
+
+ + Our Location +
+

Why Paris?

+

+ Paris is not just a backdrop; it is our extended campus. As a historic center + of intellectual thought, art, and scientific discovery, the city offers + unparalleled opportunities for our students and researchers. +

+
    + {FEATURES.map((item, i) => ( +
  • + + + + {item} +
  • + ))} +
+ +
+
+
+
+
+ ); +}; + +export default WhyParis; diff --git a/app/components/about/about.css b/app/components/about/about.css new file mode 100644 index 0000000..7f3b447 --- /dev/null +++ b/app/components/about/about.css @@ -0,0 +1,902 @@ +/* ============================================================ + ABOUT PAGE + ============================================================ */ + +.about-hero { + padding: 80px 0; + background-color: #f8fbff; + position: relative; + overflow: hidden; +} + +.about-hero__content { + display: flex; + flex-direction: column; + gap: 1.5rem; +} + +.about-hero__badge { + display: inline-flex; + align-items: center; + gap: 0.75rem; +} + +.about-hero__badge-line { + display: inline-block; + width: 2rem; + height: 2px; + background: #1b254b; +} + +.about-hero__badge-text { + font-size: 0.8rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.1em; + color: #6b7280; +} + +.about-hero__title { + font-size: clamp(2rem, 4vw, 3.5rem); + font-weight: 700; + color: #1b254b; + line-height: 1.15; + margin: 0; +} + +.about-hero__title span { + color: var(--theme, #E13833); +} + +.about-hero__desc { + font-size: 1.05rem; + color: #6b7280; + line-height: 1.7; + max-width: 36rem; + margin: 0; +} + +.about-hero__actions { + padding-top: 0.5rem; +} + +.about-hero__btn { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.875rem 2rem; + background-color: #1b254b; + color: #ffffff; + font-weight: 600; + font-size: 1rem; + border-radius: 0.375rem; + border: none; + cursor: pointer; + box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1); + transition: background-color 0.2s ease; +} + +.about-hero__btn:hover { + background-color: #151c3a; +} + +/* Image side */ +.about-hero__image-wrap { + position: relative; + border-radius: 1rem; + overflow: visible; +} + +.about-hero__image { + width: 100%; + height: auto; + border-radius: 1rem; + object-fit: cover; + box-shadow: 0 25px 50px rgba(0, 0, 0, 0.12); + display: block; +} + +/* Badge card overlay */ +.about-hero__badge-card { + position: absolute; + bottom: -1.5rem; + left: -1.5rem; + background: #ffffff; + padding: 1.25rem 1.5rem; + border-radius: 0.75rem; + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1); + border: 1px solid #e5e7eb; + display: flex; + align-items: center; + gap: 1rem; +} + +@media (max-width: 767px) { + .about-hero__badge-card { + display: none; + } +} + +.about-hero__badge-icon { + width: 3rem; + height: 3rem; + background: #f8fbff; + border-radius: 0.5rem; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.25rem; + color: #1b254b; + flex-shrink: 0; +} + +.about-hero__badge-value { + font-size: 1.5rem; + font-weight: 700; + color: #1b254b; + margin: 0; +} + +.about-hero__badge-label { + font-size: 0.8rem; + color: #6b7280; + margin: 0; +} + +@media (max-width: 991px) { + .about-hero { + padding: 80px 0 60px; + } + + .about-hero__image-wrap { + margin-top: 3rem; + } +} + +/* ------------------------------------------------------------ + Mission & Values + ------------------------------------------------------------ */ +.about-mission { + padding: 80px 0; + background-color: #f8f8f9; + border-top: 1px solid #e5e7eb; +} + +.about-mission__header { + max-width: 48rem; + margin: 0 auto 4rem; +} + +.about-mission__badge { + display: inline-flex; + align-items: center; + gap: 0.75rem; + margin-bottom: 1rem; +} + +.about-mission__badge-line { + display: inline-block; + width: 2rem; + height: 2px; + background: #E13833; +} + +.about-mission__badge-text { + font-size: 0.8rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.1em; + color: #6b7280; +} + +.about-mission__title { + font-size: clamp(1.75rem, 3vw, 2.25rem); + font-weight: 700; + color: #1b254b; + margin-bottom: 1rem; +} + +.about-mission__subtitle { + font-size: 1.05rem; + color: #6b7280; + line-height: 1.7; + margin: 0; +} + +.about-mission__grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 2rem; +} + +@media (max-width: 991px) { + .about-mission__grid { + grid-template-columns: 1fr; + } +} + +.about-mission__card { + background: #ffffff; + padding: 2rem; + border-radius: 0.75rem; + border: 1px solid #e5e7eb; + box-shadow: 0 1px 4px rgba(0,0,0,0.04); + transition: box-shadow 0.2s ease; +} + +.about-mission__card:hover { + box-shadow: 0 8px 24px rgba(0,0,0,0.08); +} + +.about-mission__icon-wrap { + width: 3.5rem; + height: 3.5rem; + background: #f8fbff; + border-radius: 0.5rem; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.25rem; + color: #1b254b; + margin-bottom: 1.5rem; + border-top: 4px solid transparent; + transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease; +} + +.about-mission__card:hover .about-mission__icon-wrap { + background-color: #1b254b; + color: #ffffff; + border-top-color: #E13833; +} + +.about-mission__card-title { + font-size: 1.125rem; + font-weight: 700; + color: #1b254b; + margin-bottom: 0.75rem; +} + +.about-mission__card-desc { + font-size: 0.95rem; + color: #6b7280; + line-height: 1.7; + margin: 0; +} + +/* ------------------------------------------------------------ + Why Paris + ------------------------------------------------------------ */ +.why-paris { + padding: 80px 0; + background: #ffffff; +} + +.why-paris__image-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 1rem; +} + +.why-paris__image-col { + display: flex; + flex-direction: column; + gap: 1rem; +} + +.why-paris__image-col--offset { + padding-top: 2rem; +} + +.why-paris__img { + width: 100%; + object-fit: cover; + border-radius: 0.75rem; + box-shadow: 0 4px 12px rgba(0,0,0,0.1); + display: block; +} + +.why-paris__img--short { height: 12rem; } +.why-paris__img--tall { height: 16rem; } + +.why-paris__content { + display: flex; + flex-direction: column; + gap: 1.25rem; + padding-left: 2rem; +} + +@media (max-width: 991px) { + .why-paris__content { + padding-left: 0; + margin-bottom: 2.5rem; + } +} + +.why-paris__title { + font-size: clamp(1.75rem, 3vw, 2.25rem); + font-weight: 700; + color: #1b254b; + margin: 0; +} + +.why-paris__desc { + font-size: 1.05rem; + color: #6b7280; + line-height: 1.7; + margin: 0; +} + +.why-paris__list { + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + gap: 1rem; +} + +.why-paris__list-item { + display: flex; + align-items: flex-start; + gap: 0.75rem; + color: #1b254b; + font-size: 0.95rem; +} + +.why-paris__check { + width: 1.25rem; + height: 1.25rem; + border-radius: 50%; + background: #f8fbff; + display: flex; + align-items: center; + justify-content: center; + color: #1b254b; + font-size: 0.65rem; + flex-shrink: 0; + margin-top: 2px; +} + +.why-paris__btn { + display: inline-block; + margin-top: 0.5rem; + padding: 0.625rem 1.5rem; + background: #f8fbff; + color: #1b254b; + font-weight: 600; + font-size: 0.95rem; + border-radius: 0.375rem; + border: 1px solid #e5e7eb; + cursor: pointer; + transition: background-color 0.2s ease; +} + +.why-paris__btn:hover { + background-color: #e5e7eb; +} + +/* ------------------------------------------------------------ + Leadership Message + ------------------------------------------------------------ */ +.about-message { + padding: 80px 0; + background: #ffffff; +} + +.about-message__header { + margin-bottom: 2rem; +} + +.about-message__title { + font-size: clamp(1.75rem, 3vw, 2.5rem); + font-weight: 700; + color: #1b254b; + margin-bottom: 1rem; +} + +.about-message__divider { + width: 5rem; + height: 4px; + background: #E13833; + border-radius: 999px; +} + +.about-message__body p { + color: #6b7280; + line-height: 1.8; + margin-bottom: 1.25rem; +} + +.about-message__quote { + font-size: 1.2rem; + font-weight: 500; + color: #1b254b !important; + line-height: 1.7; +} + +.about-message__author { + display: flex; + align-items: center; + gap: 1.25rem; + margin-top: 2rem; + padding: 1.5rem; + background: #f8f8f9; + border-radius: 1rem; + border: 1px solid #e5e7eb; +} + +.about-message__avatar { + width: 5rem; + height: 5rem; + border-radius: 50%; + overflow: hidden; + border: 2px solid #E13833; + flex-shrink: 0; +} + +.about-message__avatar img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.about-message__author-name { + font-size: 1.1rem; + font-weight: 700; + color: #1b254b; + margin: 0 0 0.25rem; +} + +.about-message__author-role { + font-size: 0.875rem; + color: #E13833; + font-weight: 500; + margin: 0; +} + +.about-message__quote-icon { + font-size: 3rem; + color: #1b254b; + opacity: 0.15; + margin-left: auto; +} + +/* Sidebar */ +.about-message__sidebar { + display: flex; + flex-direction: column; + gap: 1.25rem; + position: sticky; + top: 7rem; +} + +.about-message__sidebar-card { + background: #f8f8f9; + padding: 2rem; + border-radius: 1.5rem; + border: 1px solid #e5e7eb; +} + +.about-message__sidebar-card h3 { + font-size: 1.1rem; + font-weight: 700; + color: #1b254b; + margin-bottom: 0.75rem; +} + +.about-message__sidebar-card p { + font-size: 0.875rem; + color: #6b7280; + margin-bottom: 1.25rem; +} + +.about-message__sidebar-card--primary { + background: #1b254b; +} + +.about-message__sidebar-card--primary h3, +.about-message__sidebar-card--primary p { + color: #ffffff; +} + +.about-message__sidebar-card--primary p { + color: rgba(255,255,255,0.75); +} + +.about-message__sidebar-link { + display: inline-flex; + align-items: center; + justify-content: space-between; + width: 100%; + background: #ffffff; + color: #1b254b; + padding: 0.75rem 1.5rem; + border-radius: 999px; + font-weight: 500; + font-size: 0.9rem; + text-decoration: none; + transition: background 0.2s; +} + +.about-message__sidebar-link:hover { background: #f3f4f6; } + +.about-message__sidebar-icon { + width: 3rem; + height: 3rem; + background: #ffffff; + border-radius: 0.75rem; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.25rem; + color: #1b254b; + margin-bottom: 1rem; + box-shadow: 0 1px 4px rgba(0,0,0,0.08); +} + +.about-message__sidebar-text-link { + display: inline-flex; + align-items: center; + gap: 0.5rem; + color: #1b254b; + font-weight: 500; + font-size: 0.9rem; + text-decoration: none; +} + +.about-message__sidebar-text-link:hover { text-decoration: underline; } + +.about-message__sidebar-outline-link { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + border: 2px solid #1b254b; + color: #1b254b; + padding: 0.75rem 1.5rem; + border-radius: 999px; + font-weight: 500; + font-size: 0.9rem; + text-decoration: none; + transition: all 0.2s; +} + +.about-message__sidebar-outline-link:hover { + background: #1b254b; + color: #ffffff; +} + +/* ------------------------------------------------------------ + Leadership Board + ------------------------------------------------------------ */ +.about-leadership { + padding: 80px 0; + background: #f8f8f9; +} + +.about-leadership__header { + margin-bottom: 3rem; +} + +.about-leadership__title { + font-size: clamp(1.75rem, 3vw, 2.25rem); + font-weight: 700; + color: #1b254b; + margin-bottom: 0.75rem; +} + +.about-leadership__subtitle { + color: #6b7280; + font-size: 1.05rem; + margin: 0; +} + +.about-leadership__grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 2rem; +} + +@media (max-width: 991px) { + .about-leadership__grid { grid-template-columns: repeat(2, 1fr); } +} + +@media (max-width: 575px) { + .about-leadership__grid { grid-template-columns: 1fr; } +} + +.about-leadership__card { + background: #ffffff; + border-radius: 0.75rem; + border: 1px solid #e5e7eb; + overflow: hidden; + transition: box-shadow 0.2s; +} + +.about-leadership__card:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.08); } + +.about-leadership__photo-wrap { + height: 16rem; + overflow: hidden; + background: #f3f4f6; +} + +.about-leadership__photo { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.about-leadership__card:hover .about-leadership__photo { transform: scale(1.05); } + +.about-leadership__info { + padding: 1.5rem; + text-align: center; +} + +.about-leadership__name { + font-size: 1rem; + font-weight: 700; + color: #1b254b; + margin-bottom: 0.25rem; +} + +.about-leadership__role { + font-size: 0.875rem; + color: #E13833; + font-weight: 500; + margin-bottom: 0.75rem; +} + +.about-leadership__socials { + display: flex; + justify-content: center; + gap: 0.75rem; +} + +.about-leadership__social-link { + color: #6b7280; + font-size: 1rem; + text-decoration: none; + transition: color 0.2s; +} + +.about-leadership__social-link:hover { color: #1b254b; } + +/* ------------------------------------------------------------ + Campus + ------------------------------------------------------------ */ +.about-campus { + padding: 80px 0; + background: #f8f8f9; +} + +.about-campus__header { + margin-bottom: 3rem; +} + +.about-campus__title { + font-size: clamp(1.75rem, 3vw, 2.25rem); + font-weight: 700; + color: #1b254b; + margin-bottom: 0.75rem; +} + +.about-campus__subtitle { + color: #6b7280; + max-width: 40rem; + margin: 0 auto; +} + +.about-campus__grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 2rem; +} + +@media (max-width: 991px) { + .about-campus__grid { grid-template-columns: 1fr; } +} + +.about-campus__card { + background: #ffffff; + border-radius: 1.5rem; + overflow: hidden; + box-shadow: 0 2px 8px rgba(0,0,0,0.06); + transition: box-shadow 0.2s; +} + +.about-campus__card:hover { box-shadow: 0 12px 32px rgba(0,0,0,0.1); } + +.about-campus__img-wrap { + height: 12rem; + overflow: hidden; +} + +.about-campus__img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.about-campus__card:hover .about-campus__img { transform: scale(1.05); } + +.about-campus__body { + padding: 2rem; +} + +.about-campus__tag { + display: inline-block; + padding: 0.2rem 0.75rem; + border-radius: 999px; + font-size: 0.75rem; + font-weight: 700; + margin-bottom: 1rem; +} + +.about-campus__tag--blue { background: #eff6ff; color: #1b254b; } +.about-campus__tag--yellow { background: #fefce8; color: #854d0e; } +.about-campus__tag--green { background: #f0fdf4; color: #166534; } + +.about-campus__card-title { + font-size: 1.1rem; + font-weight: 700; + color: #1b254b; + margin-bottom: 0.75rem; +} + +.about-campus__card-desc { + font-size: 0.875rem; + color: #6b7280; + line-height: 1.6; + margin-bottom: 1.5rem; +} + +.about-campus__link { + display: inline-flex; + align-items: center; + gap: 0.5rem; + color: #1b254b; + font-weight: 500; + font-size: 0.875rem; + text-decoration: none; + transition: gap 0.2s; +} + +.about-campus__link:hover { gap: 0.75rem; } + +/* ------------------------------------------------------------ + History Timeline + ------------------------------------------------------------ */ +.about-timeline { + padding: 80px 0; + background: #1b254b; + color: #ffffff; +} + +.about-timeline__header { margin-bottom: 3rem; } + +.about-timeline__title { + font-size: clamp(1.75rem, 3vw, 2.5rem); + font-weight: 700; + color: #ffffff; + margin-bottom: 0.75rem; +} + +.about-timeline__subtitle { color: rgba(255,255,255,0.65); font-size: 1rem; margin: 0; } + +.about-timeline__track { + max-width: 44rem; + margin: 0 auto; + position: relative; + padding: 1rem 0; +} + +/* Vertical line chạy giữa track */ +.about-timeline__line { + position: absolute; + left: 50%; + top: 0; + bottom: 0; + width: 2px; + margin-left: -1px; + background: rgba(100,160,255,0.3); +} + +.about-timeline__item { + display: flex; + margin-bottom: 3.5rem; + width: 100%; + position: relative; +} + +.about-timeline__item:last-child { margin-bottom: 0; } + +/* Content chiếm nửa trái hoặc phải */ +.about-timeline__content { + width: calc(50% - 1.5rem); +} + +/* Dot nằm absolute giữa line */ +.about-timeline__dot-wrap { + position: absolute; + left: 50%; + top: 0.3rem; + transform: translateX(-50%); + z-index: 2; + display: flex; + align-items: center; + justify-content: center; +} + +/* Spacer chiếm nửa còn lại */ +.about-timeline__spacer { + width: calc(50% - 1.5rem); +} + +/* Left: content bên trái, text align right */ +.about-timeline__item--left .about-timeline__content { + text-align: right; + order: 1; + margin-right: 3rem; +} +.about-timeline__item--left .about-timeline__dot-wrap { order: 2; } +.about-timeline__item--left .about-timeline__spacer { order: 3; } + +/* Right: spacer bên trái, content bên phải */ +.about-timeline__item--right .about-timeline__spacer { order: 1; } +.about-timeline__item--right .about-timeline__dot-wrap { order: 2; } +.about-timeline__item--right .about-timeline__content { + text-align: left; + order: 3; + margin-left: 3rem; +} + +.about-timeline__dot { + width: 1.25rem; + height: 1.25rem; + border-radius: 50%; + background: transparent; + border: 2px solid #74b3ff; + box-shadow: 0 0 0 4px rgba(116,179,255,0.15); + flex-shrink: 0; +} + +.about-timeline__year { + font-size: 1.75rem; + font-weight: 700; + color: #ffffff; + margin-bottom: 0.25rem; + line-height: 1; +} + +.about-timeline__event { + font-size: 0.95rem; + font-weight: 600; + color: #74b3ff; + margin-bottom: 0.5rem; +} + +.about-timeline__desc { + font-size: 0.875rem; + color: rgba(255,255,255,0.65); + line-height: 1.6; + margin: 0; + max-width: 18rem; +} + +.about-timeline__item--left .about-timeline__desc { margin-left: auto; } +.about-timeline__item--right .about-timeline__desc { margin-right: auto; } + +@media (max-width: 767px) { + .about-timeline__line { left: 0.75rem; } + .about-timeline__item { flex-direction: column; align-items: flex-start; padding-left: 2.5rem; } + .about-timeline__item--left .about-timeline__content, + .about-timeline__item--right .about-timeline__content { text-align: left; padding: 0; order: 2; } + .about-timeline__item--left .about-timeline__desc, + .about-timeline__item--right .about-timeline__desc { margin: 0; max-width: 100%; } + .about-timeline__dot-wrap { position: absolute; left: 0; top: 0.25rem; order: 1; } + .about-timeline__spacer { display: none; } +} diff --git a/app/components/about/index.ts b/app/components/about/index.ts deleted file mode 100644 index 0f58ea8..0000000 --- a/app/components/about/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { default as AboutHero } from './AboutHero'; -export { default as AboutIntro } from './AboutIntro'; -export { default as AboutMission } from './AboutMission'; -export { default as AboutFeatures } from './AboutFeatures'; -export { default as AboutNews } from './AboutNews'; diff --git a/app/components/home/Achievements.tsx b/app/components/home/Achievements.tsx deleted file mode 100644 index 689328c..0000000 --- a/app/components/home/Achievements.tsx +++ /dev/null @@ -1,47 +0,0 @@ -interface AchievementsProps { - data: { - heading: string; - subheading: string; - items: { - value: string; - suffix: string; - label: string; - description: string; - }[]; - }; -} - -const Achievements = ({ data }: AchievementsProps) => { - return ( -
-
- img -
-
-
- {data.subheading} -

- {data.heading} -

-
-
-
-
-
- {data.items.map((item, index) => ( -
-

00{item.suffix}

-
{item.label}
-

- {item.description} -

-
- ))} -
-
-
-
- ); -}; - -export default Achievements; diff --git a/app/components/home/BlogPreview.tsx b/app/components/home/BlogPreview.tsx deleted file mode 100644 index ab19413..0000000 --- a/app/components/home/BlogPreview.tsx +++ /dev/null @@ -1,116 +0,0 @@ -import { getCmsImageUrl } from '@/utils/image'; -import Link from 'next/link'; - -interface BlogPreviewProps { - data: { - heading: string; - subheading: string; - ctaButton: { - label: string; - href: string; - }; - items: { - title: string; - excerpt: string; - category: string; - date: string; - author: { - name: string; - avatar: string; - }; - comments: number; - link: string; - thumbnail: string; - }[]; - }; -} - -const BlogPreview = ({ data }: BlogPreviewProps) => { - const formatDate = (dateString: string) => { - const date = new Date(dateString); - return date.toLocaleDateString('en-US', { day: 'numeric', month: 'long', year: 'numeric' }); - }; - - return ( -
-
-
-
- {data.subheading} -

- {data.heading} -

-
- - {data.ctaButton.label} - - -
-
- {data.items.map((item, index) => { - const thumbUrl = getCmsImageUrl(item.thumbnail); - return ( -
-
-
- img - {item.category} -
-
-
-
-
-
-
-
-
- Comment ({item.comments.toString().padStart(2, '0')}) - _ {formatDate(item.date)} -
-

- - {item.title} - -

-
-
-
- {item.author.name.charAt(0).toUpperCase()} -
- By {item.author.name} -
- View Articles -
-
-
-
- ); - })} -
-
-
- ); -}; - -export default BlogPreview; diff --git a/app/components/home/FAQSection.tsx b/app/components/home/FAQSection.tsx deleted file mode 100644 index dc47ac5..0000000 --- a/app/components/home/FAQSection.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import Link from 'next/link'; - -interface FAQSectionProps { - data: { - heading: string; - subheading: string; - description: string; - ctaButton: { - label: string; - href: string; - }; - items: { - question: string; - answer: string; - }[]; - }; -} - -const FAQSection = ({ data }: FAQSectionProps) => { - return ( -
-
-
-
-
-
-
- {data.subheading} -

- {data.heading} -

-
-

- {data.description} -

- - {data.ctaButton.label} - - -
-
-
-
-
- {data.items.map((item, index) => ( -
-
- -
-
-
-

- {item.answer} -

-
-
-
- ))} -
-
-
-
-
-
-
- ); -}; - -export default FAQSection; diff --git a/app/components/home/HeroSection.tsx b/app/components/home/HeroSection.tsx index d123810..3f9b71d 100644 --- a/app/components/home/HeroSection.tsx +++ b/app/components/home/HeroSection.tsx @@ -1,141 +1,46 @@ -import { getCmsImageUrl } from '@/utils/image'; -import Link from 'next/link'; +import Link from "next/link"; -interface HeroSlide { - title: string; - subtitle: string; - description: string; - primaryButton: { - label: string; - href: string; - }; - secondaryButton: { - label: string; - href: string; - }; - heroImage?: string; - videoUrl: string; -} +const HeroSection = () => { + return ( +
+
+ Paris University Campus +
+
-interface HeroSectionProps { - data: { - backgroundImage: string; - // Optional multi-slide support from CMS - slides?: HeroSlide[]; - // Legacy single-slide fields (fallback) - title?: string; - subtitle?: string; - description?: string; - primaryButton?: { - label: string; - href: string; - }; - secondaryButton?: { - label: string; - href: string; - }; - heroImage?: string; - videoUrl?: string; - }; -} +
+
+
+ + Leading Research Institution +
-const HeroSection = ({ data }: HeroSectionProps) => { - const slides: HeroSlide[] = - (data.slides && data.slides.length > 0) - ? data.slides - : [{ - title: data.title || '', - subtitle: data.subtitle || '', - description: data.description || '', - primaryButton: data.primaryButton || { label: '', href: '#' }, - secondaryButton: data.secondaryButton || { label: '', href: '#' }, - heroImage: data.heroImage, - videoUrl: data.videoUrl || '', - }]; +

+ Advancing Knowledge in the Heart of Paris +

- const firstSlide = slides[0]; +

+ A premier liberal arts and research university dedicated to fostering + interdisciplinary innovation, global partnerships, and academic excellence. +

- return ( -
-
- img -
-
- img -
-
- img -
-
- img -
-
-
- - 03 - - - 05 - -
-
-
-
-
-
-
- {slides.map((slide, index) => ( -
-
-
{slide.subtitle}
-

- {slide.title} - {slide.videoUrl && ( - - - - )} -

-

- {slide.description} -

-
- {slide.primaryButton?.href && ( - - {slide.primaryButton.label} - - - )} - {slide.secondaryButton?.href && ( - - {slide.secondaryButton.label} - - - )} -
-
-
- ))} -
-
-
-
-
-
- {slides.map((slide, index) => ( -
-
- img -
-
- ))} -
-
-
-
-
-
- ); +
+ + +
+
+
+
+ ); }; export default HeroSection; diff --git a/app/components/home/Partners.tsx b/app/components/home/Partners.tsx deleted file mode 100644 index 5681d28..0000000 --- a/app/components/home/Partners.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import { getCmsImageUrl } from '@/utils/image'; - -interface PartnersProps { - data: { - visaConsultancy: { - items: { - name: string; - icon: string; - year: string; - }[]; - }; - brands: { - items: { - logo: string; - }[]; - }; - }; -} - -const Partners = ({ data }: PartnersProps) => { - return ( - <> - {/* Awards Section */} -
-
-
- {(data.visaConsultancy?.items || []).map((partner, index) => ( -
-
-
- {partner.name} -
-

{partner.name}

-
{partner.year}
-
-
- ))} -
-
-
- - {/* Brand Partners Section */} -
-
-
-
-
-
- {(data.brands?.items || []).map((brand, index) => ( -
-
- brand-logo -
-
- ))} -
-
-
-
-
-
- - ); -}; - -export default Partners; diff --git a/app/components/home/QuickLinksGrid.tsx b/app/components/home/QuickLinksGrid.tsx new file mode 100644 index 0000000..366301b --- /dev/null +++ b/app/components/home/QuickLinksGrid.tsx @@ -0,0 +1,67 @@ +import Link from "next/link"; + +const LINKS = [ + { + icon: "fa-solid fa-microscope", + title: "Research Hub", + desc: "Discover our ongoing projects, facilities, and interdisciplinary centers.", + cta: "View Hub", + href: "/research", + }, + { + icon: "fa-solid fa-book-open", + title: "Publications", + desc: "Access our extensive repository of peer-reviewed papers and journals.", + cta: "Browse", + href: "/publications", + }, + { + icon: "fa-solid fa-handshake", + title: "Partnerships", + desc: "Collaborate with us through industry, academic, and global networks.", + cta: "Connect", + href: "/partnerships", + }, + { + icon: "fa-solid fa-newspaper", + title: "News & Events", + desc: "Stay updated with our latest breakthroughs, seminars, and campus life.", + cta: "Read More", + href: "/blog", + }, +]; + +const QuickLinksGrid = () => { + return ( + + ); +}; + +export default QuickLinksGrid; diff --git a/app/components/home/Testimonials.tsx b/app/components/home/Testimonials.tsx deleted file mode 100644 index 9e75793..0000000 --- a/app/components/home/Testimonials.tsx +++ /dev/null @@ -1,74 +0,0 @@ -interface TestimonialsProps { - data: { - heading: string; - subheading: string; - videoUrl: string; - videoThumbnail: string; - items: { - name: string; - role: string; - country: string; - rating: number; - comment: string; - avatar: string; - }[]; - }; -} - -const Testimonials = ({ data }: TestimonialsProps) => { - return ( -
-
-
- {data.subheading} -

- {data.heading} -

-
-
-
-
-
- img - - -
Real stories
-
-
-
-
-
- {data.items.map((testimonial, index) => ( -
-
-
- {Array.from({ length: testimonial.rating }).map((_, i) => ( - - ))} -
-

- {testimonial.comment} -

-
-
- img -
-
-
{testimonial.name}
- {testimonial.country} -
-
-
-
- ))} -
-
-
-
-
-
-
- ); -}; - -export default Testimonials; diff --git a/app/components/home/VideoGallery.tsx b/app/components/home/VideoGallery.tsx deleted file mode 100644 index 44faf61..0000000 --- a/app/components/home/VideoGallery.tsx +++ /dev/null @@ -1,35 +0,0 @@ -interface VideoGalleryProps { - data: { - heading: string; - videoUrl: string; - thumbnail: string; - }; -} - -const VideoGallery = ({ data }: VideoGalleryProps) => { - return ( -
- -
- img -
-
- img -
-
-
-
- img -
-

{data.heading.split(' ').map((word, index) => ( - {word}{index === 0 ?
: ' '}
- ))}

-
-
-
- ); -}; - -export default VideoGallery; diff --git a/app/components/home/VisaCountries.tsx b/app/components/home/VisaCountries.tsx deleted file mode 100644 index 1d44bfc..0000000 --- a/app/components/home/VisaCountries.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import Link from 'next/link'; - -interface VisaCountriesProps { - data: { - heading: string; - subheading: string; - description: string; - countries: { - name: string; - code: string; - flag: string; - link: string; - visaTypes: string[]; - }[]; - ctaButton: { - label: string; - href: string; - }; - }; -} - -const VisaCountries = ({ data }: VisaCountriesProps) => { - // Display the first country as featured - const featuredCountry = data.countries[0]; - const halfLength = Math.ceil(featuredCountry.visaTypes.length / 2); - const firstColumn = featuredCountry.visaTypes.slice(0, halfLength); - const secondColumn = featuredCountry.visaTypes.slice(halfLength); - - return ( -
-
-
-
-
-
-
- {data.subheading} -

- {data.heading} -

-
-

- {data.description} -

-
-
    - {firstColumn.map((visaType, index) => ( -
  • - - {visaType} -
  • - ))} -
-
    - {secondColumn.map((visaType, index) => ( -
  • - - {visaType} -
  • - ))} -
-
- - {data.ctaButton.label} - - -
-
-
-
- img -
{featuredCountry.code}.{featuredCountry.name}
-
-
-
-
-
-
- ); -}; - -export default VisaCountries; diff --git a/app/components/home/VisaSolutions.tsx b/app/components/home/VisaSolutions.tsx deleted file mode 100644 index bd637c5..0000000 --- a/app/components/home/VisaSolutions.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import Link from 'next/link'; - -interface VisaSolutionsProps { - data: { - heading: string; - subheading: string; - items: { - number: string; - title: string; - description: string; - link: string; - }[]; - }; -} - -const VisaSolutions = ({ data }: VisaSolutionsProps) => { - return ( -
-
-
- {data.subheading} -

- {data.heading} -

-
-
- {data.items.map((item, index) => ( -
-
-
- -
-
{item.number}
-

- {item.title} -

-
-
-

- {item.description} -

- Service Details -
-
-
-
- ))} -
- ); -}; - -export default VisaSolutions; diff --git a/app/components/home/WhyChooseUs.tsx b/app/components/home/WhyChooseUs.tsx deleted file mode 100644 index a47bf22..0000000 --- a/app/components/home/WhyChooseUs.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import Link from 'next/link'; - -interface WhyChooseUsProps { - data: { - heading: string; - highlightWord?: string; - subheading: string; - description: string; - mainImage?: string; - secondaryImage?: string; - items: { - icon: string; - title: string; - description: string; - }[]; - features: string[]; - ctaButton: { - label: string; - href: string; - }; - }; -} - -const WhyChooseUs = ({ data }: WhyChooseUsProps) => { - const highlight = data.highlightWord?.trim(); - - let headingContent: React.ReactNode = data.heading; - - if (highlight) { - const index = data.heading.indexOf(highlight); - if (index !== -1) { - const before = data.heading.slice(0, index); - const after = data.heading.slice(index + highlight.length); - headingContent = ( - <> - {before} - {highlight} - {after} - - ); - } - } - - return ( -
-
- img -
-
-
-
-
-
- img -
- img -
-
- img -
-
- img -
-
- img -
-
-
-
-
-
- {data.subheading} -

- {headingContent} -

-
-

- {data.description} -

-
- {data.items.map((item, index) => ( -
- {item.title}- -

{item.description}

-
- ))} -
-
    - {data.features.map((feature, index) => ( -
  • - - {feature} -
  • - ))} -
- - {data.ctaButton.label} - - -
-
-
-
-
-
- ); -}; - -export default WhyChooseUs; diff --git a/app/components/home/home.css b/app/components/home/home.css new file mode 100644 index 0000000..42a26f2 --- /dev/null +++ b/app/components/home/home.css @@ -0,0 +1,514 @@ +/* ============================================================ + HOME PAGE — shared styles + ============================================================ */ + +/* ------------------------------------------------------------ + Hero Section + ------------------------------------------------------------ */ +.hero-home { + position: relative; + width: 100%; + height: 560px; + background-color: #1b254b; + overflow: hidden; + display: flex; + align-items: center; +} + +.hero-home__overlay { + position: absolute; + inset: 0; + opacity: 0.2; +} + +.hero-home__bg-img { + width: 100%; + height: 100%; + object-fit: cover; + mix-blend-mode: overlay; +} + +.hero-home__gradient { + position: absolute; + inset: 0; + background: linear-gradient(to right, #1b254b, rgba(27, 37, 75, 0.9), transparent); +} + +.hero-home__container { + position: relative; + z-index: 2; + max-width: 1440px; + margin: 0 auto; + padding: 0 1.5rem; + width: 100%; +} + +@media (min-width: 1024px) { + .hero-home__container { + padding: 0 2rem; + } +} + +.hero-home__content { + max-width: 42rem; + display: flex; + flex-direction: column; + gap: 1.5rem; +} + +/* Badge */ +.hero-home__badge { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.375rem 0.75rem; + border-radius: 9999px; + background: rgba(255, 255, 255, 0.1); + border: 1px solid rgba(255, 255, 255, 0.2); + backdrop-filter: blur(4px); + width: fit-content; +} + +.hero-home__badge-dot { + width: 0.5rem; + height: 0.5rem; + border-radius: 50%; + background: #60a5fa; + animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; +} + +@keyframes pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.5; } +} + +.hero-home__badge-text { + font-size: 0.75rem; + font-weight: 600; + color: #bfdbfe; + text-transform: uppercase; + letter-spacing: 0.05em; +} + +/* Title */ +.hero-home__title { + font-size: 3rem; + font-weight: 700; + color: #ffffff; + line-height: 1.2; + letter-spacing: -0.02em; + margin: 0; +} + +@media (min-width: 1024px) { + .hero-home__title { + font-size: 3.75rem; + } +} + +/* Description */ +.hero-home__desc { + font-size: 1.125rem; + color: #bfdbfe; + line-height: 1.7; + max-width: 36rem; + margin: 0; +} + +/* Actions */ +.hero-home__actions { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 1rem; + padding-top: 1rem; +} + +/* Buttons */ +.hero-home__btn { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.75rem 1.5rem; + border-radius: 0.5rem; + font-weight: 600; + font-size: 1rem; + cursor: pointer; + transition: all 0.2s ease-in-out; + border: none; +} + +.hero-home__btn--primary { + background: #ffffff; + color: #1b254b; + box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1); +} + +.hero-home__btn--primary:hover { + background: #f9fafb; +} + +.hero-home__btn--secondary { + background: rgba(255, 255, 255, 0.1); + color: #ffffff; + border: 1px solid rgba(255, 255, 255, 0.2); + backdrop-filter: blur(4px); +} + +.hero-home__btn--secondary:hover { + background: rgba(255, 255, 255, 0.2); +} + +/* ------------------------------------------------------------ + Research Impact Section + ------------------------------------------------------------ */ +.research-impact { + padding: 80px 0; + background-color: #f8fbff; +} + +.research-impact__header { + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + gap: 0.5rem; + margin-bottom: 2.5rem; +} + +.research-impact__title { + font-size: 1.6rem; + font-weight: 700; + color: #1b254b; + margin: 0; +} + +.research-impact__year { + font-size: 0.85rem; + font-weight: 500; + color: #6b7280; + background: #e5e7eb; + padding: 4px 12px; + border-radius: 999px; +} + +.research-impact__stats { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 1.25rem; + margin-bottom: 2rem; +} + +@media (max-width: 991px) { + .research-impact__stats { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (max-width: 575px) { + .research-impact__stats { + grid-template-columns: 1fr; + } +} + +.research-impact__stat-card { + background: #ffffff; + border: 1px solid #e5e7eb; + border-radius: 12px; + padding: 1.5rem; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); +} + +.research-impact__stat-label { + font-size: 0.8rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.06em; + color: #6b7280; + margin-bottom: 0.5rem; +} + +.research-impact__stat-value-row { + display: flex; + align-items: baseline; + gap: 0.5rem; + margin-bottom: 0.25rem; +} + +.research-impact__stat-value { + font-size: 2rem; + font-weight: 700; + color: #1b254b; + line-height: 1; +} + +.research-impact__stat-trend { + font-size: 0.78rem; + font-weight: 600; + padding: 2px 8px; + border-radius: 999px; +} + +.research-impact__stat-trend--up { + background: #d1fae5; + color: #065f46; +} + +.research-impact__stat-trend--down { + background: #fee2e2; + color: #991b1b; +} + +.research-impact__stat-trend--stable { + background: #e5e7eb; + color: #374151; +} + +.research-impact__stat-sub { + font-size: 0.8rem; + color: #9ca3af; + margin: 0; +} + +.research-impact__charts { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 1.25rem; +} + +@media (max-width: 767px) { + .research-impact__charts { + grid-template-columns: 1fr; + } +} + +.research-impact__chart-card { + background: #ffffff; + border: 1px solid #e5e7eb; + border-radius: 12px; + padding: 1.75rem; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); +} + +.research-impact__chart-title { + font-size: 1rem; + font-weight: 600; + color: #1b254b; + margin-bottom: 0.25rem; +} + +.research-impact__chart-sub { + font-size: 0.8rem; + color: #9ca3af; + margin-bottom: 1.25rem; +} + +.research-impact__bar-chart { + display: flex; + align-items: flex-end; + gap: 1.5rem; + height: 160px; + padding-top: 1rem; +} + +.research-impact__bar-group { + display: flex; + flex-direction: column; + align-items: center; + gap: 0.5rem; + flex: 1; +} + +.research-impact__bar { + width: 100%; + border-radius: 6px 6px 0 0; + min-height: 8px; + transition: height 0.4s ease; +} + +.research-impact__bar--journals { + background: #1b254b; +} + +.research-impact__bar--conferences { + background: #74c0fc; +} + +.research-impact__bar-label { + font-size: 0.78rem; + color: #6b7280; + font-weight: 500; +} + +.research-impact__donut-wrapper { + display: flex; + align-items: center; + gap: 1.5rem; + flex-wrap: wrap; +} + +.research-impact__donut { + width: 120px; + height: 120px; + border-radius: 50%; + flex-shrink: 0; + -webkit-mask: radial-gradient(circle, transparent 40%, black 41%); + mask: radial-gradient(circle, transparent 40%, black 41%); +} + +.research-impact__legend { + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.research-impact__legend-item { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 0.85rem; +} + +.research-impact__legend-dot { + width: 10px; + height: 10px; + border-radius: 50%; + flex-shrink: 0; +} + +.research-impact__legend-label { + color: #374151; + flex: 1; +} + +.research-impact__legend-value { + font-weight: 600; + color: #1b254b; +} + +/* ------------------------------------------------------------ + Quick Links Grid + ------------------------------------------------------------ */ +.quick-links { + padding: 80px 0; + background: #ffffff; +} + +.quick-links__header { + margin-bottom: 3rem; +} + +.quick-links__title { + font-size: clamp(1.75rem, 3vw, 2.25rem); + font-weight: 700; + color: #1b254b; + margin-bottom: 0.75rem; +} + +.quick-links__subtitle { + color: #6b7280; + max-width: 40rem; + margin: 0 auto; +} + +.quick-links__grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 1.5rem; +} + +@media (max-width: 991px) { + .quick-links__grid { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (max-width: 575px) { + .quick-links__grid { + grid-template-columns: 1fr; + } +} + +.quick-links__card { + display: flex; + flex-direction: column; + background: #f8fbff; + padding: 2rem; + border-radius: 1.5rem; + border: 1px solid transparent; + text-decoration: none; + transition: box-shadow 0.2s ease, border-color 0.2s ease; + cursor: pointer; +} + +.quick-links__card:hover { + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08); + border-color: #e5e7eb; +} + +.quick-links__icon-wrap { + width: 3.5rem; + height: 3.5rem; + background: #ffffff; + border-radius: 0.75rem; + display: flex; + align-items: center; + justify-content: center; + font-size: 1.25rem; + color: #1b254b; + margin-bottom: 1.5rem; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08); + transition: transform 0.2s ease; +} + +.quick-links__card:hover .quick-links__icon-wrap { + transform: scale(1.1); +} + +.quick-links__card-title { + font-size: 1.125rem; + font-weight: 700; + color: #1b254b; + margin-bottom: 0.75rem; +} + +.quick-links__card-desc { + font-size: 0.875rem; + color: #6b7280; + line-height: 1.6; + flex: 1; + margin-bottom: 1.5rem; +} + +.quick-links__card-footer { + display: flex; + justify-content: space-between; + align-items: center; +} + +.quick-links__cta { + font-size: 0.875rem; + font-weight: 500; + color: #1b254b; +} + +.quick-links__arrow { + width: 2rem; + height: 2rem; + border-radius: 50%; + background: #1b254b; + color: #ffffff; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.75rem; + opacity: 0; + transition: opacity 0.2s ease; +} + +.quick-links__card:hover .quick-links__arrow { + opacity: 1; +} diff --git a/app/globals.css b/app/globals.css index 54e6456..41413ec 100644 --- a/app/globals.css +++ b/app/globals.css @@ -1,7 +1,22 @@ @import "tailwindcss"; - -/* Mobile Menu Styles */ @import "./components/layout/Header/mobile-menu.css"; +@import "./components/layout/Header/header-responsive.css"; +@import "./components/home/home.css"; +@import "./components/about/about.css"; + +@theme { + --color-brand-blue: #1b254b; + --color-brand-light: #f8fbff; + --color-ui-muted: #6b7280; + --color-ui-border: #e5e7eb; + --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); +} + +@layer components { + .bento-item { + @apply border border-[--color-ui-border] bg-white; + } +} .collapse { visibility: visible !important; @@ -10,27 +25,3 @@ .collapse.show { visibility: visible; } - -/* Header Responsive Styles */ -@import "./components/layout/Header/header-responsive.css"; - - - -@theme { - - --color-brand-blue: #1b254b; - - --color-brand-light: #f8fbff; - - --color-ui-muted: #6b7280; - - --color-ui-border: #e5e7eb; - - --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); -} - -@layer components { - .bento-item { - @apply border border-[--color-ui-border] bg-white; - } -} \ No newline at end of file diff --git a/app/page.tsx b/app/page.tsx index 02bfdc0..955e344 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,13 +1,5 @@ import HeroSection from './components/home/HeroSection'; -import WhyChooseUs from './components/home/WhyChooseUs'; -import VisaSolutions from './components/home/VisaSolutions'; -import VisaCountries from './components/home/VisaCountries'; -import Testimonials from './components/home/Testimonials'; -import VideoGallery from './components/home/VideoGallery'; -import FAQSection from './components/home/FAQSection'; -import Achievements from './components/home/Achievements'; -import Partners from './components/home/Partners'; -import BlogPreview from './components/home/BlogPreview'; +import QuickLinksGrid from './components/home/QuickLinksGrid'; import localHomeData from './home.json'; import { getCmsImageUrl } from '@/utils/image'; import { fetchHomeData } from '@/api'; @@ -38,18 +30,8 @@ export default async function Home() { return ( <> - - - - - - - - - - - - + + ); } diff --git a/public/assets/css/main.css b/public/assets/css/main.css index 1030cd5..d07a37e 100644 --- a/public/assets/css/main.css +++ b/public/assets/css/main.css @@ -5041,599 +5041,6 @@ html.lenis, html.lenis body { transform: scale(1); } } -.hero-1 { - margin: 0 40px; - border-radius: 32px; - position: relative; - z-index: 9; -} -@media (max-width: 1399px) { - .hero-1 { - margin: 0 30px; - padding-top: 100px; - padding-bottom: 100px; - } -} -@media (max-width: 991px) { - .hero-1 { - padding-top: 80px; - padding-bottom: 0; - } -} -@media (max-width: 575px) { - .hero-1 { - margin: 0 15px; - } -} -.hero-1 .pagi-item { - right: 60px; - top: 345px; - position: absolute; - z-index: 999; -} -@media (max-width: 1600px) { - .hero-1 .pagi-item { - top: 310px; - } -} -@media (max-width: 1399px) { - .hero-1 .pagi-item { - display: none; - } -} -.hero-1 .pagi-item .dot-number { - display: flex; - align-items: center; - gap: 20px; -} -.hero-1 .pagi-item .dot-number .swiper-pagination-bullet { - background: none !important; - width: auto !important; - height: auto !important; - margin: 0 !important; - transition: all 0.4s ease-in-out; -} -.hero-1 .pagi-item .dot-number .swiper-pagination-bullet-active .dot-num span { - color: var(--white); - font-size: 32px; - font-weight: 700; - transition: all 0.4s ease-in-out; -} -.hero-1 .pagi-item .dot-number .dot-num { - transition: all 0.4s ease-in-out; -} -.hero-1 .pagi-item .dot-number .dot-num span { - font-size: 18px; - font-weight: 500; - color: rgba(255, 255, 255, 0.5); - transition: all 0.4s ease-in-out; -} -.hero-1 .left-shape { - position: absolute; - left: 0; - bottom: 0; -} -@media (max-width: 1399px) { - .hero-1 .left-shape { - display: none; - } -} -.hero-1 .hero-shape { - position: absolute; - z-index: -1; - right: 10px; - bottom: 0; - margin-right: 0; -} -@media (max-width: 1600px) { - .hero-1 .hero-shape { - max-width: 660px; - } -} -@media (max-width: 1399px) { - .hero-1 .hero-shape { - display: none; - max-width: initial; - } -} -.hero-1 .hero-shape img { - width: 100%; - height: 100%; -} -.hero-1 .top-shape { - position: absolute; - top: 0; - right: 0; -} -@media (max-width: 1399px) { - .hero-1 .top-shape { - display: none; - } -} -.hero-1 .top-shape img { - width: 100%; - height: 100%; -} -.hero-1 .right-shape { - position: absolute; - right: 0; - top: 0; -} -@media (max-width: 1399px) { - .hero-1 .right-shape { - display: none; - } -} -.hero-1 .container-fluid { - padding: 0 124px; -} -@media (max-width: 1899px) { - .hero-1 .container-fluid { - padding: 0 70px; - } -} -@media (max-width: 1600px) { - .hero-1 .container-fluid { - padding: 0 50px; - } -} -@media (max-width: 1399px) { - .hero-1 .container-fluid { - padding: 0 30px; - } -} -@media (max-width: 575px) { - .hero-1 .container-fluid { - padding: 0 15px; - } -} -.hero-1 .hero-content h6 { - font-size: 18px; - font-weight: 500; - color: var(--white); - margin-bottom: 20px; - line-height: 1; - padding: 8px 16px; - border-radius: 100px; - display: inline-block; - position: relative; - background-color: var(--bg-2); -} -.hero-1 .hero-content h1 { - color: var(--white); - text-transform: uppercase; - margin-bottom: 15px; -} -.hero-1 .hero-content h1 .video-btn { - width: 64px; - height: 64px; - line-height: 64px; - display: inline-block; - background-color: var(--theme); - color: var(--white); - text-align: center; - border-radius: 50%; - font-size: 20px; - margin-left: 60px; - position: relative; - z-index: 1; - transform: translateY(-15px); -} -@media (max-width: 1600px) { - .hero-1 .hero-content h1 .video-btn { - width: 50px; - height: 50px; - line-height: 50px; - } -} -@media (max-width: 1399px) { - .hero-1 .hero-content h1 .video-btn { - display: none; - } -} -.hero-1 .hero-content h1 .video-btn::before { - position: absolute; - content: ""; - background: rgba(203, 204, 207, 0.24); - width: 48px; - height: 1px; - left: -57px; - top: 30px; -} -.hero-1 .hero-content h1 .video-btn::after { - content: ""; - position: absolute; - top: -10px; - left: -10px; - right: -10px; - bottom: -10px; - border: 10px solid rgba(255, 255, 255, 0.12); - border-radius: 50%; - z-index: -1; -} -.hero-1 .hero-content p { - max-width: 671px; - color: rgba(255, 255, 255, 0.8); - padding-left: 30px; - border-left: 2px solid var(--white); - opacity: 0.8; -} -@media (max-width: 1399px) { - .hero-1 .hero-content p { - border-left: none; - padding-left: 0; - } -} -.hero-1 .hero-content .hero-button { - display: flex; - align-items: center; - gap: 35px; - margin-top: 50px; -} -@media (max-width: 1399px) { - .hero-1 .hero-content .hero-button { - margin-top: 30px; - flex-wrap: wrap; - gap: 25px; - } -} -.hero-1 .hero-content .hero-button .theme-btn { - background-color: var(--white); -} -.hero-1 .hero-content .hero-button .theme-btn:hover { - background-color: var(--theme); - border: 1px solid var(--theme); -} -.hero-1 .hero-content .hero-button .theme-btn.style-2 { - border: 1px solid var(--border-2); - background-color: transparent; - color: var(--white); -} -.hero-1 .hero-content .hero-button .theme-btn.style-2 i { - background-color: var(--white); - color: var(--header); -} -.hero-1 .hero-content .hero-button .theme-btn.style-2:hover { - background-color: var(--theme); - color: var(--white); - border: 1px solid var(--theme); -} -.hero-1 .hero-image { - margin-top: 20px; - margin-right: -140px; - position: relative; - z-index: 9; -} -@media (max-width: 1399px) { - .hero-1 .hero-image { - margin-right: 0; - } -} -.hero-1 .hero-image img { - width: 100%; - height: 100%; - opacity: 0; - transform: translateY(50px); - transition: all 0.8s ease-in-out; -} -.hero-1 .swiper-slide-active .hero-image img { - opacity: 1; - transform: translateY(0); -} - -.hero-2 { - position: relative; -} -@media (max-width: 1399px) { - .hero-2 { - padding-top: 100px; - padding-bottom: 100px; - } -} -@media (max-width: 991px) { - .hero-2 { - padding-top: 80px; - padding-bottom: 0; - } -} -.hero-2 .shape { - position: absolute; - left: 0; - top: 0; -} -@media (max-width: 1399px) { - .hero-2 .shape { - display: none; - } -} -.hero-2 .container-fluid { - padding: 0 65px; -} -@media (max-width: 1600px) { - .hero-2 .container-fluid { - padding: 0 50px; - } -} -@media (max-width: 1399px) { - .hero-2 .container-fluid { - padding: 0 40px; - } -} -@media (max-width: 1399px) { - .hero-2 .container-fluid { - padding: 0 30px; - } -} -@media (max-width: 575px) { - .hero-2 .container-fluid { - padding: 0 15px; - } -} -.hero-2::before { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - width: 100%; - height: 100%; - content: ""; - background: linear-gradient(279deg, rgba(21, 26, 38, 0.88) 34.84%, rgba(21, 26, 38, 0) 84.02%); -} -.hero-2 .hero-image { - margin-top: 30px; - position: relative; - margin-left: -75px; -} -@media (max-width: 1399px) { - .hero-2 .hero-image { - margin-left: 0; - margin-top: 0; - } -} -.hero-2 .hero-image img { - width: 100%; - height: 100%; -} -.hero-2 .hero-content { - position: relative; - z-index: 999; -} -.hero-2 .hero-content h6 { - color: var(--white); - font-size: 18px; - font-weight: 500; - letter-spacing: 6px; - text-transform: uppercase; - margin-bottom: 20px; -} -.hero-2 .hero-content h1 { - color: var(--white); - text-transform: uppercase; - margin-bottom: 20px; -} -.hero-2 .hero-content p { - color: var(--white); - max-width: 800px; - padding-left: 24px; - border-left: 3px solid var(--white); -} -@media (max-width: 1399px) { - .hero-2 .hero-content p { - border-left: none; - padding-left: 0; - } -} -.hero-2 .hero-content .hero-button { - display: flex; - align-items: center; - gap: 35px; - margin-top: 50px; -} -@media (max-width: 1399px) { - .hero-2 .hero-content .hero-button { - flex-wrap: wrap; - gap: 25px; - } -} -.hero-2 .hero-content .hero-button .theme-btn { - background-color: var(--white); -} -.hero-2 .hero-content .hero-button .theme-btn:hover { - background-color: var(--theme); - border: 1px solid var(--theme); -} -.hero-2 .hero-content .hero-button .theme-btn.style-2 { - border: 1px solid var(--border-2); - background-color: transparent; - color: var(--white); -} -.hero-2 .hero-content .hero-button .theme-btn.style-2 i { - background-color: var(--white); - color: var(--header); -} -.hero-2 .hero-content .hero-button .theme-btn.style-2:hover { - background-color: var(--theme); - color: var(--white); - border: 1px solid var(--theme); -} - -.hero-3 { - position: relative; - z-index: 9; -} -@media (max-width: 1399px) { - .hero-3 { - margin: 0 30px; - padding-top: 100px; - padding-bottom: 100px; - } -} -@media (max-width: 991px) { - .hero-3 { - padding-top: 80px; - padding-bottom: 0; - } -} -@media (max-width: 575px) { - .hero-3 { - margin: 0 15px; - } -} -.hero-3 .pagi-item { - right: 60px; - bottom: 120px; - position: absolute; - z-index: 999; -} -@media (max-width: 1399px) { - .hero-3 .pagi-item { - display: none; - } -} -.hero-3 .pagi-item .dot-number { - display: flex; - align-items: center; - gap: 20px; -} -.hero-3 .pagi-item .dot-number .swiper-pagination-bullet { - background: none !important; - width: auto !important; - height: auto !important; - margin: 0 !important; - transition: all 0.4s ease-in-out; -} -.hero-3 .pagi-item .dot-number .swiper-pagination-bullet-active .dot-num span { - color: var(--white); - font-size: 32px; - font-weight: 700; - transition: all 0.4s ease-in-out; -} -.hero-3 .pagi-item .dot-number .dot-num { - transition: all 0.4s ease-in-out; -} -.hero-3 .pagi-item .dot-number .dot-num span { - font-size: 18px; - font-weight: 500; - color: rgba(255, 255, 255, 0.5); - transition: all 0.4s ease-in-out; -} -.hero-3 .hero-shape { - position: absolute; - z-index: -1; - left: 0; - top: 0; -} -@media (max-width: 1600px) { - .hero-3 .hero-shape { - max-width: 660px; - } -} -@media (max-width: 1399px) { - .hero-3 .hero-shape { - display: none; - max-width: initial; - } -} -.hero-3 .hero-shape img { - width: 100%; - height: 100%; -} -.hero-3 .container-fluid { - padding: 0 124px; -} -@media (max-width: 1899px) { - .hero-3 .container-fluid { - padding: 0 70px; - } -} -@media (max-width: 1600px) { - .hero-3 .container-fluid { - padding: 0 50px; - } -} -@media (max-width: 1399px) { - .hero-3 .container-fluid { - padding: 0 30px; - } -} -@media (max-width: 575px) { - .hero-3 .container-fluid { - padding: 0 15px; - } -} -.hero-3 .hero-content h6 { - font-size: 18px; - font-weight: 500; - color: var(--theme); - margin-bottom: 20px; -} -.hero-3 .hero-content h1 { - color: var(--white); - text-transform: uppercase; - margin-bottom: 15px; -} -.hero-3 .hero-content p { - max-width: 772px; - color: rgba(255, 255, 255, 0.8); - opacity: 0.8; -} -.hero-3 .hero-content .hero-button { - display: flex; - align-items: center; - gap: 35px; - margin-top: 50px; -} -@media (max-width: 1399px) { - .hero-3 .hero-content .hero-button { - margin-top: 30px; - flex-wrap: wrap; - gap: 25px; - } -} -.hero-3 .hero-content .hero-button .theme-btn { - background-color: var(--white); -} -.hero-3 .hero-content .hero-button .theme-btn:hover { - background-color: var(--theme); - border: 1px solid var(--theme); -} -.hero-3 .hero-content .hero-button .theme-btn.style-2 { - border: 1px solid var(--border-2); - background-color: transparent; - color: var(--white); -} -.hero-3 .hero-content .hero-button .theme-btn.style-2 i { - background-color: var(--white); - color: var(--header); -} -.hero-3 .hero-content .hero-button .theme-btn.style-2:hover { - background-color: var(--theme); - color: var(--white); - border: 1px solid var(--theme); -} -.hero-3 .hero-image { - margin-top: 20px; - position: relative; - z-index: 9; -} -@media (max-width: 1399px) { - .hero-3 .hero-image { - margin-right: 0; - } -} -.hero-3 .hero-image img { - width: 100%; - height: 100%; - opacity: 0; - transform: translateY(50px); - transition: all 0.8s ease-in-out; -} -.hero-3 .swiper-slide-active .hero-image img { - opacity: 1; - transform: translateY(0); -} - .mean-container a.meanmenu-reveal { display: none; } diff --git a/public/assets/img/logo/Logo_HaiLearning.jpg b/public/assets/img/logo/Logo_HaiLearning.jpg deleted file mode 100644 index 70141682e8b0f3ad846c77f964fabe955b4a01ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60990 zcmeFYWn5g#wl6wycMBR^8Vl|uxI>V}B{($RSg5jYDvVK;stN3GNU)B!O@{ zd!Mz}y6<=HJ^S5r?tACMt`D>RHEPtX(N$xN8dbCUZtiXsAXZmaQwC6wi3f!T0PfcD zjnxzstRCy>D645IAu9j?UscoD-2;^v0NmVtpn59ujK(IWj98-pDu4rE0s;VFZR_o+ zrLSxNAd{Ms0;4yQ={No}UCjWI`5>Fv9tE;b@GZJ4TF}a()wKo8u5`u``AB4$_W4p9-aYEXGbR=MowEUMga*4aYj{pe^+}SAKu5-wl3CC zJ4OW$H&1K#008*=Z~om1ApJeIjL1P26_5}WpFUdv5>EajyHf zIYXfw{*(4++dpX@FaQw0M2^jyKWR3Z0MHx;0QVODq_MsQ0HRO;Xd3&=@1gvyFHSx_ zo|63h{{H@a&i1x^zX$Xm=|5!n2j~A9{G~s>-~Ih#>=+g89jtv_eHecas;!5shcA@T z+tb?Co{{(esl@-s4gVt6U*zD?vv;tE+PfpWGDK>bv%4d5y4~%ZeVjeq8J*q#S2O&7 z*z7Md{DyzmYa}2m`UQ|%@d3nRjhUhQM#jGrGU?cfChq zWc}Zs|I-6C0a--#c6Ma^O;*q|V6^px`u)a8oA~{}0B`{!fE=I(7yuT46W|2|0Wm-d zcmyZ`>VOVl0GI%lfGywzxB*bW9|#6s0^vXm@CHZ)vVeS`2q*`tfqI}B=m0(ey}%Ig z8JGqZfmL7&H~>z7E8r*6k71z@ppcZ0Zj+Z z6wLt*iuMdG8Z8YChE|Q%hSrBRiMEP%i1r;F6P*m55uF!Z3SAW)jBbnWh5igZ7Cj5S z47~{*fj)`8hJJ$n3xfcI4ucy*5&IKe`;JeF55iZ#H^=wI zkH;^?|A;@2e@;L^z)tXpz?8s;AfBL{pqpTY;F^$(kdIJ}(2npqVK!kC;RN9^5e^X> zksOgFQ6NzoQ3KH!(IGJoF*~sWu{H5C;%wqp;#uNL5;7725*-pZl2{Tr$pFbNDHbU^ zsS>FjX((wSX*cNx85$W2nF5(D*=w>QvL3Q6a!hg#ay4=Yc?@|K`6&4b1u2Cvg(1aL zifoEbid9N9N_I*$N>|DR%6iHf${$qpRB}}IR8dsbR1;L+?$O?RbkF`?^u3yU)AxQ* zGg2#2yHF=mH&ZXupwob8bZPu)@@RT!4r$40rD$zwqiO4D7wAywKy-R^L3D+5!*rMQ z4D>4Wp7fdY-SmeHlnjp;APgxC?-};)liioS?|eVy{)hYfj1-J=jIN9sj0naPCORfn zCSRrkrctJ!%pA;M=2y%$%*!meEaEHPYt8#2r?)-nY$tFnx;Ph{W9u0CXXX#EiOaQzX>BfCc>k9Op^w!yC`K!eDv>IIm9mspl$n(sl`E7_R76yQR6eR=sA{Mts?Ms>tJ$iR ztDUHesfVZ|H1IX_HL^6;H9?wC%{DDmEp@GAttD+XZFlWv9Y9A-Cs}9tF~?)C$L+e9 zx{r0Ub+`2d^n&&J^vU$C^x^tf2J!|828&=$urIjFkjT*7u-x#Qk)lzO(W)`OaftDd z35|)fNsB3#siA3!>7|*HS*qEVxrlkV`HTgJ#Z!v`OBzd8%T6mID{HHUCm2tRp1_~n zSnF8BtS@cUY;tT)Y!z(NZ4c}o*`?U+*~{1`+3z^WI3zjjI?6aEJMK9>bV_qNbXIWA zaz2HqLh>QsTy$JYUG7|sTx;C0-JZC$x|6!QxFb9mJf3=tdvbe*d#-v(dZl`uKsBHx z-YDJ{-Yq`l$Y5&Nm(w@Qcg;`MFWc|h-_XC|Dalj!r^5lDfT)0-K;^*VAoL*Hpsrx1 z;FrN`A#x!F&rqJ(JnMSS@;vnU)(e#vWiN4Gy1X2D_25;~tBco0uiHZDLtlh$gsFs8 zgcF8C!)GI;BJv~ABb_5hqlBU|qkcu(MGwY2h)IjNiM5R#j1!2mT@#+2xki&U%Bfi&T?{B+!O-}KcC&5V{z*337VH(5?u z)7kRbH92%SQ90jo?Q$pb9_3Z%)91(J|9I>CcCJ9Bpb5qfODn`I^efyhGA!yV7B4O@ zp(%+exh-`sT`kiqLzIh^m&57c2^FXnz7>0w=9QnT6suaQd8-R*C~IPBfm+|%{kkW0 zGxZwvT@B(5)$iEeRRkJ?w&&EB1U^Odir~nd%OGO`abl_^mhzM4zv!6 z4>k{p4mAyn3^$I5j5Lmljy8>njkSE1_}n%wJ^p^;;l!s&#mU|&wW*-_10-@?zu7fTpR(aXfkX)AOqurFL+YF0&8JJ%G~hS&Ai7dLD-4mQ0v zZ?;0W3AWRA?(dZE3hs97DeryWH{0Jj@I3f=7=A=@lyl5^{O;?cufr$CCtIh`)4Q|S zbL#Wb3*n2d%g2{1S8i87zeQhDUzdFs|K9h*=*P}a{~N5Ej9aeTwqF{*mhRl{?(P-= z1posL9UUDF1Np$fz`(@9$40JESVVYuIQS$)q@*N7BqU^%bW~*IG!!Hx_n7X{(9_?) zf1iwsnU$G=m5$*)!|#`%Ae&-gVi96v6EcvKkTd+hPIn&x5^U6B^lCH|W&o801&svd z4gt_3LmE_6wBH+^KN1!;CJq`p1_~;&+KCuIK}AP~1(ZZ+xEQEt*l5TyvJw-E1e=se zKn{nDoJvew7i?%`?d9v2lA2cE@NRs9;vTc0h^QXa=Vf9+UH68NcM>Iwu)KlIE7+$= zRt4MSF8xBb*9dlHJNvNkqO}uFMPyI3ND+`?{8bQSM<~dikd@*jNGXvWW1?Xph4~xP zZ!t(n1q8{+nS|tYDfAODnDwl^3dS*oU)Cu=S>!*Ru-4x#0QhLgmLzB-z(XLhc8sXJ zdDx|`!nDfVHG$tpN4?v%QR`%G&dnQ4W^|+RjXL69yHS3#|FiqMG~&V3fmd6)H}wXn z+#6Jo^Q+^p-M47578PTQ?H`CPNZbnlYWa5{=5k5J`b&E|H^jCZQ7e1~dgt4GXsre1V8 zWrgtmQiq6tC)lq@xzvObm)V=f6lzp7;g{m#&bb7TsQ%I8|Ly!A=2g`753iw6d;Ayo z5Pk8d)zSSk;$WL;F4lY(d3lMWD&Wh0;ANs6mUJ}b=N{eZrri2rUEZ1VD&OC#{%M?M z;}gYE0!saGWeDHq(|HNqz+qRBJAgE8t%hRFQp3$azi?~zCbpN>ua%S^FIBB5JsWHh zg~@;J0X|@9Y&%kL*oKYdtYXaGG<4zlwUct-X9mL_Wq~a!XsCYkRQR?HhW&t_)pwBX zj()@xeeuso|6jrL52u@q^A9s3>~8;a(U9l<(-*(>{Exbn6j`uqbVwG^%nlwF7nq0d z3~9>Z8(x}Tfg~!Xm83OlNO;VQEco#16PZY|Yi%?eZEhb=it$f{D)~EmL86)HrMc(P3vz=Rke z86EP4M|KQP3gP$NQteG2bGCRM)8V@5dIv*n;DVOc{?D^lLbtYqrhgqzTNn&aQQqrii(01QV|5ef*E~@xP+}zrsYW;gQks zvd9-9nEaLqDZ$-?{xT7Ju=NK=9{FaOLgcy zUS(CTro<~bby?t}qu5gvkd&A6csmT3j2k7?CoT7X?h?f?fnf6qPdD4~Vn;{M0w z#Iq}{Nyl*{vdyigAG%Cvg2rG%X|Q#otdTiIQD*dF=Pj|pnR{WgSPxG?yCU+i} z9>`U_0YALk^k_z1NzJfEpHp?J{}Ts$NvQ+9fP@f@jZo)>YK>8A;C{P?t%huU=uU#F zD|B-L54+5CBq2a;RLOmV_1^bf_lAt;*zQ>rdsEpRPtm9*OsV8|VSL$NGg5a}=5?vfto z03o}*AkXv>*SG_Q9JGGMN>k3#a}N?{FN8co5w&XSY2&XVp0rs9Y8)=_y}8jO@@tSwIa z-OHW+p!4G}_Lx)fdg=QU9{^lfvhZMBP+0yO!$eGymSp^zow-LxJ-p2MMf<9Mw%s|{NSzYVi#i)F-! zALRsdN@S{E9=E_}V>1f8&+5NFE@PQgLJySsg)**sfqY}jK^og?vWC^ z5LyBDt6+%ikIYr{HtzHS`shvJRFVOdKEx++OVt1O*zh57V0h;K?fF7|jCRH|1r z!n({?Ajb4y8R-Oa3HB}`G!F7@C`wKVD_1nRQeNUe04G<8RRScMk8-{6N7CelqSDQS-D z`fDjOOn>lO7CldN5@WMWPufW-+Ei7$6451x`{Yg33;pbNc{FSBp{Rs^Ld5tWHI-BA z4oH{bB4iKoXJ(nbj-vcB30i**PyH#HF4a+;lo{N1c?MPF&J|e`A2BgMF_OegZwZiq z4>mG)YDBhIuW7~+$Tqc`-4wlk)R)6t1u3dJ)q1h@tMa&`T4OdkPNxIzwIb2w6*vah zz>-fiDV$;Q+*dM`FCgN%+;X6%kez|&p5gpgc*uYM9sj9~1xlX)1AYgUaz-2>zUYzn z%BG8cHC(REeb&YB7qPn5XZZO=Yes7111lPB>(7?kJe-47Mk2aUu;Tm_r<-=UK3sWi zS~7O&P-{6Lay0U5<6!Z1tyk|)_xmhO!SXTgZ1YLJFJYA_8lY0KGef9z(jDNf z$Mnib_|pf6#%#5>kGX~|`V?JNzv|SORNVnwW^#5<`WPZd&2->~)q6y-6d?{h9S&?v z)f=pDJgB$~Mm;E1DL^h&af z$GYU~@To>-!pqYauPq{{Z^1?LB6BCptrT{7{Vu=6n8m(Ih(>N7Dh?5%A9y&G$B4*) z^HPh(P1}uPICKZ2Wx`QRYfbe6}tZY}dPStlrSf)AqoG%O>xKb{S zd*E z?BVp{T)IH!yIp>5O`Edio92Yy0YTLD39kG<;}tzt)D3&1<_Zj^L%`1DoGxFJ99+T? ziuP!c%!mB`OD!W{St9}s*_Awv-?yE{*GekD*S#j1kPIbhMHVm}Tl9uuBZP9|~NT2u-DTqKTDcsmp&U=4P>cB7o18JVo3 zzS-&zZZKRJ?ltG5Jtl(BvUN9gzCB*IedeQaRu}} zpMnI<@((EbS9uno^mR_GgT#@{vWyiDYtQz)`$$oEn0D@G*H&V6t3(r0g@^MKA4 zCfjBtO!?J2D!ou?2re^BAheJD*Bc0XC`4XDCb`mg4U+1>;MqKHWTnX43W)~#} z>Tm0Gvon7W<7m4u?+To0-`qRD;2d47VG?a?z3I<7Qru@|5_?4wWR%h_6183OO*_2N zDR7)OW>DK%%nY}HXBU*K<>#_N=m8{g6{HxqPZoO+LUDMmZC|HrZe^T8dEGB?Lt zU2-~t(`^EQG$>cF2OE4TX>B}&HtJWFIgs-hBH-+BeUGdgcCnT2;DhyUof8@G z2d}W#$;Nr^h+z&I%9QJNt!XuQoM2^CrvxKn>>#YHBtT(Ou!;!WIK-gtxFxIY`x$x% z;AP$XnkYwY?N+-`7c`YIf<+Wx(U0smm8!IG)mY53-t#Ibok^HMx~|;E7oneiG{NOM z+1T>ht8!jbTJg1YmVN1%+2zjVl_86radVIIHKQ2r3~Sk=;B^~i&5fXXxCWL<)(tTb z8fNd{o5$NCKtHd`g~?FVuJlAt8CK}dgFvnW>PN+kDaF*cYYi_@65sx@ zh+y)^=r{N*f!ZO0WF%}QTTaP|Zd)n+!%{qzCZi3s;6^iW!LZYaK4u7SLp2Rf$w^VUOv?PQnIoV z#G^VKCPZ&J)5#*I2xb1dxusK?bx~6dJ{l&f1ebxSvwUti>jwyJEPm8LB&A58mT*vk zR^6~wn4Kkid+}ozjs#h5pXXM`&4kj|RpYnM+mvE6ej+Qc{vNE)drG#bcecYJs^NuaWA6FDC#6C3$nnR~IZe`H4sU&!zAsMN3S1I_b zX7UZMlD4zkgN2(nO{(zg9FiT@RldrAGUD`%>&P#N>D<6?9Tj8V6-E~B1yyZx=i>}h z2O>tS+OT^+;PCC@@uGYa@ZvA6=0}<7@tGeJa6#-p8RBmU^>u4ku02$`gEBT3qNfKQ z4^}OyA@Bl@d}+?A)kWIhOn4nfT-FU%SyiF$aZIR=eHVR$s}a6nVL?9kx!5Dit`n*w ztTLirSIcgieE`oN`B0S{xYgW!u(0rf6TfPaLR`Nd-d0DGx6Mj*6Vd3`xE!)PH6of~ zMNvND=0UmH{}IFa1pt)%aI&HJ>S8lhCA!oGN@*3-W9;#vcG~Z)m|-;tzSo-F z-iFMeW0pyiRu6csnHHpX(;+H1T@$rq?~|W-Q)+?7@FKW%LDT6Ht2_F;F}x>8kEU89 z?aE%bhN3Aftr_3F_T!8WL$KlQuMf-abpO!Maim&Q{7o&?E))?lXIs5dlHg~D6$V9C z91p%d%E&OPGmjmiV%w&AQphe*bj0oa`&f-w6*#TohP`(D%rfgPnL-mBdOw7e`N+FD zYo=sY!atG3K+#?1jXs^$#8smh15fTt)z@07N(QbMKlOP0ea(nultTjV09_38mg2}} z+LisDJ+lm#Z`Pu2p9`KZI%w(Cj$4S7=D*4uF?RhSjljmqdHQ*c`D^EHe$@3#88-Tb zT8FLm_Kg0>if=S&F{G?cF{C^yh`{64p{$yjXLwSj+X)`uMRy7GKiA;ZhhDvp@iufG zTpnf5jUtdmn5U$>(sP}HR^kXL+#_)lEiE<4w09^lQsRd zwkHxRJlh<;Sb>o;@ zFXg=fUOoE5B_i|x)FC%gg}?V3Dm2te$3i31+jU0e>*;e}ZrY|OUI;JaXSTf{2(zZd zS+hFBU8?A<-<$MqNNIJ>IAy=wC|s8%GvAsHN-fWVA1e0eY1YL{>lU*wWnDqIbK)S} zsYa}dUjzdg=)W|MAj8qr@4Zq`RtfB^{GK$mt88)DV$&^2*@6gex|X75A{!f1*U+^t z(c>}68Yi=RGF#O@C}Zb7=}-G;_+g0BHs6$ zThL#|{C|R2+bq;1@pj50hfupJs6%wbE=q*aNjss-!VtLLNnl;d52PlLNOj|;=)ar6vpYA@RrANO zZFc%e27$k#t47jHi0HGI1~x%6-I>9hF_$utQ@@zMq0UWN$~?{ir!{i7ki@(TvCpc5 zBqoY&Ua~jb0q=IWUW0d2;nLbvMnwi(V`ID~<&ItEKSmWr`=2p)M^Mrh^w?VVv1_{| z3tN@tKuTvwa!B@gRnVL+JA}FiXX>YUvY%NWFGtoBPjH;VSl*xII2S)zFk~Bg6y`iW zuNfi3P089#O~bOVBeEM=mH^$V^RMUYD~lOj0Yxf7v7Orl{Yl_-67-q8|xZY z7svXu_a?$P2W7k3UA!=H7h2!_`sX^N|(E?gF1El)AIsGXLB^t4(xILPPYK zCqMw9lzRDX;90{Q_Iod&mc|*{Ve~wNYlnF74*2+U^MlDDx|R3~V*=q;OYRTvQ_dqD z=<f?qhC=<@j+neS%HexR@q^&(LPy^aN!`6jLH9 z-8?tJdiuC^+q2)`yKm%Nz*aXisL*)$TVr08=8qEPN2dOxZANHjDAfZTpotUuY2>ah zKUSDc{nV6+7U^3OEoWsMPFqX)KsOsDrQ0jjLFp@XVi{8_5O##tru1VXLl&ond;UwT zv9zCJ`pD-c1UydB-=$zetz_Av9eV3WFTVT=~~mLoF^qL;M&pa z)auD~#o)r6H~XZKU%iFUWU367X0&Fi&n_u+Jw3H;*hN!p{BjpvOSFd!$|t6&#mi|- zA$Tluk=Y5hi4+x=u!1?3PMT7S#~*_vrIstJO6oB~R3WvK$Ii?QT7}N@Z5&UR06JfV zi|?EB9CP9fh60vDIHhCk1G1k!p4CNP1!e>?#c&uz2&YUTQVwzERmWZn@RQV8D%F9tG6-LOy8~*QbC%;C-ZxZ#mm{ig;wR`Fw~)VK1M;1l`XY3UR z2WJMsT$RkHMXCKBJP|nxCs(C_Pnnuu%JSH~*qtEB`$c}KWT3(_H?3%%4spnJ{hZjs zP@B;b;nioL<)^0`*@5segkP6ww>fs%Y0+0>wF((~*)y!bPBn#ZC^Tn>oCYW^EX=)x zm#a@uiZwoX%z*rE-Srxkb7R;Za*!~8j3a=0o99P+fcScp4D{`-PSIhlgbFDIDW$(XB#w!@JEvyDE-b7j4-%H}l$ zyq|>qO~H5~sX97qAkFz$*GPB-|H%g$>@$4JAE%n~@ z;kz#WH& zG7M1-n(1xK8=pEp$-iJjP!D;KJz4M;A~cl=F{Hxv?i`j#fmDjYJhU<7IR<43MI8l=&jZ*G}pXr#%sa_HNso@^D$*{gk?PNa*sf>vPoW*-|t_G=!0FWlxFUGHg?vhwZZ zS4m0B4$czcK%TuTx-fl^Zqe7JP0?C99}&YsKRFGg(|tc6PHfMw3b&YynwX)FQZy}k zddl1|k27D*o<2xR_f4WKHfSkR1Uf>Sbt#%#Y0!7?+Qe&;t2woSP&ika45pA>JX)#J zNK+QCA|Ki7?vS0Z;NQ^n)77g_cmkjD6d^7=%n=pYbWzj^$r=#Obz#<&w6Kvkm``u< zZySLQ=n5`8d5Tt~nZ{+2Ou01Dmcmss#Dl0m^(RvO0nZw_&4wB%jXf7u+Qu#}Vb|u2 znwLVuY~xq&WFf6OkhP3p5h83SbYP_}ow`q8U4$txHe)02H$6Kb=y$ag8$>U#FxORH zM&3Fg(N^qWgR5d!)K*B-4}nMSboz;jxYR4E@Qonmpj<*ya-xwMk7BCL<=fqE9&Egn zav6sW2pWY)0qukW>b*i=#aLB6~e;C;v(r*<_|hp zos1frW;L{jiVzYD=IgzN%_gR8pYwX{%E~*o=C24x7Y~t|u|SwhS;}ToH~`+Oo3K&$ zLt|%Khk;nuI?J}JH5!GKv?hRF3l8dtxz~^1t(v?a5>*LnJhvS1Oz~bOs4*;js^3hq zn_bGS_U;IMfqR3Sl1Oy6Lat`fpzW~T_sNvqnpU@az~)@63e53CohlajMOI#|7jEEa zPMv)z%ODS{@ks@r3w<|J<6hkp$Ce9q;wU>i8(SskU z0riXN<%46Ac=Q+$JWN(GMEFjL)rbULWZd%njO^}F>;nP6WWy|VknXl~-8{hwsY}Fx zz!BKxvXM3oGFxKu+{kAKqiNkgT5KMK$~eJK`(%x5x7O^D`c#h=i-h&5BlenBL|G<$ zUrKs)Xerb{}uQPlD867jt>k}b#)``9UdG_;!V`k@ zc{18>x^ySVREO>pd%}w$yxEk?o7(Io*g?kygA#yBj zL;;L4jGk4$V1j@UX8oRMec1Ymlq_b)`$Vqw9?q!%Xakkr>P>G655R=opmiEoB z9ay#QnKFh&hl?}9!sgco2H{naW99wj)0*kQaFzOl=#VQjH`VyrHxZB5uQ@AzipLP? ze)pw|{Ia&6x{y7rQ?Kg=v)%ykNVFx1&O#D@;EzSR;?HiszR9&vI_b0rOfe*@=9t%A>mm<-wi>i5Y>FGAMPfO~x7A!OWHs9s)V<*zTWXzXi z9aH6fCizoGx4xg{`C`AiW_Zp}?cOUiSRm<~KDYzD`K}`wYCW){a_wB2Hv0rv8m6Ls zId^HwyFnDtKw5Ft#Q(OGt!vdcm_G2?51o@(-LkVS2fpHZfWiBTp*yw?OH5Gx9guW3 zoSOZLtbcvw@WWrOBd4#oZ@SP6VyVP;ZUKiAWTR|gal4Lj1ZUAGf z;gc1gmoy9aH@1-AS0|W$uE*;3Bc)ND0HijYz+lQOd!Hca+>j;NW;4z`z#F=(#Qj;e zQ6wi$GZ743Xk`K!a#4@NRfNY%ai5DV(tu_@;Q_ z{rB3%MsJHA=#jx(WM;Lm{fH@|5AM?^#8n0ajJ)_a%ln=EUpuDhL>|+;cFs`ihmRl9 zrN6PR5c*4jz=%@=OTr#NBU5$hrZt~&cF_%5igR(Phr=t9n4b%~O3#Liid0W5z-C40 zrmF{$TScc2^}^1rgE>nDPu}gp^*J6GqEoBK<{)$&7^U>c9a^DlUVfX=;`f6iT8vcD78f^2oIe}&zT$NIvw(C13hv10zb`+%TE@U0YVD#VlD{-Ni6=7a~~)^=n9{63kKJ0Nj$ zFWu&+#Oo=kL3P4+N4V(h!`%8V#W0bw&Jd&h8eO_e?mo9F0qGKZZlkBmc}rju(6+cW zfkQSmi`tmpegpCSvy5wE^O!3xvx}?EW!^bs20gA_r&RypnL09}qs&gnwiko-k0LAX z0Cr(^iK-ttbNPBO4~A!XOWDQkcxZ!4Z0aX=i)YZu9<3RE>HuAicB_;dCK3*`iZ$BV zZ-Q2_HfFt+25QH%TMw}n)jsZDD_`CYr*GV=eh*H{Yf%>Ij}0ra>50DT4j)=4`~7`) zO09Pr-rlci8Zf42E~zm`gL;kW6v%tj_qoy?WDe z?d8ga>-&nuMnyLLItMDT-=CHzuQi^UZx<#9Kn={B^`+C@yZL))zMOdw982y$)IAgK zKP{-aRkYdXm^pmYeWBapLM4l(3rd~eZ8%>TUv0Ai?U1sVP>i_Oe?{It%Q`Y|+Aba8 zfW4Q!uWIIL&EwQe@28ycW?YwI#K$i3V#J@!kSx(Cqr^q|yR?zw?X={C;8cvQ`AqT? zfhWCDZu%QCyP3}s3Xtx=%X1t4nXq4}cl9o0zgkgcrKKHT?i zvL|U?nA5K(U!|FGSk{4FP@TMxxwEZ0P{Brot}HvcmHf3TM5q3#vo^x7S-5gJ)hY7! zGV~h@BdkV%nyaC@V`6PZEH;+s9{dY=YnV?(St3Ufj2j$%Q0!URWG!Ghul;4{}O0xpDz`OIv@8 z+pQszBXdS6NJb#fF$?sBKWwGf_-=MA;D~$5R7mUEnEOyY6jPlt5sYjfi6b&P9L2pY zx?g+;@H7V1ux)?V5a^wEAb$5%)r4MJ0#m5|>=%#1&}s;jwdyL6Bm1L_*1t#PPT;sf zzJmFKQ-uJkks6#lAme0J-qrcY5djq`&w1yw05^$!^0C5^ivRf*(b@RKBtfzrMtX{? z_`FE;`-3lzw>IybN-^<6I5-~{cG(%b$H`26kKkt-iiGX8XJr(S$rJlNPTz3IZFgQ2lXjiXX^yyD_VFcsX* zJC~4EwA#W~p5!xV)zp$t`>{=@8DX7Hkm;zalScKIx*Xwp@jE~W(=RprJn7g-E~9hz z)VfulXJMyR7ka>@cQCR6E`F!_r8ebFO_QwyLd|$E!9eGifs$OzS3L;wZ?W~f5+xhc zb?VX%?Y~H4Fio?fI(F;seUAY7>M|g#%4)O7&pOB7CyQ*Y7+Ek*&f|lU+S5JGl1|FU zx}e7=;aixbzKzz*rB-m`D%=3e-7jicXJ4tM%UR4ZQZe}FXJ>?}h9|z&)S#sHZAOFF^U|!joE*IvrJN~F?LsQn2UV9=X zHP}IfZkuJxcxjx2s6J?%qD8DM!7G6RWvBpu?q(6~~;DgWLq@(h(}*hbMqx#{akBu)>$R!^Ny`@ZREusj^0i{s)vctehS$;M(yK zNc%E~{U9sfBojc%S zOM#>GY;Cyn5zuO8E6H%yYTD^sBNeM*rvsy<$dX)$v$*!gyBhAXx@3F(&&S6M!@2D; zVvYuUPjPCvbaGyD3r1!e*JYC!A2)eUOYY}P_VN;ji+1Ghg^(N@(66sSYc(wy)vX|V7adFST7r%K>~yXAz_O3qJRia}$sP%y zdVPMLe3EsCV|;7HThEph<3{73nYz4b=&B=$o*Q`nq~DxfjltIq~?1gsq~$}fGK9Y)qtD8 z*7kd2pwPV%EAHH(^DXIpk_e96`)eh6W)?5dydRkJVHtgzE&W<_2VnQe@QI<-MW>kc zvY(f*=^wgUsVNr@rDn9HwIE}}mnJPt(($~-mFzwD7r8EL`G*GcvE@4#5;YPz}R#6u5Yy~=Udk7Q^(25ZoHZ~-1FiMNmlX%UID%>W3K`@+#wSN0&#;WsJwYE48YxZx}S){r`mWq z%kuUn^a;TGEQ{&u#YSw=lMuw9SoO^O2$zrmmk^Dtrj=H&u8hyktv9kVhbX&sDu~+qhMd z!bW$uqepdEHz^Tvo$?NGEm{OfH?969WCs2-_p4DXef~TI)mSdwVKN~c{dguY$Q(#x z8Lqi3_imVV6YO+FsL}smI`c1u@QM_+*E#hsP@;-Y!MYT>LYCH#J#H`&*)g;Z9<8P! zqWH0p6zX>`Ndr1WXht+AZS3<~EzZ8Y^68jN60J1LqMPs=YCGj1v^!cL5JcxH&JGi! zm=w}-VcKuptsD^=37K%yir7&6iM!YB!dKvKUJo6KVkji_qYDT~i5$))BqPamHNWku z-Zl#z#-ckp$su{a-)Xmd4z(^3>R(Aa9L{|f$9H`PoFv+MNiUj^($1$%8A_N{wP$+| zc?rq5G1kVP^_rDL(a_;YK{K^pU3;-;53?GN%|byH)?Fj*BK|9xmw1%c)6#m~aPvbo zn$$hTfFk-8A zdDg(orT?09-Z*J8a`QDsm3Pi8%R+ROf1AM&o6>yi2Vtdlw=yF%x9ikQ<>~yd_Q*ZS zDBK|`ODr=B=Ggjfr{x%g(af2gPT-!amJZ#VOHSqqo#hu0Nfok$ksf*U^z0{K_|4y2 znWA0a_=L4~Lu-lOs4g9f!wGcw zMk6ZKox^1NWQB5WkHoAstw}BI*d%E*<(`pQPmpLbzj9_uV!5h{@eQ-vU~Hg7rbOG3 z(ts{>$U$RDNO?VtUNUDt#zT_3DB~C9UTCHVuFF+Ws^4~yzN3MB507LF6J-JJIqbbQ zUSgdCt>AP7fe}yQ=#rB8q<@yWN65P0=B8o0rZg`NuT*?bw?vTkW^#I%00#~CJPrDw zlAS>m$=EhCtR%oq;uQ0>*Q|ixaM{pACQa0%tOSt<)mgR{G%Tz8^4_NH!$vYjvJTyB zC02gEdND$#B}*yugFY44=7?eJ-D}U>v;YZxZ<}pjr;PN7%eGL-5QeXXQ|#*?7RDjX zCYD(d#U*Wc>4HL#hfuwl^5TPAkSonLtFd6yEvh!UTEG5qww=@X1TE4uM+_`3M;O|p zI(*)l*M7xA?JqMGbIqy$m>@=KgCF2r6l6ME7iS2vi;l?#d+%pnY_rah`nIH~Wxr3r zEhXf~35E?fhZpH2SG4CpUVR2y>*lyk2su!6-N9Ei*KW{K&HBDoQPG|kB*@m|&Oo2D z(0&|x(g*Oxa`p6!foW{CH(>R2PFxtjP1^KoGn+0e-eCULZY(1^B8cIE!%45kS-PIL z-4Wa%1*Rc$t~(*!eIAqppYuF-|FzzU6PJ-0FMh=A~Jf3lCkB2ZuR?FQa#(dxD2^;DX`ovyYKRMV{Zobt&peEoc} zGe!5}ZT8{qUb@vo-kG%*r5@a-$`OR^5*A76#fWdoUd)g#t5d%2Di0fiM9;n`)G(h3 zxGs~31@bB%DLc%rB5SL)uA+Tdk9IN3OrBue49ANK&wU|f1gb7CB3jJT&%f?GIr0}*ph1@aFORLdRA%%;6)u*SZ;<4UTSa--<0o zDzt&kdkWce*a*Uwl4Ty%zQ(Xo%)Bf+s!{Y(Ns9bryI3%3>R>cRf?n66YgJ2>rCw`# zKuB+N;>O&J>61m1b>O4<<`R%e{Z*B0Dw9e?Pwlp?)|k!#q>yAF*@U2a#KC9(bd zt-~&vM$3rY;q~^n-*dC2;Jb{-oxyxbPn*_qJuPp{;BD;FZf$LpJMWC+%@0vgJHqoK zBkW%cZhhM3p9l#|CSI?v?{Res`@$yEHY=qV7p-F`h$Q8~0j+M1smL*i&K67Yl9_4g0ZC^lo`?=CEmZ&;PDIxc8`PR1p)oh^ z$qVyAGfdChw5?fSg{CGPs*l$5Xw6k;9?Av2f*w!D%*^qOgY?+w9ZtJYK(% zo(ZgO@Ee4Ej__ZPS$&!2$IF{vfL{#HTn)@`TIpKYj}uxbd9_QPU5j`ePjBEALL0UxZK@f>2M4@)j!4DO>eQp{0 z)?Z+C-&$s9x~sC6(M8`~=-b+?vQ2^Feso62M3%KeMD0qGoUX9$nb?y>5lRSJ(T~7K zfnGag$vsyv^4v^Tm>%5A7OCzOMX8b36w%Wl*u~9!@U%*pk!%MdL>bKoXR*avvR0jK z>Z3luUj)&70LSKk`B+yH#BmMDTrG(6OkBmN=Bp?wyF{_#3nQCwzH-oOpLZ%XvhWa1 z1u@H2;CVeG>~19nehI?m>Br}19oDivjFO2y#}`0E!-?zIA-6&`6%5R4lxDO(c0kH& zMMu@ZNW{v#{*iKD(B%DIt7?3*Z#EIz7@Y5+Z*5vXq8IsdV;I%Ot)N`z@v|**`U2v< zHA&NTsY+)9VIj{cdHp!@F|5RageSTmNxnD=m}D z@1FsneC^%43k(;7Z-C$1ZhW@N={YdCKF&*#Wc>-axfgY9QHt-i^w%4{krlV%9~bHa zvKi zT$`O^V#phxfar?&2_Vf7PZ(g<<*6QjGR`hvoz1V>iy|jvJJ*-ea1vN)j-JN!`T{l5 zD5bJ2=lP*+H0T9eP3(H+vQQ%5^g4qHUx$RUnlxdx_!7*cVQ{P=53XYaG# zHvhUGWaX~OYAgYPqT--PBoeFcuLA@92^5JT=)kDcrK+!YtUkDTYPF%}UoYfJ22SEE z2Z{29_LmRgdyisVdFQ1Tz*0=SSVJQ>mTvlMAa!(iinE1VHTc8l%^&YPew-@qhsdg}^w!iRxTKzPmd0P@ ztT5cwRH%QXX{?(}$%~6mT2$B%-b5MZ*zsFrgFPh*v0e1!5Ll+4_xUry+jbe3|P6I6dd2fZKbI0pW1-A_?4ZqP1i7&lDWD(04E zISH__&}q6`sF_QvZx8k!EntT;sR7ZX9TJYC3cR$I2L`6`451Wip_?T{lCEDd&wdat z;dQLG^Qx#Ez$t>ykOpO)h%1vvs zZt5Yk$*ZL{DGh1Il$FWEV!1@yok99uP?;{=!Goh{iMgBsK%wD>b;XevqM@Dz-?mi_ z*OYtKFej&E)W;l)7pqnbUa=wydR`HIqzp@bDtduf`)X{2%jxADCV1k1q@# zdINY)s!WF6(W8jM0E;*7WGnchxSW!Vwx6aU1aOv0&$|rEWYE4pzDR<52)+#H zya2R~{Avru(WrVHN%dur(bHCA|AynS6~Ce%OIlrA!?|1P$vM`1^&dAvX*kGmHKYT- zGXjg3SO#85pe!352NuIbE^q1$Xx`d(Romp6t*335UGC)61p+M&^;g(^VrSo>jN~GY zCT}~A)^+GoUo&{hNoXo)P8D#iGRk%5TLz`8>m;Etnziza2?<}*wRqfA4%W*s9JhH9vvD0D3rg?q$5ux)VPZ*fy};1|)5H5s>W>{Xhl-^U z;pqY9eLWidJMw{!uOfSz1wlsR9t3fqMdA{KhSNJuzqVMphZ@lZFQN96!WXE+skAMv zq*@k^5m2>-Z^L#cwHFzGLRGu#`!`*SSkp;utmB0($Ir|;GCQSxiOxTLk zowAEQO^Yh}iivq71W`H{1*xCP3J!+oSHha6qiXUALzD9ccy)=SlwyfV8DNnvS&?dL z>PZ3Y{Mj<|TvF0`N9rC$ISx~GWE0G;qKu+EaE4(#;iv5yU~Om@yR0>MDp@~WZQ_gW zZIkt3-pBb)_wQAlkRuvO?#KHV6kcn6b}a8#;|C#|)r76uyYO5$4(A1f?M2;b^u6O$ zfh`X1+p7ynBI3S&{aMn{5CTs zs6DYl-4B+zwYwH)AR$=i?nph8{YcQbbktBwmBX~&>D?NeFyhE6^_sSKBESwqXXK_A zNI0$2TF<~9)HNnmLl4n(K=!K;wSOqynLSk2va=)eNux?hoDA}%p!M#-&kJB;bO9Q5 z1ai&WxGjuOV|hFa{YBt88uhr$-y~?~0E<$gDs7frNhLu9uhoj6cF61=AR&qHVUEV- z1MEM5VRvPZgTJlH`S9L?t>~RF6;o4_aP?eO*gZg?9B0&Hx}U|(j@^+#6lq``Syg1V z!86fVE3N-JclXj=Q;6@K__~$zdi4u>BYXwAPn}GG)S-!26bjYJr8c#xxR>b$4f%h&@VqLMoE=FnN*6=4O2dro{8E!2`Q0~k{bSz zT*g13Y=MnAQWAJien2z19ivL0Yo5WxdcwQmXb6@YjDCVtTV)jsaEyl6$&KWgubQ;H zky7!gY6V8yEaX>4)7Tgaa}y8*Jd+2jIb$>UZR8Fr0HQ?y?Wx{4^Y zQ%*SjKss?4fSaWoU53uvIS=ge=tYkVf;F8_3<~En>D+V8GplL8+jftM>@vS9^{)_r zpCpy-2Vuf_cf;lwnY0TUqFI&-K2mcAGN}pWG!BE+>^*eU)0`g(BP2om^QJL*VXo5z z`GCHfUrLTS{+8r7aNaT54`IcmKjC_-t1hkh9LfOo zb64eS&^o`<1BcZVuh<1DokBz2^SqHC%e(i|-gWpAT^P-#ejyyPUMD$2dD2eG)}>j> z8qd2lJp)_p3L6&5#|B9U-Hyy%NyRPp=zO0)23DR;LdC1eS1YnG7%qOE?q>;5PAX89 z4rVJ|S;;^x2~tucYJoPBfk=hVxl@dGZRO1Ph9qTfgG=d(m(evqkGteo>Kndr*ITMD zD?S;_7j2i6hP(Vx{y_N?I>&K328E>VeVPCI2``P#o9x-UlG=geZT;$^vlXh911i1GTK(-$>+>Qf#Ghv>3BjYdRlx|3qa`;_ewlk_(>?X6GzgUN3 zB-7+hFj=IXOc045j_zutG#IvG81W70>p?i-nvZet`C`MXoA%hRtUW2Gc-mF@_O7|@ z3~Cfy-vDMHAn-1h5>dAeP%w#9NbqTB=TYE|_ui*ixg2T&`Rt=guci}~FmN7Lm)1tx zXQ4KDV@0Z2)lcpy0Lz4Sd%=WAqz#2;vP!H=W#Pxd+pDeb$A8>&8Bi&izW3#O{ygP+ ztUKmgOJc*CdC>;du+a_585*nZJ}Ky?fEctEEGBPfKi^u#b+KSWGMUG(dB<{nSif%A zw0Wh?XDfbJxlKyhUj>IVZeq2n5^)Il752rPo8*GK<+wCkBr}Ibp6JL7e{FHH($SJK z5d}(vZ7q{)S-i7p|D1mc)_k<7P0Y+grCqF1{+~IrtR$|q4Sub#W7GR0e}tNsKibA-&YSRThZ;rsVxCktnW#!tJuLzMGtiI)U!1vf)h5FEu^f; z!oiCX6ZBKN!&t%uIBDDC&M1e0{n!mG#r7YQ|KACRGyU-0N1P}}itJ72ErklDDC?9~ zY8r^z{v@KX8%rpCxbs#mntt9jwzA}*HQ*jS4e^oX%mliT;sbotShZVv2DuaFzq3}> zjV@M!I#&~`I^9bR3LQ%(bdsqp7+&h1jC}?w0D(2-`$bD3+9_@D<<1j~&iK=Wa`D^!hw>RL(o_z2mX`4?1f4tDP#hSz{}$jd zR8nU@eMUTLJhZ}IM}Mtrf~)Q?6~KIZn5ttxFSk6?mJu4L{Zt`tF?F`mL8jm2AiZ5I z{*1|9>KN}Iz45`~#W424&HLXT+^h_Avwl^n=j6=$SV6^27|DsMyw!AI!(i zwZiY2K1~fVC`%VmTI&(%y240*|9(=~$JjQd*AmRjZ9L2MsU`n~mu!>t`ZyX00)yeR zQv7mw1IW?!aATUUfWH5ny#H39|07;3tyFPAoGurayOCjP1ZP&i!^G13<1?ZKUfJ;8 z7bMmd{SbBd5Cr+-3oUZx{+l(nPXH5a)(`*y*VQVPn-i3M+m@};O>J>M(QLy17!HXb zLnP*LD+i{UM?`?ZI?U$aX=G{gI$L}6dsm5*rO-&3SP+Yo{;h&KqAS#hiAdCE%?{}P zoK6?TbiK<;bKK&tX@4qvkef6(TVCj4Ur);t(ppoHDn*P2IvdOHS>n`gXc{wU!1V0g z#(zT_&y*JfZIzZ;>r?&~M@fzw*kui)NDhUX1;W{@W`sd=QkC~%Q=y}Up5S5|0%Kw< zPQ;1(-j%P!&*v5QIJ~j~)GZ8mVMDDzXk`PZtdnsl4HGjr(auTR!*GM^!`+tHI6r(7 ziTDq=TXm~t_*z?nG~iP|e zz};F5GnH`+%#|B*SPy*(&6^X>L!Z#dW?kADT0yZj95vO(x_hH>CI$)Qylm(D$u#uG z^@+HKfoniFJe$b`8q(6zQW^$h>P6dL0jK14m&(Tv-Jc6^8ZwEH zMSPPmv*e~EpqvgfovzJ_bji%z%aE_!M{_W=1$pKYGeSWm4E#jIDSo&{cvLdA-_e_C zCvXjoLAIl*np%S@P$85%Fciv&<=Oz!9$%z)KAXB>>fQb#ahTsG>ZH!eqHn~U z_Jy@zoZzrg(F1-oz9V?Do-m=Im2?Pitj02?H?2Y|yI)RztR}YHHo?D8dzRB5l`>vD zXXG+hA6(7e&ep(Uz)#dkB$21U!|%S|@dYZp)5}}qS~*>zed73G&-So*BgkFPFpmNv z^6YVxCXjVWlwu4F&9pHrkaD6;h>z>kvFPjcyImX+)=?;%rKVq33$$ozXnlikEE$Sx z-0t5MVlZCIEB#!L7C1qd%)l1*YtRMwF2hEda3P|->If5q02UDOfQFPZ64d~!CW7Q- zZdeEi;6NU%#C?nNkcJKGAj1Qa)@mcm7^F11)%k?xJG*?1u~0?j!plA#>}abn_>P9n z6wPVd$fQ+m93Y3x@-#(!=v63|KdwUqk7ZViZC9a*D`}pI1v5hlvmx!WYbl6q+k%v80NSXq%Neh3s)q!fwIBPChHtCZWg>77qsF>mODmW@;p8{fI))8(Md`?;JlQlSkTs|49Xg6o__kxLVKO187sOV{ z5-RFc8`hQjsX=pz-nffwZk{Q7OU!4tz9}X&zVX zpo-O1m+#NlTv?T~%*94e+n1n?tdGq;t>8HjNPH?%?kbYjRyC~0@5f@7?%C}b@U^V| z2WLk<4v!PQN%)Z`MP`)K`6wnK(%t-Us7UCazna1gsu|CfW8yeQ)Dun5G{3o#{TZt@ zZzS4FiGg%|Uxt6Htj*#18t4VB{PE#Qrl2=bpyg2OQ$wv@zGIsn z9lHM-RryN^|G)FP_a73_4X%ije{-7-Z41}^CNTvz{^ka~`(G<1Ui%}sxN-V7p2C!o zyKdG$M(WWz^5J2A73fB&(DWKnmpa2r7E~UsSKOrxD>v{iNMe?I2~l$JvD7>=R6N+J zXi1MY+9kR8He=x@&e%N5e$s=7bBQM0DQu>h5n=ug`mtzNEL!EJeh9m6S|Ne&76+y)YVYy7#|t%3YU?86BVB_5XA8+Lxbq$An>=zw7_w=Fgr}PY2kT zpa0VUhkyFHa`$HatN+tE>^%P-x&Iq8=lgr+SexQ%GOU-p;eLYF*@qI5altqO#4qJw zg=@fE9hS8k2|z5DW^{v~bycMe?e93{Tro2;SU1Jgc0);=l})Vzen0xfU&{h-|0CVh zx|Pd9-Ym8mq^IzqC**SwG}srw4BE-zr&v*7}(0z%Wh}IJJO&4;5d*<%7VgIRgV^6j;Y{ z*J!tj73{ODX03q@C*slbu_<`_h`W+Y$+Vr-^g%vu{)DLz+nCpgiUdw(M*`e-CGDF! z#MU4P1D4VscY)kWNwKO;2=%*hOF#;7W{cIo7_GuU*iACdq%fe-31yu3-l9V$EB)76 zmlyHSk_RTv(a<9>*tNHGX@{vZsv&;yW3cyzY|zBRKA925m7Q8*u*}Qoj}vW}AIDmm z#on4(9&Mgah|7fdz=2m1b&*9=*KAMa3;Q^(1fs6_C1R*ZSiOg z!lMHhn?_<6e}nw|dY5meS0giK6IMa-1%ZBg><%7#5w67@KD^UNfxFvtf6xCbGqPoG2E)sV!|0t!0I= zh2!P(o6rvueOXKd1>=&(jrD>Yf3$oiGF80@Ct6zJNSlCk3yFXsRi668?+E@I>Px=L0 zYLFhvB?*f*-3=gO-K%JKP*Odve)5eWkAiLg8}dC{kjkm=iH23Si?zPHi6>-Rx_ghS ziB~PGR9@Vql*q6m&AvlBdHzMG>KXS&VO|fvfib<6l;`#AJv$dz+FbE#(bI90g;S)s zJyZ7Kaqmh zwf-&1pfukOzogdQ)yd|3_9ESr=Z@vyH`{F$CL^#>#O>3V%XnvAv zC%wAZNveUJ)6&kDnIH z{TfEd)d`z%KTtLN=V|}vc{aIytN!m^{W(*fSvwQp#(n<)C(ZF2V@$7wIu_Z+ENa5> zgQ6g{)=-Kre%_2T)>PCHq+ypkT}@%UtdhOeD%mZkoPMPEM~(d&ZVqaEOdg^lg_MYc zclxzb=C3&UZ>}P)C62@(J34T&TI3kKpsJ=#q z&)(m7`pH8yRy5&!XSa+$EM_vE*Lj2iS-}^tzBKsKY=lRiV&!8QMR>R4WL@nJ=W8U0 z7_5fRk1WU^uhm_41gohzN-KY}1oZ|zc^_SEY8V(+ZS)G7r)gk98?P1yG_^EBjB*PX zw4KJ*x+Kd__LQjFCTj{@Say@VTUKVjjbI!JbCbj z4bNa#e{xm52phNZS2M2yxYn=KI3js9+4yYrTs&9UxK*D6({XfsYf=tACGNK=FEO~t zCzO1+`CFd1)t&O%15d~;@fq_kBI&rpdR__;s|jY`a(&kPu-hB>B*cHCT@|9;*f?V$ zmj3v{J+y>nyT)?7s9C_UWUwVNPk~pLO*OW+oYzE>M5^A<~ItIJ7P+gKMm94 zgUJPW@0aCfGWB5eCkLujw$f}6WqgLC)PB46Z7y;GAa zvG4yAV#&J-)#{O1uX9;qpUnba>mbg{K;Y@3)#X5B^Q#357@^g);3u2kkO-lf03O4e z{&wIL#nqfx(X+`Q;!>tx{6sX^Xj_>&id=V=TyL<*BXcLqb&t_~yJJNMn8WLOyUU{H zDWP7K>(r*GiFN+l+r^>Ok92)-e*~Ut$%F+IiQoANkg8ZBYy1gtll*!y7;l%2zQBFw z$(kiAIiCK(H&ZlrI4fgI^-J^clgI6QmtXe1Eqbd*bg%DxZv3Z&re}S4=p^s!!g_e1 z$=UVSbFqq*nGJTI4{r>Am;BQ(**0#^ANyWUbPjip4}KT@?&rBbr|&-M?3nV#AA|FID8y)k7tTKXpF#Tn{UDA0HWMkf|0793 z-K_eX^v@%9=CruGu)xl1Jj?ugM?rB*lZ3U)`X^?vU(%NRE05p%I-$$WqgKPOkOL#BG5gU5bsFJo)53Z438gWzU5JR>kL z^_#0ji=ILGrceLWnC?JTHRpKe-Jp(t&!Hy2c_YvVqg z)gVRC{2j+YZs8pm(*bK}2t{>=P?1o7RhjK4y8oIuDms5ShC@ z4-Y6amsa+LH&ghh>!0=Ptsg}&Mm9H^CSfB%EB*M`@^0?twVkKxXV*^g!=uX71d9WR z6PYH@y#3t2dBM||r-vEuKlCB)lWeG1J;$E)F=6NUe7~=aC;`o)cQ5%q$Lk=S@i7V z0?W)Zqzxv@s82JxoD0(L^psqaxaGU30u4Wc26LI%oG}wIM{@Ksib*E$P6GpXRlfI9 z76sv%WOf+lCo(9*Aa_$yyxE!@65B++=m!)y(oP_k>;~EDIgpzA9Ej9pkCbz|_x<(# z_PrD=x}rQZ5yvz2y~4+eY%(KW%~QH6$jHA8bRgL@u1~tI!s)fzJWG$_natV~`Q8oJbQoA^?XxuYx&uIm0{&Zr7n&y|>ME4-W5rm|{+E&$+?5`~K?v(^CbD1FLlKQ2nFVuFPw<)E5;w&j{1_ z2o__G-ZSs##9sytQrwSMU6t5wWJ&pF`xv0KtL8%MQzY%?iXykGkn~^;)kdGu#?L$FKKmDJ)!~mf z?InGLrmw?-RvtDV75@Z;YK64kT1!>#cp&CbjFHjI!SB7EkcJtYu_UpriW+WuIfZ(h(KK^^hti8kHS(*WtDZZ!SXE?6`Vm6ob|E}+^ij-G?oAsXo!j-k{ zM)p`c;J*v*CxpELSg#QQ0PFw$dzpp90dh8K?zt!V5Gj&uyxCWjFqHXc; z;eK3koBwOzn49?*%MtvA(%6JVjq7idV}}ZQ?*$rIdxbT@uVN}y^DY^(i3@J)B^xVA zB^c&Ccz>2RKL#A}9+Hq|Jm?<9NjxBCG!gUao5OpuN_jXi7N;w7>Q9>^mHv3+rt6Dd zcB?8ZZ)WZN@SlLL5cy6OavJ*1?)8gW2kVeZpC+Y6-?*2Z4g<&UuU|J&+!{NtxWkxD zwdbsg>hKR;y&@XIOuF&=W+l5iOBqulL955uRg+uLw79q-FX<(aM}L$sPH1zh$32^X zPE^VJajQ>(i&e$ZSogTfs0G9U7Z-e^e^!&SDK(#MwJn(Dt>2mauU$qB}*%qn!$7}3=6Mg+11h3 zFtZ%ZCDdRqJHPQP3&e$96OvTRfr?ep7%HHu71`S0St&Vg8;CrW1_f!W7e zy(}C*8UzHcm0mg!ylA9QABnrGS}AgGw6U`Ri^Os>tGA~#Hl z8`O^tY(C)eg2V+d1iM05e?p&ni^zV6287po!Kod|FO>51$<q`=I?~fHmx7aViBf9nvv?BgtUJAad zA6xURirbJP1EGa(Cj@P1$X2<>^72XA*6rNxVk8)=e5P?weS zPW1~jBWl&>$F@cx&f>Y!2V+O!hJqsBbqDU+wVnkGn>V<9EXt0%J!sPJ68$=+#=O8L zBF^b94_iehE5@KGiA9hHnD)|3(W#kok8r2zZ5?ITND5N_CJXJ6C{R-F zKqvqr{h`lexFo2$UF!SpUcA)2ETMOF(DGvR{bM1^u%41`v5CekgZR#IwNo)gMadS0 zt*IM?`VouE`D4zc^L;Matcprtv;8clSovta z?NF5)n)MT~j-@7QG?G0f&h_aTellnsoqj?(tv9D| zfG&ct%;K7=70JhRV-2EbxLl*Wop=gocSqFQto)w{CihiuUVqsB3D|M?2^be20;(Ly~re^)t#?XRQs1IIuconC~9Nak4P zeho|W#Vd?D-&Vce`KzQsM`;9Wu=|OR`L%3O%EeTXMN89@UM#AVK84kaH^>-8bW2$$ z?OvHxRuI_AKQF$6azR#r;MS{X{ZwZONpVi7C=#PItj-|Kw?L&^q2o5~t)fH@i(=|v za%p-OZ4%m0g+9~B$|5eM?a=D|u`$1q>J^F24wTS+6jwMtN^p(kL|E%6a^y~RsLzvT`K|kX=#lAn()fp` zO@oKcy+`4jgL|ew%6=>ZDAT$Abqx`v%5*r%w z1C8hyQrZ*l`La%|zQksg5b0QMBN0tOAds}$7>V!GQNP0(ROC&vnb!90B!{;M8EHWR z_Gl2I%m8|qNSfclRkCqO;XPA}i&;lyUC+gz%6!+PnB=$0c0%QGu^fIJ18a_CwqGP9 zZ7n7Ba*Q1JG+ed*u~mRgPRe}j3C`MK5R6vG4r|@Fy5bLyUYBm%4b(c}rLe8@=0C5^ z&i<-F)5UXmqP@S^YAat>1dGHM3Vf5|#Lb(_Ft<<;u7BbbqoMEC02W;S3HWkvyDFyS zp&PAL>I#I9r?Eug2XDDVt*h2%xlgC8$LEv+nb1c%Ah>~+pgP~6Q@tPF5YWKX)ND*c zIpSH_JgRSip7AGO*@%!N6Ug~>*xzT9Y*Z$zjY4evQx@7tm_}Czd)6C(P3)Q^9dhj5 zqRDEpAAhGHYqo)G#?x4>qGHOtK6sohlgei!Ett0_$S~W{>Azm6)hY|DEoe&Ik?3Fg z5nU;Kgp1;jW+&f}9i!zg4EdfbSmM3jWg4?FamdDQ!jA0KR*toyT`DCqyUCrF8D z8hFQaqkA)7h*Ao^cAva3%bjvq9sSnfCh(=|$+PCvU&qVzx3~&=u$(J$*2_5T@lmBw zkhtfPn?2MGVP1`p3yJ4zTM4VHJ4~~>6*#E=M2c$xseZ@5 zp)78&AG^)zz$Ue_g!PhJUrk|awN~mxZdtaDTmX1EaDE@~f^oEp#J=Nnox<-%hUf$r zKkgo7c`BzX0C%aVXL@ukcl>Li-~0DMe_(cA9{l#>1lU@0v&b5J=BaydZfaIM=YpGwLpdJouE z3d$%cHE+H@#wH{qOfu2l>PDVyZ?DBUaN3JA&x#XmfdvHkd(`G|NfXv1jaSaN+a$vp zl1dB*2HY+1gRsfU#52{Oz{zxcok*AQ@0P2J2P@n%n!Ek|*30df!KD$Q;*X^#Oz<>& zX)z)!Z<>SPx0f8`f2{b4PCv{zdPfR6|5@3c23ANH6FIXb4TZ37m@LbcQgCfi^n>4 zG_>nh6Rrj>D+{(Ss*61^G(=YS!V%r%=cN>9^jKOovgLmGg8IN$S8S?6OWWfG9eMMg z0O5g>Tim{vcGip+>L%`z^ld7>#0v+X=7q=-M+tWK#yX2VPGuNOMEchx}D)dcWeyTtEt4V-5zNzp zuf0w9M6EoOILHw7DWLD@beFo5;Rjsbb~uU6CN{GabDMOI!xx4jMM+AHI1AXQ#UC9i zH=m;6bKN}s9;iAGe5w%Bv=u3tTqvr+CxniQHSM!;tf5snCY*+p@MSmLz%p%(Z!?pn zWXu~km)YPtJ#r}rEtuI&>=Rbl{@R%or^%;|jyo*k z)N>^)R8zeBZLWDr(2ix~q}oBKv*grOIsN9f@tWy1({)oUrvisUq)))zYeh?q#%HxG z(ic=uPMAs#6UB3Uo3JY5C!kFmAfmPL^lv!^0PYk1h8xU9hC8EgQ?7O%a&nOGc&D%U z#;-lWq|bL=n_hPT1jOF_>l%=v_gG^>;}*uo#+JQ6Ny(yr0>P$@i~wJn;ghoVEf zA<}6q#30!M!q>R3q4moplhz{_y<)y{KJwory#&!^camo7(NR&Ri)D;J2~6PH za&U?ONXtanWcz8VmRIcM1J}=6(VAZxnbI)I7V;9%mA=KE=3vDmJ*ZMkp+jSq3tg@Y z$y9bz0$F~S76t?PV2_Dy+jTP+cYHy12U}QPrKBMC*R0`HSG`-1TiAYvcmi@a2 zHj)pKFx}Q{$e<(*6`dO%S z{%E8ciYq_Se$st=qMN_^VhWP%DD9t4ujvv~KI%44RFi(}F~SrYnh3HU!*YpO-lsky zu=C@Jh(#f;Sx?6xs)xNn9O zwiC?uQ${RS>o-wY4toq3EXv#0 z?IWyIHPXOcp1dyw)#quneEkc}N=$_N9P~lmK`e=48#7`X+wdjL)dE_D_;*ouET|

v*y#lFGazNu?N9VRPv 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 diff --git a/public/assets/img/logo/Logo_ULDP.png b/public/assets/img/logo/Logo_ULDP.png new file mode 100644 index 0000000000000000000000000000000000000000..1cadbe87a4a1d6e7c1e37974d9914a812d0c7b15 GIT binary patch literal 14428 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 literal 0 HcmV?d00001 diff --git a/public/assets/img/logo/black-logo.svg b/public/assets/img/logo/black-logo.svg deleted file mode 100644 index ec35168..0000000 --- a/public/assets/img/logo/black-logo.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/public/assets/img/logo/white-logo.svg b/public/assets/img/logo/white-logo.svg deleted file mode 100644 index 486d3ee..0000000 --- a/public/assets/img/logo/white-logo.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - -