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/15] 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/15] 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/15] 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/15] 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/15] 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/15] 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 @@
+
@@ -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/15] 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/15] 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/15] 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/15] 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/15] 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/15] 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-Dienstleistungen für Privat und ergänzend Gewerblich

@@ -164,7 +164,7 @@ includeHeader($page_title, $page_description, $current_page); Ergänzend zu unseren Hosting-Angeboten unterstützen wir Sie mit persönlicher IT-Betreuung.

-
+

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/15] 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

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/15] 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'] ? '' : ''; + + $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(' +
+ %s +
+

%s

+
+ %s€ + /Monat +
+
+
+ %s +
+
+ %s +
+ Jetzt bestellen +
', + $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 @@ + + + + + + + + + + + + + + + + + + \ 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 ''; +} + +/** + * 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 @@ + + + + + + + + + + + + + + + + + + + + <?php echo isset($page_title) ? htmlspecialchars($page_title) : 'HexaHost.de - Zuverlässiges Hosting aus Niederbayern'; ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
\ 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/15] 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';
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 @@ - - - - - - - - - - - - - - - - - - \ 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 ''; -} - -/** - * 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 @@ - - - - - - - - - - - - - - - - - - - - <?php echo isset($page_title) ? htmlspecialchars($page_title) : 'HexaHost.de - Zuverlässiges Hosting aus Niederbayern'; ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
\ 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-Dienstleistungen für Privat und ergänzend Gewerblich

@@ -164,7 +159,7 @@ includeHeader($page_title, $page_description, $current_page); Ergänzend zu unseren Hosting-Angeboten unterstützen wir Sie mit persönlicher IT-Betreuung.

-
+

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."