3 Commits

45 changed files with 2935 additions and 9805 deletions

View File

@@ -0,0 +1,45 @@
import React from 'react';
const PublicationHeader = () => {
return (
<section id="repo-header">
<div className="max-w-[1440px] mx-auto px-6 lg:px-8">
{/* Title row + action buttons */}
<div className="flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 mb-8 w-full">
<div className="flex-1 max-w-3xl">
<h1>Publication Repository</h1>
<p>Search, filter, and access over 15,000 academic publications and research papers.</p>
</div>
<div className="flex gap-3 shrink-0">
<button className="pub-btn-outline">
<i className="fa-regular fa-bookmark"></i>
Saved Searches
</button>
<button className="pub-btn-primary">
<i className="fa-solid fa-download"></i>
Export Results
</button>
</div>
</div>
{/* Search bar */}
<div className="pub-search-bar">
<span className="pub-search-icon">
<i className="fa-solid fa-magnifying-glass"></i>
</span>
<input
type="text"
placeholder="Search by title, author, keyword, or DOI..."
/>
<div className="pub-search-btn-wrap">
<button className="pub-btn-primary">Search</button>
</div>
</div>
</div>
</section>
);
};
export default PublicationHeader;

View File

@@ -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 (
<div className="pub-results">
{/* Toolbar */}
<div className="pub-results-toolbar">
<p className="pub-results-count">
Showing <strong>1-10</strong> of <strong>12,450</strong> results
</p>
<div className="pub-sort-wrap">
<label>Sort by:</label>
<div className="pub-sort-dropdown">
<button
className={`pub-sort-dropdown-btn ${isSortOpen ? 'open' : ''}`}
onClick={() => setIsSortOpen(!isSortOpen)}
>
<span>{selectedSort}</span>
<i className="fa-solid fa-chevron-down"></i>
</button>
{isSortOpen && (
<div className="pub-sort-dropdown-menu">
{SORT_OPTIONS.map((opt) => (
<div
key={opt}
className={`pub-sort-dropdown-option ${selectedSort === opt ? 'selected' : ''}`}
onClick={() => { setSelectedSort(opt); setIsSortOpen(false); }}
>
{opt}
</div>
))}
</div>
)}
</div>
</div>
</div>
{/* Cards */}
<div className="pub-card-list">
{/* Card 1 */}
<div className="pub-card">
<div className="pub-card-top">
<h3 className="pub-card-title">
<Link href="#">The Evolution of Democratic Institutions in Post-War Europe</Link>
</h3>
<div className="pub-badges">
<span className="pub-badge pub-badge-open">
<i className="fa-solid fa-lock-open"></i> Open Access
</span>
<span className="pub-badge pub-badge-peer">Peer Reviewed</span>
</div>
</div>
<div className="pub-card-meta">
<div className="pub-meta-item">
<i className="fa-solid fa-user"></i>
<strong>Dr. Elena Rostova</strong>, Prof. Marcus Chen
</div>
<div className="pub-meta-item">
<i className="fa-regular fa-calendar"></i> October 2024
</div>
<div className="pub-meta-item">
<i className="fa-solid fa-link"></i> DOI: 10.1038/s41586-024
</div>
<div className="pub-meta-item">
<i className="fa-solid fa-building-columns"></i> Center for Political Studies
</div>
</div>
<p className="pub-card-abstract">
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.
</p>
<div className="pub-keywords">
<span className="pub-keywords-label">Keywords:</span>
<span className="pub-keyword-tag">Democracy</span>
<span className="pub-keyword-tag">European History</span>
<span className="pub-keyword-tag">Institutions</span>
</div>
<div className="pub-card-actions">
<button className="pub-action-btn pub-action-btn-primary">
<i className="fa-solid fa-file-pdf"></i> View PDF
</button>
<button className="pub-action-btn pub-action-btn-secondary">
<i className="fa-solid fa-quote-right"></i> Cite
</button>
<button className="pub-action-btn pub-action-btn-secondary">
<i className="fa-regular fa-bookmark"></i> Save
</button>
</div>
</div>
{/* Card 2 */}
<div className="pub-card">
<div className="pub-card-top">
<h3 className="pub-card-title">
<Link href="#">Cognitive Linguistics and the Framing of Modern Ethics</Link>
</h3>
<div className="pub-badges">
<span className="pub-badge pub-badge-institutional">
<i className="fa-solid fa-building-user"></i> Institutional
</span>
</div>
</div>
<div className="pub-card-meta">
<div className="pub-meta-item">
<i className="fa-solid fa-user"></i>
<strong>Dr. Sarah Jenkins</strong>
</div>
<div className="pub-meta-item">
<i className="fa-regular fa-calendar"></i> August 2024
</div>
<div className="pub-meta-item">
<i className="fa-solid fa-link"></i> DOI: 10.1016/j.cogling.2024
</div>
</div>
<p className="pub-card-abstract">
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.
</p>
<div className="pub-card-actions">
<button className="pub-action-btn pub-action-btn-primary">
<i className="fa-solid fa-arrow-right-to-bracket"></i> Login to Access
</button>
<button className="pub-action-btn pub-action-btn-secondary">
<i className="fa-solid fa-quote-right"></i> Cite
</button>
</div>
</div>
</div>
{/* Pagination */}
<div className="pub-pagination">
<button className="pub-page-btn" disabled>
<i className="fa-solid fa-arrow-left"></i> Previous
</button>
<div className="pub-page-numbers">
<button className="pub-page-num active">1</button>
<button className="pub-page-num">2</button>
<button className="pub-page-num">3</button>
<span className="pub-page-ellipsis">...</span>
<button className="pub-page-num">124</button>
</div>
<button className="pub-page-btn">
Next <i className="fa-solid fa-arrow-right"></i>
</button>
</div>
</div>
);
};
export default PublicationResults;

