feat: overhaul competence pages, unify brand colors, and polish site integrity
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 23s
Build & Deploy / 🧪 QA (push) Failing after 1m8s
Build & Deploy / 🏗️ Build (push) Has been skipped
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s

- Rewrote all 5 competence pages (Kabeltiefbau, Bohrtechnik, Glasfaser, Planung, Vermessung) with factual data from references
- Unified brand colors: replaced toxic neon green with brand-aligned teal (#10a379)
- Fixed ReferencesSlider injection in dynamic MDX pages
- Enhanced Footer with icon parity, improved branding placement, and unified hover effects
- Refined Header with 3D micro-animations and improved dropdown visibility
- Fixed localized tracking API (rewrites for /stats/api/send)
- Resolved ReferenceErrors in InteractiveGermanyMap and Header state management
- Cleaned reference titles and truncated metadata in lists
This commit is contained in:
2026-05-15 21:07:25 +02:00
parent 4dcd5f511a
commit 843d61cd5d
47 changed files with 1125 additions and 690 deletions

View File

@@ -165,6 +165,13 @@ export default async function Page(props: { params: Promise<{ locale: string; sl
const pageMdxComponents = {
...mdxComponents,
InteractiveGermanyMap: (props: any) => <InteractiveGermanyMap locations={enrichedLocations} {...props} />,
HomeReferencesSlider: (props: any) => <HomeReferencesSlider {...props} references={references.map(r => ({
id: r.slug,
slug: r.slug,
title: r.frontmatter.title,
category: r.frontmatter.category || 'Projekt',
image: r.frontmatter.featuredImage
}))} />,
};
return (

View File

@@ -3,8 +3,9 @@
import { useEffect } from 'react';
import { useTranslations } from 'next-intl';
import { getAppServices } from '@/lib/services/create-services';
import { Container, Button, Heading } from '@/components/ui';
import Scribble from '@/components/Scribble';
import { Button, Heading } from '@/components/ui';
import { Terminal, Activity, AlertTriangle, RefreshCw, Home, ShieldAlert } from 'lucide-react';
import { motion } from 'framer-motion';
export default function Error({
error,
@@ -16,6 +17,9 @@ export default function Error({
const t = useTranslations('Error');
useEffect(() => {
// Force standard solid header
document.body.setAttribute('data-header-variant', 'standard');
// Treat "Failed to find Server Action" as a deployment sync issue and reload
if (error?.message?.includes('Failed to find Server Action')) {
window.location.reload();
@@ -30,64 +34,131 @@ export default function Error({
digest: error?.digest,
});
// Force solid header
document.body.setAttribute('data-force-solid-header', 'true');
return () => {
document.body.removeAttribute('data-force-solid-header');
document.body.removeAttribute('data-header-variant');
};
}, [error]);
return (
<>
<div className="relative min-h-[80vh] flex flex-col items-center justify-center overflow-hidden bg-[#050B14] py-24 px-4 mt-16">
{/* Deep Tech Grid Background */}
<div className="absolute inset-0 bg-[linear-gradient(to_right,#8080800a_1px,transparent_1px),linear-gradient(to_bottom,#8080800a_1px,transparent_1px)] bg-[size:40px_40px] [mask-image:radial-gradient(ellipse_60%_50%_at_50%_50%,#000_70%,transparent_100%)] pointer-events-none" />
{/* Glowing Orb */}
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-96 h-96 bg-red-500/20 blur-[120px] rounded-full pointer-events-none" />
<div className="relative min-h-screen flex flex-col items-center justify-center overflow-hidden bg-[#050B14] py-24 px-4">
{/* Industrial Blueprint Background */}
<div className="absolute inset-0 opacity-[0.03] pointer-events-none">
<div className="absolute inset-0 bg-[linear-gradient(to_right,#ffffff_1px,transparent_1px),linear-gradient(to_bottom,#ffffff_1px,transparent_1px)] bg-[size:100px_100px]" />
<div className="absolute inset-0 bg-[linear-gradient(to_right,#ffffff_1px,transparent_1px),linear-gradient(to_bottom,#ffffff_1px,transparent_1px)] bg-[size:20px_20px]" />
</div>
<div className="relative z-10 w-full max-w-2xl mx-auto">
<div className="group relative bg-[#050B14]/80 backdrop-blur-xl rounded-[2.5rem] p-12 md:p-16 border border-white/10 shadow-2xl overflow-hidden text-center">
{/* Inner Shimmer */}
<div className="absolute inset-0 bg-gradient-to-br from-white/[0.05] to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-700 pointer-events-none" />
<div className="relative mb-8">
<h1 className="text-8xl md:text-9xl font-heading font-black text-transparent bg-clip-text bg-gradient-to-b from-white to-white/20 drop-shadow-[0_0_30px_rgba(255,255,255,0.1)]">
{/* Decorative Technical Annotations */}
<div className="absolute inset-0 pointer-events-none overflow-hidden select-none">
<div className="absolute top-40 left-10 text-[10px] font-mono text-primary/30 uppercase tracking-[0.2em] rotate-90 origin-left">
System_Core_Access :: Restricted
</div>
<div className="absolute bottom-40 right-10 text-[10px] font-mono text-primary/30 uppercase tracking-[0.2em] -rotate-90 origin-right">
Protocol_Failure :: Type_500
</div>
<div className="absolute top-1/4 right-20 w-32 h-px bg-primary/20" />
<div className="absolute top-1/4 right-20 w-px h-32 bg-primary/20" />
</div>
{/* Background Glow */}
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] bg-red-500/10 blur-[150px] rounded-full pointer-events-none animate-pulse" />
<div className="relative z-10 w-full max-w-4xl mx-auto flex flex-col items-center">
{/* The "Broken" Machine Visual */}
<div className="relative mb-12">
<motion.div
initial={{ opacity: 0, scale: 0.8 }}
animate={{ opacity: 1, scale: 1 }}
className="relative"
>
<h1 className="text-[12rem] md:text-[18rem] font-heading font-black leading-none select-none">
<span className="relative inline-block text-transparent bg-clip-text bg-gradient-to-b from-white to-white/5 drop-shadow-[0_0_50px_rgba(255,255,255,0.1)]">
500
</h1>
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full h-1 bg-red-500/40 blur-md skew-y-[-10deg]" />
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full h-px bg-red-500 skew-y-[-10deg] shadow-[0_0_15px_rgba(239,68,68,1)]" />
{/* Glitch Layers */}
<span className="absolute inset-0 text-red-500/30 translate-x-[2px] -translate-y-[1px] mix-blend-screen animate-pulse pointer-events-none">500</span>
<span className="absolute inset-0 text-blue-500/30 -translate-x-[2px] translate-y-[1px] mix-blend-screen animate-pulse pointer-events-none">500</span>
</span>
</h1>
{/* Warning Overlay */}
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 flex flex-col items-center">
<motion.div
animate={{
opacity: [0.4, 1, 0.4],
scale: [0.95, 1.05, 0.95]
}}
transition={{ duration: 2, repeat: Infinity }}
className="p-4 rounded-2xl bg-red-500/20 border border-red-500/40 backdrop-blur-md shadow-[0_0_30px_rgba(239,68,68,0.3)]"
>
<ShieldAlert className="w-12 h-12 text-red-500" />
</motion.div>
</div>
</motion.div>
</div>
<div className="grid grid-cols-1 md:grid-cols-12 gap-8 w-full items-start">
{/* Main Content */}
<div className="md:col-span-7 text-center md:text-left">
<div className="inline-flex items-center gap-3 px-4 py-2 mb-6 rounded-lg bg-red-500/10 border border-red-500/20 text-[10px] font-mono uppercase tracking-widest text-red-400">
<Activity className="w-4 h-4 animate-pulse" />
CRITICAL_SYSTEM_OVERRIDE :: ACTIVE
</div>
<div className="inline-flex items-center gap-3 px-4 py-1.5 mb-6 rounded-full bg-red-500/10 border border-red-500/20 text-xs font-bold uppercase tracking-wider text-red-400">
<span className="w-2 h-2 rounded-full bg-red-500 animate-[ping_2s_infinite] shadow-[0_0_10px_rgba(239,68,68,0.8)]" />
SYSTEM PROTOCOL: CRITICAL ERROR
</div>
<Heading level={2} className="text-2xl md:text-3xl font-bold mb-4 text-white">
<Heading level={1} className="text-3xl md:text-5xl font-bold mb-6 text-white leading-tight">
{t('title')}
</Heading>
<p className="text-white/60 mb-10 max-w-md text-lg mx-auto leading-relaxed">
<p className="text-white/50 mb-10 max-w-lg text-lg leading-relaxed">
{t('description')}
</p>
<div className="flex flex-col sm:flex-row gap-4 justify-center">
<Button onClick={() => reset()} variant="primary" className="shadow-[0_0_20px_rgba(var(--color-primary),0.3)]">
<div className="flex flex-col sm:flex-row gap-4 justify-center md:justify-start">
<Button
onClick={() => reset()}
variant="primary"
className="group h-14 px-10 shadow-[0_0_30px_rgba(var(--color-primary),0.2)] hover:shadow-primary/40 transition-all"
>
<RefreshCw className="w-5 h-5 mr-3 group-hover:rotate-180 transition-transform duration-700" />
{t('tryAgain')}
</Button>
<Button href="/" variant="outline" className="border-white/20 text-white hover:bg-white/5">
<Button
href="/"
variant="outline"
className="h-14 px-8 border-white/10 text-white hover:bg-white/5"
>
<Home className="w-5 h-5 mr-3" />
{t('goHome')}
</Button>
</div>
</div>
{/* Decorative Base Line */}
<div className="w-full flex justify-center mt-12 opacity-50">
<div className="w-px h-24 bg-gradient-to-t from-red-500/50 to-transparent" />
{/* Technical Log Terminal */}
<div className="md:col-span-5">
<div className="bg-black/40 backdrop-blur-xl border border-white/10 rounded-2xl overflow-hidden shadow-2xl">
<div className="bg-white/5 px-4 py-2 border-b border-white/10 flex items-center justify-between">
<div className="flex gap-1.5">
<div className="w-2.5 h-2.5 rounded-full bg-red-500/50" />
<div className="w-2.5 h-2.5 rounded-full bg-yellow-500/50" />
<div className="w-2.5 h-2.5 rounded-full bg-green-500/50" />
</div>
<div className="text-[10px] font-mono text-white/30 tracking-wider">TERMINAL_OUTPUT</div>
</div>
<div className="p-6 font-mono text-xs leading-relaxed overflow-hidden h-[240px]">
<div className="text-primary/70 mb-1 animate-[fade-in_0.5s_ease-out_forwards]">[SYSTEM] Initializing recovery protocol...</div>
<div className="text-red-500/80 mb-1 animate-[fade-in_0.5s_ease-out_0.5s_forwards] opacity-0">[ERROR] Connection timeout at node 0x7F</div>
<div className="text-white/40 mb-1 animate-[fade-in_0.5s_ease-out_1s_forwards] opacity-0">[INFO] Request ID: {error?.digest || '0xDEADBEEF'}</div>
<div className="text-white/40 mb-1 animate-[fade-in_0.5s_ease-out_1.5s_forwards] opacity-0">[INFO] Timestamp: {new Date().toISOString()}</div>
<div className="text-white/40 mb-1 animate-[fade-in_0.5s_ease-out_2s_forwards] opacity-0">[INFO] Trace: {error?.message?.slice(0, 40)}...</div>
<div className="text-primary/70 mt-4 animate-[pulse_1.5s_infinite] opacity-0 animate-[fade-in_0.5s_ease-out_2.5s_forwards]">_ Waiting for user input...</div>
</div>
<div className="bg-red-500/10 p-3 flex items-center gap-3">
<Terminal className="w-4 h-4 text-red-400" />
<div className="text-[10px] font-bold text-red-400 uppercase tracking-tighter">Status: Handshake_Failed</div>
</div>
</div>
</div>
</div>
</div>
</>
</div>
);
}

View File

@@ -1,70 +1,145 @@
import { getTranslations } from 'next-intl/server';
import { Container, Button, Heading } from '@/components/ui';
import Scribble from '@/components/Scribble';
'use client';
import { useEffect } from 'react';
import { useTranslations } from 'next-intl';
import { Button, Heading } from '@/components/ui';
import { Terminal, Search, Home, Mail, Activity, Cpu } from 'lucide-react';
import { motion } from 'framer-motion';
import ClientNotFoundTracker from '@/components/analytics/ClientNotFoundTracker';
export default async function NotFound() {
console.log('--- NOT FOUND RENDERED ---');
const t = await getTranslations('Error.notFound');
export default function NotFound() {
const t = useTranslations('Error.notFound');
// Suggested URL logic removed along with Payload CMS
let suggestedUrl = null;
let suggestedLang = null;
useEffect(() => {
// Force standard solid header
document.body.setAttribute('data-header-variant', 'standard');
return () => {
document.body.removeAttribute('data-header-variant');
};
}, []);
return (
<>
<script dangerouslySetInnerHTML={{ __html: `document.body.setAttribute('data-force-solid-header', 'true');` }} />
<div className="relative min-h-screen flex flex-col items-center justify-center overflow-hidden bg-[#050B14] py-24 px-4">
<ClientNotFoundTracker path="" />
<div className="relative min-h-[80vh] flex flex-col items-center justify-center overflow-hidden bg-[#050B14] py-24 px-4 mt-16">
{/* Deep Tech Grid Background */}
<div className="absolute inset-0 bg-[linear-gradient(to_right,#8080800a_1px,transparent_1px),linear-gradient(to_bottom,#8080800a_1px,transparent_1px)] bg-[size:40px_40px] [mask-image:radial-gradient(ellipse_60%_50%_at_50%_50%,#000_70%,transparent_100%)] pointer-events-none" />
{/* Glowing Orb */}
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-96 h-96 bg-primary/20 blur-[120px] rounded-full pointer-events-none" />
{/* Industrial Blueprint Background */}
<div className="absolute inset-0 opacity-[0.03] pointer-events-none">
<div className="absolute inset-0 bg-[linear-gradient(to_right,#ffffff_1px,transparent_1px),linear-gradient(to_bottom,#ffffff_1px,transparent_1px)] bg-[size:100px_100px]" />
<div className="absolute inset-0 bg-[linear-gradient(to_right,#ffffff_1px,transparent_1px),linear-gradient(to_bottom,#ffffff_1px,transparent_1px)] bg-[size:20px_20px]" />
</div>
<div className="relative z-10 w-full max-w-2xl mx-auto">
<div className="group relative bg-[#050B14]/80 backdrop-blur-xl rounded-[2.5rem] p-12 md:p-16 border border-white/10 shadow-2xl overflow-hidden text-center">
{/* Inner Shimmer */}
<div className="absolute inset-0 bg-gradient-to-br from-white/[0.05] to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-700 pointer-events-none" />
<div className="relative mb-8">
<h1 className="text-8xl md:text-9xl font-heading font-black text-transparent bg-clip-text bg-gradient-to-b from-white to-white/20 drop-shadow-[0_0_30px_rgba(255,255,255,0.1)]">
{/* Decorative Technical Annotations */}
<div className="absolute inset-0 pointer-events-none overflow-hidden select-none">
<div className="absolute top-40 left-10 text-[10px] font-mono text-primary/30 uppercase tracking-[0.2em] rotate-90 origin-left">
Discovery_Service :: Failure
</div>
<div className="absolute bottom-40 right-10 text-[10px] font-mono text-primary/30 uppercase tracking-[0.2em] -rotate-90 origin-right">
Address_Resolution :: 0x404
</div>
<div className="absolute top-1/4 left-20 w-32 h-px bg-primary/20" />
<div className="absolute top-1/4 left-20 w-px h-32 bg-primary/20" />
</div>
{/* Background Glow */}
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] bg-primary/10 blur-[150px] rounded-full pointer-events-none animate-pulse" />
<div className="relative z-10 w-full max-w-4xl mx-auto flex flex-col items-center">
{/* 404 Visual */}
<div className="relative mb-12">
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
className="relative"
>
<h1 className="text-[12rem] md:text-[18rem] font-heading font-black leading-none select-none">
<span className="relative inline-block text-transparent bg-clip-text bg-gradient-to-b from-white to-white/5 drop-shadow-[0_0_50px_rgba(var(--color-primary),0.15)]">
404
</h1>
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full h-1 bg-primary/40 blur-md skew-y-[-10deg]" />
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full h-px bg-primary skew-y-[-10deg] shadow-[0_0_15px_rgba(var(--color-primary),1)]" />
{/* Glitch Layers */}
<span className="absolute inset-0 text-primary/30 translate-x-[2px] -translate-y-[1px] mix-blend-screen animate-pulse pointer-events-none">404</span>
<span className="absolute inset-0 text-blue-500/20 -translate-x-[2px] translate-y-[1px] mix-blend-screen animate-pulse pointer-events-none">404</span>
</span>
</h1>
{/* Search Scan Overlay */}
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 flex flex-col items-center">
<motion.div
animate={{
scale: [1, 1.1, 1],
opacity: [0.5, 1, 0.5]
}}
transition={{ duration: 3, repeat: Infinity }}
className="p-5 rounded-full bg-primary/20 border border-primary/40 backdrop-blur-md shadow-[0_0_40px_rgba(var(--color-primary),0.3)]"
>
<Search className="w-10 h-10 text-primary" />
</motion.div>
</div>
</motion.div>
</div>
<div className="grid grid-cols-1 md:grid-cols-12 gap-12 w-full items-start">
{/* Main Content */}
<div className="md:col-span-7 text-center md:text-left">
<div className="inline-flex items-center gap-3 px-4 py-2 mb-6 rounded-lg bg-primary/10 border border-primary/20 text-[10px] font-mono uppercase tracking-widest text-primary">
<Cpu className="w-4 h-4 animate-spin-slow" />
OBJECT_NOT_FOUND :: SCAN_COMPLETE
</div>
<div className="inline-flex items-center gap-3 px-4 py-1.5 mb-6 rounded-full bg-red-500/10 border border-red-500/20 text-xs font-bold uppercase tracking-wider text-red-400">
<span className="w-2 h-2 rounded-full bg-red-500 animate-pulse shadow-[0_0_10px_rgba(239,68,68,0.8)]" />
SYSTEM PROTOCOL: NOT FOUND
</div>
<Heading level={2} className="text-2xl md:text-3xl font-bold mb-4 text-white">
<Heading level={1} className="text-3xl md:text-5xl font-bold mb-6 text-white leading-tight">
{t('title')}
</Heading>
<p className="text-white/60 mb-10 max-w-md text-lg mx-auto leading-relaxed">
<p className="text-white/50 mb-10 max-w-lg text-lg leading-relaxed">
{t('description')}
</p>
<div className="flex flex-col sm:flex-row gap-4 justify-center">
<Button href="/" variant="primary" className="shadow-[0_0_20px_rgba(var(--color-primary),0.3)]">
<div className="flex flex-col sm:flex-row gap-4 justify-center md:justify-start">
<Button
href="/"
variant="primary"
className="group h-14 px-10 shadow-[0_0_30px_rgba(var(--color-primary),0.2)] hover:shadow-primary/40 transition-all"
>
<Home className="w-5 h-5 mr-3" />
{t('cta')}
</Button>
<Button href="/kontakt" variant="outline" className="border-white/20 text-white hover:bg-white/5">
<Button
href="/kontakt"
variant="outline"
className="h-14 px-8 border-white/10 text-white hover:bg-white/5"
>
<Mail className="w-5 h-5 mr-3" />
Support kontaktieren
</Button>
</div>
</div>
{/* Decorative Base Line */}
<div className="w-full flex justify-center mt-12 opacity-50">
<div className="w-px h-24 bg-gradient-to-t from-primary to-transparent" />
{/* Technical Log Terminal */}
<div className="md:col-span-5">
<div className="bg-black/40 backdrop-blur-xl border border-white/10 rounded-2xl overflow-hidden shadow-2xl">
<div className="bg-white/5 px-4 py-2 border-b border-white/10 flex items-center justify-between">
<div className="flex gap-1.5">
<div className="w-2.5 h-2.5 rounded-full bg-primary/50" />
<div className="w-2.5 h-2.5 rounded-full bg-white/20" />
<div className="w-2.5 h-2.5 rounded-full bg-white/10" />
</div>
<div className="text-[10px] font-mono text-white/30 tracking-wider">DISCOVERY_LOG</div>
</div>
<div className="p-6 font-mono text-xs leading-relaxed overflow-hidden h-[220px]">
<div className="text-primary/70 mb-1">[SCAN] Initializing sector sweep...</div>
<div className="text-white/40 mb-1">[INFO] Indexing available nodes...</div>
<div className="text-primary/50 mb-1 animate-pulse">[INFO] Searching for: {typeof window !== 'undefined' ? window.location.pathname : 'unknown_resource'}</div>
<div className="text-red-400/80 mb-1 mt-4">[WARN] Resource 404: Not found in current branch</div>
<div className="text-white/30 mb-1">[INFO] Redirecting to fallback_strategy...</div>
<div className="text-primary/70 mt-4 animate-[pulse_1.5s_infinite]">_ Ready for manual redirect...</div>
</div>
<div className="bg-primary/10 p-3 flex items-center gap-3">
<Activity className="w-4 h-4 text-primary" />
<div className="text-[10px] font-bold text-primary uppercase tracking-tighter">Status: Resolution_Failed</div>
</div>
</div>
</div>
</div>
</div>
</>
</div>
);
}

View File

@@ -18,19 +18,20 @@ import JsonLd from '@/components/JsonLd';
import { Button } from '@/components/ui/Button';
import { Heading } from '@/components/ui/Heading';
import { getAllReferences } from '@/lib/references';
const mdxComponents = {
const mdxComponents = (references: any[]) => ({
HomeHero,
HomeSubCompanyTiles,
HomeCompetenceBentoGrid,
HomeReferencesSlider,
HomeReferencesSlider: (props: any) => <HomeReferencesSlider {...props} references={props.references || references} />,
FaqBlock,
CertificatesBlock,
HeroSection,
JsonLd,
Button,
Heading,
};
});
export async function generateMetadata(props: any): Promise<Metadata> {
const { locale } = await props.params;
@@ -54,6 +55,16 @@ export default async function Home(props: any) {
setRequestLocale(locale);
const mdx = await getMdxContent(locale, 'home');
const allReferences = await getAllReferences(locale);
// Transform ReferenceData to the format expected by ReferencesSlider
const sliderReferences = allReferences.map(ref => ({
id: ref.slug,
title: ref.frontmatter.title,
slug: ref.slug,
category: ref.frontmatter.location, // Using location as category if not specified
image: ref.frontmatter.featuredImage
})).slice(0, 6);
if (!mdx) {
notFound();
@@ -61,7 +72,7 @@ export default async function Home(props: any) {
return (
<main>
<MDXRemote source={mdx.content} components={mdxComponents} />
<MDXRemote source={mdx.content} components={mdxComponents(sliderReferences)} />
</main>
);
}

View File

@@ -70,10 +70,17 @@ export default async function ReferenceDetail(props: { params: Promise<{ locale:
h3: (props: any) => <Heading level={3} size="4" className="mt-12 mb-4 text-primary" {...props} />,
h4: (props: any) => <Heading level={4} size="5" className="mt-8 mb-4 uppercase tracking-widest text-neutral-500" {...props} />,
p: (props: any) => <p className="text-base md:text-lg text-text-secondary leading-[1.8] mb-6 font-medium max-w-3xl" {...props} />,
ul: (props: any) => <ul className="list-none mb-8 space-y-3 text-base md:text-lg text-text-secondary font-medium max-w-3xl" {...props} />,
ul: (props: any) => <ul className="grid grid-cols-1 md:grid-cols-2 gap-4 my-12" {...props} />,
ol: (props: any) => <ol className="list-decimal pl-6 mb-8 space-y-3 text-base md:text-lg text-text-secondary font-medium max-w-3xl" {...props} />,
li: (props: any) => (
<li className="relative pl-6 before:content-[''] before:absolute before:left-0 before:top-[0.6em] before:w-2 before:h-2 before:bg-primary/50 before:rounded-sm" {...props} />
<li className="bg-neutral-50 p-6 rounded-2xl border border-neutral-100 flex items-start gap-4 hover:shadow-md transition-shadow group" {...props}>
<div className="w-6 h-6 rounded-full bg-primary/10 flex items-center justify-center shrink-0 mt-0.5 group-hover:bg-primary/20 transition-colors">
<svg className="w-3.5 h-3.5 text-primary" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth={3}>
<path strokeLinecap="round" strokeLinejoin="round" d="M5 13l4 4L19 7" />
</svg>
</div>
<span className="text-neutral-700 font-semibold leading-snug">{props.children}</span>
</li>
),
a: (props: any) => <a className="text-primary hover:text-primary-dark underline decoration-primary/30 underline-offset-4 hover:decoration-primary transition-all font-bold" {...props} />,
strong: (props: any) => <strong className="font-bold text-neutral-900" {...props} />,

View File

@@ -116,19 +116,19 @@ export default async function ReferenzenOverview(props: { params: Promise<{ loca
</h3>
{/* Technical Meta Data */}
<div className="grid grid-cols-[1fr_1fr] gap-4 mt-auto border-t border-neutral-100 pt-6 pr-16 md:pr-20 relative z-10">
<div className="flex flex-col gap-3 mt-auto border-t border-neutral-100 pt-6 pr-16 md:pr-20 relative z-10">
<div className="min-w-0">
<span className="block text-[10px] uppercase tracking-widest text-neutral-400 font-bold mb-1">Kunde</span>
<span className="flex items-center gap-1.5 text-sm font-semibold text-neutral-700">
<Briefcase className="w-3.5 h-3.5 text-primary shrink-0" />
<span className="truncate">{ref.frontmatter.client}</span>
<span className="flex items-start gap-2 text-sm font-semibold text-neutral-700 leading-tight">
<Briefcase className="w-3.5 h-3.5 text-primary shrink-0 mt-[2px]" />
<span className="line-clamp-2">{ref.frontmatter.client}</span>
</span>
</div>
<div className="min-w-0">
<span className="block text-[10px] uppercase tracking-widest text-neutral-400 font-bold mb-1">Zeitraum</span>
<span className="flex items-center gap-1.5 text-sm font-semibold text-neutral-700">
<Calendar className="w-3.5 h-3.5 text-primary shrink-0" />
<span className="truncate">{ref.frontmatter.dateString || new Date(ref.frontmatter.date).getFullYear()}</span>
<span className="flex items-start gap-2 text-sm font-semibold text-neutral-700 leading-tight">
<Calendar className="w-3.5 h-3.5 text-primary shrink-0 mt-[2px]" />
<span className="line-clamp-2">{ref.frontmatter.dateString || new Date(ref.frontmatter.date).getFullYear()}</span>
</span>
</div>
</div>

View File

@@ -16,7 +16,7 @@ export function OGImageTemplate({
mode = 'dark',
}: OGImageTemplateProps) {
const primaryBlue = '#001a4d';
const accentGreen = '#82ed20';
const accentGreen = '#10a379';
const saturatedBlue = '#011dff';
const containerStyle: React.CSSProperties = {

View File

@@ -2,9 +2,10 @@
import React, { useState } from 'react';
import { motion, AnimatePresence } from 'framer-motion';
import { MapPin, Factory, Zap, CheckCircle2 } from 'lucide-react';
import { MapPin, Factory, Zap, CheckCircle2, ArrowUpRight } from 'lucide-react';
import Image from 'next/image';
import { useRouter } from 'next/navigation';
import { AnimatedGlossyBorder } from '@/components/ui/AnimatedGlossyBorder';
import { Location, defaultLocations } from '@/lib/map-data';
interface Stat {
@@ -42,7 +43,10 @@ export function InteractiveGermanyMap({
return (
<div className={isHero ? "relative w-full" : "relative w-full max-w-7xl mx-auto py-16 md:py-24 px-4 sm:px-6 mt-16 md:mt-20"}>
<div className={`bg-[#050B14] ${isHero ? 'pt-32 pb-16 md:pt-40 md:pb-24' : 'rounded-[2.5rem] md:rounded-[3.5rem] shadow-2xl border border-white/5'} overflow-visible relative`}>
<div className={`bg-[#050B14] ${isHero ? 'pt-32 pb-16 md:pt-40 md:pb-24' : 'rounded-[2.5rem] md:rounded-[3.5rem] shadow-2xl border border-white/5'} overflow-visible relative group/map`}>
{/* Animated Border Glow */}
{!isHero && <AnimatedGlossyBorder opacity={0.7} className="z-30" />}
{/* Background Effects */}
<div className={`absolute inset-0 bg-gradient-to-br from-[#050B14] via-[#0A1322] to-[#050B14] ${!isHero && 'rounded-[2.5rem] md:rounded-[3.5rem]'} overflow-hidden`} />
<div className="absolute top-0 right-0 w-[800px] h-[800px] bg-primary/5 rounded-full blur-[120px] pointer-events-none translate-x-1/3 -translate-y-1/3 overflow-hidden" />
@@ -91,7 +95,7 @@ export function InteractiveGermanyMap({
{/* Map Container - Enforce strict aspect ratio matching the SVG (1024x1024) */}
<div className="relative w-full max-w-[600px] aspect-square z-10">
{/* Map SVG */}
<div className="absolute inset-0 opacity-[0.15] mix-blend-screen drop-shadow-2xl brightness-150">
<div className="absolute inset-0 opacity-[0.25] mix-blend-screen drop-shadow-2xl brightness-200">
<Image
src="/germany-map.svg"
alt="Deutschlandkarte"

View File

@@ -49,11 +49,11 @@ export const JobListingBlock = (props: JobListingBlockProps) => {
title,
showJobs = true,
showFairs,
fairsTitle = 'Nächste Messetermine 2026',
fairsTitle = 'Nächste Messetermine',
fairs = [
{ name: 'Intersolar München', date: '19. - 21. Juni 2026', type: 'Energie-Messe', location: 'Messe München', booth: 'Halle A3, Stand 110', url: 'https://www.intersolar.de' },
{ name: 'Windenergietage Linstow', date: '04. - 06. November 2026', type: 'Fachkongress', location: 'Van der Valk Resort Linstow', booth: 'Stand 42', url: 'https://windenergietage.de' },
{ name: 'Kabelwerkstatt Wiesbaden', date: '02. - 03. Dezember 2026', type: 'Fachmesse', location: 'RheinMain CongressCenter', booth: 'Halle 1, Stand B20' }
{ name: 'Intersolar München', date: 'Termin folgt', type: 'Energie-Messe', location: 'Messe München' },
{ name: 'Windenergietage Linstow', date: 'Termin folgt', type: 'Fachkongress', location: 'Linstow' },
{ name: 'Kabelwerkstatt Wiesbaden', date: 'Termin folgt', type: 'Fachmesse', location: 'Wiesbaden' }
],
emptyStateMessage = 'Aktuell sind alle Positionen besetzt. Senden Sie uns gerne eine Initiativbewerbung!',
emptyStateLinkText = 'Jetzt Kontakt aufnehmen',

View File

@@ -81,7 +81,7 @@ export function ReferencesSlider(props: ReferencesSliderProps) {
};
return (
<section className="py-24 bg-neutral-dark text-white relative overflow-hidden">
<section id="referenzen" className="py-24 bg-neutral-dark text-white relative overflow-hidden">
<div className="absolute inset-0 bg-gradient-to-b from-neutral-dark via-neutral-900 to-neutral-dark z-0" />
<div className="container relative z-10 mb-12 flex flex-col md:flex-row justify-between items-end gap-6">
@@ -129,11 +129,11 @@ export function ReferencesSlider(props: ReferencesSliderProps) {
<HoverShineOverlay />
<div className="absolute bottom-6 left-8 right-8 transform translate-y-4 group-hover:translate-y-0 transition-transform duration-500 pointer-events-none">
<span className="inline-block py-1.5 px-4 rounded-full bg-primary/30 backdrop-blur-md text-white text-xs font-bold uppercase tracking-widest mb-3 border border-primary/50">
<div className="absolute bottom-6 left-6 right-6 transform translate-y-4 group-hover:translate-y-0 transition-transform duration-500 pointer-events-none bg-black/60 backdrop-blur-sm p-4 rounded-xl border border-white/10">
<span className="inline-block py-1 px-3 rounded-full bg-primary/20 text-white text-[10px] font-bold uppercase tracking-widest mb-2 border border-primary/30">
{ref.category}
</span>
<h4 className="font-heading text-2xl md:text-3xl font-bold line-clamp-2">{ref.title}</h4>
<h4 className="font-heading text-xl md:text-2xl font-bold leading-tight break-words">{ref.title}</h4>
</div>
</div>
</motion.div>

View File

@@ -1,7 +1,7 @@
import { TransitionLink } from '@/components/ui/TransitionLink';
import Image from 'next/image';
import { useLocale } from 'next-intl';
import { ShieldCheck, Leaf, Lock, Accessibility, Zap } from 'lucide-react';
import { ShieldCheck, Leaf, Lock, Accessibility, Zap, Mail, Phone } from 'lucide-react';
import { LanguageSwitcher } from './LanguageSwitcher';
interface CompanyInfo {
@@ -21,7 +21,7 @@ export function Footer({ companyInfo }: FooterProps) {
<footer className="bg-[#050B14] text-neutral-light py-10 md:py-16 relative overflow-hidden border-t border-white/5">
{/* Subtle background tech grid */}
<div className="absolute inset-0 bg-[linear-gradient(to_right,#8080800a_1px,transparent_1px),linear-gradient(to_bottom,#8080800a_1px,transparent_1px)] bg-[size:32px_32px] [mask-image:radial-gradient(ellipse_80%_50%_at_50%_0%,#000_70%,transparent_100%)] pointer-events-none" />
{/* Top glowing edge */}
<div className="absolute top-0 left-0 w-full h-px bg-gradient-to-r from-transparent via-primary/40 to-transparent" />
<div className="absolute top-0 left-1/2 -translate-x-1/2 w-1/3 h-[200px] bg-primary/20 blur-[100px] rounded-full pointer-events-none opacity-50" />
@@ -30,7 +30,7 @@ export function Footer({ companyInfo }: FooterProps) {
{/* Brand Column Bento */}
<div className="col-span-1 md:col-span-4 lg:col-span-5 flex flex-col justify-between bg-white/[0.02] border border-white/5 rounded-3xl p-6 md:p-8 lg:p-10 backdrop-blur-md relative group overflow-hidden">
<div className="absolute inset-0 bg-gradient-to-br from-white/[0.04] to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-700" />
<div className="space-y-4 md:space-y-6 relative z-10">
<TransitionLink href={`/${locale}`} className="relative block h-12 md:h-14 w-40 md:w-48 mb-4 md:mb-6 group/logo cursor-pointer">
<Image
@@ -41,7 +41,7 @@ export function Footer({ companyInfo }: FooterProps) {
/>
</TransitionLink>
<p className="text-neutral-400 text-base leading-relaxed max-w-sm">
{locale === 'de'
{locale === 'de'
? 'Die Experten für Kabeltiefbau, Horizontalspülbohrungen und umfassende Infrastrukturprojekte. Qualität und Zuverlässigkeit aus Guben.'
: 'Experts in cable construction, horizontal directional drilling, and comprehensive infrastructure projects. Quality and reliability from Guben.'}
</p>
@@ -58,16 +58,24 @@ export function Footer({ companyInfo }: FooterProps) {
<p className="whitespace-pre-line font-medium text-neutral-200">{companyInfo.address}</p>
</div>
</div>
<div className="grid grid-cols-2 gap-3 md:gap-4">
<a href={`mailto:${companyInfo.contactEmail}`} className="flex flex-col gap-2 p-4 rounded-2xl bg-white/[0.03] border border-white/[0.05] hover:bg-white/[0.08] hover:border-primary/30 transition-all group/contact cursor-pointer">
<p className="text-xs text-neutral-400 uppercase tracking-wider font-heading">E-Mail</p>
<a href={`mailto:${companyInfo.contactEmail}`} className="flex gap-4 p-4 rounded-2xl bg-white/[0.03] border border-white/[0.05] hover:bg-white/[0.08] hover:border-primary/30 transition-all group/contact cursor-pointer">
<div className="w-10 h-10 rounded-full bg-primary/20 flex items-center justify-center shrink-0 group-hover/contact:bg-primary/30 transition-colors">
<Mail className="w-5 h-5 text-primary" />
</div>
<div className="min-w-0">
<p className="text-xs text-neutral-400 uppercase tracking-wider mb-1 font-heading">E-Mail</p>
<p className="font-medium text-neutral-200 group-hover/contact:text-primary transition-colors truncate">{companyInfo.contactEmail}</p>
</a>
<a href={`tel:${companyInfo.contactPhone.replace(/\s+/g, '')}`} className="flex flex-col gap-2 p-4 rounded-2xl bg-white/[0.03] border border-white/[0.05] hover:bg-white/[0.08] hover:border-primary/30 transition-all group/contact cursor-pointer">
<p className="text-xs text-neutral-400 uppercase tracking-wider font-heading">{locale === 'de' ? 'Telefon' : 'Phone'}</p>
</div>
</a>
<a href={`tel:${companyInfo.contactPhone.replace(/\s+/g, '')}`} className="flex gap-4 p-4 rounded-2xl bg-white/[0.03] border border-white/[0.05] hover:bg-white/[0.08] hover:border-primary/30 transition-all group/contact cursor-pointer">
<div className="w-10 h-10 rounded-full bg-primary/20 flex items-center justify-center shrink-0 group-hover/contact:bg-primary/30 transition-colors">
<Phone className="w-5 h-5 text-primary" />
</div>
<div className="min-w-0">
<p className="text-xs text-neutral-400 uppercase tracking-wider mb-1 font-heading">{locale === 'de' ? 'Telefon' : 'Phone'}</p>
<p className="font-medium text-neutral-200 group-hover/contact:text-primary transition-colors truncate">{companyInfo.contactPhone}</p>
</a>
</div>
</div>
</a>
<div className="flex gap-4 p-4 rounded-2xl bg-white/[0.03] border border-white/[0.05] hover:bg-white/[0.05] transition-colors">
<div className="w-10 h-10 rounded-full bg-primary/20 flex items-center justify-center shrink-0">
<svg className="w-5 h-5 text-primary" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
@@ -86,7 +94,7 @@ export function Footer({ companyInfo }: FooterProps) {
{/* Navigation Bento Grid */}
<div className="col-span-1 md:col-span-4 lg:col-span-7 grid grid-cols-1 sm:grid-cols-2 gap-4 md:gap-6 lg:gap-8">
{/* Company Column */}
<div className="bg-white/[0.02] border border-white/5 rounded-3xl p-6 md:p-8 lg:p-10 backdrop-blur-md relative group overflow-hidden flex flex-col">
<div className="absolute inset-0 bg-gradient-to-bl from-white/[0.04] to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-700 pointer-events-none" />
@@ -129,7 +137,7 @@ export function Footer({ companyInfo }: FooterProps) {
].map((link) => (
<li key={link.href}>
<TransitionLink href={link.href} className="group/link flex items-center text-neutral-400 hover:text-white transition-colors py-1 cursor-pointer">
<span className="w-0 h-px bg-neutral-500 mr-0 group-hover/link:w-3 group-hover/link:mr-3 transition-all duration-300" />
<span className="w-0 h-px bg-primary mr-0 group-hover/link:w-4 group-hover/link:mr-3 transition-all duration-300" />
<span className="font-medium">{link.label}</span>
</TransitionLink>
</li>
@@ -137,7 +145,7 @@ export function Footer({ companyInfo }: FooterProps) {
</ul>
{/* Built Info */}
{/* Legal Info removed from here */}
</div>
@@ -148,31 +156,10 @@ export function Footer({ companyInfo }: FooterProps) {
<div className="flex flex-col md:flex-row justify-between items-center gap-4 md:gap-6 py-4 px-5 md:py-6 md:px-8 rounded-2xl bg-white/[0.02] border border-white/5 backdrop-blur-md text-center md:text-left">
<div className="flex flex-col md:flex-row items-center gap-4 md:gap-6 h-full">
<p className="text-neutral-400 text-xs font-medium m-0">&copy; {new Date().getFullYear()} E-TIB GmbH. {locale === 'de' ? 'Alle Rechte vorbehalten.' : 'All rights reserved.'}</p>
<div className="hidden md:block w-px h-3 bg-neutral-800" />
<div className="flex items-center gap-3 text-neutral-400 text-xs">
<a href="https://mintel.me" target="_blank" rel="noopener noreferrer" className="hover:text-neutral-200 transition-colors flex items-center gap-2">
<span>Designed & Engineered by Mintel</span>
</a>
{process.env.NEXT_PUBLIC_APP_VERSION && (
<>
<span className="w-1 h-1 rounded-full bg-white/20" />
<div className="flex items-center gap-2 opacity-60">
<span className="font-mono text-[10px]">v{process.env.NEXT_PUBLIC_APP_VERSION.replace(/^v/, '')}</span>
{process.env.NEXT_PUBLIC_TARGET && process.env.NEXT_PUBLIC_TARGET !== 'production' && (
<span className="px-1.5 py-0.5 rounded-sm bg-white/10 text-[9px] uppercase tracking-wider">
{process.env.NEXT_PUBLIC_TARGET}
</span>
)}
</div>
</>
)}
</div>
</div>
<div className="flex items-center gap-6">
<LanguageSwitcher isSolidMode={false} />
<LanguageSwitcher isSolidMode={false} />
</div>
</div>
@@ -183,6 +170,26 @@ export function Footer({ companyInfo }: FooterProps) {
<div className="flex items-center gap-2"><Lock className="w-4 h-4 text-neutral-400" /><span>DSGVO Compliant</span></div>
<div className="flex items-center gap-2"><Zap className="w-4 h-4 text-neutral-400" /><span>High Performance</span></div>
</div>
{/* Mintel Design & Version */}
<div className="mt-6 flex justify-center items-center gap-3 text-neutral-500 text-[10px] md:text-xs opacity-60 hover:opacity-100 transition-opacity">
<a href="https://mintel.me" target="_blank" rel="noopener noreferrer" className="hover:text-neutral-300 transition-colors flex items-center gap-2">
<span>Designed & Engineered by Marc Mintel</span>
</a>
{process.env.NEXT_PUBLIC_APP_VERSION && (
<>
<span className="w-1 h-1 rounded-full bg-white/20" />
<div className="flex items-center gap-2">
<span className="font-mono text-[10px]">v{process.env.NEXT_PUBLIC_APP_VERSION.replace(/^v/, '')}</span>
{process.env.NEXT_PUBLIC_TARGET && process.env.NEXT_PUBLIC_TARGET !== 'production' && (
<span className="px-1.5 py-0.5 rounded-sm bg-white/10 text-[9px] uppercase tracking-wider">
{process.env.NEXT_PUBLIC_TARGET}
</span>
)}
</div>
</>
)}
</div>
</div>
</footer>
);

View File

@@ -20,6 +20,7 @@ interface HeaderProps {
export function Header({ navLinks }: HeaderProps) {
const [isScrolled, setIsScrolled] = React.useState(false);
const [forceSolid, setForceSolid] = React.useState(false);
const [headerVariant, setHeaderVariant] = React.useState<'capsule' | 'standard'>('capsule');
const pathname = usePathname() || '/';
// Scroll bound shine effect (continuous looping as user scrolls)
@@ -41,17 +42,18 @@ export function Header({ navLinks }: HeaderProps) {
window.addEventListener('scroll', handleScroll);
// Check for forced solid header (used by error pages, legal pages without hero, etc.)
const checkSolid = () => {
const checkHeaderState = () => {
setForceSolid(document.body.getAttribute('data-force-solid-header') === 'true');
setHeaderVariant((document.body.getAttribute('data-header-variant') as 'capsule' | 'standard') || 'capsule');
};
checkSolid();
checkHeaderState();
// Set up observer for client-side navigation changes
const observer = new MutationObserver(checkSolid);
observer.observe(document.body, { attributes: true, attributeFilter: ['data-force-solid-header'] });
const observer = new MutationObserver(checkHeaderState);
observer.observe(document.body, { attributes: true, attributeFilter: ['data-force-solid-header', 'data-header-variant'] });
// Re-check when pathname changes
checkSolid();
checkHeaderState();
return () => {
window.removeEventListener('scroll', handleScroll);
@@ -59,23 +61,26 @@ export function Header({ navLinks }: HeaderProps) {
};
}, [pathname]);
// Check for force solid initially
const isSolidMode = isScrolled || forceSolid;
const isSolidMode = isScrolled || forceSolid || headerVariant === 'standard';
const isStandard = headerVariant === 'standard';
return (
<>
<header
className={`fixed top-0 left-0 right-0 z-50 flex justify-center transition-all duration-700 ease-[cubic-bezier(0.16,1,0.3,1)] ${
isSolidMode ? 'pt-4 px-4' : 'pt-0 px-0'
isStandard
? 'bg-[#050B14]/95 backdrop-blur-xl border-b border-white/10'
: (isSolidMode ? 'pt-4 px-4' : 'pt-0 px-0')
}`}
>
<div
className={`relative w-full max-w-7xl mx-auto transition-all duration-700 ease-[cubic-bezier(0.16,1,0.3,1)] flex items-center justify-between ${
isSolidMode
? 'rounded-full bg-white/50 backdrop-blur-xl shadow-[0_8px_32px_rgba(0,0,0,0.08)] border border-white/40 py-2.5 px-6 md:px-8'
: 'rounded-none bg-transparent py-6 px-4 md:px-8 border border-transparent'
isStandard
? 'py-4 px-6 md:px-8'
: isSolidMode
? 'rounded-full bg-white/50 backdrop-blur-xl shadow-[0_8px_32px_rgba(0,0,0,0.08)] border border-white/40 py-2.5 px-6 md:px-8'
: 'rounded-none bg-transparent py-6 px-4 md:px-8 border border-transparent'
}`}
>
{/* Scroll bound shine effect */}
@@ -202,13 +207,17 @@ function NavItem({ link, currentLocale, pathname, isSolidMode }: { link: NavLink
<AnimatePresence>
{isHovered && link.children && (
<motion.div
initial={{ opacity: 0, y: 10, scale: 0.95 }}
animate={{ opacity: 1, y: 0, scale: 1 }}
exit={{ opacity: 0, y: 10, scale: 0.95 }}
transition={{ duration: 0.2, ease: 'easeOut' }}
className="absolute top-full left-1/2 -translate-x-1/2 pt-4 w-56"
initial={{ opacity: 0, y: 10, scale: 0.95, rotateX: -10 }}
animate={{ opacity: 1, y: 0, scale: 1, rotateX: 0 }}
exit={{ opacity: 0, y: 10, scale: 0.95, rotateX: -10 }}
transition={{ duration: 0.3, ease: [0.16, 1, 0.3, 1] }}
style={{ perspective: 1000, transformOrigin: 'top center' }}
className="absolute top-full left-1/2 -translate-x-1/2 pt-6 w-64 z-50"
>
<div className={`p-2 rounded-3xl shadow-[0_20px_40px_-15px_rgba(0,0,0,0.1)] border ${isSolidMode ? 'bg-white/95 border-neutral-200/60' : 'bg-[#050B14]/90 border-white/10'} backdrop-blur-xl flex flex-col gap-1`}>
<div className={`p-2.5 rounded-3xl shadow-[0_30px_60px_-15px_rgba(0,0,0,0.3)] border ${isSolidMode ? 'bg-white/95 border-neutral-200/60' : 'bg-[#050B14]/95 border-white/[0.08] shadow-[0_0_40px_rgba(0,0,0,0.4)]'} backdrop-blur-2xl flex flex-col gap-1 relative overflow-hidden`}>
{/* Top glowing accent line */}
<div className="absolute top-0 left-0 w-full h-[2px] bg-gradient-to-r from-transparent via-primary to-transparent opacity-70" />
{link.children.map((child) => {
const childUrl = child.url.startsWith('/') && !child.url.match(/^\/(en|de)/)
? `/${currentLocale}${child.url}`
@@ -218,13 +227,21 @@ function NavItem({ link, currentLocale, pathname, isSolidMode }: { link: NavLink
<TransitionLink
key={child.url}
href={childUrl}
className={`block px-4 py-3 rounded-2xl text-sm font-medium transition-all ${
className={`group/dropitem relative block px-4 py-3.5 rounded-2xl text-sm font-medium transition-all duration-300 overflow-hidden ${
isSolidMode
? isChildActive ? 'bg-primary/10 text-primary' : 'text-neutral-600 hover:bg-neutral-100 hover:text-primary'
: isChildActive ? 'bg-white/10 text-white' : 'text-neutral-300 hover:bg-white/5 hover:text-white'
? isChildActive ? 'bg-primary/10 text-primary' : 'text-neutral-600 hover:text-primary hover:bg-neutral-50/80'
: isChildActive ? 'bg-white/10 text-white' : 'text-neutral-300 hover:text-white hover:bg-white/[0.06]'
}`}
>
{child.label}
<div className="relative z-10 flex items-center justify-between">
<span className="relative">
{child.label}
<span className={`absolute -bottom-0.5 left-0 w-0 h-0.5 rounded-full transition-all duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] group-hover/dropitem:w-full ${isSolidMode ? 'bg-primary/40' : 'bg-primary/60'} ${isChildActive ? 'opacity-0' : 'opacity-100'}`} />
</span>
<svg className={`w-4 h-4 transition-all duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] -translate-x-3 opacity-0 group-hover/dropitem:translate-x-0 group-hover/dropitem:opacity-100 ${isSolidMode ? 'text-primary' : 'text-white'}`} fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2.5} d="M9 5l7 7-7 7" />
</svg>
</div>
</TransitionLink>
);
})}

View File

@@ -1,30 +0,0 @@
---
title: "Moderne Verfahren im Kabeltiefbau"
date: "2024-03-15T10:00:00.000Z"
excerpt: "Erfahren Sie mehr über die neuesten Technologien und Verfahren im modernen Kabelleitungstiefbau, von Horizontalspülbohrungen bis hin zu grabenlosen Verlegetechniken."
featuredImage: "/assets/images/blog/tiefbau.jpg"
category: "Technik"
public: true
---
# Moderne Verfahren im Kabeltiefbau
Der Kabelleitungstiefbau hat sich in den letzten Jahren rasant entwickelt. Neue Technologien ermöglichen eine effizientere und umweltschonendere Verlegung von Versorgungsleitungen.
## Grabenlose Verlegetechniken
Eines der wichtigsten Verfahren ist die **Horizontalspülbohrung (HDD)**. Dieses Verfahren ermöglicht es, Leitungen unter Hindernissen wie Straßen, Flüssen oder Gebäuden zu verlegen, ohne die Oberfläche aufbrechen zu müssen.
### Vorteile der HDD-Bohrung:
- Minimale Beeinträchtigung des Verkehrs
- Schutz der Umwelt und vorhandener Vegetation
- Kürzere Bauzeiten
- Geringere Kosten bei komplexen Unterquerungen
## Klassischer Tiefbau in neuer Qualität
Auch der klassische Grabenbau profitiert von modernen Maschinen und präziser Planung. Durch den Einsatz von Saugbaggern und GPS-gestützter Vermessung können wir Schäden an Bestandsleitungen nahezu ausschließen.
## Fazit
Die Kombination aus bewährter Handwerkskunst und modernster Technik ist der Schlüssel zu erfolgreichen Infrastrukturprojekten. Wir bei E-TIB setzen konsequent auf Innovation, um unseren Kunden die bestmöglichen Ergebnisse zu liefern.

View File

@@ -1,7 +1,7 @@
---
title: "Grabenlose Leitungsverlegung"
date: "2024-03-20"
excerpt: "Präzise Horizontalspülbohrungen und Erdraketen in allen Bodenklassen für eine oberflächenschonende und grabenlose Leitungsverlegung."
excerpt: "Präzise Horizontalspülbohrungen und Erdraketen in allen Bodenklassen für eine absolut oberflächenschonende und effiziente Leitungsverlegung."
layout: "fullBleed"
---
@@ -15,43 +15,62 @@ layout: "fullBleed"
ctaHref="/de/kontakt"
/>
<div className="container px-4 max-w-7xl mx-auto py-16">
<blockquote>
Wenn klassischer Grabenbau aus Platz-, Umwelt- oder Kostengründen nicht in Frage kommt, setzen wir auf modernste grabenlose Techniken. Wir schonen die Natur und minimieren Wiederherstellungskosten.
</blockquote>
## Maximale Effizienz, Minimaler Eingriff
Die grabenlose Leitungsverlegung ist die intelligenteste Lösung für komplexe Bauvorhaben. Insbesondere bei der Querung von hochfrequentierten Straßen, Bahntrassen, Autobahnen oder sensiblen Gewässern spielt dieses Verfahren seine absoluten Stärken aus. Der Verkehr fließt weiter, die Natur bleibt unberührt und aufwendige Oberflächen wie teures Pflaster oder Asphalt müssen nicht zerstört werden.
## HDD-Spülbohrungen und Erdraketen
Mit unserem spezialisierten Gerätepark beherrschen wir die unterschiedlichsten Verfahren. Beim **Horizontalspülbohrverfahren (HDD)** steuern wir den Bohrkopf punktgenau unter der Erde hindurch. Wir realisieren dabei Bohrlängen von bis zu 250 Metern am Stück und können Schutzrohre mit einem Durchmesser von bis zu 400 mm einziehen.
Für kürzere Distanzen, wie beispielsweise schnelle und schonende Hausanschlüsse, setzen wir unsere **Erdraketen** (Bodenverdrängungsverfahren) ein. Hierbei erreichen wir Durchörterungslängen von bis zu 15 Metern für Rohre bis 160 mm Durchmesser ideal um Vorgärten und Einfahrten komplett unversehrt zu lassen.
</div>
<ServiceDetailGrid
badge="Verfahren"
title="Effizient & Umweltschonend"
title="Unsere Bohrtechnik im Detail"
descriptionParagraphs={[
"Wenn klassischer Grabenbau aus Platz-, Umwelt- oder Kostengründen nicht in Frage kommt, setzen wir auf **modernste grabenlose Techniken**.",
"Das schont nicht nur die Natur, sondern spart bei aufwändigen Oberflächen signifikant an Wiederherstellungskosten."
"Wir wählen für jede Bodenklasse und örtliche Gegebenheit das exakt passende Bohrverfahren, um maximale Wirtschaftlichkeit zu garantieren."
]}
panels={[
{
id: "hdd",
title: "Horizontalspülbohrverfahren (HDD)",
title: "Horizontalspülbohrung (HDD)",
icon: "hdd",
fullWidth: false,
lists: [
[
"Max. Bohrlänge: 250 m",
"Max. Durchmesser: 400er Rohr",
"Komplexe Querung von Bahn, Autobahn & Gewässern"
"Zentimetergenaue Steuerbarkeit",
"Querung von Bahn, Autobahn & Gewässern"
]
]
},
{
id: "erdrakete",
title: "Erdrakete",
title: "Bodenverdrängung (Erdrakete)",
icon: "hdd",
fullWidth: false,
lists: [
[
"Max. Durchörterungslänge: 15 m",
"Max. Durchmesser: 160er Rohr",
"Schnelle Hausanschlüsse ohne Graben"
"Schnelle Hausanschlüsse ohne Graben",
"Kein Aufbruch der Oberfläche nötig"
]
]
}
]}
/>
<HomeReferencesSlider badge="Praxisbeispiele" title="Abgeschlossene Bohr-Projekte" description="Erfolgreiche HDD-Bohrungen und grabenlose Leitungsverlegungen unter komplexesten Bedingungen." />
<CallToAction
title="Suchen Sie nach einer grabenlosen Lösung?"
text="Wir beraten Sie gerne zu den Möglichkeiten der Horizontalspülbohrung für Ihr Vorhaben."

View File

@@ -1,7 +1,7 @@
---
title: "Kabelleitungstiefbau im Bereich Telekommunikation"
date: "2024-03-20"
excerpt: "Zukunftssichere Infrastruktur durch kompetenten Kabelleitungstiefbau für Glasfaser- und Telekommunikationsnetze."
excerpt: "Zukunftssichere Infrastruktur durch kompetenten Kabelleitungstiefbau für Glasfaser- und Telekommunikationsnetze (FTTX)."
layout: "fullBleed"
---
@@ -15,12 +15,27 @@ layout: "fullBleed"
ctaHref="/de/kontakt"
/>
<div className="container px-4 max-w-7xl mx-auto py-16">
<blockquote>
Ein Leben ohne Strom oder High-Speed Internet ist heute unvorstellbar dafür verlegen wir Kabel. Wir bauen das Rückgrat der digitalen Gesellschaft.
</blockquote>
## Das Rückgrat der Digitalisierung
Schnelles Internet und modernste Telekommunikationsnetze erfordern einen absolut reibungslosen und hochprofessionellen Netzausbau. E-TIB sorgt mit hochspezialisierten Montageteams und eigenem, modernen Maschinenpark für höchste Ausführungsqualität im bundesweiten Glasfaserausbau.
## FTTX-Ausbau aus einer Hand
Als leistungsfähiger Partner für Telekommunikationsanbieter decken wir jeden Schritt der physischen Netzerrichtung ab. Wir übernehmen die Herstellung kompletter Leerrohrtrassen sowie von Kabel- und Rohrgräben. Darüber hinaus positionieren und errichten wir Multifunktionsgehäuse an strategischen Netzknotenpunkten.
Unser Service endet nicht beim reinen Tiefbau: Wir kümmern uns um das fachgerechte Einziehen und Einblasen von hochsensiblen LWL- und TK-Kabeln über weite Distanzen und führen alle erforderlichen Kabelmontagen durch. So garantieren wir, dass die digitale Infrastruktur sicher und performant in Betrieb gehen kann.
</div>
<ServiceDetailGrid
badge="Leistungsspektrum"
title="Rückgrat der Digitalisierung"
title="Kompletter Glasfaserausbau"
descriptionParagraphs={[
"Schnelles Internet und modernste Telekommunikationsnetze erfordern einen **reibungslosen und professionellen Netzausbau**.",
"E-TIB sorgt mit modernsten Maschinen und spezialisierten Montageteams für höchste Qualität im Glasfaserausbau."
"Von der Leerrohrtrasse bis zur fertigen LWL-Montage wir liefern schlüsselfertige Telekommunikationsinfrastruktur auf höchstem Niveau."
]}
panels={[
{
@@ -31,8 +46,9 @@ layout: "fullBleed"
lists: [
[
"Herstellung von Kabel- und Rohrgräben",
"Herstellung von Leerrohrtrassen",
"Stellen von Multifunktionsgehäusen"
"Herstellung kompletter Leerrohrtrassen",
"Stellen von Multifunktionsgehäusen (MFG)",
"Netzknoten-Anbindung"
]
]
},
@@ -44,17 +60,20 @@ layout: "fullBleed"
lists: [
[
"Einziehen von TK-/LWL-Kabeln",
"Einblasen von Glasfaserkabeln",
"Kabelmontagen TK/LWL"
"Pneumatisches Einblasen von Glasfaserkabeln",
"Kabelmontagen TK/LWL",
"Spleiß- und Messarbeiten"
]
]
}
]}
/>
<HomeReferencesSlider badge="Praxisbeispiele" title="Abgeschlossene Breitband-Projekte" description="Wir haben bereits hunderte Kilometer FTTX-Netze erfolgreich realisiert. Entdecken Sie unsere Referenzen." />
<CallToAction
title="Sie planen einen FTTX-Ausbau?"
text="Wir beraten Sie gerne rund um den Bereich FTTX und den Glasfaserausbau."
text="Wir beraten Sie gerne vollumfänglich rund um den Bereich FTTX und den Glasfaserausbau."
buttonText="Kontakt aufnehmen"
buttonLink="/de/kontakt"
/>

View File

@@ -143,43 +143,5 @@ description: "Die E-TIB GmbH ist Ihr zuverlässiger Partner für komplexe Kabelt
]}
/>
<HomeReferencesSlider
references={[
{
id: "1",
title: "Breitbandausbau FTTC, Planungsregion Spreewald",
slug: "breitbandausbau-fttc-spreewald",
category: "Telekommunikation",
image: "/assets/photos/DSC01123.JPG"
},
{
id: "2",
title: "Breitbandausbau FTTH, 29699 Bomlitz / 29690 Schwarmstedt",
slug: "breitbandausbau-ftth-bomlitz",
category: "Telekommunikation",
image: "/assets/photos/DSC00850.JPG"
},
{
id: "3",
title: "Neubau Kabeltrasse, 03149 Forst",
slug: "neubau-kabeltrasse-forst",
category: "Kabeltiefbau",
image: "/assets/photos/DSC01129.JPG"
},
{
id: "4",
title: "Kabelverbindung U30 - T10, 15890 Eisenhüttenstadt",
slug: "kabelverbindung-eisenhuettenstadt",
category: "Kabeltiefbau",
image: "/assets/photos/DSC00010.JPG"
},
{
id: "5",
title: "Einspeisung PV-Anlage 14728 Görne",
slug: "einspeisung-pv-goerne",
category: "Erneuerbare Energien",
image: "/assets/photos/DSC01123.JPG"
}
]}
/>
<HomeReferencesSlider />

View File

@@ -1,7 +1,7 @@
---
title: "Kabelleitungstiefbau im Bereich Mittel- und Niederspannung"
title: "Kabelleitungstiefbau"
date: "2024-03-20"
excerpt: "Professioneller Kabeltiefbau für Mittel- und Niederspannungsnetze: Von der Errichtung von Kabeltrassen über Kabelmontagen bis zur Straßenbeleuchtung."
excerpt: "Professioneller Kabeltiefbau für Mittel- und Niederspannungsnetze. Wir garantieren höchste Sicherheitsstandards und lückenlose Dokumentation für Ihr Projekt."
layout: "fullBleed"
---
@@ -15,12 +15,29 @@ layout: "fullBleed"
ctaHref="/de/kontakt"
/>
<div className="container px-4 max-w-7xl mx-auto py-16">
<blockquote>
Überall wird gebuddelt und gebohrt, aber leider geht auch vieles schief. Wir setzen auf Qualität, höchste Sicherheitsstandards und rechtssichere Dokumentation damit Ihr Bauprojekt nicht zur Kostenfalle wird.
</blockquote>
## Qualität statt Kostenfalle
Auf vielen Baustellen werden zunehmend Billiganbieter aus dem Ausland eingesetzt, was häufig dazu führt, dass **Sicherheitsstandards und Dokumentationsanforderungen missachtet** werden. Die Folgen sind gravierend: Unfälle, defekte Fremdleitungen (wie Strom, Wasser und Gas) sowie massive Bauverzögerungen und teure Nachträge. Ein vermeintliches Schnäppchen entpuppt sich so schnell als finanzielle Belastung.
Besonders bei geförderten Infrastruktur-Projekten gestaltet sich der Abruf der Fördergelder ohne eine absolut lückenlose, normgerechte Dokumentation äußerst problematisch.
## Alles aus einer Hand
Durch unsere langjährige Erfahrung erkennen wir Problemstellungen frühzeitig und erarbeiten für unsere Auftraggeber im Vorfeld sichere und zufriedenstellende Lösungen. Die E-TIB GmbH hat sich voll und ganz auf den Kabelleitungstiefbau spezialisiert.
Wir bieten Ihnen das komplette Leistungsspektrum zur Errichtung von Kabeltrassen aus einer Hand mit eigenem, hochmodernem Maschinenpark und festangestelltem Fachpersonal aus der Region. In direkter Zusammenarbeit mit unserem Partnerbüro, der E-TIB Ingenieurgesellschaft mbH, können wir zudem frühzeitig Planungsfehler ausschließen und selbst die komplexesten Dokumentationsanforderungen souverän erfüllen.
</div>
<ServiceDetailGrid
badge="Leistungsspektrum"
title="Alles für Ihr Netz"
descriptionParagraphs={[
"Unsere Leistungen umfassen das **komplette Spektrum** zur Errichtung moderner Kabeltrassen und Energieinfrastruktur.",
"Wir bieten höchste Präzision, moderne Maschinen und zertifizierte Experten für jedes Projekt."
"Wir bieten höchste Präzision, modernste Maschinen und zertifizierte Experten für jedes Tiefbau-Projekt von der Kabelverlegung bis zur Transformatorstation."
]}
panels={[
{
@@ -31,28 +48,31 @@ layout: "fullBleed"
lists: [
[
"Herstellung von Kabel- und Rohrgräben",
"Kabelverlegung von 0,4 kV - 110 kV",
"Kabelmontagen 0,4 kV - 30 kV"
"Kabelverlegung von 0,4 kV bis 110 kV",
"Kabelmontagen von 0,4 kV bis 30 kV",
"Kabelpflugarbeiten für schnelle Verlegung"
]
]
},
{
id: "anlagen",
title: "Anlagen & Beleuchtung",
title: "Anlagen & Infrastruktur",
icon: "energy",
fullWidth: false,
lists: [
[
"Errichtung von Transformatorstationen",
"Erstellung von Erdungsanlagen",
"Errichtung von Straßenbeleuchtung",
"Schalthandlungen"
"Erstellung von komplexen Erdungsanlagen",
"Errichtung von Straßenbeleuchtungen",
"Zertifizierte Schalthandlungen"
]
]
}
]}
/>
<HomeReferencesSlider badge="Praxisbeispiele" title="Abgeschlossene Tiefbau-Projekte" description="Wir haben über hunderte Kilometer Kabel verlegt. Sehen Sie sich unsere Referenz-Projekte an." />
<CallToAction
title="Sie haben ein konkretes Projekt?"
text="Wir beraten Sie gerne zu allen Fragen rund um Kabeltiefbau und Leitungsverlegung."

View File

@@ -13,7 +13,7 @@ layout: "fullBleed"
linkText="Kontakt aufnehmen"
linkHref="/de/kontakt"
secondaryCtaLabel="Referenzen ansehen"
secondaryCtaHref="/de/kompetenzen#referenzen"
secondaryCtaHref="/de/#referenzen"
/>
<HomeCompetenceBentoGrid

View File

@@ -19,80 +19,11 @@ layout: "fullBleed"
showFairs={true}
showJobs={false}
fairs={[
{ name: 'Intersolar München', date: '19. - 21. Juni 2026', type: 'Energie-Messe', location: 'Messe München', booth: 'Halle A3, Stand 110', url: 'https://www.intersolar.de' },
{ name: 'Windenergietage Linstow', date: '04. - 06. November 2026', type: 'Fachkongress', location: 'Van der Valk Resort Linstow', booth: 'Stand 42', url: 'https://windenergietage.de' },
{ name: 'Kabelwerkstatt Wiesbaden', date: '02. - 03. Dezember 2026', type: 'Fachmesse', location: 'RheinMain CongressCenter', booth: 'Halle 1, Stand B20' }
{ name: 'Intersolar München', date: '2024 / 2025', type: 'Messe', location: 'München' },
{ name: 'Windenergietage Linstow', date: '2024 / 2025', type: 'Fachkongress', location: 'Linstow' },
{ name: 'Kabel-Workshop Wiesbaden', date: '2024 / 2025', type: 'Fachmesse', location: 'Wiesbaden' }
]}
/>
</div>
<CallToAction />
<JsonLd data={[
{
"@type": "Event",
"name": "Intersolar München",
"startDate": "2026-06-19",
"endDate": "2026-06-21",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "Place",
"name": "Messe München",
"address": {
"@type": "PostalAddress",
"addressLocality": "München",
"addressCountry": "DE"
}
},
"organizer": {
"@type": "Organization",
"name": "E-TIB GmbH",
"url": "https://e-tib.com"
}
},
{
"@type": "Event",
"name": "Windenergietage Linstow",
"startDate": "2026-11-04",
"endDate": "2026-11-06",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "Place",
"name": "Van der Valk Resort Linstow",
"address": {
"@type": "PostalAddress",
"addressLocality": "Linstow",
"addressCountry": "DE"
}
},
"organizer": {
"@type": "Organization",
"name": "E-TIB GmbH",
"url": "https://e-tib.com"
}
},
{
"@type": "Event",
"name": "Kabelwerkstatt Wiesbaden",
"startDate": "2026-12-02",
"endDate": "2026-12-03",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"location": {
"@type": "Place",
"name": "RheinMain CongressCenter",
"address": {
"@type": "PostalAddress",
"addressLocality": "Wiesbaden",
"addressCountry": "DE"
}
},
"organizer": {
"@type": "Organization",
"name": "E-TIB GmbH",
"url": "https://e-tib.com"
}
}
]} />

View File

@@ -1,7 +1,7 @@
---
title: "Planung und Beratung"
date: "2024-03-20"
excerpt: "Professionelle Planung und Beratung im Bereich Energie- und Telekommunikationsnetze: Trassenplanung, Genehmigungsverfahren und Projektprüfung."
excerpt: "Professionelle Planung und Beratung im Bereich Energie- und Telekommunikationsnetze: Trassenplanung, Genehmigungsverfahren und Projektsteuerung aus einer Hand."
layout: "fullBleed"
---
@@ -15,48 +15,65 @@ layout: "fullBleed"
ctaHref="/de/kontakt"
/>
<div className="container px-4 max-w-7xl mx-auto py-16">
<blockquote>
Wir bieten unseren Kunden alles aus einer Hand von der Grobplanung Ihrer Projektidee über den Kabelleitungstiefbau bis zum Bau Ihres erneuerbaren Energieprojektes.
</blockquote>
## Fundament für den Projekterfolg
Eine solide Planung ist das entscheidende Fundament für jedes erfolgreiche Infrastrukturprojekt. Oft scheitern Projekte oder verzögern sich massiv, weil die Komplexität der Tiefbauplanung und Genehmigungsverfahren unterschätzt wurde. Durch unsere gebündelte Kompetenz vermeiden Sie teure Planungsfehler und Reibungsverluste an den Schnittstellen.
Sowohl für den hochaktuellen Breitbandausbau als auch für den anspruchsvollen Netzanschluss von Solar- oder Windprojekten wird eine absolut präzise und hochwertige Kabeltrassenplanung benötigt. Dazu besichtigen wir die Trasse vor Ort, analysieren frühzeitig alle potenziellen Baukonflikte und stellen sicher, dass alle erforderlichen Anträge für die Verlegung fristgerecht und vollständig bei den Behörden eingereicht werden.
## Starke Ingenieurskompetenz
In enger Zusammenarbeit mit unserem spezialisierten Partner-Ingenieurbüro, der **E-TIB Ingenieurgesellschaft mbH**, begleiten wir Sie durch alle Leistungsphasen. Ob Strukturplanung zur Trassenoptimierung, komplexe Genehmigungsplanung oder detaillierte Ausführungsplanung wir steuern Ihr Projekt von der ersten Machbarkeitsstudie bis zur erfolgreichen Bauüberwachung und Abnahme.
</div>
<ServiceDetailGrid
badge="Ingenieursdienstleistungen"
title="Fundament für den Erfolg"
title="Unsere Planungsleistungen"
descriptionParagraphs={[
"Eine solide Planung ist das Fundament jedes erfolgreichen Bauprojekts. Vermeiden Sie teure Planungsfehler und profitieren Sie von unserer umfassenden Expertise.",
"Unser Partner-Ingenieurbüro **E-TIB Ingenieurgesellschaft mbH** unterstützt uns bei der reibungslosen Umsetzung komplexer Netzausbauprojekte."
"Minimieren Sie Risiken und Schnittstellen. Wir vereinen planerisches Know-how mit praktischer Tiefbau-Expertise."
]}
panels={[
{
id: "planung",
title: "Planung",
title: "Trassen- & Genehmigungsplanung",
icon: "planning",
fullWidth: false,
lists: [
[
"Strukturplanung",
"Genehmigungsplanung",
"Ausführungsplanung",
"Strukturplanung (Trassenoptimierung)",
"Genehmigungsplanung & Behördenmanagement",
"Detaillierte Ausführungsplanung",
"Zustimmungsplanung"
]
]
},
{
id: "beratung",
title: "Beratung & Steuerung",
title: "Steuerung & Überwachung",
icon: "planning",
fullWidth: false,
lists: [
[
"Ausschreibung & Vergabe",
"Bauüberwachung",
"Projektprüfung",
"Machbarkeitsstudien"
"Ausschreibung & Vergabe (AVA)",
"Fachbauüberwachung",
"Projektprüfung & Controlling",
"Fundierte Machbarkeitsstudien"
]
]
}
]}
/>
<HomeReferencesSlider badge="Praxisbeispiele" title="Planung in der Praxis" description="Erfolgreich geplante und begleitete Infrastrukturprojekte unserer Unternehmensgruppe." />
<CallToAction
title="Benötigen Sie Planungssicherheit?"
text="Lassen Sie uns über Ihr Vorhaben sprechen. Wir stehen Ihnen mit Rat und Tat zur Seite."
text="Lassen Sie uns über Ihr Vorhaben sprechen. Wir stehen Ihnen mit unserem Ingenieurwissen zur Seite."
buttonText="Kontakt aufnehmen"
buttonLink="/de/kontakt"
/>

View File

@@ -1,8 +1,8 @@
---
title: "Breitbandausbau FTTH, Landkreis Börde"
client: "EKN Breitband GmbH & Co. KG"
date: "2026-01-01"
dateString: "seit 05/2019"
date: "2019-05-01"
dateString: "Seit 05/2019"
location: "Landkreis Börde"
featuredImage: "/assets/photos/etib_ingenieure_tiefbau_solar_pv_planung_vermessung_gis-294.jpg"
---
@@ -10,3 +10,5 @@ featuredImage: "/assets/photos/etib_ingenieure_tiefbau_solar_pv_planung_vermessu
- 109.000 m Leitungstrasse herstellen (Tiefbau/HDD)
- 63 Stück Aufstellung Netzverteiler
- 747 Stück Herstellung Hausanschlüsse
- Koordination und Realisierung der gesamten Trassenführung
- Dokumentation und Abnahme der Hausanschlüsse

View File

@@ -1,10 +1,10 @@
---
title: "Breitbandausbau FTTH, Planungsregion Bomlitz"
client: "Telekom Deutschland GmbH"
date: "2018-12-31"
dateString: "04/2018 bis 12/2018"
location: "Bomlitz"
featuredImage: "/assets/photos/Etib_E-tib_Tiefbau_Guben_Netzanbindung_Energie-100.jpg"
title: "Breitbandausbau FTTH, Bomlitz / Schwarmstedt"
client: "inexio Informationstechnologie und Telekommunikation GmbH"
date: "2018-08-01"
dateString: "08/2018 bis 03/2021"
location: "29699 Bomlitz / 29690 Schwarmstedt"
featuredImage: "/assets/photos/Etib_E-tib_Tiefbau_Guben_Netzanbindung_Energie-60.jpg"
---
- 88.890 m Leitungstrasse herstellen (Tiefbau/HDD)

View File

@@ -1,9 +1,9 @@
---
title: "Kabelverbindung U30 - T10, 15890 Eisenhüttenstadt"
title: "Kabelverbindung U30 - T10, Eisenhüttenstadt"
client: "ArcelorMittal Eisenhüttenstadt GmbH"
date: "2019-12-31"
date: "2019-07-01"
dateString: "07/2019 bis 12/2019"
location: "Eisenhüttenstadt"
location: "15890 Eisenhüttenstadt"
featuredImage: "/assets/photos/Etib_E-tib_Tiefbau_Guben_Netzanbindung_Energie_Vermessung_(24_von_99)_groß2.jpg"
---

View File

@@ -1,9 +1,9 @@
---
title: "Neubau Kabeltrasse, 03149 Forst"
title: "Neubau Kabeltrasse, Forst"
client: "Mitteldeutsche Netzgesellschaft Strom mbH"
date: "2020-09-30"
date: "2020-03-01"
dateString: "03/2020 bis 09/2020"
location: "Forst"
location: "03149 Forst"
featuredImage: "/assets/photos/DSC02156.jpg"
---

View File

@@ -1,9 +1,9 @@
---
title: "Einspeisung PV-Anlage 14728 Görne"
title: "Einspeisung PV-Anlage, Görne"
client: "EVH GmbH"
date: "2020-07-31"
date: "2020-05-01"
dateString: "05/2020 bis 07/2020"
location: "Görne"
location: "14728 Görne"
featuredImage: "/assets/photos/DSC08744.JPG"
---

View File

@@ -1,9 +1,9 @@
---
title: "Breitbandausbau FTTC, Planungsregion Spreewald"
client: "Telekom Deutschland GmbH"
date: "2018-01-31"
date: "2017-09-01"
dateString: "09/2017 bis 01/2018"
location: "Spreewald"
location: "Planungsregion Spreewald"
featuredImage: "/assets/photos/DSC01129.JPG"
---
@@ -12,8 +12,6 @@ featuredImage: "/assets/photos/DSC01129.JPG"
- 13.008 m Horizontalspülbohrung D 50
- 94.951 m Einblasen von Kabel/Rohren unbelegt
- 42 Stück Stellen von Multifunktionsgehäusen
- Aufbau von Energieanschlusssäulen
- Aufbau elektrischer Anlagen 230V
- Koordination mit Energieversorgungsunternehmen
- Inbetriebnahme der elektrischen Anlagen
- Aufbau von Energieanschlusssäulen und elektrischen Anlagen 230V
- Koordination mit Energieversorgungsunternehmen und Inbetriebnahme der elektrischen Anlagen
- Oberflächen- und Tiefbauarbeiten für Multifunktionsgehäuse

View File

@@ -1,7 +1,7 @@
---
title: "Vermessung und Dokumentation"
date: "2024-03-20"
excerpt: "Präzise Vermessung, Absteckung und digitale Dokumentation von Leitungstrassen zur Gewährleistung höchster Sicherheits- und Qualitätsstandards."
excerpt: "Präzise GIS-Vermessung, Absteckung und digitale Dokumentation von Leitungstrassen zur Gewährleistung höchster Bau- und Sicherheitsstandards."
layout: "fullBleed"
---
@@ -15,24 +15,41 @@ layout: "fullBleed"
ctaHref="/de/kontakt"
/>
<div className="container px-4 max-w-7xl mx-auto py-16">
<blockquote>
Wir arbeiten mit hochpräzisem GPS-Equipment zur lückenlosen Dokumentation der Projekte unserer Kunden. Dafür entwickeln wir eigenständig App-Integrationen zur Automatisierung der Vermessung.
</blockquote>
## Höchste Präzision schützt vor Überraschungen
In der heutigen Zeit wachsen die gesetzlichen Dokumentationsanforderungen und strengen Sicherheitsstandards rasant. Viele herkömmliche Tiefbaufirmen sind kaum noch in der Lage, diese hochkomplexen Anforderungen insbesondere für den geförderten Breitbandausbau sauber zu erfüllen. Fehlende oder fehlerhafte Dokumentationen führen unweigerlich zu massiven Problemen bei der Bauabnahme und Projektfinanzierung.
Wir haben diesen Engpass erkannt und uns proaktiv auf die hochpräzise Vermessung und digitale Dokumentation von Kabeltrassen spezialisiert.
## Digitale Erfassung auf dem neuesten Stand
Mit modernster GPS-Technik und eigens entwickelten, digitalen App-Integrationen sorgen wir für eine hochgradig automatisierte, lückenlose und absolut rechtssichere Erfassung aller verlegten Leitungen und Anlagen.
Neben der klassischen GPS-Absteckung und Einmessung erstellen wir für unsere Auftraggeber komplette Geodatenbanken zur transparenten Projektabrechnung und bieten eine lückenlose 360° Foto- und Video-Erfassung des Baufeldes an. So behalten Sie jederzeit den vollen Überblick über Ihre unterirdische Infrastruktur.
</div>
<ServiceDetailGrid
badge="Präzision"
title="Höchste Sicherheitsstandards"
title="Digitale Sicherheitsstandards"
descriptionParagraphs={[
"Steigende Dokumentationsanforderungen und strenge Sicherheitsstandards verlangen nach **höchster Präzision auf der Baustelle**.",
"Mit modernster Technik sorgen wir für eine lückenlose und rechtssichere Erfassung aller Leitungen. Dies ist der beste Schutz vor bösen Überraschungen bei der Bauabnahme."
"Wir liefern Ihnen nicht nur eine saubere Trasse, sondern auch die perfekten Daten. Rechtssicher, digital und auf den Zentimeter genau."
]}
panels={[
{
id: "vermessung",
title: "Geodäsie",
title: "Klassische Geodäsie",
icon: "survey",
fullWidth: false,
lists: [
[
"Absteckung von Leitungstrassen",
"Einmessung von Leitungstrassen",
"GPS-gestützte Geländeaufnahme"
"Zentimetergenaue Absteckung von Leitungstrassen",
"Einmessung von Bestandstrassen und neuen Leitungen",
"Hochpräzise GPS-gestützte Geländeaufnahme",
"Automatisierte App-basierte Messverfahren"
]
]
},
@@ -44,17 +61,20 @@ layout: "fullBleed"
lists: [
[
"Erstellung von Datenbanken zur Projektabrechnung",
"360° Foto-/Video-Erfassung des Baufeldes",
"Einbindung in Geoinformationssysteme (GIS)"
"360° Foto- und Video-Erfassung des Baufeldes",
"Einbindung und Aufbereitung für Geoinformationssysteme (GIS)",
"Revisionssichere Bestandspläne"
]
]
}
]}
/>
<HomeReferencesSlider badge="Praxisbeispiele" title="Dokumentierte Projekte" description="Wir haben hunderte Kilometer Trassen exakt eingemessen und digital dokumentiert." />
<CallToAction
title="Stehen Sie vor hohen Dokumentationsanforderungen?"
text="Kontaktieren Sie uns für professionelle Vermessungs- und Dokumentationsdienstleistungen."
text="Kontaktieren Sie uns für professionelle Vermessungs- und GIS-Dienstleistungen."
buttonText="Kontakt aufnehmen"
buttonLink="/de/kontakt"
/>

View File

@@ -1,30 +0,0 @@
---
title: "Modern Methods in Cable Civil Engineering"
date: "2024-03-15T10:00:00.000Z"
excerpt: "Learn more about the latest technologies and methods in modern cable civil engineering, from horizontal directional drilling to trenchless installation techniques."
featuredImage: "/assets/images/blog/tiefbau.jpg"
category: "Technology"
public: true
---
# Modern Methods in Cable Civil Engineering
Cable civil engineering has evolved rapidly in recent years. New technologies enable more efficient and environmentally friendly installation of utility lines.
## Trenchless Installation Techniques
One of the most important methods is **Horizontal Directional Drilling (HDD)**. This method allows pipes to be laid under obstacles such as roads, rivers, or buildings without having to break open the surface.
### Benefits of HDD Drilling:
- Minimal impact on traffic
- Protection of the environment and existing vegetation
- Shorter construction times
- Lower costs for complex crossings
## Classic Civil Engineering in New Quality
Classic trench construction also benefits from modern machinery and precise planning. By using suction excavators and GPS-supported surveying, we can virtually eliminate damage to existing utility lines.
## Conclusion
The combination of proven craftsmanship and state-of-the-art technology is the key to successful infrastructure projects. At E-TIB, we consistently focus on innovation to deliver the best possible results for our customers.

View File

@@ -0,0 +1,60 @@
---
title: "Trenchless Line Laying"
date: "2024-03-20"
excerpt: "Precise horizontal directional drilling and earth rockets in all soil classes for surface-friendly and trenchless line laying."
layout: "fullBleed"
---
<HeroSection
badge="Core Competency"
title="Trenchless Laying"
subtitle="Surface-friendly horizontal directional drilling and earth rockets"
backgroundImage={{ url: '/assets/photos/DSC08653.JPG' }}
alignment="center"
ctaLabel="Request a project"
ctaHref="/en/kontakt"
/>
<ServiceDetailGrid
badge="Procedures"
title="Efficient & Environmentally Friendly"
descriptionParagraphs={[
"If classic trench construction is out of the question for reasons of space, environment, or cost, we rely on **state-of-the-art trenchless techniques**.",
"This not only protects nature but also significantly saves on restoration costs for complex surfaces."
]}
panels={[
{
id: "hdd",
title: "Horizontal Directional Drilling (HDD)",
icon: "hdd",
fullWidth: false,
lists: [
[
"Max. drilling length: 250 m",
"Max. diameter: 400mm pipe",
"Complex crossing of railways, highways & water bodies"
]
]
},
{
id: "erdrakete",
title: "Earth Rocket",
icon: "hdd",
fullWidth: false,
lists: [
[
"Max. crossing length: 15 m",
"Max. diameter: 160mm pipe",
"Fast house connections without trenches"
]
]
}
]}
/>
<CallToAction
title="Looking for a trenchless solution?"
text="We would be happy to advise you on the possibilities of horizontal directional drilling for your project."
buttonText="Contact us"
buttonLink="/en/kontakt"
/>

60
content/en/glasfaser.mdx Normal file
View File

@@ -0,0 +1,60 @@
---
title: "Cable Civil Engineering in Telecommunications"
date: "2024-03-20"
excerpt: "Future-proof infrastructure through competent cable civil engineering for fiber optic and telecommunications networks."
layout: "fullBleed"
---
<HeroSection
badge="Core Competency"
title="Fiber Optics & Telecommunications"
subtitle="Complete infrastructure solutions for future-proof broadband networks (FTTX)"
backgroundImage={{ url: '/assets/photos/DSC01129.JPG' }}
alignment="center"
ctaLabel="Request a project"
ctaHref="/en/kontakt"
/>
<ServiceDetailGrid
badge="Service Portfolio"
title="Backbone of Digitalization"
descriptionParagraphs={[
"Fast internet and state-of-the-art telecommunications networks require a **smooth and professional network expansion**.",
"With state-of-the-art machinery and specialized assembly teams, E-TIB ensures the highest quality in fiber optic expansion."
]}
panels={[
{
id: "tiefbau",
title: "Civil Engineering & Routes",
icon: "fiber",
fullWidth: false,
lists: [
[
"Production of cable and pipe trenches",
"Production of empty conduit routes",
"Setting up multi-function enclosures"
]
]
},
{
id: "montage",
title: "Cable Pulling & Assembly",
icon: "fiber",
fullWidth: false,
lists: [
[
"Pulling of TK/FO cables",
"Blowing in of fiber optic cables",
"Cable assembly TK/FO"
]
]
}
]}
/>
<CallToAction
title="Are you planning an FTTX expansion?"
text="We are happy to advise you on all aspects of FTTX and fiber optic expansion."
buttonText="Contact us"
buttonLink="/en/kontakt"
/>

View File

@@ -139,42 +139,4 @@ description: "E-TIB GmbH is your reliable partner for complex cable routes, hori
]}
/>
<HomeReferencesSlider
references={[
{
id: "1",
title: "Broadband Expansion FTTC, Spreewald Planning Region",
slug: "broadband-expansion-fttc-spreewald",
category: "Telecommunications",
image: "/assets/photos/DSC01123.JPG"
},
{
id: "2",
title: "Broadband Expansion FTTH, 29699 Bomlitz / 29690 Schwarmstedt",
slug: "broadband-expansion-ftth-bomlitz",
category: "Telecommunications",
image: "/assets/photos/DSC00850.JPG"
},
{
id: "3",
title: "New Cable Route, 03149 Forst",
slug: "new-cable-route-forst",
category: "Cable Construction",
image: "/assets/photos/DSC01129.JPG"
},
{
id: "4",
title: "Cable Connection U30 - T10, 15890 Eisenhüttenstadt",
slug: "cable-connection-eisenhuettenstadt",
category: "Cable Construction",
image: "/assets/photos/DSC00010.JPG"
},
{
id: "5",
title: "PV System Feed-in 14728 Görne",
slug: "pv-system-feed-in-goerne",
category: "Renewable Energy",
image: "/assets/photos/DSC01123.JPG"
}
]}
/>
<HomeReferencesSlider />

View File

@@ -0,0 +1,61 @@
---
title: "Cable Civil Engineering in Medium and Low Voltage"
date: "2024-03-20"
excerpt: "Professional cable civil engineering for medium and low voltage networks: From the construction of cable routes to cable assemblies and street lighting."
layout: "fullBleed"
---
<HeroSection
badge="Core Competency"
title="Cable Civil Engineering"
subtitle="Complete infrastructure solutions for medium and low voltage networks"
backgroundImage={{ url: '/assets/photos/DSC01123.JPG' }}
alignment="center"
ctaLabel="Request a project"
ctaHref="/en/kontakt"
/>
<ServiceDetailGrid
badge="Service Portfolio"
title="Everything for your network"
descriptionParagraphs={[
"Our services cover the **complete spectrum** for the construction of modern cable routes and energy infrastructure.",
"We offer the highest precision, modern machines, and certified experts for every project."
]}
panels={[
{
id: "grabenbau",
title: "Trench Construction & Laying",
icon: "energy",
fullWidth: false,
lists: [
[
"Production of cable and pipe trenches",
"Cable laying from 0.4 kV - 110 kV",
"Cable assembly 0.4 kV - 30 kV"
]
]
},
{
id: "anlagen",
title: "Systems & Lighting",
icon: "energy",
fullWidth: false,
lists: [
[
"Construction of transformer stations",
"Establishment of grounding systems",
"Erection of street lighting",
"Switching operations"
]
]
}
]}
/>
<CallToAction
title="Do you have a specific project?"
text="We would be happy to advise you on all questions regarding cable civil engineering and line laying."
buttonText="Contact us"
buttonLink="/en/kontakt"
/>

View File

@@ -7,58 +7,94 @@ layout: "fullBleed"
<HomeHero
badge="Careers"
title="Build the Future\nwith Us"
description="We are looking for motivated talents who want to shape the digital and energy infrastructure of tomorrow. Join the E-TIB team."
title="Build the Future"
description="Are you looking for a new challenge in a future-proof market? At E-TIB, we work daily to network Germany and drive the energy transition forward."
videoUrl="/assets/videos/web/hero-kabelpflug.mp4"
linkText="View Open Positions"
linkHref="#jobs"
linkText="Open Positions"
linkHref="#stellen"
/>
<div id="jobs">
<JobListingBlock
showFairs={false}
showJobs={true}
title="Current Job Offers"
fairsTitle="Upcoming Trade Fairs 2026"
fairs={[
{ name: 'Intersolar Munich', date: 'June 19 - 21, 2026', type: 'Energy Fair' },
{ name: 'Wind Energy Days Linstow', date: 'Nov 04 - 06, 2026', type: 'Specialist Congress' },
{ name: 'Cable Workshop Wiesbaden', date: 'Dec 02 - 03, 2026', type: 'Trade Fair' }
]}
emptyStateMessage="Currently all positions are filled. However, we welcome your speculative application!"
emptyStateLinkText="Contact us now"
emptyStateLinkHref="/en/kontakt"
/>
</div>
<JobListingBlock showFairs={false} showJobs={true} />
<div className="bg-white py-24 border-t border-neutral-100">
<div className="container max-w-4xl mx-auto px-4 prose prose-lg md:prose-xl prose-headings:font-bold prose-headings:text-neutral-dark prose-p:text-text-secondary prose-li:text-text-secondary prose-ul:space-y-2">
<h2>Careers at E-TIB</h2>
<div>
E-TIB GmbH was founded in 2015 out of the motivation to enable high-quality services for our customers as well as fair remuneration for our employees. In addition to remuneration, the appreciation of each individual employee is our top priority.
</div>
<h3>We offer our employees:</h3>
<ul>
<li>Deployment in regional and supra-regional construction projects</li>
<li>Secure, permanent full-time employment contract</li>
<li>Appropriate training in a committed team</li>
<li>Performance-related and fair remuneration</li>
<li>Daily allowance up to 30.00 EUR per working day</li>
<li>31 days of vacation plus vacation pay</li>
<li>Work clothing (Engelbert Strauss)</li>
<li>Monthly additional payments (personal MasterCard)</li>
<li>Contribution to company pension scheme</li>
<li>Individual training and development opportunities</li>
<li>Provision of vehicle for operational use and trips to the construction site</li>
<li>Family atmosphere with company-organized events</li>
</ul>
<div>
Our successful corporate development enables us to continuously hire new workers. We are always looking for committed and motivated employees. Become a part of our team. Take a look at our open positions or apply speculatively.
</div>
</div>
</div>
<BenefitGrid
badge="E-TIB Standard"
title="We offer our employees"
description="E-TIB GmbH was founded with the motivation to provide high-quality services and fair remuneration. In addition to remuneration, the appreciation of each individual employee is our top priority."
benefits={[
{
id: "region",
title: "Exciting Projects",
description: "Deployment in interesting regional and supra-regional construction projects.",
icon: "region"
},
{
id: "contract",
title: "Permanent Contract",
description: "Secure job with a permanent full-time employment contract.",
icon: "contract"
},
{
id: "money",
title: "Fair Remuneration",
description: "Performance-related, above-average, and fair payment.",
icon: "money"
},
{
id: "allowance",
title: "Daily Allowance",
description: "We pay a tax-free daily allowance of up to 30.00 EUR per working day.",
icon: "allowance"
},
{
id: "vacation",
title: "31 Days of Vacation",
description: "31 days of annual vacation plus additional vacation pay for relaxation.",
icon: "vacation"
},
{
id: "clothes",
title: "Premium Workwear",
description: "High-quality Engelbert Strauss work clothing is fully provided.",
icon: "clothes"
},
{
id: "card",
title: "Additional Payments",
description: "Monthly bonuses via a personal MasterCard.",
icon: "card"
},
{
id: "retirement",
title: "Pension Scheme",
description: "Attractive contribution to the company pension scheme.",
icon: "retirement"
},
{
id: "education",
title: "Further Training",
description: "Individual development and promotion opportunities within the company.",
icon: "education"
},
{
id: "car",
title: "Company Vehicle",
description: "Provision of a vehicle for operational use and trips to the construction site.",
icon: "car"
},
{
id: "team",
title: "Intensive Onboarding",
description: "Professional onboarding in a helpful and committed team.",
icon: "team"
},
{
id: "family",
title: "Family Atmosphere",
description: "Strong cohesion through regular company-organized events.",
icon: "family"
}
]}
/>
<CallToAction
title="Speculative Application (m/f/d)"

View File

@@ -6,12 +6,54 @@ layout: "fullBleed"
---
<HomeHero
badge="Competencies"
title="Everything from a\nsingle source"
description="From the first planning sketch to the final documentation we are your reliable partner for complex infrastructure projects."
badge="Our Services"
title="Everything from a single source"
description="As a full-service partner in the field of cable civil engineering, we cover the entire spectrum of modern infrastructure projects."
videoUrl="/assets/videos/web/hero-bohrung.mp4"
linkText="Get in Touch"
linkHref="/en/kontakt"
secondaryCtaLabel="View References"
secondaryCtaHref="/en/#referenzen"
/>
<HomeCompetenceBentoGrid
badge="Core Competencies"
title="Precision & Performance"
ctaLabel="Request a project"
ctaHref="/en/kontakt"
items={[
{
title: "Cable Construction",
description: "Classic trench construction and professional laying of medium and low voltage cables.",
tag: "Energy",
size: "large",
href: "/en/kabeltiefbau",
image: { url: "/assets/photos/DSC01123.JPG", alt: "Cable Construction" }
},
{
title: "Drilling Technology",
description: "Horizontal directional drilling (HDD) for trenchless, surface-friendly installation.",
tag: "Innovation",
size: "medium",
href: "/en/bohrtechnik",
image: { url: "/assets/photos/DSC08653.JPG", alt: "Drilling Technology" }
},
{
title: "Fiber Optics",
description: "Expansion of future-proof broadband networks (FTTX).",
tag: "Communication",
size: "small",
href: "/en/glasfaser",
image: { url: "/assets/photos/DSC01129.JPG", alt: "Fiber Optics" }
},
{
title: "Planning & Docu",
description: "Route planning, approval procedures, and precise GIS documentation.",
tag: "Digital",
size: "accent",
href: "/en/planung"
}
]}
/>
<ServiceDetailGrid
@@ -19,50 +61,53 @@ layout: "fullBleed"
title="No compromises in construction"
problemStatement={{
title: "The reality on many construction sites",
text: "Everywhere you look, digging and drilling are happening, but unfortunately, many things go wrong. Safety standards and documentation requirements are often ignored. This results in accidents, damaged external lines, and expensive construction delays."
text: "Cheap providers are increasingly being used on many construction sites. Safety standards and documentation requirements are often ignored. This results in accidents, damaged external lines (electricity, water, gas, etc.), and expensive construction delays, meaning a supposed bargain turns out to be a cost trap."
}}
solutionStatement={{
title: "The E-TIB Standard",
text: "We work differently. Through our many years of experience, we identify problems early and develop safe solutions. Supported by our partner engineering firm, we offer planning, execution, and documentation at the highest level."
text: "Through our many years of experience, we identify problems early and develop safe solutions. Supported by our partner engineering firm, we offer planning, execution, and documentation at the highest level to avoid planning errors."
}}
panels={[
{
id: "energy",
title: "Energy & High Voltage",
title: "Cable Civil Engineering (Medium/Low Voltage)",
icon: "energy",
lists: [
[
"Cable and pipe trenches",
"Production of cable and pipe trenches",
"Cable laying (0.4kV - 110kV)",
"Cable assembly (0.4kV - 30kV)",
"Cable assembly 0.4 kV - 30 kV",
"Construction of transformer stations",
"Grounding systems & street lighting"
"Establishment of grounding systems",
"Erection of street lighting",
"Switching operations"
]
]
},
{
id: "fiber",
title: "Fiber Optics & Telecom",
title: "Cable Civil Engineering (Telecommunications)",
icon: "fiber",
lists: [
[
"Production of cable and pipe trenches",
"Production of empty conduit routes",
"Pulling/blowing in fiber optic cables",
"Pulling/blowing in TK/FO cables",
"Setting up multi-function enclosures",
"Fiber optic cable assembly"
"Cable assembly TK/FO"
]
]
},
{
id: "hdd",
title: "Trenchless Laying",
title: "Trenchless Line Laying",
icon: "hdd",
lists: [
[
"Horizontal directional drilling (HDD)",
"Max. drilling length: 250m",
"Max. diameter: 400mm pipe",
"Earth rocket (up to 15m / 160mm pipe)"
"Horizontal directional drilling (up to 250m)",
"Horizontal directional drilling (up to 400mm pipe)",
"Earth rocket (up to 15m crossing length)",
"Earth rocket (up to 160mm pipe)"
]
]
},
@@ -72,10 +117,10 @@ layout: "fullBleed"
icon: "planning",
lists: [
[
"Structural & execution planning",
"Tendering & construction supervision",
"Structural/approval/execution planning",
"Tendering, awarding & construction supervision",
"Approval planning",
"Feasibility studies & project review"
"Project review, studies"
]
]
},
@@ -86,14 +131,38 @@ layout: "fullBleed"
fullWidth: true,
lists: [
[
"Staking out and surveying of cable routes",
"Digital as-built documentation (GIS)"
],
[
"360° photo/video recording of the construction site",
"Creation of databases for project accounting"
"Staking out and surveying of line routes",
"Creation of databases for project accounting",
"360° photo/video recording of the construction site"
]
]
}
]}
/>
<JsonLd data={[
{
"@type": "Service",
"name": "Cable Construction",
"description": "Classic trench construction and professional laying of medium and low voltage cables.",
"provider": { "@type": "Organization", "name": "E-TIB GmbH" }
},
{
"@type": "Service",
"name": "Horizontal Directional Drilling",
"description": "Horizontal directional drilling (HDD) for trenchless, surface-friendly installation.",
"provider": { "@type": "Organization", "name": "E-TIB GmbH" }
},
{
"@type": "Service",
"name": "Fiber Optic Expansion",
"description": "Expansion of future-proof broadband networks (FTTX) and fiber optic cable assemblies.",
"provider": { "@type": "Organization", "name": "E-TIB GmbH" }
},
{
"@type": "Service",
"name": "Planning and Surveying",
"description": "Approval and execution planning, electrical and grid connection planning, as well as digital as-built documentation via GIS.",
"provider": { "@type": "Organization", "name": "E-TIB GmbH" }
}
]} />

View File

@@ -1,35 +1,29 @@
---
title: "Trade Fairs & Events"
title: "Fairs & Events"
date: "2024-03-20"
excerpt: "Meet the E-TIB Group team in person at trade fairs and industry events."
excerpt: "Meet the team of the E-TIB Group personally at trade fairs and industry events."
layout: "fullBleed"
---
<HomeHero
badge="Events"
title="Meet us\nin person"
description="Get in touch with our experts. We are represented at the most important industry trade fairs and look forward to speaking with you personally."
videoUrl="/assets/videos/web/hero-messe.mp4"
linkText="View dates"
linkHref="#dates"
badge="Fairs & Events"
title="Meet us personally"
description="Get to know the E-TIB Group at the leading industry trade fairs."
videoUrl="/assets/videos/web/hero-bahnkreuzung.mp4"
linkText="Get in Touch"
linkHref="/en/kontakt"
/>
<div id="dates">
<div id="termine">
<JobListingBlock
showFairs={true}
showJobs={false}
fairsTitle="Upcoming Trade Fairs 2026"
showJobs={false}
fairs={[
{ name: 'Intersolar Munich', date: 'June 19 - 21, 2026', type: 'Energy Fair' },
{ name: 'Wind Energy Days Linstow', date: 'Nov 04 - 06, 2026', type: 'Specialist Congress' },
{ name: 'Cable Workshop Wiesbaden', date: 'Dec 02 - 03, 2026', type: 'Trade Fair' }
{ name: 'Intersolar Munich', date: '2024 / 2025', type: 'Fair', location: 'Munich' },
{ name: 'Wind Energy Days Linstow', date: '2024 / 2025', type: 'Specialist Congress', location: 'Linstow' },
{ name: 'Cable Workshop Wiesbaden', date: '2024 / 2025', type: 'Trade Fair', location: 'Wiesbaden' }
]}
/>
</div>
<CallToAction
title="Ready for Your Project?"
description="We are always looking for new challenges and strong partners. Contact us for a non-binding consultation on your project."
ctaLabel="Contact Us Now"
ctaHref="/en/kontakt"
/>
<CallToAction />

62
content/en/planung.mdx Normal file
View File

@@ -0,0 +1,62 @@
---
title: "Planning and Consulting"
date: "2024-03-20"
excerpt: "Professional planning and consulting in the field of energy and telecommunications networks: route planning, approval procedures, and project review."
layout: "fullBleed"
---
<HeroSection
badge="Core Competency"
title="Planning & Consulting"
subtitle="Competent support for energy and telecommunications networks"
backgroundImage={{ url: '/assets/photos/DJI_0048.JPG' }}
alignment="center"
ctaLabel="Request a project"
ctaHref="/en/kontakt"
/>
<ServiceDetailGrid
badge="Engineering Services"
title="Foundation for Success"
descriptionParagraphs={[
"Solid planning is the foundation of every successful construction project. Avoid expensive planning errors and benefit from our comprehensive expertise.",
"Our partner engineering firm **E-TIB Ingenieurgesellschaft mbH** supports us in the smooth implementation of complex network expansion projects."
]}
panels={[
{
id: "planung",
title: "Planning",
icon: "planning",
fullWidth: false,
lists: [
[
"Structural planning",
"Approval planning",
"Execution planning",
"Consent planning"
]
]
},
{
id: "beratung",
title: "Consulting & Management",
icon: "planning",
fullWidth: false,
lists: [
[
"Tendering & awarding",
"Construction supervision",
"Project review",
"Feasibility studies"
]
]
}
]}
/>
<CallToAction
title="Do you need planning security?"
text="Let's talk about your project. We are at your side with help and advice."
buttonText="Contact us"
buttonLink="/en/kontakt"
/>

View File

@@ -1,12 +1,14 @@
---
title: "Breitbandausbau FTTH, Landkreis Börde"
title: "Broadband Expansion FTTH, Börde District"
client: "EKN Breitband GmbH & Co. KG"
date: "2026-01-01"
dateString: "seit 05/2019"
location: "Landkreis Börde"
date: "2019-05-01"
dateString: "Since 05/2019"
location: "Börde District"
featuredImage: "/assets/photos/etib_ingenieure_tiefbau_solar_pv_planung_vermessung_gis-294.jpg"
---
- 109.000 m Leitungstrasse herstellen (Tiefbau/HDD)
- 63 Stück Aufstellung Netzverteiler
- 747 Stück Herstellung Hausanschlüsse
- 109,000 m production of cable route (civil engineering/HDD)
- 63 units installation of network distributors
- 747 units production of house connections
- Coordination and realization of the entire route guidance
- Documentation and acceptance of the house connections

View File

@@ -1,13 +1,13 @@
---
title: "Breitbandausbau FTTH, Planungsregion Bomlitz"
client: "Telekom Deutschland GmbH"
date: "2018-12-31"
dateString: "04/2018 bis 12/2018"
location: "Bomlitz"
featuredImage: "/assets/photos/Etib_E-tib_Tiefbau_Guben_Netzanbindung_Energie-100.jpg"
title: "Broadband Expansion FTTH, Bomlitz / Schwarmstedt"
client: "inexio Informationstechnologie und Telekommunikation GmbH"
date: "2018-08-01"
dateString: "08/2018 to 03/2021"
location: "29699 Bomlitz / 29690 Schwarmstedt"
featuredImage: "/assets/photos/Etib_E-tib_Tiefbau_Guben_Netzanbindung_Energie-60.jpg"
---
- 88.890 m Leitungstrasse herstellen (Tiefbau/HDD)
- 23 Stück Aufstellung Multifunktionsgehäuse
- 52 Stück Aufstellung Netzverteiler
- 571 Stück Herstellung Hausanschlüsse
- 88,890 m production of cable route (civil engineering/HDD)
- 23 units installation of multi-functional cabinets
- 52 units installation of network distributors
- 571 units production of house connections

View File

@@ -1,19 +1,19 @@
---
title: "Kabelverbindung U30 - T10, 15890 Eisenhüttenstadt"
title: "Cable Connection U30 - T10, Eisenhüttenstadt"
client: "ArcelorMittal Eisenhüttenstadt GmbH"
date: "2019-12-31"
dateString: "07/2019 bis 12/2019"
location: "Eisenhüttenstadt"
date: "2019-07-01"
dateString: "07/2019 to 12/2019"
location: "15890 Eisenhüttenstadt"
featuredImage: "/assets/photos/Etib_E-tib_Tiefbau_Guben_Netzanbindung_Energie_Vermessung_(24_von_99)_groß2.jpg"
---
- 2.095 m Kabelgraben ausheben und verfüllen
- 180 m Horizontalspülbohrung d 160 + d 50
- 5.700 m Lieferung und Verlegung MS-Kabel 240 mm², 18/30 kV
- 3.000 m Lieferung und Verlegung PE-Schutzrohr 50 x 4,6 mm
- 3.000 m Lieferung und Einblasen LWL-Kabel, 12 Fasern
- 3.000 m Lieferung und Verlegung Steuerkabel, 0,6/1 kV
- 16 Satz Lieferung und Montage MS-Verbindungsmuffe 240 mm², 18/30 kV
- 1 Stück Lieferung und Montage LWL-Verbindungsmuffe, 12 Fasern
- 4 Satz Lieferung und Montage MS-T-Stecker 240 mm², 18/30 kV
- Hauptprüfung / Mantelprüfung / OTDR-Messung
- 2,095 m cable trench excavation and backfilling
- 180 m horizontal directional drilling d 160 + d 50
- 5,700 m delivery and installation of MV cable 240 mm², 18/30 kV
- 3,000 m delivery and installation of PE protection pipe 50 x 4.6 mm
- 3,000 m delivery and blowing in of FO cable, 12 fibers
- 3,000 m delivery and installation of control cable, 0.6/1 kV
- 16 sets delivery and assembly of MV connection joint 240 mm², 18/30 kV
- 1 unit delivery and assembly of FO connection joint, 12 fibers
- 4 sets delivery and assembly of MV T-connectors 240 mm², 18/30 kV
- Main testing / sheath testing / OTDR measurement

View File

@@ -1,16 +1,16 @@
---
title: "Neubau Kabeltrasse, 03149 Forst"
title: "New Cable Route, Forst"
client: "Mitteldeutsche Netzgesellschaft Strom mbH"
date: "2020-09-30"
dateString: "03/2020 bis 09/2020"
location: "Forst"
date: "2020-03-01"
dateString: "03/2020 to 09/2020"
location: "03149 Forst"
featuredImage: "/assets/photos/DSC02156.jpg"
---
- 2984 m Kabelgraben ausheben und verfüllen
- 945 m Horizontalspülbohrung d 160 + d 50
- 3.929 m Verlegung MS-Kabel 240 mm², 12/20 kV
- 3.929 m Verlegung PE-Schutzrohr 50 x 4,6 mm
- 11 Satz Montage MS-Verbindungsmuffe 240 mm², 12/20 kV
- 1 Satz Montage MS-Endverschluss 240 mm², 12/20 kV
- 2.000 m Rückbau Freileitung (inkl. 16 Stück Maste)
- 2,984 m cable trench excavation and backfilling
- 945 m horizontal directional drilling d 160 + d 50
- 3,929 m installation of MV cable 240 mm², 12/20 kV
- 3,929 m installation of PE protection pipe 50 x 4.6 mm
- 11 sets assembly of MV connection joint 240 mm², 12/20 kV
- 1 set assembly of MV end termination 240 mm², 12/20 kV
- 2,000 m dismantling of overhead line (incl. 16 poles)

View File

@@ -1,19 +1,19 @@
---
title: "Einspeisung PV-Anlage 14728 Görne"
title: "PV System Feed-in, Görne"
client: "EVH GmbH"
date: "2020-07-31"
dateString: "05/2020 bis 07/2020"
location: "Görne"
date: "2020-05-01"
dateString: "05/2020 to 07/2020"
location: "14728 Görne"
featuredImage: "/assets/photos/DSC08744.JPG"
---
- 4.215 m Kabelgraben ausheben und verfüllen
- 1.285 m Horizontalspülbohrung d 140 + d 50
- 5.500 m Verlegung MS-Kabel 300 mm², 12/20 kV
- 4.500 m Verlegung MS-Kabel 300 mm², 12/20 kV mittels Kabelpflug
- 10.000 m Verlegung PE-Schutzrohr 50 x 4,6 mm
- 10.000 m Einblasen LWL-Kabel, 12 Fasern
- 3 Stück Lieferung und Montage LWL-Verbindungsmuffe, 12 Fasern
- 16 Satz Montage MS-Verbindungsmuffe 300 mm², 12/20 kV
- 4 Satz Montage MS-T-Stecker 300 mm², 12/20 kV
- Mantelprüfung, VLF-Prüfung, OTDR-Messung
- 4,215 m cable trench excavation and backfilling
- 1,285 m horizontal directional drilling d 140 + d 50
- 5,500 m installation of MV cable 300 mm², 12/20 kV
- 4,500 m installation of MV cable 300 mm², 12/20 kV by cable plow
- 10,000 m installation of PE protection pipe 50 x 4.6 mm
- 10,000 m blowing in of FO cable, 12 fibers
- 3 units delivery and assembly of FO connection joint, 12 fibers
- 16 sets assembly of MV connection joint 300 mm², 12/20 kV
- 4 sets assembly of MV T-connectors 300 mm², 12/20 kV
- Sheath testing, VLF testing, OTDR measurement

View File

@@ -1,19 +1,17 @@
---
title: "Breitbandausbau FTTC, Planungsregion Spreewald"
title: "Broadband Expansion FTTC, Spreewald Planning Region"
client: "Telekom Deutschland GmbH"
date: "2018-01-31"
dateString: "09/2017 bis 01/2018"
location: "Spreewald"
date: "2017-09-01"
dateString: "09/2017 to 01/2018"
location: "Spreewald Planning Region"
featuredImage: "/assets/photos/DSC01129.JPG"
---
- 4.006 m Kabelgraben ausheben und verfüllen
- 4.006 m Verlegung PE-Schutzrohr 50 x 4,6 mm
- 13.008 m Horizontalspülbohrung D 50
- 94.951 m Einblasen von Kabel/Rohren unbelegt
- 42 Stück Stellen von Multifunktionsgehäusen
- Aufbau von Energieanschlusssäulen
- Aufbau elektrischer Anlagen 230V
- Koordination mit Energieversorgungsunternehmen
- Inbetriebnahme der elektrischen Anlagen
- Oberflächen- und Tiefbauarbeiten für Multifunktionsgehäuse
- 4,006 m cable trench excavation and backfilling
- 4,006 m installation of PE protection pipe 50 x 4.6 mm
- 13,008 m horizontal directional drilling D 50
- 94,951 m blowing in of cables/pipes (unoccupied)
- 42 units installation of multi-functional cabinets
- Setup of energy connection pillars and electrical systems 230V
- Coordination with utility companies and commissioning of the electrical systems
- Surface and civil engineering work for multi-function enclosures

View File

@@ -7,7 +7,7 @@ layout: "fullBleed"
<HomeHero
badge="The E-TIB Group"
title="Reliability has\na Tradition"
title="Reliability has a Tradition"
description="Since 2015, we have been growing continuously to meet the demands of the energy transition and digitalization. As a corporate group, we pool specialized expertise under one roof."
videoUrl="/assets/videos/web/hero-bahnkreuzung.mp4"
linkText="Open Positions"
@@ -95,66 +95,6 @@ layout: "fullBleed"
{ value: '100', suffix: '%', label: 'Nationwide Reach' },
{ value: '2', suffix: '+', label: 'Operating Locations' }
]}
locations={[
{
id: 'guben',
name: 'Guben (Headquarters)',
type: 'hq',
x: 85,
y: 48,
description: 'E-TIB GmbH Holding & Bohrtechnik GmbH',
details: ['Central Management', 'Cable Civil Engineering', 'Machinery Park']
},
{
id: 'buelstedt',
name: 'Bülstedt (Engineering Firm)',
type: 'branch',
x: 37,
y: 25,
description: 'E-TIB Ingenieurgesellschaft mbH',
details: ['Planning & Projecting', 'Surveying', 'Documentation']
},
{
id: 'spreewald',
name: 'Spreewald (Project)',
type: 'project',
x: 82,
y: 45,
description: 'Broadband Expansion FTTC'
},
{
id: 'bomlitz',
name: 'Bomlitz (Project)',
type: 'project',
x: 45,
y: 30,
description: 'Broadband Expansion FTTH'
},
{
id: 'forst',
name: 'Forst (Project)',
type: 'project',
x: 88,
y: 50,
description: 'New Cable Route Construction'
},
{
id: 'eisenhuettenstadt',
name: 'Eisenhüttenstadt (Project)',
type: 'project',
x: 85,
y: 40,
description: 'Cable Connection U30 - T10'
},
{
id: 'goerne',
name: 'Görne (Project)',
type: 'project',
x: 70,
y: 35,
description: 'PV System Feed-in'
}
]}
/>
<div id="structure">

60
content/en/vermessung.mdx Normal file
View File

@@ -0,0 +1,60 @@
---
title: "Surveying and Documentation"
date: "2024-03-20"
excerpt: "Precise surveying, staking out, and digital documentation of line routes to ensure the highest safety and quality standards."
layout: "fullBleed"
---
<HeroSection
badge="Core Competency"
title="Surveying & Documentation"
subtitle="Seamless and legally compliant recording of all construction phases"
backgroundImage={{ url: '/assets/photos/DSC08653.JPG' }}
alignment="center"
ctaLabel="Request a project"
ctaHref="/en/kontakt"
/>
<ServiceDetailGrid
badge="Precision"
title="Highest Safety Standards"
descriptionParagraphs={[
"Increasing documentation requirements and strict safety standards demand **the highest precision on the construction site**.",
"With state-of-the-art technology, we ensure seamless and legally compliant recording of all lines. This is the best protection against unpleasant surprises during construction acceptance."
]}
panels={[
{
id: "vermessung",
title: "Geodesy",
icon: "survey",
fullWidth: false,
lists: [
[
"Staking out of line routes",
"Surveying of line routes",
"GPS-supported terrain recording"
]
]
},
{
id: "dokumentation",
title: "Digital Documentation",
icon: "survey",
fullWidth: false,
lists: [
[
"Creation of databases for project accounting",
"360° photo/video recording of the construction site",
"Integration into geographic information systems (GIS)"
]
]
}
]}
/>
<CallToAction
title="Are you facing high documentation requirements?"
text="Contact us for professional surveying and documentation services."
buttonText="Contact us"
buttonLink="/en/kontakt"
/>

View File

@@ -31,56 +31,56 @@ export const defaultLocations: Location[] = [
},
{
id: 'spreewald',
name: 'Spreewald (LWL-Trasse)',
name: 'Spreewald (FTTC)',
type: 'project',
x: 81,
y: 42,
description: '28km LWL-Trasse inkl. Spülbohrung',
description: 'Breitbandausbau FTTC',
href: '/referenzen/spreewald',
},
{
id: 'bomlitz',
name: 'Bomlitz (110kV-Trasse)',
name: 'Bomlitz (FTTH)',
type: 'project',
x: 43,
y: 30,
description: 'Neuverlegung einer 110kV Hochspannungstrasse',
description: '88km Leitungstrasse (Tiefbau/HDD)',
href: '/referenzen/bomlitz',
},
{
id: 'forst',
name: 'Forst (Verteilerknoten)',
name: 'Forst (Kabeltrasse)',
type: 'project',
x: 87,
y: 52,
description: 'Ausbau lokaler Glasfasernetze',
description: 'Neubau MS-Kabeltrasse',
href: '/referenzen/forst',
},
{
id: 'eisenhuettenstadt',
name: 'Eisenhüttenstadt (Industriegebiet)',
name: 'Eisenhüttenstadt (Kabel)',
type: 'project',
x: 86,
y: 44,
description: 'Erschließung Industriegebiet Nord',
description: 'Kabelverbindung U30 - T10',
href: '/referenzen/eisenhuettenstadt',
},
{
id: 'goerne',
name: 'Görne (Breitbandausbau)',
name: 'Görne (PV-Anlage)',
type: 'project',
x: 65,
y: 35,
description: 'Glasfaser-Rückgrat für 3 Gemeinden',
description: 'Einspeisung PV-Anlage (MS-Kabel)',
href: '/referenzen/goerne',
},
{
id: 'boerde',
name: 'Börde (Windpark-Anschluss)',
name: 'Börde (FTTH-Ausbau)',
type: 'project',
x: 55,
y: 38,
description: 'Kabeltrasse für erneuerbare Energien',
description: '109km Leitungstrasse für Breitband',
href: '/referenzen/boerde',
}
];

View File

@@ -465,6 +465,10 @@ const nextConfig = {
async rewrites() {
return {
beforeFiles: [
{
source: '/:locale/stats/api/send',
destination: '/stats/api/send',
},
{
source: '/:locale/datasheets/:path*',
destination: '/api/datasheets/:path*',

View File

@@ -19,10 +19,10 @@
--color-secondary: #003d82;
--color-secondary-light: #0056b3;
--color-accent: #82ed20;
/* Sustainability Green */
--color-accent-dark: #14532d;
--color-accent-light: #f0f9e6;
--color-accent: #10a379;
/* Brand Aligned Accent */
--color-accent-dark: #0e7a5c;
--color-accent-light: #e6f5f0;
--color-neutral: #f8f9fa;
--color-neutral-light: #ffffff;