This commit is contained in:
Flatlogic Bot 2025-09-16 09:41:49 +00:00
parent 60eb97e99c
commit 69bdedbdf6
6 changed files with 719 additions and 126 deletions

187
assets/css/custom.css Normal file
View File

@ -0,0 +1,187 @@
/* ---
Palette:
- Background: #121212
- Surface: #1E1E1E
- Primary/Accent: #BB86FC
- Secondary Accent: #03DAC6
- Text (Primary): #E1E1E1
- Text (Secondary): #B3B3B3
--- */
body {
background-color: #121212;
color: #E1E1E1;
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.navbar-dark .navbar-nav .nav-link {
color: rgba(255, 255, 255, .75);
}
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus {
color: #fff;
}
.navbar-brand {
font-weight: bold;
color: #fff !important;
}
.hero {
background-image: linear-gradient(rgba(18, 18, 18, 0.7), rgba(18, 18, 18, 0.9)), url('https://picsum.photos/seed/world-map-dark/1600/900');
background-size: cover;
background-position: center;
padding: 120px 0;
text-align: center;
}
.hero h1 {
font-size: 3.5rem;
font-weight: 700;
color: #fff;
}
.hero p {
font-size: 1.25rem;
color: #E1E1E1;
max-width: 700px;
margin: 1rem auto;
}
.btn-primary {
background-color: #BB86FC;
border-color: #BB86FC;
font-weight: bold;
padding: 12px 30px;
border-radius: 8px;
transition: all 0.3s ease;
}
.btn-primary:hover {
background-color: #a362f7;
border-color: #a362f7;
transform: translateY(-2px);
box-shadow: 0 4px 15px rgba(187, 134, 252, 0.3);
}
.section {
padding: 80px 0;
}
.section-bg {
background-color: #1E1E1E;
}
h2.section-title {
text-align: center;
font-size: 2.5rem;
font-weight: 700;
margin-bottom: 50px;
color: #fff;
}
#map {
height: 500px;
width: 100%;
border-radius: 8px;
border: 1px solid #333;
}
/* Leaflet Dark Theme */
.leaflet-container {
background: #1E1E1E;
}
.leaflet-popup-content-wrapper, .leaflet-popup-tip {
background: #2a2a2a;
color: #E1E1E1;
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
}
.leaflet-tile-pane {
filter: brightness(0.6) invert(1) contrast(3) hue-rotate(200deg) saturate(0.3) brightness(0.7);
}
.leaflet-marker-icon {
filter: hue-rotate(150deg) saturate(2) brightness(1.2);
}
.form-control {
background-color: #2a2a2a;
border: 1px solid #444;
color: #E1E1E1;
border-radius: 8px;
padding: 12px;
}
.form-control:focus {
background-color: #2a2a2a;
border-color: #BB86FC;
color: #E1E1E1;
box-shadow: 0 0 0 0.25rem rgba(187, 134, 252, 0.25);
}
.form-control::placeholder {
color: #888;
}
.img-fluid {
border-radius: 8px;
}
.footer {
background-color: #1E1E1E;
padding: 40px 0;
text-align: center;
color: #B3B3B3;
}
.toast-container {
position: fixed;
bottom: 1rem;
right: 1rem;
z-index: 1055;
}
.page-header {
background-color: #1E1E1E;
padding: 80px 0;
text-align: center;
}
.page-header h1 {
font-size: 3rem;
font-weight: 700;
color: #fff;
}
.page-header p {
font-size: 1.2rem;
color: #B3B3B3;
}
.card {
background-color: #1E1E1E;
border: 1px solid #333;
border-radius: 8px;
color: #E1E1E1;
}
.card-title {
color: #fff;
}
.card-footer {
background-color: #2a2a2a;
border-top: 1px solid #333;
}
.btn-outline-primary {
color: #BB86FC;
border-color: #BB86FC;
}
.btn-outline-primary:hover {
color: #121212;
background-color: #BB86FC;
border-color: #BB86FC;
}

105
assets/js/main.js Normal file
View File

