diff --git a/index.html b/index.html index 2f8ec99..fac32fa 100644 --- a/index.html +++ b/index.html @@ -165,7 +165,7 @@ -
+

Hinnat

SelkeƤ kuukausihinnoittelu ilman piilokustannuksia. Kaikki hinnat alv 0%.

@@ -479,7 +479,7 @@
-
+

Usein kysytyt kysymykset

Vastauksia yleisimpiin colocation-palveluita koskeviin kysymyksiin

diff --git a/style.css b/style.css index 7e8a7a4..72468f2 100644 --- a/style.css +++ b/style.css @@ -6,26 +6,28 @@ } :root { - --color-bg: #0c0a1d; - --color-bg-light: #151030; - --color-bg-card: #1a1340; - --color-primary: #8b5cf6; - --color-primary-light: #a78bfa; - --color-primary-dark: #7c3aed; - --color-accent: #22d3ee; - --color-text: #e2e8f0; - --color-text-muted: #94a3b8; - --color-text-heading: #f1f5f9; - --color-border: #2d1f5e; - --color-surface: #1e1545; + --color-bg: #ffffff; + --color-bg-alt: #faf9f7; + --color-bg-dark: #1a1a2e; + --color-bg-dark-light: #232340; + --color-primary: #e85d4a; + --color-primary-light: #f07060; + --color-primary-dark: #d14836; + --color-accent: #e85d4a; + --color-text: #374151; + --color-text-muted: #6b7280; + --color-text-heading: #1e1e2e; + --color-border: #e5e7eb; + --color-border-dark: #2d2d45; + --color-surface: #f3f4f6; --color-white: #ffffff; --font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif; --max-width: 1200px; --header-height: 72px; --radius: 12px; --radius-sm: 8px; - --shadow: 0 4px 24px rgba(0, 0, 0, 0.3); - --shadow-lg: 0 8px 48px rgba(0, 0, 0, 0.4); + --shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 4px 16px rgba(0, 0, 0, 0.06); + --shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.08), 0 12px 40px rgba(0, 0, 0, 0.1); --transition: 0.3s ease; } @@ -43,13 +45,13 @@ body { } a { - color: var(--color-primary-light); + color: var(--color-primary); text-decoration: none; transition: color var(--transition); } a:hover { - color: var(--color-accent); + color: var(--color-primary-dark); } .container { @@ -65,17 +67,39 @@ a:hover { left: 0; right: 0; height: var(--header-height); - background: rgba(10, 22, 40, 0.9); + background: rgba(26, 26, 46, 0.95); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); - border-bottom: 1px solid var(--color-border); + border-bottom: 1px solid var(--color-border-dark); z-index: 1000; - transition: background var(--transition); + transition: all var(--transition); } .header.scrolled { - background: rgba(10, 22, 40, 0.98); - box-shadow: 0 2px 20px rgba(0, 0, 0, 0.3); + background: var(--color-white); + border-bottom-color: var(--color-border); + box-shadow: 0 1px 8px rgba(0, 0, 0, 0.06); +} + +.header.scrolled .logo { + color: var(--color-text-heading); +} + +.header.scrolled .logo-icon { + color: var(--color-primary); +} + +.header.scrolled .nav a { + color: var(--color-text-muted); +} + +.header.scrolled .nav a:hover, +.header.scrolled .nav a.active { + color: var(--color-text-heading); +} + +.header.scrolled .nav-toggle span { + background: var(--color-text-heading); } .header-inner { @@ -96,7 +120,7 @@ a:hover { } .logo:hover { - color: var(--color-white); + color: inherit; } .logo strong { @@ -113,7 +137,7 @@ a:hover { } .nav a { - color: var(--color-text-muted); + color: rgba(255, 255, 255, 0.7); font-size: 0.95rem; font-weight: 500; transition: color var(--transition); @@ -158,10 +182,10 @@ a:hover { transition: all var(--transition); } -/* === Hero === */ +/* === Hero (stays dark) === */ .hero { padding: 160px 0 100px; - background: linear-gradient(135deg, var(--color-bg) 0%, var(--color-bg-light) 50%, var(--color-bg) 100%); + background: linear-gradient(135deg, #1a1a2e 0%, #232340 50%, #1a1a2e 100%); position: relative; overflow: hidden; } @@ -174,8 +198,8 @@ a:hover { right: 0; bottom: 0; background: - radial-gradient(ellipse 800px 600px at 20% 50%, rgba(139, 92, 246, 0.08) 0%, transparent 70%), - radial-gradient(ellipse 600px 400px at 80% 30%, rgba(34, 211, 238, 0.05) 0%, transparent 70%); + radial-gradient(ellipse 800px 600px at 20% 50%, rgba(232, 93, 74, 0.1) 0%, transparent 70%), + radial-gradient(ellipse 600px 400px at 80% 30%, rgba(232, 93, 74, 0.05) 0%, transparent 70%); pointer-events: none; } @@ -207,7 +231,7 @@ a:hover { .hero-subtitle { font-size: 1.2rem; - color: var(--color-text-muted); + color: rgba(255, 255, 255, 0.65); line-height: 1.7; margin-bottom: 36px; max-width: 560px; @@ -237,17 +261,18 @@ a:hover { .stat-label { font-size: 0.85rem; - color: var(--color-text-muted); + color: rgba(255, 255, 255, 0.5); margin-top: 4px; } -/* === Hero Pricing === */ +/* === Hero Pricing (dark context) === */ .hero-pricing { - background: var(--color-bg-card); - border: 1px solid var(--color-border); + background: rgba(255, 255, 255, 0.06); + border: 1px solid rgba(255, 255, 255, 0.12); border-radius: var(--radius); padding: 32px 28px; text-align: center; + backdrop-filter: blur(8px); } .hero-pricing-label { @@ -255,7 +280,7 @@ a:hover { font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; - color: var(--color-accent); + color: var(--color-primary-light); margin-bottom: 20px; } @@ -271,8 +296,8 @@ a:hover { align-items: center; justify-content: space-between; padding: 14px 18px; - background: var(--color-surface); - border: 1px solid var(--color-border); + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); border-radius: var(--radius-sm); text-decoration: none; transition: all var(--transition); @@ -281,13 +306,13 @@ a:hover { .hero-price-card:hover { border-color: var(--color-primary); - background: var(--color-bg-light); + background: rgba(232, 93, 74, 0.1); transform: translateX(4px); } .hero-price-card-featured { border-color: var(--color-primary); - background: rgba(139, 92, 246, 0.1); + background: rgba(232, 93, 74, 0.08); } .hero-price-badge { @@ -307,7 +332,7 @@ a:hover { .hero-price-name { font-size: 1rem; font-weight: 600; - color: var(--color-text); + color: rgba(255, 255, 255, 0.8); } .hero-price-value { @@ -319,12 +344,12 @@ a:hover { .hero-price-value small { font-size: 0.8rem; font-weight: 500; - color: var(--color-text-muted); + color: rgba(255, 255, 255, 0.5); } .hero-pricing-note { font-size: 0.8rem; - color: var(--color-text-muted); + color: rgba(255, 255, 255, 0.5); margin-bottom: 20px; line-height: 1.4; } @@ -357,24 +382,24 @@ a:hover { background: var(--color-primary-dark); color: var(--color-white); transform: translateY(-2px); - box-shadow: 0 4px 20px rgba(139, 92, 246, 0.4); + box-shadow: 0 4px 20px rgba(232, 93, 74, 0.35); } .btn-secondary { - background: var(--color-surface); - color: var(--color-text); - border: 1px solid var(--color-border); + background: rgba(255, 255, 255, 0.1); + color: var(--color-white); + border: 1px solid rgba(255, 255, 255, 0.2); } .btn-secondary:hover { - background: var(--color-bg-card); + background: rgba(255, 255, 255, 0.15); color: var(--color-white); - border-color: var(--color-primary); + border-color: rgba(255, 255, 255, 0.4); } .btn-outline { background: transparent; - color: var(--color-primary-light); + color: var(--color-primary); border: 2px solid var(--color-primary); } @@ -384,13 +409,29 @@ a:hover { transform: translateY(-2px); } +/* Light context button overrides */ +.section .btn-secondary { + background: var(--color-surface); + color: var(--color-text); + border: 1px solid var(--color-border); +} + +.section .btn-secondary:hover { + background: var(--color-border); + color: var(--color-text-heading); +} + /* === Sections === */ .section { padding: 100px 0; } +.section-alt { + background: var(--color-bg-alt); +} + .section-dark { - background: var(--color-bg-light); + background: var(--color-bg-dark); } .section-title { @@ -402,6 +443,10 @@ a:hover { letter-spacing: -0.02em; } +.section-dark .section-title { + color: var(--color-white); +} + .section-subtitle { font-size: 1.1rem; color: var(--color-text-muted); @@ -412,6 +457,10 @@ a:hover { margin-right: auto; } +.section-dark .section-subtitle { + color: rgba(255, 255, 255, 0.6); +} + /* === Services === */ .services-grid { display: grid; @@ -420,7 +469,7 @@ a:hover { } .service-card { - background: var(--color-bg-card); + background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius); padding: 36px 28px; @@ -436,7 +485,7 @@ a:hover { .service-card.featured { border-color: var(--color-primary); - background: linear-gradient(180deg, rgba(139, 92, 246, 0.08) 0%, var(--color-bg-card) 100%); + box-shadow: var(--shadow); } .service-badge { @@ -454,7 +503,7 @@ a:hover { } .service-icon { - color: var(--color-primary-light); + color: var(--color-primary); margin-bottom: 20px; } @@ -479,7 +528,7 @@ a:hover { padding: 6px 0; color: var(--color-text); font-size: 0.9rem; - border-bottom: 1px solid rgba(30, 58, 95, 0.5); + border-bottom: 1px solid var(--color-border); } .service-features li:last-child { @@ -499,12 +548,16 @@ a:hover { } .feature-icon { - color: var(--color-primary-light); + color: var(--color-primary); margin-bottom: 16px; display: flex; justify-content: center; } +.section-dark .feature-icon { + color: var(--color-primary-light); +} + .feature h3 { font-size: 1.15rem; font-weight: 700; @@ -512,12 +565,20 @@ a:hover { margin-bottom: 10px; } +.section-dark .feature h3 { + color: var(--color-white); +} + .feature p { color: var(--color-text-muted); font-size: 0.95rem; line-height: 1.6; } +.section-dark .feature p { + color: rgba(255, 255, 255, 0.6); +} + /* === Pricing === */ .pricing-grid { display: grid; @@ -527,13 +588,18 @@ a:hover { } .pricing-card { - background: var(--color-bg-card); + background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius); padding: 36px 28px; text-align: center; transition: all var(--transition); position: relative; + box-shadow: var(--shadow); +} + +.section-alt .pricing-card { + background: var(--color-white); } .pricing-card:hover { @@ -543,8 +609,8 @@ a:hover { .pricing-featured { border-color: var(--color-primary); - background: linear-gradient(180deg, rgba(139, 92, 246, 0.1) 0%, var(--color-bg-card) 100%); transform: scale(1.04); + box-shadow: var(--shadow-lg); } .pricing-featured:hover { @@ -580,7 +646,7 @@ a:hover { .price-amount { font-size: 3rem; font-weight: 800; - color: var(--color-white); + color: var(--color-text-heading); line-height: 1; } @@ -603,7 +669,7 @@ a:hover { padding: 8px 0; font-size: 0.95rem; color: var(--color-text); - border-bottom: 1px solid rgba(30, 58, 95, 0.4); + border-bottom: 1px solid var(--color-border); } .pricing-features li:last-child { @@ -611,7 +677,7 @@ a:hover { } .pricing-features svg { - color: var(--color-accent); + color: var(--color-primary); flex-shrink: 0; } @@ -651,13 +717,13 @@ a:hover { .form-group label { font-size: 0.9rem; font-weight: 600; - color: var(--color-text); + color: var(--color-text-heading); margin-bottom: 6px; } .form-group input, .form-group textarea { - background: var(--color-bg-card); + background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: 12px 16px; @@ -671,7 +737,7 @@ a:hover { .form-group textarea:focus { outline: none; border-color: var(--color-primary); - box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.15); + box-shadow: 0 0 0 3px rgba(232, 93, 74, 0.12); } .form-group textarea { @@ -691,11 +757,11 @@ a:hover { } .form-status.success { - color: var(--color-accent); + color: #059669; } .form-status.error { - color: #f87171; + color: var(--color-primary); } .contact-info { @@ -711,7 +777,7 @@ a:hover { } .contact-item svg { - color: var(--color-primary-light); + color: var(--color-primary); flex-shrink: 0; margin-top: 2px; } @@ -729,10 +795,10 @@ a:hover { line-height: 1.5; } -/* === Footer === */ +/* === Footer (dark) === */ .footer { - background: var(--color-bg); - border-top: 1px solid var(--color-border); + background: var(--color-bg-dark); + border-top: none; padding-top: 56px; } @@ -743,17 +809,22 @@ a:hover { padding-bottom: 40px; } -.footer-brand .logo { +.footer .logo { + color: var(--color-white); margin-bottom: 12px; } +.footer .logo-icon { + color: var(--color-primary-light); +} + .footer-brand p { - color: var(--color-text-muted); + color: rgba(255, 255, 255, 0.5); font-size: 0.95rem; } .footer-links h4 { - color: var(--color-text-heading); + color: var(--color-white); font-size: 0.95rem; font-weight: 700; margin-bottom: 16px; @@ -761,7 +832,7 @@ a:hover { .footer-links a { display: block; - color: var(--color-text-muted); + color: rgba(255, 255, 255, 0.5); font-size: 0.9rem; padding: 4px 0; } @@ -771,12 +842,12 @@ a:hover { } .footer-bottom { - border-top: 1px solid var(--color-border); + border-top: 1px solid var(--color-border-dark); padding: 20px 0; } .footer-bottom p { - color: var(--color-text-muted); + color: rgba(255, 255, 255, 0.4); font-size: 0.85rem; text-align: center; } @@ -786,7 +857,7 @@ a:hover { text-align: center; margin-top: 32px; padding: 20px; - background: var(--color-bg-card); + background: var(--color-bg-alt); border: 1px solid var(--color-border); border-radius: var(--radius); font-size: 1.05rem; @@ -796,9 +867,9 @@ a:hover { font-weight: 600; } -/* === Green Energy === */ +/* === Green Energy (simplified) === */ .section-green { - background: linear-gradient(135deg, var(--color-bg) 0%, #0a2418 50%, var(--color-bg) 100%); + background: var(--color-bg-alt); } .green-energy { @@ -812,8 +883,8 @@ a:hover { .green-badge { display: inline-block; - background: rgba(34, 211, 238, 0.15); - color: var(--color-accent); + background: #ecfdf5; + color: #059669; font-size: 0.85rem; font-weight: 700; padding: 6px 18px; @@ -821,7 +892,7 @@ a:hover { text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 20px; - border: 1px solid rgba(34, 211, 238, 0.3); + border: 1px solid #a7f3d0; } .green-energy h2 { @@ -849,13 +920,13 @@ a:hover { display: flex; align-items: center; gap: 10px; - color: var(--color-accent); + color: #059669; font-weight: 600; font-size: 0.95rem; } .green-stat svg { - color: var(--color-accent); + color: #059669; } /* === Tech Grid === */ @@ -866,10 +937,11 @@ a:hover { } .tech-card { - background: var(--color-bg-card); + background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius); padding: 28px 24px; + box-shadow: var(--shadow); } .tech-card h4 { @@ -917,7 +989,7 @@ a:hover { .price-amount-custom { font-size: 1.5rem; font-weight: 700; - color: var(--color-primary-light); + color: var(--color-primary); display: block; margin: 12px 0 8px; } @@ -952,7 +1024,7 @@ a:hover { /* === Konesali Page === */ .page-hero { padding: 140px 0 60px; - background: linear-gradient(135deg, var(--color-bg) 0%, var(--color-bg-light) 100%); + background: linear-gradient(135deg, var(--color-bg-dark) 0%, var(--color-bg-dark-light) 100%); text-align: center; } @@ -966,7 +1038,7 @@ a:hover { .page-hero p { font-size: 1.15rem; - color: var(--color-text-muted); + color: rgba(255, 255, 255, 0.6); } .specs-overview { @@ -977,16 +1049,17 @@ a:hover { } .spec-highlight { - background: var(--color-bg-card); + background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius); padding: 32px 20px; + box-shadow: var(--shadow); } .spec-highlight-value { font-size: 2rem; font-weight: 800; - color: var(--color-primary-light); + color: var(--color-primary); margin-bottom: 8px; } @@ -1008,7 +1081,7 @@ a:hover { } .spec-section-icon { - color: var(--color-primary-light); + color: var(--color-primary); flex-shrink: 0; } @@ -1025,10 +1098,11 @@ a:hover { } .spec-table { - background: var(--color-bg-card); + background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius); overflow: hidden; + box-shadow: var(--shadow); } .spec-table table { @@ -1106,11 +1180,17 @@ a:hover { } .faq-item { - background: var(--color-bg-card); + background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-sm); overflow: hidden; transition: border-color var(--transition); + box-shadow: var(--shadow); +} + +.section-dark .faq-item { + background: var(--color-bg-dark-light); + border-color: var(--color-border-dark); } .faq-item:hover { @@ -1134,6 +1214,10 @@ a:hover { gap: 16px; } +.section-dark .faq-question { + color: var(--color-white); +} + .faq-question svg { flex-shrink: 0; color: var(--color-text-muted); @@ -1161,6 +1245,10 @@ a:hover { line-height: 1.7; } +.section-dark .faq-answer p { + color: rgba(255, 255, 255, 0.6); +} + /* === Animations === */ .fade-in { opacity: 0; @@ -1206,12 +1294,12 @@ a:hover { top: var(--header-height); left: 0; right: 0; - background: var(--color-bg); + background: var(--color-white); flex-direction: column; padding: 24px; gap: 0; border-bottom: 1px solid var(--color-border); - box-shadow: var(--shadow); + box-shadow: var(--shadow-lg); } .nav.open { @@ -1222,6 +1310,11 @@ a:hover { padding: 14px 0; border-bottom: 1px solid var(--color-border); font-size: 1.05rem; + color: var(--color-text); + } + + .nav a:hover { + color: var(--color-primary); } .nav a:last-child {