diff --git a/assets/css/custom.css b/assets/css/custom.css
new file mode 100644
index 0000000..e326c1a
--- /dev/null
+++ b/assets/css/custom.css
@@ -0,0 +1,176 @@
+/*
+Global Styles
+*/
+body {
+ font-family: 'Lato', sans-serif;
+ color: #2c3e50; /* Midnight Blue */
+ background-color: #ecf0f1; /* Light Gray */
+}
+
+h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
+ font-family: 'Montserrat', sans-serif;
+ font-weight: 700;
+}
+
+.page-section {
+ padding: 6rem 0;
+}
+
+.divider {
+ height: 0.2rem;
+ max-width: 3.25rem;
+ margin: 1.5rem auto;
+ background-color: #18bc9c; /* Turquoise */
+ opacity: 1;
+}
+
+.btn-xl {
+ padding: 1.25rem 2.25rem;
+ font-size: 0.85rem;
+ font-weight: 700;
+ text-transform: uppercase;
+ border: none;
+ border-radius: 10rem;
+}
+
+/* Navigation */
+#mainNav {
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+ background-color: #fff;
+ transition: background-color 0.2s ease;
+}
+
+#mainNav .navbar-brand {
+ font-family: 'Montserrat', sans-serif;
+ font-weight: 700;
+ color: #2c3e50;
+}
+
+#mainNav .nav-link {
+ color: #2c3e50;
+ font-weight: 700;
+ padding: 0.75rem 1rem;
+ letter-spacing: 0.05em;
+}
+
+#mainNav .nav-link:hover, #mainNav .nav-link.active {
+ color: #18bc9c;
+}
+
+
+/* Hero Section */
+.hero-section {
+ padding: 10rem 0;
+ background-color: #2c3e50; /* Midnight Blue */
+ background-image: linear-gradient(135deg, #34495e 0%, #2c3e50 100%);
+ color: white;
+ position: relative;
+}
+
+.hero-heading {
+ font-size: 2.8rem;
+ font-weight: 700;
+}
+
+.hero-subheading {
+ font-size: 1.25rem;
+ font-weight: 300;
+ max-width: 700px;
+}
+
+.btn-accent {
+ background-color: #18bc9c; /* Turquoise */
+ color: white;
+ border-radius: 0.25rem;
+ transition: all 0.3s ease;
+}
+
+.btn-accent:hover {
+ background-color: #15a589;
+ color: white;
+ transform: translateY(-2px);
+ box-shadow: 0 4px 8px rgba(0,0,0,0.1);
+}
+
+/* Why Us Section */
+#why-us .fs-1 {
+ color: #2c3e50 !important;
+}
+
+/* Offers Section */
+.card {
+ border-radius: 0.5rem;
+ transition: all 0.3s ease;
+}
+
+.card:hover {
+ transform: translateY(-5px);
+ box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.1) !important;
+}
+
+.card-featured {
+ border: 2px solid #18bc9c;
+}
+
+/* Products Section */
+.product-placeholder {
+ background-color: #fff;
+ border: 1px dashed #bdc3c7;
+ color: #7f8c8d;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 150px;
+ border-radius: 0.5rem;
+ font-weight: 500;
+ font-family: 'Montserrat', sans-serif;
+}
+
+/* FAQ Section */
+.accordion-item {
+ background-color: #fff;
+ border: 0;
+ border-radius: 0.5rem;
+ margin-bottom: 1rem;
+ box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+}
+.accordion-button {
+ border-radius: 0.5rem;
+ font-weight: 500;
+ font-family: 'Montserrat', sans-serif;
+}
+.accordion-button:not(.collapsed) {
+ color: #18bc9c;
+ background-color: #ecf0f1;
+ box-shadow: none;
+}
+.accordion-button:focus {
+ box-shadow: 0 0 0 0.25rem rgba(24, 188, 156, 0.25);
+}
+
+
+/* Contact Section */
+#contact .form-control {
+ border-radius: 0.25rem;
+}
+#contact .form-control:focus {
+ border-color: #18bc9c;
+ box-shadow: 0 0 0 0.25rem rgba(24, 188, 156, 0.25);
+}
+
+.btn-primary {
+ background-color: #2c3e50;
+ border-color: #2c3e50;
+ border-radius: 0.25rem;
+}
+
+.btn-primary:hover {
+ background-color: #1a252f;
+ border-color: #1a252f;
+}
+
+/* Footer */
+footer.bg-light {
+ background-color: #ffffff !important;
+ border-top: 1px solid #e9ecef;
+}
diff --git a/assets/js/main.js b/assets/js/main.js
new file mode 100644
index 0000000..830c6df
--- /dev/null
+++ b/assets/js/main.js
@@ -0,0 +1,54 @@
+/*!
+* Start Bootstrap - Agency v7.0.11 (https://startbootstrap.com/theme/agency)
+* Copyright 2013-2022 Start Bootstrap
+* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-agency/blob/master/LICENSE)
+*/
+//
+// Scripts
+//
+
+window.addEventListener('DOMContentLoaded', event => {
+
+ // Navbar shrink function
+ var navbarShrink = function () {
+ const navbarCollapsible = document.body.querySelector('#mainNav');
+ if (!navbarCollapsible) {
+ return;
+ }
+ if (window.scrollY === 0) {
+ navbarCollapsible.classList.remove('navbar-shrink')
+ } else {
+ navbarCollapsible.classList.add('navbar-shrink')
+ }
+
+ };
+
+ // Shrink the navbar
+ navbarShrink();
+
+ // Shrink the navbar when page is scrolled
+ document.addEventListener('scroll', navbarShrink);
+
+ // Activate Bootstrap scrollspy on the main nav element
+ const mainNav = document.body.querySelector('#mainNav');
+ if (mainNav) {
+ new bootstrap.ScrollSpy(document.body, {
+ target: '#mainNav',
+ offset: 74,
+ });
+ };
+
+ // Collapse responsive navbar when toggler is visible
+ const navbarToggler = document.body.querySelector('.navbar-toggler');
+ const responsiveNavItems = [].slice.call(
+ document.querySelectorAll('#navbarResponsive .nav-link')
+ );
+ responsiveNavItems.map(function (responsiveNavItem) {
+ responsiveNavItem.addEventListener('click', () => {
+ if (window.getComputedStyle(navbarToggler).display !== 'none') {
+ navbarToggler.click();
+ }
+ });
+ });
+
+});
diff --git a/assets/pasted-20251210-201942-d2c32489.jpg b/assets/pasted-20251210-201942-d2c32489.jpg
new file mode 100644
index 0000000..f337bf1
Binary files /dev/null and b/assets/pasted-20251210-201942-d2c32489.jpg differ
diff --git a/index.php b/index.php
index 7205f3d..23fc552 100644
--- a/index.php
+++ b/index.php
@@ -1,150 +1,297 @@
";
+ $email_body .= "Email: {$email} ";
+ $email_body .= "Message: {$message}";
+
+ $text_body = "Name: {$name}\n";
+ $text_body .= "Email: {$email}\n\n";
+ $text_body .= "Message:\n{$message}";
+
+ $result = MailService::sendMail($to, $subject, $email_body, $text_body, ['reply_to' => $email]);
+
+ if (!empty($result['success'])) {
+ $message_sent = true;
+ } else {
+ $error_message = "Sorry, there was an error sending your message. Please try again later.";
+ // error_log("MailService Error: " . ($result['error'] ?? 'Unknown error'));
+ }
+ }
+}
?>
-
+
-
-
- New Style
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
Analyzing your requirements and generating your website…
-
- Loading…
-
-
= ($_SERVER['HTTP_HOST'] ?? '') === 'appwizzy.com' ? 'AppWizzy' : 'Flatlogic' ?> AI is collecting your requirements and applying the first changes.
-
This page will update automatically as the plan is implemented.
-
Runtime: PHP = htmlspecialchars($phpVersion) ?> — UTC = htmlspecialchars($now) ?>
-
-
-
- Page updated: = htmlspecialchars($now) ?> (UTC)
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Innovative Packaging, Perfectly Crafted
+
From concept to creation, we deliver custom packaging solutions that protect your products and elevate your brand.
+
Request a Free Quote
+
+
+
+
+
+
+
Why Choose Us?
+
+
+
+
+
+
Dynamic Design
+
Use our tools to design your vision or work with our team for something unique.
+
+
+
+
+
+
Precision Engineering
+
Every fold, cut, and print is managed with state-of-the-art precision.
+
+
+
+
+
+
Reliable Delivery
+
Instant lead times and transparent tracking, from our factory to your door.
+
+
+
+
+
+
Dedicated Support
+
Our sales and support teams are here to ensure your success.
+
+
+
+
+
+
+
+
+
+
Our Partnership Offers
+
+
We also build websites for companies, with unique partnership models.
+
+
+
+
+
Option A: Freemium
+
+
50% de économies et 50% des bénéfices sur le chiffre d'affaire qui vient de notre réseau.
+
+
+
+
+
+
+
Option B: Performance
+
+
Dépenses=X, prix de l'abonnement 0,5% de X + variable sur la performance commerciale 40% sur le bénéfice généré.
+
+
+
+
+
+
+
Option C: Subscription
+
+
1,2% de X + variable sur la performance 30% sur le bénéfice généré.
+
+
+
+
+
+
+
+
+
+
+
Our Products
+
+
A glimpse into the customizable packaging solutions we offer. The full interactive catalog is coming soon.
+
+
+
+
+
+
+
+
Frequently Asked Questions
+
+
+
+
+
+
Our minimum order quantity varies depending on the product complexity and material. Please contact us for a specific quote.
+
+
+
+
+
+
Yes! Our upcoming online design tool will allow you to upload artwork, position it on a 3D mockup, and see a live preview before you order.
+
+
+
+
+
+
Lead times are calculated instantly based on your design, materials, and quantity. You will see an estimated delivery date before you finalize your order.
+
+
+
+
+
+
+
+
+
+
+
+
Let's Get In Touch!
+
+
Ready to start your next project with us? Send us a messages and we will get back to you as soon as possible!
+
+
+
+
+
+
+ Thank you! Your message has been sent successfully.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/login.php b/login.php
new file mode 100644
index 0000000..235eb80
--- /dev/null
+++ b/login.php
@@ -0,0 +1,116 @@
+prepare("SELECT * FROM users WHERE username = ?");
+ $stmt->execute([$username]);
+ $user = $stmt->fetch();
+
+ if ($user && password_verify($password, $user['password_hash'])) {
+ $_SESSION['user_id'] = $user['id'];
+ $_SESSION['username'] = $user['username'];
+ $_SESSION['role'] = $user['role'];
+ header("Location: index.php");
+ exit;
+ } else {
+ $error = 'Invalid username or password.';
+ }
+ } catch (PDOException $e) {
+ $error = "Database error: " . $e->getMessage();
+ }
+ }
+}
+?>
+
+
+
+
+
+ Login
+
+
+
+
+
+
+
Login
+
+
+ Username
+
+
+
+ Password
+
+
+ Login
+
+
+
+
+
+
+
diff --git a/logout.php b/logout.php
new file mode 100644
index 0000000..766a593
--- /dev/null
+++ b/logout.php
@@ -0,0 +1,6 @@
+