View File

@@ -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;
}) => (
<div className="pub-accordion-item">
<button
className={`pub-accordion-trigger ${open ? 'open' : ''}`}
onClick={onToggle}
>
{title}
<i className="fa-solid fa-chevron-down"></i>
</button>
<div className={`pub-accordion-body ${open ? 'open' : ''}`}>
{children}
</div>
</div>
);
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 (
<aside className="pub-sidebar">
<div className="pub-sidebar-inner">
<div className="pub-sidebar-header">
<h2>
<i className="fa-solid fa-filter"></i> Filters
</h2>
<button
className="pub-clear-btn"
onClick={() => { setMinYear(''); setMaxYear(''); }}
>
Clear All
</button>
</div>
<div className="pub-accordion">
{/* Publication Year */}
<AccordionSection title="Publication Year" open={isYearOpen} onToggle={() => setIsYearOpen(!isYearOpen)}>
<div className="pub-filter-list">
{YEARS.map((year, idx) => (
<label key={year} className="pub-filter-label">
<input
type="checkbox"
className="pub-checkbox"
defaultChecked={idx === 0}
/>
<span>{year}</span>
</label>
))}
<div className="pub-year-range">
<input
type="number"
placeholder="Min"
value={minYear}
onChange={(e) => setMinYear(e.target.value)}
/>
<input
type="number"
placeholder="Max"
value={maxYear}
onChange={(e) => setMaxYear(e.target.value)}
/>
</div>
</div>
</AccordionSection>
{/* Research Domain */}
<AccordionSection title="Research Domain" open={isDomainOpen} onToggle={() => setIsDomainOpen(!isDomainOpen)}>
<div className="pub-filter-list">
{DOMAINS.map((domain, idx) => (
<label key={domain} className="pub-filter-label">
<input
type="checkbox"
className="pub-checkbox"
defaultChecked={idx === 0}
/>
<span>{domain}</span>
</label>
))}
</div>
</AccordionSection>
{/* Access Type */}
<AccordionSection title="Access Type" open={isAccessOpen} onToggle={() => setIsAccessOpen(!isAccessOpen)}>
<div className="pub-filter-list">
{ACCESS_TYPES.map((type) => (
<label key={type} className="pub-filter-label">
<input type="checkbox" className="pub-checkbox" />
<span>{type}</span>
</label>
))}
</div>
</AccordionSection>
</div>
</div>
</aside>
);
};
export default PublicationSidebar;

View File

@@ -0,0 +1,787 @@
/* ============================================================
publications.css — Scoped under .pub-wrapper
Matches the HTML reference design exactly.
All rules are scoped to avoid conflicts with Bootstrap/main.css
============================================================ */
/* --- 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
============================================================ */
.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
============================================================ */
.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
============================================================ */
.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
============================================================ */
.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
============================================================ */
.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
============================================================ */
.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
============================================================ */
.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;
}

View File

