Files
Websites/Profice WebSite/style/tech-onepager.css
2026-03-12 10:03:51 +01:00

2683 lines
57 KiB
CSS

/**
* Tech-Onepager Styles - High-Conversion, Technology-Focused Design
* System being built aesthetic - not marketing campaign
*/
/* ===== TECH BACKGROUND (disabled - replaced by hexCanvas) ===== */
.tech-background {
display: none;
}
.grid-overlay,
.dot-pattern,
.gradient-overlay {
display: none;
}
/* ===== HERO SECTION ===== */
.hero-section {
min-height: 100vh;
display: flex;
align-items: center;
padding: 120px 40px 60px;
position: relative;
}
.hero-container {
max-width: 1400px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px;
align-items: center;
}
.hero-left {
max-width: 600px;
width: 100%;
}
.hero-headline {
font-size: clamp(2.5rem, 5vw, 3.5rem);
font-weight: 700;
line-height: 1.2;
color: var(--primary-dark);
margin-bottom: 24px;
font-family: 'Montserrat', 'Segoe UI', system-ui, sans-serif;
}
.hero-subline {
font-size: 1.25rem;
line-height: 1.6;
color: var(--primary-dark);
margin-bottom: 20px;
font-weight: 400;
background: rgba(102, 187, 106, 0.6);
padding: 16px 20px;
padding-left: 20px;
border-left: 3px solid var(--accent-teal);
background: rgba(102, 187, 106, 0.6);
border-radius: 0 8px 8px 0;
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
display: inline-block;
}
.hero-proof {
font-size: 1.1rem;
color: var(--primary-dark);
font-weight: 500;
margin-bottom: 40px;
padding: 12px 20px;
border-left: 3px solid var(--accent-teal);
background: rgba(102, 187, 106, 0.6);
border-radius: 0 8px 8px 0;
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
display: inline-block;
}
.hero-buttons {
display: flex;
gap: 20px;
flex-wrap: wrap;
}
.cta-btn {
padding: 16px 32px;
border: none;
border-radius: 8px;
font-size: 1.1rem;
font-weight: 600;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
text-decoration: none;
display: inline-block;
position: relative;
overflow: hidden;
}
.cta-btn.primary {
background: linear-gradient(135deg, var(--accent-green), var(--accent-teal));
color: white;
box-shadow: 0 4px 20px rgba(102, 187, 106, 0.3);
}
.cta-btn.primary:hover {
transform: translateY(-2px);
box-shadow: 0 8px 30px rgba(102, 187, 106, 0.4);
}
.cta-btn.secondary {
background: white;
color: var(--primary-dark);
border: 2px solid var(--primary-dark);
}
.cta-btn.secondary:hover {
background: var(--primary-dark);
color: white;
transform: translateY(-2px);
}
/* ===== SYSTEM GRAPHIC ===== */
.hero-right {
position: relative;
height: 500px;
}
.system-graphic {
position: relative;
width: 100%;
height: 100%;
transition: transform 0.3s ease;
}
.connections {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 1;
}
.data-points {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 2;
}
.node {
position: absolute;
background: rgba(255, 255, 255, 0.95);
border: 2px solid var(--primary-mid);
border-radius: 8px;
padding: 4px;
min-width: 40px;
width: auto;
height: auto;
text-align: center;
backdrop-filter: blur(15px);
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
cursor: pointer;
z-index: 3;
box-shadow: 0 4px 20px rgba(79, 71, 71, 0.1);
overflow: visible;
}
.node:hover {
border-color: var(--accent-teal);
box-shadow: 0 6px 25px rgba(38, 166, 154, 0.2);
background: rgba(255, 255, 255, 0.98);
}
/* Specific hover effects for outer nodes - updated for circular layout */
.phone-node:hover {
transform: translate(-50%, -50%) scale(1.05);
}
.chat-node:hover {
transform: translate(50%, -50%) scale(1.05);
}
.crm-node:hover {
transform: translate(50%, -50%) scale(1.05);
}
.ticket-node:hover {
transform: translate(-50%, 50%) scale(1.05);
}
.team-node:hover {
transform: translate(-50%, -50%) scale(1.05);
}
.central-node {
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: linear-gradient(135deg, var(--accent-teal), var(--accent-green));
color: white;
border: none;
border-radius: 25px;
min-width: 140px;
max-width: 160px;
padding: 10px 20px;
box-shadow: 0 8px 25px rgba(38, 166, 154, 0.4);
z-index: 4;
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
position: relative;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
}
.central-node::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);
transform: rotate(45deg);
transition: all 0.6s ease;
opacity: 0;
}
.central-node:hover::before {
animation: shimmer 0.6s ease;
}
@keyframes shimmer {
0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); opacity: 0; }
50% { opacity: 1; }
100% { transform: translateX(100%) translateY(100%) rotate(45deg); opacity: 0; }
}
@keyframes nodePulse {
0%, 100% {
transform: scale(1.08);
box-shadow: 0 8px 30px rgba(38, 166, 154, 0.25);
}
50% {
transform: scale(1.15);
box-shadow: 0 12px 40px rgba(38, 166, 154, 0.4);
}
}
@keyframes centralNodePulse {
0%, 100% {
transform: translate(-50%, -50%) scale(1.08);
box-shadow: 0 12px 35px rgba(38, 166, 154, 0.5);
}
50% {
transform: translate(-50%, -50%) scale(1.15);
box-shadow: 0 16px 45px rgba(38, 166, 154, 0.7);
}
}
.central-node:hover {
transform: translate(-50%, -50%);
box-shadow: 0 8px 25px rgba(38, 166, 154, 0.4);
background: linear-gradient(135deg, var(--accent-teal), var(--accent-green));
}
/* Linear workflow layout - evenly spaced nodes */
.phone-node {
top: 15%;
left: 20%;
transform: translate(-50%, -50%);
}
.chat-node {
top: 15%;
right: 20%;
transform: translate(50%, -50%);
}
.crm-node {
top: 50%;
right: 15%;
transform: translate(50%, -50%);
}
.ticket-node {
bottom: 15%;
left: 20%;
transform: translate(-50%, 50%);
}
.team-node {
top: 50%;
left: 15%;
transform: translate(-50%, -50%);
}
.central-node .node-content {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
}
.central-node .node-icon {
font-size: 1.2rem;
flex-shrink: 0;
}
.node .node-content {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
}
.node .node-icon {
font-size: 1.5rem;
}
.node-label {
font-size: 0.85rem;
font-weight: 600;
line-height: 1.2;
}
.central-node .node-label {
color: white;
}
.connections {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 1;
}
.connection-line {
stroke: var(--accent-green);
stroke-width: 2;
fill: none;
opacity: 0.6;
stroke-dasharray: 5, 5; /* Dotted line pattern */
stroke-linecap: round;
}
.connection-line:hover {
opacity: 1;
stroke-width: 3;
}
/* ===== SYSTEME SECTION ===== */
.systeme-section {
padding: 100px 40px;
background: transparent;
}
.container {
max-width: 1200px;
margin: 0 auto;
}
.section-headline {
font-size: 2.5rem;
font-weight: 700;
text-align: center;
margin-bottom: 60px;
color: var(--primary-dark);
}
.systeme-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 40px;
max-width: 1600px;
margin: 0 auto;
}
.system-card {
background: rgba(255, 255, 255, 0.8);
border: 1px solid rgba(79, 71, 71, 0.1);
border-radius: 16px;
padding: 40px;
backdrop-filter: blur(20px);
transition: all 0.3s ease;
position: relative;
overflow: hidden;
max-width: 900px;
}
.system-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 4px;
background: linear-gradient(90deg, var(--accent-teal), var(--accent-green));
}
.system-card:hover {
transform: translateY(-8px);
box-shadow: 0 20px 40px rgba(79, 71, 71, 0.1);
border-color: var(--accent-teal);
}
.system-visual {
margin-bottom: 30px;
min-height: 100px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
/* Enhanced Technical Flow Visuals */
.tech-flow {
display: flex;
align-items: center;
gap: 12px;
font-size: 1.2rem;
position: relative;
}
.flow-item {
background: rgba(255, 255, 255, 0.9);
border: 2px solid rgba(79, 71, 71, 0.2);
border-radius: 10px;
padding: 14px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
transition: all 0.3s ease;
backdrop-filter: blur(10px);
}
.flow-item:hover {
border-color: var(--accent-teal);
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(38, 166, 154, 0.15);
}
.flow-arrow {
color: var(--primary-mid);
font-weight: bold;
font-size: 1.4rem;
position: relative;
z-index: 1;
}
.flow-arrow::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 20px;
height: 2px;
background: linear-gradient(90deg, transparent, var(--accent-teal), transparent);
opacity: 0;
transition: opacity 0.3s ease;
}
.tech-flow:hover .flow-arrow::after {
opacity: 1;
animation: arrowFlow 1.5s ease-in-out infinite;
}
@keyframes arrowFlow {
0% { transform: translate(-50%, -50%) scaleX(0); opacity: 0; }
50% { transform: translate(-50%, -50%) scaleX(1); opacity: 1; }
100% { transform: translate(-50%, -50%) scaleX(0); opacity: 0; }
}
/* Electric Workflow Animation */
.electric-workflow {
position: relative;
width: 100%;
height: 250px;
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
max-width: 900px;
}
.workflow-svg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
}
/* Background paths (always visible gray dashed lines) */
.background-paths {
position: relative;
z-index: 1;
}
/* Animated paths and borders (green overlay) */
.animated-paths, .node-borders {
position: relative;
z-index: 3;
}
.electric-path {
opacity: 0;
transition: all 0.3s ease;
stroke-dashoffset: 150;
}
.electric-spark {
filter: url(#glow);
opacity: 0;
transform: translate(0, 0);
}
.node-border {
fill: none;
stroke: rgba(79, 71, 71, 0.2);
stroke-width: 2;
stroke-dasharray: 200;
stroke-dashoffset: 200;
transition: all 0.3s ease;
}
.workflow-nodes {
position: relative;
z-index: 3;
display: flex;
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
}
.workflow-nodes .node {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
background: rgba(79, 71, 71, 0.05);
border: 1px solid rgba(79, 71, 71, 0.1);
border-radius: 8px;
padding: 12px 24px;
min-width: 50px;
transition: all 0.3s ease;
}
/* Exact coordinate positioning for mathematical alignment */
.workflow-nodes .node-1 {
left: 50px;
top: 125px;
transform: translate(-50%, -50%);
}
.workflow-nodes .node-2 {
left: 450px;
top: 60px;
transform: translate(-50%, -50%);
}
.workflow-nodes .node-3 {
left: 450px;
top: 190px;
transform: translate(-50%, -50%);
}
.workflow-nodes .node-4 {
left: 800px;
top: 125px;
transform: translate(-50%, -50%);
}
.workflow-nodes .node-5 {
left: 880px;
top: 125px;
transform: translate(-50%, -50%);
}
/* Single Unified 12-Second Animation Timeline - Mathematical Precision */
/* Node 1: 0-8% border trace */
@keyframes node1Glow {
0%, 8%, 100% { stroke-dashoffset: 200; stroke: rgba(79, 71, 71, 0.2); filter: none; }
4% { stroke-dashoffset: 0; stroke: #00FF00; filter: drop-shadow(0 0 15px #00FF00); }
8%, 100% { stroke-dashoffset: 0; stroke: rgba(0, 255, 0, 0.9); filter: drop-shadow(0 0 10px #00FF00); }
}
/* Path 1: 8-16% from Node 1 to Split Point */
@keyframes path1Glow {
0%, 8%, 100% { opacity: 0; stroke-dashoffset: 150; }
8%, 16% { opacity: 1; stroke-dashoffset: 0; filter: drop-shadow(0 0 12px #00FF00); }
16%, 100% { opacity: 1; stroke-dashoffset: 0; }
}
/* Spark 1: 8-16% moves along Path 1 (stroke-dasharray trail) */
@keyframes spark1Move {
0%, 8%, 16%, 100% { opacity: 0; }
12% { opacity: 1; transform: translate(125px, 125px); }
16% { opacity: 0; transform: translate(200px, 125px); }
}
/* Nodes 2&3: 16-35% border trace (parallel with paths) */
@keyframes node2Glow {
0%, 16%, 35%, 100% { stroke-dashoffset: 200; stroke: rgba(79, 71, 71, 0.2); filter: none; }
25% { stroke-dashoffset: 0; stroke: #00FF00; filter: drop-shadow(0 0 15px #00FF00); }
35%, 100% { stroke-dashoffset: 0; stroke: rgba(0, 255, 0, 0.9); filter: drop-shadow(0 0 10px #00FF00); }
}
@keyframes node3Glow {
0%, 16%, 35%, 100% { stroke-dashoffset: 200; stroke: rgba(79, 71, 71, 0.2); filter: none; }
25% { stroke-dashoffset: 0; stroke: #00FF00; filter: drop-shadow(0 0 15px #00FF00); }
35%, 100% { stroke-dashoffset: 0; stroke: rgba(0, 255, 0, 0.9); filter: drop-shadow(0 0 10px #00FF00); }
}
/* Paths 2a&2b: 16-35% from Split Point to Nodes 2&3 (parallel with borders) */
@keyframes path2Glow {
0%, 16%, 35%, 100% { opacity: 0; stroke-dashoffset: 265; }
16%, 35% { opacity: 1; stroke-dashoffset: 0; filter: drop-shadow(0 0 12px #00FF00); }
35%, 100% { opacity: 1; stroke-dashoffset: 0; }
}
/* Sparks 2a&2b: 16-35% move along Paths 2a&2b (stroke-dasharray trail) */
@keyframes spark2aMove {
0%, 16%, 35%, 100% { opacity: 0; }
20% { opacity: 1; transform: translate(200px, 125px); }
27% { opacity: 1; transform: translate(325px, 60px); }
35% { opacity: 0; transform: translate(450px, 60px); }
}
@keyframes spark2bMove {
0%, 16%, 35%, 100% { opacity: 0; }
20% { opacity: 1; transform: translate(200px, 125px); }
27% { opacity: 1; transform: translate(325px, 190px); }
35% { opacity: 0; transform: translate(450px, 190px); }
}
/* Paths 3a&3b: 35-50% from Nodes 2&3 to Merge Point */
@keyframes path3Glow {
0%, 35%, 50%, 100% { opacity: 0; stroke-dashoffset: 315; }
35%, 50% { opacity: 1; stroke-dashoffset: 0; filter: drop-shadow(0 0 12px #00FF00); }
50%, 100% { opacity: 1; stroke-dashoffset: 0; }
}
/* Sparks 3a&3b: 35-50% move along Paths 3a&3b (stroke-dasharray trail) */
@keyframes spark3aMove {
0%, 35%, 50%, 100% { opacity: 0; }
40% { opacity: 1; transform: translate(450px, 60px); }
45% { opacity: 1; transform: translate(575px, 60px); }
50% { opacity: 0; transform: translate(700px, 125px); }
}
@keyframes spark3bMove {
0%, 35%, 50%, 100% { opacity: 0; }
40% { opacity: 1; transform: translate(450px, 190px); }
45% { opacity: 1; transform: translate(575px, 190px); }
50% { opacity: 0; transform: translate(700px, 125px); }
}
/* Node 4: 50-65% border trace */
@keyframes node4Glow {
0%, 50%, 65%, 100% { stroke-dashoffset: 200; stroke: rgba(79, 71, 71, 0.2); filter: none; }
57% { stroke-dashoffset: 0; stroke: #00FF00; filter: drop-shadow(0 0 15px #00FF00); }
65%, 100% { stroke-dashoffset: 0; stroke: rgba(0, 255, 0, 0.9); filter: drop-shadow(0 0 10px #00FF00); }
}
/* Path 4: 65-75% from Merge Point to Node 4 */
@keyframes path4Glow {
0%, 65%, 75%, 100% { opacity: 0; stroke-dashoffset: 100; }
65%, 75% { opacity: 1; stroke-dashoffset: 0; filter: drop-shadow(0 0 12px #00FF00); }
75%, 100% { opacity: 1; stroke-dashoffset: 0; }
}
/* Spark 4: 65-75% moves along Path 4 (stroke-dasharray trail) */
@keyframes spark4Move {
0%, 65%, 75%, 100% { opacity: 0; }
70% { opacity: 1; transform: translate(700px, 125px); }
75% { opacity: 0; transform: translate(800px, 125px); }
}
/* Path 5: 75-90% from Node 4 to Node 5 */
@keyframes path5Glow {
0%, 75%, 90%, 100% { opacity: 0; stroke-dashoffset: 80; }
75%, 90% { opacity: 1; stroke-dashoffset: 0; filter: drop-shadow(0 0 12px #00FF00); }
90%, 100% { opacity: 1; stroke-dashoffset: 0; }
}
/* Spark 5: 75-90% moves along Path 5 (stroke-dasharray trail) */
@keyframes spark5Move {
0%, 75%, 90%, 100% { opacity: 0; }
82% { opacity: 1; transform: translate(800px, 125px); }
90% { opacity: 0; transform: translate(880px, 125px); }
}
/* Node 5: 75-90% border trace */
@keyframes node5Glow {
0%, 75%, 90%, 100% { stroke-dashoffset: 200; stroke: rgba(79, 71, 71, 0.2); filter: none; }
82% { stroke-dashoffset: 0; stroke: #00FF00; filter: drop-shadow(0 0 15px #00FF00); }
90%, 100% { stroke-dashoffset: 0; stroke: rgba(0, 255, 0, 0.9); filter: drop-shadow(0 0 10px #00FF00); }
}
/* Apply unified 12-second animations to all elements */
#node1-border { animation: node1Glow 12s infinite; }
#path1 { animation: path1Glow 12s infinite; }
#spark1 { animation: spark1Move 12s infinite; }
#node2-border { animation: node2Glow 12s infinite; }
#node3-border { animation: node3Glow 12s infinite; }
#path2a, #path2b { animation: path2Glow 12s infinite; }
#spark2a { animation: spark2aMove 12s infinite; }
#spark2b { animation: spark2bMove 12s infinite; }
#path3a, #path3b { animation: path3Glow 12s infinite; }
#spark3a { animation: spark3aMove 12s infinite; }
#spark3b { animation: spark3bMove 12s infinite; }
#node4-border { animation: node4Glow 12s infinite; }
#path4 { animation: path4Glow 12s infinite; }
#spark4 { animation: spark4Move 12s infinite; }
#node5-border { animation: node5Glow 12s infinite; }
#path5 { animation: path5Glow 12s infinite; }
#spark5 { animation: spark5Move 12s infinite; }
/* Node Tooltip Styles */
.node-tooltip {
position: absolute;
background: rgba(79, 71, 71, 0.95);
color: var(--primary-light);
padding: 12px 16px;
border-radius: 8px;
font-size: 14px;
line-height: 1.4;
max-width: 280px;
z-index: 1000;
pointer-events: none;
opacity: 0;
transform: translateY(-10px);
transition: all 0.3s ease;
box-shadow: 0 8px 25px rgba(79, 71, 71, 0.3);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.node-tooltip.show {
opacity: 1;
transform: translateY(0);
}
.node-tooltip::after {
content: '';
position: absolute;
bottom: -6px;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 6px solid rgba(79, 71, 71, 0.95);
}
/* Responsive adjustments */
@media (max-width: 768px) {
.electric-workflow {
height: 220px;
}
.workflow-nodes .node {
font-size: 1.2rem;
padding: 8px 16px;
min-width: 40px;
}
.node-tooltip {
font-size: 12px;
max-width: 220px;
padding: 10px 12px;
}
.workflow-nodes .node-1 { left: 5%; }
.workflow-nodes .node-2 { left: 35%; top: 20%; }
.workflow-nodes .node-3 { left: 35%; top: 80%; }
.workflow-nodes .node-4 { left: 65%; }
.workflow-nodes .node-5 { left: 85%; }
}
/* Phone System Visual - OLD STYLES (overridden by .phone-workflow) */
.phone-system:not(.phone-workflow) {
position: relative;
width: 100%;
height: 80px;
display: flex;
align-items: center;
justify-content: space-between;
}
.phone-icon {
width: 35px;
height: 35px;
background: linear-gradient(135deg, var(--primary-mid), var(--primary-dark));
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 1rem;
position: relative;
}
.phone-icon::after {
content: '';
position: absolute;
top: -5px;
right: -5px;
width: 12px;
height: 12px;
background: var(--accent-green);
border-radius: 50%;
/* animation: pulse 2s infinite; */
}
.waveform {
flex: 1;
height: 25px;
margin: 0 8px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.waveform-bar {
width: 3px;
height: 8px;
background: var(--accent-teal);
margin: 0 2px;
border-radius: 2px;
animation: wave 1s ease-in-out infinite;
}
.waveform-bar:nth-child(2) { animation-delay: 0.1s; height: 12px; }
.waveform-bar:nth-child(3) { animation-delay: 0.2s; height: 16px; }
.waveform-bar:nth-child(4) { animation-delay: 0.3s; height: 20px; }
.waveform-bar:nth-child(5) { animation-delay: 0.4s; height: 16px; }
.waveform-bar:nth-child(6) { animation-delay: 0.5s; height: 12px; }
.waveform-bar:nth-child(7) { animation-delay: 0.6s; height: 8px; }
@keyframes wave {
0%, 100% { transform: scaleY(1); }
50% { transform: scaleY(1.5); }
}
.ki-processor {
width: 38px;
height: 38px;
background: linear-gradient(135deg, var(--accent-teal), var(--accent-green));
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 1.2rem;
position: relative;
box-shadow: 0 4px 15px rgba(38, 166, 154, 0.3);
}
.ki-processor::before {
content: '';
position: absolute;
top: -3px;
left: -3px;
right: -3px;
bottom: -3px;
border: 2px solid rgba(38, 166, 154, 0.3);
border-radius: 17px;
/* animation: rotate 3s linear infinite; */
}
@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.crm-output {
width: 35px;
height: 35px;
background: rgba(79, 71, 71, 0.1);
border: 2px solid var(--primary-mid);
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
color: var(--primary-dark);
font-size: 1rem;
position: relative;
}
.crm-output::after {
content: '✓';
position: absolute;
bottom: -8px;
right: -8px;
width: 20px;
height: 20px;
background: var(--accent-green);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.8rem;
font-weight: bold;
}
/* Chat System Visual - OLD STYLES (overridden by .chat-workflow) */
.chat-system:not(.chat-workflow) {
position: relative;
width: 100%;
height: 80px;
display: flex;
align-items: center;
justify-content: space-between;
}
.website-input {
width: 50px;
height: 50px;
background: linear-gradient(135deg, var(--primary-mid), var(--primary-dark));
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 1.5rem;
position: relative;
}
.website-input::after {
content: '';
position: absolute;
top: -5px;
right: -5px;
width: 12px;
height: 12px;
background: var(--accent-green);
border-radius: 50%;
/* animation: pulse 2s infinite; */
}
.category-output {
width: 50px;
height: 50px;
background: rgba(102, 187, 106, 0.3);
border: 2px solid var(--accent-green);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
color: var(--accent-green);
font-size: 1.3rem;
position: relative;
}
.category-output::after {
content: '✓';
position: absolute;
bottom: -8px;
right: -8px;
width: 20px;
height: 20px;
background: var(--accent-green);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.8rem;
font-weight: bold;
}
.human-output {
width: 50px;
height: 50px;
background: rgba(79, 71, 71, 0.1);
border: 2px solid var(--primary-mid);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
color: var(--primary-dark);
font-size: 1.3rem;
position: relative;
}
/* Internal System Visual */
.internal-system {
position: relative;
width: 100%;
height: 80px;
display: flex;
align-items: center;
justify-content: space-between;
}
.search-input {
width: 50px;
height: 50px;
background: linear-gradient(135deg, var(--primary-mid), var(--primary-dark));
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 1.5rem;
position: relative;
}
.search-input::after {
content: '';
position: absolute;
top: -5px;
right: -5px;
width: 12px;
height: 12px;
background: var(--accent-green);
border-radius: 50%;
animation: pulse 2s infinite;
}
.documents-cloud {
width: 50px;
height: 50px;
background: rgba(79, 71, 71, 0.1);
border: 2px solid var(--primary-mid);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: var(--primary-dark);
font-size: 1.3rem;
position: relative;
}
.documents-cloud::before {
content: '';
position: absolute;
top: -3px;
left: -3px;
right: -3px;
bottom: -3px;
border: 1px dashed rgba(79, 71, 71, 0.3);
border-radius: 50%;
/* animation: rotate 4s linear infinite; */
}
.answer-output {
width: 50px;
height: 50px;
background: linear-gradient(135deg, rgba(255, 193, 7, 0.2), rgba(255, 152, 0, 0.2));
border: 2px solid rgba(255, 193, 7, 0.5);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: rgba(255, 193, 7, 0.8);
font-size: 1.3rem;
position: relative;
box-shadow: 0 0 20px rgba(255, 193, 7, 0.2);
}
.answer-output::after {
content: '';
position: absolute;
top: -5px;
left: -5px;
right: -5px;
bottom: -5px;
background: radial-gradient(circle, rgba(255, 193, 7, 0.3), transparent);
border-radius: 50%;
/* animation: glow 2s ease-in-out infinite; */
}
@keyframes glow {
0%, 100% { transform: scale(1); opacity: 0.5; }
50% { transform: scale(1.2); opacity: 0.8; }
}
/* ===== INTERNAL WORKFLOW - SVG ANIMATED FLOW ===== */
.internal-workflow {
position: relative;
width: 100%;
height: 120px;
display: flex;
align-items: center;
justify-content: center;
}
.internal-workflow-svg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.internal-nodes {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
pointer-events: none;
}
.int-node {
position: absolute;
width: 40px;
height: 40px;
background: rgba(255, 255, 255, 0.95);
border: 2px solid var(--primary-mid);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.2rem;
transition: all 0.3s ease;
pointer-events: auto;
}
.int-node svg {
width: 22px;
height: 22px;
}
/* Node positions - matching SVG viewBox 320x120, centered on node boxes */
.int-node-1 { left: 4.7%; top: 50%; transform: translate(0, -50%); }
.int-node-2 { left: 42.2%; top: 8.3%; transform: translate(0, 0); }
.int-node-3 { left: 42.2%; top: 58.3%; transform: translate(0, 0); }
.int-node-4 { left: 67.2%; top: 50%; transform: translate(0, -50%); }
.int-node-5 { left: 86%; top: 50%; transform: translate(0, -50%); }
/* Node border styling for SVG - hidden (no animation) */
.int-node-border {
display: none;
}
/* Glow path styling - hidden (no animation) */
.int-glow-path {
display: none;
}
/* ===== UNIFIED WORKFLOW STYLES (Phone, Chat, Internal) ===== */
.phone-workflow,
.chat-workflow {
position: relative;
width: 100%;
height: 120px;
display: flex;
align-items: center;
justify-content: center;
}
.workflow-svg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.workflow-nodes {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
pointer-events: none;
}
.wf-node {
position: absolute;
width: 40px;
height: 40px;
background: rgba(255, 255, 255, 0.95);
border: 2px solid var(--primary-mid);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.2rem;
transition: all 0.3s ease;
pointer-events: auto;
}
.wf-node svg {
width: 22px;
height: 22px;
}
/* Linear 4-node workflow positions (Phone & Chat) - viewBox 280x120 */
/* Nodes at x: 10, 90, 170, 250 (center of 40px boxes) */
.wf-node-1 { left: 3.6%; top: 50%; transform: translate(0, -50%); }
.wf-node-2 { left: 32.1%; top: 50%; transform: translate(0, -50%); }
.wf-node-3 { left: 60.7%; top: 50%; transform: translate(0, -50%); }
.wf-node-4 { left: 82.1%; top: 50%; transform: translate(0, -50%); }
/* Responsive adjustments for workflow */
@media (max-width: 768px) {
.phone-workflow,
.chat-workflow {
height: 100px;
}
.wf-node {
width: 32px;
height: 32px;
font-size: 1rem;
}
}
@media (max-width: 480px) {
.phone-workflow,
.chat-workflow {
height: 90px;
}
.wf-node {
width: 28px;
height: 28px;
font-size: 0.9rem;
border-radius: 6px;
}
}
/* Responsive adjustments for internal workflow */
@media (max-width: 768px) {
.internal-workflow {
height: 100px;
}
.int-node {
width: 32px;
height: 32px;
font-size: 1rem;
}
}
@media (max-width: 480px) {
.internal-workflow {
height: 90px;
}
.int-node {
width: 28px;
height: 28px;
font-size: 0.9rem;
border-radius: 6px;
}
}
.chat-message {
background: transparent;
border-radius: 8px;
padding: 12px;
margin-bottom: 10px;
font-size: 0.9rem;
}
.chat-message.user {
background: transparent;
}
.chat-message.ai {
background: transparent;
}
.chat-label {
background: var(--accent-teal);
color: white;
padding: 4px 8px;
border-radius: 4px;
font-size: 0.75rem;
font-weight: 600;
margin-bottom: 10px;
display: inline-block;
}
.data-card {
background: rgba(255, 255, 255, 0.6);
border: 1px solid rgba(79, 71, 71, 0.1);
border-radius: 8px;
padding: 12px;
margin-top: 10px;
}
.card-field {
font-size: 0.85rem;
color: var(--primary-mid);
margin-bottom: 4px;
}
.search-flow {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
max-width: 300px;
}
.search-field {
background: rgba(79, 71, 71, 0.05);
border: 1px solid rgba(79, 71, 71, 0.1);
border-radius: 8px;
padding: 12px;
width: 100%;
text-align: center;
font-size: 0.9rem;
}
.documents {
font-size: 1.5rem;
}
.answer-card {
background: rgba(102, 187, 106, 0.2);
border: 1px solid var(--accent-green);
border-radius: 8px;
padding: 12px;
width: 100%;
text-align: center;
font-weight: 600;
color: var(--primary-dark);
}
.system-card h3 {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 20px;
color: var(--primary-dark);
}
.system-details {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30px;
}
.what-it-does h4,
.result h4 {
font-size: 1rem;
font-weight: 600;
margin-bottom: 12px;
color: var(--primary-dark);
}
.what-it-does ul,
.result ul {
list-style: none;
padding: 0;
}
.what-it-does li,
.result li {
font-size: 0.9rem;
line-height: 1.5;
margin-bottom: 8px;
padding-left: 20px;
position: relative;
}
.what-it-does li::before {
content: '→';
position: absolute;
left: 0;
color: var(--primary-mid);
}
.result li::before {
content: '✓';
position: absolute;
left: 0;
color: var(--accent-green);
font-weight: bold;
}
/* ===== QUALIFICATION SECTION ===== */
.qualification-section {
padding: 100px 40px;
background: transparent;
}
.qualification-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
max-width: 1200px;
margin: 0 auto;
}
.qual-left {
background: linear-gradient(135deg, rgba(244, 67, 54, 0.3), rgba(244, 67, 54, 0.2));
border: 2px solid rgba(244, 67, 54, 0.4);
border-radius: 20px;
padding: 40px;
position: relative;
overflow: hidden;
backdrop-filter: blur(15px);
transition: all 0.3s ease;
}
.qual-left::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(90deg, rgba(244, 67, 54, 0.6), rgba(244, 67, 54, 0.2));
}
.qual-left:hover {
transform: translateY(-4px);
box-shadow: 0 20px 40px rgba(244, 67, 54, 0.15);
border-color: rgba(244, 67, 54, 0.3);
}
.qual-right {
background: linear-gradient(135deg, rgba(102, 187, 106, 0.3), rgba(102, 187, 106, 0.2));
border: 2px solid rgba(102, 187, 106, 0.4);
border-radius: 20px;
padding: 40px;
position: relative;
overflow: hidden;
backdrop-filter: blur(15px);
transition: all 0.3s ease;
}
.qual-right::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(90deg, rgba(102, 187, 106, 0.6), rgba(102, 187, 106, 0.2));
}
.qual-right:hover {
transform: translateY(-4px);
box-shadow: 0 20px 40px rgba(102, 187, 106, 0.15);
border-color: rgba(102, 187, 106, 0.3);
}
.qualification-grid h3 {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 30px;
color: var(--primary-dark);
}
.qual-list {
list-style: none;
padding: 0;
}
.qual-item {
display: flex;
align-items: center;
gap: 16px;
margin-bottom: 20px;
font-size: 1rem;
line-height: 1.5;
}
.qual-icon {
width: 44px;
height: 44px;
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.3rem;
flex-shrink: 0;
position: relative;
transition: all 0.3s ease;
}
.qual-icon.chaos {
background: linear-gradient(135deg, rgba(244, 67, 54, 0.3), rgba(244, 67, 54, 0.2));
border: 2px solid rgba(244, 67, 54, 0.4);
position: relative;
}
.qual-icon.chaos::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 20px;
height: 20px;
background: rgba(244, 67, 54, 0.2);
border-radius: 4px;
transform: translate(-50%, -50%) rotate(45deg);
}
.qual-icon.chaos::after {
content: '✕';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: rgba(244, 67, 54, 0.6);
font-size: 1rem;
font-weight: bold;
}
.qual-icon.check {
background: linear-gradient(135deg, rgba(102, 187, 106, 0.3), rgba(102, 187, 106, 0.2));
border: 2px solid rgba(102, 187, 106, 0.4);
color: #4CAF50;
font-weight: bold;
position: relative;
}
.qual-icon.check::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 24px;
height: 24px;
background: rgba(102, 187, 106, 0.2);
border-radius: 50%;
animation: checkPulse 2s ease-in-out infinite;
}
@keyframes checkPulse {
0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.3; }
50% { transform: translate(-50%, -50%) scale(1.3); opacity: 0.6; }
}
/* ===== PROCESS SECTION ===== */
.process-section {
padding: 100px 40px;
background: transparent;
position: relative;
overflow: hidden;
}
.process-line {
display: flex;
align-items: center;
justify-content: center;
gap: 0;
margin-bottom: 60px;
max-width: 800px;
margin-left: auto;
margin-right: auto;
position: relative;
z-index: 2;
}
.process-step {
display: flex;
flex-direction: column;
align-items: center;
gap: 16px;
position: relative;
z-index: 3;
}
.step-circle {
width: 80px;
height: 80px;
border-radius: 50%;
background: white;
border: 3px solid var(--primary-mid);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
font-weight: 700;
color: var(--primary-mid);
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
cursor: pointer;
position: relative;
overflow: hidden;
box-shadow: 0 4px 15px rgba(79, 71, 71, 0.1);
}
.step-circle::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) scale(0);
width: 100%;
height: 100%;
background: radial-gradient(circle, var(--accent-teal), var(--accent-green));
border-radius: 50%;
transition: all 0.4s ease;
z-index: -1;
}
.step-circle.active {
background: var(--accent-teal);
border-color: var(--accent-teal);
color: white;
box-shadow: 0 12px 40px rgba(38, 166, 154, 0.4);
transform: scale(1.1);
}
.step-circle.active::before {
transform: translate(-50%, -50%) scale(1);
opacity: 0.3;
}
.step-circle:hover {
transform: scale(1.05);
box-shadow: 0 8px 25px rgba(79, 71, 71, 0.15);
}
.step-circle.active:hover {
transform: scale(1.15);
box-shadow: 0 15px 45px rgba(38, 166, 154, 0.5);
}
.step-label {
font-size: 1.1rem;
font-weight: 600;
color: var(--primary-dark);
transition: all 0.3s ease;
opacity: 0.7;
}
.step-circle.active + .step-label {
opacity: 1;
color: var(--accent-teal);
font-weight: 700;
}
.process-connector {
width: 100px;
height: 3px;
background: var(--primary-mid);
opacity: 0.3;
transition: all 0.4s ease;
position: relative;
overflow: hidden;
}
.process-connector::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, var(--accent-teal), transparent);
transition: all 0.4s ease;
}
.process-connector.active {
background: var(--accent-teal);
opacity: 1;
height: 4px;
box-shadow: 0 0 10px rgba(38, 166, 154, 0.3);
}
.process-connector.active::before {
left: 100%;
transition: left 0.8s ease;
}
.process-details {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 40px;
max-width: 1200px;
margin: 0 auto;
position: relative;
z-index: 2;
}
.step-detail {
background: rgba(255, 255, 255, 0.8);
border: 1px solid rgba(79, 71, 71, 0.1);
border-radius: 20px;
padding: 30px;
backdrop-filter: blur(20px);
opacity: 0.3;
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
position: relative;
overflow: hidden;
transform: translateY(20px);
}
.step-detail::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(90deg, var(--accent-teal), var(--accent-green));
transform: scaleX(0);
transform-origin: left;
transition: transform 0.4s ease;
}
.step-detail.active {
opacity: 1;
transform: translateY(-4px);
box-shadow: 0 20px 40px rgba(79, 71, 71, 0.15);
border-color: var(--accent-teal);
}
.step-detail.active::before {
transform: scaleX(1);
}
.step-detail:hover {
transform: translateY(-8px);
box-shadow: 0 25px 50px rgba(79, 71, 71, 0.2);
}
.step-detail.active:hover {
transform: translateY(-12px);
box-shadow: 0 30px 60px rgba(38, 166, 154, 0.25);
}
.step-detail h3 {
font-size: 1.3rem;
font-weight: 700;
margin-bottom: 16px;
color: var(--primary-dark);
}
.step-detail p {
font-size: 1rem;
line-height: 1.6;
color: var(--primary-mid);
}
/* ===== ERGEBNISSE SECTION ===== */
.results-section {
padding: 100px 40px;
background: transparent;
position: relative;
overflow: hidden;
}
.results-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 30px;
max-width: 1200px;
margin: 0 auto;
position: relative;
z-index: 2;
}
.data-card {
background: rgba(255, 255, 255, 0.25);
backdrop-filter: blur(25px);
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 20px;
padding: 35px;
text-align: center;
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
position: relative;
overflow: hidden;
box-shadow: 0 8px 32px rgba(79, 71, 71, 0.1);
}
.data-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg,
transparent,
rgba(255, 255, 255, 0.6),
transparent);
}
.data-card::after {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
opacity: 0;
transition: opacity 0.3s ease;
pointer-events: none;
}
.data-card:hover {
transform: translateY(-12px) scale(1.02);
box-shadow: 0 25px 60px rgba(79, 71, 71, 0.15);
border-color: rgba(38, 166, 154, 0.3);
background: rgba(255, 255, 255, 0.35);
}
.data-card:hover::after {
opacity: 1;
}
.card-metric {
font-size: 3.2rem;
font-weight: 800;
color: var(--accent-teal);
margin-bottom: 15px;
background: linear-gradient(135deg, var(--accent-teal), var(--accent-green));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
position: relative;
display: inline-block;
transition: all 0.3s ease;
}
.card-metric::before {
content: attr(data-metric);
position: absolute;
top: 0;
left: 0;
background: linear-gradient(135deg, var(--accent-green), var(--accent-teal));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
opacity: 0;
transition: opacity 0.3s ease;
}
.data-card:hover .card-metric::before {
opacity: 1;
}
.card-label {
font-size: 1.15rem;
font-weight: 600;
color: var(--primary-dark);
margin-bottom: 10px;
transition: color 0.3s ease;
}
.data-card:hover .card-label {
color: var(--accent-teal);
}
.card-detail {
font-size: 0.95rem;
color: var(--primary-mid);
line-height: 1.5;
opacity: 0.8;
transition: opacity 0.3s ease;
}
.data-card:hover .card-detail {
opacity: 1;
}
/* ===== INTERACTION SECTION ===== */
.interaction-section {
padding: 100px 40px;
background: transparent;
position: relative;
overflow: hidden;
}
.interaction-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
gap: 40px;
max-width: 1000px;
margin: 0 auto;
position: relative;
z-index: 2;
}
.interaction-card {
background: rgba(255, 255, 255, 0.9);
border: 1px solid rgba(79, 71, 71, 0.1);
border-radius: 24px;
padding: 45px;
text-align: center;
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
cursor: pointer;
position: relative;
overflow: hidden;
backdrop-filter: blur(20px);
box-shadow: 0 8px 32px rgba(79, 71, 71, 0.1);
}
.interaction-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 3px;
background: linear-gradient(90deg, var(--accent-teal), var(--accent-green));
transform: scaleX(0);
transform-origin: left;
transition: transform 0.4s ease;
}
.interaction-card:hover {
transform: translateY(-16px) scale(1.02);
box-shadow: 0 30px 70px rgba(79, 71, 71, 0.2);
border-color: var(--accent-teal);
background: rgba(255, 255, 255, 0.95);
}
.interaction-card:hover::before {
transform: scaleX(1);
}
.card-visual {
margin-bottom: 35px;
height: 140px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.microphone {
position: relative;
width: 90px;
height: 90px;
background: linear-gradient(135deg, var(--accent-teal), var(--accent-green));
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
box-shadow: 0 8px 30px rgba(38, 166, 154, 0.3);
overflow: hidden;
}
.microphone::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: linear-gradient(45deg, transparent, rgba(255, 255, 255, 0.1), transparent);
transform: rotate(45deg);
transition: all 0.6s ease;
opacity: 0;
}
.microphone:hover {
transform: scale(1.15);
box-shadow: 0 15px 50px rgba(38, 166, 154, 0.5);
}
.microphone:hover::before {
animation: shimmer 0.6s ease;
}
.mic-icon {
font-size: 2.2rem;
color: white;
position: relative;
z-index: 2;
transition: transform 0.3s ease;
}
.microphone:hover .mic-icon {
transform: scale(1.1);
}
.pulse-ring {
position: absolute;
top: -15px;
left: -15px;
right: -15px;
bottom: -15px;
border: 3px solid var(--accent-teal);
border-radius: 50%;
animation: pulse 2s infinite;
opacity: 0;
}
.microphone:hover .pulse-ring {
animation: pulse 1s infinite;
}
.microphone:active .pulse-ring {
animation: pulseRapid 0.5s infinite;
}
@keyframes pulseRapid {
0% { transform: scale(1); opacity: 0.8; }
50% { transform: scale(1.2); opacity: 0.4; }
100% { transform: scale(1); opacity: 0.8; }
}
@keyframes pulse {
0% {
transform: scale(1);
opacity: 0.8;
}
100% {
transform: scale(1.3);
opacity: 0;
}
}
.chat-window {
background: white;
border: 2px solid rgba(79, 71, 71, 0.1);
border-radius: 16px;
width: 320px;
height: 400px !important;
overflow: hidden;
box-shadow: 0 8px 25px rgba(79, 71, 71, 0.1);
transition: all 0.3s ease;
display: flex;
flex-direction: column;
}
.interaction-card:hover .chat-window {
transform: scale(1.05);
box-shadow: 0 12px 35px rgba(79, 71, 71, 0.15);
border-color: var(--accent-teal);
}
.chat-header {
background: linear-gradient(135deg, var(--accent-teal), var(--accent-green));
color: white;
padding: 14px 18px;
font-weight: 600;
text-align: center;
position: relative;
overflow: hidden;
flex-shrink: 0;
min-height: 50px;
display: flex;
align-items: center;
justify-content: center;
}
.chat-header::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
transition: left 0.8s ease;
}
.interaction-card:hover .chat-header::before {
left: 100%;
}
.chat-messages {
padding: 25px;
flex: 1;
overflow-y: auto !important;
max-height: 300px !important;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;
background: transparent;
min-height: 0;
}
/* Chat message styling */
.chat-message {
width: 100%;
margin-bottom: 12px;
display: flex;
flex-direction: column;
background: transparent;
}
.chat-message.user {
align-items: flex-end;
justify-content: flex-end;
}
.chat-message.ki {
align-items: flex-start;
justify-content: flex-start;
}
.message-content {
background: transparent;
padding: 12px 16px;
border-radius: 16px;
box-shadow: none;
max-width: 80%;
word-wrap: break-word;
line-height: 1.4;
display: inline-block;
text-align: left;
}
.chat-message.user .message-content {
background: var(--accent-green);
color: white;
}
.chat-message.ki .message-content {
background: var(--accent-green);
color: white;
border-left: none;
}
.message-time {
font-size: 11px;
color: var(--primary-mid);
margin-top: 4px;
opacity: 0.7;
}
/* Custom scrollbar for chat messages */
.chat-messages::-webkit-scrollbar {
width: 6px;
}
.chat-messages::-webkit-scrollbar-track {
background: rgba(79, 71, 71, 0.1);
border-radius: 3px;
}
.chat-messages::-webkit-scrollbar-thumb {
background: rgba(79, 71, 71, 0.3);
border-radius: 3px;
}
.chat-messages::-webkit-scrollbar-thumb:hover {
background: rgba(79, 71, 71, 0.5);
}
/* Chat input container styling */
.chat-input-container {
display: flex;
gap: 10px;
align-items: center;
padding: 15px 20px;
background: white;
border-top: 1px solid rgba(79, 71, 71, 0.1);
flex-shrink: 0;
min-height: 60px;
}
.chat-input {
flex: 1;
border: 1px solid rgba(79, 71, 71, 0.2);
border-radius: 25px;
padding: 12px 16px;
font-size: 14px;
outline: none;
transition: border-color 0.3s ease;
background: rgba(255, 255, 255, 0.8);
}
.chat-input:focus {
border-color: var(--accent-teal);
background: white;
}
.chat-input-container .interaction-btn {
flex-shrink: 0;
padding: 12px 20px;
font-size: 14px;
}
.chat-send {
background: var(--accent-teal);
color: white;
border: none;
border-radius: 50%;
width: 70px;
height: 70px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s ease;
flex-shrink: 0;
padding: 0;
margin-left: 10px;
box-shadow: 0 2px 8px rgba(38, 166, 154, 0.3);
}
.chat-send:hover {
background: #1e8e82;
transform: scale(1.05);
box-shadow: 0 4px 12px rgba(38, 166, 154, 0.4);
}
.chat-send:active {
transform: scale(0.95);
}
.chat-send img {
width: 64px;
height: 64px;
filter: brightness(0) invert(1);
object-fit: contain;
}
.interaction-card h3 {
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 12px;
color: var(--primary-dark);
}
.interaction-card p {
font-size: 1rem;
line-height: 1.5;
color: var(--primary-mid);
margin-bottom: 24px;
}
.interaction-btn {
padding: 14px 28px;
border: none;
border-radius: 8px;
font-size: 1rem;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
text-decoration: none;
display: inline-block;
}
.interaction-btn.primary {
background: linear-gradient(135deg, var(--accent-green), var(--accent-teal));
color: white;
box-shadow: 0 4px 20px rgba(102, 187, 106, 0.3);
}
.interaction-btn.primary:hover {
transform: translateY(-2px);
box-shadow: 0 8px 30px rgba(102, 187, 106, 0.4);
}
.interaction-btn.secondary {
background: white;
color: var(--primary-dark);
border: 2px solid var(--primary-dark);
}
.interaction-btn.secondary:hover {
background: var(--primary-dark);
color: white;
transform: translateY(-2px);
}
/* ===== RESPONSIVE DESIGN ===== */
/* Ultra-wide monitors (16:9, 16:10 - 1920px+) */
@media (min-width: 1920px) {
.hero-container {
max-width: 1600px;
gap: 100px;
}
.hero-headline {
font-size: 4rem;
}
.hero-subline,
.hero-proof {
font-size: 1.4rem;
}
.hero-right {
height: 600px;
}
.system-graphic {
transform: scale(1.1);
}
.node {
min-width: 140px;
padding: 20px;
}
.central-node {
min-width: 160px;
max-width: 180px;
padding: 12px 24px;
}
.section-headline {
font-size: 3rem;
}
.systeme-grid {
gap: 50px;
max-width: 1800px;
}
.system-card {
padding: 50px;
}
.results-grid {
max-width: 1400px;
}
.data-card {
padding: 45px;
}
.card-metric {
font-size: 4rem;
}
}
/* Extra large screens (2560px+) */
@media (min-width: 2560px) {
.hero-container {
max-width: 2000px;
gap: 120px;
}
.hero-headline {
font-size: 4.5rem;
}
.hero-right {
height: 700px;
}
.system-graphic {
transform: scale(1.2);
}
.container {
max-width: 1800px;
}
.systeme-grid {
max-width: 2200px;
}
}
/* Common laptop resolutions (1366x768, 1440x900) */
@media (max-width: 1440px) and (min-width: 1025px) {
.hero-container {
max-width: 1100px;
gap: 30px;
}
.hero-right {
height: 360px;
max-width: 520px;
overflow: hidden;
position: relative;
}
.system-graphic {
max-width: 100%;
height: 100%;
transform: scale(0.8);
transform-origin: center center;
overflow: hidden;
}
.hero-headline {
font-size: clamp(2rem, 3.2vw, 2.8rem);
}
.hero-subline,
.hero-proof {
font-size: 1rem;
}
.node {
min-width: 65px;
padding: 5px;
font-size: 0.8rem;
}
.central-node {
min-width: 100px;
max-width: 120px;
font-size: 0.85rem;
}
.node-icon {
width: 22px !important;
height: 22px !important;
}
.node-metrics {
font-size: 0.7rem;
}
}
/* 4:3 and portrait-ish aspect ratio handling */
@media (max-aspect-ratio: 4/3) and (min-width: 769px) {
.hero-section {
min-height: auto;
padding-top: 100px;
padding-bottom: 40px;
}
.hero-container {
gap: 30px;
}
.hero-right {
height: 380px;
}
}
@media (max-width: 1024px) {
.hero-container {
grid-template-columns: 1fr;
gap: 30px;
text-align: center;
}
.hero-left {
max-width: 100%;
}
.hero-right {
height: 350px;
order: -1;
max-width: 500px;
margin: 0 auto;
width: 100%;
overflow: hidden;
position: relative;
}
.system-graphic {
max-width: 100%;
height: 100%;
transform: scale(0.75);
transform-origin: center center;
overflow: hidden;
}
.system-details {
grid-template-columns: 1fr;
gap: 20px;
}
.qualification-grid {
grid-template-columns: 1fr;
gap: 40px;
}
.interaction-cards {
grid-template-columns: 1fr;
}
}
@media (max-width: 768px) {
.hero-section {
padding: 90px 15px 30px;
min-height: auto;
}
.hero-headline {
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 {
justify-content: center;
gap: 12px;
}
.cta-btn {
padding: 12px 20px;
font-size: 0.95rem;
}
.systeme-section,
.qualification-section,
.process-section,
.results-section,
.interaction-section {
padding: 40px 15px;
}
.section-headline {
font-size: 1.6rem;
}
/* Keep systeme-grid layout consistent across all devices - no layout changes needed */
.results-grid {
grid-template-columns: 1fr;
}
.process-line {
flex-direction: column;
gap: 15px;
}
.process-connector {
width: 3px;
height: 40px;
}
.hero-container {
grid-template-columns: 1fr;
gap: 25px;
text-align: center;
}
/* Hero right (system graphic) comes AFTER hero left (text) on mobile */
.hero-right {
height: 350px;
margin-top: 10px;
order: 1;
max-width: 100%;
overflow: hidden;
}
.hero-left {
order: 0;
}
.system-graphic {
transform: scale(0.75);
transform-origin: center center;
width: 100%;
margin-left: 0;
}
.central-node {
min-width: 110px;
max-width: 130px;
padding: 8px 14px;
border-radius: 18px;
}
.central-node .node-icon {
font-size: 1.1rem;
}
.central-node .node-label {
font-size: 0.75rem;
}
.node {
min-width: 70px;
padding: 8px;
font-size: 0.8rem;
}
.node-icon {
font-size: 1.2rem;
}
.node .node-icon img {
width: 36px !important;
height: 36px !important;
}
.node-label {
font-size: 0.7rem;
}
/* Keep consistent grid layout - no absolute positioning needed */
}
/* Extra small screens */
@media (max-width: 480px) {
.hero-section {
padding: 80px 10px 20px;
}
.hero-headline {
font-size: 1.3rem;
}
.hero-subline,
.hero-proof {
font-size: 0.85rem;
padding: 10px 12px;
}
.hero-right {
height: 300px;
overflow: hidden;
}
.system-graphic {
transform: scale(0.65);
transform-origin: center center;
width: 100%;
margin-left: 0;
}
.central-node {
min-width: 100px;
max-width: 120px;
padding: 6px 10px;
}
.node {
min-width: 65px;
padding: 6px;
}
.node .node-icon img {
width: 30px !important;
height: 30px !important;
}
.node-icon {
font-size: 1rem;
}
.node-label {
font-size: 0.65rem;
}
.cta-btn {
padding: 10px 16px;
font-size: 0.9rem;
}
.data-card {
padding: 20px;
}
.card-metric {
font-size: 2.2rem;
}
}