diff --git a/backend/api/dns-lookup.php b/backend/api/dns-lookup.php index 9b9bd5f..f7f9d4e 100644 --- a/backend/api/dns-lookup.php +++ b/backend/api/dns-lookup.php @@ -1,21 +1,21 @@ true, 'domain' => $domain, @@ -53,9 +53,9 @@ echo json_encode([ 'records' => $result ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); -/** - * Führt DNS-Lookup für verschiedene Record-Typen durch - */ + + + function performDnsLookup(string $domain): array { $records = [ 'A' => [], @@ -67,7 +67,7 @@ function performDnsLookup(string $domain): array { 'SOA' => [] ]; - // A-Records (IPv4) + $aRecords = @dns_get_record($domain, DNS_A); if ($aRecords) { foreach ($aRecords as $record) { @@ -78,7 +78,7 @@ function performDnsLookup(string $domain): array { } } - // AAAA-Records (IPv6) + $aaaaRecords = @dns_get_record($domain, DNS_AAAA); if ($aaaaRecords) { foreach ($aaaaRecords as $record) { @@ -89,7 +89,7 @@ function performDnsLookup(string $domain): array { } } - // MX-Records (Mail) + $mxRecords = @dns_get_record($domain, DNS_MX); if ($mxRecords) { foreach ($mxRecords as $record) { @@ -99,11 +99,11 @@ function performDnsLookup(string $domain): array { 'ttl' => $record['ttl'] ]; } - // Nach Priorität sortieren + usort($records['MX'], fn($a, $b) => $a['priority'] <=> $b['priority']); } - // NS-Records (Nameserver) + $nsRecords = @dns_get_record($domain, DNS_NS); if ($nsRecords) { foreach ($nsRecords as $record) { @@ -114,7 +114,7 @@ function performDnsLookup(string $domain): array { } } - // TXT-Records + $txtRecords = @dns_get_record($domain, DNS_TXT); if ($txtRecords) { foreach ($txtRecords as $record) { @@ -125,7 +125,7 @@ function performDnsLookup(string $domain): array { } } - // CNAME-Records + $cnameRecords = @dns_get_record($domain, DNS_CNAME); if ($cnameRecords) { foreach ($cnameRecords as $record) { @@ -136,7 +136,7 @@ function performDnsLookup(string $domain): array { } } - // SOA-Record (Start of Authority) + $soaRecords = @dns_get_record($domain, DNS_SOA); if ($soaRecords) { foreach ($soaRecords as $record) { @@ -153,6 +153,6 @@ function performDnsLookup(string $domain): array { } } - // Leere Arrays entfernen + return array_filter($records, fn($arr) => !empty($arr)); } diff --git a/backend/api/dns-propagation.php b/backend/api/dns-propagation.php index 15b8f1e..736bd76 100644 --- a/backend/api/dns-propagation.php +++ b/backend/api/dns-propagation.php @@ -1,11 +1,11 @@ 'Google', 'ip' => '8.8.8.8', 'location' => 'Global'], ['name' => 'Google Secondary', 'ip' => '8.8.4.4', 'location' => 'Global'], @@ -44,7 +44,7 @@ if ($domain === null) { exit; } -// Erlaubte Record-Typen + $allowedTypes = ['A', 'AAAA', 'MX', 'NS', 'TXT', 'CNAME']; if (!in_array($type, $allowedTypes)) { $type = 'A'; @@ -65,7 +65,7 @@ foreach ($dnsServers as $server) { $queryStart = microtime(true); - // DNS-Abfrage mit spezifischem Server via dig (falls verfügbar) oder dns_get_record + $records = queryDnsServer($domain, $type, $server['ip']); $serverResult['response_time'] = round((microtime(true) - $queryStart) * 1000, 2); @@ -80,7 +80,7 @@ foreach ($dnsServers as $server) { $totalTime = round((microtime(true) - $startTime) * 1000, 2); -// Propagation-Status berechnen + $propagationStatus = calculatePropagationStatus($results); echo json_encode([ @@ -93,13 +93,13 @@ echo json_encode([ 'servers' => $results ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); -/** - * DNS-Abfrage bei spezifischem Server - */ + + + function queryDnsServer(string $domain, string $type, string $server): array { $records = []; - // Versuche zuerst dig zu verwenden (genauer) + $digResult = @shell_exec( 'dig @' . escapeshellarg($server) . ' ' . escapeshellarg($domain) . ' ' @@ -115,7 +115,7 @@ function queryDnsServer(string $domain, string $type, string $server): array { return $records; } - // Fallback auf PHP dns_get_record (verwendet System-DNS) + $dnsType = constant('DNS_' . $type); $result = @dns_get_record($domain, $dnsType); @@ -145,9 +145,9 @@ function queryDnsServer(string $domain, string $type, string $server): array { return array_filter($records); } -/** - * Berechnet den Propagation-Status - */ + + + function calculatePropagationStatus(array $results): array { $totalServers = count($results); $serversWithRecords = 0; @@ -162,10 +162,10 @@ function calculatePropagationStatus(array $results): array { } } - // Einzigartige Records + $uniqueRecords = array_unique($allRecords); - // Konsistenz prüfen (haben alle Server die gleichen Records?) + $isConsistent = count($uniqueRecords) <= 1 || $serversWithRecords === 0; $percentage = $totalServers > 0 ? round(($serversWithRecords / $totalServers) * 100) : 0; diff --git a/backend/api/ping-check.php b/backend/api/ping-check.php index 1fa326b..a2cf835 100644 --- a/backend/api/ping-check.php +++ b/backend/api/ping-check.php @@ -1,11 +1,11 @@ $results ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); -/** - * Führt verschiedene Erreichbarkeitstests durch - */ + + + function performConnectivityCheck(string $domain): array { $results = [ 'dns_resolution' => checkDnsResolution($domain), @@ -55,7 +55,7 @@ function performConnectivityCheck(string $domain): array { 'overall_status' => 'offline' ]; - // Overall-Status bestimmen + if ($results['https']['reachable'] || $results['http']['reachable']) { $results['overall_status'] = 'online'; } elseif ($results['icmp_ping']['reachable']) { @@ -67,9 +67,9 @@ function performConnectivityCheck(string $domain): array { return $results; } -/** - * DNS-Auflösung prüfen - */ + + + function checkDnsResolution(string $domain): array { $start = microtime(true); $ip = gethostbyname($domain); @@ -84,9 +84,9 @@ function checkDnsResolution(string $domain): array { ]; } -/** - * ICMP Ping (falls verfügbar) - */ + + + function checkIcmpPing(string $domain): array { $result = [ 'reachable' => false, @@ -94,18 +94,18 @@ function checkIcmpPing(string $domain): array { 'packet_loss' => null ]; - // Versuche ping-Kommando + $safeDomain = escapeshellarg($domain); $pingResult = @shell_exec("ping -c 3 -W 2 {$safeDomain} 2>/dev/null"); if ($pingResult) { - // Prüfe auf erfolgreiche Antworten + if (preg_match('/(\d+)% packet loss/', $pingResult, $lossMatch)) { $result['packet_loss'] = (int)$lossMatch[1]; $result['reachable'] = $result['packet_loss'] < 100; } - // Durchschnittliche Zeit extrahieren + if (preg_match('/avg.*?=.*?[\d.]+\/([\d.]+)\//', $pingResult, $timeMatch)) { $result['response_time_ms'] = (float)$timeMatch[1]; } elseif (preg_match('/time[=<]([\d.]+)\s*ms/', $pingResult, $timeMatch)) { @@ -116,9 +116,9 @@ function checkIcmpPing(string $domain): array { return $result; } -/** - * HTTP(S)-Verbindung prüfen - */ + + + function checkHttpConnection(string $domain, bool $https = false): array { $protocol = $https ? 'https' : 'http'; $port = $https ? 443 : 80; @@ -134,7 +134,7 @@ function checkHttpConnection(string $domain, bool $https = false): array { $start = microtime(true); - // cURL verwenden + $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, @@ -156,13 +156,13 @@ function checkHttpConnection(string $domain, bool $https = false): array { $result['status_code'] = curl_getinfo($ch, CURLINFO_HTTP_CODE); $result['reachable'] = $result['status_code'] > 0; - // Redirect-URL + $redirectUrl = curl_getinfo($ch, CURLINFO_REDIRECT_URL); if (!empty($redirectUrl)) { $result['redirect_url'] = $redirectUrl; } - // Server-Header + if (preg_match('/Server:\s*([^\r\n]+)/i', $response, $serverMatch)) { $result['server'] = trim($serverMatch[1]); } diff --git a/backend/api/reverse-dns.php b/backend/api/reverse-dns.php index 661429a..e89b298 100644 --- a/backend/api/reverse-dns.php +++ b/backend/api/reverse-dns.php @@ -1,11 +1,11 @@ $result ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); -/** - * Führt Reverse DNS Lookup durch - */ + + + function performReverseLookup(string $ip, string $version): array { $result = [ 'hostname' => null, @@ -64,44 +64,44 @@ function performReverseLookup(string $ip, string $version): array { 'additional_info' => [] ]; - // PHP gethostbyaddr + $hostname = @gethostbyaddr($ip); if ($hostname && $hostname !== $ip) { $result['hostname'] = $hostname; - // Verifizieren durch Forward-Lookup + $forwardIp = gethostbyname($hostname); $result['forward_verified'] = ($forwardIp === $ip); - // Zusätzliche Infos über den Host sammeln + $result['additional_info'] = getHostInfo($hostname); } else { $result['error'] = 'Kein PTR-Record gefunden'; } - // PTR-Record direkt abfragen + $ptrRecord = getPtrRecord($ip, $version); if ($ptrRecord) { $result['ptr_record'] = $ptrRecord; } - // IP-Info (GeoIP wenn verfügbar, sonst Basic-Infos) + $result['ip_info'] = getIpInfo($ip); return $result; } -/** - * PTR-Record direkt abfragen - */ + + + function getPtrRecord(string $ip, string $version): ?string { if ($version === 'IPv4') { - // IPv4: Reverse die Oktette + $parts = array_reverse(explode('.', $ip)); $ptrDomain = implode('.', $parts) . '.in-addr.arpa'; } else { - // IPv6: Komplexer - jedes Nibble umkehren + $expanded = expandIPv6($ip); $nibbles = str_replace(':', '', $expanded); $reversed = implode('.', array_reverse(str_split($nibbles))); @@ -117,11 +117,11 @@ function getPtrRecord(string $ip, string $version): ?string { return null; } -/** - * Expandiert eine IPv6-Adresse - */ + + + function expandIPv6(string $ip): string { - // Ersetze :: mit der richtigen Anzahl von 0000 + if (strpos($ip, '::') !== false) { $parts = explode('::', $ip); $left = $parts[0] ? explode(':', $parts[0]) : []; @@ -133,7 +133,7 @@ function expandIPv6(string $ip): string { $all = explode(':', $ip); } - // Jedes Segment auf 4 Zeichen auffüllen + $all = array_map(function($segment) { return str_pad($segment, 4, '0', STR_PAD_LEFT); }, $all); @@ -141,19 +141,19 @@ function expandIPv6(string $ip): string { return implode(':', $all); } -/** - * Sammelt Infos über einen Hostnamen - */ + + + function getHostInfo(string $hostname): array { $info = []; - // Domain-Teile analysieren + $parts = explode('.', $hostname); $tld = end($parts); $info['tld'] = $tld; - // Bekannte Hosting-Provider erkennen + $providerPatterns = [ 'amazonaws.com' => 'Amazon AWS', 'googleusercontent.com' => 'Google Cloud', @@ -183,15 +183,15 @@ function getHostInfo(string $hostname): array { return $info; } -/** - * Basis-Infos zur IP - */ + + + function getIpInfo(string $ip): array { $info = [ 'type' => 'unknown' ]; - // Private IP-Bereiche prüfen + if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { if (preg_match('/^(10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.)/', $ip)) { $info['type'] = 'private'; @@ -201,7 +201,7 @@ function getIpInfo(string $ip): array { $info['type'] = 'public'; } } else { - // IPv6 + if (preg_match('/^(fc|fd)/i', $ip)) { $info['type'] = 'private'; } elseif (preg_match('/^::1$/', $ip) || preg_match('/^fe80:/i', $ip)) { diff --git a/backend/api/ssl-check.php b/backend/api/ssl-check.php index 2866b9d..5aaa8e3 100644 --- a/backend/api/ssl-check.php +++ b/backend/api/ssl-check.php @@ -1,11 +1,11 @@ $sslData ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); -/** - * Prüft SSL-Zertifikat einer Domain - */ + + + function checkSslCertificate(string $domain): array { $result = [ 'success' => false, @@ -55,7 +55,7 @@ function checkSslCertificate(string $domain): array { 'certificate' => null ]; - // Stream Context für SSL + $context = stream_context_create([ 'ssl' => [ 'capture_peer_cert' => true, @@ -64,18 +64,18 @@ function checkSslCertificate(string $domain): array { ] ]); - // Verbindung herstellen + $socket = @stream_socket_client( "ssl://{$domain}:443", $errno, $errstr, - 10, // Timeout + 10, STREAM_CLIENT_CONNECT, $context ); if (!$socket) { - // Versuche ohne SSL (um zu prüfen ob Server erreichbar) + $httpSocket = @fsockopen($domain, 80, $errno, $errstr, 5); if ($httpSocket) { fclose($httpSocket); @@ -89,7 +89,7 @@ function checkSslCertificate(string $domain): array { $result['has_ssl'] = true; $result['success'] = true; - // Zertifikat extrahieren + $params = stream_context_get_params($socket); $cert = $params['options']['ssl']['peer_certificate'] ?? null; @@ -105,10 +105,10 @@ function checkSslCertificate(string $domain): array { $isNotYetValid = $now < $validFrom; $result['is_valid'] = !$isExpired && !$isNotYetValid; - // Tage bis Ablauf + $daysUntilExpiry = floor(($validTo - $now) / 86400); - // Subject Alternative Names (SANs) + $sans = []; if (isset($certInfo['extensions']['subjectAltName'])) { $sanStr = $certInfo['extensions']['subjectAltName']; @@ -116,7 +116,7 @@ function checkSslCertificate(string $domain): array { $sans = $matches[1] ?? []; } - // Issuer aufbereiten + $issuer = []; if (isset($certInfo['issuer'])) { if (isset($certInfo['issuer']['O'])) $issuer['organization'] = $certInfo['issuer']['O']; @@ -124,7 +124,7 @@ function checkSslCertificate(string $domain): array { if (isset($certInfo['issuer']['C'])) $issuer['country'] = $certInfo['issuer']['C']; } - // Subject aufbereiten + $subject = []; if (isset($certInfo['subject'])) { if (isset($certInfo['subject']['CN'])) $subject['common_name'] = $certInfo['subject']['CN']; @@ -144,7 +144,7 @@ function checkSslCertificate(string $domain): array { 'version' => $certInfo['version'] ?? null, ]; - // Warnung wenn bald ablaufend + if ($daysUntilExpiry <= 30 && $daysUntilExpiry > 0) { $result['warning'] = "Zertifikat läuft in {$daysUntilExpiry} Tagen ab!"; } elseif ($isExpired) { diff --git a/backend/api/whois-lookup.php b/backend/api/whois-lookup.php index c0a76f1..3edf1dc 100644 --- a/backend/api/whois-lookup.php +++ b/backend/api/whois-lookup.php @@ -1,11 +1,11 @@ $whoisData ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); -/** - * Extrahiert die Root-Domain (ohne Subdomain) - */ + + + function extractRootDomain(string $domain): string { $domain = strtolower($domain); $domain = preg_replace('/^(https?:\/\/)?(www\.)?/', '', $domain); @@ -68,22 +68,22 @@ function extractRootDomain(string $domain): string { $parts = explode('.', $domain); if (count($parts) > 2) { - // Einfache Logik: nimm die letzten 2 Teile - // (funktioniert nicht perfekt für .co.uk etc., aber gut genug) + + return implode('.', array_slice($parts, -2)); } return $domain; } -/** - * Führt WHOIS-Lookup durch - */ + + + function performWhoisLookup(string $domain): ?array { - // Primär: Socket-basierte Abfrage (funktioniert ohne shell_exec) + $whoisRaw = whoisViaSocket($domain); - // Fallback: Shell-Kommando (sicher escaped) + if (empty($whoisRaw) && function_exists('shell_exec')) { $escapedDomain = escapeshellarg($domain); $whoisRaw = @shell_exec("whois {$escapedDomain} 2>/dev/null"); @@ -93,13 +93,13 @@ function performWhoisLookup(string $domain): ?array { return null; } - // Parse WHOIS-Daten + return parseWhoisData($whoisRaw, $domain); } -/** - * WHOIS-Abfrage über Socket (unabhängig von shell_exec) - */ + + + function whoisViaSocket(string $domain): ?string { $whoisServer = getWhoisServer($domain); @@ -109,7 +109,7 @@ function whoisViaSocket(string $domain): ?string { $result = queryWhoisServer($whoisServer, $domain); - // Prüfe auf Weiterleitungen zu anderen WHOIS-Servern + if ($result && preg_match('/Registrar WHOIS Server:\s*(\S+)/i', $result, $matches)) { $referralServer = trim($matches[1]); if ($referralServer && $referralServer !== $whoisServer) { @@ -123,9 +123,9 @@ function whoisViaSocket(string $domain): ?string { return $result; } -/** - * Abfrage an einen spezifischen WHOIS-Server - */ + + + function queryWhoisServer(string $server, string $domain): ?string { $port = 43; $timeout = 10; @@ -136,13 +136,13 @@ function queryWhoisServer(string $server, string $domain): ?string { return null; } - // Setze Stream-Timeout + stream_set_timeout($socket, $timeout); - // Sende Anfrage + fwrite($socket, $domain . "\r\n"); - // Lese Antwort + $response = ''; while (!feof($socket)) { $response .= fread($socket, 8192); @@ -153,16 +153,16 @@ function queryWhoisServer(string $server, string $domain): ?string { return !empty($response) ? $response : null; } -/** - * Ermittelt den zuständigen WHOIS-Server für eine TLD - */ + + + function getWhoisServer(string $domain): ?string { $parts = explode('.', $domain); $tld = strtolower(end($parts)); - // Bekannte WHOIS-Server nach TLD + $whoisServers = [ - // Generische TLDs + 'com' => 'whois.verisign-grs.com', 'net' => 'whois.verisign-grs.com', 'org' => 'whois.pir.org', @@ -186,7 +186,7 @@ function getWhoisServer(string $domain): ?string { 'travel' => 'whois.nic.travel', 'xxx' => 'whois.nic.xxx', - // Neue gTLDs + 'app' => 'whois.nic.google', 'dev' => 'whois.nic.google', 'page' => 'whois.nic.google', @@ -205,7 +205,7 @@ function getWhoisServer(string $domain): ?string { 'cc' => 'ccwhois.verisign-grs.com', 'ws' => 'whois.website.ws', - // Europäische ccTLDs + 'de' => 'whois.denic.de', 'at' => 'whois.nic.at', 'ch' => 'whois.nic.ch', @@ -235,7 +235,7 @@ function getWhoisServer(string $domain): ?string { 'eu' => 'whois.eu', 'lu' => 'whois.dns.lu', - // Andere ccTLDs + 'ru' => 'whois.tcinet.ru', 'ua' => 'whois.ua', 'us' => 'whois.nic.us', @@ -255,7 +255,7 @@ function getWhoisServer(string $domain): ?string { 'za' => 'whois.registry.net.za', ]; - // Spezielle Behandlung für .co.uk, .com.au etc. + if (count($parts) >= 2) { $sld = $parts[count($parts) - 2]; $combinedTld = $sld . '.' . $tld; @@ -279,9 +279,9 @@ function getWhoisServer(string $domain): ?string { return $whoisServers[$tld] ?? 'whois.iana.org'; } -/** - * Parsed WHOIS-Rohdaten in strukturiertes Format - */ + + + function parseWhoisData(string $raw, string $domain): array { $data = [ 'raw' => $raw, @@ -306,50 +306,50 @@ function parseWhoisData(string $raw, string $domain): array { continue; } - // Key: Value Format + if (strpos($line, ':') !== false) { list($key, $value) = array_map('trim', explode(':', $line, 2)); $keyLower = strtolower($key); - // Registrar + if (strpos($keyLower, 'registrar') !== false && strpos($keyLower, 'abuse') === false && strpos($keyLower, 'url') === false) { if (empty($data['parsed']['registrar'])) { $data['parsed']['registrar'] = $value; } } - // Registrar URL + if (strpos($keyLower, 'registrar') !== false && strpos($keyLower, 'url') !== false) { $data['parsed']['registrar_url'] = $value; } - // Erstellungsdatum + if (preg_match('/(creation|created|registered)/i', $keyLower) && strpos($keyLower, 'registrar') === false) { if (empty($data['parsed']['creation_date'])) { $data['parsed']['creation_date'] = $value; } } - // Ablaufdatum + if (preg_match('/(expir|paid-till)/i', $keyLower)) { if (empty($data['parsed']['expiration_date'])) { $data['parsed']['expiration_date'] = $value; } } - // Aktualisierungsdatum + if (preg_match('/(updated|modified|changed)/i', $keyLower) && strpos($keyLower, 'registrar') === false) { if (empty($data['parsed']['updated_date'])) { $data['parsed']['updated_date'] = $value; } } - // Status + if (preg_match('/(status|state)/i', $keyLower) && !empty($value)) { $data['parsed']['status'][] = $value; } - // Nameserver + if (preg_match('/^(name.?server|nserver)/i', $keyLower) && !empty($value)) { $ns = strtolower(explode(' ', $value)[0]); if (!in_array($ns, $data['parsed']['nameservers'])) { @@ -357,14 +357,14 @@ function parseWhoisData(string $raw, string $domain): array { } } - // DNSSEC + if (strpos($keyLower, 'dnssec') !== false) { $data['parsed']['dnssec'] = $value; } } } - // Status einzigartig machen + $data['parsed']['status'] = array_unique($data['parsed']['status']); return $data; diff --git a/backend/config/config.php b/backend/config/config.php index 60968a7..fb80e87 100644 --- a/backend/config/config.php +++ b/backend/config/config.php @@ -1,17 +1,17 @@ diff --git a/backend/config/contact-config.php b/backend/config/contact-config.php index ba7659f..2e46810 100644 --- a/backend/config/contact-config.php +++ b/backend/config/contact-config.php @@ -1,11 +1,11 @@ Betreff-Schlüssel => Anzeigename - */ + + + + + + function getContactSubjectMap(): array { return [ 'allgemeine-anfrage' => 'Allgemeine Anfrage', @@ -26,16 +26,16 @@ function getContactSubjectMap(): array { ]; } -/** - * @param string $subjectKey - */ + + + function isAllowedContactSubject(string $subjectKey): bool { return array_key_exists($subjectKey, getContactSubjectMap()); } -/** - * Betreff aus ?product= oder ?package= für die Kontaktseite ableiten - */ + + + function getPreselectedContactSubject(): string { $productMap = [ 'vpc' => 'vpc-anfrage', diff --git a/backend/config/mail-config.php b/backend/config/mail-config.php index 48e59f6..99c398b 100644 --- a/backend/config/mail-config.php +++ b/backend/config/mail-config.php @@ -1,30 +1,30 @@ 'HexaHost.de Contact Form', 'X-Priority' => '3', @@ -35,22 +35,22 @@ define('ADDITIONAL_HEADERS', [ 'Precedence' => 'bulk' ]); -// Erlaubte Domains für E-Mail-Adressen (optional) + define('ALLOWED_EMAIL_DOMAINS', [ - // Leer lassen für alle Domains zu erlauben - // 'gmail.com', - // 'outlook.com', - // 'web.de', - // 'gmx.de' + + + + + ]); -// Blacklist für E-Mail-Adressen (optional) + define('BLACKLISTED_EMAILS', [ - // 'spam@example.com', - // 'test@test.com' + + ]); -// Überprüfung der E-Mail-Adressen + if (!filter_var(SMTP_FROM_EMAIL, FILTER_VALIDATE_EMAIL)) { die('Ungültige SMTP_FROM_EMAIL Adresse'); } @@ -59,7 +59,7 @@ if (!filter_var(SMTP_TO_EMAIL, FILTER_VALIDATE_EMAIL)) { die('Ungültige SMTP_TO_EMAIL Adresse'); } -// Logging-Funktion + function logEmail($type, $data) { if (!LOG_EMAILS) return; @@ -76,18 +76,18 @@ function logEmail($type, $data) { file_put_contents($logFile, $logEntry, FILE_APPEND | LOCK_EX); } -// Hilfsfunktion für E-Mail-Validierung + function isValidEmail($email) { if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { return false; } - // Prüfe Blacklist + if (in_array($email, BLACKLISTED_EMAILS)) { return false; } - // Prüfe Domain-Whitelist (falls gesetzt) + if (!empty(ALLOWED_EMAIL_DOMAINS)) { $domain = substr(strrchr($email, "@"), 1); if (!in_array($domain, ALLOWED_EMAIL_DOMAINS)) { @@ -98,29 +98,29 @@ function isValidEmail($email) { return true; } -/** - * Hilfsfunktion zum Abrufen der Konfiguration als Array - * Kompatibilität mit contact-handler.php - * - * @param string|null $key Optional: einzelner Schlüssel - * @return mixed Konfigurationsarray oder einzelner Wert - */ + + + + + + + function getHexaHostConfig($key = null) { $config = [ - // Absender/Empfänger + 'from_email' => SMTP_FROM_EMAIL, 'from_name' => 'HexaHost.de Kontaktformular', 'to_email' => SMTP_TO_EMAIL, 'to_name' => 'HexaHost Support', - // Sicherheit + 'max_requests_per_hour' => MAX_REQUESTS_PER_HOUR, 'honeypot_field' => 'website', 'enable_csrf' => ENABLE_CSRF_PROTECTION, 'min_message_length' => MIN_MESSAGE_LENGTH, 'max_message_length' => MAX_MESSAGE_LENGTH, - // Debug + 'debug_mode' => DEBUG_MODE, 'log_errors' => LOG_EMAILS, ]; diff --git a/backend/config/products-config.php b/backend/config/products-config.php index 34e96f9..567e1ba 100644 --- a/backend/config/products-config.php +++ b/backend/config/products-config.php @@ -1,19 +1,19 @@ 'Virtual Private Container', 'short_name' => 'VPC', @@ -117,9 +117,9 @@ $PRODUCTS['vpc'] = [ ], ]; -// ============================================================================ -// VIRTUAL PRIVATE SERVER (VPS) -// ============================================================================ + + + $PRODUCTS['vps'] = [ 'name' => 'Virtual Private Server', 'short_name' => 'VPS', @@ -223,9 +223,9 @@ $PRODUCTS['vps'] = [ ], ]; -// ============================================================================ -// MAIL GATEWAY -// ============================================================================ + + + $PRODUCTS['mail-gateway'] = [ 'name' => 'Mail Gateway', 'short_name' => 'Mail', @@ -329,9 +329,9 @@ $PRODUCTS['mail-gateway'] = [ ], ]; -// ============================================================================ -// WEBHOSTING -// ============================================================================ + + + $PRODUCTS['webhosting'] = [ 'name' => 'Webhosting', 'short_name' => 'Webhosting', @@ -443,68 +443,68 @@ $PRODUCTS['webhosting'] = [ ], ]; -// ============================================================================ -// HILFSFUNKTIONEN -// ============================================================================ -/** - * Alle Produkte abrufen - */ + + + + + + function getAllProducts() { global $PRODUCTS; return $PRODUCTS; } -/** - * Ein Produkt abrufen - */ + + + function getProduct($productId) { global $PRODUCTS; return $PRODUCTS[$productId] ?? null; } -/** - * Alle Pakete eines Produkts abrufen - */ + + + function getProductPackages($productId) { global $PRODUCTS; return $PRODUCTS[$productId]['packages'] ?? []; } -/** - * Ein bestimmtes Paket abrufen - */ + + + function getPackage($productId, $packageId) { global $PRODUCTS; return $PRODUCTS[$productId]['packages'][$packageId] ?? null; } -/** - * Preis eines Pakets abrufen - */ + + + function getPackagePrice($productId, $packageId) { $package = getPackage($productId, $packageId); return $package['price'] ?? null; } -/** - * Minimalen Preis eines Produkts abrufen - */ + + + function getMinPrice($productId) { global $PRODUCTS; return $PRODUCTS[$productId]['min_price'] ?? null; } -/** - * Preis formatiert ausgeben - */ + + + function formatPrice($price, $withCurrency = true) { return $withCurrency ? $price . '€' : $price; } -/** - * Bestell-Link für ein Paket (Online-Shop oder Kontaktformular) - */ + + + function getOrderUrl($productId, $packageId) { $package = getPackage($productId, $packageId); if ($package && !empty($package['shop_url'])) { @@ -514,9 +514,9 @@ function getOrderUrl($productId, $packageId) { return sprintf('contact.php?package=%s-%s', $productId, $packageId); } -/** - * Bestell-Link für CTA (beliebtes Paket oder erstes Paket) - */ + + + function getProductOrderUrl($productId) { $packages = getProductPackages($productId); @@ -534,9 +534,9 @@ function getProductOrderUrl($productId) { return sprintf('contact.php?product=%s', $productId); } -/** - * Generiert HTML für eine Paket-Karte - */ + + + function renderPackageCard($productId, $packageId, $package) { $featuredClass = $package['featured'] ? ' featured' : ''; $featuredBadge = $package['featured'] ? '' : ''; @@ -583,9 +583,9 @@ function renderPackageCard($productId, $packageId, $package) { ); } -/** - * Generiert HTML für alle Pakete eines Produkts - */ + + + function renderAllPackages($productId) { $packages = getProductPackages($productId); $html = ''; diff --git a/backend/includes/api-helpers.php b/backend/includes/api-helpers.php index 9a98864..2287811 100644 --- a/backend/includes/api-helpers.php +++ b/backend/includes/api-helpers.php @@ -1,11 +1,11 @@ 'Zu viele Anfragen. Bitte versuchen Sie es später erneut.']); diff --git a/backend/includes/footer.php b/backend/includes/footer.php index 03118f4..0805297 100644 --- a/backend/includes/footer.php +++ b/backend/includes/footer.php @@ -126,7 +126,7 @@ window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} - // Standard: keine Analyse/Marketing-Cookies bis zur Einwilligung + gtag('consent', 'default', { analytics_storage: 'denied', ad_storage: 'denied', @@ -139,7 +139,7 @@ anonymize_ip: true }); - // Übergibt Consent-Änderungen aus dem eigenen Cookie-Banner an GA + window.addEventListener('cookieConsentUpdated', function (event) { var payload = event && event.detail ? event.detail : {}; var consent = payload.consent ? payload.consent : payload; @@ -156,8 +156,8 @@ - - + + diff --git a/backend/includes/functions.php b/backend/includes/functions.php index 2141db4..54fcaa1 100644 --- a/backend/includes/functions.php +++ b/backend/includes/functions.php @@ -1,11 +1,11 @@ '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)); @@ -96,9 +96,9 @@ function generateCSRFToken() { return $_SESSION['csrf_token']; } -/** - * CSRF-Token prüfen und nach Erfolg invalidieren (Replay-Schutz) - */ + + + function validateCSRFToken($token) { if (!isset($_SESSION['csrf_token']) || !is_string($token)) { return false; @@ -110,16 +110,16 @@ function validateCSRFToken($token) { return true; } -/** - * Werte für E-Mail-Header bereinigen (Header-Injection verhindern) - */ + + + function sanitizeHeaderValue(string $value): string { return str_replace(["\r", "\n", "\0"], '', trim($value)); } -/** - * Client-IP für Logging (Cloudflare / vertrauenswürdiger Reverse-Proxy) - */ + + + function getClientIP(): string { if (!empty($_SERVER['HTTP_CF_CONNECTING_IP']) && filter_var($_SERVER['HTTP_CF_CONNECTING_IP'], FILTER_VALIDATE_IP)) { diff --git a/backend/includes/header.php b/backend/includes/header.php index 82629a5..cb30f27 100644 --- a/backend/includes/header.php +++ b/backend/includes/header.php @@ -13,7 +13,7 @@ - + <?php echo isset($page_title) ? htmlspecialchars($page_title) : 'HexaHost.de - Zuverlässiges Hosting aus Niederbayern'; ?> @@ -32,8 +32,8 @@ - - + + diff --git a/public/404.php b/public/404.php index bff4941..9c70029 100644 --- a/public/404.php +++ b/public/404.php @@ -1,15 +1,15 @@ @@ -45,7 +45,7 @@ includeHeader($page_title, $page_description, $current_page); .error-code { font-size: 6rem; font-weight: 700; - background: linear-gradient(135deg, #ff51f9, #a348ff); + background: linear-gradient(135deg, -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; @@ -57,7 +57,7 @@ includeHeader($page_title, $page_description, $current_page); margin-bottom: 1rem; } .error-content p { - color: #888; + color: margin-bottom: 2rem; } .error-actions { diff --git a/public/500.php b/public/500.php index af19018..8181b6d 100644 --- a/public/500.php +++ b/public/500.php @@ -1,15 +1,15 @@ @@ -45,7 +45,7 @@ includeHeader($page_title, $page_description, $current_page); .error-code { font-size: 6rem; font-weight: 700; - background: linear-gradient(135deg, #ff51f9, #a348ff); + background: linear-gradient(135deg, -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; @@ -57,7 +57,7 @@ includeHeader($page_title, $page_description, $current_page); margin-bottom: 1rem; } .error-content p { - color: #888; + color: margin-bottom: 2rem; } .error-actions { diff --git a/public/about.php b/public/about.php index d5631f4..5080be3 100644 --- a/public/about.php +++ b/public/about.php @@ -1,12 +1,12 @@ @@ -245,6 +245,6 @@ includeHeader($page_title, $page_description, $current_page); \ No newline at end of file diff --git a/public/agb.php b/public/agb.php index 726ea29..a93b843 100644 --- a/public/agb.php +++ b/public/agb.php @@ -1,12 +1,12 @@ @@ -527,6 +527,6 @@ includeHeader($page_title, $page_description, $current_page); diff --git a/public/assets/css/custom.0bc6a878fec2.css b/public/assets/css/custom.0bc6a878fec2.css new file mode 100644 index 0000000..259c8ff --- /dev/null +++ b/public/assets/css/custom.0bc6a878fec2.css @@ -0,0 +1 @@ +.btn-tertiary{color:var(--text-primary);background:transparent;border:1px solid rgba(255,255,255,0.25);transition:all 0.3s ease;}.btn-tertiary:hover{border-color:var(--primary-color);color:var(--primary-color);background:rgba(255,81,249,0.08);}.it-services-actions{justify-content:center;margin-top:2rem;}.legal-hero,.legal-content{background:#ffffff;color:#000000;}.legal-hero{margin-top:70px;padding:2rem 0 1.5rem;border-bottom:1px solid #e5e5e5;}.legal-content{padding-top:2rem;}.legal-hero-title{background:none;-webkit-text-fill-color:#000000;color:#000000;margin-bottom:0.5rem;}.legal-hero-description,.legal-section h2,.legal-section h3,.legal-block p,.legal-block li,.breadcrumb,.breadcrumb span{color:#000000;}.legal-section,.legal-section.glass-card{background:transparent;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0;padding:0;}.legal-section:hover,.legal-section.glass-card:hover{transform:none;box-shadow:none;border:none;background:transparent;}.legal-content .glass-card:hover{transform:none;box-shadow:none;}.legal-section h2{border-bottom:1px solid #e5e5e5;padding-bottom:0.5rem;margin-bottom:0.8rem;}.legal-block a,.breadcrumb a{color:#0b57d0;}.legal-block a:hover,.breadcrumb a:hover{color:#0b57d0;text-decoration:none;}.legal-hero *,.legal-content *,.legal-hero *:hover,.legal-content *:hover,.legal-hero *:focus,.legal-content *:focus,.legal-hero *:active,.legal-content *:active{transform:none !important;box-shadow:none !important;text-shadow:none !important;transition:none !important;animation:none !important;} diff --git a/public/assets/css/custom.css b/public/assets/css/custom.css deleted file mode 100644 index 9853b94..0000000 --- a/public/assets/css/custom.css +++ /dev/null @@ -1,108 +0,0 @@ -.btn-tertiary { - color: var(--text-primary); - background: transparent; - border: 1px solid rgba(255, 255, 255, 0.25); - transition: all 0.3s ease; -} - -.btn-tertiary:hover { - border-color: var(--primary-color); - color: var(--primary-color); - background: rgba(255, 81, 249, 0.08); -} - -.it-services-actions { - justify-content: center; - margin-top: 2rem; -} - -/* Legal pages: plain white content with black text */ -.legal-hero, -.legal-content { - background: #ffffff; - color: #000000; -} - -.legal-hero { - margin-top: 70px; - padding: 2rem 0 1.5rem; - border-bottom: 1px solid #e5e5e5; -} - -.legal-content { - padding-top: 2rem; -} - -.legal-hero-title { - background: none; - -webkit-text-fill-color: #000000; - color: #000000; - margin-bottom: 0.5rem; -} - -.legal-hero-description, -.legal-section h2, -.legal-section h3, -.legal-block p, -.legal-block li, -.breadcrumb, -.breadcrumb span { - color: #000000; -} - -.legal-section, -.legal-section.glass-card { - background: transparent; - border: none; - box-shadow: none; - backdrop-filter: none; - -webkit-backdrop-filter: none; - border-radius: 0; - padding: 0; -} - -.legal-section:hover, -.legal-section.glass-card:hover { - transform: none; - box-shadow: none; - border: none; - background: transparent; -} - -.legal-content .glass-card:hover { - transform: none; - box-shadow: none; -} - -.legal-section h2 { - border-bottom: 1px solid #e5e5e5; - padding-bottom: 0.5rem; - margin-bottom: 0.8rem; -} - -.legal-block a, -.breadcrumb a { - color: #0b57d0; -} - -.legal-block a:hover, -.breadcrumb a:hover { - color: #0b57d0; - text-decoration: none; -} - -/* Ensure absolutely no hover effects on legal text/content */ -.legal-hero *, -.legal-content *, -.legal-hero *:hover, -.legal-content *:hover, -.legal-hero *:focus, -.legal-content *:focus, -.legal-hero *:active, -.legal-content *:active { - transform: none !important; - box-shadow: none !important; - text-shadow: none !important; - transition: none !important; - animation: none !important; -} diff --git a/public/assets/css/style.css b/public/assets/css/style.css deleted file mode 100644 index f0f5d6d..0000000 --- a/public/assets/css/style.css +++ /dev/null @@ -1 +0,0 @@ -*{margin:0;padding:0;box-sizing:border-box}:root{--background-color:#0d0821;--primary-color:#ff51f9;--accent-color-1:#a348ff;--accent-color-2:#3978ff;--highlight-color:#f093ff;--accent-deep:#6b2aff;--accent-neon-blue:#00cfff;--accent-pink-dark:#c31adf;--success-color:#32fba2;--warning-color:#ffcc00;--error-color:#ff4d6d;--neutral-light:#1a1230;--neutral-medium:#3d3a4e;--text-primary:#ffffff;--text-secondary:#cfc9dd;--white:#ffffff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg-primary:linear-gradient(135deg, var(--background-color) 0%, var(--neutral-light) 100%);--bg-secondary:linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color-1) 100%);--bg-accent:linear-gradient(135deg, var(--accent-deep) 0%, var(--accent-color-1) 100%);--bg-neon:linear-gradient(135deg, var(--accent-neon-blue) 0%, var(--primary-color) 100%);--glass-bg:rgba(255, 255, 255, 0.05);--glass-border:rgba(255, 255, 255, 0.1);--glass-shadow:0 8px 32px 0 rgba(255, 81, 249, 0.2);--glass-shadow-accent:0 8px 32px 0 rgba(163, 72, 255, 0.3);--glass-shadow-neon:0 8px 32px 0 rgba(0, 207, 255, 0.3);--font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-logo:'Russo One',sans-serif;--font-slogan:'Source Sans Pro',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-3xl:4rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--transition-fast:0.15s ease-in-out;--transition-base:0.3s ease-in-out;--transition-slow:0.5s ease-in-out}body{font-family:var(--font-family);line-height:1.6;color:var(--text-primary);background:var(--background-color);min-height:100vh;overflow-x:hidden}.glass-card{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);transition:all var(--transition-base)}.glass-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px 0 rgba(31,38,135,.5)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(13,8,33,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);box-shadow:0 2px 20px rgba(255,81,249,.1);transition:all var(--transition-base)}.header.scrolled{background:rgba(13,8,33,.523);box-shadow:0 4px 30px rgba(255,81,249,.2)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-logo a{text-decoration:none;display:flex;align-items:center}.logo-image{height:50px;width:auto;object-fit:contain;transition:var(--transition-base)}.logo-image:hover{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(255, 81, 249, .5))}.nav-menu{display:flex;list-style:none;gap:var(--spacing-xl);align-items:center}.nav-link{text-decoration:none;color:var(--white);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-base);position:relative}.nav-link.active,.nav-link:hover{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-sm);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-base);list-style:none}.nav-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu li{margin:0}.dropdown-menu a{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--white);text-decoration:none;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.dropdown-menu a:hover{background:rgba(255,255,255,.1)}.nav-toggle{display:none;flex-direction:column;cursor:pointer}.nav-toggle span{width:25px;height:3px;background:var(--white);margin:3px 0;transition:var(--transition-base)}.hero{padding:120px 0 80px;min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,');z-index:-1}.hero-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-3xl);align-items:center}.hero-title{font-size:var(--font-size-5xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.highlight{background:linear-gradient(135deg,var(--primary-color),var(--highlight-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.hero-actions{display:flex;gap:var(--spacing-lg)}.hero-visual{display:flex;justify-content:center;align-items:center}.hero-card{padding:var(--spacing-2xl);text-align:center;max-width:300px}.server-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.hero-card h3{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-sm)}.hero-card p{color:var(--text-secondary);font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-lg);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-base);font-size:var(--font-size-base)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));color:var(--text-primary);box-shadow:0 4px 15px 0 rgba(255,81,249,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px 0 rgba(255,81,249,.4)}.btn-secondary{background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-secondary:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}.section-header{text-align:center;margin-bottom:var(--spacing-3xl)}.section-title{font-size:var(--font-size-4xl);font-weight:700;margin-bottom:var(--spacing-lg)}.section-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);max-width:600px;margin:0 auto}.products{padding:var(--spacing-3xl) 0}.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.product-card{padding:var(--spacing-2xl);text-align:center;position:relative;transition:all var(--transition-base)}.product-card.featured{transform:scale(1.05);border:2px solid var(--primary-light)}.featured-badge{position:absolute;top:-10px;right:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-2));color:var(--white);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:600}.product-icon{width:40px;height:40px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.product-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.product-description{color:rgba(255,255,255,.8);margin-bottom:var(--spacing-lg);line-height:1.6}.product-features{list-style:none;padding:0;margin-bottom:var(--spacing-lg);text-align:center}.product-features li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;line-height:1.5}.product-features li::before{content:'•';color:var(--primary-color);font-weight:700;margin-right:var(--spacing-sm)}.feature{font-size:var(--font-size-sm);color:rgba(255,255,255,.9)}.product-price{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:rgba(255,255,255,.9)}.price{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color)}.features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.feature-item{padding:var(--spacing-lg);text-align:center}.feature-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.feature-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.feature-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.how-it-works{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.step-item{padding:var(--spacing-xl);text-align:center;position:relative}.step-number{width:60px;height:60px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--white);margin:0 auto var(--spacing-lg);box-shadow:0 8px 32px 0 rgba(255,81,249,.3)}.step-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.step-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.mail-features{padding:var(--spacing-3xl) 0}.benefits{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.benefits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.benefit-item{padding:var(--spacing-xl);text-align:center}.benefit-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.benefit-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.benefit-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.cta{padding:var(--spacing-3xl) 0}.cta-content{text-align:center;padding:var(--spacing-3xl)}.cta-content h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-lg)}.cta-content p{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl)}.cta-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.footer{background:rgba(0,0,0,.3);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.footer-section h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--primary-color)}.footer-section p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.footer-location{display:flex;align-items:center;gap:var(--spacing-sm);color:rgba(255,255,255,.7)}.footer-location svg{width:16px;height:16px}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:var(--spacing-sm)}.footer-section ul li a{color:rgba(255,255,255,.8);text-decoration:none;transition:color var(--transition-base)}.footer-section ul li a:hover{color:var(--primary-color)}.footer-bottom{padding-top:var(--spacing-xl);border-top:1px solid rgba(255,255,255,.1);text-align:center;color:rgba(255,255,255,.6)}@media (max-width:768px){.nav-menu{display:none}.nav-toggle{display:flex}.hero-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-2xl)}.hero-title{font-size:var(--font-size-3xl)}.hero-actions{flex-direction:column;align-items:center}.features-grid,.products-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}.footer-content{grid-template-columns:1fr;text-align:center}}@media (max-width:480px){.container,.nav-container{padding:0 var(--spacing-md)}.hero{padding:100px 0 60px}.hero-title{font-size:var(--font-size-2xl)}.section-title{font-size:var(--font-size-3xl)}.cta-content,.feature-item,.product-card{padding:var(--spacing-xl)}.values-grid{grid-template-columns:1fr!important}.team-stats{grid-template-columns:1fr 1fr!important}}.product-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.product-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.breadcrumb{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-size-sm)}.breadcrumb a{color:var(--primary-color);text-decoration:none}.breadcrumb span{margin:0 var(--spacing-sm)}.product-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.product-hero-description{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-2xl);line-height:1.6}.product-hero-features{display:flex;justify-content:center;gap:var(--spacing-2xl);flex-wrap:wrap}.hero-feature{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--primary-color);font-weight:500}.hero-feature svg{width:16px;height:16px}.packages{padding:var(--spacing-3xl) 0}.packages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-2xl)}.package-card{padding:var(--spacing-2xl);position:relative;text-align:center}.package-header{margin-bottom:var(--spacing-xl)}.package-name{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.package-price{margin-bottom:var(--spacing-xl)}.package-price .price{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-color)}.package-price .period{color:var(--text-secondary);font-size:var(--font-size-base)}.package-specs{margin-bottom:var(--spacing-xl);text-align:left}.spec-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.spec-label{color:rgba(255,255,255,.8)}.spec-value{font-weight:600;color:var(--white)}.package-features{margin-bottom:var(--spacing-xl);text-align:left}.package-features .feature{padding:var(--spacing-xs) 0;color:rgba(255,255,255,.9);font-size:var(--font-size-sm)}.mail-features,.technical-details,.vps-features,.web-features{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.detail-card{padding:var(--spacing-lg);text-align:center}.detail-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.detail-card h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm)}.detail-card p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.use-cases{padding:var(--spacing-3xl) 0}.use-cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.use-case-item{padding:var(--spacing-lg)}.use-case-item h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--primary-color)}.use-case-item p{color:var(--text-secondary);line-height:1.5;font-size:var(--font-size-sm)}.cms-support,.operating-systems,.technologies{padding:var(--spacing-3xl) 0}.cms-grid,.os-grid,.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.cms-item,.os-item,.tech-item{padding:var(--spacing-md);text-align:center}.os-icon,.tech-icon{width:28px;height:28px;margin:0 auto var(--spacing-sm);color:var(--primary-color)}.cms-logo{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-size-base);color:var(--text-primary)}.cms-item h3,.os-item h3,.tech-item h3{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.cms-item p,.os-item p,.tech-item p{color:rgba(255,255,255,.7);font-size:var(--font-size-xs)}.performance-security{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.perf-sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.perf-sec-item{padding:var(--spacing-lg);text-align:center}.perf-sec-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.about-hero,.contact-hero{padding:120px 0 80px;min-height:60vh;display:flex;align-items:center}.about-hero-content,.contact-hero-content{max-width:800px;margin:0 auto;text-align:center;padding:0 var(--spacing-lg)}.about-hero-title,.contact-hero-title{font-size:var(--font-size-4xl);font-weight:700;line-height:1.2;margin-bottom:var(--spacing-lg)}.about-hero-description,.contact-hero-description{font-size:var(--font-size-lg);color:rgba(255,255,255,.8);line-height:1.6}.company-story{padding:var(--spacing-3xl) 0}.story-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-3xl);align-items:center}.story-text p{margin-bottom:var(--spacing-lg);color:var(--text-secondary);line-height:1.6}.story-visual{padding:var(--spacing-2xl);text-align:center}.location-info{margin-bottom:var(--spacing-2xl)}.location-icon{width:60px;height:60px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.location-info h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.location-details{text-align:center}.location-details p{color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm)}.stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.stat-item{text-align:center}.stat-number{display:block;font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.mission{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.mission-item{padding:var(--spacing-lg);text-align:center}.mission-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.values{padding:var(--spacing-3xl) 0}.values-grid{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.values-grid .value-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xl);text-align:center}.values-grid .value-icon{width:48px;height:48px;margin-bottom:var(--spacing-lg);color:var(--primary-color);display:flex;align-items:center;justify-content:center}.values-grid .value-icon svg{width:100%;height:100%}.values-grid .value-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.values-grid .value-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.team{padding:var(--spacing-3xl) 0}.team-content{margin-top:var(--spacing-2xl)}.team-text{margin-bottom:var(--spacing-2xl)}.team-text p{color:var(--text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.team-stats{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.technology{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.02)}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.tech-item{padding:var(--spacing-xl);text-align:center}.tech-item .tech-icon{width:48px;height:48px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.tech-item h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.tech-item p{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-sm)}.value-number{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary-color);min-width:60px}.value-content h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.value-content p{color:rgba(255,255,255,.8);line-height:1.6}.technology-stack{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.tech-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.tech-stack-item{padding:var(--spacing-lg);text-align:center}.tech-icon{width:50px;height:50px;margin:0 auto var(--spacing-lg);color:var(--primary-color)}.why-choose-us{padding:var(--spacing-3xl) 0}.advantages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.advantage-item{padding:var(--spacing-lg);text-align:center}.advantage-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-options{padding:var(--spacing-3xl) 0}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.contact-item{padding:var(--spacing-lg);text-align:center}.contact-icon{width:32px;height:32px;margin:0 auto var(--spacing-md);color:var(--primary-color)}.contact-link{display:inline-block;margin-top:var(--spacing-md);color:var(--primary-color);text-decoration:none;font-weight:600;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--primary-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.contact-link:hover{background:var(--primary-color);color:var(--text-primary)}.chat-btn{background:0 0;cursor:pointer}.contact-hours{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.contact-form-section{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.form-container{max-width:800px;margin:0 auto}.form-header{text-align:center;margin-bottom:var(--spacing-2xl)}.contact-form{padding:var(--spacing-2xl)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--text-primary);font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-md);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:rgba(255,255,255,.1);color:var(--text-primary);font-family:inherit;transition:all var(--transition-base)}.form-group select{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.form-group select option{background:rgba(13,8,33,.95);color:var(--text-primary);padding:var(--spacing-sm)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:0;border-color:var(--primary-color);background:rgba(255,255,255,.15)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary)}.checkbox-group{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkmark{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:0 0;position:relative;flex-shrink:0;margin-top:2px}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--primary-color);border-color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+.checkmark::after{content:'✓';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--white);font-size:12px;font-weight:700}.checkbox-label a{color:var(--primary-color);text-decoration:none}.checkbox-label a:hover{text-decoration:underline}.form-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.faq-section{padding:var(--spacing-3xl) 0}.faq-grid{display:grid;gap:var(--spacing-lg);max-width:800px;margin:0 auto}.faq-item{padding:0;overflow:hidden;transition:all var(--transition-base);border:1px solid transparent}.faq-item:hover{border-color:var(--primary-color);box-shadow:0 0 20px rgba(255,81,249,.2);transform:translateY(-2px)}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);cursor:pointer;transition:background var(--transition-base)}.faq-question h3{font-size:var(--font-size-lg);font-weight:600;margin:0}.faq-toggle{font-size:var(--font-size-2xl);font-weight:300;color:var(--primary-color);transition:transform var(--transition-base)}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base)}.faq-answer p{padding:0 var(--spacing-lg) var(--spacing-lg);color:rgba(255,255,255,.8);line-height:1.6;margin:0}.response-time{padding:var(--spacing-3xl) 0;background:rgba(255,255,255,.05)}.response-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-2xl);align-items:center;padding:var(--spacing-2xl)}.response-stats{display:flex;justify-content:space-around;gap:var(--spacing-lg)}.response-text h3{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-md)}.response-text p{color:rgba(255,255,255,.8);line-height:1.6}@media (max-width:768px){.product-hero-features{gap:var(--spacing-lg)}.hero-feature{font-size:var(--font-size-sm)}.packages-grid{grid-template-columns:1fr}.benefits-grid,.steps-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.story-content{grid-template-columns:1fr}.stats{flex-direction:column;gap:var(--spacing-md)}.team-stats,.values-grid{grid-template-columns:1fr 1fr!important}.form-row{grid-template-columns:1fr}.response-content{grid-template-columns:1fr;text-align:center}.response-stats{flex-direction:column;gap:var(--spacing-md)}.form-actions{flex-direction:column;align-items:center}}.legal-hero{padding:calc(var(--header-height) + var(--spacing-2xl)) 0 var(--spacing-2xl);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%);text-align:center}.legal-hero-content{max-width:800px;margin:0 auto}.legal-hero-title{font-size:clamp(2rem, 5vw, 3rem);font-weight:700;margin-bottom:var(--spacing-md);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.legal-hero-description{font-size:1.125rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.legal-content{padding:var(--spacing-2xl) 0}.legal-container{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-lg)}.legal-section{padding:var(--spacing-xl)}.legal-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary)}.legal-section h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-md)}.legal-section h3:first-child{margin-top:0}.legal-block{margin-bottom:var(--spacing-md)}.legal-block:last-child{margin-bottom:0}.legal-block p{color:var(--text-secondary);line-height:1.8;margin-bottom:var(--spacing-sm)}.legal-block p:last-child{margin-bottom:0}.legal-block a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}.legal-block a:hover{color:var(--primary-light);text-decoration:underline}.legal-block ol,.legal-block ul{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg);color:var(--text-secondary)}.legal-block li{margin-bottom:var(--spacing-xs);line-height:1.7}.legal-note{font-size:.875rem;color:var(--text-muted);background:rgba(var(--primary-rgb),.1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border-left:3px solid var(--primary)}@media (max-width:768px){.legal-section{padding:var(--spacing-lg)}.legal-section h2{font-size:1.25rem}.legal-hero{padding:calc(var(--header-height) + var(--spacing-xl)) 0 var(--spacing-xl)}}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:rgba(13,8,33,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px rgba(0,0,0,.3);transform:translateY(100%);opacity:0;visibility:hidden;transition:.4s cubic-bezier(.4, 0, .2, 1)}.cookie-consent.show{transform:translateY(0);opacity:1;visibility:visible}.cookie-consent.hide{transform:translateY(100%);opacity:0;visibility:hidden}.cookie-consent-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}.cookie-consent-content{display:flex;align-items:flex-start;gap:var(--spacing-lg);flex:1;min-width:300px}.cookie-consent-icon{width:48px;height:48px;flex-shrink:0;color:var(--primary-color)}.cookie-consent-icon svg{width:100%;height:100%}.cookie-consent-text h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-primary)}.cookie-consent-text p{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.cookie-consent-text a{color:var(--primary-color);text-decoration:none;font-weight:500}.cookie-consent-text a:hover{text-decoration:underline}.cookie-consent-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:center}.cookie-consent-actions .btn{white-space:nowrap}.btn-text{background:0 0;color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);font-weight:500;cursor:pointer;transition:color var(--transition-base)}.btn-text:hover{color:var(--primary-color)}.cookie-settings-panel{border-top:1px solid var(--glass-border);background:rgba(0,0,0,.3);animation:.3s ease-out slideDown}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cookie-settings-content{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.cookie-settings-content h4{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.cookie-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid rgba(255,255,255,.1)}.cookie-option:last-of-type{border-bottom:none}.cookie-option-info{flex:1;padding-right:var(--spacing-lg)}.cookie-option-info strong{display:block;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.cookie-option-info p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5}.cookie-toggle{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.2);border-radius:28px;transition:all var(--transition-base)}.cookie-toggle-slider::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:var(--text-primary);border-radius:50%;transition:all var(--transition-base)}.cookie-toggle input:checked+.cookie-toggle-slider{background:linear-gradient(135deg,var(--primary-color),var(--accent-color-1))}.cookie-toggle input:checked+.cookie-toggle-slider::before{transform:translateX(24px)}.cookie-toggle.disabled .cookie-toggle-slider{cursor:not-allowed;opacity:.7}.cookie-toggle input:focus+.cookie-toggle-slider{box-shadow:0 0 0 3px rgba(255,81,249,.3)}.cookie-settings-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}@media (max-width:768px){.cookie-consent-container{flex-direction:column;align-items:stretch;padding:var(--spacing-lg)}.cookie-consent-content{flex-direction:column;align-items:center;text-align:center}.cookie-consent-icon{width:40px;height:40px}.cookie-consent-actions{flex-direction:column;width:100%}.cookie-consent-actions .btn{width:100%;justify-content:center}.cookie-settings-actions{flex-direction:column}.cookie-settings-actions .btn{width:100%}.cookie-option{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.cookie-option-info{padding-right:0}} \ No newline at end of file diff --git a/public/assets/css/style.d01979e8c871.css b/public/assets/css/style.d01979e8c871.css new file mode 100644 index 0000000..1ba5194 --- /dev/null +++ b/public/assets/css/style.d01979e8c871.css @@ -0,0 +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}} diff --git a/public/assets/js/contact.b058cc66d435.js b/public/assets/js/contact.b058cc66d435.js new file mode 100644 index 0000000..c04207c --- /dev/null +++ b/public/assets/js/contact.b058cc66d435.js @@ -0,0 +1,5 @@ +[javascript-obfuscator-cli] Obfuscating file: public/assets/js/contact.b058cc66d435.js... + +[javascript-obfuscator-cli] Obfuscating file: public/assets/js/cookie-consent.de9e404f0700.js... + +[javascript-obfuscator-cli] Obfuscating file: public/assets/js/main.915e0206c30f.js... diff --git a/public/assets/js/contact.js b/public/assets/js/contact.js deleted file mode 100644 index 13b64e5..0000000 --- a/public/assets/js/contact.js +++ /dev/null @@ -1,239 +0,0 @@ -(function () { - "use strict"; - function initFaqAccordion() { - const faqItems = document.querySelectorAll(".faq-item"); - faqItems.forEach(faqItem => { - const faqQuestion = faqItem.querySelector(".faq-question"); - const faqAnswer = faqItem.querySelector(".faq-answer"); - const faqToggle = faqItem.querySelector(".faq-toggle"); - faqQuestion.addEventListener("click", function () { - const isOpen = faqItem.classList.contains("open"); - faqItems.forEach(otherItem => { - if (otherItem !== faqItem) { - otherItem.classList.remove("open"); - const otherAnswer = otherItem.querySelector(".faq-answer"); - const otherToggle = otherItem.querySelector(".faq-toggle"); - otherAnswer.style.maxHeight = null; - otherToggle.textContent = "+"; - } - }); - if (isOpen) { - faqItem.classList.remove("open"); - faqAnswer.style.maxHeight = null; - faqToggle.textContent = "+"; - } else { - faqItem.classList.add("open"); - faqAnswer.style.maxHeight = faqAnswer.scrollHeight + "px"; - faqToggle.textContent = "−"; - } - }); - }); - } - function initContactForm() { - const contactForm = document.getElementById("contactForm"); - if (!contactForm) { - return; - } - contactForm.addEventListener("submit", function (submitEvent) { - submitEvent.preventDefault(); - const formData = new FormData(contactForm); - const payload = {}; - for (let [key, value] of formData.entries()) { - payload[key] = value; - } - if (!validateFormData(payload)) { - return; - } - const submitButton = contactForm.querySelector("button[type=\"submit\"]"); - const originalButtonText = submitButton.textContent; - submitButton.textContent = "Wird gesendet..."; - submitButton.disabled = true; - const requestOptions = { - method: "POST", - body: formData - }; - fetch("contact-handler.php", requestOptions).then(response => response.json()).then(result => { - submitButton.textContent = originalButtonText; - submitButton.disabled = false; - if (result.success) { - contactForm.reset(); - showNotification(result.message, "success"); - window.scrollTo({ - top: 0, - behavior: "smooth" - }); - } else { - showNotification(result.message, "error"); - if (result.missing_fields) { - result.missing_fields.forEach(missingFieldId => { - const missingField = document.getElementById(missingFieldId); - if (missingField) { - missingField.style.borderColor = "#ff4d6d"; - setTimeout(() => { - missingField.style.borderColor = ""; - }, 3000); - } - }); - } - } - }).catch(error => { - console.error("Error:", error); - showNotification("Ein Fehler ist aufgetreten. Bitte versuchen Sie es später erneut.", "error"); - submitButton.textContent = originalButtonText; - submitButton.disabled = false; - }); - }); - } - function validateFormData(formValues) { - const requiredKeys = ["firstName", "lastName", "email", "subject", "message"]; - const errors = []; - requiredKeys.forEach(fieldName => { - if (!formValues[fieldName] || formValues[fieldName].trim() === "") { - errors.push("Das Feld \"" + getFieldLabel(fieldName) + "\" ist erforderlich."); - } - }); - if (formValues.email && !isValidEmail(formValues.email)) { - errors.push("Bitte geben Sie eine gültige E-Mail-Adresse ein."); - } - if (!formValues.privacy) { - errors.push("Sie müssen der Datenschutzerklärung zustimmen."); - } - if (errors.length > 0) { - showNotification(errors.join("\n"), "error"); - return false; - } - return true; - } - function getFieldLabel(keyName) { - const fieldLabels = { - firstName: "Vorname", - lastName: "Nachname", - email: "E-Mail-Adresse", - subject: "Betreff", - message: "Nachricht" - }; - return fieldLabels[keyName] || keyName; - } - function isValidEmail(email) { - const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; - return emailPattern.test(email); - } - function showNotification(message, type = "info") { - if (window.HexaHost && window.HexaHost.showNotification) { - window.HexaHost.showNotification(message, type); - } else { - alert(message); - } - } - window.openLiveChat = function () { - showNotification("Live Chat wird geöffnet... (Demo-Funktion)", "info"); - }; - function prefillFromQueryParams() { - const queryParams = new URLSearchParams(window.location.search); - const packageParam = queryParams.get("package"); - const productParam = queryParams.get("product"); - if (packageParam || productParam) { - const subjectField = document.getElementById("subject"); - const messageField = document.getElementById("message"); - if (packageParam) { - const packageLabels = { - "vpc-starter": "Virtual Private Container - Starter Paket", - "vpc-business": "Virtual Private Container - Business Paket", - "vpc-professional": "Virtual Private Container - Professional Paket", - "vpc-enterprise": "Virtual Private Container - Enterprise Paket", - "vps-basic": "Virtual Private Server - Basic Paket", - "vps-standard": "Virtual Private Server - Standard Paket", - "vps-premium": "Virtual Private Server - Premium Paket", - "vps-enterprise": "Virtual Private Server - Enterprise Paket", - "mail-starter": "Mail Gateway - Starter Paket", - "mail-business": "Mail Gateway - Business Paket", - "mail-professional": "Mail Gateway - Professional Paket", - "mail-enterprise": "Mail Gateway - Enterprise Paket", - "web-starter": "Webhosting - Starter Paket", - "web-business": "Webhosting - Business Paket", - "web-professional": "Webhosting - Professional Paket", - "web-enterprise": "Webhosting - Enterprise Paket" - }; - if (packageLabels[packageParam]) { - messageField.value = "Hallo,\n\nich interessiere mich für das " + packageLabels[packageParam] + ".\n\nBitte senden Sie mir weitere Informationen und ein individuelles Angebot.\n\nVielen Dank!"; - if (packageParam.startsWith("vpc-")) { - subjectField.value = "vpc-anfrage"; - } else if (packageParam.startsWith("vps-")) { - subjectField.value = "vps-anfrage"; - } else if (packageParam.startsWith("mail-")) { - subjectField.value = "mail-gateway-anfrage"; - } else if (packageParam.startsWith("web-")) { - subjectField.value = "webhosting-anfrage"; - } - } - } else if (productParam) { - const productSubjects = { - vpc: "vpc-anfrage", - vps: "vps-anfrage", - "mail-gateway": "mail-gateway-anfrage", - webhosting: "webhosting-anfrage" - }; - if (productSubjects[productParam]) { - subjectField.value = productSubjects[productParam]; - messageField.value = "Hallo,\n\nich interessiere mich für Ihre " + productParam.replace("-", " ") + " Lösungen.\n\nBitte kontaktieren Sie mich für eine persönliche Beratung.\n\nVielen Dank!"; - } - } - } - } - function initFieldUiEnhancements() { - const inputElements = document.querySelectorAll("input, select, textarea"); - inputElements.forEach(inputEl => { - inputEl.addEventListener("focus", function () { - this.parentElement.classList.add("focused"); - }); - inputEl.addEventListener("blur", function () { - if (!this.value) { - this.parentElement.classList.remove("focused"); - } - }); - if (inputEl.value) { - inputEl.parentElement.classList.add("focused"); - } - }); - const phoneInput = document.getElementById("phone"); - if (phoneInput) { - phoneInput.addEventListener("input", function () { - let digitsOnly = this.value.replace(/\D/g, ""); - if (digitsOnly.startsWith("49")) { - digitsOnly = "+" + digitsOnly; - } else if (digitsOnly.startsWith("0")) { - digitsOnly = "+49" + digitsOnly.substring(1); - } - this.value = digitsOnly; - }); - } - } - function initAccessibility() { - const requiredInputs = document.querySelectorAll("input[required], select[required], textarea[required]"); - requiredInputs.forEach(requiredInput => { - requiredInput.setAttribute("aria-required", "true"); - }); - const faqQuestions = document.querySelectorAll(".faq-question"); - faqQuestions.forEach(questionEl => { - questionEl.setAttribute("tabindex", "0"); - questionEl.setAttribute("role", "button"); - questionEl.setAttribute("aria-expanded", "false"); - questionEl.addEventListener("keydown", function (keyboardEvent) { - if (keyboardEvent.key === "Enter" || keyboardEvent.key === " ") { - keyboardEvent.preventDefault(); - this.click(); - } - }); - }); - } - document.addEventListener("DOMContentLoaded", function () { - initFaqAccordion(); - initContactForm(); - prefillFromQueryParams(); - initFieldUiEnhancements(); - initAccessibility(); - setTimeout(() => { - showNotification("💬 Haben Sie Fragen? Wir helfen gerne!", "info"); - }, 2000); - }); -})(); diff --git a/public/assets/js/cookie-consent.de9e404f0700.js b/public/assets/js/cookie-consent.de9e404f0700.js new file mode 100644 index 0000000..81c1113 --- /dev/null +++ b/public/assets/js/cookie-consent.de9e404f0700.js @@ -0,0 +1 @@ +(function(){"use strict";const CONSENT_COOKIE_NAME="hexahost_cookie_consent";const CONSENT_DAYS=365;const cookieBanner=document.getElementById("cookieConsent");const settingsPanel=document.getElementById("cookieSettingsPanel");const acceptAllButton=document.getElementById("cookieAcceptAll");const acceptEssentialButton=document.getElementById("cookieAcceptEssential");const settingsButton=document.getElementById("cookieSettings");const saveSettingsButton=document.getElementById("cookieSaveSettings");const closeSettingsButton=document.getElementById("cookieCloseSettings");const analyticsCheckbox=document.getElementById("cookieAnalytics");const marketingCheckbox=document.getElementById("cookieMarketing");const cookieStore={set:function(name,value,days){const expiresDate=new Date();expiresDate.setTime(expiresDate.getTime()+days*24*60*60*1000);const expiresString="expires="+expiresDate.toUTCString();document.cookie=name+"="+JSON.stringify(value)+";"+expiresString+";path=/;SameSite=Lax;Secure";},get:function(name){const prefix=name+"=";const cookies=document.cookie.split(";");for(let index=0;indexthis.acceptAll());}if(acceptEssentialButton){acceptEssentialButton.addEventListener("click",()=>this.acceptEssential());}if(settingsButton){settingsButton.addEventListener("click",()=>this.showSettings());}if(saveSettingsButton){saveSettingsButton.addEventListener("click",()=>this.saveSettings());}if(closeSettingsButton){closeSettingsButton.addEventListener("click",()=>this.hideSettings());}document.addEventListener("keydown",event=>{if(event.key==="Escape"&&settingsPanel&&settingsPanel.style.display!=="none"){this.hideSettings();}});},acceptAll:function(){const allConsent={essential:true,analytics:true,marketing:true,timestamp:new Date().toISOString()};this.saveConsent(allConsent);this.hideBanner();this.applyConsent(allConsent);this.showNotification("Alle Cookies wurden akzeptiert.","success");},acceptEssential:function(){const essentialConsent={essential:true,analytics:false,marketing:false,timestamp:new Date().toISOString()};this.saveConsent(essentialConsent);this.hideBanner();this.applyConsent(essentialConsent);this.showNotification("Nur notwendige Cookies wurden akzeptiert.","info");},saveSettings:function(){const customConsent={essential:true,analytics:analyticsCheckbox?analyticsCheckbox.checked:false,marketing:marketingCheckbox?marketingCheckbox.checked:false,timestamp:new Date().toISOString()};this.saveConsent(customConsent);this.hideSettings();this.hideBanner();this.applyConsent(customConsent);this.showNotification("Cookie-Einstellungen wurden gespeichert.","success");},saveConsent:function(consent){cookieStore.set(CONSENT_COOKIE_NAME,consent,CONSENT_DAYS);},getConsent:function(){return cookieStore.get(CONSENT_COOKIE_NAME);},applyConsent:function(consent){const eventPayload={detail:consent};window.dispatchEvent(new CustomEvent("cookieConsentUpdated",eventPayload));if(consent.analytics){this.enableAnalytics();}else{this.disableAnalytics();}if(consent.marketing){this.enableMarketing();}else{this.disableMarketing();}},enableAnalytics:function(){console.log("Analytics enabled");},disableAnalytics:function(){console.log("Analytics disabled");},enableMarketing:function(){console.log("Marketing enabled");},disableMarketing:function(){console.log("Marketing disabled");},showBanner:function(){if(cookieBanner){cookieBanner.classList.remove("hide");cookieBanner.classList.add("show");cookieBanner.setAttribute("aria-hidden","false");setTimeout(()=>{if(acceptAllButton){acceptAllButton.focus();}},100);}},hideBanner:function(){if(cookieBanner){cookieBanner.classList.remove("show");cookieBanner.classList.add("hide");cookieBanner.setAttribute("aria-hidden","true");}},showSettings:function(){if(settingsPanel){const savedConsent=this.getConsent()||this.defaultConsent;if(analyticsCheckbox){analyticsCheckbox.checked=savedConsent.analytics;}if(marketingCheckbox){marketingCheckbox.checked=savedConsent.marketing;}settingsPanel.style.display="block";settingsPanel.setAttribute("aria-hidden","false");}},hideSettings:function(){if(settingsPanel){settingsPanel.style.display="none";settingsPanel.setAttribute("aria-hidden","true");}},showNotification:function(message,type){if(window.HexaHost&&typeof window.HexaHost.showNotification==="function"){window.HexaHost.showNotification(message,type);}},resetConsent:function(){cookieStore.delete(CONSENT_COOKIE_NAME);this.showBanner();if(settingsPanel){settingsPanel.style.display="none";}}};if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",()=>cookieConsentManager.init());}else{cookieConsentManager.init();}window.CookieConsent=cookieConsentManager;})(); diff --git a/public/assets/js/cookie-consent.js b/public/assets/js/cookie-consent.js deleted file mode 100644 index 9f24137..0000000 --- a/public/assets/js/cookie-consent.js +++ /dev/null @@ -1,210 +0,0 @@ -(function () { - "use strict"; - const CONSENT_COOKIE_NAME = "hexahost_cookie_consent"; - const CONSENT_DAYS = 365; - const cookieBanner = document.getElementById("cookieConsent"); - const settingsPanel = document.getElementById("cookieSettingsPanel"); - const acceptAllButton = document.getElementById("cookieAcceptAll"); - const acceptEssentialButton = document.getElementById("cookieAcceptEssential"); - const settingsButton = document.getElementById("cookieSettings"); - const saveSettingsButton = document.getElementById("cookieSaveSettings"); - const closeSettingsButton = document.getElementById("cookieCloseSettings"); - const analyticsCheckbox = document.getElementById("cookieAnalytics"); - const marketingCheckbox = document.getElementById("cookieMarketing"); - const cookieStore = { - set: function (name, value, days) { - const expiresDate = new Date(); - expiresDate.setTime(expiresDate.getTime() + days * 24 * 60 * 60 * 1000); - const expiresString = "expires=" + expiresDate.toUTCString(); - document.cookie = name + "=" + JSON.stringify(value) + ";" + expiresString + ";path=/;SameSite=Lax;Secure"; - }, - get: function (name) { - const prefix = name + "="; - const cookies = document.cookie.split(";"); - for (let index = 0; index < cookies.length; index++) { - let cookie = cookies[index].trim(); - if (cookie.indexOf(prefix) === 0) { - try { - return JSON.parse(cookie.substring(prefix.length)); - } catch (parseError) { - return null; - } - } - } - return null; - }, - delete: function (name) { - document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/;"; - } - }; - const cookieConsentManager = { - defaultConsent: { - essential: true, - analytics: false, - marketing: false, - timestamp: null - }, - init: function () { - if (!cookieBanner) { - return; - } - const storedConsent = this.getConsent(); - if (storedConsent && storedConsent.timestamp) { - this.hideBanner(); - this.applyConsent(storedConsent); - } else { - this.showBanner(); - } - this.bindEvents(); - }, - bindEvents: function () { - if (acceptAllButton) { - acceptAllButton.addEventListener("click", () => this.acceptAll()); - } - if (acceptEssentialButton) { - acceptEssentialButton.addEventListener("click", () => this.acceptEssential()); - } - if (settingsButton) { - settingsButton.addEventListener("click", () => this.showSettings()); - } - if (saveSettingsButton) { - saveSettingsButton.addEventListener("click", () => this.saveSettings()); - } - if (closeSettingsButton) { - closeSettingsButton.addEventListener("click", () => this.hideSettings()); - } - document.addEventListener("keydown", event => { - if (event.key === "Escape" && settingsPanel && settingsPanel.style.display !== "none") { - this.hideSettings(); - } - }); - }, - acceptAll: function () { - const allConsent = { - essential: true, - analytics: true, - marketing: true, - timestamp: new Date().toISOString() - }; - this.saveConsent(allConsent); - this.hideBanner(); - this.applyConsent(allConsent); - this.showNotification("Alle Cookies wurden akzeptiert.", "success"); - }, - acceptEssential: function () { - const essentialConsent = { - essential: true, - analytics: false, - marketing: false, - timestamp: new Date().toISOString() - }; - this.saveConsent(essentialConsent); - this.hideBanner(); - this.applyConsent(essentialConsent); - this.showNotification("Nur notwendige Cookies wurden akzeptiert.", "info"); - }, - saveSettings: function () { - const customConsent = { - essential: true, - analytics: analyticsCheckbox ? analyticsCheckbox.checked : false, - marketing: marketingCheckbox ? marketingCheckbox.checked : false, - timestamp: new Date().toISOString() - }; - this.saveConsent(customConsent); - this.hideSettings(); - this.hideBanner(); - this.applyConsent(customConsent); - this.showNotification("Cookie-Einstellungen wurden gespeichert.", "success"); - }, - saveConsent: function (consent) { - cookieStore.set(CONSENT_COOKIE_NAME, consent, CONSENT_DAYS); - }, - getConsent: function () { - return cookieStore.get(CONSENT_COOKIE_NAME); - }, - applyConsent: function (consent) { - const eventPayload = { - detail: consent - }; - window.dispatchEvent(new CustomEvent("cookieConsentUpdated", eventPayload)); - if (consent.analytics) { - this.enableAnalytics(); - } else { - this.disableAnalytics(); - } - if (consent.marketing) { - this.enableMarketing(); - } else { - this.disableMarketing(); - } - }, - enableAnalytics: function () { - console.log("Analytics enabled"); - }, - disableAnalytics: function () { - console.log("Analytics disabled"); - }, - enableMarketing: function () { - console.log("Marketing enabled"); - }, - disableMarketing: function () { - console.log("Marketing disabled"); - }, - showBanner: function () { - if (cookieBanner) { - cookieBanner.classList.remove("hide"); - cookieBanner.classList.add("show"); - cookieBanner.setAttribute("aria-hidden", "false"); - setTimeout(() => { - if (acceptAllButton) { - acceptAllButton.focus(); - } - }, 100); - } - }, - hideBanner: function () { - if (cookieBanner) { - cookieBanner.classList.remove("show"); - cookieBanner.classList.add("hide"); - cookieBanner.setAttribute("aria-hidden", "true"); - } - }, - showSettings: function () { - if (settingsPanel) { - const savedConsent = this.getConsent() || this.defaultConsent; - if (analyticsCheckbox) { - analyticsCheckbox.checked = savedConsent.analytics; - } - if (marketingCheckbox) { - marketingCheckbox.checked = savedConsent.marketing; - } - settingsPanel.style.display = "block"; - settingsPanel.setAttribute("aria-hidden", "false"); - } - }, - hideSettings: function () { - if (settingsPanel) { - settingsPanel.style.display = "none"; - settingsPanel.setAttribute("aria-hidden", "true"); - } - }, - showNotification: function (message, type) { - if (window.HexaHost && typeof window.HexaHost.showNotification === "function") { - window.HexaHost.showNotification(message, type); - } - }, - resetConsent: function () { - cookieStore.delete(CONSENT_COOKIE_NAME); - this.showBanner(); - if (settingsPanel) { - settingsPanel.style.display = "none"; - } - } - }; - if (document.readyState === "loading") { - document.addEventListener("DOMContentLoaded", () => cookieConsentManager.init()); - } else { - cookieConsentManager.init(); - } - window.CookieConsent = cookieConsentManager; -})(); diff --git a/public/assets/js/main.915e0206c30f.js b/public/assets/js/main.915e0206c30f.js new file mode 100644 index 0000000..3194841 --- /dev/null +++ b/public/assets/js/main.915e0206c30f.js @@ -0,0 +1 @@ +(function(){"use strict";const navToggle=document.querySelector(".nav-toggle");const navMenu=document.querySelector(".nav-menu");const navLinks=document.querySelectorAll(".nav-link");const glassCards=document.querySelectorAll(".glass-card");const productCards=document.querySelectorAll(".product-card");if(navToggle&&navMenu){navToggle.addEventListener("click",function(){navMenu.classList.toggle("active");navToggle.classList.toggle("active");});navLinks.forEach(navLink=>{navLink.addEventListener("click",function(){navMenu.classList.remove("active");navToggle.classList.remove("active");});});}document.querySelectorAll("a[href^=\"#\"]").forEach(anchorLink=>{anchorLink.addEventListener("click",function(event){event.preventDefault();const targetSection=document.querySelector(this.getAttribute("href"));if(targetSection){targetSection.scrollIntoView({behavior:"smooth",block:"start"});}});});glassCards.forEach(card=>{card.addEventListener("mouseenter",function(){this.style.transform="translateY(-8px)scale(1.02)";});card.addEventListener("mouseleave",function(){this.style.transform="translateY(0)scale(1)";});});productCards.forEach(productCard=>{productCard.addEventListener("mouseenter",function(){if(!this.classList.contains("featured")){this.style.transform="translateY(-10px)scale(1.03)";}});productCard.addEventListener("mouseleave",function(){if(!this.classList.contains("featured")){this.style.transform="translateY(0)scale(1)";}});});const observerOptions={threshold:0.1,rootMargin:"0px 0px-50px 0px"};const animationObserver=new IntersectionObserver(function(entries){entries.forEach(entry=>{if(entry.isIntersecting){entry.target.classList.add("animate-in");}});},observerOptions);const animatedElements=document.querySelectorAll(".glass-card,.feature-item,.product-card");animatedElements.forEach(element=>{animationObserver.observe(element);});const headerElement=document.querySelector(".header");const heroSection=document.querySelector(".hero");let isScrollTicking=false;function updateOnScroll(){const scrollTop=window.pageYOffset||document.documentElement.scrollTop;if(headerElement){if(scrollTop>50){headerElement.classList.add("scrolled");}else{headerElement.classList.remove("scrolled");}}if(heroSection){const parallaxOffset=scrollTop*-0.5;heroSection.style.transform="translateY("+parallaxOffset+"px)";}isScrollTicking=false;}window.addEventListener("scroll",function(){if(!isScrollTicking){requestAnimationFrame(updateOnScroll);isScrollTicking=true;}},{passive:true});const forms=document.querySelectorAll("form");forms.forEach(form=>{form.addEventListener("submit",function(submitEvent){const requiredFields=form.querySelectorAll("[required]");let isValid=true;requiredFields.forEach(field=>{if(!field.value.trim()){isValid=false;field.classList.add("error");field.addEventListener("focus",function(){this.classList.remove("error");},{once:true});}});if(!isValid){submitEvent.preventDefault();showNotification("Bitte füllen Sie alle Pflichtfelder aus.","error");}});});function showNotification(message,type="info"){const notificationEl=document.createElement("div");notificationEl.className="notification notification-"+type;notificationEl.textContent=message;notificationEl.style.position="fixed";notificationEl.style.top="20px";notificationEl.style.right="20px";notificationEl.style.padding="15px 20px";notificationEl.style.borderRadius="8px";notificationEl.style.color="white";notificationEl.style.fontWeight="500";notificationEl.style.zIndex="9999";notificationEl.style.transform="translateX(400px)";notificationEl.style.transition="transform 0.3s ease-in-out";if(type==="error"){notificationEl.style.background="linear-gradient(135deg,#ef4444,#dc2626)";}else if(type==="success"){notificationEl.style.background="linear-gradient(135deg,#10b981,#059669)";}else{notificationEl.style.background="linear-gradient(135deg,#3b82f6,#2563eb)";}document.body.appendChild(notificationEl);setTimeout(()=>{notificationEl.style.transform="translateX(0)";},100);setTimeout(()=>{notificationEl.style.transform="translateX(400px)";setTimeout(()=>{if(notificationEl.parentNode){notificationEl.parentNode.removeChild(notificationEl);}},300);},5000);}const lazyImages=document.querySelectorAll("img[data-src]");const lazyImageObserver=new IntersectionObserver(imageEntries=>{imageEntries.forEach(imageEntry=>{if(imageEntry.isIntersecting){const image=imageEntry.target;image.src=image.dataset.src;image.classList.remove("lazy");lazyImageObserver.unobserve(image);}});});lazyImages.forEach(lazyImage=>lazyImageObserver.observe(lazyImage));function debounce(callback,delay){let timeoutId;return function debouncedFunction(...args){const runLater=()=>{clearTimeout(timeoutId);callback(...args);};clearTimeout(timeoutId);timeoutId=setTimeout(runLater,delay);};}const debouncedScrollProgress=debounce(function(){updateScrollProgress();},16);window.addEventListener("scroll",debouncedScrollProgress);function updateScrollProgress(){const pageYOffset=window.pageYOffset;const scrollableHeight=document.body.scrollHeight-window.innerHeight;const progressPercent=pageYOffset/scrollableHeight*100;document.documentElement.style.setProperty("--scroll-progress",progressPercent+"%");}function initDarkMode(){const darkModeToggle=document.querySelector(".dark-mode-toggle");if(darkModeToggle){darkModeToggle.addEventListener("click",function(){document.body.classList.toggle("dark-mode");localStorage.setItem("darkMode",document.body.classList.contains("dark-mode"));});if(localStorage.getItem("darkMode")==="true"){document.body.classList.add("dark-mode");}}}function initFaqAccordion(){const faqItems=document.querySelectorAll(".faq-item");faqItems.forEach(faqItem=>{const faqQuestion=faqItem.querySelector(".faq-question");const faqAnswer=faqItem.querySelector(".faq-answer");if(faqQuestion&&faqAnswer){faqQuestion.addEventListener("click",function(){faqItems.forEach(otherFaqItem=>{if(otherFaqItem!==faqItem&&otherFaqItem.classList.contains("open")){otherFaqItem.classList.remove("open");const otherFaqAnswer=otherFaqItem.querySelector(".faq-answer");if(otherFaqAnswer){otherFaqAnswer.style.maxHeight=null;}}});faqItem.classList.toggle("open");if(faqItem.classList.contains("open")){faqAnswer.style.maxHeight=faqAnswer.scrollHeight+"px";}else{faqAnswer.style.maxHeight=null;}});}});}document.addEventListener("DOMContentLoaded",function(){initDarkMode();initFaqAccordion();document.body.classList.add("loaded");if(!localStorage.getItem("hasVisited")){setTimeout(()=>{showNotification("Willkommen bei HexaHost.de!🚀","success");localStorage.setItem("hasVisited","true");},1000);}});const hexaHostApi={showNotification:showNotification};window.HexaHost=hexaHostApi;})(); diff --git a/public/assets/js/main.js b/public/assets/js/main.js deleted file mode 100644 index 94c4f0b..0000000 --- a/public/assets/js/main.js +++ /dev/null @@ -1,235 +0,0 @@ -(function () { - "use strict"; - const navToggle = document.querySelector(".nav-toggle"); - const navMenu = document.querySelector(".nav-menu"); - const navLinks = document.querySelectorAll(".nav-link"); - const glassCards = document.querySelectorAll(".glass-card"); - const productCards = document.querySelectorAll(".product-card"); - if (navToggle && navMenu) { - navToggle.addEventListener("click", function () { - navMenu.classList.toggle("active"); - navToggle.classList.toggle("active"); - }); - navLinks.forEach(navLink => { - navLink.addEventListener("click", function () { - navMenu.classList.remove("active"); - navToggle.classList.remove("active"); - }); - }); - } - document.querySelectorAll("a[href^=\"#\"]").forEach(anchorLink => { - anchorLink.addEventListener("click", function (event) { - event.preventDefault(); - const targetSection = document.querySelector(this.getAttribute("href")); - if (targetSection) { - targetSection.scrollIntoView({ - behavior: "smooth", - block: "start" - }); - } - }); - }); - glassCards.forEach(card => { - card.addEventListener("mouseenter", function () { - this.style.transform = "translateY(-8px) scale(1.02)"; - }); - card.addEventListener("mouseleave", function () { - this.style.transform = "translateY(0) scale(1)"; - }); - }); - productCards.forEach(productCard => { - productCard.addEventListener("mouseenter", function () { - if (!this.classList.contains("featured")) { - this.style.transform = "translateY(-10px) scale(1.03)"; - } - }); - productCard.addEventListener("mouseleave", function () { - if (!this.classList.contains("featured")) { - this.style.transform = "translateY(0) scale(1)"; - } - }); - }); - const observerOptions = { - threshold: 0.1, - rootMargin: "0px 0px -50px 0px" - }; - const animationObserver = new IntersectionObserver(function (entries) { - entries.forEach(entry => { - if (entry.isIntersecting) { - entry.target.classList.add("animate-in"); - } - }); - }, observerOptions); - const animatedElements = document.querySelectorAll(".glass-card, .feature-item, .product-card"); - animatedElements.forEach(element => { - animationObserver.observe(element); - }); - const headerElement = document.querySelector(".header"); - const heroSection = document.querySelector(".hero"); - let isScrollTicking = false; - function updateOnScroll() { - const scrollTop = window.pageYOffset || document.documentElement.scrollTop; - if (headerElement) { - if (scrollTop > 50) { - headerElement.classList.add("scrolled"); - } else { - headerElement.classList.remove("scrolled"); - } - } - if (heroSection) { - const parallaxOffset = scrollTop * -0.5; - heroSection.style.transform = "translateY(" + parallaxOffset + "px)"; - } - isScrollTicking = false; - } - window.addEventListener("scroll", function () { - if (!isScrollTicking) { - requestAnimationFrame(updateOnScroll); - isScrollTicking = true; - } - }, { - passive: true - }); - const forms = document.querySelectorAll("form"); - forms.forEach(form => { - form.addEventListener("submit", function (submitEvent) { - const requiredFields = form.querySelectorAll("[required]"); - let isValid = true; - requiredFields.forEach(field => { - if (!field.value.trim()) { - isValid = false; - field.classList.add("error"); - field.addEventListener("focus", function () { - this.classList.remove("error"); - }, { - once: true - }); - } - }); - if (!isValid) { - submitEvent.preventDefault(); - showNotification("Bitte füllen Sie alle Pflichtfelder aus.", "error"); - } - }); - }); - function showNotification(message, type = "info") { - const notificationEl = document.createElement("div"); - notificationEl.className = "notification notification-" + type; - notificationEl.textContent = message; - notificationEl.style.position = "fixed"; - notificationEl.style.top = "20px"; - notificationEl.style.right = "20px"; - notificationEl.style.padding = "15px 20px"; - notificationEl.style.borderRadius = "8px"; - notificationEl.style.color = "white"; - notificationEl.style.fontWeight = "500"; - notificationEl.style.zIndex = "9999"; - notificationEl.style.transform = "translateX(400px)"; - notificationEl.style.transition = "transform 0.3s ease-in-out"; - if (type === "error") { - notificationEl.style.background = "linear-gradient(135deg, #ef4444, #dc2626)"; - } else if (type === "success") { - notificationEl.style.background = "linear-gradient(135deg, #10b981, #059669)"; - } else { - notificationEl.style.background = "linear-gradient(135deg, #3b82f6, #2563eb)"; - } - document.body.appendChild(notificationEl); - setTimeout(() => { - notificationEl.style.transform = "translateX(0)"; - }, 100); - setTimeout(() => { - notificationEl.style.transform = "translateX(400px)"; - setTimeout(() => { - if (notificationEl.parentNode) { - notificationEl.parentNode.removeChild(notificationEl); - } - }, 300); - }, 5000); - } - const lazyImages = document.querySelectorAll("img[data-src]"); - const lazyImageObserver = new IntersectionObserver(imageEntries => { - imageEntries.forEach(imageEntry => { - if (imageEntry.isIntersecting) { - const image = imageEntry.target; - image.src = image.dataset.src; - image.classList.remove("lazy"); - lazyImageObserver.unobserve(image); - } - }); - }); - lazyImages.forEach(lazyImage => lazyImageObserver.observe(lazyImage)); - function debounce(callback, delay) { - let timeoutId; - return function debouncedFunction(...args) { - const runLater = () => { - clearTimeout(timeoutId); - callback(...args); - }; - clearTimeout(timeoutId); - timeoutId = setTimeout(runLater, delay); - }; - } - const debouncedScrollProgress = debounce(function () { - updateScrollProgress(); - }, 16); - window.addEventListener("scroll", debouncedScrollProgress); - function updateScrollProgress() { - const pageYOffset = window.pageYOffset; - const scrollableHeight = document.body.scrollHeight - window.innerHeight; - const progressPercent = pageYOffset / scrollableHeight * 100; - document.documentElement.style.setProperty("--scroll-progress", progressPercent + "%"); - } - function initDarkMode() { - const darkModeToggle = document.querySelector(".dark-mode-toggle"); - if (darkModeToggle) { - darkModeToggle.addEventListener("click", function () { - document.body.classList.toggle("dark-mode"); - localStorage.setItem("darkMode", document.body.classList.contains("dark-mode")); - }); - if (localStorage.getItem("darkMode") === "true") { - document.body.classList.add("dark-mode"); - } - } - } - function initFaqAccordion() { - const faqItems = document.querySelectorAll(".faq-item"); - faqItems.forEach(faqItem => { - const faqQuestion = faqItem.querySelector(".faq-question"); - const faqAnswer = faqItem.querySelector(".faq-answer"); - if (faqQuestion && faqAnswer) { - faqQuestion.addEventListener("click", function () { - faqItems.forEach(otherFaqItem => { - if (otherFaqItem !== faqItem && otherFaqItem.classList.contains("open")) { - otherFaqItem.classList.remove("open"); - const otherFaqAnswer = otherFaqItem.querySelector(".faq-answer"); - if (otherFaqAnswer) { - otherFaqAnswer.style.maxHeight = null; - } - } - }); - faqItem.classList.toggle("open"); - if (faqItem.classList.contains("open")) { - faqAnswer.style.maxHeight = faqAnswer.scrollHeight + "px"; - } else { - faqAnswer.style.maxHeight = null; - } - }); - } - }); - } - document.addEventListener("DOMContentLoaded", function () { - initDarkMode(); - initFaqAccordion(); - document.body.classList.add("loaded"); - if (!localStorage.getItem("hasVisited")) { - setTimeout(() => { - showNotification("Willkommen bei HexaHost.de! 🚀", "success"); - localStorage.setItem("hasVisited", "true"); - }, 1000); - } - }); - const hexaHostApi = { - showNotification: showNotification - }; - window.HexaHost = hexaHostApi; -})(); diff --git a/public/config/mail-config.php b/public/config/mail-config.php index 40221dd..9ec138b 100644 --- a/public/config/mail-config.php +++ b/public/config/mail-config.php @@ -1,5 +1,5 @@ @@ -252,6 +252,6 @@ includeHeader($page_title, $page_description, $current_page, $additional_scripts \ No newline at end of file diff --git a/public/datenschutz.php b/public/datenschutz.php index d69959a..346cd63 100644 --- a/public/datenschutz.php +++ b/public/datenschutz.php @@ -1,12 +1,12 @@ @@ -344,6 +344,6 @@ includeHeader($page_title, $page_description, $current_page); diff --git a/public/impressum.php b/public/impressum.php index 3a69ce7..163c175 100644 --- a/public/impressum.php +++ b/public/impressum.php @@ -1,12 +1,12 @@ @@ -92,7 +92,7 @@ includeHeader($page_title, $page_description, $current_page);

Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit: - https://ec.europa.eu/consumers/odr/ + https:

@@ -180,6 +180,6 @@ includeHeader($page_title, $page_description, $current_page); diff --git a/public/index.php b/public/index.php index d32ca7d..6f789a5 100644 --- a/public/index.php +++ b/public/index.php @@ -1,12 +1,12 @@ @@ -265,6 +265,6 @@ includeHeader($page_title, $page_description, $current_page); \ No newline at end of file diff --git a/public/it-dienstleistungen.php b/public/it-dienstleistungen.php index 7cd8237..1586b6f 100644 --- a/public/it-dienstleistungen.php +++ b/public/it-dienstleistungen.php @@ -1,12 +1,12 @@ @@ -143,6 +143,6 @@ includeHeader($page_title, $page_description, $current_page); diff --git a/public/mail-gateway.php b/public/mail-gateway.php index a8e357d..f1f9b2b 100644 --- a/public/mail-gateway.php +++ b/public/mail-gateway.php @@ -2,16 +2,16 @@ require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/../backend/config/products-config.php'; -// Produkt-Daten aus Config laden + $product = getProduct('mail-gateway'); $packages = getProductPackages('mail-gateway'); -// Page configuration + $page_title = $product['page_title']; $page_description = $product['page_description']; $current_page = 'mail-gateway'; -// Include header + includeHeader($page_title, $page_description, $current_page); ?> @@ -175,6 +175,6 @@ includeHeader($page_title, $page_description, $current_page); diff --git a/public/robots.txt b/public/robots.txt index ea70ee9..259e072 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -6,9 +6,9 @@ Disallow: /assets/js/ Disallow: /assets/css/ # Allow CSS and JS files for better SEO -Allow: /assets/css/style.css -Allow: /assets/js/main.js -Allow: /assets/js/contact.js +Allow: /assets/css/style.d01979e8c871.css +Allow: /assets/js/main.915e0206c30f.js +Allow: /assets/js/contact.b058cc66d435.js # Sitemap location Sitemap: https://hexahost.de/sitemap.xml diff --git a/public/vpc.php b/public/vpc.php index 287c383..a20b4c4 100644 --- a/public/vpc.php +++ b/public/vpc.php @@ -2,16 +2,16 @@ require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/../backend/config/products-config.php'; -// Produkt-Daten aus Config laden + $product = getProduct('vpc'); $packages = getProductPackages('vpc'); -// Page configuration + $page_title = $product['page_title']; $page_description = $product['page_description']; $current_page = 'vpc'; -// Include header + includeHeader($page_title, $page_description, $current_page); ?> @@ -175,6 +175,6 @@ includeHeader($page_title, $page_description, $current_page); diff --git a/public/vps.php b/public/vps.php index f87ea5b..5acd578 100644 --- a/public/vps.php +++ b/public/vps.php @@ -2,16 +2,16 @@ require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/../backend/config/products-config.php'; -// Produkt-Daten aus Config laden + $product = getProduct('vps'); $packages = getProductPackages('vps'); -// Page configuration + $page_title = $product['page_title']; $page_description = $product['page_description']; $current_page = 'vps'; -// Include header + includeHeader($page_title, $page_description, $current_page); ?> @@ -180,6 +180,6 @@ includeHeader($page_title, $page_description, $current_page); diff --git a/public/webhosting.php b/public/webhosting.php index be673a3..be2abe7 100644 --- a/public/webhosting.php +++ b/public/webhosting.php @@ -2,16 +2,16 @@ require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/../backend/config/products-config.php'; -// Produkt-Daten aus Config laden + $product = getProduct('webhosting'); $packages = getProductPackages('webhosting'); -// Page configuration + $page_title = $product['page_title']; $page_description = $product['page_description']; $current_page = 'webhosting'; -// Include header + includeHeader($page_title, $page_description, $current_page); ?> @@ -179,6 +179,6 @@ includeHeader($page_title, $page_description, $current_page); diff --git a/public/widerruf.php b/public/widerruf.php index cba182a..e831971 100644 --- a/public/widerruf.php +++ b/public/widerruf.php @@ -1,12 +1,12 @@ @@ -131,6 +131,6 @@ includeHeader($page_title, $page_description, $current_page); diff --git a/stdout/public/assets/js/contact.js b/stdout/public/assets/js/contact.js new file mode 100644 index 0000000..173c4fc --- /dev/null +++ b/stdout/public/assets/js/contact.js @@ -0,0 +1 @@ +(function(_0x1760aa,_0xa3e412){const _0x3eb3c8=a0_0x2cb2,_0x1db134=_0x1760aa();while(!![]){try{const _0x57e2b8=-parseInt(_0x3eb3c8(0x1d7))/0x1+-parseInt(_0x3eb3c8(0x22c))/0x2*(-parseInt(_0x3eb3c8(0x282))/0x3)+-parseInt(_0x3eb3c8(0x1ba))/0x4*(parseInt(_0x3eb3c8(0x1e4))/0x5)+parseInt(_0x3eb3c8(0x23a))/0x6+parseInt(_0x3eb3c8(0x1b9))/0x7+-parseInt(_0x3eb3c8(0x1fb))/0x8*(parseInt(_0x3eb3c8(0x174))/0x9)+parseInt(_0x3eb3c8(0x247))/0xa;if(_0x57e2b8===_0xa3e412)break;else _0x1db134['push'](_0x1db134['shift']());}catch(_0x198582){_0x1db134['push'](_0x1db134['shift']());}}}(a0_0x29ed,0xceb61),(function(){'use strict';const _0x3090f0=a0_0x2cb2,_0xaa99c9={'DBQss':function(_0x5186c9,_0x50cdc8){return _0x5186c9===_0x50cdc8;},'HUHzc':'role','vvcfk':'false','HDWGk':function(_0x19ff86){return _0x19ff86();},'PRVSI':function(_0x16ec57,_0x485cae,_0x124a49){return _0x16ec57(_0x485cae,_0x124a49);},'wQWJL':_0x3090f0(0x1ef),'SvcTJ':_0x3090f0(0x265),'YlaQL':_0x3090f0(0x26a),'qYUMC':_0x3090f0(0x1c7),'RLygv':'gstFa','MAkpd':_0x3090f0(0x1d8),'koSUg':_0x3090f0(0x1a8),'WRaNp':_0x3090f0(0x275),'SDDwT':_0x3090f0(0x210),'Nbjxx':_0x3090f0(0x19e),'NLgbA':function(_0x3134ce,_0x295f01){return _0x3134ce+_0x295f01;},'gdNul':function(_0xc30ca5,_0x41e27f){return _0xc30ca5!==_0x41e27f;},'MPOOq':'hFVIZ','JINAb':_0x3090f0(0x20a),'YQVBG':_0x3090f0(0x1bd),'xfbeL':_0x3090f0(0x23d),'NNqOl':function(_0x5069af,_0x55638e){return _0x5069af(_0x55638e);},'CqtKj':_0x3090f0(0x187),'Hacwo':_0x3090f0(0x1e5),'LSiWb':'contact-handler.php','eynSv':'nKcsb','wNyLL':'contactForm','RNflM':'mail-gateway-anfrage','rEPxS':function(_0x46107b,_0x4f1f56){return _0x46107b===_0x4f1f56;},'bvKBp':_0x3090f0(0x27d),'xZVwL':_0x3090f0(0x244),'nShPy':function(_0x51834c,_0x57a03e){return _0x51834c===_0x57a03e;},'fxCNc':_0x3090f0(0x20e),'pXQak':_0x3090f0(0x2a4),'WWJJz':'vpc-anfrage','uFDXu':_0x3090f0(0x217),'XBHwl':_0x3090f0(0x213),'lfVKo':function(_0x579e1c,_0x5119de){return _0x579e1c!==_0x5119de;},'kNRtX':'jbSfM','yWrMV':'Bitte\x20geben\x20Sie\x20eine\x20gültige\x20E-Mail-Adresse\x20ein.','cYRoN':_0x3090f0(0x1a9),'zCJGm':function(_0x185a54,_0x5f00a3){return _0x185a54>_0x5f00a3;},'bPHkI':_0x3090f0(0x236),'DQIMV':function(_0x471240,_0x3427b4){return _0x471240===_0x3427b4;},'TxcrW':_0x3090f0(0x24a),'ZyUvM':_0x3090f0(0x252),'ooxbq':_0x3090f0(0x182),'ZjZiD':_0x3090f0(0x17b),'mEvUG':_0x3090f0(0x25d),'qeGcf':function(_0x3f2f67,_0x349489){return _0x3f2f67+_0x349489;},'jHzjX':_0x3090f0(0x179),'NEloa':'eSKcm','pbEVF':function(_0x1246eb,_0x1aa85b){return _0x1246eb(_0x1aa85b);},'yXioq':'#ff4d6d','iwjzx':function(_0x383530,_0xc562a0){return _0x383530!==_0xc562a0;},'Cxshs':_0x3090f0(0x269),'DMSUJ':'Live\x20Chat\x20wird\x20geöffnet...\x20(Demo-Funktion)','PeKGH':_0x3090f0(0x216),'tqfDy':_0x3090f0(0x1ff),'rfJyO':function(_0x477e2a,_0x3075ee){return _0x477e2a+_0x3075ee;},'eYfFx':_0x3090f0(0x28e),'UuHkH':'package','xzINb':'product','ujHYF':function(_0x1f3371,_0x2deb25){return _0x1f3371||_0x2deb25;},'BNHLf':_0x3090f0(0x1d3),'wNVFJ':_0x3090f0(0x185),'MtGDs':_0x3090f0(0x27a),'qeCsA':'Virtual\x20Private\x20Container\x20-\x20Professional\x20Paket','WkEMn':'Virtual\x20Private\x20Server\x20-\x20Basic\x20Paket','NHHYq':'Virtual\x20Private\x20Server\x20-\x20Standard\x20Paket','MxmXa':'Virtual\x20Private\x20Server\x20-\x20Premium\x20Paket','GPukM':'Virtual\x20Private\x20Server\x20-\x20Enterprise\x20Paket','jcQdR':_0x3090f0(0x1cb),'JGKsz':_0x3090f0(0x278),'wcuOq':_0x3090f0(0x279),'UayrB':_0x3090f0(0x266),'RisgK':_0x3090f0(0x29b),'BqMxw':_0x3090f0(0x285),'ZYoay':_0x3090f0(0x223),'HhKdo':function(_0xb2134d,_0xe3f104){return _0xb2134d+_0xe3f104;},'fvfNl':_0x3090f0(0x206),'ftHOj':_0x3090f0(0x1cf),'BYMhu':_0x3090f0(0x1fa),'etBOl':'vps-anfrage','btSeF':_0x3090f0(0x189),'HNOxF':function(_0x21a624,_0x47b281){return _0x21a624!==_0x47b281;},'pOGZa':'Byodc','EJgId':'LNMBQ','MuQKu':_0x3090f0(0x205),'nLYBd':function(_0x2d054b,_0x1973f6){return _0x2d054b!==_0x1973f6;},'XQBXG':_0x3090f0(0x193),'wAYVZ':function(_0xa889d2,_0x6057b2){return _0xa889d2+_0x6057b2;},'BKYsE':_0x3090f0(0x1c1),'rWPMX':'OGsaB','GnGwT':_0x3090f0(0x258),'DsdCv':_0x3090f0(0x19d),'gpSgz':_0x3090f0(0x234),'dTxrc':'input,\x20select,\x20textarea','wHJdh':_0x3090f0(0x184),'VyeYt':_0x3090f0(0x1e3),'szFzP':'pwkAy','myNAp':_0x3090f0(0x239),'TvONU':_0x3090f0(0x191),'ueInl':function(_0x89d12b,_0xd8417){return _0x89d12b(_0xd8417);},'fidTv':function(_0x2a1e25,_0x1d1295){return _0x2a1e25===_0x1d1295;},'karmG':_0x3090f0(0x1cc),'heXPi':_0x3090f0(0x1ce),'dtLVq':'aria-expanded','JYAtX':_0x3090f0(0x1fd),'ZOcWq':_0x3090f0(0x21d),'BwhPi':function(_0x3a0b2d,_0x2fc75e){return _0x3a0b2d===_0x2fc75e;},'cyDcb':_0x3090f0(0x1d1),'BINtt':_0x3090f0(0x211),'Jjqdt':_0x3090f0(0x1bc),'AOuRQ':function(_0x24b784){return _0x24b784();},'adoiR':function(_0x3ab332){return _0x3ab332();},'RiEwr':function(_0x414d3e,_0x378d24,_0x42f402){return _0x414d3e(_0x378d24,_0x42f402);},'KlifO':_0x3090f0(0x200)};function _0x18a360(){const _0x4c0277=_0x3090f0,_0x4be230={'qXvub':function(_0x3117fb,_0x2e704a){return _0xaa99c9['DBQss'](_0x3117fb,_0x2e704a);},'bxkMs':_0x4c0277(0x1cc),'phmgT':_0xaa99c9['HUHzc'],'YNePf':_0xaa99c9['vvcfk'],'oVcRP':_0x4c0277(0x1fd),'VFNpm':function(_0x1fc462){return _0xaa99c9['HDWGk'](_0x1fc462);},'AIwGm':function(_0x3692a2,_0xb53e61,_0x23983c){const _0x537a30=_0x4c0277;return _0xaa99c9[_0x537a30(0x17d)](_0x3692a2,_0xb53e61,_0x23983c);},'ZTzkE':_0xaa99c9[_0x4c0277(0x175)],'zSrYr':_0xaa99c9[_0x4c0277(0x1b8)],'lqdvm':_0xaa99c9[_0x4c0277(0x1f9)],'oNPKR':_0xaa99c9[_0x4c0277(0x173)],'opgHI':_0xaa99c9['RLygv'],'nEBUS':_0xaa99c9['MAkpd'],'aSfDp':_0xaa99c9[_0x4c0277(0x1f2)],'hTzcL':_0xaa99c9['WRaNp'],'KGoak':_0xaa99c9['SDDwT']},_0x3acebc=document['querySelectorAll'](_0xaa99c9[_0x4c0277(0x1ee)]);_0x3acebc['forEach'](_0x1cf557=>{const _0x3897cf=_0x4c0277,_0x2a11d7={'QmKzM':_0x3897cf(0x29c),'nfjqP':function(_0x289ab3,_0x3d7428){return _0x4be230['qXvub'](_0x289ab3,_0x3d7428);},'TElfW':_0x4be230[_0x3897cf(0x232)],'YIhQB':_0x4be230[_0x3897cf(0x194)],'OPsvP':'button','aGRik':_0x4be230['YNePf'],'bZVQr':_0x4be230[_0x3897cf(0x277)],'KCVBN':function(_0x33f45b){const _0x3faeb7=_0x3897cf;return _0x4be230[_0x3faeb7(0x288)](_0x33f45b);},'nnBOw':function(_0x95ba3){return _0x95ba3();},'TMgMz':function(_0xba205,_0x585512,_0x2ba6a2){const _0x4bc9be=_0x3897cf;return _0x4be230[_0x4bc9be(0x1b7)](_0xba205,_0x585512,_0x2ba6a2);},'UMroz':function(_0x17db12,_0xcb7ac6){return _0x17db12+_0xcb7ac6;},'NilXk':_0x4be230[_0x3897cf(0x28d)],'aJRHr':_0x4be230[_0x3897cf(0x181)],'goUcX':_0x4be230[_0x3897cf(0x1c9)],'AQhBi':_0x4be230['oNPKR'],'jUasp':function(_0x555db6,_0x21178a){return _0x555db6===_0x21178a;},'aeWAH':_0x3897cf(0x246)};if(_0x4be230['qXvub'](_0x4be230[_0x3897cf(0x22d)],_0x4be230[_0x3897cf(0x1d5)]))_0x4a67e3[_0x3897cf(0x1f7)](_0x2a11d7[_0x3897cf(0x192)],'0'),_0x1ca610[_0x3897cf(0x1f7)](_0x2a11d7[_0x3897cf(0x1b1)],_0x2a11d7[_0x3897cf(0x287)]),_0x4c6145[_0x3897cf(0x1f7)](_0x3897cf(0x26b),_0x2a11d7[_0x3897cf(0x27c)]),_0x24fdbc[_0x3897cf(0x261)](_0x2a11d7[_0x3897cf(0x1b0)],function(_0xa3bf57){const _0xabe8a5=_0x3897cf;(_0xa3bf57['key']===_0x2a11d7[_0xabe8a5(0x22b)]||_0x2a11d7[_0xabe8a5(0x1d0)](_0xa3bf57[_0xabe8a5(0x26e)],'\x20'))&&(_0xa3bf57['preventDefault'](),this[_0xabe8a5(0x210)]());});else{const _0x23e442=_0x1cf557[_0x3897cf(0x260)](_0x4be230[_0x3897cf(0x215)]),_0x426604=_0x1cf557[_0x3897cf(0x260)](_0x4be230[_0x3897cf(0x1ca)]),_0x28762e=_0x1cf557[_0x3897cf(0x260)](_0x3897cf(0x26a));_0x23e442[_0x3897cf(0x261)](_0x4be230[_0x3897cf(0x18c)],function(){const _0x289a33=_0x3897cf,_0x2ecf2e={'FxLag':function(_0x258052,_0x5eebeb){const _0x3ea3df=a0_0x2cb2;return _0x2a11d7[_0x3ea3df(0x1df)](_0x258052,_0x5eebeb);},'YuIiB':_0x2a11d7[_0x289a33(0x292)],'JaPoy':_0x2a11d7[_0x289a33(0x1c6)],'xjKfN':_0x2a11d7[_0x289a33(0x225)]};if(_0x2a11d7[_0x289a33(0x1d0)](_0x2a11d7[_0x289a33(0x268)],_0x289a33(0x1c7))){const _0x42cc09=_0x1cf557[_0x289a33(0x1e9)]['contains'](_0x2a11d7[_0x289a33(0x1c6)]);_0x3acebc[_0x289a33(0x289)](_0x5cf0c0=>{const _0x1c26d2=_0x289a33;if(_0x2ecf2e['YuIiB']===_0x2ecf2e['YuIiB']){if(_0x5cf0c0!==_0x1cf557){_0x5cf0c0[_0x1c26d2(0x1e9)][_0x1c26d2(0x221)](_0x2ecf2e[_0x1c26d2(0x1fe)]);const _0x217d72=_0x5cf0c0[_0x1c26d2(0x260)]('.faq-answer'),_0x35c681=_0x5cf0c0[_0x1c26d2(0x260)](_0x2ecf2e[_0x1c26d2(0x286)]);_0x217d72[_0x1c26d2(0x299)][_0x1c26d2(0x2a3)]=null,_0x35c681[_0x1c26d2(0x202)]='+';}}else _0x2d402c=_0x2ecf2e[_0x1c26d2(0x180)]('+',_0x4b0d91);}),_0x42cc09?(_0x1cf557[_0x289a33(0x1e9)][_0x289a33(0x221)]('open'),_0x426604[_0x289a33(0x299)][_0x289a33(0x2a3)]=null,_0x28762e[_0x289a33(0x202)]='+'):_0x2a11d7[_0x289a33(0x231)](_0x2a11d7[_0x289a33(0x1da)],_0x289a33(0x246))?(_0x1cf557[_0x289a33(0x1e9)][_0x289a33(0x203)](_0x2a11d7['aJRHr']),_0x426604[_0x289a33(0x299)][_0x289a33(0x2a3)]=_0x2a11d7[_0x289a33(0x1df)](_0x426604[_0x289a33(0x23c)],'px'),_0x28762e[_0x289a33(0x202)]='−'):(_0x2a11d7['nfjqP'](_0x1b658e[_0x289a33(0x26e)],_0x2a11d7['QmKzM'])||_0x2a11d7['nfjqP'](_0x481e26['key'],'\x20'))&&(_0x9c7e77[_0x289a33(0x1eb)](),this[_0x289a33(0x210)]());}else{const _0x5584df={'xRRxf':function(_0x21ae2d,_0x20794a,_0xb3d08a){return _0x21ae2d(_0x20794a,_0xb3d08a);}};_0x2a11d7[_0x289a33(0x1a5)](_0x3e1605),_0x2a11d7[_0x289a33(0x1a5)](_0x2e5e85),_0x2a11d7[_0x289a33(0x294)](_0x5ecfa9),_0x190579(),_0x2a11d7[_0x289a33(0x294)](_0x357cb3),_0x2a11d7[_0x289a33(0x199)](_0xc409d6,()=>{const _0x493260=_0x289a33;_0x5584df[_0x493260(0x230)](_0x435b5d,_0x493260(0x1bc),'info');},0x7d0);}});}});}function _0x3bc544(){const _0xd20ccb=_0x3090f0,_0x5a6860={'yxdWK':_0xaa99c9[_0xd20ccb(0x1b8)],'CtvDf':function(_0x55b178,_0x8a64c){const _0x10d239=_0xd20ccb;return _0xaa99c9[_0x10d239(0x1c0)](_0x55b178,_0x8a64c);},'mHbEO':_0xd20ccb(0x2a2),'uKbdZ':_0xaa99c9['WRaNp'],'Zoxrs':_0xaa99c9[_0xd20ccb(0x1f9)],'kkGKA':function(_0x4ecc1b,_0x5a00a6){const _0x3d3306=_0xd20ccb;return _0xaa99c9[_0x3d3306(0x1e2)](_0x4ecc1b,_0x5a00a6);},'ogEIU':_0xaa99c9[_0xd20ccb(0x186)],'yRghF':_0xaa99c9['JINAb'],'OhWRl':_0xaa99c9['YQVBG'],'lkvRx':function(_0x480e51,_0x3a63ec,_0x53c2ee){return _0xaa99c9['PRVSI'](_0x480e51,_0x3a63ec,_0x53c2ee);},'vSxDr':_0xaa99c9['xfbeL'],'xEGxM':'error','wCvQG':_0xd20ccb(0x227),'HQzDJ':'pSdJM','mXfPP':function(_0x513c0a,_0x418ccd){return _0xaa99c9['NNqOl'](_0x513c0a,_0x418ccd);},'IEWAK':_0xaa99c9[_0xd20ccb(0x272)],'HPJbT':_0xd20ccb(0x1d4),'uOTZf':_0xaa99c9[_0xd20ccb(0x19a)],'gDdJU':_0xaa99c9['LSiWb']};if(_0xaa99c9['gdNul'](_0xaa99c9[_0xd20ccb(0x21b)],_0xd20ccb(0x23e))){const _0x2e2cb2=document[_0xd20ccb(0x24d)](_0xaa99c9[_0xd20ccb(0x178)]);if(!_0x2e2cb2)return;_0x2e2cb2[_0xd20ccb(0x261)](_0xd20ccb(0x28a),function(_0x5a00bc){const _0x2c7e1e=_0xd20ccb,_0x179f2b={'YwlYX':function(_0x4e7e04,_0x251fc9,_0x5a8ec5){return _0x4e7e04(_0x251fc9,_0x5a8ec5);},'SKAkR':'💬\x20Haben\x20Sie\x20Fragen?\x20Wir\x20helfen\x20gerne!','IjvGy':_0x5a6860[_0x2c7e1e(0x219)],'LtEoB':_0x2c7e1e(0x23b),'WWpzL':'error'};_0x5a00bc[_0x2c7e1e(0x1eb)]();const _0x4d9440=new FormData(_0x2e2cb2),_0x1afbd4={};for(let [_0x5f095a,_0xc58163]of _0x4d9440[_0x2c7e1e(0x218)]()){_0x5a6860[_0x2c7e1e(0x1c8)](_0x5a6860['HQzDJ'],'lmyDr')?_0x1afbd4[_0x5f095a]=_0xc58163:(_0x3ae571[_0x2c7e1e(0x1e9)][_0x2c7e1e(0x203)](qhsGnn['yxdWK']),_0x370dc5[_0x2c7e1e(0x299)][_0x2c7e1e(0x2a3)]=qhsGnn['CtvDf'](_0x480b85[_0x2c7e1e(0x23c)],'px'),_0xf2a949[_0x2c7e1e(0x202)]='−');}if(!_0x5a6860['mXfPP'](_0x5464c7,_0x1afbd4)){if(_0x5a6860[_0x2c7e1e(0x249)]!=='vanun')return;else _0x179f2b[_0x2c7e1e(0x25b)](_0x2e7fb5,_0x179f2b[_0x2c7e1e(0x255)],'info');}const _0x250fde=_0x2e2cb2['querySelector'](_0x5a6860[_0x2c7e1e(0x207)]),_0x415a8d=_0x250fde[_0x2c7e1e(0x202)];_0x250fde[_0x2c7e1e(0x202)]=_0x5a6860[_0x2c7e1e(0x22a)],_0x250fde[_0x2c7e1e(0x242)]=!![];const _0x2b6e87={'method':_0x2c7e1e(0x241),'body':_0x4d9440};_0x5a6860['lkvRx'](fetch,_0x5a6860[_0x2c7e1e(0x176)],_0x2b6e87)[_0x2c7e1e(0x1cd)](_0xa1007c=>_0xa1007c[_0x2c7e1e(0x28b)]())['then'](_0x45edd9=>{const _0x1128d8=_0x2c7e1e,_0x50d093={'oxzqT':_0x5a6860['mHbEO'],'KCLOx':function(_0x110aa7,_0x40cd28){return _0x110aa7!==_0x40cd28;},'jeQiP':_0x5a6860[_0x1128d8(0x26f)],'mwXcF':_0x5a6860[_0x1128d8(0x21f)],'QsBXh':function(_0x1f1a23,_0x1d01ba){const _0x561e3b=_0x1128d8;return _0x5a6860[_0x561e3b(0x1c8)](_0x1f1a23,_0x1d01ba);},'HmrtZ':_0x5a6860['ogEIU']};if(_0x5a6860[_0x1128d8(0x297)]!==_0x5a6860['yRghF'])_0x57732c['push'](_0x50d093[_0x1128d8(0x295)]);else{_0x250fde['textContent']=_0x415a8d,_0x250fde[_0x1128d8(0x242)]=![];if(_0x45edd9[_0x1128d8(0x23d)]){if(_0x5a6860[_0x1128d8(0x1c8)](_0x5a6860[_0x1128d8(0x1e6)],_0x5a6860['OhWRl'])){const _0x56dfdd=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return _0x56dfdd[_0x1128d8(0x237)](_0xa3945b);}else _0x2e2cb2[_0x1128d8(0x17e)](),_0x5a6860[_0x1128d8(0x1ab)](_0x5940b8,_0x45edd9[_0x1128d8(0x213)],_0x5a6860[_0x1128d8(0x253)]),window['scrollTo']({'top':0x0,'behavior':_0x1128d8(0x2a0)});}else _0x5a6860[_0x1128d8(0x1ab)](_0x5940b8,_0x45edd9[_0x1128d8(0x213)],_0x5a6860['xEGxM']),_0x45edd9[_0x1128d8(0x1f8)]&&_0x45edd9['missing_fields'][_0x1128d8(0x289)](_0x2edc80=>{const _0x4c1d67=_0x1128d8;if(_0x50d093[_0x4c1d67(0x183)]('krSOw',_0x50d093['HmrtZ'])){const _0x11592c=document[_0x4c1d67(0x24d)](_0x2edc80);_0x11592c&&(_0x11592c[_0x4c1d67(0x299)][_0x4c1d67(0x224)]=_0x4c1d67(0x243),setTimeout(()=>{const _0x494ee3=_0x4c1d67;_0x11592c[_0x494ee3(0x299)][_0x494ee3(0x224)]='';},0xbb8));}else{if(DqitoV[_0x4c1d67(0x24b)](_0x1a4b38,_0x102f35)){_0x15e688['classList'][_0x4c1d67(0x221)](_0x4c1d67(0x265));const _0x432f81=_0x45c753[_0x4c1d67(0x260)](DqitoV[_0x4c1d67(0x27f)]),_0xff8350=_0x1e1ff2[_0x4c1d67(0x260)](DqitoV[_0x4c1d67(0x235)]);_0x432f81[_0x4c1d67(0x299)][_0x4c1d67(0x2a3)]=null,_0xff8350['textContent']='+';}}});}})[_0x2c7e1e(0x1ae)](_0x185dba=>{const _0x5583bf=_0x2c7e1e;console[_0x5583bf(0x236)](_0x179f2b[_0x5583bf(0x1ec)],_0x185dba),_0x179f2b['YwlYX'](_0x5940b8,_0x179f2b[_0x5583bf(0x270)],_0x179f2b[_0x5583bf(0x1a1)]),_0x250fde['textContent']=_0x415a8d,_0x250fde[_0x5583bf(0x242)]=![];});});}else _0x3fe310[_0xd20ccb(0x1e9)]['remove'](_0xd20ccb(0x265)),_0x3bf2cf[_0xd20ccb(0x299)]['maxHeight']=null,_0x15af0b[_0xd20ccb(0x202)]='+';}function _0x5464c7(_0x296bd1){const _0x445f7f=_0x3090f0,_0x4f54f8={'fvHiE':_0xaa99c9[_0x445f7f(0x23f)]},_0x32937e=[_0x445f7f(0x1c2),_0xaa99c9[_0x445f7f(0x250)],_0x445f7f(0x201),_0x445f7f(0x1d3),_0xaa99c9[_0x445f7f(0x1a0)]],_0x43d1b4=[];_0x32937e['forEach'](_0x5e8d86=>{const _0x352ac6=_0x445f7f,_0x51aadd={'GMoWn':_0xaa99c9[_0x352ac6(0x20c)]};_0xaa99c9[_0x352ac6(0x280)](_0xaa99c9[_0x352ac6(0x20d)],_0xaa99c9[_0x352ac6(0x259)])?_0x5272f0[_0x352ac6(0x1dd)]=_0x51aadd['GMoWn']:(!_0x296bd1[_0x5e8d86]||_0xaa99c9[_0x352ac6(0x262)](_0x296bd1[_0x5e8d86][_0x352ac6(0x1ad)](),''))&&_0x43d1b4[_0x352ac6(0x1f4)](_0xaa99c9[_0x352ac6(0x1c0)](_0xaa99c9['fxCNc']+_0xaa99c9[_0x352ac6(0x24c)](_0x2104b5,_0x5e8d86),_0xaa99c9['pXQak']));});_0x296bd1[_0x445f7f(0x201)]&&!_0xaa99c9[_0x445f7f(0x24c)](_0x763bec,_0x296bd1[_0x445f7f(0x201)])&&(_0xaa99c9['lfVKo'](_0x445f7f(0x274),_0xaa99c9['kNRtX'])?_0x43d1b4[_0x445f7f(0x1f4)](_0xaa99c9['yWrMV']):_0x3ff588[_0x445f7f(0x1dd)]=_0x4f54f8[_0x445f7f(0x1f6)]);!_0x296bd1[_0x445f7f(0x1ea)]&&_0x43d1b4[_0x445f7f(0x1f4)](_0xaa99c9[_0x445f7f(0x188)]);if(_0xaa99c9[_0x445f7f(0x29f)](_0x43d1b4[_0x445f7f(0x214)],0x0))return _0x5940b8(_0x43d1b4[_0x445f7f(0x209)]('\x0a'),_0xaa99c9[_0x445f7f(0x290)]),![];return!![];}function _0x2104b5(_0x5854ce){const _0x398f77=_0x3090f0;if(_0xaa99c9[_0x398f77(0x204)]('AZHVz',_0xaa99c9['TxcrW'])){const _0x58d7e9={'firstName':'Vorname','lastName':_0xaa99c9['ZyUvM'],'email':_0xaa99c9['ooxbq'],'subject':_0xaa99c9[_0x398f77(0x198)],'message':_0xaa99c9[_0x398f77(0x1de)]};return _0x58d7e9[_0x5854ce]||_0x5854ce;}else _0x363ae7[_0x398f77(0x1f8)][_0x398f77(0x289)](_0x4f55b8=>{const _0x5e375e=_0x398f77,_0x43406f=_0x20472f[_0x5e375e(0x24d)](_0x4f55b8);_0x43406f&&(_0x43406f[_0x5e375e(0x299)][_0x5e375e(0x224)]=_0x5e375e(0x243),_0x5efa35(()=>{const _0x36c367=_0x5e375e;_0x43406f[_0x36c367(0x299)]['borderColor']='';},0xbb8));});}function _0x763bec(_0x313920){const _0x5c3d00=_0x3090f0,_0x4ced3f=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return _0x4ced3f[_0x5c3d00(0x237)](_0x313920);}function _0x5940b8(_0x53aac0,_0x1c4e5e=_0x3090f0(0x216)){const _0x41b217=_0x3090f0;_0xaa99c9[_0x41b217(0x220)](_0x41b217(0x1c3),_0xaa99c9[_0x41b217(0x29a)])?window[_0x41b217(0x24f)]&&window[_0x41b217(0x24f)][_0x41b217(0x1be)]?window[_0x41b217(0x24f)][_0x41b217(0x1be)](_0x53aac0,_0x1c4e5e):_0xaa99c9['pbEVF'](alert,_0x53aac0):_0x597e75=_0xaa99c9['qeGcf'](_0xaa99c9[_0x41b217(0x1d2)],_0x3587c3['substring'](0x1));}window[_0x3090f0(0x25e)]=function(){const _0x3b5118=_0x3090f0,_0x361645={'rEvrs':_0xaa99c9['yXioq'],'TvGhs':function(_0x1c1917,_0x39f850,_0x2e238c){return _0x1c1917(_0x39f850,_0x2e238c);}};if(_0xaa99c9['iwjzx'](_0x3b5118(0x1b3),_0xaa99c9['Cxshs']))_0x5940b8(_0xaa99c9[_0x3b5118(0x196)],_0xaa99c9[_0x3b5118(0x212)]);else{const _0x1ff6cf=_0x4e5d41['getElementById'](_0xb7d1bb);_0x1ff6cf&&(_0x1ff6cf[_0x3b5118(0x299)][_0x3b5118(0x224)]=GgqVxq[_0x3b5118(0x1f1)],GgqVxq['TvGhs'](_0x4c0c6d,()=>{const _0x2eecff=_0x3b5118;_0x1ff6cf[_0x2eecff(0x299)][_0x2eecff(0x224)]='';},0xbb8));}};function _0x34b7af(){const _0x494367=_0x3090f0;if(_0xaa99c9[_0x494367(0x204)](_0x494367(0x21a),_0xaa99c9[_0x494367(0x276)]))!this[_0x494367(0x1dd)]&&this[_0x494367(0x17f)][_0x494367(0x1e9)][_0x494367(0x221)](_0xaa99c9['tqfDy']);else{const _0xe4cc54=new URLSearchParams(window[_0x494367(0x1f3)][_0x494367(0x291)]),_0x9f8009=_0xe4cc54[_0x494367(0x1b2)](_0xaa99c9[_0x494367(0x26d)]),_0x404b83=_0xe4cc54[_0x494367(0x1b2)](_0xaa99c9[_0x494367(0x273)]);if(_0xaa99c9[_0x494367(0x1a2)](_0x9f8009,_0x404b83)){const _0x281c2a=document[_0x494367(0x24d)](_0xaa99c9[_0x494367(0x283)]),_0x49ccc0=document['getElementById'](_0xaa99c9['XBHwl']);if(_0x9f8009){const _0x5763f8={'vpc-starter':_0xaa99c9['wNVFJ'],'vpc-business':_0xaa99c9[_0x494367(0x29e)],'vpc-professional':_0xaa99c9[_0x494367(0x18e)],'vpc-enterprise':'Virtual\x20Private\x20Container\x20-\x20Enterprise\x20Paket','vps-basic':_0xaa99c9[_0x494367(0x2a1)],'vps-standard':_0xaa99c9[_0x494367(0x1a3)],'vps-premium':_0xaa99c9['MxmXa'],'vps-enterprise':_0xaa99c9[_0x494367(0x1b5)],'mail-starter':_0xaa99c9[_0x494367(0x298)],'mail-business':_0xaa99c9[_0x494367(0x1a4)],'mail-professional':_0xaa99c9[_0x494367(0x190)],'mail-enterprise':_0xaa99c9[_0x494367(0x271)],'web-starter':_0x494367(0x28f),'web-business':_0xaa99c9[_0x494367(0x1bb)],'web-professional':_0xaa99c9[_0x494367(0x228)],'web-enterprise':_0x494367(0x25c)};if(_0x5763f8[_0x9f8009]){if(_0xaa99c9[_0x494367(0x17a)](_0xaa99c9[_0x494367(0x18b)],'TOBhG')){let _0x3b1bd2=this[_0x494367(0x1dd)][_0x494367(0x1c5)](/\D/g,'');if(_0x3b1bd2['startsWith']('49'))_0x3b1bd2=_0xaa99c9[_0x494367(0x22e)]('+',_0x3b1bd2);else _0x3b1bd2[_0x494367(0x197)]('0')&&(_0x3b1bd2=_0xaa99c9[_0x494367(0x1d2)]+_0x3b1bd2[_0x494367(0x1b6)](0x1));this['value']=_0x3b1bd2;}else{_0x49ccc0['value']=_0xaa99c9[_0x494367(0x25a)](_0xaa99c9['fvfNl']+_0x5763f8[_0x9f8009],_0xaa99c9[_0x494367(0x1bf)]);if(_0x9f8009[_0x494367(0x197)](_0xaa99c9['BYMhu']))_0x281c2a[_0x494367(0x1dd)]=_0xaa99c9[_0x494367(0x23f)];else{if(_0x9f8009[_0x494367(0x197)]('vps-'))_0x281c2a[_0x494367(0x1dd)]=_0xaa99c9[_0x494367(0x1dc)];else{if(_0x9f8009['startsWith'](_0xaa99c9['btSeF']))_0xaa99c9[_0x494367(0x1fc)](_0xaa99c9['pOGZa'],_0xaa99c9['EJgId'])?_0x281c2a[_0x494367(0x1dd)]=_0xaa99c9['RNflM']:_0x15f756[_0x5361f9]=_0x435204;else{if(_0x9f8009[_0x494367(0x197)](_0xaa99c9['MuQKu'])){if(_0xaa99c9[_0x494367(0x238)]('DMbPu','DMbPu'))return;else _0x281c2a[_0x494367(0x1dd)]=_0xaa99c9[_0x494367(0x28c)];}}}}}}}else{if(_0x404b83){const _0x2f8341={'vpc':_0xaa99c9['WWJJz'],'vps':_0xaa99c9[_0x494367(0x1dc)],'mail-gateway':_0xaa99c9[_0x494367(0x20c)],'webhosting':_0xaa99c9[_0x494367(0x28c)]};_0x2f8341[_0x404b83]&&(_0x281c2a[_0x494367(0x1dd)]=_0x2f8341[_0x404b83],_0x49ccc0[_0x494367(0x1dd)]=_0xaa99c9[_0x494367(0x251)](_0xaa99c9[_0x494367(0x251)](_0xaa99c9[_0x494367(0x17c)],_0x404b83[_0x494367(0x1c5)]('-','\x20')),_0x494367(0x256)));}}}}}function _0x2142e2(){const _0x3eb2a2=_0x3090f0,_0x59855e={'JUdxm':function(_0x2928e3,_0x1e0804){const _0x4265a2=a0_0x2cb2;return _0xaa99c9[_0x4265a2(0x220)](_0x2928e3,_0x1e0804);},'TKrDz':_0x3eb2a2(0x293),'OPUQJ':_0xaa99c9[_0x3eb2a2(0x264)],'QentO':_0x3eb2a2(0x226),'XOITE':_0xaa99c9[_0x3eb2a2(0x20b)],'egShZ':_0xaa99c9[_0x3eb2a2(0x1f5)],'rYwsu':_0xaa99c9[_0x3eb2a2(0x229)],'fysNu':function(_0x5daf86,_0x1d0bdb){return _0xaa99c9['qeGcf'](_0x5daf86,_0x1d0bdb);},'lNfHj':_0xaa99c9[_0x3eb2a2(0x267)],'nTyPM':_0xaa99c9[_0x3eb2a2(0x1d2)]},_0x434d0a=document['querySelectorAll'](_0xaa99c9[_0x3eb2a2(0x18f)]);_0x434d0a[_0x3eb2a2(0x289)](_0x24dac8=>{const _0x460c34=_0x3eb2a2,_0x5eeedc={'tlTFe':function(_0x3dc87d,_0x6e8622){const _0xe96a84=a0_0x2cb2;return _0x59855e[_0xe96a84(0x1e0)](_0x3dc87d,_0x6e8622);},'VeDGt':_0x59855e[_0x460c34(0x245)],'kMGOu':_0x59855e[_0x460c34(0x296)],'pASxE':_0x460c34(0x1ff),'arIsN':_0x59855e[_0x460c34(0x1e1)]};_0x24dac8['addEventListener'](_0x59855e['XOITE'],function(){const _0x41b04d=_0x460c34;_0x5eeedc[_0x41b04d(0x240)](_0x5eeedc['VeDGt'],_0x5eeedc[_0x41b04d(0x257)])?this[_0x41b04d(0x17f)][_0x41b04d(0x1e9)][_0x41b04d(0x203)](_0x5eeedc['pASxE']):_0x81c30c['push'](_0x41b04d(0x1a9));}),_0x24dac8['addEventListener'](_0x59855e[_0x460c34(0x1e7)],function(){const _0x16831d=_0x460c34;_0x5eeedc[_0x16831d(0x240)]('mxRFX',_0x5eeedc['arIsN'])?_0x5e8f99[_0x16831d(0x24f)][_0x16831d(0x1be)](_0x2aea53,_0xfab8c3):!this[_0x16831d(0x1dd)]&&this[_0x16831d(0x17f)][_0x16831d(0x1e9)]['remove'](_0x5eeedc[_0x16831d(0x27e)]);}),_0x24dac8[_0x460c34(0x1dd)]&&_0x24dac8[_0x460c34(0x17f)][_0x460c34(0x1e9)]['add'](_0x59855e[_0x460c34(0x1db)]);});const _0x2436e5=document[_0x3eb2a2(0x24d)](_0xaa99c9['wHJdh']);_0x2436e5&&_0x2436e5[_0x3eb2a2(0x261)](_0xaa99c9[_0x3eb2a2(0x254)],function(){const _0x3bc9e9=_0x3eb2a2;let _0x36ec5c=this[_0x3bc9e9(0x1dd)][_0x3bc9e9(0x1c5)](/\D/g,'');if(_0x36ec5c[_0x3bc9e9(0x197)]('49'))_0x36ec5c=_0x59855e[_0x3bc9e9(0x18d)]('+',_0x36ec5c);else _0x36ec5c['startsWith']('0')&&(_0x59855e['lNfHj']!==_0x59855e['lNfHj']?_0x33675a[_0x3bc9e9(0x299)]['borderColor']='':_0x36ec5c=_0x59855e[_0x3bc9e9(0x18d)](_0x59855e[_0x3bc9e9(0x1c4)],_0x36ec5c[_0x3bc9e9(0x1b6)](0x1)));this[_0x3bc9e9(0x1dd)]=_0x36ec5c;});}function _0x3278a9(){const _0x197c7a=_0x3090f0,_0x3c6d48={'ShrFg':function(_0x19acfb,_0xe16579){const _0x11f199=a0_0x2cb2;return _0xaa99c9[_0x11f199(0x24e)](_0x19acfb,_0xe16579);},'hgrKS':function(_0x5176a9,_0x440b89){const _0x454885=a0_0x2cb2;return _0xaa99c9[_0x454885(0x281)](_0x5176a9,_0x440b89);},'jmJBu':_0xaa99c9[_0x197c7a(0x222)],'eXHNw':_0xaa99c9[_0x197c7a(0x195)],'CTHuq':_0xaa99c9[_0x197c7a(0x18a)],'kPLfh':_0xaa99c9['dtLVq'],'fiFYd':_0xaa99c9['vvcfk'],'XVuFe':_0xaa99c9['JYAtX']},_0x47b62e=document['querySelectorAll'](_0xaa99c9[_0x197c7a(0x19c)]);_0x47b62e[_0x197c7a(0x289)](_0x571cc3=>{const _0x3e05bd=_0x197c7a;_0xaa99c9[_0x3e05bd(0x280)](_0x3e05bd(0x19f),_0xaa99c9[_0x3e05bd(0x1f0)])?_0x571cc3[_0x3e05bd(0x1f7)](_0xaa99c9[_0x3e05bd(0x25f)],_0xaa99c9[_0x3e05bd(0x248)]):_0x40a481['HexaHost']&&_0x43fb73[_0x3e05bd(0x24f)][_0x3e05bd(0x1be)]?_0x10e684[_0x3e05bd(0x24f)]['showNotification'](_0x539ee1,_0x3f0e85):MsVGHJ[_0x3e05bd(0x1af)](_0x988eb9,_0x407312);});const _0x32fb60=document[_0x197c7a(0x1d9)](_0xaa99c9[_0x197c7a(0x1f2)]);_0x32fb60[_0x197c7a(0x289)](_0x3b7f75=>{const _0x449bb2=_0x197c7a,_0x512d9c={'EFneg':function(_0x15c874,_0x40514a){const _0x16cf61=a0_0x2cb2;return _0x3c6d48[_0x16cf61(0x1a7)](_0x15c874,_0x40514a);},'cPgBv':_0x449bb2(0x29c),'wgEOy':function(_0x47b1f3,_0x4c08d9){return _0x47b1f3===_0x4c08d9;}};_0x3b7f75['setAttribute'](_0x3c6d48[_0x449bb2(0x1aa)],'0'),_0x3b7f75[_0x449bb2(0x1f7)](_0x3c6d48[_0x449bb2(0x29d)],_0x3c6d48[_0x449bb2(0x177)]),_0x3b7f75[_0x449bb2(0x1f7)](_0x3c6d48[_0x449bb2(0x263)],_0x3c6d48[_0x449bb2(0x1d6)]),_0x3b7f75[_0x449bb2(0x261)](_0x3c6d48[_0x449bb2(0x21e)],function(_0x28ec18){const _0x4bbd43=_0x449bb2;(_0x512d9c['EFneg'](_0x28ec18[_0x4bbd43(0x26e)],_0x512d9c[_0x4bbd43(0x20f)])||_0x512d9c['wgEOy'](_0x28ec18[_0x4bbd43(0x26e)],'\x20'))&&(_0x28ec18[_0x4bbd43(0x1eb)](),this['click']());});});}document[_0x3090f0(0x261)](_0xaa99c9[_0x3090f0(0x27b)],function(){const _0x56d9ea=_0x3090f0,_0x2507ce={'CFaQc':function(_0x476568,_0x46d7fa){const _0x24042e=a0_0x2cb2;return _0xaa99c9[_0x24042e(0x1b4)](_0x476568,_0x46d7fa);},'VSkZu':_0xaa99c9[_0x56d9ea(0x22f)],'PBztz':_0xaa99c9['BINtt'],'sYkkz':function(_0x3d39f8,_0x58103c,_0x33b26f){const _0x1e36be=_0x56d9ea;return _0xaa99c9[_0x1e36be(0x17d)](_0x3d39f8,_0x58103c,_0x33b26f);},'mAgXL':_0xaa99c9['Jjqdt'],'kOItA':_0xaa99c9[_0x56d9ea(0x212)]};_0x18a360(),_0xaa99c9[_0x56d9ea(0x208)](_0x3bc544),_0xaa99c9[_0x56d9ea(0x208)](_0x34b7af),_0xaa99c9[_0x56d9ea(0x1e8)](_0x2142e2),_0xaa99c9[_0x56d9ea(0x21c)](_0x3278a9),_0xaa99c9[_0x56d9ea(0x2a5)](setTimeout,()=>{const _0x367b61=_0x56d9ea,_0x460ba9={'DtLNx':function(_0x86f310,_0x207bf8,_0x17754d){return _0x86f310(_0x207bf8,_0x17754d);},'jiuEd':_0x367b61(0x2a0)};_0x2507ce['CFaQc'](_0x2507ce[_0x367b61(0x26c)],_0x2507ce[_0x367b61(0x284)])?(_0x5520c8[_0x367b61(0x17e)](),YEttvS['DtLNx'](_0x359d59,_0x13034f[_0x367b61(0x213)],_0x367b61(0x23d)),_0x489b1f[_0x367b61(0x19b)]({'top':0x0,'behavior':YEttvS[_0x367b61(0x1ac)]})):_0x2507ce[_0x367b61(0x1ed)](_0x5940b8,_0x2507ce[_0x367b61(0x233)],_0x2507ce[_0x367b61(0x1a6)]);},0x7d0);});}()));function a0_0x2cb2(_0x25c4f8,_0x3b2dc1){_0x25c4f8=_0x25c4f8-0x173;const _0x29ed83=a0_0x29ed();let _0x2cb246=_0x29ed83[_0x25c4f8];if(a0_0x2cb2['PnMpwg']===undefined){var _0x29c51a=function(_0x10abbc){const _0xd1ac1a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d3f96='',_0x5f0381='';for(let _0x57ded4=0x0,_0x125d2a,_0x4d6259,_0x1a4b38=0x0;_0x4d6259=_0x10abbc['charAt'](_0x1a4b38++);~_0x4d6259&&(_0x125d2a=_0x57ded4%0x4?_0x125d2a*0x40+_0x4d6259:_0x4d6259,_0x57ded4++%0x4)?_0x2d3f96+=String['fromCharCode'](0xff&_0x125d2a>>(-0x2*_0x57ded4&0x6)):0x0){_0x4d6259=_0xd1ac1a['indexOf'](_0x4d6259);}for(let _0x102f35=0x0,_0x478043=_0x2d3f96['length'];_0x102f35<_0x478043;_0x102f35++){_0x5f0381+='%'+('00'+_0x2d3f96['charCodeAt'](_0x102f35)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5f0381);};a0_0x2cb2['VwjFah']=_0x29c51a,a0_0x2cb2['mgnLMT']={},a0_0x2cb2['PnMpwg']=!![];}const _0xcaebc0=_0x29ed83[0x0],_0x26ecc6=_0x25c4f8+_0xcaebc0,_0x2281af=a0_0x2cb2['mgnLMT'][_0x26ecc6];return!_0x2281af?(_0x2cb246=a0_0x2cb2['VwjFah'](_0x2cb246),a0_0x2cb2['mgnLMT'][_0x26ecc6]=_0x2cb246):_0x2cb246=_0x2281af,_0x2cb246;}function a0_0x29ed(){const _0x21edf7=['A21ly1m','C3PgELa','CKv2CNm','A29tvwC','Bg9JyxrPB24','ChvZAa','rhnKq3y','zNziAuu','C2v0qxr0CMLIDxrL','BwLZC2LUz19MAwvSzhm','wwXHuuW','DNbJlq','mZCYoejWChjsCa','se5pEey','A2v5zg93BG','sMfqB3K','zM9JDxnLza','re9nq29UDgvUDeXVywrLza','zw1HAwW','Dgv4DenVBNrLBNq','ywrK','rffjtvy','D2vIlq','sgfSBg8ScGPPy2GGAw50zxjLC3nPzxjLig1Py2GGzSo8CIbKyxmG','sfbkyLq','qu91uLe','AM9PBG','uezMBKS','r25hD1q','uK5MBe0','yNzlqNa','rgfZiezLBgqGiG','y1bNqNy','y2XPy2S','zg5YEgm','ugvlr0G','BwvZC2fNzq','BgvUz3rO','yvnMrha','Aw5MBW','BgfZDe5HBwu','zw50CMLLCW','D0n2uuC','z2DxB3K','zxLUu3y','ywrVAvi','Aw5WDxrBCMvXDwLYzwrDlcbZzwXLy3rBCMvXDwLYzwrDlcb0zxH0yxjLyvTYzxf1AxjLzf0','wfz1rMu','wM94CNm','Bgzws28','CMvTB3zL','A2fYBuC','qMHXshi','yM9YzgvYq29SB3i','z29vy1G','BxHsrLG','rxjYB3i6','qNfnEhC','DhfMrhK','Du9uwMy','uw1lEK0','nK5uvhLsBW','B3bNseK','CMzkEu8','y3Ley2i','EfjsEgy','ALvHC3a','yNHRtxm','BufNweW','svjyCeq','BxDyy0y','zxjYB3i','DgvZDa','BKXzqMq','yxjPys1Yzxf1AxjLza','nJi4ntCWmNPvzLDuyW','rwLUiezLAgXLCIbPC3qGyxvMz2v0CMv0zw4UiejPDhrLihzLCNn1y2HLBIbtAwuGzxmGC3ddPhrLCIbLCM5LDxqU','C2nYB2XSsgvPz2H0','C3vJy2vZCW','C1H5uNu','v1DksNO','DgXurMu','ue9tva','zgLZywjSzwq','i2zMngq2za','sLrlsvy','veTYrhO','AunLzgC','mJK0mJqYmfDMvNDbsW','vhzptLu','suvxquS','qvPivNO','s0nmt3G','tK5Xt2W','z2v0rwXLBwvUDej5swq','DwvjBMW','sgv4yuHVC3q','Duzewhu','D0fzvLO','tMfJAg5HBwu','DLn4rhi','vNLLwxq','u0TbA1i','ieZdTNn1BMDLBI4kcKjPDhrLigTVBNrHA3rPzxjLBIbtAwuGBwLJAcbMW7XYigvPBMuGCgvYC8o2BMXPy2HLiejLCMf0Dw5NlGOkvMLLBgvUierHBMSH','A01ht3u','zM9JDxm','EfPwD0W','sgHlzg8','wxDSwvG','v2vIAg9ZDgLUzYaTievUDgvYChjPC2uGugfRzxq','tMfJAhjPy2H0','B3bLBKXPDMvdAgf0','BxLoqxa','CxvLCNLtzwXLy3rVCG','ywrKrxzLBNrmAxn0zw5LCG','BLnOuhK','A1bmzMG','CLDqtvG','B3bLBG','twfPBcbhyxrLD2f5ic0Grw50zxjWCMLZzsbqywTLDa','z3btz3O','qvfOqMK','ELjeCve','lMzHCs10B2DNBgu','yxjPys1LEhbHBMrLza','vLnRwNu','vxviA0G','A2v5','DuTIzfO','thrfB0i','vwf5CKi','q3f0s2O','EhPjtMi','vgDKv28','lMzHCs1HBNn3zxi','zvLMrNG','B1zJuLa','twfPBcbhyxrLD2f5ic0GqNvZAw5LC3mGugfRzxq','twfPBcbhyxrLD2f5ic0GuhjVzMvZC2LVBMfSifbHA2v0','vMLYDhvHBcbqCML2yxrLienVBNrHAw5LCIaTiej1C2LUzxnZifbHA2v0','s2XPzK8','yuDsAwS','Ew9Aqu8','CeftEeu','AMvrAva','CKvqEfm','zMLKvhy','odi3ntuZAgXsyuHf','qK5itgy','uej6DhO','v2vIAg9ZDgLUzYaTifbYB2zLC3nPB25HBcbqywTLDa','EgPlzK4','t1bZDLa','vKzoCg0','zM9YrwfJAa','C3vIBwL0','ANnVBG','wffcweC','wLr6A0u','rNf4yu4','v2vIAg9ZDgLUzYaTifn0yxj0zxiGugfRzxq','yLbiA0K','C2vHCMnO','tMLSwgS','CNj4y28','BM5ct3C','B3H6Cvq','t1bvuuO','EvjNAey','AMnrzfi','C3r5Bgu','tKvSB2e','v2vIAg9ZDgLUzYaTiej1C2LUzxnZifbHA2v0','rw50zxi','zvHitNC','txrhrhm','EKnkr20','C21VB3rO','v2Tftw4','qML0DguGz2vIzw4Gu2LLigvPBMuGz8o8BhrPz2uGrs1nywLSlufKCMvZC2uGzwLUlG','Bwf4sgvPz2H0','iIbPC3qGzxjMB3jKzxjSAwnOlG','uMLfD3i','CvLvtum','mta4mdLqv0HnvNG','D1fxsKW','z0rKsLu','q1riDxe','D055teW','kZq5','rejrC3m','qMv0CMvMzG','qKTzC0u','ufjwu0K','CMvZzxq','CgfYzw50rwXLBwvUDa','rNHmywC','ELnYwxi','rs1nywLSlufKCMvZC2u','uxncwgG','CgHVBMu','vMLYDhvHBcbqCML2yxrLienVBNrHAw5LCIaTifn0yxj0zxiGugfRzxq','tvbpt3e','wgr4sLi','y1LsB04','BwfPBc0','AgvyugK','wLLVyxK','s0DVywS','zNLZtNu','CwvdC0e','zfr4CMm','D2n1t3e','Dhj1zq','vevSzLC','D2vIAg9ZDgLUzY1HBMzYywDL','CgHTz1q','sfviEMm','re1tvuO','C3rHCNrZv2L0Aa','wMPAAuq','ve1NtxO','sgfJD28','C2nYB2XSvg8','wK9Jv3e','yMX1CG','lMzHCs1PDgvT','ChDRqxK','wejiD2W','v1DWEKW','DwPiwuy','tKHiwxe','sKDlC3O','s0nwqK4','A09jDee','AgDYs1m','lMzHCs1XDwvZDgLVBG','u2LLig3dVhnZzw4GzgvYierHDgvUC2nODxr6zxjRBmoKCNvUzYb6Dxn0Aw1Tzw4U','AM1kqNu','BgT2uNG','AML1rwq','DhjPBq','y2f0y2G','u2HYrMC','yLPwuxi','wuLOuui','z2v0','BxvOEgS','qNDOugK','r1b1A00','C3vIC3rYAw5N','quL3r20','u3zJveO','ndy0mtCWv25WB09W','mJHcsKzrwxq','uMLZz0S','8j+sRcbiywjLBIbtAwuGrNjHz2vUpYbxAxiGAgvSzMvUigDLCM5Liq','BMfAs1O','C2HVD05VDgLMAwnHDgLVBG','zNrit2O','tKXNyKe','sgfSBg8ScGPPy2GGAw50zxjLC3nPzxjLig1Py2GGzSo8CIbjAhjLia','zMLYC3royw1L','sM5qse4','BLr5ue0','CMvWBgfJzq','yuPsshi','v3Dytee','A2Ths0e','BhfKDM0','Afr6y0W','twfPBcbhyxrLD2f5ic0Gu3rHCNrLCIbqywTLDa','DgfIAw5KzxG','DgHLBG','yNv0Dg9U','lGOkqML0DguGC2vUzgvUifnPzsbTAxiGD2vPDgvYzsbjBMzVCM1HDgLVBMvUihvUzcbLAw4GAw5KAxzPzhvLBgXLCYbbBMDLyM90lGOkvMLLBgvUierHBMSH','BMzQCva','CNHcyLa','AKH6ALG','C3vIAMvJDa','yNv0Dg9Uw3r5Cgu9iNn1yM1PDcjD','BKvcvvm','zMLgwwq','mZyZmZe0DxLpBe1j','ufjAzM4','CxvLCNLtzwXLy3rVCKfSBa','ywvxquG','CLL3C3u','zxrct2W','DMfSDwu','Buv2vuC','vu1YB3O','sLvKEg0','uwvUDe8','z2roDwW','Aw5WDxq','mZmYodK1qM9tr3Ls','v2LYzcbNzxnLBMrLDc4UlG','t2HxuMW','zwDtAfO','serxr2S','y2XHC3nmAxn0','ChjPDMfJEq','ChjLDMvUDerLzMf1Bhq','swP2r3K','C1LRA3O','tMjQEhG'];a0_0x29ed=function(){return _0x21edf7;};return a0_0x29ed();} \ No newline at end of file diff --git a/stdout/public/assets/js/cookie-consent.js b/stdout/public/assets/js/cookie-consent.js new file mode 100644 index 0000000..c99cf07 --- /dev/null +++ b/stdout/public/assets/js/cookie-consent.js @@ -0,0 +1 @@ +function a1_0x3610(_0x1da411,_0x59d0b8){_0x1da411=_0x1da411-0x88;const _0x2f878c=a1_0x2f87();let _0x361024=_0x2f878c[_0x1da411];if(a1_0x3610['AHHQUb']===undefined){var _0x1feee8=function(_0x47c961){const _0x5215de='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x32c89e='',_0x624486='';for(let _0x578b71=0x0,_0x1e34e3,_0x135875,_0x105857=0x0;_0x135875=_0x47c961['charAt'](_0x105857++);~_0x135875&&(_0x1e34e3=_0x578b71%0x4?_0x1e34e3*0x40+_0x135875:_0x135875,_0x578b71++%0x4)?_0x32c89e+=String['fromCharCode'](0xff&_0x1e34e3>>(-0x2*_0x578b71&0x6)):0x0){_0x135875=_0x5215de['indexOf'](_0x135875);}for(let _0x19fe15=0x0,_0x523ca4=_0x32c89e['length'];_0x19fe15<_0x523ca4;_0x19fe15++){_0x624486+='%'+('00'+_0x32c89e['charCodeAt'](_0x19fe15)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x624486);};a1_0x3610['TEEAXj']=_0x1feee8,a1_0x3610['wCTfbN']={},a1_0x3610['AHHQUb']=!![];}const _0x2fd4ea=_0x2f878c[0x0],_0x4c0f16=_0x1da411+_0x2fd4ea,_0x398472=a1_0x3610['wCTfbN'][_0x4c0f16];return!_0x398472?(_0x361024=a1_0x3610['TEEAXj'](_0x361024),a1_0x3610['wCTfbN'][_0x4c0f16]=_0x361024):_0x361024=_0x398472,_0x361024;}function a1_0x2f87(){const _0x609c67=['ngPUA1DeuG','z0nIwxC','B1fky1m','BKf4rvm','nvr3BxrXta','vMn5EKy','tNvYig5VDhDLBMrPz2uGq29VA2LLCYb3DxjKzw4GywT6zxb0AwvYDc4','sgv4yuHVC3q','DgHlEwq','y29VA2LLu2f2zvnLDhrPBMDZ','mZm3odyYweDZvvjo','DMjYt20','qMLPAKi','AeTAAg4','C2f2zvnLDhrPBMDZ','C2f2zunVBNnLBNq','q09izMe','CgLWzKK','mte0otu5nLPhAvvhDW','zgLZCgXHEq','rvHLt1K','y29VA2LL','zNvUy3rPB24','zgvMyxvSDenVBNnLBNq','C3nyA1m','Aw5MBW','q29VA2LLluvPBNn0zwXSDw5Nzw4GD3vYzgvUigDLC3bLAwnOzxj0lG','DNnwthm','z2v0','C1vLD0e','y29VA2LLu2v0DgLUz3nqyw5LBa','thzPCwq','zgvSzxrL','vejZCKS','z2v0vgLTzq','twP4q1q','z0XiANa','Dg9ju09tDhjPBMC','C3bSAxq','sxnoyNG','whzpBKq','yxPptM8','t2DxCM4','ywf3rfi','teTStuu','A2v5','qMTAzNa','q29VA2LLq29UC2vUDa','y29VA2LLq29UC2vUDa','y29VA2LLtwfYA2v0Aw5N','rvnHrKq','EfDTrNi','z0jxCKS','uhzgAw0','AgLKzvnLDhrPBMDZ','wKnrvwu','ywrK','wLPQueO','tKTfsLu','DuXtt0q','rg11u3C','sLrruLu','DKvREvq','y2HLy2TLza','y29VA2LLqwnJzxb0qwXS','re9nq29UDgvUDeXVywrLza','BKPzu1i','zMfSC2u','ug9Ktgi','D1DlwvO','t1bPAMS','ueTbuwq','yNz1tfO','rMjirwy','u0joB3e','tursEve','Aw5PDa','zxHWAxjLCZ0','wLn6vM0','EMvODeS','zgLZywjSzufUywX5DgLJCW','qvDzzgO','C2v0','BhnQD2m','rwj3A1e','ufrWEwO','ELfTueu','zM5tAMq','twfYA2v0Aw5NigrPC2fIBgvK','r0v0A0e','vMD1thG','BeTztNa','C2v0qxr0CMLIDxrL','C2HVD05VDgLMAwnHDgLVBG','uwfOChi','wu1czeG','uKfMzKu','qNvUuhO','zM5LAfy','zwXbr0e','sgDSwwy','ywnJzxb0rxnZzw50AwfS','C2HVD0jHBM5LCG','zM9JDxm','mtGWodeZzLn1AKPZ','sNPiwKi','v1Dtque','qMHhC0m','Agv4ywHVC3rFy29VA2LLx2nVBNnLBNq','q0zLvfm','z2XbDvO','C2vKqNG','C3vJy2vZCW','vunZC1O','qLjfy3a','t1rKC2u','rgncwhu','rxnJyxbL','CMvTB3zL','wNrkrvO','C3r5Bgu','wfflzKG','wwf4r1K','u3z1uhO','vNnlEMW','yLHkwK8','CNnzsxO','C0LZzhi','BuXxCMe','wg1czeG','s2rNB1u','B0PfA1u','CMvHzhLtDgf0zq','AgLKzq','C3rYAw5NAwz5','AKPruMS','z2v0q29UC2vUDa','DvLLEgm','yw5HBhL0AwnZ','BgvUz3rO','ExjKCKC','C2HVD1nLDhrPBMDZ','ptTLEhbPCMvZpvrODsWGmdeGsMfUide5nZaGmda6mda6mdaGvvrdo3bHDgG9lZS','qxfhzwO','A0zUCeq','C3zPEwS','tuLyrfu','AgLKzujHBM5LCG','rfrkrMW','yLbLEvK','y2vAy2i','BwfYA2v0Aw5N','CgfYC2u','A2PAqNe','uLbzvNa','mtiZmZqZnwjWq2LRua','rMn1sLi','zgLZywjSzu1HCMTLDgLUzW','qw5HBhL0AwnZigvUywjSzwq','z3HOANC','Be9pqNK','ywrKrxzLBNrmAxn0zw5LCG','ze1htgO','zKTtB3y','Dg9vventDhjPBMC','yMXVy2S','C2L5Ehq','y1bzA2K','DLbhugu','yxbWBhLdB25Zzw50','CeLSuxq','CuHnyNi','qwXSzsbdB29RAwvZihD1CMrLBIbHA3PLChrPzxj0lG','uwXtvKC','yxjPys1OAwrKzw4','y29VA2LLqwnJzxb0rxnZzw50AwfS','vej6AK8','y2XPy2S','qw5HBhL0AwnZigrPC2fIBgvK','qLLWAMy','t3zrEuy','AKPPB2e','C2v0vgLTzq','CxfzA3a','vgfdy1C','vwvgq0y','zw5HyMXLqw5HBhL0AwnZ','y29VA2LLq2XVC2vtzxr0Aw5NCW','A2L1s2y','y2XHC3nmAxn0','A1HWr0O','A2v5zg93BG','yKLuBMW','z2v0rwXLBwvUDej5swq','C2HVDW','quDYsMO','veXnvNu','odu5mZm2zfrsvfbj','mtC1mZq0mfLnuMLYrq','BM9Uzq','z25gEKi','mtCWmJG5rhL2C1v2','Bg9HzgLUzW','DxnwC0G','DgLTzxn0yw1W','Bg9N'];a1_0x2f87=function(){return _0x609c67;};return a1_0x2f87();}(function(_0x3140f1,_0xf2f5b5){const _0x74da94=a1_0x3610,_0x13f95f=_0x3140f1();while(!![]){try{const _0x52d8e4=parseInt(_0x74da94(0x119))/0x1+parseInt(_0x74da94(0x10f))/0x2*(parseInt(_0x74da94(0xa9))/0x3)+parseInt(_0x74da94(0x121))/0x4*(-parseInt(_0x74da94(0x113))/0x5)+parseInt(_0x74da94(0x107))/0x6+-parseInt(_0x74da94(0xdc))/0x7+-parseInt(_0x74da94(0x106))/0x8+parseInt(_0x74da94(0x10a))/0x9;if(_0x52d8e4===_0xf2f5b5)break;else _0x13f95f['push'](_0x13f95f['shift']());}catch(_0x3f5c41){_0x13f95f['push'](_0x13f95f['shift']());}}}(a1_0x2f87,0x30790),(function(){'use strict';const _0x492d5f=a1_0x3610,_0x5e05ba={'NKEJU':function(_0x4b8b8f,_0x5e7ddd){return _0x4b8b8f+_0x5e7ddd;},'HglYf':function(_0x31ef41,_0xefb667){return _0x31ef41*_0xefb667;},'lsjwc':function(_0xbd9d38,_0x200fa4){return _0xbd9d38*_0x200fa4;},'qGeZd':_0x492d5f(0x8e),'nAxES':';path=/;SameSite=Lax;Secure','wWKYZ':function(_0x361b3a,_0x444827){return _0x361b3a!==_0x444827;},'TaCcW':_0x492d5f(0x108),'PodLb':_0x492d5f(0x132),'hKZhn':'YeeGa','qqYkp':function(_0xbbd11b,_0x29e641){return _0xbbd11b+_0x29e641;},'RAffE':function(_0x3a85bd,_0x4a5aea){return _0x3a85bd<_0x4a5aea;},'gxhjw':function(_0x182311,_0x12854f){return _0x182311===_0x12854f;},'FcuJR':_0x492d5f(0x128),'usVsH':function(_0x4e91a7,_0x44e2c3){return _0x4e91a7!==_0x44e2c3;},'XmBdH':_0x492d5f(0x88),'BYpjf':function(_0x49b8f3,_0x1cf42e){return _0x49b8f3+_0x1cf42e;},'CFeTS':_0x492d5f(0xcf),'BhGsC':_0x492d5f(0xe6),'UCssZ':_0x492d5f(0x152),'nJYSR':function(_0x43c13f,_0x5c0d66){return _0x43c13f===_0x5c0d66;},'COHfa':_0x492d5f(0xe3),'jJioa':_0x492d5f(0x12e),'ZtJEZ':'Escape','bXJZO':function(_0x48bed4,_0x12bc79){return _0x48bed4!==_0x12bc79;},'oQJcS':_0x492d5f(0xf2),'nMoUD':function(_0x552d52,_0x47ce6e){return _0x552d52!==_0x47ce6e;},'VLmyh':_0x492d5f(0x136),'sIsdr':_0x492d5f(0xef),'jJQRk':_0x492d5f(0x92),'zraMh':_0x492d5f(0x95),'QlSVG':'success','siyxt':_0x492d5f(0x129),'vPGPe':_0x492d5f(0x14d),'fnSjd':_0x492d5f(0x143),'fKSov':'hide','AqGej':_0x492d5f(0x103),'xWmFr':function(_0x2e46e7,_0x559c8e,_0x5e0a3b){return _0x2e46e7(_0x559c8e,_0x5e0a3b);},'BkZfp':function(_0x4fa24b,_0x299b69){return _0x4fa24b+_0x299b69;},'BJROl':function(_0x24f054,_0x34d45c){return _0x24f054*_0x34d45c;},'MDRyQ':function(_0x1d5ab3,_0x3cd874){return _0x1d5ab3+_0x3cd874;},'uLSOD':function(_0x5a7eb4,_0x1dc182){return _0x5a7eb4+_0x1dc182;},'hwyIN':function(_0x5d6138,_0xca331b){return _0x5d6138+_0xca331b;},'fnehV':_0x492d5f(0xc4),'sedBx':'cookieConsentUpdated','SBNoq':_0x492d5f(0x9b),'aeCgD':function(_0x2e2949,_0x5056a4){return _0x2e2949!==_0x5056a4;},'OPijk':_0x492d5f(0xf5),'ESaFD':_0x492d5f(0x117),'JTQRU':'Marketing\x20enabled','pIlQt':'ZAGrO','yrdrG':_0x492d5f(0xdf),'bvuLZ':_0x492d5f(0xf3),'ZCQUe':_0x492d5f(0x11a),'EWcHE':_0x492d5f(0xda),'vsVLs':_0x492d5f(0x99),'azONo':_0x492d5f(0x130),'BiijB':_0x492d5f(0x90),'zQmPE':_0x492d5f(0xd3),'UeFCF':'true','ssXkS':function(_0x1abdb5,_0x572156){return _0x1abdb5===_0x572156;},'BunPz':_0x492d5f(0x139),'jmqyo':'KdgoU','YaxGY':function(_0x3d31fa,_0x57d0ec){return _0x3d31fa!==_0x57d0ec;},'aawDR':_0x492d5f(0xbc),'Qahpr':_0x492d5f(0xd1),'lOOBy':function(_0x12e136,_0x5c383){return _0x12e136===_0x5c383;},'ZSzVm':function(_0x38e5c4,_0x1d8db0){return _0x38e5c4!==_0x1d8db0;},'ZZjPJ':_0x492d5f(0xb3),'mLWra':_0x492d5f(0xff),'cPYki':_0x492d5f(0x114),'FpoqL':_0x492d5f(0xad),'elAGA':_0x492d5f(0x13f),'FHvQz':_0x492d5f(0x12d),'lKYNp':_0x492d5f(0xf0),'VsKzl':'cookieSettings','kiuKf':_0x492d5f(0x118),'uYexc':_0x492d5f(0x140),'kyNqU':_0x492d5f(0x10b),'sUewA':'SxrZa','nowMN':_0x492d5f(0x150)};const _0x1eaa00=_0x5e05ba['FpoqL'],_0x5a7038=0x16d,_0x5025d9=document[_0x492d5f(0x102)](_0x5e05ba[_0x492d5f(0xa4)]),_0x2274e7=document['getElementById'](_0x5e05ba['FHvQz']),_0x386a6a=document[_0x492d5f(0x102)](_0x492d5f(0x14f)),_0x4a300b=document[_0x492d5f(0x102)](_0x5e05ba[_0x492d5f(0x9c)]),_0x34ce7e=document['getElementById'](_0x5e05ba[_0x492d5f(0xbd)]),_0x14f0b3=document[_0x492d5f(0x102)](_0x5e05ba[_0x492d5f(0xfd)]),_0xec2263=document[_0x492d5f(0x102)](_0x492d5f(0xfc)),_0x121ea6=document[_0x492d5f(0x102)]('cookieAnalytics'),_0x568335=document[_0x492d5f(0x102)](_0x5e05ba[_0x492d5f(0xca)]),_0x16ce87={'set':function(_0x3db214,_0x405c1b,_0x30d504){const _0x3821aa=_0x492d5f,_0x39b8e2=new Date();_0x39b8e2[_0x3821aa(0xf7)](_0x5e05ba['NKEJU'](_0x39b8e2[_0x3821aa(0x131)](),_0x5e05ba[_0x3821aa(0xa5)](_0x5e05ba[_0x3821aa(0x94)](_0x5e05ba[_0x3821aa(0x94)](_0x5e05ba[_0x3821aa(0x94)](_0x30d504,0x18),0x3c),0x3c),0x3e8)));const _0x3b14eb=_0x5e05ba['NKEJU'](_0x5e05ba['qGeZd'],_0x39b8e2[_0x3821aa(0xe5)]());document[_0x3821aa(0x124)]=_0x5e05ba[_0x3821aa(0x149)](_0x5e05ba['NKEJU'](_0x5e05ba[_0x3821aa(0x149)](_0x5e05ba[_0x3821aa(0x149)](_0x3db214,'='),JSON['stringify'](_0x405c1b))+';',_0x3b14eb),_0x5e05ba[_0x3821aa(0x112)]);},'get':function(_0x550310){const _0x3e87c7=_0x492d5f,_0x34e660={'gCbYw':_0x3e87c7(0xb6),'gnFzB':function(_0x3394fc,_0x5a1af7){const _0x2df750=_0x3e87c7;return _0x5e05ba[_0x2df750(0x154)](_0x3394fc,_0x5a1af7);},'TBzjO':_0x5e05ba['TaCcW']};if(_0x5e05ba[_0x3e87c7(0x153)]===_0x5e05ba[_0x3e87c7(0x11c)])_0x1d0027['key']===_0x34e660[_0x3e87c7(0x110)]&&_0x5be250&&_0x34e660[_0x3e87c7(0x109)](_0x41d100[_0x3e87c7(0xb9)][_0x3e87c7(0x122)],_0x34e660[_0x3e87c7(0xf1)])&&this[_0x3e87c7(0x145)]();else{const _0x5c65bf=_0x5e05ba[_0x3e87c7(0xf8)](_0x550310,'='),_0x1c428c=document[_0x3e87c7(0x124)][_0x3e87c7(0x135)](';');for(let _0x233575=0x0;_0x5e05ba[_0x3e87c7(0xa1)](_0x233575,_0x1c428c[_0x3e87c7(0xcc)]);_0x233575++){let _0x120257=_0x1c428c[_0x233575]['trim']();if(_0x5e05ba[_0x3e87c7(0xe0)](_0x120257['indexOf'](_0x5c65bf),0x0))try{return JSON[_0x3e87c7(0xd9)](_0x120257['substring'](_0x5c65bf[_0x3e87c7(0xcc)]));}catch(_0x1a2eca){return null;}}return null;}},'delete':function(_0x2ea152){const _0x35cb6f=_0x492d5f;if(_0x5e05ba[_0x35cb6f(0x10c)](_0x5e05ba[_0x35cb6f(0xc2)],_0x35cb6f(0xbf)))document[_0x35cb6f(0x124)]=_0x5e05ba[_0x35cb6f(0xf4)](_0x2ea152,_0x5e05ba[_0x35cb6f(0xae)]);else{const _0x929bf1={'essential':!![],'analytics':![],'marketing':![],'timestamp':new _0x33833b()[_0x35cb6f(0x134)]()};this['saveConsent'](_0x929bf1),this[_0x35cb6f(0xd4)](),this['applyConsent'](_0x929bf1),this[_0x35cb6f(0x9e)]('Nur\x20notwendige\x20Cookies\x20wurden\x20akzeptiert.',_0x5e05ba[_0x35cb6f(0xdd)]);}}},_0xb32b12={'defaultConsent':{'essential':!![],'analytics':![],'marketing':![],'timestamp':null},'init':function(){const _0x137044=_0x492d5f;if(!_0x5025d9)return;const _0x5074db=this['getConsent']();_0x5074db&&_0x5074db[_0x137044(0x10d)]?(this['hideBanner'](),this[_0x137044(0xea)](_0x5074db)):this['showBanner'](),this['bindEvents']();},'bindEvents':function(){const _0x431e19=_0x492d5f,_0x3cce07={'LKlME':_0x5e05ba[_0x431e19(0x111)]};_0x386a6a&&_0x386a6a[_0x431e19(0xe2)](_0x5e05ba['oQJcS'],()=>this['acceptAll']()),_0x4a300b&&_0x4a300b[_0x431e19(0xe2)](_0x431e19(0xf2),()=>this[_0x431e19(0xa6)]()),_0x34ce7e&&(_0x5e05ba['nMoUD']('IsNbx',_0x5e05ba['VLmyh'])?this[_0x431e19(0xde)]():_0x34ce7e[_0x431e19(0xe2)](_0x5e05ba['oQJcS'],()=>this[_0x431e19(0xce)]())),_0x14f0b3&&(_0x431e19(0x120)===_0x431e19(0x120)?_0x14f0b3[_0x431e19(0xe2)]('click',()=>this[_0x431e19(0x11d)]()):_0x139a23[_0x431e19(0xe2)](_0x3cce07[_0x431e19(0x13b)],()=>this['showSettings']())),_0xec2263&&_0xec2263[_0x431e19(0xe2)](_0x5e05ba[_0x431e19(0x111)],()=>this[_0x431e19(0x145)]()),document[_0x431e19(0xe2)](_0x431e19(0x100),_0x191acd=>{const _0x44c591=_0x431e19,_0x351736={'bPeyY':_0x5e05ba[_0x44c591(0xac)],'PTpyj':_0x44c591(0xef),'JzHZB':_0x5e05ba[_0x44c591(0xb2)]};if(_0x5e05ba[_0x44c591(0x151)](_0x5e05ba[_0x44c591(0x11f)],_0x5e05ba[_0x44c591(0xf6)])){if(_0x57f80d){const _0x9be33b=this[_0x44c591(0xc9)]()||this[_0x44c591(0x126)];_0x3d83a5&&(_0x335513[_0x44c591(0x14e)]=_0x9be33b['analytics']),_0x3d6458&&(_0x37d556[_0x44c591(0x14e)]=_0x9be33b[_0x44c591(0xd8)]),_0x1dde82['style'][_0x44c591(0x122)]=_0x351736[_0x44c591(0xd6)],_0x612204[_0x44c591(0x9d)](_0x351736[_0x44c591(0x96)],_0x351736[_0x44c591(0xaa)]);}}else _0x191acd[_0x44c591(0x13c)]===_0x5e05ba[_0x44c591(0xb8)]&&_0x2274e7&&_0x5e05ba[_0x44c591(0xbe)](_0x2274e7[_0x44c591(0xb9)][_0x44c591(0x122)],_0x5e05ba[_0x44c591(0xf9)])&&this['hideSettings']();});},'acceptAll':function(){const _0x3a732f=_0x492d5f;if(_0x5e05ba[_0x3a732f(0x151)](_0x5e05ba[_0x3a732f(0xc8)],_0x5e05ba['zraMh'])){const _0x22c52d=this[_0x3a732f(0xc9)]()||this['defaultConsent'];_0x1a116d&&(_0x54a89e[_0x3a732f(0x14e)]=_0x22c52d[_0x3a732f(0xcb)]),_0x38ffb6&&(_0x474039['checked']=_0x22c52d['marketing']),_0x49367e['style'][_0x3a732f(0x122)]=_0x5e05ba[_0x3a732f(0xac)],_0x211c8c['setAttribute'](_0x5e05ba[_0x3a732f(0xc0)],_0x5e05ba[_0x3a732f(0xb2)]);}else{const _0x3e81f1={'essential':!![],'analytics':!![],'marketing':!![],'timestamp':new Date()[_0x3a732f(0x134)]()};this[_0x3a732f(0x11e)](_0x3e81f1),this['hideBanner'](),this[_0x3a732f(0xea)](_0x3e81f1),this['showNotification'](_0x3a732f(0xed),_0x5e05ba[_0x3a732f(0xee)]);}},'acceptEssential':function(){const _0x59abf3=_0x492d5f,_0x3bbf36={'essential':!![],'analytics':![],'marketing':![],'timestamp':new Date()[_0x59abf3(0x134)]()};this[_0x59abf3(0x11e)](_0x3bbf36),this[_0x59abf3(0xd4)](),this['applyConsent'](_0x3bbf36),this[_0x59abf3(0x9e)](_0x59abf3(0x115),_0x5e05ba[_0x59abf3(0xdd)]);},'saveSettings':function(){const _0x1236d0=_0x492d5f,_0x16db9e={'essential':!![],'analytics':_0x121ea6?_0x121ea6[_0x1236d0(0x14e)]:![],'marketing':_0x568335?_0x568335[_0x1236d0(0x14e)]:![],'timestamp':new Date()[_0x1236d0(0x134)]()};this['saveConsent'](_0x16db9e),this['hideSettings'](),this[_0x1236d0(0xd4)](),this[_0x1236d0(0xea)](_0x16db9e),this[_0x1236d0(0x9e)](_0x5e05ba[_0x1236d0(0xe7)],_0x1236d0(0xb1));},'saveConsent':function(_0x2563d4){const _0x254c62=_0x492d5f,_0x26ac95={'XQKfH':_0x5e05ba[_0x254c62(0xe7)]};if(_0x5e05ba[_0x254c62(0xe9)]===_0x5e05ba[_0x254c62(0x98)]){const _0x5424ac={'essential':!![],'analytics':_0x4ced35?_0x325fb4[_0x254c62(0x14e)]:![],'marketing':_0x54b79b?_0x28b2f0[_0x254c62(0x14e)]:![],'timestamp':new _0x2a4b22()[_0x254c62(0x134)]()};this['saveConsent'](_0x5424ac),this[_0x254c62(0x145)](),this[_0x254c62(0xd4)](),this[_0x254c62(0xea)](_0x5424ac),this[_0x254c62(0x9e)](TWPzlI[_0x254c62(0xba)],_0x254c62(0xb1));}else _0x16ce87[_0x254c62(0x93)](_0x1eaa00,_0x2563d4,_0x5a7038);},'getConsent':function(){const _0x5039b0=_0x492d5f;return _0x16ce87[_0x5039b0(0x12b)](_0x1eaa00);},'applyConsent':function(_0x226098){const _0x5d1c01=_0x492d5f,_0x54a107={'qHMbr':function(_0x167e24,_0x3ca51c){const _0x3e8c40=a1_0x3610;return _0x5e05ba[_0x3e8c40(0x13d)](_0x167e24,_0x3ca51c);},'RPYVp':function(_0x508410,_0x14f8ee){return _0x5e05ba['lsjwc'](_0x508410,_0x14f8ee);},'OTdse':function(_0x4b373d,_0xb91b98){const _0x3440b3=a1_0x3610;return _0x5e05ba[_0x3440b3(0xa5)](_0x4b373d,_0xb91b98);},'PvFim':function(_0x6c6709,_0x36a6be){return _0x5e05ba['BJROl'](_0x6c6709,_0x36a6be);},'WWSAA':_0x5e05ba['qGeZd'],'gLHjp':function(_0x50c155,_0x43b74d){const _0x2b3296=a1_0x3610;return _0x5e05ba[_0x2b3296(0x149)](_0x50c155,_0x43b74d);},'DmuSw':function(_0xa846a3,_0x426b6e){const _0x3c059e=a1_0x3610;return _0x5e05ba[_0x3c059e(0x8c)](_0xa846a3,_0x426b6e);},'DcBXu':function(_0xedba97,_0x21dd0c){const _0xb84bc6=a1_0x3610;return _0x5e05ba[_0xb84bc6(0x14a)](_0xedba97,_0x21dd0c);},'FbHEf':function(_0x1cf555,_0x3dcad7){return _0x5e05ba['hwyIN'](_0x1cf555,_0x3dcad7);},'sviyk':_0x5e05ba['nAxES']};if(_0x5d1c01(0xaf)!==_0x5e05ba[_0x5d1c01(0xa3)]){const _0x179d1e={'detail':_0x226098};window['dispatchEvent'](new CustomEvent(_0x5e05ba[_0x5d1c01(0xb0)],_0x179d1e));if(_0x226098[_0x5d1c01(0xcb)]){if(_0x5e05ba[_0x5d1c01(0x151)](_0x5e05ba[_0x5d1c01(0x8b)],_0x5d1c01(0x9b)))this[_0x5d1c01(0xfb)]();else{const _0x51cf2d=new _0x19fe15();_0x51cf2d[_0x5d1c01(0xf7)](oUPGeQ[_0x5d1c01(0xec)](_0x51cf2d[_0x5d1c01(0x131)](),oUPGeQ[_0x5d1c01(0xdb)](oUPGeQ[_0x5d1c01(0xb4)](oUPGeQ[_0x5d1c01(0x144)](_0x523ca4*0x18,0x3c),0x3c),0x3e8)));const _0x2084cc=oUPGeQ[_0x5d1c01(0xec)](oUPGeQ[_0x5d1c01(0xab)],_0x51cf2d[_0x5d1c01(0xe5)]());_0x1639f0['cookie']=oUPGeQ[_0x5d1c01(0x133)](oUPGeQ[_0x5d1c01(0x14b)](oUPGeQ[_0x5d1c01(0x14b)](oUPGeQ[_0x5d1c01(0xb5)](oUPGeQ[_0x5d1c01(0x8a)](_0xa5bd0,'='),_0x39ed4c[_0x5d1c01(0xc7)](_0x209f4d)),';'),_0x2084cc),oUPGeQ[_0x5d1c01(0xd2)]);}}else _0x5e05ba['aeCgD'](_0x5e05ba[_0x5d1c01(0x155)],_0x5d1c01(0xa0))?this[_0x5d1c01(0x91)]():(_0x486abe[_0x5d1c01(0xfe)][_0x5d1c01(0xb7)](_0x5e05ba[_0x5d1c01(0xe4)]),_0x43ba81[_0x5d1c01(0xfe)]['add'](_0x5e05ba[_0x5d1c01(0xd0)]),_0x143f43[_0x5d1c01(0x9d)](_0x5e05ba['sIsdr'],_0x5d1c01(0x152)),_0x5e05ba['xWmFr'](_0x551ee5,()=>{const _0x314b2f=_0x5d1c01;_0x318846&&_0x316549[_0x314b2f(0xa8)]();},0x64));_0x226098['marketing']?this['enableMarketing']():_0x5e05ba['nJYSR'](_0x5e05ba[_0x5d1c01(0x141)],_0x5d1c01(0x104))?this['enableMarketing']():this[_0x5d1c01(0xde)]();}else _0x544b3d[_0x5d1c01(0xe2)](_0x5d1c01(0xf2),()=>this['saveSettings']());},'enableAnalytics':function(){const _0x5d0723=_0x492d5f;_0x5d0723(0xd5)!==_0x5e05ba[_0x5d0723(0xeb)]?console[_0x5d0723(0x10e)](_0x5e05ba[_0x5d0723(0xcd)]):_0x57aab0[_0x5d0723(0x10e)](_0x5e05ba[_0x5d0723(0x14c)]);},'disableAnalytics':function(){const _0x515829=_0x492d5f;console[_0x515829(0x10e)](_0x5e05ba[_0x515829(0x89)]);},'enableMarketing':function(){const _0x2efb50=_0x492d5f;_0x5e05ba[_0x2efb50(0x146)]===_0x5e05ba['EWcHE']?_0x3f2f58[_0x2efb50(0x14e)]=_0x2e6477[_0x2efb50(0xd8)]:console['log'](_0x5e05ba[_0x2efb50(0x14c)]);},'disableMarketing':function(){const _0x25ba4b=_0x492d5f;console[_0x25ba4b(0x10e)](_0x5e05ba[_0x25ba4b(0x12a)]);},'showBanner':function(){const _0x4ef22d=_0x492d5f,_0x4f24b1={'mehOW':function(_0x5bc1a3,_0x465b5f){return _0x5bc1a3===_0x465b5f;},'GEtkA':_0x5e05ba[_0x4ef22d(0x138)],'ceZcb':_0x5e05ba[_0x4ef22d(0x11b)]};_0x5e05ba['gxhjw'](_0x5e05ba[_0x4ef22d(0x97)],'FIQXR')?_0x254852[_0x4ef22d(0xa8)]():_0x5025d9&&(_0x5025d9[_0x4ef22d(0xfe)][_0x4ef22d(0xb7)](_0x5e05ba['fKSov']),_0x5025d9['classList'][_0x4ef22d(0x147)](_0x4ef22d(0x103)),_0x5025d9['setAttribute'](_0x5e05ba[_0x4ef22d(0xc0)],_0x4ef22d(0x152)),_0x5e05ba[_0x4ef22d(0x142)](setTimeout,()=>{const _0x95ede4=_0x4ef22d;if(_0x386a6a){if(_0x4f24b1['mehOW'](_0x4f24b1[_0x95ede4(0x9a)],_0x4f24b1[_0x95ede4(0xd7)]))return _0x35f80b[_0x95ede4(0x12b)](_0xb9c02d);else _0x386a6a[_0x95ede4(0xa8)]();}},0x64));},'hideBanner':function(){const _0x3ddafd=_0x492d5f;_0x5025d9&&(_0x5025d9[_0x3ddafd(0xfe)][_0x3ddafd(0xb7)](_0x3ddafd(0x103)),_0x5025d9[_0x3ddafd(0xfe)][_0x3ddafd(0x147)](_0x5e05ba[_0x3ddafd(0xe4)]),_0x5025d9['setAttribute'](_0x5e05ba['sIsdr'],_0x5e05ba['UeFCF']));},'showSettings':function(){const _0x2fb726=_0x492d5f;if(_0x5e05ba[_0x2fb726(0x127)](_0x5e05ba[_0x2fb726(0xa2)],_0x5e05ba[_0x2fb726(0xa2)])){if(_0x2274e7){const _0x160402=this['getConsent']()||this['defaultConsent'];_0x121ea6&&(_0x121ea6[_0x2fb726(0x14e)]=_0x160402['analytics']),_0x568335&&(_0x568335[_0x2fb726(0x14e)]=_0x160402[_0x2fb726(0xd8)]),_0x2274e7[_0x2fb726(0xb9)]['display']=_0x5e05ba[_0x2fb726(0xac)],_0x2274e7[_0x2fb726(0x9d)](_0x5e05ba['sIsdr'],_0x5e05ba[_0x2fb726(0xb2)]);}}else this[_0x2fb726(0xd4)](),this[_0x2fb726(0xea)](_0x537678);},'hideSettings':function(){const _0x19ea2e=_0x492d5f,_0x567067={'bITnl':_0x5e05ba[_0x19ea2e(0x111)]};_0x5e05ba[_0x19ea2e(0x151)](_0x5e05ba['jmqyo'],_0x19ea2e(0xc3))?_0x2274e7&&(_0x5e05ba[_0x19ea2e(0xbb)](_0x5e05ba[_0x19ea2e(0x13a)],_0x5e05ba[_0x19ea2e(0x9f)])?(_0x2274e7[_0x19ea2e(0xb9)][_0x19ea2e(0x122)]=_0x5e05ba['TaCcW'],_0x2274e7[_0x19ea2e(0x9d)](_0x19ea2e(0xef),_0x5e05ba['UeFCF'])):_0x44e2f2[_0x19ea2e(0xe2)](eMXcLx[_0x19ea2e(0x101)],()=>this[_0x19ea2e(0x145)]())):_0xba0937['log'](_0x5e05ba[_0x19ea2e(0x12a)]);},'showNotification':function(_0x43594d,_0x551be3){const _0x2c2e3b=_0x492d5f;window[_0x2c2e3b(0x116)]&&_0x5e05ba[_0x2c2e3b(0xe1)](typeof window['HexaHost']['showNotification'],_0x2c2e3b(0x125))&&window[_0x2c2e3b(0x116)]['showNotification'](_0x43594d,_0x551be3);},'resetConsent':function(){const _0x3f5270=_0x492d5f,_0x3a6834={'XvOnD':_0x3f5270(0xc6),'EXeOY':_0x5e05ba[_0x3f5270(0xc0)],'KyIfV':function(_0x1eca13,_0xe0a006,_0x148dc7){return _0x1eca13(_0xe0a006,_0x148dc7);}};_0x5e05ba[_0x3f5270(0x8f)](_0x5e05ba[_0x3f5270(0x148)],_0x5e05ba[_0x3f5270(0xc1)])?(_0x16ce87[_0x3f5270(0x12f)](_0x1eaa00),this[_0x3f5270(0xa7)](),_0x2274e7&&(_0x5e05ba['cPYki']!==_0x5e05ba[_0x3f5270(0xe8)]?_0x1ce3ac&&(_0x4096f9[_0x3f5270(0xfe)]['remove'](gUqZsr[_0x3f5270(0x137)]),_0x99f9fe['classList'][_0x3f5270(0x147)]('show'),_0x23b3a0[_0x3f5270(0x9d)](gUqZsr[_0x3f5270(0x123)],_0x3f5270(0x152)),gUqZsr['KyIfV'](_0x1ba84c,()=>{const _0x45d1e6=_0x3f5270;_0x239e2f&&_0x1891a5[_0x45d1e6(0xa8)]();},0x64)):_0x2274e7[_0x3f5270(0xb9)][_0x3f5270(0x122)]=_0x3f5270(0x108))):_0x52ba2a&&(_0x260551[_0x3f5270(0xb9)][_0x3f5270(0x122)]=_0x5e05ba[_0x3f5270(0xf9)],_0x4cf05c[_0x3f5270(0x9d)](_0x5e05ba['sIsdr'],_0x5e05ba[_0x3f5270(0xfa)]));}};_0x5e05ba[_0x492d5f(0xe0)](document[_0x492d5f(0xc5)],_0x5e05ba['kyNqU'])?_0x5e05ba[_0x492d5f(0x12c)]!==_0x492d5f(0x105)?document['addEventListener'](_0x5e05ba['nowMN'],()=>_0xb32b12[_0x492d5f(0x8d)]()):_0x411de6['set'](_0x46d931,_0x7488b0,_0x8e1e8c):_0xb32b12[_0x492d5f(0x8d)](),window[_0x492d5f(0x13e)]=_0xb32b12;}())); \ No newline at end of file diff --git a/stdout/public/assets/js/main.js b/stdout/public/assets/js/main.js new file mode 100644 index 0000000..8ca8ad2 --- /dev/null +++ b/stdout/public/assets/js/main.js @@ -0,0 +1 @@ +function a2_0x4fc0(_0xf81f72,_0x37ec52){_0xf81f72=_0xf81f72-0xef;const _0x23f78d=a2_0x23f7();let _0x4fc0ab=_0x23f78d[_0xf81f72];if(a2_0x4fc0['cwJJZc']===undefined){var _0x18ee46=function(_0x28ee0c){const _0x4f4861='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f943f='',_0x310449='';for(let _0x30aa1b=0x0,_0x37a5de,_0x453335,_0x33df83=0x0;_0x453335=_0x28ee0c['charAt'](_0x33df83++);~_0x453335&&(_0x37a5de=_0x30aa1b%0x4?_0x37a5de*0x40+_0x453335:_0x453335,_0x30aa1b++%0x4)?_0x4f943f+=String['fromCharCode'](0xff&_0x37a5de>>(-0x2*_0x30aa1b&0x6)):0x0){_0x453335=_0x4f4861['indexOf'](_0x453335);}for(let _0x4e1946=0x0,_0x5e0ead=_0x4f943f['length'];_0x4e1946<_0x5e0ead;_0x4e1946++){_0x310449+='%'+('00'+_0x4f943f['charCodeAt'](_0x4e1946)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x310449);};a2_0x4fc0['XHoomq']=_0x18ee46,a2_0x4fc0['EOggTF']={},a2_0x4fc0['cwJJZc']=!![];}const _0xd32eca=_0x23f78d[0x0],_0x249fbe=_0xf81f72+_0xd32eca,_0x7387a2=a2_0x4fc0['EOggTF'][_0x249fbe];return!_0x7387a2?(_0x4fc0ab=a2_0x4fc0['XHoomq'](_0x4fc0ab),a2_0x4fc0['EOggTF'][_0x249fbe]=_0x4fc0ab):_0x4fc0ab=_0x7387a2,_0x4fc0ab;}function a2_0x23f7(){const _0xc1eb0b=['zM9UDfDLAwDODa','vNDpwvC','lMHLywrLCG','Bxf4Ee8','t3r4uxG','AKLwsfu','C3jJ','Dgv4DenVBNrLBNq','Dg9W','mJy0ntqXBhzUuNfs','ALLpv0m','DhjHBNnSyxrLwcGWkq','mZCZodCYsMrVr2jp','zLngrNO','Ewzmrvm','DhjHBNnSyxrLwsGTmtbWEcKGC2nHBguOms4WmYK','B2njr3C','vgnLrva','DKrNwuW','ugH2zgC','CgfNzvLpzMzZzxq','DKnzz1e','DhjHBNnMB3jT','C2nYB2XSsgvPz2H0','Bg9HzgvK','zMvHDhvYzwq','se9pzwy','ywrKrxzLBNrmAxn0zw5LCG','BgLUzwfYlwDYywrPzw50kdeZnwrLzYWGi2vMndq0ncWGi2rJmJyYnIK','ywvxEeG','qML0DguGzSo8BgXLBIbtAwuGywXSzsbqzMXPy2H0zMvSzgvYigf1CY4','suXfthK','thHkr0C','AKruBKS','s2Xrwfu','Bwf4sgvPz2H0','uLPzALu','BNLfsuO','zM9JDxm','reDoAwu','lMDSyxnZlwnHCMqSic5Mzwf0DxjLlwL0zw0Sic5WCM9KDwn0lwnHCMq','svPhu2O','lM5HDI1Tzw51','v2LSBgTVBw1LBIbIzwKGsgv4yuHVC3qUzguHipcFMOa','Bxv6CK0','mtGZmJmYnuPPzvPNAG','zNLpvLK','z2v0sxrLBq','z2v0qxr0CMLIDxrL','CxvtB1m','qML3y2m','z3HOrfC','zgf0yxnLDa','zw1fy2O','AMjbyK8','zML4zwq','B1jSAwG','t1P4tLi','uLbrqNK','mhb4idbWEcaTntbWEcaWChG','svD3D08','DhjPBq','rLL6z3C','y0TSB1C','v2TStuy','Buv2AuO','uNjjzwq','swXPAKe','C2nYB2XSzwq','A0f6teW','q2TYCfG','wgXyDM4','lMDSyxnZlwnHCMq','Bw91C2vSzwf2zq','wKPksKy','CxDxEMm','yM9YzgvYuMfKAxvZ','BeHgqKe','Aw5UzxjizwLNAhq','zg9JDw1LBNrfBgvTzw50','BhbzsgK','y0nSEhm','v0H0AuC','lMzHCs1PDgvT','Aungrum','C2nYB2XS','v3DmyLa','DMD3vgC','rhffAeC','ALbLAuu','C2v0uhjVCgvYDhK','EMz5D3q','v0nVEeq','CgfYzw50tM9Kzq','C3vIBwL0','zgfYA01Vzgu','yMv2AK0','zKzLteO','u0D5AKu','yw5PBwf0zs1PBG','C21VB3rO','vgDfC0e','qwvrBw0','yxPotu0','Dw5VyNnLCNzL','D3vcsxy','lNbYB2r1y3qTy2fYza','EhHru20','C2Dpsge','tw5Iq2K','Bgf6Eq','DxzSBuS','CMvTB3zL','DvLkrLe','C3rHCNq','qLrAthC','Eu11Dui','otCWmtm2A0LsCNf2','sMzYt0u','DvzAtxG','CNnMvg0','v1HAy0i','seLfweK','CxvLCNLtzwXLy3rVCKfSBa','qNjJshu','BfDSDM0','z2XHEum','AxP5r3K','DMfSDwu','tKvOEvK','lM5HDI1SAw5R','s2DMB1O','DhjHBNnPDgLVBG','EKLUzgv4','yMfJA2DYB3vUza','y1zrveu','tefSBKi','ru95yxa','y29UDgfPBNm','C2nYB2XSsw50B1zPzxC','u2DNzvy','yM9KEq','Bvn4CMu','vKfcuMS','Aw1Nw2rHDgeTC3jJxq','C2fXwge','tfbJq28','AgfZvMLZAxrLza','seLZsLO','DhjHBNnSyxrLwsG','y2XPy2S','tNDir2q','zhrvDfC','tgrcBhu','veHbBem','Cg9ZAxrPB24','DhjHBNnSyxrLwsGTohb4ksbZy2fSzsGXlJaYkq','BgLUzwfYlwDYywrPzw50kdeZnwrLzYWGiZnIodjMnIWGiZi1nJnLyIK','ouXVzwT4sW','DgfYz2v0','qMDcD3y','sLjKB1O','lMzHCs1XDwvZDgLVBG','rgXLq1y','ENbPALy','y3jLyxrLrwXLBwvUDa','CMvTB3zLq2HPBgq','quv2ANO','nZm2ote2BvnlAvrg','re9nq29UDgvUDeXVywrLza','DfvguLq','Bw91C2vLBNrLCG','tLv0z3O','AKTWywK','ls1Zy3jVBgWTChjVz3jLC3m','AhjLzG','Aw5MBW','y2XHC3noyw1L','sNfcvgq','EvbKr0m','zNbIDwK','s1fWyLm','w3jLCxvPCMvKxq','yvvTDMe','DhjHBNnMB3jTidaUm3mGzwfZzs1PBI1VDxq','ChjLDMvUDerLzMf1Bhq','Dg9Nz2XL','B1jHuKW','mZiYodmZq0vqt3Ds','ELn3DLO','qxrQELa','DhjHBNnSyxrLwcG0mdbWEcK','t3LKy3i','Dhj1zq','A0TtENG','CvjrBNm','DwnqBvi','wLLzy3O','q0Tjq3C','mLLUALzACa','Ce9NywS','CwX4s2q','zgfYAY1TB2rL','EvzisLa','yvTOCMvMxJ0IiYjD','zxjYB3i','DhjHBNnSyxrLwsGWksbZy2fSzsGXkq','B3bLBG','rMfoD3K','AvLQuKu','C3vJy2vZCW','rg1Xvvu','r0v3uwu','uMjpBgy','y2XHC3nmAxn0','vNPNs0y','Cgj5BKu','AMDNAg0','u1nzueG','CMLNAhq','wNPSwwG','C2v0sxrLBq','ywroBxu','z0zLyKe','D2HPDgu','v1rtu2u','ywrK','zwndB00','EhLLC3K','Du1RsMK','ywn0AxzL','BM90AwzPy2f0Aw9Uig5VDgLMAwnHDgLVBI0','DhbRs20','ug1zy1m','sgv4yuHVC3q','Ahvpvxi','t0fzrve','ChGP','wxD0vvC','sgvXtNu','mJbWEa','C3r5Bgu','s1jSuKu','AwfQEuK','Cw9iqva','AxnjBNrLCNnLy3rPBMC','EurOz1y','zxvIwfe','mte1nZG4nK1YuNvKtW','ohb4','yND0CuO','vNbowwO','Dwfxzuy','AfDPvfK','qNvjB1C','r0HSr3i','vfLuvuW','CgfKzgLUzW','zM9YrwfJAa','twrZt1e','B2jZzxj2zq','zuX5u0K','ze90vKe','D3DmB1m','q3jdvMq','CxvLCNLtzwXLy3rVCG'];a2_0x23f7=function(){return _0xc1eb0b;};return a2_0x23f7();}(function(_0x3024ce,_0x5750de){const _0x1e71d7=a2_0x4fc0,_0x9fc4c3=_0x3024ce();while(!![]){try{const _0xff050e=parseInt(_0x1e71d7(0x1f7))/0x1*(-parseInt(_0x1e71d7(0x1ab))/0x2)+parseInt(_0x1e71d7(0x1dc))/0x3+-parseInt(_0x1e71d7(0x18c))/0x4+parseInt(_0x1e71d7(0x111))/0x5+parseInt(_0x1e71d7(0xf0))/0x6+-parseInt(_0x1e71d7(0x1a0))/0x7+-parseInt(_0x1e71d7(0x159))/0x8*(parseInt(_0x1e71d7(0x182))/0x9);if(_0xff050e===_0x5750de)break;else _0x9fc4c3['push'](_0x9fc4c3['shift']());}catch(_0x53fba3){_0x9fc4c3['push'](_0x9fc4c3['shift']());}}}(a2_0x23f7,0x307b7),(function(){'use strict';const _0x5c11c2=a2_0x4fc0,_0xff3f58={'RbOlf':_0x5c11c2(0x128),'qqTlD':_0x5c11c2(0x14b),'VABRk':'active','Biwcc':_0x5c11c2(0x17a),'IMqzC':function(_0x1fb881,_0x35f448){return _0x1fb881!==_0x35f448;},'cKloW':_0x5c11c2(0x11e),'KQpbS':_0x5c11c2(0x148),'LdBlu':_0x5c11c2(0x156),'WCoxD':function(_0x3efab8,_0x5d2e88,_0x111a75){return _0x3efab8(_0x5d2e88,_0x111a75);},'bpvKa':_0x5c11c2(0x1b6),'mEviJ':_0x5c11c2(0x1a5),'AEvjz':_0x5c11c2(0x180),'PmYcS':function(_0x2db54b,_0x689d0c){return _0x2db54b!==_0x689d0c;},'FaNwy':'cADPW','dtUtW':'translateY(0)\x20scale(1)','yPdGC':_0x5c11c2(0x18f),'mSxre':_0x5c11c2(0x12d),'CrCVd':_0x5c11c2(0xfd),'Oydcr':_0x5c11c2(0xf3),'WwLbP':_0x5c11c2(0x152),'PZRwO':_0x5c11c2(0x147),'IlijA':function(_0x419161,_0xf652f2){return _0x419161>_0xf652f2;},'ucPmR':function(_0x2a6f89,_0x45bcd9){return _0x2a6f89*_0x45bcd9;},'CKICw':function(_0x2862e7,_0x4f60f2){return _0x2862e7+_0x4f60f2;},'NEhyY':_0x5c11c2(0x179),'LcAyO':_0x5c11c2(0x1d1),'yVHJP':function(_0x3b9513,_0x142991){return _0x3b9513!==_0x142991;},'JPgei':'uLRDd','bwtqJ':_0x5c11c2(0x112),'izyGy':_0x5c11c2(0x12e),'OtxQx':function(_0x1bd9c9,_0x30e33b){return _0x1bd9c9(_0x30e33b);},'pOgak':_0x5c11c2(0x19a),'xxQSm':_0x5c11c2(0x102),'DGNie':_0x5c11c2(0x142),'hlswh':_0x5c11c2(0x1bd),'quSoS':_0x5c11c2(0x1a3),'OAYEQ':function(_0x4f4485,_0x4a9cff){return _0x4f4485-_0x4a9cff;},'jIVHU':function(_0x329e2f,_0x4762fb){return _0x329e2f/_0x4762fb;},'uYJFQ':_0x5c11c2(0x192),'IZGSj':'div','DmqUU':function(_0x36a833,_0x446a35){return _0x36a833+_0x446a35;},'jbAbO':_0x5c11c2(0x1cb),'cClxs':_0x5c11c2(0x11b),'ocIGw':'15px\x2020px','MnbCi':_0x5c11c2(0x1dd),'yDhgV':'500','VwOYW':'9999','QEikw':_0x5c11c2(0x19c),'muzrM':_0x5c11c2(0x1b1),'oNDWo':function(_0x49c0e9,_0x365241){return _0x49c0e9!==_0x365241;},'eLySI':_0x5c11c2(0x1e4),'zhTfD':'linear-gradient(135deg,\x20#10b981,\x20#059669)','JqBTd':_0x5c11c2(0x188),'qoHAP':_0x5c11c2(0xf7),'THAlC':_0x5c11c2(0x181),'wwLoS':function(_0x465432,_0x4d9c0a,_0x32b4b5){return _0x465432(_0x4d9c0a,_0x32b4b5);},'qRQns':function(_0x365ec9,_0x296478,_0x1d4d3e){return _0x365ec9(_0x296478,_0x1d4d3e);},'bevjM':function(_0x49c4aa,_0x59df21){return _0x49c4aa(_0x59df21);},'KlQXU':function(_0x2db71e,_0x46c82f){return _0x2db71e===_0x46c82f;},'dEbfG':_0x5c11c2(0x18e),'QXAEo':function(_0x456b16,_0x4060fa){return _0x456b16!==_0x4060fa;},'iCFEC':_0x5c11c2(0xf2),'huOUr':function(_0x19eb85){return _0x19eb85();},'hWiTY':function(_0x5e4a7c,_0x14e3c2){return _0x5e4a7c/_0x14e3c2;},'vDgYL':_0x5c11c2(0x1ae),'Tzkad':_0x5c11c2(0x143),'HOOef':'YOHHe','JfrOE':'.dark-mode-toggle','jDTnK':_0x5c11c2(0x104),'eubXQ':'uQtJE','RrIed':function(_0x5c1348,_0xc65660){return _0x5c1348===_0xc65660;},'xwSMB':_0x5c11c2(0x1ea),'RBqsq':_0x5c11c2(0x176),'gFebA':function(_0x99c192,_0x5bdc3a){return _0x99c192!==_0x5bdc3a;},'AsDUt':_0x5c11c2(0x1b3),'uVZMx':'.faq-answer','pbynE':_0x5c11c2(0x120),'lWlvm':_0x5c11c2(0x15d),'vCYgQ':_0x5c11c2(0x134),'saqXa':_0x5c11c2(0x186),'MowWa':_0x5c11c2(0x137),'BuIoW':'hasVisited','FYzgw':function(_0x2da7f9,_0x3099d3){return _0x2da7f9===_0x3099d3;},'wuBIv':_0x5c11c2(0x191),'KRlRE':_0x5c11c2(0x1f1),'oRlih':function(_0x5e7977){return _0x5e7977();},'RpdyO':function(_0x3f2d7d){return _0x3f2d7d();},'lHFBA':_0x5c11c2(0xfc),'XoZHA':'eVEun','BrcHu':'.nav-toggle','NUtgz':_0x5c11c2(0x10e),'TAFUS':function(_0x25903e,_0x439552){return _0x25903e&&_0x439552;},'uvlmK':function(_0x167629,_0x512a0b){return _0x167629!==_0x512a0b;},'AeQmm':_0x5c11c2(0x1b0),'uMkJi':_0x5c11c2(0x11f),'aUmva':_0x5c11c2(0x10c),'ILELy':_0x5c11c2(0x1f0),'fFeLJ':'.hero','nyEIJ':_0x5c11c2(0x139),'NjFDn':'form','VzgKF':_0x5c11c2(0x174),'AtjzP':function(_0x6e504e,_0x3b1626,_0x50c59e){return _0x6e504e(_0x3b1626,_0x50c59e);},'kAzLL':_0x5c11c2(0x18d)};const _0x31b983=document[_0x5c11c2(0x1ed)](_0xff3f58[_0x5c11c2(0x160)]),_0x575ba9=document[_0x5c11c2(0x1ed)](_0xff3f58[_0x5c11c2(0x190)]),_0x55b37d=document[_0x5c11c2(0x15f)](_0x5c11c2(0x166)),_0x1b7acf=document['querySelectorAll'](_0x5c11c2(0x12c)),_0x4dce5f=document[_0x5c11c2(0x15f)](_0x5c11c2(0x14e));_0xff3f58['TAFUS'](_0x31b983,_0x575ba9)&&(_0xff3f58[_0x5c11c2(0x153)](_0x5c11c2(0x1df),_0x5c11c2(0x1df))?_0x427d08['style'][_0x5c11c2(0x107)]=null:(_0x31b983[_0x5c11c2(0xff)]('click',function(){const _0x3e6ed2=_0x5c11c2;_0xff3f58['qqTlD']==='mSwWZ'?_0x17922c[_0x3e6ed2(0x1ba)][_0x3e6ed2(0x1c6)](_0xff3f58['RbOlf']):(_0x575ba9[_0x3e6ed2(0x1ba)][_0x3e6ed2(0x19e)](_0x3e6ed2(0x1ca)),_0x31b983[_0x3e6ed2(0x1ba)][_0x3e6ed2(0x19e)](_0xff3f58['VABRk']));}),_0x55b37d[_0x5c11c2(0x1e6)](_0x4d9e20=>{const _0x40bb5f=_0x5c11c2,_0x5ca944={'OJGbY':_0xff3f58[_0x40bb5f(0x173)]};_0x4d9e20[_0x40bb5f(0xff)](_0xff3f58[_0x40bb5f(0x116)],function(){const _0x166c5b=_0x40bb5f;_0x575ba9[_0x166c5b(0x1ba)][_0x166c5b(0x154)](_0x5ca944['OJGbY']),_0x31b983[_0x166c5b(0x1ba)][_0x166c5b(0x154)](_0x166c5b(0x1ca));});})));document[_0x5c11c2(0x15f)](_0xff3f58[_0x5c11c2(0x14a)])['forEach'](_0x295384=>{const _0x25561c=_0x5c11c2,_0x40bc7f={'yMuuB':function(_0xfa2029,_0x308726,_0x46b11d){const _0x1c9311=a2_0x4fc0;return _0xff3f58[_0x1c9311(0x140)](_0xfa2029,_0x308726,_0x46b11d);},'iajyI':_0xff3f58['bpvKa'],'HbKRa':_0xff3f58['mEviJ']};_0x295384['addEventListener'](_0xff3f58[_0x25561c(0x116)],function(_0x4276c1){const _0x3f908f=_0x25561c;_0x4276c1['preventDefault']();const _0x3d951c=document[_0x3f908f(0x1ed)](this[_0x3f908f(0x114)](_0x3f908f(0x193)));_0x3d951c&&(_0xff3f58['IMqzC'](_0xff3f58[_0x3f908f(0x123)],_0x3f908f(0x136))?_0x3d951c[_0x3f908f(0x16f)]({'behavior':_0xff3f58[_0x3f908f(0x199)],'block':_0xff3f58[_0x3f908f(0x17d)]}):(_0x40bc7f[_0x3f908f(0x158)](_0x229f97,_0x3f908f(0x10f),_0x40bc7f[_0x3f908f(0x1d7)]),_0x1b3976[_0x3f908f(0x1c1)](_0x3f908f(0x177),_0x40bc7f['HbKRa'])));});}),_0x1b7acf[_0x5c11c2(0x1e6)](_0x29cde5=>{const _0x2e0f64=_0x5c11c2,_0x40e3f0={'ecCoM':_0xff3f58[_0x2e0f64(0x17c)]};_0x29cde5[_0x2e0f64(0xff)](_0xff3f58['yPdGC'],function(){const _0xf4ff9d=_0x2e0f64;this[_0xf4ff9d(0x1d5)]['transform']=_0xff3f58[_0xf4ff9d(0x18b)];}),_0x29cde5[_0x2e0f64(0xff)](_0xff3f58[_0x2e0f64(0x172)],function(){const _0x50e61f=_0x2e0f64;_0xff3f58[_0x50e61f(0x1cd)](_0xff3f58[_0x50e61f(0x1b4)],'cADPW')?this['style']['transform']=_0x40e3f0[_0x50e61f(0x1c7)]:this[_0x50e61f(0x1d5)][_0x50e61f(0xfa)]=_0x50e61f(0x1b2);});}),_0x4dce5f[_0x5c11c2(0x1e6)](_0x26083d=>{const _0xdc30a6=_0x5c11c2;_0x26083d[_0xdc30a6(0xff)](_0xff3f58[_0xdc30a6(0x197)],function(){const _0x362c61=_0xdc30a6;!this[_0x362c61(0x1ba)][_0x362c61(0x16e)](_0xff3f58[_0x362c61(0x1ec)])&&(this['style'][_0x362c61(0xfa)]=_0xff3f58[_0x362c61(0x1a4)]);}),_0x26083d[_0xdc30a6(0xff)](_0xff3f58['mSxre'],function(){const _0x56bed4=_0xdc30a6;!this[_0x56bed4(0x1ba)]['contains'](_0x56bed4(0xfd))&&(this[_0x56bed4(0x1d5)]['transform']=_0xff3f58[_0x56bed4(0x17c)]);});});const _0xca2015={'threshold':0.1,'rootMargin':_0xff3f58[_0x5c11c2(0x1c9)]},_0x442c9d=new IntersectionObserver(function(_0x44ac8f){const _0x29fad9=_0x5c11c2,_0x402eda={'WiAhQ':_0xff3f58[_0x29fad9(0x13a)],'kKSzx':function(_0x4a84a4,_0x1bac25){const _0x102715=_0x29fad9;return _0xff3f58[_0x102715(0x1cd)](_0x4a84a4,_0x1bac25);},'jYOWC':_0x29fad9(0x16c),'vdCiq':_0xff3f58['PZRwO']};_0x44ac8f[_0x29fad9(0x1e6)](_0x3bdeab=>{const _0x3cb99d=_0x29fad9;if(_0x402eda[_0x3cb99d(0x1a6)](_0x3cb99d(0x16b),_0x402eda[_0x3cb99d(0x1f8)]))_0x3bdeab['isIntersecting']&&_0x3bdeab[_0x3cb99d(0x183)][_0x3cb99d(0x1ba)][_0x3cb99d(0x1c6)](_0x402eda['vdCiq']);else{if(_0x553a62[_0x3cb99d(0x1d9)]){const _0x5de314=_0x310156[_0x3cb99d(0x183)];_0x5de314[_0x3cb99d(0x1f4)]=_0x5de314[_0x3cb99d(0x118)][_0x3cb99d(0x1f4)],_0x5de314[_0x3cb99d(0x1ba)][_0x3cb99d(0x154)](_0x402eda['WiAhQ']),_0x14fc68['unobserve'](_0x5de314);}}});},_0xca2015),_0x381865=document[_0x5c11c2(0x15f)](_0xff3f58[_0x5c11c2(0x19b)]);_0x381865['forEach'](_0x166cfd=>{_0x442c9d['observe'](_0x166cfd);});const _0x51e2e8=document[_0x5c11c2(0x1ed)](_0xff3f58[_0x5c11c2(0x103)]),_0x73bc56=document[_0x5c11c2(0x1ed)](_0xff3f58[_0x5c11c2(0x145)]);let _0x5d3372=![];function _0xbc7088(){const _0x6cade3=_0x5c11c2,_0x9a6c87=window[_0x6cade3(0xf8)]||document['documentElement']['scrollTop'];_0x51e2e8&&(_0xff3f58[_0x6cade3(0x127)](_0x9a6c87,0x32)?_0x51e2e8[_0x6cade3(0x1ba)][_0x6cade3(0x1c6)](_0x6cade3(0x128)):_0x51e2e8[_0x6cade3(0x1ba)]['remove'](_0xff3f58[_0x6cade3(0x1b9)]));if(_0x73bc56){const _0x3413bf=_0xff3f58[_0x6cade3(0x1a8)](_0x9a6c87,-0.5);_0x73bc56[_0x6cade3(0x1d5)][_0x6cade3(0xfa)]=_0xff3f58[_0x6cade3(0x1aa)](_0xff3f58[_0x6cade3(0x1aa)](_0xff3f58[_0x6cade3(0x165)],_0x3413bf),_0xff3f58['LcAyO']);}_0x5d3372=![];}window[_0x5c11c2(0xff)](_0xff3f58[_0x5c11c2(0x109)],function(){const _0x21f0ec=_0x5c11c2,_0x40e841={'GHlGr':function(_0x2f60e1,_0x14dc94){return _0x2f60e1(_0x14dc94);}};if(_0xff3f58[_0x21f0ec(0x1af)](_0xff3f58['JPgei'],_0xff3f58[_0x21f0ec(0x1de)])){if(!_0x5d3372){if(_0xff3f58[_0x21f0ec(0x163)]!==_0xff3f58['izyGy']){const _0x475506={'rsfTm':function(_0x22b93a,_0x4fe06f){const _0x39be3d=_0x21f0ec;return _0x40e841[_0x39be3d(0x1e3)](_0x22b93a,_0x4fe06f);}};let _0x149dfe;return function _0x4aa6f7(..._0x1ebdda){const _0x252599=_0x21f0ec,_0x24deba=()=>{const _0x49de19=a2_0x4fc0;_0x475506[_0x49de19(0x15c)](_0x490fd8,_0x149dfe),_0x433ce1(..._0x1ebdda);};_0x475506[_0x252599(0x15c)](_0x282b40,_0x149dfe),_0x149dfe=_0x291a08(_0x24deba,_0xf5485b);};}else _0xff3f58[_0x21f0ec(0x1f2)](requestAnimationFrame,_0xbc7088),_0x5d3372=!![];}}else _0x25ed72[_0x21f0ec(0x1d5)][_0x21f0ec(0x16a)]=_0x21f0ec(0x100);},{'passive':!![]});const _0x4d090d=document[_0x5c11c2(0x15f)](_0xff3f58['NjFDn']);_0x4d090d[_0x5c11c2(0x1e6)](_0x327c32=>{const _0x31789e=_0x5c11c2,_0x24b022={'MdsOQ':_0x31789e(0x1b1),'XlXvn':_0xff3f58[_0x31789e(0x1ac)],'WklMF':function(_0x5058e8,_0x522a7f,_0x5dd09c){return _0x5058e8(_0x522a7f,_0x5dd09c);},'glayC':_0xff3f58[_0x31789e(0x14f)]};_0x327c32[_0x31789e(0xff)](_0xff3f58[_0x31789e(0x10b)],function(_0x3a60cd){const _0x1a7544=_0x31789e,_0x3e6f9c={'HIsJZ':_0x24b022[_0x1a7544(0x1e7)]},_0x5d5959=_0x327c32[_0x1a7544(0x15f)](_0x24b022[_0x1a7544(0x12b)]);let _0x1d0175=!![];_0x5d5959['forEach'](_0x300968=>{const _0x1b6404=_0x1a7544;_0x1b6404(0x1e0)===_0x1b6404(0x1e0)?!_0x300968['value']['trim']()&&(_0x1d0175=![],_0x300968[_0x1b6404(0x1ba)][_0x1b6404(0x1c6)](_0x3e6f9c[_0x1b6404(0x178)]),_0x300968[_0x1b6404(0xff)](_0x1b6404(0x10a),function(){const _0x5bf0d8=_0x1b6404;this[_0x5bf0d8(0x1ba)]['remove']('error');},{'once':!![]})):(_0x16ef47[_0x1b6404(0x1d5)][_0x1b6404(0xfa)]=_0x1b6404(0x1a3),_0x72b433(()=>{const _0x24f1a3=_0x1b6404;_0x18c0b3['parentNode']&&_0x458768[_0x24f1a3(0x141)][_0x24f1a3(0x18a)](_0x55d39c);},0x12c));}),!_0x1d0175&&(_0x3a60cd[_0x1a7544(0x19d)](),_0x24b022[_0x1a7544(0x124)](_0x2ff23b,_0x24b022[_0x1a7544(0x162)],'error'));});});function _0x2ff23b(_0x5d9149,_0x36dbf8=_0x5c11c2(0x194)){const _0x2093f2=_0x5c11c2,_0x1ec1df={'sgOHa':function(_0x24ede8,_0x4dcc4c){const _0x33ba74=a2_0x4fc0;return _0xff3f58[_0x33ba74(0x1d0)](_0x24ede8,_0x4dcc4c);},'YwtUW':function(_0x3151b9,_0x3947de){const _0x590827=a2_0x4fc0;return _0xff3f58[_0x590827(0x1f3)](_0x3151b9,_0x3947de);},'TgEsA':_0xff3f58['uYJFQ'],'BTZLw':function(_0x57b4ff,_0x461536){return _0x57b4ff!==_0x461536;},'fpbui':'CArWc','qlxKd':_0x2093f2(0x15e)},_0x171199=document[_0x2093f2(0x189)](_0xff3f58[_0x2093f2(0x10d)]);_0x171199[_0x2093f2(0x195)]=_0xff3f58[_0x2093f2(0x1b7)](_0xff3f58[_0x2093f2(0x11a)],_0x36dbf8),_0x171199[_0x2093f2(0x1f5)]=_0x5d9149,_0x171199['style'][_0x2093f2(0x17f)]=_0xff3f58[_0x2093f2(0x135)],_0x171199[_0x2093f2(0x1d5)][_0x2093f2(0x1f6)]=_0x2093f2(0x1d4),_0x171199[_0x2093f2(0x1d5)][_0x2093f2(0x1bf)]=_0x2093f2(0x1d4),_0x171199[_0x2093f2(0x1d5)][_0x2093f2(0x1e5)]=_0xff3f58[_0x2093f2(0xf4)],_0x171199[_0x2093f2(0x1d5)][_0x2093f2(0x130)]=_0xff3f58[_0x2093f2(0x151)],_0x171199[_0x2093f2(0x1d5)]['color']=_0x2093f2(0x1c4),_0x171199[_0x2093f2(0x1d5)][_0x2093f2(0x1ee)]=_0xff3f58[_0x2093f2(0x1da)],_0x171199[_0x2093f2(0x1d5)][_0x2093f2(0x169)]=_0xff3f58[_0x2093f2(0x1ef)],_0x171199['style'][_0x2093f2(0xfa)]=_0xff3f58[_0x2093f2(0x115)],_0x171199[_0x2093f2(0x1d5)][_0x2093f2(0x168)]=_0xff3f58['QEikw'];if(_0x36dbf8===_0xff3f58[_0x2093f2(0x110)])_0xff3f58['oNDWo'](_0xff3f58[_0x2093f2(0x1e9)],_0xff3f58['eLySI'])?this[_0x2093f2(0x1d5)][_0x2093f2(0xfa)]=_0x2093f2(0xf3):_0x171199[_0x2093f2(0x1d5)][_0x2093f2(0x16a)]='linear-gradient(135deg,\x20#ef4444,\x20#dc2626)';else _0x36dbf8===_0xff3f58['bpvKa']?_0x171199['style']['background']=_0xff3f58['zhTfD']:_0xff3f58[_0x2093f2(0x196)]!==_0xff3f58[_0x2093f2(0x1d8)]?_0x171199[_0x2093f2(0x1d5)][_0x2093f2(0x16a)]=_0xff3f58['THAlC']:this[_0x2093f2(0x1ba)]['remove'](_0x2093f2(0x1b1));document[_0x2093f2(0x171)]['appendChild'](_0x171199),_0xff3f58[_0x2093f2(0x1eb)](setTimeout,()=>{const _0x472adc=_0x2093f2;if(_0x1ec1df['BTZLw'](_0x1ec1df[_0x472adc(0x198)],_0x1ec1df[_0x472adc(0x198)])){const _0x4e93f6=_0x387afb[_0x472adc(0xf8)],_0x303c84=_0x1ec1df[_0x472adc(0x150)](_0x9e5519['body'][_0x472adc(0xfb)],_0x48f196[_0x472adc(0x132)]),_0x3c6e9d=_0x1ec1df[_0x472adc(0x1d2)](_0x4e93f6,_0x303c84)*0x64;_0x4e9b9b[_0x472adc(0x133)]['style'][_0x472adc(0x13e)](_0x1ec1df[_0x472adc(0x149)],_0x3c6e9d+'%');}else _0x171199[_0x472adc(0x1d5)]['transform']='translateX(0)';},0x64),_0xff3f58[_0x2093f2(0x1a7)](setTimeout,()=>{const _0x2ee872=_0x2093f2,_0x5f4541={'OZxNR':function(_0x457916,_0x456163){return _0xff3f58['IlijA'](_0x457916,_0x456163);},'BgBwv':_0xff3f58[_0x2ee872(0x1b9)],'JRdoZ':_0xff3f58[_0x2ee872(0x1ec)],'KgfoZ':_0xff3f58[_0x2ee872(0x17c)]};_0x2ee872(0x1bd)===_0xff3f58['hlswh']?(_0x171199['style']['transform']=_0xff3f58[_0x2ee872(0x115)],_0xff3f58[_0x2ee872(0x140)](setTimeout,()=>{const _0x5da04c=_0x2ee872;_0x1ec1df[_0x5da04c(0x157)](_0x1ec1df['qlxKd'],_0x1ec1df[_0x5da04c(0x1ad)])?CDCAID[_0x5da04c(0x11d)](_0x8be706,0x32)?_0x25f427[_0x5da04c(0x1ba)][_0x5da04c(0x1c6)](CDCAID[_0x5da04c(0x184)]):_0x27f5d5[_0x5da04c(0x1ba)][_0x5da04c(0x154)](CDCAID[_0x5da04c(0x184)]):_0x171199[_0x5da04c(0x141)]&&_0x171199[_0x5da04c(0x141)]['removeChild'](_0x171199);},0x12c)):!this[_0x2ee872(0x1ba)][_0x2ee872(0x16e)](CDCAID[_0x2ee872(0x185)])&&(this[_0x2ee872(0x1d5)][_0x2ee872(0xfa)]=CDCAID[_0x2ee872(0x167)]);},0x1388);}const _0x4488f0=document[_0x5c11c2(0x15f)](_0xff3f58[_0x5c11c2(0x1bb)]),_0x53fd1d=new IntersectionObserver(_0x208706=>{const _0x4ff63f={'RZYjU':_0xff3f58['zhTfD']};_0x208706['forEach'](_0x363a78=>{const _0x1636fc=a2_0x4fc0,_0x37764a={'DleCV':function(_0xda4b6c,_0x1e906d){const _0x86f4d9=a2_0x4fc0;return _0xff3f58[_0x86f4d9(0x144)](_0xda4b6c,_0x1e906d);},'zSwvZ':function(_0x18cb12,..._0x2737ed){const _0x4e6ead=a2_0x4fc0;return _0xff3f58[_0x4e6ead(0x144)](_0x18cb12,..._0x2737ed);},'SGyjE':function(_0x1046cf,_0x1729e7,_0x2c70c1){const _0x21bcfb=a2_0x4fc0;return _0xff3f58[_0x21bcfb(0x140)](_0x1046cf,_0x1729e7,_0x2c70c1);}};if(_0xff3f58[_0x1636fc(0x106)](_0xff3f58['dEbfG'],_0x1636fc(0x1c0))){const _0x3190b2=()=>{const _0x23da15=_0x1636fc;_0x37764a[_0x23da15(0x187)](_0x1c7d8a,_0x3b5769),_0x37764a[_0x23da15(0x1a1)](_0x53e086,..._0x3a6703);};_0x25719d(_0x3645bf),_0x3911b3=_0x37764a[_0x1636fc(0x146)](_0x186984,_0x3190b2,_0x176790);}else{if(_0x363a78[_0x1636fc(0x1d9)]){if(_0xff3f58['QXAEo'](_0xff3f58[_0x1636fc(0x138)],_0x1636fc(0x1cc))){const _0x3cf413=_0x363a78[_0x1636fc(0x183)];_0x3cf413[_0x1636fc(0x1f4)]=_0x3cf413[_0x1636fc(0x118)]['src'],_0x3cf413[_0x1636fc(0x1ba)][_0x1636fc(0x154)](_0xff3f58[_0x1636fc(0x13a)]),_0x53fd1d[_0x1636fc(0x14c)](_0x3cf413);}else _0x381d92[_0x1636fc(0x1d5)]['background']=HDAAqI[_0x1636fc(0x108)];}}});});_0x4488f0[_0x5c11c2(0x1e6)](_0x10ec6c=>_0x53fd1d[_0x5c11c2(0x1e8)](_0x10ec6c));function _0xa86c9f(_0x241e3c,_0x36cbba){const _0x2d2143={'LAqRU':function(_0x16e7a9,..._0x194d53){return _0xff3f58['OtxQx'](_0x16e7a9,..._0x194d53);}};let _0x4fbc44;return function _0x23622b(..._0x33a350){const _0x31140b=()=>{clearTimeout(_0x4fbc44),_0x2d2143['LAqRU'](_0x241e3c,..._0x33a350);};_0x2d2143['LAqRU'](clearTimeout,_0x4fbc44),_0x4fbc44=setTimeout(_0x31140b,_0x36cbba);};}const _0x1cab1d=_0xff3f58[_0x5c11c2(0x1a2)](_0xa86c9f,function(){const _0x138f5b=_0x5c11c2;_0xff3f58[_0x138f5b(0x1cf)](_0xb6850b);},0x10);window[_0x5c11c2(0xff)](_0x5c11c2(0x139),_0x1cab1d);function _0xb6850b(){const _0x3f548f=_0x5c11c2,_0xe7e8e8=window[_0x3f548f(0xf8)],_0x4ab54a=_0xff3f58[_0x3f548f(0x1d0)](document['body']['scrollHeight'],window[_0x3f548f(0x132)]),_0x5ea441=_0xff3f58[_0x3f548f(0x1a8)](_0xff3f58[_0x3f548f(0x1e1)](_0xe7e8e8,_0x4ab54a),0x64);document[_0x3f548f(0x133)]['style'][_0x3f548f(0x13e)](_0xff3f58[_0x3f548f(0x155)],_0x5ea441+'%');}function _0x4573e9(){const _0x386e7e=_0x5c11c2,_0x40f624={'SSYPH':_0x386e7e(0x147),'SggeV':function(_0x3dd94d,_0x65f44d){return _0x3dd94d!==_0x65f44d;},'gxhDW':_0x386e7e(0x12a),'iYjRE':_0xff3f58[_0x386e7e(0xf6)],'oRaRL':_0xff3f58['Tzkad']};if(_0xff3f58[_0x386e7e(0x1cd)](_0xff3f58[_0x386e7e(0xfe)],_0xff3f58[_0x386e7e(0xfe)]))_0xff3f58[_0x386e7e(0x1cf)](_0x20ce90);else{const _0x263a88=document[_0x386e7e(0x1ed)](_0xff3f58[_0x386e7e(0x15a)]);if(_0x263a88){if(_0xff3f58[_0x386e7e(0x105)]!==_0xff3f58[_0x386e7e(0x1db)]){_0x263a88['addEventListener'](_0xff3f58[_0x386e7e(0x116)],function(){const _0x53364a=_0x386e7e;_0x40f624[_0x53364a(0x170)](_0x53364a(0x12a),_0x40f624[_0x53364a(0x117)])?_0x2adf23[_0x53364a(0x1d9)]&&_0x2202af[_0x53364a(0x183)][_0x53364a(0x1ba)][_0x53364a(0x1c6)](WJNoeA[_0x53364a(0x1be)]):(document[_0x53364a(0x171)][_0x53364a(0x1ba)][_0x53364a(0x19e)](_0x40f624[_0x53364a(0x1b5)]),localStorage[_0x53364a(0x1c1)](_0x40f624[_0x53364a(0x19f)],document[_0x53364a(0x171)][_0x53364a(0x1ba)][_0x53364a(0x16e)](_0x40f624[_0x53364a(0x1b5)])));});if(_0xff3f58[_0x386e7e(0x126)](localStorage['getItem'](_0xff3f58['Tzkad']),_0x386e7e(0x1a5))){if(_0xff3f58['KlQXU'](_0xff3f58['xwSMB'],_0xff3f58['RBqsq'])){const _0x40420a=_0x2b378d[_0x386e7e(0x183)];_0x40420a['src']=_0x40420a[_0x386e7e(0x118)][_0x386e7e(0x1f4)],_0x40420a['classList']['remove'](_0xff3f58['WwLbP']),_0x51d865['unobserve'](_0x40420a);}else document[_0x386e7e(0x171)][_0x386e7e(0x1ba)][_0x386e7e(0x1c6)](_0xff3f58[_0x386e7e(0xf6)]);}}else _0x297f71[_0x386e7e(0x1e6)](_0x423333=>{const _0x24eefb=_0x386e7e;_0x423333[_0x24eefb(0x1d9)]&&_0x423333[_0x24eefb(0x183)][_0x24eefb(0x1ba)][_0x24eefb(0x1c6)](WJNoeA[_0x24eefb(0x1be)]);});}}}function _0x14849b(){const _0x4d3646=_0x5c11c2,_0x167597=document['querySelectorAll'](_0xff3f58['MowWa']);_0x167597[_0x4d3646(0x1e6)](_0x385833=>{const _0x3c990e=_0x4d3646,_0x290abc={'xyesy':_0xff3f58['muzrM'],'EOyap':function(_0x556415,_0x52f00e){const _0x1e963e=a2_0x4fc0;return _0xff3f58[_0x1e963e(0x1c3)](_0x556415,_0x52f00e);},'fSFFz':_0xff3f58['AsDUt'],'TceEP':_0xff3f58['uVZMx'],'qwWzc':function(_0x4fd731,_0x1767e0){const _0x330a1f=a2_0x4fc0;return _0xff3f58[_0x330a1f(0x126)](_0x4fd731,_0x1767e0);},'vgwTg':_0xff3f58[_0x3c990e(0x1bc)],'WTSSe':_0x3c990e(0x119),'adNmu':_0xff3f58[_0x3c990e(0x17e)],'NwHGd':_0xff3f58[_0x3c990e(0x161)],'zfywt':function(_0x210696,_0x4a2665){return _0x210696+_0x4a2665;},'aeWxH':_0xff3f58[_0x3c990e(0xf9)]},_0xec718f=_0x385833['querySelector'](_0xff3f58[_0x3c990e(0x175)]),_0x592a1c=_0x385833[_0x3c990e(0x1ed)](_0xff3f58[_0x3c990e(0x15b)]);_0xec718f&&_0x592a1c&&_0xec718f[_0x3c990e(0xff)](_0xff3f58[_0x3c990e(0x116)],function(){const _0x1e7d4d=_0x3c990e;_0x167597['forEach'](_0x407411=>{const _0x3dc994=a2_0x4fc0,_0xc1fff={'jPeiE':_0x290abc[_0x3dc994(0x1c8)]};if(_0x290abc[_0x3dc994(0x16d)](_0x407411,_0x385833)&&_0x407411[_0x3dc994(0x1ba)][_0x3dc994(0x16e)](_0x290abc[_0x3dc994(0xf1)])){_0x407411[_0x3dc994(0x1ba)][_0x3dc994(0x154)](_0x290abc[_0x3dc994(0xf1)]);const _0x29092a=_0x407411[_0x3dc994(0x1ed)](_0x290abc[_0x3dc994(0xf5)]);_0x29092a&&(_0x290abc[_0x3dc994(0x12f)](_0x290abc[_0x3dc994(0x13b)],_0x290abc[_0x3dc994(0x1c5)])?!_0x2752be[_0x3dc994(0x164)][_0x3dc994(0x121)]()&&(_0x1c0e52=![],_0x27bb1c['classList'][_0x3dc994(0x1c6)](EfGNHK['jPeiE']),_0x1ff527[_0x3dc994(0xff)](_0x3dc994(0x10a),function(){const _0x267ae4=_0x3dc994;this[_0x267ae4(0x1ba)]['remove'](EfGNHK[_0x267ae4(0x13d)]);},{'once':!![]})):_0x29092a[_0x3dc994(0x1d5)][_0x3dc994(0x107)]=null);}}),_0x385833[_0x1e7d4d(0x1ba)][_0x1e7d4d(0x19e)](_0x1e7d4d(0x1b3)),_0x385833[_0x1e7d4d(0x1ba)][_0x1e7d4d(0x16e)](_0x1e7d4d(0x1b3))?_0x290abc['NwHGd']!==_0x290abc[_0x1e7d4d(0x17b)]?_0x4a6d45['style'][_0x1e7d4d(0xfa)]=_0x1e7d4d(0xef):_0x592a1c['style'][_0x1e7d4d(0x107)]=_0x290abc[_0x1e7d4d(0x13f)](_0x592a1c['scrollHeight'],'px'):_0x290abc['EOyap'](_0x290abc['aeWxH'],_0x290abc[_0x1e7d4d(0x101)])?_0x590103[_0x1e7d4d(0x1d5)][_0x1e7d4d(0x16a)]=OTDfCK[_0x1e7d4d(0x1c2)]:_0x592a1c[_0x1e7d4d(0x1d5)]['maxHeight']=null;});});}document['addEventListener'](_0xff3f58[_0x5c11c2(0x129)],function(){const _0x1c0356=_0x5c11c2,_0x2ed0d4={'GEwQe':function(_0x2fc79e,_0xfbbe1f,_0xebdc0a){return _0x2fc79e(_0xfbbe1f,_0xebdc0a);},'HeqNu':_0x1c0356(0x1b6),'ovSVt':_0xff3f58[_0x1c0356(0x1e2)],'ZYYcz':_0xff3f58[_0x1c0356(0x125)]};_0xff3f58[_0x1c0356(0x122)](_0xff3f58[_0x1c0356(0x14d)],_0xff3f58[_0x1c0356(0x1d6)])?_0x4d8911['style'][_0x1c0356(0x107)]=_0x5733ab[_0x1c0356(0xfb)]+'px':(_0xff3f58[_0x1c0356(0x11c)](_0x4573e9),_0xff3f58['RpdyO'](_0x14849b),document['body'][_0x1c0356(0x1ba)]['add'](_0xff3f58[_0x1c0356(0x131)]),!localStorage[_0x1c0356(0x113)]('hasVisited')&&(_0xff3f58['XoZHA']===_0x1c0356(0x13c)?_0x3fced2[_0x1c0356(0x171)][_0x1c0356(0x1ba)][_0x1c0356(0x1c6)](_0xff3f58[_0x1c0356(0xf6)]):_0xff3f58[_0x1c0356(0x140)](setTimeout,()=>{const _0x4b4f1b=_0x1c0356;_0x2ed0d4[_0x4b4f1b(0x1b8)](_0x2ff23b,_0x4b4f1b(0x10f),_0x2ed0d4[_0x4b4f1b(0x1d3)]),localStorage[_0x4b4f1b(0x1c1)](_0x2ed0d4['ovSVt'],_0x2ed0d4[_0x4b4f1b(0x1a9)]);},0x3e8)));});const _0x66f6fa={'showNotification':_0x2ff23b};window[_0x5c11c2(0x1ce)]=_0x66f6fa;}())); \ No newline at end of file