@@ -0,0 +1,208 @@
import React from 'react';
// Khối chứa 2 cột: Active Projects Feed và Funding Calls
const ProjectsAndCenters = () => {
return (
<section id="projects-centers">
<div className="max-w-[1440px] mx-auto px-6 lg:px-8">
<div className="grid grid-cols-1 lg:grid-cols-12 gap-12">
{/* --- CỘT TRÁI (7/12): ACTIVE PROJECTS LIST --- */}
<div className="lg:col-span-7">
<div className="flex items-center justify-between mb-8">
<h2 className="text-2xl font-bold text-ui-text">Active Projects Feed</h2>
<a href="#" className="text-sm font-medium text-brand-accent hover:text-brand-blue transition-colors">
View All Projects
</a>
</div>
<div className="space-y-4">
{/* Project Item 1 */}
<div className="project-card">
<div className="project-icon project-icon-blue">
<i className="text-2xl text-brand-blue inline-flex">
<svg className="w-6 h-6" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M160 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"></path>
</svg>
</i>
</div>
<div className="flex-grow">
<div className="flex flex-wrap items-center gap-2 mb-2">
<span className="badge badge-active">Active</span>
<span className="text-xs text-ui-muted font-medium inline-flex items-center gap-1">
<i className="inline-flex">
<svg className="w-3 h-3" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"></path>
</svg>
</i>
Updated 2d ago
</span>
</div>
<h4 className="text-lg font-bold text-ui-text mb-1">Urban Microclimate Modeling</h4>
<p className="text-sm text-ui-muted line-clamp-2 mb-3">
Developing high-resolution predictive models for heat island effects in European metropolitan areas using machine learning.
</p>
<div className="flex items-center justify-between">
<div className="flex -space-x-2">
<img className="w-8 h-8 rounded-full border-2 border-white object-cover" src="https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-4.jpg" alt="Researcher" title="Dr. Alan Turing" />
<img className="w-8 h-8 rounded-full border-2 border-white object-cover" src="https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-5.jpg" alt="Researcher" title="Dr. Marie Curie" />
<div className="w-8 h-8 rounded-full border-2 border-white bg-ui-bg flex items-center justify-center text-[10px] font-bold text-ui-muted">+3</div>
</div>
<div className="w-32">
<div className="flex justify-between text-xs mb-1">
<span className="text-ui-muted">Progress</span>
<span className="font-medium">65%</span>
</div>
<div className="progress-bar-track">
<div className="progress-bar-fill progress-fill-blue" style={{ width: '65%' }}></div>
</div>
</div>
</div>
</div>
</div>
{/* Project Item 2 */}
<div className="project-card">
<div className="project-icon project-icon-purple">
<i className="text-2xl text-purple-600 inline-flex">
<svg className="w-6 h-6" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5-12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z"></path>
</svg>
</i>
</div>
<div className="flex-grow">
<div className="flex flex-wrap items-center gap-2 mb-2">
<span className="badge badge-collection">Data Collection</span>
<span className="text-xs text-ui-muted font-medium inline-flex items-center gap-1">
<i className="inline-flex">
<svg className="w-3 h-3" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"></path>
</svg>
</i>
Updated 1w ago
</span>
</div>
<h4 className="text-lg font-bold text-ui-text mb-1">Digital Rights in the EU Framework</h4>
<p className="text-sm text-ui-muted line-clamp-2 mb-3">
A comparative analysis of member state implementation of digital privacy directives and their impact on civil liberties.
</p>
<div className="flex items-center justify-between">
<div className="flex -space-x-2">
<img className="w-8 h-8 rounded-full border-2 border-white object-cover" src="https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-6.jpg" alt="Researcher" />
<img className="w-8 h-8 rounded-full border-2 border-white object-cover" src="https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-7.jpg" alt="Researcher" />
</div>
<div className="w-32">
<div className="flex justify-between text-xs mb-1">
<span className="text-ui-muted">Progress</span>
<span className="font-medium">30%</span>
</div>
<div className="progress-bar-track">
<div className="progress-bar-fill progress-fill-accent" style={{ width: '30%' }}></div>
</div>
</div>
</div>
</div>
</div>
{/* Project Item 3 */}
<div className="project-card">
<div className="project-icon project-icon-orange">
<i className="text-2xl text-orange-600 inline-flex">
<svg className="w-6 h-6" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V304v5.7V336zm32 0V304 278.1c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5V272c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5V432c0 44.2-86 80-192 80S0 476.2 0 432V396.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z"></path>
</svg>
</i>
</div>
<div className="flex-grow">
<div className="flex flex-wrap items-center gap-2 mb-2">
<span className="badge badge-review">Review</span>
<span className="text-xs text-ui-muted font-medium inline-flex items-center gap-1">
<i className="inline-flex">
<svg className="w-3 h-3" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"></path>
</svg>
</i>
Updated 3w ago
</span>
</div>
<h4 className="text-lg font-bold text-ui-text mb-1">Behavioral Impacts of Universal Basic Income</h4>
<p className="text-sm text-ui-muted line-clamp-2 mb-3">
Longitudinal study tracking spending habits and employment outcomes in selected pilot regions across France.
</p>
<div className="flex items-center justify-between">
<div className="flex -space-x-2">
<img className="w-8 h-8 rounded-full border-2 border-white object-cover" src="https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-8.jpg" alt="Researcher" />
<img className="w-8 h-8 rounded-full border-2 border-white object-cover" src="https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-9.jpg" alt="Researcher" />
<img className="w-8 h-8 rounded-full border-2 border-white object-cover" src="https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-1.jpg" alt="Researcher" />
</div>
<div className="w-32">
<div className="flex justify-between text-xs mb-1">
<span className="text-ui-muted">Progress</span>
<span className="font-medium">90%</span>
</div>
<div className="progress-bar-track">
<div className="progress-bar-fill progress-fill-blue" style={{ width: '90%' }}></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{/* --- CỘT PHẢI (5/12): FUNDING CALLS --- */}
<div className="lg:col-span-5">
<div className="flex items-center justify-between mb-8">
<h2 className="text-2xl font-bold text-ui-text">Funding Calls</h2>
</div>
<div className="funding-card">
<div className="space-y-4 flex-grow">
{/* Item 1 */}
<div className="funding-item">
<span className="funding-label-urgent">Closing Soon</span>
<h4>EU Horizon 2025: Sustainable Tech</h4>
<div className="funding-meta">
<span className="funding-due">
<i className="fa-regular fa-calendar"></i> Due Nov 15
</span>
<a href="#" className="funding-link">
Details <i className="fa-solid fa-arrow-right" style={{fontSize:'0.625rem'}}></i>
</a>
</div>
</div>
{/* Item 2 */}
<div className="funding-item">
<span className="funding-label-internal">Internal Grant</span>
<h4>Seed Funding for AI Ethics</h4>
<div className="funding-meta">
<span className="funding-due">
<i className="fa-regular fa-calendar"></i> Due Dec 01
</span>
<a href="#" className="funding-link">
Details <i className="fa-solid fa-arrow-right" style={{fontSize:'0.625rem'}}></i>
</a>
</div>
</div>
</div>
<button className="funding-view-all">
View All Opportunities
</button>
</div>
</div>
</div>
</div>
</section>
);
};
export default ProjectsAndCenters;