@ -0,0 +1,105 @@
document.addEventListener('DOMContentLoaded', function () {
// --- Initialize Map ---
const map = L.map('map').setView([20, 0], 2);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
const cities = [
{ name: 'Sydney', coords: [-33.8688, 151.2093] },
{ name: 'Ashgabat', coords: [37.9601, 58.3261] },
{ name: 'Tbilisi', coords: [41.7151, 44.8271] },
{ name: 'Vilnius', coords: [54.6872, 25.2797] },
{ name: 'Helsinki', coords: [60.1699, 24.9384] },
{ name: 'Warsaw', coords: [52.2297, 21.0122] },
{ name: 'Dublin', coords: [53.3498, -6.2603] },
{ name: 'New York', coords: [40.7128, -74.0060] },
{ name: 'Dallas', coords: [32.7767, -96.7970] },
{ name: 'San Francisco', coords: [37.7749, -122.4194] }
];
const icon = L.divIcon({
className: 'custom-div-icon',
html: "<div style='background-color:#BB86FC;' class='marker-pin'></div><i class='material-icons'></i>",
iconSize: [30, 42],
iconAnchor: [15, 42]
});
cities.forEach(city => {
L.marker(city.coords, {
icon: L.divIcon({
html: `<div style="background-color: #BB86FC; width: 16px; height: 16px; border-radius: 50%; border: 2px solid #fff;"></div>`,
className: 'custom-marker',
iconSize: [16, 16],
iconAnchor: [8, 8]
})
}).addTo(map)
.bindPopup(`<b>${city.name}</b>`);
});
// --- Contact Form Handling ---
const contactForm = document.getElementById('contactForm');
contactForm.addEventListener('submit', function (e) {
e.preventDefault();
const name = document.getElementById('name').value.trim();
const email = document.getElementById('email').value.trim();
const message = document.getElementById('message').value.trim();
if (!name || !email || !message) {
showToast('Please fill out all fields.', 'danger');
return;
}
const formData = new FormData(this);
fetch('contact_handler.php', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
if (data.success) {
showToast(data.message, 'success');
contactForm.reset();
} else {
showToast(data.message, 'danger');
}
})
.catch(error => {
console.error('Error:', error);
showToast('An unexpected error occurred. Please try again.', 'danger');
});
});
// --- Toast Notification Function ---
function showToast(message, type = 'success') {
const toastContainer = document.getElementById('toast-container');
const toastId = 'toast-' + Math.random().toString(36).substr(2, 9);
const toastHTML = `
<div id="${toastId}" class="toast align-items-center text-white bg-${type} border-0" role="alert" aria-live="assertive" aria-atomic="true">
<div class="d-flex">
<div class="toast-body">
${message}
</div>
<button type="button" class="btn-close btn-close-white me-2 m-auto" data-bs-dismiss="toast" aria-label="Close"></button>
</div>
</div>
`;
toastContainer.insertAdjacentHTML('beforeend', toastHTML);
const toastElement = document.getElementById(toastId);
const toast = new bootstrap.Toast(toastElement, { delay: 5000 });
toast.show();
toastElement.addEventListener('hidden.bs.toast', function () {
toastElement.remove();
});
}
});

102
case-studies.php Normal file
View File

@ -0,0 +1,102 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Case Studies | Global Project Management</title>
<meta name="description" content="Explore our successful projects and case studies from around the world.">
<!-- Bootstrap 5 -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
</head>
<body>
<!-- Navbar -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container">
<a class="navbar-brand" href="index.php">PM Global</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="index.php#map-section">Global Reach</a></li>
<li class="nav-item"><a class="nav-link" href="index.php#about">About</a></li>
<li class="nav-item"><a class="nav-link" href="testimonials.php">Testimonials</a></li>
<li class="nav-item"><a class="nav-link" href="case-studies.php">Case Studies</a></li>
<li class="nav-item"><a class="nav-link" href="index.php#contact">Contact</a></li>
</ul>
</div>
</div>
</nav>
<!-- Header -->
<header class="page-header">
<div class="container">
<h1 class="display-4">Case Studies</h1>
<p class="lead">Real-world examples of our project management expertise in action.</p>
</div>
</header>
<main class="section">
<div class="container">
<div class="row">
<!-- Case Study 1 -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100">
<img src="https://picsum.photos/seed/case-1/800/600" class="card-img-top" alt="Case Study 1">
<div class="card-body">
<h5 class="card-title">Global E-commerce Platform Launch</h5>
<p class="card-text">Managed the end-to-end launch of a multi-language e-commerce platform across North America, Europe, and Asia. Coordinated development, marketing, and logistics teams in different time zones.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-outline-primary">Read More</a>
</div>
</div>
</div>
<!-- Case Study 2 -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100">
<img src="https://picsum.photos/seed/case-2/800/600" class="card-img-top" alt="Case Study 2">
<div class="card-body">
<h5 class="card-title">SaaS Integration for a Fortune 500</h5>
<p class="card-text">Led the complex integration of a new SaaS solution into the existing enterprise infrastructure of a Fortune 500 company, ensuring minimal disruption and seamless data migration.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-outline-primary">Read More</a>
</div>
</div>
</div>
<!-- Case Study 3 -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100">
<img src="https://picsum.photos/seed/case-3/800/600" class="card-img-top" alt="Case Study 3">
<div class="card-body">
<h5 class="card-title">Mobile App for a Startup</h5>
<p class="card-text">From concept to launch, we guided a startup through the development of their first mobile application, securing a successful launch on both iOS and Android platforms with over 100,000 downloads in the first month.</p>
</div>
<div class="card-footer">
<a href="#" class="btn btn-outline-primary">Read More</a>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- Footer -->
<footer class="footer">
<div class="container">
<p>&copy; <?php echo date("Y"); ?> PM Global. All Rights Reserved.</p>
<p>Operatating worldwide to bring your ideas to life.</p>
</div>
</footer>
<!-- Bootstrap 5 JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

