This commit is contained in:
2026-02-06 16:01:26 +01:00
parent 40c67c99f3
commit 1f0f9abc2e
3 changed files with 208 additions and 46 deletions

View File

@@ -21,8 +21,26 @@ document.addEventListener('DOMContentLoaded', function() {
const nodes = systemGraphic.querySelectorAll('.node'); const nodes = systemGraphic.querySelectorAll('.node');
const centralNode = systemGraphic.querySelector('.central-node'); const centralNode = systemGraphic.querySelector('.central-node');
// Draw connection lines // Draw connection lines after layout is complete
drawConnections(); requestAnimationFrame(() => {
requestAnimationFrame(drawConnections);
});
// Also redraw after a short delay for CSS transitions
setTimeout(drawConnections, 300);
setTimeout(drawConnections, 600);
// Redraw on resize
let resizeTimeout;
window.addEventListener('resize', function() {
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(drawConnections, 100);
});
// Redraw on orientation change (mobile)
window.addEventListener('orientationchange', function() {
setTimeout(drawConnections, 300);
});
// Initialize tooltip system // Initialize tooltip system
initializeTooltips(); initializeTooltips();
@@ -139,19 +157,30 @@ document.addEventListener('DOMContentLoaded', function() {
const centralNode = systemGraphic.querySelector('.central-node'); const centralNode = systemGraphic.querySelector('.central-node');
const otherNodes = systemGraphic.querySelectorAll('.node:not(.central-node)'); const otherNodes = systemGraphic.querySelectorAll('.node:not(.central-node)');
const centralRect = centralNode.getBoundingClientRect(); if (!centralNode || !systemGraphic) return;
const graphicRect = systemGraphic.getBoundingClientRect();
const graphicRect = systemGraphic.getBoundingClientRect();
const centralRect = centralNode.getBoundingClientRect();
// Calculate center position relative to the graphic container
const centerX = centralRect.left - graphicRect.left + centralRect.width / 2; const centerX = centralRect.left - graphicRect.left + centralRect.width / 2;
const centerY = centralRect.top - graphicRect.top + centralRect.height / 2; const centerY = centralRect.top - graphicRect.top + centralRect.height / 2;
// Set SVG viewBox to match container
connections.setAttribute('viewBox', `0 0 ${graphicRect.width} ${graphicRect.height}`);
connections.style.width = '100%';
connections.style.height = '100%';
connections.innerHTML = ''; connections.innerHTML = '';
otherNodes.forEach(node => { otherNodes.forEach(node => {
const nodeRect = node.getBoundingClientRect(); const nodeRect = node.getBoundingClientRect();
// Calculate node center position relative to the graphic container
const nodeX = nodeRect.left - graphicRect.left + nodeRect.width / 2; const nodeX = nodeRect.left - graphicRect.left + nodeRect.width / 2;
const nodeY = nodeRect.top - graphicRect.top + nodeRect.height / 2; const nodeY = nodeRect.top - graphicRect.top + nodeRect.height / 2;
// Create dashed line for better visibility
const line = document.createElementNS('http://www.w3.org/2000/svg', 'line'); const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');
line.setAttribute('x1', centerX); line.setAttribute('x1', centerX);
line.setAttribute('y1', centerY); line.setAttribute('y1', centerY);

View File

@@ -1,10 +1,10 @@
:root { :root {
--primary-dark: #4F4747; --primary-dark: #5a5252;
--primary-light: #EBEBDE; --primary-light: #EBEBDE;
--primary-mid: #777764; --primary-mid: #8a8a7a;
--accent-orange: #F57C00; --accent-orange: #d4864a;
--accent-teal: #26A69A; --accent-teal: #5a9e96;
--accent-green: #66BB6A; --accent-green: #7fb882;
} }
* { * {
@@ -1121,10 +1121,51 @@ body {
.top-banner { .top-banner {
justify-content: space-between; justify-content: space-between;
height: 70px;
padding: 5px 15px;
}
.top-banner.scrolled {
height: 60px;
padding: 5px 12px;
} }
.banner-left { .banner-left {
flex: 1; flex: 1;
gap: 10px;
}
.logo {
height: 40px;
}
.top-banner.scrolled .logo {
height: 32px;
}
.menu-toggle {
width: 38px;
height: 38px;
}
.top-banner.scrolled .menu-toggle {
width: 32px;
height: 32px;
}
#cursorToggle {
width: 38px;
height: 38px;
}
.top-banner.scrolled #cursorToggle {
width: 32px;
height: 32px;
}
.cursor-icon {
width: 32px;
height: 32px;
} }
.opening-hours { .opening-hours {
@@ -1132,6 +1173,36 @@ body {
} }
} }
@media (max-width: 480px) {
.top-banner {
height: 60px;
padding: 5px 10px;
}
.top-banner.scrolled {
height: 55px;
}
.logo {
height: 35px;
}
.top-banner.scrolled .logo {
height: 28px;
}
.menu-toggle,
#cursorToggle {
width: 34px;
height: 34px;
}
.cursor-icon {
width: 28px;
height: 28px;
}
}
/* Footer Banner Styles */ /* Footer Banner Styles */
.footer-banner { .footer-banner {
background: rgba(42, 42, 42, 0.85) !important; background: rgba(42, 42, 42, 0.85) !important;

View File

@@ -2224,15 +2224,36 @@
@media (max-width: 768px) { @media (max-width: 768px) {
.hero-section { .hero-section {
padding: 100px 20px 40px; padding: 90px 15px 30px;
min-height: auto;
} }
.hero-headline { .hero-headline {
font-size: 2rem; font-size: 1.6rem;
line-height: 1.3;
margin-bottom: 16px;
}
.hero-subline {
font-size: 0.95rem;
padding: 12px 14px;
margin-bottom: 12px;
}
.hero-proof {
font-size: 0.9rem;
padding: 10px 14px;
margin-bottom: 20px;
} }
.hero-buttons { .hero-buttons {
justify-content: center; justify-content: center;
gap: 12px;
}
.cta-btn {
padding: 12px 20px;
font-size: 0.95rem;
} }
.systeme-section, .systeme-section,
@@ -2240,11 +2261,11 @@
.process-section, .process-section,
.results-section, .results-section,
.interaction-section { .interaction-section {
padding: 60px 20px; padding: 40px 15px;
} }
.section-headline { .section-headline {
font-size: 2rem; font-size: 1.6rem;
} }
.systeme-grid { .systeme-grid {
@@ -2252,93 +2273,134 @@
} }
.results-grid { .results-grid {
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); grid-template-columns: 1fr;
} }
.process-line { .process-line {
flex-direction: column; flex-direction: column;
gap: 20px; gap: 15px;
} }
.process-connector { .process-connector {
width: 3px; width: 3px;
height: 60px; height: 40px;
} }
.hero-container { .hero-container {
grid-template-columns: 1fr; grid-template-columns: 1fr;
gap: 40px; gap: 25px;
text-align: center; text-align: center;
} }
/* Hero right (system graphic) comes AFTER hero left (text) on mobile */
.hero-right { .hero-right {
height: 400px; height: 320px;
margin-top: 40px; margin-top: 10px;
order: 1;
}
.hero-left {
order: 0;
} }
.system-graphic { .system-graphic {
transform: scale(0.9); transform: scale(0.75);
width: 110%; width: 130%;
margin-left: -5%; margin-left: -15%;
} }
.central-node { .central-node {
min-width: 120px; min-width: 100px;
max-width: 140px; max-width: 120px;
padding: 8px 16px; padding: 6px 12px;
border-radius: 20px; border-radius: 16px;
} }
.central-node .node-icon { .central-node .node-icon {
font-size: 1rem; font-size: 0.9rem;
} }
.central-node .node-label { .central-node .node-label {
font-size: 0.75rem; font-size: 0.65rem;
} }
.node { .node {
min-width: 90px; min-width: 70px;
padding: 10px; padding: 8px;
font-size: 0.8rem; font-size: 0.7rem;
} }
.node-icon { .node-icon {
font-size: 1.2rem; font-size: 1rem;
} }
.node-label { .node-label {
font-size: 0.75rem; font-size: 0.65rem;
} }
/* Compact circular layout for mobile */ /* Compact circular layout for mobile */
.phone-node { .phone-node {
top: 10%; top: 5%;
left: 50%; left: 50%;
transform: translateX(-50%) scale(0.9); transform: translateX(-50%) scale(0.85);
} }
.chat-node { .chat-node {
top: 30%; top: 25%;
right: 10%; right: 5%;
transform: scale(0.9); left: auto;
transform: scale(0.85);
} }
.crm-node { .crm-node {
bottom: 30%; bottom: 25%;
right: 10%; right: 5%;
transform: scale(0.9); left: auto;
transform: scale(0.85);
} }
.ticket-node { .ticket-node {
bottom: 10%; bottom: 5%;
left: 50%; left: 50%;
transform: translateX(-50%) scale(0.9); transform: translateX(-50%) scale(0.85);
} }
.team-node { .team-node {
top: 30%; top: 25%;
left: 10%; left: 5%;
transform: scale(0.9); right: auto;
transform: scale(0.85);
}
}
/* Extra small screens */
@media (max-width: 480px) {
.hero-section {
padding: 80px 12px 25px;
}
.hero-headline {
font-size: 1.4rem;
}
.hero-subline,
.hero-proof {
font-size: 0.85rem;
padding: 10px 12px;
}
.hero-right {
height: 280px;
}
.system-graphic {
transform: scale(0.65);
width: 150%;
margin-left: -25%;
}
.cta-btn {
padding: 10px 16px;
font-size: 0.9rem;
} }
} }