View File

@@ -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 (
<section id="research-domains">
<div className="max-w-[1440px] mx-auto px-6 lg:px-8">
{/* Tiêu đề Section */}
<div className="text-center mb-16">
<h2 className="text-3xl lg:text-4xl font-bold text-ui-text mb-4">Research Domains</h2>
<p className="text-ui-muted max-w-2xl mx-auto">
Discover our core areas of expertise, where interdisciplinary teams tackle complex global challenges.
</p>
</div>
{/* Grid chứa các thẻ (Cards) */}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
{/* Domain Card 1 (Nổi bật - Màu xanh) */}
<div className="folder-tab folder-tab-blue group">
{/* Hiệu ứng Glow */}
<div className="absolute top-0 right-0 w-32 h-32 bg-white/10 rounded-full blur-2xl -translate-y-1/2 translate-x-1/2 group-hover:scale-150 transition-transform duration-500"></div>
<div className="domain-icon-blue">
<i className="text-2xl text-white inline-flex">
<svg className="w-6 h-6" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path fill="currentColor" d="M384 32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H398.4c-5.2 25.8-22.9 47.1-46.4 57.3V448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-23.5-10.3-41.2-31.6-46.4-57.3H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288H584.4L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320H199.3L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z"></path>
</svg>
</i>
</div>
<h3 className="text-2xl font-bold mb-4">Law & Policy</h3>
<p className="text-white/80 text-sm leading-relaxed mb-8 flex-grow">
Investigating the evolution of international law, human rights, and public policy in a rapidly changing geopolitical landscape.
</p>
<div className="domain-card-footer">
<span className="domain-badge-glass">42 Centers</span>
<i className="text-white/70 group-hover:text-white group-hover:translate-x-1 transition-all inline-flex">
<svg className="w-4 h-4" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor" d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"></path>
</svg>
</i>
</div>
</div>
{/* Domain Card 2 */}
<div className="folder-tab folder-tab-light group">
<div className="domain-icon-light">
<i className="text-2xl text-brand-blue inline-flex">
<svg className="w-6 h-6" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z"></path>
</svg>
</i>
</div>
<h3 className="text-2xl font-bold mb-4">Cognitive Science</h3>
<p className="text-ui-muted text-sm leading-relaxed mb-8 flex-grow">
Bridging psychology, neuroscience, and artificial intelligence to understand human cognition and behavior.
</p>
<div className="domain-card-footer">
<span className="domain-badge-white">28 Centers</span>
<i className="text-ui-muted group-hover:text-brand-blue group-hover:translate-x-1 transition-all inline-flex">
<svg className="w-4 h-4" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor" d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"></path>
</svg>
</i>
</div>
</div>
{/* Domain Card 3 */}
<div className="folder-tab folder-tab-light group">
<div className="domain-icon-light">
<i className="text-2xl text-brand-blue inline-flex">
<svg className="w-6 h-6" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1v9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1h1c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24v4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H379.3c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3h11.3c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16H454c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.7-15.4H251.4c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3v3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3H248c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z"></path>
</svg>
</i>
</div>
<h3 className="text-2xl font-bold mb-4">Environmental Studies</h3>
<p className="text-ui-muted text-sm leading-relaxed mb-8 flex-grow">
Developing sustainable solutions for climate change, resource management, and ecological preservation.
</p>
<div className="domain-card-footer">
<span className="domain-badge-white">35 Centers</span>
<i className="text-ui-muted group-hover:text-brand-blue group-hover:translate-x-1 transition-all inline-flex">
<svg className="w-4 h-4" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor" d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"></path>
</svg>
</i>
</div>
</div>
{/* Domain Card 4 */}
<div className="folder-tab folder-tab-light group">
<div className="domain-icon-light">
<i className="text-2xl text-brand-blue inline-flex">
<svg className="w-6 h-6" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M248 0h16c13.3 0 24 10.7 24 24V34.7C368.4 48.1 431.9 111.6 445.3 192H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h2.7C80.1 111.6 143.6 48.1 224 34.7V24c0-13.3 10.7-24 24-24zM64 288h64V416h40V288h64V416h48V288h64V416h40V288h64V420.3c.6 .3 1.2 .7 1.7 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V288z"></path>
</svg>
</i>
</div>
<h3 className="text-2xl font-bold mb-4">History & Humanities</h3>
<p className="text-ui-muted text-sm leading-relaxed mb-8 flex-grow">
Preserving cultural heritage and analyzing historical contexts to inform contemporary societal debates.
</p>
<div className="domain-card-footer">
<span className="domain-badge-white">50 Centers</span>
<i className="text-ui-muted group-hover:text-brand-blue group-hover:translate-x-1 transition-all inline-flex">
<svg className="w-4 h-4" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor" d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"></path>
</svg>
</i>
</div>
</div>
{/* Domain Card 5 */}
<div className="folder-tab folder-tab-light group">
<div className="domain-icon-light">
<i className="text-2xl text-brand-blue inline-flex">
<svg className="w-6 h-6" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5-12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z"></path>
</svg>
</i>
</div>
<h3 className="text-2xl font-bold mb-4">Economics</h3>
<p className="text-ui-muted text-sm leading-relaxed mb-8 flex-grow">
Analyzing global markets, behavioral economics, and policy impacts on socioeconomic development.
</p>
<div className="domain-card-footer">
<span className="domain-badge-white">19 Centers</span>
<i className="text-ui-muted group-hover:text-brand-blue group-hover:translate-x-1 transition-all inline-flex">
<svg className="w-4 h-4" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor" d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"></path>
</svg>
</i>
</div>
</div>
{/* Domain Card 6 - CTA */}
<div className="domain-card-cta group">
<div className="domain-icon-cta">
<i className="text-2xl text-brand-blue inline-flex">
<svg className="w-6 h-6" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor" d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"></path>
</svg>
</i>
</div>
<h3 className="text-xl font-bold mb-2">View All Domains</h3>
<p className="text-ui-muted text-sm">Explore our complete directory of 15+ research areas.</p>
</div>
</div>
</div>
</section>
);
};
export default ResearchDomains;

View File

@@ -0,0 +1,101 @@
'use client';
import React from 'react';
import { useRouter } from 'next/navigation';
const ResearchHero = () => {
const router = useRouter();
return (
<section id="research-hero">
<div className="max-w-[1440px] mx-auto px-6 lg:px-8">
<div className="flex flex-col lg:flex-row gap-12 items-center">
{/* --- CỘT TRÁI --- */}
<div className="w-full lg:w-1/2 hero-left">
{/* Label: gạch ngang + "Research Hub" */}
<div className="hero-label">
<span className="hero-label-line"></span>
<span className="hero-label-text">Research Hub</span>
</div>
{/* Heading */}
<h1>
Pioneering <br />
<span>Discovery</span>
</h1>
{/* Description */}
<p className="hero-desc">
Explore our cutting-edge research domains, active projects, and interdisciplinary centers driving innovation in liberal arts and sciences.
</p>
{/* Buttons */}
<div className="hero-buttons">
<button className="r-btn-primary" onClick={() => router.push('/research/search')}>
Browse Projects <i className="fa-solid fa-arrow-right text-sm"></i>
</button>
<button className="r-btn-outline">
View Publications
</button>
</div>
</div>
{/* --- CỘT PHẢI: Visual composition --- */}
<div className="w-full lg:w-1/2 relative">
<div className="relative w-full aspect-square max-w-[600px] mx-auto">
{/* Glow nền */}
<div className="absolute inset-0 bg-brand-light rounded-full blur-3xl opacity-50"></div>
{/* Main image card */}
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[80%] h-[80%] bg-white rounded-[32px] border border-ui-border shadow-2xl overflow-hidden z-10">
<img
className="w-full h-full object-cover"
src="https://storage.googleapis.com/uxpilot-auth.appspot.com/11d578de27-837b09c2ea77020bcb48.png"
alt="Research laboratory"
/>
<div className="absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent"></div>
<div className="absolute bottom-0 left-0 p-6 w-full text-white">
<div className="flex items-center gap-2 mb-2">
<span className="px-3 py-1 text-white text-xs font-bold rounded-full" style={{ backgroundColor: 'var(--r-accent)' }}>
Featured
</span>
</div>
<h3 className="text-xl font-bold mb-1" style={{ fontFamily: 'Inter, sans-serif' }}>Cognitive Sciences Lab</h3>
<p className="text-sm opacity-90" style={{ fontFamily: 'Inter, sans-serif' }}>Exploring the intersection of AI and human psychology.</p>
</div>
</div>
{/* Floating stat card 1 — Publications */}
<div className="r-stat-card" style={{ top: '10%', right: '5%' }}>
<div className="w-12 h-12 rounded-full flex items-center justify-center" style={{ backgroundColor: 'var(--r-blue-light)', color: 'var(--r-blue)' }}>
<i className="fa-solid fa-book-open text-xl"></i>
</div>
<div>
<p className="text-2xl font-bold" style={{ color: 'var(--r-text)', fontFamily: 'Inter, sans-serif' }}>12k+</p>
<p className="text-xs font-medium" style={{ color: 'var(--r-muted)', fontFamily: 'Inter, sans-serif' }}>Publications</p>
</div>
</div>
{/* Floating stat card 2 — Active Projects */}
<div className="r-stat-card" style={{ bottom: '15%', left: '0%' }}>
<div className="w-12 h-12 rounded-full flex items-center justify-center" style={{ backgroundColor: '#f0fdf4', color: '#16a34a' }}>
<i className="fa-solid fa-flask text-xl"></i>
</div>
<div>
<p className="text-2xl font-bold" style={{ color: 'var(--r-text)', fontFamily: 'Inter, sans-serif' }}>340</p>
<p className="text-xs font-medium" style={{ color: 'var(--r-muted)', fontFamily: 'Inter, sans-serif' }}>Active Projects</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
);
};
export default ResearchHero;