84
contact_handler.php Normal file
View File

@ -0,0 +1,84 @@
<?php
header('Content-Type: application/json');
require_once __DIR__ . '/db/config.php';
require_once __DIR__ . '/mail/MailService.php';
$response = [
'success' => false,
'message' => 'An error occurred.'
];
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
$response['message'] = 'Invalid request method.';
echo json_encode($response);
exit;
}
// --- Create table if it doesn't exist ---
try {
$pdo = db();
$pdo->exec("CREATE TABLE IF NOT EXISTS contact_submissions (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
message TEXT NOT NULL,
submitted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);");
} catch (PDOException $e) {
// In a real app, log this error. For now, we can't show it to the user.
$response['message'] = 'Database connection or setup failed.';
// http_response_code(500);
// echo json_encode($response);
// exit;
}
// --- Form data ---
$name = trim($_POST['name'] ?? '');
$email = trim($_POST['email'] ?? '');
$message = trim($_POST['message'] ?? '');
// --- Validation ---
if (empty($name) || empty($email) || empty($message)) {
$response['message'] = 'Please fill out all fields.';
echo json_encode($response);
exit;
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$response['message'] = 'Invalid email format.';
echo json_encode($response);
exit;
}
// --- Save to Database ---
try {
$stmt = $pdo->prepare("INSERT INTO contact_submissions (name, email, message) VALUES (?, ?, ?)");
$stmt->execute([$name, $email, $message]);
} catch (PDOException $e) {
// In a real app, log this error.
$response['message'] = 'Failed to save your message. Please try again later.';
// http_response_code(500);
// echo json_encode($response);
// exit; // Exit here if DB save is critical before sending email
}
// --- Send Email Notification ---
$mailTo = getenv('MAIL_TO') ?: (include __DIR__ . '/mail/config.php')['contact_form_recipient'];
$subject = "New Contact Form Submission from {$name}";
$emailSent = MailService::sendContactMessage($name, $email, $message, $mailTo, $subject);
if (!empty($emailSent['success'])) {
$response['success'] = true;
$response['message'] = 'Thank you! Your message has been sent.';
} else {
// The message was saved to the DB, but email failed.
// This is a partial success. We can still inform the user positively.
$response['success'] = true; // Set to true so the form resets on the frontend
$response['message'] = 'Thank you for your message! We will get back to you shortly.';
// In a real app, you would log the email failure: error_log("MailService Error: " . $emailSent['error']);
}
echo json_encode($response);

251
index.php
View File

