-
-
- {(comments || []).length} {(comments || []).length === 1 ? "Comment" : "Comments"}
-
-
-
- {displayedParents.map((comment, index) => {
- // Khi showAllComments là false, chỉ sử dụng replies giới hạn từ displayedRepliesMap
- // Khi showAllComments là true, sử dụng tất cả replies từ repliesByParent
- const replies = comment._id
- ? (showAllComments
- ? (repliesByParent.get(comment._id) || [])
- : (displayedRepliesMap.get(comment._id) || []))
- : [];
- const isReplyingHere = !!comment._id && replyTarget?.anchorId === comment._id;
-
- return (
-
-
-
-
- {getInitials(comment.authorName)}
-
-
-
-
-
-
- {formatLongDate(comment.createdAt)}
-
{comment.authorName}
-
-
-
-
- {renderTruncatedContent(
- comment.content,
- makeCommentKey("p", comment._id, index)
- )}
-
-
- {comment._id && (
-
- setReplyTarget({
- parentId: comment._id!,
- replyToName: comment.authorName,
- anchorId: comment._id!,
- })
- }
- >
- Reply
-
- )}
-
- {isReplyingHere && comment._id && (
-
-
- setReplyTarget(null)}
- >
- Cancel
-
-
-
setReplyTarget(null)}
- />
-
- )}
-
- {/* Các reply */}
- {replies.length > 0 && (
-
- {replies.map((reply: BlogComment, replyIndex: number) => (
-
-
-
-
- {getInitials(reply.authorName)}
-
-
-
-
-
- {formatLongDate(reply.createdAt)}
-
{reply.authorName}
-
-
-
- {renderTruncatedContent(
- reply.content,
- makeCommentKey("r", reply._id, replyIndex)
- )}
-
-
- {reply._id && comment._id && (
-
- setReplyTarget({
- // Giữ parentId trên backend là ID của comment gốc (comment._id)
- parentId: comment._id!,
- // Mention tác giả mà chúng ta click reply (tác giả của child comment)
- replyToName: reply.authorName,
- // Hiển thị form bên dưới child comment này
- anchorId: reply._id!,
- })
- }
- >
- Reply
-
- )}
-
-
-
- {/* Form reply bên dưới child comment */}
- {reply._id && replyTarget && replyTarget.anchorId === reply._id && (
-
-
- setReplyTarget(null)}
- >
- Cancel
-
-
-
setReplyTarget(null)}
- />
-
- )}
-
- ))}
-
- )}
-
-
-
- );
- })}
-
- {/* Nút hiển thị thêm comments */}
- {hasMoreComments && !showAllComments && (
-
- setShowAllComments(true)}
- >
- Show More Comments ({(comments || []).length - initialDisplayCount} more)
-
-
-
- )}
-
- {/* Nút thu gọn */}
- {hasMoreComments && showAllComments && (
-
- {
- setShowAllComments(false);
- }}
- >
- Show Less
-
-
-
- )}
-
- {/* Form comment mới (top-level) */}
-
-
-
-
- );
-}
-
diff --git a/app/blog/[slug]/components/NewsDetailsContent.tsx b/app/blog/[slug]/components/NewsDetailsContent.tsx
deleted file mode 100644
index 11bf29d..0000000
--- a/app/blog/[slug]/components/NewsDetailsContent.tsx
+++ /dev/null
@@ -1,144 +0,0 @@
-import Link from "next/link";
-import type { BlogPost } from "@/types/blog";
-import { editorjsToHtml, getCmsImageUrl } from "@/utils";
-import { toSlug } from "@/utils/slugify";
-import CommentsSection from "./CommentsSection";
-
-interface NewsDetailsContentProps {
- post: BlogPost;
-}
-
-export default function NewsDetailsContent({ post }: NewsDetailsContentProps) {
- // Lấy comments từ post (đã được bao gồm trong API response)
- const postComments = post.comments || [];
-
- // Lấy base URL cho EditorJS images và URL tuyệt đối của bài viết
- const baseUrl = process.env.NEXT_PUBLIC_API_URL || "http://localhost:3001";
- const postUrl = `${baseUrl}/blog/${post.slug}`;
- const encodedPostUrl = encodeURIComponent(postUrl);
- const encodedTitle = encodeURIComponent(post.title);
-
- // Chuyển đổi EditorJS content sang HTML
- const renderContent = () => {
- const html = editorjsToHtml(post.content, baseUrl);
- return { __html: html };
- };
-
- // Chuyển đổi EditorJS contentAfterQuote sang HTML
- const renderContentAfterQuote = () => {
- const html = editorjsToHtml(post.contentAfterQuote, baseUrl);
- return { __html: html };
- };
-
- return (
- {
- const resolvedParams = params instanceof Promise ? await params : params;
- const slug = resolvedParams.slug;
-
- try {
- const blogResponse = await fetchBlogDetail(slug);
- const post = blogResponse.data;
-
- const apiUrl = process.env.NEXT_PUBLIC_API_URL || "http://localhost:3001";
- const url = `${apiUrl}/blog/${post.slug}`;
- const imageUrl = post.featuredImage
- ? getCmsImageUrl(post.featuredImage)
- : `${apiUrl}/assets/img/inner-page/news-details/details-1.jpg`;
-
- return {
- title: post.title,
- description: post.excerpt,
- openGraph: {
- title: post.title,
- description: post.excerpt,
- url,
- type: "article",
- images: [
- {
- url: imageUrl,
- alt: post.title,
- },
- ],
- },
- twitter: {
- card: "summary_large_image",
- title: post.title,
- description: post.excerpt,
- images: [imageUrl],
- },
- };
- } catch {
- return {
- title: "Blog Details",
- };
- }
-}
-
-export default async function BlogDetailsPage({ params }: BlogDetailsPageProps) {
- // Handle both Promise and direct object
- const resolvedParams = params instanceof Promise ? await params : params;
- const slug = resolvedParams.slug;
-
- // Fetch blog detail from API
- let blogResponse;
- try {
- blogResponse = await fetchBlogDetail(slug);
- } catch {
- return (
- <>
-
-
-
-
-
-
-
-
Post not found
-
The blog post you are looking for does not exist.
-
- Back to Blog
-
-
-
- {/* Sidebar on the right */}
-
-
-
-
-
- >
- );
- }
-
- const post = blogResponse.data;
-
- return (
- <>
-
-
- >
- );
-}
diff --git a/app/blog/blog-page.css b/app/blog/blog-page.css
new file mode 100644
index 0000000..5cb4b50
--- /dev/null
+++ b/app/blog/blog-page.css
@@ -0,0 +1,176 @@
+/* ============================================
+ Blog Page — Scoped Styles
+ Scope: .blog-page
+ ============================================ */
+
+/* Reset heading override từ main.css */
+.blog-page h1,
+.blog-page h2,
+.blog-page h3,
+.blog-page h4 {
+ font-size: unset;
+ font-weight: unset;
+ line-height: unset;
+ margin: 0;
+ padding: 0;
+}
+
+/* Typography classes thay thế h1/h2/h3 */
+.blog-page .blog-heading {
+ font-size: clamp(1.75rem, 4vw, 3rem);
+ font-weight: 700;
+ line-height: 1.15;
+}
+
+.blog-page .blog-card-title {
+ font-size: 1.1rem;
+ font-weight: 700;
+ line-height: 1.3;
+}
+
+.blog-page .blog-widget-title {
+ font-size: 1.1rem;
+ font-weight: 700;
+ line-height: 1.3;
+}
+
+/* ---------- Color tokens ---------- */
+
+.blog-page .bg-brand-blue { background-color: rgb(38, 60, 111); }
+.blog-page .text-brand-blue { color: rgb(38, 60, 111); }
+.blog-page .border-brand-blue { border-color: rgb(38, 60, 111); }
+
+.blog-page .bg-brand-light { background-color: #f8fbff; }
+.blog-page .text-brand-light { color: #f8fbff; }
+
+.blog-page .bg-brand-hover { background-color: #2d3a8c; }
+.blog-page .hover\:bg-brand-hover:hover { background-color: #2d3a8c; }
+
+.blog-page .text-ui-text { color: #111827; }
+.blog-page .text-ui-muted { color: #6b7280; }
+.blog-page .bg-ui-bg { background-color: #f9fafb; }
+.blog-page .border-ui-border { border-color: #e5e7eb; }
+
+/* hover:text-brand-blue */
+.blog-page .hover\:text-brand-blue:hover { color: #1b254b; }
+.blog-page .hover\:border-brand-blue:hover { border-color: #1b254b; }
+
+/* group-hover */
+.blog-page .group:hover .group-hover\:text-brand-blue { color: #1b254b; }
+.blog-page .group:hover .group-hover\:border-brand-blue { border-color: #1b254b; }
+.blog-page .group:hover .group-hover\:gap-2 { gap: 0.5rem; }
+.blog-page .group:hover .group-hover\:scale-105 { transform: scale(1.05); }
+
+/* shadow tokens */
+.blog-page .shadow-soft {
+ box-shadow: 0 1px 3px rgb(0 0 0 / 0.06), 0 1px 2px rgb(0 0 0 / 0.04);
+}
+.blog-page .shadow-hover {
+ box-shadow: 0 4px 12px rgb(0 0 0 / 0.1);
+}
+.blog-page .hover\:shadow-hover:hover {
+ box-shadow: 0 4px 12px rgb(0 0 0 / 0.1);
+}
+
+/* border-brand-blue/20, border-brand-blue/50 */
+.blog-page .border-brand-blue\/20 { border-color: rgb(27 37 75 / 0.2); }
+.blog-page .border-brand-blue\/50 { border-color: rgb(27 37 75 / 0.5); }
+.blog-page .hover\:border-brand-blue\/50:hover { border-color: rgb(27 37 75 / 0.5); }
+
+/* text-brand-blue/40 */
+.blog-page .text-brand-blue\/40 { color: rgb(27 37 75 / 0.4); }
+
+/* text-brand-light/80, /60 */
+.blog-page .text-brand-light\/80 { color: rgb(248 251 255 / 0.8); }
+.blog-page .text-brand-light\/60 { color: rgb(248 251 255 / 0.6); }
+
+/* bg-white/10, /90 */
+.blog-page .bg-white\/10 { background-color: rgb(255 255 255 / 0.1); }
+.blog-page .bg-white\/90 { background-color: rgb(255 255 255 / 0.9); }
+
+/* border-white/20 */
+.blog-page .border-white\/20 { border-color: rgb(255 255 255 / 0.2); }
+
+/* placeholder */
+.blog-page .placeholder-white\/50::placeholder { color: rgb(255 255 255 / 0.5); }
+
+/* Category filter buttons */
+.blog-page #category-filters button {
+ padding-left: 1.25rem !important;
+ padding-right: 1.25rem !important;
+ padding-top: 0.4rem !important;
+ padding-bottom: 0.4rem !important;
+ border-radius: 9999px !important;
+ font-size: 0.8rem !important;
+}
+
+/* Category filter hover — viền sáng lên */
+.blog-page #category-filters button:not(:first-child):hover {
+ border-color: #1b254b !important;
+ color: #1b254b !important;
+}
+
+/* Newsletter input placeholder */
+.blog-page .newsletter-input::placeholder {
+ color: rgba(255, 255, 255, 0.5);
+}
+
+/* Newsletter widget */
+.blog-page .folder-tab {
+ background-color: #263c6f !important;
+ clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 40px, 100% 100%, 0 100%);
+ border-radius: 12px !important;
+}
+
+.blog-page .folder-tab input {
+ border-radius: 8px !important;
+ padding: 0.35rem 0.75rem !important;
+ font-size: 0.875rem !important;
+ background-color: rgba(255,255,255,0.12) !important;
+ border: 1px solid rgba(255,255,255,0.25) !important;
+ color: white !important;
+}
+
+.blog-page .folder-tab input::placeholder {
+ color: rgba(255,255,255,0.5) !important;
+}
+
+.blog-page .folder-tab button[type="submit"] {
+ border-radius: 8px !important;
+ padding: 0.35rem 0.75rem !important;
+ font-size: 0.875rem !important;
+ font-weight: 700 !important;
+ background-color: white !important;
+ color: #1b254b !important;
+}
+
+/* Pagination buttons */
+.blog-page .border-ui-border[class*="w-10"] {
+ border-radius: 8px !important;
+}
+
+.blog-page .border-ui-border[class*="w-10"]:hover {
+ border-color: rgb(38, 60, 111) !important;
+ color: rgb(38, 60, 111) !important;
+}
+
+.blog-page .bg-brand-blue[class*="w-10"] {
+ border-radius: 8px !important;
+ background-color: rgb(38, 60, 111) !important;
+}
+
+/* Pagination */
+.blog-page .pg-btn {
+ border-radius: 8px !important;
+ transition: border-color 0.2s, color 0.2s;
+}
+
+.blog-page .pg-btn:hover {
+ border-color: rgb(38, 60, 111) !important;
+ color: rgb(38, 60, 111) !important;
+}
+
+.blog-page .pg-active {
+ background-color: rgb(38, 60, 111) !important;
+ border: none !important;
+}
diff --git a/app/blog/blog.json b/app/blog/blog.json
deleted file mode 100644
index 4a6b1d2..0000000
--- a/app/blog/blog.json
+++ /dev/null
@@ -1,170 +0,0 @@
-{
- "categories": [
- {
- "name": "Visa & Immigration",
- "slug": "visa-immigration",
- "description": "Tin tức và hướng dẫn về visa, định cư."
- },
- {
- "name": "Study Abroad",
- "slug": "study-abroad",
- "description": "Kinh nghiệm du học, trường học, học bổng."
- },
- {
- "name": "Travel Tips",
- "slug": "travel-tips",
- "description": "Mẹo du lịch, chuẩn bị hành lý, bảo hiểm."
- }
- ],
- "tags": [
- {
- "name": "WorkVisa",
- "slug": "work-visa"
- },
- {
- "name": "StudentVisa",
- "slug": "student-visa"
- },
- {
- "name": "Canada",
- "slug": "canada"
- },
- {
- "name": "Scholarship",
- "slug": "scholarship"
- },
- {
- "name": "TravelSafety",
- "slug": "travel-safety"
- }
- ],
- "posts": [
- {
- "title": "Ultimate Guide To Getting A Work Visa In Canada",
- "slug": "ultimate-guide-work-visa-canada",
- "excerpt": "Tổng hợp đầy đủ các bước xin work visa tại Canada cho người mới bắt đầu, từ điều kiện, hồ sơ đến thời gian xử lý.",
- "content": "Trong bài viết này, chúng ta sẽ đi qua từng bước cụ thể để xin work visa Canada, từ việc chuẩn bị hồ sơ, chọn chương trình phù hợp đến cách theo dõi tiến độ xử lý hồ sơ. Bạn cũng sẽ tìm thấy một số mẹo thực tế để tránh những sai lầm phổ biến.
",
- "category": ["Visa & Immigration", "Canada"],
- "tags": ["WorkVisa", "Canada"],
- "author": "Admin",
- "status": "published",
- "publishedAt": "11 March 2025",
- "isFeatured": true,
- "featuredImage": "/assets/img/inner-page/news-details/details-1.jpg",
- "galleryImages": [
- "/assets/img/inner-page/news-details/details-2.jpg",
- "/assets/img/inner-page/news-details/details-3.jpg"
- ],
- "quote": "This blog really helped me understand the difference between student and work visas. The explanations were clear and practical.",
- "contentAfterQuote": "It provides access to world-class universities, cultural exposure, and global networking opportunities. With a student visa, you may also get part-time work rights, which can help support your expenses and give you valuable international work experience. However, the primary focus remains on academics and personal growth. On the other hand, a work visa is perfect for those who want to establish themselves in a career overseas.
It provides immediate access to job markets, stable income, and often a pathway to permanent residency. Work visas are suitable for skilled professionals who are ready to contribute to the global workforce and achieve long-term career goals. Ultimately, the choice comes down to your personal aspirations. If education and exploration are your priorities, a student visa is ideal. If career advancement and stability are your goals, a work visa is the right fit.
",
- "commentsCount": 3
- },
- {
- "title": "Top 5 Scholarship Programs For International Students",
- "slug": "top-5-scholarship-programs-international-students",
- "excerpt": "Danh sách 5 chương trình học bổng nổi bật dành cho sinh viên quốc tế với mức hỗ trợ hấp dẫn.",
- "content": "Nếu bạn đang tìm kiếm học bổng để giảm chi phí du học, đây là 5 chương trình bạn không nên bỏ qua. Mỗi chương trình đều có tiêu chí xét tuyển, mức hỗ trợ và thời hạn đăng ký khác nhau.
Học bổng là một trong những cách tốt nhất để giảm gánh nặng tài chính khi du học. Các chương trình học bổng không chỉ hỗ trợ về mặt tài chính mà còn mở ra nhiều cơ hội phát triển nghề nghiệp và mở rộng mạng lưới quan hệ quốc tế.
",
- "category": ["Study Abroad"],
- "tags": ["StudentVisa", "Scholarship"],
- "author": "Admin",
- "status": "published",
- "publishedAt": "20 March 2025",
- "isFeatured": false,
- "featuredImage": "/assets/img/inner-page/news-details/details-1.jpg",
- "galleryImages": [
- "/assets/img/inner-page/news-details/details-2.jpg",
- "/assets/img/inner-page/news-details/details-3.jpg"
- ],
- "quote": "These scholarship programs opened doors I never thought possible. The application process was straightforward, and the support I received was incredible.",
- "contentAfterQuote": "Applying for scholarships requires careful planning and preparation. Start by researching each program's requirements, deadlines, and eligibility criteria. Make sure to prepare all necessary documents well in advance, including transcripts, recommendation letters, and personal statements. Each scholarship has its own unique focus, so tailor your application to highlight how you align with their values and goals.
Remember that scholarship applications are competitive, so it's important to stand out. Showcase your academic achievements, extracurricular activities, and community involvement. Be authentic in your personal statement and demonstrate how the scholarship will help you achieve your educational and career aspirations. With dedication and proper preparation, you can increase your chances of securing financial support for your studies abroad.
",
- "commentsCount": 2
- },
- {
- "title": "10 Travel Safety Tips You Should Know Before Flying",
- "slug": "10-travel-safety-tips-before-flying",
- "excerpt": "Những lưu ý quan trọng để đảm bảo an toàn cho chuyến bay và hành trình của bạn.",
- "content": "An toàn luôn là ưu tiên hàng đầu khi đi du lịch. Dưới đây là 10 tips giúp bạn yên tâm hơn trên mọi chuyến đi, từ việc chuẩn bị giấy tờ, bảo hiểm đến cách bảo vệ tài sản cá nhân.
Du lịch là một trải nghiệm tuyệt vời, nhưng điều quan trọng là phải chuẩn bị kỹ lưỡng để đảm bảo an toàn. Những tips này được đúc kết từ kinh nghiệm thực tế của nhiều du khách và sẽ giúp bạn tránh được những rủi ro không đáng có.
",
- "category": ["Travel Tips"],
- "tags": ["TravelSafety"],
- "author": "Admin",
- "status": "published",
- "publishedAt": "05 April 2025",
- "isFeatured": false,
- "featuredImage": "/assets/img/inner-page/news-details/details-1.jpg",
- "galleryImages": [
- "/assets/img/inner-page/news-details/details-2.jpg",
- "/assets/img/inner-page/news-details/details-3.jpg"
- ],
- "quote": "These safety tips saved me from potential problems during my trip. I especially appreciated the advice about travel insurance and document preparation.",
- "contentAfterQuote": "Before you travel, make sure to research your destination thoroughly. Understand local customs, laws, and potential safety concerns. Keep copies of important documents like your passport, visa, and travel insurance in multiple places - both physical and digital. Inform family or friends about your itinerary and check in regularly during your trip.
When packing, prioritize essential items and keep valuables secure. Use luggage locks and consider travel insurance for expensive items. Stay aware of your surroundings, especially in crowded areas, and trust your instincts if something feels off. By following these safety tips, you can focus on enjoying your journey while staying protected throughout your travels.
",
- "commentsCount": 1
- }
- ],
- "recentPosts": [
- {
- "title": "Ultimate Guide To Getting A Work Visa In Canada",
- "slug": "ultimate-guide-work-visa-canada",
- "thumbnail": "/assets/img/inner-page/news-details/post-1.jpg",
- "publishedAt": "11 March 2025"
- },
- {
- "title": "Top 5 Scholarship Programs For International Students",
- "slug": "top-5-scholarship-programs-international-students",
- "thumbnail": "/assets/img/inner-page/news-details/post-2.jpg",
- "publishedAt": "20 March 2025"
- },
- {
- "title": "10 Travel Safety Tips You Should Know Before Flying",
- "slug": "10-travel-safety-tips-before-flying",
- "thumbnail": "/assets/img/inner-page/news-details/post-3.jpg",
- "publishedAt": "05 April 2025"
- }
- ],
- "comments": [
- {
- "postSlug": "ultimate-guide-work-visa-canada",
- "authorName": "Frank Flores",
- "authorAvatar": "/assets/img/inner-page/news-details/comment-1.png",
- "content": "Bài viết rất hữu ích, cảm ơn bạn đã chia sẻ!",
- "createdAt": "February 10, 2024",
- "status": "approved",
- "parentAuthorName": null
- },
- {
- "postSlug": "ultimate-guide-work-visa-canada",
- "authorName": "Courtney Henry",
- "authorAvatar": "/assets/img/inner-page/news-details/comment-2.png",
- "content": "Mình đã làm theo hướng dẫn và hồ sơ được duyệt nhanh hơn hẳn.",
- "createdAt": "February 12, 2024",
- "status": "approved",
- "parentAuthorName": "Frank Flores"
- },
- {
- "postSlug": "top-5-scholarship-programs-international-students",
- "authorName": "Sarah Johnson",
- "authorAvatar": "/assets/img/inner-page/news-details/comment-1.png",
- "content": "Cảm ơn bạn đã chia sẻ thông tin về các chương trình học bổng này. Mình đã apply và đang chờ kết quả!",
- "createdAt": "March 15, 2025",
- "status": "approved",
- "parentAuthorName": null
- },
- {
- "postSlug": "top-5-scholarship-programs-international-students",
- "authorName": "Michael Chen",
- "authorAvatar": "/assets/img/inner-page/news-details/comment-2.png",
- "content": "Bài viết rất chi tiết và hữu ích. Mình đã tìm thấy một chương trình phù hợp với mình.",
- "createdAt": "March 18, 2025",
- "status": "approved",
- "parentAuthorName": null
- },
- {
- "postSlug": "10-travel-safety-tips-before-flying",
- "authorName": "Jenny Wilson",
- "authorAvatar": "/assets/img/inner-page/news-details/comment-3.png",
- "content": "Những tip này rất thực tế, đặc biệt là phần chuẩn bị bảo hiểm!",
- "createdAt": "March 02, 2024",
- "status": "approved",
- "parentAuthorName": null
- }
- ]
-}
diff --git a/app/blog/category/[slug]/page.tsx b/app/blog/category/[slug]/page.tsx
deleted file mode 100644
index b2532c0..0000000
--- a/app/blog/category/[slug]/page.tsx
+++ /dev/null
@@ -1,69 +0,0 @@
-import Breadcrumb from "@/app/components/Breadcrumb";
-import NewsSection from "@/app/blog/components/NewsSection";
-import Sidebar from "@/app/blog/components/Sidebar";
-import { fetchBlogsByCategory, fetchCategoryDetail } from "@/api/blogsApi";
-
-interface CategoryPageProps {
- params:
- | Promise<{
- slug: string;
- }>
- | {
- slug: string;
- };
- searchParams?: Promise<{ search?: string; page?: string }> | { search?: string; page?: string };
-}
-
-export default async function CategoryPage({ params, searchParams }: CategoryPageProps) {
- // Handle both Promise and direct object
- const resolvedParams = params instanceof Promise ? await params : params;
- const slug = resolvedParams.slug;
- const resolvedSearchParams = searchParams instanceof Promise ? await searchParams : searchParams;
- const searchQuery = resolvedSearchParams?.search?.toString() || "";
- const pageParam = resolvedSearchParams?.page?.toString() || "1";
- const currentPage = Number.parseInt(pageParam, 10) || 1;
-
- // Fetch category detail and blogs
- let categoryResponse, blogsResponse;
- try {
- [categoryResponse, blogsResponse] = await Promise.all([
- fetchCategoryDetail(slug),
- fetchBlogsByCategory(slug, {
- page: currentPage,
- limit: 3,
- ...(searchQuery ? { search: searchQuery } : {}),
- }),
- ]);
- } catch {
- return (
- <>
-
-
-
-
-
-
-
-
Category not found
-
The category you are looking for does not exist.
-
-
-
-
-
-
-
- >
- );
- }
-
- const category = categoryResponse.data;
- const { blogs, pagination } = blogsResponse.data;
-
- return (
- <>
-
-
- >
- );
-}
diff --git a/app/blog/components/NewsList.tsx b/app/blog/components/NewsList.tsx
deleted file mode 100644
index bf717a1..0000000
--- a/app/blog/components/NewsList.tsx
+++ /dev/null
@@ -1,62 +0,0 @@
-import Link from "next/link";
-import type { BlogPost } from "@/types/blog";
-import { getCmsImageUrl } from "@/utils";
-
-interface NewsListProps {
- blogs?: BlogPost[];
- categorySlug?: string;
- tagSlug?: string;
-}
-
-export default function NewsList({ blogs = [], categorySlug, tagSlug }: NewsListProps) {
- // Use blogs from props (already filtered by API)
- const posts = blogs;
-
- // Additional client-side filtering if needed (though API should handle this)
- if (categorySlug || tagSlug) {
- // If filters are provided but blogs are not pre-filtered, filter here
- // This is a fallback - ideally API should handle filtering
- }
-
- return (
-
- {posts.map((post, index) => (
-
-
-
-
-
-
-
- By {post.author}
-
-
- {post.publishedAt}
-
-
- {post.commentsCount} Comments
-
-
-
- {post.title}
-
-
{post.excerpt}
-
- VIEW MORE
-
-
-
- ))}
-
- );
-}
\ No newline at end of file
diff --git a/app/blog/components/NewsSection.tsx b/app/blog/components/NewsSection.tsx
deleted file mode 100644
index 34c3138..0000000
--- a/app/blog/components/NewsSection.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import NewsList from "./NewsList";
-import Sidebar from "./Sidebar";
-import Pagination from "./Pagination";
-import type { BlogPost, BlogPagination } from "@/types";
-
-interface NewsSectionProps {
- blogs?: BlogPost[];
- categorySlug?: string;
- tagSlug?: string;
- searchQuery?: string;
- pagination?: BlogPagination;
-}
-
-export default function NewsSection({
- blogs,
- categorySlug,
- tagSlug,
- searchQuery,
- pagination,
-}: NewsSectionProps) {
- const basePath = categorySlug
- ? `/blog/category/${categorySlug}`
- : tagSlug
- ? `/blog/tag/${tagSlug}`
- : "/blog";
-
- return (
-
-
-
-
-
-
-
- {pagination && pagination.total > 1 && (
-
- )}
-
-
-
- );
-}
\ No newline at end of file
diff --git a/app/blog/components/Pagination.tsx b/app/blog/components/Pagination.tsx
deleted file mode 100644
index c1a815e..0000000
--- a/app/blog/components/Pagination.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-import Link from "next/link";
-import type { BlogPagination } from "@/types";
-
-interface PaginationProps {
- basePath: string;
- pagination: BlogPagination;
- searchQuery?: string;
-}
-
-export default function Pagination({ basePath, pagination, searchQuery }: PaginationProps) {
- const { current, total } = pagination;
-
- if (total <= 1) return null;
-
- const makeHref = (page: number) => {
- const params = new URLSearchParams();
- if (page > 1) params.set("page", page.toString());
- if (searchQuery) params.set("search", searchQuery);
- const qs = params.toString();
- return qs ? `${basePath}?${qs}` : basePath;
- };
-
- const pages: number[] = [];
- for (let i = 1; i <= total; i++) {
- if (i === 1 || i === total || (i >= current - 2 && i <= current + 2)) {
- pages.push(i);
- }
- }
-
- const items: (number | "...")[] = [];
- for (let i = 0; i < pages.length; i++) {
- const page = pages[i];
- items.push(page);
- if (i < pages.length - 1 && pages[i + 1] !== page + 1) {
- items.push("...");
- }
- }
-
- return (
-
-
- {current > 1 && (
-
-
-
-
-
- )}
-
- {items.map((item, idx) =>
- item === "..." ? (
-
- ...
-
- ) : (
-
- {item === current ? (
- {item}
- ) : (
-
- {item}
-
- )}
-
- ),
- )}
-
- {current < total && (
-
-
-
-
-
- )}
-
-
- );
-}
-
diff --git a/app/blog/components/Sidebar.tsx b/app/blog/components/Sidebar.tsx
deleted file mode 100644
index 3bb3be6..0000000
--- a/app/blog/components/Sidebar.tsx
+++ /dev/null
@@ -1,105 +0,0 @@
-import Link from "next/link";
-import { fetchCategories, fetchRecentBlogs, fetchPopularTags } from "@/api/blogsApi";
-import { getCmsImageUrl } from "@/utils";
-
-interface SidebarProps {
- searchQuery?: string;
-}
-
-export default async function Sidebar({ searchQuery }: SidebarProps) {
- // Fetch data from API
- const [categoriesResponse, recentBlogsResponse, tagsResponse] = await Promise.all([
- fetchCategories(),
- fetchRecentBlogs(5),
- fetchPopularTags(10),
- ]);
-
- const categories = categoriesResponse.data;
- const recentPosts = recentBlogsResponse.data;
- const tags = tagsResponse.data;
-
- return (
-
-
- {/* Search Widget */}
-
- {/* Categories */}
-
-
-
Categories
-
-
-
- {categories.map((category) => {
- const postCount = category.postCount || 0;
- return (
-
-
- {category.name}
-
- ({String(postCount).padStart(2, "0")})
-
- );
- })}
-
-
-
- {/* Recent Post */}
-
-
-
Recent Post
-
-
- {recentPosts.map((post) => (
-
-
-
-
-
-
- ))}
-
-
- {/* Tag Cloud */}
-
-
-
Tag Cloud
-
-
-
- {tags.map((tag) => (
-
- {tag.name}
-
- ))}
-
-
-
-
-
- );
-}
\ No newline at end of file
diff --git a/app/blog/page.tsx b/app/blog/page.tsx
index 1c9e5af..ad577fc 100644
--- a/app/blog/page.tsx
+++ b/app/blog/page.tsx
@@ -1,29 +1,26 @@
-import Breadcrumb from "@/app/components/Breadcrumb";
-import NewsSection from "./components/NewsSection";
-import { fetchBlogList } from "@/api/blogsApi";
+import "./blog-page.css";
+import FeaturedHero from "../components/blog/FeaturedHero";
+import CategoryFilters from "../components/blog/CategoryFilters";
+import NewsGrid from "../components/blog/NewsGrid";
+import BlogSidebar from "../components/blog/BlogSidebar";
-interface NewsPageProps {
- searchParams?: Promise<{ search?: string; page?: string }> | { search?: string; page?: string };
-}
-
-export default async function NewsPage({ searchParams }: NewsPageProps) {
- const resolvedSearchParams = searchParams instanceof Promise ? await searchParams : searchParams;
- const searchQuery = resolvedSearchParams?.search?.toString() || "";
- const pageParam = resolvedSearchParams?.page?.toString() || "1";
- const currentPage = Number.parseInt(pageParam, 10) || 1;
-
- // Fetch blog list from API
- const blogResponse = await fetchBlogList({
- page: currentPage,
- limit: 3,
- ...(searchQuery ? { search: searchQuery } : {}),
- });
- const { blogs, pagination } = blogResponse.data;
-
- return (
- <>
-
-
- >
- );
+export default function BlogPage() {
+ return (
+
+
+
+
+
+ {/* Left: filters + news grid */}
+
+
+
+
+
+ {/* Right: sidebar */}
+
+
+
+
+ );
}
diff --git a/app/blog/tag/[slug]/page.tsx b/app/blog/tag/[slug]/page.tsx
deleted file mode 100644
index 5090bcc..0000000
--- a/app/blog/tag/[slug]/page.tsx
+++ /dev/null
@@ -1,69 +0,0 @@
-import Breadcrumb from "@/app/components/Breadcrumb";
-import NewsSection from "@/app/blog/components/NewsSection";
-import Sidebar from "@/app/blog/components/Sidebar";
-import { fetchBlogsByTag, fetchTagDetail } from "@/api/blogsApi";
-
-interface TagPageProps {
- params:
- | Promise<{
- slug: string;
- }>
- | {
- slug: string;
- };
- searchParams?: Promise<{ search?: string; page?: string }> | { search?: string; page?: string };
-}
-
-export default async function TagPage({ params, searchParams }: TagPageProps) {
- // Handle both Promise and direct object
- const resolvedParams = params instanceof Promise ? await params : params;
- const slug = resolvedParams.slug;
- const resolvedSearchParams = searchParams instanceof Promise ? await searchParams : searchParams;
- const searchQuery = resolvedSearchParams?.search?.toString() || "";
- const pageParam = resolvedSearchParams?.page?.toString() || "1";
- const currentPage = Number.parseInt(pageParam, 10) || 1;
-
- // Fetch tag detail and blogs
- let tagResponse, blogsResponse;
- try {
- [tagResponse, blogsResponse] = await Promise.all([
- fetchTagDetail(slug),
- fetchBlogsByTag(slug, {
- page: currentPage,
- limit: 3,
- ...(searchQuery ? { search: searchQuery } : {}),
- }),
- ]);
- } catch {
- return (
- <>
-
-
-
-
-
-
-
-
Tag not found
-
The tag you are looking for does not exist.
-
-
-
-
-
-
-
- >
- );
- }
-
- const tag = tagResponse.data;
- const { blogs, pagination } = blogsResponse.data;
-
- 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 (
-
-
-
-
-
-
-
-
-
-
-
-
- {data.subheading}
-
{data.heading}
-
-
{data.description}
- {data.items.map((item, index) => (
-
-
-
-
-
-
{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 (
-
-
-
-
-
-
-
{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}
-
-
-
-
-
-
-
-
- );
-};
-
-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 (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {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) => (
-
-
-
-
-
{item.category}
-
-
-
-
- Comment ({item.comments})
- _ {item.date}
-
-
- {item.title}
-
-
-
-
-
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.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.
+
+
+
+ Discover Our History
+
+
+
+
+
+
+ {/* Right: Image */}
+
+
+
+
+
+
+
+
+
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.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.
+
+
+
+
+
+
+
+
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 */}
+
+
+ {/* 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}
+
+ ))}
+
+
Explore Campus Life
+
+
+
+
+
+ );
+};
+
+export default WhyParis;
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/accreditation/AccreditationCard.tsx b/app/components/accreditation/AccreditationCard.tsx
new file mode 100644
index 0000000..bcfd948
--- /dev/null
+++ b/app/components/accreditation/AccreditationCard.tsx
@@ -0,0 +1,20 @@
+type AccreditationCardProps = {
+ logo: string;
+ logoAlt: string;
+ title: string;
+ subtitle: string;
+ description: string;
+};
+
+export default function AccreditationCard({ logo, logoAlt, title, subtitle, description }: AccreditationCardProps) {
+ return (
+
+
+
+
+
{title}
+
{subtitle}
+
{description}
+
+ );
+}
diff --git a/app/components/accreditation/AccreditationGrid.tsx b/app/components/accreditation/AccreditationGrid.tsx
new file mode 100644
index 0000000..ee4b145
--- /dev/null
+++ b/app/components/accreditation/AccreditationGrid.tsx
@@ -0,0 +1,43 @@
+import AccreditationCard from "./AccreditationCard";
+
+const accreditations = [
+ {
+ logo: "https://storage.googleapis.com/uxpilot-auth.appspot.com/5688d070b4-3c6c0b3c66f21c272558.png",
+ logoAlt: "French Ministry of Higher Education Logo",
+ title: "Ministère de l'Enseignement Supérieur",
+ subtitle: "National Institutional Accreditation",
+ description: "Fully recognized by the French government as a degree-granting institution, ensuring our diplomas meet national educational standards.",
+ },
+ {
+ logo: "https://storage.googleapis.com/uxpilot-auth.appspot.com/e2bd5be26e-fb4f2f04e138848db7e4.png",
+ logoAlt: "European Association for Quality Assurance Logo",
+ title: "ENQA",
+ subtitle: "European Quality Assurance",
+ description: "Compliant with the Standards and Guidelines for Quality Assurance in the European Higher Education Area (ESG).",
+ },
+ {
+ logo: "https://storage.googleapis.com/uxpilot-auth.appspot.com/b97d101d24-d2eeb52206ef7f99965a.png",
+ logoAlt: "Global Liberal Arts Alliance Logo",
+ title: "GLAA",
+ subtitle: "International Programmatic Certification",
+ description: "Certified member of the Global Liberal Arts Alliance, affirming our commitment to interdisciplinary education globally.",
+ },
+];
+
+export default function AccreditationGrid() {
+ return (
+
+
+
+
Recognized Issuing Bodies
+
Our institutional and programmatic accreditations ensure global recognition of our degrees.
+
+
+ {accreditations.map((item) => (
+
+ ))}
+
+
+
+ );
+}
diff --git a/app/components/accreditation/AccreditationHero.tsx b/app/components/accreditation/AccreditationHero.tsx
new file mode 100644
index 0000000..1ee0518
--- /dev/null
+++ b/app/components/accreditation/AccreditationHero.tsx
@@ -0,0 +1,22 @@
+export default function AccreditationHero() {
+ return (
+
+
+
+
+
+ Global Standards
+
+
+
+ Accreditations
+ & Compliance
+
+
+ Our commitment to excellence is validated by leading national and international accrediting bodies. We uphold the highest standards of academic rigor, research ethics, and institutional quality.
+
+
+
+
+ );
+}
diff --git a/app/components/accreditation/QualityStandards.tsx b/app/components/accreditation/QualityStandards.tsx
new file mode 100644
index 0000000..cc30c78
--- /dev/null
+++ b/app/components/accreditation/QualityStandards.tsx
@@ -0,0 +1,71 @@
+const features = [
+ {
+ icon: "fa-solid fa-chart-line",
+ title: "Continuous Evaluation",
+ description: "Annual reviews of all academic programs by independent academic boards.",
+ },
+ {
+ icon: "fa-solid fa-users",
+ title: "Peer Review Integration",
+ description: "Regular assessments conducted by visiting professors from partner institutions.",
+ },
+ {
+ icon: "fa-solid fa-shield",
+ title: "Ethical Compliance",
+ description: "Strict adherence to international research ethics and data protection standards.",
+ },
+];
+
+export default function QualityStandards() {
+ return (
+
+
+
+
+ {/* Left: Text content */}
+
+
+
+ Quality Assurance
+
+
Our Framework for Excellence
+
+ Our internal quality assurance mechanisms are designed to continuously evaluate and improve our academic offerings, research outputs, and student services.
+
+
+
+ {features.map((f) => (
+
+
+
+
+
+
{f.title}
+
{f.description}
+
+
+ ))}
+
+
+
+ {/* Right: Images */}
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/app/components/blog/BlogSidebar.tsx b/app/components/blog/BlogSidebar.tsx
new file mode 100644
index 0000000..3adbf25
--- /dev/null
+++ b/app/components/blog/BlogSidebar.tsx
@@ -0,0 +1,13 @@
+import NewsletterWidget from "./NewsletterWidget";
+import ResearcherSpotlight from "./ResearcherSpotlight";
+import UpcomingEvents from "./UpcomingEvents";
+
+export default function BlogSidebar() {
+ return (
+
+ );
+}
diff --git a/app/components/blog/CategoryFilters.tsx b/app/components/blog/CategoryFilters.tsx
new file mode 100644
index 0000000..fb413d0
--- /dev/null
+++ b/app/components/blog/CategoryFilters.tsx
@@ -0,0 +1,21 @@
+const categories = ["All News", "Campus", "Research", "Partnerships", "Events"];
+
+export default function CategoryFilters() {
+ return (
+
+ {categories.map((cat, i) => (
+
+ {cat}
+
+ ))}
+
+ );
+}
diff --git a/app/components/blog/FeaturedHero.tsx b/app/components/blog/FeaturedHero.tsx
new file mode 100644
index 0000000..a1525bc
--- /dev/null
+++ b/app/components/blog/FeaturedHero.tsx
@@ -0,0 +1,44 @@
+export default function FeaturedHero() {
+ return (
+
+
+
+ {/* Left: Content */}
+
+
+ Featured Research
+
+
+ Pioneering Sustainable Urban Development in the Heart of Paris
+
+
+ Our latest collaborative research initiative uncovers groundbreaking methods for integrating green infrastructure into historic urban environments, setting a new standard for European cities.
+
+
+
+
+
Dr. Amélie Dubois
+
+
•
+
October 15, 2024
+
•
+
5 min read
+
+
+ Read Full Story
+
+
+
+ {/* Right: Image */}
+
+
+
+
+
+
+ );
+}
diff --git a/app/components/blog/NewsCard.tsx b/app/components/blog/NewsCard.tsx
new file mode 100644
index 0000000..806a3a0
--- /dev/null
+++ b/app/components/blog/NewsCard.tsx
@@ -0,0 +1,48 @@
+type NewsCardProps = {
+ category: string;
+ date: string;
+ title: string;
+ excerpt: string;
+ image?: string;
+ icon?: string;
+};
+
+export default function NewsCard({ category, date, title, excerpt, image, icon }: NewsCardProps) {
+ return (
+
+ {/* Thumbnail */}
+
+ {image ? (
+
+ ) : (
+
+
+
+ )}
+
+
+ {category}
+
+
+
+
+ {/* Content */}
+
+
+ );
+}
diff --git a/app/components/blog/NewsGrid.tsx b/app/components/blog/NewsGrid.tsx
new file mode 100644
index 0000000..1d88770
--- /dev/null
+++ b/app/components/blog/NewsGrid.tsx
@@ -0,0 +1,59 @@
+import NewsCard from "./NewsCard";
+
+const news = [
+ {
+ category: "Campus",
+ date: "Oct 12, 2024",
+ title: "New Liberal Arts Library Wing Opens to Students",
+ excerpt: "The state-of-the-art facility provides expanded collaborative spaces and access to over 50,000 new digital and print resources for our growing student body.",
+ image: "https://storage.googleapis.com/uxpilot-auth.appspot.com/8eafd095d9-314bdad36b2119266084.png",
+ },
+ {
+ category: "Partnerships",
+ date: "Oct 10, 2024",
+ title: "ULP Announces Strategic Alliance with TechGlobal Institute",
+ excerpt: "A new partnership aimed at bridging the gap between liberal arts education and emerging technological paradigms in the 21st century.",
+ icon: "fas fa-handshake",
+ },
+ {
+ category: "Events",
+ date: "Oct 05, 2024",
+ title: "Annual Global Ethics Symposium Draws Record Attendance",
+ excerpt: "Scholars from over 40 countries gathered at ULP this weekend to discuss the evolving landscape of international human rights and digital privacy.",
+ image: "https://storage.googleapis.com/uxpilot-auth.appspot.com/fc832714d8-ee7527b4d94c300aae71.png",
+ },
+ {
+ category: "Research",
+ date: "Sep 28, 2024",
+ title: "Department of Sociology Publishes Landmark Study on Urban Migration",
+ excerpt: "A comprehensive 5-year study reveals shifting demographic patterns in post-industrial European cities, highlighting new socio-economic challenges.",
+ icon: "fas fa-flask",
+ },
+];
+
+export default function NewsGrid() {
+ return (
+
+
+ {news.map((item) => (
+
+ ))}
+
+
+ {/* Pagination */}
+
+
+
+
+ 1
+ 2
+ 3
+ ...
+ 12
+
+
+
+
+
+ );
+}
diff --git a/app/components/blog/NewsletterWidget.tsx b/app/components/blog/NewsletterWidget.tsx
new file mode 100644
index 0000000..ab9db59
--- /dev/null
+++ b/app/components/blog/NewsletterWidget.tsx
@@ -0,0 +1,37 @@
+export default function NewsletterWidget() {
+ return (
+
+
+
Stay Informed
+
+ Subscribe to our weekly newsletter for the latest research updates, campus news, and upcoming events.
+
+
+
+ By subscribing, you agree to our{" "}
+ Privacy Policy .
+
+
+
+ {/* Decorative background element */}
+
+
+
+
+ );
+}
diff --git a/app/components/blog/ResearcherSpotlight.tsx b/app/components/blog/ResearcherSpotlight.tsx
new file mode 100644
index 0000000..6be6691
--- /dev/null
+++ b/app/components/blog/ResearcherSpotlight.tsx
@@ -0,0 +1,47 @@
+const researchers = [
+ {
+ name: "Dr. Sarah Jenkins",
+ field: "Cognitive Linguistics",
+ bio: "Exploring the intersection of language processing and modern ethical frameworks in digital communication.",
+ avatar: "https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-5.jpg",
+ },
+ {
+ name: "Prof. Marcus Chen",
+ field: "Economic History",
+ bio: "Recent recipient of the European Heritage Grant for his work on interwar economic policies.",
+ avatar: "https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-4.jpg",
+ },
+ {
+ name: "Dr. Elena Rostova",
+ field: "Political Science",
+ bio: "Leading the new comparative study on post-war democratic institutions across Western Europe.",
+ avatar: "https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-6.jpg",
+ },
+];
+
+export default function ResearcherSpotlight() {
+ return (
+
+
+
+ {researchers.map((r) => (
+
+
+
+
{r.name}
+
{r.field}
+
{r.bio}
+
+
+ ))}
+
+
+ );
+}
diff --git a/app/components/blog/UpcomingEvents.tsx b/app/components/blog/UpcomingEvents.tsx
new file mode 100644
index 0000000..30da6f0
--- /dev/null
+++ b/app/components/blog/UpcomingEvents.tsx
@@ -0,0 +1,40 @@
+const events = [
+ {
+ month: "Nov",
+ day: "12",
+ title: "Open Campus Day",
+ time: "09:00 AM - 04:00 PM",
+ },
+ {
+ month: "Nov",
+ day: "18",
+ title: "Guest Lecture: Future of AI in Arts",
+ time: "06:00 PM - Main Hall",
+ },
+];
+
+export default function UpcomingEvents() {
+ return (
+
+
+ Upcoming Events
+
+
+ {events.map((e) => (
+
+
+ {e.month}
+ {e.day}
+
+
+
{e.title}
+
+ {e.time}
+
+
+
+ ))}
+
+
+ );
+}
diff --git a/app/components/contact/Accessibility.tsx b/app/components/contact/Accessibility.tsx
new file mode 100644
index 0000000..89444c3
--- /dev/null
+++ b/app/components/contact/Accessibility.tsx
@@ -0,0 +1,21 @@
+export default function Accessibility() {
+ return (
+
+
Accessibility
+
+ Our campus is designed to be accessible to everyone. If you require specific accommodations for your visit, please contact us in advance.
+
+
+
+ Wheelchair Access
+
+
+ Elevators
+
+
+ Reserved Parking
+
+
+
+ );
+}
diff --git a/app/components/contact/ContactHero.tsx b/app/components/contact/ContactHero.tsx
new file mode 100644
index 0000000..531d1cc
--- /dev/null
+++ b/app/components/contact/ContactHero.tsx
@@ -0,0 +1,17 @@
+export default function ContactHero() {
+ return (
+
+ );
+}
diff --git a/app/components/contact/ContactSplit.tsx b/app/components/contact/ContactSplit.tsx
new file mode 100644
index 0000000..bae717f
--- /dev/null
+++ b/app/components/contact/ContactSplit.tsx
@@ -0,0 +1,19 @@
+import InquiryForm from "./InquiryForm";
+import LocationMap from "./LocationMap";
+import OfficeHours from "./OfficeHours";
+import Accessibility from "./Accessibility";
+
+export default function ContactSplit() {
+ return (
+
+ );
+}
diff --git a/app/components/contact/DepartmentCard.tsx b/app/components/contact/DepartmentCard.tsx
new file mode 100644
index 0000000..322b3ec
--- /dev/null
+++ b/app/components/contact/DepartmentCard.tsx
@@ -0,0 +1,27 @@
+type DepartmentCardProps = {
+ icon: string;
+ title: string;
+ description: string;
+ email: string;
+ phone: string;
+};
+
+export default function DepartmentCard({ icon, title, description, email, phone }: DepartmentCardProps) {
+ return (
+
+
+
+
+
{title}
+
{description}
+
+
+ );
+}
diff --git a/app/components/contact/DepartmentCardBlue.tsx b/app/components/contact/DepartmentCardBlue.tsx
new file mode 100644
index 0000000..9416a9c
--- /dev/null
+++ b/app/components/contact/DepartmentCardBlue.tsx
@@ -0,0 +1,22 @@
+export default function DepartmentCardBlue() {
+ return (
+
+
+
+
+
+
Research Office
+
+ Grant applications, ethics committee approvals, lab space allocation, and cross-disciplinary collaboration opportunities.
+
+
+
+ );
+}
diff --git a/app/components/contact/DepartmentCardEmpty.tsx b/app/components/contact/DepartmentCardEmpty.tsx
new file mode 100644
index 0000000..f4e55e2
--- /dev/null
+++ b/app/components/contact/DepartmentCardEmpty.tsx
@@ -0,0 +1,16 @@
+export default function DepartmentCardEmpty() {
+ return (
+
+
+
+
+
Not sure who to contact?
+
+ Use our general inquiry form below and we'll route your message to the appropriate department.
+
+
+ Go to Form
+
+
+ );
+}
diff --git a/app/components/contact/DepartmentDirectory.tsx b/app/components/contact/DepartmentDirectory.tsx
new file mode 100644
index 0000000..5cd42d0
--- /dev/null
+++ b/app/components/contact/DepartmentDirectory.tsx
@@ -0,0 +1,49 @@
+import DepartmentCard from "./DepartmentCard";
+import DepartmentCardBlue from "./DepartmentCardBlue";
+import DepartmentCardEmpty from "./DepartmentCardEmpty";
+
+const departments = [
+ {
+ icon: "fas fa-graduation-cap",
+ title: "Admissions & Enrollment",
+ description: "Questions regarding application processes, deadlines, program requirements, and international student visas.",
+ email: "admissions@parisresearch.edu",
+ phone: "+33 1 23 45 67 89",
+ },
+ {
+ icon: "fas fa-handshake",
+ title: "Industry Partnerships",
+ description: "Corporate sponsorships, technology transfer, joint research ventures, and industry-funded scholarships.",
+ email: "partners@parisresearch.edu",
+ phone: "+33 1 23 45 67 91",
+ },
+ {
+ icon: "fas fa-bullhorn",
+ title: "Media & Press",
+ description: "Press releases, expert commentary requests, media kits, and institutional branding guidelines.",
+ email: "press@parisresearch.edu",
+ phone: "+33 1 23 45 67 92",
+ },
+ {
+ icon: "fas fa-book-open",
+ title: "Repository Support",
+ description: "Assistance with navigating the publication database, requesting access to restricted papers, and submitting new works.",
+ email: "library@parisresearch.edu",
+ phone: "+33 1 23 45 67 93",
+ },
+];
+
+export default function DepartmentDirectory() {
+ return (
+
+ );
+}
diff --git a/app/components/contact/InquiryForm.tsx b/app/components/contact/InquiryForm.tsx
new file mode 100644
index 0000000..71ff7c6
--- /dev/null
+++ b/app/components/contact/InquiryForm.tsx
@@ -0,0 +1,71 @@
+export default function InquiryForm() {
+ const inputClass = "w-full bg-gray-50 border border-gray-200 text-gray-800 px-4 py-3 rounded-[12px] focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary transition-all text-sm placeholder:text-gray-400";
+
+ return (
+
+
+
Send a Message
+
Please fill out the form below and our team will get back to you within 24-48 business hours.
+
+
+
+
+ );
+}
diff --git a/app/components/contact/LocationMap.tsx b/app/components/contact/LocationMap.tsx
new file mode 100644
index 0000000..b68c660
--- /dev/null
+++ b/app/components/contact/LocationMap.tsx
@@ -0,0 +1,26 @@
+export default function LocationMap() {
+ return (
+
+
+
+ {/* Floating Pin Card */}
+
+
+
+
+
+
Main Campus
+
+ 15 Rue de l'École de Médecine 75006 Paris, France
+
+
Get Directions
+
+
+
+
+ );
+}
diff --git a/app/components/contact/OfficeHours.tsx b/app/components/contact/OfficeHours.tsx
new file mode 100644
index 0000000..9acfe58
--- /dev/null
+++ b/app/components/contact/OfficeHours.tsx
@@ -0,0 +1,28 @@
+const hours = [
+ { day: "Monday - Thursday", time: "08:30 - 18:00" },
+ { day: "Friday", time: "08:30 - 17:00" },
+ { day: "Saturday - Sunday", time: null },
+];
+
+export default function OfficeHours() {
+ return (
+
+
+
+
+ {hours.map(({ day, time }) => (
+
+ {day}
+ {time
+ ? {time}
+ : Closed
+ }
+
+ ))}
+
+
+ );
+}
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 (
-
-
-
-
-
-
- {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 (
-
-
-
-
-
{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.question}
-
-
-
-
- ))}
-
-
-
-
-
-
-
- );
-};
-
-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 (
+
+
+
+
+
-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 (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {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) => (
-
-
-
-
-
- ))}
-
-
-
-
-
-
- );
+
+
+ Explore Research
+
+
+
+ Partner With Us
+
+
+
+
+
+ );
};
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.year}
-
-
- ))}
-
-
-
-
- {/* Brand Partners Section */}
-
-
-
-
-
-
- {(data.brands?.items || []).map((brand, index) => (
-
-
-
-
-
- ))}
-
-
-
-
-
-
- >
- );
-};
-
-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 (
+
+
+
+
Explore Our Ecosystem
+
+ Navigate through our core pillars of academic excellence and global partnerships.
+
+
+
+
+ {LINKS.map((item, i) => (
+
+
+
+
+
{item.title}
+
{item.desc}
+
+ {item.cta}
+
+
+
+
+
+ ))}
+
+
+
+ );
+};
+
+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}
-
-
-
-
-
-
-
-
-
-
Real stories
-
-
-
-
-
- {data.items.map((testimonial, index) => (
-
-
-
- {Array.from({ length: testimonial.rating }).map((_, i) => (
-
- ))}
-
-
- {testimonial.comment}
-
-
-
-
-
-
-
{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 (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{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}
-
-
-
-
-
-
-
-
{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 (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {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/partnership/CollaborateCTA.tsx b/app/components/partnership/CollaborateCTA.tsx
new file mode 100644
index 0000000..42e0117
--- /dev/null
+++ b/app/components/partnership/CollaborateCTA.tsx
@@ -0,0 +1,16 @@
+import CollaborateInfo from "./CollaborateInfo";
+import PartnershipForm from "./PartnershipForm";
+
+export default function CollaborateCTA() {
+ return (
+
+ );
+}
diff --git a/app/components/partnership/CollaborateInfo.tsx b/app/components/partnership/CollaborateInfo.tsx
new file mode 100644
index 0000000..c5c3836
--- /dev/null
+++ b/app/components/partnership/CollaborateInfo.tsx
@@ -0,0 +1,35 @@
+const checkItems = [
+ "Joint Research Initiatives",
+ "Student & Faculty Exchange",
+ "Industry Integration & Internships",
+];
+
+export default function CollaborateInfo() {
+ return (
+
+ {/* Badge */}
+
+
+ Join Our Network
+
+
+ {/* Heading — dùng div tránh main.css override h2 */}
+
+ Collaborate With Us
+
+
+
+ We are constantly seeking to expand our network with institutions and organizations that share our commitment to rigorous research and liberal arts education.
+
+
+
+ {checkItems.map((item) => (
+
+
+ {item}
+
+ ))}
+
+
+ );
+}
diff --git a/app/components/partnership/MainIntroBlock.tsx b/app/components/partnership/MainIntroBlock.tsx
new file mode 100644
index 0000000..61734d1
--- /dev/null
+++ b/app/components/partnership/MainIntroBlock.tsx
@@ -0,0 +1,39 @@
+export default function MainIntroBlock() {
+ return (
+
+
+
+
+ {/* Badge */}
+
+
+ Global Network
+
+
+ {/* Heading — dùng div tránh main.css override h1 */}
+
+ Global Partnerships
+
+
+ {/* Description */}
+
+
+ [We at Université Libérale de Paris believe that research and liberal arts education thrive through global collaboration.]
+
+
+ [By bridging international institutions and industry leaders, we create opportunities for our students and faculty to engage in transformative academic exchanges.]
+
+
+
+ {/* Button */}
+
+ Explore Directory
+
+
+
+
+ );
+}
diff --git a/app/components/partnership/NetworkHighlightBlock.tsx b/app/components/partnership/NetworkHighlightBlock.tsx
new file mode 100644
index 0000000..1d27eb2
--- /dev/null
+++ b/app/components/partnership/NetworkHighlightBlock.tsx
@@ -0,0 +1,26 @@
+export default function NetworkHighlightBlock() {
+ return (
+
+
+
+
+ {/* Icon + Brand */}
+
+
+ ULP Network
+
+
+ {/* Heading — dùng div tránh main.css override h2 */}
+
+
+ Connect Across Continents
+
+
+ 150+ active academic agreements across 45 countries.
+
+
+
+
+
+ );
+}
diff --git a/app/components/partnership/PartnershipForm.tsx b/app/components/partnership/PartnershipForm.tsx
new file mode 100644
index 0000000..7719f67
--- /dev/null
+++ b/app/components/partnership/PartnershipForm.tsx
@@ -0,0 +1,49 @@
+export default function PartnershipForm() {
+ return (
+
+ {/* Title — dùng div tránh main.css override h3 */}
+
Partnership Inquiry
+
+ Fill out this brief form and our Global Relations office will contact you.
+
+
+
+
+
+
+
+ Email Address
+
+
+
+ Partnership Type
+
+ Academic Exchange
+ Joint Research
+ Industry Partnership
+ Other
+
+
+
+
+
+ Message
+
+
+
+
+ Submit Inquiry
+
+
+
+ );
+}
diff --git a/app/components/publications/PublicationHeader.tsx b/app/components/publications/PublicationHeader.tsx
new file mode 100644
index 0000000..5bcba22
--- /dev/null
+++ b/app/components/publications/PublicationHeader.tsx
@@ -0,0 +1,45 @@
+import React from 'react';
+
+const PublicationHeader = () => {
+ return (
+
+ );
+};
+
+export default PublicationHeader;
diff --git a/app/components/publications/PublicationResults.tsx b/app/components/publications/PublicationResults.tsx
new file mode 100644
index 0000000..7f63444
--- /dev/null
+++ b/app/components/publications/PublicationResults.tsx
@@ -0,0 +1,169 @@
+'use client';
+import React, { useState } from 'react';
+import Link from 'next/link';
+
+const SORT_OPTIONS = ['Relevance', 'Newest First', 'Oldest First', 'Most Cited'];
+
+const PublicationResults = () => {
+ const [isSortOpen, setIsSortOpen] = useState(false);
+ const [selectedSort, setSelectedSort] = useState('Relevance');
+
+ return (
+
+
+ {/* Toolbar */}
+
+
+ Showing 1-10 of 12,450 results
+
+
+
+
Sort by:
+
+
setIsSortOpen(!isSortOpen)}
+ >
+ {selectedSort}
+
+
+ {isSortOpen && (
+
+ {SORT_OPTIONS.map((opt) => (
+
{ setSelectedSort(opt); setIsSortOpen(false); }}
+ >
+ {opt}
+
+ ))}
+
+ )}
+
+
+
+
+ {/* Cards */}
+
+
+ {/* Card 1 */}
+
+
+
+ The Evolution of Democratic Institutions in Post-War Europe
+
+
+
+ Open Access
+
+ Peer Reviewed
+
+
+
+
+
+
+ Dr. Elena Rostova , Prof. Marcus Chen
+
+
+ October 2024
+
+
+ DOI: 10.1038/s41586-024
+
+
+ Center for Political Studies
+
+
+
+
+ This paper examines the structural shifts in Western European democratic frameworks from 1945 to 1980. By analyzing institutional archives across France, Germany, and Italy, the research identifies a distinct divergence in how parliamentary powers were consolidated versus distributed. The findings challenge traditional narratives of a uniform democratic resurgence, suggesting instead that local historical contexts heavily dictated the adoption of specific liberal norms.
+
+
+
+ Keywords:
+ Democracy
+ European History
+ Institutions
+
+
+
+
+ View PDF
+
+
+ Cite
+
+
+ Save
+
+
+
+
+ {/* Card 2 */}
+
+
+
+ Cognitive Linguistics and the Framing of Modern Ethics
+
+
+
+ Institutional
+
+
+
+
+
+
+
+ Dr. Sarah Jenkins
+
+
+ August 2024
+
+
+ DOI: 10.1016/j.cogling.2024
+
+
+
+
+ An exploration into how metaphor and cognitive framing shape contemporary ethical debates. The study utilizes computational linguistics to analyze over 10,000 policy documents and public speeches, demonstrating a significant correlation between specific metaphorical structures and the resulting ethical policy frameworks adopted by legislative bodies.
+
+
+
+
+ Login to Access
+
+
+ Cite
+
+
+
+
+
+
+ {/* Pagination */}
+
+
+ Previous
+
+
+
+ 1
+ 2
+ 3
+ ...
+ 124
+
+
+
+ Next
+
+
+
+
+ );
+};
+
+export default PublicationResults;
diff --git a/app/components/publications/PublicationSidebar.tsx b/app/components/publications/PublicationSidebar.tsx
new file mode 100644
index 0000000..37b7de2
--- /dev/null
+++ b/app/components/publications/PublicationSidebar.tsx
@@ -0,0 +1,123 @@
+'use client';
+
+import React, { useState } from 'react';
+
+const YEARS = ['2024 (1,245)', '2023 (3,412)', '2022 (2,890)'];
+const DOMAINS = ['Liberal Arts (4,521)', 'Social Sciences (3,210)', 'Humanities (2,980)', 'Political Science (1,840)'];
+const ACCESS_TYPES = ['Open Access', 'Institutional Login', 'Request Access'];
+
+const AccordionSection = ({
+ title,
+ open,
+ onToggle,
+ children,
+}: {
+ title: string;
+ open: boolean;
+ onToggle: () => void;
+ children: React.ReactNode;
+}) => (
+
+
+ {title}
+
+
+
+ {children}
+
+
+);
+
+const PublicationSidebar = () => {
+ const [isYearOpen, setIsYearOpen] = useState(true);
+ const [isDomainOpen, setIsDomainOpen] = useState(true);
+ const [isAccessOpen, setIsAccessOpen] = useState(true);
+ const [minYear, setMinYear] = useState('');
+ const [maxYear, setMaxYear] = useState('');
+
+ return (
+
+ );
+};
+
+export default PublicationSidebar;
diff --git a/app/components/research/ProjectsAndCenters.tsx b/app/components/research/ProjectsAndCenters.tsx
new file mode 100644
index 0000000..83c078d
--- /dev/null
+++ b/app/components/research/ProjectsAndCenters.tsx
@@ -0,0 +1,208 @@
+import React from 'react';
+
+// Khối chứa 2 cột: Active Projects Feed và Funding Calls
+const ProjectsAndCenters = () => {
+ return (
+
+
+
+
+ {/* --- CỘT TRÁI (7/12): ACTIVE PROJECTS LIST --- */}
+
+
+
+
+
+ {/* Project Item 1 */}
+
+
+
+
+
Active
+
+
+
+
+
+
+ Updated 2d ago
+
+
+
Urban Microclimate Modeling
+
+ Developing high-resolution predictive models for heat island effects in European metropolitan areas using machine learning.
+
+
+
+
+
+
+
+3
+
+
+
+
+
+
+ {/* Project Item 2 */}
+
+
+
+
+
Data Collection
+
+
+
+
+
+
+ Updated 1w ago
+
+
+
Digital Rights in the EU Framework
+
+ A comparative analysis of member state implementation of digital privacy directives and their impact on civil liberties.
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Project Item 3 */}
+
+
+
+
+
Review
+
+
+
+
+
+
+ Updated 3w ago
+
+
+
Behavioral Impacts of Universal Basic Income
+
+ Longitudinal study tracking spending habits and employment outcomes in selected pilot regions across France.
+
+
+
+
+
+
+
+
+ {/* --- CỘT PHẢI (5/12): FUNDING CALLS --- */}
+
+
+
Funding Calls
+
+
+
+
+
+ {/* Item 1 */}
+
+
Closing Soon
+
EU Horizon 2025: Sustainable Tech
+
+
+
+ {/* Item 2 */}
+
+
Internal Grant
+
Seed Funding for AI Ethics
+
+
+
+
+
+
+ View All Opportunities
+
+
+
+
+
+
+
+ );
+};
+
+export default ProjectsAndCenters;
\ No newline at end of file
diff --git a/app/components/research/ResearchDomains.tsx b/app/components/research/ResearchDomains.tsx
new file mode 100644
index 0000000..7c13d6c
--- /dev/null
+++ b/app/components/research/ResearchDomains.tsx
@@ -0,0 +1,167 @@
+import React from 'react';
+
+// Khối chứa danh sách các lĩnh vực nghiên cứu.
+const ResearchDomains = () => {
+ return (
+
+
+
+ {/* Tiêu đề Section */}
+
+
Research Domains
+
+ Discover our core areas of expertise, where interdisciplinary teams tackle complex global challenges.
+
+
+
+ {/* Grid chứa các thẻ (Cards) */}
+
+
+ {/* Domain Card 1 (Nổi bật - Màu xanh) */}
+
+ {/* Hiệu ứng Glow */}
+
+
+
+
+
Law & Policy
+
+ Investigating the evolution of international law, human rights, and public policy in a rapidly changing geopolitical landscape.
+
+
+
+
+
+ {/* Domain Card 2 */}
+
+
+
+
Cognitive Science
+
+ Bridging psychology, neuroscience, and artificial intelligence to understand human cognition and behavior.
+
+
+
+
+
+ {/* Domain Card 3 */}
+
+
+
+
Environmental Studies
+
+ Developing sustainable solutions for climate change, resource management, and ecological preservation.
+
+
+
+
+
+ {/* Domain Card 4 */}
+
+
+
+
History & Humanities
+
+ Preserving cultural heritage and analyzing historical contexts to inform contemporary societal debates.
+
+
+
+
+
+ {/* Domain Card 5 */}
+
+
+
+
Economics
+
+ Analyzing global markets, behavioral economics, and policy impacts on socioeconomic development.
+
+
+
+
+
+ {/* Domain Card 6 - CTA */}
+
+
+
View All Domains
+
Explore our complete directory of 15+ research areas.
+
+
+
+
+
+ );
+};
+
+export default ResearchDomains;
\ No newline at end of file
diff --git a/app/components/research/ResearchHero.tsx b/app/components/research/ResearchHero.tsx
new file mode 100644
index 0000000..290ed8f
--- /dev/null
+++ b/app/components/research/ResearchHero.tsx
@@ -0,0 +1,101 @@
+'use client';
+
+import React from 'react';
+import { useRouter } from 'next/navigation';
+
+const ResearchHero = () => {
+ const router = useRouter();
+ return (
+
+
+
+
+ {/* --- CỘT TRÁI --- */}
+
+
+ {/* Label: gạch ngang + "Research Hub" */}
+
+
+ Research Hub
+
+
+ {/* Heading */}
+
+ Pioneering
+ Discovery
+
+
+ {/* Description */}
+
+ Explore our cutting-edge research domains, active projects, and interdisciplinary centers driving innovation in liberal arts and sciences.
+
+
+ {/* Buttons */}
+
+ router.push('/research/search')}>
+ Browse Projects
+
+
+ View Publications
+
+
+
+
+ {/* --- CỘT PHẢI: Visual composition --- */}
+
+
+
+ {/* Glow nền */}
+
+
+ {/* Main image card */}
+
+
+
+
+
+
+ Featured
+
+
+
Cognitive Sciences Lab
+
Exploring the intersection of AI and human psychology.
+
+
+
+ {/* Floating stat card 1 — Publications */}
+
+
+ {/* Floating stat card 2 — Active Projects */}
+
+
+
+
+
+
340
+
Active Projects
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default ResearchHero;
diff --git a/app/components/research/ResearchResources.tsx b/app/components/research/ResearchResources.tsx
new file mode 100644
index 0000000..cea555a
--- /dev/null
+++ b/app/components/research/ResearchResources.tsx
@@ -0,0 +1,68 @@
+import React from 'react';
+
+// Khối chứa 2 banner: Research Guidance và Publication Repository
+const ResearchResources = () => {
+ return (
+
+ );
+};
+
+export default ResearchResources;
\ No newline at end of file
diff --git a/app/components/research/ResearchSearch.tsx b/app/components/research/ResearchSearch.tsx
new file mode 100644
index 0000000..09fb4b7
--- /dev/null
+++ b/app/components/research/ResearchSearch.tsx
@@ -0,0 +1,115 @@
+'use client';
+
+import React, { useState } from 'react';
+import { useRouter } from 'next/navigation';
+
+const ResearchSearch = () => {
+ const [query, setQuery] = useState('');
+ const [activeFilter, setActiveFilter] = useState('Researchers');
+ const filters = ['Researchers', 'Labs', 'Projects', 'Institutes'];
+ const router = useRouter();
+
+ const handleSearch = () => {
+ const params = new URLSearchParams({ q: query, type: activeFilter });
+ router.push(`/research/search?${params.toString()}`);
+ };
+
+ return (
+
+
+ {/* Search bar */}
+
+
+
+
+
setQuery(e.target.value)}
+ onKeyDown={(e) => e.key === 'Enter' && handleSearch()}
+ placeholder="Search across researchers, labs, projects, and disciplines..."
+ style={{
+ width: '100%',
+ paddingLeft: '3rem',
+ paddingRight: '8rem',
+ paddingTop: '1rem',
+ paddingBottom: '1rem',
+ backgroundColor: '#ffffff',
+ border: '1px solid #e5e7eb',
+ borderRadius: '1rem',
+ boxShadow: '0 1px 2px 0 rgba(0,0,0,0.05)',
+ fontSize: '1rem',
+ color: '#374151',
+ outline: 'none',
+ transition: 'border-color 0.2s, box-shadow 0.2s',
+ boxSizing: 'border-box',
+ }}
+ onFocus={(e) => {
+ e.target.style.borderColor = '#263c6f';
+ e.target.style.boxShadow = '0 0 0 2px rgba(38,60,111,0.15)';
+ }}
+ onBlur={(e) => {
+ e.target.style.borderColor = '#e5e7eb';
+ e.target.style.boxShadow = '0 1px 2px 0 rgba(0,0,0,0.05)';
+ }}
+ />
+
+ (e.currentTarget.style.opacity = '0.9')}
+ onMouseLeave={(e) => (e.currentTarget.style.opacity = '1')}
+ >
+ Search
+
+
+
+
+ {/* Filter pills */}
+
+
+ Filters:
+
+ {filters.map((filter) => (
+ setActiveFilter(filter)}
+ style={{
+ fontSize: '0.75rem',
+ fontWeight: 500,
+ padding: '0.25rem 0.75rem',
+ borderRadius: '9999px',
+ border: 'none',
+ cursor: 'pointer',
+ transition: 'background-color 0.2s',
+ backgroundColor: activeFilter === filter ? 'rgba(38,60,111,0.1)' : '#f3f4f6',
+ color: activeFilter === filter ? '#263c6f' : '#4b5563',
+ }}
+ onMouseEnter={(e) => {
+ if (activeFilter !== filter) e.currentTarget.style.backgroundColor = '#e5e7eb';
+ }}
+ onMouseLeave={(e) => {
+ if (activeFilter !== filter) e.currentTarget.style.backgroundColor = '#f3f4f6';
+ }}
+ >
+ {filter}
+
+ ))}
+
+
+
+ );
+};
+
+export default ResearchSearch;
diff --git a/app/components/research/search/ResearchSearchHeader.tsx b/app/components/research/search/ResearchSearchHeader.tsx
new file mode 100644
index 0000000..80ec3d7
--- /dev/null
+++ b/app/components/research/search/ResearchSearchHeader.tsx
@@ -0,0 +1,79 @@
+'use client';
+
+import React, { useState } from 'react';
+import { useRouter } from 'next/navigation';
+
+const FILTERS = ['Researchers', 'Labs', 'Projects', 'Institutes'];
+
+const ResearchSearchHeader = () => {
+ const [query, setQuery] = useState('');
+ const [activeFilter, setActiveFilter] = useState('Researchers');
+ const router = useRouter();
+
+ const handleSearch = () => {
+ const params = new URLSearchParams({ q: query, type: activeFilter });
+ router.push(`/research/search?${params.toString()}`);
+ };
+
+ return (
+
+ );
+};
+
+export default ResearchSearchHeader;
diff --git a/app/components/research/search/ResearchSearchResults.tsx b/app/components/research/search/ResearchSearchResults.tsx
new file mode 100644
index 0000000..d4460a8
--- /dev/null
+++ b/app/components/research/search/ResearchSearchResults.tsx
@@ -0,0 +1,177 @@
+'use client';
+
+import React, { useState } from 'react';
+
+const SORT_OPTIONS = ['Relevance', 'Newest First', 'Most Active', 'Alphabetical'];
+
+const RESULTS = [
+ {
+ type: 'Project',
+ badgeClass: 'pub-badge-open',
+ badgeIcon: 'fa-flask',
+ badgeLabel: 'Active Project',
+ statusClass: 'pub-badge-peer',
+ statusLabel: 'Environmental Studies',
+ title: 'Urban Microclimate Modeling',
+ lead: 'Dr. Alan Turing',
+ updated: 'Updated 2 days ago',
+ center: 'Institute for Climate Research',
+ desc: 'Developing high-resolution predictive models for heat island effects in European metropolitan areas using machine learning and satellite data.',
+ tags: ['Climate', 'Machine Learning', 'Urban Studies'],
+ progress: 65,
+ },
+ {
+ type: 'Lab',
+ badgeClass: 'pub-badge-institutional',
+ badgeIcon: 'fa-building-user',
+ badgeLabel: 'Research Lab',
+ statusClass: 'pub-badge-peer',
+ statusLabel: 'Cognitive Science',
+ title: 'Cognitive Sciences Lab',
+ lead: 'Prof. Marie Curie',
+ updated: 'Updated 1 week ago',
+ center: 'Center for Digital Humanities',
+ desc: 'Exploring the intersection of artificial intelligence and human psychology, with a focus on decision-making processes and behavioral modeling.',
+ tags: ['AI', 'Psychology', 'Neuroscience'],
+ progress: null,
+ },
+ {
+ type: 'Project',
+ badgeClass: 'pub-badge-request',
+ badgeIcon: 'fa-gavel',
+ badgeLabel: 'Data Collection',
+ statusClass: 'pub-badge-peer',
+ statusLabel: 'Law & Policy',
+ title: 'Digital Rights in the EU Framework',
+ lead: 'Dr. Elena Rostova',
+ updated: 'Updated 1 week ago',
+ center: 'Institute for Advanced European Studies',
+ desc: 'A comparative analysis of member state implementation of digital privacy directives and their impact on civil liberties across the EU.',
+ tags: ['Digital Rights', 'EU Law', 'Privacy'],
+ progress: 30,
+ },
+];
+
+const ResearchSearchResults = () => {
+ const [isSortOpen, setIsSortOpen] = useState(false);
+ const [selectedSort, setSelectedSort] = useState('Relevance');
+
+ return (
+
+
+ {/* Toolbar */}
+
+
+ Showing 1–10 of 340 results
+
+
+
Sort by:
+
+
setIsSortOpen(!isSortOpen)}
+ >
+ {selectedSort}
+
+
+ {isSortOpen && (
+
+ {SORT_OPTIONS.map((opt) => (
+
{ setSelectedSort(opt); setIsSortOpen(false); }}
+ >
+ {opt}
+
+ ))}
+
+ )}
+
+
+
+
+ {/* Result cards */}
+
+ {RESULTS.map((item, idx) => (
+
+
+
+
+
+ {item.badgeLabel}
+
+ {item.statusLabel}
+
+
+
+
+
+
+ {item.lead}
+
+
+ {item.updated}
+
+
+ {item.center}
+
+
+
+
{item.desc}
+
+
+ Tags:
+ {item.tags.map((tag) => (
+ {tag}
+ ))}
+
+
+ {item.progress !== null && (
+
+
+ Progress
+ {item.progress}%
+
+
+
+ )}
+
+
+
+ View Details
+
+
+ Save
+
+
+
+ ))}
+
+
+ {/* Pagination */}
+
+
+ Previous
+
+
+ 1
+ 2
+ 3
+ ...
+ 34
+
+
+ Next
+
+
+
+
+ );
+};
+
+export default ResearchSearchResults;
diff --git a/app/components/research/search/ResearchSearchSidebar.tsx b/app/components/research/search/ResearchSearchSidebar.tsx
new file mode 100644
index 0000000..cc961c9
--- /dev/null
+++ b/app/components/research/search/ResearchSearchSidebar.tsx
@@ -0,0 +1,94 @@
+'use client';
+
+import React, { useState } from 'react';
+
+const DOMAINS = ['Law & Policy (42)', 'Cognitive Science (28)', 'Environmental Studies (35)', 'History & Humanities (50)', 'Economics (19)'];
+const STATUSES = ['Active', 'Data Collection', 'Review', 'Completed'];
+const TYPES = ['Researchers', 'Labs', 'Projects', 'Institutes'];
+
+const AccordionSection = ({
+ title,
+ open,
+ onToggle,
+ children,
+}: {
+ title: string;
+ open: boolean;
+ onToggle: () => void;
+ children: React.ReactNode;
+}) => (
+
+
+ {title}
+
+
+
+ {children}
+
+
+);
+
+const ResearchSearchSidebar = () => {
+ const [isDomainOpen, setIsDomainOpen] = useState(true);
+ const [isStatusOpen, setIsStatusOpen] = useState(true);
+ const [isTypeOpen, setIsTypeOpen] = useState(true);
+
+ return (
+
+ );
+};
+
+export default ResearchSearchSidebar;
diff --git a/app/contact/contact.json b/app/contact/contact.json
deleted file mode 100644
index 7b77f13..0000000
--- a/app/contact/contact.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "title": "Liên Hệ Với Chúng Tôi",
- "subtitle": "Chúng tôi luôn sẵn sàng hỗ trợ bạn 24/7",
- "contactInfo": {
- "address": {
- "label": "Địa chỉ",
- "value": "123 Nguyễn Huệ, Quận 1, TP.HCM",
- "icon": "📍"
- },
- "phone": {
- "label": "Điện thoại",
- "value": "+84 28 1234 5678",
- "icon": "📞"
- },
- "email": {
- "label": "Email",
- "value": "info@visaservice.com",
- "icon": "✉️"
- },
- "hours": {
- "label": "Giờ làm việc",
- "value": "Thứ 2 - Thứ 6: 8:00 - 18:00\nThứ 7: 8:00 - 12:00",
- "icon": "🕒"
- }
- },
- "offices": [
- {
- "name": "Văn Phòng TP.HCM",
- "address": "123 Nguyễn Huệ, Quận 1, TP.HCM",
- "phone": "+84 28 1234 5678",
- "email": "hcm@visaservice.com"
- },
- {
- "name": "Văn Phòng Hà Nội",
- "address": "456 Hoàn Kiếm, Hà Nội",
- "phone": "+84 24 1234 5678",
- "email": "hanoi@visaservice.com"
- },
- {
- "name": "Văn Phòng Đà Nẵng",
- "address": "789 Hải Châu, Đà Nẵng",
- "phone": "+84 236 1234 567",
- "email": "danang@visaservice.com"
- }
- ],
- "formFields": [
- {
- "name": "fullName",
- "label": "Họ và tên",
- "type": "text",
- "required": true,
- "placeholder": "Nhập họ và tên của bạn"
- },
- {
- "name": "email",
- "label": "Email",
- "type": "email",
- "required": true,
- "placeholder": "example@email.com"
- },
- {
- "name": "phone",
- "label": "Số điện thoại",
- "type": "tel",
- "required": true,
- "placeholder": "+84 xxx xxx xxx"
- },
- {
- "name": "service",
- "label": "Dịch vụ quan tâm",
- "type": "select",
- "required": true,
- "options": [
- "Tư vấn visa",
- "Chuẩn bị hồ sơ",
- "Đặt vé máy bay",
- "Tour trọn gói",
- "Khác"
- ]
- },
- {
- "name": "message",
- "label": "Tin nhắn",
- "type": "textarea",
- "required": false,
- "placeholder": "Mô tả chi tiết nhu cầu của bạn..."
- }
- ]
-}
diff --git a/app/contact/page.tsx b/app/contact/page.tsx
index cd1f004..7001ebe 100644
--- a/app/contact/page.tsx
+++ b/app/contact/page.tsx
@@ -1,237 +1,13 @@
-"use client";
-
-import { useState, useEffect, FormEvent } from "react";
-import { ContactData } from "./types";
-import Breadcrumb from "../components/Breadcrumb";
-
-export default function ContactPage() {
- const [contactData, setContactData] = useState(null);
- const [loading, setLoading] = useState(true);
- const [formData, setFormData] = useState({
- name: "",
- email: "",
- phone: "",
- address: "",
- date: "",
- message: "",
- });
- const [isSubmitting, setIsSubmitting] = useState(false);
- const [submitStatus, setSubmitStatus] = useState<{
- type: "success" | "error" | null;
- message: string;
- }>({ type: null, message: "" });
-
- const apiUrl = process.env.NEXT_PUBLIC_API_URL || "http://localhost:3001";
-
- // Fetch contact data from CMS
- useEffect(() => {
- const fetchContactData = async () => {
- try {
- const response = await fetch(`${apiUrl}/api/contact`, { cache: 'no-store' });
- if (response.ok) {
- const data = await response.json();
- setContactData(data);
- }
- } catch (error) {
- console.error("Error fetching contact data:", error);
- } finally {
- setLoading(false);
- }
- };
-
- fetchContactData();
- }, [apiUrl]);
-
- const handleChange = (
- e: React.ChangeEvent
- ) => {
- const { name, value } = e.target;
- setFormData((prev) => ({ ...prev, [name]: value }));
- };
-
- const handleSubmit = async (e: FormEvent) => {
- e.preventDefault();
- setIsSubmitting(true);
- setSubmitStatus({ type: null, message: "" });
-
- try {
- const response = await fetch(`${apiUrl}/api/contact/submit`, {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- },
- body: JSON.stringify(formData),
- });
-
- const data = await response.json();
-
- if (response.ok && data.success) {
- setSubmitStatus({
- type: "success",
- message: data.message || "Thank you! We will contact you soon.",
- });
- setFormData({
- name: "",
- email: "",
- phone: "",
- address: "",
- date: "",
- message: "",
- });
- } else {
- setSubmitStatus({
- type: "error",
- message: data.error || "Something went wrong. Please try again.",
- });
- }
- } catch (error) {
- console.error("Submit error:", error);
- setSubmitStatus({
- type: "error",
- message: "Network error. Please check your connection and try again.",
- });
- } finally {
- setIsSubmitting(false);
- }
- };
-
- if (loading) {
- return (
-
- );
- }
-
- // Default values if API fails
- const hero = contactData?.hero || { title: "Contact Us", backgroundImage: "/assets/img/inner-page/breadcrumb.jpg" };
- const contactCards = contactData?.contactCards || [];
- const map = contactData?.map || { embedUrl: "" };
- const form = contactData?.form || {
- heading: "Send Us Message",
- description: "Have questions? Send us a message today.",
- fields: [],
- submitButton: { text: "SEND MESSAGE", icon: "fa-solid fa-arrow-right", buttonClass: "theme-btn style-2" }
- };
+import ContactHero from "../components/contact/ContactHero";
+import DepartmentDirectory from "../components/contact/DepartmentDirectory";
+import ContactSplit from "../components/contact/ContactSplit";
+export default function ContactUsPage() {
return (
- <>
- {/* Breadcrumb-Wrapper Section Start */}
-
-
- {/* Contact Icon Section Start */}
-
-
-
- {contactCards.map((card, index) => (
-
-
-
-
-
-
-
{card.title}
-
- {card.content.map((line, i) => (
-
- {card.type === "email" ? (
- {line}
- ) : card.type === "phone" ? (
- {line}
- ) : (
- line
- )}
- {i < card.content.length - 1 && }
-
- ))}
-
-
-
-
- ))}
-
-
-
-
- {/* Contact Section Start */}
-
-
-
-
{form.heading}
-
"{form.description}"
-
- {/* Status Message */}
- {submitStatus.type && (
-
- {submitStatus.message}
-
- )}
-
-
-
-
-
- {form.fields.map((field, index) => (
-
-
- {field.label}{field.required && " *"}
- {field.type === "textarea" ? (
-
- ) : (
-
- )}
-
-
- ))}
-
-
- {isSubmitting ? "SENDING..." : form.submitButton.text}
-
-
-
-
-
-
-
-
-
-
-
- {/* Map Section Start */}
- {map.embedUrl && (
-
- )}
- >
+
+
+
+
+
);
}
diff --git a/app/contact/types.ts b/app/contact/types.ts
deleted file mode 100644
index 8bdffd5..0000000
--- a/app/contact/types.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-export interface ContactCard {
- type: string;
- title: string;
- content: string[];
- iconType: string;
-}
-
-export interface ContactHero {
- title: string;
- backgroundImage: string;
-}
-
-export interface ContactMap {
- embedUrl: string;
-}
-
-export interface ContactFormField {
- name: string;
- label: string;
- type: string;
- placeholder: string;
- required: boolean;
- colClass: string;
-}
-
-export interface ContactSubmitButton {
- text: string;
- icon: string;
- buttonClass: string;
-}
-
-export interface ContactForm {
- heading: string;
- description: string;
- fields: ContactFormField[];
- submitButton: ContactSubmitButton;
-}
-
-export interface ContactData {
- hero: ContactHero;
- contactCards: ContactCard[];
- map: ContactMap;
- form: ContactForm;
-}
diff --git a/app/globals.css b/app/globals.css
index 22cc726..d360863 100644
--- a/app/globals.css
+++ b/app/globals.css
@@ -1,15 +1,22 @@
@import "tailwindcss";
-
-/* Mobile Menu Styles */
@import "./components/layout/Header/mobile-menu.css";
-
-.collapse {
- visibility: visible !important;
-}
-
-.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);
+
+ --shadow-hover: 0 10px 15px -3px rgba(0,0,0,0.08), 0 4px 6px -2px rgba(0,0,0,0.04);
+
+ --shadow-soft: 0 4px 6px -1px rgba(0,0,0,0.05), 0 2px 4px -1px rgba(0,0,0,0.03);
+}
+
+@layer components {
+ .bento-item {
+ @apply border border-[--color-ui-border] bg-white;
+ }
+}
diff --git a/app/layout.tsx b/app/layout.tsx
index 547fd3f..ce11f84 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -1,5 +1,4 @@
import type { Metadata } from "next";
-import "./globals.css";
import Header from "./components/layout/Header/Header";
import Footer from "./components/layout/Footer/Footer";
@@ -9,9 +8,10 @@ import MouseCursor from "./components/MouseCursor";
import Script from "next/script";
export const metadata: Metadata = {
- title: "H.A.I Learning",
- description: "H.A.I Learning",
+ title: "ULDP",
+ description: "ULDP",
};
+import "./globals.css";
export default function RootLayout({
children,
diff --git a/app/page.tsx b/app/page.tsx
index a7caf9f..955e344 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -1,17 +1,10 @@
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';
+
// Force dynamic rendering - không cache
export const dynamic = 'force-dynamic';
@@ -37,16 +30,8 @@ export default async function Home() {
return (
<>
-
-
-
-
-
-
-
-
-
-
+
+
>
);
}
diff --git a/app/partnership/page.tsx b/app/partnership/page.tsx
new file mode 100644
index 0000000..678c17b
--- /dev/null
+++ b/app/partnership/page.tsx
@@ -0,0 +1,18 @@
+import "./partnership.css";
+import MainIntroBlock from "../components/partnership/MainIntroBlock";
+import NetworkHighlightBlock from "../components/partnership/NetworkHighlightBlock";
+import CollaborateCTA from "../components/partnership/CollaborateCTA";
+
+export default function PartnershipPage() {
+ return (
+
+
+
+
+ );
+}
diff --git a/app/partnership/partnership.css b/app/partnership/partnership.css
new file mode 100644
index 0000000..550cb9a
--- /dev/null
+++ b/app/partnership/partnership.css
@@ -0,0 +1,91 @@
+/* ============================================
+ Partnership Page — Scoped CSS
+ ============================================ */
+
+/* ---------- Grid ---------- */
+.partnership-page .grid-bento {
+ display: grid;
+ grid-template-columns: repeat(12, minmax(0, 1fr));
+ gap: 1.5rem;
+}
+
+/* ---------- Bento item ---------- */
+.partnership-page .bento-item {
+ background-color: #ffffff;
+ border: 1px solid #e5e7eb;
+}
+
+/* Card xanh đậm override bento-item */
+.partnership-page .ps-highlight-card {
+ background-color: #1a365d !important;
+ border-color: #1a365d !important;
+}
+
+/* ---------- Typography — thay thế h1/h2/h3 ---------- */
+.partnership-page .ps-heading,
+#collaborate-cta .ps-heading {
+ font-size: clamp(2.5rem, 5vw, 4.5rem);
+ font-weight: 700;
+ line-height: 1.1;
+}
+
+.partnership-page .ps-subheading,
+#collaborate-cta .ps-subheading {
+ font-size: clamp(1.75rem, 3vw, 2.25rem);
+ font-weight: 700;
+ line-height: 1.2;
+}
+
+.partnership-page .ps-form-title,
+#collaborate-cta .ps-form-title {
+ font-size: 1.5rem;
+ font-weight: 700;
+ line-height: 1.3;
+}
+
+/* ---------- Color tokens ---------- */
+
+.partnership-page .bg-brand-blue,
+#collaborate-cta .bg-brand-blue { background-color: #1b254b; }
+
+.partnership-page .text-brand-blue,
+#collaborate-cta .text-brand-blue { color: #1b254b; }
+
+.partnership-page .bg-brand-accent,
+#collaborate-cta .bg-brand-accent { background-color: #3b82f6; }
+
+.partnership-page .text-brand-accent,
+#collaborate-cta .text-brand-accent { color: #3b82f6; }
+
+.partnership-page .bg-brand-light,
+#collaborate-cta .bg-brand-light { background-color: #f8fbff; }
+
+.partnership-page .text-brand-light,
+#collaborate-cta .text-brand-light { color: #f8fbff; }
+
+.partnership-page .bg-brand-hover,
+#collaborate-cta .bg-brand-hover { background-color: #2d3a8c; }
+
+.partnership-page .hover\:bg-brand-hover:hover,
+#collaborate-cta .hover\:bg-brand-hover:hover { background-color: #2d3a8c; }
+
+.partnership-page .text-ui-muted,
+#collaborate-cta .text-ui-muted { color: #6b7280; }
+
+.partnership-page .text-ui-text,
+#collaborate-cta .text-ui-text { color: #111827; }
+
+.partnership-page .border-ui-border,
+#collaborate-cta .border-ui-border { border-color: #e5e7eb; }
+
+.partnership-page .bg-ui-bg,
+#collaborate-cta .bg-ui-bg { background-color: #f9fafb; }
+
+.partnership-page .hover\:shadow-md:hover {
+ box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
+}
+
+/* Explore Directory button */
+.partnership-page .ps-explore-btn:hover {
+ box-shadow: 0 8px 20px rgb(0 0 0 / 0.15);
+}
diff --git a/app/publications/page.tsx b/app/publications/page.tsx
new file mode 100644
index 0000000..0e54db4
--- /dev/null
+++ b/app/publications/page.tsx
@@ -0,0 +1,20 @@
+import React from 'react';
+import PublicationHeader from '@/app/components/publications/PublicationHeader';
+import PublicationSidebar from '@/app/components/publications/PublicationSidebar';
+import PublicationResults from '@/app/components/publications/PublicationResults';
+
+export default function PublicationsPage() {
+ return (
+
+ );
+}
diff --git a/app/research/page.tsx b/app/research/page.tsx
new file mode 100644
index 0000000..5fdf105
--- /dev/null
+++ b/app/research/page.tsx
@@ -0,0 +1,24 @@
+import React from 'react';
+import { Metadata } from 'next';
+import ResearchHero from '@/app/components/research/ResearchHero';
+import ResearchSearch from '@/app/components/research/ResearchSearch';
+import ResearchDomains from '@/app/components/research/ResearchDomains';
+import ProjectsAndCenters from '@/app/components/research/ProjectsAndCenters';
+import ResearchResources from '@/app/components/research/ResearchResources';
+
+export const metadata: Metadata = {
+ title: 'Research Hub | Liberal University',
+ description: 'Explore our cutting-edge research domains, active projects, and funding calls.',
+};
+
+export default function ResearchPage() {
+ return (
+
+ );
+}
diff --git a/app/research/search/page.tsx b/app/research/search/page.tsx
new file mode 100644
index 0000000..8344233
--- /dev/null
+++ b/app/research/search/page.tsx
@@ -0,0 +1,26 @@
+import React from 'react';
+import { Metadata } from 'next';
+import ResearchSearchHeader from '@/app/components/research/search/ResearchSearchHeader';
+import ResearchSearchSidebar from '@/app/components/research/search/ResearchSearchSidebar';
+import ResearchSearchResults from '@/app/components/research/search/ResearchSearchResults';
+
+export const metadata: Metadata = {
+ title: 'Search Research | Liberal University',
+ description: 'Search across researchers, labs, projects, and institutes.',
+};
+
+export default function ResearchSearchPage() {
+ return (
+
+ );
+}
diff --git a/package.json b/package.json
index 735f72e..b434911 100644
--- a/package.json
+++ b/package.json
@@ -13,18 +13,19 @@
"dependencies": {
"axios": "^1.13.4",
"next": "16.1.6",
+ "postcss": "^8.5.9",
"react": "19.2.3",
"react-dom": "19.2.3"
},
"devDependencies": {
- "@tailwindcss/postcss": "^4",
+ "@tailwindcss/postcss": "^4.2.2",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "16.1.6",
"sass": "^1.98.0",
- "tailwindcss": "^4",
+ "tailwindcss": "^4.2.2",
"typescript": "^5"
}
}
diff --git a/public/assets/css/main.css b/public/assets/css/main.css
index 1030cd5..a008f28 100644
--- a/public/assets/css/main.css
+++ b/public/assets/css/main.css
@@ -15,26 +15,30 @@ Version: 1.0.0
01. Variables & Mixins
02. Typography
03. Buttons
-04. About
-05. Animation
-06. Brand
-07. Contact
-08. Cta
-09. Faq
-10. Feature
-11. Footer
-12. Header
-13. Helping
-14. Hero
-15. Marquee
-16. Meanmenu
-17. News
-18. Preloader
-19. Pricing
-20. Section
-21. Service
-22. Testimonial
-23. Visa
+04. About +
+05. Accreditation +
+06. Animation
+07. Brand
+08. Contact +
+09. Cta
+10. Faq
+11. Feature
+12. Footer
+13. Header
+14. Helping
+15. Hero
+16 Home +
+17. Marquee
+18. Meanmenu
+19. News
+20. Preloader
+21. Pricing
+22. Publication +
+23. Research +
+24. Section
+25. Service
+26. Testimonial
+27. Visa
--------------------------------------------------------------
@@ -147,7 +151,7 @@ input {
color: var(--white);
}
-h1,
+/* h1,
h2,
h3,
h4,
@@ -158,7 +162,7 @@ h6 {
padding: 0;
color: var(--header);
transition: all 0.4s ease-in-out;
-}
+} */
h1 {
font-size: 72px;
@@ -287,254 +291,975 @@ span {
margin: 0px;
}
-.about-wrapper .about-image {
- max-width: 375px;
- position: relative;
- z-index: 9;
+/* ============================================================
+ ABOUT PAGE
+ ============================================================ */
+
+.about-hero {
+ padding: 80px 0;
+ background-color: #f8fbff;
+ position: relative;
+ overflow: hidden;
}
-@media (max-width: 1399px) {
- .about-wrapper .about-image {
- max-width: initial;
- }
+
+.about-hero__content {
+ display: flex;
+ flex-direction: column;
+ gap: 1.5rem;
}
-.about-wrapper .about-image img {
- width: 100%;
- height: 100%;
- border-radius: 16px;
+
+.about-hero__badge {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.75rem;
}
-.about-wrapper .about-image .about-image-2 {
- position: absolute;
- bottom: -170px;
- right: -238px;
+
+.about-hero__badge-line {
+ display: inline-block;
+ width: 2rem;
+ height: 2px;
+ background: #1b254b;
}
-@media (max-width: 1399px) {
- .about-wrapper .about-image .about-image-2 {
- max-width: 250px;
- right: 0;
- bottom: 0;
- }
+
+.about-hero__badge-text {
+ font-size: 0.8rem;
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+ color: #6b7280;
}
-.about-wrapper .about-image .bg-shape {
- position: absolute;
- z-index: -1;
- top: 0;
- left: 0;
- right: 0;
+
+.about-hero__title {
+ font-size: clamp(2rem, 4vw, 3.5rem);
+ font-weight: 700;
+ color: #1b254b;
+ line-height: 1.15;
+ margin: 0;
}
-@media (max-width: 1399px) {
- .about-wrapper .about-image .bg-shape {
- display: none;
- }
+
+.about-hero__title span {
+ color: var(--theme, #E13833);
}
-.about-wrapper .about-image .bg-shape img {
- width: initial;
- height: initial;
+
+.about-hero__desc {
+ font-size: 1.05rem;
+ color: #6b7280;
+ line-height: 1.7;
+ max-width: 36rem;
+ margin: 0;
}
-.about-wrapper .about-image .plane-shape {
- position: absolute;
- left: -38px;
- bottom: -163px;
- z-index: -1;
+
+.about-hero__actions {
+ padding-top: 0.5rem;
}
-@media (max-width: 1399px) {
- .about-wrapper .about-image .plane-shape {
- display: none;
- }
+
+.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-wrapper .about-image .plane-shape img {
- width: initial;
- height: initial;
+
+.about-hero__btn:hover {
+ background-color: #151c3a;
}
-.about-wrapper .about-image .top-shape {
- position: absolute;
- right: -200px;
- top: 0;
+
+/* Image side */
+.about-hero__image-wrap {
+ position: relative;
+ border-radius: 1rem;
+ overflow: visible;
}
-@media (max-width: 1399px) {
- .about-wrapper .about-image .top-shape {
- display: none;
- }
+
+.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;
}
-.about-wrapper .about-image .top-shape img {
- width: initial;
- height: initial;
+
+/* 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;
}
-.about-wrapper .about-content .text {
- margin-top: 24px;
- padding-left: 40px;
- border-left: 3px solid var(--border-2);
- margin-bottom: 30px;
+
+@media (max-width: 767px) {
+ .about-hero__badge-card {
+ display: none;
+ }
}
-@media (max-width: 1399px) {
- .about-wrapper .about-content .text {
- border-left: none;
- padding-left: 0;
- }
+
+.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-wrapper .about-content .about-item {
- display: flex;
- align-items: center;
- justify-content: space-between;
- border-top: 1px solid rgba(203, 204, 207, 0.24);
- padding-top: 24px;
+
+.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-wrapper .about-content .about-item {
- flex-wrap: wrap;
- gap: 30px;
- }
-}
-.about-wrapper .about-content .about-item .content span {
- font-size: 20px;
- font-weight: 500;
- color: var(--header);
- display: inline-block;
- margin-bottom: 5px;
-}
-.about-wrapper .about-content .about-item .content span img {
- margin-right: 8px;
-}
-.about-wrapper .about-content .list {
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding: 24px 0 32px;
- margin-bottom: 48px;
-}
-@media (max-width: 1399px) {
- .about-wrapper .about-content .list {
- margin-bottom: 30px;
- padding: 24px 0 30px;
- }
-}
-.about-wrapper .about-content .list li:not(:last-child) {
- margin-bottom: 10px;
-}
-@media (max-width: 1399px) {
- .about-wrapper .about-content .list li {
- font-size: 14px;
- }
-}
-.about-wrapper .about-content .list li i {
- color: var(--theme-2);
- margin-right: 8px;
+ .about-hero {
+ padding: 80px 0 60px;
+ }
+
+ .about-hero__image-wrap {
+ margin-top: 3rem;
+ }
}
-.about-section {
- position: relative;
- z-index: 9;
-}
-.about-section .top-shape {
- position: absolute;
- right: 0;
- top: -50px;
- z-index: -1;
-}
-@media (max-width: 1399px) {
- .about-section .top-shape {
- display: none;
- }
+/* ------------------------------------------------------------
+ Mission & Values In About Page
+ ------------------------------------------------------------ */
+.about-mission {
+ padding: 80px 0;
+ background-color: #f8f8f9;
+ border-top: 1px solid #e5e7eb;
}
-.about-wrapper-3 .about-content .text {
- margin-top: 20px;
- max-width: 616px;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding-bottom: 24px;
- margin-bottom: 30px;
+.about-mission__header {
+ max-width: 48rem;
+ margin: 0 auto 4rem;
}
-.about-wrapper-3 .about-content .about-list-item {
- display: flex;
- gap: 32px;
+
+.about-mission__badge {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.75rem;
+ margin-bottom: 1rem;
}
-@media (max-width: 1399px) {
- .about-wrapper-3 .about-content .about-list-item {
- flex-wrap: wrap;
- gap: 25px;
- }
+
+.about-mission__badge-line {
+ display: inline-block;
+ width: 2rem;
+ height: 2px;
+ background: #E13833;
}
-.about-wrapper-3 .about-content .about-list-item .loading-box {
- height: 256px;
- width: 214px;
- border-radius: 16px;
- position: relative;
- text-align: center;
+
+.about-mission__badge-text {
+ font-size: 0.8rem;
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+ color: #6b7280;
}
-.about-wrapper-3 .about-content .about-list-item .loading-box .loading-boxs {
- height: 200px;
- width: 200px;
- display: flex;
- align-items: center;
- justify-content: center;
- background: #0a4ebd;
- border-radius: 16px;
+
+.about-mission__title {
+ font-size: clamp(1.75rem, 3vw, 2.25rem);
+ font-weight: 700;
+ color: #1b254b;
+ margin-bottom: 1rem;
}
-.about-wrapper-3 .about-content .about-list-item .loading-box .loading-boxs .circle-bar {
- position: relative;
+
+.about-mission__subtitle {
+ font-size: 1.05rem;
+ color: #6b7280;
+ line-height: 1.7;
+ margin: 0;
}
-.about-wrapper-3 .about-content .about-list-item .loading-box .loading-boxs .circle-bar strong {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- font-size: 28px;
- font-weight: bold;
- color: var(--white);
+
+.about-mission__grid {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 2rem;
}
-.about-wrapper-3 .about-content .about-list-item .loading-box h6 {
- color: var(--white);
- font-weight: 500;
- font-size: 14px;
+
+@media (max-width: 991px) {
+ .about-mission__grid {
+ grid-template-columns: 1fr;
+ }
}
-.about-wrapper-3 .about-content .about-list-item .list-item .list {
- margin-bottom: 48px;
+
+.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-wrapper-3 .about-content .about-list-item .list-item .list li {
- font-size: 18px;
- font-weight: 500;
- color: var(--header);
- font-family: "Space Grotesk", serif;
+
+.about-mission__card:hover {
+ box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
-@media (max-width: 1399px) {
- .about-wrapper-3 .about-content .about-list-item .list-item .list li {
- font-size: 16px;
- }
+
+.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-wrapper-3 .about-content .about-list-item .list-item .list li:not(:last-child) {
- margin-bottom: 15px;
+
+.about-mission__card:hover .about-mission__icon-wrap {
+ background-color: #1b254b;
+ color: #ffffff;
+ border-top-color: #E13833;
}
-.about-wrapper-3 .about-content .about-list-item .list-item .list li i {
- margin-right: 8px;
- color: var(--theme-2);
+
+.about-mission__card-title {
+ font-size: 1.125rem;
+ font-weight: 700;
+ color: #1b254b;
+ margin-bottom: 0.75rem;
}
-.about-wrapper-3 .about-image img {
- width: 100%;
- height: 100%;
- border-radius: 8px;
+
+.about-mission__card-desc {
+ font-size: 0.95rem;
+ color: #6b7280;
+ line-height: 1.7;
+ margin: 0;
}
-.about-wrapper-3 .about-image.tp-clip-anim {
- width: 100%;
- display: grid;
- align-items: center;
- justify-items: center;
- overflow: hidden;
- position: relative;
+
+/* ------------------------------------------------------------
+ Why Paris In About Page
+ ------------------------------------------------------------ */
+.why-paris {
+ padding: 80px 0;
+ background: #ffffff;
}
-.about-wrapper-3 .about-image.tp-clip-anim .tp-anim-img {
- opacity: 0;
- width: 100%;
- height: 100%;
+
+.why-paris__image-grid {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 1rem;
}
-.about-wrapper-3 .about-image.tp-clip-anim .mask {
- background-size: cover;
- background-position: center;
- transform: scale(1.005);
+
+.why-paris__image-col {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
}
-.about-wrapper-3 .about-image.tp-clip-anim > * {
- grid-area: 1/1/2/2;
- width: 100%;
- height: 100%;
- max-height: 100%;
+
+.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 In About Page
+ ------------------------------------------------------------ */
+.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 In About Page
+ ------------------------------------------------------------ */
+.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 In About Page
+ ------------------------------------------------------------ */
+.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 In About Page
+ ------------------------------------------------------------ */
+.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; }
+}
+/*
+----------------------------------------------------------
+ End About Page
+----------------------------------------------------------
+*/
+
+/*
+-----------------------------------------------
+ Accreditation Page
+-----------------------------------------------
+*/
+
+/* Typography — dùng div thay h1/h2/h3 */
+.accreditation-page .acc-heading {
+ font-size: clamp(2.5rem, 5vw, 3.75rem);
+ line-height: 1.15;
+}
+
+.accreditation-page .acc-section-title {
+ font-size: 1.875rem;
+ line-height: 1.3;
+}
+
+.accreditation-page .acc-card-title {
+ font-size: 1.25rem;
+ line-height: 1.4;
+}
+
+/* ---------- Color tokens ---------- */
+.accreditation-page .text-brand-blue { color: #1b254b; }
+.accreditation-page .bg-brand-blue { background-color: #1b254b; }
+.accreditation-page .bg-brand-light { background-color: #f8fbff; }
+.accreditation-page .bg-brand-accent { background-color: #3b82f6; }
+.accreditation-page .text-brand-accent { color: #3b82f6; }
+.accreditation-page .text-ui-text { color: #111827; }
+.accreditation-page .text-ui-muted { color: #6b7280; }
+.accreditation-page .bg-ui-bg { background-color: #f9fafb; }
+.accreditation-page .border-ui-border { border-color: #e5e7eb; }
+
+/* ---------- Shadow tokens ---------- */
+.accreditation-page .shadow-soft {
+ box-shadow: 0 1px 3px rgb(0 0 0 / 0.06), 0 1px 2px rgb(0 0 0 / 0.04);
+}
+.accreditation-page .shadow-hover,
+.accreditation-page .hover\:shadow-hover:hover {
+ box-shadow: 0 8px 24px rgb(0 0 0 / 0.1);
+}
+
+/* ---------- Border radius fix ---------- */
+.accreditation-page .rounded-\[24px\] { border-radius: 24px !important; }
+.accreditation-page .rounded-lg { border-radius: 8px !important; }
+.accreditation-page .rounded-md { border-radius: 6px !important; }
+
+/* Mesh background gradient */
+.accreditation-page .mesh-bg {
+ background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 40%, #ffffff 100%);
+}
+
+/* rounded-xl fix */
+.accreditation-page .rounded-xl { border-radius: 12px !important; }
+/*
+-----------------------------------------------
+ End Accreditation Page
+-----------------------------------------------
+*/
+
+
@-webkit-keyframes rippleOne {
70% {
-webkit-box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
@@ -1422,339 +2147,172 @@ span {
opacity: 1;
}
-.contact-wrapper-2 {
- display: flex;
- align-items: center;
- gap: 325px;
-}
-@media (max-width: 1399px) {
- .contact-wrapper-2 {
- flex-wrap: wrap;
- gap: 30px;
- }
-}
-.contact-wrapper-2 .contact-from-box {
- padding: 60px 48px;
- background-color: var(--theme-2);
- border-radius: 24px;
- width: 644px;
-}
-@media (max-width: 1399px) {
- .contact-wrapper-2 .contact-from-box {
- padding: 30px;
- }
-}
-.contact-wrapper-2 .contact-from-box h3 {
- color: var(--white);
- font-size: 32px;
- text-transform: uppercase;
- margin-bottom: 30px;
- text-align: center;
-}
-@media (max-width: 1399px) {
- .contact-wrapper-2 .contact-from-box h3 {
- font-size: 25px;
- margin-bottom: 20px;
- }
-}
-@media (max-width: 575px) {
- .contact-wrapper-2 .contact-from-box h3 {
- font-size: 20px;
- }
-}
-.contact-wrapper-2 .contact-from-box .form-clt input, .contact-wrapper-2 .contact-from-box .form-clt textarea {
- width: 100%;
- outline: none;
- border: none;
- background: transparent;
- padding: 16px 0;
- font-weight: 400;
- font-size: 16px;
- color: rgba(255, 255, 255, 0.7);
- line-height: 1;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
-}
-.contact-wrapper-2 .contact-from-box .form-clt input::placeholder, .contact-wrapper-2 .contact-from-box .form-clt textarea::placeholder {
- color: rgba(255, 255, 255, 0.7);
-}
-.contact-wrapper-2 .contact-from-box .form-clt .nice-select {
- width: 100% !important;
+/*
+-----------------------------------------------
+ Contact Page
+-----------------------------------------------
+*/
+
+@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&display=swap');
+
+/* Reset heading override từ main.css */
+.contact-page h1,
+.contact-page h2,
+.contact-page h3,
+.contact-page h4 {
+ font-size: unset;
+ font-weight: unset;
+ line-height: unset;
+ margin: 0;
padding: 0;
- padding-bottom: 10px;
- padding-top: 20px;
- font-size: 16px;
- border-radius: 0;
- background-color: transparent;
- border: none;
- box-shadow: none;
- font-size: 16px;
- color: rgba(255, 255, 255, 0.7);
- font-weight: 400;
- width: initial;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
-}
-.contact-wrapper-2 .contact-from-box .form-clt .nice-select::after {
- right: 0;
- width: 10px;
- height: 8px;
- border-bottom: 2px solid transparent;
- border-right: 2px solid transparent;
- margin-top: 0;
- background-color: rgba(255, 255, 255, 0.7);
- clip-path: polygon(100% 0, 49% 100%, 0 0);
- -webkit-transform: rotate(0eg);
- transform: rotate(0deg);
- top: 36%;
-}
-.contact-wrapper-2 .contact-from-box .form-clt .nice-select .list {
- width: 100%;
- background-color: var(--bg);
- top: 60%;
- font-size: 16px;
- color: var(--header);
-}
-.contact-wrapper-2 .contact-from-box .form-clt .nice-select .focus {
- background-color: transparent;
- font-weight: 400;
- color: var(--text);
-}
-.contact-wrapper-2 .contact-from-box .form-clt .nice-select .option {
- border: none;
-}
-.contact-wrapper-2 .contact-from-box .form-clt .nice-select .option:hover {
- background-color: transparent;
-}
-.contact-wrapper-2 .contact-from-box .contact-btn {
- margin-top: 48px;
- text-align: center;
- margin-bottom: 48px;
-}
-@media (max-width: 1399px) {
- .contact-wrapper-2 .contact-from-box .contact-btn {
- margin-top: 30px;
- margin-bottom: 30px;
- }
-}
-.contact-wrapper-2 .contact-from-box .contact-btn .theme-btn {
- color: var(--white);
-}
-.contact-wrapper-2 .contact-from-box .contact-btn .theme-btn:hover {
- border: 1px solid var(--theme);
-}
-.contact-wrapper-2 .contact-from-box h5 {
- font-weight: 500;
- color: var(--white);
- margin-bottom: 10px;
-}
-.contact-wrapper-2 .contact-from-box h2 {
- font-size: 40px;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding-bottom: 10px;
- margin-bottom: 5px;
-}
-@media (max-width: 1399px) {
- .contact-wrapper-2 .contact-from-box h2 {
- font-size: 25px;
- }
-}
-@media (max-width: 575px) {
- .contact-wrapper-2 .contact-from-box h2 {
- font-size: 20px;
- }
-}
-.contact-wrapper-2 .contact-from-box h2 a {
- color: var(--white);
-}
-.contact-wrapper-2 .contact-from-box p {
- color: rgba(255, 255, 255, 0.7);
-}
-.contact-wrapper-2 .video-btn {
- width: 88px;
- height: 88px;
- line-height: 88px;
- text-align: center;
- background-color: var(--theme);
- color: var(--white);
- position: relative;
- font-size: 16px;
- border-radius: 100px;
- z-index: 999;
- display: inline-block;
-}
-@media (max-width: 991px) {
- .contact-wrapper-2 .video-btn {
- margin-left: 30px;
- }
-}
-@media (max-width: 575px) {
- .contact-wrapper-2 .video-btn {
- width: 70px;
- height: 70px;
- line-height: 70px;
- margin-left: 15px;
- }
-}
-.contact-wrapper-2 .video-btn::before {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- width: 100%;
- height: 100%;
- content: "";
- width: 120px;
- height: 120px;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- background: rgba(225, 56, 51, 0.24);
- border-radius: 100%;
- border: 2px solid var(--white);
-}
-@media (max-width: 575px) {
- .contact-wrapper-2 .video-btn::before {
- width: 100px;
- height: 100px;
- }
}
-.contact-section-2 {
- background-attachment: fixed;
+/* Typography */
+.contact-page .contact-heading {
+ font-family: 'Playfair Display', serif;
+ font-size: clamp(2rem, 4vw, 3.5rem);
+ font-weight: 700;
+ line-height: 1.15;
}
-.contact-from-wrapper {
- background-color: var(--bg);
- border-radius: 16px;
- padding: 48px;
-}
-@media (max-width: 1399px) {
- .contact-from-wrapper {
- padding: 30px;
- }
-}
-.contact-from-wrapper .form-clt {
- position: relative;
-}
-.contact-from-wrapper .form-clt span {
- color: var(--header);
- font-size: 18px;
- font-weight: 500;
- font-family: "Space Grotesk", serif;
- margin-bottom: 10px;
- display: inline-block;
-}
-.contact-from-wrapper .form-clt input, .contact-from-wrapper .form-clt textarea {
- width: 100%;
- border: none;
- outline: none;
- background: var(--white);
- color: var(--text);
- border-radius: 100px;
- padding: 18px 20px;
-}
-@media (max-width: 767px) {
- .contact-from-wrapper .form-clt input, .contact-from-wrapper .form-clt textarea {
- padding: 14px 20px;
- }
-}
-@media (max-width: 575px) {
- .contact-from-wrapper .form-clt input, .contact-from-wrapper .form-clt textarea {
- padding: 12px 18px;
- }
-}
-.contact-from-wrapper .form-clt input::placeholder, .contact-from-wrapper .form-clt textarea::placeholder {
- color: var(--text);
-}
-.contact-from-wrapper .form-clt textarea {
- padding-bottom: 100px;
- resize: none;
- border-radius: 40px;
-}
-.contact-from-wrapper .cheak-list-item {
- margin-top: 30px;
- margin-bottom: 48px;
-}
-@media (max-width: 1399px) {
- .contact-from-wrapper .cheak-list-item {
- margin-bottom: 30px;
- }
-}
-.contact-from-wrapper .cheak-list-item .cheak-list {
- display: flex;
- align-items: center;
- gap: 80px;
- margin-bottom: 24px;
-}
-@media (max-width: 1399px) {
- .contact-from-wrapper .cheak-list-item .cheak-list {
- flex-wrap: wrap;
- gap: 22px;
- }
-}
-.contact-from-wrapper .cheak-list-item .cheak-list .form-check {
- flex-basis: 200px;
-}
-.contact-from-wrapper .cheak-list-item .cheak-list .form-check-label {
- font-size: 18px;
- color: var(--header);
- font-weight: 500;
- font-family: "Space Grotesk", serif;
-}
-.contact-from-wrapper .cheak-list-item .cheak-list .form-check .form-check-input {
- float: left;
- transform: translateY(0px);
- border-radius: 100px;
- border: 1px solid var(--text);
- background-color: var(--white);
-}
-.contact-from-wrapper .cheak-list-item .cheak-list .form-check .form-check-input:checked {
- background-color: var(--theme-2);
- border: 1px solid var(--theme-2);
-}
-.contact-from-wrapper .theme-btn {
- width: 100%;
-}
-.contact-from-wrapper .theme-btn.style-2 {
- width: initial;
+.contact-page .contact-card-title {
+ font-family: 'Playfair Display', serif;
+ font-size: 1.1rem;
+ font-weight: 700;
+ line-height: 1.3;
}
-.contact-icon-item {
- display: flex;
- align-items: center;
- gap: 24px;
- background-color: var(--bg);
- border-radius: 16px;
- padding: 30px;
+.contact-page .contact-form-title {
+ font-family: 'Playfair Display', serif;
+ font-size: 1.75rem;
+ font-weight: 700;
+ line-height: 1.2;
}
-@media (max-width: 991px) {
- .contact-icon-item {
- flex-wrap: wrap;
- }
+
+.contact-page .contact-pin-title {
+ font-family: 'Playfair Display', serif;
+ font-size: 0.875rem;
+ font-weight: 700;
}
-.contact-icon-item .icon {
- width: 64px;
- height: 64px;
- line-height: 64px;
- text-align: center;
- border-radius: 100px;
- background-color: var(--header);
- color: var(--white);
- transition: all 0.4s ease-in-out;
- font-size: 20px;
+
+/* Color token: --primary */
+.contact-page .text-primary,
+.contact-page .hover\:text-primary:hover { color: rgb(38, 60, 111); }
+
+.contact-page .bg-primary { background-color: rgb(38, 60, 111) !important; }
+
+.contact-page .border-primary { border-color: rgb(38, 60, 111); }
+
+.contact-page .focus\:border-primary:focus { border-color: rgb(38, 60, 111); }
+.contact-page .focus\:ring-primary:focus { --tw-ring-color: rgb(38, 60, 111); }
+
+/* group-hover bg-primary */
+.contact-page .group:hover .group-hover\:bg-primary { background-color: rgb(38, 60, 111) !important; }
+.contact-page .group:hover .group-hover\:text-white { color: #fff; }
+
+/* Color token: --dark */
+.contact-page .text-dark { color: #111827; }
+
+/* bg-white/5, /10 */
+.contact-page .bg-white\/5 { background-color: rgba(255,255,255,0.05); }
+.contact-page .bg-white\/10 { background-color: rgba(255,255,255,0.10); }
+
+/* border-white/20, /50 */
+.contact-page .border-white\/20 { border-color: rgba(255,255,255,0.20); }
+.contact-page .border-white\/50 { border-color: rgba(255,255,255,0.50); }
+
+/* text-white/80, /90 */
+.contact-page .text-white\/80 { color: rgba(255,255,255,0.80); }
+.contact-page .text-white\/90 { color: rgba(255,255,255,0.90); }
+
+/* bg-white/95 */
+.contact-page .bg-white\/95 { background-color: rgba(255,255,255,0.95); }
+
+/* border-t border-white/20 */
+.contact-page .border-white\/20 { border-color: rgba(255,255,255,0.20); }
+
+/* rounded fixes — main.css có thể reset border-radius */
+.contact-page .rounded-\[16px\] { border-radius: 16px !important; }
+.contact-page .rounded-\[24px\] { border-radius: 24px !important; }
+.contact-page .rounded-\[12px\] { border-radius: 12px !important; }
+.contact-page .rounded-full { border-radius: 9999px !important; }
+.contact-page .rounded-\[12px\] { border-radius: 12px !important; }
+
+/* button reset */
+.contact-page button,
+.contact-page input,
+.contact-page select,
+.contact-page textarea {
+ font-size: inherit;
}
-.contact-icon-item .content p {
- margin-bottom: 5px;
+
+/* Send Message button */
+.contact-page .bg-primary.rounded-\[12px\] {
+ border-radius: 12px !important;
+ background-color: rgb(38, 60, 111) !important;
}
-.contact-icon-item .content h6 {
- font-size: 18px;
- font-weight: 500;
- line-height: 144%;
+
+.contact-page .bg-primary.rounded-\[12px\]:hover {
+ background-color: rgba(38, 60, 111, 0.9) !important;
}
-.contact-icon-item:hover .icon {
- background-color: var(--theme);
+
+/* Icon color fix */
+.contact-page .text-primary i,
+.contact-page i.text-primary,
+.contact-page .text-primary svg,
+.contact-page svg.text-primary {
+ color: rgb(38, 60, 111) !important;
}
+/* Icon box bg-blue-50 */
+.contact-page .bg-blue-50 {
+ background-color: rgb(239, 246, 255) !important;
+}
+
+/* blue-100 border */
+.contact-page .border-blue-100 {
+ border-color: rgb(219, 234, 254) !important;
+}
+
+/* info box bg-blue-50 text-primary */
+.contact-page .bg-blue-50.rounded-\[12px\] {
+ background-color: rgb(239, 246, 255) !important;
+}
+
+/* Icon box hover — đổi icon sang trắng khi hover card */
+.contact-page .group:hover .group-hover\:text-white i,
+.contact-page .group:hover .group-hover\:text-white svg {
+ color: #ffffff !important;
+}
+
+/* Form inputs border-radius và placeholder */
+.contact-page input,
+.contact-page select,
+.contact-page textarea {
+ border-radius: 12px !important;
+}
+
+.contact-page input::placeholder,
+.contact-page textarea::placeholder {
+ color: #9ca3af !important;
+}
+
+/* contact-form-title size */
+.contact-page .contact-form-title {
+ font-size: 2rem !important;
+}
+
+/* Consent checkbox alignment */
+.contact-page .custom-checkbox {
+ margin-top: 2px !important;
+ flex-shrink: 0;
+}
+/*
+-----------------------------------------------
+End Contact Page
+-----------------------------------------------
+*/
+
.map-items .googpemap iframe {
width: 100%;
height: 724px;
@@ -4248,6 +4806,526 @@ span {
color: var(--header);
}
+/* ============================================================
+ HOME PAGE — shared styles
+ ============================================================ */
+
+/* ------------------------------------------------------------
+ Hero Section In Home Page
+ ------------------------------------------------------------ */
+.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 In Home Page
+ ------------------------------------------------------------ */
+.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 In Home Page
+ ------------------------------------------------------------ */
+.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;
+}
+/*
+------------------------------------------------------
+ End Home Page
+------------------------------------------------------
+*/
+
.sticky {
position: fixed !important;
top: 0 !important;
@@ -5041,599 +6119,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;
}
@@ -7168,6 +7653,1541 @@ html.lenis, html.lenis body {
transform: translateY(-10px);
}
+/*
+---------------------------------------------------------------
+ PUBLICATIONS PAGE
+---------------------------------------------------------------
+*/
+
+/* --- Local CSS Variables (override globals for this page) --- */
+.pub-wrapper {
+ --pub-blue: #263c6f;
+ --pub-blue-hover: #1d2e55;
+ --pub-blue-light: #f0f4f8;
+ --pub-border: #e5e7eb;
+ --pub-text: #111827;
+ --pub-muted: #6b7280;
+ --pub-bg: #f9fafb;
+ --pub-accent: #3b82f6;
+
+ background-color: var(--pub-bg);
+ width: 100%;
+}
+
+/*
+---------------------------------------------------------------
+ SEARCH HEADER SECTION In Publications Page
+---------------------------------------------------------------
+*/
+.pub-wrapper #repo-header {
+ width: 100%;
+ background-color: #ffffff;
+ border-bottom: 1px solid var(--pub-border);
+ padding-top: 3rem;
+ padding-bottom: 3rem;
+}
+
+.pub-wrapper #repo-header h1 {
+ font-size: 2.25rem;
+ font-weight: 700;
+ color: var(--pub-text);
+ letter-spacing: -0.025em;
+ margin-bottom: 0.5rem;
+ line-height: 2.5rem;
+}
+
+.pub-wrapper #repo-header p {
+ color: var(--pub-muted);
+ font-size: 1.125rem;
+ margin: 0;
+}
+
+/* Search bar */
+.pub-wrapper .pub-search-bar {
+ position: relative;
+ width: 100%;
+ border-radius: 0.75rem;
+ box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
+}
+
+.pub-wrapper .pub-search-bar input {
+ display: block;
+ width: 100%;
+ padding: 1rem 8rem 1rem 3rem;
+ border: 1px solid var(--pub-border);
+ border-radius: 0.75rem;
+ font-size: 1.125rem;
+ color: var(--pub-text);
+ background-color: #ffffff;
+ outline: none;
+ transition: border-color 0.2s, box-shadow 0.2s;
+ box-sizing: border-box;
+}
+
+.pub-wrapper .pub-search-bar input::placeholder {
+ color: var(--pub-muted);
+}
+
+.pub-wrapper .pub-search-bar input:focus {
+ border-color: var(--pub-blue);
+ box-shadow: 0 0 0 2px rgba(38, 60, 111, 0.15);
+}
+
+.pub-wrapper .pub-search-bar .pub-search-icon {
+ position: absolute;
+ top: 50%;
+ left: 1rem;
+ transform: translateY(-50%);
+ color: var(--pub-muted);
+ font-size: 1.125rem;
+ pointer-events: none;
+}
+
+.pub-wrapper .pub-search-bar .pub-search-btn-wrap {
+ position: absolute;
+ top: 50%;
+ right: 0.5rem;
+ transform: translateY(-50%);
+}
+
+/*
+---------------------------------------------------------------
+ BUTTONS In Publications Page
+---------------------------------------------------------------
+*/
+.pub-wrapper .pub-btn-primary {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.5rem 1rem;
+ background-color: var(--pub-blue);
+ color: #ffffff;
+ border: 1px solid var(--pub-blue);
+ border-radius: 0.5rem;
+ font-size: 0.875rem;
+ font-weight: 500;
+ cursor: pointer;
+ transition: background-color 0.2s;
+ text-decoration: none;
+ white-space: nowrap;
+}
+
+.pub-wrapper .pub-btn-primary:hover {
+ background-color: var(--pub-blue-hover);
+ color: #ffffff;
+}
+
+.pub-wrapper .pub-btn-outline {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.5rem 1rem;
+ background-color: #ffffff;
+ color: var(--pub-text);
+ border: 1px solid var(--pub-border);
+ border-radius: 0.5rem;
+ font-size: 0.875rem;
+ font-weight: 500;
+ cursor: pointer;
+ transition: border-color 0.2s, color 0.2s;
+ text-decoration: none;
+ white-space: nowrap;
+ box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
+}
+
+.pub-wrapper .pub-btn-outline:hover {
+ border-color: var(--pub-blue);
+ color: var(--pub-blue);
+}
+
+/*
+---------------------------------------------------------------
+ MAIN CONTENT LAYOUT In Publications Page
+---------------------------------------------------------------
+*/
+.pub-wrapper #repo-content {
+ padding-top: 2.5rem;
+ padding-bottom: 2.5rem;
+}
+
+.pub-wrapper .pub-layout {
+ display: flex;
+ flex-direction: column;
+ gap: 2rem;
+}
+
+@media (min-width: 1024px) {
+ .pub-wrapper .pub-layout {
+ flex-direction: row;
+ }
+}
+
+/*
+---------------------------------------------------------------
+ SIDEBAR In Publications Page
+---------------------------------------------------------------
+*/
+.pub-wrapper .pub-sidebar {
+ width: 100%;
+ flex-shrink: 0;
+}
+
+@media (min-width: 1024px) {
+ .pub-wrapper .pub-sidebar {
+ width: 20rem; /* 320px */
+ min-width: 20rem;
+ max-width: 20rem;
+ }
+}
+
+.pub-wrapper .pub-sidebar-inner {
+ background-color: #ffffff;
+ border-radius: 0.75rem;
+ border: 1px solid var(--pub-border);
+ box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
+ padding: 1.25rem;
+ position: sticky;
+ top: 7rem; /* below fixed header */
+ height: fit-content;
+}
+
+.pub-wrapper .pub-sidebar-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 1.5rem;
+ padding-bottom: 1rem;
+ border-bottom: 1px solid var(--pub-border);
+}
+
+.pub-wrapper .pub-sidebar-header h2 {
+ font-size: 1.125rem;
+ font-weight: 700;
+ color: var(--pub-text);
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ margin: 0;
+}
+
+.pub-wrapper .pub-sidebar-header h2 i {
+ color: var(--pub-blue);
+}
+
+.pub-wrapper .pub-sidebar-header .pub-clear-btn {
+ font-size: 0.875rem;
+ color: var(--pub-accent);
+ font-weight: 500;
+ background: none;
+ border: none;
+ cursor: pointer;
+ padding: 0;
+ text-decoration: none;
+}
+
+.pub-wrapper .pub-sidebar-header .pub-clear-btn:hover {
+ text-decoration: underline;
+}
+
+/* Accordion */
+.pub-wrapper .pub-accordion {
+ display: flex;
+ flex-direction: column;
+ gap: 1.5rem;
+}
+
+.pub-wrapper .pub-accordion-item {
+ /* no extra styles needed */
+}
+
+.pub-wrapper .pub-accordion-trigger {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ text-align: left;
+ font-size: 0.9375rem;
+ font-weight: 600;
+ color: var(--pub-text);
+ background: none;
+ border: none;
+ cursor: pointer;
+ padding: 0;
+ margin-bottom: 0.75rem;
+}
+
+.pub-wrapper .pub-accordion-trigger i {
+ font-size: 0.75rem;
+ color: var(--pub-muted);
+ transition: transform 0.3s ease;
+}
+
+.pub-wrapper .pub-accordion-trigger.open i {
+ transform: rotate(180deg);
+}
+
+.pub-wrapper .pub-accordion-body {
+ overflow: hidden;
+ transition: max-height 0.3s ease-out, opacity 0.3s ease-out;
+ max-height: 0;
+ opacity: 0;
+}
+
+.pub-wrapper .pub-accordion-body.open {
+ max-height: 600px;
+ opacity: 1;
+}
+
+.pub-wrapper .pub-accordion-body .pub-filter-list {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+
+/* Filter checkbox labels */
+.pub-wrapper .pub-filter-label {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ cursor: pointer;
+}
+
+.pub-wrapper .pub-filter-label span {
+ font-size: 0.875rem;
+ color: var(--pub-text);
+ transition: color 0.15s;
+}
+
+.pub-wrapper .pub-filter-label:hover span {
+ color: var(--pub-blue);
+}
+
+/* Custom checkbox */
+.pub-wrapper .pub-checkbox {
+ appearance: none;
+ -webkit-appearance: none;
+ width: 1.15em;
+ height: 1.15em;
+ border: 1px solid var(--pub-border);
+ border-radius: 0.25em;
+ background-color: #ffffff;
+ display: grid;
+ place-content: center;
+ cursor: pointer;
+ flex-shrink: 0;
+ transition: background-color 0.15s, border-color 0.15s;
+}
+
+.pub-wrapper .pub-checkbox::before {
+ content: "";
+ width: 0.65em;
+ height: 0.65em;
+ transform: scale(0);
+ transition: transform 120ms ease-in-out;
+ background-color: #ffffff;
+ clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
+}
+
+.pub-wrapper .pub-checkbox:checked {
+ background-color: var(--pub-blue);
+ border-color: var(--pub-blue);
+}
+
+.pub-wrapper .pub-checkbox:checked::before {
+ transform: scale(1);
+}
+
+/* Year range inputs */
+.pub-wrapper .pub-year-range {
+ display: flex;
+ gap: 0.5rem;
+ padding-top: 0.5rem;
+}
+
+.pub-wrapper .pub-year-range input {
+ width: 50%;
+ padding: 0.375rem 0.5rem;
+ border: 1px solid var(--pub-border);
+ border-radius: 0.25rem;
+ font-size: 0.875rem;
+ color: var(--pub-text);
+ background-color: #ffffff;
+ outline: none;
+ transition: border-color 0.2s;
+ box-sizing: border-box;
+}
+
+.pub-wrapper .pub-year-range input:focus {
+ border-color: var(--pub-blue);
+}
+
+/*
+-----------------------------------------------------------------
+ RESULTS AREA In Publications Page
+-----------------------------------------------------------------
+*/
+.pub-wrapper .pub-results {
+ flex: 1;
+ min-width: 0;
+}
+
+/* Results toolbar */
+.pub-wrapper .pub-results-toolbar {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ align-items: center;
+ background-color: #ffffff;
+ padding: 1rem;
+ border-radius: 0.75rem;
+ border: 1px solid var(--pub-border);
+ box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
+ margin-bottom: 1.5rem;
+}
+
+@media (min-width: 640px) {
+ .pub-wrapper .pub-results-toolbar {
+ flex-direction: row;
+ justify-content: space-between;
+ }
+}
+
+.pub-wrapper .pub-results-count {
+ font-size: 0.875rem;
+ color: var(--pub-text);
+}
+
+.pub-wrapper .pub-results-count strong {
+ font-weight: 700;
+}
+
+.pub-wrapper .pub-sort-wrap {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+}
+
+.pub-wrapper .pub-sort-wrap label {
+ font-size: 0.875rem;
+ color: var(--pub-muted);
+ white-space: nowrap;
+}
+
+.pub-wrapper .pub-sort-select {
+ border: 1px solid var(--pub-border);
+ border-radius: 0.5rem;
+ padding: 0.375rem 0.75rem;
+ font-size: 0.875rem;
+ color: var(--pub-text);
+ background-color: #ffffff;
+ outline: none;
+ cursor: pointer;
+ transition: border-color 0.2s;
+ min-width: 140px;
+}
+
+.pub-wrapper .pub-sort-select:focus,
+.pub-wrapper .pub-sort-select:hover {
+ border-color: var(--pub-blue);
+}
+
+/* Sort dropdown (custom React dropdown) */
+.pub-wrapper .pub-sort-dropdown {
+ position: relative;
+}
+
+.pub-wrapper .pub-sort-dropdown-btn {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 1rem;
+ border: 1px solid var(--pub-border);
+ border-radius: 0.5rem;
+ padding: 0.375rem 0.75rem;
+ font-size: 0.875rem;
+ background-color: #ffffff;
+ color: var(--pub-text);
+ cursor: pointer;
+ min-width: 140px;
+ transition: border-color 0.2s;
+ outline: none;
+}
+
+.pub-wrapper .pub-sort-dropdown-btn:hover,
+.pub-wrapper .pub-sort-dropdown-btn.open {
+ border-color: var(--pub-blue);
+}
+
+.pub-wrapper .pub-sort-dropdown-btn i {
+ font-size: 0.625rem;
+ color: var(--pub-muted);
+ transition: transform 0.3s;
+}
+
+.pub-wrapper .pub-sort-dropdown-btn.open i {
+ transform: rotate(180deg);
+}
+
+.pub-wrapper .pub-sort-dropdown-menu {
+ position: absolute;
+ top: calc(100% + 4px);
+ right: 0;
+ width: 100%;
+ background-color: #ffffff;
+ border: 1px solid var(--pub-border);
+ border-radius: 0.5rem;
+ box-shadow: 0 10px 15px -3px rgba(0,0,0,0.08), 0 4px 6px -2px rgba(0,0,0,0.04);
+ z-index: 50;
+ overflow: hidden;
+ padding: 0.25rem 0;
+}
+
+.pub-wrapper .pub-sort-dropdown-option {
+ padding: 0.5rem 1rem;
+ font-size: 0.875rem;
+ cursor: pointer;
+ transition: background-color 0.15s;
+ color: var(--pub-text);
+}
+
+.pub-wrapper .pub-sort-dropdown-option:hover {
+ background-color: #f9fafb;
+}
+
+.pub-wrapper .pub-sort-dropdown-option.selected {
+ background-color: var(--pub-blue-light);
+ color: var(--pub-blue);
+ font-weight: 600;
+}
+
+/*
+---------------------------------------------------------------
+ PUBLICATION CARD In Publications Page
+---------------------------------------------------------------
+*/
+.pub-wrapper .pub-card-list {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+.pub-wrapper .pub-card {
+ background-color: #ffffff;
+ border-radius: 0.75rem;
+ border: 1px solid var(--pub-border);
+ padding: 1.5rem;
+ transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
+ cursor: default;
+}
+
+.pub-wrapper .pub-card:hover {
+ border-color: var(--pub-blue);
+ box-shadow: 0 10px 15px -3px rgba(0,0,0,0.08), 0 4px 6px -2px rgba(0,0,0,0.04);
+}
+
+/* Card top row: title + badges */
+.pub-wrapper .pub-card-top {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ margin-bottom: 0.75rem;
+}
+
+@media (min-width: 768px) {
+ .pub-wrapper .pub-card-top {
+ flex-direction: row;
+ justify-content: space-between;
+ }
+}
+
+.pub-wrapper .pub-card-title {
+ font-size: 1.25rem;
+ font-weight: 700;
+ color: var(--pub-text);
+ line-height: 1.4;
+ margin: 0;
+ transition: color 0.2s;
+}
+
+.pub-wrapper .pub-card:hover .pub-card-title {
+ color: var(--pub-blue);
+}
+
+.pub-wrapper .pub-card-title a {
+ color: inherit;
+ text-decoration: none;
+}
+
+.pub-wrapper .pub-card-title a:hover {
+ color: var(--pub-blue);
+}
+
+/* Badges */
+.pub-wrapper .pub-badges {
+ display: flex;
+ gap: 0.5rem;
+ flex-shrink: 0;
+ flex-wrap: wrap;
+}
+
+.pub-wrapper .pub-badge {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.25rem;
+ padding: 0.25rem 0.625rem;
+ border-radius: 0.25rem;
+ font-size: 0.75rem;
+ font-weight: 600;
+ border: 1px solid transparent;
+ white-space: nowrap;
+}
+
+.pub-wrapper .pub-badge-open {
+ background-color: #f0fdf4;
+ color: #15803d;
+ border-color: #bbf7d0;
+}
+
+.pub-wrapper .pub-badge-peer {
+ background-color: var(--pub-blue-light);
+ color: var(--pub-blue);
+ border-color: rgba(38, 60, 111, 0.2);
+}
+
+.pub-wrapper .pub-badge-institutional {
+ background-color: #fefce8;
+ color: #a16207;
+ border-color: #fde68a;
+}
+
+.pub-wrapper .pub-badge-request {
+ background-color: #eff6ff;
+ color: #1d4ed8;
+ border-color: #bfdbfe;
+}
+
+/* Card meta row */
+.pub-wrapper .pub-card-meta {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ gap: 0.5rem 1.5rem;
+ font-size: 0.875rem;
+ color: var(--pub-muted);
+ margin-bottom: 1rem;
+}
+
+.pub-wrapper .pub-card-meta .pub-meta-item {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+}
+
+.pub-wrapper .pub-card-meta .pub-meta-item strong {
+ color: var(--pub-text);
+ font-weight: 500;
+}
+
+/* Card abstract */
+.pub-wrapper .pub-card-abstract {
+ font-size: 0.875rem;
+ color: var(--pub-muted);
+ line-height: 1.625;
+ margin-bottom: 1rem;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+}
+
+/* Keywords */
+.pub-wrapper .pub-keywords {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ flex-wrap: wrap;
+ margin-bottom: 1rem;
+}
+
+.pub-wrapper .pub-keywords-label {
+ font-size: 0.75rem;
+ font-weight: 500;
+ color: var(--pub-muted);
+}
+
+.pub-wrapper .pub-keyword-tag {
+ display: inline-block;
+ padding: 0.25rem 0.5rem;
+ background-color: #f3f4f6;
+ color: #4b5563;
+ border-radius: 0.25rem;
+ font-size: 0.75rem;
+}
+
+/* Card actions */
+.pub-wrapper .pub-card-actions {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ padding-top: 1rem;
+ border-top: 1px solid var(--pub-border);
+ flex-wrap: wrap;
+}
+
+.pub-wrapper .pub-action-btn {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.5rem;
+ font-size: 0.875rem;
+ font-weight: 500;
+ background: none;
+ border: none;
+ cursor: pointer;
+ padding: 0;
+ transition: color 0.2s;
+ text-decoration: none;
+}
+
+.pub-wrapper .pub-action-btn-primary {
+ color: var(--pub-blue);
+}
+
+.pub-wrapper .pub-action-btn-primary:hover {
+ color: var(--pub-blue-hover);
+}
+
+.pub-wrapper .pub-action-btn-secondary {
+ color: var(--pub-muted);
+ margin-left: 1rem;
+}
+
+.pub-wrapper .pub-action-btn-secondary:hover {
+ color: var(--pub-text);
+}
+
+/*
+---------------------------------------------------------------
+ PAGINATION In Publications Page
+---------------------------------------------------------------
+*/
+.pub-wrapper .pub-pagination {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ border-top: 1px solid var(--pub-border);
+ padding-top: 1.5rem;
+ margin-top: 2rem;
+ gap: 1rem;
+}
+
+.pub-wrapper .pub-page-btn {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.5rem 1rem;
+ border: 1px solid var(--pub-border);
+ border-radius: 0.5rem;
+ font-size: 0.875rem;
+ font-weight: 500;
+ background-color: #ffffff;
+ color: var(--pub-text);
+ cursor: pointer;
+ transition: border-color 0.2s, color 0.2s;
+}
+
+.pub-wrapper .pub-page-btn:hover:not(:disabled) {
+ border-color: var(--pub-blue);
+ color: var(--pub-blue);
+}
+
+.pub-wrapper .pub-page-btn:disabled {
+ opacity: 0.5;
+ cursor: not-allowed;
+ background-color: #f9fafb;
+}
+
+.pub-wrapper .pub-page-numbers {
+ display: none;
+ align-items: center;
+ gap: 0.25rem;
+}
+
+@media (min-width: 768px) {
+ .pub-wrapper .pub-page-numbers {
+ display: flex;
+ }
+}
+
+.pub-wrapper .pub-page-num {
+ width: 2rem;
+ height: 2rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 0.5rem;
+ font-size: 0.875rem;
+ font-weight: 500;
+ background-color: #ffffff;
+ color: var(--pub-text);
+ border: none;
+ cursor: pointer;
+ transition: background-color 0.15s, color 0.15s;
+}
+
+.pub-wrapper .pub-page-num:hover {
+ background-color: #f3f4f6;
+}
+
+.pub-wrapper .pub-page-num.active {
+ background-color: var(--pub-blue);
+ color: #ffffff;
+ cursor: default;
+}
+
+.pub-wrapper .pub-page-ellipsis {
+ width: 2rem;
+ height: 2rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: var(--pub-muted);
+ font-size: 0.875rem;
+}
+
+/*
+----------------------------------------------------------------
+ End Publications Page
+----------------------------------------------------------------
+*/
+
+/*
+---------------------------------------------------------------
+ RESEARCH PAGE
+---------------------------------------------------------------
+*/
+
+/* --- Local CSS Variables --- */
+.research-wrapper {
+ --r-blue: #263c6f;
+ --r-blue-hover: #1d2e55;
+ --r-blue-light: #f0f4f8;
+ --r-accent: #3b82f6;
+ --r-border: #e5e7eb;
+ --r-text: #111827;
+ --r-muted: #6b7280;
+ --r-bg: #f9fafb;
+ --r-white: #ffffff;
+ --r-shadow-soft: 0 4px 6px -1px rgba(0,0,0,0.05), 0 2px 4px -1px rgba(0,0,0,0.03);
+ --r-shadow-hover: 0 10px 15px -3px rgba(0,0,0,0.08), 0 4px 6px -2px rgba(0,0,0,0.04);
+
+ width: 100%;
+ background-color: var(--r-bg);
+}
+
+/*
+---------------------------------------------------------------
+ HERO SECTION In Research Page
+---------------------------------------------------------------
+*/
+.research-wrapper #research-hero {
+ width: 100%;
+ background-color: var(--r-bg);
+ border-bottom: 1px solid var(--r-border);
+ padding-top: 3rem;
+ padding-bottom: 4rem;
+ font-family: 'Inter', sans-serif;
+}
+
+/* Label row: gạch ngang + text "Research Hub" */
+.research-wrapper #research-hero .hero-label {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.5rem;
+}
+
+.research-wrapper #research-hero .hero-label-line {
+ display: block;
+ width: 2rem;
+ height: 2.5px;
+ background-color: var(--r-accent);
+ flex-shrink: 0;
+}
+
+.research-wrapper #research-hero .hero-label-text {
+ font-size: 0.875rem;
+ font-weight: 600;
+ color: var(--r-blue);
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ font-family: 'Inter', sans-serif;
+}
+
+/* Heading */
+.research-wrapper #research-hero h1 {
+ font-family: 'Inter', sans-serif;
+ font-size: 3rem;
+ font-weight: 700;
+ color: var(--r-text);
+ letter-spacing: -0.025em;
+ line-height: 1.1;
+ margin: 0;
+}
+
+@media (min-width: 1024px) {
+ .research-wrapper #research-hero h1 {
+ font-size: 4.5rem;
+ }
+}
+
+.research-wrapper #research-hero h1 span {
+ color: var(--r-blue);
+}
+
+/* Paragraph */
+.research-wrapper #research-hero .hero-desc {
+ font-family: 'Inter', sans-serif;
+ font-size: 1.125rem;
+ color: var(--r-muted);
+ line-height: 1.625;
+ max-width: 36rem;
+ margin: 0;
+}
+
+/* Left column spacing */
+.research-wrapper #research-hero .hero-left {
+ display: flex;
+ flex-direction: column;
+ gap: 2rem;
+}
+
+/* Button row */
+.research-wrapper #research-hero .hero-buttons {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 1rem;
+}
+
+/* Hero buttons */
+.research-wrapper .r-btn-primary {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 1rem 2rem;
+ background-color: var(--r-blue);
+ color: var(--r-white);
+ border: none;
+ border-radius: 9999px;
+ font-size: 1rem;
+ font-weight: 600;
+ cursor: pointer;
+ transition: background-color 0.2s;
+ box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
+ text-decoration: none;
+}
+
+.research-wrapper .r-btn-primary:hover {
+ background-color: var(--r-blue-hover);
+ color: var(--r-white);
+}
+
+.research-wrapper .r-btn-outline {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 1rem 2rem;
+ background-color: var(--r-white);
+ color: var(--r-text);
+ border: 1px solid var(--r-border);
+ border-radius: 9999px;
+ font-size: 1rem;
+ font-weight: 600;
+ cursor: pointer;
+ transition: background-color 0.2s;
+ box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
+ text-decoration: none;
+}
+
+.research-wrapper .r-btn-outline:hover {
+ background-color: #f9fafb;
+ color: var(--r-text);
+}
+
+/* Hero floating stat cards */
+.research-wrapper .r-stat-card {
+ position: absolute;
+ background-color: var(--r-white);
+ border-radius: 1rem;
+ padding: 1rem;
+ border: 1px solid var(--r-border);
+ box-shadow: var(--r-shadow-hover);
+ z-index: 20;
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+}
+
+.research-wrapper .r-stat-card p {
+ margin: 0;
+ line-height: 1.2;
+}
+
+/* ---------------------------------------------------------------
+ RESEARCH DOMAINS SECTION In Research Page
+ --------------------------------------------------------------- */
+.research-wrapper #research-domains {
+ padding-top: 5rem;
+ padding-bottom: 5rem;
+ background-color: var(--r-white);
+}
+
+.research-wrapper #research-domains h2 {
+ font-size: 1.875rem;
+ font-weight: 700;
+ color: var(--r-text);
+ margin-bottom: 1rem;
+}
+
+@media (min-width: 1024px) {
+ .research-wrapper #research-domains h2 {
+ font-size: 2.25rem;
+ }
+}
+
+.research-wrapper #research-domains > div > div:first-child p {
+ color: var(--r-muted);
+ max-width: 42rem;
+ margin: 0 auto;
+}
+
+/* Domain card — folder tab shape */
+.research-wrapper .folder-tab {
+ clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 40px, 100% 100%, 0 100%);
+ padding: 2rem;
+ min-height: 320px;
+ display: flex;
+ flex-direction: column;
+ border-radius: 1.5rem;
+ position: relative;
+ overflow: hidden;
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
+}
+
+.research-wrapper .folder-tab:hover {
+ transform: translateY(-4px);
+ box-shadow: var(--r-shadow-hover);
+}
+
+/* Blue variant (first card) */
+.research-wrapper .folder-tab-blue {
+ background-color: var(--r-blue);
+ color: var(--r-white);
+}
+
+.research-wrapper .folder-tab-blue h3 {
+ color: var(--r-white);
+}
+
+.research-wrapper .folder-tab-blue p {
+ color: rgba(255,255,255,0.8);
+}
+
+/* Light variant */
+.research-wrapper .folder-tab-light {
+ background-color: var(--r-blue-light);
+ color: var(--r-text);
+ border: 1px solid var(--r-border);
+}
+
+/* CTA card (dashed border) */
+.research-wrapper .domain-card-cta {
+ border-radius: 1.5rem;
+ padding: 2rem;
+ min-height: 320px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ border: 2px dashed var(--r-border);
+ background-color: var(--r-bg);
+ cursor: pointer;
+ transition: border-color 0.2s;
+}
+
+.research-wrapper .domain-card-cta:hover {
+ border-color: var(--r-blue);
+}
+
+.research-wrapper .domain-card-cta h3 {
+ font-size: 1.25rem;
+ font-weight: 700;
+ color: var(--r-text);
+ margin-bottom: 0.5rem;
+}
+
+.research-wrapper .domain-card-cta p {
+ font-size: 0.875rem;
+ color: var(--r-muted);
+ margin: 0;
+}
+
+/* Domain card icon box */
+.research-wrapper .domain-icon-blue {
+ width: 3.5rem;
+ height: 3.5rem;
+ border-radius: 1rem;
+ background-color: rgba(255,255,255,0.2);
+ backdrop-filter: blur(4px);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 2rem;
+ border: 1px solid rgba(255,255,255,0.3);
+ flex-shrink: 0;
+}
+
+.research-wrapper .domain-icon-light {
+ width: 3.5rem;
+ height: 3.5rem;
+ border-radius: 1rem;
+ background-color: var(--r-white);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 2rem;
+ border: 1px solid var(--r-border);
+ box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
+ flex-shrink: 0;
+}
+
+.research-wrapper .domain-card-cta .domain-icon-cta {
+ width: 4rem;
+ height: 4rem;
+ border-radius: 9999px;
+ background-color: var(--r-white);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 1rem;
+ box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
+ transition: transform 0.2s;
+}
+
+.research-wrapper .domain-card-cta:hover .domain-icon-cta {
+ transform: scale(1.1);
+}
+
+/* Domain card footer row */
+.research-wrapper .domain-card-footer {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-top: auto;
+}
+
+.research-wrapper .domain-badge-white {
+ font-size: 0.875rem;
+ font-weight: 500;
+ background-color: var(--r-white);
+ padding: 0.25rem 0.75rem;
+ border-radius: 9999px;
+ border: 1px solid var(--r-border);
+ color: var(--r-blue);
+}
+
+.research-wrapper .domain-badge-glass {
+ font-size: 0.875rem;
+ font-weight: 500;
+ background-color: rgba(255,255,255,0.2);
+ padding: 0.25rem 0.75rem;
+ border-radius: 9999px;
+ color: var(--r-white);
+}
+
+/* ---------------------------------------------------------------
+ PROJECTS & CENTERS SECTION In Research Page
+ --------------------------------------------------------------- */
+.research-wrapper #projects-centers {
+ padding-top: 5rem;
+ padding-bottom: 5rem;
+ background-color: var(--r-bg);
+ border-top: 1px solid var(--r-border);
+ border-bottom: 1px solid var(--r-border);
+}
+
+.research-wrapper #projects-centers h2 {
+ font-size: 1.5rem;
+ font-weight: 700;
+ color: var(--r-text);
+ margin: 0;
+}
+
+/* Project item card */
+.research-wrapper .project-card {
+ background-color: var(--r-white);
+ border-radius: 1.25rem;
+ padding: 1.5rem;
+ border: 1px solid var(--r-border);
+ box-shadow: var(--r-shadow-soft);
+ display: flex;
+ flex-direction: column;
+ gap: 1.5rem;
+ align-items: flex-start;
+ transition: box-shadow 0.25s ease;
+}
+
+.research-wrapper .project-card:hover {
+ box-shadow: var(--r-shadow-hover);
+}
+
+@media (min-width: 640px) {
+ .research-wrapper .project-card {
+ flex-direction: row;
+ align-items: center;
+ }
+}
+
+.research-wrapper .project-icon {
+ width: 4rem;
+ height: 4rem;
+ border-radius: 0.75rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+ border: 1px solid var(--r-border);
+}
+
+.research-wrapper .project-icon-blue { background-color: var(--r-blue-light); border-color: var(--r-border); }
+.research-wrapper .project-icon-purple { background-color: #faf5ff; border-color: #e9d5ff; }
+.research-wrapper .project-icon-orange { background-color: #fff7ed; border-color: #fed7aa; }
+
+/* Status badges */
+.research-wrapper .badge {
+ display: inline-flex;
+ align-items: center;
+ padding: 0.25rem 0.625rem;
+ border-radius: 0.375rem;
+ font-size: 0.75rem;
+ font-weight: 600;
+ border: 1px solid transparent;
+}
+
+.research-wrapper .badge-active { background-color: #f0fdf4; color: #15803d; border-color: #bbf7d0; }
+.research-wrapper .badge-collection { background-color: #fefce8; color: #a16207; border-color: #fde68a; }
+.research-wrapper .badge-review { background-color: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
+
+/* Progress bar */
+.research-wrapper .progress-bar-track {
+ width: 8rem;
+ background-color: var(--r-bg);
+ border-radius: 9999px;
+ height: 0.375rem;
+}
+
+.research-wrapper .progress-bar-fill {
+ height: 0.375rem;
+ border-radius: 9999px;
+}
+
+.research-wrapper .progress-fill-blue { background-color: var(--r-blue); }
+.research-wrapper .progress-fill-accent { background-color: var(--r-accent); }
+
+/* ---------------------------------------------------------------
+ FUNDING CALLS (right column) In Research Page
+ --------------------------------------------------------------- */
+.research-wrapper .funding-card {
+ background-color: var(--r-white);
+ border-radius: 1.5rem;
+ padding: 1.5rem;
+ border: 1px solid var(--r-border);
+ box-shadow: var(--r-shadow-soft);
+ display: flex;
+ flex-direction: column;
+ transition: box-shadow 0.25s ease;
+}
+
+.research-wrapper .funding-card:hover {
+ box-shadow: var(--r-shadow-hover);
+}
+
+.research-wrapper .funding-item {
+ padding: 1.25rem;
+ background-color: var(--r-bg);
+ border-radius: 1rem;
+ border: 1px solid var(--r-border);
+ transition: border-color 0.2s;
+}
+
+.research-wrapper .funding-item:hover {
+ border-color: var(--r-accent);
+}
+
+.research-wrapper .funding-item h4 {
+ font-size: 1rem;
+ font-weight: 700;
+ color: var(--r-text);
+ margin: 0 0 0.75rem 0;
+}
+
+.research-wrapper .funding-label-urgent {
+ font-size: 0.625rem;
+ font-weight: 700;
+ color: #ef4444;
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ display: block;
+ margin-bottom: 0.5rem;
+}
+
+.research-wrapper .funding-label-internal {
+ font-size: 0.625rem;
+ font-weight: 700;
+ color: var(--r-blue);
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+ display: block;
+ margin-bottom: 0.5rem;
+}
+
+.research-wrapper .funding-meta {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.research-wrapper .funding-due {
+ font-size: 0.75rem;
+ color: var(--r-muted);
+ font-weight: 500;
+ display: inline-flex;
+ align-items: center;
+ gap: 0.375rem;
+}
+
+.research-wrapper .funding-link {
+ font-size: 0.75rem;
+ font-weight: 600;
+ color: var(--r-blue);
+ display: inline-flex;
+ align-items: center;
+ gap: 0.25rem;
+ text-decoration: none;
+ transition: color 0.15s;
+}
+
+.research-wrapper .funding-link:hover {
+ color: var(--r-blue-hover);
+}
+
+.research-wrapper .funding-view-all {
+ width: 100%;
+ margin-top: 1.5rem;
+ padding: 0.75rem;
+ border-radius: 0.75rem;
+ border: 1px solid var(--r-border);
+ font-size: 0.875rem;
+ font-weight: 600;
+ color: var(--r-text);
+ background-color: var(--r-white);
+ cursor: pointer;
+ transition: border-color 0.2s, color 0.2s;
+ box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
+}
+
+.research-wrapper .funding-view-all:hover {
+ border-color: var(--r-blue);
+ color: var(--r-blue);
+}
+
+/* ---------------------------------------------------------------
+ RESEARCH RESOURCES (Quick Links) In Research Page
+ --------------------------------------------------------------- */
+.research-wrapper #research-quick-links {
+ padding-top: 5rem;
+ padding-bottom: 5rem;
+ background-color: var(--r-white);
+}
+
+.research-wrapper .resource-card {
+ display: block;
+ background-color: var(--r-bg);
+ border-radius: 1.5rem;
+ padding: 2rem;
+ border: 1px solid var(--r-border);
+ position: relative;
+ overflow: hidden;
+ text-decoration: none;
+ transition: border-color 0.2s;
+}
+
+.research-wrapper .resource-card:hover {
+ border-color: var(--r-accent);
+}
+
+.research-wrapper .resource-card-glow {
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 16rem;
+ height: 16rem;
+ background-color: var(--r-blue-light);
+ border-radius: 9999px;
+ filter: blur(64px);
+ opacity: 0.5;
+ transform: translateY(-50%) translateX(25%);
+ transition: opacity 0.3s;
+ pointer-events: none;
+}
+
+.research-wrapper .resource-card:hover .resource-card-glow {
+ opacity: 0.8;
+}
+
+.research-wrapper .resource-icon {
+ width: 4rem;
+ height: 4rem;
+ border-radius: 1rem;
+ background-color: var(--r-white);
+ box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
+ border: 1px solid var(--r-border);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+ transition: transform 0.2s;
+}
+
+.research-wrapper .resource-card:hover .resource-icon {
+ transform: scale(1.05);
+}
+
+.research-wrapper .resource-card h3 {
+ font-size: 1.5rem;
+ font-weight: 700;
+ color: var(--r-text);
+ margin-bottom: 0.5rem;
+ transition: color 0.2s;
+}
+
+.research-wrapper .resource-card:hover h3 {
+ color: var(--r-blue);
+}
+
+.research-wrapper .resource-card p {
+ color: var(--r-muted);
+ line-height: 1.625;
+ margin-bottom: 1rem;
+}
+
+.research-wrapper .resource-link {
+ display: inline-flex;
+ align-items: center;
+ font-size: 0.875rem;
+ font-weight: 600;
+ color: var(--r-blue);
+ gap: 0.5rem;
+}
+
+/* ---------------------------------------------------------------
+ COLLABORATION CTA SECTION In Research Page
+ --------------------------------------------------------------- */
+.research-wrapper #collaboration-cta {
+ padding-top: 6rem;
+ padding-bottom: 6rem;
+ background-color: var(--r-blue);
+ position: relative;
+ overflow: hidden;
+}
+
+.research-wrapper #collaboration-cta h2 {
+ font-size: 2.25rem;
+ font-weight: 700;
+ color: var(--r-white);
+ letter-spacing: -0.025em;
+ margin-bottom: 1.5rem;
+}
+
+@media (min-width: 768px) {
+ .research-wrapper #collaboration-cta h2 { font-size: 3rem; }
+}
+
+@media (min-width: 1024px) {
+ .research-wrapper #collaboration-cta h2 { font-size: 3.75rem; }
+}
+
+.research-wrapper #collaboration-cta p {
+ font-size: 1.25rem;
+ color: var(--r-blue-light);
+ opacity: 0.9;
+ line-height: 1.625;
+ max-width: 42rem;
+ margin: 0 auto 2.5rem;
+ font-weight: 300;
+}
+
+.research-wrapper .cta-btn-white {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ gap: 0.5rem;
+ padding: 1rem 2rem;
+ background-color: var(--r-white);
+ color: var(--r-blue);
+ border: none;
+ border-radius: 0.75rem;
+ font-size: 1rem;
+ font-weight: 700;
+ cursor: pointer;
+ transition: background-color 0.2s;
+ box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
+ text-decoration: none;
+ width: 100%;
+}
+
+@media (min-width: 640px) {
+ .research-wrapper .cta-btn-white { width: auto; }
+}
+
+.research-wrapper .cta-btn-white:hover {
+ background-color: #f9fafb;
+ color: var(--r-blue);
+}
+
+.research-wrapper .cta-btn-ghost {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ gap: 0.5rem;
+ padding: 1rem 2rem;
+ background-color: transparent;
+ color: var(--r-white);
+ border: 2px solid rgba(255,255,255,0.3);
+ border-radius: 0.75rem;
+ font-size: 1rem;
+ font-weight: 700;
+ cursor: pointer;
+ transition: background-color 0.2s;
+ text-decoration: none;
+ width: 100%;
+}
+
+@media (min-width: 640px) {
+ .research-wrapper .cta-btn-ghost { width: auto; }
+}
+
+.research-wrapper .cta-btn-ghost:hover {
+ background-color: rgba(255,255,255,0.1);
+ color: var(--r-white);
+}
+
+/*
+---------------------------------------------------------------
+ End Research Page
+---------------------------------------------------------------
+*/
+
.section-title {
position: relative;
z-index: 99;
diff --git a/public/assets/img/logo/Logo_HaiLearning.jpg b/public/assets/img/logo/Logo_HaiLearning.jpg
deleted file mode 100644
index 7014168..0000000
Binary files a/public/assets/img/logo/Logo_HaiLearning.jpg and /dev/null differ
diff --git a/public/assets/img/logo/Logo_ULDP.png b/public/assets/img/logo/Logo_ULDP.png
new file mode 100644
index 0000000..1cadbe8
Binary files /dev/null and b/public/assets/img/logo/Logo_ULDP.png differ
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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/assets/scss/_about.scss b/public/assets/scss/_about.scss
deleted file mode 100644
index f5745b9..0000000
--- a/public/assets/scss/_about.scss
+++ /dev/null
@@ -1,280 +0,0 @@
-.about-wrapper {
-
- .about-image {
- max-width: 375px;
- position: relative;
- z-index: 9;
-
- @include breakpoint (max-xxl) {
- max-width: initial;
- }
-
- img {
- @include imgw;
- border-radius: 16px;
- }
-
- .about-image-2 {
- position: absolute;
- bottom: -170px;
- right: -238px;
-
- @include breakpoint (max-xxl) {
- max-width: 250px;
- right: 0;
- bottom: 0;
- }
- }
-
- .bg-shape {
- position: absolute;
- z-index: -1;
- top: 0;
- left: 0;
- right: 0;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- img {
- width: initial;
- height: initial;
- }
- }
-
- .plane-shape {
- position: absolute;
- left: -38px;
- bottom: -163px;
- z-index: -1;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- img {
- width: initial;
- height: initial;
- }
- }
-
- .top-shape {
- position: absolute;
- right: -200px;
- top: 0;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- img {
- width: initial;
- height: initial;
- }
- }
- }
-
- .about-content {
- .text {
- margin-top: 24px;
- padding-left: 40px;
- border-left: 3px solid $border-color-2;
- margin-bottom: 30px;
-
- @include breakpoint (max-xxl) {
- border-left: none;
- padding-left: 0;
- }
- }
-
- .about-item {
- @include flex;
- justify-content: space-between;
- border-top: 1px solid rgba(203, 204, 207, 0.24);
- padding-top: 24px;
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- gap: 30px;
- }
-
- .content {
- span {
- font-size: 20px;
- font-weight: 500;
- color: $header-color;
- display: inline-block;
- margin-bottom: 5px;
-
- img {
- margin-right: 8px;
- }
- }
- }
- }
-
- .list {
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding: 24px 0 32px;
- margin-bottom: 48px;
-
- @include breakpoint (max-xxl) {
- margin-bottom: 30px;
- padding: 24px 0 30px;
- }
-
- li {
- &:not(:last-child) {
- margin-bottom: 10px;
- }
-
- @include breakpoint (max-xxl) {
- font-size: 14px;
- }
-
- i {
- color: $theme-color-2;
- margin-right: 8px;
- }
- }
- }
- }
-}
-
-.about-section {
- position: relative;
- z-index: 9;
-
- .top-shape {
- position: absolute;
- right: 0;
- top: -50px;
- z-index: -1;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
- }
-}
-
-.about-wrapper-3 {
-
- .about-content {
- .text {
- margin-top: 20px;
- max-width: 616px;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding-bottom: 24px;
- margin-bottom: 30px;
- }
-
- .about-list-item {
- display: flex;
- gap: 32px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 25px;
- }
-
- .loading-box {
- height: 256px;
- width: 214px;
- border-radius: 16px;
- position: relative;
- text-align: center;
-
- .loading-boxs {
- height: 200px;
- width: 200px;
- display: flex;
- align-items: center;
- justify-content: center;
- background: #0a4ebd;
- border-radius: 16px;
-
- .circle-bar {
- position: relative;
-
- strong {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- font-size: 28px;
- font-weight: bold;
- color: $white;
- }
- }
- }
-
- h6 {
- color: $white;
- font-weight: 500;
- font-size: 14px;
- }
- }
-
- .list-item {
-
- .list {
- margin-bottom: 48px;
-
- li {
- font-size: 18px;
- font-weight: 500;
- color: $header-color;
- font-family: $heading-font;
-
- @include breakpoint (max-xxl) {
- font-size: 16px;
- }
-
- &:not(:last-child) {
- margin-bottom: 15px;
- }
-
- i {
- margin-right: 8px;
- color: $theme-color-2;
- }
- }
- }
- }
- }
- }
-
- .about-image {
- img {
- @include imgw;
- border-radius: 8px;
- }
-
- &.tp-clip-anim {
- width: 100%;
- display: grid;
- align-items: center;
- justify-items: center;
- overflow: hidden;
- position: relative;
- & .tp-anim-img {
- opacity: 0;
- width: 100%;
- height: 100%;
- }
-
- & .mask {
- background-size: cover;
- background-position: center;
- transform: scale(1.005);
- }
- >* {
- grid-area: 1 / 1 / 2 / 2;
- width: 100%;
- height: 100%;
- max-height: 100%;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_animation.scss b/public/assets/scss/_animation.scss
deleted file mode 100644
index 538c28f..0000000
--- a/public/assets/scss/_animation.scss
+++ /dev/null
@@ -1,915 +0,0 @@
-
-//>>>>> Video Animation Start <<<</
-@-webkit-keyframes rippleOne {
- 70% {
- -webkit-box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
- box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
- }
- 100% {
- -webkit-box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
- box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
- }
-}
-
-@keyframes rippleOne {
- 70% {
- -webkit-box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
- box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
- }
- 100% {
- -webkit-box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
- box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
- }
-}
-//>>>>> Video Animation End <<<</
-
-
-
-//>>>>> Circle Animation Start <<<</
-@keyframes cir36 {
- 100%{
- transform: rotate(360deg);
- }
-}
-
-@keyframes rounded {
- 50%{
- transform: rotate(15deg);
- }
-}
-
-//>>>>> Circle Animation End <<<</
-
-@keyframes up-down {
- 0% {
- transform: translateY(10px);
- }
-
- 100% {
- transform: translateY(-10px);
- }
- }
-
-
-//>>>>> Preloader Animation Start <<<</
- @-webkit-keyframes spinner {
- to {
- -webkit-transform: rotateZ(360deg);
- transform: rotateZ(360deg);
- }
-}
-
-@keyframes spinner {
- to {
- -webkit-transform: rotateZ(360deg);
- transform: rotateZ(360deg);
- }
-}
-
-@-webkit-keyframes letters-loading {
- 0%,
- 75%,
- 100% {
- opacity: 0;
- transform: rotateY(-90deg);
- }
- 25%,
- 50% {
- opacity: 1;
- transform: rotateY(0deg);
- }
-}
-
-@keyframes letters-loading {
- 0%,
- 75%,
- 100% {
- opacity: 0;
- transform: rotateY(-90deg);
- }
- 25%,
- 50% {
- opacity: 1;
- transform: rotateY(0deg);
- }
-}
-
-//>>>>> Preloader Animation Start <<<</
-@keyframes loaderspin {
- 0% {
- transform: translate(-50%, -50%) rotate(0deg);
- }
- 100% {
- transform: translate(-50%, -50%) rotate(360deg);
- }
-}
-
-
-@keyframes tpswing{
- 0% {
- -webkit-transform: rotate(20deg);
- -ms-transform:rotate(20deg);
- transform: rotate(20deg);
- }
- 100% {
- -webkit-transform: rotate(0deg);
- -ms-transform:rotate(0deg);
- transform: rotate(0deg);
- }
-}
-
-
-@keyframes width {
- 0% {
- width: 0%;
- }
- 100% {
- width: 100%;
- }
-}
-
-@-webkit-keyframes width {
- 0% {
- width: 0%;
- }
- 100% {
- width: 100%;
- }
-}
-
-@-webkit-keyframes loaderspin {
-0% {
- transform: translate(-50%, -50%) rotate(0deg);
-}
-100% {
- transform: translate(-50%, -50%) rotate(360deg);
-}
-}
-
-@keyframes loaderpulse {
-0% {
- transform: scale(1);
-}
-100% {
- transform: scale(1.2);
-}
-}
-//>>>>> Preloader Animation End <<<</
-
-//animation
-@keyframes rounded {
- 50%{
- transform: rotate(20deg);
- }
-}
-
-@keyframes cir36 {
- 100% {
- transform: rotate(360deg);
- }
-}
-
-.float-bob-y {
- -webkit-animation-name: float-bob-y;
- animation-name: float-bob-y;
- -webkit-animation-duration: 3s;
- animation-duration: 3s;
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
- -webkit-animation-timing-function: linear;
- animation-timing-function: linear;
-}
-
- @-webkit-keyframes float-bob-y {
- 0% {
- -webkit-transform: translateY(-30px);
- transform: translateY(-30px);
- }
- 50% {
- -webkit-transform: translateY(-10px);
- transform: translateY(-10px);
- }
- 100% {
- -webkit-transform: translateY(-30px);
- transform: translateY(-30px);
- }
-}
-
- @keyframes float-bob-y {
- 0% {
- -webkit-transform: translateY(-30px);
- transform: translateY(-30px);
- }
- 50% {
- -webkit-transform: translateY(-10px);
- transform: translateY(-10px);
- }
- 100% {
- -webkit-transform: translateY(-30px);
- transform: translateY(-30px);
- }
-}
-
-.float-bob-x {
- -webkit-animation-name: float-bob-x;
- animation-name: float-bob-x;
- -webkit-animation-duration: 3s;
- animation-duration: 3s;
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
- -webkit-animation-timing-function: linear;
- animation-timing-function: linear;
-}
-
- @-webkit-keyframes float-bob-x {
- 0% {
- -webkit-transform: translateX(-0px);
- transform: translateX(30px);
- }
- 50% {
- -webkit-transform: translateX(10px);
- transform: translateX(10px);
- }
- 100% {
- -webkit-transform: translateX(30px);
- transform: translateX(30px);
- }
-}
-
- @keyframes float-bob-x {
- 0% {
- -webkit-transform: translateX(30px);
- transform: translateX(30px);
- }
- 50% {
- -webkit-transform: translateX(10px);
- transform: translateX(10px);
- }
- 100% {
- -webkit-transform: translateX(30px);
- transform: translateX(30px);
- }
-}
-
-@keyframes bounce-x {
- 0% {
- -webkit-transform: translateX(0);
- transform: translateX(0);
- }
- 50% {
- -webkit-transform: translateX(30px);
- transform: translateX(30px);
- }
- 100% {
- -webkit-transform: translateX(0);
- transform: translateX(0);
- }
-}
-
-.bounce-x {
- -webkit-animation: bounce-x 7s infinite linear;
- animation: bounce-x 7s infinite linear;
-}
-
-@keyframes criss-cross-left {
- 0% {
- left: -20px;
- }
- 50% {
- left: 50%;
- width: 20px;
- height: 20px;
- }
- 100% {
- left: 50%;
- width: 375px;
- height: 375px;
- }
- }
- @keyframes criss-cross-right {
- 0% {
- right: -20px;
- }
- 50% {
- right: 50%;
- width: 20px;
- height: 20px;
- }
- 100% {
- right: 50%;
- width: 375px;
- height: 375px;
- }
- }
-
-@keyframes rotated2 {
- 0% {
- transform: rotate(0);
- }
- 100% {
- transform: rotate(-360deg);
- }
-}
-
-@keyframes wave {
- 0% {transform: translateX(0);}
- 50% {transform: translateX(-25%);}
- 100% {transform: translateX(-50%);}
-}
-
-@keyframes zoom {
- 0%{
- transform:scale(.5);
- }
- 50%{
- transform: scale(1);
- }
- 100%{
- transform: scale( .5);
- }
-}
-
-@keyframes translateY2 {
- 0% {
- -webkit-transform: translateY(-30px);
- -moz-transform: translateY(-30px);
- -ms-transform: translateY(-30px);
- -o-transform: translateY(-30px);
- transform: translateY(-30px);
- }
- 100% {
- -webkit-transform: translateY(20px);
- -moz-transform: translateY(20px);
- -ms-transform: translateY(20px);
- -o-transform: translateY(20px);
- transform: translateY(20px);
- }
-}
-
-@keyframes translateX2{
- 0% {
- -webkit-transform: translateX(-30px);
- -moz-transform: translateX(-30px);
- -ms-transform: translateX(-30px);
- -o-transform: translateX(-30px);
- transform: translateX(-30px);
- }
- 100% {
- -webkit-transform: translatXY(20px);
- -moz-transform: translateX(20px);
- -ms-transform: translateX(20px);
- -o-transform: translateX(20px);
- transform: translateX(20px);
- }
-}
-
-@keyframes moving {
- 0% {
-
- transform: translatey(0px);
- }
- 20%{
- transform: translateX(-50px);
- }
- 50% {
- transform: translatey(-40px);
- }
-
- 100% {
- transform: translatey(0px);
- }
- }
-
-
- /*img-animation**********************/
-.img-custom-anim-right {
- animation: img-anim-right 1.3s forwards cubic-bezier(0.645, 0.045, 0.355, 1) 0.4s;
- opacity: 0;
-}
-
-@keyframes img-anim-right {
- 0% {
- transform: translateX(5%);
- clip-path: inset(0 0 0 100%);
- opacity: 0;
- }
-
- 100% {
- transform: translateX(0);
- clip-path: inset(0 0 0 0);
- opacity: 1;
- }
-}
-
-.img-custom-anim-left {
- animation: img-anim-left 1.3s forwards cubic-bezier(0.645, 0.045, 0.355, 1) 0.4s;
- opacity: 0;
-}
-
-@keyframes img-anim-left {
- 0% {
- transform: translateX(-5%);
- clip-path: inset(0 100% 0 0);
- opacity: 0;
- }
-
- 100% {
- transform: translateX(0);
- clip-path: inset(0 0 0 0);
- opacity: 1;
- }
-}
-
-.img-custom-anim-top {
- animation: img-anim-top 1.3s forwards cubic-bezier(0.645, 0.045, 0.355, 1);
- opacity: 0;
-}
-
-@keyframes img-anim-top {
- 0% {
- transform: translateY(-5%);
- clip-path: inset(0 0 100% 0);
- opacity: 0;
- }
-
- 100% {
- transform: translateY(0);
- clip-path: inset(0 0 0 0);
- opacity: 1;
- }
-}
-
-@keyframes slideInLeft {
- to {
- opacity: 1;
- transform: translateX(0);
- }
- }
-
- @keyframes slideInRight {
- to {
- opacity: 1;
- transform: translateX(0);
- }
- }
- @keyframes shine {
- 0% {
- left: -100%;
- }
- 50% {
- left: 100%;
- }
- 100% {
- left: 100%;
- }
- }
-
-
- .animation-infinite {
- animation: ShapeAnim 80s linear infinite;
- height: 30px;
- width: 100%;
- background-repeat: repeat;
- overflow: hidden;
- }
-
-
- .img-custom-anim-bottom {
- animation: img-anim-bottom 1.3s forwards cubic-bezier(0.645, 0.045, 0.355, 1);
- opacity: 0;
-}
-
-@keyframes img-anim-bottom {
- 0% {
- transform: translateY(5%);
- clip-path: inset(100% 0 0 0);
- opacity: 0;
- }
- 100% {
- transform: translateY(0);
- clip-path: inset(0 0 0 0);
- opacity: 1;
- }
- }
-
-
- @keyframes sparkle {
- 0% { opacity: 0; transform: scale(0.5); }
- 50% { opacity: 1; transform: scale(1.5); }
- 100% { opacity: 0; transform: scale(0.5); }
- }
-
-
- @keyframes borderAnim {
- 0% {
- width: 0;
- }
- 100% {
- width: 44px;
- }
-}
-
-@keyframes slideInLeft {
- to {
- opacity: 1;
- transform: translateX(0);
- }
- }
-
- @keyframes slideInRight {
- to {
- opacity: 1;
- transform: translateX(0);
- }
- }
- @keyframes shine {
- 0% {
- left: -100%;
- }
- 50% {
- left: 100%;
- }
- 100% {
- left: 100%;
- }
- }
-
-
- @keyframes strokeColorChange1 {
- 0% {
- -webkit-text-stroke-color: rgba(202, 210, 210, 0.10);
- }
- 25% {
- -webkit-text-stroke-color: rgba(202, 210, 210, 0.10);
- }
- 50% {
- -webkit-text-stroke-color: rgba(194, 223, 147, 0.10);
- }
- 75% {
- -webkit-text-stroke-color: rgba(227, 87, 43, 0.10);
- }
- 100% {
- -webkit-text-stroke-color: rgba(194, 223, 147, 0.10);
- }
- }
-
- @keyframes shake {
- 0%, 100% {
- -webkit-transform: translateX(0);
- -ms-transform: translateX(0);
- transform: translateX(0);
- }
-
- 10%, 30%, 50%, 70%, 90% {
- -webkit-transform: translateX(-5px);
- -ms-transform: translateX(-5px);
- transform: translateX(-5px);
- }
-
- 20%, 40%, 60%, 80% {
- -webkit-transform: translateX(5px);
- -ms-transform: translateX(5px);
- transform: translateX(5px);
- }
-}
-
-
-@keyframes rotateBorder {
- 0% {
- transform: translate(-50%, -50%) rotate(0deg);
- }
- 100% {
- transform: translate(-50%, -50%) rotate(360deg);
- }
-}
-
-// This is for Progress bar animation also has a js code
-@keyframes animate-positive {
- 0% {
- width: 0;
- }
-}
-
-@keyframes scroll {
- 0% {
- transform: translateX(0);
- }
- 100% {
- transform: translateX(-100%);
- }
-}
-
-@keyframes scrolly {
- 0% {
- transform: translateY(0);
- }
- 100% {
- transform: translateY(-60%);
- }
-}
-
-@keyframes scrolls {
- 0% {
- transform: translateX(0);
- }
- 100% {
- transform: translateX(100%);
- }
-}
-
-@keyframes scroll-left-to-right-loop {
- 0% {
- transform: translateX(-50%);
- }
- 100% {
- transform: translateX(0%);
- }
-}
-
-
-@-webkit-keyframes zoomOut {
- from {
- opacity: 1;
- }
-
- 50% {
- opacity: 0;
- -webkit-transform: scale3d(.3, .3, .3);
- transform: scale3d(.3, .3, .3);
- }
-
- to {
- opacity: 0;
- }
-}
-
-@keyframes zoomOut {
- from {
- opacity: 1;
- }
-
- 50% {
- opacity: 0;
- -webkit-transform: scale3d(.3, .3, .3);
- transform: scale3d(.3, .3, .3);
- }
-
- to {
- opacity: 0;
- }
-}
-
-.zoomOut {
- -webkit-animation-name: zoomOut;
- animation-name: zoomOut;
-}
-
-.img_left_animation {
- animation: left-animation 2000ms forwards cubic-bezier(0.40, 0.98, 0.52, 0.99);
- opacity: 0
-}
-@keyframes left-animation {
- 0% {
- clip-path: inset(0 100% 0 0);
- opacity: 0
- }
- 100% {
- clip-path: inset(0 0 0 0);
- opacity: 1
- }
-}
-
-.img_right_animation {
- animation: right-animation 2000ms forwards cubic-bezier(0.40, 0.98, 0.52, 0.99);
- opacity: 0
-}
-@keyframes right-animation {
- 0% {
- clip-path: inset(0 0 0 100%);
- opacity: 0
- }
- 100% {
- clip-path: inset(0 0 0 0);
- opacity: 1
- }
-}
-.img_top_animation {
- animation: top-animation 2000ms forwards cubic-bezier(0.40, 0.98, 0.52, 0.99);
- opacity: 0
-}
-@keyframes top-animation {
- 0% {
- clip-path: inset(0 0 100% 0);
- opacity: 0
- }
- 100% {
- clip-path: inset(0 0 0 0);
- opacity: 1
- }
-}
-.img_bottom_animation {
- animation: bottom-animation 2000ms forwards cubic-bezier(0.40, 0.98, 0.52, 0.99);
- opacity: 0
-}
-@keyframes bottom-animation {
- 0% {
- clip-path: inset(100% 0 0 0);
- opacity: 0
- }
- 100% {
- clip-path: inset(0 0 0 0);
- opacity: 1
- }
-}
-
-
-@keyframes circle {
- 0% {
- transform: scale(0);
- opacity: 0.6;
- }
- 100% {
- transform: scale(30);
- opacity: 0;
- }
-}
-
-@keyframes icon-bounce {
- 0%, 100%, 20%, 50%, 80% {
- -webkit-transform: translateY(0);
- transform: translateY(0);
- }
- 40% {
- -webkit-transform: translateY(-10px);
- transform: translateY(-10px);
- }
- 60% {
- -webkit-transform: translateY(-5px);
- transform: translateY(-5px);
- }
-}
-
-@-webkit-keyframes slideInLeft {
- 0% {
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- visibility: visible;
- }
-
- 100% {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes slideInLeft {
- 0% {
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- visibility: visible;
- }
-
- 100% {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.slideInLeft {
- -webkit-animation-name: slideInLeft;
- animation-name: slideInLeft;
-}
-
-@-webkit-keyframes slideInRight {
- 0% {
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- visibility: visible;
- }
-
- 100% {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes slideInRight {
- 0% {
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- visibility: visible;
- }
-
- 100% {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.slideInRight {
- -webkit-animation-name: slideInRight;
- animation-name: slideInRight;
-}
-
-@-webkit-keyframes slideInUp {
- 0% {
- -webkit-transform: translate3d(0, 100%, 0);
- transform: translate3d(0, 100%, 0);
- visibility: visible;
- }
-
- 100% {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes slideInUp {
- 0% {
- -webkit-transform: translate3d(0, 100%, 0);
- transform: translate3d(0, 100%, 0);
- visibility: visible;
- }
-
- 100% {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.slideInUp {
- -webkit-animation-name: slideInUp;
- animation-name: slideInUp;
-}
-
-@-webkit-keyframes slideInDown {
- 0% {
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- visibility: visible;
- }
-
- 100% {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes slideInDown {
- 0% {
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
- visibility: visible;
- }
-
- 100% {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- }
-}
-
-.slideInDown {
- -webkit-animation-name: slideInDown;
- animation-name: slideInDown;
-}
-
-.zoom_in {
- transform: scale(0.5);
-
-}
-
-.fade_up,
-.fade_down,
-.zoom_in,
-.zoom_out {
- opacity: 0;
- transition: all 2s;
-}
-
-.show {
- opacity: 1;
- transform: translateY(0) scale(1);
-}
-
-
-
-@keyframes spin {
- 0% {
- transform: rotate(0deg);
- }
- 100% {
- transform: rotate(360deg);
- }
-}
-
-@keyframes zoomIn {
- 0% {
- opacity: 0;
- -webkit-transform: scale3d(.8, .8, .8);
- transform: scale3d(.8, .8, .8);
- }
-
- 50% {
- opacity: 1;
- }
-}
diff --git a/public/assets/scss/_brand.scss b/public/assets/scss/_brand.scss
deleted file mode 100644
index db08a03..0000000
--- a/public/assets/scss/_brand.scss
+++ /dev/null
@@ -1,70 +0,0 @@
-.brand-wrapper {
-
- .brand-item {
- border-top: 1px solid rgba(203, 204, 207, 0.72);
- border-bottom: 1px solid rgba(203, 204, 207, 0.72);
- text-align: center;
- height: 116px;
- position: relative;
-
- &::before {
- @include before;
- background-color: rgba(203, 204, 207, 0.72);
- width: 1px;
- left: 0;
- }
-
- &::after {
- position: absolute;
- content: "";
- top: 0;
- bottom: 0;
- background-color: rgba(203, 204, 207, 0.72);
- width: 1px;
- right: 0;
- }
-
- .brand-image {
- position: relative;
- padding: 30px 0;
-
- &::before {
- @include before;
- background-color: rgba(203, 204, 207, 0.72);
- width: 1px;
- left: 0;
- height: 100px;
-
- @include breakpoint (max-xl) {
- display: none;
- }
- }
- }
- }
-
- &.style-1 {
-
- .brand-item {
- height: 102px;
-
- .brand-image {
- text-align: center;
- filter: grayscale(100%);
- @include transition;
- opacity: .4;
-
- &:hover {
- filter: initial;
- opacity: 1;
- }
- }
-
- .swiper-slide.swiper-slide-active{
- .brand-image {
- filter: initial;
- opacity: 1;
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_buttons.scss b/public/assets/scss/_buttons.scss
deleted file mode 100644
index 004806d..0000000
--- a/public/assets/scss/_buttons.scss
+++ /dev/null
@@ -1,58 +0,0 @@
-.theme-btn {
- background: transparent;
- color: $header-color;
- display: inline-block;
- font-size: 16px;
- font-weight: 500;
- padding: 6px 6px 6px 24px;
- border-radius: 55px;
- line-height: 1;
- text-transform: uppercase;
- -webkit-transition: all 0.3s ease-in-out;
- transition: all 0.3s ease-in-out;
- position: relative;
- z-index: 1;
- font-family: "Space Grotesk", sans-serif;
- border: 1px solid $border-color;
-
- @include breakpoint (max-sm) {
- padding: 2px 4px 2px 24px;
- }
-
- i {
- width: 48px;
- height: 48px;
- line-height: 48px;
- text-align: center;
- background-color: $theme-color;
- color: $white;
- margin-left: 20px;
- @include transition;
- border-radius: 50%;
- }
-
- &:hover {
- background-color: $theme-color;
- color: $white;
-
- i {
- background-color: $white;
- color: $header-color;
- }
- }
-}
-
-.link-btn {
- color: $theme-color-2;
- // text-transform: capitalize;
- font-weight: 500;
- font-family: "Space Grotesk", sans-serif;
-
- i {
- margin-left: 8px;
- }
-
- &:hover {
- color: $theme-color;
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_contact.scss b/public/assets/scss/_contact.scss
deleted file mode 100644
index 54705ad..0000000
--- a/public/assets/scss/_contact.scss
+++ /dev/null
@@ -1,362 +0,0 @@
-.contact-wrapper-2 {
- @include flex;
- gap: 325px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 30px;
- }
-
- .contact-from-box {
- padding: 60px 48px;
- background-color: $theme-color-2;
- border-radius: 24px;
- width: 644px;
-
- @include breakpoint (max-xxl) {
- padding: 30px;
- }
-
- h3 {
- color: $white;
- font-size: 32px;
- text-transform: uppercase;
- margin-bottom: 30px;
- text-align: center;
-
- @include breakpoint (max-xxl) {
- font-size: 25px;
- margin-bottom: 20px;
- }
-
- @include breakpoint (max-sm) {
- font-size: 20px;
- }
- }
-
- .form-clt {
-
- input,textarea {
- width: 100%;
- outline: none;
- border: none;
- background: transparent;
- padding: 16px 0;
- font-weight: 400;
- font-size: 16px;
- color: rgba(255, 255, 255, 0.7);
- line-height: 1;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
-
- &::placeholder {
- color: rgba(255, 255, 255, 0.7);
- }
- }
-
- .nice-select {
- width: 100% !important;
- padding: 0;
- padding-bottom: 10px;
- padding-top: 20px;
- font-size: 16px;
- // text-transform: capitalize;
- border-radius: 0;
- background-color: transparent;
- border: none;
- box-shadow: none;
- font-size: 16px;
- color: rgba(255, 255, 255, 0.7);
- font-weight: 400;
- width: initial;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
-
- &::after {
- right: 0;
- width: 10px;
- height: 8px;
- border-bottom: 2px solid transparent;
- border-right: 2px solid transparent;
- margin-top: 0;
- background-color: rgba(255, 255, 255, 0.7);
- clip-path: polygon(100% 0, 49% 100%, 0 0);
- -webkit-transform: rotate(0eg);
- transform: rotate(0deg);
- top: 36%;
- }
-
- .list {
- width: 100%;
- background-color: $bg-color;
- top: 60%;
- font-size: 16px;
- color: $header-color;
- }
-
- .focus {
- background-color: transparent;
- font-weight: 400;
- color: $text-color;
- }
-
- .option {
- border: none;
-
- &:hover {
- background-color: transparent;
- }
- }
- }
- }
-
- .contact-btn {
- margin-top: 48px;
- text-align: center;
- margin-bottom: 48px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- margin-bottom: 30px;
- }
-
- .theme-btn {
- color: $white;
-
- &:hover {
- border: 1px solid $theme-color;
- }
- }
- }
-
- h5 {
- font-weight: 500;
- color: $white;
- margin-bottom: 10px;
- }
-
- h2 {
- font-size: 40px;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding-bottom: 10px;
- margin-bottom: 5px;
-
- @include breakpoint (max-xxl) {
- font-size: 25px;
- }
-
- @include breakpoint (max-sm) {
- font-size: 20px;
- }
-
- a {
- color: $white;
- }
- }
-
- p {
- color: rgba(255, 255, 255, 0.7);
- }
- }
-
- .video-btn {
- width: 88px;
- height: 88px;
- line-height: 88px;
- text-align: center;
- background-color: $theme-color;
- color: $white;
- position: relative;
- font-size: 16px;
- border-radius: 100px;
- z-index: 999;
- display: inline-block;
-
- @include breakpoint (max-lg) {
- margin-left: 30px;
- }
-
- @include breakpoint (max-sm) {
- width: 70px;
- height: 70px;
- line-height: 70px;
- margin-left: 15px;
- }
-
- &::before {
- @include before;
- width: 120px;
- height: 120px;
- top: 50%;
- left: 50%;
- transform: translate(-50%,-50%);
- background: rgba(225, 56, 51, 0.24);
- border-radius: 100%;
- border: 2px solid $white;
-
- @include breakpoint (max-sm) {
- width: 100px;
- height: 100px;
- }
- }
- }
-}
-
-.contact-section-2 {
- background-attachment: fixed;
-}
-
-.contact-from-wrapper {
- background-color: $bg-color;
- border-radius: 16px;
- padding: 48px;
-
- @include breakpoint (max-xxl) {
- padding: 30px;
- }
-
- .form-clt {
- position: relative;
-
- span {
- color: $header-color;
- font-size: 18px;
- font-weight: 500;
- font-family: $heading-font;
- margin-bottom: 10px;
- display: inline-block;
- }
-
- input,textarea {
- width: 100%;
- border: none;
- outline: none;
- background: $white;
- color: $text-color;
- border-radius: 100px;
- padding: 18px 20px;
-
- @include breakpoint (max-md){
- padding: 14px 20px;
- }
-
- @include breakpoint (max-sm){
- padding: 12px 18px;
- }
-
- &::placeholder {
- color: $text-color;
- }
- }
-
- textarea {
- padding-bottom: 100px;
- resize: none;
- border-radius: 40px;
- }
- }
-
- .cheak-list-item {
- margin-top: 30px;
- margin-bottom: 48px;
-
- @include breakpoint (max-xxl) {
- margin-bottom: 30px;
- }
-
- .cheak-list {
- @include flex;
- gap: 80px;
- margin-bottom: 24px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 22px;
- }
-
- .form-check {
- flex-basis: 200px;
- }
-
- .form-check-label {
- font-size: 18px;
- color: $header-color;
- font-weight: 500;
- font-family: $heading-font;
- }
- .form-check .form-check-input {
- float: left;
- transform: translateY(0px);
- border-radius: 100px;
- border: 1px solid $text-color;
- background-color: $white;
- }
- .form-check .form-check-input:checked {
- background-color: $theme-color-2;
- border: 1px solid $theme-color-2;
- }
- }
- }
-
- .theme-btn {
- width: 100%;
-
- &.style-2 {
- width: initial;
- }
- }
-}
-
-.contact-icon-item {
- @include flex;
- gap: 24px;
- background-color: $bg-color;
- border-radius: 16px;
- padding: 30px;
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- }
-
- .icon {
- width: 64px;
- height: 64px;
- line-height: 64px;
- text-align: center;
- border-radius: 100px;
- background-color: $header-color;
- color: $white;
- @include transition;
- font-size: 20px;
- }
-
- .content {
-
- p {
- margin-bottom: 5px;
- }
-
- h6 {
- font-size: 18px;
- font-weight: 500;
- line-height: 144%;
- }
- }
-
- &:hover {
- .icon {
- background-color: $theme-color;
- }
- }
-}
-
-.map-items {
- .googpemap {
- iframe {
- width: 100%;
- height: 724px;
-
- @include breakpoint (max-sm){
- height: 400px;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_cta.scss b/public/assets/scss/_cta.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/public/assets/scss/_faq.scss b/public/assets/scss/_faq.scss
deleted file mode 100644
index efd0678..0000000
--- a/public/assets/scss/_faq.scss
+++ /dev/null
@@ -1,93 +0,0 @@
-.faq-wrapper {
-
- .faq-content {
- .text {
- max-width: 505px;
- margin-top: 24px;
- margin-bottom: 48px;
- }
- }
-
- .faq-items {
- position: relative;
- z-index: 9;
-
- .accordion {
- .accordion-item {
- border: none;
-
- h5 {
- button {
- line-height: 1;
- font-weight: 600;
- padding: 29px 30px;
- color: $header-color;
-
- cursor: pointer;
-
- @include breakpoint(max-sm) {
- font-size: 18px;
- line-height: 1.6;
- padding: 22px 20px;
- }
- }
- }
-
- .accordion-body {
- padding: 20px 30px;
- background-color: $white;
- box-shadow: 8px 8px 32px 0 rgba(0, 72, 180, 0.08);
- backdrop-filter: blur(5px);
-
- p {
- font-size: 16px;
- line-height: 24px;
- font-weight: 400;
-
- @include breakpoint(max-sm) {
- width: 100%;
- font-size: 14px;
- line-height: 28px;
- }
- }
- }
- }
-
- .accordion-button {
- background-color: $white;
- color: $header-color;
- box-shadow: 8px 8px 32px 0 rgba(36, 12, 135, 0.08);
- backdrop-filter: blur(5px);
-
- &::after {
- content: "\f324";
- font-family: "Font Awesome 6 Pro";
- background: transparent;
- font-weight: 900;
- transition: all 0.3s ease-in-out !important;
- color: $theme-color-2;
- }
-
- &:not(.collapsed) {
- background-color: $white;
- box-shadow: 8px 8px 32px 0 rgba(36, 12, 135, 0.08);
- backdrop-filter: blur(5px);
- color: $header-color;
-
- &::after {
- content: "\f322";
- font-family: "Font Awesome 6 Pro";
- background: transparent;
- font-weight: 900;
- color: $theme-color;
- transform: rotate(0);
- }
- }
- }
- }
- }
-}
-
-.faq-section {
- border-top: 1px solid rgba(203, 204, 207, 0.24);
-}
\ No newline at end of file
diff --git a/public/assets/scss/_feature.scss b/public/assets/scss/_feature.scss
deleted file mode 100644
index e719e15..0000000
--- a/public/assets/scss/_feature.scss
+++ /dev/null
@@ -1,1036 +0,0 @@
-.feature-wrapper {
-
- .feature-content {
- .text {
- color: $white;
- opacity: 0.8;
- margin-top: 24px;
- }
-
- .feature-list-item {
- @include flex;
- justify-content: space-between;
- border-top: 1px solid rgba(203, 204, 207, 0.32);
- padding-top: 30px;
- margin-top: 24px;
- margin-bottom: 48px;
-
- @include breakpoint (max-xxl) {
- gap: 10px;
- margin-bottom: 30px;
- }
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- gap: 10px;
- }
-
- .list {
- li {
- font-size: 18px;
- font-weight: 500;
- color: $white;
-
- @include breakpoint (max-xxl) {
- font-size: 14px;
- }
-
- &:not(:last-child) {
- margin-bottom: 10px;
- }
-
- i {
- width: 22px;
- height: 22px;
- line-height: 22px;
- text-align: center;
- border-radius: 50px;
- color: $theme-color-2;
- transform: rotate(-45deg);
- background-color: $white;
- margin-right: 8px;
- }
- }
- }
- }
-
- .theme-btn {
- color: $white;
-
- &:hover {
- border: 1px solid $theme-color;
- }
- }
- }
-
- .feature-image {
- margin-left: 30px;
- position: relative;
-
- h6 {
- font-size: 16px;
- font-weight: 500;
- padding: 6.948px 10.423px;
- border-radius: 83.381px;
- background: rgba(255, 255, 255, 0.12);
- backdrop-filter: blur(43.42761993408203px);
- color: $white;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%,-50%);
-
- @include breakpoint (max-sm) {
- font-size: 14px;
- }
- }
-
- @include breakpoint (max-xxl) {
- margin-left: 0;
- }
-
- img {
- @include imgw;
- animation: spin 15s linear infinite;
- }
- }
-}
-
-.feature-section {
- margin: 0 20px;
- border-radius: 32px;
-
- @include breakpoint (max-sm) {
- margin: 0 15px;
- }
-}
-
-.video-section {
- border-radius: 24px;
- position: relative;
- margin: 0 20px;
- margin-bottom: 25px;
- margin-top: 120px;
-
- &::before {
- content: "";
- position: absolute;
- inset: 0;
- border-radius: 24px;
- background: linear-gradient(
- 75deg,
- #182960 -2.93%,
- rgba(0, 72, 180, 0.24) 98.99%
- );
- z-index: 1;
- pointer-events: none;
- }
-
- .video-bg {
- width: 100%;
- height: 672px;
- border-radius: 40px;
- object-fit: cover;
- position: relative;
- border-radius: 24px;
-
- @include breakpoint (max-xxl) {
- height: 550px;
- }
-
- @include breakpoint (max-lg) {
- height: 450px;
- }
-
- @include breakpoint (max-sm) {
- height: 350px;
- }
- }
-
- @include breakpoint (max-xxl) {
- margin-bottom: 0;
- overflow: hidden;
- margin-top: 100px;
- }
-
- @include breakpoint (max-lg) {
- margin-top: 80px;
- }
-
- .text-image {
- position: absolute;
- left: -10px;
- right: -18px;
- bottom: -30px;
- z-index: -1;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- img{
- @include imgw;
- }
- }
-
- .text-image-2 {
- position: absolute;
- left: -11px;
- right: -20px;
- bottom: 0;
- z-index: 9;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- img{
- @include imgw;
- }
- }
-}
-
-.video-content {
- position: absolute;
- top: 172px;
- z-index: 999;
-
- h2 {
- font-size: 100px;
- font-weight: 700;
- color: $white;
- text-transform: uppercase;
- border-left: 6px solid $theme-color-2;
- padding-left: 30px;
-
- @include breakpoint (max-xxl) {
- font-size: 60px;
- }
-
- @include breakpoint (max-lg) {
- font-size: 50px;
- }
-
- @include breakpoint (max-md) {
- font-size: 40px;
- }
-
- @include breakpoint (max-sm) {
- font-size: 30px;
- }
- }
-
- .shape {
- position: absolute;
- z-index: -1;
- left: -85px;
- top: -27px;
-
- @include breakpoint (max-xxxl) {
- left: 0;
- }
-
- @include breakpoint (max-xxl) {
- display: none;
- }
- }
-}
-
-.counter-section {
- margin: 0 20px;
- position: relative;
- border-radius: 32px;
- background-attachment: fixed;
-
- @include breakpoint (max-sm) {
- margin: 0 15px;
- }
-
- .shape {
- position: absolute;
- left: 0;
- bottom: 0;
-
- @include breakpoint (max-xxxl) {
- display: none;
- }
- }
-}
-
-.counter-wrapper {
- border-top: 1px solid rgba(203, 204, 207, 0.24);
- margin-top: 48px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- }
-
- .counter-main-item {
- @include flex;
- justify-content: space-between;
-
- @include breakpoint (max-xxl) {
- padding-bottom: 30px;
- }
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- }
-
- .counter-item {
- text-align: center;
- padding-top: 48px;
- padding-bottom: 48px;
- width: 330px;
-
- @include breakpoint (max-xxl) {
- width: initial;
- padding-top: 30px;
- padding-bottom: 0;
- }
-
- &.style-2 {
- border-right: 1px solid rgba(203, 204, 207, 0.24);
- padding-right: 9px;
- padding-left: 10px;
-
- @include breakpoint (max-xxl) {
- border-right: none;
- padding-left: 0;
- padding-right: 0;
- }
- }
-
- h2 {
- -webkit-text-stroke-width: 2px;
- -webkit-text-stroke-color: $white;
- font-size: 72px;
- color: transparent;
- @include transition;
- }
-
- h5 {
- color: $white;
- margin-bottom: 100px;
-
- @include breakpoint (max-xxl) {
- margin-bottom: 30px;
- }
- }
-
- p {
- opacity: 0.88;
- color: $white;
- max-width: 330px;
-
- @include breakpoint (max-xxl) {
- max-width: initial;
- font-size: 14px;
- }
-
- @include breakpoint (max-lg) {
- max-width: 330px;
- }
- }
-
- &:hover {
- h2 {
- color: $white !important;
- -webkit-text-stroke: initial !important;
- }
- }
- }
- }
-}
-
-.visa-consultency-item {
- text-align: center;
-
- .image {
- margin-bottom: 24px;
- transition: 0.3s;
- }
-
- h6 {
- text-transform: uppercase;
- font-weight: 500;
- color: $theme-color;
- margin-top: 10px;
- }
-
- &:hover {
- .image {
- img {
- animation: zoomIn 0.5s linear;
- }
- }
- }
-}
-
-.feature-wrapper-2 {
-
- .feature-image {
- img {
- @include imgw;
- }
-
- &.tp-clip-anim {
- width: 100%;
- display: grid;
- align-items: center;
- justify-items: center;
- overflow: hidden;
- position: relative;
- & .tp-anim-img {
- opacity: 0;
- width: 100%;
- height: 100%;
- }
-
- & .mask {
- background-size: cover;
- background-position: center;
- transform: scale(1.005);
- }
- >* {
- grid-area: 1 / 1 / 2 / 2;
- width: 100%;
- height: 100%;
- max-height: 100%;
- }
- }
- }
-
- .feature-content {
- margin-left: 30px;
-
- @include breakpoint (max-lg) {
- margin-left: 0;
- }
-
- .text {
- margin-top: 24px;
- }
-
- .feature-count {
- @include flex;
- gap: 24px;
- border-top: 1px solid rgba(203, 204, 207, 0.24);
- margin-top: 24px;
- padding-top: 24px;
- margin-bottom: 48px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- margin-bottom: 30px;
- }
-
- .content {
-
- .count-image {
- img {
- @include imgw;
- }
- }
-
- h5 {
- font-weight: 500;
- }
- }
-
- .list {
- li {
- font-size: 18px;
- font-weight: 500;
- color: $header-color;
- font-family: $heading-font;
-
- @include breakpoint (max-xxl) {
- font-size: 16px;
- }
-
- &:not(:last-child) {
- margin-bottom: 15px;
- }
-
- i {
- margin-right: 8px;
- color: $theme-color-2;
- }
- }
- }
- }
- }
-}
-
-.choose-us-wrapper-2 {
-
- .choose-us-image {
- margin-right: 40px;
-
- img {
- @include imgw;
- }
-
- &.tp-clip-anim {
- width: 100%;
- display: grid;
- align-items: center;
- justify-items: center;
- overflow: hidden;
- position: relative;
- & .tp-anim-img {
- opacity: 0;
- width: 100%;
- height: 100%;
- }
-
- & .mask {
- background-size: cover;
- background-position: center;
- transform: scale(1.005);
- }
- >* {
- grid-area: 1 / 1 / 2 / 2;
- width: 100%;
- height: 100%;
- max-height: 100%;
- }
- }
- }
-
- .feature-content {
- margin-right: 20px;
-
- @include breakpoint (max-xxl) {
- margin-right: 0;
- }
-
- .text {
- margin-top: 24px;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding-bottom: 16px;
- margin-bottom: 8px;
- }
-
- .choose-us-box {
- @include flex;
- gap: 16px;
- padding: 16px 24px;
- border: 1px solid $white;
- @include transition;
- border-radius: 12px;
- margin-top: 24px;
- background-color: $white;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- }
-
- .icon {
- width: 80px;
- height: 80px;
- line-height: 80px;
- text-align: center;
- border-radius: 100px;
- background-color: $bg-color;
- }
-
- .content {
- h5 {
- margin-bottom: 5px;
- }
-
- p {
- max-width: 500px;
- }
- }
-
- &:hover {
- border: 1px solid $theme-color;
- }
- }
-
- .theme-btn {
- margin-top: 48px;
- }
- }
-}
-
-.destination-offer-wrapper-3 {
- margin-top: 60px;
-
- @include breakpoint (max-sm) {
- margin-top: 30px;
- }
-
- .destination-offer-item {
- border-radius: 16px;
-
- .choose-us-image {
- img {
- @include imgw;
- border-top-left-radius: 16px;
- border-top-right-radius: 16px;
- }
- }
-
- .choose-us-content {
- padding: 16px 17px 24px;
- background-color: $bg-color;
-
- .icon-item {
- @include flex;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- gap: 12px;
- padding-bottom: 12px;
- margin-bottom: 10px;
-
- h5 {
- a {
- background-position: 0 95%;
- background-repeat: no-repeat;
- background-size: 0% 2px;
- display: inline;
-
- &:hover {
- color: $theme-color;
- background-size: 100% 2px;
- background-image: linear-gradient(180deg, $theme-color 0%, $theme-color 100%);
- }
- }
- }
- }
- }
- }
-}
-
-.destination-offer-section {
- position: relative;
- z-index: 9;
-
- .bg-image {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- z-index: -1;
-
- &::before {
- @include before;
- background: rgb(4 4 5 / 87%);
- }
- }
-}
-
-.choose-us-wrapper-3 {
-
- .choose-us-left-item {
- @include flex;
- gap: 0;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 30px;
- }
-
- .left-item {
- .choose-us-image {
- img {
- @include breakpoint (max-xxl) {
- @include imgw;
- }
- }
- }
-
- .caller-item {
- @include flex;
- gap: 12px;
- padding: 21px 45px;
- background-color: $header-color;
- width: 311px;
- border-bottom-left-radius: 100px;
- margin-top: 30px;
-
- .icon {
- width: 48px;
- height: 48px;
- line-height: 48px;
- border-radius: 100px;
- text-align: center;
- background-color: $white;
- color: $theme-color;
- }
-
- .content {
- span {
- opacity: 0.8;
- color: $white;
- }
-
- h5 {
- a {
- color: $theme-color;
- }
- }
- }
- }
- }
-
- .right-item {
- .count-box {
- padding: 20px 24px;
- background-color: $theme-color-2;
- border-top-right-radius: 100px;
- @include flex;
- gap: 4px;
- width: 308px;
- margin-bottom: 30px;
- margin-left: -24px;
-
- @include breakpoint (max-xxl) {
- margin-left: 0;
- }
-
- h2 {
- color: $white;
- }
-
- h5 {
- color: $white;
- }
- }
-
- .choose-image {
- img {
- @include breakpoint (max-xxl) {
- @include imgw;
- }
- }
- }
- }
- }
-
- .choose-us-content {
-
- .text {
- margin-top: 20px;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding-bottom: 24px;
- margin-bottom: 24px;
- }
-
- .nav {
- display: flex;
- gap: 30px;
- margin-bottom: 30px;
-
- li {
- font-size: 20px;
- font-weight: 500;
-
- @include breakpoint (max-xl) {
- font-size: 16px;
- }
-
- .nav-link{
- color: $header-color;
- @include transition;
- padding: 16px 32px;
- border-radius: 100px;
- line-height: 1;
- border: 1px solid rgba(203, 204, 207, 0.24);
-
- &.active {
- position: relative;
- background-color: $theme-color-2;
- color: $white;
- }
- }
- }
- }
-
- .content {
- margin-top: 16px;
-
- .list-item {
- @include flex;
- gap: 50px;
- margin-top: 20px;
- margin-bottom: 50px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 10px;
- margin-bottom: 30px;
- }
-
- .list {
- li {
- font-size: 18px;
- font-weight: 500;
- color: $header-color;
- font-family: $heading-font;
-
- @include breakpoint (max-xxl) {
- font-size: 16px;
- }
-
- &:not(:last-child) {
- margin-bottom: 10px;
- }
-
- i {
- margin-right: 10px;
- }
- }
- }
- }
- }
- }
-}
-
-.intro-image {
- margin-top: 30px;
- border-radius: 24px;
-
- img {
- @include imgw;
- border-radius: 24px;
- }
-
- &.tp-clip-anim {
- width: 100%;
- display: grid;
- align-items: center;
- justify-items: center;
- overflow: hidden;
- position: relative;
- & .tp-anim-img {
- opacity: 0;
- width: 100%;
- height: 100%;
- }
-
- & .mask {
- background-size: cover;
- background-position: center;
- transform: scale(1.005);
- }
- >* {
- grid-area: 1 / 1 / 2 / 2;
- width: 100%;
- height: 100%;
- max-height: 100%;
- }
- }
-}
-
-.appointment-wrapper {
-
- .appointment-content {
- h5 {
- margin-top: 80px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- }
- }
- }
-
- .calendar {
- background: #f9f9f9;
- padding: 20px;
- border-radius: 15px;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
- width: 640px;
-
- @include breakpoint (max-xxl) {
- width: initial;
- overflow-x: scroll;
- }
-
- .calendar-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 15px;
-
- h2 {
- margin: 0;
- font-size: 18px;
- font-weight: 600;
- }
-
- button {
- background: $theme-color-2;
- color: $white;
- border: none;
- border-radius: 50%;
- width: 30px;
- height: 30px;
- cursor: pointer;
- font-size: 16px;
- }
- }
-
- .days {
- display: grid;
- grid-template-columns: repeat(7, 1fr);
- text-align: center;
- font-weight: 700;
- color: $header-color;
- margin-bottom: 10px;
- }
-
- .dates {
- display: grid;
- grid-template-columns: repeat(7, 1fr);
- gap: 5px;
- text-align: center;
-
- div {
- width: 70px;
- height: 70px;
- line-height: 70px;
- border-radius: 50%;
- background: $white;
- font-size: 20px;
- font-weight: 700;
-
- @include breakpoint (max-xxl) {
- width: 50px;
- height: 50px;
- line-height: 50px;
- font-size: 16px;
- }
- }
-
- .highlight {
- background: $theme-color-2 !important;
- color: $white;
- font-weight: bold;
- }
-
- div.active-date {
- background: $theme-color-2;
- color: $white;
- font-weight: bold;
- }
- }
- }
-}
-
-.cooming-soon-content {
- text-align: center;
-
- h2 {
- margin-top: 24px;
- margin-bottom: 20px;
- }
-
- p {
- max-width: 744px;
- margin: 0 auto;
- }
-
- form {
- max-width: 664px;
- width: 100%;
- text-align: center;
- margin: 0 auto;
- }
-
- .form-clt {
- position: relative;
- margin-top: 48px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- }
-
- input {
- width: 100%;
- outline: none;
- border: none;
- background-color: $bg-color;
- color: $text-color;
- line-height: 1;
- padding: 25px 0px 25px 25px;
- border-radius: 100px;
- max-width: 664px;
-
- @include breakpoint (max-xxl) {
- padding: 20px 0px 20px 10px;
- font-size: 14px;
- }
-
- @include breakpoint (max-lg) {
- padding: 20px 0px 20px 10px;
- font-size: 14px;
- }
-
- @include breakpoint (max-sm) {
- font-size: 14px;
- }
-
- &::placeholder {
- color: $text-color;
- }
- }
-
- .theme-btn {
- position: absolute;
- top: 4px;
- right: 4px;
- bottom: 4px;
- text-transform: uppercase;
- border: 1px solid rgba(203, 204, 207, 0.24);
- background-color: $bg-color;
-
- @include breakpoint (max-xxl){
- right: 0;
- top: 0;
- bottom: 0;
- padding: 2px 4px 2px 12px;
- font-size: 14px;
-
- i {
- margin-left: 10px;
- }
- }
-
- &:hover {
- color: $white;
- background-color: $theme-color;
- }
- }
- }
-
- .social-icon {
- @include flex;
- gap: 12px;
- justify-content: center;
- margin-top: 40px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- }
-
- a {
- width: 44px;
- height: 44px;
- line-height: 44px;
- text-align: center;
- border-radius: 100px;
- background-color: $bg-color;
- color: $header-color;
- display: inline-block;
-
- &:hover {
- background-color: $theme-color;
- color: $white;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_footer.scss b/public/assets/scss/_footer.scss
deleted file mode 100644
index d73f4a0..0000000
--- a/public/assets/scss/_footer.scss
+++ /dev/null
@@ -1,683 +0,0 @@
-
-.footer-wrapper {
-
- .footer-item {
- padding: 100px 0;
- position: relative;
- text-align: center;
-
- @include breakpoint (max-lg) {
- padding: 80px 0;
- }
-
- h2 {
- font-size: 30px;
- color: $white;
-
- @include breakpoint (max-sm) {
- font-size: 25px;
- }
-
- a {
- color: $white;
- }
-
- &.text {
- font-size: 24px;
- }
- }
-
- .footer-list-item {
- @include flex;
- justify-content: space-between;
- border-radius: 136px;
- background: rgba(255, 255, 255, 0.08);
- backdrop-filter: blur(62px);
- padding: 20px 24px;
- margin-top: 80px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- padding: 20px;
- }
-
- @include breakpoint (max-lg) {
- border-radius: 0;
- flex-wrap: wrap;
- gap: 20px;
- }
-
- .footer-list {
- @include flex;
- gap: 40px;
-
- @include breakpoint (max-xxl) {
- gap: 20px;
- }
-
- @include breakpoint (max-sm) {
- flex-wrap: wrap;
- gap: 15px;
- }
-
- li {
- font-weight: 500;
- font-family: $heading-font;
- text-transform: uppercase;
-
- a {
- color: $white;
-
- &:hover {
- color: $theme-color;
- }
- }
- }
- }
-
- .social-icon {
- @include flex;
- gap: 12px;
-
- a {
- width: 40px;
- height: 40px;
- line-height: 40px;
- text-align: center;
- border-radius: 100px;
- backdrop-filter: blur(46px);
- background-color: $bg-color-2;
- color: $white;
- display: inline-block;
-
- &:hover {
- background-color: $theme-color;
- }
- }
- }
- }
- }
-}
-
-
-.footer-section {
- margin: 0 30px;
- border-radius: 32px;
-
- @include breakpoint (max-sm) {
- margin: 0 15px;
- }
-}
-
-.footer-bottom {
- padding: 24px 0;
- text-align: center;
-
- .footer-wrapper {
- @include flex;
- justify-content: center;
- gap: 100px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 20px;
- }
-
- @include breakpoint (max-sm) {
- justify-content: start;
- }
-
- p {
- color: $header-color;
-
- span {
- color: $theme-color;
- text-transform: uppercase;
- }
- }
-
- .bottom-list {
- @include flex;
- gap: 40px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 20px;
- }
-
- @include breakpoint (max-sm) {
- justify-content: center;
- }
-
- li {
- a {
- &:hover {
- color: $theme-color;
- }
- }
- }
- }
- }
-}
-
-.footer-widget-wrapper-2 {
- padding: 70px 0 90px;
-
- @include breakpoint (max-lg) {
- padding: 50px 0 80px;
- }
-
- .single-footer-widget {
- margin-top: 30px;
-
- .widget-title {
- margin-bottom: 24px;
-
- h3 {
- color: $white;
- text-transform: uppercase;
- }
- }
-
- .footer-content {
- p {
- max-width: 502px;
- color: rgba(255, 255, 255, 0.7);
-
- @include breakpoint (max-xxl) {
- font-size: 14px;
- }
-
- @include breakpoint (max-lg) {
- font-size: 16px;
- }
- }
-
- .social-icon {
- @include flex;
- gap: 20px;
- margin-top: 50px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- gap: 13px;
- }
-
- @include breakpoint (max-lg) {
- gap: 16px;
- }
-
- span {
- display: inline-block;
- margin-right: 4px;
- color: $white;
- font-weight: 500;
- text-transform: uppercase;
- font-family: $heading-font;
-
- @include breakpoint (max-xxl) {
- font-size: 14px;
- }
-
- @include breakpoint (max-lg) {
- font-size: 16px;
- }
- }
-
- a {
- font-size: 20px;
- color: $theme-color;
-
- &:hover {
- color: $theme-color-2;
- }
- }
- }
- }
-
- .list {
- li {
- @include transition;
- font-weight: 400;
-
- &:not(:last-child){
- margin-bottom: 20px;
- }
-
- a {
- color: rgba(255, 255, 255, 0.7);
- }
-
- &:hover {
- margin-left: 5px;
-
- a {
- color: $theme-color;
- }
- }
- }
- }
-
- .contact-item {
- li {
- display: flex;
- align-items: start;
- color: rgba(255, 255, 255, 0.7);
- gap: 8px;
-
- &.style-2 {
- @include flex;
- }
-
- &:not(:last-child) {
- margin-bottom: 20px;
- }
-
- a {
- color: rgba(255, 255, 255, 0.7);
- }
-
- i {
- color: $theme-color;
- }
- }
- }
- }
-}
-
-.footer-section-2 {
- position: relative;
- z-index: 9;
-
- .shape {
- position: absolute;
- left: 0;
- top: 0;
- z-index: -1;
- }
-}
-
-.footer-newsletter {
- @include flex;
- justify-content: space-between;
- margin-top: 100px;
- padding: 32px 48px;
- background-color: $theme-color-2;
- border-radius: 16px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 20px;
- padding: 30px;
- margin-top: 80px;
- }
-
- .newsletter-content {
- h3 {
- color: $white;
- }
-
- p {
- color: rgba(255, 255, 255, 0.7);
- }
- }
-
- form {
- max-width: 587px;
- width: 100%;
- }
-
- .form-clt {
- position: relative;
-
- .input-icon {
- top: 50%;
- left: 25px;
- transform: translateY(-50%);
- position: absolute;
-
- @include breakpoint (max-sm) {
- top: 23%;
- }
- }
-
- input {
- width: 100%;
- outline: none;
- border: none;
- background-color: $white;
- color: $text-color;
- line-height: 1;
- padding: 25px 0px 25px 60px;
- border-radius: 100px;
- max-width: 587px;
-
- @include breakpoint (max-lg) {
- padding: 20px 0px 20px 60px;
- }
-
- &::placeholder {
- color: $text-color;
- }
- }
-
- .theme-btn {
- position: absolute;
- top: 4px;
- right: 4px;
- bottom: 4px;
- text-transform: uppercase;
- border: 1px solid rgba(203, 204, 207, 0.24);
-
- @include breakpoint (max-xxs){
- position: static;
- margin-top: 20px;
- color: $white;
- }
- }
- }
-}
-
-.fotter-bootom-2 {
- border-top: 1px solid rgba(203, 204, 207, 0.24);
- padding: 20px 0;
-
- .footer-wrapper {
- @include flex;
- justify-content: center;
- gap: 100px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 20px;
- }
-
- @include breakpoint (max-sm) {
- justify-content: start;
- }
-
- p {
- color: $white;
-
- @include breakpoint (max-sm) {
- text-align: center;
- }
-
-
- span {
- color: $theme-color;
- text-transform: uppercase;
- }
- }
-
- .bottom-list {
- @include flex;
- gap: 40px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 20px;
- }
-
- @include breakpoint (max-sm) {
- justify-content: center;
- }
-
- li {
- a {
- color: $white;
-
- &:hover {
- color: $theme-color;
- }
- }
- }
- }
- }
-}
-
-
-.footer-widget-wrapper-3 {
- padding: 70px 0 100px;
- position: relative;
-
- @include breakpoint (max-xxl) {
- padding: 70px 0 100px;
- }
-
- @include breakpoint (max-lg) {
- padding: 50px 0 80px;
- }
-
- &::before {
- position: absolute;
- content: "";
- width: 1px;
- height: 424px;
- left: 600px;
- background-color: rgba(203, 204, 207, 0.24);
- top: 0;
- bottom: 0;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
- }
-
- .single-footer-widget {
- margin-top: 30px;
-
- .widget-title {
- margin-bottom: 24px;
-
- h3 {
- color: $white;
- text-transform: uppercase;
- }
- }
-
- .footer-content {
- h3 {
- color: $white;
- margin-bottom: 10px;
- }
-
- p {
- color: $white;
- opacity: 0.7;
- max-width: 551px;
- margin-bottom: 30px;
- }
-
- form {
- max-width: 551px;
- width: 100%;
- }
-
- .form-clt {
- position: relative;
-
- input {
- width: 100%;
- outline: none;
- border: none;
- background-color: $white;
- color: $text-color;
- line-height: 1;
- padding: 25px 0px 25px 25px;
- border-radius: 100px;
- max-width: 551px;
-
- @include breakpoint (max-xxl) {
- padding: 20px 0px 20px 10px;
- font-size: 14px;
- }
-
- @include breakpoint (max-lg) {
- padding: 20px 0px 20px 10px;
- font-size: 14px;
- }
-
- @include breakpoint (max-sm) {
- font-size: 14px;
- }
-
- &::placeholder {
- color: $text-color;
- }
- }
-
- .theme-btn {
- position: absolute;
- top: 4px;
- right: 4px;
- bottom: 4px;
- text-transform: uppercase;
- border: 1px solid rgba(203, 204, 207, 0.24);
- background-color: $bg-color;
-
- &:hover {
- background-color: $theme-color;
- color: $white;
- }
-
- @include breakpoint (max-xxl){
- right: 0;
- top: 0;
- bottom: 0;
- padding: 2px 4px 2px 12px;
- font-size: 14px;
-
- i {
- margin-left: 10px;
- }
- }
- }
- }
-
- h6 {
- color: $white;
- margin-top: 15px;
-
- span {
- color: $theme-color;
- text-transform: uppercase;
- font-size: 18px;
- font-weight: 400;
- }
- }
- }
-
- .contact-content {
- p {
- color: $white;
- opacity: 0.7;
- margin-bottom: 24px;
- }
-
- h3 {
- color: $white;
- }
-
- .contact-list {
- margin-top: 16px;
-
- li {
- @include flex;
- gap: 32px;
-
- a {
- color: $white;
- opacity: 0.7;
- }
- }
- }
- }
-
- .list {
- li {
- @include transition;
- font-weight: 400;
-
- &:not(:last-child){
- margin-bottom: 20px;
- }
-
- a {
- color: rgba(255, 255, 255, 0.7);
- }
-
- &:hover {
- margin-left: 5px;
-
- a {
- color: $theme-color;
- }
- }
- }
- }
- }
-}
-
-.footer-top-item {
- @include flex;
- justify-content: space-between;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
-
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- gap: 30Px;
- padding-bottom: 10px;
- }
-
- .footer-logo {
- background-color: $theme-color-2;
- padding: 18px 30px;
- }
-
- .top-list {
- @include flex;
- gap: 40px;
-
- @include breakpoint (max-xxl) {
- gap: 20Px;
- }
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- gap: 15Px;
- }
-
- li {
- a {
- font-weight: 500;
- text-transform: uppercase;
- color: $white;
-
- &:hover {
- color: $theme-color;
- }
- }
- }
- }
-
- .social-item {
- @include flex;
- gap: 12px;
-
- a {
- width: 40px;
- height: 40px;
- line-height: 40px;
- background-color: $theme-color-2;
- border-radius: 100px;
- color: $white;
- text-align: center;
-
- &:hover {
- background-color: $theme-color;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_header.scss b/public/assets/scss/_header.scss
deleted file mode 100644
index f6c8d71..0000000
--- a/public/assets/scss/_header.scss
+++ /dev/null
@@ -1,1264 +0,0 @@
-.header-top-section {
- background-color: $theme-color-2;
- position: relative;
- z-index: 999;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- &::before {
- @include before;
- background-color: $theme-color;
- left: 0;
- right: initial;
- width: 337px;
- z-index: -1;
- }
-
- .container-fluid {
- padding: 0 40px;
-
- @include breakpoint (max-xxl) {
- padding: 0 40px;
- }
-
- @include breakpoint (max-xxl) {
- padding: 0 30px;
- }
-
- @include breakpoint (max-sm) {
- padding: 0 15px;
- }
- }
-}
-
-.header-top-wrapper {
- @include flex;
- justify-content: space-between;
- padding: 10px 0;
-
- .header-left {
-
- .list {
- @include flex;
- gap: 60px;
-
- li {
- color: rgba(255, 255, 255, 0.7);
-
- a {
- color: rgba(255, 255, 255, 0.7);
- }
-
- i {
- margin-right: 12px;
- color: $theme-color;
- }
-
- &.style-2 {
- color: $white;
-
- i {
- color: $white;
- }
-
- span {
- font-size: 18px;
- color: $white;
- display: inline-block;
- margin-right: 12px;
- }
- }
- }
- }
- }
-
- .header-right {
- @include flex;
- gap: 45px;
-
- .flag-wrap {
- position: relative;
- width: 130px;
- z-index: 9;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- i {
- color: $white;
- }
-
- .nice-select {
- background: transparent;
- border: none;
- text-align: center;
- margin: 0 auto;
- position: relative;
- z-index: 999;
- padding: 10px 7px 10px 58px;
-
- span{
- font-size: 14px;
- font-weight: 500;
- // text-transform: capitalize;
- color: $white;
- }
-
- .list {
- li {
- color: $header-color;
- }
- }
-
- &::after {
- border-bottom: 2px solid $white;
- border-right: 2px solid $white;
- height: 8px;
- margin-top: -6px;
- width: 8px;
- right: 3px;
- }
- }
-
- .flag {
- position: absolute;
- top: 10px;
- left: 32px;
- z-index: 1;
-
- @include breakpoint(max-md){
- display: none
- }
-
- }
- }
-
- .social-item {
- @include flex;
- gap: 12px;
-
- a {
- width: 32px;
- height: 32px;
- line-height: 32px;
- background-color: #153888;
- backdrop-filter: blur(46px);
- border-radius: 100px;
- color: $white;
- text-align: center;
-
- &:hover {
- background-color: $theme-color;
- }
- }
- }
- }
-}
-
-.header-top-section-2 {
- position: relative;
- background-color: $header-color;
-
- .container-fluid {
- padding: 0 100px;
-
- @include breakpoint (max-xl4) {
- padding: 0 70px;
- }
-
- @include breakpoint (max-xxxl) {
- padding: 0 50px;
- }
-
- @include breakpoint (max-xxl) {
- padding: 0 30px;
- }
-
- @include breakpoint (max-sm) {
- padding: 0 15px;
- }
- }
-}
-
-.header-top-wrapper-2 {
- padding: 10px 0;
- @include flex;
- justify-content: space-between;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- .header-left {
- @include flex;
- gap: 32px;
-
- span {
- color: rgba(255, 255, 255, 0.7);
- border-radius: 88px;
- background: rgba(255, 255, 255, 0.12);
- backdrop-filter: blur(58px);
- padding: 5px 8px;
- line-height: 1;
-
- a {
- color: rgba(255, 255, 255, 0.7);
- }
- }
- }
-
- .social-item {
- @include flex;
- gap: 12px;
-
- a {
- width: 40px;
- height: 40px;
- line-height: 40px;
- background-color: #153888;
- backdrop-filter: blur(46px);
- border-radius: 100px;
- color: $white;
- text-align: center;
-
- &:hover {
- background-color: $theme-color;
- }
- }
- }
-}
-
-.header-top-section-3 {
- background-color: $header-color;
- position: relative;
- z-index: 999;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- &::before {
- @include before;
- background-color: $theme-color-2;
- left: 0;
- right: initial;
- width: 337px;
- z-index: -1;
-
- @include breakpoint (max-xxxl) {
- width: 300px;
- }
- }
-
- .container-fluid {
- padding: 0 100px;
-
- @include breakpoint (max-xl4) {
- padding: 0 70px;
- }
-
- @include breakpoint (max-xxxl) {
- padding: 0 50px;
- }
-
- @include breakpoint (max-xxl) {
- padding: 0 30px;
- }
-
- @include breakpoint (max-sm) {
- padding: 0 15px;
- }
- }
-}
-
-.header-top-wrapper-3 {
- @include flex;
- justify-content: space-between;
- padding: 10px 0;
-
- .left-item {
- margin-left: 280px;
-
- .social-item {
- @include flex;
- gap: 12px;
-
- a {
- width: 40px;
- height: 40px;
- line-height: 40px;
- background-color: #153888;
- backdrop-filter: blur(46px);
- border-radius: 100px;
- color: $white;
- text-align: center;
-
- &:hover {
- background-color: $theme-color;
- }
- }
- }
- }
-
- .header-right {
-
- .list {
- @include flex;
- gap: 60px;
-
- li {
- color: rgba(255, 255, 255, 0.7);
-
- a {
- color: rgba(255, 255, 255, 0.7);
- }
-
- i {
- margin-right: 12px;
- color: $theme-color;
- }
- }
- }
- }
-}
-
-//>>>>> Header Main Start <<<</
-.menu-thumb {
- @include breakpoint (max-xl){
- display: none !important;
- }
-}
-
-.header-main {
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: 10px 0;
-
- .main-menu {
- ul {
- margin-bottom: 0;
-
- li {
- position: relative;
- list-style: none;
- display: inline-block;
- margin-inline-end: 50px;
-
- @include breakpoint (max-xl) {
- margin-inline-end: 30px;
- }
-
- &:last-child {
- margin-inline-end: 0;
- }
-
- a {
- display: inline-block;
- font-size: 16px;
- font-weight: 500;
- color: $header-color;
- padding: 20px 0;
- text-align: left;
- position: relative;
- text-transform: uppercase;
- @include transition;
-
- i {
- margin-left: 4px;
- font-size: 14px;
- }
-
- &:hover {
- color: $theme-color-2;
- }
-
- }
- .submenu {
- position: absolute;
- top: 115%;
- inset-inline-start: 0;
- min-width: 260px;
- padding: 20px 0;
- z-index: 99999;
- visibility: hidden;
- opacity: 0;
- transform-origin: top center;
- color: $header-color;
- transform: scaleY(0) translateZ(100px);
- @include transition;
- border-top: 6px solid $theme-color;
- background-color: $white;
- box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
-
- li {
- display: block;
- width: 100%;
- margin: 0;
-
-
- a {
- position: relative;
- z-index: 11;
- font-size: 16px;
- font-weight: 500;
- letter-spacing: -0.34px;
- color: $header-color;
- line-height: 38px;
- padding: 0px 0px 0px 32px;
- padding-right: 22px;
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: space-between;
-
- &::before {
- content: "";
- position: absolute;
- width: 0px;
- height: 2px;
- background: $theme-color;
- left: 14px;
- bottom: 18px;
- transition: all 0.4s ease-in-out;
- }
-
- &:hover {
- color: $theme-color-2;
- }
- }
- &:last-child {
- a {
- border: none;
- }
- }
- .submenu {
- inset-inline-start: 100%;
- top: 0;
- visibility: hidden;
- opacity: 0;
- }
- &:hover {
- >a {
- color: $theme-color !important;
- margin-left: 10px;
-
- &::before {
- width: 10px;
- }
-
- &::after {
- color: $theme-color;
- }
- }
- >.submenu {
- -webkit-transform: translateY(1);
- -moz-transform: translateY(1);
- -ms-transform: translateY(1);
- -o-transform: translateY(1);
- transform: translateY(1);
- visibility: visible;
- opacity: 1;
- }
- }
- }
- li.has-dropdown {
- >a {
- &::after {
- position: absolute;
- top: 50%;
- inset-inline-end: 25px;
- -webkit-transform: translateY(-50%);
- -moz-transform: translateY(-50%);
- -ms-transform: translateY(-50%);
- -o-transform: translateY(-50%);
- transform: translateY(-50%);
- color: $theme-color;
- }
- }
- }
- }
-
- .has-homemenu {
- width: 800px;
- padding: 30px 30px 10px 30px;
- opacity: 0;
- left: -250px;
- visibility: hidden;
- padding: 30px 30px 10px 30px;
- background-color: $white;
-
- .homemenu-items {
- @include flex;
- gap: 30px;
- justify-content: space-between;
-
- @include breakpoint (max-lg){
- flex-wrap: wrap;
- }
-
- .homemenu {
- position: relative;
- .homemenu-thumb {
- position: relative;
-
- .demo-button {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- opacity: 0;
- visibility: hidden;
- @include transition;
- margin-top: 20px;
- width: 100%;
- padding: 0 12px;
-
- @include breakpoint (max-xxl){
- .theme-btn {
- font-size: 14px;
- min-width: 140px;
- }
- }
-
- .theme-btn {
- background-color: $white;
- padding-right: 0;
- font-size: 16px;
- font-weight: 500;
- padding: 6px 6px 6px 24px;
-
- &:hover {
- background-color: $theme-color;
- color: $white;
- }
- }
- }
-
- &::before {
- background: -webkit-gradient(linear, left top, left bottom, from(rgba(20, 19, 19, 0)), to(#5e5ef6));
- background: linear-gradient(to bottom, rgba(99, 92, 92, 0) 0%, #252527 100%);
- background-repeat: no-repeat;
- background-size: cover;
- background-position: center;
- width: 100%;
- height: 100%;
- position: absolute;
- left: 0;
- top: 0;
- overflow: hidden;
- opacity: 0;
- -webkit-transition: all 0.3s ease-in-out;
- transition: all 0.3s ease-in-out;
- content: "";
- }
- &:hover{
-
- &::before {
- visibility: visible;
- opacity: 1;
- }
-
- .demo-button {
- opacity: 1;
- visibility: visible;
- margin-top: 0;
- }
- & .homemenu-btn {
- opacity: 1;
- visibility: visible;
- bottom: 50%;
- transform: translateY(50%);
- }
- }
- img {
- width: 100%;
- }
- }
-
- .homemenu-title {
- text-align: center;
- margin: 15px auto;
- display: inline-block;
- font-size: 16px;
- font-weight: 600;
- color: $header-color;
- }
- }
- }
- }
-
- &:hover {
- >a {
- color: $theme-color-2;
-
- &::after {
- color: $theme-color;
- }
- }
- >.submenu {
- visibility: visible;
- opacity: 1;
- transform: scaleY(1) translateZ(0px);
- }
- }
- }
- }
- }
-
- .header-right {
- gap: 30px;
-
- @include breakpoint (max-xxl){
- gap: 20px;
- }
-
- .search-toggler {
- width: 40px;
- height: 40px;
- line-height: 40px;
- text-align: center;
- color: $theme-color;
- border-radius: 100px;
- border: 1px solid $theme-color;
- font-size: 16px;
- }
-
- .header-button {
- @include breakpoint (max-xxl){
- display: none;
- }
- .theme-btn {
-
- &::before {
- background-color: $white;
- }
-
- &:hover {
- color: $header-color;
- }
- }
- }
-
- .sidebar__toggle {
- cursor: pointer;
- font-size: 20px;
- color: $header-color;
- }
- }
-}
-
-.header-1 {
-
- .container-fluid {
- padding: 0 40px;
-
- @include breakpoint (max-xxl) {
- padding: 0 50px;
- }
-
- @include breakpoint (max-xxl) {
- padding: 0 30px;
- }
-
- @include breakpoint (max-sm) {
- padding: 0 15px;
- }
- }
-
- .header-left {
- @include flex;
- gap: 120px;
-
- @include breakpoint (max-xxxl) {
- gap: 50px;
- }
- }
-
- .header-right {
- .header-call-item {
- @include flex;
- gap: 60px;
-
- .theme-btn {
- padding: 4px 4px 4px 24px;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
- }
- }
- }
-
- &.header-2 {
- z-index: 9999;
- position: relative;
-
- &::before {
- @include before;
- background-color: $theme-color;
- left: 0;
- right: initial;
- width: 337px;
- z-index: -1;
-
- @include breakpoint (max-xxxl) {
- width: 235px;
- }
-
- @include breakpoint (max-xxl) {
- width: 100%;
- }
- }
-
- &::after {
- background-color: $theme-color;
- right: 0;
- position: absolute;
- content: "";
- top: 0;
- bottom: 0;
- height: 100%;
- width: 420px;
- z-index: -1;
-
- @include breakpoint (max-xxxl) {
- width: 350px;
- }
-
- @include breakpoint (max-xxl) {
- display: none;
- }
- }
-
- .container-fluid {
- padding: 0 100px;
-
- @include breakpoint (max-xl4) {
- padding: 0 70px;
- }
-
- @include breakpoint (max-xxxl) {
- padding: 0 50px;
- }
-
- @include breakpoint (max-xxl) {
- padding: 0 30px;
- }
-
- @include breakpoint (max-sm) {
- padding: 0 15px;
- }
- }
-
- .header-left {
- .logo {
- .header-logo {
- display: none;
- }
- }
- }
-
- .header-right {
-
- .header-call-item {
-
- .theme-btn {
- color: $white;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- i {
- background-color: $white;
- color: $header-color;
- }
- }
-
- .sidebar__toggle {
- color: $white;
- }
- }
- }
- }
-
- &.header-3 {
- position: relative;
-
- &::before {
- @include before;
- background-color: $theme-color-2;
- left: 0;
- right: initial;
- width: 337px;
- z-index: -1;
-
- @include breakpoint (max-xxxl) {
- width: 300px;
- }
-
- @include breakpoint (max-xxl) {
- display: none;
- }
- }
-
- .container-fluid {
- padding: 0 100px;
-
- @include breakpoint (max-xl4) {
- padding: 0 70px;
- }
-
- @include breakpoint (max-xxxl) {
- padding: 0 50px;
- }
-
- @include breakpoint (max-xxl) {
- padding: 0 30px;
- }
-
- @include breakpoint (max-sm) {
- padding: 0 15px;
- }
- }
-
- .logo {
- position: absolute;
- left: 100px;
- top: -15px;
- z-index: 999;
-
- @include breakpoint (max-xxl){
- display: none;
- }
- }
-
- .header-main {
- padding-left: 280px;
-
- @include breakpoint (max-xxl){
- padding-left: 0;
- }
-
- .header-left {
- @include breakpoint (max-xxl){
- .logo-2 {
- display: block !important;
- }
- }
- }
-
- .header-right {
-
- .header-call-item {
- .icon-item {
- @include flex;
- gap: 12px;
-
- @include breakpoint (max-xxl){
- display: none;
- }
-
- i {
- color: $header-color;
- font-size: 30px;
- }
-
- .content {
- h6 {
- margin-bottom: 5px;
- }
- span {
- font-size: 18px;
-
- a {
- color: $header-color;
- }
- }
- }
- }
- }
- }
- }
- }
-}
-
-//>>>>> Header 01 Start <<<</
-
-
-//>>>>> Sticky Start <<<<
-.sticky {
- position: fixed !important;
- top: 0 !important;
- left: 0;
- width: 100%;
- z-index: 99999;
- transition: all 0.9s;
- background-color: $white;
- -webkit-animation: 500ms ease-in-out 0s normal none 1 running fadeInDown;
- animation: 500ms ease-in-out 0s normal none 1 running fadeInDown;
- box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
-
- &.header-1 {
- .header-main {
- .header-right {
- .header-button {
- .theme-btn {
- &::before {
- background-color: $theme-color;
- }
- }
- }
- }
- }
- }
-
- &.header-2 {
- &::before {
- display: none;
- }
-
- &::after {
- display: none;
- }
-
- .header-main {
- .header-left {
-
- .logo {
- .header-logo {
- display: block;
- }
- .header-logo-2 {
- display: none;
- }
- }
- }
-
- .header-right {
- .header-call-item {
- .theme-btn {
- color: $header-color;
-
- &:hover {
- color: $white;
- }
- }
-
- .sidebar__toggle {
- color: $header-color;
- }
- }
- }
- }
- }
-
- &.header-3 {
-
- .logo {
- display: none;
- }
-
- &::before {
- display: none;
- }
-
- .header-main {
- padding-left: 0;
-
- .header-left {
- .logo-2 {
- display: block !important;
- }
- }
- }
- }
-}
-
-//>>>>> Offcanvas Start <<<</
-
-
-.offcanvas__info {
- background: $white none repeat scroll 0 0;
- border-left: 2px solid $theme-color;
- position: fixed;
- right: 0;
- top: 0;
- width: 450px;
- height: 100%;
- -webkit-transform: translateX(calc(100% + 80px));
- -moz-transform: translateX(calc(100% + 80px));
- -ms-transform: translateX(calc(100% + 80px));
- -o-transform: translateX(calc(100% + 80px));
- transform: translateX(calc(100% + 80px));
- -webkit-transition: transform 0.45s ease-in-out, opacity 0.45s ease-in-out;
- -moz-transition: transform 0.45s ease-in-out, opacity 0.45s ease-in-out;
- transition: transform 0.45s ease-in-out, opacity 0.45s ease-in-out;
- z-index: 9999999;
- overflow-y: scroll;
- overscroll-behavior-y: contain;
- scrollbar-width: none;
- &::-webkit-scrollbar {
- display: none;
- }
-}
-
-.offcanvas__info.info-open {
- opacity: 1;
- -webkit-transform: translateX(0);
- -moz-transform: translateX(0);
- -ms-transform: translateX(0);
- -o-transform: translateX(0);
- transform: translateX(0);
-}
-
-.offcanvas__wrapper {
- position: relative;
- height: 100%;
- padding: 30px 30px;
-
- .offcanvas__content {
- .text {
- color: $black;
- }
-
- .offcanvas__close {
- width: 45px;
- height: 45px;
- line-height: 45px;
- text-align: center;
- border-radius: 50%;
- background-color: $theme-color;
- position: relative;
- z-index: 9;
- cursor: pointer;
-
- i {
- color: $white;
- }
- }
-
- .offcanvas__contact {
- margin-top: 20px;
-
- h4 {
- margin-bottom: 20px;
-
- @include breakpoint (max-sm) {
- display: none;
- }
- }
-
- ul {
- margin-top: 0;
-
- @include breakpoint (max-sm) {
- display: none;
- }
-
- li {
- font-size: 20px;
- font-weight: 600;
- // text-transform: capitalize;
-
- @include breakpoint (max-sm) {
- font-size: 14px;
- }
-
- &:not(:last-child){
- margin-bottom: 30px;
-
- @include breakpoint (max-sm) {
- margin-bottom: 20px;
- }
- }
-
- a {
- color: $black;
- }
- .offcanvas__contact-icon {
- margin-right: 20px;
-
- i {
- color: $theme-color;
- }
- }
- }
- }
-
- span {
- text-transform: initial;
- }
-
- .header-button {
-
- .theme-btn {
- width: 100%;
- padding: 20px 40px;
- text-transform: capitalize !important;
- }
- }
-
- .social-icon {
- margin-top: 30px;
- gap: 10px;
-
- a {
- width: 45px;
- height: 45px;
- line-height: 45px;
- border-radius: 100%;
- text-align: center;
- font-size: 16px;
- display: block;
- background: transparent;
- color: #000;
- -webkit-transition: all .4s ease-in-out;
- transition: all .4s ease-in-out;
- text-align: center;
- border: 1px solid $border-color;
-
- @include breakpoint (max-sm) {
- display: none;
- }
-
-
- &:hover {
- background-color: $theme-color;
- color: $white;
- }
- }
- }
- }
- }
-}
-
-.offcanvas__overlay {
- position: fixed;
- height: 100%;
- width: 100%;
- background: #151515;
- z-index: 900;
- top: 0;
- opacity: 0;
- visibility: hidden;
- right: 0;
-}
-
-.offcanvas__overlay.overlay-open {
- opacity: 0.8;
- visibility: visible;
-}
-
-@media (max-width:450px) {
- .offcanvas__info {
- width: 300px;
- }
-}
-
-@media (max-width: 575px) {
- .offcanvas__wrapper {
- padding: 20px;
- }
-}
-
-
-
-.breadcrumb-wrapper {
- border-radius: 32px;
- margin: 0 48px;
- position: relative;
- overflow: hidden;
-
- @include breakpoint (max-xxl) {
- margin: 0 30px;
- }
-
-
- @include breakpoint (max-sm) {
- margin: 0 15px;
- }
-
- .shape {
- position: absolute;
- left: 0;
- bottom: 0;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
- }
-
- .page-heading {
- padding: 120px 0;
-
- @include breakpoint (max-xxl) {
- padding: 100px 0;
- }
-
- @include breakpoint (max-lg) {
- padding: 80px 0;
- }
-
- .breadcrumb-title {
- color: $white;
- text-align: center;
- text-transform: uppercase;
- }
-
- .breadcrumb-list {
- @include flex;
- gap: 8px;
- margin-top: 24px;
- justify-content: center;
-
- li {
- color: $white;
-
- a {
- color: rgba(255, 255, 255, 0.7);
- }
- }
- }
- }
-}
-
-.error-item {
-
- .error-image {
-
- img {
- @include imgw;
- }
- }
-
- .error-content {
- text-align: center;
- margin-top: 48px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- }
-
- h2 {
- margin-bottom: 20px;
- }
-
- p {
- max-width: 793px;
- margin: 0 auto;
- }
-
- .theme-btn {
- margin-top: 48px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_helping.scss b/public/assets/scss/_helping.scss
deleted file mode 100644
index bded791..0000000
--- a/public/assets/scss/_helping.scss
+++ /dev/null
@@ -1,501 +0,0 @@
-
-//page scroll bar add
-::-webkit-scrollbar {
- width: 8px;
- height: 8px;
-}
-/* Track */
-::-webkit-scrollbar-track {
- box-shadow: inset 0 0 5px $bg-color;
- border-radius: 5px;
-}
-/* Handle */
-::-webkit-scrollbar-thumb {
- background: $theme-color;
- border-radius: 10px;
-}
-//page scroll bar add
-
-//Basic Code Start
-.fix {
- overflow: hidden;
-}
-
-.ralt{
- position: relative;
-}
-
-//Basic Code End
-
-//Video Css Start
-.ripple {
- position: relative;
-
- &::before,&::after {
- position: absolute;
- left: 50%;
- top: 50%;
- width: 50px;
- height: 50px;
- -webkit-transform: translateX(-50%) translateY(-50%);
- transform: translateX(-50%) translateY(-50%);
- border-radius: 50%;
- box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.6);
- -webkit-animation: rippleOne 3s infinite;
- animation: rippleOne 3s infinite;
- }
-
- &::before {
- -webkit-animation-delay: 0.9s;
- animation-delay: 0.9s;
- content: "";
- position: absolute;
- right: 0;
- bottom: 0;
- }
-
- &::after {
- -webkit-animation-delay: 0.6s;
- animation-delay: 0.6s;
- content: "";
- position: absolute;
- right: 0;
- bottom: 0;
- }
-}
-//Video Css End
-
-.array-buttons {
- @include flex;
- gap: 20px;
-
- @include breakpoint (max-xl) {
- flex-wrap: wrap;
- }
-
- .array-prev {
- width: 110px;
- height: 48px;
- line-height: 45px;
- text-align: center;
- background-color: transparent;
- color: $header-color;
- @include transition;
- border-radius: 100px;
- border: 1px solid $header-color;
- font-weight: 600;
-
- i {
- margin-left: 5px;
- transform: rotate(45deg);
- }
-
- &:hover {
- background: $theme-color-2;
- color: $header-color;
- border: 1px solid $theme-color-2;
- }
- }
-
- .array-next {
- width: 110px;
- height: 48px;
- line-height: 45px;
- text-align: center;
- background-color: $theme-color-2;
- color: $header-color;
- @include transition;
- border-radius: 100px;
- font-weight: 600;
- text-transform: uppercase;
-
-
- i {
- margin-left: 5px;
- transform: rotate(-45deg);
- }
-
- &:hover {
- background: $header-color;
- color: $white;
- }
- }
-}
-
-.array-buttons-2 {
- @include flex;
- gap: 20px;
-
- @include breakpoint (max-xl) {
- flex-wrap: wrap;
- }
-
- .array-prev {
- width: 42px;
- height: 42px;
- line-height: 42px;
- text-align: center;
- background-color: $header-color;
- color: #00E5FF;
- @include transition;
- border-radius: 100%;
-
- &:hover {
- background: $theme-color;
- color: $white;
- }
- }
-
- .array-next {
- width: 42px;
- height: 42px;
- line-height: 42px;
- border-radius: 100%;
- text-align: center;
- background: #2ADDC8;
- color: $header-color;
- @include transition;
-
- &:hover {
- background: $theme-color;
- color: $white;
- }
- }
-}
-
-.array-buttons-4 {
- @include flex;
- gap: 20px;
-
- @include breakpoint (max-xl) {
- flex-wrap: wrap;
- }
-
- .array-prev {
- width: 45px;
- height: 45px;
- line-height: 45px;
- text-align: center;
- background: $bg-color;
- color: $white;
- @include transition;
- border-radius: 100%;
-
- }
-
- .array-next {
- width: 45px;
- height: 45px;
- line-height: 45px;
- border: 1px solid rgba(65, 65, 65, 1);
- border-radius: 100%;
- text-align: center;
- background: transparent;
- color: $white;
- @include transition;
-
- &:hover {
- background: $bg-color;
- border: 1px none;
- color: $white;
- }
- }
-}
-//pagination default
-
-//pagination default
-
-.swiper-dot {
- text-align: center;
- margin-top: 30px;
-
- .swiper-pagination-bullet {
- width: 10px;
- height: 10px;
- transition: 0.6s;
- border-radius: 30px;
- background-color: $theme-color-2;
- opacity: 1;
- position: relative;
- &:not(:last-child){
- margin-right: 15px;
- }
- }
- .swiper-pagination-bullet.swiper-pagination-bullet-active {
- background-color: $theme-color;
- transition: 0.6s;
- position: relative;
- width: 10px;
- height: 10px;
- border-radius: 30px;
-
- &::before {
- @include before;
- width: 10px;
- height: 10px;
- left: 50%;
- top: 50%;
- transform: translate(-50%,-50%);
- border-radius: 30px;
- }
- }
-
-}
-
-.swiper-dot-2 {
- text-align: center;
- margin-top: 30px;
-
- .swiper-pagination-bullet {
- width: 16px;
- height: 16px;
- transition: 0.6s;
- border-radius: 30px;
- background-color: transparent;
- border: 2px solid $header-color;
- opacity: 1;
- position: relative;
- &:not(:last-child){
- margin-right: 15px;
- }
- }
- .swiper-pagination-bullet.swiper-pagination-bullet-active {
- border: 2px solid $header-color;
- transition: 0.6s;
- position: relative;
- width: 16px;
- height: 16px;
- border-radius: 30px;
-
- &::before {
- @include before;
- width: 10px;
- height: 10px;
- left: 50%;
- top: 50%;
- transform: translate(-50%,-50%);
- border-radius: 30px;
- }
- }
-
-}
-
-.bg-cover {
- background-repeat: no-repeat;
- background-size: cover;
- position: relative;
- background-position: center;
-}
-
-.slide-transtion {
- -webkit-transition-timing-function: linear;
- transition-timing-function: linear;
-}
-.brand-slide-element {
- width: auto;
- display: inline-block;
-}
-
-
-.page-nav-wrap {
- margin-top: 60px;
-
- @include breakpoint (max-xl) {
- margin-top: 30px;
- }
-
- ul {
- li {
- display: inline-block;
-
- .page-numbers {
- &.current {
- background: linear-gradient(180deg, #1539EE 0%, #2ADDC8 100%);
- color: $white;
- border-radius: 10px;
- }
-
- display: inline-block;
- width: 40px;
- height: 40px;
- line-height: 40px;
- text-align: center;
- background-color: transparent;
- border: 1px solid $theme-color-2;
- color: $header-color;
- @include transition;
- border-radius: 10px;
- font-weight: 600;
- transition: all 0.3s ease-in-out;
- margin: 0 2px;
-
- &.style-2 {
- display: inline-block;
- width: 40px;
- height: 40px;
- line-height: 40px;
- text-align: center;
- background-color: $theme-color-2;
- color: $white;
- @include transition;
- border-radius: 10px;
- border: 1px solid $header-color;
- font-weight: 600;
- transition: all 0.3s ease-in-out;
-
- }
-
- @media (max-width: 767px) {
- margin-top: 10px;
- width: 40px;
- height: 40px;
- line-height: 40px;
- font-size: 14px;
- }
-
- i {
- margin-top: 2px;
- color: $white;
- @include transition;
- }
-
- &:hover {
- background: $theme-color-2;
- color: $white;
- border: 1px solid $theme-color-2;
-
- i {
- color: $white;
- }
- }
- }
- }
- }
-}
-
-
-
-
-
-.sticky-style {
- position: sticky !important;
- top: 100px;
-}
-
-
-.custom-container {
- max-width: 1700px;
- margin: 0 auto;
-}
-
-
-
-.bw-img-anim-left,
-.bw-img-anim-right {
- transition: clip-path 0.5s ease-out;
-}
-
-
-.split-text {
- overflow: hidden;
- position: relative;
-}
-
-.split-text .line {
- overflow: hidden;
- display: none;
-}
-
-html.lenis, html.lenis body {
- height: auto;
-}
-
-.smooth-content {
- position: relative;
-}
-
-.lenis.lenis-smooth {
- scroll-behavior: auto !important;
-}
-
-
-//>>>>> Nice Select Css Start <<<</
-.nice-select {
- background-color: transparent;
- width: unset;
- outline: none;
- // border-bottom: 2px solid $border-color !important;
- border: none;
- border-radius: 0;
- padding: 0;
-}
-
-.nice-select .current {
- margin-right: 12px;
-}
-
-.nice-select.open .list {
- background: $bg-color;
- margin-top: 16px;
- width: 100%;
- // text-transform: capitalize;
- color: $text-color;
-}
-
-.nice-select .option.selected.focus {
- background: $bg-color;
- outline: none;
- color: $text-color;
- // text-transform: capitalize;
- font-weight: 500;
- font-size: 14px;
- border: none;
-}
-
-.nice-select .option {
- border: none;
-}
-
-.nice-select .option:hover {
- background: transparent;
-}
-
-//>>>>> Nice Select Css End <<<</
-
-.p-relative {
- position: relative;
-}
-
-.tp-clip-anim {
- position: relative;
- overflow: hidden;
-
- .mask {
- position: absolute;
- inset: 0;
- background-size: cover;
- background-position: center;
- transform: scale(1.1);
- opacity: 0;
- animation: reveal 1s forwards;
- }
-
- // delay for each slice
- @for $i from 1 through 9 {
- .mask-#{$i} {
- clip-path: inset(0 #{(9 - $i) * 11.1%} 0 #{($i - 1) * 11.1%});
- animation-delay: #{$i * 0.1}s;
- }
- }
-}
-
-@keyframes reveal {
- from {
- opacity: 0;
- transform: scale(1.2);
- }
- to {
- opacity: 1;
- transform: scale(1);
- }
-}
diff --git a/public/assets/scss/_hero.scss b/public/assets/scss/_hero.scss
deleted file mode 100644
index 2fb0e14..0000000
--- a/public/assets/scss/_hero.scss
+++ /dev/null
@@ -1,622 +0,0 @@
-.hero-1 {
- margin: 0 40px;
- border-radius: 32px;
- position: relative;
- z-index: 9;
-
- @include breakpoint (max-xxl) {
- margin: 0 30px;
- padding-top: 100px;
- padding-bottom: 100px;
- }
-
- @include breakpoint (max-lg) {
- padding-top: 80px;
- padding-bottom: 0;
- }
-
- @include breakpoint (max-sm) {
- margin: 0 15px;
- }
-
- .pagi-item {
- right: 60px;
- top: 345px;
- position: absolute;
- z-index: 999;
-
- @include breakpoint (max-xxxl) {
- top: 310px;
- }
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- .dot-number {
- @include flex;
- gap: 20px;
-
- .swiper-pagination-bullet {
- background: none !important;
- width: auto !important;
- height: auto !important;
- margin: 0 !important;
- @include transition;
- }
-
- .swiper-pagination-bullet-active {
- .dot-num {
- span {
- color: $white;
- font-size: 32px;
- font-weight: 700;
- @include transition;
- }
- }
- }
-
- .dot-num {
- @include transition;
-
- span {
- font-size: 18px;
- font-weight: 500;
- color: rgba(255, 255, 255, 0.50);
- @include transition;
- }
- }
- }
- }
-
- .left-shape {
- position: absolute;
- left: 0;
- bottom: 0;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
- }
-
- .hero-shape {
- position: absolute;
- z-index: -1;
- right: 10px;
- bottom: 0;
- margin-right: 0;
-
- @include breakpoint (max-xxxl) {
- max-width: 660px;
- }
-
- @include breakpoint (max-xxl) {
- display: none;
- max-width: initial;
- }
-
- img {
- @include imgw;
- }
- }
-
- .top-shape {
- position: absolute;
- top: 0;
- right: 0;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- img {
- @include imgw;
- }
- }
-
- .right-shape {
- position: absolute;
- right: 0;
- top: 0;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
- }
-
- .container-fluid {
- padding: 0 124px;
-
- @include breakpoint (max-xl4) {
- padding: 0 70px;
- }
-
- @include breakpoint (max-xxxl) {
- padding: 0 50px;
- }
-
- @include breakpoint (max-xxl) {
- padding: 0 30px;
- }
-
- @include breakpoint (max-sm) {
- padding: 0 15px;
- }
- }
-
- .hero-content {
- h6 {
- font-size: 18px;
- font-weight: 500;
- color: $white;
- margin-bottom: 20px;
- line-height: 1;
- padding: 8px 16px;
- border-radius: 100px;
- display: inline-block;
- position: relative;
- background-color: $bg-color-2;
- }
-
- h1 {
- color: $white;
- text-transform: uppercase;
- margin-bottom: 15px;
-
- .video-btn {
- width: 64px;
- height: 64px;
- line-height: 64px;
- display: inline-block;
- background-color: $theme-color;
- color: $white;
- text-align: center;
- border-radius: 50%;
- font-size: 20px;
- margin-left: 60px;
- position: relative;
- z-index: 1;
- transform: translateY(-15px);
-
- @include breakpoint (max-xxxl) {
- width: 50px;
- height: 50px;
- line-height: 50px;
- }
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- &::before {
- position: absolute;
- content: "";
- background: rgba(203, 204, 207, 0.24);
- width: 48px;
- height: 1px;
- left: -57px;
- top: 30px;
- }
-
- &::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;
- }
- }
- }
-
- p {
- max-width: 671px;
- color: rgba(255, 255, 255, 0.8);
- padding-left: 30px;
- border-left: 2px solid $white;
- opacity: 0.8;
-
- @include breakpoint (max-xxl) {
- border-left: none;
- padding-left: 0;
- }
- }
-
- .hero-button {
- @include flex;
- gap: 35px;
- margin-top: 50px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- flex-wrap: wrap;
- gap: 25px;
- }
-
- .theme-btn {
- background-color: $white;
-
- &:hover {
- background-color: $theme-color;
- border: 1px solid $theme-color;
- }
-
- &.style-2 {
- border: 1px solid $border-color-2;
- background-color: transparent;
- color: $white;
-
- i {
- background-color: $white;
- color: $header-color;
- }
-
- &:hover {
- background-color: $theme-color;
- color: $white;
- border: 1px solid $theme-color;
- }
- }
- }
- }
- }
-
- .hero-image {
- margin-top: 20px;
- margin-right: -140px;
- position: relative;
- z-index: 9;
-
- @include breakpoint (max-xxl) {
- margin-right: 0;
- }
-
- img {
- @include imgw;
- opacity: 0;
- transform: translateY(50px);
- transition: all 0.8s ease-in-out;
- }
- }
-
- .swiper-slide-active {
-
- .hero-image {
- img {
- opacity: 1;
- transform: translateY(0);
- }
- }
- }
-}
-
-.hero-2 {
- position: relative;
-
- @include breakpoint (max-xxl) {
- padding-top: 100px;
- padding-bottom: 100px;
- }
-
- @include breakpoint (max-lg) {
- padding-top: 80px;
- padding-bottom: 0;
- }
-
- .shape {
- position: absolute;
- left: 0;
- top: 0;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
- }
-
- .container-fluid {
- padding: 0 65px;
-
- @include breakpoint (max-xxxl) {
- padding: 0 50px;
- }
-
- @include breakpoint (max-xxl) {
- padding: 0 40px;
- }
-
- @include breakpoint (max-xxl) {
- padding: 0 30px;
- }
-
- @include breakpoint (max-sm) {
- padding: 0 15px;
- }
- }
-
- &::before {
- @include before;
- background:
- linear-gradient(279deg, rgba(21, 26, 38, 0.88) 34.84%, rgba(21, 26, 38, 0) 84.02%);
- }
-
- .hero-image {
- margin-top: 30px;
- position: relative;
- margin-left: -75px;
-
- @include breakpoint (max-xxl) {
- margin-left: 0;
- margin-top: 0;
- }
-
- img {
- @include imgw;
- }
- }
-
- .hero-content {
- position: relative;
- z-index: 999;
-
- h6 {
- color: $white;
- font-size: 18px;
- font-weight: 500;
- letter-spacing: 6px;
- text-transform: uppercase;
- margin-bottom: 20px;
- }
-
- h1 {
- color: $white;
- text-transform: uppercase;
- margin-bottom: 20px;
- }
-
- p {
- color: $white;
- max-width: 800px;
- padding-left: 24px;
- border-left: 3px solid $white;
-
- @include breakpoint (max-xxl) {
- border-left: none;
- padding-left: 0;
- }
- }
-
- .hero-button {
- @include flex;
- gap: 35px;
- margin-top: 50px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 25px;
- }
-
- .theme-btn {
- background-color: $white;
-
- &:hover {
- background-color: $theme-color;
- border: 1px solid $theme-color;
- }
-
- &.style-2 {
- border: 1px solid $border-color-2;
- background-color: transparent;
- color: $white;
-
-
- i {
- background-color: $white;
- color: $header-color;
- }
-
- &:hover {
- background-color: $theme-color;
- color: $white;
- border: 1px solid $theme-color;
- }
- }
- }
- }
- }
-}
-
-.hero-3 {
- position: relative;
- z-index: 9;
-
- @include breakpoint (max-xxl) {
- margin: 0 30px;
- padding-top: 100px;
- padding-bottom: 100px;
- }
-
- @include breakpoint (max-lg) {
- padding-top: 80px;
- padding-bottom: 0;
- }
-
- @include breakpoint (max-sm) {
- margin: 0 15px;
- }
-
- .pagi-item {
- right: 60px;
- bottom: 120px;
- position: absolute;
- z-index: 999;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- .dot-number {
- @include flex;
- gap: 20px;
-
- .swiper-pagination-bullet {
- background: none !important;
- width: auto !important;
- height: auto !important;
- margin: 0 !important;
- @include transition;
- }
-
- .swiper-pagination-bullet-active {
- .dot-num {
- span {
- color: $white;
- font-size: 32px;
- font-weight: 700;
- @include transition;
- }
- }
- }
-
- .dot-num {
- @include transition;
-
- span {
- font-size: 18px;
- font-weight: 500;
- color: rgba(255, 255, 255, 0.50);
- @include transition;
- }
- }
- }
- }
-
-
- .hero-shape {
- position: absolute;
- z-index: -1;
- left: 0;
- top: 0;
-
- @include breakpoint (max-xxxl) {
- max-width: 660px;
- }
-
- @include breakpoint (max-xxl) {
- display: none;
- max-width: initial;
- }
-
- img {
- @include imgw;
- }
- }
-
- .container-fluid {
- padding: 0 124px;
-
- @include breakpoint (max-xl4) {
- padding: 0 70px;
- }
-
- @include breakpoint (max-xxxl) {
- padding: 0 50px;
- }
-
- @include breakpoint (max-xxl) {
- padding: 0 30px;
- }
-
- @include breakpoint (max-sm) {
- padding: 0 15px;
- }
- }
-
- .hero-content {
- h6 {
- font-size: 18px;
- font-weight: 500;
- color: $theme-color;
- margin-bottom: 20px;
- }
-
- h1 {
- color: $white;
- text-transform: uppercase;
- margin-bottom: 15px;
- }
-
- p {
- max-width: 772px;
- color: rgba(255, 255, 255, 0.8);
- opacity: 0.8;
- }
-
- .hero-button {
- @include flex;
- gap: 35px;
- margin-top: 50px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- flex-wrap: wrap;
- gap: 25px;
- }
-
- .theme-btn {
- background-color: $white;
-
- &:hover {
- background-color: $theme-color;
- border: 1px solid $theme-color;
- }
-
- &.style-2 {
- border: 1px solid $border-color-2;
- background-color: transparent;
- color: $white;
-
- i {
- background-color: $white;
- color: $header-color;
- }
-
- &:hover {
- background-color: $theme-color;
- color: $white;
- border: 1px solid $theme-color;
- }
- }
- }
- }
- }
-
- .hero-image {
- margin-top: 20px;
- position: relative;
- z-index: 9;
-
- @include breakpoint (max-xxl) {
- margin-right: 0;
- }
-
- img {
- @include imgw;
- opacity: 0;
- transform: translateY(50px);
- transition: all 0.8s ease-in-out;
- }
- }
-
- .swiper-slide-active {
-
- .hero-image {
- img {
- opacity: 1;
- transform: translateY(0);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_marquee.scss b/public/assets/scss/_marquee.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/public/assets/scss/_meanmenu.scss b/public/assets/scss/_meanmenu.scss
deleted file mode 100644
index 319faeb..0000000
--- a/public/assets/scss/_meanmenu.scss
+++ /dev/null
@@ -1,95 +0,0 @@
-.mean-container a.meanmenu-reveal {
- display: none;
- }
-
- .mean-container .mean-nav {
- background: none;
- margin-top: 0;
- }
-
- .mean-container .mean-bar {
- padding: 0;
- min-height: auto;
- background: none;
- background: none;
- }
-
- .mean-container .mean-nav > ul {
- padding: 0;
- margin: 0;
- width: 100%;
- list-style-type: none;
- display: block !important;
- }
-
- .mean-container a.meanmenu-reveal {
- display: none !important;
- }
-
- .mean-container .mean-nav ul li a {
- display: block;
- width: 100%;
- padding: 10px 0;
- color: $black;
- font-size: 16px;
- font-weight: 600;
- line-height: 2;
- font-weight: 700;
- // text-transform: capitalize;
- border-bottom: 1px solid rgba(0, 0, 0, 0.20) !important;
- border: none;
-
- &:hover {
- color: $theme-color-2;
- }
- }
-
-
- .mean-container .mean-nav ul li .submenu li a {
- border-bottom: none !important;
- font-size: 14px;
- padding: 6px 0;
- color: $header-color;
- }
-
- .mean-container .mean-nav ul li a:last-child {
- border-bottom: 0;
- }
- .mean-container .mean-nav ul li a:hover {
- color: $theme-color;
- }
-
- .mean-container .mean-nav ul li a.mean-expand {
- margin-top: 5px;
- padding: 0 !important;
- }
-
- .mean-container .mean-nav ul li > a > i {
- display: none;
- }
-
- .mean-container .mean-nav ul li > a.mean-expand i {
- display: inline-block;
- font-size: 18px;
- }
-
- .mean-container .mean-nav > ul > li:first-child > a {
- border-top: 0;
- }
-
- .mean-container .mean-nav ul li a.mean-expand.mean-clicked i {
- transform: rotate(45deg);
- -webkit-transform: rotate(45deg);
- -moz-transform: rotate(45deg);
- -ms-transform: rotate(45deg);
- -o-transform: rotate(45deg);
- @include transition;
- }
-
- .mean-container .mean-nav ul li .mega-menu li a {
- height: 200px;
- width: 100%;
- padding: 0;
- border-top: 0;
- margin-bottom: 20px;
- }
\ No newline at end of file
diff --git a/public/assets/scss/_mixins.scss b/public/assets/scss/_mixins.scss
deleted file mode 100644
index 5eca375..0000000
--- a/public/assets/scss/_mixins.scss
+++ /dev/null
@@ -1,130 +0,0 @@
-@mixin breakpoint($point) {
- @if $point==xsmall {
- @media (min-width: 450px) {
- @content ;
- }
- }
- @else if $point==max-xxsmall {
- @media (max-width:450px) {
- @content ;
- }
- }
- @if $point==xxs {
- @media (min-width: 470px) {
- @content ;
- }
- }
- @else if $point==max-xxs {
- @media (max-width:470px) {
- @content ;
- }
- }
- @if $point==xs {
- @media (min-width: 500px) {
- @content ;
- }
- }
- @else if $point==max-xs {
- @media (max-width: 500px) {
- @content ;
- }
- }
- @if $point==sm {
- @media (min-width: 576px) {
- @content ;
- }
- }
- @else if $point==max-sm {
- @media (max-width: 575px) {
- @content ;
- }
- }
- @else if $point==md {
- @media (min-width: 768px) {
- @content ;
- }
- }
- @else if $point==max-md {
- @media (max-width: 767px) {
- @content ;
- }
- }
- @else if $point==lg {
- @media (min-width: 992px) {
- @content ;
- }
- }
- @else if $point==max-lg {
- @media (max-width: 991px) {
- @content ;
- }
- }
- @else if $point==xl {
- @media (min-width: 1200px) {
- @content ;
- }
- }
- @else if $point==max-xl {
- @media (max-width: 1199px) {
- @content ;
- }
- }
- @else if $point==xxl {
- @media (min-width: 1400px) {
- @content ;
- }
- }
- @else if $point==max-xxl {
- @media (max-width: 1399px) {
- @content ;
- }
- }
- @else if $point==xxxl {
- @media (min-width: 1600px) {
- @content ;
- }
- }
- @else if $point==max-xxxl {
- @media (max-width: 1600px) {
- @content ;
- }
- }
- @else if $point==xl4 {
- @media (min-width: 1899px) {
- @content ;
- }
- }
- @else if $point==max-xl4 {
- @media (max-width: 1899px) {
- @content ;
- }
- }
-}
-
-@mixin before {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- width: 100%;
- height: 100%;
- content: "";
-}
-
-
-@mixin flex {
- display: flex;
- align-items: center;
-}
-@mixin transition {
- transition: all 0.4s ease-in-out;
-}
-
-@mixin imgw {
- width: 100%;
- height: 100%;
-}
-
-
-
diff --git a/public/assets/scss/_news.scss b/public/assets/scss/_news.scss
deleted file mode 100644
index e33ee02..0000000
--- a/public/assets/scss/_news.scss
+++ /dev/null
@@ -1,886 +0,0 @@
-.news-card-item {
- margin-top: 30px;
- background-color: $bg-color;
- border-radius: 16px;
-
- .news-image {
- position: relative;
- border-top-left-radius: 16px;
- border-top-right-radius: 16px;
- overflow: hidden;
-
- span {
- border-radius: 100px;
- background-color: $white;
- color: $header-color;
- font-size: 14px;
- font-weight: 400;
- padding: 4px 12px;
- position: absolute;
- top: 16px;
- left: 16px;
- z-index: 999;
- }
-
- .news-layer-wrapper {
- position: absolute;
- top: 100%;
- left: 0;
- width: 100%;
- height: 100%;
- display: flex;
- transition: 0.5s;
-
- .news-layer-image {
- width: 25%;
- height: 100%;
- transition: 0.5s;
- background-size: cover;
-
- &:nth-child(1){
- background-position: 0;
- transition-delay: 0;
- }
-
- &:nth-child(2){
- background-position: 33.33%;
- transition-delay: 0.1s;
- }
-
- &:nth-child(3){
- background-position: 66.66%;
- transition-delay: 0.2s;
- }
-
- &:nth-child(4){
- background-position: 100%;
- transition-delay: 0.3s;
- }
- }
- }
-
- img {
- @include imgw;
- border-top-left-radius: 16px;
- border-top-right-radius: 16px;
- transform: scale(1.02);
- transition: all 1.5s ease-out;
- }
- }
-
- .news-content {
- padding: 16px 24px 30px;
-
- .list {
- @include flex;
- gap: 24px;
- margin-bottom: 10px;
- }
-
- h3 {
- a {
- background-position: 0 95%;
- background-repeat: no-repeat;
- background-size: 0% 2px;
- display: inline;
-
- &:hover {
- color: $theme-color;
- background-size: 100% 2px;
- background-image: linear-gradient(180deg, $theme-color 0%, $theme-color 100%);
- }
- }
- }
-
- .news-bottom {
- @include flex;
- justify-content: space-between;
- border-top: 1px solid rgba(203, 204, 207, 0.24);
- padding-top: 24px;
- margin-top: 16px;
-
- .info-item {
- @include flex;
- gap: 8px;
- }
- }
- }
-
- &:hover {
- .news-image {
-
- .news-layer-wrapper {
- .news-layer-image {
- transform: translateY(-100%);
- }
- }
-
- img {
- -webkit-transform: scale3d(1.1, 1.1, 1);
- transform: scale3d(1.1, 1.1, 1);
- }
- }
- }
-}
-
-.news-main-item {
- border-radius: 16px;
- background-color: $bg-color;
- padding: 30px;
- @include flex;
- justify-content: space-between;
- margin-top: 30px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 30px;
- }
-
- .news-left-content {
- h2 {
- sup {
- font-size: 32px;
- top: auto;
-
- @include breakpoint (max-lg) {
- font-size: 30px;
- }
-
- @include breakpoint (max-lg) {
- font-size: 25px;
- }
- }
-
- span {
- font-size: 16px;
- font-weight: 400;
- }
- }
-
- h3 {
-
- @include breakpoint (max-xl) {
- br {
- display: none;
- }
- }
- a {
- background-position: 0 95%;
- background-repeat: no-repeat;
- background-size: 0% 2px;
- display: inline;
-
- &:hover {
- color: $theme-color;
- background-size: 100% 2px;
- background-image: linear-gradient(180deg, $theme-color 0%, $theme-color 100%);
- }
- }
- }
-
- .news-post {
- @include flex;
- justify-content: space-between;
- margin-top: 30px;
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- gap: 20px;
- }
-
- span {
- text-transform: uppercase;
- font-weight: 500;
- color: $header-color;
- }
- }
- }
-
- .news-right-content {
- @include flex;
- gap: 30px;
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- gap: 20px;
- }
-
- .news-image {
- overflow: hidden;
- transition: scale 0.4s ease, transform 0.4s ease;
-
- @include breakpoint (max-lg) {
- flex-basis: 100%;
- }
-
- img {
- @include imgw;
- border-radius: 16px;
- }
- }
-
- .content {
- p {
- max-width: 388px;
- margin-bottom: 30px;
- }
-
- .theme-btn {
- padding: 2px 4px 2px 24px;
- }
- }
- }
-}
-
-.news-card-items-3 {
- @include flex;
- border-radius: 16px;
- background-color: $white;
- margin-top: 30px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 30px;
- padding: 10px;
- }
-
- @include breakpoint (max-lg) {
- flex-wrap: initial;
- gap: 30px;
- padding: 0;
- }
-
- @include breakpoint (max-md) {
- flex-wrap: wrap;
- gap: 30px;
- padding: 10px;
- }
-
- .news-image {
-
- @include breakpoint (max-xxl) {
- flex-basis: 100%;
- }
-
- @include breakpoint (max-lg) {
- flex-basis: initial;
- }
-
- @include breakpoint (max-sm) {
- flex-basis: 100%;
- }
-
- img {
- border-top-left-radius: 16px;
- border-bottom-left-radius: 16px;
-
- @include breakpoint (max-xxl) {
- @include imgw;
- border-radius: 16px;
- }
-
- @include breakpoint (max-lg) {
- width: initial;
- height: initial;
- border-top-left-radius: 16px;
- border-bottom-left-radius: 16px;
- }
-
- @include breakpoint (max-sm) {
- @include imgw;
- border-radius: 16px;
- }
- }
- }
-
- .news-content {
- padding: 25px 25px 25px 30px;
-
- @include breakpoint (max-lg) {
- padding: 0 25px;
- }
-
- h3 {
- a {
- background-position: 0 95%;
- background-repeat: no-repeat;
- background-size: 0% 2px;
- display: inline;
-
- &:hover {
- color: $theme-color;
- background-size: 100% 2px;
- background-image: linear-gradient(180deg, $theme-color 0%, $theme-color 100%);
- }
- }
- }
-
- .info-item {
- @include flex;
- gap: 26px;
- margin-top: 15px;
- margin-bottom: 25px;
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- gap: 10px;
- }
-
- .info-image {
- @include flex;
- gap: 8px;
-
- h6 {
- font-weight: 500;
- text-transform: uppercase;
- }
- }
- }
-
- .theme-btn {
- border: none;
- padding: 0;
-
- &:hover {
- background-color: transparent;
- color: $theme-color;
-
- i {
- background-color: $header-color;
- color: $white;
- }
- }
- }
- }
-}
-
-.news-standard-wrapper {
-
- .news-standard-post {
- margin-bottom: 30px;
-
- .news-image {
- img {
- @include imgw;
- border-radius: 16px;
- }
- }
-
- .news-content {
- margin-top: 24px;
-
- .news-list {
- @include flex;
- gap: 40px;
- margin-bottom: 16px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 10px;
- }
-
- li {
- i {
- margin-right: 8px;
- }
- }
- }
-
- h3 {
- margin-bottom: 10px;
-
- a {
- background-position: 0 95%;
- background-repeat: no-repeat;
- background-size: 0% 2px;
- display: inline;
-
- &:hover {
- color: $theme-color;
- background-size: 100% 2px;
- background-image: linear-gradient(180deg, $theme-color 0%, $theme-color 100%);
- }
- }
- }
-
- p {
- margin-bottom: 40px;
-
- @include breakpoint (max-xxl) {
- margin-bottom: 30px;
- }
- }
-
- .theme-btn {
- padding: 4px 4px 4px 24px;
- }
- }
- }
-}
-
-.main-sideber {
-
- .news-sideber-box {
- padding: 30px;
- background-color: $bg-color;
- border-radius: 16px;
- margin-bottom: 32px;
-
- .wid-title {
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding-bottom: 16px;
- margin-bottom: 24px;
- }
-
- .search-widget {
- form {
- width: 100%;
- position: relative;
-
- input {
- background-color: $white;
- font-size: 16px;
- font-weight: 400;
- padding: 16px 20px;
- width: 100%;
- border: none;
- color: $text-color;
- border-radius: 100px;
- }
-
- button {
- position: absolute;
- right: 3px;
- top: 3px;
- bottom: 3px;
- width: 50px;
- height: 50px;
- line-height: 50px;
- border-radius: 100px;
- font-size: 16px;
- background-color: $theme-color;
- color: $white;
- text-align: center;
- transition: all .3s ease-in-out;
-
- &:hover {
- background-color: $header-color;
- }
- }
- }
- }
-
- .news-widget-categories {
- ul {
- li {
- @include flex;
- justify-content: space-between;
- font-size: 16px;
- font-weight: 400;
- background-color: $white;
- @include transition;
- border-radius: 100px;
- line-height: 1;
- padding: 20px;
- position: relative;
-
- @include breakpoint (max-xxl) {
- font-size: 14px;
- }
-
- i {
- margin-right: 5px;
- color: $theme-color-2;
- }
-
- &::before {
- content: "";
- position: absolute;
- top: 0;
- left: 0;
- width: 0%;
- height: 100%;
- background: $theme-color;
- z-index: 0;
- transition: width 0.5s ease;
- border-radius: 100px;
- }
-
- a {
- color: $header-color;
- }
-
- span {
- @include transition;
- color: $header-color;
- }
-
- &:not(:last-child){
- margin-bottom: 20px;
- }
-
- &:hover {
- &::before {
- width: 100%;
- }
-
- i {
- color: $white;
- }
-
- a {
- color: $white;
- position: relative;
- z-index: 999;
- }
-
- span {
- color: $white;
- position: relative;
- z-index: 999;
- }
- }
- }
- }
- }
-
- .recent-post-area {
- .recent-items {
- @include flex;
- gap: 20px;
-
- &:not(:last-child){
- margin-bottom: 20px;
- }
-
- .recent-thumb {
- img {
- border-radius: 8px;
- }
- }
-
- .recent-content {
- h6 {
- margin-bottom: 10px;
- line-height: 133%;
- font-weight: 500;
- font-size: 18px;
- display: -webkit-box;
- -webkit-line-clamp: 2;
- -webkit-box-orient: vertical;
- overflow: hidden;
-
- @include breakpoint (max-xxl) {
- font-size: 15px;
- }
-
- a {
- &:hover {
- color: $theme-color;
- }
- }
- }
-
- ul {
- li {
- color: $text-color;
- }
- }
- }
- }
- }
-
- .tagcloud {
- a {
- display: inline-block;
- padding: 12px 11px;
- line-height: 1;
- font-size: 16px;
- font-weight: 400;
- background: $white;
- border-radius: 100px;
- margin-right: 5px;
- // text-transform: capitalize;
- margin-bottom: 10px;
- color: $text-color;
- @include transition;
- position: relative;
-
- &::before {
- content: "";
- position: absolute;
- top: 0;
- left: 0;
- width: 0%;
- height: 100%;
- background: $theme-color;
- border-radius: 100px;
- z-index: 0;
- transition: width 0.5s ease;
- }
-
- &:last-child {
- margin-right: 0;
- }
-
- &:hover {
- color: $white;
- z-index: 999;
- position: relative;
-
- &::before {
- width: 100%;
- z-index: -1;
- }
- }
- }
- }
- }
-}
-
-.news-details-wrapper {
-
- .news-details-post {
-
- .news-details-image {
- img {
- @include imgw;
- border-radius: 16px;
- }
- }
-
- .details-content {
- margin-top: 24px;
-
- .news-list {
- @include flex;
- gap: 40px;
- margin-bottom: 16px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 10px;
- }
-
- li {
- i {
- margin-right: 8px;
- }
- }
- }
-
- h2 {
- font-size: 40px;
- margin-bottom: 10px;
-
- @include breakpoint (max-xxl) {
- font-size: 20px;
- }
- }
-
- .thumb {
- img {
- width: 410px;
- height: 264px;
- object-fit: cover;
- border-radius: 16px;
- }
- }
-
- .sideber {
- background-color: $theme-color-2;
- padding: 24px 30px;
- margin-top: 24px;
- margin-bottom: 24px;
- border-radius: 8px;
-
- h5 {
- color: $white;
- font-weight: 500;
-
- @include breakpoint (max-xxl) {
- font-size: 16px;
- }
- }
- }
-
- .tag-share-wrap {
-
- .tagcloud {
-
- span {
- font-size: 20px;
- font-weight: 600;
- display: inline-block;
- margin-right: 8px;
- color: $header-color;
- font-family: $heading-font;
- }
-
- a {
- display: inline-block;
- padding: 12px 26px;
- line-height: 1;
- background: $bg-color;
- margin-right: 8px;
- // text-transform: capitalize;
- color: $text-color;
- font-weight: 400;
- @include transition;
- border-radius: 30px;
-
- @include breakpoint (max-xl){
- padding: 10px 18px;
- }
-
- @include breakpoint (max-xl){
- margin-bottom: 15px;;
- }
-
- &:hover {
- background-color: $theme-color;
- color: $white;
- }
- }
- }
-
- .social-share {
-
- a {
- font-size: 16px;
- color: $header-color;
- display: inline-block;
- width: 36px;
- height: 36px;
- border-radius: 100px;
- line-height: 36px;
- text-align: center;
- background-color: $bg-color;
-
- &:not(:last-child){
- margin-right: 10px;
- }
-
- &:hover {
- color: $white;
- background-color: $theme-color;
- }
- }
- }
- }
-
- .comments-area {
- margin-top: 40px;
- border-top: 1px solid rgba(203, 204, 207, 0.24);
- margin-top: 48px;
- padding-top: 30px;
- margin-bottom: 48px;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
-
- @include breakpoint (max-xxl) {
- margin-bottom: 30px;
- }
-
- .comments-heading {
- margin-bottom: 30px;
-
- @include breakpoint (max-sm){
- margin-bottom: 20px;
- }
- }
-
- .news-single-comment {
-
- @include breakpoint (max-sm){
- flex-wrap: wrap;
- gap: 20px;
- }
-
- .image {
- img {
- border-radius: 12px;
- }
- }
-
- .content {
- .head {
- .con {
- h4 {
- margin-bottom: 5px;
- }
- }
-
- .reply {
- font-weight: 500;
- font-size: 16px;
- color: $theme-color;
- padding: 6px 14px;
- text-transform: uppercase;
- color: $white;
- background-color: $header-color;
- border-radius: 100px;
-
- &:hover {
- background-color: $theme-color;
- }
- }
- }
- }
-
- &.style-2 {
- margin-left: 90px;
-
- @include breakpoint (max-xxl){
- margin-left: 0;
- }
- }
- }
- }
-
- .form-clt {
- position: relative;
-
- span {
- color: $header-color;
- font-size: 18px;
- font-weight: 500;
- font-family: $heading-font;
- margin-bottom: 10px;
- display: inline-block;
- }
-
- input,textarea {
- width: 100%;
- border: none;
- outline: none;
- background: $bg-color;
- color: $text-color;
- border-radius: 100px;
- padding: 18px 20px;
-
- @include breakpoint (max-md){
- padding: 14px 20px;
- }
-
- @include breakpoint (max-sm){
- padding: 12px 18px;
- }
-
- &::placeholder {
- color: $text-color;
- }
- }
-
- textarea {
- padding-bottom: 100px;
- resize: none;
- border-radius: 40px;
- }
- }
-
- .theme-btn {
- width: 100%;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_preloader.scss b/public/assets/scss/_preloader.scss
deleted file mode 100644
index cd1350e..0000000
--- a/public/assets/scss/_preloader.scss
+++ /dev/null
@@ -1,446 +0,0 @@
-.preloader {
- align-items: center;
- cursor: default;
- display: flex;
- height: 100%;
- justify-content: center;
- position: fixed;
- left: 0;
- top: 0;
- width: 100%;
- z-index: 9999999;
-
- .animation-preloader {
- z-index: 1000;
-
- .spinner {
- animation: spinner 1s infinite linear;
- border-radius: 50%;
- border: 3px solid rgba(0, 0, 0, 0.2);
- border-top-color: $theme-color;
- height: 9em;
- margin: 0 auto 3.5em auto;
- width: 9em;
-
- @media (max-width: 767px) {
- width: 7.5em;
- height: 7.5em;
- margin: 0 auto 1.5em auto;
- }
- }
-
- .txt-loading {
- font: bold 5em $heading-font, $body-font;
- text-align: center;
- user-select: none;
-
- @media (max-width: 767px) {
- font-size: 2.5em;
- }
-
- .letters-loading {
- color: $theme-color;
- position: relative;
-
- &:nth-child(2):before {
- animation-delay: 0.2s;
- }
-
- &:nth-child(3):before {
- animation-delay: 0.4s;
- }
-
- &:nth-child(4):before {
- animation-delay: 0.6s;
- }
-
- &:nth-child(5):before {
- animation-delay: 0.8s;
- }
-
- &:nth-child(6):before {
- animation-delay: 1s;
- }
-
- &:nth-child(7):before {
- animation-delay: 1.2s;
- }
-
- &:nth-child(8):before {
- animation-delay: 1.4s;
- }
-
- &::before {
- animation: letters-loading 4s infinite;
- color: $header-color;
- content: attr(data-text-preloader);
- left: 0;
- opacity: 0;
- font-family: $heading-font;
- position: absolute;
- top: -3px;
- transform: rotateY(-90deg);
- }
- }
- }
- }
-
- p {
- font-size: 15px;
- font-weight: 600;
- text-transform: uppercase;
- letter-spacing: 8px;
- color: $theme-color;
- }
-
- .loader {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- font-size: 0;
- z-index: 1;
- pointer-events: none;
-
- .row {
- height: 100%;
- }
-
- .loader-section {
- padding: 0px;
-
- .bg {
- background-color: $bg-color;
- height: 100%;
- left: 0;
- width: 100%;
- transition: all 800ms cubic-bezier(0.77, 0, 0.175, 1);
- }
- }
- }
-
- &.loaded {
- .animation-preloader {
- opacity: 0;
- transition: 0.3s ease-out;
- }
-
- .loader-section {
- .bg {
- width: 0;
- transition: 0.7s 0.3s allcubic-bezier(0.1, 0.1, 0.1, 1);
- }
- }
- }
-}
-
-
-
-
-
-
-.back-to-top {
- background-color: $theme-color;
- width: 50px;
- height: 50px;
- line-height: 40px;
- border-radius: 100px;
- color: $white;
- font-size: 16px;
- position: fixed;
- display: inline-block;
- z-index: 9999;
- right: 30px;
- bottom: 30px;
- @include transition;
- opacity: 0;
- visibility: hidden;
- transform: translateY(20px);
-
- @include breakpoint (max-sm) {
- display: none;
- }
-
- &:hover {
- background-color: $white;
- color: $theme-color-2;
- }
-
- &.show {
- opacity: 1;
- visibility: visible;
- transform: translate(0);
- }
-}
-
-
-
-.cursor-outer {
- -webkit-margin-start: -12px;
- margin-inline-start: -12px;
- margin-top: -12px;
- width: 30px;
- height: 30px;
- border: 1px solid $theme-color;
- background-color: $theme-color;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- z-index: 10000000;
- opacity: 0.34;
- -webkit-transition: all 0.4s ease-out 0s;
- transition: all 0.4s ease-out 0s;
-}
-.cursor-outer.cursor-hover {
- opacity: 0.14;
-}
-.cursor-outer.cursor-big {
- opacity: 0;
-}
-.mouseCursor {
- position: fixed;
- top: 0;
- inset-inline-start: 0;
- inset-inline-end: 0;
- bottom: 0;
- pointer-events: none;
- border-radius: 50%;
- -webkit-transform: translateZ(0);
- transform: translateZ(0);
- visibility: hidden;
- text-align: center;
-}
-.mouseCursor.cursor-big {
- width: 20px;
- height: 20px;
- -webkit-margin-start: -12px;
- margin-inline-start: -12px;
- margin-top: -12px;
-}
-.cursor-inner {
- -webkit-margin-start: -3px;
- margin-inline-start: -3px;
- margin-top: -3px;
- width: 10px;
- height: 10px;
- z-index: 10000001;
- background-color: $theme-color;
- opacity: 1;
- -webkit-transition: all 0.24s ease-out 0s;
- transition: all 0.24s ease-out 0s;
- span {
- color: $text-color;
- line-height: 60px;
- opacity: 0;
- text-transform: uppercase;
- letter-spacing: 1px;
- font-size: 12px;
- }
-}
-.cursor-inner.cursor-big {
- span {
- opacity: 1;
- }
-}
-.cursor-inner.cursor-hover {
- -webkit-margin-start: -10px;
- margin-inline-start: -10px;
- margin-top: -10px;
- width: 30px;
- height: 30px;
- background-color: $theme-color;
- border: 1px solid #686363;
- opacity: 0;
-}
-
-
-
-.search-popup {
- position: fixed;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
- z-index: -2;
- -webkit-transition: all 1s ease;
- -khtml-transition: all 1s ease;
- -moz-transition: all 1s ease;
- -ms-transition: all 1s ease;
- -o-transition: all 1s ease;
- transition: all 1s ease;
-}
-
-.search-popup__overlay {
- position: fixed;
- width: 224vw;
- height: 224vw;
- top: calc(90px - 112vw);
- right: calc(50% - 112vw);
- z-index: 3;
- display: block;
- -webkit-border-radius: 50%;
- -khtml-border-radius: 50%;
- -moz-border-radius: 50%;
- -ms-border-radius: 50%;
- -o-border-radius: 50%;
- border-radius: 50%;
- -webkit-transform: scale(0);
- -khtml-transform: scale(0);
- -moz-transform: scale(0);
- -ms-transform: scale(0);
- -o-transform: scale(0);
- transform: scale(0);
- -webkit-transform-origin: center;
- transform-origin: center;
- -webkit-transition: transform 0.8s ease-in-out;
- -khtml-transition: transform 0.8s ease-in-out;
- -moz-transition: transform 0.8s ease-in-out;
- -ms-transition: transform 0.8s ease-in-out;
- -o-transition: transform 0.8s ease-in-out;
- transition: transform 0.8s ease-in-out;
- transition-delay: 0s;
- transition-delay: 0.3s;
- -webkit-transition-delay: 0.3s;
- background-color: #000000;
- opacity: 0.7;
- cursor: url(../../assets/img/close.png), auto;
-}
-
-@media (max-width: 767px) {
- .search-popup__overlay {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- transform: none;
- width: 100%;
- height: 100%;
- border-radius: 0;
- transform: translateY(-110%);
- }
-}
-
-.search-popup__content {
- position: fixed;
- width: 0;
- max-width: 560px;
- padding: 30px 15px;
- left: 50%;
- top: 50%;
- opacity: 0;
- z-index: 3;
- -webkit-transform: translate(-50%, -50%);
- -khtml-transform: translate(-50%, -50%);
- -moz-transform: translate(-50%, -50%);
- -ms-transform: translate(-50%, -50%);
- -o-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
- -webkit-transition: opacity 0.5s 0s, width 0.8s 0.8s cubic-bezier(0.225, 0.01, 0.475, 1.01), transform 0.2s 0s;
- -khtml-transition: opacity 0.5s 0s, width 0.8s 0.8s cubic-bezier(0.225, 0.01, 0.475, 1.01), transform 0.2s 0s;
- -moz-transition: opacity 0.5s 0s, width 0.8s 0.8s cubic-bezier(0.225, 0.01, 0.475, 1.01), transform 0.2s 0s;
- -ms-transition: opacity 0.5s 0s, width 0.8s 0.8s cubic-bezier(0.225, 0.01, 0.475, 1.01), transform 0.2s 0s;
- -o-transition: opacity 0.5s 0s, width 0.8s 0.8s cubic-bezier(0.225, 0.01, 0.475, 1.01), transform 0.2s 0s;
- transition: opacity 0.5s 0s, width 0.8s 0.8s cubic-bezier(0.225, 0.01, 0.475, 1.01), transform 0.2s 0s;
- transition-delay: 0s, 0.8s, 0s;
- transition-delay: 0s, 0.4s, 0s;
- transition-delay: 0.2s;
- -webkit-transition-delay: 0.2s;
-}
-
-.search-popup__form {
- position: relative;
-}
-
-.search-popup__form input[type=search],
-.search-popup__form input[type=text] {
- width: 100%;
- height: 66px;
- border: none;
- outline: none;
- padding-left: 20px;
- background-color: $white;
- font-size: 16px;
- font-weight: 400;
- color: $text-color;
- transition: all 500ms ease;
-}
-
-.search-popup__form input[type=search]:focus,
-.search-popup__form input[type=text]:focus {
- color: $header-color;
-}
-
-.search-popup__form .search-btn {
- padding: 0;
- width: 66px;
- height: 66px;
- display: flex;
- justify-content: center;
- align-items: center;
- position: absolute;
- top: 0;
- right: -1px;
- border-radius: 0;
- font-size: 20px;
- color: $white;
- background-color: $theme-color;
- @include transition;
-
- &:hover {
- background-color: $black;
- }
-}
-
-.search-popup__form .eolexi-btn svg {
- width: 1em;
- height: 1em;
- fill: currentColor;
-}
-
-.search-popup.active {
- z-index: 9999;
-}
-
-.search-popup.active .search-popup__overlay {
- top: auto;
- bottom: calc(90px - 112vw);
- -webkit-transform: scale(1);
- -khtml-transform: scale(1);
- -moz-transform: scale(1);
- -ms-transform: scale(1);
- -o-transform: scale(1);
- transform: scale(1);
- transition-delay: 0s;
- -webkit-transition-delay: 0s;
- opacity: 0.7;
- -webkit-transition: transform 1.6s cubic-bezier(0.4, 0, 0, 1);
- -khtml-transition: transform 1.6s cubic-bezier(0.4, 0, 0, 1);
- -moz-transition: transform 1.6s cubic-bezier(0.4, 0, 0, 1);
- -ms-transition: transform 1.6s cubic-bezier(0.4, 0, 0, 1);
- -o-transition: transform 1.6s cubic-bezier(0.4, 0, 0, 1);
- transition: transform 1.6s cubic-bezier(0.4, 0, 0, 1);
-}
-
-@media (max-width: 767px) {
- .search-popup.active .search-popup__overlay {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- transform: none;
- width: 100%;
- height: 100%;
- border-radius: 0;
- transform: translateY(0%);
- }
-}
-
-.search-popup.active .search-popup__content {
- width: 100%;
- opacity: 1;
- transition-delay: 0.7s;
- -webkit-transition-delay: 0.7s;
-}
-
diff --git a/public/assets/scss/_pricing.scss b/public/assets/scss/_pricing.scss
deleted file mode 100644
index 6a2861d..0000000
--- a/public/assets/scss/_pricing.scss
+++ /dev/null
@@ -1,309 +0,0 @@
-/* Pricing Section */
-.pricing-wrapper-2 {
-
- .pricing-content {
- position: relative;
- z-index: 9;
-
- .pricing-text {
- margin-top: 25px;
- max-width: 548px;
- }
-
- .nav {
- background-color: $white;
- border-radius: 24.5px;
- padding: 10px 20px;
- margin-top: 40px;
- border: none;
-
- @include breakpoint (max-xxl) {
- margin-top: 15px;
- }
-
- .nav-tabs {
- border-bottom: 0;
- display: flex;
- }
-
- .nav-link {
- font-size: 16px;
- font-weight: 700;
- text-transform: uppercase;
- border: 0;
- border-radius: 0;
- padding: 0 40px;
- position: relative;
- background: transparent;
- z-index: 2;
- color: $text-color;
- margin-bottom: 0;
-
- &::before {
- content: "";
- position: absolute;
- right: 0;
- top: 50%;
- transform: translateY(-50%) translateX(50%);
- background: $theme-color;
- width: 43px;
- height: 22px;
- border-radius: 20px;
- }
-
- &::after {
- content: "";
- position: absolute;
- right: -18px;
- top: 50%;
- transform: translateY(-50%);
- width: 17px;
- height: 17px;
- border-radius: 50%;
- background: $white;
- z-index: 1;
- }
-
- &:first-child {
- padding-left: 0;
- }
- &:last-child {
- padding-right: 0;
-
- &::after,
- &::before {
- display: none;
- }
- }
-
- &.active {
- color: $theme-color-2;
-
- &::after {
- right: 0;
- }
- }
- }
- }
- }
-
- .pricing-right-items {
- display: flex;
- align-items: center;
-
- .pricing-box-items {
- max-width: 417px;
- width: 100%;
- border-radius: 20px;
- background: $header-color;
- padding: 40px;
-
- @include breakpoint (max-xxl) {
- padding: 30px;
- }
-
- @include breakpoint (max-sm) {
- padding: 25px;
- }
-
- .pricing-header {
- position: relative;
- border-bottom: 1px solid rgba(255, 255, 255, 0.2);
- padding-bottom: 35px;
- position: relative;
- z-index: 9;
- margin-bottom: 32px;
-
- .sub-texts {
- top: 40px;
- right: 0;
- position: absolute;
- font-size: 24px;
- font-weight: 700;
- color: $white;
-
- @include breakpoint (max-sm) {
- font-size: 20px;
- }
- }
-
- h2 {
- font-size: 72px;
- font-weight: 700;
- line-height: 1;
- color: $white;
-
- @include breakpoint (max-sm) {
- font-size: 50px;
- }
-
- sup {
- font-size: 32px;
- font-weight: 700;
- top: -1.5em;
- margin-right: -10px;
-
- @include breakpoint (max-sm) {
- top: -0.5em;
- }
- }
-
- sub {
- font-size: 20px;
- font-weight: 600;
- // text-transform: capitalize;
- margin-left: -10px;
- }
- }
- }
-
- .theme-btn {
- background: $theme-color;
- color: $white;
- border: none;
- @include flex;
- justify-content: space-between;
-
- i {
- background-color: $white;
- color: $header-color;
- }
-
- &:hover {
- background-color: $white;
- color: $header-color;
-
- i {
- background-color: $theme-color;
- color: $white;
- }
- }
- }
-
- ul {
- margin-top: 24px;
-
- li {
- color: $white;
-
- &:not(:last-child) {
- margin-bottom: 15px;
- }
-
- @include breakpoint (max-sm) {
- font-size: 14px;
- }
-
- i {
- color: $theme-color-2;
- margin-right: 8px;
-
- @include breakpoint (max-sm) {
- margin-right: 5px;
- }
- }
- }
- }
-
- &.style-2 {
- margin-left: -32%;
- z-index: -1;
- border-radius: 20px;
- background: $white;
-
- @media (max-width: 767px) {
- margin-left: -70%;
- }
-
- .pricing-header {
-
- .sub-texts {
- color: $header-color;
- }
- }
-
- .theme-btn {
- width: 100%;
- background-color: transparent;
- border: 1px solid rgba(203, 204, 207, 0.24);
- color: $header-color;
-
- i {
- background-color: $theme-color;
- color: $white;
- }
- }
-
- ul {
- li {
- color: $text-color;
- }
- }
- }
-
- &::after {
- display: none;
- }
- }
- }
-}
-
-
-.pricing-card-items-3 {
- border-radius: 16px;
- background-color: $white;
- backdrop-filter: blur(24px);
- padding: 40px 48px;
- margin-top: 30px;
- @include transition;
-
- @include breakpoint (max-xl) {
- padding: 30px;
- }
-
- .pricing-header {
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding-bottom: 16px;
- margin-bottom: 24px;
-
- h6 {
- text-transform: uppercase;
- font-weight: 500;
- margin-bottom: 10px;
- }
-
- h2 {
- color: $theme-color-2;
- }
- }
-
- .pricing-list-box {
- padding: 24px;
- background-color: $bg-color;
- margin-bottom: 30px;
- border-radius: 16px;
-
- li {
- color: $header-color;
-
- &:not(:last-child) {
- margin-bottom: 15px;
- }
-
- i {
- color: $theme-color-2;
- margin-right: 12px;
- }
- }
- }
-
- .theme-btn {
- width: 100%;
- @include flex;
- justify-content: space-between;
- }
-
- &:hover {
- transform: translateY(-10px);
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_section.scss b/public/assets/scss/_section.scss
deleted file mode 100644
index 30249ea..0000000
--- a/public/assets/scss/_section.scss
+++ /dev/null
@@ -1,126 +0,0 @@
-
-//>>>>> Section Title Start <<<</
-
-.section-title {
- position: relative;
- z-index: 99;
- margin-bottom: 30px;
-
- @include breakpoint (max-md){
- margin-bottom: 0;
- }
-
- .sub-title {
- font-size: 18px;
- font-weight: 500;
- color: $theme-color-2;
- font-family: $heading-font;
- margin-bottom: 20px;
- // text-transform: capitalize;
- line-height: 1;
- padding: 8px 16px;
- border-radius: 100px;
- display: inline-block;
- position: relative;
- background-color: $bg-color;
-
- &.bg-2 {
- background-color: $bg-color-2;
- color: $white;
- }
- }
-
- .sub-title-2 {
- color: $theme-color-2;
- text-transform: uppercase;
- font-size: 18px;
- font-weight: 500;
- font-family: $heading-font;
- margin-bottom: 20px;
- display: inline-block;
-
- &.theme {
- color: $theme-color;
- }
- }
-
- h2 {
- text-transform: uppercase;
-
- span {
- text-transform: uppercase;
- color: $theme-color;
- }
- }
-}
-
-
-.section-title-area {
- @include flex;
- justify-content: space-between;
- position: relative;
- z-index: 9;
- margin-bottom: 30px;
-
- .section-title {
- margin-bottom: 0;
- }
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- // justify-content: center;
- // text-align: center;
- gap: 30px;
- }
-
- @include breakpoint (max-md){
- margin-bottom: 0;
- }
-
- p {
- max-width: 523px;
- }
-}
-//>>>>> Section Title End <<<</
-
-//>>>>> Basic Css Start <<<</
-
-.center {
- text-align: center;
- margin: 0 auto;
-}
-
-.section-bg {
- background-color: $bg-color-2;
-}
-
-.section-bg-1 {
- background-color: $bg-color;
-}
-
-.section-bg-2 {
- background-color: #F7F7F7;
-}
-
-.header-bg {
- background-color: $header-color;
-}
-
-
-.footer-bg-2 {
- background-color: #151A26;
-}
-
-.section-padding {
- padding: 120px 0;
-
- @include breakpoint(max-xl){
- padding: 100px 0;
- }
-
- @include breakpoint(max-lg){
- padding: 80px 0;
- }
-}
-//>>>>> Basic Css End <<<</
-
diff --git a/public/assets/scss/_service.scss b/public/assets/scss/_service.scss
deleted file mode 100644
index b21b702..0000000
--- a/public/assets/scss/_service.scss
+++ /dev/null
@@ -1,673 +0,0 @@
-.service-wrapper {
- border-radius: 16px;
- @include transition;
- padding: 30px 0;
-
- &.active {
-
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- }
- }
-
- .service-item {
- @include flex;
- justify-content: space-between;
- position: relative;
-
- @include breakpoint (max-xxxl) {
- flex-wrap: wrap;
- gap: 30px;
- }
-
- .image-hover {
- width: 324px;
- height: 196px;
- position: absolute;
- top: 50%;
- inset-inline-start: 0;
- background-size: cover;
- background-repeat: no-repeat;
- background-position-x: 75%;
- opacity: 0;
- transition: opacity 0.3s, transform 0.4s ease-out;
- overflow: hidden;
- pointer-events: none;
- z-index: 2;
- visibility: hidden;
- border-radius: 10px;
- }
-
- .left-item {
- @include flex;
- gap: 100px;
-
- @include breakpoint (max-xxxl) {
- gap: 30px;
- }
-
- .number {
- font-size: 20px;
- font-weight: 700;
- }
-
- h3 {
- a {
- background-position: 0 95%;
- background-repeat: no-repeat;
- background-size: 0% 2px;
- display: inline;
-
- &:hover {
- color: $theme-color;
- background-size: 100% 2px;
- background-image: linear-gradient(180deg, $theme-color 0%, $theme-color 100%);
- }
- }
- }
- }
-
- .right-item {
- @include flex;
- position: relative;
-
- p {
- max-width: 503px;
- }
-
- .service-btn {
- font-weight: 500;
- color: $theme-color;
- font-family: $heading-font;
- // text-transform: capitalize;
- opacity: 0;
- visibility: hidden;
- transition: all 0.3s ease;
- @include transition;
- position: absolute;
- top: 50%;
- transform: translateY(-50%);
- right: 0;
- opacity: 0;
-
- @include breakpoint (max-sm) {
- display: none;
- }
-
- i {
- margin-left: 5px;
- }
- }
- }
- }
-
- &:hover {
- background-color: $bg-color;
-
- .service-item {
-
- .image-hover {
- opacity: 1;
- visibility: visible;
- }
-
- .right-item {
- align-items: center;
-
- p {
- margin-right: 80px;
-
- @include breakpoint (max-sm) {
- margin-right: 0;
- }
- }
-
- .service-btn {
- opacity: 1;
- visibility: visible;
- }
- }
- }
- }
-}
-
-.service-wrapper-2 {
- border-radius: 16px;
- border: 1px solid rgba(203, 204, 207, 0.24);
- margin-top: 48px;
-
- .service-box-item {
- border-right: 1px solid rgba(203, 204, 207, 0.24);
- padding: 30px;
- position: relative;
- height: 100%;
- overflow: hidden;
-
- &::before {
- @include before;
- background: $white;
- z-index: 3;
- transition: all 0.3s ease-out;
- }
-
- .service-image {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- overflow: hidden;
- transition: all 0.1s ease-out;
-
- img {
- @include imgw;
- object-fit: cover;
- object-position: center center;
- }
-
- &::after {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background: linear-gradient(0deg, rgba(21, 26, 38, 0.80) 0%, rgba(21, 26, 38, 0.80) 100%);
- }
- }
-
- h2 {
- font-size: 56px;
- -webkit-text-stroke-width: 1px;
- -webkit-text-stroke-color: $text-color;
- color: transparent;
- margin-bottom: 190px;
- z-index: 999;
- position: relative;
- }
-
- h3 {
- z-index: 999;
- position: relative;
-
- a {
- background-position: 0 95%;
- background-repeat: no-repeat;
- background-size: 0% 2px;
- display: inline;
- color: $header-color;
-
- &:hover {
- color: $theme-color;
- background-size: 100% 2px;
- background-image: linear-gradient(180deg, $theme-color 0%, $theme-color 100%);
- }
- }
- }
-
- &:hover {
- border: none;
-
- &::before {
- transform: translate(100%,-100%);
- }
-
- h2 {
- color: $theme-color !important;
- -webkit-text-stroke: initial !important;
- z-index: 999;
- position: relative;
- }
-
- h3 {
- z-index: 999;
- position: relative;
-
- a {
- color: $white;
- }
- }
-
- .service-image {
- opacity: 1;
- }
- }
- }
-}
-
-.service-section-2 {
- position: relative;
- z-index: 9;
-
- .service-wrapper-2 {
- .swiper-slide.swiper-slide-active {
-
- .service-box-item {
- border: 1px transparent;
-
- &::before {
- background: none;
- }
- .service-image {
- opacity: 1;
- }
-
- h2 {
- color: $theme-color !important;
- -webkit-text-stroke: initial !important;
- z-index: 999;
- position: relative;
- }
-
- h3 {
- z-index: 999;
- position: relative;
-
- a {
- color: $white;
- }
- }
-
- }
- }
- }
-
- .service-bottom {
- @include flex;
- justify-content: space-between;
- margin-top: 40px;
-
- @include breakpoint (max-xxl){
- display: none;
- }
-
- .service-pagi-items {
-
- .service-dot {
- .swiper-pagination-bullet {
- width: 340px;
- height: 2px;
- border-radius: 0;
- background: $border-color-2;
- opacity: 1;
- transition: 0.6s;
- margin: 0 !important;
- }
-
- .swiper-pagination-bullet-active {
- opacity: 1;
- background: $theme-color;
- width: 124px;
- }
-
- @include breakpoint (max-md){
- display: none;
- }
- }
- }
-
- .array-buttons-3 {
- @include flex;
- gap: 24px;
-
- @include breakpoint (max-sm) {
- display: none;
- }
-
- .array-prev {
- width: 48px;
- height: 48px;
- line-height: 48px;
- text-align: center;
- background-color: $bg-color;
- color: $header-color;
- @include transition;
- z-index: 999;
- border-radius: 100px;
- transform: rotate(320deg);
-
- &:hover {
- background-color: $theme-color;
- color: $white;
- }
- }
-
- .array-next {
- width: 48px;
- height: 48px;
- line-height: 48px;
- text-align: center;
- background-color: $theme-color;
- color: $white;
- @include transition;
- z-index: 999;
- border-radius: 100px;
- transform: rotate(320deg);
- border: 1px solid $theme-color;
-
- &:hover {
- background-color: $bg-color;
- color: $header-color;
- border: 1px solid $bg-color;
- }
- }
- }
- }
-}
-
-.service-main-item-3 {
- @include flex;
- justify-content: space-between;
- border-radius: 16px;
- background-color: $white;
- padding: 16px 0px 16px 16px;
- margin-top: 24px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 30px;
- }
-
- .service-left {
- @include flex;
- gap: 48px;
-
- @include breakpoint (max-xxl) {
- gap: 30px;
- }
-
- @include breakpoint (max-md) {
- flex-wrap: wrap;
- gap: 30px;
- }
-
- .service-image {
- img {
- @include imgw;
- border-radius: 16px;
- }
- }
-
- .content {
- h3 {
- a {
- background-position: 0 95%;
- background-repeat: no-repeat;
- background-size: 0% 2px;
- display: inline;
-
- &:hover {
- color: $theme-color;
- background-size: 100% 2px;
- background-image: linear-gradient(180deg, $theme-color 0%, $theme-color 100%);
- }
- }
- }
-
- p {
- max-width: 566px;
- margin-top: 15px;
- }
- }
- }
-
- .service-button {
- transform: rotate(90deg);
- margin-right: -15px;
-
- @include breakpoint (max-xxl) {
- margin-right: 0;
- transform: rotate(0);
- }
- }
-
- &.style-2 {
- padding: 16px 16px 16px 16px;
-
- .service-left {
- .content {
- text-align: right;
-
- @include breakpoint (max-xxl) {
- text-align: left;
- }
- }
- }
-
- .service-button {
- margin-left: -15px;
- margin-right: 0;
-
- @include breakpoint (max-xxl) {
- margin-left: 0;
- }
- }
- }
-}
-
-.service-visa-wrapper {
- @include flex;
- justify-content: space-between;
-
- @include breakpoint (max-xxl) {
- border: 1px solid rgba(202, 210, 210, 0.8);
- }
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- }
-
- .service-visa-items {
- padding: 48px 48px 48px 40px;
- border-top: 1px solid rgba(202, 210, 210, 0.8);
- position: relative;
-
- @include breakpoint (max-xxl) {
- padding: 30px 30px 30px 30px;
- border-top: none;
- }
-
- .top-item {
- @include flex;
- gap: 16px;
- margin-bottom: 16px;
-
- .number {
- width: 64px;
- height: 64px;
- line-height: 64px;
- text-align: center;
- border-radius: 100px;
- background-color: $bg-color;
- }
-
- h3 {
- a {
- background-position: 0 95%;
- background-repeat: no-repeat;
- background-size: 0% 2px;
- display: inline;
-
- &:hover {
- color: $theme-color;
- background-size: 100% 2px;
- background-image: linear-gradient(180deg, $theme-color 0%, $theme-color 100%);
- }
- }
- }
- }
-
- .service-button {
- position: absolute;
- top: 90px;
- right: -89px;
- bottom: 0;
- color: $white;
- background-color: $theme-color;
- transform: rotate(90deg);
- padding: 10px 12px;
- height: 45px;
- width: 224px;
- text-align: center;
- opacity: 0;
- visibility: hidden;
- @include transition;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
- }
-
- &.style-2 {
- border-left: 1px solid rgba(202, 210, 210, 0.8);
- }
-
- &:hover {
- .service-button {
- opacity: 1;
- visibility: visible;
- }
- }
- }
-}
-
-.service-details-wrapper {
-
- .service-details-post {
-
- .details-image {
- margin-top: 24px;
- margin-bottom: 30px;
-
- img {
- @include imgw;
- border-radius: 24px;
- }
- }
-
- .text {
- font-size: 32px;
-
- @include breakpoint (max-xxl) {
- font-size: 25px;
- }
- }
-
- .service-left-content {
-
- .list-item {
- margin-top: 24px;
-
- li {
-
- i {
- color: $theme-color-2;
- margin-right: 6px;
- }
-
- span {
- font-size: 20px;
- font-weight: 500;
- color: $header-color;
- font-family: $heading-font;
-
- @include breakpoint (max-xxl) {
- font-size: 16px;
- }
- }
-
- &:not(:last-child) {
- margin-bottom: 16px;
- }
- }
- }
- }
-
- .thumb {
- img {
- @include imgw;
- border-radius: 24px;
- }
- }
-
- .faq-items {
- position: relative;
- z-index: 9;
-
- .accordion {
- .accordion-item {
- border: none;
-
- h5 {
- button {
- line-height: 1;
- font-weight: 600;
- padding: 29px 30px;
- color: $header-color;
-
- cursor: pointer;
-
- @include breakpoint(max-sm) {
- font-size: 18px;
- line-height: 1.6;
- padding: 22px 20px;
- }
- }
- }
-
- .accordion-body {
- padding: 20px 30px;
- background-color: $white;
- box-shadow: 8px 8px 32px 0 rgba(0, 72, 180, 0.08);
- backdrop-filter: blur(5px);
-
- p {
- font-size: 16px;
- line-height: 24px;
- font-weight: 400;
-
- @include breakpoint(max-sm) {
- width: 100%;
- font-size: 14px;
- line-height: 28px;
- }
- }
- }
- }
-
- .accordion-button {
- background-color: $white;
- color: $header-color;
- box-shadow: 8px 8px 32px 0 rgba(36, 12, 135, 0.08);
- backdrop-filter: blur(5px);
-
- &::after {
- content: "\f324";
- font-family: "Font Awesome 6 Pro";
- background: transparent;
- font-weight: 900;
- transition: all 0.3s ease-in-out !important;
- color: $theme-color-2;
- }
-
- &:not(.collapsed) {
- background-color: $white;
- box-shadow: 8px 8px 32px 0 rgba(36, 12, 135, 0.08);
- backdrop-filter: blur(5px);
- color: $header-color;
-
- &::after {
- content: "\f322";
- font-family: "Font Awesome 6 Pro";
- background: transparent;
- font-weight: 900;
- color: $theme-color;
- transform: rotate(0);
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_testimonial.scss b/public/assets/scss/_testimonial.scss
deleted file mode 100644
index e0d4c2a..0000000
--- a/public/assets/scss/_testimonial.scss
+++ /dev/null
@@ -1,370 +0,0 @@
-.testimonial-wrapper {
- margin-top: 60px;
-
- .testimonia-image {
- position: relative;
- height: 370px;
- overflow: hidden;
- border-radius: 16px;
-
- @include breakpoint (max-lg) {
- height: initial;
- }
-
- .video-btn {
- width: 64px;
- height: 64px;
- line-height: 64px;
- border-radius: 100px;
- text-align: center;
- background-color: $theme-color;
- color: $white;
- display: inline-block;
- position: absolute;
- left: 35px;
- top: 30px;
- z-index: 9;
-
- &::before {
- @include before;
- border-radius: 1000px;
- border: 1px solid rgba(203, 204, 207, 0.24);
- width: 80px;
- height: 80px;
- top: 50%;
- left: 50%;
- transform: translate(-50%,-50%);
- }
- }
-
- h5 {
- font-weight: 500;
- color: $white;
- position: absolute;
- left: 24px;
- bottom: 24px;
- z-index: 9;
- }
-
- img {
- @include imgw;
- border-radius: 16px;
- object-fit: cover;
- }
-
- &::after {
- content: "";
- position: absolute;
- width: 200%;
- height: 0%;
- left: 50%;
- top: 50%;
- background-color: rgba(255,255,255,.3);
- transform: translate(-50%,-50%) rotate(-45deg);
- z-index: 1;
- }
-
- &:hover {
- &::after {
- height: 250%;
- transition: all 600ms linear;
- background-color: transparent;
- }
- }
-
-
- }
-
- .testimonial-box {
- border-radius: 16px;
- background-color: $bg-color;
- padding: 30px 24px;
-
- .star {
- color: $theme-color;
- margin-bottom: 24px;
- }
-
- p {
- font-style: italic;
- font-weight: 500;
- max-width: 307px;
- }
-
- .info-item {
- @include flex;
- gap: 12px;
- margin-top: 90px;
-
- @include breakpoint (max-xxl) {
- margin-top: 40px;
- }
-
- @include breakpoint (max-lg) {
- margin-top: 30px;
- }
-
- .client-image {
- img {
- border-radius: 100%;
- }
- }
- }
- }
-}
-
-.testimonial-wrapper-2 {
- margin-top: 60px;
-
- @include breakpoint (max-sm) {
- margin-top: 30px;
- }
-
- .testimonial-image {
- height: 305px;
-
- img {
- @include imgw;
- border-radius: 16px;
- object-fit: cover;
- }
- }
-
- .testimonial-item {
- @include flex;
- gap: 30px;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- }
-
- .testimonial-left {
- @include transition;
-
- .testimonial-box {
- padding: 40px;
- background-color: $theme-color-2;
- border-radius: 16px;
- position: relative;
- @include transition;
-
- @include breakpoint (max-xxl) {
- padding: 30px;
- }
-
- &::before {
- position: absolute;
- bottom: -23px;
- content: "";
- left: 32px;
- width: 35px;
- height: 24px;
- background-color: $theme-color-2;
- clip-path: polygon(100% 0, 0 0, 100% 100%);
- }
-
- .star {
- color: $white;
- margin-bottom: 10px;
- }
-
- p {
- max-width: 549px;
- font-size: 20px;
- font-weight: 500;
- font-family: $heading-font;
- color: $white;
- line-height: 140%;
-
- @include breakpoint (max-xxl) {
- font-size: 16px;
- }
- }
- }
-
- .info-item {
- @include flex;
- gap: 10px;
- margin-top: 24px;
- margin-left: 80px;
-
- img {
- border: 1px solid $theme-color;
- border-radius: 100%;
- }
-
- .content {
- h5 {
- font-weight: 500;
- }
- }
- }
- }
-
- .right-item {
- width: 100px;
-
- .test-slider {
- height: 300px;
-
- @include breakpoint (max-xxl) {
- height: 80px;
- }
- }
-
- .client-image {
- img {
- border-radius: 8px;
- transition: all 0.5s ease;
- }
- }
- }
- }
-}
-
-.testimonial-wrapper-3 {
- margin-top: 60px;
-
- .testimonial-thumb {
- border-radius: 16px;
-
- img {
- @include imgw;
- border-radius: 16px;
- }
-
- &.tp-clip-anim {
- width: 100%;
- display: grid;
- align-items: center;
- justify-items: center;
- overflow: hidden;
- position: relative;
- & .tp-anim-img {
- opacity: 0;
- width: 100%;
- height: 100%;
- }
-
- & .mask {
- background-size: cover;
- background-position: center;
- transform: scale(1.005);
- }
- >* {
- grid-area: 1 / 1 / 2 / 2;
- width: 100%;
- height: 100%;
- max-height: 100%;
- }
- }
- }
-
- .testimonial-content {
- margin-left: 50px;
- position: relative;
-
- @include breakpoint (max-xxl) {
- margin-left: 0;
- }
-
- .content {
- .star {
- color: $theme-color;
- margin-bottom: 20px;
- }
-
- h3 {
- font-size: 28px;
- line-height: 143%;
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding-bottom: 40px;
- margin-bottom: 30px;
- font-weight: 500;
-
- @include breakpoint (max-xxl) {
- font-size: 24px;
- }
-
- @include breakpoint (max-lg) {
- font-size: 20px;
- }
-
- @include breakpoint (max-sm) {
- font-size: 16px;
- }
- }
-
- .info-item {
- @include flex;
- gap: 20px;
-
- .icon {
- width: 56px;
- height: 56px;
- line-height: 56px;
- text-align: center;
- border-radius: 100px;
- background-color: $theme-color-2;
- color: $white;
- font-size: 30px;
- }
-
- .content {
- border-left: 1px solid rgba(203, 204, 207, 0.24);
- padding-left: 30px;
- }
- }
- }
-
- .array-buttons-3 {
- position: absolute;
- right: 0;
- bottom: 0;
- @include flex;
- gap: 24px;
-
- @include breakpoint (max-sm) {
- display: none;
- }
-
- .array-prev {
- width: 48px;
- height: 48px;
- line-height: 48px;
- text-align: center;
- background-color: $bg-color;
- color: $header-color;
- @include transition;
- z-index: 999;
- border-radius: 100px;
- transform: rotate(320deg);
-
- &:hover {
- background-color: $theme-color;
- color: $white;
- }
- }
-
- .array-next {
- width: 48px;
- height: 48px;
- line-height: 48px;
- text-align: center;
- background-color: $theme-color;
- color: $white;
- @include transition;
- z-index: 999;
- border-radius: 100px;
- transform: rotate(320deg);
- border: 1px solid $theme-color;
-
- &:hover {
- background-color: $bg-color;
- color: $header-color;
- border: 1px solid $bg-color;
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/_typography.scss b/public/assets/scss/_typography.scss
deleted file mode 100644
index 1ff985e..0000000
--- a/public/assets/scss/_typography.scss
+++ /dev/null
@@ -1,174 +0,0 @@
-/* --------------------------------------------
- Template Default Fonts & Fonts Styles
- ---------------------------------------------- */
-
-@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300..700&display=swap');
-
-@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
-
-$heading-font: 'Space Grotesk', serif;
-$body-font: "Inter", sans-serif;
-//font-family: "Font Awesome 6 Free";
-$fa: "Font Awesome 6 Pro";
-
-body {
- font-family: $body-font;
- font-size: 16px;
- font-weight: 400;
- line-height: 24px;
- color: $text-color;
- background-color: $white;
- padding: 0;
- margin: 0;
- overflow-x: hidden;
- // // text-transform: capitalize;
-}
-
-ul {
- padding: 0;
- margin: 0;
- list-style: none;
-}
-
-button {
- border: none;
- background-color: transparent;
- padding: 0;
-}
-
-input:focus{
- color: $white;
- outline: none;
-}
-
-input{
- color: $white;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-family: $heading-font;
- margin: 0px;
- padding: 0;
- color: $header-color;
- @include transition;
- // text-transform: capitalize;
-}
-
-h1 {
- font-size: 72px;
- font-weight: 700;
- line-height: 111%;
-
- @include breakpoint(max-xl4){
- font-size: 70px;
- }
-
- @include breakpoint(max-xxxl){
- font-size: 60px;
- }
-
- @include breakpoint(max-xxl){
- font-size: 55px;
- }
-
- @include breakpoint(max-xl){
- font-size: 40px;
- }
-
- @include breakpoint(max-lg){
- font-size: 40px;
- }
-
- @include breakpoint(max-md){
- font-size: 32px;
- }
-
- @include breakpoint(max-sm){
- font-size: 28px;
- }
-}
-
-h2 {
- font-size: 48px;
- font-weight: 700;
- line-height: 117%;
-
- @include breakpoint(max-xxl){
- font-size: 50px;
- }
-
- @include breakpoint(max-xl){
- font-size: 38px;
- }
-
- @include breakpoint(max-lg){
- font-size: 38px;
- }
-
- @include breakpoint(max-md){
- font-size: 35px;
- }
-
- @include breakpoint(max-sm){
- font-size: 30px;
- }
-
- @include breakpoint(max-xxs){
- font-size: 25px;
- }
-}
-
-h3 {
- font-size: 24px;
- font-weight: 700;
- line-height: 133%;
-
- @include breakpoint(max-xl){
- font-size: 20px;
- }
-}
-
-h4 {
- font-size: 22px;
- font-weight: 700;
- line-height: 141%;
-
- @include breakpoint(max-xl){
- font-size: 20px;
- }
-}
-
-h5 {
- font-size: 20px;
- font-weight: 700;
- line-height: 140%;
-}
-
-h6 {
- font-size: 16px;
- font-weight: 600;
-}
-
-a {
- text-decoration: none;
- outline: none !important;
- cursor: pointer;
- color: $header-color;
- @include transition;
-}
-
-p {
- margin: 0px;
- @include transition;
-}
-
-span {
- margin: 0px;
- // @include transition;
-}
-
diff --git a/public/assets/scss/_variables.scss b/public/assets/scss/_variables.scss
deleted file mode 100644
index 79dda32..0000000
--- a/public/assets/scss/_variables.scss
+++ /dev/null
@@ -1,31 +0,0 @@
-
-:root {
-
- --body: #fff;
- --black: #000;
- --white: #fff;
- --theme: #E13833;
- --theme-2: #0048B4;
- --header: #151A26;
- --text: #535761;
- --text-2: #0B4E3D;
- --border: #C9C9C9;
- --border-2: #CBCCCF;
- --bg: #F8F8F9;
- --bg-2: #153888;
- --box-shadow: 0px 1px 14px 0px rgba(0, 0, 0, 0.13);
-}
-
-// Theme Color - Defualt Colors
-$black: var(--black);
-$white: var(--white);
-$theme-color: var(--theme);
-$theme-color-2: var(--theme-2);
-$text-color: var(--text);
-$text-color-2: var(--text-2);
-$header-color: var(--header);
-$border-color: var(--border);
-$border-color-2: var(--border-2);
-$bg-color: var(--bg);
-$bg-color-2: var(--bg-2);
-$shadow: var(--pp-box-shadow);
\ No newline at end of file
diff --git a/public/assets/scss/_visa.scss b/public/assets/scss/_visa.scss
deleted file mode 100644
index 29eb210..0000000
--- a/public/assets/scss/_visa.scss
+++ /dev/null
@@ -1,565 +0,0 @@
-.visa-certification-wrapper {
-
- .visa-image {
- margin-left: -310px;
-
- @include breakpoint (max-xxl) {
- margin-left: 0;
- }
-
- img {
- @include imgw;
- }
- }
-
- .visa-certification-content {
- margin-left: 17px;
-
- @include breakpoint (max-xxl) {
- margin-left: 0;
- margin-bottom: 100px;
- margin-top: 100px;
- }
-
- @include breakpoint (max-lg) {
- margin-bottom: 80px;
- margin-top: 0;
- }
-
- .visa-item {
- @include flex;
- gap: 48px;
- margin-top: 90px;
-
- @include breakpoint (max-xxl) {
- margin-top: 30px;
- gap: 30px;
- }
-
- @include breakpoint (max-lg) {
- flex-wrap: wrap;
- gap: 30px;
- }
-
- .nav {
- display: grid;
- gap: 30px;
-
- li {
- font-size: 20px;
- font-weight: 700;
- font-family: $heading-font;
-
- @include breakpoint (max-xxl) {
- font-size: 12px;
- }
-
- @include breakpoint (max-lg) {
- font-size: 16px;
- }
-
- .nav-link {
- color: $header-color;
- @include transition;
- padding: 16px 40px 16px 16px;
- border-radius: 8px;
- backdrop-filter: blur(28px);
- background-color: $white;
- line-height: 1;
-
- @include breakpoint (max-xxl) {
- padding: 10px 10px 10px 10px;
- }
-
- @include breakpoint (max-lg) {
- padding: 16px 40px 16px 16px;
- }
-
- i {
- width: 24px;
- height: 24px;
- line-height: 24px;
- text-align: center;
- background-color: $theme-color;
- color: $white;
- border-radius: 50px;
- font-size: 14px;
- transform: rotate(-45deg);
- margin-right: 6px;
- }
-
- &.active {
- position: relative;
- background-color: $theme-color;
- color: $white;
- border-radius: 100px;
-
- i {
- background-color: $white;
- color: $theme-color;
- }
- }
- }
- }
- }
-
- .content {
-
- .icon {
- margin-bottom: 16px;
- }
-
- p {
- max-width: 479px;
- margin-bottom: 40px;
- margin-top: 10px;
- }
- }
- }
- }
-}
-
-.visa-provide-box {
- background-color: $white;
- padding: 30px;
- border-radius: 16px;
- background-color: $white;
- margin-top: 30px;
-
- .visa-top-item {
- margin-bottom: 30px;
- @include flex;
- justify-content: space-between;
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 20px;
- }
-
- .visa-left {
- @include flex;
- gap: 16px;
-
- p {
- color: $theme-color;
- }
-
- h3 {
- a {
- background-position: 0 95%;
- background-repeat: no-repeat;
- background-size: 0% 2px;
- display: inline;
-
- &:hover {
- color: $theme-color;
- background-size: 100% 2px;
- background-image: linear-gradient(180deg, $theme-color 0%, $theme-color 100%);
- }
- }
- }
- }
-
- .theme-btn {
- background-color: $bg-color;
-
- &:hover {
- background-color: $theme-color;
- color: $white;
- }
- }
- }
-
- .visa-list-item {
- @include flex;
- justify-content: space-between;
-
-
- @include breakpoint (max-xxl) {
- flex-wrap: wrap;
- gap: 20px;
- }
-
- .list {
- li {
- font-size: 18px;
- font-weight: 500;
- font-family: $heading-font;
-
- @include breakpoint (max-xxxl) {
- font-size: 16px;
- }
-
- &:not(:last-child) {
- margin-bottom: 20px;
- }
-
- i {
- width: 22px;
- height: 22px;
- line-height: 22px;
- text-align: center;
- border-radius: 50px;
- background-color: $text-color;
- color: $white;
- margin-right: 8px;
- font-size: 12px;
- transform: rotate(-45deg);
- }
- }
- }
- }
-}
-
-.visa-provide-section {
-
- .visa-slider {
- margin-left: -400px;
- margin-right: -400px;
-
- @include breakpoint (max-xxl) {
- margin-right: 0;
- margin-left: 0;
- margin: 0 10px;
- }
- }
-}
-
-
-.visa-bottom {
- position: relative;
- margin-top: 70px;
-
- @include breakpoint (max-xxl) {
- display: none;
- }
-
- &::before {
- background-color: $theme-color-2;
- @include before;
- width: 410px;
- height: 132px;
- padding: 16px 16px 16px 294px;
- border-radius: 0 100px 100px 0;
-
- @include breakpoint (max-xxxl) {
- display: none;
- }
- }
-
- &::after {
- background-color: $theme-color-2;
- position: absolute;
- content: "";
- width: 410px;
- height: 132px;
- padding: 16px 16px 16px 294px;
- border-radius: 100px 0 0 100px;
- right: 0;
- top: 0;
-
- @include breakpoint (max-xxxl) {
- display: none;
- }
- }
-
- .visa-arrow-item {
- @include flex;
- justify-content: space-between;
-
- .array-prev {
- width: 100px;
- height: 100px;
- line-height: 100px;
- border-radius: 100%;
- text-align: center;
- background-color: $white;
- color: $header-color;
- position: relative;
- z-index: 9;
- margin-top: 16px;
- margin-left: -15px;
- font-size: 40px;
- }
-
- .array-next {
- width: 100px;
- height: 100px;
- line-height: 100px;
- border-radius: 100%;
- text-align: center;
- background-color: $theme-color;
- color: $white;
- position: relative;
- z-index: 9;
- margin-top: 16px;
- margin-right: -15px;
- font-size: 40px;
- }
-
- .flag-item {
- @include flex;
- gap: 24px;
-
- .flag-thumb {
- position: relative;
- transition: all 0.4s ease-in-out;
- width: 120px;
- height: 120px;
-
- img {
- width: 100%;
- height: 100%;
- border-radius: 50%;
- }
-
- &::before {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- width: 100%;
- height: 100%;
- content: "";
- background-color: rgba(5, 17, 26, 0.8);
- border-radius: 50%;
- transition: all 0.4s ease-in-out;
- opacity: 0;
- visibility: hidden;
- }
-
- &::after {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- width: 100%;
- height: 100%;
- content: "";
- border: 5px solid $white;
- border-radius: 50%;
- transition: all 0.4s ease-in-out;
- opacity: 0;
- visibility: hidden;
- }
-
- .country-name {
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- text-align: center;
- z-index: 2;
- transition: all 0.4s ease-in-out;
- opacity: 0;
- visibility: hidden;
-
- h4 {
- font-size: 14px;
- font-weight: 800;
- // text-transform: capitalize;
- text-align: center;
- color: $white;
- }
- }
-
- &:hover {
- &::before {
- opacity: 1;
- visibility: visible;
- }
-
- &::after {
- opacity: 1;
- visibility: visible;
- }
-
- .country-name {
- opacity: 1;
- visibility: visible;
- }
- }
- }
- }
- }
-}
-
-
-.country-details-wrapper {
-
- .country-details-post {
-
- .details-image {
-
- img {
- @include imgw;
- border-radius: 24px;
- }
- }
-
- .country-details-content {
- margin-top: 20px;
-
- h2 {
- margin-bottom: 10px;
- }
-
- h5 {
- color: $theme-color-2;
- margin-top: 30px;
- }
-
- .tourist-visa-box {
- border-radius: 16px;
- padding: 30px;
- background-color: $bg-color;
- margin-top: 30px;
- margin-bottom: 24px;
-
- .tourist-box {
- @include flex;
- gap: 50px;
-
- .tourist-content {
- h5 {
- color: $header-color;
- margin-bottom: 5px;
- margin-top: 0;
- }
- }
-
- &.style-2 {
- padding-bottom: 15px;
- border-bottom: 1px solid rgba(203, 204, 207, 0.7);
- margin-bottom: 15px;
- }
- }
- }
-
- .text {
- font-size: 32px;
- }
-
- .list-item {
- margin-top: 20px;
- margin-bottom: 30px;
-
- li {
- color: $header-color;
- font-size: 18px;
- font-weight: 500;
- font-family: $heading-font;
-
- &:not(:last-child) {
- margin-bottom: 15px;
- }
-
- span {
- font-size: 16px;
- font-weight: 400;
- color: $text-color;
- font-family: $body-font;
- }
- }
- }
-
- .thumb {
- img {
- @include imgw;
- border-radius: 16px;
- }
- }
-
- .visa-list-2 {
- @include flex;
- gap: 32px;
- margin-bottom: 20px;
-
- li {
- font-size: 20px;
- font-weight: 500;
- color: $header-color;
-
- i {
- color: $theme-color-2;
- margin-right: 8px;
- }
- }
- }
- }
- }
-
- .country-details-sideber {
-
- .icon-box-item {
- background-color: $bg-color;
- border-radius: 8px;
- padding: 12px 24px;
- @include flex;
- justify-content: space-between;
- margin-bottom: 8px;
-
- .left-item {
- @include flex;
- gap: 16px;
- }
-
- i {
- color: $header-color;
- }
- }
-
- .visa-contact-box {
- border-radius: 24px;
- padding: 40px;
- margin-top: 30px;
-
- .content {
- h3 {
- color: $white;
- }
-
- p {
- color: rgba(255, 255, 255, 0.7);
- border-bottom: 1px solid rgba(203, 204, 207, 0.24);
- padding-bottom: 16px;
- margin-bottom: 24px;
- }
-
- .icon-item {
- @include flex;
- gap: 16px;
- margin-bottom: 24px;
-
- .icon {
- width: 48px;
- height: 48px;
- line-height: 48px;
- text-align: center;
- border-radius: 100px;
- background-color: #183074;
- color: $white;
- }
-
- .cont {
- span {
- color: rgba(255, 255, 255, 0.7);
- }
-
- h6 {
- color: $white;
- font-size: 18px;
- font-weight: 500;
-
- a {
- color: $white;
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/public/assets/scss/main.scss b/public/assets/scss/main.scss
deleted file mode 100644
index bc6977e..0000000
--- a/public/assets/scss/main.scss
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-Theme Name: Visaway
-Author: Gramentheme
-Author URI: https://themeforest.net/user/Gramentheme/portfolio
-Description: Visaway – Immigration & Visa Consulting HTML Template
-Service Html Template
-Version: 1.0.0
-*/
-
-/*CSS Table Of Content Ends Here*/
-
-/*
---------------------------------------------------------------
-[Table of Contents]
---------------------------------------------------------------
-01. Variables & Mixins
-02. Typography
-03. Buttons
-04. About
-05. Animation
-06. Brand
-07. Contact
-08. Cta
-09. Faq
-10. Feature
-11. Footer
-12. Header
-13. Helping
-14. Hero
-15. Marquee
-16. Meanmenu
-17. News
-18. Preloader
-19. Pricing
-20. Section
-21. Service
-22. Testimonial
-23. Visa
-
-
---------------------------------------------------------------
-*/
-
-//>> Basic Start </
-
-//>> Mixins </
-@import "_mixins";
-//>> Variables </
-@import "_variables";
-//>> Buttons </
-@import "_buttons";
-//>> Typography </
-@import "_typography";
-//>> Basic End </
-
-
-//>> Template Section Style Start </
-
-//>> About </
-@import "_about";
-//>> Animation </
-@import "_animation";
-//>> Brand </
-@import "_brand";
-//>> Contact </
-@import "_contact";
-//>> Cta </
-@import "_cta";
-//>> Faq </
-@import "_faq";
-//>> Feature </
-@import "_feature";
-//>> Footer </
-@import "_footer";
-//>> Header </
-@import "_header";
-//>> Helping </
-@import "_helping";
-//>> Hero </
-@import "_hero";
-//>> Marquee </
-@import "_marquee";
-//>> MeanMenu </
-@import "_meanmenu";
-//>> News </
-@import "_news";
-//>> _Preloader </
-@import "_preloader";
-//>> _Pricing </
-@import "_pricing";
-//>> Section </
-@import "_section";
-//>> Service </
-@import "_service";
-//>> Testimonial </
-@import "_testimonial";
-//>> Visa </
-@import "_visa";
-
-
-//>> Template Section Style End </
-