View File

@@ -0,0 +1,68 @@
import React from 'react';
// Khối chứa 2 banner: Research Guidance và Publication Repository
const ResearchResources = () => {
return (
<section id="research-quick-links">
<div className="max-w-[1440px] mx-auto px-6 lg:px-8">
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
{/* --- Banner 1: Guidance Link --- */}
<a href="#" className="resource-card group">
<div className="resource-card-glow"></div>
<div className="relative z-10 flex items-start gap-6">
<div className="resource-icon">
<i className="text-3xl text-brand-blue inline-flex">
<svg className="w-8 h-8" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="currentColor" d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"></path>
</svg>
</i>
</div>
<div>
<h3 className="text-2xl font-bold text-ui-text mb-2 group-hover:text-brand-blue transition-colors">
Research Guidance
</h3>
<p className="text-ui-muted leading-relaxed mb-4">
Access comprehensive resources, ethical guidelines, grant application support, and methodological frameworks for your research journey.
</p>
<span className="resource-link">
Access Portal
<i className="fa-solid fa-arrow-right group-hover:translate-x-1 transition-transform"></i>
</span>
</div>
</div>
</a>
{/* --- Banner 2: Repository Link --- */}
<a href="#" className="resource-card group">
<div className="resource-card-glow"></div>
<div className="relative z-10 flex items-start gap-6">
<div className="resource-icon">
<i className="text-3xl text-brand-blue inline-flex">
<svg className="w-8 h-8" aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor" d="M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z"></path>
</svg>
</i>
</div>
<div>
<h3 className="text-2xl font-bold text-ui-text mb-2 group-hover:text-brand-blue transition-colors">
Publication Repository
</h3>
<p className="text-ui-muted leading-relaxed mb-4">
Browse, search, and request access to thousands of peer-reviewed papers, dissertations, and datasets produced by ULP scholars.
</p>
<span className="resource-link">
Search Repository
<i className="fa-solid fa-arrow-right group-hover:translate-x-1 transition-transform"></i>
</span>
</div>
</div>
</a>
</div>
</div>
</section>
);
};
export default ResearchResources;

View File

@@ -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 (
<div className="max-w-5xl mx-auto mb-10" style={{ padding: '0 1rem' }}>
{/* Search bar */}
<div className="relative">
<div className="absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none">
<i className="fa-solid fa-magnifying-glass" style={{ color: '#9ca3af' }}></i>
</div>
<input
type="text"
value={query}
onChange={(e) => 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)';
}}
/>
<div className="absolute flex items-center" style={{ top: '0.5rem', bottom: '0.5rem', right: '0.5rem' }}>
<button
onClick={handleSearch}
style={{
backgroundColor: '#263c6f',
color: '#ffffff',
padding: '0.5rem 1.5rem',
borderRadius: '0.75rem',
fontSize: '0.875rem',
fontWeight: 500,
border: 'none',
cursor: 'pointer',
height: '100%',
transition: 'opacity 0.2s',
}}
onMouseEnter={(e) => (e.currentTarget.style.opacity = '0.9')}
onMouseLeave={(e) => (e.currentTarget.style.opacity = '1')}
>
Search
</button>
</div>
</div>
{/* Filter pills */}
<div className="flex gap-3 mt-4 px-2" style={{ flexWrap: 'wrap', alignItems: 'center' }}>
<span style={{ fontSize: '0.75rem', fontWeight: 500, color: '#6b7280', textTransform: 'uppercase', letterSpacing: '0.05em', marginTop: '0.25rem' }}>
Filters:
</span>
{filters.map((filter) => (
<button
key={filter}
onClick={() => 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}
</button>
))}
</div>
</div>
);
};
export default ResearchSearch;

View File

@@ -0,0 +1,718 @@
/* ============================================================
research.css — Scoped under .research-wrapper
Matches the HTML reference design exactly.
All rules scoped to avoid conflicts with Bootstrap/main.css
============================================================ */
/* --- 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
============================================================ */
.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
============================================================ */
.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
============================================================ */
.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)
============================================================ */
.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)
============================================================ */
.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
============================================================ */
.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);
}

View File

@@ -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 (
<section id="repo-header">
<div className="max-w-[1440px] mx-auto px-6 lg:px-8">
{/* Title row */}
<div className="flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 mb-8 w-full">
<div className="flex-1 max-w-3xl">
<h1>Research Search</h1>
<p>Search across researchers, labs, active projects, and institutes.</p>
</div>
<div className="flex gap-3 shrink-0">
<button className="pub-btn-outline" onClick={() => router.back()}>
<i className="fa-solid fa-arrow-left"></i>
Back to Research
</button>
</div>
</div>
{/* Search bar */}
<div className="pub-search-bar">
<span className="pub-search-icon">
<i className="fa-solid fa-magnifying-glass"></i>
</span>
<input
type="text"
placeholder="Search researchers, labs, projects, and disciplines..."
value={query}
onChange={(e) => setQuery(e.target.value)}
onKeyDown={(e) => e.key === 'Enter' && handleSearch()}
/>
<div className="pub-search-btn-wrap">
<button className="pub-btn-primary" onClick={handleSearch}>Search</button>
</div>
</div>
{/* Filter tabs */}
<div className="flex flex-wrap items-center gap-3 mt-5">
<span className="text-xs font-bold uppercase tracking-widest" style={{ color: 'var(--pub-muted)' }}>
Filter by:
</span>
{FILTERS.map((f) => (
<button
key={f}
onClick={() => setActiveFilter(f)}
className="pub-btn-outline"
style={activeFilter === f ? {
backgroundColor: 'var(--pub-blue-light)',
color: 'var(--pub-blue)',
borderColor: 'transparent',
} : {}}
>
{f}
</button>
))}
</div>
</div>
</section>
);
};
export default ResearchSearchHeader;

View File

@@ -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 (
<div className="pub-results">
{/* Toolbar */}
<div className="pub-results-toolbar">
<p className="pub-results-count">
Showing <strong>110</strong> of <strong>340</strong> results
</p>
<div className="pub-sort-wrap">
<label>Sort by:</label>
<div className="pub-sort-dropdown">
<button
className={`pub-sort-dropdown-btn ${isSortOpen ? 'open' : ''}`}
onClick={() => setIsSortOpen(!isSortOpen)}
>
<span>{selectedSort}</span>
<i className="fa-solid fa-chevron-down"></i>
</button>
{isSortOpen && (
<div className="pub-sort-dropdown-menu">
{SORT_OPTIONS.map((opt) => (
<div
key={opt}
className={`pub-sort-dropdown-option ${selectedSort === opt ? 'selected' : ''}`}
onClick={() => { setSelectedSort(opt); setIsSortOpen(false); }}
>
{opt}
</div>
))}
</div>
)}
</div>
</div>
</div>
{/* Result cards */}
<div className="pub-card-list">
{RESULTS.map((item, idx) => (
<div key={idx} className="pub-card">
<div className="pub-card-top">
<h3 className="pub-card-title">
<a href="#">{item.title}</a>
</h3>
<div className="pub-badges">
<span className={`pub-badge ${item.badgeClass}`}>
<i className={`fa-solid ${item.badgeIcon}`}></i> {item.badgeLabel}
</span>
<span className="pub-badge pub-badge-peer">{item.statusLabel}</span>
</div>
</div>
<div className="pub-card-meta">
<div className="pub-meta-item">
<i className="fa-solid fa-user"></i>
<strong>{item.lead}</strong>
</div>
<div className="pub-meta-item">
<i className="fa-regular fa-clock"></i> {item.updated}
</div>
<div className="pub-meta-item">
<i className="fa-solid fa-building-columns"></i> {item.center}
</div>
</div>
<p className="pub-card-abstract">{item.desc}</p>
<div className="pub-keywords">
<span className="pub-keywords-label">Tags:</span>
{item.tags.map((tag) => (
<span key={tag} className="pub-keyword-tag">{tag}</span>
))}
</div>
{item.progress !== null && (
<div style={{ marginBottom: '1rem' }}>
<div className="flex justify-between text-xs mb-1" style={{ color: 'var(--pub-muted)' }}>
<span>Progress</span>
<span style={{ fontWeight: 600, color: 'var(--pub-text)' }}>{item.progress}%</span>
</div>
<div style={{ width: '100%', height: '6px', backgroundColor: 'var(--pub-bg)', borderRadius: '9999px' }}>
<div style={{ width: `${item.progress}%`, height: '6px', backgroundColor: 'var(--pub-blue)', borderRadius: '9999px' }}></div>
</div>
</div>
)}
<div className="pub-card-actions">
<button className="pub-action-btn pub-action-btn-primary">
<i className="fa-solid fa-arrow-right"></i> View Details
</button>
<button className="pub-action-btn pub-action-btn-secondary">
<i className="fa-regular fa-bookmark"></i> Save
</button>
</div>
</div>
))}
</div>
{/* Pagination */}
<div className="pub-pagination">
<button className="pub-page-btn" disabled>
<i className="fa-solid fa-arrow-left"></i> Previous
</button>
<div className="pub-page-numbers">
<button className="pub-page-num active">1</button>
<button className="pub-page-num">2</button>
<button className="pub-page-num">3</button>
<span className="pub-page-ellipsis">...</span>
<button className="pub-page-num">34</button>
</div>
<button className="pub-page-btn">
Next <i className="fa-solid fa-arrow-right"></i>
</button>
</div>
</div>
);
};
export default ResearchSearchResults;

