Dateien
Website/css/style.css
AegisSight acb12e28b4 Formularfelder stehen wieder auf einer Linie
Der Zusatz "optional" stand als eigene Zeile unter dem Feldnamen. Dadurch
wurde das Label dreizeilig und das Feld rutschte gegenueber dem Nachbarn
um bis zu 48 Pixel nach unten, die Reihen wirkten schief. Der Zusatz
steht jetzt in derselben Zeile, und die Labels einer Reihe haben eine
gemeinsame Mindesthoehe, damit die Felder unabhaengig von der Textlaenge
auf einer Linie beginnen. Auf dem Telefon steht jedes Feld ohnehin allein,
dort entfaellt die Mindesthoehe.
2026-07-22 23:06:09 +02:00

530 Zeilen
33 KiB
CSS

/* AegisSight Monitor - Product Page v2 (Light Mode) */
/* Fonts */
@font-face { font-family:'Inter'; src:url('/assets/fonts/Inter-Regular.woff2') format('woff2'),url('/assets/fonts/Inter-Regular.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face { font-family:'Inter'; src:url('/assets/fonts/Inter-SemiBold.woff2') format('woff2'),url('/assets/fonts/Inter-SemiBold.ttf') format('truetype'); font-weight:600; font-display:swap; }
@font-face { font-family:'Inter'; src:url('/assets/fonts/Inter-Bold.woff2') format('woff2'),url('/assets/fonts/Inter-Bold.ttf') format('truetype'); font-weight:700; font-display:swap; }
@font-face { font-family:'Inter'; src:url('/assets/fonts/Inter-Light.woff2') format('woff2'),url('/assets/fonts/Inter-Light.ttf') format('truetype'); font-weight:300; font-display:swap; }
:root {
--navy: #0A1832;
--navy-light: #132844;
--gold: #C8A851;
--gold-light: #D4B96A;
--gold-dark: #B39645;
--white: #FAFBFD;
--base: #F5F7FA;
--alt: #EDF0F5;
--alt-solid: #F0F3F7;
--gray-100: #E4E8EE;
--gray-200: #D0D5DE;
--gray-400: #9AA5B4;
--gray-600: #5A6478;
--text: #2A2F3A;
--text-light: #5A6478;
--radius: 8px;
--radius-lg: 12px;
--shadow: 0 2px 12px rgba(10,24,50,0.06);
--shadow-lg: 0 8px 32px rgba(10,24,50,0.1);
--nav-height: 72px;
}
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:var(--nav-height); }
body { font-family:'Inter',system-ui,-apple-system,sans-serif; font-size:16px; line-height:1.6; color:var(--text); background:var(--base); -webkit-font-smoothing:antialiased; }
img { max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
.container { max-width:1120px; margin:0 auto; padding:0 24px; }
/* ==================== NAV ==================== */
.navbar { position:fixed; top:0; left:0; right:0; height:var(--nav-height); background:rgba(250,251,253,0.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); z-index:1000; transition:box-shadow 0.3s; }
.navbar.scrolled { box-shadow:0 1px 16px rgba(10,24,50,0.08); }
.nav-container { max-width:1120px; margin:0 auto; padding:0 24px; height:100%; display:flex; align-items:center; justify-content:space-between; }
.nav-logo { display:flex; align-items:center; }
.logo-img { height:36px; width:auto; }
.nav-menu { list-style:none; display:flex; gap:32px; }
.nav-menu a { font-size:0.9rem; font-weight:500; color:var(--navy); transition:color 0.2s; }
.nav-menu a:hover { color:var(--gold); }
.nav-extras { display:flex; align-items:center; gap:18px; }
/* Testzugang-Knopf in der Navigation */
.nav-cta { display:inline-block; background:var(--gold); color:var(--navy); font-size:0.88rem; font-weight:600; padding:9px 18px; border-radius:var(--radius); white-space:nowrap; transition:background 0.2s; }
.nav-cta:hover { background:var(--gold-dark); color:var(--navy); }
.mobile-menu .nav-cta { display:block; text-align:center; margin:10px 0 4px; padding:13px 18px; font-size:1rem; }
/* Zwei Knoepfe nebeneinander im Kontakt-Abschnitt */
.cta-buttons { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
.mobile-menu-toggle { display:none; background:none; border:none; cursor:pointer; width:32px; height:24px; position:relative; flex-direction:column; justify-content:space-between; }
.mobile-menu-toggle span { display:block; width:100%; height:2px; background:var(--navy); border-radius:2px; transition:transform 0.3s,opacity 0.3s; }
.mobile-menu-toggle.active span:nth-child(1) { transform:rotate(45deg) translate(7px,7px); }
.mobile-menu-toggle.active span:nth-child(2) { opacity:0; }
.mobile-menu-toggle.active span:nth-child(3) { transform:rotate(-45deg) translate(7px,-7px); }
.mobile-menu { position:fixed; top:var(--nav-height); left:0; right:0; background:var(--white); padding:16px 24px 24px; box-shadow:var(--shadow-lg); transform:translateY(-100%); opacity:0; transition:transform 0.3s,opacity 0.3s; z-index:999; pointer-events:none; }
.mobile-menu.open { transform:translateY(0); opacity:1; pointer-events:all; }
.mobile-menu ul { list-style:none; }
.mobile-menu li { border-bottom:1px solid var(--gray-100); }
.mobile-menu a { display:block; padding:14px 0; font-size:1rem; font-weight:500; color:var(--navy); }
.mobile-overlay { position:fixed; inset:0; background:rgba(10,24,50,0.3); z-index:998; opacity:0; pointer-events:none; transition:opacity 0.3s; }
.mobile-overlay.open { opacity:1; pointer-events:all; }
/* ==================== HERO (Full-Video mit Endcard) ==================== */
.hero { position:relative; min-height:88vh; overflow:hidden; background:var(--navy); clip-path:polygon(0 0, 100% 0, 100% calc(100% - 60px), 50% 100%, 0 calc(100% - 60px)); margin-bottom:-60px; z-index:1; }
.gold { color:var(--gold); font-weight:600; }
/* Overlay-Layer für Text + Navigation */
.hero-content { position:absolute; inset:0; z-index:4; color:var(--white); pointer-events:none; }
.hero-content > * { pointer-events:auto; }
/* Brand (Titel + Tagline): nur während Endcard sichtbar, in Hero-Mitte */
.hero-brand { position:absolute; top:50%; left:0; right:0; padding:0 24px; text-align:center; transform:translateY(-50%); opacity:0; transition:opacity 0.5s ease; pointer-events:none; }
.hero.endcard .hero-brand { opacity:1; transition-delay:0.35s; pointer-events:auto; }
.hero-title { font-size:3.2rem; font-weight:700; line-height:1.1; letter-spacing:-0.02em; color:var(--white); margin:0; }
.hero-tagline { font-size:1.2rem; font-weight:300; color:rgba(255,255,255,0.9); margin-top:12px; }
/* ==================== HERO SLIDER ==================== */
/* Slider: unter der Navbar beginnen, oberhalb der Dots-Zone enden (60px Reserve fuer Dots) */
.hero-slider { position:absolute; top:var(--nav-height); left:0; right:0; bottom:60px; z-index:1; }
.hero-slide { position:absolute; inset:0; opacity:0; transition:opacity 0.6s ease; pointer-events:none; }
.hero-slide.active { opacity:1; pointer-events:auto; }
.hero-slide.exiting { opacity:0; transition:opacity 0.4s ease; }
/* Video füllt den Slide (contain = komplett sichtbar, Navy-Letterbox) */
.hero-slide-video { position:absolute; inset:0; overflow:hidden; transition:opacity 0.4s ease; }
.hero-slide-video video { display:block; width:100%; height:100%; object-fit:contain; background:var(--navy); }
/* Beim Endcard-State Video ausfaden */
.hero-slide.ended .hero-slide-video { opacity:0; }
/* Per-Slide-Bottom (Beispieltext + CTA): nur während Endcard sichtbar, unter dem Titel */
.hero-slide-bottom { position:absolute; left:0; right:0; bottom:140px; padding:0 32px; text-align:center; opacity:0; transition:opacity 0.5s ease; pointer-events:none; }
.hero-slide.ended .hero-slide-bottom { opacity:1; transition-delay:0.5s; pointer-events:auto; }
.hero-slide-example { font-size:1.15rem; font-weight:400; line-height:1.55; color:rgba(255,255,255,0.9); margin:0 auto 24px; max-width:820px; padding:0; border:0; }
.hero-slide-cta { display:flex; gap:16px; flex-wrap:wrap; justify-content:center; }
.hero-slide-cta .btn-placeholder { opacity:0.5; cursor:default; border-style:dashed; pointer-events:none; }
/* Slider-Navigation: Dots zentriert ganz unten im Chevron-Band, ausserhalb des Video-Bereichs. */
.hero-slider-nav { position:absolute; left:0; right:0; bottom:22px; display:flex; justify-content:center; padding:0 24px; pointer-events:none; z-index:5; }
.hero-slider-dots { display:flex; gap:12px; pointer-events:auto; }
.hero-dot { width:10px; height:10px; border-radius:50%; border:2px solid var(--gold); background:transparent; cursor:pointer; transition:all 0.3s; padding:0; }
.hero-dot.active { background:var(--gold); }
.hero-slider-arrows { /* Container - Pfeile positionieren sich absolut relativ zu hero-content */ }
.hero-arrow { position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%; border:1px solid rgba(255,255,255,0.35); background:rgba(10,24,50,0.35); color:var(--white); font-size:1.2rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.2s; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); z-index:5; }
.hero-arrow:hover { border-color:var(--gold); color:var(--gold); background:rgba(10,24,50,0.6); }
.hero-arrow-prev { left:24px; }
.hero-arrow-next { right:24px; }
/* Altes hero-overlay nicht mehr verwendet */
.hero-overlay { display:none; }
/* ==================== BUTTONS ==================== */
.btn { display:inline-flex; align-items:center; justify-content:center; padding:12px 28px; border-radius:var(--radius); font-family:inherit; font-size:0.95rem; font-weight:600; cursor:pointer; transition:all 0.2s; border:2px solid transparent; text-decoration:none; }
.btn-primary { background:var(--gold); color:var(--navy); border-color:var(--gold); }
.btn-primary:hover { background:var(--gold-dark); border-color:var(--gold-dark); }
.btn-outline-light { background:transparent; color:var(--white); border-color:rgba(255,255,255,0.4); }
.btn-outline-light:hover { background:rgba(255,255,255,0.1); border-color:var(--white); }
.btn-outline { background:transparent; color:var(--navy); border-color:var(--navy); }
.btn-outline:hover { background:var(--navy); color:var(--white); }
.btn-lg { padding:16px 40px; font-size:1.05rem; }
.btn-block { width:100%; }
/* ==================== SECTIONS ==================== */
.section { padding:88px 0; }
.section-base { background:var(--base); }
.section-alt { background:var(--alt-solid); }
.section-dark { background:var(--navy-light); color:var(--white); }
.section-title { font-size:2rem; font-weight:700; color:var(--navy); text-align:center; margin-bottom:16px; letter-spacing:-0.01em; }
.section-dark .section-title { color:var(--white); }
.section-subtitle-light { color:rgba(255,255,255,0.6); }
.section-subtitle { font-size:1.05rem; color:var(--text-light); text-align:center; max-width:600px; margin:0 auto 48px; }
/* ==================== SECTION DIVIDERS ==================== */
.divider { line-height:0; margin:0; overflow:hidden; }
.divider svg { display:block; width:100%; height:auto; }
.divider-chevron { background:var(--alt-solid); }
.divider-chevron-dark { background:var(--navy); }
.divider-diagonal { background:var(--base); }
.divider-diagonal-dark { background:var(--base); }
.divider-gradient-alt-to-base { height:40px; background:linear-gradient(to bottom, var(--alt-solid), var(--base)); }
.divider-gradient-base-to-alt { height:60px; background:linear-gradient(to bottom, var(--base), var(--alt-solid)); }
.divider-gradient-dark-to-base { height:80px; background:linear-gradient(to bottom, var(--navy), var(--base)); }
.divider-gradient-dark-to-alt { height:60px; background:linear-gradient(to bottom, var(--navy), var(--alt-solid)); }
/* ==================== GRID ==================== */
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
#features .grid-3 { justify-items:center; }
#features .grid-3 .feature-card:nth-last-child(-n+2):nth-child(3n+1) { grid-column: 1; }
#features .grid-3 { display:flex; flex-wrap:wrap; justify-content:center; }
#features .grid-3 .feature-card { width:calc(33.333% - 20px); }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
/* ==================== PROBLEM ==================== */
.problem-card { text-align:center; padding:32px 20px; }
.problem-icon { width:64px; height:64px; margin:0 auto 20px; display:flex; align-items:center; justify-content:center; background:var(--white); border-radius:50%; box-shadow:var(--shadow); }
.problem-card h3 { font-size:1.1rem; font-weight:700; color:var(--navy); margin-bottom:10px; }
.problem-card p { font-size:0.93rem; color:var(--text-light); line-height:1.6; }
/* Problem dark variant */
.problem-card-dark { color:var(--white); }
.problem-card-dark h3 { color:var(--white); }
.problem-card-dark p { color:rgba(255,255,255,0.7); }
.problem-icon-dark { background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.1); box-shadow:none; }
.problem-icon-dark img { filter:brightness(0) invert(1); }
/* ==================== WORKFLOW ==================== */
.workflow { display:flex; align-items:flex-start; justify-content:center; margin-top:56px; }
.workflow-step { flex:1; max-width:300px; text-align:center; padding:0 24px; }
.step-number { width:48px; height:48px; margin:0 auto 20px; display:flex; align-items:center; justify-content:center; background:var(--gold); color:var(--navy); font-size:1.2rem; font-weight:700; border-radius:50%; }
.workflow-step h3 { font-size:1.1rem; font-weight:700; color:var(--navy); margin-bottom:10px; }
.workflow-step p { font-size:0.93rem; color:var(--text-light); line-height:1.6; }
.workflow-connector { width:60px; height:2px; background:var(--gold); margin-top:23px; flex-shrink:0; opacity:0.4; }
/* ==================== FEATURES ==================== */
.feature-card { background:var(--white); border-radius:var(--radius-lg); padding:28px 24px; box-shadow:var(--shadow); transition:box-shadow 0.3s,transform 0.3s,border-color 0.3s,background 0.3s; border:1px solid transparent; }
.feature-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-3px); }
.feature-icon { width:48px; height:48px; display:flex; align-items:center; justify-content:center; background:var(--alt-solid); border-radius:var(--radius); margin-bottom:14px; border:1px solid transparent; }
.feature-card h3 { font-size:1rem; font-weight:700; color:var(--navy); margin-bottom:8px; }
.feature-card p { font-size:0.88rem; color:var(--text-light); line-height:1.6; }
/* Features im dunklen Section-Kontext: Glasmorphism mit Gold-Akzent */
.section-dark .feature-card { background:rgba(255,255,255,0.04); border-color:rgba(200,168,81,0.2); box-shadow:none; }
.section-dark .feature-card:hover { border-color:rgba(200,168,81,0.5); background:rgba(255,255,255,0.06); transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,0.3); }
.section-dark .feature-card h3 { color:var(--white); }
.section-dark .feature-card p { color:rgba(255,255,255,0.7); }
.section-dark .feature-icon { background:rgba(200,168,81,0.15); border-color:rgba(200,168,81,0.3); }
.section-dark .feature-icon img { filter:brightness(0) saturate(100%) invert(74%) sepia(49%) saturate(471%) hue-rotate(2deg) brightness(91%) contrast(83%); }
/* ==================== DEMOS SECTION ==================== */
#demos { padding-top:48px; }
/* ==================== LIVE STATS BAR ==================== */
.live-stats-bar { margin-bottom:40px; text-align:center; }
.live-stats-title { font-size:1rem; font-weight:600; color:var(--gold); text-transform:uppercase; letter-spacing:0.1em; margin-bottom:16px; }
.live-stats-row { display:flex; justify-content:center; gap:20px; flex-wrap:wrap; }
.live-stat { text-align:center; background:var(--white); border-radius:var(--radius-lg); padding:20px 32px; box-shadow:var(--shadow); border:1px solid var(--gray-100); min-width:160px; }
.live-stat-value { display:block; font-size:2.4rem; font-weight:700; color:var(--navy); line-height:1.1; letter-spacing:-0.02em; }
.live-stat-label { display:block; font-size:0.8rem; color:var(--text-light); text-transform:uppercase; letter-spacing:0.08em; margin-top:4px; }
/* ==================== FEATURE HIGHLIGHT ==================== */
.feature-statement { text-align:center; max-width:700px; margin:0 auto 48px; padding:0 24px; }
.feature-statement-text { font-size:1.6rem; font-weight:700; color:var(--navy); line-height:1.35; margin-bottom:12px; letter-spacing:-0.01em; }
.feature-statement-sub { font-size:1rem; color:var(--text-light); line-height:1.6; }
.section-dark .feature-statement-text { color:var(--white); }
.section-dark .feature-statement-sub { color:rgba(255,255,255,0.7); }
@media(max-width:768px) { .feature-statement-text { font-size:1.3rem; } }
/* ==================== 3D CAROUSEL ==================== */
.carousel-viewport { overflow-x:clip; overflow-y:visible; padding:20px 0; position:relative; }
.carousel-track { display:flex; justify-content:center; position:relative; }
.carousel-card { width:860px; flex-shrink:0; background:var(--white); border-radius:var(--radius-lg); padding:28px 24px; box-shadow:var(--shadow); position:absolute; display:flex; flex-direction:column; transition:all 0.6s cubic-bezier(0.4,0,0.2,1); cursor:pointer; transform-style:preserve-3d; }
.carousel-card.active { position:relative; transform:none; z-index:3; opacity:1; }
.carousel-card.left { position:absolute; left:0; top:0; transform:scale(0.75) translateX(-70%); z-index:1; opacity:0.45; }
.carousel-card.right { position:absolute; right:0; top:0; transform:scale(0.75) translateX(70%); z-index:1; opacity:0.45; }
.carousel-card.hidden { position:absolute; transform:scale(0.5); z-index:0; opacity:0; pointer-events:none; }
/* Carousel arrows */
.carousel-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:10; width:44px; height:44px; border-radius:50%; border:2px solid var(--gray-200); background:var(--white); color:var(--navy); font-size:1.6rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.2s; box-shadow:var(--shadow); line-height:1; }
.carousel-arrow:hover { border-color:var(--gold); color:var(--gold); box-shadow:var(--shadow-lg); }
.carousel-prev { left:8px; }
.carousel-next { right:8px; }
.carousel-nav { display:flex; justify-content:center; gap:10px; margin-top:24px; }
.carousel-dot { width:10px; height:10px; border-radius:50%; border:2px solid var(--gold); background:transparent; cursor:pointer; transition:all 0.3s; padding:0; }
.carousel-dot.active { background:var(--gold); }
.card-live { border:2px solid var(--gold); box-shadow:0 4px 24px rgba(200,168,81,0.15); }
.card-placeholder { border:2px dashed var(--gray-200); opacity:0.55; }
.demo-badge { display:inline-block; padding:4px 14px; border-radius:20px; font-size:0.72rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:14px; width:fit-content; background:var(--gold); color:var(--navy); }
.badge-soon { background:var(--gray-100); color:var(--gray-400); }
.demo-title { font-size:1.25rem; font-weight:700; color:var(--navy); margin-bottom:16px; }
.demo-excerpt { margin-bottom:16px; }
.excerpt-text { font-size:0.88rem; color:var(--text); line-height:1.65; }
.excerpt-text h2 { font-size:1.05rem; font-weight:700; color:var(--navy); margin:20px 0 8px; }
.excerpt-text h3 { font-size:0.95rem; font-weight:600; color:var(--navy); margin:16px 0 6px; }
.excerpt-text p { margin-bottom:10px; }
.excerpt-text ul { margin:8px 0 12px 20px; }
.excerpt-text li { margin-bottom:4px; font-size:0.88rem; color:var(--text); }
.placeholder-title { color:var(--gray-400); }
.placeholder-text { font-size:0.95rem; color:var(--gray-400); flex:1; display:flex; align-items:center; justify-content:center; min-height:180px; }
/* ==================== MAP ==================== */
.map-section { margin-top:48px; }
.map-title { font-size:1.1rem; font-weight:600; color:var(--navy); margin-bottom:16px; text-align:center; }
.map-section { transition:opacity 0.3s; }
.map-section.map-hidden #map-container { display:none; }
.map-section.map-hidden .map-empty { display:flex!important; }
.map-empty { display:none; align-items:center; justify-content:center; height:300px; border:2px dashed var(--gray-200); border-radius:var(--radius-lg); color:var(--gray-400); font-size:1rem; background:var(--white); }
#map-container { height:420px; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--gray-100); }
/* Map pulse markers (exact lagebild style) */
.pulse-marker-wrapper { position:relative; width:20px; height:20px; }
.pulse-marker-ring { position:absolute; inset:0; border-radius:50%; border:2px solid; animation:mapPulseRing 2s infinite; opacity:0; }
.pulse-marker-ring:nth-child(2) { animation-delay:1s; }
@keyframes mapPulseRing { 0%{transform:scale(0.5);opacity:0} 30%{opacity:0.6} 100%{transform:scale(2.5);opacity:0} }
.pulse-marker-dot { position:absolute; top:50%; left:50%; width:8px; height:8px; margin:-4px 0 0 -4px; border-radius:50%; animation:pulseDot 2s infinite; }
@keyframes pulseDot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.5;transform:scale(0.7)} }
/* Dark popup style */
.leaflet-popup-content-wrapper { background:#151D2E!important; color:#E8ECF4!important; border:1px solid #1E2D45!important; border-radius:4px!important; box-shadow:0 4px 16px rgba(0,0,0,0.4)!important; }
.leaflet-popup-tip { background:#151D2E!important; }
.leaflet-popup-content { margin:10px 14px!important; font-size:0.85rem!important; }
/* ==================== TRUST ==================== */
.trust-grid { margin-top:48px; }
.trust-card { text-align:center; padding:24px 16px; }
.trust-icon-wrap { height:56px; display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.trust-icon-wrap img { filter:brightness(0) invert(1); }
.trust-icon-wrap.trust-flag img { filter:none; }
.trust-card h3 { font-size:1.05rem; font-weight:700; margin-bottom:8px; }
.trust-card p { font-size:0.88rem; opacity:0.7; line-height:1.5; }
/* ==================== CTA ==================== */
.cta-container { text-align:center; max-width:600px; }
.cta-text { font-size:1.1rem; color:var(--text-light); margin-bottom:32px; }
.cta-email { font-size:0.9rem; color:var(--text-light); margin-top:16px; }
/* ==================== CONTACT MODAL ==================== */
.modal-overlay { position:fixed; inset:0; z-index:9999; background:rgba(10,24,50,0.6); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; padding:24px; }
.modal-content { background:var(--white); border-radius:var(--radius-lg); padding:40px; max-width:520px; width:100%; position:relative; box-shadow:0 24px 64px rgba(10,24,50,0.3); max-height:90vh; overflow-y:auto; }
.modal-close { position:absolute; top:16px; right:20px; background:none; border:none; font-size:1.8rem; color:var(--gray-400); cursor:pointer; line-height:1; }
.modal-close:hover { color:var(--navy); }
.modal-content h2 { font-size:1.5rem; font-weight:700; color:var(--navy); margin-bottom:8px; }
.modal-sub { font-size:0.95rem; color:var(--text-light); margin-bottom:28px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:0.82rem; font-weight:600; color:var(--navy); margin-bottom:6px; text-transform:uppercase; letter-spacing:0.04em; }
.form-group input, .form-group textarea { width:100%; padding:10px 14px; border:1px solid var(--gray-200); border-radius:var(--radius); font-family:inherit; font-size:0.95rem; color:var(--text); background:var(--base); transition:border-color 0.2s; }
.form-group input:focus, .form-group textarea:focus { outline:none; border-color:var(--gold); }
.form-group textarea { resize:vertical; }
/* Anwendungsfaelle unter der Karte im Bereich Live-Lagebilder */
.einsatz-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; margin-top:40px; }
.einsatz-card { background:var(--white); border:1px solid var(--gray-100); border-radius:var(--radius-lg); padding:26px 28px; box-shadow:var(--shadow); }
/* Zwei Zeilen Mindesthoehe, damit die Absaetze aller drei Karten auf
gleicher Hoehe beginnen und unten gleich viel Luft bleibt. */
.einsatz-card h3 { color:var(--navy); font-size:1.2rem; line-height:1.35; margin:0 0 10px; min-height:2.7em; }
.einsatz-card p { color:var(--text-light); font-size:0.97rem; line-height:1.6; margin:0; }
@media(max-width:768px) { .einsatz-grid { gap:16px; margin-top:28px; } .einsatz-card { padding:20px 22px; } .einsatz-card h3 { min-height:0; } }
/* Testzugang-Formular im Anfrage-Popup der Startseite */
.form-group select { width:100%; padding:10px 14px; border:1px solid var(--gray-200); border-radius:var(--radius); font-family:inherit; font-size:0.95rem; color:var(--text); background-color:var(--base); transition:border-color 0.2s; appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A6478' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; background-size:18px; padding-right:38px; }
.form-group select:focus { outline:none; border-color:var(--gold); }
.form-group input[aria-invalid="true"] { border-color:#C0392B; }
.tf-note { display:block; font-size:0.85rem; margin-top:6px; line-height:1.5; }
.tf-note-error { color:#C0392B; }
.tf-note-ok { color:#1E7A44; }
.tf-hint { font-size:0.82rem; color:var(--text-light); margin-left:5px; font-weight:400; text-transform:none; letter-spacing:0; }
/* Gleiche Labelhoehe, damit die Felder einer Reihe auf einer Linie starten */
#trial-form .form-row label { min-height:42px; }
@media(max-width:768px) { #trial-form .form-row label { min-height:0; } }
.tf-consent { display:flex; align-items:flex-start; gap:12px; margin:6px 0 22px; }
.tf-consent input { width:18px; height:18px; margin-top:2px; flex:0 0 auto; accent-color:var(--gold-dark); }
.tf-consent label { font-size:0.9rem; color:var(--text-light); line-height:1.6; font-weight:400; text-transform:none; letter-spacing:0; margin:0; }
.tf-consent a { color:var(--gold-dark); font-weight:600; text-decoration:underline; }
.tf-error { display:none; background:#FDECEA; border:1px solid #E7B3AC; color:#A5281B; border-radius:var(--radius); padding:13px 16px; font-size:0.92rem; line-height:1.6; margin-bottom:18px; }
.tf-success { display:none; text-align:center; padding:20px 0 6px; }
.tf-success h3 { color:var(--navy); font-size:1.3rem; margin:0 0 12px; }
.tf-success p { color:var(--text); line-height:1.75; margin:0 0 10px; }
.tf-success a { color:var(--gold-dark); text-decoration:underline; }
.tf-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.tf-privacy { font-size:0.86rem; color:var(--text-light); line-height:1.7; margin-top:22px; }
.tf-privacy a { color:var(--gold-dark); text-decoration:underline; }
.contact-alt { font-size:0.92rem; color:var(--text-light); margin-top:18px; }
.contact-alt a { color:var(--gold-dark); font-weight:600; text-decoration:underline; }
.form-success { text-align:center; padding:40px 0; }
.form-success p { font-size:1.05rem; color:var(--navy); font-weight:500; }
@media(max-width:768px) { .form-row { grid-template-columns:1fr; } .modal-content { padding:28px 20px; } }
/* ==================== FOOTER ==================== */
.footer { background:var(--navy); color:rgba(255,255,255,0.7); padding:40px 0; font-size:0.85rem; }
.footer-content { display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; padding-bottom:24px; border-bottom:1px solid rgba(255,255,255,0.1); }
.footer-company { font-weight:600; color:var(--white); margin-bottom:4px; }
.footer-links { display:flex; gap:24px; }
.footer-links a { color:rgba(255,255,255,0.7); transition:color 0.2s; }
.footer-links a:hover { color:var(--white); }
.footer-copyright { text-align:center; font-size:0.8rem; opacity:0.5; }
/* ==================== RESPONSIVE ==================== */
@media(max-width:1024px) {
.grid-3 { grid-template-columns:repeat(2,1fr); }
.grid-4 { grid-template-columns:repeat(2,1fr); }
/* Die drei Punkte im Problem-Abschnitt bleiben in einer Reihe */
#problem .grid-3 { grid-template-columns:repeat(3,1fr); gap:16px; }
#problem .problem-card { padding:28px 10px; }
.hero-title { font-size:2.5rem; }
.section { padding:64px 0; }
.workflow-connector { width:40px; }
}
@media(max-width:768px) {
.nav-menu { display:none; }
.nav-extras > .nav-cta { display:none; }
.mobile-menu-toggle { display:flex; }
.cta-buttons { flex-direction:column; }
.cta-buttons .btn { width:100%; }
.grid-3,.grid-4 { grid-template-columns:1fr; gap:20px; }
/* Auf dem Telefon untereinander, drei Spalten waeren dort unlesbar */
#problem .grid-3 { grid-template-columns:1fr; gap:20px; }
#problem .problem-card { padding:32px 20px; }
.hero { min-height:75vh; }
.hero-brand { padding:0 20px; }
.hero-title { font-size:1.9rem; }
.hero-tagline { font-size:0.95rem; margin-top:8px; }
.hero-slide-bottom { bottom:110px; padding:0 20px; }
.hero-slide-example { font-size:0.95rem; margin-bottom:18px; }
.hero-slide-cta { flex-direction:column; }
.hero-slide-cta .btn { width:100%; }
.hero-slider-nav { bottom:18px; }
.hero-slider-arrows { display:none; }
.section { padding:48px 0; }
.section-title { font-size:1.6rem; }
.workflow { flex-direction:column; align-items:center; gap:8px; }
.workflow-connector { width:2px; height:32px; margin:0; }
.workflow-step { max-width:100%; padding:16px 0; }
.footer-content { flex-direction:column; text-align:center; gap:16px; }
#map-container { height:300px; }
#features .grid-3 { display:flex; flex-direction:column; }
#features .grid-3 .feature-card { width:100%; }
.carousel-card { width:100%!important; max-width:100%; position:relative!important; }
.carousel-card.active { transform:none; }
.carousel-card.left, .carousel-card.right { display:none; }
.carousel-track { display:flex; flex-direction:column; }
.carousel-arrow { display:none; }
.carousel-viewport { overflow:visible; }
.live-stats-bar { padding:0 8px; }
.live-stats-row { gap:12px; }
.live-stat { min-width:0; padding:16px 12px; }
.live-stat-value { font-size:1.8rem; }
}
@media(max-width:480px) {
.hero-title { font-size:1.65rem; }
.hero-tagline { font-size:0.9rem; }
.hero-slide-example { font-size:0.9rem; }
.container { padding:0 16px; }
}
/* Marker-Cluster Dark Theme */
.marker-cluster-small,
.marker-cluster-medium,
.marker-cluster-large {
background: rgba(21, 29, 46, 0.8);
}
.marker-cluster-small div,
.marker-cluster-medium div,
.marker-cluster-large div {
background: rgba(200, 168, 81, 0.9);
color: #0A1832;
font-weight: 600;
}
/* === Neueste Entwicklungen (Live-Monitoring Vorschau) === */
.dev-list-heading {
font-size: 0.75rem;
font-weight: 700;
letter-spacing: 0.8px;
text-transform: uppercase;
color: #C8A851;
margin-bottom: 10px;
}
.dev-list {
display: flex;
flex-direction: column;
gap: 6px;
}
.dev-bullet {
background: rgba(30, 45, 69, 0.45);
border-left: 3px solid #C8A851;
border-radius: 4px;
padding: 8px 12px;
text-align: left;
}
.dev-bullet-head {
display: flex;
justify-content: space-between;
align-items: center;
gap: 8px;
margin-bottom: 4px;
flex-wrap: wrap;
}
.dev-sources {
display: inline-flex;
flex-wrap: wrap;
gap: 4px;
align-items: center;
min-width: 0;
}
.dev-source-pill {
display: inline-block;
padding: 2px 8px;
background: rgba(200, 168, 81, 0.15);
color: #E8ECF4;
border-radius: 3px;
font-size: 0.7rem;
font-weight: 500;
text-decoration: none;
line-height: 1.5;
white-space: normal;
overflow-wrap: anywhere;
font-variant-numeric: tabular-nums;
}
a.dev-source-pill:hover {
background: rgba(200, 168, 81, 0.3);
text-decoration: none;
color: #E8ECF4;
}
.dev-time {
color: #8896AB;
font-size: 0.7rem;
font-variant-numeric: tabular-nums;
white-space: nowrap;
flex-shrink: 0;
}
.dev-body {
font-size: 0.85rem;
line-height: 1.45;
color: #E8ECF4;
}
/* ==================== HELLIGKEITS-TONLEITER (Test) ==================== */
/* Vier helle Sections in vier Helligkeitsstufen — Seite "atmet" beim Scrollen
sanft von hell nach kühler, mündet hart in den dunklen Footer. */
:root {
--tone-1: #F5F7FA; /* Problem (hellster) */
--tone-2: #ECF0F5; /* Workflow */
--tone-3: #E4EAF1; /* Demos */
--tone-4: #ECF2F9; /* Contact (hell blau-grau-weiß, frischer Akzent vor Trust) */
}
#problem { background: var(--tone-1); }
#solution { background: var(--tone-2); }
#demos { background: var(--tone-3); }
#contact { background: var(--tone-4); }
/* Divider-Übergänge an die Tonstufen anpassen (Adjacent-Sibling) */
#problem + .divider { background: linear-gradient(to bottom, var(--tone-1), var(--tone-2)); }
#solution + .divider { background: linear-gradient(to bottom, var(--tone-2), var(--tone-3)); }
#demos + .divider { background: linear-gradient(to bottom, var(--tone-3), var(--tone-4)); height: 60px; }
#contact + .divider { background: var(--tone-4); } /* diagonal-dark Contact->Trust, Top-Farbe an Contact angleichen */
#trust { margin-top: -1px; } /* schließt Subpixel-Lücke zum Diagonal-Divider darüber */
/* === EXCERPT FADE-MASK PATCH 2026-04-26 START === */
/* Vereinheitlicht die Karussell-Kartenhoehe ueber feste Excerpt-Hoehe */
/* + weicher Fade-out bei langen Lagen statt harter Abschneidung */
.carousel-card .demo-excerpt {
position: relative;
height: 760px;
overflow: hidden;
-webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 80px), transparent 100%);
mask-image: linear-gradient(to bottom, #000 calc(100% - 80px), transparent 100%);
}
@media(max-width:768px) {
.carousel-card .demo-excerpt { height: 640px; }
}
/* === EXCERPT FADE-MASK PATCH 2026-04-26 END === */