From e544720900f37c1fc3d90c40cb6b06ba173de61a Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 20:59:37 +0200
Subject: [PATCH 01/16] Update webhosting configuration and content: Enhanced
product descriptions, pricing, and specifications for webhosting packages.
Transitioned from cPanel/Webmin to Plesk Webhosting, and updated PHP version
to 8.4. Improved clarity and appeal of offerings in both backend
configuration and public-facing web page.
---
backend/config/products-config.php | 72 +++++++++++++++++-------------
public/webhosting.php | 4 +-
2 files changed, 44 insertions(+), 32 deletions(-)
diff --git a/backend/config/products-config.php b/backend/config/products-config.php
index 74e128a..3ae4ba6 100644
--- a/backend/config/products-config.php
+++ b/backend/config/products-config.php
@@ -322,50 +322,56 @@ $PRODUCTS['mail-gateway'] = [
$PRODUCTS['webhosting'] = [
'name' => 'Webhosting',
'short_name' => 'Webhosting',
- 'description' => 'Klassisches Hosting mit PHP, MySQL und SSL',
- 'min_price' => '1,99',
+ 'description' => 'Klassisches Hosting mit PHP, MySQL und SSL. WordPress-ready mit Plesk Webhosting.',
+ 'min_price' => '2,99',
'hero_highlight' => 'Alles für Ihre Website',
'hero_description' => 'Klassisches Webhosting mit allem, was Sie für eine erfolgreiche Website benötigen. PHP, MySQL, SSL-Zertifikate und E-Mail-Postfächer - alles inklusive.',
'packages_title' => 'Webhosting Pakete',
'packages_description' => 'Von der ersten Website bis zum professionellen Online-Shop',
'cta_title' => 'Bereit für Ihr Webhosting?',
'cta_description' => 'Starten Sie noch heute mit professionellem Webhosting',
- 'page_title' => 'Webhosting - Klassisches Hosting für Websites | HexaHost.de',
- 'page_description' => 'Webhosting mit PHP, MySQL und SSL-Zertifikaten. Klassisches Hosting für Websites ab 1,99€/Monat bei HexaHost.de',
+ 'page_title' => 'Webhosting - Klassisches Hosting für Websites - WordPress-ready | HexaHost.de',
+ 'page_description' => 'Webhosting mit PHP, MySQL und SSL-Zertifikaten. Klassisches Hosting für Websites - WordPress-ready ab 2,99€/Monat bei HexaHost.de',
'packages' => [
'starter' => [
'name' => 'Webhosting Starter',
- 'price' => '1,99',
+ 'price' => '2,99',
'featured' => false,
'specs' => [
- ['label' => 'Webspace', 'value' => '5 GB'],
+ ['label' => 'Webspace', 'value' => '10 GB'],
['label' => 'Domains', 'value' => '1'],
- ['label' => 'E-Mail-Postfächer', 'value' => '5'],
- ['label' => 'Datenbanken', 'value' => '1 MySQL'],
- ['label' => 'Traffic', 'value' => '10 GB'],
+ ['label' => 'Subdomains', 'value' => '5'],
+ ['label' => 'Domain Aliase', 'value' => '2'],
+ ['label' => 'E-Mail-Postfächer', 'value' => '10'],
+ ['label' => 'Datenbanken', 'value' => '2 MySQL'],
+ ['label' => 'Traffic', 'value' => '100 GB'],
],
'features' => [
- 'cPanel/Webmin',
- 'PHP 8.1',
+ 'Plesk Webhosting',
+ 'PHP 8.4',
+ 'Git, WP Toolkit, Composer',
'SSL-Zertifikat',
'E-Mail-Postfächer',
- 'MySQL Datenbank',
+ 'MySQL Datenbanken',
],
],
'business' => [
'name' => 'Webhosting Business',
- 'price' => '4,99',
+ 'price' => '7,99',
'featured' => true,
'specs' => [
- ['label' => 'Webspace', 'value' => '20 GB'],
- ['label' => 'Domains', 'value' => '5'],
- ['label' => 'E-Mail-Postfächer', 'value' => '25'],
+ ['label' => 'Webspace', 'value' => '30 GB'],
+ ['label' => 'Domains Inkl.', 'value' => '1'],
+ ['label' => 'Subdomains', 'value' => '10'],
+ ['label' => 'Domain Aliase', 'value' => '2'],
+ ['label' => 'E-Mail-Postfächer', 'value' => '20'],
['label' => 'Datenbanken', 'value' => '5 MySQL'],
- ['label' => 'Traffic', 'value' => '50 GB'],
+ ['label' => 'Traffic', 'value' => '100 GB'],
],
'features' => [
- 'cPanel/Webmin',
- 'PHP 8.1',
+ 'Plesk Webhosting',
+ 'PHP 8.4',
+ 'Git, WP Toolkit, Composer',
'SSL-Zertifikat',
'E-Mail-Postfächer',
'MySQL Datenbanken',
@@ -378,14 +384,17 @@ $PRODUCTS['webhosting'] = [
'featured' => false,
'specs' => [
['label' => 'Webspace', 'value' => '50 GB'],
- ['label' => 'Domains', 'value' => 'Unbegrenzt'],
- ['label' => 'E-Mail-Postfächer', 'value' => '100'],
- ['label' => 'Datenbanken', 'value' => 'Unbegrenzt'],
- ['label' => 'Traffic', 'value' => '200 GB'],
+ ['label' => 'Domains Inkl.', 'value' => '3'],
+ ['label' => 'Subdomains', 'value' => 'unbegrenzt'],
+ ['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
+ ['label' => 'E-Mail-Postfächer', 'value' => '20'],
+ ['label' => 'Datenbanken', 'value' => '20'],
+ ['label' => 'Traffic', 'value' => '100 GB'],
],
'features' => [
- 'cPanel/Webmin',
- 'PHP 8.1',
+ 'Plesk Webhosting',
+ 'PHP 8.4',
+ 'Git, WP Toolkit, Composer',
'SSL-Zertifikat',
'E-Mail-Postfächer',
'MySQL Datenbanken',
@@ -399,14 +408,17 @@ $PRODUCTS['webhosting'] = [
'featured' => false,
'specs' => [
['label' => 'Webspace', 'value' => '100 GB'],
- ['label' => 'Domains', 'value' => 'Unbegrenzt'],
- ['label' => 'E-Mail-Postfächer', 'value' => 'Unbegrenzt'],
+ ['label' => 'Domains Inkl.', 'value' => '3'],
+ ['label' => 'Subdomains', 'value' => 'unbegrenzt'],
+ ['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
+ ['label' => 'E-Mail-Postfächer', 'value' => '100'],
['label' => 'Datenbanken', 'value' => 'Unbegrenzt'],
- ['label' => 'Traffic', 'value' => '500 GB'],
+ ['label' => 'Traffic', 'value' => '1 TB'],
],
'features' => [
- 'cPanel/Webmin',
- 'PHP 8.1',
+ 'Plesk Webhosting',
+ 'PHP 8.4',
+ 'Git, WP Toolkit, Composer',
'SSL-Zertifikat',
'E-Mail-Postfächer',
'MySQL Datenbanken',
diff --git a/public/webhosting.php b/public/webhosting.php
index 86c2bc7..b4f521e 100644
--- a/public/webhosting.php
+++ b/public/webhosting.php
@@ -95,8 +95,8 @@ includeHeader($page_title, $page_description, $current_page);
-
cPanel/Webmin
- Benutzerfreundliche Verwaltungsoberfläche für einfache Website-Verwaltung und E-Mail-Konfiguration.
+ Plesk Webhosting
+ Plesk Webhosting ist eine benutzerfreundliche Verwaltungsoberfläche für einfache Website-Verwaltung und E-Mail-Konfiguration.
From e5402189ea52a17d52c5a24acf128a90e0cea234 Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 21:01:10 +0200
Subject: [PATCH 02/16] Update webhosting configuration: Specify database type
in product details by changing 'Datenbanken' value to '20 MySQL' for improved
clarity in offerings.
---
backend/config/products-config.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/backend/config/products-config.php b/backend/config/products-config.php
index 3ae4ba6..b088748 100644
--- a/backend/config/products-config.php
+++ b/backend/config/products-config.php
@@ -388,7 +388,7 @@ $PRODUCTS['webhosting'] = [
['label' => 'Subdomains', 'value' => 'unbegrenzt'],
['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
['label' => 'E-Mail-Postfächer', 'value' => '20'],
- ['label' => 'Datenbanken', 'value' => '20'],
+ ['label' => 'Datenbanken', 'value' => '20 MySQL'],
['label' => 'Traffic', 'value' => '100 GB'],
],
'features' => [
From b40ad53d9ccd34373bb06efa83d966c959376474 Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 21:01:59 +0200
Subject: [PATCH 03/16] Update webhosting configuration: Changed 'Domains
Inkl.' value from '3' to '1' to accurately reflect product offerings and
specifications.
---
backend/config/products-config.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/backend/config/products-config.php b/backend/config/products-config.php
index b088748..7f6de67 100644
--- a/backend/config/products-config.php
+++ b/backend/config/products-config.php
@@ -384,7 +384,7 @@ $PRODUCTS['webhosting'] = [
'featured' => false,
'specs' => [
['label' => 'Webspace', 'value' => '50 GB'],
- ['label' => 'Domains Inkl.', 'value' => '3'],
+ ['label' => 'Domains Inkl.', 'value' => '1'],
['label' => 'Subdomains', 'value' => 'unbegrenzt'],
['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
['label' => 'E-Mail-Postfächer', 'value' => '20'],
From ab81d1c49fdbf027c838d67e4e8f25e0d24cf48a Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 21:02:52 +0200
Subject: [PATCH 04/16] Update webhosting configuration: Adjusted price for
'Webhosting Professional' from '9,99' to '13,99' to reflect updated pricing
strategy.
---
backend/config/products-config.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/backend/config/products-config.php b/backend/config/products-config.php
index 7f6de67..3cb96e1 100644
--- a/backend/config/products-config.php
+++ b/backend/config/products-config.php
@@ -380,7 +380,7 @@ $PRODUCTS['webhosting'] = [
],
'professional' => [
'name' => 'Webhosting Professional',
- 'price' => '9,99',
+ 'price' => '13,99',
'featured' => false,
'specs' => [
['label' => 'Webspace', 'value' => '50 GB'],
From 55f9fdd9570fe5406029b170967979f809de89c2 Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 21:04:21 +0200
Subject: [PATCH 05/16] Update products configuration: Removed outdated
features from 'mail-gateway' offerings, including email archiving and
calendar & contacts, to streamline product details and improve clarity.
---
backend/config/products-config.php | 8 --------
1 file changed, 8 deletions(-)
diff --git a/backend/config/products-config.php b/backend/config/products-config.php
index 3cb96e1..f65934a 100644
--- a/backend/config/products-config.php
+++ b/backend/config/products-config.php
@@ -265,8 +265,6 @@ $PRODUCTS['mail-gateway'] = [
'Webmail',
'IMAP/POP3',
'SSL/TLS Verschlüsselung',
- 'E-Mail Archivierung (30 Tage)',
- 'Kalender & Kontakte',
],
],
'professional' => [
@@ -285,9 +283,6 @@ $PRODUCTS['mail-gateway'] = [
'Webmail',
'IMAP/POP3',
'SSL/TLS Verschlüsselung',
- 'E-Mail Archivierung (1 Jahr)',
- 'Kalender & Kontakte',
- 'ActiveSync für Mobile',
],
],
'enterprise' => [
@@ -306,9 +301,6 @@ $PRODUCTS['mail-gateway'] = [
'Webmail',
'IMAP/POP3',
'SSL/TLS Verschlüsselung',
- 'E-Mail Archivierung (10 Jahre)',
- 'Kalender & Kontakte',
- 'ActiveSync für Mobile',
'Dedizierte IP',
'Priority Support',
],
From 2074707c9d4e6008281876f6de55dae66f95380d Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 21:07:48 +0200
Subject: [PATCH 06/16] Add product visibility control: Introduced a mechanism
to hide specific products ('vpc', 'vps') from the shop. Updated relevant
templates to conditionally display these products based on visibility status,
enhancing user experience and product management.
---
backend/config/products-config.php | 11 +++++++++++
backend/includes/header.php | 5 +++++
public/contact.php | 5 +++++
public/index.php | 5 +++++
4 files changed, 26 insertions(+)
diff --git a/backend/config/products-config.php b/backend/config/products-config.php
index f65934a..faa4626 100644
--- a/backend/config/products-config.php
+++ b/backend/config/products-config.php
@@ -10,6 +10,9 @@
* $packages = getProductPackages('vpc');
*/
+// Temporär ausgeblendete Produkte (einfach IDs aus dieser Liste entfernen, um sie wieder im Shop anzuzeigen)
+$HIDDEN_PRODUCTS = ['vpc', 'vps'];
+
// ============================================================================
// VIRTUAL PRIVATE CONTAINER (VPC)
// ============================================================================
@@ -442,6 +445,14 @@ function getProduct($productId) {
return $PRODUCTS[$productId] ?? null;
}
+/**
+ * Prüft, ob ein Produkt im Shop angezeigt werden soll
+ */
+function isProductVisible($productId) {
+ global $HIDDEN_PRODUCTS;
+ return !in_array($productId, $HIDDEN_PRODUCTS, true);
+}
+
/**
* Alle Pakete eines Produkts abrufen
*/
diff --git a/backend/includes/header.php b/backend/includes/header.php
index 82629a5..eb00be5 100644
--- a/backend/includes/header.php
+++ b/backend/includes/header.php
@@ -1,4 +1,5 @@
+
@@ -61,8 +62,12 @@
Produkte
diff --git a/public/contact.php b/public/contact.php
index 2a3d0bb..e81dc3a 100644
--- a/public/contact.php
+++ b/public/contact.php
@@ -1,5 +1,6 @@
Bitte wählen...
Allgemeine Anfrage
+
Virtual Private Container
+
+
Virtual Private Server
+
Mail Gateway
Webhosting
IT-Beratung
diff --git a/public/index.php b/public/index.php
index d32ca7d..8dc7f6a 100644
--- a/public/index.php
+++ b/public/index.php
@@ -1,5 +1,6 @@
+
@@ -74,6 +76,8 @@ includeHeader($page_title, $page_description, $current_page);
Mehr erfahren
+
+
@@ -92,6 +96,7 @@ includeHeader($page_title, $page_description, $current_page);
Mehr erfahren
+
From 2c0138f55d0951e2409c500cb7df658307ddcb7f Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 21:11:25 +0200
Subject: [PATCH 07/16] Update CSS styles: Refactored and optimized the
style.css file to enhance layout and visual consistency across the
application. Adjusted various CSS variables and properties for improved
responsiveness and user experience.
---
public/assets/css/style.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/assets/css/style.css b/public/assets/css/style.css
index f0f5d6d..e08b2a9 100644
--- a/public/assets/css/style.css
+++ b/public/assets/css/style.css
@@ -1 +1 @@
-*{margin:0;padding:0;box-sizing:border-box}:root{--background-color:#0d0821;--primary-color:#ff51f9;--accent-color-1:#a348ff;--accent-color-2:#3978ff;--highlight-color:#f093ff;--accent-deep:#6b2aff;--accent-neon-blue:#00cfff;--accent-pink-dark:#c31adf;--success-color:#32fba2;--warning-color:#ffcc00;--error-color:#ff4d6d;--neutral-light:#1a1230;--neutral-medium:#3d3a4e;--text-primary:#ffffff;--text-secondary:#cfc9dd;--white:#ffffff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-primary:linear-gradient(135deg, var(--background-color) 0%, var(--neutral-light) 100%);--bg-secondary:linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color-1) 100%);--bg-accent:linear-gradient(135deg, var(--accent-deep) 0%, var(--accent-color-1) 100%);--bg-neon:linear-gradient(135deg, var(--accent-neon-blue) 0%, var(--primary-color) 100%);--glass-bg:rgba(255, 255, 255, 0.05);--glass-border:rgba(255, 255, 255, 0.1);--glass-shadow:0 8px 32px 0 rgba(255, 81, 249, 0.2);--glass-shadow-accent:0 8px 32px 0 rgba(163, 72, 255, 0.3);--glass-shadow-neon:0 8px 32px 0 rgba(0, 207, 255, 0.3);--font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-logo:'Russo One',sans-serif;--font-slogan:'Source Sans Pro',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--transition-fast:0.15s ease-in-out;--transition-base:0.3s ease-in-out;--transition-slow:0.5s ease-in-out}body{font-family:var(--font-family);line-height:1.6;color:var(--text-primary);background:var(--background-color);min-height:100vh;overflow-x:hidden}.glass-card{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:all var(--transition-base)}.glass-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px 0 rgba(31,38,135,.5)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(13,8,33,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 20px rgba(255,81,249,.1);transition:all var(--transition-base)}.header.scrolled{background:rgba(13,8,33,.523);box-shadow:0 4px 30px rgba(255,81,249,.2)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo a{text-decoration:none;display:flex;align-items:center}.logo-image{height:50px;width:auto;object-fit:contain;transition:var(--transition-base)}.logo-image:hover{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(255, 81, 249, .5))}.nav-menu{display:flex;list-style:none;gap:var(--spacing-xl);align-items:center}.nav-link{text-decoration:none;color:var(--white);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-base);position:relative}.nav-link.active,.nav-link:hover{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-base);list-style:none}.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu li{margin:0}.dropdown-menu a{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--white);text-decoration:none;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.dropdown-menu a:hover{background:rgba(255,255,255,.1)}.nav-toggle{display:none;flex-direction:column;cursor:pointer}.nav-toggle span{width:25px;height:3px;background:var(--white);margin:3px 0;transition:var(--transition-base)}.hero{padding:120px 0 80px;min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml, ');z-index:-1}.hero-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);align-items:center}.hero-title{font-size:var(--font-size-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.highlight{background:linear-gradient(135deg,var(--primary-color),var(--highlight-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.hero-actions{display:flex;gap:var(--spacing-lg)}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-card{padding:var(--spacing-2xl);text-align:center;max-width:300px}.server-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.hero-card h3{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-sm)}.hero-card p{color:var(--text-secondary);font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));color:var(--text-primary);box-shadow:0 4px 15px 0 rgba(255,81,249,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px 0 rgba(255,81,249,.4)}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-lg)}.section-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);max-width:600px;margin:0 auto}.products{padding:var(--spacing-3xl) 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.product-card{padding:var(--spacing-2xl);text-align:center;position:relative;transition:all var(--transition-base)}.product-card.featured{transform:scale(1.05);border:2px solid var(--primary-light)}.featured-badge{position:absolute;top:-10px;right:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-2));color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600}.product-icon{width:40px;height:40px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.product-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.product-description{color:rgba(255,255,255,.8);margin-bottom:var(--spacing-lg);line-height:1.6}.product-features{list-style:none;padding:0;margin-bottom:var(--spacing-lg);text-align:center}.product-features li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;line-height:1.5}.product-features li::before{content:'•';color:var(--primary-color);font-weight:700;margin-right:var(--spacing-sm)}.feature{font-size:var(--font-size-sm);color:rgba(255,255,255,.9)}.product-price{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:rgba(255,255,255,.9)}.price{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color)}.features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.feature-item{padding:var(--spacing-lg);text-align:center}.feature-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.feature-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.feature-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.how-it-works{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.step-item{padding:var(--spacing-xl);text-align:center;position:relative}.step-number{width:60px;height:60px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--white);margin:0 auto var(--spacing-lg);box-shadow:0 8px 32px 0 rgba(255,81,249,.3)}.step-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.step-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.mail-features{padding:var(--spacing-3xl) 0}.benefits{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.benefit-item{padding:var(--spacing-xl);text-align:center}.benefit-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.benefit-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.benefit-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.cta{padding:var(--spacing-3xl) 0}.cta-content{text-align:center;padding:var(--spacing-3xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-lg)}.cta-content p{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.cta-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.footer{background:rgba(0,0,0,.3);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--primary-color)}.footer-section p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.footer-location{display:flex;align-items:center;gap:var(--spacing-sm);color:rgba(255,255,255,.7)}.footer-location svg{width:16px;height:16px}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-sm)}.footer-section ul li a{color:rgba(255,255,255,.8);text-decoration:none;transition:color var(--transition-base)}.footer-section ul li a:hover{color:var(--primary-color)}.footer-bottom{padding-top:var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1);text-align:center;color:rgba(255,255,255,.6)}@media (max-width:768px){.nav-menu{display:none}.nav-toggle{display:flex}.hero-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{flex-direction:column;align-items:center}.features-grid,.products-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width:480px){.container,.nav-container{padding:0 var(--spacing-md)}.hero{padding:100px 0 60px}.hero-title{font-size:var(--font-size-2xl)}.section-title{font-size:var(--font-size-3xl)}.cta-content,.feature-item,.product-card{padding:var(--spacing-xl)}.values-grid{grid-template-columns:1fr!important}.team-stats{grid-template-columns:1fr 1fr!important}}.product-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.product-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.breadcrumb{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.breadcrumb a{color:var(--primary-color);text-decoration:none}.breadcrumb span{margin:0 var(--spacing-sm)}.product-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.product-hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.product-hero-features{display:flex;justify-content:center;gap:var(--spacing-2xl);flex-wrap:wrap}.hero-feature{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--primary-color);font-weight:500}.hero-feature svg{width:16px;height:16px}.packages{padding:var(--spacing-3xl) 0}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-2xl)}.package-card{padding:var(--spacing-2xl);position:relative;text-align:center}.package-header{margin-bottom:var(--spacing-xl)}.package-name{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.package-price{margin-bottom:var(--spacing-xl)}.package-price .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-color)}.package-price .period{color:var(--text-secondary);font-size:var(--font-size-base)}.package-specs{margin-bottom:var(--spacing-xl);text-align:left}.spec-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.spec-label{color:rgba(255,255,255,.8)}.spec-value{font-weight:600;color:var(--white)}.package-features{margin-bottom:var(--spacing-xl);text-align:left}.package-features .feature{padding:var(--spacing-xs) 0;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.mail-features,.technical-details,.vps-features,.web-features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.detail-card{padding:var(--spacing-lg);text-align:center}.detail-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.detail-card h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.use-cases{padding:var(--spacing-3xl) 0}.use-cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.use-case-item{padding:var(--spacing-lg)}.use-case-item h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--primary-color)}.use-case-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.cms-support,.operating-systems,.technologies{padding:var(--spacing-3xl) 0}.cms-grid,.os-grid,.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.cms-item,.os-item,.tech-item{padding:var(--spacing-md);text-align:center}.os-icon,.tech-icon{width:28px;height:28px;margin:0 auto var(--spacing-sm);color:var(--primary-color)}.cms-logo{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-base);color:var(--text-primary)}.cms-item h3,.os-item h3,.tech-item h3{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.cms-item p,.os-item p,.tech-item p{color:rgba(255,255,255,.7);font-size:var(--font-size-xs)}.performance-security{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.perf-sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.perf-sec-item{padding:var(--spacing-lg);text-align:center}.perf-sec-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.about-hero,.contact-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.about-hero-content,.contact-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.about-hero-title,.contact-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.about-hero-description,.contact-hero-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);line-height:1.6}.company-story{padding:var(--spacing-3xl) 0}.story-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-3xl);align-items:center}.story-text p{margin-bottom:var(--spacing-lg);color:var(--text-secondary);line-height:1.6}.story-visual{padding:var(--spacing-2xl);text-align:center}.location-info{margin-bottom:var(--spacing-2xl)}.location-icon{width:60px;height:60px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.location-info h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.location-details{text-align:center}.location-details p{color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.stat-item{text-align:center}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.mission{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.mission-item{padding:var(--spacing-lg);text-align:center}.mission-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.values{padding:var(--spacing-3xl) 0}.values-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.values-grid .value-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);text-align:center}.values-grid .value-icon{width:48px;height:48px;margin-bottom:var(--spacing-lg);color:var(--primary-color);display:flex;align-items:center;justify-content:center}.values-grid .value-icon svg{width:100%;height:100%}.values-grid .value-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.values-grid .value-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.team{padding:var(--spacing-3xl) 0}.team-content{margin-top:var(--spacing-2xl)}.team-text{margin-bottom:var(--spacing-2xl)}.team-text p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.team-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.technology{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.tech-item{padding:var(--spacing-xl);text-align:center}.tech-item .tech-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.tech-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.tech-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.value-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);min-width:60px}.value-content h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.value-content p{color:rgba(255,255,255,.8);line-height:1.6}.technology-stack{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.tech-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.tech-stack-item{padding:var(--spacing-lg);text-align:center}.tech-icon{width:50px;height:50px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.why-choose-us{padding:var(--spacing-3xl) 0}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.advantage-item{padding:var(--spacing-lg);text-align:center}.advantage-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-options{padding:var(--spacing-3xl) 0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.contact-item{padding:var(--spacing-lg);text-align:center}.contact-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-link{display:inline-block;margin-top:var(--spacing-md);color:var(--primary-color);text-decoration:none;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.contact-link:hover{background:var(--primary-color);color:var(--text-primary)}.chat-btn{background:0 0;cursor:pointer}.contact-hours{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.contact-form-section{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.form-container{max-width:800px;margin:0 auto}.form-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-form{padding:var(--spacing-2xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:var(--text-primary);font-family:inherit;transition:all var(--transition-base)}.form-group select{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.form-group select option{background:rgba(13,8,33,.95);color:var(--text-primary);padding:var(--spacing-sm)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.15)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:0 0;position:relative;flex-shrink:0;margin-top:2px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--white);font-size:12px;font-weight:700}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.form-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.faq-section{padding:var(--spacing-3xl) 0}.faq-grid{display:grid;gap:var(--spacing-lg);max-width:800px;margin:0 auto}.faq-item{padding:0;overflow:hidden;transition:all var(--transition-base);border:1px solid transparent}.faq-item:hover{border-color:var(--primary-color);box-shadow:0 0 20px rgba(255,81,249,.2);transform:translateY(-2px)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-base)}.faq-question h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.faq-toggle{font-size:var(--font-size-2xl);font-weight:300;color:var(--primary-color);transition:transform var(--transition-base)}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.faq-answer p{padding:0 var(--spacing-lg) var(--spacing-lg);color:rgba(255,255,255,.8);line-height:1.6;margin:0}.response-time{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.response-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-2xl);align-items:center;padding:var(--spacing-2xl)}.response-stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.response-text h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.response-text p{color:rgba(255,255,255,.8);line-height:1.6}@media (max-width:768px){.product-hero-features{gap:var(--spacing-lg)}.hero-feature{font-size:var(--font-size-sm)}.packages-grid{grid-template-columns:1fr}.benefits-grid,.steps-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.story-content{grid-template-columns:1fr}.stats{flex-direction:column;gap:var(--spacing-md)}.team-stats,.values-grid{grid-template-columns:1fr 1fr!important}.form-row{grid-template-columns:1fr}.response-content{grid-template-columns:1fr;text-align:center}.response-stats{flex-direction:column;gap:var(--spacing-md)}.form-actions{flex-direction:column;align-items:center}}.legal-hero{padding:calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);text-align:center}.legal-hero-content{max-width:800px;margin:0 auto}.legal-hero-title{font-size:clamp(2rem, 5vw, 3rem);font-weight:700;margin-bottom:var(--spacing-md);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-description{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.legal-content{padding:var(--spacing-2xl) 0}.legal-container{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.legal-section{padding:var(--spacing-xl)}.legal-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary)}.legal-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-md)}.legal-section h3:first-child{margin-top:0}.legal-block{margin-bottom:var(--spacing-md)}.legal-block:last-child{margin-bottom:0}.legal-block p{color:var(--text-secondary);line-height:1.8;margin-bottom:var(--spacing-sm)}.legal-block p:last-child{margin-bottom:0}.legal-block a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.legal-block a:hover{color:var(--primary-light);text-decoration:underline}.legal-block ol,.legal-block ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg);color:var(--text-secondary)}.legal-block li{margin-bottom:var(--spacing-xs);line-height:1.7}.legal-note{font-size:.875rem;color:var(--text-muted);background:rgba(var(--primary-rgb),.1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}@media (max-width:768px){.legal-section{padding:var(--spacing-lg)}.legal-section h2{font-size:1.25rem}.legal-hero{padding:calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl)}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:rgba(13,8,33,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px rgba(0,0,0,.3);transform:translateY(100%);opacity:0;visibility:hidden;transition:.4s cubic-bezier(.4, 0, .2, 1)}.cookie-consent.show{transform:translateY(0);opacity:1;visibility:visible}.cookie-consent.hide{transform:translateY(100%);opacity:0;visibility:hidden}.cookie-consent-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-consent-content{display:flex;align-items:flex-start;gap:var(--spacing-lg);flex:1;min-width:300px}.cookie-consent-icon{width:48px;height:48px;flex-shrink:0;color:var(--primary-color)}.cookie-consent-icon svg{width:100%;height:100%}.cookie-consent-text h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.cookie-consent-text p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.cookie-consent-text a{color:var(--primary-color);text-decoration:none;font-weight:500}.cookie-consent-text a:hover{text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.cookie-consent-actions .btn{white-space:nowrap}.btn-text{background:0 0;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);font-weight:500;cursor:pointer;transition:color var(--transition-base)}.btn-text:hover{color:var(--primary-color)}.cookie-settings-panel{border-top:1px solid var(--glass-border);background:rgba(0,0,0,.3);animation:.3s ease-out slideDown}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-settings-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.cookie-settings-content h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.cookie-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid rgba(255,255,255,.1)}.cookie-option:last-of-type{border-bottom:none}.cookie-option-info{flex:1;padding-right:var(--spacing-lg)}.cookie-option-info strong{display:block;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.cookie-option-info p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5}.cookie-toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.2);border-radius:28px;transition:all var(--transition-base)}.cookie-toggle-slider::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:all var(--transition-base)}.cookie-toggle input:checked+.cookie-toggle-slider{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1))}.cookie-toggle input:checked+.cookie-toggle-slider::before{transform:translateX(24px)}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;opacity:.7}.cookie-toggle input:focus+.cookie-toggle-slider{box-shadow:0 0 0 3px rgba(255,81,249,.3)}.cookie-settings-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}@media (max-width:768px){.cookie-consent-container{flex-direction:column;align-items:stretch;padding:var(--spacing-lg)}.cookie-consent-content{flex-direction:column;align-items:center;text-align:center}.cookie-consent-icon{width:40px;height:40px}.cookie-consent-actions{flex-direction:column;width:100%}.cookie-consent-actions .btn{width:100%;justify-content:center}.cookie-settings-actions{flex-direction:column}.cookie-settings-actions .btn{width:100%}.cookie-option{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.cookie-option-info{padding-right:0}}
\ No newline at end of file
+*{margin:0;padding:0;box-sizing:border-box}:root{--background-color:#0d0821;--primary-color:#ff51f9;--accent-color-1:#a348ff;--accent-color-2:#3978ff;--highlight-color:#f093ff;--accent-deep:#6b2aff;--accent-neon-blue:#00cfff;--accent-pink-dark:#c31adf;--success-color:#32fba2;--warning-color:#ffcc00;--error-color:#ff4d6d;--neutral-light:#1a1230;--neutral-medium:#3d3a4e;--text-primary:#ffffff;--text-secondary:#cfc9dd;--white:#ffffff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-primary:linear-gradient(135deg, var(--background-color) 0%, var(--neutral-light) 100%);--bg-secondary:linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color-1) 100%);--bg-accent:linear-gradient(135deg, var(--accent-deep) 0%, var(--accent-color-1) 100%);--bg-neon:linear-gradient(135deg, var(--accent-neon-blue) 0%, var(--primary-color) 100%);--glass-bg:rgba(255, 255, 255, 0.05);--glass-border:rgba(255, 255, 255, 0.1);--glass-shadow:0 8px 32px 0 rgba(255, 81, 249, 0.2);--glass-shadow-accent:0 8px 32px 0 rgba(163, 72, 255, 0.3);--glass-shadow-neon:0 8px 32px 0 rgba(0, 207, 255, 0.3);--font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-logo:'Russo One',sans-serif;--font-slogan:'Source Sans Pro',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--transition-fast:0.15s ease-in-out;--transition-base:0.3s ease-in-out;--transition-slow:0.5s ease-in-out}body{font-family:var(--font-family);line-height:1.6;color:var(--text-primary);background:var(--background-color);min-height:100vh;overflow-x:hidden}.glass-card{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:all var(--transition-base)}.glass-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px 0 rgba(31,38,135,.5)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(13,8,33,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 20px rgba(255,81,249,.1);transition:all var(--transition-base)}.header.scrolled{background:rgba(13,8,33,.523);box-shadow:0 4px 30px rgba(255,81,249,.2)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo a{text-decoration:none;display:flex;align-items:center}.logo-image{height:50px;width:auto;object-fit:contain;transition:var(--transition-base)}.logo-image:hover{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(255, 81, 249, .5))}.nav-menu{display:flex;list-style:none;gap:var(--spacing-xl);align-items:center}.nav-link{text-decoration:none;color:var(--white);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-base);position:relative}.nav-link.active,.nav-link:hover{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-base);list-style:none}.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu li{margin:0}.dropdown-menu a{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--white);text-decoration:none;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.dropdown-menu a:hover{background:rgba(172, 172, 172, 0.338)}.nav-toggle{display:none;flex-direction:column;cursor:pointer}.nav-toggle span{width:25px;height:3px;background:var(--white);margin:3px 0;transition:var(--transition-base)}.hero{padding:120px 0 80px;min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml, ');z-index:-1}.hero-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);align-items:center}.hero-title{font-size:var(--font-size-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.highlight{background:linear-gradient(135deg,var(--primary-color),var(--highlight-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.hero-actions{display:flex;gap:var(--spacing-lg)}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-card{padding:var(--spacing-2xl);text-align:center;max-width:300px}.server-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.hero-card h3{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-sm)}.hero-card p{color:var(--text-secondary);font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));color:var(--text-primary);box-shadow:0 4px 15px 0 rgba(255,81,249,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px 0 rgba(255,81,249,.4)}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-lg)}.section-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);max-width:600px;margin:0 auto}.products{padding:var(--spacing-3xl) 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.product-card{padding:var(--spacing-2xl);text-align:center;position:relative;transition:all var(--transition-base)}.product-card.featured{transform:scale(1.05);border:2px solid var(--primary-light)}.featured-badge{position:absolute;top:-10px;right:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-2));color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600}.product-icon{width:40px;height:40px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.product-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.product-description{color:rgba(255,255,255,.8);margin-bottom:var(--spacing-lg);line-height:1.6}.product-features{list-style:none;padding:0;margin-bottom:var(--spacing-lg);text-align:center}.product-features li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;line-height:1.5}.product-features li::before{content:'•';color:var(--primary-color);font-weight:700;margin-right:var(--spacing-sm)}.feature{font-size:var(--font-size-sm);color:rgba(255,255,255,.9)}.product-price{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:rgba(255,255,255,.9)}.price{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color)}.features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.feature-item{padding:var(--spacing-lg);text-align:center}.feature-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.feature-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.feature-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.how-it-works{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.step-item{padding:var(--spacing-xl);text-align:center;position:relative}.step-number{width:60px;height:60px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--white);margin:0 auto var(--spacing-lg);box-shadow:0 8px 32px 0 rgba(255,81,249,.3)}.step-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.step-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.mail-features{padding:var(--spacing-3xl) 0}.benefits{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.benefit-item{padding:var(--spacing-xl);text-align:center}.benefit-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.benefit-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.benefit-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.cta{padding:var(--spacing-3xl) 0}.cta-content{text-align:center;padding:var(--spacing-3xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-lg)}.cta-content p{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.cta-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.footer{background:rgba(0,0,0,.3);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--primary-color)}.footer-section p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.footer-location{display:flex;align-items:center;gap:var(--spacing-sm);color:rgba(255,255,255,.7)}.footer-location svg{width:16px;height:16px}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-sm)}.footer-section ul li a{color:rgba(255,255,255,.8);text-decoration:none;transition:color var(--transition-base)}.footer-section ul li a:hover{color:var(--primary-color)}.footer-bottom{padding-top:var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1);text-align:center;color:rgba(255,255,255,.6)}@media (max-width:768px){.nav-menu{display:none}.nav-toggle{display:flex}.hero-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{flex-direction:column;align-items:center}.features-grid,.products-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width:480px){.container,.nav-container{padding:0 var(--spacing-md)}.hero{padding:100px 0 60px}.hero-title{font-size:var(--font-size-2xl)}.section-title{font-size:var(--font-size-3xl)}.cta-content,.feature-item,.product-card{padding:var(--spacing-xl)}.values-grid{grid-template-columns:1fr!important}.team-stats{grid-template-columns:1fr 1fr!important}}.product-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.product-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.breadcrumb{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.breadcrumb a{color:var(--primary-color);text-decoration:none}.breadcrumb span{margin:0 var(--spacing-sm)}.product-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.product-hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.product-hero-features{display:flex;justify-content:center;gap:var(--spacing-2xl);flex-wrap:wrap}.hero-feature{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--primary-color);font-weight:500}.hero-feature svg{width:16px;height:16px}.packages{padding:var(--spacing-3xl) 0}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-2xl)}.package-card{padding:var(--spacing-2xl);position:relative;text-align:center}.package-header{margin-bottom:var(--spacing-xl)}.package-name{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.package-price{margin-bottom:var(--spacing-xl)}.package-price .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-color)}.package-price .period{color:var(--text-secondary);font-size:var(--font-size-base)}.package-specs{margin-bottom:var(--spacing-xl);text-align:left}.spec-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.spec-label{color:rgba(255,255,255,.8)}.spec-value{font-weight:600;color:var(--white)}.package-features{margin-bottom:var(--spacing-xl);text-align:left}.package-features .feature{padding:var(--spacing-xs) 0;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.mail-features,.technical-details,.vps-features,.web-features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.detail-card{padding:var(--spacing-lg);text-align:center}.detail-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.detail-card h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.use-cases{padding:var(--spacing-3xl) 0}.use-cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.use-case-item{padding:var(--spacing-lg)}.use-case-item h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--primary-color)}.use-case-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.cms-support,.operating-systems,.technologies{padding:var(--spacing-3xl) 0}.cms-grid,.os-grid,.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.cms-item,.os-item,.tech-item{padding:var(--spacing-md);text-align:center}.os-icon,.tech-icon{width:28px;height:28px;margin:0 auto var(--spacing-sm);color:var(--primary-color)}.cms-logo{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-base);color:var(--text-primary)}.cms-item h3,.os-item h3,.tech-item h3{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.cms-item p,.os-item p,.tech-item p{color:rgba(255,255,255,.7);font-size:var(--font-size-xs)}.performance-security{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.perf-sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.perf-sec-item{padding:var(--spacing-lg);text-align:center}.perf-sec-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.about-hero,.contact-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.about-hero-content,.contact-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.about-hero-title,.contact-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.about-hero-description,.contact-hero-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);line-height:1.6}.company-story{padding:var(--spacing-3xl) 0}.story-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-3xl);align-items:center}.story-text p{margin-bottom:var(--spacing-lg);color:var(--text-secondary);line-height:1.6}.story-visual{padding:var(--spacing-2xl);text-align:center}.location-info{margin-bottom:var(--spacing-2xl)}.location-icon{width:60px;height:60px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.location-info h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.location-details{text-align:center}.location-details p{color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.stat-item{text-align:center}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.mission{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.mission-item{padding:var(--spacing-lg);text-align:center}.mission-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.values{padding:var(--spacing-3xl) 0}.values-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.values-grid .value-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);text-align:center}.values-grid .value-icon{width:48px;height:48px;margin-bottom:var(--spacing-lg);color:var(--primary-color);display:flex;align-items:center;justify-content:center}.values-grid .value-icon svg{width:100%;height:100%}.values-grid .value-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.values-grid .value-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.team{padding:var(--spacing-3xl) 0}.team-content{margin-top:var(--spacing-2xl)}.team-text{margin-bottom:var(--spacing-2xl)}.team-text p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.team-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.technology{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.tech-item{padding:var(--spacing-xl);text-align:center}.tech-item .tech-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.tech-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.tech-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.value-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);min-width:60px}.value-content h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.value-content p{color:rgba(255,255,255,.8);line-height:1.6}.technology-stack{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.tech-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.tech-stack-item{padding:var(--spacing-lg);text-align:center}.tech-icon{width:50px;height:50px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.why-choose-us{padding:var(--spacing-3xl) 0}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.advantage-item{padding:var(--spacing-lg);text-align:center}.advantage-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-options{padding:var(--spacing-3xl) 0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.contact-item{padding:var(--spacing-lg);text-align:center}.contact-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-link{display:inline-block;margin-top:var(--spacing-md);color:var(--primary-color);text-decoration:none;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.contact-link:hover{background:var(--primary-color);color:var(--text-primary)}.chat-btn{background:0 0;cursor:pointer}.contact-hours{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.contact-form-section{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.form-container{max-width:800px;margin:0 auto}.form-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-form{padding:var(--spacing-2xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:var(--text-primary);font-family:inherit;transition:all var(--transition-base)}.form-group select{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.form-group select option{background:rgba(13,8,33,.95);color:var(--text-primary);padding:var(--spacing-sm)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.15)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:0 0;position:relative;flex-shrink:0;margin-top:2px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--white);font-size:12px;font-weight:700}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.form-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.faq-section{padding:var(--spacing-3xl) 0}.faq-grid{display:grid;gap:var(--spacing-lg);max-width:800px;margin:0 auto}.faq-item{padding:0;overflow:hidden;transition:all var(--transition-base);border:1px solid transparent}.faq-item:hover{border-color:var(--primary-color);box-shadow:0 0 20px rgba(255,81,249,.2);transform:translateY(-2px)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-base)}.faq-question h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.faq-toggle{font-size:var(--font-size-2xl);font-weight:300;color:var(--primary-color);transition:transform var(--transition-base)}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.faq-answer p{padding:0 var(--spacing-lg) var(--spacing-lg);color:rgba(255,255,255,.8);line-height:1.6;margin:0}.response-time{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.response-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-2xl);align-items:center;padding:var(--spacing-2xl)}.response-stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.response-text h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.response-text p{color:rgba(255,255,255,.8);line-height:1.6}@media (max-width:768px){.product-hero-features{gap:var(--spacing-lg)}.hero-feature{font-size:var(--font-size-sm)}.packages-grid{grid-template-columns:1fr}.benefits-grid,.steps-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.story-content{grid-template-columns:1fr}.stats{flex-direction:column;gap:var(--spacing-md)}.team-stats,.values-grid{grid-template-columns:1fr 1fr!important}.form-row{grid-template-columns:1fr}.response-content{grid-template-columns:1fr;text-align:center}.response-stats{flex-direction:column;gap:var(--spacing-md)}.form-actions{flex-direction:column;align-items:center}}.legal-hero{padding:calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);text-align:center}.legal-hero-content{max-width:800px;margin:0 auto}.legal-hero-title{font-size:clamp(2rem, 5vw, 3rem);font-weight:700;margin-bottom:var(--spacing-md);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-description{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.legal-content{padding:var(--spacing-2xl) 0}.legal-container{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.legal-section{padding:var(--spacing-xl)}.legal-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary)}.legal-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-md)}.legal-section h3:first-child{margin-top:0}.legal-block{margin-bottom:var(--spacing-md)}.legal-block:last-child{margin-bottom:0}.legal-block p{color:var(--text-secondary);line-height:1.8;margin-bottom:var(--spacing-sm)}.legal-block p:last-child{margin-bottom:0}.legal-block a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.legal-block a:hover{color:var(--primary-light);text-decoration:underline}.legal-block ol,.legal-block ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg);color:var(--text-secondary)}.legal-block li{margin-bottom:var(--spacing-xs);line-height:1.7}.legal-note{font-size:.875rem;color:var(--text-muted);background:rgba(var(--primary-rgb),.1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}@media (max-width:768px){.legal-section{padding:var(--spacing-lg)}.legal-section h2{font-size:1.25rem}.legal-hero{padding:calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl)}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:rgba(13,8,33,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px rgba(0,0,0,.3);transform:translateY(100%);opacity:0;visibility:hidden;transition:.4s cubic-bezier(.4, 0, .2, 1)}.cookie-consent.show{transform:translateY(0);opacity:1;visibility:visible}.cookie-consent.hide{transform:translateY(100%);opacity:0;visibility:hidden}.cookie-consent-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-consent-content{display:flex;align-items:flex-start;gap:var(--spacing-lg);flex:1;min-width:300px}.cookie-consent-icon{width:48px;height:48px;flex-shrink:0;color:var(--primary-color)}.cookie-consent-icon svg{width:100%;height:100%}.cookie-consent-text h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.cookie-consent-text p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.cookie-consent-text a{color:var(--primary-color);text-decoration:none;font-weight:500}.cookie-consent-text a:hover{text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.cookie-consent-actions .btn{white-space:nowrap}.btn-text{background:0 0;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);font-weight:500;cursor:pointer;transition:color var(--transition-base)}.btn-text:hover{color:var(--primary-color)}.cookie-settings-panel{border-top:1px solid var(--glass-border);background:rgba(0,0,0,.3);animation:.3s ease-out slideDown}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-settings-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.cookie-settings-content h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.cookie-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid rgba(255,255,255,.1)}.cookie-option:last-of-type{border-bottom:none}.cookie-option-info{flex:1;padding-right:var(--spacing-lg)}.cookie-option-info strong{display:block;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.cookie-option-info p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5}.cookie-toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.2);border-radius:28px;transition:all var(--transition-base)}.cookie-toggle-slider::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:all var(--transition-base)}.cookie-toggle input:checked+.cookie-toggle-slider{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1))}.cookie-toggle input:checked+.cookie-toggle-slider::before{transform:translateX(24px)}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;opacity:.7}.cookie-toggle input:focus+.cookie-toggle-slider{box-shadow:0 0 0 3px rgba(255,81,249,.3)}.cookie-settings-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}@media (max-width:768px){.cookie-consent-container{flex-direction:column;align-items:stretch;padding:var(--spacing-lg)}.cookie-consent-content{flex-direction:column;align-items:center;text-align:center}.cookie-consent-icon{width:40px;height:40px}.cookie-consent-actions{flex-direction:column;width:100%}.cookie-consent-actions .btn{width:100%;justify-content:center}.cookie-settings-actions{flex-direction:column}.cookie-settings-actions .btn{width:100%}.cookie-option{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.cookie-option-info{padding-right:0}}
\ No newline at end of file
From d62d6b576d3fd9f0788d0cbcd732f3a2517196bb Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 21:12:31 +0200
Subject: [PATCH 08/16] Refactor CSS styles: Updated style.css to improve
layout consistency and responsiveness. Adjusted CSS variables for better
visual appeal and user experience across the application.
---
public/assets/css/style.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/assets/css/style.css b/public/assets/css/style.css
index e08b2a9..13d272d 100644
--- a/public/assets/css/style.css
+++ b/public/assets/css/style.css
@@ -1 +1 @@
-*{margin:0;padding:0;box-sizing:border-box}:root{--background-color:#0d0821;--primary-color:#ff51f9;--accent-color-1:#a348ff;--accent-color-2:#3978ff;--highlight-color:#f093ff;--accent-deep:#6b2aff;--accent-neon-blue:#00cfff;--accent-pink-dark:#c31adf;--success-color:#32fba2;--warning-color:#ffcc00;--error-color:#ff4d6d;--neutral-light:#1a1230;--neutral-medium:#3d3a4e;--text-primary:#ffffff;--text-secondary:#cfc9dd;--white:#ffffff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-primary:linear-gradient(135deg, var(--background-color) 0%, var(--neutral-light) 100%);--bg-secondary:linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color-1) 100%);--bg-accent:linear-gradient(135deg, var(--accent-deep) 0%, var(--accent-color-1) 100%);--bg-neon:linear-gradient(135deg, var(--accent-neon-blue) 0%, var(--primary-color) 100%);--glass-bg:rgba(255, 255, 255, 0.05);--glass-border:rgba(255, 255, 255, 0.1);--glass-shadow:0 8px 32px 0 rgba(255, 81, 249, 0.2);--glass-shadow-accent:0 8px 32px 0 rgba(163, 72, 255, 0.3);--glass-shadow-neon:0 8px 32px 0 rgba(0, 207, 255, 0.3);--font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-logo:'Russo One',sans-serif;--font-slogan:'Source Sans Pro',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--transition-fast:0.15s ease-in-out;--transition-base:0.3s ease-in-out;--transition-slow:0.5s ease-in-out}body{font-family:var(--font-family);line-height:1.6;color:var(--text-primary);background:var(--background-color);min-height:100vh;overflow-x:hidden}.glass-card{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:all var(--transition-base)}.glass-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px 0 rgba(31,38,135,.5)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(13,8,33,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 20px rgba(255,81,249,.1);transition:all var(--transition-base)}.header.scrolled{background:rgba(13,8,33,.523);box-shadow:0 4px 30px rgba(255,81,249,.2)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo a{text-decoration:none;display:flex;align-items:center}.logo-image{height:50px;width:auto;object-fit:contain;transition:var(--transition-base)}.logo-image:hover{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(255, 81, 249, .5))}.nav-menu{display:flex;list-style:none;gap:var(--spacing-xl);align-items:center}.nav-link{text-decoration:none;color:var(--white);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-base);position:relative}.nav-link.active,.nav-link:hover{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-base);list-style:none}.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu li{margin:0}.dropdown-menu a{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--white);text-decoration:none;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.dropdown-menu a:hover{background:rgba(172, 172, 172, 0.338)}.nav-toggle{display:none;flex-direction:column;cursor:pointer}.nav-toggle span{width:25px;height:3px;background:var(--white);margin:3px 0;transition:var(--transition-base)}.hero{padding:120px 0 80px;min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml, ');z-index:-1}.hero-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);align-items:center}.hero-title{font-size:var(--font-size-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.highlight{background:linear-gradient(135deg,var(--primary-color),var(--highlight-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.hero-actions{display:flex;gap:var(--spacing-lg)}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-card{padding:var(--spacing-2xl);text-align:center;max-width:300px}.server-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.hero-card h3{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-sm)}.hero-card p{color:var(--text-secondary);font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));color:var(--text-primary);box-shadow:0 4px 15px 0 rgba(255,81,249,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px 0 rgba(255,81,249,.4)}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-lg)}.section-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);max-width:600px;margin:0 auto}.products{padding:var(--spacing-3xl) 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.product-card{padding:var(--spacing-2xl);text-align:center;position:relative;transition:all var(--transition-base)}.product-card.featured{transform:scale(1.05);border:2px solid var(--primary-light)}.featured-badge{position:absolute;top:-10px;right:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-2));color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600}.product-icon{width:40px;height:40px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.product-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.product-description{color:rgba(255,255,255,.8);margin-bottom:var(--spacing-lg);line-height:1.6}.product-features{list-style:none;padding:0;margin-bottom:var(--spacing-lg);text-align:center}.product-features li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;line-height:1.5}.product-features li::before{content:'•';color:var(--primary-color);font-weight:700;margin-right:var(--spacing-sm)}.feature{font-size:var(--font-size-sm);color:rgba(255,255,255,.9)}.product-price{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:rgba(255,255,255,.9)}.price{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color)}.features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.feature-item{padding:var(--spacing-lg);text-align:center}.feature-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.feature-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.feature-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.how-it-works{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.step-item{padding:var(--spacing-xl);text-align:center;position:relative}.step-number{width:60px;height:60px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--white);margin:0 auto var(--spacing-lg);box-shadow:0 8px 32px 0 rgba(255,81,249,.3)}.step-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.step-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.mail-features{padding:var(--spacing-3xl) 0}.benefits{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.benefit-item{padding:var(--spacing-xl);text-align:center}.benefit-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.benefit-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.benefit-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.cta{padding:var(--spacing-3xl) 0}.cta-content{text-align:center;padding:var(--spacing-3xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-lg)}.cta-content p{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.cta-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.footer{background:rgba(0,0,0,.3);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--primary-color)}.footer-section p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.footer-location{display:flex;align-items:center;gap:var(--spacing-sm);color:rgba(255,255,255,.7)}.footer-location svg{width:16px;height:16px}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-sm)}.footer-section ul li a{color:rgba(255,255,255,.8);text-decoration:none;transition:color var(--transition-base)}.footer-section ul li a:hover{color:var(--primary-color)}.footer-bottom{padding-top:var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1);text-align:center;color:rgba(255,255,255,.6)}@media (max-width:768px){.nav-menu{display:none}.nav-toggle{display:flex}.hero-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{flex-direction:column;align-items:center}.features-grid,.products-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width:480px){.container,.nav-container{padding:0 var(--spacing-md)}.hero{padding:100px 0 60px}.hero-title{font-size:var(--font-size-2xl)}.section-title{font-size:var(--font-size-3xl)}.cta-content,.feature-item,.product-card{padding:var(--spacing-xl)}.values-grid{grid-template-columns:1fr!important}.team-stats{grid-template-columns:1fr 1fr!important}}.product-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.product-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.breadcrumb{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.breadcrumb a{color:var(--primary-color);text-decoration:none}.breadcrumb span{margin:0 var(--spacing-sm)}.product-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.product-hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.product-hero-features{display:flex;justify-content:center;gap:var(--spacing-2xl);flex-wrap:wrap}.hero-feature{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--primary-color);font-weight:500}.hero-feature svg{width:16px;height:16px}.packages{padding:var(--spacing-3xl) 0}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-2xl)}.package-card{padding:var(--spacing-2xl);position:relative;text-align:center}.package-header{margin-bottom:var(--spacing-xl)}.package-name{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.package-price{margin-bottom:var(--spacing-xl)}.package-price .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-color)}.package-price .period{color:var(--text-secondary);font-size:var(--font-size-base)}.package-specs{margin-bottom:var(--spacing-xl);text-align:left}.spec-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.spec-label{color:rgba(255,255,255,.8)}.spec-value{font-weight:600;color:var(--white)}.package-features{margin-bottom:var(--spacing-xl);text-align:left}.package-features .feature{padding:var(--spacing-xs) 0;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.mail-features,.technical-details,.vps-features,.web-features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.detail-card{padding:var(--spacing-lg);text-align:center}.detail-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.detail-card h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.use-cases{padding:var(--spacing-3xl) 0}.use-cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.use-case-item{padding:var(--spacing-lg)}.use-case-item h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--primary-color)}.use-case-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.cms-support,.operating-systems,.technologies{padding:var(--spacing-3xl) 0}.cms-grid,.os-grid,.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.cms-item,.os-item,.tech-item{padding:var(--spacing-md);text-align:center}.os-icon,.tech-icon{width:28px;height:28px;margin:0 auto var(--spacing-sm);color:var(--primary-color)}.cms-logo{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-base);color:var(--text-primary)}.cms-item h3,.os-item h3,.tech-item h3{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.cms-item p,.os-item p,.tech-item p{color:rgba(255,255,255,.7);font-size:var(--font-size-xs)}.performance-security{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.perf-sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.perf-sec-item{padding:var(--spacing-lg);text-align:center}.perf-sec-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.about-hero,.contact-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.about-hero-content,.contact-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.about-hero-title,.contact-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.about-hero-description,.contact-hero-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);line-height:1.6}.company-story{padding:var(--spacing-3xl) 0}.story-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-3xl);align-items:center}.story-text p{margin-bottom:var(--spacing-lg);color:var(--text-secondary);line-height:1.6}.story-visual{padding:var(--spacing-2xl);text-align:center}.location-info{margin-bottom:var(--spacing-2xl)}.location-icon{width:60px;height:60px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.location-info h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.location-details{text-align:center}.location-details p{color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.stat-item{text-align:center}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.mission{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.mission-item{padding:var(--spacing-lg);text-align:center}.mission-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.values{padding:var(--spacing-3xl) 0}.values-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.values-grid .value-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);text-align:center}.values-grid .value-icon{width:48px;height:48px;margin-bottom:var(--spacing-lg);color:var(--primary-color);display:flex;align-items:center;justify-content:center}.values-grid .value-icon svg{width:100%;height:100%}.values-grid .value-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.values-grid .value-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.team{padding:var(--spacing-3xl) 0}.team-content{margin-top:var(--spacing-2xl)}.team-text{margin-bottom:var(--spacing-2xl)}.team-text p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.team-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.technology{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.tech-item{padding:var(--spacing-xl);text-align:center}.tech-item .tech-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.tech-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.tech-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.value-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);min-width:60px}.value-content h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.value-content p{color:rgba(255,255,255,.8);line-height:1.6}.technology-stack{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.tech-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.tech-stack-item{padding:var(--spacing-lg);text-align:center}.tech-icon{width:50px;height:50px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.why-choose-us{padding:var(--spacing-3xl) 0}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.advantage-item{padding:var(--spacing-lg);text-align:center}.advantage-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-options{padding:var(--spacing-3xl) 0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.contact-item{padding:var(--spacing-lg);text-align:center}.contact-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-link{display:inline-block;margin-top:var(--spacing-md);color:var(--primary-color);text-decoration:none;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.contact-link:hover{background:var(--primary-color);color:var(--text-primary)}.chat-btn{background:0 0;cursor:pointer}.contact-hours{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.contact-form-section{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.form-container{max-width:800px;margin:0 auto}.form-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-form{padding:var(--spacing-2xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:var(--text-primary);font-family:inherit;transition:all var(--transition-base)}.form-group select{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.form-group select option{background:rgba(13,8,33,.95);color:var(--text-primary);padding:var(--spacing-sm)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.15)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:0 0;position:relative;flex-shrink:0;margin-top:2px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--white);font-size:12px;font-weight:700}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.form-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.faq-section{padding:var(--spacing-3xl) 0}.faq-grid{display:grid;gap:var(--spacing-lg);max-width:800px;margin:0 auto}.faq-item{padding:0;overflow:hidden;transition:all var(--transition-base);border:1px solid transparent}.faq-item:hover{border-color:var(--primary-color);box-shadow:0 0 20px rgba(255,81,249,.2);transform:translateY(-2px)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-base)}.faq-question h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.faq-toggle{font-size:var(--font-size-2xl);font-weight:300;color:var(--primary-color);transition:transform var(--transition-base)}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.faq-answer p{padding:0 var(--spacing-lg) var(--spacing-lg);color:rgba(255,255,255,.8);line-height:1.6;margin:0}.response-time{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.response-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-2xl);align-items:center;padding:var(--spacing-2xl)}.response-stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.response-text h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.response-text p{color:rgba(255,255,255,.8);line-height:1.6}@media (max-width:768px){.product-hero-features{gap:var(--spacing-lg)}.hero-feature{font-size:var(--font-size-sm)}.packages-grid{grid-template-columns:1fr}.benefits-grid,.steps-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.story-content{grid-template-columns:1fr}.stats{flex-direction:column;gap:var(--spacing-md)}.team-stats,.values-grid{grid-template-columns:1fr 1fr!important}.form-row{grid-template-columns:1fr}.response-content{grid-template-columns:1fr;text-align:center}.response-stats{flex-direction:column;gap:var(--spacing-md)}.form-actions{flex-direction:column;align-items:center}}.legal-hero{padding:calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);text-align:center}.legal-hero-content{max-width:800px;margin:0 auto}.legal-hero-title{font-size:clamp(2rem, 5vw, 3rem);font-weight:700;margin-bottom:var(--spacing-md);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-description{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.legal-content{padding:var(--spacing-2xl) 0}.legal-container{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.legal-section{padding:var(--spacing-xl)}.legal-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary)}.legal-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-md)}.legal-section h3:first-child{margin-top:0}.legal-block{margin-bottom:var(--spacing-md)}.legal-block:last-child{margin-bottom:0}.legal-block p{color:var(--text-secondary);line-height:1.8;margin-bottom:var(--spacing-sm)}.legal-block p:last-child{margin-bottom:0}.legal-block a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.legal-block a:hover{color:var(--primary-light);text-decoration:underline}.legal-block ol,.legal-block ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg);color:var(--text-secondary)}.legal-block li{margin-bottom:var(--spacing-xs);line-height:1.7}.legal-note{font-size:.875rem;color:var(--text-muted);background:rgba(var(--primary-rgb),.1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}@media (max-width:768px){.legal-section{padding:var(--spacing-lg)}.legal-section h2{font-size:1.25rem}.legal-hero{padding:calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl)}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:rgba(13,8,33,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px rgba(0,0,0,.3);transform:translateY(100%);opacity:0;visibility:hidden;transition:.4s cubic-bezier(.4, 0, .2, 1)}.cookie-consent.show{transform:translateY(0);opacity:1;visibility:visible}.cookie-consent.hide{transform:translateY(100%);opacity:0;visibility:hidden}.cookie-consent-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-consent-content{display:flex;align-items:flex-start;gap:var(--spacing-lg);flex:1;min-width:300px}.cookie-consent-icon{width:48px;height:48px;flex-shrink:0;color:var(--primary-color)}.cookie-consent-icon svg{width:100%;height:100%}.cookie-consent-text h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.cookie-consent-text p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.cookie-consent-text a{color:var(--primary-color);text-decoration:none;font-weight:500}.cookie-consent-text a:hover{text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.cookie-consent-actions .btn{white-space:nowrap}.btn-text{background:0 0;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);font-weight:500;cursor:pointer;transition:color var(--transition-base)}.btn-text:hover{color:var(--primary-color)}.cookie-settings-panel{border-top:1px solid var(--glass-border);background:rgba(0,0,0,.3);animation:.3s ease-out slideDown}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-settings-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.cookie-settings-content h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.cookie-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid rgba(255,255,255,.1)}.cookie-option:last-of-type{border-bottom:none}.cookie-option-info{flex:1;padding-right:var(--spacing-lg)}.cookie-option-info strong{display:block;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.cookie-option-info p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5}.cookie-toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.2);border-radius:28px;transition:all var(--transition-base)}.cookie-toggle-slider::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:all var(--transition-base)}.cookie-toggle input:checked+.cookie-toggle-slider{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1))}.cookie-toggle input:checked+.cookie-toggle-slider::before{transform:translateX(24px)}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;opacity:.7}.cookie-toggle input:focus+.cookie-toggle-slider{box-shadow:0 0 0 3px rgba(255,81,249,.3)}.cookie-settings-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}@media (max-width:768px){.cookie-consent-container{flex-direction:column;align-items:stretch;padding:var(--spacing-lg)}.cookie-consent-content{flex-direction:column;align-items:center;text-align:center}.cookie-consent-icon{width:40px;height:40px}.cookie-consent-actions{flex-direction:column;width:100%}.cookie-consent-actions .btn{width:100%;justify-content:center}.cookie-settings-actions{flex-direction:column}.cookie-settings-actions .btn{width:100%}.cookie-option{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.cookie-option-info{padding-right:0}}
\ No newline at end of file
+*{margin:0;padding:0;box-sizing:border-box}:root{--background-color:#0d0821;--primary-color:#ff51f9;--accent-color-1:#a348ff;--accent-color-2:#3978ff;--highlight-color:#f093ff;--accent-deep:#6b2aff;--accent-neon-blue:#00cfff;--accent-pink-dark:#c31adf;--success-color:#32fba2;--warning-color:#ffcc00;--error-color:#ff4d6d;--neutral-light:#1a1230;--neutral-medium:#3d3a4e;--text-primary:#ffffff;--text-secondary:#cfc9dd;--white:#ffffff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-primary:linear-gradient(135deg, var(--background-color) 0%, var(--neutral-light) 100%);--bg-secondary:linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color-1) 100%);--bg-accent:linear-gradient(135deg, var(--accent-deep) 0%, var(--accent-color-1) 100%);--bg-neon:linear-gradient(135deg, var(--accent-neon-blue) 0%, var(--primary-color) 100%);--glass-bg:rgba(255, 255, 255, 0.05);--glass-border:rgba(255, 255, 255, 0.1);--glass-shadow:0 8px 32px 0 rgba(255, 81, 249, 0.2);--glass-shadow-accent:0 8px 32px 0 rgba(163, 72, 255, 0.3);--glass-shadow-neon:0 8px 32px 0 rgba(0, 207, 255, 0.3);--font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-logo:'Russo One',sans-serif;--font-slogan:'Source Sans Pro',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--transition-fast:0.15s ease-in-out;--transition-base:0.3s ease-in-out;--transition-slow:0.5s ease-in-out}body{font-family:var(--font-family);line-height:1.6;color:var(--text-primary);background:var(--background-color);min-height:100vh;overflow-x:hidden}.glass-card{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:all var(--transition-base)}.glass-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px 0 rgba(31,38,135,.5)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(13,8,33,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 20px rgba(255,81,249,.1);transition:all var(--transition-base)}.header.scrolled{background:rgba(13,8,33,.523);box-shadow:0 4px 30px rgba(255,81,249,.2)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo a{text-decoration:none;display:flex;align-items:center}.logo-image{height:50px;width:auto;object-fit:contain;transition:var(--transition-base)}.logo-image:hover{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(255, 81, 249, .5))}.nav-menu{display:flex;list-style:none;gap:var(--spacing-xl);align-items:center}.nav-link{text-decoration:none;color:var(--white);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-base);position:relative}.nav-link.active,.nav-link:hover{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-base);list-style:none}.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu li{margin:0}.dropdown-menu a{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--white);text-decoration:none;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.dropdown-menu a:hover{background:rgba(155, 155, 155, 0.463)}.nav-toggle{display:none;flex-direction:column;cursor:pointer}.nav-toggle span{width:25px;height:3px;background:var(--white);margin:3px 0;transition:var(--transition-base)}.hero{padding:120px 0 80px;min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml, ');z-index:-1}.hero-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);align-items:center}.hero-title{font-size:var(--font-size-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.highlight{background:linear-gradient(135deg,var(--primary-color),var(--highlight-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.hero-actions{display:flex;gap:var(--spacing-lg)}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-card{padding:var(--spacing-2xl);text-align:center;max-width:300px}.server-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.hero-card h3{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-sm)}.hero-card p{color:var(--text-secondary);font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));color:var(--text-primary);box-shadow:0 4px 15px 0 rgba(255,81,249,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px 0 rgba(255,81,249,.4)}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-lg)}.section-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);max-width:600px;margin:0 auto}.products{padding:var(--spacing-3xl) 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.product-card{padding:var(--spacing-2xl);text-align:center;position:relative;transition:all var(--transition-base)}.product-card.featured{transform:scale(1.05);border:2px solid var(--primary-light)}.featured-badge{position:absolute;top:-10px;right:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-2));color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600}.product-icon{width:40px;height:40px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.product-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.product-description{color:rgba(255,255,255,.8);margin-bottom:var(--spacing-lg);line-height:1.6}.product-features{list-style:none;padding:0;margin-bottom:var(--spacing-lg);text-align:center}.product-features li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;line-height:1.5}.product-features li::before{content:'•';color:var(--primary-color);font-weight:700;margin-right:var(--spacing-sm)}.feature{font-size:var(--font-size-sm);color:rgba(255,255,255,.9)}.product-price{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:rgba(255,255,255,.9)}.price{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color)}.features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.feature-item{padding:var(--spacing-lg);text-align:center}.feature-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.feature-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.feature-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.how-it-works{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.step-item{padding:var(--spacing-xl);text-align:center;position:relative}.step-number{width:60px;height:60px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--white);margin:0 auto var(--spacing-lg);box-shadow:0 8px 32px 0 rgba(255,81,249,.3)}.step-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.step-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.mail-features{padding:var(--spacing-3xl) 0}.benefits{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.benefit-item{padding:var(--spacing-xl);text-align:center}.benefit-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.benefit-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.benefit-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.cta{padding:var(--spacing-3xl) 0}.cta-content{text-align:center;padding:var(--spacing-3xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-lg)}.cta-content p{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.cta-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.footer{background:rgba(0,0,0,.3);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--primary-color)}.footer-section p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.footer-location{display:flex;align-items:center;gap:var(--spacing-sm);color:rgba(255,255,255,.7)}.footer-location svg{width:16px;height:16px}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-sm)}.footer-section ul li a{color:rgba(255,255,255,.8);text-decoration:none;transition:color var(--transition-base)}.footer-section ul li a:hover{color:var(--primary-color)}.footer-bottom{padding-top:var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1);text-align:center;color:rgba(255,255,255,.6)}@media (max-width:768px){.nav-menu{display:none}.nav-toggle{display:flex}.hero-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{flex-direction:column;align-items:center}.features-grid,.products-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width:480px){.container,.nav-container{padding:0 var(--spacing-md)}.hero{padding:100px 0 60px}.hero-title{font-size:var(--font-size-2xl)}.section-title{font-size:var(--font-size-3xl)}.cta-content,.feature-item,.product-card{padding:var(--spacing-xl)}.values-grid{grid-template-columns:1fr!important}.team-stats{grid-template-columns:1fr 1fr!important}}.product-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.product-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.breadcrumb{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.breadcrumb a{color:var(--primary-color);text-decoration:none}.breadcrumb span{margin:0 var(--spacing-sm)}.product-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.product-hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.product-hero-features{display:flex;justify-content:center;gap:var(--spacing-2xl);flex-wrap:wrap}.hero-feature{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--primary-color);font-weight:500}.hero-feature svg{width:16px;height:16px}.packages{padding:var(--spacing-3xl) 0}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-2xl)}.package-card{padding:var(--spacing-2xl);position:relative;text-align:center}.package-header{margin-bottom:var(--spacing-xl)}.package-name{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.package-price{margin-bottom:var(--spacing-xl)}.package-price .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-color)}.package-price .period{color:var(--text-secondary);font-size:var(--font-size-base)}.package-specs{margin-bottom:var(--spacing-xl);text-align:left}.spec-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.spec-label{color:rgba(255,255,255,.8)}.spec-value{font-weight:600;color:var(--white)}.package-features{margin-bottom:var(--spacing-xl);text-align:left}.package-features .feature{padding:var(--spacing-xs) 0;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.mail-features,.technical-details,.vps-features,.web-features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.detail-card{padding:var(--spacing-lg);text-align:center}.detail-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.detail-card h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.use-cases{padding:var(--spacing-3xl) 0}.use-cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.use-case-item{padding:var(--spacing-lg)}.use-case-item h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--primary-color)}.use-case-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.cms-support,.operating-systems,.technologies{padding:var(--spacing-3xl) 0}.cms-grid,.os-grid,.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.cms-item,.os-item,.tech-item{padding:var(--spacing-md);text-align:center}.os-icon,.tech-icon{width:28px;height:28px;margin:0 auto var(--spacing-sm);color:var(--primary-color)}.cms-logo{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-base);color:var(--text-primary)}.cms-item h3,.os-item h3,.tech-item h3{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.cms-item p,.os-item p,.tech-item p{color:rgba(255,255,255,.7);font-size:var(--font-size-xs)}.performance-security{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.perf-sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.perf-sec-item{padding:var(--spacing-lg);text-align:center}.perf-sec-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.about-hero,.contact-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.about-hero-content,.contact-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.about-hero-title,.contact-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.about-hero-description,.contact-hero-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);line-height:1.6}.company-story{padding:var(--spacing-3xl) 0}.story-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-3xl);align-items:center}.story-text p{margin-bottom:var(--spacing-lg);color:var(--text-secondary);line-height:1.6}.story-visual{padding:var(--spacing-2xl);text-align:center}.location-info{margin-bottom:var(--spacing-2xl)}.location-icon{width:60px;height:60px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.location-info h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.location-details{text-align:center}.location-details p{color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.stat-item{text-align:center}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.mission{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.mission-item{padding:var(--spacing-lg);text-align:center}.mission-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.values{padding:var(--spacing-3xl) 0}.values-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.values-grid .value-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);text-align:center}.values-grid .value-icon{width:48px;height:48px;margin-bottom:var(--spacing-lg);color:var(--primary-color);display:flex;align-items:center;justify-content:center}.values-grid .value-icon svg{width:100%;height:100%}.values-grid .value-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.values-grid .value-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.team{padding:var(--spacing-3xl) 0}.team-content{margin-top:var(--spacing-2xl)}.team-text{margin-bottom:var(--spacing-2xl)}.team-text p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.team-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.technology{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.tech-item{padding:var(--spacing-xl);text-align:center}.tech-item .tech-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.tech-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.tech-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.value-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);min-width:60px}.value-content h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.value-content p{color:rgba(255,255,255,.8);line-height:1.6}.technology-stack{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.tech-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.tech-stack-item{padding:var(--spacing-lg);text-align:center}.tech-icon{width:50px;height:50px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.why-choose-us{padding:var(--spacing-3xl) 0}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.advantage-item{padding:var(--spacing-lg);text-align:center}.advantage-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-options{padding:var(--spacing-3xl) 0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.contact-item{padding:var(--spacing-lg);text-align:center}.contact-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-link{display:inline-block;margin-top:var(--spacing-md);color:var(--primary-color);text-decoration:none;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.contact-link:hover{background:var(--primary-color);color:var(--text-primary)}.chat-btn{background:0 0;cursor:pointer}.contact-hours{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.contact-form-section{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.form-container{max-width:800px;margin:0 auto}.form-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-form{padding:var(--spacing-2xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:var(--text-primary);font-family:inherit;transition:all var(--transition-base)}.form-group select{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.form-group select option{background:rgba(13,8,33,.95);color:var(--text-primary);padding:var(--spacing-sm)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.15)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:0 0;position:relative;flex-shrink:0;margin-top:2px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--white);font-size:12px;font-weight:700}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.form-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.faq-section{padding:var(--spacing-3xl) 0}.faq-grid{display:grid;gap:var(--spacing-lg);max-width:800px;margin:0 auto}.faq-item{padding:0;overflow:hidden;transition:all var(--transition-base);border:1px solid transparent}.faq-item:hover{border-color:var(--primary-color);box-shadow:0 0 20px rgba(255,81,249,.2);transform:translateY(-2px)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-base)}.faq-question h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.faq-toggle{font-size:var(--font-size-2xl);font-weight:300;color:var(--primary-color);transition:transform var(--transition-base)}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.faq-answer p{padding:0 var(--spacing-lg) var(--spacing-lg);color:rgba(255,255,255,.8);line-height:1.6;margin:0}.response-time{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.response-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-2xl);align-items:center;padding:var(--spacing-2xl)}.response-stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.response-text h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.response-text p{color:rgba(255,255,255,.8);line-height:1.6}@media (max-width:768px){.product-hero-features{gap:var(--spacing-lg)}.hero-feature{font-size:var(--font-size-sm)}.packages-grid{grid-template-columns:1fr}.benefits-grid,.steps-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.story-content{grid-template-columns:1fr}.stats{flex-direction:column;gap:var(--spacing-md)}.team-stats,.values-grid{grid-template-columns:1fr 1fr!important}.form-row{grid-template-columns:1fr}.response-content{grid-template-columns:1fr;text-align:center}.response-stats{flex-direction:column;gap:var(--spacing-md)}.form-actions{flex-direction:column;align-items:center}}.legal-hero{padding:calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);text-align:center}.legal-hero-content{max-width:800px;margin:0 auto}.legal-hero-title{font-size:clamp(2rem, 5vw, 3rem);font-weight:700;margin-bottom:var(--spacing-md);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-description{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.legal-content{padding:var(--spacing-2xl) 0}.legal-container{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.legal-section{padding:var(--spacing-xl)}.legal-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary)}.legal-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-md)}.legal-section h3:first-child{margin-top:0}.legal-block{margin-bottom:var(--spacing-md)}.legal-block:last-child{margin-bottom:0}.legal-block p{color:var(--text-secondary);line-height:1.8;margin-bottom:var(--spacing-sm)}.legal-block p:last-child{margin-bottom:0}.legal-block a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.legal-block a:hover{color:var(--primary-light);text-decoration:underline}.legal-block ol,.legal-block ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg);color:var(--text-secondary)}.legal-block li{margin-bottom:var(--spacing-xs);line-height:1.7}.legal-note{font-size:.875rem;color:var(--text-muted);background:rgba(var(--primary-rgb),.1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}@media (max-width:768px){.legal-section{padding:var(--spacing-lg)}.legal-section h2{font-size:1.25rem}.legal-hero{padding:calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl)}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:rgba(13,8,33,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px rgba(0,0,0,.3);transform:translateY(100%);opacity:0;visibility:hidden;transition:.4s cubic-bezier(.4, 0, .2, 1)}.cookie-consent.show{transform:translateY(0);opacity:1;visibility:visible}.cookie-consent.hide{transform:translateY(100%);opacity:0;visibility:hidden}.cookie-consent-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-consent-content{display:flex;align-items:flex-start;gap:var(--spacing-lg);flex:1;min-width:300px}.cookie-consent-icon{width:48px;height:48px;flex-shrink:0;color:var(--primary-color)}.cookie-consent-icon svg{width:100%;height:100%}.cookie-consent-text h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.cookie-consent-text p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.cookie-consent-text a{color:var(--primary-color);text-decoration:none;font-weight:500}.cookie-consent-text a:hover{text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.cookie-consent-actions .btn{white-space:nowrap}.btn-text{background:0 0;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);font-weight:500;cursor:pointer;transition:color var(--transition-base)}.btn-text:hover{color:var(--primary-color)}.cookie-settings-panel{border-top:1px solid var(--glass-border);background:rgba(0,0,0,.3);animation:.3s ease-out slideDown}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-settings-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.cookie-settings-content h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.cookie-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid rgba(255,255,255,.1)}.cookie-option:last-of-type{border-bottom:none}.cookie-option-info{flex:1;padding-right:var(--spacing-lg)}.cookie-option-info strong{display:block;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.cookie-option-info p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5}.cookie-toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.2);border-radius:28px;transition:all var(--transition-base)}.cookie-toggle-slider::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:all var(--transition-base)}.cookie-toggle input:checked+.cookie-toggle-slider{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1))}.cookie-toggle input:checked+.cookie-toggle-slider::before{transform:translateX(24px)}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;opacity:.7}.cookie-toggle input:focus+.cookie-toggle-slider{box-shadow:0 0 0 3px rgba(255,81,249,.3)}.cookie-settings-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}@media (max-width:768px){.cookie-consent-container{flex-direction:column;align-items:stretch;padding:var(--spacing-lg)}.cookie-consent-content{flex-direction:column;align-items:center;text-align:center}.cookie-consent-icon{width:40px;height:40px}.cookie-consent-actions{flex-direction:column;width:100%}.cookie-consent-actions .btn{width:100%;justify-content:center}.cookie-settings-actions{flex-direction:column}.cookie-settings-actions .btn{width:100%}.cookie-option{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.cookie-option-info{padding-right:0}}
\ No newline at end of file
From d02377c735e6c2f2a1bea2f1921075bf72012b53 Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 21:13:08 +0200
Subject: [PATCH 09/16] Update CSS styles: Refined style.css to enhance layout
consistency and responsiveness. Adjusted CSS variables for improved visual
appeal and user experience across the application.
---
public/assets/css/style.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/assets/css/style.css b/public/assets/css/style.css
index 13d272d..94e7b30 100644
--- a/public/assets/css/style.css
+++ b/public/assets/css/style.css
@@ -1 +1 @@
-*{margin:0;padding:0;box-sizing:border-box}:root{--background-color:#0d0821;--primary-color:#ff51f9;--accent-color-1:#a348ff;--accent-color-2:#3978ff;--highlight-color:#f093ff;--accent-deep:#6b2aff;--accent-neon-blue:#00cfff;--accent-pink-dark:#c31adf;--success-color:#32fba2;--warning-color:#ffcc00;--error-color:#ff4d6d;--neutral-light:#1a1230;--neutral-medium:#3d3a4e;--text-primary:#ffffff;--text-secondary:#cfc9dd;--white:#ffffff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-primary:linear-gradient(135deg, var(--background-color) 0%, var(--neutral-light) 100%);--bg-secondary:linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color-1) 100%);--bg-accent:linear-gradient(135deg, var(--accent-deep) 0%, var(--accent-color-1) 100%);--bg-neon:linear-gradient(135deg, var(--accent-neon-blue) 0%, var(--primary-color) 100%);--glass-bg:rgba(255, 255, 255, 0.05);--glass-border:rgba(255, 255, 255, 0.1);--glass-shadow:0 8px 32px 0 rgba(255, 81, 249, 0.2);--glass-shadow-accent:0 8px 32px 0 rgba(163, 72, 255, 0.3);--glass-shadow-neon:0 8px 32px 0 rgba(0, 207, 255, 0.3);--font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-logo:'Russo One',sans-serif;--font-slogan:'Source Sans Pro',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--transition-fast:0.15s ease-in-out;--transition-base:0.3s ease-in-out;--transition-slow:0.5s ease-in-out}body{font-family:var(--font-family);line-height:1.6;color:var(--text-primary);background:var(--background-color);min-height:100vh;overflow-x:hidden}.glass-card{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:all var(--transition-base)}.glass-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px 0 rgba(31,38,135,.5)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(13,8,33,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 20px rgba(255,81,249,.1);transition:all var(--transition-base)}.header.scrolled{background:rgba(13,8,33,.523);box-shadow:0 4px 30px rgba(255,81,249,.2)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo a{text-decoration:none;display:flex;align-items:center}.logo-image{height:50px;width:auto;object-fit:contain;transition:var(--transition-base)}.logo-image:hover{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(255, 81, 249, .5))}.nav-menu{display:flex;list-style:none;gap:var(--spacing-xl);align-items:center}.nav-link{text-decoration:none;color:var(--white);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-base);position:relative}.nav-link.active,.nav-link:hover{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-base);list-style:none}.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu li{margin:0}.dropdown-menu a{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--white);text-decoration:none;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.dropdown-menu a:hover{background:rgba(155, 155, 155, 0.463)}.nav-toggle{display:none;flex-direction:column;cursor:pointer}.nav-toggle span{width:25px;height:3px;background:var(--white);margin:3px 0;transition:var(--transition-base)}.hero{padding:120px 0 80px;min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml, ');z-index:-1}.hero-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);align-items:center}.hero-title{font-size:var(--font-size-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.highlight{background:linear-gradient(135deg,var(--primary-color),var(--highlight-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.hero-actions{display:flex;gap:var(--spacing-lg)}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-card{padding:var(--spacing-2xl);text-align:center;max-width:300px}.server-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.hero-card h3{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-sm)}.hero-card p{color:var(--text-secondary);font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));color:var(--text-primary);box-shadow:0 4px 15px 0 rgba(255,81,249,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px 0 rgba(255,81,249,.4)}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-lg)}.section-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);max-width:600px;margin:0 auto}.products{padding:var(--spacing-3xl) 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.product-card{padding:var(--spacing-2xl);text-align:center;position:relative;transition:all var(--transition-base)}.product-card.featured{transform:scale(1.05);border:2px solid var(--primary-light)}.featured-badge{position:absolute;top:-10px;right:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-2));color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600}.product-icon{width:40px;height:40px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.product-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.product-description{color:rgba(255,255,255,.8);margin-bottom:var(--spacing-lg);line-height:1.6}.product-features{list-style:none;padding:0;margin-bottom:var(--spacing-lg);text-align:center}.product-features li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;line-height:1.5}.product-features li::before{content:'•';color:var(--primary-color);font-weight:700;margin-right:var(--spacing-sm)}.feature{font-size:var(--font-size-sm);color:rgba(255,255,255,.9)}.product-price{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:rgba(255,255,255,.9)}.price{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color)}.features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.feature-item{padding:var(--spacing-lg);text-align:center}.feature-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.feature-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.feature-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.how-it-works{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.step-item{padding:var(--spacing-xl);text-align:center;position:relative}.step-number{width:60px;height:60px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--white);margin:0 auto var(--spacing-lg);box-shadow:0 8px 32px 0 rgba(255,81,249,.3)}.step-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.step-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.mail-features{padding:var(--spacing-3xl) 0}.benefits{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.benefit-item{padding:var(--spacing-xl);text-align:center}.benefit-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.benefit-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.benefit-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.cta{padding:var(--spacing-3xl) 0}.cta-content{text-align:center;padding:var(--spacing-3xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-lg)}.cta-content p{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.cta-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.footer{background:rgba(0,0,0,.3);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--primary-color)}.footer-section p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.footer-location{display:flex;align-items:center;gap:var(--spacing-sm);color:rgba(255,255,255,.7)}.footer-location svg{width:16px;height:16px}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-sm)}.footer-section ul li a{color:rgba(255,255,255,.8);text-decoration:none;transition:color var(--transition-base)}.footer-section ul li a:hover{color:var(--primary-color)}.footer-bottom{padding-top:var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1);text-align:center;color:rgba(255,255,255,.6)}@media (max-width:768px){.nav-menu{display:none}.nav-toggle{display:flex}.hero-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{flex-direction:column;align-items:center}.features-grid,.products-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width:480px){.container,.nav-container{padding:0 var(--spacing-md)}.hero{padding:100px 0 60px}.hero-title{font-size:var(--font-size-2xl)}.section-title{font-size:var(--font-size-3xl)}.cta-content,.feature-item,.product-card{padding:var(--spacing-xl)}.values-grid{grid-template-columns:1fr!important}.team-stats{grid-template-columns:1fr 1fr!important}}.product-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.product-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.breadcrumb{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.breadcrumb a{color:var(--primary-color);text-decoration:none}.breadcrumb span{margin:0 var(--spacing-sm)}.product-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.product-hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.product-hero-features{display:flex;justify-content:center;gap:var(--spacing-2xl);flex-wrap:wrap}.hero-feature{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--primary-color);font-weight:500}.hero-feature svg{width:16px;height:16px}.packages{padding:var(--spacing-3xl) 0}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-2xl)}.package-card{padding:var(--spacing-2xl);position:relative;text-align:center}.package-header{margin-bottom:var(--spacing-xl)}.package-name{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.package-price{margin-bottom:var(--spacing-xl)}.package-price .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-color)}.package-price .period{color:var(--text-secondary);font-size:var(--font-size-base)}.package-specs{margin-bottom:var(--spacing-xl);text-align:left}.spec-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.spec-label{color:rgba(255,255,255,.8)}.spec-value{font-weight:600;color:var(--white)}.package-features{margin-bottom:var(--spacing-xl);text-align:left}.package-features .feature{padding:var(--spacing-xs) 0;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.mail-features,.technical-details,.vps-features,.web-features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.detail-card{padding:var(--spacing-lg);text-align:center}.detail-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.detail-card h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.use-cases{padding:var(--spacing-3xl) 0}.use-cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.use-case-item{padding:var(--spacing-lg)}.use-case-item h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--primary-color)}.use-case-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.cms-support,.operating-systems,.technologies{padding:var(--spacing-3xl) 0}.cms-grid,.os-grid,.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.cms-item,.os-item,.tech-item{padding:var(--spacing-md);text-align:center}.os-icon,.tech-icon{width:28px;height:28px;margin:0 auto var(--spacing-sm);color:var(--primary-color)}.cms-logo{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-base);color:var(--text-primary)}.cms-item h3,.os-item h3,.tech-item h3{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.cms-item p,.os-item p,.tech-item p{color:rgba(255,255,255,.7);font-size:var(--font-size-xs)}.performance-security{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.perf-sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.perf-sec-item{padding:var(--spacing-lg);text-align:center}.perf-sec-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.about-hero,.contact-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.about-hero-content,.contact-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.about-hero-title,.contact-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.about-hero-description,.contact-hero-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);line-height:1.6}.company-story{padding:var(--spacing-3xl) 0}.story-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-3xl);align-items:center}.story-text p{margin-bottom:var(--spacing-lg);color:var(--text-secondary);line-height:1.6}.story-visual{padding:var(--spacing-2xl);text-align:center}.location-info{margin-bottom:var(--spacing-2xl)}.location-icon{width:60px;height:60px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.location-info h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.location-details{text-align:center}.location-details p{color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.stat-item{text-align:center}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.mission{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.mission-item{padding:var(--spacing-lg);text-align:center}.mission-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.values{padding:var(--spacing-3xl) 0}.values-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.values-grid .value-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);text-align:center}.values-grid .value-icon{width:48px;height:48px;margin-bottom:var(--spacing-lg);color:var(--primary-color);display:flex;align-items:center;justify-content:center}.values-grid .value-icon svg{width:100%;height:100%}.values-grid .value-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.values-grid .value-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.team{padding:var(--spacing-3xl) 0}.team-content{margin-top:var(--spacing-2xl)}.team-text{margin-bottom:var(--spacing-2xl)}.team-text p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.team-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.technology{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.tech-item{padding:var(--spacing-xl);text-align:center}.tech-item .tech-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.tech-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.tech-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.value-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);min-width:60px}.value-content h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.value-content p{color:rgba(255,255,255,.8);line-height:1.6}.technology-stack{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.tech-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.tech-stack-item{padding:var(--spacing-lg);text-align:center}.tech-icon{width:50px;height:50px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.why-choose-us{padding:var(--spacing-3xl) 0}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.advantage-item{padding:var(--spacing-lg);text-align:center}.advantage-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-options{padding:var(--spacing-3xl) 0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.contact-item{padding:var(--spacing-lg);text-align:center}.contact-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-link{display:inline-block;margin-top:var(--spacing-md);color:var(--primary-color);text-decoration:none;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.contact-link:hover{background:var(--primary-color);color:var(--text-primary)}.chat-btn{background:0 0;cursor:pointer}.contact-hours{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.contact-form-section{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.form-container{max-width:800px;margin:0 auto}.form-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-form{padding:var(--spacing-2xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:var(--text-primary);font-family:inherit;transition:all var(--transition-base)}.form-group select{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.form-group select option{background:rgba(13,8,33,.95);color:var(--text-primary);padding:var(--spacing-sm)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.15)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:0 0;position:relative;flex-shrink:0;margin-top:2px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--white);font-size:12px;font-weight:700}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.form-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.faq-section{padding:var(--spacing-3xl) 0}.faq-grid{display:grid;gap:var(--spacing-lg);max-width:800px;margin:0 auto}.faq-item{padding:0;overflow:hidden;transition:all var(--transition-base);border:1px solid transparent}.faq-item:hover{border-color:var(--primary-color);box-shadow:0 0 20px rgba(255,81,249,.2);transform:translateY(-2px)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-base)}.faq-question h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.faq-toggle{font-size:var(--font-size-2xl);font-weight:300;color:var(--primary-color);transition:transform var(--transition-base)}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.faq-answer p{padding:0 var(--spacing-lg) var(--spacing-lg);color:rgba(255,255,255,.8);line-height:1.6;margin:0}.response-time{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.response-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-2xl);align-items:center;padding:var(--spacing-2xl)}.response-stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.response-text h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.response-text p{color:rgba(255,255,255,.8);line-height:1.6}@media (max-width:768px){.product-hero-features{gap:var(--spacing-lg)}.hero-feature{font-size:var(--font-size-sm)}.packages-grid{grid-template-columns:1fr}.benefits-grid,.steps-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.story-content{grid-template-columns:1fr}.stats{flex-direction:column;gap:var(--spacing-md)}.team-stats,.values-grid{grid-template-columns:1fr 1fr!important}.form-row{grid-template-columns:1fr}.response-content{grid-template-columns:1fr;text-align:center}.response-stats{flex-direction:column;gap:var(--spacing-md)}.form-actions{flex-direction:column;align-items:center}}.legal-hero{padding:calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);text-align:center}.legal-hero-content{max-width:800px;margin:0 auto}.legal-hero-title{font-size:clamp(2rem, 5vw, 3rem);font-weight:700;margin-bottom:var(--spacing-md);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-description{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.legal-content{padding:var(--spacing-2xl) 0}.legal-container{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.legal-section{padding:var(--spacing-xl)}.legal-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary)}.legal-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-md)}.legal-section h3:first-child{margin-top:0}.legal-block{margin-bottom:var(--spacing-md)}.legal-block:last-child{margin-bottom:0}.legal-block p{color:var(--text-secondary);line-height:1.8;margin-bottom:var(--spacing-sm)}.legal-block p:last-child{margin-bottom:0}.legal-block a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.legal-block a:hover{color:var(--primary-light);text-decoration:underline}.legal-block ol,.legal-block ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg);color:var(--text-secondary)}.legal-block li{margin-bottom:var(--spacing-xs);line-height:1.7}.legal-note{font-size:.875rem;color:var(--text-muted);background:rgba(var(--primary-rgb),.1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}@media (max-width:768px){.legal-section{padding:var(--spacing-lg)}.legal-section h2{font-size:1.25rem}.legal-hero{padding:calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl)}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:rgba(13,8,33,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px rgba(0,0,0,.3);transform:translateY(100%);opacity:0;visibility:hidden;transition:.4s cubic-bezier(.4, 0, .2, 1)}.cookie-consent.show{transform:translateY(0);opacity:1;visibility:visible}.cookie-consent.hide{transform:translateY(100%);opacity:0;visibility:hidden}.cookie-consent-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-consent-content{display:flex;align-items:flex-start;gap:var(--spacing-lg);flex:1;min-width:300px}.cookie-consent-icon{width:48px;height:48px;flex-shrink:0;color:var(--primary-color)}.cookie-consent-icon svg{width:100%;height:100%}.cookie-consent-text h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.cookie-consent-text p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.cookie-consent-text a{color:var(--primary-color);text-decoration:none;font-weight:500}.cookie-consent-text a:hover{text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.cookie-consent-actions .btn{white-space:nowrap}.btn-text{background:0 0;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);font-weight:500;cursor:pointer;transition:color var(--transition-base)}.btn-text:hover{color:var(--primary-color)}.cookie-settings-panel{border-top:1px solid var(--glass-border);background:rgba(0,0,0,.3);animation:.3s ease-out slideDown}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-settings-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.cookie-settings-content h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.cookie-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid rgba(255,255,255,.1)}.cookie-option:last-of-type{border-bottom:none}.cookie-option-info{flex:1;padding-right:var(--spacing-lg)}.cookie-option-info strong{display:block;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.cookie-option-info p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5}.cookie-toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.2);border-radius:28px;transition:all var(--transition-base)}.cookie-toggle-slider::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:all var(--transition-base)}.cookie-toggle input:checked+.cookie-toggle-slider{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1))}.cookie-toggle input:checked+.cookie-toggle-slider::before{transform:translateX(24px)}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;opacity:.7}.cookie-toggle input:focus+.cookie-toggle-slider{box-shadow:0 0 0 3px rgba(255,81,249,.3)}.cookie-settings-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}@media (max-width:768px){.cookie-consent-container{flex-direction:column;align-items:stretch;padding:var(--spacing-lg)}.cookie-consent-content{flex-direction:column;align-items:center;text-align:center}.cookie-consent-icon{width:40px;height:40px}.cookie-consent-actions{flex-direction:column;width:100%}.cookie-consent-actions .btn{width:100%;justify-content:center}.cookie-settings-actions{flex-direction:column}.cookie-settings-actions .btn{width:100%}.cookie-option{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.cookie-option-info{padding-right:0}}
\ No newline at end of file
+*{margin:0;padding:0;box-sizing:border-box}:root{--background-color:#0d0821;--primary-color:#ff51f9;--accent-color-1:#a348ff;--accent-color-2:#3978ff;--highlight-color:#f093ff;--accent-deep:#6b2aff;--accent-neon-blue:#00cfff;--accent-pink-dark:#c31adf;--success-color:#32fba2;--warning-color:#ffcc00;--error-color:#ff4d6d;--neutral-light:#1a1230;--neutral-medium:#3d3a4e;--text-primary:#ffffff;--text-secondary:#cfc9dd;--white:#ffffff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-primary:linear-gradient(135deg, var(--background-color) 0%, var(--neutral-light) 100%);--bg-secondary:linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color-1) 100%);--bg-accent:linear-gradient(135deg, var(--accent-deep) 0%, var(--accent-color-1) 100%);--bg-neon:linear-gradient(135deg, var(--accent-neon-blue) 0%, var(--primary-color) 100%);--glass-bg:rgba(255, 255, 255, 0.05);--glass-border:rgba(255, 255, 255, 0.1);--glass-shadow:0 8px 32px 0 rgba(255, 81, 249, 0.2);--glass-shadow-accent:0 8px 32px 0 rgba(163, 72, 255, 0.3);--glass-shadow-neon:0 8px 32px 0 rgba(0, 207, 255, 0.3);--font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-logo:'Russo One',sans-serif;--font-slogan:'Source Sans Pro',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--transition-fast:0.15s ease-in-out;--transition-base:0.3s ease-in-out;--transition-slow:0.5s ease-in-out}body{font-family:var(--font-family);line-height:1.6;color:var(--text-primary);background:var(--background-color);min-height:100vh;overflow-x:hidden}.glass-card{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:all var(--transition-base)}.glass-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px 0 rgba(31,38,135,.5)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(13,8,33,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 20px rgba(255,81,249,.1);transition:all var(--transition-base)}.header.scrolled{background:rgba(13,8,33,.523);box-shadow:0 4px 30px rgba(255,81,249,.2)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo a{text-decoration:none;display:flex;align-items:center}.logo-image{height:50px;width:auto;object-fit:contain;transition:var(--transition-base)}.logo-image:hover{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(255, 81, 249, .5))}.nav-menu{display:flex;list-style:none;gap:var(--spacing-xl);align-items:center}.nav-link{text-decoration:none;color:var(--white);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-base);position:relative}.nav-link.active,.nav-link:hover{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-base);list-style:none}.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu li{margin:0}.dropdown-menu a{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--white);text-decoration:none;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.dropdown-menu a:hover{background:rgba(119, 119, 119, 0.616)}.nav-toggle{display:none;flex-direction:column;cursor:pointer}.nav-toggle span{width:25px;height:3px;background:var(--white);margin:3px 0;transition:var(--transition-base)}.hero{padding:120px 0 80px;min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml, ');z-index:-1}.hero-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);align-items:center}.hero-title{font-size:var(--font-size-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.highlight{background:linear-gradient(135deg,var(--primary-color),var(--highlight-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.hero-actions{display:flex;gap:var(--spacing-lg)}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-card{padding:var(--spacing-2xl);text-align:center;max-width:300px}.server-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.hero-card h3{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-sm)}.hero-card p{color:var(--text-secondary);font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));color:var(--text-primary);box-shadow:0 4px 15px 0 rgba(255,81,249,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px 0 rgba(255,81,249,.4)}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-lg)}.section-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);max-width:600px;margin:0 auto}.products{padding:var(--spacing-3xl) 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.product-card{padding:var(--spacing-2xl);text-align:center;position:relative;transition:all var(--transition-base)}.product-card.featured{transform:scale(1.05);border:2px solid var(--primary-light)}.featured-badge{position:absolute;top:-10px;right:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-2));color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600}.product-icon{width:40px;height:40px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.product-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.product-description{color:rgba(255,255,255,.8);margin-bottom:var(--spacing-lg);line-height:1.6}.product-features{list-style:none;padding:0;margin-bottom:var(--spacing-lg);text-align:center}.product-features li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;line-height:1.5}.product-features li::before{content:'•';color:var(--primary-color);font-weight:700;margin-right:var(--spacing-sm)}.feature{font-size:var(--font-size-sm);color:rgba(255,255,255,.9)}.product-price{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:rgba(255,255,255,.9)}.price{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color)}.features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.feature-item{padding:var(--spacing-lg);text-align:center}.feature-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.feature-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.feature-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.how-it-works{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.step-item{padding:var(--spacing-xl);text-align:center;position:relative}.step-number{width:60px;height:60px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--white);margin:0 auto var(--spacing-lg);box-shadow:0 8px 32px 0 rgba(255,81,249,.3)}.step-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.step-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.mail-features{padding:var(--spacing-3xl) 0}.benefits{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.benefit-item{padding:var(--spacing-xl);text-align:center}.benefit-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.benefit-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.benefit-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.cta{padding:var(--spacing-3xl) 0}.cta-content{text-align:center;padding:var(--spacing-3xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-lg)}.cta-content p{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.cta-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.footer{background:rgba(0,0,0,.3);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--primary-color)}.footer-section p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.footer-location{display:flex;align-items:center;gap:var(--spacing-sm);color:rgba(255,255,255,.7)}.footer-location svg{width:16px;height:16px}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-sm)}.footer-section ul li a{color:rgba(255,255,255,.8);text-decoration:none;transition:color var(--transition-base)}.footer-section ul li a:hover{color:var(--primary-color)}.footer-bottom{padding-top:var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1);text-align:center;color:rgba(255,255,255,.6)}@media (max-width:768px){.nav-menu{display:none}.nav-toggle{display:flex}.hero-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{flex-direction:column;align-items:center}.features-grid,.products-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width:480px){.container,.nav-container{padding:0 var(--spacing-md)}.hero{padding:100px 0 60px}.hero-title{font-size:var(--font-size-2xl)}.section-title{font-size:var(--font-size-3xl)}.cta-content,.feature-item,.product-card{padding:var(--spacing-xl)}.values-grid{grid-template-columns:1fr!important}.team-stats{grid-template-columns:1fr 1fr!important}}.product-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.product-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.breadcrumb{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.breadcrumb a{color:var(--primary-color);text-decoration:none}.breadcrumb span{margin:0 var(--spacing-sm)}.product-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.product-hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.product-hero-features{display:flex;justify-content:center;gap:var(--spacing-2xl);flex-wrap:wrap}.hero-feature{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--primary-color);font-weight:500}.hero-feature svg{width:16px;height:16px}.packages{padding:var(--spacing-3xl) 0}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-2xl)}.package-card{padding:var(--spacing-2xl);position:relative;text-align:center}.package-header{margin-bottom:var(--spacing-xl)}.package-name{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.package-price{margin-bottom:var(--spacing-xl)}.package-price .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-color)}.package-price .period{color:var(--text-secondary);font-size:var(--font-size-base)}.package-specs{margin-bottom:var(--spacing-xl);text-align:left}.spec-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.spec-label{color:rgba(255,255,255,.8)}.spec-value{font-weight:600;color:var(--white)}.package-features{margin-bottom:var(--spacing-xl);text-align:left}.package-features .feature{padding:var(--spacing-xs) 0;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.mail-features,.technical-details,.vps-features,.web-features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.detail-card{padding:var(--spacing-lg);text-align:center}.detail-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.detail-card h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.use-cases{padding:var(--spacing-3xl) 0}.use-cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.use-case-item{padding:var(--spacing-lg)}.use-case-item h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--primary-color)}.use-case-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.cms-support,.operating-systems,.technologies{padding:var(--spacing-3xl) 0}.cms-grid,.os-grid,.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.cms-item,.os-item,.tech-item{padding:var(--spacing-md);text-align:center}.os-icon,.tech-icon{width:28px;height:28px;margin:0 auto var(--spacing-sm);color:var(--primary-color)}.cms-logo{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-base);color:var(--text-primary)}.cms-item h3,.os-item h3,.tech-item h3{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.cms-item p,.os-item p,.tech-item p{color:rgba(255,255,255,.7);font-size:var(--font-size-xs)}.performance-security{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.perf-sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.perf-sec-item{padding:var(--spacing-lg);text-align:center}.perf-sec-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.about-hero,.contact-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.about-hero-content,.contact-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.about-hero-title,.contact-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.about-hero-description,.contact-hero-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);line-height:1.6}.company-story{padding:var(--spacing-3xl) 0}.story-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-3xl);align-items:center}.story-text p{margin-bottom:var(--spacing-lg);color:var(--text-secondary);line-height:1.6}.story-visual{padding:var(--spacing-2xl);text-align:center}.location-info{margin-bottom:var(--spacing-2xl)}.location-icon{width:60px;height:60px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.location-info h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.location-details{text-align:center}.location-details p{color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.stat-item{text-align:center}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.mission{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.mission-item{padding:var(--spacing-lg);text-align:center}.mission-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.values{padding:var(--spacing-3xl) 0}.values-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.values-grid .value-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);text-align:center}.values-grid .value-icon{width:48px;height:48px;margin-bottom:var(--spacing-lg);color:var(--primary-color);display:flex;align-items:center;justify-content:center}.values-grid .value-icon svg{width:100%;height:100%}.values-grid .value-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.values-grid .value-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.team{padding:var(--spacing-3xl) 0}.team-content{margin-top:var(--spacing-2xl)}.team-text{margin-bottom:var(--spacing-2xl)}.team-text p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.team-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.technology{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.tech-item{padding:var(--spacing-xl);text-align:center}.tech-item .tech-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.tech-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.tech-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.value-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);min-width:60px}.value-content h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.value-content p{color:rgba(255,255,255,.8);line-height:1.6}.technology-stack{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.tech-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.tech-stack-item{padding:var(--spacing-lg);text-align:center}.tech-icon{width:50px;height:50px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.why-choose-us{padding:var(--spacing-3xl) 0}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.advantage-item{padding:var(--spacing-lg);text-align:center}.advantage-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-options{padding:var(--spacing-3xl) 0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.contact-item{padding:var(--spacing-lg);text-align:center}.contact-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-link{display:inline-block;margin-top:var(--spacing-md);color:var(--primary-color);text-decoration:none;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.contact-link:hover{background:var(--primary-color);color:var(--text-primary)}.chat-btn{background:0 0;cursor:pointer}.contact-hours{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.contact-form-section{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.form-container{max-width:800px;margin:0 auto}.form-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-form{padding:var(--spacing-2xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:var(--text-primary);font-family:inherit;transition:all var(--transition-base)}.form-group select{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.form-group select option{background:rgba(13,8,33,.95);color:var(--text-primary);padding:var(--spacing-sm)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.15)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:0 0;position:relative;flex-shrink:0;margin-top:2px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--white);font-size:12px;font-weight:700}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.form-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.faq-section{padding:var(--spacing-3xl) 0}.faq-grid{display:grid;gap:var(--spacing-lg);max-width:800px;margin:0 auto}.faq-item{padding:0;overflow:hidden;transition:all var(--transition-base);border:1px solid transparent}.faq-item:hover{border-color:var(--primary-color);box-shadow:0 0 20px rgba(255,81,249,.2);transform:translateY(-2px)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-base)}.faq-question h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.faq-toggle{font-size:var(--font-size-2xl);font-weight:300;color:var(--primary-color);transition:transform var(--transition-base)}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.faq-answer p{padding:0 var(--spacing-lg) var(--spacing-lg);color:rgba(255,255,255,.8);line-height:1.6;margin:0}.response-time{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.response-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-2xl);align-items:center;padding:var(--spacing-2xl)}.response-stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.response-text h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.response-text p{color:rgba(255,255,255,.8);line-height:1.6}@media (max-width:768px){.product-hero-features{gap:var(--spacing-lg)}.hero-feature{font-size:var(--font-size-sm)}.packages-grid{grid-template-columns:1fr}.benefits-grid,.steps-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.story-content{grid-template-columns:1fr}.stats{flex-direction:column;gap:var(--spacing-md)}.team-stats,.values-grid{grid-template-columns:1fr 1fr!important}.form-row{grid-template-columns:1fr}.response-content{grid-template-columns:1fr;text-align:center}.response-stats{flex-direction:column;gap:var(--spacing-md)}.form-actions{flex-direction:column;align-items:center}}.legal-hero{padding:calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);text-align:center}.legal-hero-content{max-width:800px;margin:0 auto}.legal-hero-title{font-size:clamp(2rem, 5vw, 3rem);font-weight:700;margin-bottom:var(--spacing-md);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-description{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.legal-content{padding:var(--spacing-2xl) 0}.legal-container{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.legal-section{padding:var(--spacing-xl)}.legal-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary)}.legal-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-md)}.legal-section h3:first-child{margin-top:0}.legal-block{margin-bottom:var(--spacing-md)}.legal-block:last-child{margin-bottom:0}.legal-block p{color:var(--text-secondary);line-height:1.8;margin-bottom:var(--spacing-sm)}.legal-block p:last-child{margin-bottom:0}.legal-block a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.legal-block a:hover{color:var(--primary-light);text-decoration:underline}.legal-block ol,.legal-block ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg);color:var(--text-secondary)}.legal-block li{margin-bottom:var(--spacing-xs);line-height:1.7}.legal-note{font-size:.875rem;color:var(--text-muted);background:rgba(var(--primary-rgb),.1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}@media (max-width:768px){.legal-section{padding:var(--spacing-lg)}.legal-section h2{font-size:1.25rem}.legal-hero{padding:calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl)}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:rgba(13,8,33,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px rgba(0,0,0,.3);transform:translateY(100%);opacity:0;visibility:hidden;transition:.4s cubic-bezier(.4, 0, .2, 1)}.cookie-consent.show{transform:translateY(0);opacity:1;visibility:visible}.cookie-consent.hide{transform:translateY(100%);opacity:0;visibility:hidden}.cookie-consent-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-consent-content{display:flex;align-items:flex-start;gap:var(--spacing-lg);flex:1;min-width:300px}.cookie-consent-icon{width:48px;height:48px;flex-shrink:0;color:var(--primary-color)}.cookie-consent-icon svg{width:100%;height:100%}.cookie-consent-text h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.cookie-consent-text p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.cookie-consent-text a{color:var(--primary-color);text-decoration:none;font-weight:500}.cookie-consent-text a:hover{text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.cookie-consent-actions .btn{white-space:nowrap}.btn-text{background:0 0;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);font-weight:500;cursor:pointer;transition:color var(--transition-base)}.btn-text:hover{color:var(--primary-color)}.cookie-settings-panel{border-top:1px solid var(--glass-border);background:rgba(0,0,0,.3);animation:.3s ease-out slideDown}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-settings-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.cookie-settings-content h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.cookie-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid rgba(255,255,255,.1)}.cookie-option:last-of-type{border-bottom:none}.cookie-option-info{flex:1;padding-right:var(--spacing-lg)}.cookie-option-info strong{display:block;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.cookie-option-info p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5}.cookie-toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.2);border-radius:28px;transition:all var(--transition-base)}.cookie-toggle-slider::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:all var(--transition-base)}.cookie-toggle input:checked+.cookie-toggle-slider{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1))}.cookie-toggle input:checked+.cookie-toggle-slider::before{transform:translateX(24px)}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;opacity:.7}.cookie-toggle input:focus+.cookie-toggle-slider{box-shadow:0 0 0 3px rgba(255,81,249,.3)}.cookie-settings-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}@media (max-width:768px){.cookie-consent-container{flex-direction:column;align-items:stretch;padding:var(--spacing-lg)}.cookie-consent-content{flex-direction:column;align-items:center;text-align:center}.cookie-consent-icon{width:40px;height:40px}.cookie-consent-actions{flex-direction:column;width:100%}.cookie-consent-actions .btn{width:100%;justify-content:center}.cookie-settings-actions{flex-direction:column}.cookie-settings-actions .btn{width:100%}.cookie-option{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.cookie-option-info{padding-right:0}}
\ No newline at end of file
From b6e268855e59da2273514679800be3009cf7cff4 Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 21:17:11 +0200
Subject: [PATCH 10/16] Update CSS styles: Enhanced style.css with refined
layout and improved responsiveness. Adjusted CSS variables for better visual
consistency and user experience across the application.
---
public/assets/css/style.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/assets/css/style.css b/public/assets/css/style.css
index 94e7b30..3396912 100644
--- a/public/assets/css/style.css
+++ b/public/assets/css/style.css
@@ -1 +1 @@
-*{margin:0;padding:0;box-sizing:border-box}:root{--background-color:#0d0821;--primary-color:#ff51f9;--accent-color-1:#a348ff;--accent-color-2:#3978ff;--highlight-color:#f093ff;--accent-deep:#6b2aff;--accent-neon-blue:#00cfff;--accent-pink-dark:#c31adf;--success-color:#32fba2;--warning-color:#ffcc00;--error-color:#ff4d6d;--neutral-light:#1a1230;--neutral-medium:#3d3a4e;--text-primary:#ffffff;--text-secondary:#cfc9dd;--white:#ffffff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-primary:linear-gradient(135deg, var(--background-color) 0%, var(--neutral-light) 100%);--bg-secondary:linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color-1) 100%);--bg-accent:linear-gradient(135deg, var(--accent-deep) 0%, var(--accent-color-1) 100%);--bg-neon:linear-gradient(135deg, var(--accent-neon-blue) 0%, var(--primary-color) 100%);--glass-bg:rgba(255, 255, 255, 0.05);--glass-border:rgba(255, 255, 255, 0.1);--glass-shadow:0 8px 32px 0 rgba(255, 81, 249, 0.2);--glass-shadow-accent:0 8px 32px 0 rgba(163, 72, 255, 0.3);--glass-shadow-neon:0 8px 32px 0 rgba(0, 207, 255, 0.3);--font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-logo:'Russo One',sans-serif;--font-slogan:'Source Sans Pro',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--transition-fast:0.15s ease-in-out;--transition-base:0.3s ease-in-out;--transition-slow:0.5s ease-in-out}body{font-family:var(--font-family);line-height:1.6;color:var(--text-primary);background:var(--background-color);min-height:100vh;overflow-x:hidden}.glass-card{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:all var(--transition-base)}.glass-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px 0 rgba(31,38,135,.5)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(13,8,33,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 20px rgba(255,81,249,.1);transition:all var(--transition-base)}.header.scrolled{background:rgba(13,8,33,.523);box-shadow:0 4px 30px rgba(255,81,249,.2)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo a{text-decoration:none;display:flex;align-items:center}.logo-image{height:50px;width:auto;object-fit:contain;transition:var(--transition-base)}.logo-image:hover{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(255, 81, 249, .5))}.nav-menu{display:flex;list-style:none;gap:var(--spacing-xl);align-items:center}.nav-link{text-decoration:none;color:var(--white);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-base);position:relative}.nav-link.active,.nav-link:hover{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-base);list-style:none}.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu li{margin:0}.dropdown-menu a{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--white);text-decoration:none;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.dropdown-menu a:hover{background:rgba(119, 119, 119, 0.616)}.nav-toggle{display:none;flex-direction:column;cursor:pointer}.nav-toggle span{width:25px;height:3px;background:var(--white);margin:3px 0;transition:var(--transition-base)}.hero{padding:120px 0 80px;min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml, ');z-index:-1}.hero-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);align-items:center}.hero-title{font-size:var(--font-size-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.highlight{background:linear-gradient(135deg,var(--primary-color),var(--highlight-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.hero-actions{display:flex;gap:var(--spacing-lg)}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-card{padding:var(--spacing-2xl);text-align:center;max-width:300px}.server-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.hero-card h3{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-sm)}.hero-card p{color:var(--text-secondary);font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));color:var(--text-primary);box-shadow:0 4px 15px 0 rgba(255,81,249,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px 0 rgba(255,81,249,.4)}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-lg)}.section-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);max-width:600px;margin:0 auto}.products{padding:var(--spacing-3xl) 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.product-card{padding:var(--spacing-2xl);text-align:center;position:relative;transition:all var(--transition-base)}.product-card.featured{transform:scale(1.05);border:2px solid var(--primary-light)}.featured-badge{position:absolute;top:-10px;right:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-2));color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600}.product-icon{width:40px;height:40px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.product-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.product-description{color:rgba(255,255,255,.8);margin-bottom:var(--spacing-lg);line-height:1.6}.product-features{list-style:none;padding:0;margin-bottom:var(--spacing-lg);text-align:center}.product-features li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;line-height:1.5}.product-features li::before{content:'•';color:var(--primary-color);font-weight:700;margin-right:var(--spacing-sm)}.feature{font-size:var(--font-size-sm);color:rgba(255,255,255,.9)}.product-price{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:rgba(255,255,255,.9)}.price{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color)}.features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.feature-item{padding:var(--spacing-lg);text-align:center}.feature-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.feature-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.feature-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.how-it-works{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.step-item{padding:var(--spacing-xl);text-align:center;position:relative}.step-number{width:60px;height:60px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--white);margin:0 auto var(--spacing-lg);box-shadow:0 8px 32px 0 rgba(255,81,249,.3)}.step-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.step-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.mail-features{padding:var(--spacing-3xl) 0}.benefits{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.benefit-item{padding:var(--spacing-xl);text-align:center}.benefit-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.benefit-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.benefit-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.cta{padding:var(--spacing-3xl) 0}.cta-content{text-align:center;padding:var(--spacing-3xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-lg)}.cta-content p{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.cta-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.footer{background:rgba(0,0,0,.3);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--primary-color)}.footer-section p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.footer-location{display:flex;align-items:center;gap:var(--spacing-sm);color:rgba(255,255,255,.7)}.footer-location svg{width:16px;height:16px}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-sm)}.footer-section ul li a{color:rgba(255,255,255,.8);text-decoration:none;transition:color var(--transition-base)}.footer-section ul li a:hover{color:var(--primary-color)}.footer-bottom{padding-top:var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1);text-align:center;color:rgba(255,255,255,.6)}@media (max-width:768px){.nav-menu{display:none}.nav-toggle{display:flex}.hero-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{flex-direction:column;align-items:center}.features-grid,.products-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width:480px){.container,.nav-container{padding:0 var(--spacing-md)}.hero{padding:100px 0 60px}.hero-title{font-size:var(--font-size-2xl)}.section-title{font-size:var(--font-size-3xl)}.cta-content,.feature-item,.product-card{padding:var(--spacing-xl)}.values-grid{grid-template-columns:1fr!important}.team-stats{grid-template-columns:1fr 1fr!important}}.product-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.product-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.breadcrumb{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.breadcrumb a{color:var(--primary-color);text-decoration:none}.breadcrumb span{margin:0 var(--spacing-sm)}.product-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.product-hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.product-hero-features{display:flex;justify-content:center;gap:var(--spacing-2xl);flex-wrap:wrap}.hero-feature{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--primary-color);font-weight:500}.hero-feature svg{width:16px;height:16px}.packages{padding:var(--spacing-3xl) 0}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-2xl)}.package-card{padding:var(--spacing-2xl);position:relative;text-align:center}.package-header{margin-bottom:var(--spacing-xl)}.package-name{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.package-price{margin-bottom:var(--spacing-xl)}.package-price .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-color)}.package-price .period{color:var(--text-secondary);font-size:var(--font-size-base)}.package-specs{margin-bottom:var(--spacing-xl);text-align:left}.spec-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.spec-label{color:rgba(255,255,255,.8)}.spec-value{font-weight:600;color:var(--white)}.package-features{margin-bottom:var(--spacing-xl);text-align:left}.package-features .feature{padding:var(--spacing-xs) 0;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.mail-features,.technical-details,.vps-features,.web-features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.detail-card{padding:var(--spacing-lg);text-align:center}.detail-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.detail-card h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.use-cases{padding:var(--spacing-3xl) 0}.use-cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.use-case-item{padding:var(--spacing-lg)}.use-case-item h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--primary-color)}.use-case-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.cms-support,.operating-systems,.technologies{padding:var(--spacing-3xl) 0}.cms-grid,.os-grid,.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.cms-item,.os-item,.tech-item{padding:var(--spacing-md);text-align:center}.os-icon,.tech-icon{width:28px;height:28px;margin:0 auto var(--spacing-sm);color:var(--primary-color)}.cms-logo{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-base);color:var(--text-primary)}.cms-item h3,.os-item h3,.tech-item h3{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.cms-item p,.os-item p,.tech-item p{color:rgba(255,255,255,.7);font-size:var(--font-size-xs)}.performance-security{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.perf-sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.perf-sec-item{padding:var(--spacing-lg);text-align:center}.perf-sec-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.about-hero,.contact-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.about-hero-content,.contact-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.about-hero-title,.contact-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.about-hero-description,.contact-hero-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);line-height:1.6}.company-story{padding:var(--spacing-3xl) 0}.story-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-3xl);align-items:center}.story-text p{margin-bottom:var(--spacing-lg);color:var(--text-secondary);line-height:1.6}.story-visual{padding:var(--spacing-2xl);text-align:center}.location-info{margin-bottom:var(--spacing-2xl)}.location-icon{width:60px;height:60px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.location-info h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.location-details{text-align:center}.location-details p{color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.stat-item{text-align:center}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.mission{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.mission-item{padding:var(--spacing-lg);text-align:center}.mission-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.values{padding:var(--spacing-3xl) 0}.values-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.values-grid .value-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);text-align:center}.values-grid .value-icon{width:48px;height:48px;margin-bottom:var(--spacing-lg);color:var(--primary-color);display:flex;align-items:center;justify-content:center}.values-grid .value-icon svg{width:100%;height:100%}.values-grid .value-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.values-grid .value-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.team{padding:var(--spacing-3xl) 0}.team-content{margin-top:var(--spacing-2xl)}.team-text{margin-bottom:var(--spacing-2xl)}.team-text p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.team-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.technology{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.tech-item{padding:var(--spacing-xl);text-align:center}.tech-item .tech-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.tech-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.tech-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.value-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);min-width:60px}.value-content h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.value-content p{color:rgba(255,255,255,.8);line-height:1.6}.technology-stack{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.tech-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.tech-stack-item{padding:var(--spacing-lg);text-align:center}.tech-icon{width:50px;height:50px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.why-choose-us{padding:var(--spacing-3xl) 0}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.advantage-item{padding:var(--spacing-lg);text-align:center}.advantage-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-options{padding:var(--spacing-3xl) 0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.contact-item{padding:var(--spacing-lg);text-align:center}.contact-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-link{display:inline-block;margin-top:var(--spacing-md);color:var(--primary-color);text-decoration:none;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.contact-link:hover{background:var(--primary-color);color:var(--text-primary)}.chat-btn{background:0 0;cursor:pointer}.contact-hours{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.contact-form-section{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.form-container{max-width:800px;margin:0 auto}.form-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-form{padding:var(--spacing-2xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:var(--text-primary);font-family:inherit;transition:all var(--transition-base)}.form-group select{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.form-group select option{background:rgba(13,8,33,.95);color:var(--text-primary);padding:var(--spacing-sm)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.15)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:0 0;position:relative;flex-shrink:0;margin-top:2px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--white);font-size:12px;font-weight:700}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.form-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.faq-section{padding:var(--spacing-3xl) 0}.faq-grid{display:grid;gap:var(--spacing-lg);max-width:800px;margin:0 auto}.faq-item{padding:0;overflow:hidden;transition:all var(--transition-base);border:1px solid transparent}.faq-item:hover{border-color:var(--primary-color);box-shadow:0 0 20px rgba(255,81,249,.2);transform:translateY(-2px)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-base)}.faq-question h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.faq-toggle{font-size:var(--font-size-2xl);font-weight:300;color:var(--primary-color);transition:transform var(--transition-base)}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.faq-answer p{padding:0 var(--spacing-lg) var(--spacing-lg);color:rgba(255,255,255,.8);line-height:1.6;margin:0}.response-time{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.response-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-2xl);align-items:center;padding:var(--spacing-2xl)}.response-stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.response-text h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.response-text p{color:rgba(255,255,255,.8);line-height:1.6}@media (max-width:768px){.product-hero-features{gap:var(--spacing-lg)}.hero-feature{font-size:var(--font-size-sm)}.packages-grid{grid-template-columns:1fr}.benefits-grid,.steps-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.story-content{grid-template-columns:1fr}.stats{flex-direction:column;gap:var(--spacing-md)}.team-stats,.values-grid{grid-template-columns:1fr 1fr!important}.form-row{grid-template-columns:1fr}.response-content{grid-template-columns:1fr;text-align:center}.response-stats{flex-direction:column;gap:var(--spacing-md)}.form-actions{flex-direction:column;align-items:center}}.legal-hero{padding:calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);text-align:center}.legal-hero-content{max-width:800px;margin:0 auto}.legal-hero-title{font-size:clamp(2rem, 5vw, 3rem);font-weight:700;margin-bottom:var(--spacing-md);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-description{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.legal-content{padding:var(--spacing-2xl) 0}.legal-container{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.legal-section{padding:var(--spacing-xl)}.legal-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary)}.legal-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-md)}.legal-section h3:first-child{margin-top:0}.legal-block{margin-bottom:var(--spacing-md)}.legal-block:last-child{margin-bottom:0}.legal-block p{color:var(--text-secondary);line-height:1.8;margin-bottom:var(--spacing-sm)}.legal-block p:last-child{margin-bottom:0}.legal-block a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.legal-block a:hover{color:var(--primary-light);text-decoration:underline}.legal-block ol,.legal-block ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg);color:var(--text-secondary)}.legal-block li{margin-bottom:var(--spacing-xs);line-height:1.7}.legal-note{font-size:.875rem;color:var(--text-muted);background:rgba(var(--primary-rgb),.1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}@media (max-width:768px){.legal-section{padding:var(--spacing-lg)}.legal-section h2{font-size:1.25rem}.legal-hero{padding:calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl)}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:rgba(13,8,33,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px rgba(0,0,0,.3);transform:translateY(100%);opacity:0;visibility:hidden;transition:.4s cubic-bezier(.4, 0, .2, 1)}.cookie-consent.show{transform:translateY(0);opacity:1;visibility:visible}.cookie-consent.hide{transform:translateY(100%);opacity:0;visibility:hidden}.cookie-consent-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-consent-content{display:flex;align-items:flex-start;gap:var(--spacing-lg);flex:1;min-width:300px}.cookie-consent-icon{width:48px;height:48px;flex-shrink:0;color:var(--primary-color)}.cookie-consent-icon svg{width:100%;height:100%}.cookie-consent-text h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.cookie-consent-text p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.cookie-consent-text a{color:var(--primary-color);text-decoration:none;font-weight:500}.cookie-consent-text a:hover{text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.cookie-consent-actions .btn{white-space:nowrap}.btn-text{background:0 0;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);font-weight:500;cursor:pointer;transition:color var(--transition-base)}.btn-text:hover{color:var(--primary-color)}.cookie-settings-panel{border-top:1px solid var(--glass-border);background:rgba(0,0,0,.3);animation:.3s ease-out slideDown}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-settings-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.cookie-settings-content h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.cookie-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid rgba(255,255,255,.1)}.cookie-option:last-of-type{border-bottom:none}.cookie-option-info{flex:1;padding-right:var(--spacing-lg)}.cookie-option-info strong{display:block;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.cookie-option-info p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5}.cookie-toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.2);border-radius:28px;transition:all var(--transition-base)}.cookie-toggle-slider::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:all var(--transition-base)}.cookie-toggle input:checked+.cookie-toggle-slider{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1))}.cookie-toggle input:checked+.cookie-toggle-slider::before{transform:translateX(24px)}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;opacity:.7}.cookie-toggle input:focus+.cookie-toggle-slider{box-shadow:0 0 0 3px rgba(255,81,249,.3)}.cookie-settings-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}@media (max-width:768px){.cookie-consent-container{flex-direction:column;align-items:stretch;padding:var(--spacing-lg)}.cookie-consent-content{flex-direction:column;align-items:center;text-align:center}.cookie-consent-icon{width:40px;height:40px}.cookie-consent-actions{flex-direction:column;width:100%}.cookie-consent-actions .btn{width:100%;justify-content:center}.cookie-settings-actions{flex-direction:column}.cookie-settings-actions .btn{width:100%}.cookie-option{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.cookie-option-info{padding-right:0}}
\ No newline at end of file
+*{margin:0;padding:0;box-sizing:border-box}:root{--background-color:#0d0821;--primary-color:#ff51f9;--accent-color-1:#a348ff;--accent-color-2:#3978ff;--highlight-color:#f093ff;--accent-deep:#6b2aff;--accent-neon-blue:#00cfff;--accent-pink-dark:#c31adf;--success-color:#32fba2;--warning-color:#ffcc00;--error-color:#ff4d6d;--neutral-light:#1a1230;--neutral-medium:#3d3a4e;--text-primary:#ffffff;--text-secondary:#cfc9dd;--white:#ffffff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-primary:linear-gradient(135deg, var(--background-color) 0%, var(--neutral-light) 100%);--bg-secondary:linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color-1) 100%);--bg-accent:linear-gradient(135deg, var(--accent-deep) 0%, var(--accent-color-1) 100%);--bg-neon:linear-gradient(135deg, var(--accent-neon-blue) 0%, var(--primary-color) 100%);--glass-bg:rgba(255, 255, 255, 0.05);--glass-border:rgba(255, 255, 255, 0.1);--glass-shadow:0 8px 32px 0 rgba(255, 81, 249, 0.2);--glass-shadow-accent:0 8px 32px 0 rgba(163, 72, 255, 0.3);--glass-shadow-neon:0 8px 32px 0 rgba(0, 207, 255, 0.3);--font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-logo:'Russo One',sans-serif;--font-slogan:'Source Sans Pro',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--transition-fast:0.15s ease-in-out;--transition-base:0.3s ease-in-out;--transition-slow:0.5s ease-in-out}body{font-family:var(--font-family);line-height:1.6;color:var(--text-primary);background:var(--background-color);min-height:100vh;overflow-x:hidden}.glass-card{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:all var(--transition-base)}.glass-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px 0 rgba(31,38,135,.5)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(13,8,33,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 20px rgba(255,81,249,.1);transition:all var(--transition-base)}.header.scrolled{background:rgba(13,8,33,.523);box-shadow:0 4px 30px rgba(255,81,249,.2)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo a{text-decoration:none;display:flex;align-items:center}.logo-image{height:50px;width:auto;object-fit:contain;transition:var(--transition-base)}.logo-image:hover{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(255, 81, 249, .5))}.nav-menu{display:flex;list-style:none;gap:var(--spacing-xl);align-items:center}.nav-link{text-decoration:none;color:var(--white);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-base);position:relative}.nav-link.active,.nav-link:hover{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;background:#1a1230e0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-base);list-style:none}.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu li{margin:0}.dropdown-menu a{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--white);text-decoration:none;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.dropdown-menu a:hover{background:rgba(119, 119, 119, 0.616)}.nav-toggle{display:none;flex-direction:column;cursor:pointer}.nav-toggle span{width:25px;height:3px;background:var(--white);margin:3px 0;transition:var(--transition-base)}.hero{padding:120px 0 80px;min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml, ');z-index:-1}.hero-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);align-items:center}.hero-title{font-size:var(--font-size-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.highlight{background:linear-gradient(135deg,var(--primary-color),var(--highlight-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.hero-actions{display:flex;gap:var(--spacing-lg)}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-card{padding:var(--spacing-2xl);text-align:center;max-width:300px}.server-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.hero-card h3{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-sm)}.hero-card p{color:var(--text-secondary);font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));color:var(--text-primary);box-shadow:0 4px 15px 0 rgba(255,81,249,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px 0 rgba(255,81,249,.4)}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-lg)}.section-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);max-width:600px;margin:0 auto}.products{padding:var(--spacing-3xl) 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.product-card{padding:var(--spacing-2xl);text-align:center;position:relative;transition:all var(--transition-base)}.product-card.featured{transform:scale(1.05);border:2px solid var(--primary-light)}.featured-badge{position:absolute;top:-10px;right:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-2));color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600}.product-icon{width:40px;height:40px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.product-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.product-description{color:rgba(255,255,255,.8);margin-bottom:var(--spacing-lg);line-height:1.6}.product-features{list-style:none;padding:0;margin-bottom:var(--spacing-lg);text-align:center}.product-features li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;line-height:1.5}.product-features li::before{content:'•';color:var(--primary-color);font-weight:700;margin-right:var(--spacing-sm)}.feature{font-size:var(--font-size-sm);color:rgba(255,255,255,.9)}.product-price{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:rgba(255,255,255,.9)}.price{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color)}.features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.feature-item{padding:var(--spacing-lg);text-align:center}.feature-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.feature-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.feature-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.how-it-works{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.step-item{padding:var(--spacing-xl);text-align:center;position:relative}.step-number{width:60px;height:60px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--white);margin:0 auto var(--spacing-lg);box-shadow:0 8px 32px 0 rgba(255,81,249,.3)}.step-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.step-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.mail-features{padding:var(--spacing-3xl) 0}.benefits{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.benefit-item{padding:var(--spacing-xl);text-align:center}.benefit-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.benefit-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.benefit-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.cta{padding:var(--spacing-3xl) 0}.cta-content{text-align:center;padding:var(--spacing-3xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-lg)}.cta-content p{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.cta-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.footer{background:rgba(0,0,0,.3);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--primary-color)}.footer-section p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.footer-location{display:flex;align-items:center;gap:var(--spacing-sm);color:rgba(255,255,255,.7)}.footer-location svg{width:16px;height:16px}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-sm)}.footer-section ul li a{color:rgba(255,255,255,.8);text-decoration:none;transition:color var(--transition-base)}.footer-section ul li a:hover{color:var(--primary-color)}.footer-bottom{padding-top:var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1);text-align:center;color:rgba(255,255,255,.6)}@media (max-width:768px){.nav-menu{display:none}.nav-toggle{display:flex}.hero-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{flex-direction:column;align-items:center}.features-grid,.products-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width:480px){.container,.nav-container{padding:0 var(--spacing-md)}.hero{padding:100px 0 60px}.hero-title{font-size:var(--font-size-2xl)}.section-title{font-size:var(--font-size-3xl)}.cta-content,.feature-item,.product-card{padding:var(--spacing-xl)}.values-grid{grid-template-columns:1fr!important}.team-stats{grid-template-columns:1fr 1fr!important}}.product-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.product-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.breadcrumb{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.breadcrumb a{color:var(--primary-color);text-decoration:none}.breadcrumb span{margin:0 var(--spacing-sm)}.product-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.product-hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.product-hero-features{display:flex;justify-content:center;gap:var(--spacing-2xl);flex-wrap:wrap}.hero-feature{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--primary-color);font-weight:500}.hero-feature svg{width:16px;height:16px}.packages{padding:var(--spacing-3xl) 0}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-2xl)}.package-card{padding:var(--spacing-2xl);position:relative;text-align:center}.package-header{margin-bottom:var(--spacing-xl)}.package-name{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.package-price{margin-bottom:var(--spacing-xl)}.package-price .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-color)}.package-price .period{color:var(--text-secondary);font-size:var(--font-size-base)}.package-specs{margin-bottom:var(--spacing-xl);text-align:left}.spec-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.spec-label{color:rgba(255,255,255,.8)}.spec-value{font-weight:600;color:var(--white)}.package-features{margin-bottom:var(--spacing-xl);text-align:left}.package-features .feature{padding:var(--spacing-xs) 0;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.mail-features,.technical-details,.vps-features,.web-features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.detail-card{padding:var(--spacing-lg);text-align:center}.detail-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.detail-card h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.use-cases{padding:var(--spacing-3xl) 0}.use-cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.use-case-item{padding:var(--spacing-lg)}.use-case-item h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--primary-color)}.use-case-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.cms-support,.operating-systems,.technologies{padding:var(--spacing-3xl) 0}.cms-grid,.os-grid,.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.cms-item,.os-item,.tech-item{padding:var(--spacing-md);text-align:center}.os-icon,.tech-icon{width:28px;height:28px;margin:0 auto var(--spacing-sm);color:var(--primary-color)}.cms-logo{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-base);color:var(--text-primary)}.cms-item h3,.os-item h3,.tech-item h3{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.cms-item p,.os-item p,.tech-item p{color:rgba(255,255,255,.7);font-size:var(--font-size-xs)}.performance-security{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.perf-sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.perf-sec-item{padding:var(--spacing-lg);text-align:center}.perf-sec-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.about-hero,.contact-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.about-hero-content,.contact-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.about-hero-title,.contact-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.about-hero-description,.contact-hero-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);line-height:1.6}.company-story{padding:var(--spacing-3xl) 0}.story-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-3xl);align-items:center}.story-text p{margin-bottom:var(--spacing-lg);color:var(--text-secondary);line-height:1.6}.story-visual{padding:var(--spacing-2xl);text-align:center}.location-info{margin-bottom:var(--spacing-2xl)}.location-icon{width:60px;height:60px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.location-info h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.location-details{text-align:center}.location-details p{color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.stat-item{text-align:center}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.mission{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.mission-item{padding:var(--spacing-lg);text-align:center}.mission-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.values{padding:var(--spacing-3xl) 0}.values-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.values-grid .value-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);text-align:center}.values-grid .value-icon{width:48px;height:48px;margin-bottom:var(--spacing-lg);color:var(--primary-color);display:flex;align-items:center;justify-content:center}.values-grid .value-icon svg{width:100%;height:100%}.values-grid .value-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.values-grid .value-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.team{padding:var(--spacing-3xl) 0}.team-content{margin-top:var(--spacing-2xl)}.team-text{margin-bottom:var(--spacing-2xl)}.team-text p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.team-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.technology{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.tech-item{padding:var(--spacing-xl);text-align:center}.tech-item .tech-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.tech-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.tech-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.value-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);min-width:60px}.value-content h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.value-content p{color:rgba(255,255,255,.8);line-height:1.6}.technology-stack{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.tech-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.tech-stack-item{padding:var(--spacing-lg);text-align:center}.tech-icon{width:50px;height:50px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.why-choose-us{padding:var(--spacing-3xl) 0}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.advantage-item{padding:var(--spacing-lg);text-align:center}.advantage-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-options{padding:var(--spacing-3xl) 0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.contact-item{padding:var(--spacing-lg);text-align:center}.contact-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-link{display:inline-block;margin-top:var(--spacing-md);color:var(--primary-color);text-decoration:none;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.contact-link:hover{background:var(--primary-color);color:var(--text-primary)}.chat-btn{background:0 0;cursor:pointer}.contact-hours{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.contact-form-section{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.form-container{max-width:800px;margin:0 auto}.form-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-form{padding:var(--spacing-2xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:var(--text-primary);font-family:inherit;transition:all var(--transition-base)}.form-group select{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.form-group select option{background:rgba(13,8,33,.95);color:var(--text-primary);padding:var(--spacing-sm)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.15)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:0 0;position:relative;flex-shrink:0;margin-top:2px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--white);font-size:12px;font-weight:700}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.form-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.faq-section{padding:var(--spacing-3xl) 0}.faq-grid{display:grid;gap:var(--spacing-lg);max-width:800px;margin:0 auto}.faq-item{padding:0;overflow:hidden;transition:all var(--transition-base);border:1px solid transparent}.faq-item:hover{border-color:var(--primary-color);box-shadow:0 0 20px rgba(255,81,249,.2);transform:translateY(-2px)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-base)}.faq-question h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.faq-toggle{font-size:var(--font-size-2xl);font-weight:300;color:var(--primary-color);transition:transform var(--transition-base)}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.faq-answer p{padding:0 var(--spacing-lg) var(--spacing-lg);color:rgba(255,255,255,.8);line-height:1.6;margin:0}.response-time{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.response-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-2xl);align-items:center;padding:var(--spacing-2xl)}.response-stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.response-text h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.response-text p{color:rgba(255,255,255,.8);line-height:1.6}@media (max-width:768px){.product-hero-features{gap:var(--spacing-lg)}.hero-feature{font-size:var(--font-size-sm)}.packages-grid{grid-template-columns:1fr}.benefits-grid,.steps-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.story-content{grid-template-columns:1fr}.stats{flex-direction:column;gap:var(--spacing-md)}.team-stats,.values-grid{grid-template-columns:1fr 1fr!important}.form-row{grid-template-columns:1fr}.response-content{grid-template-columns:1fr;text-align:center}.response-stats{flex-direction:column;gap:var(--spacing-md)}.form-actions{flex-direction:column;align-items:center}}.legal-hero{padding:calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);text-align:center}.legal-hero-content{max-width:800px;margin:0 auto}.legal-hero-title{font-size:clamp(2rem, 5vw, 3rem);font-weight:700;margin-bottom:var(--spacing-md);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-description{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.legal-content{padding:var(--spacing-2xl) 0}.legal-container{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.legal-section{padding:var(--spacing-xl)}.legal-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary)}.legal-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-md)}.legal-section h3:first-child{margin-top:0}.legal-block{margin-bottom:var(--spacing-md)}.legal-block:last-child{margin-bottom:0}.legal-block p{color:var(--text-secondary);line-height:1.8;margin-bottom:var(--spacing-sm)}.legal-block p:last-child{margin-bottom:0}.legal-block a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.legal-block a:hover{color:var(--primary-light);text-decoration:underline}.legal-block ol,.legal-block ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg);color:var(--text-secondary)}.legal-block li{margin-bottom:var(--spacing-xs);line-height:1.7}.legal-note{font-size:.875rem;color:var(--text-muted);background:rgba(var(--primary-rgb),.1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}@media (max-width:768px){.legal-section{padding:var(--spacing-lg)}.legal-section h2{font-size:1.25rem}.legal-hero{padding:calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl)}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:rgba(13,8,33,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px rgba(0,0,0,.3);transform:translateY(100%);opacity:0;visibility:hidden;transition:.4s cubic-bezier(.4, 0, .2, 1)}.cookie-consent.show{transform:translateY(0);opacity:1;visibility:visible}.cookie-consent.hide{transform:translateY(100%);opacity:0;visibility:hidden}.cookie-consent-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-consent-content{display:flex;align-items:flex-start;gap:var(--spacing-lg);flex:1;min-width:300px}.cookie-consent-icon{width:48px;height:48px;flex-shrink:0;color:var(--primary-color)}.cookie-consent-icon svg{width:100%;height:100%}.cookie-consent-text h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.cookie-consent-text p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.cookie-consent-text a{color:var(--primary-color);text-decoration:none;font-weight:500}.cookie-consent-text a:hover{text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.cookie-consent-actions .btn{white-space:nowrap}.btn-text{background:0 0;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);font-weight:500;cursor:pointer;transition:color var(--transition-base)}.btn-text:hover{color:var(--primary-color)}.cookie-settings-panel{border-top:1px solid var(--glass-border);background:rgba(0,0,0,.3);animation:.3s ease-out slideDown}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-settings-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.cookie-settings-content h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.cookie-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid rgba(255,255,255,.1)}.cookie-option:last-of-type{border-bottom:none}.cookie-option-info{flex:1;padding-right:var(--spacing-lg)}.cookie-option-info strong{display:block;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.cookie-option-info p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5}.cookie-toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.2);border-radius:28px;transition:all var(--transition-base)}.cookie-toggle-slider::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:all var(--transition-base)}.cookie-toggle input:checked+.cookie-toggle-slider{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1))}.cookie-toggle input:checked+.cookie-toggle-slider::before{transform:translateX(24px)}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;opacity:.7}.cookie-toggle input:focus+.cookie-toggle-slider{box-shadow:0 0 0 3px rgba(255,81,249,.3)}.cookie-settings-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}@media (max-width:768px){.cookie-consent-container{flex-direction:column;align-items:stretch;padding:var(--spacing-lg)}.cookie-consent-content{flex-direction:column;align-items:center;text-align:center}.cookie-consent-icon{width:40px;height:40px}.cookie-consent-actions{flex-direction:column;width:100%}.cookie-consent-actions .btn{width:100%;justify-content:center}.cookie-settings-actions{flex-direction:column}.cookie-settings-actions .btn{width:100%}.cookie-option{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.cookie-option-info{padding-right:0}}
\ No newline at end of file
From d3da589a1dd87c104a49b33e7769f9504ac53247 Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 21:26:29 +0200
Subject: [PATCH 11/16] Add animated gradient background for "Beliebt" badge:
Introduced a new CSS class for the featured badge with a linear gradient and
animation effects. Added media query to disable animation for users
preferring reduced motion, enhancing accessibility.
---
public/assets/css/custom.css | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/public/assets/css/custom.css b/public/assets/css/custom.css
index fef5517..0642a97 100644
--- a/public/assets/css/custom.css
+++ b/public/assets/css/custom.css
@@ -15,3 +15,28 @@
justify-content: center;
margin-top: 2rem;
}
+
+/* Animierter Farbverlauf für "Beliebt"-Badge */
+.featured-badge {
+ background: linear-gradient(135deg, #ff51f9 0%, #a348ff 50%, #3978ff 100%);
+ background-size: 220% 220%;
+ animation: featured-badge-colors 6s ease infinite;
+}
+
+@keyframes featured-badge-colors {
+ 0% {
+ background-position: 0% 50%;
+ }
+ 50% {
+ background-position: 100% 50%;
+ }
+ 100% {
+ background-position: 0% 50%;
+ }
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .featured-badge {
+ animation: none;
+ }
+}
From ec8686761ccf71cc0d7f46abaaeff95049fdb6aa Mon Sep 17 00:00:00 2001
From: TheOnlyMace <0815cracky@gmail.com>
Date: Thu, 9 Apr 2026 21:31:32 +0200
Subject: [PATCH 12/16] Enhance IT services section: Updated index.php to
include new CSS classes for the IT services section, improving layout and
responsiveness. Added styles for a 3x2 grid layout in custom.css, ensuring
better presentation across different screen sizes.
---
public/assets/css/custom.css | 24 ++++++++++++++++++++++++
public/index.php | 4 ++--
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/public/assets/css/custom.css b/public/assets/css/custom.css
index 0642a97..687f75d 100644
--- a/public/assets/css/custom.css
+++ b/public/assets/css/custom.css
@@ -16,6 +16,30 @@
margin-top: 2rem;
}
+/* IT-Dienstleistungen auf Startseite: ausgewogenes 3x2-Grid */
+.it-services-grid {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ max-width: 980px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.it-services-grid .feature-item {
+ height: 100%;
+}
+
+@media (max-width: 1024px) {
+ .it-services-grid {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+}
+
+@media (max-width: 640px) {
+ .it-services-grid {
+ grid-template-columns: 1fr;
+ }
+}
+
/* Animierter Farbverlauf für "Beliebt"-Badge */
.featured-badge {
background: linear-gradient(135deg, #ff51f9 0%, #a348ff 50%, #3978ff 100%);
diff --git a/public/index.php b/public/index.php
index 8dc7f6a..1211e46 100644
--- a/public/index.php
+++ b/public/index.php
@@ -156,7 +156,7 @@ includeHeader($page_title, $page_description, $current_page);
-
+
-
+
IT-Beratung
Individuelle Beratung für sinnvolle und wirtschaftliche IT-Entscheidungen.
From 96a5977283469d4f421ef0e914fdda7dbc6c288e Mon Sep 17 00:00:00 2001
From: smueller
Date: Fri, 22 May 2026 13:58:30 +0200
Subject: [PATCH 13/16] Refactor configuration loading: Updated multiple public
PHP files to require a new bootstrap file for configuration management.
Adjusted paths for product configuration to enhance maintainability and
consistency across the application.
---
backend/config/site-config.php | 68 ++++++++++++++++++++++++++++++++++
backend/includes/functions.php | 11 ++++++
backend/includes/header.php | 5 ++-
public/404.php | 2 +-
public/500.php | 2 +-
public/about.php | 2 +-
public/agb.php | 2 +-
public/bootstrap.php | 41 ++++++++++++++++++++
public/contact-handler.php | 15 +++-----
public/contact.php | 4 +-
public/datenschutz.php | 2 +-
public/impressum.php | 4 +-
public/index.php | 4 +-
public/it-dienstleistungen.php | 2 +-
public/mail-gateway.php | 4 +-
public/vpc.php | 4 +-
public/vps.php | 4 +-
public/webhosting.php | 4 +-
public/widerruf.php | 2 +-
19 files changed, 151 insertions(+), 31 deletions(-)
create mode 100644 backend/config/site-config.php
create mode 100644 public/bootstrap.php
diff --git a/backend/config/site-config.php b/backend/config/site-config.php
new file mode 100644
index 0000000..2dbd5e8
--- /dev/null
+++ b/backend/config/site-config.php
@@ -0,0 +1,68 @@
+
+ */
+function getAllowedOrigins(): array
+{
+ return [
+ 'https://' . SITE_DOMAIN_PRODUCTION,
+ 'https://www.' . SITE_DOMAIN_PRODUCTION,
+ 'https://' . SITE_DOMAIN_DEVELOPMENT,
+ 'http://localhost',
+ 'http://127.0.0.1',
+ 'http://localhost:8000',
+ ];
+}
+
+/**
+ * Kanonische Basis-URL für SEO (Produktion immer hexahost.de)
+ */
+function getCanonicalBaseUrl(): string
+{
+ return 'https://' . SITE_DOMAIN_PRODUCTION;
+}
diff --git a/backend/includes/functions.php b/backend/includes/functions.php
index 24d736c..2eb5041 100644
--- a/backend/includes/functions.php
+++ b/backend/includes/functions.php
@@ -3,6 +3,12 @@
* Helper functions for HexaHost.de
*/
+$configDir = defined('HEXAHOST_CONFIG_DIR')
+ ? HEXAHOST_CONFIG_DIR
+ : __DIR__ . '/../config';
+
+require_once $configDir . '/site-config.php';
+
// Sichere Session-Konfiguration
if (session_status() === PHP_SESSION_NONE) {
// Session-Cookie-Sicherheit
@@ -51,6 +57,11 @@ function includeHeader($title = '', $description = '', $page = '', $scripts = []
$current_page = $page;
$additional_scripts = $scripts;
+
+ if (!isset($canonical_url)) {
+ $requestPath = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?: '/';
+ $canonical_url = rtrim(getCanonicalBaseUrl(), '/') . $requestPath;
+ }
include __DIR__ . '/header.php';
}
diff --git a/backend/includes/header.php b/backend/includes/header.php
index eb00be5..2f74089 100644
--- a/backend/includes/header.php
+++ b/backend/includes/header.php
@@ -1,5 +1,8 @@
-
+
diff --git a/public/404.php b/public/404.php
index bff4941..58ba9bc 100644
--- a/public/404.php
+++ b/public/404.php
@@ -1,5 +1,5 @@
__DIR__ . '/includes',
+ 'config' => __DIR__ . '/config',
+ ],
+ [
+ 'includes' => __DIR__ . '/../backend/includes',
+ 'config' => __DIR__ . '/../backend/config',
+ ],
+ ];
+
+ $resolved = false;
+
+ foreach ($pathCandidates as $paths) {
+ if (is_file($paths['includes'] . '/functions.php')) {
+ define('HEXAHOST_INCLUDES_DIR', $paths['includes']);
+ define('HEXAHOST_CONFIG_DIR', $paths['config']);
+ require_once $paths['includes'] . '/functions.php';
+ $resolved = true;
+ break;
+ }
+ }
+
+ if (!$resolved) {
+ http_response_code(500);
+ header('Content-Type: text/plain; charset=utf-8');
+ echo 'HexaHost: Anwendung konnte nicht gestartet werden (includes nicht gefunden).';
+ exit;
+ }
+
+ define('HEXAHOST_BOOTSTRAPPED', true);
+}
diff --git a/public/contact-handler.php b/public/contact-handler.php
index ca47f74..600378f 100644
--- a/public/contact-handler.php
+++ b/public/contact-handler.php
@@ -9,8 +9,10 @@ if (session_status() === PHP_SESSION_NONE) {
session_start();
}
-// Konfiguration laden
-require_once 'config/mail-config.php';
+require_once __DIR__ . '/bootstrap.php';
+
+$configDir = defined('HEXAHOST_CONFIG_DIR') ? HEXAHOST_CONFIG_DIR : __DIR__ . '/config';
+require_once $configDir . '/mail-config.php';
// PHPMailer Autoload (falls via Composer installiert)
if (file_exists(__DIR__ . '/vendor/autoload.php')) {
@@ -43,13 +45,8 @@ function validateCSRFToken($token) {
return false;
}
-// CORS Headers für AJAX-Requests (nur eigene Domain erlauben)
-$allowed_origins = [
- 'https://hexahost.de',
- 'https://www.hexahost.de',
- 'http://localhost', // Für Entwicklung
- 'http://127.0.0.1' // Für Entwicklung
-];
+// CORS Headers für AJAX-Requests (nur eigene Domains erlauben)
+$allowed_origins = getAllowedOrigins();
$origin = $_SERVER['HTTP_ORIGIN'] ?? '';
if (in_array($origin, $allowed_origins)) {
diff --git a/public/contact.php b/public/contact.php
index e81dc3a..dedf21d 100644
--- a/public/contact.php
+++ b/public/contact.php
@@ -1,6 +1,6 @@
Impressum
-
+ Rechtliche Angaben und Pflichtinformationen gemäß § 5 DDG
diff --git a/public/index.php b/public/index.php
index 1211e46..f5700e5 100644
--- a/public/index.php
+++ b/public/index.php
@@ -1,6 +1,6 @@
Date: Fri, 22 May 2026 14:07:27 +0200
Subject: [PATCH 14/16] Enhance configuration management: Updated README.md
with Windows sync instructions, refactored backend configuration files to
improve loading logic, and ensured consistent function definitions. Improved
error handling in bootstrap.php for better user feedback during application
startup.
---
README.md | 5 +
backend/config/config.php | 2 +-
backend/config/mail-config.php | 1 -
backend/config/products-config.php | 2 +-
backend/config/site-config.php | 33 +-
backend/includes/functions.php | 58 ++-
public/bootstrap.php | 76 ++--
public/config/config.php | 17 +
public/config/mail-config.php | 197 ++++++++++
public/config/products-config.php | 556 +++++++++++++++++++++++++++++
public/config/site-config.php | 81 +++++
public/includes/footer.php | 167 +++++++++
public/includes/functions.php | 163 +++++++++
public/includes/header.php | 89 +++++
scripts/sync-backend-to-public.ps1 | 23 ++
15 files changed, 1433 insertions(+), 37 deletions(-)
create mode 100644 public/config/config.php
create mode 100644 public/config/mail-config.php
create mode 100644 public/config/products-config.php
create mode 100644 public/config/site-config.php
create mode 100644 public/includes/footer.php
create mode 100644 public/includes/functions.php
create mode 100644 public/includes/header.php
create mode 100644 scripts/sync-backend-to-public.ps1
diff --git a/README.md b/README.md
index 2449d77..c164cd8 100644
--- a/README.md
+++ b/README.md
@@ -147,6 +147,11 @@ HexaHost-Frontend/
cp -r HexaHost-Backend/includes/* HexaHost-Frontend/public/includes/
```
+ Alternativ (Windows, aus diesem Repo mit `backend/`):
+ ```powershell
+ .\scripts\sync-backend-to-public.ps1
+ ```
+
3. **PHP Dependencies installieren**
```bash
cd HexaHost-Frontend/public
diff --git a/backend/config/config.php b/backend/config/config.php
index 60968a7..8edeb67 100644
--- a/backend/config/config.php
+++ b/backend/config/config.php
@@ -14,4 +14,4 @@
// Lade die neue Konfiguration
require_once __DIR__ . '/mail-config.php';
-?>
+
diff --git a/backend/config/mail-config.php b/backend/config/mail-config.php
index 46f0164..01f5700 100644
--- a/backend/config/mail-config.php
+++ b/backend/config/mail-config.php
@@ -195,4 +195,3 @@ function getHexaHostConfig($key = null) {
return $config[$key] ?? null;
}
-?>
\ No newline at end of file
diff --git a/backend/config/products-config.php b/backend/config/products-config.php
index faa4626..80a3040 100644
--- a/backend/config/products-config.php
+++ b/backend/config/products-config.php
@@ -553,4 +553,4 @@ function renderAllPackages($productId) {
}
return $html;
}
-?>
+
diff --git a/backend/config/site-config.php b/backend/config/site-config.php
index 2dbd5e8..711eb1e 100644
--- a/backend/config/site-config.php
+++ b/backend/config/site-config.php
@@ -3,18 +3,25 @@
* HexaHost.de – zentrale Domain- und Umgebungskonfiguration
*/
-define('SITE_DOMAIN_PRODUCTION', 'hexahost.de');
-define('SITE_DOMAIN_DEVELOPMENT', 'dev.hexahost.de');
+if (!defined('SITE_DOMAIN_PRODUCTION')) {
+ define('SITE_DOMAIN_PRODUCTION', 'hexahost.de');
+}
+
+if (!defined('SITE_DOMAIN_DEVELOPMENT')) {
+ define('SITE_DOMAIN_DEVELOPMENT', 'dev.hexahost.de');
+}
/**
* Aktuellen HTTP-Host (ohne Port) ermitteln
+ *
+ * @return string
*/
-function getSiteHost(): string
+function getSiteHost()
{
- $host = $_SERVER['HTTP_HOST'] ?? SITE_DOMAIN_PRODUCTION;
+ $host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : SITE_DOMAIN_PRODUCTION;
$host = strtolower($host);
- if (str_contains($host, ':')) {
+ if (strpos($host, ':') !== false) {
$host = explode(':', $host, 2)[0];
}
@@ -23,16 +30,20 @@ function getSiteHost(): string
/**
* true, wenn die Seite unter der Dev-Domain läuft
+ *
+ * @return bool
*/
-function isDevelopmentSite(): bool
+function isDevelopmentSite()
{
return getSiteHost() === SITE_DOMAIN_DEVELOPMENT;
}
/**
* Basis-URL der aktuellen Anfrage (Schema + Host)
+ *
+ * @return string
*/
-function getSiteBaseUrl(): string
+function getSiteBaseUrl()
{
$https = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
|| (isset($_SERVER['SERVER_PORT']) && (int) $_SERVER['SERVER_PORT'] === 443);
@@ -45,9 +56,9 @@ function getSiteBaseUrl(): string
/**
* Erlaubte CORS-Origins für AJAX (Kontaktformular)
*
- * @return list
+ * @return array
*/
-function getAllowedOrigins(): array
+function getAllowedOrigins()
{
return [
'https://' . SITE_DOMAIN_PRODUCTION,
@@ -61,8 +72,10 @@ function getAllowedOrigins(): array
/**
* Kanonische Basis-URL für SEO (Produktion immer hexahost.de)
+ *
+ * @return string
*/
-function getCanonicalBaseUrl(): string
+function getCanonicalBaseUrl()
{
return 'https://' . SITE_DOMAIN_PRODUCTION;
}
diff --git a/backend/includes/functions.php b/backend/includes/functions.php
index 2eb5041..9ed31ce 100644
--- a/backend/includes/functions.php
+++ b/backend/includes/functions.php
@@ -7,7 +7,62 @@ $configDir = defined('HEXAHOST_CONFIG_DIR')
? HEXAHOST_CONFIG_DIR
: __DIR__ . '/../config';
-require_once $configDir . '/site-config.php';
+$siteConfigFile = $configDir . '/site-config.php';
+if (is_file($siteConfigFile)) {
+ require_once $siteConfigFile;
+} elseif (!function_exists('getSiteHost')) {
+ define('SITE_DOMAIN_PRODUCTION', 'hexahost.de');
+ define('SITE_DOMAIN_DEVELOPMENT', 'dev.hexahost.de');
+
+ function getSiteHost()
+ {
+ $host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : SITE_DOMAIN_PRODUCTION;
+ $host = strtolower($host);
+ if (strpos($host, ':') !== false) {
+ $host = explode(':', $host, 2)[0];
+ }
+ return $host;
+ }
+
+ function isDevelopmentSite()
+ {
+ return getSiteHost() === SITE_DOMAIN_DEVELOPMENT;
+ }
+
+ function getSiteBaseUrl()
+ {
+ $https = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
+ || (isset($_SERVER['SERVER_PORT']) && (int) $_SERVER['SERVER_PORT'] === 443);
+ return ($https ? 'https' : 'http') . '://' . getSiteHost();
+ }
+
+ function getAllowedOrigins()
+ {
+ return [
+ 'https://' . SITE_DOMAIN_PRODUCTION,
+ 'https://www.' . SITE_DOMAIN_PRODUCTION,
+ 'https://' . SITE_DOMAIN_DEVELOPMENT,
+ 'http://localhost',
+ 'http://127.0.0.1',
+ 'http://localhost:8000',
+ ];
+ }
+
+ function getCanonicalBaseUrl()
+ {
+ return 'https://' . SITE_DOMAIN_PRODUCTION;
+ }
+}
+
+// Fehleranzeige auf Dev/localhost für einfacheres Debugging
+$hexahostHost = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '';
+if (
+ (function_exists('isDevelopmentSite') && isDevelopmentSite())
+ || preg_match('/^(localhost|127\.0\.0\.1)(:\d+)?$/', $hexahostHost)
+) {
+ ini_set('display_errors', '1');
+ ini_set('display_startup_errors', '1');
+}
// Sichere Session-Konfiguration
if (session_status() === PHP_SESSION_NONE) {
@@ -106,4 +161,3 @@ function generateCSRFToken() {
}
return $_SESSION['csrf_token'];
}
-?>
\ No newline at end of file
diff --git a/public/bootstrap.php b/public/bootstrap.php
index 400276a..0773e5a 100644
--- a/public/bootstrap.php
+++ b/public/bootstrap.php
@@ -1,39 +1,71 @@
__DIR__ . '/includes',
- 'config' => __DIR__ . '/config',
- ],
- [
- 'includes' => __DIR__ . '/../backend/includes',
- 'config' => __DIR__ . '/../backend/config',
- ],
- ];
+ function hexahost_path_candidates(): array
+ {
+ $backendIncludes = dirname(__DIR__) . '/backend/includes';
+ $backendConfig = dirname(__DIR__) . '/backend/config';
+ $publicIncludes = __DIR__ . '/includes';
+ $publicConfig = __DIR__ . '/config';
+
+ return [
+ ['includes' => $backendIncludes, 'config' => $backendConfig],
+ ['includes' => $publicIncludes, 'config' => $publicConfig],
+ ['includes' => $publicIncludes, 'config' => $backendConfig],
+ ['includes' => $backendIncludes, 'config' => $publicConfig],
+ ];
+ }
+
+ function hexahost_is_app_root_valid(string $includesDir, string $configDir): bool
+ {
+ $required = [
+ $includesDir . '/functions.php',
+ $includesDir . '/header.php',
+ $includesDir . '/footer.php',
+ $configDir . '/products-config.php',
+ ];
+
+ foreach ($required as $file) {
+ if (!is_file($file)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
$resolved = false;
- foreach ($pathCandidates as $paths) {
- if (is_file($paths['includes'] . '/functions.php')) {
- define('HEXAHOST_INCLUDES_DIR', $paths['includes']);
- define('HEXAHOST_CONFIG_DIR', $paths['config']);
- require_once $paths['includes'] . '/functions.php';
- $resolved = true;
- break;
+ foreach (hexahost_path_candidates() as $paths) {
+ if (!hexahost_is_app_root_valid($paths['includes'], $paths['config'])) {
+ continue;
}
+
+ define('HEXAHOST_INCLUDES_DIR', $paths['includes']);
+ define('HEXAHOST_CONFIG_DIR', $paths['config']);
+ require_once $paths['includes'] . '/functions.php';
+ $resolved = true;
+ break;
}
if (!$resolved) {
http_response_code(500);
- header('Content-Type: text/plain; charset=utf-8');
- echo 'HexaHost: Anwendung konnte nicht gestartet werden (includes nicht gefunden).';
+ header('Content-Type: text/html; charset=utf-8');
+ echo 'HexaHost ';
+ echo 'HexaHost: Seite konnte nicht geladen werden ';
+ echo 'PHP konnte die Anwendungsdateien nicht finden.
';
+ echo 'Dev-Branch: Repository mit Ordner backend/ neben public/ deployen.
';
+ echo 'Produktion: Vor dem Upload scripts/sync-backend-to-public.ps1 ausführen ';
+ echo 'oder backend/includes und backend/config nach public/ kopieren.
';
+ echo '';
exit;
}
diff --git a/public/config/config.php b/public/config/config.php
new file mode 100644
index 0000000..8edeb67
--- /dev/null
+++ b/public/config/config.php
@@ -0,0 +1,17 @@
+ 'HexaHost.de Contact Form',
+ 'X-Priority' => '3',
+ 'X-MSMail-Priority' => 'Normal',
+ 'Importance' => 'Normal',
+ 'X-Report-Abuse' => 'Please report abuse here: abuse@hexahost.de',
+ 'List-Unsubscribe' => '',
+ 'Precedence' => 'bulk'
+]);
+
+// Erlaubte Domains für E-Mail-Adressen (optional)
+define('ALLOWED_EMAIL_DOMAINS', [
+ // Leer lassen für alle Domains zu erlauben
+ // 'gmail.com',
+ // 'outlook.com',
+ // 'web.de',
+ // 'gmx.de'
+]);
+
+// Blacklist für E-Mail-Adressen (optional)
+define('BLACKLISTED_EMAILS', [
+ // 'spam@example.com',
+ // 'test@test.com'
+]);
+
+// Validierung der Konfiguration
+if (!defined('SMTP_HOST') || !defined('SMTP_USERNAME') || !defined('SMTP_PASSWORD')) {
+ die('SMTP-Konfiguration ist unvollständig. Bitte überprüfen Sie die mail-config.php');
+}
+
+// Überprüfung der E-Mail-Adressen
+if (!filter_var(SMTP_FROM_EMAIL, FILTER_VALIDATE_EMAIL)) {
+ die('Ungültige SMTP_FROM_EMAIL Adresse');
+}
+
+if (!filter_var(SMTP_TO_EMAIL, FILTER_VALIDATE_EMAIL)) {
+ die('Ungültige SMTP_TO_EMAIL Adresse');
+}
+
+// Logging-Funktion
+function logEmail($type, $data) {
+ if (!LOG_EMAILS) return;
+
+ $logFile = __DIR__ . '/../logs/email.log';
+ $logDir = dirname($logFile);
+
+ if (!is_dir($logDir)) {
+ mkdir($logDir, 0755, true);
+ }
+
+ $timestamp = date('Y-m-d H:i:s');
+ $logEntry = "[$timestamp] $type: " . json_encode($data) . "\n";
+
+ file_put_contents($logFile, $logEntry, FILE_APPEND | LOCK_EX);
+}
+
+// Hilfsfunktion für E-Mail-Validierung
+function isValidEmail($email) {
+ if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
+ return false;
+ }
+
+ // Prüfe Blacklist
+ if (in_array($email, BLACKLISTED_EMAILS)) {
+ return false;
+ }
+
+ // Prüfe Domain-Whitelist (falls gesetzt)
+ if (!empty(ALLOWED_EMAIL_DOMAINS)) {
+ $domain = substr(strrchr($email, "@"), 1);
+ if (!in_array($domain, ALLOWED_EMAIL_DOMAINS)) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+// CSRF Token generieren (wird in functions.php verwendet)
+// Hinweis: Diese Funktion existiert auch in functions.php - hier nur als Fallback
+if (!function_exists('generateCSRFToken')) {
+ function generateCSRFToken() {
+ if (!isset($_SESSION['csrf_token'])) {
+ $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
+ }
+ return $_SESSION['csrf_token'];
+ }
+}
+
+// CSRF Token validieren
+if (!function_exists('validateCSRFToken')) {
+ function validateCSRFToken($token) {
+ return isset($_SESSION['csrf_token']) && hash_equals($_SESSION['csrf_token'], $token);
+ }
+}
+
+/**
+ * Hilfsfunktion zum Abrufen der Konfiguration als Array
+ * Kompatibilität mit contact-handler.php
+ *
+ * @param string|null $key Optional: einzelner Schlüssel
+ * @return mixed Konfigurationsarray oder einzelner Wert
+ */
+function getHexaHostConfig($key = null) {
+ $config = [
+ // SMTP Server-Einstellungen
+ 'smtp_host' => SMTP_HOST,
+ 'smtp_port' => SMTP_PORT,
+ 'smtp_username' => SMTP_USERNAME,
+ 'smtp_password' => SMTP_PASSWORD,
+ 'smtp_encryption' => 'tls',
+
+ // Absender/Empfänger
+ 'from_email' => SMTP_FROM_EMAIL,
+ 'from_name' => 'HexaHost.de Kontaktformular',
+ 'to_email' => SMTP_TO_EMAIL,
+ 'to_name' => 'HexaHost Support',
+
+ // Sicherheit
+ 'max_requests_per_hour' => MAX_REQUESTS_PER_HOUR,
+ 'honeypot_field' => 'website',
+
+ // Debug
+ 'debug_mode' => DEBUG_MODE,
+ 'log_errors' => LOG_EMAILS,
+ ];
+
+ if ($key === null) {
+ return $config;
+ }
+
+ return $config[$key] ?? null;
+}
diff --git a/public/config/products-config.php b/public/config/products-config.php
new file mode 100644
index 0000000..80a3040
--- /dev/null
+++ b/public/config/products-config.php
@@ -0,0 +1,556 @@
+ 'Virtual Private Container',
+ 'short_name' => 'VPC',
+ 'description' => 'Effiziente LXC-Container auf Proxmox-Basis',
+ 'min_price' => '4,99',
+ 'hero_highlight' => 'auf Proxmox LXC',
+ 'hero_description' => 'Erleben Sie die Effizienz von Linux-Containern mit der Zuverlässigkeit von Proxmox. Unsere VPC-Lösungen bieten optimale Performance bei minimalem Ressourcenverbrauch.',
+ 'packages_title' => 'VPC Pakete',
+ 'packages_description' => 'Wählen Sie das perfekte Container-Paket für Ihre Anforderungen',
+ 'cta_title' => 'Bereit für Ihren VPC?',
+ 'cta_description' => 'Starten Sie noch heute mit einem Virtual Private Container',
+ 'page_title' => 'Virtual Private Container - Effiziente LXC Container | HexaHost.de',
+ 'page_description' => 'Virtual Private Container auf Proxmox LXC-Basis. Effiziente und preiswerte Container-Lösungen ab 4,99€/Monat bei HexaHost.de',
+ 'packages' => [
+ 'starter' => [
+ 'name' => 'VPC Starter',
+ 'price' => '4,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'CPU Kerne', 'value' => '1 vCore'],
+ ['label' => 'RAM', 'value' => '1 GB'],
+ ['label' => 'SSD Speicher', 'value' => '20 GB'],
+ ['label' => 'Traffic', 'value' => '1 TB'],
+ ['label' => 'IPv4 Adressen', 'value' => '1'],
+ ],
+ 'features' => [
+ 'Proxmox LXC Container',
+ 'Root-Zugriff',
+ 'SSH-Zugang',
+ 'Backup inklusive',
+ '24/7 Monitoring',
+ ],
+ ],
+ 'business' => [
+ 'name' => 'VPC Business',
+ 'price' => '9,99',
+ 'featured' => true,
+ 'specs' => [
+ ['label' => 'CPU Kerne', 'value' => '2 vCores'],
+ ['label' => 'RAM', 'value' => '4 GB'],
+ ['label' => 'SSD Speicher', 'value' => '80 GB'],
+ ['label' => 'Traffic', 'value' => '3 TB'],
+ ['label' => 'IPv4 Adressen', 'value' => '1'],
+ ],
+ 'features' => [
+ 'Proxmox LXC Container',
+ 'Root-Zugriff',
+ 'SSH-Zugang',
+ 'Tägliches Backup',
+ '24/7 Monitoring',
+ 'Snapshot-Funktion',
+ ],
+ ],
+ 'professional' => [
+ 'name' => 'VPC Professional',
+ 'price' => '19,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'CPU Kerne', 'value' => '4 vCores'],
+ ['label' => 'RAM', 'value' => '8 GB'],
+ ['label' => 'SSD Speicher', 'value' => '160 GB'],
+ ['label' => 'Traffic', 'value' => '5 TB'],
+ ['label' => 'IPv4 Adressen', 'value' => '2'],
+ ],
+ 'features' => [
+ 'Proxmox LXC Container',
+ 'Root-Zugriff',
+ 'SSH-Zugang',
+ 'Stündliches Backup',
+ '24/7 Monitoring',
+ 'Snapshot-Funktion',
+ 'Priority Support',
+ ],
+ ],
+ 'enterprise' => [
+ 'name' => 'VPC Enterprise',
+ 'price' => '39,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'CPU Kerne', 'value' => '8 vCores'],
+ ['label' => 'RAM', 'value' => '16 GB'],
+ ['label' => 'SSD Speicher', 'value' => '320 GB'],
+ ['label' => 'Traffic', 'value' => '10 TB'],
+ ['label' => 'IPv4 Adressen', 'value' => '3'],
+ ],
+ 'features' => [
+ 'Proxmox LXC Container',
+ 'Root-Zugriff',
+ 'SSH-Zugang',
+ 'Stündliches Backup',
+ '24/7 Monitoring',
+ 'Snapshot-Funktion',
+ 'Priority Support',
+ 'Individuelle Konfiguration',
+ ],
+ ],
+ ],
+];
+
+// ============================================================================
+// VIRTUAL PRIVATE SERVER (VPS)
+// ============================================================================
+$PRODUCTS['vps'] = [
+ 'name' => 'Virtual Private Server',
+ 'short_name' => 'VPS',
+ 'description' => 'Vollwertige KVM-Virtualisierung mit Root-Zugriff',
+ 'min_price' => '9,99',
+ 'hero_highlight' => 'auf Proxmox KVM',
+ 'hero_description' => 'Maximale Flexibilität und Kontrolle mit vollwertiger KVM-Virtualisierung. Installieren Sie jedes Betriebssystem und genießen Sie vollständigen Root-Zugriff.',
+ 'packages_title' => 'VPS Pakete',
+ 'packages_description' => 'Wählen Sie das perfekte VPS-Paket für Ihre Anforderungen',
+ 'cta_title' => 'Bereit für Ihren VPS?',
+ 'cta_description' => 'Starten Sie noch heute mit einem Virtual Private Server',
+ 'page_title' => 'Virtual Private Server - KVM Virtualisierung | HexaHost.de',
+ 'page_description' => 'Virtual Private Server auf Proxmox KVM-Basis. Vollwertige Virtualisierung mit Root-Zugriff ab 9,99€/Monat bei HexaHost.de',
+ 'packages' => [
+ 'starter' => [
+ 'name' => 'VPS Starter',
+ 'price' => '9,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'CPU Kerne', 'value' => '1 vCore'],
+ ['label' => 'RAM', 'value' => '2 GB'],
+ ['label' => 'SSD Speicher', 'value' => '40 GB'],
+ ['label' => 'Traffic', 'value' => '2 TB'],
+ ['label' => 'IPv4 Adressen', 'value' => '1'],
+ ],
+ 'features' => [
+ 'Proxmox KVM Virtualisierung',
+ 'Root-Zugriff',
+ 'SSH-Zugang',
+ 'Backup inklusive',
+ '24/7 Monitoring',
+ ],
+ ],
+ 'business' => [
+ 'name' => 'VPS Business',
+ 'price' => '19,99',
+ 'featured' => true,
+ 'specs' => [
+ ['label' => 'CPU Kerne', 'value' => '2 vCores'],
+ ['label' => 'RAM', 'value' => '4 GB'],
+ ['label' => 'SSD Speicher', 'value' => '80 GB'],
+ ['label' => 'Traffic', 'value' => '4 TB'],
+ ['label' => 'IPv4 Adressen', 'value' => '1'],
+ ],
+ 'features' => [
+ 'Proxmox KVM Virtualisierung',
+ 'Root-Zugriff',
+ 'SSH-Zugang',
+ 'Tägliches Backup',
+ '24/7 Monitoring',
+ 'Snapshot-Funktion',
+ ],
+ ],
+ 'professional' => [
+ 'name' => 'VPS Professional',
+ 'price' => '39,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'CPU Kerne', 'value' => '4 vCores'],
+ ['label' => 'RAM', 'value' => '8 GB'],
+ ['label' => 'SSD Speicher', 'value' => '160 GB'],
+ ['label' => 'Traffic', 'value' => '8 TB'],
+ ['label' => 'IPv4 Adressen', 'value' => '2'],
+ ],
+ 'features' => [
+ 'Proxmox KVM Virtualisierung',
+ 'Root-Zugriff',
+ 'SSH-Zugang',
+ 'Stündliches Backup',
+ '24/7 Monitoring',
+ 'Snapshot-Funktion',
+ 'Priority Support',
+ ],
+ ],
+ 'enterprise' => [
+ 'name' => 'VPS Enterprise',
+ 'price' => '79,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'CPU Kerne', 'value' => '8 vCores'],
+ ['label' => 'RAM', 'value' => '16 GB'],
+ ['label' => 'SSD Speicher', 'value' => '320 GB'],
+ ['label' => 'Traffic', 'value' => '15 TB'],
+ ['label' => 'IPv4 Adressen', 'value' => '3'],
+ ],
+ 'features' => [
+ 'Proxmox KVM Virtualisierung',
+ 'Root-Zugriff',
+ 'SSH-Zugang',
+ 'Stündliches Backup',
+ '24/7 Monitoring',
+ 'Snapshot-Funktion',
+ 'Priority Support',
+ 'Individuelle Konfiguration',
+ ],
+ ],
+ ],
+];
+
+// ============================================================================
+// MAIL GATEWAY
+// ============================================================================
+$PRODUCTS['mail-gateway'] = [
+ 'name' => 'Mail Gateway',
+ 'short_name' => 'Mail',
+ 'description' => 'Professioneller E-Mail-Schutz für Unternehmen',
+ 'min_price' => '4,99',
+ 'hero_highlight' => 'für Unternehmen',
+ 'hero_description' => 'Professionelle E-Mail-Infrastruktur mit maximalem Schutz vor Spam und Malware. Sichern Sie Ihre geschäftliche Kommunikation mit unseren Mail Gateway Lösungen.',
+ 'packages_title' => 'Mail Gateway Pakete',
+ 'packages_description' => 'Wählen Sie das passende Mail Gateway Paket für Ihr Unternehmen',
+ 'cta_title' => 'Bereit für professionelle E-Mail-Kommunikation?',
+ 'cta_description' => 'Starten Sie noch heute mit unserem Mail Gateway',
+ 'page_title' => 'Mail Gateway - Professionelle E-Mail-Lösungen | HexaHost.de',
+ 'page_description' => 'Professionelle Mail Gateway Lösungen für Unternehmen. Spam-Schutz, E-Mail-Archivierung und sichere E-Mail-Kommunikation bei HexaHost.de',
+ 'packages' => [
+ 'starter' => [
+ 'name' => 'Mail Starter',
+ 'price' => '4,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'Postfächer', 'value' => '5'],
+ ['label' => 'Speicher/Postfach', 'value' => '5 GB'],
+ ['label' => 'Domains', 'value' => '1'],
+ ['label' => 'E-Mails/Tag', 'value' => '500'],
+ ],
+ 'features' => [
+ 'Spam-Filter',
+ 'Virus-Schutz',
+ 'Webmail',
+ 'IMAP/POP3',
+ 'SSL/TLS Verschlüsselung',
+ ],
+ ],
+ 'business' => [
+ 'name' => 'Mail Business',
+ 'price' => '14,99',
+ 'featured' => true,
+ 'specs' => [
+ ['label' => 'Postfächer', 'value' => '25'],
+ ['label' => 'Speicher/Postfach', 'value' => '10 GB'],
+ ['label' => 'Domains', 'value' => '3'],
+ ['label' => 'E-Mails/Tag', 'value' => '2.000'],
+ ],
+ 'features' => [
+ 'Spam-Filter (erweitert)',
+ 'Virus-Schutz',
+ 'Webmail',
+ 'IMAP/POP3',
+ 'SSL/TLS Verschlüsselung',
+ ],
+ ],
+ 'professional' => [
+ 'name' => 'Mail Professional',
+ 'price' => '29,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'Postfächer', 'value' => '100'],
+ ['label' => 'Speicher/Postfach', 'value' => '25 GB'],
+ ['label' => 'Domains', 'value' => '10'],
+ ['label' => 'E-Mails/Tag', 'value' => '10.000'],
+ ],
+ 'features' => [
+ 'Spam-Filter (KI-gestützt)',
+ 'Virus-Schutz',
+ 'Webmail',
+ 'IMAP/POP3',
+ 'SSL/TLS Verschlüsselung',
+ ],
+ ],
+ 'enterprise' => [
+ 'name' => 'Mail Enterprise',
+ 'price' => '59,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'Postfächer', 'value' => 'Unbegrenzt'],
+ ['label' => 'Speicher/Postfach', 'value' => '50 GB'],
+ ['label' => 'Domains', 'value' => 'Unbegrenzt'],
+ ['label' => 'E-Mails/Tag', 'value' => 'Unbegrenzt'],
+ ],
+ 'features' => [
+ 'Spam-Filter (KI-gestützt)',
+ 'Virus-Schutz',
+ 'Webmail',
+ 'IMAP/POP3',
+ 'SSL/TLS Verschlüsselung',
+ 'Dedizierte IP',
+ 'Priority Support',
+ ],
+ ],
+ ],
+];
+
+// ============================================================================
+// WEBHOSTING
+// ============================================================================
+$PRODUCTS['webhosting'] = [
+ 'name' => 'Webhosting',
+ 'short_name' => 'Webhosting',
+ 'description' => 'Klassisches Hosting mit PHP, MySQL und SSL. WordPress-ready mit Plesk Webhosting.',
+ 'min_price' => '2,99',
+ 'hero_highlight' => 'Alles für Ihre Website',
+ 'hero_description' => 'Klassisches Webhosting mit allem, was Sie für eine erfolgreiche Website benötigen. PHP, MySQL, SSL-Zertifikate und E-Mail-Postfächer - alles inklusive.',
+ 'packages_title' => 'Webhosting Pakete',
+ 'packages_description' => 'Von der ersten Website bis zum professionellen Online-Shop',
+ 'cta_title' => 'Bereit für Ihr Webhosting?',
+ 'cta_description' => 'Starten Sie noch heute mit professionellem Webhosting',
+ 'page_title' => 'Webhosting - Klassisches Hosting für Websites - WordPress-ready | HexaHost.de',
+ 'page_description' => 'Webhosting mit PHP, MySQL und SSL-Zertifikaten. Klassisches Hosting für Websites - WordPress-ready ab 2,99€/Monat bei HexaHost.de',
+ 'packages' => [
+ 'starter' => [
+ 'name' => 'Webhosting Starter',
+ 'price' => '2,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'Webspace', 'value' => '10 GB'],
+ ['label' => 'Domains', 'value' => '1'],
+ ['label' => 'Subdomains', 'value' => '5'],
+ ['label' => 'Domain Aliase', 'value' => '2'],
+ ['label' => 'E-Mail-Postfächer', 'value' => '10'],
+ ['label' => 'Datenbanken', 'value' => '2 MySQL'],
+ ['label' => 'Traffic', 'value' => '100 GB'],
+ ],
+ 'features' => [
+ 'Plesk Webhosting',
+ 'PHP 8.4',
+ 'Git, WP Toolkit, Composer',
+ 'SSL-Zertifikat',
+ 'E-Mail-Postfächer',
+ 'MySQL Datenbanken',
+ ],
+ ],
+ 'business' => [
+ 'name' => 'Webhosting Business',
+ 'price' => '7,99',
+ 'featured' => true,
+ 'specs' => [
+ ['label' => 'Webspace', 'value' => '30 GB'],
+ ['label' => 'Domains Inkl.', 'value' => '1'],
+ ['label' => 'Subdomains', 'value' => '10'],
+ ['label' => 'Domain Aliase', 'value' => '2'],
+ ['label' => 'E-Mail-Postfächer', 'value' => '20'],
+ ['label' => 'Datenbanken', 'value' => '5 MySQL'],
+ ['label' => 'Traffic', 'value' => '100 GB'],
+ ],
+ 'features' => [
+ 'Plesk Webhosting',
+ 'PHP 8.4',
+ 'Git, WP Toolkit, Composer',
+ 'SSL-Zertifikat',
+ 'E-Mail-Postfächer',
+ 'MySQL Datenbanken',
+ 'Backup-Service',
+ ],
+ ],
+ 'professional' => [
+ 'name' => 'Webhosting Professional',
+ 'price' => '13,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'Webspace', 'value' => '50 GB'],
+ ['label' => 'Domains Inkl.', 'value' => '1'],
+ ['label' => 'Subdomains', 'value' => 'unbegrenzt'],
+ ['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
+ ['label' => 'E-Mail-Postfächer', 'value' => '20'],
+ ['label' => 'Datenbanken', 'value' => '20 MySQL'],
+ ['label' => 'Traffic', 'value' => '100 GB'],
+ ],
+ 'features' => [
+ 'Plesk Webhosting',
+ 'PHP 8.4',
+ 'Git, WP Toolkit, Composer',
+ 'SSL-Zertifikat',
+ 'E-Mail-Postfächer',
+ 'MySQL Datenbanken',
+ 'Backup-Service',
+ 'Priority Support',
+ ],
+ ],
+ 'enterprise' => [
+ 'name' => 'Webhosting Enterprise',
+ 'price' => '19,99',
+ 'featured' => false,
+ 'specs' => [
+ ['label' => 'Webspace', 'value' => '100 GB'],
+ ['label' => 'Domains Inkl.', 'value' => '3'],
+ ['label' => 'Subdomains', 'value' => 'unbegrenzt'],
+ ['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
+ ['label' => 'E-Mail-Postfächer', 'value' => '100'],
+ ['label' => 'Datenbanken', 'value' => 'Unbegrenzt'],
+ ['label' => 'Traffic', 'value' => '1 TB'],
+ ],
+ 'features' => [
+ 'Plesk Webhosting',
+ 'PHP 8.4',
+ 'Git, WP Toolkit, Composer',
+ 'SSL-Zertifikat',
+ 'E-Mail-Postfächer',
+ 'MySQL Datenbanken',
+ 'Backup-Service',
+ 'Priority Support',
+ 'Individuelle Konfiguration',
+ ],
+ ],
+ ],
+];
+
+// ============================================================================
+// HILFSFUNKTIONEN
+// ============================================================================
+
+/**
+ * Alle Produkte abrufen
+ */
+function getAllProducts() {
+ global $PRODUCTS;
+ return $PRODUCTS;
+}
+
+/**
+ * Ein Produkt abrufen
+ */
+function getProduct($productId) {
+ global $PRODUCTS;
+ return $PRODUCTS[$productId] ?? null;
+}
+
+/**
+ * Prüft, ob ein Produkt im Shop angezeigt werden soll
+ */
+function isProductVisible($productId) {
+ global $HIDDEN_PRODUCTS;
+ return !in_array($productId, $HIDDEN_PRODUCTS, true);
+}
+
+/**
+ * Alle Pakete eines Produkts abrufen
+ */
+function getProductPackages($productId) {
+ global $PRODUCTS;
+ return $PRODUCTS[$productId]['packages'] ?? [];
+}
+
+/**
+ * Ein bestimmtes Paket abrufen
+ */
+function getPackage($productId, $packageId) {
+ global $PRODUCTS;
+ return $PRODUCTS[$productId]['packages'][$packageId] ?? null;
+}
+
+/**
+ * Preis eines Pakets abrufen
+ */
+function getPackagePrice($productId, $packageId) {
+ $package = getPackage($productId, $packageId);
+ return $package['price'] ?? null;
+}
+
+/**
+ * Minimalen Preis eines Produkts abrufen
+ */
+function getMinPrice($productId) {
+ global $PRODUCTS;
+ return $PRODUCTS[$productId]['min_price'] ?? null;
+}
+
+/**
+ * Preis formatiert ausgeben
+ */
+function formatPrice($price, $withCurrency = true) {
+ return $withCurrency ? $price . '€' : $price;
+}
+
+/**
+ * Generiert HTML für eine Paket-Karte
+ */
+function renderPackageCard($productId, $packageId, $package) {
+ $featuredClass = $package['featured'] ? ' featured' : '';
+ $featuredBadge = $package['featured'] ? 'Beliebt
' : '';
+
+ $specsHtml = '';
+ foreach ($package['specs'] as $spec) {
+ $specsHtml .= sprintf(
+ '%s: %s
',
+ htmlspecialchars($spec['label']),
+ htmlspecialchars($spec['value'])
+ );
+ }
+
+ $featuresHtml = '';
+ foreach ($package['features'] as $feature) {
+ $featuresHtml .= sprintf('✓ %s
', htmlspecialchars($feature));
+ }
+
+ return sprintf('
+ ',
+ $featuredClass,
+ $featuredBadge,
+ htmlspecialchars($package['name']),
+ $package['price'],
+ $specsHtml,
+ $featuresHtml,
+ $productId,
+ $packageId
+ );
+}
+
+/**
+ * Generiert HTML für alle Pakete eines Produkts
+ */
+function renderAllPackages($productId) {
+ $packages = getProductPackages($productId);
+ $html = '';
+ foreach ($packages as $packageId => $package) {
+ $html .= renderPackageCard($productId, $packageId, $package);
+ }
+ return $html;
+}
+
diff --git a/public/config/site-config.php b/public/config/site-config.php
new file mode 100644
index 0000000..711eb1e
--- /dev/null
+++ b/public/config/site-config.php
@@ -0,0 +1,81 @@
+
+ */
+function getAllowedOrigins()
+{
+ return [
+ 'https://' . SITE_DOMAIN_PRODUCTION,
+ 'https://www.' . SITE_DOMAIN_PRODUCTION,
+ 'https://' . SITE_DOMAIN_DEVELOPMENT,
+ 'http://localhost',
+ 'http://127.0.0.1',
+ 'http://localhost:8000',
+ ];
+}
+
+/**
+ * Kanonische Basis-URL für SEO (Produktion immer hexahost.de)
+ *
+ * @return string
+ */
+function getCanonicalBaseUrl()
+{
+ return 'https://' . SITE_DOMAIN_PRODUCTION;
+}
diff --git a/public/includes/footer.php b/public/includes/footer.php
new file mode 100644
index 0000000..b00634e
--- /dev/null
+++ b/public/includes/footer.php
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Cookie-Einstellungen
+
+ Wir verwenden Cookies, um Ihnen die bestmögliche Erfahrung auf unserer Website zu bieten.
+ Technisch notwendige Cookies sind für die Funktionalität erforderlich.
+ Mehr erfahren
+
+
+
+
+ Alle akzeptieren
+ Nur notwendige
+ Einstellungen
+
+
+
+
+
+
+
Cookie-Einstellungen
+
+
+
Notwendige Cookies
+
Diese Cookies sind für die Grundfunktionen der Website erforderlich.
+
+
+
+
+
+
+
+
+
Analyse-Cookies
+
Helfen uns zu verstehen, wie Besucher unsere Website nutzen.
+
+
+
+
+
+
+
+
+
Marketing-Cookies
+
Werden verwendet, um relevante Werbung anzuzeigen.
+
+
+
+
+
+
+
+ Einstellungen speichern
+ Abbrechen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/includes/functions.php b/public/includes/functions.php
new file mode 100644
index 0000000..9ed31ce
--- /dev/null
+++ b/public/includes/functions.php
@@ -0,0 +1,163 @@
+ 'Home', 'url' => 'index.html'], ...]
+ */
+function generateBreadcrumbs($breadcrumbs) {
+ echo '';
+ $last_index = count($breadcrumbs) - 1;
+
+ foreach ($breadcrumbs as $index => $item) {
+ if ($index === $last_index) {
+ // Last item (current page)
+ echo '
' . htmlspecialchars($item['title']) . ' ';
+ } else {
+ // Link to other pages
+ echo '
' . htmlspecialchars($item['title']) . ' ';
+ echo '
/ ';
+ }
+ }
+ echo '
';
+}
+
+/**
+ * Generate CSRF token for form security
+ *
+ * @return string CSRF token
+ */
+function generateCSRFToken() {
+ if (!isset($_SESSION['csrf_token'])) {
+ $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
+ }
+ return $_SESSION['csrf_token'];
+}
diff --git a/public/includes/header.php b/public/includes/header.php
new file mode 100644
index 0000000..2f74089
--- /dev/null
+++ b/public/includes/header.php
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/scripts/sync-backend-to-public.ps1 b/scripts/sync-backend-to-public.ps1
new file mode 100644
index 0000000..34e071a
--- /dev/null
+++ b/scripts/sync-backend-to-public.ps1
@@ -0,0 +1,23 @@
+# Kopiert Backend-Includes und -Config nach public/ (für Produktions-Deploy)
+$ErrorActionPreference = 'Stop'
+$root = Split-Path -Parent $PSScriptRoot
+
+$includesSrc = Join-Path $root 'backend\includes'
+$configSrc = Join-Path $root 'backend\config'
+$includesDst = Join-Path $root 'public\includes'
+$configDst = Join-Path $root 'public\config'
+
+if (-not (Test-Path $includesSrc)) {
+ throw "Backend-Includes nicht gefunden: $includesSrc"
+}
+if (-not (Test-Path $configSrc)) {
+ throw "Backend-Config nicht gefunden: $configSrc"
+}
+
+New-Item -ItemType Directory -Force -Path $includesDst | Out-Null
+New-Item -ItemType Directory -Force -Path $configDst | Out-Null
+
+Copy-Item -Path (Join-Path $includesSrc '*') -Destination $includesDst -Recurse -Force
+Copy-Item -Path (Join-Path $configSrc '*') -Destination $configDst -Recurse -Force
+
+Write-Host "OK: backend -> public/includes und public/config synchronisiert."
From d0e5baa44316619f34e39751f8d7e0a14bb49662 Mon Sep 17 00:00:00 2001
From: smueller
Date: Fri, 22 May 2026 14:10:21 +0200
Subject: [PATCH 15/16] Revert main to dev deployment model: remove bootstrap
and use ../backend/ paths
Co-authored-by: Cursor
---
README.md | 5 -
backend/config/config.php | 2 +-
backend/config/mail-config.php | 1 +
backend/config/products-config.php | 95 +++--
backend/config/site-config.php | 81 -----
backend/includes/functions.php | 67 +---
backend/includes/header.php | 8 -
public/404.php | 2 +-
public/500.php | 2 +-
public/about.php | 2 +-
public/agb.php | 2 +-
public/assets/css/custom.css | 49 ---
public/assets/css/style.css | 2 +-
public/bootstrap.php | 73 ----
public/config/config.php | 17 -
public/config/mail-config.php | 197 ----------
public/config/products-config.php | 556 -----------------------------
public/config/site-config.php | 81 -----
public/contact-handler.php | 15 +-
public/contact.php | 7 +-
public/datenschutz.php | 2 +-
public/impressum.php | 4 +-
public/includes/footer.php | 167 ---------
public/includes/functions.php | 163 ---------
public/includes/header.php | 89 -----
public/index.php | 11 +-
public/it-dienstleistungen.php | 2 +-
public/mail-gateway.php | 4 +-
public/vpc.php | 4 +-
public/vps.php | 4 +-
public/webhosting.php | 8 +-
public/widerruf.php | 2 +-
scripts/sync-backend-to-public.ps1 | 23 --
33 files changed, 76 insertions(+), 1671 deletions(-)
delete mode 100644 backend/config/site-config.php
delete mode 100644 public/bootstrap.php
delete mode 100644 public/config/config.php
delete mode 100644 public/config/mail-config.php
delete mode 100644 public/config/products-config.php
delete mode 100644 public/config/site-config.php
delete mode 100644 public/includes/footer.php
delete mode 100644 public/includes/functions.php
delete mode 100644 public/includes/header.php
delete mode 100644 scripts/sync-backend-to-public.ps1
diff --git a/README.md b/README.md
index c164cd8..2449d77 100644
--- a/README.md
+++ b/README.md
@@ -147,11 +147,6 @@ HexaHost-Frontend/
cp -r HexaHost-Backend/includes/* HexaHost-Frontend/public/includes/
```
- Alternativ (Windows, aus diesem Repo mit `backend/`):
- ```powershell
- .\scripts\sync-backend-to-public.ps1
- ```
-
3. **PHP Dependencies installieren**
```bash
cd HexaHost-Frontend/public
diff --git a/backend/config/config.php b/backend/config/config.php
index 8edeb67..60968a7 100644
--- a/backend/config/config.php
+++ b/backend/config/config.php
@@ -14,4 +14,4 @@
// Lade die neue Konfiguration
require_once __DIR__ . '/mail-config.php';
-
+?>
diff --git a/backend/config/mail-config.php b/backend/config/mail-config.php
index 01f5700..46f0164 100644
--- a/backend/config/mail-config.php
+++ b/backend/config/mail-config.php
@@ -195,3 +195,4 @@ function getHexaHostConfig($key = null) {
return $config[$key] ?? null;
}
+?>
\ No newline at end of file
diff --git a/backend/config/products-config.php b/backend/config/products-config.php
index 80a3040..74e128a 100644
--- a/backend/config/products-config.php
+++ b/backend/config/products-config.php
@@ -10,9 +10,6 @@
* $packages = getProductPackages('vpc');
*/
-// Temporär ausgeblendete Produkte (einfach IDs aus dieser Liste entfernen, um sie wieder im Shop anzuzeigen)
-$HIDDEN_PRODUCTS = ['vpc', 'vps'];
-
// ============================================================================
// VIRTUAL PRIVATE CONTAINER (VPC)
// ============================================================================
@@ -268,6 +265,8 @@ $PRODUCTS['mail-gateway'] = [
'Webmail',
'IMAP/POP3',
'SSL/TLS Verschlüsselung',
+ 'E-Mail Archivierung (30 Tage)',
+ 'Kalender & Kontakte',
],
],
'professional' => [
@@ -286,6 +285,9 @@ $PRODUCTS['mail-gateway'] = [
'Webmail',
'IMAP/POP3',
'SSL/TLS Verschlüsselung',
+ 'E-Mail Archivierung (1 Jahr)',
+ 'Kalender & Kontakte',
+ 'ActiveSync für Mobile',
],
],
'enterprise' => [
@@ -304,6 +306,9 @@ $PRODUCTS['mail-gateway'] = [
'Webmail',
'IMAP/POP3',
'SSL/TLS Verschlüsselung',
+ 'E-Mail Archivierung (10 Jahre)',
+ 'Kalender & Kontakte',
+ 'ActiveSync für Mobile',
'Dedizierte IP',
'Priority Support',
],
@@ -317,56 +322,50 @@ $PRODUCTS['mail-gateway'] = [
$PRODUCTS['webhosting'] = [
'name' => 'Webhosting',
'short_name' => 'Webhosting',
- 'description' => 'Klassisches Hosting mit PHP, MySQL und SSL. WordPress-ready mit Plesk Webhosting.',
- 'min_price' => '2,99',
+ 'description' => 'Klassisches Hosting mit PHP, MySQL und SSL',
+ 'min_price' => '1,99',
'hero_highlight' => 'Alles für Ihre Website',
'hero_description' => 'Klassisches Webhosting mit allem, was Sie für eine erfolgreiche Website benötigen. PHP, MySQL, SSL-Zertifikate und E-Mail-Postfächer - alles inklusive.',
'packages_title' => 'Webhosting Pakete',
'packages_description' => 'Von der ersten Website bis zum professionellen Online-Shop',
'cta_title' => 'Bereit für Ihr Webhosting?',
'cta_description' => 'Starten Sie noch heute mit professionellem Webhosting',
- 'page_title' => 'Webhosting - Klassisches Hosting für Websites - WordPress-ready | HexaHost.de',
- 'page_description' => 'Webhosting mit PHP, MySQL und SSL-Zertifikaten. Klassisches Hosting für Websites - WordPress-ready ab 2,99€/Monat bei HexaHost.de',
+ 'page_title' => 'Webhosting - Klassisches Hosting für Websites | HexaHost.de',
+ 'page_description' => 'Webhosting mit PHP, MySQL und SSL-Zertifikaten. Klassisches Hosting für Websites ab 1,99€/Monat bei HexaHost.de',
'packages' => [
'starter' => [
'name' => 'Webhosting Starter',
- 'price' => '2,99',
+ 'price' => '1,99',
'featured' => false,
'specs' => [
- ['label' => 'Webspace', 'value' => '10 GB'],
+ ['label' => 'Webspace', 'value' => '5 GB'],
['label' => 'Domains', 'value' => '1'],
- ['label' => 'Subdomains', 'value' => '5'],
- ['label' => 'Domain Aliase', 'value' => '2'],
- ['label' => 'E-Mail-Postfächer', 'value' => '10'],
- ['label' => 'Datenbanken', 'value' => '2 MySQL'],
- ['label' => 'Traffic', 'value' => '100 GB'],
+ ['label' => 'E-Mail-Postfächer', 'value' => '5'],
+ ['label' => 'Datenbanken', 'value' => '1 MySQL'],
+ ['label' => 'Traffic', 'value' => '10 GB'],
],
'features' => [
- 'Plesk Webhosting',
- 'PHP 8.4',
- 'Git, WP Toolkit, Composer',
+ 'cPanel/Webmin',
+ 'PHP 8.1',
'SSL-Zertifikat',
'E-Mail-Postfächer',
- 'MySQL Datenbanken',
+ 'MySQL Datenbank',
],
],
'business' => [
'name' => 'Webhosting Business',
- 'price' => '7,99',
+ 'price' => '4,99',
'featured' => true,
'specs' => [
- ['label' => 'Webspace', 'value' => '30 GB'],
- ['label' => 'Domains Inkl.', 'value' => '1'],
- ['label' => 'Subdomains', 'value' => '10'],
- ['label' => 'Domain Aliase', 'value' => '2'],
- ['label' => 'E-Mail-Postfächer', 'value' => '20'],
+ ['label' => 'Webspace', 'value' => '20 GB'],
+ ['label' => 'Domains', 'value' => '5'],
+ ['label' => 'E-Mail-Postfächer', 'value' => '25'],
['label' => 'Datenbanken', 'value' => '5 MySQL'],
- ['label' => 'Traffic', 'value' => '100 GB'],
+ ['label' => 'Traffic', 'value' => '50 GB'],
],
'features' => [
- 'Plesk Webhosting',
- 'PHP 8.4',
- 'Git, WP Toolkit, Composer',
+ 'cPanel/Webmin',
+ 'PHP 8.1',
'SSL-Zertifikat',
'E-Mail-Postfächer',
'MySQL Datenbanken',
@@ -375,21 +374,18 @@ $PRODUCTS['webhosting'] = [
],
'professional' => [
'name' => 'Webhosting Professional',
- 'price' => '13,99',
+ 'price' => '9,99',
'featured' => false,
'specs' => [
['label' => 'Webspace', 'value' => '50 GB'],
- ['label' => 'Domains Inkl.', 'value' => '1'],
- ['label' => 'Subdomains', 'value' => 'unbegrenzt'],
- ['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
- ['label' => 'E-Mail-Postfächer', 'value' => '20'],
- ['label' => 'Datenbanken', 'value' => '20 MySQL'],
- ['label' => 'Traffic', 'value' => '100 GB'],
+ ['label' => 'Domains', 'value' => 'Unbegrenzt'],
+ ['label' => 'E-Mail-Postfächer', 'value' => '100'],
+ ['label' => 'Datenbanken', 'value' => 'Unbegrenzt'],
+ ['label' => 'Traffic', 'value' => '200 GB'],
],
'features' => [
- 'Plesk Webhosting',
- 'PHP 8.4',
- 'Git, WP Toolkit, Composer',
+ 'cPanel/Webmin',
+ 'PHP 8.1',
'SSL-Zertifikat',
'E-Mail-Postfächer',
'MySQL Datenbanken',
@@ -403,17 +399,14 @@ $PRODUCTS['webhosting'] = [
'featured' => false,
'specs' => [
['label' => 'Webspace', 'value' => '100 GB'],
- ['label' => 'Domains Inkl.', 'value' => '3'],
- ['label' => 'Subdomains', 'value' => 'unbegrenzt'],
- ['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
- ['label' => 'E-Mail-Postfächer', 'value' => '100'],
+ ['label' => 'Domains', 'value' => 'Unbegrenzt'],
+ ['label' => 'E-Mail-Postfächer', 'value' => 'Unbegrenzt'],
['label' => 'Datenbanken', 'value' => 'Unbegrenzt'],
- ['label' => 'Traffic', 'value' => '1 TB'],
+ ['label' => 'Traffic', 'value' => '500 GB'],
],
'features' => [
- 'Plesk Webhosting',
- 'PHP 8.4',
- 'Git, WP Toolkit, Composer',
+ 'cPanel/Webmin',
+ 'PHP 8.1',
'SSL-Zertifikat',
'E-Mail-Postfächer',
'MySQL Datenbanken',
@@ -445,14 +438,6 @@ function getProduct($productId) {
return $PRODUCTS[$productId] ?? null;
}
-/**
- * Prüft, ob ein Produkt im Shop angezeigt werden soll
- */
-function isProductVisible($productId) {
- global $HIDDEN_PRODUCTS;
- return !in_array($productId, $HIDDEN_PRODUCTS, true);
-}
-
/**
* Alle Pakete eines Produkts abrufen
*/
@@ -553,4 +538,4 @@ function renderAllPackages($productId) {
}
return $html;
}
-
+?>
diff --git a/backend/config/site-config.php b/backend/config/site-config.php
deleted file mode 100644
index 711eb1e..0000000
--- a/backend/config/site-config.php
+++ /dev/null
@@ -1,81 +0,0 @@
-
- */
-function getAllowedOrigins()
-{
- return [
- 'https://' . SITE_DOMAIN_PRODUCTION,
- 'https://www.' . SITE_DOMAIN_PRODUCTION,
- 'https://' . SITE_DOMAIN_DEVELOPMENT,
- 'http://localhost',
- 'http://127.0.0.1',
- 'http://localhost:8000',
- ];
-}
-
-/**
- * Kanonische Basis-URL für SEO (Produktion immer hexahost.de)
- *
- * @return string
- */
-function getCanonicalBaseUrl()
-{
- return 'https://' . SITE_DOMAIN_PRODUCTION;
-}
diff --git a/backend/includes/functions.php b/backend/includes/functions.php
index 9ed31ce..24d736c 100644
--- a/backend/includes/functions.php
+++ b/backend/includes/functions.php
@@ -3,67 +3,6 @@
* Helper functions for HexaHost.de
*/
-$configDir = defined('HEXAHOST_CONFIG_DIR')
- ? HEXAHOST_CONFIG_DIR
- : __DIR__ . '/../config';
-
-$siteConfigFile = $configDir . '/site-config.php';
-if (is_file($siteConfigFile)) {
- require_once $siteConfigFile;
-} elseif (!function_exists('getSiteHost')) {
- define('SITE_DOMAIN_PRODUCTION', 'hexahost.de');
- define('SITE_DOMAIN_DEVELOPMENT', 'dev.hexahost.de');
-
- function getSiteHost()
- {
- $host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : SITE_DOMAIN_PRODUCTION;
- $host = strtolower($host);
- if (strpos($host, ':') !== false) {
- $host = explode(':', $host, 2)[0];
- }
- return $host;
- }
-
- function isDevelopmentSite()
- {
- return getSiteHost() === SITE_DOMAIN_DEVELOPMENT;
- }
-
- function getSiteBaseUrl()
- {
- $https = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
- || (isset($_SERVER['SERVER_PORT']) && (int) $_SERVER['SERVER_PORT'] === 443);
- return ($https ? 'https' : 'http') . '://' . getSiteHost();
- }
-
- function getAllowedOrigins()
- {
- return [
- 'https://' . SITE_DOMAIN_PRODUCTION,
- 'https://www.' . SITE_DOMAIN_PRODUCTION,
- 'https://' . SITE_DOMAIN_DEVELOPMENT,
- 'http://localhost',
- 'http://127.0.0.1',
- 'http://localhost:8000',
- ];
- }
-
- function getCanonicalBaseUrl()
- {
- return 'https://' . SITE_DOMAIN_PRODUCTION;
- }
-}
-
-// Fehleranzeige auf Dev/localhost für einfacheres Debugging
-$hexahostHost = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '';
-if (
- (function_exists('isDevelopmentSite') && isDevelopmentSite())
- || preg_match('/^(localhost|127\.0\.0\.1)(:\d+)?$/', $hexahostHost)
-) {
- ini_set('display_errors', '1');
- ini_set('display_startup_errors', '1');
-}
-
// Sichere Session-Konfiguration
if (session_status() === PHP_SESSION_NONE) {
// Session-Cookie-Sicherheit
@@ -112,11 +51,6 @@ function includeHeader($title = '', $description = '', $page = '', $scripts = []
$current_page = $page;
$additional_scripts = $scripts;
-
- if (!isset($canonical_url)) {
- $requestPath = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?: '/';
- $canonical_url = rtrim(getCanonicalBaseUrl(), '/') . $requestPath;
- }
include __DIR__ . '/header.php';
}
@@ -161,3 +95,4 @@ function generateCSRFToken() {
}
return $_SESSION['csrf_token'];
}
+?>
\ No newline at end of file
diff --git a/backend/includes/header.php b/backend/includes/header.php
index 2f74089..82629a5 100644
--- a/backend/includes/header.php
+++ b/backend/includes/header.php
@@ -1,8 +1,4 @@
-
@@ -65,12 +61,8 @@ require_once $configDir . '/products-config.php';
Produkte
diff --git a/public/404.php b/public/404.php
index 58ba9bc..bff4941 100644
--- a/public/404.php
+++ b/public/404.php
@@ -1,5 +1,5 @@
');z-index:-1}.hero-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);align-items:center}.hero-title{font-size:var(--font-size-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.highlight{background:linear-gradient(135deg,var(--primary-color),var(--highlight-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.hero-actions{display:flex;gap:var(--spacing-lg)}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-card{padding:var(--spacing-2xl);text-align:center;max-width:300px}.server-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.hero-card h3{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-sm)}.hero-card p{color:var(--text-secondary);font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));color:var(--text-primary);box-shadow:0 4px 15px 0 rgba(255,81,249,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px 0 rgba(255,81,249,.4)}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-lg)}.section-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);max-width:600px;margin:0 auto}.products{padding:var(--spacing-3xl) 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.product-card{padding:var(--spacing-2xl);text-align:center;position:relative;transition:all var(--transition-base)}.product-card.featured{transform:scale(1.05);border:2px solid var(--primary-light)}.featured-badge{position:absolute;top:-10px;right:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-2));color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600}.product-icon{width:40px;height:40px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.product-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.product-description{color:rgba(255,255,255,.8);margin-bottom:var(--spacing-lg);line-height:1.6}.product-features{list-style:none;padding:0;margin-bottom:var(--spacing-lg);text-align:center}.product-features li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;line-height:1.5}.product-features li::before{content:'•';color:var(--primary-color);font-weight:700;margin-right:var(--spacing-sm)}.feature{font-size:var(--font-size-sm);color:rgba(255,255,255,.9)}.product-price{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:rgba(255,255,255,.9)}.price{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color)}.features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.feature-item{padding:var(--spacing-lg);text-align:center}.feature-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.feature-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.feature-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.how-it-works{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.step-item{padding:var(--spacing-xl);text-align:center;position:relative}.step-number{width:60px;height:60px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--white);margin:0 auto var(--spacing-lg);box-shadow:0 8px 32px 0 rgba(255,81,249,.3)}.step-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.step-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.mail-features{padding:var(--spacing-3xl) 0}.benefits{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.benefit-item{padding:var(--spacing-xl);text-align:center}.benefit-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.benefit-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.benefit-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.cta{padding:var(--spacing-3xl) 0}.cta-content{text-align:center;padding:var(--spacing-3xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-lg)}.cta-content p{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.cta-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.footer{background:rgba(0,0,0,.3);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--primary-color)}.footer-section p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.footer-location{display:flex;align-items:center;gap:var(--spacing-sm);color:rgba(255,255,255,.7)}.footer-location svg{width:16px;height:16px}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-sm)}.footer-section ul li a{color:rgba(255,255,255,.8);text-decoration:none;transition:color var(--transition-base)}.footer-section ul li a:hover{color:var(--primary-color)}.footer-bottom{padding-top:var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1);text-align:center;color:rgba(255,255,255,.6)}@media (max-width:768px){.nav-menu{display:none}.nav-toggle{display:flex}.hero-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{flex-direction:column;align-items:center}.features-grid,.products-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width:480px){.container,.nav-container{padding:0 var(--spacing-md)}.hero{padding:100px 0 60px}.hero-title{font-size:var(--font-size-2xl)}.section-title{font-size:var(--font-size-3xl)}.cta-content,.feature-item,.product-card{padding:var(--spacing-xl)}.values-grid{grid-template-columns:1fr!important}.team-stats{grid-template-columns:1fr 1fr!important}}.product-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.product-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.breadcrumb{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.breadcrumb a{color:var(--primary-color);text-decoration:none}.breadcrumb span{margin:0 var(--spacing-sm)}.product-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.product-hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.product-hero-features{display:flex;justify-content:center;gap:var(--spacing-2xl);flex-wrap:wrap}.hero-feature{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--primary-color);font-weight:500}.hero-feature svg{width:16px;height:16px}.packages{padding:var(--spacing-3xl) 0}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-2xl)}.package-card{padding:var(--spacing-2xl);position:relative;text-align:center}.package-header{margin-bottom:var(--spacing-xl)}.package-name{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.package-price{margin-bottom:var(--spacing-xl)}.package-price .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-color)}.package-price .period{color:var(--text-secondary);font-size:var(--font-size-base)}.package-specs{margin-bottom:var(--spacing-xl);text-align:left}.spec-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.spec-label{color:rgba(255,255,255,.8)}.spec-value{font-weight:600;color:var(--white)}.package-features{margin-bottom:var(--spacing-xl);text-align:left}.package-features .feature{padding:var(--spacing-xs) 0;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.mail-features,.technical-details,.vps-features,.web-features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.detail-card{padding:var(--spacing-lg);text-align:center}.detail-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.detail-card h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.use-cases{padding:var(--spacing-3xl) 0}.use-cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.use-case-item{padding:var(--spacing-lg)}.use-case-item h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--primary-color)}.use-case-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.cms-support,.operating-systems,.technologies{padding:var(--spacing-3xl) 0}.cms-grid,.os-grid,.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.cms-item,.os-item,.tech-item{padding:var(--spacing-md);text-align:center}.os-icon,.tech-icon{width:28px;height:28px;margin:0 auto var(--spacing-sm);color:var(--primary-color)}.cms-logo{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-base);color:var(--text-primary)}.cms-item h3,.os-item h3,.tech-item h3{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.cms-item p,.os-item p,.tech-item p{color:rgba(255,255,255,.7);font-size:var(--font-size-xs)}.performance-security{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.perf-sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.perf-sec-item{padding:var(--spacing-lg);text-align:center}.perf-sec-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.about-hero,.contact-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.about-hero-content,.contact-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.about-hero-title,.contact-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.about-hero-description,.contact-hero-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);line-height:1.6}.company-story{padding:var(--spacing-3xl) 0}.story-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-3xl);align-items:center}.story-text p{margin-bottom:var(--spacing-lg);color:var(--text-secondary);line-height:1.6}.story-visual{padding:var(--spacing-2xl);text-align:center}.location-info{margin-bottom:var(--spacing-2xl)}.location-icon{width:60px;height:60px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.location-info h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.location-details{text-align:center}.location-details p{color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.stat-item{text-align:center}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.mission{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.mission-item{padding:var(--spacing-lg);text-align:center}.mission-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.values{padding:var(--spacing-3xl) 0}.values-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.values-grid .value-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);text-align:center}.values-grid .value-icon{width:48px;height:48px;margin-bottom:var(--spacing-lg);color:var(--primary-color);display:flex;align-items:center;justify-content:center}.values-grid .value-icon svg{width:100%;height:100%}.values-grid .value-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.values-grid .value-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.team{padding:var(--spacing-3xl) 0}.team-content{margin-top:var(--spacing-2xl)}.team-text{margin-bottom:var(--spacing-2xl)}.team-text p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.team-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.technology{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.tech-item{padding:var(--spacing-xl);text-align:center}.tech-item .tech-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.tech-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.tech-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.value-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);min-width:60px}.value-content h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.value-content p{color:rgba(255,255,255,.8);line-height:1.6}.technology-stack{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.tech-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.tech-stack-item{padding:var(--spacing-lg);text-align:center}.tech-icon{width:50px;height:50px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.why-choose-us{padding:var(--spacing-3xl) 0}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.advantage-item{padding:var(--spacing-lg);text-align:center}.advantage-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-options{padding:var(--spacing-3xl) 0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.contact-item{padding:var(--spacing-lg);text-align:center}.contact-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-link{display:inline-block;margin-top:var(--spacing-md);color:var(--primary-color);text-decoration:none;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.contact-link:hover{background:var(--primary-color);color:var(--text-primary)}.chat-btn{background:0 0;cursor:pointer}.contact-hours{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.contact-form-section{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.form-container{max-width:800px;margin:0 auto}.form-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-form{padding:var(--spacing-2xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:var(--text-primary);font-family:inherit;transition:all var(--transition-base)}.form-group select{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.form-group select option{background:rgba(13,8,33,.95);color:var(--text-primary);padding:var(--spacing-sm)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.15)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:0 0;position:relative;flex-shrink:0;margin-top:2px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--white);font-size:12px;font-weight:700}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.form-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.faq-section{padding:var(--spacing-3xl) 0}.faq-grid{display:grid;gap:var(--spacing-lg);max-width:800px;margin:0 auto}.faq-item{padding:0;overflow:hidden;transition:all var(--transition-base);border:1px solid transparent}.faq-item:hover{border-color:var(--primary-color);box-shadow:0 0 20px rgba(255,81,249,.2);transform:translateY(-2px)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-base)}.faq-question h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.faq-toggle{font-size:var(--font-size-2xl);font-weight:300;color:var(--primary-color);transition:transform var(--transition-base)}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.faq-answer p{padding:0 var(--spacing-lg) var(--spacing-lg);color:rgba(255,255,255,.8);line-height:1.6;margin:0}.response-time{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.response-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-2xl);align-items:center;padding:var(--spacing-2xl)}.response-stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.response-text h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.response-text p{color:rgba(255,255,255,.8);line-height:1.6}@media (max-width:768px){.product-hero-features{gap:var(--spacing-lg)}.hero-feature{font-size:var(--font-size-sm)}.packages-grid{grid-template-columns:1fr}.benefits-grid,.steps-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.story-content{grid-template-columns:1fr}.stats{flex-direction:column;gap:var(--spacing-md)}.team-stats,.values-grid{grid-template-columns:1fr 1fr!important}.form-row{grid-template-columns:1fr}.response-content{grid-template-columns:1fr;text-align:center}.response-stats{flex-direction:column;gap:var(--spacing-md)}.form-actions{flex-direction:column;align-items:center}}.legal-hero{padding:calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);text-align:center}.legal-hero-content{max-width:800px;margin:0 auto}.legal-hero-title{font-size:clamp(2rem, 5vw, 3rem);font-weight:700;margin-bottom:var(--spacing-md);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-description{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.legal-content{padding:var(--spacing-2xl) 0}.legal-container{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.legal-section{padding:var(--spacing-xl)}.legal-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary)}.legal-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-md)}.legal-section h3:first-child{margin-top:0}.legal-block{margin-bottom:var(--spacing-md)}.legal-block:last-child{margin-bottom:0}.legal-block p{color:var(--text-secondary);line-height:1.8;margin-bottom:var(--spacing-sm)}.legal-block p:last-child{margin-bottom:0}.legal-block a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.legal-block a:hover{color:var(--primary-light);text-decoration:underline}.legal-block ol,.legal-block ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg);color:var(--text-secondary)}.legal-block li{margin-bottom:var(--spacing-xs);line-height:1.7}.legal-note{font-size:.875rem;color:var(--text-muted);background:rgba(var(--primary-rgb),.1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}@media (max-width:768px){.legal-section{padding:var(--spacing-lg)}.legal-section h2{font-size:1.25rem}.legal-hero{padding:calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl)}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:rgba(13,8,33,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px rgba(0,0,0,.3);transform:translateY(100%);opacity:0;visibility:hidden;transition:.4s cubic-bezier(.4, 0, .2, 1)}.cookie-consent.show{transform:translateY(0);opacity:1;visibility:visible}.cookie-consent.hide{transform:translateY(100%);opacity:0;visibility:hidden}.cookie-consent-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-consent-content{display:flex;align-items:flex-start;gap:var(--spacing-lg);flex:1;min-width:300px}.cookie-consent-icon{width:48px;height:48px;flex-shrink:0;color:var(--primary-color)}.cookie-consent-icon svg{width:100%;height:100%}.cookie-consent-text h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.cookie-consent-text p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.cookie-consent-text a{color:var(--primary-color);text-decoration:none;font-weight:500}.cookie-consent-text a:hover{text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.cookie-consent-actions .btn{white-space:nowrap}.btn-text{background:0 0;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);font-weight:500;cursor:pointer;transition:color var(--transition-base)}.btn-text:hover{color:var(--primary-color)}.cookie-settings-panel{border-top:1px solid var(--glass-border);background:rgba(0,0,0,.3);animation:.3s ease-out slideDown}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-settings-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.cookie-settings-content h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.cookie-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid rgba(255,255,255,.1)}.cookie-option:last-of-type{border-bottom:none}.cookie-option-info{flex:1;padding-right:var(--spacing-lg)}.cookie-option-info strong{display:block;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.cookie-option-info p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5}.cookie-toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.2);border-radius:28px;transition:all var(--transition-base)}.cookie-toggle-slider::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:all var(--transition-base)}.cookie-toggle input:checked+.cookie-toggle-slider{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1))}.cookie-toggle input:checked+.cookie-toggle-slider::before{transform:translateX(24px)}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;opacity:.7}.cookie-toggle input:focus+.cookie-toggle-slider{box-shadow:0 0 0 3px rgba(255,81,249,.3)}.cookie-settings-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}@media (max-width:768px){.cookie-consent-container{flex-direction:column;align-items:stretch;padding:var(--spacing-lg)}.cookie-consent-content{flex-direction:column;align-items:center;text-align:center}.cookie-consent-icon{width:40px;height:40px}.cookie-consent-actions{flex-direction:column;width:100%}.cookie-consent-actions .btn{width:100%;justify-content:center}.cookie-settings-actions{flex-direction:column}.cookie-settings-actions .btn{width:100%}.cookie-option{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.cookie-option-info{padding-right:0}}
\ No newline at end of file
+*{margin:0;padding:0;box-sizing:border-box}:root{--background-color:#0d0821;--primary-color:#ff51f9;--accent-color-1:#a348ff;--accent-color-2:#3978ff;--highlight-color:#f093ff;--accent-deep:#6b2aff;--accent-neon-blue:#00cfff;--accent-pink-dark:#c31adf;--success-color:#32fba2;--warning-color:#ffcc00;--error-color:#ff4d6d;--neutral-light:#1a1230;--neutral-medium:#3d3a4e;--text-primary:#ffffff;--text-secondary:#cfc9dd;--white:#ffffff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-primary:linear-gradient(135deg, var(--background-color) 0%, var(--neutral-light) 100%);--bg-secondary:linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color-1) 100%);--bg-accent:linear-gradient(135deg, var(--accent-deep) 0%, var(--accent-color-1) 100%);--bg-neon:linear-gradient(135deg, var(--accent-neon-blue) 0%, var(--primary-color) 100%);--glass-bg:rgba(255, 255, 255, 0.05);--glass-border:rgba(255, 255, 255, 0.1);--glass-shadow:0 8px 32px 0 rgba(255, 81, 249, 0.2);--glass-shadow-accent:0 8px 32px 0 rgba(163, 72, 255, 0.3);--glass-shadow-neon:0 8px 32px 0 rgba(0, 207, 255, 0.3);--font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-logo:'Russo One',sans-serif;--font-slogan:'Source Sans Pro',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--transition-fast:0.15s ease-in-out;--transition-base:0.3s ease-in-out;--transition-slow:0.5s ease-in-out}body{font-family:var(--font-family);line-height:1.6;color:var(--text-primary);background:var(--background-color);min-height:100vh;overflow-x:hidden}.glass-card{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:all var(--transition-base)}.glass-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px 0 rgba(31,38,135,.5)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(13,8,33,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 20px rgba(255,81,249,.1);transition:all var(--transition-base)}.header.scrolled{background:rgba(13,8,33,.523);box-shadow:0 4px 30px rgba(255,81,249,.2)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo a{text-decoration:none;display:flex;align-items:center}.logo-image{height:50px;width:auto;object-fit:contain;transition:var(--transition-base)}.logo-image:hover{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(255, 81, 249, .5))}.nav-menu{display:flex;list-style:none;gap:var(--spacing-xl);align-items:center}.nav-link{text-decoration:none;color:var(--white);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-base);position:relative}.nav-link.active,.nav-link:hover{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-base);list-style:none}.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu li{margin:0}.dropdown-menu a{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--white);text-decoration:none;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.dropdown-menu a:hover{background:rgba(255,255,255,.1)}.nav-toggle{display:none;flex-direction:column;cursor:pointer}.nav-toggle span{width:25px;height:3px;background:var(--white);margin:3px 0;transition:var(--transition-base)}.hero{padding:120px 0 80px;min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml, ');z-index:-1}.hero-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);align-items:center}.hero-title{font-size:var(--font-size-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.highlight{background:linear-gradient(135deg,var(--primary-color),var(--highlight-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.hero-actions{display:flex;gap:var(--spacing-lg)}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-card{padding:var(--spacing-2xl);text-align:center;max-width:300px}.server-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.hero-card h3{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-sm)}.hero-card p{color:var(--text-secondary);font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));color:var(--text-primary);box-shadow:0 4px 15px 0 rgba(255,81,249,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px 0 rgba(255,81,249,.4)}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-lg)}.section-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);max-width:600px;margin:0 auto}.products{padding:var(--spacing-3xl) 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.product-card{padding:var(--spacing-2xl);text-align:center;position:relative;transition:all var(--transition-base)}.product-card.featured{transform:scale(1.05);border:2px solid var(--primary-light)}.featured-badge{position:absolute;top:-10px;right:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-2));color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600}.product-icon{width:40px;height:40px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.product-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.product-description{color:rgba(255,255,255,.8);margin-bottom:var(--spacing-lg);line-height:1.6}.product-features{list-style:none;padding:0;margin-bottom:var(--spacing-lg);text-align:center}.product-features li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;line-height:1.5}.product-features li::before{content:'•';color:var(--primary-color);font-weight:700;margin-right:var(--spacing-sm)}.feature{font-size:var(--font-size-sm);color:rgba(255,255,255,.9)}.product-price{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:rgba(255,255,255,.9)}.price{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color)}.features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.feature-item{padding:var(--spacing-lg);text-align:center}.feature-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.feature-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.feature-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.how-it-works{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.step-item{padding:var(--spacing-xl);text-align:center;position:relative}.step-number{width:60px;height:60px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--white);margin:0 auto var(--spacing-lg);box-shadow:0 8px 32px 0 rgba(255,81,249,.3)}.step-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.step-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.mail-features{padding:var(--spacing-3xl) 0}.benefits{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.benefit-item{padding:var(--spacing-xl);text-align:center}.benefit-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.benefit-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.benefit-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.cta{padding:var(--spacing-3xl) 0}.cta-content{text-align:center;padding:var(--spacing-3xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-lg)}.cta-content p{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.cta-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.footer{background:rgba(0,0,0,.3);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--primary-color)}.footer-section p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.footer-location{display:flex;align-items:center;gap:var(--spacing-sm);color:rgba(255,255,255,.7)}.footer-location svg{width:16px;height:16px}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-sm)}.footer-section ul li a{color:rgba(255,255,255,.8);text-decoration:none;transition:color var(--transition-base)}.footer-section ul li a:hover{color:var(--primary-color)}.footer-bottom{padding-top:var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1);text-align:center;color:rgba(255,255,255,.6)}@media (max-width:768px){.nav-menu{display:none}.nav-toggle{display:flex}.hero-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{flex-direction:column;align-items:center}.features-grid,.products-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width:480px){.container,.nav-container{padding:0 var(--spacing-md)}.hero{padding:100px 0 60px}.hero-title{font-size:var(--font-size-2xl)}.section-title{font-size:var(--font-size-3xl)}.cta-content,.feature-item,.product-card{padding:var(--spacing-xl)}.values-grid{grid-template-columns:1fr!important}.team-stats{grid-template-columns:1fr 1fr!important}}.product-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.product-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.breadcrumb{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.breadcrumb a{color:var(--primary-color);text-decoration:none}.breadcrumb span{margin:0 var(--spacing-sm)}.product-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.product-hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.product-hero-features{display:flex;justify-content:center;gap:var(--spacing-2xl);flex-wrap:wrap}.hero-feature{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--primary-color);font-weight:500}.hero-feature svg{width:16px;height:16px}.packages{padding:var(--spacing-3xl) 0}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-2xl)}.package-card{padding:var(--spacing-2xl);position:relative;text-align:center}.package-header{margin-bottom:var(--spacing-xl)}.package-name{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.package-price{margin-bottom:var(--spacing-xl)}.package-price .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-color)}.package-price .period{color:var(--text-secondary);font-size:var(--font-size-base)}.package-specs{margin-bottom:var(--spacing-xl);text-align:left}.spec-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.spec-label{color:rgba(255,255,255,.8)}.spec-value{font-weight:600;color:var(--white)}.package-features{margin-bottom:var(--spacing-xl);text-align:left}.package-features .feature{padding:var(--spacing-xs) 0;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.mail-features,.technical-details,.vps-features,.web-features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.detail-card{padding:var(--spacing-lg);text-align:center}.detail-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.detail-card h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.use-cases{padding:var(--spacing-3xl) 0}.use-cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.use-case-item{padding:var(--spacing-lg)}.use-case-item h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--primary-color)}.use-case-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.cms-support,.operating-systems,.technologies{padding:var(--spacing-3xl) 0}.cms-grid,.os-grid,.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.cms-item,.os-item,.tech-item{padding:var(--spacing-md);text-align:center}.os-icon,.tech-icon{width:28px;height:28px;margin:0 auto var(--spacing-sm);color:var(--primary-color)}.cms-logo{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-base);color:var(--text-primary)}.cms-item h3,.os-item h3,.tech-item h3{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.cms-item p,.os-item p,.tech-item p{color:rgba(255,255,255,.7);font-size:var(--font-size-xs)}.performance-security{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.perf-sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.perf-sec-item{padding:var(--spacing-lg);text-align:center}.perf-sec-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.about-hero,.contact-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.about-hero-content,.contact-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.about-hero-title,.contact-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.about-hero-description,.contact-hero-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);line-height:1.6}.company-story{padding:var(--spacing-3xl) 0}.story-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-3xl);align-items:center}.story-text p{margin-bottom:var(--spacing-lg);color:var(--text-secondary);line-height:1.6}.story-visual{padding:var(--spacing-2xl);text-align:center}.location-info{margin-bottom:var(--spacing-2xl)}.location-icon{width:60px;height:60px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.location-info h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.location-details{text-align:center}.location-details p{color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.stat-item{text-align:center}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.mission{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.mission-item{padding:var(--spacing-lg);text-align:center}.mission-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.values{padding:var(--spacing-3xl) 0}.values-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.values-grid .value-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);text-align:center}.values-grid .value-icon{width:48px;height:48px;margin-bottom:var(--spacing-lg);color:var(--primary-color);display:flex;align-items:center;justify-content:center}.values-grid .value-icon svg{width:100%;height:100%}.values-grid .value-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.values-grid .value-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.team{padding:var(--spacing-3xl) 0}.team-content{margin-top:var(--spacing-2xl)}.team-text{margin-bottom:var(--spacing-2xl)}.team-text p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.team-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.technology{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.tech-item{padding:var(--spacing-xl);text-align:center}.tech-item .tech-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.tech-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.tech-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.value-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);min-width:60px}.value-content h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.value-content p{color:rgba(255,255,255,.8);line-height:1.6}.technology-stack{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.tech-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.tech-stack-item{padding:var(--spacing-lg);text-align:center}.tech-icon{width:50px;height:50px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.why-choose-us{padding:var(--spacing-3xl) 0}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.advantage-item{padding:var(--spacing-lg);text-align:center}.advantage-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-options{padding:var(--spacing-3xl) 0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.contact-item{padding:var(--spacing-lg);text-align:center}.contact-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-link{display:inline-block;margin-top:var(--spacing-md);color:var(--primary-color);text-decoration:none;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.contact-link:hover{background:var(--primary-color);color:var(--text-primary)}.chat-btn{background:0 0;cursor:pointer}.contact-hours{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.contact-form-section{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.form-container{max-width:800px;margin:0 auto}.form-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-form{padding:var(--spacing-2xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:var(--text-primary);font-family:inherit;transition:all var(--transition-base)}.form-group select{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.form-group select option{background:rgba(13,8,33,.95);color:var(--text-primary);padding:var(--spacing-sm)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.15)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:0 0;position:relative;flex-shrink:0;margin-top:2px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--white);font-size:12px;font-weight:700}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.form-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.faq-section{padding:var(--spacing-3xl) 0}.faq-grid{display:grid;gap:var(--spacing-lg);max-width:800px;margin:0 auto}.faq-item{padding:0;overflow:hidden;transition:all var(--transition-base);border:1px solid transparent}.faq-item:hover{border-color:var(--primary-color);box-shadow:0 0 20px rgba(255,81,249,.2);transform:translateY(-2px)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-base)}.faq-question h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.faq-toggle{font-size:var(--font-size-2xl);font-weight:300;color:var(--primary-color);transition:transform var(--transition-base)}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.faq-answer p{padding:0 var(--spacing-lg) var(--spacing-lg);color:rgba(255,255,255,.8);line-height:1.6;margin:0}.response-time{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.response-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-2xl);align-items:center;padding:var(--spacing-2xl)}.response-stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.response-text h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.response-text p{color:rgba(255,255,255,.8);line-height:1.6}@media (max-width:768px){.product-hero-features{gap:var(--spacing-lg)}.hero-feature{font-size:var(--font-size-sm)}.packages-grid{grid-template-columns:1fr}.benefits-grid,.steps-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.story-content{grid-template-columns:1fr}.stats{flex-direction:column;gap:var(--spacing-md)}.team-stats,.values-grid{grid-template-columns:1fr 1fr!important}.form-row{grid-template-columns:1fr}.response-content{grid-template-columns:1fr;text-align:center}.response-stats{flex-direction:column;gap:var(--spacing-md)}.form-actions{flex-direction:column;align-items:center}}.legal-hero{padding:calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);text-align:center}.legal-hero-content{max-width:800px;margin:0 auto}.legal-hero-title{font-size:clamp(2rem, 5vw, 3rem);font-weight:700;margin-bottom:var(--spacing-md);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-description{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.legal-content{padding:var(--spacing-2xl) 0}.legal-container{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.legal-section{padding:var(--spacing-xl)}.legal-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary)}.legal-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-md)}.legal-section h3:first-child{margin-top:0}.legal-block{margin-bottom:var(--spacing-md)}.legal-block:last-child{margin-bottom:0}.legal-block p{color:var(--text-secondary);line-height:1.8;margin-bottom:var(--spacing-sm)}.legal-block p:last-child{margin-bottom:0}.legal-block a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.legal-block a:hover{color:var(--primary-light);text-decoration:underline}.legal-block ol,.legal-block ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg);color:var(--text-secondary)}.legal-block li{margin-bottom:var(--spacing-xs);line-height:1.7}.legal-note{font-size:.875rem;color:var(--text-muted);background:rgba(var(--primary-rgb),.1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}@media (max-width:768px){.legal-section{padding:var(--spacing-lg)}.legal-section h2{font-size:1.25rem}.legal-hero{padding:calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl)}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:rgba(13,8,33,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px rgba(0,0,0,.3);transform:translateY(100%);opacity:0;visibility:hidden;transition:.4s cubic-bezier(.4, 0, .2, 1)}.cookie-consent.show{transform:translateY(0);opacity:1;visibility:visible}.cookie-consent.hide{transform:translateY(100%);opacity:0;visibility:hidden}.cookie-consent-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-consent-content{display:flex;align-items:flex-start;gap:var(--spacing-lg);flex:1;min-width:300px}.cookie-consent-icon{width:48px;height:48px;flex-shrink:0;color:var(--primary-color)}.cookie-consent-icon svg{width:100%;height:100%}.cookie-consent-text h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.cookie-consent-text p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.cookie-consent-text a{color:var(--primary-color);text-decoration:none;font-weight:500}.cookie-consent-text a:hover{text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.cookie-consent-actions .btn{white-space:nowrap}.btn-text{background:0 0;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);font-weight:500;cursor:pointer;transition:color var(--transition-base)}.btn-text:hover{color:var(--primary-color)}.cookie-settings-panel{border-top:1px solid var(--glass-border);background:rgba(0,0,0,.3);animation:.3s ease-out slideDown}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-settings-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.cookie-settings-content h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.cookie-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid rgba(255,255,255,.1)}.cookie-option:last-of-type{border-bottom:none}.cookie-option-info{flex:1;padding-right:var(--spacing-lg)}.cookie-option-info strong{display:block;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.cookie-option-info p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5}.cookie-toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.2);border-radius:28px;transition:all var(--transition-base)}.cookie-toggle-slider::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:all var(--transition-base)}.cookie-toggle input:checked+.cookie-toggle-slider{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1))}.cookie-toggle input:checked+.cookie-toggle-slider::before{transform:translateX(24px)}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;opacity:.7}.cookie-toggle input:focus+.cookie-toggle-slider{box-shadow:0 0 0 3px rgba(255,81,249,.3)}.cookie-settings-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}@media (max-width:768px){.cookie-consent-container{flex-direction:column;align-items:stretch;padding:var(--spacing-lg)}.cookie-consent-content{flex-direction:column;align-items:center;text-align:center}.cookie-consent-icon{width:40px;height:40px}.cookie-consent-actions{flex-direction:column;width:100%}.cookie-consent-actions .btn{width:100%;justify-content:center}.cookie-settings-actions{flex-direction:column}.cookie-settings-actions .btn{width:100%}.cookie-option{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.cookie-option-info{padding-right:0}}
\ No newline at end of file
diff --git a/public/bootstrap.php b/public/bootstrap.php
deleted file mode 100644
index 0773e5a..0000000
--- a/public/bootstrap.php
+++ /dev/null
@@ -1,73 +0,0 @@
- $backendIncludes, 'config' => $backendConfig],
- ['includes' => $publicIncludes, 'config' => $publicConfig],
- ['includes' => $publicIncludes, 'config' => $backendConfig],
- ['includes' => $backendIncludes, 'config' => $publicConfig],
- ];
- }
-
- function hexahost_is_app_root_valid(string $includesDir, string $configDir): bool
- {
- $required = [
- $includesDir . '/functions.php',
- $includesDir . '/header.php',
- $includesDir . '/footer.php',
- $configDir . '/products-config.php',
- ];
-
- foreach ($required as $file) {
- if (!is_file($file)) {
- return false;
- }
- }
-
- return true;
- }
-
- $resolved = false;
-
- foreach (hexahost_path_candidates() as $paths) {
- if (!hexahost_is_app_root_valid($paths['includes'], $paths['config'])) {
- continue;
- }
-
- define('HEXAHOST_INCLUDES_DIR', $paths['includes']);
- define('HEXAHOST_CONFIG_DIR', $paths['config']);
- require_once $paths['includes'] . '/functions.php';
- $resolved = true;
- break;
- }
-
- if (!$resolved) {
- http_response_code(500);
- header('Content-Type: text/html; charset=utf-8');
- echo 'HexaHost ';
- echo 'HexaHost: Seite konnte nicht geladen werden ';
- echo 'PHP konnte die Anwendungsdateien nicht finden.
';
- echo 'Dev-Branch: Repository mit Ordner backend/ neben public/ deployen.
';
- echo 'Produktion: Vor dem Upload scripts/sync-backend-to-public.ps1 ausführen ';
- echo 'oder backend/includes und backend/config nach public/ kopieren.
';
- echo '';
- exit;
- }
-
- define('HEXAHOST_BOOTSTRAPPED', true);
-}
diff --git a/public/config/config.php b/public/config/config.php
deleted file mode 100644
index 8edeb67..0000000
--- a/public/config/config.php
+++ /dev/null
@@ -1,17 +0,0 @@
- 'HexaHost.de Contact Form',
- 'X-Priority' => '3',
- 'X-MSMail-Priority' => 'Normal',
- 'Importance' => 'Normal',
- 'X-Report-Abuse' => 'Please report abuse here: abuse@hexahost.de',
- 'List-Unsubscribe' => '',
- 'Precedence' => 'bulk'
-]);
-
-// Erlaubte Domains für E-Mail-Adressen (optional)
-define('ALLOWED_EMAIL_DOMAINS', [
- // Leer lassen für alle Domains zu erlauben
- // 'gmail.com',
- // 'outlook.com',
- // 'web.de',
- // 'gmx.de'
-]);
-
-// Blacklist für E-Mail-Adressen (optional)
-define('BLACKLISTED_EMAILS', [
- // 'spam@example.com',
- // 'test@test.com'
-]);
-
-// Validierung der Konfiguration
-if (!defined('SMTP_HOST') || !defined('SMTP_USERNAME') || !defined('SMTP_PASSWORD')) {
- die('SMTP-Konfiguration ist unvollständig. Bitte überprüfen Sie die mail-config.php');
-}
-
-// Überprüfung der E-Mail-Adressen
-if (!filter_var(SMTP_FROM_EMAIL, FILTER_VALIDATE_EMAIL)) {
- die('Ungültige SMTP_FROM_EMAIL Adresse');
-}
-
-if (!filter_var(SMTP_TO_EMAIL, FILTER_VALIDATE_EMAIL)) {
- die('Ungültige SMTP_TO_EMAIL Adresse');
-}
-
-// Logging-Funktion
-function logEmail($type, $data) {
- if (!LOG_EMAILS) return;
-
- $logFile = __DIR__ . '/../logs/email.log';
- $logDir = dirname($logFile);
-
- if (!is_dir($logDir)) {
- mkdir($logDir, 0755, true);
- }
-
- $timestamp = date('Y-m-d H:i:s');
- $logEntry = "[$timestamp] $type: " . json_encode($data) . "\n";
-
- file_put_contents($logFile, $logEntry, FILE_APPEND | LOCK_EX);
-}
-
-// Hilfsfunktion für E-Mail-Validierung
-function isValidEmail($email) {
- if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
- return false;
- }
-
- // Prüfe Blacklist
- if (in_array($email, BLACKLISTED_EMAILS)) {
- return false;
- }
-
- // Prüfe Domain-Whitelist (falls gesetzt)
- if (!empty(ALLOWED_EMAIL_DOMAINS)) {
- $domain = substr(strrchr($email, "@"), 1);
- if (!in_array($domain, ALLOWED_EMAIL_DOMAINS)) {
- return false;
- }
- }
-
- return true;
-}
-
-// CSRF Token generieren (wird in functions.php verwendet)
-// Hinweis: Diese Funktion existiert auch in functions.php - hier nur als Fallback
-if (!function_exists('generateCSRFToken')) {
- function generateCSRFToken() {
- if (!isset($_SESSION['csrf_token'])) {
- $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
- }
- return $_SESSION['csrf_token'];
- }
-}
-
-// CSRF Token validieren
-if (!function_exists('validateCSRFToken')) {
- function validateCSRFToken($token) {
- return isset($_SESSION['csrf_token']) && hash_equals($_SESSION['csrf_token'], $token);
- }
-}
-
-/**
- * Hilfsfunktion zum Abrufen der Konfiguration als Array
- * Kompatibilität mit contact-handler.php
- *
- * @param string|null $key Optional: einzelner Schlüssel
- * @return mixed Konfigurationsarray oder einzelner Wert
- */
-function getHexaHostConfig($key = null) {
- $config = [
- // SMTP Server-Einstellungen
- 'smtp_host' => SMTP_HOST,
- 'smtp_port' => SMTP_PORT,
- 'smtp_username' => SMTP_USERNAME,
- 'smtp_password' => SMTP_PASSWORD,
- 'smtp_encryption' => 'tls',
-
- // Absender/Empfänger
- 'from_email' => SMTP_FROM_EMAIL,
- 'from_name' => 'HexaHost.de Kontaktformular',
- 'to_email' => SMTP_TO_EMAIL,
- 'to_name' => 'HexaHost Support',
-
- // Sicherheit
- 'max_requests_per_hour' => MAX_REQUESTS_PER_HOUR,
- 'honeypot_field' => 'website',
-
- // Debug
- 'debug_mode' => DEBUG_MODE,
- 'log_errors' => LOG_EMAILS,
- ];
-
- if ($key === null) {
- return $config;
- }
-
- return $config[$key] ?? null;
-}
diff --git a/public/config/products-config.php b/public/config/products-config.php
deleted file mode 100644
index 80a3040..0000000
--- a/public/config/products-config.php
+++ /dev/null
@@ -1,556 +0,0 @@
- 'Virtual Private Container',
- 'short_name' => 'VPC',
- 'description' => 'Effiziente LXC-Container auf Proxmox-Basis',
- 'min_price' => '4,99',
- 'hero_highlight' => 'auf Proxmox LXC',
- 'hero_description' => 'Erleben Sie die Effizienz von Linux-Containern mit der Zuverlässigkeit von Proxmox. Unsere VPC-Lösungen bieten optimale Performance bei minimalem Ressourcenverbrauch.',
- 'packages_title' => 'VPC Pakete',
- 'packages_description' => 'Wählen Sie das perfekte Container-Paket für Ihre Anforderungen',
- 'cta_title' => 'Bereit für Ihren VPC?',
- 'cta_description' => 'Starten Sie noch heute mit einem Virtual Private Container',
- 'page_title' => 'Virtual Private Container - Effiziente LXC Container | HexaHost.de',
- 'page_description' => 'Virtual Private Container auf Proxmox LXC-Basis. Effiziente und preiswerte Container-Lösungen ab 4,99€/Monat bei HexaHost.de',
- 'packages' => [
- 'starter' => [
- 'name' => 'VPC Starter',
- 'price' => '4,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'CPU Kerne', 'value' => '1 vCore'],
- ['label' => 'RAM', 'value' => '1 GB'],
- ['label' => 'SSD Speicher', 'value' => '20 GB'],
- ['label' => 'Traffic', 'value' => '1 TB'],
- ['label' => 'IPv4 Adressen', 'value' => '1'],
- ],
- 'features' => [
- 'Proxmox LXC Container',
- 'Root-Zugriff',
- 'SSH-Zugang',
- 'Backup inklusive',
- '24/7 Monitoring',
- ],
- ],
- 'business' => [
- 'name' => 'VPC Business',
- 'price' => '9,99',
- 'featured' => true,
- 'specs' => [
- ['label' => 'CPU Kerne', 'value' => '2 vCores'],
- ['label' => 'RAM', 'value' => '4 GB'],
- ['label' => 'SSD Speicher', 'value' => '80 GB'],
- ['label' => 'Traffic', 'value' => '3 TB'],
- ['label' => 'IPv4 Adressen', 'value' => '1'],
- ],
- 'features' => [
- 'Proxmox LXC Container',
- 'Root-Zugriff',
- 'SSH-Zugang',
- 'Tägliches Backup',
- '24/7 Monitoring',
- 'Snapshot-Funktion',
- ],
- ],
- 'professional' => [
- 'name' => 'VPC Professional',
- 'price' => '19,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'CPU Kerne', 'value' => '4 vCores'],
- ['label' => 'RAM', 'value' => '8 GB'],
- ['label' => 'SSD Speicher', 'value' => '160 GB'],
- ['label' => 'Traffic', 'value' => '5 TB'],
- ['label' => 'IPv4 Adressen', 'value' => '2'],
- ],
- 'features' => [
- 'Proxmox LXC Container',
- 'Root-Zugriff',
- 'SSH-Zugang',
- 'Stündliches Backup',
- '24/7 Monitoring',
- 'Snapshot-Funktion',
- 'Priority Support',
- ],
- ],
- 'enterprise' => [
- 'name' => 'VPC Enterprise',
- 'price' => '39,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'CPU Kerne', 'value' => '8 vCores'],
- ['label' => 'RAM', 'value' => '16 GB'],
- ['label' => 'SSD Speicher', 'value' => '320 GB'],
- ['label' => 'Traffic', 'value' => '10 TB'],
- ['label' => 'IPv4 Adressen', 'value' => '3'],
- ],
- 'features' => [
- 'Proxmox LXC Container',
- 'Root-Zugriff',
- 'SSH-Zugang',
- 'Stündliches Backup',
- '24/7 Monitoring',
- 'Snapshot-Funktion',
- 'Priority Support',
- 'Individuelle Konfiguration',
- ],
- ],
- ],
-];
-
-// ============================================================================
-// VIRTUAL PRIVATE SERVER (VPS)
-// ============================================================================
-$PRODUCTS['vps'] = [
- 'name' => 'Virtual Private Server',
- 'short_name' => 'VPS',
- 'description' => 'Vollwertige KVM-Virtualisierung mit Root-Zugriff',
- 'min_price' => '9,99',
- 'hero_highlight' => 'auf Proxmox KVM',
- 'hero_description' => 'Maximale Flexibilität und Kontrolle mit vollwertiger KVM-Virtualisierung. Installieren Sie jedes Betriebssystem und genießen Sie vollständigen Root-Zugriff.',
- 'packages_title' => 'VPS Pakete',
- 'packages_description' => 'Wählen Sie das perfekte VPS-Paket für Ihre Anforderungen',
- 'cta_title' => 'Bereit für Ihren VPS?',
- 'cta_description' => 'Starten Sie noch heute mit einem Virtual Private Server',
- 'page_title' => 'Virtual Private Server - KVM Virtualisierung | HexaHost.de',
- 'page_description' => 'Virtual Private Server auf Proxmox KVM-Basis. Vollwertige Virtualisierung mit Root-Zugriff ab 9,99€/Monat bei HexaHost.de',
- 'packages' => [
- 'starter' => [
- 'name' => 'VPS Starter',
- 'price' => '9,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'CPU Kerne', 'value' => '1 vCore'],
- ['label' => 'RAM', 'value' => '2 GB'],
- ['label' => 'SSD Speicher', 'value' => '40 GB'],
- ['label' => 'Traffic', 'value' => '2 TB'],
- ['label' => 'IPv4 Adressen', 'value' => '1'],
- ],
- 'features' => [
- 'Proxmox KVM Virtualisierung',
- 'Root-Zugriff',
- 'SSH-Zugang',
- 'Backup inklusive',
- '24/7 Monitoring',
- ],
- ],
- 'business' => [
- 'name' => 'VPS Business',
- 'price' => '19,99',
- 'featured' => true,
- 'specs' => [
- ['label' => 'CPU Kerne', 'value' => '2 vCores'],
- ['label' => 'RAM', 'value' => '4 GB'],
- ['label' => 'SSD Speicher', 'value' => '80 GB'],
- ['label' => 'Traffic', 'value' => '4 TB'],
- ['label' => 'IPv4 Adressen', 'value' => '1'],
- ],
- 'features' => [
- 'Proxmox KVM Virtualisierung',
- 'Root-Zugriff',
- 'SSH-Zugang',
- 'Tägliches Backup',
- '24/7 Monitoring',
- 'Snapshot-Funktion',
- ],
- ],
- 'professional' => [
- 'name' => 'VPS Professional',
- 'price' => '39,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'CPU Kerne', 'value' => '4 vCores'],
- ['label' => 'RAM', 'value' => '8 GB'],
- ['label' => 'SSD Speicher', 'value' => '160 GB'],
- ['label' => 'Traffic', 'value' => '8 TB'],
- ['label' => 'IPv4 Adressen', 'value' => '2'],
- ],
- 'features' => [
- 'Proxmox KVM Virtualisierung',
- 'Root-Zugriff',
- 'SSH-Zugang',
- 'Stündliches Backup',
- '24/7 Monitoring',
- 'Snapshot-Funktion',
- 'Priority Support',
- ],
- ],
- 'enterprise' => [
- 'name' => 'VPS Enterprise',
- 'price' => '79,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'CPU Kerne', 'value' => '8 vCores'],
- ['label' => 'RAM', 'value' => '16 GB'],
- ['label' => 'SSD Speicher', 'value' => '320 GB'],
- ['label' => 'Traffic', 'value' => '15 TB'],
- ['label' => 'IPv4 Adressen', 'value' => '3'],
- ],
- 'features' => [
- 'Proxmox KVM Virtualisierung',
- 'Root-Zugriff',
- 'SSH-Zugang',
- 'Stündliches Backup',
- '24/7 Monitoring',
- 'Snapshot-Funktion',
- 'Priority Support',
- 'Individuelle Konfiguration',
- ],
- ],
- ],
-];
-
-// ============================================================================
-// MAIL GATEWAY
-// ============================================================================
-$PRODUCTS['mail-gateway'] = [
- 'name' => 'Mail Gateway',
- 'short_name' => 'Mail',
- 'description' => 'Professioneller E-Mail-Schutz für Unternehmen',
- 'min_price' => '4,99',
- 'hero_highlight' => 'für Unternehmen',
- 'hero_description' => 'Professionelle E-Mail-Infrastruktur mit maximalem Schutz vor Spam und Malware. Sichern Sie Ihre geschäftliche Kommunikation mit unseren Mail Gateway Lösungen.',
- 'packages_title' => 'Mail Gateway Pakete',
- 'packages_description' => 'Wählen Sie das passende Mail Gateway Paket für Ihr Unternehmen',
- 'cta_title' => 'Bereit für professionelle E-Mail-Kommunikation?',
- 'cta_description' => 'Starten Sie noch heute mit unserem Mail Gateway',
- 'page_title' => 'Mail Gateway - Professionelle E-Mail-Lösungen | HexaHost.de',
- 'page_description' => 'Professionelle Mail Gateway Lösungen für Unternehmen. Spam-Schutz, E-Mail-Archivierung und sichere E-Mail-Kommunikation bei HexaHost.de',
- 'packages' => [
- 'starter' => [
- 'name' => 'Mail Starter',
- 'price' => '4,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'Postfächer', 'value' => '5'],
- ['label' => 'Speicher/Postfach', 'value' => '5 GB'],
- ['label' => 'Domains', 'value' => '1'],
- ['label' => 'E-Mails/Tag', 'value' => '500'],
- ],
- 'features' => [
- 'Spam-Filter',
- 'Virus-Schutz',
- 'Webmail',
- 'IMAP/POP3',
- 'SSL/TLS Verschlüsselung',
- ],
- ],
- 'business' => [
- 'name' => 'Mail Business',
- 'price' => '14,99',
- 'featured' => true,
- 'specs' => [
- ['label' => 'Postfächer', 'value' => '25'],
- ['label' => 'Speicher/Postfach', 'value' => '10 GB'],
- ['label' => 'Domains', 'value' => '3'],
- ['label' => 'E-Mails/Tag', 'value' => '2.000'],
- ],
- 'features' => [
- 'Spam-Filter (erweitert)',
- 'Virus-Schutz',
- 'Webmail',
- 'IMAP/POP3',
- 'SSL/TLS Verschlüsselung',
- ],
- ],
- 'professional' => [
- 'name' => 'Mail Professional',
- 'price' => '29,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'Postfächer', 'value' => '100'],
- ['label' => 'Speicher/Postfach', 'value' => '25 GB'],
- ['label' => 'Domains', 'value' => '10'],
- ['label' => 'E-Mails/Tag', 'value' => '10.000'],
- ],
- 'features' => [
- 'Spam-Filter (KI-gestützt)',
- 'Virus-Schutz',
- 'Webmail',
- 'IMAP/POP3',
- 'SSL/TLS Verschlüsselung',
- ],
- ],
- 'enterprise' => [
- 'name' => 'Mail Enterprise',
- 'price' => '59,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'Postfächer', 'value' => 'Unbegrenzt'],
- ['label' => 'Speicher/Postfach', 'value' => '50 GB'],
- ['label' => 'Domains', 'value' => 'Unbegrenzt'],
- ['label' => 'E-Mails/Tag', 'value' => 'Unbegrenzt'],
- ],
- 'features' => [
- 'Spam-Filter (KI-gestützt)',
- 'Virus-Schutz',
- 'Webmail',
- 'IMAP/POP3',
- 'SSL/TLS Verschlüsselung',
- 'Dedizierte IP',
- 'Priority Support',
- ],
- ],
- ],
-];
-
-// ============================================================================
-// WEBHOSTING
-// ============================================================================
-$PRODUCTS['webhosting'] = [
- 'name' => 'Webhosting',
- 'short_name' => 'Webhosting',
- 'description' => 'Klassisches Hosting mit PHP, MySQL und SSL. WordPress-ready mit Plesk Webhosting.',
- 'min_price' => '2,99',
- 'hero_highlight' => 'Alles für Ihre Website',
- 'hero_description' => 'Klassisches Webhosting mit allem, was Sie für eine erfolgreiche Website benötigen. PHP, MySQL, SSL-Zertifikate und E-Mail-Postfächer - alles inklusive.',
- 'packages_title' => 'Webhosting Pakete',
- 'packages_description' => 'Von der ersten Website bis zum professionellen Online-Shop',
- 'cta_title' => 'Bereit für Ihr Webhosting?',
- 'cta_description' => 'Starten Sie noch heute mit professionellem Webhosting',
- 'page_title' => 'Webhosting - Klassisches Hosting für Websites - WordPress-ready | HexaHost.de',
- 'page_description' => 'Webhosting mit PHP, MySQL und SSL-Zertifikaten. Klassisches Hosting für Websites - WordPress-ready ab 2,99€/Monat bei HexaHost.de',
- 'packages' => [
- 'starter' => [
- 'name' => 'Webhosting Starter',
- 'price' => '2,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'Webspace', 'value' => '10 GB'],
- ['label' => 'Domains', 'value' => '1'],
- ['label' => 'Subdomains', 'value' => '5'],
- ['label' => 'Domain Aliase', 'value' => '2'],
- ['label' => 'E-Mail-Postfächer', 'value' => '10'],
- ['label' => 'Datenbanken', 'value' => '2 MySQL'],
- ['label' => 'Traffic', 'value' => '100 GB'],
- ],
- 'features' => [
- 'Plesk Webhosting',
- 'PHP 8.4',
- 'Git, WP Toolkit, Composer',
- 'SSL-Zertifikat',
- 'E-Mail-Postfächer',
- 'MySQL Datenbanken',
- ],
- ],
- 'business' => [
- 'name' => 'Webhosting Business',
- 'price' => '7,99',
- 'featured' => true,
- 'specs' => [
- ['label' => 'Webspace', 'value' => '30 GB'],
- ['label' => 'Domains Inkl.', 'value' => '1'],
- ['label' => 'Subdomains', 'value' => '10'],
- ['label' => 'Domain Aliase', 'value' => '2'],
- ['label' => 'E-Mail-Postfächer', 'value' => '20'],
- ['label' => 'Datenbanken', 'value' => '5 MySQL'],
- ['label' => 'Traffic', 'value' => '100 GB'],
- ],
- 'features' => [
- 'Plesk Webhosting',
- 'PHP 8.4',
- 'Git, WP Toolkit, Composer',
- 'SSL-Zertifikat',
- 'E-Mail-Postfächer',
- 'MySQL Datenbanken',
- 'Backup-Service',
- ],
- ],
- 'professional' => [
- 'name' => 'Webhosting Professional',
- 'price' => '13,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'Webspace', 'value' => '50 GB'],
- ['label' => 'Domains Inkl.', 'value' => '1'],
- ['label' => 'Subdomains', 'value' => 'unbegrenzt'],
- ['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
- ['label' => 'E-Mail-Postfächer', 'value' => '20'],
- ['label' => 'Datenbanken', 'value' => '20 MySQL'],
- ['label' => 'Traffic', 'value' => '100 GB'],
- ],
- 'features' => [
- 'Plesk Webhosting',
- 'PHP 8.4',
- 'Git, WP Toolkit, Composer',
- 'SSL-Zertifikat',
- 'E-Mail-Postfächer',
- 'MySQL Datenbanken',
- 'Backup-Service',
- 'Priority Support',
- ],
- ],
- 'enterprise' => [
- 'name' => 'Webhosting Enterprise',
- 'price' => '19,99',
- 'featured' => false,
- 'specs' => [
- ['label' => 'Webspace', 'value' => '100 GB'],
- ['label' => 'Domains Inkl.', 'value' => '3'],
- ['label' => 'Subdomains', 'value' => 'unbegrenzt'],
- ['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
- ['label' => 'E-Mail-Postfächer', 'value' => '100'],
- ['label' => 'Datenbanken', 'value' => 'Unbegrenzt'],
- ['label' => 'Traffic', 'value' => '1 TB'],
- ],
- 'features' => [
- 'Plesk Webhosting',
- 'PHP 8.4',
- 'Git, WP Toolkit, Composer',
- 'SSL-Zertifikat',
- 'E-Mail-Postfächer',
- 'MySQL Datenbanken',
- 'Backup-Service',
- 'Priority Support',
- 'Individuelle Konfiguration',
- ],
- ],
- ],
-];
-
-// ============================================================================
-// HILFSFUNKTIONEN
-// ============================================================================
-
-/**
- * Alle Produkte abrufen
- */
-function getAllProducts() {
- global $PRODUCTS;
- return $PRODUCTS;
-}
-
-/**
- * Ein Produkt abrufen
- */
-function getProduct($productId) {
- global $PRODUCTS;
- return $PRODUCTS[$productId] ?? null;
-}
-
-/**
- * Prüft, ob ein Produkt im Shop angezeigt werden soll
- */
-function isProductVisible($productId) {
- global $HIDDEN_PRODUCTS;
- return !in_array($productId, $HIDDEN_PRODUCTS, true);
-}
-
-/**
- * Alle Pakete eines Produkts abrufen
- */
-function getProductPackages($productId) {
- global $PRODUCTS;
- return $PRODUCTS[$productId]['packages'] ?? [];
-}
-
-/**
- * Ein bestimmtes Paket abrufen
- */
-function getPackage($productId, $packageId) {
- global $PRODUCTS;
- return $PRODUCTS[$productId]['packages'][$packageId] ?? null;
-}
-
-/**
- * Preis eines Pakets abrufen
- */
-function getPackagePrice($productId, $packageId) {
- $package = getPackage($productId, $packageId);
- return $package['price'] ?? null;
-}
-
-/**
- * Minimalen Preis eines Produkts abrufen
- */
-function getMinPrice($productId) {
- global $PRODUCTS;
- return $PRODUCTS[$productId]['min_price'] ?? null;
-}
-
-/**
- * Preis formatiert ausgeben
- */
-function formatPrice($price, $withCurrency = true) {
- return $withCurrency ? $price . '€' : $price;
-}
-
-/**
- * Generiert HTML für eine Paket-Karte
- */
-function renderPackageCard($productId, $packageId, $package) {
- $featuredClass = $package['featured'] ? ' featured' : '';
- $featuredBadge = $package['featured'] ? 'Beliebt
' : '';
-
- $specsHtml = '';
- foreach ($package['specs'] as $spec) {
- $specsHtml .= sprintf(
- '%s: %s
',
- htmlspecialchars($spec['label']),
- htmlspecialchars($spec['value'])
- );
- }
-
- $featuresHtml = '';
- foreach ($package['features'] as $feature) {
- $featuresHtml .= sprintf('✓ %s
', htmlspecialchars($feature));
- }
-
- return sprintf('
- ',
- $featuredClass,
- $featuredBadge,
- htmlspecialchars($package['name']),
- $package['price'],
- $specsHtml,
- $featuresHtml,
- $productId,
- $packageId
- );
-}
-
-/**
- * Generiert HTML für alle Pakete eines Produkts
- */
-function renderAllPackages($productId) {
- $packages = getProductPackages($productId);
- $html = '';
- foreach ($packages as $packageId => $package) {
- $html .= renderPackageCard($productId, $packageId, $package);
- }
- return $html;
-}
-
diff --git a/public/config/site-config.php b/public/config/site-config.php
deleted file mode 100644
index 711eb1e..0000000
--- a/public/config/site-config.php
+++ /dev/null
@@ -1,81 +0,0 @@
-
- */
-function getAllowedOrigins()
-{
- return [
- 'https://' . SITE_DOMAIN_PRODUCTION,
- 'https://www.' . SITE_DOMAIN_PRODUCTION,
- 'https://' . SITE_DOMAIN_DEVELOPMENT,
- 'http://localhost',
- 'http://127.0.0.1',
- 'http://localhost:8000',
- ];
-}
-
-/**
- * Kanonische Basis-URL für SEO (Produktion immer hexahost.de)
- *
- * @return string
- */
-function getCanonicalBaseUrl()
-{
- return 'https://' . SITE_DOMAIN_PRODUCTION;
-}
diff --git a/public/contact-handler.php b/public/contact-handler.php
index 600378f..ca47f74 100644
--- a/public/contact-handler.php
+++ b/public/contact-handler.php
@@ -9,10 +9,8 @@ if (session_status() === PHP_SESSION_NONE) {
session_start();
}
-require_once __DIR__ . '/bootstrap.php';
-
-$configDir = defined('HEXAHOST_CONFIG_DIR') ? HEXAHOST_CONFIG_DIR : __DIR__ . '/config';
-require_once $configDir . '/mail-config.php';
+// Konfiguration laden
+require_once 'config/mail-config.php';
// PHPMailer Autoload (falls via Composer installiert)
if (file_exists(__DIR__ . '/vendor/autoload.php')) {
@@ -45,8 +43,13 @@ function validateCSRFToken($token) {
return false;
}
-// CORS Headers für AJAX-Requests (nur eigene Domains erlauben)
-$allowed_origins = getAllowedOrigins();
+// CORS Headers für AJAX-Requests (nur eigene Domain erlauben)
+$allowed_origins = [
+ 'https://hexahost.de',
+ 'https://www.hexahost.de',
+ 'http://localhost', // Für Entwicklung
+ 'http://127.0.0.1' // Für Entwicklung
+];
$origin = $_SERVER['HTTP_ORIGIN'] ?? '';
if (in_array($origin, $allowed_origins)) {
diff --git a/public/contact.php b/public/contact.php
index dedf21d..2a3d0bb 100644
--- a/public/contact.php
+++ b/public/contact.php
@@ -1,6 +1,5 @@
Bitte wählen...
Allgemeine Anfrage
-
Virtual Private Container
-
-
Virtual Private Server
-
Mail Gateway
Webhosting
IT-Beratung
diff --git a/public/datenschutz.php b/public/datenschutz.php
index b9f8377..d69959a 100644
--- a/public/datenschutz.php
+++ b/public/datenschutz.php
@@ -1,5 +1,5 @@
Impressum
- Rechtliche Angaben und Pflichtinformationen gemäß § 5 DDG
+
diff --git a/public/includes/footer.php b/public/includes/footer.php
deleted file mode 100644
index b00634e..0000000
--- a/public/includes/footer.php
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Cookie-Einstellungen
-
- Wir verwenden Cookies, um Ihnen die bestmögliche Erfahrung auf unserer Website zu bieten.
- Technisch notwendige Cookies sind für die Funktionalität erforderlich.
- Mehr erfahren
-
-
-
-
- Alle akzeptieren
- Nur notwendige
- Einstellungen
-
-
-
-
-
-
-
Cookie-Einstellungen
-
-
-
Notwendige Cookies
-
Diese Cookies sind für die Grundfunktionen der Website erforderlich.
-
-
-
-
-
-
-
-
-
Analyse-Cookies
-
Helfen uns zu verstehen, wie Besucher unsere Website nutzen.
-
-
-
-
-
-
-
-
-
Marketing-Cookies
-
Werden verwendet, um relevante Werbung anzuzeigen.
-
-
-
-
-
-
-
- Einstellungen speichern
- Abbrechen
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/includes/functions.php b/public/includes/functions.php
deleted file mode 100644
index 9ed31ce..0000000
--- a/public/includes/functions.php
+++ /dev/null
@@ -1,163 +0,0 @@
- 'Home', 'url' => 'index.html'], ...]
- */
-function generateBreadcrumbs($breadcrumbs) {
- echo '';
- $last_index = count($breadcrumbs) - 1;
-
- foreach ($breadcrumbs as $index => $item) {
- if ($index === $last_index) {
- // Last item (current page)
- echo '
' . htmlspecialchars($item['title']) . ' ';
- } else {
- // Link to other pages
- echo '
' . htmlspecialchars($item['title']) . ' ';
- echo '
/ ';
- }
- }
- echo '
';
-}
-
-/**
- * Generate CSRF token for form security
- *
- * @return string CSRF token
- */
-function generateCSRFToken() {
- if (!isset($_SESSION['csrf_token'])) {
- $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
- }
- return $_SESSION['csrf_token'];
-}
diff --git a/public/includes/header.php b/public/includes/header.php
deleted file mode 100644
index 2f74089..0000000
--- a/public/includes/header.php
+++ /dev/null
@@ -1,89 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/index.php b/public/index.php
index f5700e5..d32ca7d 100644
--- a/public/index.php
+++ b/public/index.php
@@ -1,6 +1,5 @@
-
@@ -76,8 +74,6 @@ includeHeader($page_title, $page_description, $current_page);
Mehr erfahren
-
-
@@ -96,7 +92,6 @@ includeHeader($page_title, $page_description, $current_page);
Mehr erfahren
-
@@ -156,7 +151,7 @@ includeHeader($page_title, $page_description, $current_page);
-
+
-
+
IT-Beratung
Individuelle Beratung für sinnvolle und wirtschaftliche IT-Entscheidungen.
diff --git a/public/it-dienstleistungen.php b/public/it-dienstleistungen.php
index 831a9cd..7cd8237 100644
--- a/public/it-dienstleistungen.php
+++ b/public/it-dienstleistungen.php
@@ -1,5 +1,5 @@
-
Plesk Webhosting
-
Plesk Webhosting ist eine benutzerfreundliche Verwaltungsoberfläche für einfache Website-Verwaltung und E-Mail-Konfiguration.
+
cPanel/Webmin
+
Benutzerfreundliche Verwaltungsoberfläche für einfache Website-Verwaltung und E-Mail-Konfiguration.
diff --git a/public/widerruf.php b/public/widerruf.php
index c8ee57f..cba182a 100644
--- a/public/widerruf.php
+++ b/public/widerruf.php
@@ -1,5 +1,5 @@
public/includes und public/config synchronisiert."
From dfc781f3ed60f16c57a325045a8885442921ad87 Mon Sep 17 00:00:00 2001
From: smueller
Date: Wed, 27 May 2026 12:38:30 +0200
Subject: [PATCH 16/16] chore(release): production build 2026-05-27 12:38
---
backend/config/config.php | 15 +-
backend/config/mail-config.php | 124 +++----
backend/config/products-config.php | 77 ++---
backend/includes/footer.php | 6 +-
backend/includes/functions.php | 55 +--
backend/includes/header.php | 16 +-
public/404.php | 6 +-
public/500.php | 6 +-
public/about.php | 62 +---
public/agb.php | 42 +--
public/assets/css/custom.css | 18 +-
public/assets/js/contact.js | 2 +-
public/assets/js/cookie-consent.js | 2 +-
public/assets/js/main.js | 2 +-
public/config/config.php | 6 +
public/config/contact-config.php | 64 ++++
public/config/mail-config.php | 144 +++++++-
public/config/products-config.php | 514 +++++++++++++++++++++++++++++
public/contact.php | 18 +-
public/datenschutz.php | 36 +-
public/impressum.php | 28 +-
public/includes/api-helpers.php | 112 +++++++
public/includes/footer.php | 167 ++++++++++
public/includes/functions.php | 125 +++++++
public/includes/header.php | 81 +++++
public/index.php | 16 +-
public/it-dienstleistungen.php | 14 +-
public/mail-gateway.php | 18 +-
public/vpc.php | 18 +-
public/vps.php | 18 +-
public/webhosting.php | 18 +-
public/widerruf.php | 6 +-
32 files changed, 1438 insertions(+), 398 deletions(-)
create mode 100644 public/config/config.php
create mode 100644 public/config/contact-config.php
create mode 100644 public/config/products-config.php
create mode 100644 public/includes/api-helpers.php
create mode 100644 public/includes/footer.php
create mode 100644 public/includes/functions.php
create mode 100644 public/includes/header.php
diff --git a/backend/config/config.php b/backend/config/config.php
index 60968a7..ea8ee0f 100644
--- a/backend/config/config.php
+++ b/backend/config/config.php
@@ -1,17 +1,6 @@
diff --git a/backend/config/mail-config.php b/backend/config/mail-config.php
index 55850c0..83ec17f 100644
--- a/backend/config/mail-config.php
+++ b/backend/config/mail-config.php
@@ -1,67 +1,31 @@
'HexaHost.de Contact Form',
'X-Priority' => '3',
@@ -72,27 +36,27 @@ define('ADDITIONAL_HEADERS', [
'Precedence' => 'bulk'
]);
-// Erlaubte Domains für E-Mail-Adressen (optional)
+
define('ALLOWED_EMAIL_DOMAINS', [
- // Leer lassen für alle Domains zu erlauben
- // 'gmail.com',
- // 'outlook.com',
- // 'web.de',
- // 'gmx.de'
+
+
+
+
+
]);
-// Blacklist für E-Mail-Adressen (optional)
+
define('BLACKLISTED_EMAILS', [
- // 'spam@example.com',
- // 'test@test.com'
+
+
]);
-// Validierung der Konfiguration
+
if (!defined('SMTP_HOST') || !defined('SMTP_USERNAME') || !defined('SMTP_PASSWORD')) {
die('SMTP-Konfiguration ist unvollständig. Bitte überprüfen Sie die mail-config.php');
}
-// Überprüfung der E-Mail-Adressen
+
if (!filter_var(SMTP_FROM_EMAIL, FILTER_VALIDATE_EMAIL)) {
die('Ungültige SMTP_FROM_EMAIL Adresse');
}
@@ -101,7 +65,7 @@ if (!filter_var(SMTP_TO_EMAIL, FILTER_VALIDATE_EMAIL)) {
die('Ungültige SMTP_TO_EMAIL Adresse');
}
-// Logging-Funktion
+
function logEmail($type, $data) {
if (!LOG_EMAILS) return;
@@ -118,18 +82,18 @@ function logEmail($type, $data) {
file_put_contents($logFile, $logEntry, FILE_APPEND | LOCK_EX);
}
-// Hilfsfunktion für E-Mail-Validierung
+
function isValidEmail($email) {
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return false;
}
- // Prüfe Blacklist
+
if (in_array($email, BLACKLISTED_EMAILS)) {
return false;
}
- // Prüfe Domain-Whitelist (falls gesetzt)
+
if (!empty(ALLOWED_EMAIL_DOMAINS)) {
$domain = substr(strrchr($email, "@"), 1);
if (!in_array($domain, ALLOWED_EMAIL_DOMAINS)) {
@@ -140,36 +104,30 @@ function isValidEmail($email) {
return true;
}
-/**
- * Hilfsfunktion zum Abrufen der Konfiguration als Array
- * Kompatibilität mit contact-handler.php
- *
- * @param string|null $key Optional: einzelner Schlüssel
- * @return mixed Konfigurationsarray oder einzelner Wert
- */
+
function getHexaHostConfig($key = null) {
$config = [
- // SMTP Server-Einstellungen
+
'smtp_host' => SMTP_HOST,
'smtp_port' => SMTP_PORT,
'smtp_username' => SMTP_USERNAME,
'smtp_password' => SMTP_PASSWORD,
'smtp_encryption' => 'tls',
- // Absender/Empfänger
+
'from_email' => SMTP_FROM_EMAIL,
'from_name' => 'HexaHost.de Kontaktformular',
'to_email' => SMTP_TO_EMAIL,
'to_name' => 'HexaHost Support',
- // Sicherheit
+
'max_requests_per_hour' => MAX_REQUESTS_PER_HOUR,
'honeypot_field' => 'website',
'enable_csrf' => ENABLE_CSRF_PROTECTION,
'min_message_length' => MIN_MESSAGE_LENGTH,
'max_message_length' => MAX_MESSAGE_LENGTH,
- // Debug
+
'debug_mode' => DEBUG_MODE,
'log_errors' => LOG_EMAILS,
];
diff --git a/backend/config/products-config.php b/backend/config/products-config.php
index 74e128a..72f6415 100644
--- a/backend/config/products-config.php
+++ b/backend/config/products-config.php
@@ -1,18 +1,9 @@
'Virtual Private Container',
'short_name' => 'VPC',
@@ -112,9 +103,9 @@ $PRODUCTS['vpc'] = [
],
];
-// ============================================================================
-// VIRTUAL PRIVATE SERVER (VPS)
-// ============================================================================
+
+
+
$PRODUCTS['vps'] = [
'name' => 'Virtual Private Server',
'short_name' => 'VPS',
@@ -214,9 +205,9 @@ $PRODUCTS['vps'] = [
],
];
-// ============================================================================
-// MAIL GATEWAY
-// ============================================================================
+
+
+
$PRODUCTS['mail-gateway'] = [
'name' => 'Mail Gateway',
'short_name' => 'Mail',
@@ -316,9 +307,9 @@ $PRODUCTS['mail-gateway'] = [
],
];
-// ============================================================================
-// WEBHOSTING
-// ============================================================================
+
+
+
$PRODUCTS['webhosting'] = [
'name' => 'Webhosting',
'short_name' => 'Webhosting',
@@ -418,68 +409,52 @@ $PRODUCTS['webhosting'] = [
],
];
-// ============================================================================
-// HILFSFUNKTIONEN
-// ============================================================================
-/**
- * Alle Produkte abrufen
- */
+
+
+
+
function getAllProducts() {
global $PRODUCTS;
return $PRODUCTS;
}
-/**
- * Ein Produkt abrufen
- */
+
function getProduct($productId) {
global $PRODUCTS;
return $PRODUCTS[$productId] ?? null;
}
-/**
- * Alle Pakete eines Produkts abrufen
- */
+
function getProductPackages($productId) {
global $PRODUCTS;
return $PRODUCTS[$productId]['packages'] ?? [];
}
-/**
- * Ein bestimmtes Paket abrufen
- */
+
function getPackage($productId, $packageId) {
global $PRODUCTS;
return $PRODUCTS[$productId]['packages'][$packageId] ?? null;
}
-/**
- * Preis eines Pakets abrufen
- */
+
function getPackagePrice($productId, $packageId) {
$package = getPackage($productId, $packageId);
return $package['price'] ?? null;
}
-/**
- * Minimalen Preis eines Produkts abrufen
- */
+
function getMinPrice($productId) {
global $PRODUCTS;
return $PRODUCTS[$productId]['min_price'] ?? null;
}
-/**
- * Preis formatiert ausgeben
- */
+
function formatPrice($price, $withCurrency = true) {
return $withCurrency ? $price . '€' : $price;
}
-/**
- * Generiert HTML für eine Paket-Karte
- */
+
function renderPackageCard($productId, $packageId, $package) {
$featuredClass = $package['featured'] ? ' featured' : '';
$featuredBadge = $package['featured'] ? 'Beliebt
' : '';
@@ -527,9 +502,7 @@ function renderPackageCard($productId, $packageId, $package) {
);
}
-/**
- * Generiert HTML für alle Pakete eines Produkts
- */
+
function renderAllPackages($productId) {
$packages = getProductPackages($productId);
$html = '';
diff --git a/backend/includes/footer.php b/backend/includes/footer.php
index 03118f4..7d884de 100644
--- a/backend/includes/footer.php
+++ b/backend/includes/footer.php
@@ -49,7 +49,7 @@
-
+
-
+
Cookie-Einstellungen
@@ -121,7 +121,7 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/includes/functions.php b/public/includes/functions.php
new file mode 100644
index 0000000..432d9ca
--- /dev/null
+++ b/public/includes/functions.php
@@ -0,0 +1,125 @@
+';
+ $last_index = count($breadcrumbs) - 1;
+
+ foreach ($breadcrumbs as $index => $item) {
+ if ($index === $last_index) {
+
+ echo '
' . htmlspecialchars($item['title']) . ' ';
+ } else {
+
+ echo '
' . htmlspecialchars($item['title']) . ' ';
+ echo '
/ ';
+ }
+ }
+ echo '
';
+}
+
+
+function generateCSRFToken() {
+ if (!isset($_SESSION['csrf_token'])) {
+ $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
+ }
+ return $_SESSION['csrf_token'];
+}
+
+
+function validateCSRFToken($token) {
+ if (!isset($_SESSION['csrf_token']) || !is_string($token)) {
+ return false;
+ }
+ if (!hash_equals($_SESSION['csrf_token'], $token)) {
+ return false;
+ }
+ unset($_SESSION['csrf_token']);
+ return true;
+}
+
+
+function sanitizeHeaderValue(string $value): string {
+ return str_replace(["\r", "\n", "\0"], '', trim($value));
+}
+
+
+function getClientIP(): string {
+ if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])
+ && filter_var($_SERVER['HTTP_CF_CONNECTING_IP'], FILTER_VALIDATE_IP)) {
+ return $_SERVER['HTTP_CF_CONNECTING_IP'];
+ }
+
+ $remoteAddr = $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0';
+ $isTrustedProxy = filter_var(
+ $remoteAddr,
+ FILTER_VALIDATE_IP,
+ FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE
+ ) === false;
+
+ if ($isTrustedProxy) {
+ foreach (['HTTP_X_REAL_IP', 'HTTP_X_FORWARDED_FOR'] as $header) {
+ if (empty($_SERVER[$header])) {
+ continue;
+ }
+ $ip = trim(explode(',', $_SERVER[$header])[0]);
+ if (filter_var($ip, FILTER_VALIDATE_IP)) {
+ return $ip;
+ }
+ }
+ }
+
+ return $remoteAddr;
+}
+?>
\ No newline at end of file
diff --git a/public/includes/header.php b/public/includes/header.php
new file mode 100644
index 0000000..649f96d
--- /dev/null
+++ b/public/includes/header.php
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/index.php b/public/index.php
index d32ca7d..9df9005 100644
--- a/public/index.php
+++ b/public/index.php
@@ -1,17 +1,17 @@
-
+
@@ -44,7 +44,7 @@ includeHeader($page_title, $page_description, $current_page);
-
+
-
+
-
+
-
+
@@ -265,6 +265,6 @@ includeHeader($page_title, $page_description, $current_page);
\ No newline at end of file
diff --git a/public/it-dienstleistungen.php b/public/it-dienstleistungen.php
index 7cd8237..de6439a 100644
--- a/public/it-dienstleistungen.php
+++ b/public/it-dienstleistungen.php
@@ -1,17 +1,17 @@
-
+
@@ -32,7 +32,7 @@ includeHeader($page_title, $page_description, $current_page);
-
+
-
+
-
+
@@ -143,6 +143,6 @@ includeHeader($page_title, $page_description, $current_page);
diff --git a/public/mail-gateway.php b/public/mail-gateway.php
index b0fd0f2..d247076 100644
--- a/public/mail-gateway.php
+++ b/public/mail-gateway.php
@@ -2,21 +2,21 @@
require_once __DIR__ . '/../backend/includes/functions.php';
require_once __DIR__ . '/../backend/config/products-config.php';
-// Produkt-Daten aus Config laden
+
$product = getProduct('mail-gateway');
$packages = getProductPackages('mail-gateway');
-// Page configuration
+
$page_title = $product['page_title'];
$page_description = $product['page_description'];
$current_page = 'mail-gateway';
-// Include header
+
includeHeader($page_title, $page_description, $current_page);
?>
-
+
@@ -59,7 +59,7 @@ includeHeader($page_title, $page_description, $current_page);
-
+
-
+
-
+
-
+
@@ -175,6 +175,6 @@ includeHeader($page_title, $page_description, $current_page);
diff --git a/public/vpc.php b/public/vpc.php
index bc24083..786f5df 100644
--- a/public/vpc.php
+++ b/public/vpc.php
@@ -2,21 +2,21 @@
require_once __DIR__ . '/../backend/includes/functions.php';
require_once __DIR__ . '/../backend/config/products-config.php';
-// Produkt-Daten aus Config laden
+
$product = getProduct('vpc');
$packages = getProductPackages('vpc');
-// Page configuration
+
$page_title = $product['page_title'];
$page_description = $product['page_description'];
$current_page = 'vpc';
-// Include header
+
includeHeader($page_title, $page_description, $current_page);
?>
-
+
@@ -58,7 +58,7 @@ includeHeader($page_title, $page_description, $current_page);
-
+
-
+
-
+
-
+
@@ -175,6 +175,6 @@ includeHeader($page_title, $page_description, $current_page);
diff --git a/public/vps.php b/public/vps.php
index 8e2fd5a..d675f8c 100644
--- a/public/vps.php
+++ b/public/vps.php
@@ -2,21 +2,21 @@
require_once __DIR__ . '/../backend/includes/functions.php';
require_once __DIR__ . '/../backend/config/products-config.php';
-// Produkt-Daten aus Config laden
+
$product = getProduct('vps');
$packages = getProductPackages('vps');
-// Page configuration
+
$page_title = $product['page_title'];
$page_description = $product['page_description'];
$current_page = 'vps';
-// Include header
+
includeHeader($page_title, $page_description, $current_page);
?>
-
+
@@ -63,7 +63,7 @@ includeHeader($page_title, $page_description, $current_page);
-
+
-
+
-
+
-
+
@@ -180,6 +180,6 @@ includeHeader($page_title, $page_description, $current_page);
diff --git a/public/webhosting.php b/public/webhosting.php
index 86c2bc7..3d803c5 100644
--- a/public/webhosting.php
+++ b/public/webhosting.php
@@ -2,21 +2,21 @@
require_once __DIR__ . '/../backend/includes/functions.php';
require_once __DIR__ . '/../backend/config/products-config.php';
-// Produkt-Daten aus Config laden
+
$product = getProduct('webhosting');
$packages = getProductPackages('webhosting');
-// Page configuration
+
$page_title = $product['page_title'];
$page_description = $product['page_description'];
$current_page = 'webhosting';
-// Include header
+
includeHeader($page_title, $page_description, $current_page);
?>
-
+
@@ -60,7 +60,7 @@ includeHeader($page_title, $page_description, $current_page);
-
+
-
+
-
+
-
+
@@ -179,6 +179,6 @@ includeHeader($page_title, $page_description, $current_page);
diff --git a/public/widerruf.php b/public/widerruf.php
index cba182a..e831971 100644
--- a/public/widerruf.php
+++ b/public/widerruf.php
@@ -1,12 +1,12 @@
@@ -131,6 +131,6 @@ includeHeader($page_title, $page_description, $current_page);