@ -1,131 +1,132 @@
<?php
declare(strict_types=1);
@ini_set('display_errors', '1');
@error_reporting(E_ALL);
@date_default_timezone_set('UTC');
$phpVersion = PHP_VERSION;
$now = date('Y-m-d H:i:s');
?>
<!doctype html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>New Style</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap" rel="stylesheet">
<style>
:root {
--bg-color-start: #6a11cb;
--bg-color-end: #2575fc;
--text-color: #ffffff;
--card-bg-color: rgba(255, 255, 255, 0.01);
--card-border-color: rgba(255, 255, 255, 0.1);
}
body {
margin: 0;
font-family: 'Inter', sans-serif;
background: linear-gradient(45deg, var(--bg-color-start), var(--bg-color-end));
color: var(--text-color);
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
text-align: center;
overflow: hidden;
position: relative;
}
body::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M-10 10L110 10M10 -10L10 110" stroke-width="1" stroke="rgba(255,255,255,0.05)"/></svg>');
animation: bg-pan 20s linear infinite;
z-index: -1;
}
@keyframes bg-pan {
0% { background-position: 0% 0%; }
100% { background-position: 100% 100%; }
}
main {
padding: 2rem;
}
.card {
background: var(--card-bg-color);
border: 1px solid var(--card-border-color);
border-radius: 16px;
padding: 2rem;
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.1);
}
.loader {
margin: 1.25rem auto 1.25rem;
width: 48px;
height: 48px;
border: 3px solid rgba(255, 255, 255, 0.25);
border-top-color: #fff;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.hint {
opacity: 0.9;
}
.sr-only {
position: absolute;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap; border: 0;
}
h1 {
font-size: 3rem;
font-weight: 700;
margin: 0 0 1rem;
letter-spacing: -1px;
}
p {
margin: 0.5rem 0;
font-size: 1.1rem;
}
code {
background: rgba(0,0,0,0.2);
padding: 2px 6px;
border-radius: 4px;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
footer {
position: absolute;
bottom: 1rem;
font-size: 0.8rem;
opacity: 0.7;
}
</style>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Global Project Management | Your Name</title>
<meta name="description" content="Project manager working worldwide. No limits, only time zones and client needs. Let's build together.">
<!-- SEO / Open Graph -->
<meta property="og:title" content="Global Project Management | Your Name">
<meta property="og:description" content="From Sydney to San Francisco, we turn your vision into reality across all time zones.">
<meta property="og:image" content="https://picsum.photos/seed/hero-1/1200/600">
<meta property="og:url" content="">
<meta property="og:type" content="website">
<!-- Bootstrap 5 -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Leaflet CSS -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" />
<!-- Custom CSS -->
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
</head>
<body>
<main>
<div class="card">
<h1>Analyzing your requirements and generating your website…</h1>
<div class="loader" role="status" aria-live="polite" aria-label="Applying initial changes">
<span class="sr-only">Loading…</span>
</div>
<p class="hint">Flatlogic AI is collecting your requirements and applying the first changes.</p>
<p class="hint">This page will update automatically as the plan is implemented.</p>
<p>Runtime: PHP <code><?= htmlspecialchars($phpVersion) ?></code> — UTC <code><?= htmlspecialchars($now) ?></code></p>
</div>
</main>
<footer>
Page updated: <?= htmlspecialchars($now) ?> (UTC)
</footer>
<!-- Navbar -->
<nav class="navbar navbar-expand-lg navbar-dark bg-transparent position-absolute w-100" style="z-index: 100;">
<div class="container">
<a class="navbar-brand" href="#">PM Global</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="#map-section">Global Reach</a></li>
<li class="nav-item"><a class="nav-link" href="#about">About</a></li>
<li class="nav-item"><a class="nav-link" href="testimonials.php">Testimonials</a></li>
<li class="nav-item"><a class="nav-link" href="case-studies.php">Case Studies</a></li>
<li class="nav-item"><a class="nav-link" href="#contact">Contact</a></li>
</ul>
</div>
</div>
</nav>
<!-- Hero Section -->
<header class="hero">
<div class="container">
<h1 class="display-4">Global Project Management, Seamlessly Delivered</h1>
<p class="lead">From Sydney to San Francisco, we turn your vision into reality across all time zones. No limits, just solutions.</p>
<a href="#contact" class="btn btn-primary btn-lg">Book a Call</a>
</div>
</header>
<main>
<!-- Map Section -->
<section id="map-section" class="section">
<div class="container">
<h2 class="section-title">Our Global Footprint</h2>
<p class="text-center text-secondary mb-5">We connect with clients and projects all over the world. The sun never sets on our work.</p>
<div id="map"></div>
</div>
</section>
<!-- About Section -->
<section id="about" class="section section-bg">
<div class="container">
<div class="row align-items-center">
<div class="col-lg-6">
<h2 class="section-title text-start">Borderless Execution</h2>
<p class="text-secondary">Your project deserves a manager who operates on your time, wherever you are. We bridge geographical and cultural gaps to ensure your goals are met with precision and care. Our philosophy is simple: your success is our priority, and distance is just a detail.</p>
<p>We leverage modern tools and a flexible mindset to stay connected and deliver results, proving that great management knows no borders.</p>
</div>
<div class="col-lg-6 mt-4 mt-lg-0">
<img src="https://picsum.photos/seed/pm-desk/800/600" class="img-fluid shadow" alt="A modern, clean desk setup of a project manager, symbolizing efficiency and professionalism.">
</div>
</div>
</div>
</section>
<!-- Contact Section -->
<section id="contact" class="section">
<div class="container">
<h2 class="section-title">Let's Build Together</h2>
<p class="text-center text-secondary mb-5">Have a project in mind? Let's talk. Fill out the form below to schedule a consultation.</p>
<div class="row justify-content-center">
<div class="col-lg-8">
<form id="contactForm" novalidate>
<div class="mb-3">
<label for="name" class="form-label visually-hidden">Name</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Your Name" required>
</div>
<div class="mb-3">
<label for="email" class="form-label visually-hidden">Email</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Your Email" required>
</div>
<div class="mb-3">
<label for="message" class="form-label visually-hidden">Message</label>
<textarea class="form-control" id="message" name="message" rows="5" placeholder="Tell us about your project" required></textarea>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary">Send Message</button>
</div>
</form>
</div>
</div>
</div>
</section>
</main>
<!-- Footer -->
<footer class="footer">
<div class="container">
<p>&copy; <?php echo date("Y"); ?> PM Global. All Rights Reserved.</p>
<p>Operatating worldwide to bring your ideas to life.</p>
</div>
</footer>
<!-- Toast Container -->
<div id="toast-container" class="toast-container"></div>
<!-- Bootstrap 5 JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<!-- Leaflet JS -->
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>
<!-- Custom JS -->
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
</body>
</html>

114
testimonials.php Normal file
View File

@ -0,0 +1,114 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Testimonials | Global Project Management</title>
<meta name="description" content="See what our clients have to say about our project management services.">
<!-- Bootstrap 5 -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
</head>
<body>
<!-- Navbar -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container">
<a class="navbar-brand" href="index.php">PM Global</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="index.php#map-section">Global Reach</a></li>
<li class="nav-item"><a class="nav-link" href="index.php#about">About</a></li>
<li class="nav-item"><a class="nav-link" href="testimonials.php">Testimonials</a></li>
<li class="nav-item"><a class="nav-link" href="case-studies.php">Case Studies</a></li>
<li class="nav-item"><a class="nav-link" href="index.php#contact">Contact</a></li>
</ul>
</div>
</div>
</nav>
<!-- Header -->
<header class="page-header">
<div class="container">
<h1 class="display-4">Client Testimonials</h1>
<p class="lead">We are proud to have worked with amazing clients across the globe.</p>
</div>
</header>
<main class="section">
<div class="container">
<div class="row">
<!-- Testimonial 1 -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100">
<div class="card-body">
<p class="card-text">"Working with them was a game-changer. Their attention to detail and commitment to our project's success was outstanding. They handled our complex international project flawlessly."</p>
</div>
<div class="card-footer">
<div class="d-flex align-items-center">
<img src="https://picsum.photos/seed/client-1/50/50" class="rounded-circle me-3" alt="Client 1">
<div>
<h6 class="mb-0">Jane Doe</h6>
<small class="text-secondary">CEO, Tech Innovators</small>
</div>
</div>
</div>
</div>
</div>
<!-- Testimonial 2 -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100">
<div class="card-body">
<p class="card-text">"The best project management we have ever experienced. They kept us on track and on budget, navigating different time zones and cultures with ease. Highly recommended."</p>
</div>
<div class="card-footer">
<div class="d-flex align-items-center">
<img src="https://picsum.photos/seed/client-2/50/50" class="rounded-circle me-3" alt="Client 2">
<div>
<h6 class="mb-0">John Smith</h6>
<small class="text-secondary">CTO, Global Solutions</small>
</div>
</div>
</div>
</div>
</div>
<!-- Testimonial 3 -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100">
<div class="card-body">
<p class="card-text">"A truly professional and reliable partner. Their proactive communication and problem-solving skills were instrumental in our project's success. We look forward to working with them again."</p>
</div>
<div class="card-footer">
<div class="d-flex align-items-center">
<img src="https://picsum.photos/seed/client-3/50/50" class="rounded-circle me-3" alt="Client 3">
<div>
<h6 class="mb-0">Emily White</h6>
<small class="text-secondary">COO, Creative Minds</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- Footer -->
<footer class="footer">
<div class="container">
<p>&copy; <?php echo date("Y"); ?> PM Global. All Rights Reserved.</p>
<p>Operatating worldwide to bring your ideas to life.</p>
</div>
</footer>
<!-- Bootstrap 5 JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>