diff --git a/backend/includes/footer.php b/backend/includes/footer.php index 8a30b73..03118f4 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/header.php b/backend/includes/header.php index 155f660..82629a5 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/assets/css/custom.0bc6a878fec2.0bc6a878fec2.css b/public/assets/css/custom.0bc6a878fec2.0bc6a878fec2.css deleted file mode 100644 index 259c8ff..0000000 --- a/public/assets/css/custom.0bc6a878fec2.0bc6a878fec2.css +++ /dev/null @@ -1 +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-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 new file mode 100644 index 0000000..9853b94 --- /dev/null +++ b/public/assets/css/custom.css @@ -0,0 +1,108 @@ +.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 new file mode 100644 index 0000000..f0f5d6d --- /dev/null +++ b/public/assets/css/style.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}} \ No newline at end of file diff --git a/public/assets/css/style.d01979e8c871.d01979e8c871.css b/public/assets/css/style.d01979e8c871.d01979e8c871.css deleted file mode 100644 index 1ba5194..0000000 --- a/public/assets/css/style.d01979e8c871.d01979e8c871.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}} diff --git a/public/assets/js/contact.b058cc66d435.b2802230a610.js b/public/assets/js/contact.b058cc66d435.b2802230a610.js deleted file mode 100644 index 0bfb817..0000000 --- a/public/assets/js/contact.b058cc66d435.b2802230a610.js +++ /dev/null @@ -1 +0,0 @@ -[javascript-obfuscator-cli] Obfuscating file:public/assets/js/contact.b058cc66d435.b2802230a610.js... [javascript-obfuscator-cli] Obfuscating file:public/assets/js/cookie-consent.de9e404f0700.de9e404f0700.js... [javascript-obfuscator-cli] Obfuscating file:public/assets/js/main.915e0206c30f.915e0206c30f.js... diff --git a/public/assets/js/contact.js b/public/assets/js/contact.js new file mode 100644 index 0000000..13b64e5 --- /dev/null +++ b/public/assets/js/contact.js @@ -0,0 +1,239 @@ +(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.de9e404f0700.js b/public/assets/js/cookie-consent.de9e404f0700.de9e404f0700.js deleted file mode 100644 index 81c1113..0000000 --- a/public/assets/js/cookie-consent.de9e404f0700.de9e404f0700.js +++ /dev/null @@ -1 +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;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 new file mode 100644 index 0000000..9f24137 --- /dev/null +++ b/public/assets/js/cookie-consent.js @@ -0,0 +1,210 @@ +(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.915e0206c30f.js b/public/assets/js/main.915e0206c30f.915e0206c30f.js deleted file mode 100644 index 3194841..0000000 --- a/public/assets/js/main.915e0206c30f.915e0206c30f.js +++ /dev/null @@ -1 +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/assets/js/main.js b/public/assets/js/main.js new file mode 100644 index 0000000..94c4f0b --- /dev/null +++ b/public/assets/js/main.js @@ -0,0 +1,235 @@ +(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/contact.php b/public/contact.php index 82bba41..9298548 100644 --- a/public/contact.php +++ b/public/contact.php @@ -4,13 +4,13 @@ require_once __DIR__ . '/../backend/config/contact-config.php'; $preselected_subject = getPreselectedContactSubject(); - +// Page configuration $page_title = 'Kontakt - HexaHost.de | Hosting aus Niederbayern'; $page_description = 'Kontaktieren Sie HexaHost.de - Ihr Hosting-Partner aus Niederbayern. Persönlicher Support und kompetente Beratung.'; $current_page = 'contact'; -$additional_scripts = ['assets/js/contact.b058cc66d435.b2802230a610.js']; - +$additional_scripts = ['assets/js/contact.js']; +// Include header includeHeader($page_title, $page_description, $current_page, $additional_scripts); ?> @@ -252,6 +252,6 @@ includeHeader($page_title, $page_description, $current_page, $additional_scripts \ No newline at end of file diff --git a/public/robots.txt b/public/robots.txt index 3016055..ea70ee9 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.d01979e8c871.d01979e8c871.css -Allow: /assets/js/main.915e0206c30f.915e0206c30f.js -Allow: /assets/js/contact.b058cc66d435.b2802230a610.js +Allow: /assets/css/style.css +Allow: /assets/js/main.js +Allow: /assets/js/contact.js # Sitemap location Sitemap: https://hexahost.de/sitemap.xml