View File

@@ -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;
}) => (
<div className="pub-accordion-item">
<button
className={`pub-accordion-trigger ${open ? 'open' : ''}`}
onClick={onToggle}
>
{title}
<i className="fa-solid fa-chevron-down"></i>
</button>
<div className={`pub-accordion-body ${open ? 'open' : ''}`}>
{children}
</div>
</div>
);
const ResearchSearchSidebar = () => {
const [isDomainOpen, setIsDomainOpen] = useState(true);
const [isStatusOpen, setIsStatusOpen] = useState(true);
const [isTypeOpen, setIsTypeOpen] = useState(true);
return (
<aside className="pub-sidebar">
<div className="pub-sidebar-inner">
<div className="pub-sidebar-header">
<h2>
<i className="fa-solid fa-filter"></i> Filters
</h2>
<button className="pub-clear-btn">Clear All</button>
</div>
<div className="pub-accordion">
{/* Research Domain */}
<AccordionSection title="Research Domain" open={isDomainOpen} onToggle={() => setIsDomainOpen(!isDomainOpen)}>
<div className="pub-filter-list">
{DOMAINS.map((d, i) => (
<label key={d} className="pub-filter-label">
<input type="checkbox" className="pub-checkbox" defaultChecked={i === 0} />
<span>{d}</span>
</label>
))}
</div>
</AccordionSection>
{/* Project Status */}
<AccordionSection title="Project Status" open={isStatusOpen} onToggle={() => setIsStatusOpen(!isStatusOpen)}>
<div className="pub-filter-list">
{STATUSES.map((s) => (
<label key={s} className="pub-filter-label">
<input type="checkbox" className="pub-checkbox" />
<span>{s}</span>
</label>
))}
</div>
</AccordionSection>
{/* Type */}
<AccordionSection title="Type" open={isTypeOpen} onToggle={() => setIsTypeOpen(!isTypeOpen)}>
<div className="pub-filter-list">
{TYPES.map((t) => (
<label key={t} className="pub-filter-label">
<input type="checkbox" className="pub-checkbox" />
<span>{t}</span>
</label>
))}
</div>
</AccordionSection>
</div>
</div>
</aside>
);
};
export default ResearchSearchSidebar;

View File

@@ -3,13 +3,20 @@
@import "./components/layout/Header/header-responsive.css";
@import "./components/home/home.css";
@import "./components/about/about.css";
@import "./components/research/research.css";
@import "./components/publications/publications.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 {
@@ -17,11 +24,3 @@
@apply border border-[--color-ui-border] bg-white;
}
}
.collapse {
visibility: visible !important;
}
.collapse.show {
visibility: visible;
}

View File

@@ -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";
@@ -12,6 +11,7 @@ export const metadata: Metadata = {
title: "H.A.I Learning",
description: "H.A.I Learning",
};
import "./globals.css";
export default function RootLayout({
children,

20
app/publications/page.tsx Normal file
View File

@@ -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 (
<div className="pub-wrapper">
<PublicationHeader />
<section id="repo-content">
<div className="max-w-[1440px] mx-auto px-6 lg:px-8">
<div className="pub-layout">
<PublicationSidebar />
<PublicationResults />
</div>
</div>
</section>
</div>
);
}

24
app/research/page.tsx Normal file
View File

@@ -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 (
<div className="research-wrapper">
<ResearchHero />
<ResearchSearch />
<ResearchDomains />
<ProjectsAndCenters />
<ResearchResources />
</div>
);
}

View File

@@ -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 (
<div className="pub-wrapper">
<ResearchSearchHeader />
<section id="repo-content">
<div className="max-w-[1440px] mx-auto px-6 lg:px-8">
<div className="pub-layout">
<ResearchSearchSidebar />
<ResearchSearchResults />
</div>
</div>
</section>
</div>
);
}

View File

@@ -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"
}
}

View File

@@ -147,7 +147,7 @@ input {
color: var(--white);
}
h1,
/* h1,
h2,
h3,
h4,
@@ -158,7 +158,7 @@ h6 {
padding: 0;
color: var(--header);
transition: all 0.4s ease-in-out;
}
} */
h1 {
font-size: 72px;

View File

@@ -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%;
}
}
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}
}
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}
}
}

View File

@@ -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);
}

File diff suppressed because it is too large Load Diff

View File

@@ -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;
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -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);
}
}

View File

@@ -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);
}
}
}
}

View File

@@ -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;
}

View File

@@ -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%;
}

View File

@@ -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%;
}
}
}
}

View File

@@ -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;
}

View File

@@ -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);
}
}

View File

@@ -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 <<<<<//

View File

@@ -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);
}
}
}
}
}
}
}

View File

@@ -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;
}
}
}
}
}

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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;
}
}
}
}
}
}
}
}

View File

@@ -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 <<//