10-04-2026
This commit is contained in:
parent
4d6b4930b2
commit
4bb89aad8c
836 changed files with 52961 additions and 5950 deletions
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
<div class="relative">
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated slide-left delay-300">
|
||||
<img src="{{ asset('img/assets/' . $content['image']) }}"
|
||||
<img src="{{ theme_image_url($content['image']) }}"
|
||||
alt="{{ $content['image_alt'] }}"
|
||||
class="w-full h-[600px] object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<div class="sticky top-8">
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated slide-right delay-300">
|
||||
@if(isset($content['image']))
|
||||
<img src="{{ asset('img/assets/' . $content['image']) }}"
|
||||
<img src="{{ theme_image_url($content['image']) }}"
|
||||
alt="{{ $content['image_alt'] ?? 'Benefits Image' }}"
|
||||
class="w-full h-[400px] md:h-[500px] lg:h-[600px] object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
|
|
@ -122,7 +122,7 @@
|
|||
<div class="sticky top-8">
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated slide-left delay-300">
|
||||
@if(isset($content['image']))
|
||||
<img src="{{ asset('img/assets/' . $content['image']) }}"
|
||||
<img src="{{ theme_image_url($content['image']) }}"
|
||||
alt="{{ $content['image_alt'] ?? 'Benefits Image' }}"
|
||||
class="w-full h-[400px] md:h-[500px] lg:h-[600px] object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
|
|
|
|||
|
|
@ -13,14 +13,17 @@
|
|||
@foreach ($worlds as $world)
|
||||
<div class="card-elevated overflow-hidden group hover:shadow-elevated transition-all duration-300 flex flex-col slide-up delay-500">
|
||||
<div class="relative">
|
||||
<img src="{{ asset('img/assets/' . $world['image']) }}" alt="{{ $world['title'] }}"
|
||||
<x-web-picture
|
||||
src="{{ theme_image_url($world['image']) }}"
|
||||
alt="{{ $world['title'] }}"
|
||||
class="w-full h-64 object-cover group-hover:scale-105 transition-transform duration-500" />
|
||||
</div>
|
||||
<div class="p-6 spacing-small flex flex-col justify-between flex-grow">
|
||||
<div class="mb-4">
|
||||
@if (isset($world['logo']))
|
||||
<img src="{{ asset($world['logo']) }}" alt="{{ $world['title'] }}"
|
||||
class="{{ $world['logo_width'] }} h-18 object-contain" />
|
||||
class="{{ $world['logo_width'] }} h-18 object-contain"
|
||||
loading="lazy" />
|
||||
@else
|
||||
<h3 class="text-xl font-medium">{{ $world['title'] }}</h3>
|
||||
@endif
|
||||
|
|
@ -30,9 +33,10 @@
|
|||
</div>
|
||||
|
||||
<a href="{{ $world['link'] }}"
|
||||
class="inline-flex items-center gap-2 text-secondary font-medium hover:gap-3 transition-all duration-300">
|
||||
Mehr erfahren
|
||||
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
class="inline-flex items-center gap-2 text-secondary font-medium hover:gap-3 transition-all duration-300"
|
||||
@if(!empty($world['external'])) target="_blank" rel="noopener" @endif>
|
||||
{{ __('ui.learn_more') }}
|
||||
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7">
|
||||
</path>
|
||||
</svg>
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@
|
|||
</div>
|
||||
|
||||
{{-- Brand Cards --}}
|
||||
<div class="grid md:grid-cols-3 gap-8">
|
||||
<div class="grid md:grid-cols-2 gap-8">
|
||||
@foreach ($content['cards'] as $index => $card)
|
||||
<div class="card-elevated overflow-hidden group hover:shadow-elevated transition-all duration-300 flex flex-col slide-up delay-{{ $index * 200 }}">
|
||||
|
||||
@if(isset($card['image']))
|
||||
<div class="relative">
|
||||
<img src="{{ asset('img/assets/' . $card['image']) }}" alt="{{ $card['title'] }}"
|
||||
<img src="{{ theme_image_url($card['image']) }}" alt="{{ $card['title'] }}"
|
||||
class="w-full h-64 object-cover group-hover:scale-105 transition-transform duration-500" />
|
||||
</div>
|
||||
@endif
|
||||
|
|
@ -54,7 +54,7 @@
|
|||
@if(isset($card['link']))
|
||||
<a href="{{ $card['link'] }}"
|
||||
class="inline-flex items-center gap-2 text-secondary font-medium hover:gap-3 transition-all duration-300">
|
||||
Mehr erfahren
|
||||
{{ __('ui.learn_more') }}
|
||||
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7">
|
||||
</path>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
@foreach($content['testimonials'] as $index => $testimonial)
|
||||
<div class="card-elevated rounded-2xl p-8 text-left space-y-6 slide-up delay-{{ $index * 200 }}">
|
||||
<div class="flex items-center gap-4">
|
||||
<img src="{{ asset('img/assets/' . $testimonial['image']) }}" alt="{{ $testimonial['author'] }}" class="w-16 h-16 rounded-full object-cover">
|
||||
<img src="{{ theme_image_url($testimonial['image']) }}" alt="{{ $testimonial['author'] }}" class="w-16 h-16 rounded-full object-cover">
|
||||
<div>
|
||||
<h4 class="font-bold text-foreground">{{ $testimonial['author'] }}</h4>
|
||||
<p class="text-sm text-muted-foreground">{{ $testimonial['author_title'] }}</p>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
{{-- Image --}}
|
||||
<div class="relative lg:order-1">
|
||||
<div class="card-elevated rounded-3xl overflow-hidden slide-left delay-400">
|
||||
<img src="{{ asset('img/assets/' . $content['image']) }}" alt="{{ $content['image_alt'] }}"
|
||||
<img src="{{ theme_image_url($content['image']) }}" alt="{{ $content['image_alt'] }}"
|
||||
class="w-full h-[500px] object-cover" />
|
||||
<div
|
||||
class="absolute bottom-6 left-6 bg-card/95 backdrop-blur-sm rounded-xl p-4 shadow-lg border border-border/50 slide-left delay-500">
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
{{-- Image --}}
|
||||
<div class="relative">
|
||||
<div class="card-elevated rounded-3xl overflow-hidden slide-left delay-400">
|
||||
<img src="{{ asset('img/assets/' . $content['image']) }}" alt="{{ $content['image_alt'] }}"
|
||||
<img src="{{ theme_image_url($content['image']) }}" alt="{{ $content['image_alt'] }}"
|
||||
class="w-full h-full object-cover" />
|
||||
<div
|
||||
class="absolute bottom-6 left-6 bg-card/95 backdrop-blur-sm rounded-xl p-4 shadow-lg border border-border/50 slide-left delay-500">
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
<div class="relative">
|
||||
<div class="card-elevated bg-muted p-0 overflow-hidden rounded-3xl">
|
||||
<img src="{{ asset('img/assets/' . $content['image']) }}" alt="{{ $content['image_alt'] }}"
|
||||
<img src="{{ theme_image_url($content['image']) }}" alt="{{ $content['image_alt'] }}"
|
||||
class="w-full h-96 object-cover" />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{{-- Hero Icons Helper Function --}}
|
||||
@php
|
||||
if (!function_exists('renderHeroIcon')) {
|
||||
function renderHeroIcon($iconName, $style = 'outline', $color = 'text-secondary')
|
||||
{
|
||||
$iconPath = public_path("heroicons/optimized/24/{$style}/{$iconName}.svg");
|
||||
|
|
@ -19,13 +20,14 @@
|
|||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.563.563 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"/>
|
||||
</svg>';
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
|
||||
<section class="section-padding {{ $bg }}">
|
||||
<div class="container-padding">
|
||||
{{-- Section Title --}}
|
||||
<div class="text-center mb-16 slide-up delay-300">
|
||||
<h2 class="text-section-title">{{ $content['title'] }}</h2>
|
||||
<h2 class="text-section-title">{!! $content['title'] !!}</h2>
|
||||
@if (isset($content['subtitle']))
|
||||
<p class="text-large text-muted-foreground mt-4 max-w-2xl mx-auto">
|
||||
{{ $content['subtitle'] }}
|
||||
|
|
@ -36,7 +38,11 @@
|
|||
{{-- Pillars Grid --}}
|
||||
<div class="grid md:grid-cols-3 gap-8 lg:gap-12 slide-up delay-400">
|
||||
@foreach ($content['pillars'] as $index => $pillar)
|
||||
@if (isset($pillar['link']))
|
||||
<a href="{{ $pillar['link'] }}" class="card-elevated rounded-2xl p-8 text-center block hover:shadow-lg transition-shadow duration-300">
|
||||
@else
|
||||
<div class="card-elevated rounded-2xl p-8 text-center">
|
||||
@endif
|
||||
<div class="text-center spacing-content group">
|
||||
<div
|
||||
class="mx-auto w-20 h-20 icon-secondary-linear glow-soft group-hover:glow-medium rounded-2xl flex items-center justify-center transition-colors duration-300">
|
||||
|
|
@ -50,7 +56,11 @@
|
|||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@if (isset($pillar['link']))
|
||||
</a>
|
||||
@else
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
<div class="relative">
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated">
|
||||
<img src="{{ asset('img/assets/' . $content['image']) }}"
|
||||
<img src="{{ theme_image_url($content['image']) }}"
|
||||
alt="{{ $content['image_alt'] }}"
|
||||
class="w-full h-[600px] object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
</div>
|
||||
<div class="relative">
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated">
|
||||
<img src="{{ asset('img/assets/' . $content['image']) }}"
|
||||
<img src="{{ theme_image_url($content['image']) }}"
|
||||
alt="{{ $content['image_alt'] }}"
|
||||
class="w-full h-[600px] object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
@php($faqCounter = 0)
|
||||
<div x-data="{ openIndex: null }">
|
||||
<section class="section-padding {{ $bg }}">
|
||||
<div class="container-padding">
|
||||
{{-- Section Title --}}
|
||||
<div class="text-center mb-16">
|
||||
<h2 class="text-hero mb-6">
|
||||
<h1 class="text-hero mb-6">
|
||||
{!! $content['title'] !!}
|
||||
</h2>
|
||||
</h1>
|
||||
@if(!empty($content['subtitle']))
|
||||
<p class="text-large text-muted-foreground max-w-2xl mx-auto">
|
||||
{!! $content['subtitle'] !!}
|
||||
|
|
@ -14,10 +15,12 @@
|
|||
</div>
|
||||
|
||||
{{-- FAQ Container --}}
|
||||
<div class="max-w-4xl mx-auto">
|
||||
<div class="max-w-4xl mx-auto space-y-12">
|
||||
{{-- Allgemeine Fragen (ungrouped) --}}
|
||||
@if(!empty($content['questions']))
|
||||
<div class="space-y-4">
|
||||
@foreach($content['questions'] as $index => $faq)
|
||||
@foreach($content['questions'] as $faq)
|
||||
@php($index = $faqCounter++)
|
||||
<div class="card-elevated rounded-xl overflow-hidden">
|
||||
<dt>
|
||||
<button
|
||||
|
|
@ -55,8 +58,66 @@
|
|||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@else
|
||||
{{-- Fallback wenn keine FAQ-Daten vorhanden --}}
|
||||
@endif
|
||||
|
||||
{{-- Gruppierte Sektionen --}}
|
||||
@if(!empty($content['sections']))
|
||||
@foreach($content['sections'] as $section)
|
||||
<div>
|
||||
{{-- Sektions-Header --}}
|
||||
<div class="flex items-center gap-3 mb-6">
|
||||
<div class="flex items-center justify-center w-10 h-10 rounded-full bg-secondary/10 text-secondary shrink-0">
|
||||
@svg('heroicon-o-' . ($section['icon'] ?? 'question-mark-circle'), 'w-5 h-5')
|
||||
</div>
|
||||
<h2 class="text-lg font-semibold text-foreground">{{ $section['title'] }}</h2>
|
||||
<div class="flex-1 h-px bg-border"></div>
|
||||
</div>
|
||||
|
||||
<div class="space-y-4">
|
||||
@foreach($section['questions'] as $faq)
|
||||
@php($index = $faqCounter++)
|
||||
<div class="card-elevated rounded-xl overflow-hidden">
|
||||
<dt>
|
||||
<button
|
||||
@click="openIndex = openIndex === {{ $index }} ? null : {{ $index }}"
|
||||
class="flex w-full items-center justify-between p-6 text-left hover:bg-muted/30 transition-colors duration-200"
|
||||
:aria-expanded="openIndex === {{ $index }}"
|
||||
>
|
||||
<span class="text-lg font-medium text-foreground pr-6">
|
||||
{{ $faq['question'] }}
|
||||
</span>
|
||||
<span class="flex-shrink-0 ml-6 flex h-8 w-8 items-center justify-center rounded-full bg-secondary/10 transition-all duration-200"
|
||||
:class="openIndex === {{ $index }} ? 'bg-secondary text-white' : 'text-secondary hover:bg-secondary/20'">
|
||||
<svg class="w-5 h-5 transition-transform duration-200"
|
||||
:class="openIndex === {{ $index }} ? 'rotate-180' : ''"
|
||||
fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
|
||||
</svg>
|
||||
</span>
|
||||
</button>
|
||||
</dt>
|
||||
<dd x-show="openIndex === {{ $index }}"
|
||||
x-transition:enter="transition ease-out duration-200"
|
||||
x-transition:enter-start="opacity-0 transform -translate-y-2"
|
||||
x-transition:enter-end="opacity-100 transform translate-y-0"
|
||||
x-transition:leave="transition ease-in duration-150"
|
||||
x-transition:leave-start="opacity-100 transform translate-y-0"
|
||||
x-transition:leave-end="opacity-0 transform -translate-y-2"
|
||||
class="px-6 pb-6">
|
||||
<div class="border-t border-border pt-4">
|
||||
<p class="text-muted-foreground leading-relaxed">
|
||||
{{ $faq['answer'] }}
|
||||
</p>
|
||||
</div>
|
||||
</dd>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
@if(empty($content['questions']) && empty($content['sections']))
|
||||
<div class="text-center py-12">
|
||||
<p class="text-muted-foreground">Keine FAQ-Inhalte verfügbar.</p>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
<section class="py-8 bg-background border-b border-border/30">
|
||||
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div class="flex flex-col sm:flex-row items-center gap-6 sm:gap-8">
|
||||
@if(isset($content['image']))
|
||||
<div class="shrink-0">
|
||||
<x-web-picture
|
||||
src="{{ theme_image_url($content['image']) }}"
|
||||
alt="{{ $content['name'] ?? 'Founder' }}"
|
||||
class="w-16 h-16 sm:w-20 sm:h-20 rounded-full object-cover border-2 border-secondary/30 shadow-lg"
|
||||
width="80" height="80" />
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="text-center sm:text-left">
|
||||
<p class="text-lg sm:text-xl font-medium text-foreground">
|
||||
{!! $content['statement'] ?? '' !!}
|
||||
</p>
|
||||
<p class="text-sm text-muted-foreground mt-1">
|
||||
{{ $content['name'] ?? '' }} · {{ $content['title'] ?? '' }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
{{-- Full Width Hero Image --}}
|
||||
<div class="relative w-full">
|
||||
<div class="relative rounded-2xl overflow-hidden shadow-elevated">
|
||||
<img src="{{ asset('img/assets/' . ($content['hero_image'] ?? $content['tiles'][0]['image'])) }}"
|
||||
<img src="{{ theme_image_url($content['hero_image'] ?? $content['tiles'][0]['image']) }}"
|
||||
alt="{{ $content['hero_image_alt'] ?? $content['tiles'][0]['alt'] ?? '' }}"
|
||||
class="w-full h-64 md:h-80 lg:h-96 object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/30 via-black/10 to-transparent"></div>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
:class="currentSlide === {{ $index }} ? 'opacity-100' : 'opacity-0'"
|
||||
>
|
||||
<img
|
||||
src="{{ asset('img/assets/' . $slide['image']) }}"
|
||||
src="{{ theme_image_url($slide['image']) }}"
|
||||
alt="{{ $slide['image_alt'] }}"
|
||||
class="size-full object-cover"
|
||||
/>
|
||||
|
|
@ -38,7 +38,7 @@
|
|||
@click="setSlide({{ $index }})"
|
||||
class="w-3 h-3 rounded-full border-2 border-white/50 transition-all duration-300"
|
||||
:class="currentSlide === {{ $index }} ? 'bg-white border-white' : 'bg-transparent hover:border-white/80'"
|
||||
aria-label="Slide {{ $index + 1 }} anzeigen"
|
||||
aria-label="{{ __('ui.show_slide', ['number' => $index + 1]) }}"
|
||||
></button>
|
||||
@endforeach
|
||||
</div>
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
<button
|
||||
@click="previousSlide()"
|
||||
class="absolute left-6 top-1/2 transform -translate-y-1/2 text-white/70 hover:text-white transition-colors duration-300 focus:outline-none focus:ring-2 focus:ring-white/50 rounded-full p-2"
|
||||
aria-label="Vorheriges Bild"
|
||||
aria-label="{{ __('ui.previous_image') }}"
|
||||
>
|
||||
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"></path>
|
||||
|
|
@ -60,7 +60,7 @@
|
|||
<button
|
||||
@click="nextSlide()"
|
||||
class="absolute right-6 top-1/2 transform -translate-y-1/2 text-white/70 hover:text-white transition-colors duration-300 focus:outline-none focus:ring-2 focus:ring-white/50 rounded-full p-2"
|
||||
aria-label="Nächstes Bild"
|
||||
aria-label="{{ __('ui.next_image') }}"
|
||||
>
|
||||
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
{{-- First Column --}}
|
||||
<div class="ml-auto w-44 flex-none space-y-8 pt-32 sm:ml-0 sm:pt-80 lg:order-last lg:pt-36 xl:order-0 xl:pt-80">
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated">
|
||||
<img src="{{ asset('img/assets/' . $content['tiles'][0]['image']) }}"
|
||||
<img src="{{ theme_image_url($content['tiles'][0]['image']) }}"
|
||||
alt="{{ $content['tiles'][0]['alt'] ?? '' }}"
|
||||
class="aspect-2/3 w-full object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
|
|
@ -47,13 +47,13 @@
|
|||
{{-- Second Column --}}
|
||||
<div class="mr-auto w-44 flex-none space-y-8 sm:mr-0 sm:pt-52 lg:pt-36">
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated">
|
||||
<img src="{{ asset('img/assets/' . $content['tiles'][1]['image']) }}"
|
||||
<img src="{{ theme_image_url($content['tiles'][1]['image']) }}"
|
||||
alt="{{ $content['tiles'][1]['alt'] ?? '' }}"
|
||||
class="aspect-2/3 w-full object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
</div>
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated">
|
||||
<img src="{{ asset('img/assets/' . $content['tiles'][2]['image']) }}"
|
||||
<img src="{{ theme_image_url($content['tiles'][2]['image']) }}"
|
||||
alt="{{ $content['tiles'][2]['alt'] ?? '' }}"
|
||||
class="aspect-2/3 w-full object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
|
|
@ -63,13 +63,13 @@
|
|||
{{-- Third Column --}}
|
||||
<div class="w-44 flex-none space-y-8 pt-32 sm:pt-0">
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated">
|
||||
<img src="{{ asset('img/assets/' . $content['tiles'][3]['image']) }}"
|
||||
<img src="{{ theme_image_url($content['tiles'][3]['image']) }}"
|
||||
alt="{{ $content['tiles'][3]['alt'] ?? '' }}"
|
||||
class="aspect-2/3 w-full object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
</div>
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated">
|
||||
<img src="{{ asset('img/assets/' . $content['tiles'][4]['image']) }}"
|
||||
<img src="{{ theme_image_url($content['tiles'][4]['image']) }}"
|
||||
alt="{{ $content['tiles'][4]['alt'] ?? '' }}"
|
||||
class="aspect-2/3 w-full object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
{{-- Right Image --}}
|
||||
<div class="relative">
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated slide-left delay-300">
|
||||
<img src="{{ asset('img/assets/' . $content['image']) }}" alt="{{ $content['image_alt'] }}"
|
||||
<img src="{{ theme_image_url($content['image']) }}" alt="{{ $content['image_alt'] }}"
|
||||
class="w-full h-[600px] object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
@if (!empty($content))
|
||||
<section class="relative h-[30vh] min-h-[220px] overflow-hidden">
|
||||
<x-web-picture
|
||||
src="{{ theme_image_url($content['image'] ?? '') }}"
|
||||
alt="{{ $content['image_alt'] ?? 'Dekoratives Bild' }}"
|
||||
class="absolute inset-0 w-full h-full object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/60 via-black/30 to-black/10"></div>
|
||||
@if (isset($content['quote']))
|
||||
<div class="absolute inset-0 flex items-end justify-center pb-12 px-6">
|
||||
<div class="text-center slide-up delay-300">
|
||||
<p class="text-xl lg:text-2xl font-medium text-white italic max-w-2xl leading-relaxed">
|
||||
"{{ $content['quote'] }}"
|
||||
</p>
|
||||
@if (isset($content['author']))
|
||||
<p class="text-sm text-white/70 mt-3">– {{ $content['author'] }}</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</section>
|
||||
@endif
|
||||
|
|
@ -0,0 +1,149 @@
|
|||
<div>
|
||||
@if ($success)
|
||||
<div class="flex flex-col items-center text-center py-6 gap-4">
|
||||
<div class="flex items-center justify-center w-16 h-16 rounded-full bg-green-100">
|
||||
<svg class="w-8 h-8 text-green-600" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-lg font-semibold text-foreground">{{ __('ui.immobilien_form.success_title') }}</p>
|
||||
<p class="text-muted-foreground mt-1 text-sm">{{ __('ui.immobilien_form.success_message') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<form wire:submit="submit" class="space-y-6">
|
||||
|
||||
{{-- Honeypot --}}
|
||||
<div class="opacity-0 absolute top-0 left-0 h-0 w-0 -z-10 overflow-hidden" aria-hidden="true">
|
||||
<label for="website_hp">Website</label>
|
||||
<input type="text" id="website_hp" name="website" wire:model="website" tabindex="-1" autocomplete="off">
|
||||
</div>
|
||||
|
||||
@if (!empty($interestOptions))
|
||||
<div>
|
||||
<label for="interest" class="block text-sm font-medium text-foreground mb-2">{{ __('ui.immobilien_form.interest') }}</label>
|
||||
<div class="grid grid-cols-1">
|
||||
<select
|
||||
wire:model="interest"
|
||||
id="interest"
|
||||
class="col-start-1 row-start-1 w-full appearance-none rounded-lg border border-border bg-background px-4 py-3 text-foreground focus:border-secondary focus:ring-1 focus:ring-secondary sm:text-sm/6">
|
||||
<option value="">{{ __('ui.immobilien_form.please_select') }}</option>
|
||||
@foreach ($interestOptions as $value => $label)
|
||||
<option value="{{ $value }}">{{ $label }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<svg viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"
|
||||
class="pointer-events-none col-start-1 row-start-1 mr-3 size-4 self-center justify-self-end text-muted-foreground">
|
||||
<path d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd" />
|
||||
</svg>
|
||||
</div>
|
||||
@error('interest') <span class="text-red-500 text-xs mt-1 block">{{ $message }}</span> @enderror
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="grid sm:grid-cols-2 gap-4">
|
||||
<div>
|
||||
<label for="firstName" class="block text-sm font-medium text-foreground mb-2">{{ __('ui.immobilien_form.first_name') }}</label>
|
||||
<input
|
||||
wire:model="firstName"
|
||||
id="firstName"
|
||||
type="text"
|
||||
placeholder="{{ __('ui.immobilien_form.first_name_placeholder') }}"
|
||||
class="w-full rounded-lg border border-border bg-background px-4 py-3 text-foreground focus:border-secondary focus:ring-1 focus:ring-secondary sm:text-sm"
|
||||
/>
|
||||
@error('firstName') <span class="text-red-500 text-xs mt-1 block">{{ $message }}</span> @enderror
|
||||
</div>
|
||||
<div>
|
||||
<label for="lastName" class="block text-sm font-medium text-foreground mb-2">{{ __('ui.immobilien_form.last_name') }}</label>
|
||||
<input
|
||||
wire:model="lastName"
|
||||
id="lastName"
|
||||
type="text"
|
||||
placeholder="{{ __('ui.immobilien_form.last_name_placeholder') }}"
|
||||
class="w-full rounded-lg border border-border bg-background px-4 py-3 text-foreground focus:border-secondary focus:ring-1 focus:ring-secondary sm:text-sm"
|
||||
/>
|
||||
@error('lastName') <span class="text-red-500 text-xs mt-1 block">{{ $message }}</span> @enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid sm:grid-cols-2 gap-4">
|
||||
<div>
|
||||
<label for="email" class="block text-sm font-medium text-foreground mb-2">{{ __('ui.immobilien_form.email') }}</label>
|
||||
<input
|
||||
wire:model="email"
|
||||
id="email"
|
||||
type="email"
|
||||
placeholder="{{ __('ui.immobilien_form.email_placeholder') }}"
|
||||
class="w-full rounded-lg border border-border bg-background px-4 py-3 text-foreground focus:border-secondary focus:ring-1 focus:ring-secondary sm:text-sm"
|
||||
/>
|
||||
@error('email') <span class="text-red-500 text-xs mt-1 block">{{ $message }}</span> @enderror
|
||||
</div>
|
||||
<div>
|
||||
<label for="phone" class="block text-sm font-medium text-foreground mb-2">
|
||||
{{ __('ui.immobilien_form.phone') }}
|
||||
</label>
|
||||
<input
|
||||
wire:model="phone"
|
||||
id="phone"
|
||||
type="tel"
|
||||
placeholder="+49 ..."
|
||||
class="w-full rounded-lg border border-border bg-background px-4 py-3 text-foreground focus:border-secondary focus:ring-1 focus:ring-secondary sm:text-sm"
|
||||
/>
|
||||
@error('phone') <span class="text-red-500 text-xs mt-1 block">{{ $message }}</span> @enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="message" class="block text-sm font-medium text-foreground mb-2">
|
||||
{{ __('ui.immobilien_form.message') }}
|
||||
</label>
|
||||
<textarea
|
||||
wire:model="message"
|
||||
id="message"
|
||||
rows="3"
|
||||
placeholder="{{ __('ui.immobilien_form.message_placeholder') }}"
|
||||
class="w-full rounded-lg border border-border bg-background px-4 py-3 text-foreground focus:border-secondary focus:ring-1 focus:ring-secondary sm:text-sm resize-none"
|
||||
></textarea>
|
||||
@error('message') <span class="text-red-500 text-xs mt-1 block">{{ $message }}</span> @enderror
|
||||
</div>
|
||||
|
||||
<div x-data="{ on: $wire.entangle('privacy') }">
|
||||
<label class="flex items-start gap-3 cursor-pointer">
|
||||
<input
|
||||
x-model="on"
|
||||
id="privacy_immo"
|
||||
type="checkbox"
|
||||
class="sr-only"
|
||||
/>
|
||||
<span
|
||||
role="switch"
|
||||
:aria-checked="on.toString()"
|
||||
:class="on ? 'bg-green-500' : 'bg-muted'"
|
||||
class="relative mt-0.5 w-11 h-6 shrink-0 rounded-full transition-colors duration-200"
|
||||
>
|
||||
<span
|
||||
:class="on ? 'translate-x-5' : 'translate-x-0'"
|
||||
class="absolute top-0.5 left-0.5 h-5 w-5 rounded-full bg-white shadow-sm transition-transform duration-200 pointer-events-none"
|
||||
></span>
|
||||
</span>
|
||||
<span class="text-sm text-muted-foreground">
|
||||
{{ __('ui.immobilien_form.privacy_prefix') }}
|
||||
<a href="{{ route('privacy') }}" target="_blank" class="text-secondary underline underline-offset-2 hover:no-underline">Datenschutzerklärung</a>
|
||||
{{ __('ui.immobilien_form.privacy_suffix') }}
|
||||
</span>
|
||||
</label>
|
||||
@error('privacy') <span class="text-red-500 text-xs mt-1 block">{{ $message }}</span> @enderror
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
wire:loading.attr="disabled"
|
||||
class="w-full btn-primary-accent"
|
||||
>
|
||||
<span wire:loading.remove>{{ __('ui.immobilien_form.submit') }}</span>
|
||||
<span wire:loading>{{ __('ui.immobilien_form.sending') }}</span>
|
||||
</button>
|
||||
</form>
|
||||
@endif
|
||||
</div>
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
<div class="card-elevated rounded-3xl overflow-hidden hover:scale-105 transition-all duration-300">
|
||||
<div class="relative">
|
||||
<img
|
||||
src="{{ asset('img/assets/' . $member['image']) }}"
|
||||
src="{{ theme_image_url($member['image']) }}"
|
||||
alt="{{ $member['name'] }} - {{ $member['position'] }}"
|
||||
class="w-full h-80 object-cover"
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -38,16 +38,16 @@
|
|||
|
||||
<!-- Featured Image -->
|
||||
<div class="mb-12 overflow-hidden rounded-lg shadow-md slide-up delay-200">
|
||||
<img
|
||||
src="{{ asset('img/assets/' . $article['image']) }}"
|
||||
<x-web-picture
|
||||
src="{{ theme_image_url($article['image']) }}"
|
||||
alt="{{ $article['title'] }}"
|
||||
class="w-full h-64 md:h-96 object-cover"
|
||||
>
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-4 gap-12">
|
||||
<!-- Main Content -->
|
||||
<div class="md:col-span-3">
|
||||
<div class="md:col-span-4">
|
||||
<div class="prose prose-lg max-w-none">
|
||||
<p class="text-lg text-muted-foreground leading-relaxed mb-8 slide-up delay-200">
|
||||
{{ $article['content']['intro'] }}
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
</div>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="md:col-span-1">
|
||||
{{-- <div class="md:col-span-1">
|
||||
<div class="sticky top-24">
|
||||
|
||||
<div class="card-elevated rounded-lg p-2 slide-left delay-400">
|
||||
|
|
@ -93,7 +93,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> --}}
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="text-center mb-16">
|
||||
<h2 class="text-hero mb-6">
|
||||
<h1 class="text-hero mb-6">
|
||||
{!! $content['title'] !!}
|
||||
</h2>
|
||||
</h1>
|
||||
<p class="text-large text-muted-foreground mt-4 max-w-3xl mx-auto">
|
||||
{{ $content['subtitle'] }}
|
||||
</p>
|
||||
|
|
@ -13,13 +13,13 @@
|
|||
@foreach($this->posts as $post)
|
||||
<article class="group">
|
||||
<div class="card-elevated rounded-3xl overflow-hidden h-full transition-all duration-300">
|
||||
<div class="flex flex-col md:flex-row">
|
||||
<div class="relative md:w-3/4 aspect-[2/1] md:aspect-[2/1]">
|
||||
<img
|
||||
src="{{ asset('img/assets/' . $post['image']) }}"
|
||||
<div class="flex flex-col lg:flex-row">
|
||||
<div class="relative lg:w-3/4 aspect-[2/1] lg:aspect-[2/1]">
|
||||
<x-web-picture
|
||||
src="{{ theme_image_url($post['image']) }}"
|
||||
alt="{{ $post['title'] }}"
|
||||
class="w-full h-full object-cover"
|
||||
>
|
||||
/>
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
</div>
|
||||
|
||||
|
|
@ -45,14 +45,14 @@
|
|||
<div class="flex items-center justify-between mt-6">
|
||||
<div class="flex items-center text-secondary font-medium group-hover:text-secondary-dark transition-colors duration-200">
|
||||
<a href="/magazin/{{ $post['id'] }}" class="text-sm">{{ $content['read_more'] }}</a>
|
||||
<svg class="w-4 h-4 ml-2 transform group-hover:translate-x-1 transition-transform duration-200" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<svg class="w-4 h-4 ml-2 transform group-hover:translate-x-1 transition-transform duration-200" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3" />
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<div class="w-10 h-10 bg-primary rounded-full flex items-center justify-center group-hover:bg-secondary transition-colors duration-200">
|
||||
<a href="/magazin/{{ $post['id'] }}">
|
||||
<svg class="w-4 h-4 text-white transform group-hover:translate-x-1 transition-transform duration-200" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<a href="/magazin/{{ $post['id'] }}" aria-label="{{ __('ui.read_article', ['title' => $post['title']]) }}">
|
||||
<svg class="w-4 h-4 text-white transform group-hover:translate-x-1 transition-transform duration-200" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3" />
|
||||
</svg>
|
||||
</a>
|
||||
|
|
@ -65,10 +65,10 @@
|
|||
@endforeach
|
||||
</div>
|
||||
|
||||
<div class="text-center mt-16">
|
||||
{{-- <div class="text-center mt-16">
|
||||
<a href="/magazin?page=2" class="btn-primary-accent">
|
||||
{{ $content['load_more'] }}
|
||||
</a>
|
||||
</div>
|
||||
</div> --}}
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8">
|
||||
<div class="grid md:grid-cols-2 lg:grid-cols-2 gap-8">
|
||||
@foreach($content['timeline'] as $index => $card)
|
||||
<div class="group {{ $index === 4 ? 'md:col-span-2 lg:col-span-1 lg:col-start-2' : '' }}">
|
||||
<div class="card-elevated overflow-hidden group hover:shadow-elevated transition-all duration-300 flex flex-col h-full slide-up delay-{{ $index * 200 }}">
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{{-- Hero Icons Helper Function --}}
|
||||
@php
|
||||
if (!function_exists('renderHeroIcon')) {
|
||||
function renderHeroIcon($iconName, $style = 'outline') {
|
||||
$iconPath = public_path("heroicons/optimized/24/{$style}/{$iconName}.svg");
|
||||
$fallbackPath = public_path("heroicons/optimized/24/outline/sparkles.svg");
|
||||
|
|
@ -18,8 +19,9 @@ function renderHeroIcon($iconName, $style = 'outline') {
|
|||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.563.563 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"/>
|
||||
</svg>';
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
<section class="section-padding">
|
||||
<section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="text-center mb-16 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $content['title'] !!}</h2>
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@
|
|||
|
||||
<div class="relative">
|
||||
<div class="card-elevated p-0 overflow-hidden rounded-xl">
|
||||
<img src="{{ asset('img/assets/' . $content['supplier']['highlight']['image']) }}" alt="{{ $content['supplier']['highlight']['alt'] }}"
|
||||
<img src="{{ theme_image_url($content['supplier']['highlight']['image']) }}" alt="{{ $content['supplier']['highlight']['alt'] }}"
|
||||
class="w-full h-48 object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent flex items-end">
|
||||
<div class="p-6 text-white">
|
||||
|
|
|
|||
|
|
@ -10,14 +10,7 @@
|
|||
{{ $content['subtitle'] }}
|
||||
</p>
|
||||
|
||||
<div class="grid md:grid-cols-3 gap-8 py-8 slide-up delay-400">
|
||||
@foreach($content['stats'] as $stat)
|
||||
<div class="text-center space-y-3">
|
||||
<div class="text-4xl font-light text-secondary-foreground">{{ $stat['number'] }}</div>
|
||||
<p class="text-secondary-foreground text-sm">{{ $stat['label'] }}</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
|
||||
<div class="spacing-content slide-up delay-500">
|
||||
<a href="{{ $content['button_link'] }}" class="btn-primary-accent">
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
|
||||
<div class="relative">
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated slide-left delay-300">
|
||||
<img src="{{ asset('img/assets/' . $content['image']) }}"
|
||||
<img src="{{ theme_image_url($content['image']) }}"
|
||||
alt="{{ $content['image_alt'] }}"
|
||||
class="w-full h-[600px] object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
<!-- Image Container -->
|
||||
<div class="relative aspect-[4/3] overflow-hidden cursor-pointer"
|
||||
wire:click="openModal({{ json_encode($project) }})">
|
||||
<img src="{{ asset('img/assets/' . $project['image']) }}"
|
||||
<img src="{{ theme_image_url($project['image']) }}"
|
||||
alt="{{ $project['title'] }}"
|
||||
class="w-full h-full object-cover transition-transform duration-500 group-hover:scale-110">
|
||||
|
||||
|
|
@ -64,7 +64,7 @@
|
|||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
|
||||
</svg>
|
||||
<span class="font-medium"> Ansehen</span>
|
||||
<span class="font-medium"> {{ __('ui.view') }}</span>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -128,8 +128,8 @@
|
|||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-lg font-medium text-foreground mb-2">Keine Projekte gefunden</h3>
|
||||
<p class="text-muted-foreground">Versuchen Sie einen anderen Filter</p>
|
||||
<h3 class="text-lg font-medium text-foreground mb-2">{{ __('ui.portfolio.no_projects') }}</h3>
|
||||
<p class="text-muted-foreground">{{ __('ui.portfolio.try_other_filter') }}</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
|
@ -175,7 +175,7 @@
|
|||
<div class="h-full max-h-[90vh] overflow-y-auto">
|
||||
<!-- Image -->
|
||||
<div class="aspect-[16/10] relative overflow-hidden rounded-t-2xl">
|
||||
<img src="{{ asset('img/assets/' . $selectedProject['image']) }}"
|
||||
<img src="{{ theme_image_url($selectedProject['image']) }}"
|
||||
alt="{{ $selectedProject['title'] }}"
|
||||
class="w-full h-full object-cover">
|
||||
|
||||
|
|
@ -200,7 +200,7 @@
|
|||
|
||||
<!-- Features -->
|
||||
<div class="mb-6">
|
||||
<h4 class="font-semibold text-foreground mb-3">Ausstattung</h4>
|
||||
<h4 class="font-semibold text-foreground mb-3">{{ __('ui.portfolio.amenities') }}</h4>
|
||||
<div class="flex flex-wrap gap-2">
|
||||
@foreach($selectedProject['features'] as $feature)
|
||||
<span class="bg-muted text-muted-foreground px-3 py-1 rounded-full text-sm">
|
||||
|
|
@ -213,7 +213,7 @@
|
|||
|
||||
<!-- Details Sidebar -->
|
||||
<div class="lg:w-80 card-elevated rounded-lg p-6">
|
||||
<h4 class="font-semibold text-foreground mb-4">Projektdetails</h4>
|
||||
<h4 class="font-semibold text-foreground mb-4">{{ __('ui.portfolio.project_details') }}</h4>
|
||||
|
||||
<div class="space-y-4">
|
||||
@if(isset($selectedProject['location']) && $selectedProject['location'] != '')
|
||||
|
|
@ -223,7 +223,7 @@
|
|||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
||||
</svg>
|
||||
<div>
|
||||
<span class="text-sm text-muted-foreground">Standort</span>
|
||||
<span class="text-sm text-muted-foreground">{{ __('ui.portfolio.location') }}</span>
|
||||
<div class="font-medium text-foreground">{{ $selectedProject['location'] }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -235,7 +235,7 @@
|
|||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1"></path>
|
||||
</svg>
|
||||
<div>
|
||||
<span class="text-sm text-muted-foreground">Preis</span>
|
||||
<span class="text-sm text-muted-foreground">{{ __('ui.portfolio.price') }}</span>
|
||||
<div class="font-bold text-lg text-secondary">{{ $selectedProject['price'] }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -247,7 +247,7 @@
|
|||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 8V4a1 1 0 011-1h4m0 0V4m0-1h6m0 1v3M4 8h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V8z"></path>
|
||||
</svg>
|
||||
<div>
|
||||
<span class="text-sm text-muted-foreground">Größe</span>
|
||||
<span class="text-sm text-muted-foreground">{{ __('ui.portfolio.size') }}</span>
|
||||
<div class="font-medium text-foreground">{{ $selectedProject['size'] }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -256,7 +256,7 @@
|
|||
|
||||
<!-- CTA Button -->
|
||||
<button class="btn-primary-accent w-full mt-6">
|
||||
Kontakt aufnehmen
|
||||
{{ __('ui.contact') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
{{-- Image --}}
|
||||
<div class="relative">
|
||||
<div class="card-elevated rounded-3xl overflow-hidden slide-left delay-400">
|
||||
<img src="{{ asset('img/assets/' . $content['image']) }}" alt="{{ $content['image_alt'] }}"
|
||||
<img src="{{ theme_image_url($content['image']) }}" alt="{{ $content['image_alt'] }}"
|
||||
class="w-full h-full object-cover" />
|
||||
|
||||
<div
|
||||
|
|
|
|||
|
|
@ -3,12 +3,12 @@
|
|||
<div class="grid lg:grid-cols-2 gap-16 items-center">
|
||||
<div class="space-y-8">
|
||||
<h1 class="text-5xl lg:text-6xl font-light text-foreground">
|
||||
Über <span class="text-secondary">B2In</span>
|
||||
Über <span class="text-secondary">B2in</span>
|
||||
</h1>
|
||||
|
||||
<blockquote class="text-xl lg:text-2xl text-muted-foreground italic leading-relaxed border-l-4 border-secondary pl-6">
|
||||
"Unsere Vision ist es, Unternehmen durch innovative Konnektivitätslösungen zu verbinden
|
||||
und nachhaltiges Wachstum in der digitalen Welt zu ermöglichen. Bei B2In schaffen wir
|
||||
und nachhaltiges Wachstum in der digitalen Welt zu ermöglichen. Bei B2in schaffen wir
|
||||
nicht nur Verbindungen – wir bauen Brücken in die Zukunft."
|
||||
</blockquote>
|
||||
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
<div class="w-16 h-px bg-secondary"></div>
|
||||
<div>
|
||||
<p class="font-semibold text-foreground">Marcel Scheibe</p>
|
||||
<p class="text-sm text-muted-foreground">Gründer & CEO, B2In</p>
|
||||
<p class="text-sm text-muted-foreground">Gründer & CEO, B2in</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -25,9 +25,8 @@
|
|||
<div class="card-elevated rounded-3xl overflow-hidden">
|
||||
<img
|
||||
src="{{ asset('img/assets/marcel-scheibe.jpg') }}"
|
||||
alt="Marcel Scheibe, Gründer und CEO von B2In"
|
||||
class="w-full h-96 lg:h-[500px] object-cover"
|
||||
/>
|
||||
alt="Marcel Scheibe, Gründer und CEO von B2in"
|
||||
class="w-full h-96 lg:h-[500px] object-cover" />
|
||||
</div>
|
||||
<div class="absolute -bottom-6 -right-6 bg-secondary text-secondary-foreground p-6 rounded-2xl">
|
||||
<div class="text-3xl font-bold">2019</div>
|
||||
|
|
@ -36,4 +35,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<div class="grid lg:grid-cols-2 gap-16 items-center">
|
||||
<div class="space-y-8">
|
||||
<h1 class="text-5xl lg:text-7xl font-light text-foreground">
|
||||
B2In <span class="text-primary">Ecosystem</span>
|
||||
B2in <span class="text-primary">Ecosystem</span>
|
||||
</h1>
|
||||
|
||||
<p class="text-xl lg:text-2xl text-muted-foreground leading-relaxed">
|
||||
|
|
@ -14,39 +14,39 @@
|
|||
|
||||
<div class="grid grid-cols-2 gap-6">
|
||||
@foreach ($this->features as $feature)
|
||||
<div class="flex items-center gap-3">
|
||||
<div class="w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center">
|
||||
@if ($feature['icon'] === 'users')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197m13.5-9a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z" />
|
||||
</svg>
|
||||
@elseif($feature['icon'] === 'building-2')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" />
|
||||
</svg>
|
||||
@elseif($feature['icon'] === 'network')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.367 2.684 3 3 0 00-5.367-2.684z" />
|
||||
</svg>
|
||||
@else
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M13 10V3L4 14h7v7l9-11h-7z" />
|
||||
</svg>
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
<p class="font-semibold text-foreground">{{ $feature['title'] }}</p>
|
||||
<p class="text-sm text-muted-foreground">{{ $feature['description'] }}</p>
|
||||
</div>
|
||||
<div class="flex items-center gap-3">
|
||||
<div class="w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center">
|
||||
@if ($feature['icon'] === 'users')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197m13.5-9a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z" />
|
||||
</svg>
|
||||
@elseif($feature['icon'] === 'building-2')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" />
|
||||
</svg>
|
||||
@elseif($feature['icon'] === 'network')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.367 2.684 3 3 0 00-5.367-2.684z" />
|
||||
</svg>
|
||||
@else
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M13 10V3L4 14h7v7l9-11h-7z" />
|
||||
</svg>
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
<p class="font-semibold text-foreground">{{ $feature['title'] }}</p>
|
||||
<p class="text-sm text-muted-foreground">{{ $feature['description'] }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -64,7 +64,7 @@
|
|||
d="M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.367 2.684 3 3 0 00-5.367-2.684z" />
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl font-semibold text-foreground">B2In Portal</h3>
|
||||
<h3 class="text-xl font-semibold text-foreground">B2in Portal</h3>
|
||||
<p class="text-sm text-muted-foreground">Zentrale Plattform</p>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<div class="max-w-7xl mx-auto">
|
||||
<div class="text-center mb-16">
|
||||
<h2 class="text-4xl lg:text-5xl font-light text-foreground mb-6">
|
||||
B2In <span class="text-secondary">Magazin</span>
|
||||
B2in <span class="text-secondary">Magazin</span>
|
||||
</h2>
|
||||
<p class="text-muted-foreground text-lg max-w-2xl mx-auto">
|
||||
Entdecken Sie die neuesten Trends, Insights und Geschichten aus der Welt
|
||||
|
|
@ -12,57 +12,56 @@
|
|||
|
||||
<div class="space-y-8">
|
||||
@foreach($this->posts as $post)
|
||||
<article class="group">
|
||||
<div class="card-elevated rounded-3xl overflow-hidden h-full hover:scale-[1.02] transition-all duration-300">
|
||||
<div class="flex flex-col md:flex-row">
|
||||
<div class="relative md:w-3/4 aspect-[2/1] md:aspect-[2/1]">
|
||||
<img
|
||||
src="{{ asset('images/' . $post['image']) }}"
|
||||
alt="{{ $post['title'] }}"
|
||||
class="w-full h-full object-cover"
|
||||
>
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
</div>
|
||||
<article class="group">
|
||||
<div class="card-elevated rounded-3xl overflow-hidden h-full hover:scale-[1.02] transition-all duration-300">
|
||||
<div class="flex flex-col md:flex-row">
|
||||
<div class="relative md:w-3/4 aspect-[2/1] md:aspect-[2/1]">
|
||||
<img
|
||||
src="{{ asset('images/' . $post['image']) }}"
|
||||
alt="{{ $post['title'] }}"
|
||||
class="w-full h-full object-cover">
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
</div>
|
||||
|
||||
<div class="lg:w-2/3 p-6 lg:p-8 flex flex-col justify-between">
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-center gap-4 text-sm text-muted-foreground">
|
||||
<time>{{ $post['date'] }}</time>
|
||||
<span class="w-1 h-1 bg-muted-foreground rounded-full"></span>
|
||||
<span>{{ $post['readTime'] }}</span>
|
||||
</div>
|
||||
|
||||
<h3 class="text-xl lg:text-2xl font-semibold text-foreground leading-tight group-hover:text-secondary transition-colors duration-200">
|
||||
<a href="/magazin/{{ $post['id'] }}" class="stretched-link">
|
||||
{{ $post['title'] }}
|
||||
</a>
|
||||
</h3>
|
||||
|
||||
<p class="text-muted-foreground leading-relaxed text-base lg:text-lg">
|
||||
{{ $post['excerpt'] }}
|
||||
</p>
|
||||
<div class="lg:w-2/3 p-6 lg:p-8 flex flex-col justify-between">
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-center gap-4 text-sm text-muted-foreground">
|
||||
<time>{{ $post['date'] }}</time>
|
||||
<span class="w-1 h-1 bg-muted-foreground rounded-full"></span>
|
||||
<span>{{ $post['readTime'] }}</span>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-between mt-6">
|
||||
<div class="flex items-center text-secondary font-medium group-hover:text-secondary-dark transition-colors duration-200">
|
||||
<a href="/magazin/{{ $post['id'] }}" class="text-sm">Weiterlesen</a>
|
||||
<svg class="w-4 h-4 ml-2 transform group-hover:translate-x-1 transition-transform duration-200" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3" />
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-xl lg:text-2xl font-semibold text-foreground leading-tight group-hover:text-secondary transition-colors duration-200">
|
||||
<a href="/magazin/{{ $post['id'] }}" class="stretched-link">
|
||||
{{ $post['title'] }}
|
||||
</a>
|
||||
</h3>
|
||||
|
||||
<div class="w-10 h-10 bg-primary rounded-full flex items-center justify-center group-hover:bg-secondary transition-colors duration-200">
|
||||
<a href="/magazin/{{ $post['id'] }}">
|
||||
<p class="text-muted-foreground leading-relaxed text-base lg:text-lg">
|
||||
{{ $post['excerpt'] }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-between mt-6">
|
||||
<div class="flex items-center text-secondary font-medium group-hover:text-secondary-dark transition-colors duration-200">
|
||||
<a href="/magazin/{{ $post['id'] }}" class="text-sm">Weiterlesen</a>
|
||||
<svg class="w-4 h-4 ml-2 transform group-hover:translate-x-1 transition-transform duration-200" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3" />
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<div class="w-10 h-10 bg-primary rounded-full flex items-center justify-center group-hover:bg-secondary transition-colors duration-200">
|
||||
<a href="/magazin/{{ $post['id'] }}">
|
||||
<svg class="w-4 h-4 text-white transform group-hover:translate-x-1 transition-transform duration-200" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</article>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -6,21 +6,21 @@
|
|||
|
||||
<div class="grid md:grid-cols-3 gap-8 mb-16">
|
||||
@foreach($this->timeline as $item)
|
||||
<div class="spacing-small">
|
||||
<div class="w-12 h-12 mx-auto bg-secondary/20 rounded-full flex items-center justify-center">
|
||||
<div class="w-6 h-6 bg-secondary rounded-full"></div>
|
||||
</div>
|
||||
<h3 class="text-xl font-semibold text-[hsl(var(--dark-text))]">{{ $item['title'] }}</h3>
|
||||
<p class="text-dark-muted text-sm leading-relaxed">
|
||||
{{ $item['description'] }}
|
||||
</p>
|
||||
<div class="spacing-small">
|
||||
<div class="w-12 h-12 mx-auto bg-secondary/20 rounded-full flex items-center justify-center">
|
||||
<div class="w-6 h-6 bg-secondary rounded-full"></div>
|
||||
</div>
|
||||
<h3 class="text-xl font-semibold text-[hsl(var(--dark-text))]">{{ $item['title'] }}</h3>
|
||||
<p class="text-dark-muted text-sm leading-relaxed">
|
||||
{{ $item['description'] }}
|
||||
</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<p class="text-large text-dark-muted leading-relaxed max-w-3xl mx-auto">
|
||||
Was als Vision begann, traditionelle Geschäftsprozesse zu revolutionieren, ist heute eine
|
||||
bewährte Plattform für digitale Innovation. B2In schließt die Lücke zwischen
|
||||
bewährte Plattform für digitale Innovation. B2in schließt die Lücke zwischen
|
||||
traditionellen Unternehmen und modernen, digitalen Lösungen durch maßgeschneiderte
|
||||
Konnektivitätsservices, die Effizienz steigern und nachhaltiges Wachstum fördern.
|
||||
</p>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
Warum Partner werden?
|
||||
</h2>
|
||||
<p class="text-muted-foreground text-lg max-w-3xl mx-auto">
|
||||
Entdecken Sie die Vorteile einer Partnerschaft mit B2In und
|
||||
Entdecken Sie die Vorteile einer Partnerschaft mit B2in und
|
||||
wie Sie von unserem innovativen Ecosystem profitieren können.
|
||||
</p>
|
||||
</div>
|
||||
|
|
@ -29,41 +29,41 @@
|
|||
|
||||
<div class="space-y-6">
|
||||
@foreach ($this->brokerBenefits as $index => $benefit)
|
||||
<div class="card-elevated p-6 rounded-xl">
|
||||
<div class="flex gap-4">
|
||||
<div
|
||||
class="flex-shrink-0 w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center">
|
||||
@if ($benefit['icon'] === 'trending-up')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"></path>
|
||||
</svg>
|
||||
@elseif($benefit['icon'] === 'target')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
||||
</svg>
|
||||
@else
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z">
|
||||
</path>
|
||||
</svg>
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="text-lg font-semibold text-foreground mb-2">
|
||||
{{ $benefit['title'] }}
|
||||
</h4>
|
||||
<p class="text-muted-foreground">
|
||||
{{ $benefit['description'] }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-elevated p-6 rounded-xl">
|
||||
<div class="flex gap-4">
|
||||
<div
|
||||
class="flex-shrink-0 w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center">
|
||||
@if ($benefit['icon'] === 'trending-up')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"></path>
|
||||
</svg>
|
||||
@elseif($benefit['icon'] === 'target')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
||||
</svg>
|
||||
@else
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z">
|
||||
</path>
|
||||
</svg>
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="text-lg font-semibold text-foreground mb-2">
|
||||
{{ $benefit['title'] }}
|
||||
</h4>
|
||||
<p class="text-muted-foreground">
|
||||
{{ $benefit['description'] }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
|
|
@ -96,45 +96,45 @@
|
|||
|
||||
<div class="space-y-6">
|
||||
@foreach ($this->supplierBenefits as $index => $benefit)
|
||||
<div class="card-elevated p-6 rounded-xl">
|
||||
<div class="flex gap-4">
|
||||
<div
|
||||
class="flex-shrink-0 w-12 h-12 rounded-xl bg-accent/20 flex items-center justify-center">
|
||||
@if ($benefit['icon'] === 'globe')
|
||||
<svg class="w-6 h-6 text-accent-foreground" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z">
|
||||
</path>
|
||||
</svg>
|
||||
@elseif($benefit['icon'] === 'handshake')
|
||||
<svg class="w-6 h-6 text-accent-foreground" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.367 2.684 3 3 0 00-5.367-2.684z">
|
||||
</path>
|
||||
</svg>
|
||||
@else
|
||||
<svg class="w-6 h-6 text-accent-foreground" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z">
|
||||
</path>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
||||
</svg>
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="text-lg font-semibold text-foreground mb-2">
|
||||
{{ $benefit['title'] }}
|
||||
</h4>
|
||||
<p class="text-muted-foreground">
|
||||
{{ $benefit['description'] }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-elevated p-6 rounded-xl">
|
||||
<div class="flex gap-4">
|
||||
<div
|
||||
class="flex-shrink-0 w-12 h-12 rounded-xl bg-accent/20 flex items-center justify-center">
|
||||
@if ($benefit['icon'] === 'globe')
|
||||
<svg class="w-6 h-6 text-accent-foreground" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z">
|
||||
</path>
|
||||
</svg>
|
||||
@elseif($benefit['icon'] === 'handshake')
|
||||
<svg class="w-6 h-6 text-accent-foreground" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.367 2.684 3 3 0 00-5.367-2.684z">
|
||||
</path>
|
||||
</svg>
|
||||
@else
|
||||
<svg class="w-6 h-6 text-accent-foreground" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z">
|
||||
</path>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
||||
</svg>
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
<h4 class="text-lg font-semibold text-foreground mb-2">
|
||||
{{ $benefit['title'] }}
|
||||
</h4>
|
||||
<p class="text-muted-foreground">
|
||||
{{ $benefit['description'] }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -9,28 +9,28 @@
|
|||
<div class="w-16 h-px bg-secondary mx-auto"></div>
|
||||
|
||||
<p class="text-large text-dark-muted leading-relaxed max-w-2xl mx-auto">
|
||||
Werden Sie Teil des B2In-Partnernetzwerks und erschließen Sie neue
|
||||
Werden Sie Teil des B2in-Partnernetzwerks und erschließen Sie neue
|
||||
Geschäftsmöglichkeiten durch innovative Konnektivitätslösungen.
|
||||
</p>
|
||||
|
||||
<div class="grid md:grid-cols-3 gap-8 py-8">
|
||||
@foreach($this->stats as $stat)
|
||||
<div class="text-center space-y-3">
|
||||
<div class="text-4xl font-light text-secondary">{{ $stat['number'] }}</div>
|
||||
<p class="text-dark-muted text-sm">{{ $stat['label'] }}</p>
|
||||
</div>
|
||||
<div class="text-center space-y-3">
|
||||
<div class="text-4xl font-light text-secondary">{{ $stat['number'] }}</div>
|
||||
<p class="text-dark-muted text-sm">{{ $stat['label'] }}</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<div class="spacing-content">
|
||||
<a href="/contact" class="btn-accent px-12 py-6 rounded-2xl text-lg">
|
||||
Werden Sie B2In Partner
|
||||
Werden Sie B2in Partner
|
||||
</a>
|
||||
|
||||
<p class="text-dark-muted text-sm">
|
||||
Entdecken Sie die Vorteile einer strategischen Partnerschaft mit B2In
|
||||
Entdecken Sie die Vorteile einer strategischen Partnerschaft mit B2in
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -4,50 +4,50 @@
|
|||
<div class="space-y-8">
|
||||
<h1 class="text-hero">
|
||||
Wachsen Sie mit uns.<br />
|
||||
Werden Sie <span class="text-secondary">B2In Partner</span>.
|
||||
Werden Sie <span class="text-secondary">B2in Partner</span>.
|
||||
</h1>
|
||||
|
||||
<p class="text-lg text-muted-foreground max-w-md leading-relaxed">
|
||||
Werden Sie Teil des B2In Ecosystems und profitieren Sie von innovativen
|
||||
Werden Sie Teil des B2in Ecosystems und profitieren Sie von innovativen
|
||||
Geschäftsmodellen, die nachhaltiges Wachstum und langfristigen Erfolg ermöglichen.
|
||||
Gemeinsam gestalten wir die Zukunft der Immobilienbranche.
|
||||
</p>
|
||||
|
||||
<div class="grid grid-cols-2 gap-6">
|
||||
@foreach ($this->partnerTypes as $partner)
|
||||
<div class="flex items-center gap-3">
|
||||
<div class="w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center">
|
||||
@if ($partner['icon'] === 'trending-up')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" />
|
||||
</svg>
|
||||
@elseif($partner['icon'] === 'globe')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
|
||||
</svg>
|
||||
@elseif($partner['icon'] === 'handshake')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z" />
|
||||
</svg>
|
||||
@else
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z" />
|
||||
</svg>
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
<p class="font-semibold text-foreground">{{ $partner['title'] }}</p>
|
||||
<p class="text-sm text-muted-foreground">{{ $partner['description'] }}</p>
|
||||
</div>
|
||||
<div class="flex items-center gap-3">
|
||||
<div class="w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center">
|
||||
@if ($partner['icon'] === 'trending-up')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" />
|
||||
</svg>
|
||||
@elseif($partner['icon'] === 'globe')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 0 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
|
||||
</svg>
|
||||
@elseif($partner['icon'] === 'handshake')
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z" />
|
||||
</svg>
|
||||
@else
|
||||
<svg class="w-6 h-6 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z" />
|
||||
</svg>
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
<p class="font-semibold text-foreground">{{ $partner['title'] }}</p>
|
||||
<p class="text-sm text-muted-foreground">{{ $partner['description'] }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -5,70 +5,70 @@
|
|||
So werden Sie <span class="text-primary">Partner</span>
|
||||
</h2>
|
||||
<p class="text-muted-foreground text-lg max-w-3xl mx-auto">
|
||||
In nur drei einfachen Schritten werden Sie Teil des B2In Ecosystems
|
||||
In nur drei einfachen Schritten werden Sie Teil des B2in Ecosystems
|
||||
und können von allen Vorteilen unserer Partnerschaft profitieren.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-3 gap-8 mb-16">
|
||||
@foreach ($this->steps as $index => $step)
|
||||
<div class="card-elevated p-0 overflow-hidden group hover:shadow-elevated transition-all duration-300">
|
||||
<div class="relative overflow-hidden">
|
||||
<img src="{{ asset('img/assets/' . $step['image']) }}" alt="{{ $step['title'] }}"
|
||||
class="w-full h-64 object-cover group-hover:scale-105 transition-transform duration-300" />
|
||||
<div
|
||||
class="absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300">
|
||||
</div>
|
||||
|
||||
{{-- Step Number Badge --}}
|
||||
<div
|
||||
class="absolute top-4 left-4 w-12 h-12 rounded-full bg-primary text-white flex items-center justify-center font-bold text-lg">
|
||||
{{ $step['step'] }}
|
||||
</div>
|
||||
<div class="card-elevated p-0 overflow-hidden group hover:shadow-elevated transition-all duration-300">
|
||||
<div class="relative overflow-hidden">
|
||||
<img src="{{ asset('img/assets/' . $step['image']) }}" alt="{{ $step['title'] }}"
|
||||
class="w-full h-64 object-cover group-hover:scale-105 transition-transform duration-300" />
|
||||
<div
|
||||
class="absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300">
|
||||
</div>
|
||||
|
||||
<div class="p-8">
|
||||
<div class="flex items-center gap-3 mb-4">
|
||||
<div class="w-10 h-10 rounded-lg bg-primary/10 flex items-center justify-center">
|
||||
@if ($step['icon'] === 'file-text')
|
||||
<svg class="w-5 h-5 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z">
|
||||
</path>
|
||||
</svg>
|
||||
@elseif($step['icon'] === 'search')
|
||||
<svg class="w-5 h-5 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
|
||||
</svg>
|
||||
@else
|
||||
<svg class="w-5 h-5 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M13 10V3L4 14h7v7l9-11h-7z"></path>
|
||||
</svg>
|
||||
@endif
|
||||
</div>
|
||||
<h3 class="text-2xl font-medium text-foreground">
|
||||
{{ $step['title'] }}
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<p class="text-muted-foreground leading-relaxed mb-6">
|
||||
{{ $step['description'] }}
|
||||
</p>
|
||||
|
||||
@if ($index === count($steps) - 1)
|
||||
<a href="/contact">
|
||||
<button class="btn-secondary w-full">
|
||||
Jetzt starten
|
||||
</button>
|
||||
</a>
|
||||
@endif
|
||||
{{-- Step Number Badge --}}
|
||||
<div
|
||||
class="absolute top-4 left-4 w-12 h-12 rounded-full bg-primary text-white flex items-center justify-center font-bold text-lg">
|
||||
{{ $step['step'] }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p-8">
|
||||
<div class="flex items-center gap-3 mb-4">
|
||||
<div class="w-10 h-10 rounded-lg bg-primary/10 flex items-center justify-center">
|
||||
@if ($step['icon'] === 'file-text')
|
||||
<svg class="w-5 h-5 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z">
|
||||
</path>
|
||||
</svg>
|
||||
@elseif($step['icon'] === 'search')
|
||||
<svg class="w-5 h-5 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
|
||||
</svg>
|
||||
@else
|
||||
<svg class="w-5 h-5 text-primary" fill="none" stroke="currentColor"
|
||||
viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M13 10V3L4 14h7v7l9-11h-7z"></path>
|
||||
</svg>
|
||||
@endif
|
||||
</div>
|
||||
<h3 class="text-2xl font-medium text-foreground">
|
||||
{{ $step['title'] }}
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<p class="text-muted-foreground leading-relaxed mb-6">
|
||||
{{ $step['description'] }}
|
||||
</p>
|
||||
|
||||
@if ($index === count($steps) - 1)
|
||||
<a href="/contact">
|
||||
<button class="btn-secondary w-full">
|
||||
Jetzt starten
|
||||
</button>
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
|
|
@ -79,7 +79,7 @@
|
|||
Bereit für den nächsten <span class="text-primary">Schritt</span>?
|
||||
</h3>
|
||||
<p class="text-muted-foreground text-lg mb-8 max-w-2xl mx-auto">
|
||||
Werden Sie noch heute Teil des B2In Ecosystems und profitieren Sie
|
||||
Werden Sie noch heute Teil des B2in Ecosystems und profitieren Sie
|
||||
von innovativen Geschäftsmodellen und nachhaltigen Erfolgsstrategien.
|
||||
</p>
|
||||
<a href="/contact">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
@if (!empty($content) && ($content['enabled'] ?? false))
|
||||
<div x-data="{ dismissed: localStorage.getItem('announcement_dismissed_{{ $content['id'] ?? 'default' }}') === 'true' }"
|
||||
x-show="!dismissed"
|
||||
x-transition:leave="transition ease-in duration-200"
|
||||
x-transition:leave-start="opacity-100 max-h-16"
|
||||
x-transition:leave-end="opacity-0 max-h-0"
|
||||
class="bg-secondary text-secondary-foreground overflow-hidden"
|
||||
id="topbar">
|
||||
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div class="relative flex items-center justify-center gap-x-3 gap-y-1 flex-wrap min-h-10 py-2 pr-8 text-sm">
|
||||
@if (isset($content['badge']))
|
||||
<span class="hidden sm:inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] font-bold uppercase tracking-wider bg-white/20 shrink-0">
|
||||
{{ $content['badge'] }}
|
||||
</span>
|
||||
@endif
|
||||
|
||||
<span class="font-medium text-center leading-snug">
|
||||
{{ $content['text'] ?? '' }}
|
||||
</span>
|
||||
|
||||
@if (isset($content['link_text']) && isset($content['link_url']))
|
||||
<a href="{{ $content['link_url'] }}"
|
||||
class="inline-flex items-center gap-1 font-semibold underline underline-offset-2 decoration-white/50 hover:decoration-white transition-colors shrink-0">
|
||||
{{ $content['link_text'] }}
|
||||
<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3" />
|
||||
</svg>
|
||||
</a>
|
||||
@endif
|
||||
|
||||
<button
|
||||
@click="dismissed = true; localStorage.setItem('announcement_dismissed_{{ $content['id'] ?? 'default' }}', 'true')"
|
||||
class="absolute right-0 top-1/2 -translate-y-1/2 p-1.5 text-white/60 hover:text-white transition-colors"
|
||||
aria-label="{{ __('ui.announcement_close') }}">
|
||||
<svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20 bg-[hsl(var(--hero-container))] rounded-[20px] w-[95%]">
|
||||
<div class="grid lg:grid-cols-2 gap-12 items-center">
|
||||
<!-- Left Side - Hero Text -->
|
||||
<div class="slide-right delay-200">
|
||||
<div class="">
|
||||
<h1 class="text-hero mb-6 tracking-wide">
|
||||
{!! $content['hero']['title'] ?? 'Send us a<br /><span class="text-secondary font-medium">message.</span>' !!}
|
||||
</h1>
|
||||
|
|
@ -14,18 +14,27 @@
|
|||
</div>
|
||||
|
||||
<!-- Right Side - Contact Form -->
|
||||
<div class="card-elevated p-8 slide-left delay-200">
|
||||
@if (session()->has('message'))
|
||||
<div class="mb-6 p-4 bg-gray-50 border border-secondary/20 rounded-lg text-secondary">
|
||||
{{ session('message') }}
|
||||
<div class="card-elevated p-8 ">
|
||||
@if ($success)
|
||||
<div class="flex flex-col items-center text-center py-8 gap-5">
|
||||
<div class="flex items-center justify-center w-20 h-20 rounded-full bg-green-100">
|
||||
<svg class="w-10 h-10 text-green-600" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-2xl font-semibold text-foreground">{{ __('ui.contact_form.success_title') }}</p>
|
||||
<p class="text-muted-foreground mt-2 max-w-sm mx-auto">
|
||||
{{ $content['form']['success_message'] ?? __('ui.contact_form.success_message') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@else
|
||||
<form wire:submit="submit" class="space-y-6">
|
||||
<div class="grid md:grid-cols-2 gap-4">
|
||||
<div>
|
||||
<label for="firstName" class="text-foreground mb-2 block text-sm font-medium">
|
||||
{{ $content['form']['labels']['first_name'] ?? 'First name *' }}
|
||||
{{ $content['form']['labels']['first_name'] ?? __('ui.contact_form.first_name') }}
|
||||
</label>
|
||||
<input
|
||||
wire:model="firstName"
|
||||
|
|
@ -38,7 +47,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label for="lastName" class="text-foreground mb-2 block text-sm font-medium">
|
||||
{{ $content['form']['labels']['last_name'] ?? 'Last name *' }}
|
||||
{{ $content['form']['labels']['last_name'] ?? __('ui.contact_form.last_name') }}
|
||||
</label>
|
||||
<input
|
||||
wire:model="lastName"
|
||||
|
|
@ -53,7 +62,7 @@
|
|||
|
||||
<div>
|
||||
<label for="company" class="text-foreground mb-2 block text-sm font-medium">
|
||||
{{ $content['form']['labels']['company'] ?? 'Company' }}
|
||||
{{ $content['form']['labels']['company'] ?? __('ui.contact_form.company') }}
|
||||
</label>
|
||||
<input
|
||||
wire:model="company"
|
||||
|
|
@ -67,7 +76,7 @@
|
|||
<div class="grid md:grid-cols-2 gap-4">
|
||||
<div>
|
||||
<label for="email" class="text-foreground mb-2 block text-sm font-medium">
|
||||
{{ $content['form']['labels']['email'] ?? 'Email *' }}
|
||||
{{ $content['form']['labels']['email'] ?? __('ui.contact_form.email') }}
|
||||
</label>
|
||||
<input
|
||||
wire:model="email"
|
||||
|
|
@ -80,7 +89,7 @@
|
|||
</div>
|
||||
<div>
|
||||
<label for="phone" class="text-foreground mb-2 block text-sm font-medium">
|
||||
{{ $content['form']['labels']['phone'] ?? 'Phone' }}
|
||||
{{ $content['form']['labels']['phone'] ?? __('ui.contact_form.phone') }}
|
||||
</label>
|
||||
<input
|
||||
wire:model="phone"
|
||||
|
|
@ -94,7 +103,7 @@
|
|||
|
||||
<div>
|
||||
<label for="subject" class="text-foreground mb-2 block text-sm font-medium">
|
||||
{{ $content['form']['labels']['subject'] ?? 'Subject *' }}
|
||||
{{ $content['form']['labels']['subject'] ?? __('ui.contact_form.subject') }}
|
||||
</label>
|
||||
<div class="grid grid-cols-1">
|
||||
<select
|
||||
|
|
@ -116,34 +125,70 @@
|
|||
|
||||
<div>
|
||||
<label for="message" class="text-foreground mb-2 block text-sm font-medium">
|
||||
{{ $content['form']['labels']['message'] ?? 'Message *' }}
|
||||
{{ $content['form']['labels']['message'] ?? __('ui.contact_form.message') }}
|
||||
</label>
|
||||
<textarea
|
||||
wire:model="message"
|
||||
id="message"
|
||||
rows="5"
|
||||
class="w-full px-3 py-2 bg-gray-50 border border-border rounded-lg outline-1 -outline-offset-1 outline-gray-300 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-gray-600 sm:text-sm/6 resize-none"
|
||||
placeholder="{{ $content['form']['placeholders']['message'] ?? 'Ihre Nachricht...' }}"
|
||||
placeholder="{{ $content['form']['placeholders']['message'] ?? __('ui.contact_form.message_placeholder') }}"
|
||||
required
|
||||
></textarea>
|
||||
@error('message') <span class="text-red-500 text-xs">{{ $message }}</span> @enderror
|
||||
</div>
|
||||
|
||||
{{-- Honeypot --}}
|
||||
<div class="opacity-0 absolute top-0 left-0 h-0 w-0 -z-10 overflow-hidden" aria-hidden="true">
|
||||
<label for="website">Website</label>
|
||||
<input type="text" id="website" name="website" wire:model="website" tabindex="-1" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<div x-data="{ on: $wire.entangle('privacy') }">
|
||||
<label class="flex items-start gap-3 cursor-pointer">
|
||||
<input
|
||||
x-model="on"
|
||||
id="privacy"
|
||||
type="checkbox"
|
||||
class="sr-only"
|
||||
/>
|
||||
<span
|
||||
role="switch"
|
||||
:aria-checked="on.toString()"
|
||||
:class="on ? 'bg-green-500' : 'bg-muted'"
|
||||
class="relative mt-0.5 w-11 h-6 shrink-0 rounded-full transition-colors duration-200"
|
||||
>
|
||||
<span
|
||||
:class="on ? 'translate-x-5' : 'translate-x-0'"
|
||||
class="absolute top-0.5 left-0.5 h-5 w-5 rounded-full bg-white shadow-sm transition-transform duration-200 pointer-events-none"
|
||||
></span>
|
||||
</span>
|
||||
<span class="text-sm text-muted-foreground">
|
||||
{{ __('ui.contact_form.privacy_prefix') }}
|
||||
<a href="{{ route('privacy') }}" target="_blank" class="text-secondary underline underline-offset-2 hover:no-underline">Datenschutzerklärung</a>
|
||||
{{ __('ui.contact_form.privacy_suffix') }}
|
||||
</span>
|
||||
</label>
|
||||
@error('privacy') <span class="text-red-500 text-xs mt-1 block">{{ $message }}</span> @enderror
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
class="w-full btn-primary flex items-center justify-center"
|
||||
wire:loading.attr="disabled"
|
||||
>
|
||||
<div class="flex items-center justify-center">
|
||||
<span wire:loading.remove>{{ $content['form']['button_text'] ?? 'Senden' }}</span>
|
||||
<span wire:loading>{{ $content['form']['button_loading'] ?? 'Wird gesendet...' }}</span>
|
||||
<span wire:loading.remove>{{ $content['form']['button_text'] ?? __('ui.contact_form.send') }}</span>
|
||||
<span wire:loading>{{ $content['form']['button_loading'] ?? __('ui.contact_form.sending') }}</span>
|
||||
|
||||
<svg wire:loading.remove class="ml-2 w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"/>
|
||||
</svg>
|
||||
</div>
|
||||
</button>
|
||||
<p class="text-sm text-muted-foreground">{{ __('ui.required_fields') }}</p>
|
||||
</form>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -172,7 +217,7 @@
|
|||
@endif
|
||||
</div>
|
||||
<h3 class="text-xl mb-2 text-foreground">{{ $info['title'] }}</h3>
|
||||
<div class="text-muted-foreground text-sm">
|
||||
<div class="text-muted-foreground text-base">
|
||||
@foreach($info['info'] as $line)
|
||||
<p>{{ $line }}</p>
|
||||
@endforeach
|
||||
|
|
@ -184,7 +229,7 @@
|
|||
</section>
|
||||
|
||||
<!-- Social Media Section -->
|
||||
<section class="section-padding bg-accent">
|
||||
{{-- <section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="grid lg:grid-cols-2 gap-12 items-center">
|
||||
<div class="slide-right delay-200">
|
||||
|
|
@ -212,4 +257,5 @@
|
|||
</div>
|
||||
</div>
|
||||
</section>
|
||||
--}}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -5,14 +5,16 @@
|
|||
<div class="spacing-section">
|
||||
<div class="flex items-center justify-center">
|
||||
<img src="{{ asset(\App\Helpers\ThemeHelper::getLogoPath('negative')) }}"
|
||||
alt="{{ $domainName ?? 'B2In' }} Logo" class="h-14 w-auto" />
|
||||
alt="{{ $domainName ?? 'B2in' }} Logo" class="h-14 w-auto"
|
||||
width="120" height="56"
|
||||
loading="lazy" />
|
||||
</div>
|
||||
|
||||
<div class="container-narrow spacing-content">
|
||||
<h2 class="text-section-title text-dark-text leading-tight">
|
||||
Connecting Design and <span class="text-secondary">Property</span>
|
||||
|
||||
</h2>
|
||||
<p class="text-dark-muted text-sm mt-4">Marcel Scheibe – {{ __('ui.founder_ceo') }}</p>
|
||||
</div>
|
||||
|
||||
<hr class="border-t border-dark-muted/30 mt-12 pt-4">
|
||||
|
|
@ -21,21 +23,19 @@
|
|||
{{-- Links --}}
|
||||
<div class="grid grid-cols-2 md:grid-cols-4 gap-8 text-left max-w-4xl mx-auto">
|
||||
<div class="spacing-small text-center">
|
||||
<a href="#" class="block hover-text-secondary transition-colors">Privacy Policy</a>
|
||||
<a href="{{ route('privacy') }}" class="block hover-text-secondary transition-colors">Privacy Policy</a>
|
||||
</div>
|
||||
|
||||
<div class="spacing-small text-center">
|
||||
<a href="#" class="block hover-text-secondary transition-colors">Terms of Service</a>
|
||||
|
||||
<a href="{{ route('terms') }}" class="block hover-text-secondary transition-colors">Terms of Service</a>
|
||||
</div>
|
||||
|
||||
<div class="spacing-small text-center">
|
||||
<a href="#" class="block hover-text-secondary transition-colors">Cookie Policy</a>
|
||||
<a href="{{ route('cookie-policy') }}" class="block hover-text-secondary transition-colors">Cookie Policy</a>
|
||||
</div>
|
||||
|
||||
<div class="spacing-small text-center">
|
||||
<a href="#" class="block hover-text-secondary transition-colors">Impressum</a>
|
||||
|
||||
<a href="{{ route('impressum') }}" class="block hover-text-secondary transition-colors">{{ __('ui.legal_notice') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -43,25 +43,18 @@
|
|||
{{-- Bottom Bar --}}
|
||||
<div class="border-t border-dark-muted/30 mt-12 pt-8">
|
||||
<div class="flex flex-col md:flex-row justify-between items-center spacing-small md:space-y-0">
|
||||
<div class="text-dark-muted text-sm">
|
||||
© {{ date('Y') }} B2In. All rights reserved.
|
||||
<div class="text-dark-muted text-sm flex flex-col sm:flex-row items-center gap-2 sm:gap-4">
|
||||
<span>© {{ date('Y') }} B2in. All rights reserved.</span>
|
||||
<a href="#" onclick="window.dispatchEvent(new CustomEvent('open-cookie-settings')); return false;"
|
||||
class="hover-text-secondary transition-colors">
|
||||
{{ __('ui.cookie_settings') }}
|
||||
</a>
|
||||
</div>
|
||||
<div class="flex items-center space-x-6 text-dark-muted text-sm">
|
||||
<div class="flex space-x-4">
|
||||
<a href="#" class="hover-text-secondary transition-colors" aria-label="Facebook">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path
|
||||
d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a href="#" class="hover-text-secondary transition-colors" aria-label="Instagram">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path
|
||||
d="M12.017 0C5.396 0 .029 5.367.029 11.987c0 6.62 5.367 11.987 11.988 11.987s11.987-5.367 11.987-11.987C24.004 5.367 18.637.001 12.017.001zM8.449 16.988c-1.297 0-2.448-.49-3.323-1.297C4.198 14.895 3.708 13.744 3.708 12.447s.49-2.448 1.418-3.323c.875-.807 2.026-1.297 3.323-1.297s2.448.49 3.323 1.297c.928.875 1.418 2.026 1.418 3.323s-.49 2.448-1.418 3.244c-.875.807-2.026 1.297-3.323 1.297zm7.83-9.281c-.49 0-.928-.175-1.297-.49-.368-.315-.49-.753-.49-1.243s.122-.928.49-1.243c.369-.315.807-.49 1.297-.49s.928.175 1.297.49c.368.315.49.753.49 1.243s-.122.928-.49 1.243c-.369.315-.807.49-1.297.49z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a href="#" class="hover-text-secondary transition-colors" aria-label="LinkedIn">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
|
||||
|
||||
<a href="https://www.linkedin.com/in/marcel-scheibe/" target="_blank" class="hover-text-secondary transition-colors" aria-label="LinkedIn">
|
||||
<svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path
|
||||
d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" />
|
||||
</svg>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
alt="{{ $domainName ?? 'B2IN' }} Logo" class="h-10 w-auto" />
|
||||
</a>
|
||||
|
||||
<nav class="hidden md:flex items-center space-x-8">
|
||||
<nav class="hidden md:flex items-center space-x-8" aria-label="{{ __('ui.main_navigation') }}">
|
||||
@if(isset($content['navigation']) && is_array($content['navigation']))
|
||||
@foreach ($content['navigation'] as $navItem)
|
||||
<a href="{{ $navItem['url'] }}"
|
||||
|
|
@ -21,19 +21,38 @@
|
|||
</nav>
|
||||
|
||||
<div class="flex items-center space-x-4">
|
||||
<a href="{{ config('domains.domain_portal_url') }}"
|
||||
class=" md:block rounded-md px-3 py-2 text-sm font-medium bg-secondary hover-bg-primary glow-medium text-white transition-all duration-200">
|
||||
{{ $content['portal_login'] ?? 'Portal Login' }}
|
||||
</a>
|
||||
{{-- Language Switcher --}}
|
||||
<div class="hidden md:flex items-center space-x-1 text-sm" role="group" aria-label="Language">
|
||||
@foreach ($availableLocales as $locale => $label)
|
||||
<button wire:click="switchLanguage('{{ $locale }}')"
|
||||
class="px-2 py-1 rounded transition-colors duration-200
|
||||
{{ $currentLocale === $locale
|
||||
? 'text-secondary font-semibold'
|
||||
: 'text-muted-foreground hover:text-foreground' }}"
|
||||
@if($currentLocale === $locale) aria-current="true" @endif>
|
||||
{{ $label }}
|
||||
</button>
|
||||
@if (!$loop->last)
|
||||
<span class="text-border">|</span>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<a href="{{ route('contact') }}"
|
||||
class="hidden md:block rounded-md px-5 py-2.5 text-sm font-medium bg-secondary hover-bg-primary glow-medium text-white transition-all duration-200">
|
||||
{{ __('ui.contact') }}
|
||||
</a>
|
||||
<button wire:click="toggleMobileMenu"
|
||||
class="md:hidden w-5 h-5 text-muted-foreground hover:text-foreground transition-colors">
|
||||
class="md:hidden w-5 h-5 text-muted-foreground hover:text-foreground transition-colors"
|
||||
aria-label="{{ $this->isMobileMenuOpen ? __('ui.menu_close') : __('ui.menu_open') }}"
|
||||
aria-expanded="{{ $this->isMobileMenuOpen ? 'true' : 'false' }}">
|
||||
@if ($this->isMobileMenuOpen)
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M6 18L18 6M6 6l12 12"></path>
|
||||
</svg>
|
||||
@else
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"></path>
|
||||
</svg>
|
||||
|
|
@ -45,7 +64,7 @@
|
|||
{{-- Mobile Menu --}}
|
||||
@if ($this->isMobileMenuOpen)
|
||||
<div class="md:hidden border-t border-border bg-background/95 backdrop-blur-sm">
|
||||
<nav class="px-4 py-6 space-y-4">
|
||||
<nav class="px-4 py-6 space-y-4" aria-label="{{ __('ui.mobile_navigation') }}">
|
||||
@if(isset($content['navigation']) && is_array($content['navigation']))
|
||||
@foreach ($content['navigation'] as $navItem)
|
||||
<a href="{{ $navItem['url'] }}"
|
||||
|
|
@ -58,10 +77,27 @@
|
|||
</a>
|
||||
@endforeach
|
||||
@endif
|
||||
<div class="pt-4 border-t border-border">
|
||||
<a href="{{ config('domains.domain_portal_url') }}"
|
||||
class="block w-full btn-secondary-accent text-center">
|
||||
{{ $content['portal_login'] ?? 'Portal Login' }}
|
||||
<div class="pt-4 border-t border-border space-y-3">
|
||||
{{-- Mobile Language Switcher --}}
|
||||
<div class="flex items-center space-x-1 text-sm px-3" role="group" aria-label="Language">
|
||||
@foreach ($availableLocales as $locale => $label)
|
||||
<button wire:click="switchLanguage('{{ $locale }}')"
|
||||
class="px-3 py-1.5 rounded transition-colors duration-200
|
||||
{{ $currentLocale === $locale
|
||||
? 'text-secondary font-semibold bg-secondary/10'
|
||||
: 'text-muted-foreground hover:text-foreground' }}"
|
||||
@if($currentLocale === $locale) aria-current="true" @endif>
|
||||
{{ $label }}
|
||||
</button>
|
||||
@if (!$loop->last)
|
||||
<span class="text-border">|</span>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<a href="{{ route('contact') }}"
|
||||
class="block rounded-md px-5 py-2.5 text-sm font-medium bg-secondary hover-bg-primary glow-medium text-white transition-all duration-200 text-center">
|
||||
{{ __('ui.contact') }}
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue