10-04-2026
This commit is contained in:
parent
4d6b4930b2
commit
4bb89aad8c
836 changed files with 52961 additions and 5950 deletions
|
|
@ -1,6 +1,7 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Über B2IN - Unser Team & Geschichte')
|
||||
@section('meta_description', 'Lernen Sie B2in kennen – gegründet von Marcel Scheibe. Unsere Vision: Design & Immobilien intelligent verbinden.')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
|
|
@ -8,8 +9,9 @@
|
|||
|
||||
<main class="variante-glass-flow">
|
||||
<livewire:web.components.sections.about-hero />
|
||||
<livewire:web.components.sections.founder-bar />
|
||||
<livewire:web.components.sections.our-story />
|
||||
<livewire:web.components.sections.leadership-team />
|
||||
<livewire:web.components.sections.image-break section="about_image_break" />
|
||||
<livewire:web.components.sections.our-values />
|
||||
<livewire:web.components.sections.partner-c-t-a />
|
||||
</main>
|
||||
|
|
|
|||
32
resources/views/web/about_bak.blade.php
Normal file
32
resources/views/web/about_bak.blade.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Über B2IN - Unser Team & Geschichte')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
<livewire:web.components.sections.about-hero />
|
||||
<livewire:web.components.sections.founder-bar />
|
||||
<livewire:web.components.sections.our-story />
|
||||
<livewire:web.components.sections.leadership-team />
|
||||
<livewire:web.components.sections.our-values />
|
||||
<livewire:web.components.sections.partner-c-t-a />
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
{{-- Alpine.js wird zentral im Layout geladen --}}
|
||||
@endpush
|
||||
|
|
@ -9,11 +9,10 @@
|
|||
|
||||
<main>
|
||||
<livewire:web.components.sections.hero />
|
||||
<livewire:web.components.sections.ecosystem-core />
|
||||
<livewire:web.components.sections.founder-bar />
|
||||
<livewire:web.components.sections.content-section section="synergie_section" layout="left" />
|
||||
<livewire:web.components.sections.vision-section bg="bg-accent" />
|
||||
<livewire:web.components.sections.brand-worlds />
|
||||
<livewire:web.components.sections.content-section layout="right" bg="bg-accent"
|
||||
section="integriertes_modell_b2in" />
|
||||
<livewire:web.components.sections.ecosystem-core />
|
||||
<livewire:web.components.sections.c-t-a-section />
|
||||
</main>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Kontakt - B2In')
|
||||
@section('title', 'Kontakt - B2in')
|
||||
@section('meta_description', 'Nehmen Sie Kontakt mit B2in auf – persönliche Beratung zu Immobilien in Dubai & Einrichtungslösungen.')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
|
|
|
|||
50
resources/views/web/cookie-policy.blade.php
Normal file
50
resources/views/web/cookie-policy.blade.php
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@php
|
||||
$legal = legal_page('cookie_policy');
|
||||
@endphp
|
||||
|
||||
@section('title', $legal['meta_title'] . ' - ' . ($domainName ?? config('app.name')))
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto">
|
||||
<h1 class="text-hero mb-8">{{ $legal['title'] }}</h1>
|
||||
<p class="text-muted-foreground text-sm mb-12">
|
||||
{{ $legal['subtitle'] }}
|
||||
</p>
|
||||
|
||||
<div class="prose-legal space-y-8 text-foreground">
|
||||
{!! $legal['content'] !!}
|
||||
</div>
|
||||
|
||||
{{-- Cookie-Einstellungen & aktuelle Status-Anzeige --}}
|
||||
<div class="prose-legal space-y-8 text-foreground">
|
||||
<x-cookie-consent::privacy-info :show-analytics-info="false" />
|
||||
</div>
|
||||
|
||||
<div class="mt-12 pt-8 border-t border-border/30">
|
||||
<a href="{{ url()->previous() }}" class="text-secondary hover:underline text-sm">
|
||||
{{ $legal['back_link'] }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] { display: none !important; }
|
||||
.prose-legal a { transition: color 0.2s; }
|
||||
</style>
|
||||
@endpush
|
||||
134
resources/views/web/dev/immobilien-v1.blade.php
Normal file
134
resources/views/web/dev/immobilien-v1.blade.php
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Internationale Immobilien - B2in')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
<livewire:web.components.sections.partner-hero section="immobilien_hero" />
|
||||
<livewire:web.components.sections.founder-bar />
|
||||
|
||||
{{-- Aktuelle Projekte --}}
|
||||
@php
|
||||
$projects = cms_theme_section('immobilien_projects');
|
||||
$moebelVorteil = cms_theme_section('immobilien_moebel_vorteil');
|
||||
@endphp
|
||||
|
||||
@if (!empty($projects))
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="text-center mb-12 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $projects['title'] ?? '' !!}</h2>
|
||||
@if (isset($projects['subtitle']))
|
||||
<p class="text-large text-muted-foreground mt-4 max-w-2xl mx-auto">
|
||||
{{ $projects['subtitle'] }}
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-1 lg:grid-cols-2 gap-8 slide-up delay-400">
|
||||
@foreach ($projects['projects'] ?? [] as $project)
|
||||
<div class="card-elevated rounded-2xl overflow-hidden">
|
||||
@if (isset($project['image']))
|
||||
<div class="relative h-56 overflow-hidden">
|
||||
<img src="{{ theme_image_url($project['image']) }}"
|
||||
alt="{{ $project['title'] }}"
|
||||
class="w-full h-full object-cover" />
|
||||
@if (isset($project['status']))
|
||||
<div class="absolute top-4 left-4">
|
||||
<span class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-semibold bg-secondary text-white">
|
||||
{{ $project['status'] }}
|
||||
@if (isset($project['launch_date']))
|
||||
<span class="opacity-80">({{ $project['launch_date'] }})</span>
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="p-6 lg:p-8">
|
||||
<div class="mb-4">
|
||||
<h3 class="text-xl font-semibold text-foreground">{{ $project['title'] }}</h3>
|
||||
@if (isset($project['location']))
|
||||
<p class="text-sm text-muted-foreground mt-1">{{ $project['location'] }}</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@if (isset($project['price_from']))
|
||||
<p class="text-lg font-medium text-secondary mb-4">{{ $project['price_from'] }}</p>
|
||||
@endif
|
||||
|
||||
@if (isset($project['highlights']))
|
||||
<ul class="space-y-2 mb-6">
|
||||
@foreach ($project['highlights'] as $highlight)
|
||||
<li class="flex items-start gap-2 text-sm text-muted-foreground">
|
||||
<svg class="w-4 h-4 text-secondary mt-0.5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" />
|
||||
</svg>
|
||||
{{ $highlight }}
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
|
||||
<a href="{{ isset($project['slug']) ? route('immobilien.show', $project['slug']) : ($projects['cta_link'] ?? '/contact') }}"
|
||||
class="inline-flex items-center gap-2 btn-primary-accent">
|
||||
{{ isset($project['slug']) ? 'Exposé ansehen' : ($projects['cta_text'] ?? 'Anfragen') }}
|
||||
<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="M17 8l4 4m0 0l-4 4m4-4H3" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Möbel-Vorteil Banner --}}
|
||||
@if (!empty($moebelVorteil))
|
||||
<section class="section-padding bg-secondary/5">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto text-center slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $moebelVorteil['title'] ?? '' !!}</h2>
|
||||
<p class="text-large text-muted-foreground mt-4">
|
||||
{{ $moebelVorteil['text'] ?? '' }}
|
||||
</p>
|
||||
@if (isset($moebelVorteil['button_text']))
|
||||
<div class="mt-8">
|
||||
<a href="{{ $moebelVorteil['button_link'] ?? '/partner' }}"
|
||||
class="btn-secondary-accent">
|
||||
{{ $moebelVorteil['button_text'] }}
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Trust & Kontakt --}}
|
||||
<livewire:web.components.sections.content-section section="immobilien_trust" layout="right" />
|
||||
|
||||
<livewire:web.components.sections.c-t-a-section />
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
{{-- Alpine.js wird zentral im Layout geladen --}}
|
||||
@endpush
|
||||
160
resources/views/web/dev/interior-v1.blade.php
Normal file
160
resources/views/web/dev/interior-v1.blade.php
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Einrichtungsnetzwerk - B2in Interior')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
<livewire:web.components.sections.partner-hero section="interior_hero" />
|
||||
<livewire:web.components.sections.founder-bar />
|
||||
|
||||
{{-- Local-for-Local Konzept --}}
|
||||
<livewire:web.components.sections.content-section section="interior_concept" layout="left" />
|
||||
|
||||
{{-- Zwei Marken --}}
|
||||
@php
|
||||
$brands = cms_theme_section('interior_brands');
|
||||
$zielgruppen = cms_theme_section('interior_zielgruppen');
|
||||
$process = cms_theme_section('interior_process');
|
||||
@endphp
|
||||
|
||||
@if (!empty($brands))
|
||||
<section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="text-center mb-12 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $brands['title'] ?? '' !!}</h2>
|
||||
@if (isset($brands['subtitle']))
|
||||
<p class="text-large text-muted-foreground mt-4 max-w-2xl mx-auto">
|
||||
{{ $brands['subtitle'] }}
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-2 gap-8 max-w-4xl mx-auto slide-up delay-400">
|
||||
@foreach ($brands['brands'] ?? [] as $brand)
|
||||
<div class="card-elevated rounded-2xl overflow-hidden">
|
||||
<div class="p-8 lg:p-10">
|
||||
@if (isset($brand['logo']))
|
||||
<div class="mb-6">
|
||||
<img src="{{ asset($brand['logo']) }}"
|
||||
alt="{{ $brand['name'] }}"
|
||||
class="{{ $brand['logo_width'] ?? 'w-32' }}" />
|
||||
</div>
|
||||
@endif
|
||||
<p class="text-xs font-semibold uppercase tracking-wider text-secondary mb-3">
|
||||
{{ $brand['tagline'] ?? '' }}
|
||||
</p>
|
||||
<p class="text-muted-foreground leading-relaxed">
|
||||
{{ $brand['description'] ?? '' }}
|
||||
</p>
|
||||
@if (isset($brand['audience']))
|
||||
<p class="text-sm font-medium text-foreground mt-4">
|
||||
{{ $brand['audience'] }}
|
||||
</p>
|
||||
@endif
|
||||
@if (isset($brand['link']))
|
||||
<div class="mt-6">
|
||||
<a href="{{ $brand['link'] }}"
|
||||
target="_blank" rel="noopener"
|
||||
class="inline-flex items-center gap-2 text-sm font-medium text-secondary hover:text-secondary/80 transition-colors">
|
||||
{{ $brand['name'] }} entdecken
|
||||
<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="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Für wen? Zielgruppen --}}
|
||||
@if (!empty($zielgruppen))
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="text-center mb-12 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $zielgruppen['title'] ?? '' !!}</h2>
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-3 gap-8 max-w-5xl mx-auto slide-up delay-400">
|
||||
@foreach ($zielgruppen['groups'] ?? [] as $group)
|
||||
<div class="text-center p-6">
|
||||
<div class="inline-flex items-center justify-center w-14 h-14 rounded-full bg-secondary/10 text-secondary mb-5">
|
||||
<svg class="w-7 h-7" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24">
|
||||
@switch($group['icon'] ?? '')
|
||||
@case('home')
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" />
|
||||
@break
|
||||
@case('building-office-2')
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008z" />
|
||||
@break
|
||||
@case('clipboard-document-check')
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0118 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3l1.5 1.5 3-3.75" />
|
||||
@break
|
||||
@endswitch
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-lg font-semibold text-foreground mb-3">{{ $group['title'] ?? '' }}</h3>
|
||||
<p class="text-sm text-muted-foreground leading-relaxed">{{ $group['description'] ?? '' }}</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- So funktioniert es - Prozess --}}
|
||||
@if (!empty($process))
|
||||
<section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="text-center mb-12 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $process['title'] ?? '' !!}</h2>
|
||||
</div>
|
||||
|
||||
<div class="max-w-3xl mx-auto slide-up delay-400">
|
||||
<div class="space-y-8">
|
||||
@foreach ($process['steps'] ?? [] as $step)
|
||||
<div class="flex gap-6 items-start">
|
||||
<div class="shrink-0 w-14 h-14 rounded-full bg-secondary text-white flex items-center justify-center text-lg font-bold">
|
||||
{{ $step['number'] ?? '' }}
|
||||
</div>
|
||||
<div class="pt-2">
|
||||
<h3 class="text-lg font-semibold text-foreground mb-2">{{ $step['title'] ?? '' }}</h3>
|
||||
<p class="text-muted-foreground leading-relaxed">{{ $step['description'] ?? '' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Trust / Marcel Scheibe --}}
|
||||
<livewire:web.components.sections.content-section section="interior_trust" layout="right" />
|
||||
|
||||
{{-- CTA --}}
|
||||
<livewire:web.components.sections.c-t-a-section />
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
{{-- Alpine.js wird zentral im Layout geladen --}}
|
||||
@endpush
|
||||
38
resources/views/web/dev/partner-v1.blade.php
Normal file
38
resources/views/web/dev/partner-v1.blade.php
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Für Entwickler & Partner - B2in')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
<livewire:web.components.sections.partner-hero />
|
||||
<livewire:web.components.sections.founder-bar />
|
||||
<livewire:web.components.sections.content-section section="supply_chain_intro" layout="left" bg="bg-accent" />
|
||||
<livewire:web.components.sections.card-section section="partner_card_section" />
|
||||
<livewire:web.components.sections.benefits-section section="partner_benefits_developer" />
|
||||
<livewire:web.components.sections.benefits-section section="partner_benefits_retailer" layout="right" bg="bg-accent" />
|
||||
<livewire:web.components.sections.benefits-section section="partner_benefits_supplier" />
|
||||
<livewire:web.components.sections.benefits-section section="partner_benefits_broker" layout="right" bg="bg-accent" />
|
||||
<livewire:web.components.sections.partner-process />
|
||||
<livewire:web.components.sections.commitment-section />
|
||||
<livewire:web.components.sections.partner-c-t-a />
|
||||
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
{{-- Alpine.js wird zentral im Layout geladen --}}
|
||||
@endpush
|
||||
120
resources/views/web/dev/sitemap.blade.php
Normal file
120
resources/views/web/dev/sitemap.blade.php
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Dev Sitemap - B2in')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="section-padding variante-glass-flow">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-4xl mx-auto">
|
||||
|
||||
<div class="mb-12">
|
||||
<h1 class="text-hero mb-4">Dev <span class="text-secondary">Sitemap</span></h1>
|
||||
<p class="text-lg text-muted-foreground">Übersicht aller Seiten – inklusive Archiv-Versionen und Entwicklungsseiten.</p>
|
||||
</div>
|
||||
|
||||
{{-- Live-Seiten --}}
|
||||
<div class="mb-12">
|
||||
<h2 class="text-xl font-semibold text-foreground mb-6 flex items-center gap-2">
|
||||
<span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-green-500/10 text-green-600">
|
||||
<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="M5 13l4 4L19 7" /></svg>
|
||||
</span>
|
||||
Live-Seiten
|
||||
</h2>
|
||||
<div class="grid gap-3">
|
||||
@php
|
||||
$livePages = [
|
||||
['url' => '/', 'label' => 'Home', 'description' => 'Startseite B2in'],
|
||||
['url' => '/immobilien', 'label' => 'Immobilien', 'description' => 'Dubai Investments – Hauptseite'],
|
||||
['url' => '/immobilien/azizi-creek-views-4', 'label' => 'Azizi Creek Views 4', 'description' => 'Projekt-Exposé'],
|
||||
['url' => '/netzwerk', 'label' => 'Netzwerk', 'description' => 'B2in Ökosystem – Teaser (Soft Launch)'],
|
||||
['url' => '/magazin', 'label' => 'Magazin', 'description' => 'Artikel & Insights'],
|
||||
['url' => '/about', 'label' => 'Über B2in', 'description' => 'Über uns & Team'],
|
||||
['url' => '/contact', 'label' => 'Kontakt', 'description' => 'Kontaktformular'],
|
||||
['url' => '/faq', 'label' => 'FAQ', 'description' => 'Häufige Fragen'],
|
||||
];
|
||||
@endphp
|
||||
@foreach ($livePages as $page)
|
||||
<a href="{{ $page['url'] }}" class="flex items-center justify-between p-4 rounded-xl border border-border/50 hover:border-secondary/50 hover:bg-secondary/5 transition-all group">
|
||||
<div>
|
||||
<span class="font-medium text-foreground group-hover:text-secondary transition-colors">{{ $page['label'] }}</span>
|
||||
<span class="text-sm text-muted-foreground ml-3">{{ $page['description'] }}</span>
|
||||
</div>
|
||||
<code class="text-xs text-muted-foreground bg-accent px-2 py-1 rounded">{{ $page['url'] }}</code>
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Archiv-Seiten --}}
|
||||
<div class="mb-12">
|
||||
<h2 class="text-xl font-semibold text-foreground mb-6 flex items-center gap-2">
|
||||
<span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-amber-500/10 text-amber-600">
|
||||
<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="M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z" /></svg>
|
||||
</span>
|
||||
Archiv (Pre-Soft-Launch Versionen)
|
||||
</h2>
|
||||
<div class="grid gap-3">
|
||||
@php
|
||||
$archivePages = [
|
||||
['url' => '/dev/immobilien-v1', 'label' => 'Immobilien (v1)', 'description' => 'Originalversion vor Soft Launch'],
|
||||
['url' => '/dev/interior-v1', 'label' => 'Interior / Einrichtungsnetzwerk (v1)', 'description' => 'Originalversion vor Soft Launch'],
|
||||
['url' => '/dev/partner-v1', 'label' => 'Für Entwickler & Partner (v1)', 'description' => 'Originalversion vor Soft Launch'],
|
||||
];
|
||||
@endphp
|
||||
@foreach ($archivePages as $page)
|
||||
<a href="{{ $page['url'] }}" class="flex items-center justify-between p-4 rounded-xl border border-border/50 hover:border-amber-500/50 hover:bg-amber-500/5 transition-all group">
|
||||
<div>
|
||||
<span class="font-medium text-foreground group-hover:text-amber-600 transition-colors">{{ $page['label'] }}</span>
|
||||
<span class="text-sm text-muted-foreground ml-3">{{ $page['description'] }}</span>
|
||||
</div>
|
||||
<code class="text-xs text-muted-foreground bg-accent px-2 py-1 rounded">{{ $page['url'] }}</code>
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Dev-Tools --}}
|
||||
<div>
|
||||
<h2 class="text-xl font-semibold text-foreground mb-6 flex items-center gap-2">
|
||||
<span class="inline-flex items-center justify-center w-8 h-8 rounded-full bg-blue-500/10 text-blue-600">
|
||||
<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="M11.42 15.17l-5.384-3.116A2.25 2.25 0 015.25 10.08V6.75a2.25 2.25 0 011.786-1.975l5.384-3.116a2.25 2.25 0 012.16 0l5.384 3.116A2.25 2.25 0 0120.75 6.75v3.33a2.25 2.25 0 01-.786 1.975l-5.384 3.116a2.25 2.25 0 01-2.16 0z" /></svg>
|
||||
</span>
|
||||
Dev-Tools
|
||||
</h2>
|
||||
<div class="grid gap-3">
|
||||
@php
|
||||
$devPages = [
|
||||
['url' => '/theme-demo', 'label' => 'Theme Demo', 'description' => 'Farben, Logos, Buttons aller Themes'],
|
||||
['url' => '/dev/sitemap', 'label' => 'Dev Sitemap', 'description' => 'Diese Seite'],
|
||||
];
|
||||
@endphp
|
||||
@foreach ($devPages as $page)
|
||||
<a href="{{ $page['url'] }}" class="flex items-center justify-between p-4 rounded-xl border border-border/50 hover:border-blue-500/50 hover:bg-blue-500/5 transition-all group">
|
||||
<div>
|
||||
<span class="font-medium text-foreground group-hover:text-blue-600 transition-colors">{{ $page['label'] }}</span>
|
||||
<span class="text-sm text-muted-foreground ml-3">{{ $page['description'] }}</span>
|
||||
</div>
|
||||
<code class="text-xs text-muted-foreground bg-accent px-2 py-1 rounded">{{ $page['url'] }}</code>
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'B2In Ecosystem - Intelligentes Netzwerk')
|
||||
@section('title', 'B2in Ecosystem - Intelligentes Netzwerk')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Stileigentum - Premium Immobilien & Zeitlose Eleganz')
|
||||
@section('title', 'FAQ - B2in')
|
||||
@section('meta_description', 'Häufig gestellte Fragen zu B2in – Immobilien in Dubai, Einrichtungsservice und mehr.')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
|
|
@ -21,7 +22,3 @@
|
|||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
{{-- Alpine.js wird zentral im Layout geladen --}}
|
||||
@endpush
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'B2IN - Connecting Design and Property')
|
||||
@section('meta_description', 'B2in verbindet exklusive Immobilien in Dubai mit europäischem Einrichtungsdesign. Ihr Partner für Investment & Interior.')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
|
|
@ -8,12 +9,10 @@
|
|||
|
||||
<main class="variante-glass-flow">
|
||||
<livewire:web.components.sections.hero />
|
||||
<livewire:web.components.sections.vision-section />
|
||||
|
||||
<livewire:web.components.sections.ecosystem-core bg="bg-accent" />
|
||||
<livewire:web.components.sections.brand-worlds />
|
||||
<livewire:web.components.sections.content-section layout="left" bg="bg-accent"
|
||||
section="integriertes_modell_b2in" />
|
||||
<livewire:web.components.sections.founder-bar />
|
||||
<livewire:web.components.sections.content-section section="synergie_section" layout="left" />
|
||||
<livewire:web.components.sections.vision-section bg="bg-accent" />
|
||||
<livewire:web.components.sections.ecosystem-core />
|
||||
<livewire:web.components.sections.c-t-a-section />
|
||||
</main>
|
||||
|
||||
|
|
|
|||
363
resources/views/web/immobilien-show.blade.php
Normal file
363
resources/views/web/immobilien-show.blade.php
Normal file
|
|
@ -0,0 +1,363 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', ($project['title'] ?? 'Exposé') . ' - B2in Immobilien')
|
||||
@section('meta_description', ($project['investment_case']['text'] ?? 'Exklusives Off-Market-Immobilienprojekt in Dubai – jetzt Exposé ansehen.'))
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
|
||||
{{-- 1. Hero --}}
|
||||
<section class="relative h-[50vh] min-h-[400px] overflow-hidden">
|
||||
<x-web-picture
|
||||
src="{{ theme_image_url($project['image'] ?? '') }}"
|
||||
alt="{{ $project['title'] ?? '' }}"
|
||||
class="absolute inset-0 w-full h-full object-cover"
|
||||
loading="" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/70 via-black/30 to-transparent"></div>
|
||||
<div class="absolute bottom-0 left-0 right-0 p-8 lg:p-12">
|
||||
<div class="container-padding">
|
||||
@if (isset($project['status']))
|
||||
<span class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-semibold bg-secondary text-white mb-4">
|
||||
{{ $project['status'] }}
|
||||
@if (isset($project['launch_date']))
|
||||
<span class="opacity-80">({{ $project['launch_date'] }})</span>
|
||||
@endif
|
||||
</span>
|
||||
@endif
|
||||
<h1 class="text-3xl lg:text-4xl font-bold text-white">{{ $project['title'] ?? '' }}</h1>
|
||||
@if (isset($project['location']))
|
||||
<p class="text-lg text-white/80 mt-2">{{ $project['location'] }}</p>
|
||||
@endif
|
||||
@if (isset($project['price_from']))
|
||||
<p class="text-xl font-semibold text-white mt-3">{{ $project['price_from'] }}</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{-- 2. Quick Facts --}}
|
||||
{{-- Editierbar über CMS je Projekt --}}
|
||||
|
||||
@if (!empty($project['quick_facts']))
|
||||
<section class=" bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="grid grid-cols-2 lg:grid-cols-4 gap-6">
|
||||
@foreach ($project['quick_facts'] as $fact)
|
||||
<div class="text-center p-4">
|
||||
<div class="inline-flex items-center justify-center w-12 h-12 rounded-full bg-secondary/10 text-secondary mb-3">
|
||||
@if (isset($fact['icon']))
|
||||
<svg class="w-6 h-6" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24">
|
||||
@switch($fact['icon'])
|
||||
@case('home-modern')
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M8.25 21v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21m0 0h4.5V3.545M12.75 21h7.5V10.75M2.25 21h1.5m18 0h-18M2.25 9l4.5-1.636M18.75 3l-1.5.545m0 6.205l3 1m1.5.5l-1.5-.5M6.75 7.364V3h-3v18m3-13.636l10.5-3.819" />
|
||||
@break
|
||||
@case('squares-2x2')
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6A2.25 2.25 0 016 3.75h2.25A2.25 2.25 0 0110.5 6v2.25a2.25 2.25 0 01-2.25 2.25H6a2.25 2.25 0 01-2.25-2.25V6zM3.75 15.75A2.25 2.25 0 016 13.5h2.25a2.25 2.25 0 012.25 2.25V18a2.25 2.25 0 01-2.25 2.25H6A2.25 2.25 0 013.75 18v-2.25zM13.5 6a2.25 2.25 0 012.25-2.25H18A2.25 2.25 0 0120.25 6v2.25A2.25 2.25 0 0118 10.5h-2.25a2.25 2.25 0 01-2.25-2.25V6zM13.5 15.75a2.25 2.25 0 012.25-2.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-2.25A2.25 2.25 0 0113.5 18v-2.25z" />
|
||||
@break
|
||||
@case('building-office-2')
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008z" />
|
||||
@break
|
||||
@case('user')
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z" />
|
||||
@break
|
||||
@endswitch
|
||||
</svg>
|
||||
@endif
|
||||
</div>
|
||||
<p class="text-xs text-muted-foreground uppercase tracking-wider mb-1">{{ $fact['label'] ?? '' }}</p>
|
||||
<p class="text-sm font-semibold text-foreground">{{ $fact['value'] ?? '' }}</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- 3. Investment Case --}}
|
||||
|
||||
@if (!empty($project['investment_case']))
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto">
|
||||
<h2 class="text-section-title text-left">{{ $project['investment_case']['title'] ?? '' }}</h2>
|
||||
<p class="text-large text-muted-foreground mt-6 leading-relaxed">
|
||||
{{ $project['investment_case']['text'] ?? '' }}
|
||||
</p>
|
||||
|
||||
@if (!empty($project['investment_case']['views']))
|
||||
<div class="mt-8">
|
||||
<p class="text-sm font-semibold text-foreground mb-3">Verfügbare Views:</p>
|
||||
<div class="flex flex-wrap gap-2">
|
||||
@foreach ($project['investment_case']['views'] as $view)
|
||||
<span class="inline-flex items-center px-3 py-1.5 rounded-full text-xs font-medium bg-secondary/10 text-secondary">
|
||||
{{ $view }}
|
||||
</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (!empty($project['highlights']))
|
||||
<ul class="mt-8 space-y-3">
|
||||
@foreach ($project['highlights'] as $highlight)
|
||||
<li class="flex items-start gap-3 text-muted-foreground">
|
||||
<svg class="w-5 h-5 text-secondary mt-0.5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" />
|
||||
</svg>
|
||||
{{ $highlight }}
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- 4. Bildergalerie --}}
|
||||
|
||||
@if (!empty($project['gallery']))
|
||||
<div x-data="{ lightbox: false, current: 0 }">
|
||||
<section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<h2 class="text-section-title text-center mb-8">Galerie</h2>
|
||||
|
||||
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-3 gap-4">
|
||||
@foreach ($project['gallery'] as $index => $image)
|
||||
<div class="relative aspect-[4/3] rounded-xl overflow-hidden cursor-pointer group"
|
||||
@click="lightbox = true; current = {{ $index }}">
|
||||
<x-web-picture
|
||||
src="{{ theme_image_url($image) }}"
|
||||
alt="{{ $project['title'] ?? '' }} – Bild {{ $index + 1 }}"
|
||||
class="w-full h-full object-cover transition-transform duration-300 group-hover:scale-105" />
|
||||
<div class="absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300"></div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{-- Lightbox (via x-teleport ins body, umgeht alle Eltern-Constraints) --}}
|
||||
<template x-teleport="body">
|
||||
<div x-show="lightbox" x-cloak
|
||||
x-transition:enter="transition ease-out duration-300"
|
||||
x-transition:enter-start="opacity-0"
|
||||
x-transition:enter-end="opacity-100"
|
||||
x-transition:leave="transition ease-in duration-200"
|
||||
x-transition:leave-start="opacity-100"
|
||||
x-transition:leave-end="opacity-0"
|
||||
class="fixed inset-0 z-50 isolate bg-black/90"
|
||||
@keydown.escape.window="lightbox = false"
|
||||
@keydown.arrow-right.window="current = (current + 1) % {{ count($project['gallery']) }}"
|
||||
@keydown.arrow-left.window="current = (current - 1 + {{ count($project['gallery']) }}) % {{ count($project['gallery']) }}">
|
||||
|
||||
{{-- Bildbereich (eigene Ebene, dahinter) --}}
|
||||
<div class="absolute inset-0 flex items-center justify-center p-4 z-0">
|
||||
@foreach ($project['gallery'] as $index => $image)
|
||||
<x-web-picture x-show="current === {{ $index }}"
|
||||
x-transition:enter="transition ease-out duration-200"
|
||||
x-transition:enter-start="opacity-0 scale-95"
|
||||
x-transition:enter-end="opacity-100 scale-100"
|
||||
src="{{ theme_image_url($image) }}"
|
||||
alt="{{ $project['title'] ?? '' }} – Bild {{ $index + 1 }}"
|
||||
class="max-h-[85vh] max-w-[90vw] object-contain rounded-lg"
|
||||
loading="" />
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
{{-- Close Button (oben rechts mit Abstand) --}}
|
||||
<button @click="lightbox = false"
|
||||
class="cursor-pointer absolute top-6 left-auto right-6 z-10 flex items-center justify-center w-12 h-12 rounded-full bg-white/10 hover:bg-white/20 text-white/90 hover:text-white border border-white/20 transition-all">
|
||||
<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="M6 18L18 6M6 6l12 12" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
{{-- Previous (links, vertikal mittig) --}}
|
||||
<button @click="current = (current - 1 + {{ count($project['gallery']) }}) % {{ count($project['gallery']) }}"
|
||||
class="cursor-pointer absolute left-6 top-1/2 -translate-y-1/2 z-10 flex items-center justify-center w-14 h-14 rounded-full bg-white/10 hover:bg-white/20 text-white/90 hover:text-white border border-white/20 transition-all">
|
||||
<svg class="w-7 h-7" 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" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
{{-- Next (rechts, vertikal mittig) --}}
|
||||
<button @click="current = (current + 1) % {{ count($project['gallery']) }}"
|
||||
class="cursor-pointer absolute left-auto right-6 top-1/2 -translate-y-1/2 z-10 flex items-center justify-center w-14 h-14 rounded-full bg-white/10 hover:bg-white/20 text-white/90 hover:text-white border border-white/20 transition-all">
|
||||
<svg class="w-7 h-7" 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" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
{{-- Counter --}}
|
||||
<div class="absolute bottom-4 left-1/2 -translate-x-1/2 z-10 text-white/60 text-sm">
|
||||
<span x-text="current + 1"></span> / {{ count($project['gallery']) }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
{{-- 5. Trust-Block: Investorenschutz (pro Projekt im CMS, siehe investor_trust) --}}
|
||||
@php
|
||||
$trust = $project['investor_trust'] ?? [];
|
||||
$trustColumns = $trust['columns'] ?? [];
|
||||
@endphp
|
||||
@if (! empty($trust['title']) || count($trustColumns) > 0)
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-4xl mx-auto">
|
||||
@if (! empty($trust['title']) || ! empty($trust['intro']))
|
||||
<div class="text-center mb-10">
|
||||
@if (! empty($trust['title']))
|
||||
<h2 class="text-section-title">{{ $trust['title'] }}</h2>
|
||||
@endif
|
||||
@if (! empty($trust['intro']))
|
||||
<p class="text-large text-muted-foreground mt-4 max-w-2xl mx-auto">
|
||||
{{ $trust['intro'] }}
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (count($trustColumns) > 0)
|
||||
<div class="grid md:grid-cols-3 gap-6 mb-10">
|
||||
@foreach ($trustColumns as $col)
|
||||
<div class="card-elevated rounded-2xl p-6 text-center">
|
||||
<div class="inline-flex items-center justify-center w-14 h-14 rounded-full bg-secondary/10 text-secondary mb-5">
|
||||
@if (! empty($col['icon']))
|
||||
@svg($col['icon'], 'w-7 h-7')
|
||||
@endif
|
||||
</div>
|
||||
<h3 class="text-base font-semibold text-foreground mb-3">{{ $col['title'] ?? '' }}</h3>
|
||||
<p class="text-sm text-muted-foreground leading-relaxed">
|
||||
{{ $col['text'] ?? '' }}
|
||||
</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (! empty($trust['cta_url']) && ! empty($trust['cta_label']))
|
||||
<div class="text-center">
|
||||
<a href="{{ $trust['cta_url'] }}" class="btn-secondary-accent transition-colors duration-200">
|
||||
<span class="flex items-center justify-center gap-2">
|
||||
@svg('heroicon-o-book-open', 'w-4 h-4')
|
||||
<span>{{ $trust['cta_label'] }}</span>
|
||||
<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="M17 8l4 4m0 0l-4 4m4-4H3" />
|
||||
</svg>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- 6. Location & Map --}}
|
||||
@if (!empty($project['location_info']))
|
||||
<section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto">
|
||||
<h2 class="text-section-title text-left">{{ $project['location_info']['title'] ?? '' }}</h2>
|
||||
|
||||
@if (!empty($project['location_info']['points']))
|
||||
<ul class="mt-8 space-y-4">
|
||||
@foreach ($project['location_info']['points'] as $point)
|
||||
<li class="flex items-start gap-3 text-muted-foreground">
|
||||
<svg class="w-5 h-5 text-secondary mt-0.5 shrink-0 inline-block" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 10.5a3 3 0 11-6 0 3 3 0 016 0z" />
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1115 0z" />
|
||||
</svg>
|
||||
{{ $point }}
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
|
||||
@if (isset($project['location_info']['map_url']))
|
||||
<div class="mt-8 text-center">
|
||||
<a href="{{ $project['location_info']['map_url'] }}"
|
||||
target="_blank" rel="noopener"
|
||||
class="inline-flex items-center gap-2 btn-secondary-accent">
|
||||
<svg class="w-4 h-4 inline-block mr-2 mb-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7" />
|
||||
</svg>
|
||||
Auf Google Maps ansehen
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Möbel-Vorteil / Synergie (pro Projekt: furniture_benefit; Fallback: Theme-Config) --}}
|
||||
@php
|
||||
$moebelVorteil = $project['furniture_benefit'] ?? [];
|
||||
if (empty($moebelVorteil) || (empty($moebelVorteil['title'] ?? null) && empty($moebelVorteil['text'] ?? null))) {
|
||||
$moebelVorteil = cms_theme_section('immobilien_moebel_vorteil');
|
||||
}
|
||||
@endphp
|
||||
@if (! empty($moebelVorteil))
|
||||
<section class="section-padding bg-secondary/5">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto text-center">
|
||||
<h2 class="text-section-title">{!! $moebelVorteil['title'] ?? '' !!}</h2>
|
||||
<p class="text-large text-muted-foreground mt-4">
|
||||
{{ $moebelVorteil['text'] ?? '' }}
|
||||
</p>
|
||||
@if (! empty($moebelVorteil['button_text'] ?? null))
|
||||
<div class="mt-8">
|
||||
<a href="{{ $moebelVorteil['button_link'] ?? '/partner' }}"
|
||||
class="btn-secondary-accent">
|
||||
{{ $moebelVorteil['button_text'] }}
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- 7. Lead-Generierung / Kontakt --}}
|
||||
@if (!empty($project['contact']))
|
||||
<section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-2xl mx-auto text-center">
|
||||
<h2 class="text-section-title">{{ $project['contact']['title'] ?? '' }}</h2>
|
||||
@if (isset($project['contact']['subtitle']))
|
||||
<p class="text-large text-muted-foreground mt-3">{{ $project['contact']['subtitle'] }}</p>
|
||||
@endif
|
||||
|
||||
<div class="mt-8 card-elevated rounded-2xl p-8 text-left">
|
||||
<livewire:web.components.sections.immobilien-contact-form
|
||||
:projectSlug="$project['slug'] ?? ''"
|
||||
:projectTitle="$project['title'] ?? ''"
|
||||
:interestOptions="$project['contact']['options'] ?? []"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
314
resources/views/web/immobilien.blade.php
Normal file
314
resources/views/web/immobilien.blade.php
Normal file
|
|
@ -0,0 +1,314 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Immobilien Dubai - B2in')
|
||||
@section('meta_description', 'Exklusive Off-Market-Immobilien in Dubai. Persönliche Beratung, steuerfreie Renditen & Turnkey-Einrichtung aus einer Hand.')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
@php
|
||||
$heroV2 = cms_theme_section('immobilien_hero_v2');
|
||||
$warumDubai = cms_theme_section('immobilien_warum_dubai');
|
||||
$kaufprozess = cms_theme_section('immobilien_kaufprozess');
|
||||
$bruecke = cms_theme_section('immobilien_bruecke');
|
||||
$mindset = cms_theme_section('immobilien_mindset');
|
||||
$projects = cms_theme_section('immobilien_projects');
|
||||
$moebelVorteil = cms_theme_section('immobilien_moebel_vorteil');
|
||||
@endphp
|
||||
|
||||
{{-- Sektion 1: Hero --}}
|
||||
@if (!empty($heroV2))
|
||||
<section class="relative min-h-[70vh] flex items-center overflow-hidden">
|
||||
<x-web-picture
|
||||
src="{{ theme_image_url($heroV2['image'] ?? '') }}"
|
||||
alt="{{ $heroV2['image_alt'] ?? 'Immobilien Investment Dubai' }}"
|
||||
class="absolute inset-0 w-full h-full object-cover"
|
||||
loading="" />
|
||||
<div class="absolute inset-0 bg-gradient-to-r from-black/80 via-black/60 to-black/30"></div>
|
||||
<div class="relative z-10 container-padding py-24 lg:py-32">
|
||||
<div class="max-w-3xl slide-right delay-300">
|
||||
<h1 class="text-4xl lg:text-5xl xl:text-6xl font-bold text-white leading-tight">
|
||||
{!! $heroV2['title'] !!}
|
||||
</h1>
|
||||
<p class="text-lg lg:text-xl text-white/80 mt-6 max-w-2xl leading-relaxed">
|
||||
{{ $heroV2['subtitle'] ?? '' }}
|
||||
</p>
|
||||
@if (isset($heroV2['cta_text']))
|
||||
<div class="mt-10">
|
||||
<a href="{{ $heroV2['cta_link'] ?? '#projekte' }}"
|
||||
class="btn-primary-accent px-8 py-4 text-lg">
|
||||
{{ $heroV2['cta_text'] }}
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
<livewire:web.components.sections.founder-bar />
|
||||
|
||||
{{-- Sektion 2: Warum Dubai? --}}
|
||||
@if (!empty($warumDubai))
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto text-center mb-12 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $warumDubai['title'] !!}</h2>
|
||||
@if (isset($warumDubai['intro']))
|
||||
<p class="text-large text-muted-foreground mt-4 leading-relaxed">
|
||||
{{ $warumDubai['intro'] }}
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6 max-w-5xl mx-auto">
|
||||
@foreach ($warumDubai['facts'] ?? [] as $index => $fact)
|
||||
<div class="card-elevated rounded-2xl p-6 lg:p-8 text-center slide-up delay-{{ 300 + $index * 100 }}">
|
||||
<div class="inline-flex items-center justify-center w-14 h-14 rounded-full bg-secondary/10 text-secondary mb-5">
|
||||
@svg('heroicon-o-' . ($fact['icon'] ?? 'check'), 'w-7 h-7')
|
||||
</div>
|
||||
<h3 class="text-lg font-semibold text-foreground mb-2">{{ $fact['title'] ?? '' }}</h3>
|
||||
<p class="text-sm text-muted-foreground leading-relaxed">{{ $fact['description'] ?? '' }}</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
<livewire:web.components.sections.image-break section="immobilien_image_break" />
|
||||
|
||||
{{-- Sektion 3: Kaufprozess --}}
|
||||
@if (!empty($kaufprozess))
|
||||
<section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto text-center mb-12 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $kaufprozess['title'] !!}</h2>
|
||||
@if (isset($kaufprozess['intro']))
|
||||
<p class="text-large text-muted-foreground mt-4 leading-relaxed">
|
||||
{{ $kaufprozess['intro'] }}
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="max-w-4xl mx-auto">
|
||||
<div class="grid md:grid-cols-2 gap-6">
|
||||
@foreach ($kaufprozess['steps'] ?? [] as $index => $step)
|
||||
<div class="relative card-elevated rounded-2xl p-6 lg:p-8 slide-up delay-{{ 300 + $index * 100 }}">
|
||||
<div class="flex gap-5 items-start">
|
||||
<div class="shrink-0 w-12 h-12 rounded-full bg-secondary text-white flex items-center justify-center text-lg font-bold">
|
||||
{{ $step['number'] ?? '' }}
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="text-lg font-semibold text-foreground mb-2">{{ $step['title'] ?? '' }}</h3>
|
||||
<p class="text-sm text-muted-foreground leading-relaxed">{{ $step['description'] ?? '' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Sektion 4: Die Brücke – Marcels Pitch --}}
|
||||
@if (!empty($bruecke))
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="grid lg:grid-cols-2 gap-12 lg:gap-16 items-center">
|
||||
<div class="relative lg:order-1">
|
||||
<div class="card-elevated rounded-3xl overflow-hidden slide-left delay-400">
|
||||
<x-web-picture
|
||||
src="{{ theme_image_url($bruecke['image'] ?? '') }}"
|
||||
alt="{{ $bruecke['image_alt'] ?? 'Marcel Scheibe – Ihre Brücke nach Dubai' }}"
|
||||
class="w-full h-[500px] object-cover" />
|
||||
@if (isset($bruecke['image_caption']))
|
||||
<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">
|
||||
{{ $bruecke['image_caption'] }}
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="spacing-section lg:order-2">
|
||||
<div class="spacing-content slide-right delay-300">
|
||||
<h2 class="text-section-title">{!! $bruecke['title'] !!}</h2>
|
||||
<div class="spacing-small text-large text-muted-foreground leading-relaxed">
|
||||
@foreach ($bruecke['paragraphs'] ?? [] as $paragraph)
|
||||
<p>{!! $paragraph !!}</p>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
@if (isset($bruecke['advantage_title']))
|
||||
<div class="mt-8 p-6 rounded-2xl bg-secondary/5 border border-secondary/20">
|
||||
<h3 class="text-lg font-semibold text-foreground mb-2">{{ $bruecke['advantage_title'] }}</h3>
|
||||
<p class="text-muted-foreground leading-relaxed">{{ $bruecke['advantage_text'] ?? '' }}</p>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (isset($bruecke['cta_text']))
|
||||
<div class="mt-8">
|
||||
<a href="{{ $bruecke['cta_link'] ?? '/contact' }}"
|
||||
class="btn-primary-accent px-6 py-3">
|
||||
{{ $bruecke['cta_text'] }}
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Aktuelle Projekte --}}
|
||||
@if (!empty($projects))
|
||||
<section id="projekte" class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="text-center mb-12 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $projects['title'] ?? '' !!}</h2>
|
||||
@if (isset($projects['subtitle']))
|
||||
<p class="text-large text-muted-foreground mt-4 max-w-2xl mx-auto">
|
||||
{{ $projects['subtitle'] }}
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@php
|
||||
$projectCount = count($projects['projects'] ?? []);
|
||||
@endphp
|
||||
<div class="grid md:grid-cols-1 lg:grid-cols-2 gap-8 slide-up delay-400">
|
||||
@foreach ($projects['projects'] ?? [] as $project)
|
||||
<div class="card-elevated rounded-2xl overflow-hidden {{ $projectCount === 1 ? 'lg:col-span-2 lg:max-w-[calc((100%-2rem)/2)] lg:mx-auto' : '' }}">
|
||||
@if (isset($project['image']))
|
||||
<div class="relative h-56 overflow-hidden">
|
||||
<x-web-picture
|
||||
src="{{ theme_image_url($project['image']) }}"
|
||||
alt="{{ $project['title'] }}"
|
||||
class="w-full h-full object-cover" />
|
||||
@if (isset($project['status']))
|
||||
<div class="absolute top-4 left-4">
|
||||
<span class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-semibold bg-secondary text-white">
|
||||
{{ $project['status'] }}
|
||||
@if (isset($project['launch_date']))
|
||||
<span class="opacity-80">({{ $project['launch_date'] }})</span>
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="p-6 lg:p-8">
|
||||
<div class="mb-4">
|
||||
<h3 class="text-xl font-semibold text-foreground">{{ $project['title'] }}</h3>
|
||||
@if (isset($project['location']))
|
||||
<p class="text-sm text-muted-foreground mt-1">{{ $project['location'] }}</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@if (isset($project['price_from']))
|
||||
<p class="text-lg font-medium text-secondary mb-4">{{ $project['price_from'] }}</p>
|
||||
@endif
|
||||
|
||||
@if (isset($project['highlights']))
|
||||
<ul class="space-y-2 mb-6">
|
||||
@foreach ($project['highlights'] as $highlight)
|
||||
<li class="flex items-start gap-2 text-sm text-muted-foreground">
|
||||
<svg class="w-4 h-4 text-secondary mt-0.5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" />
|
||||
</svg>
|
||||
{{ $highlight }}
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
|
||||
<a href="{{ isset($project['slug']) ? route('immobilien.show', $project['slug']) : ($projects['cta_link'] ?? '/contact') }}"
|
||||
class="inline-flex items-center gap-2 whitespace-nowrap btn-primary-accent">
|
||||
<span>{{ isset($project['slug']) ? 'Exposé ansehen' : ($projects['cta_text'] ?? 'Anfragen') }}</span>
|
||||
<svg class="w-4 h-4 shrink-0 inline-block ml-2 mb-0.5" 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>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Sektion 5: Mindset-Check --}}
|
||||
@if (!empty($mindset))
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-4xl mx-auto">
|
||||
<div class="rounded-2xl border-2 border-secondary/20 bg-secondary/5 p-8 lg:p-12 slide-up delay-300">
|
||||
<h2 class="text-section-title text-center">{!! $mindset['title'] !!}</h2>
|
||||
|
||||
<div class="mt-8 space-y-6 text-large leading-relaxed">
|
||||
@if (isset($mindset['text_positive']))
|
||||
<p class="text-foreground">{!! $mindset['text_positive'] !!}</p>
|
||||
@endif
|
||||
@if (isset($mindset['text_negative']))
|
||||
<p class="text-muted-foreground">{{ $mindset['text_negative'] }}</p>
|
||||
@endif
|
||||
@if (isset($mindset['closing']))
|
||||
<p class="text-foreground pt-4 border-t border-secondary/20">{!! $mindset['closing'] !!}</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@if (isset($mindset['cta_text']))
|
||||
<div class="mt-8 text-center">
|
||||
<a href="{{ $mindset['cta_link'] ?? '/contact' }}"
|
||||
class="btn-primary-accent px-8 py-4 text-lg">
|
||||
{{ $mindset['cta_text'] }}
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Möbel-Vorteil Banner (Teaser) --}}
|
||||
@if (!empty($moebelVorteil))
|
||||
<section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto text-center slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $moebelVorteil['title'] ?? '' !!}</h2>
|
||||
<p class="text-large text-muted-foreground mt-4">
|
||||
{{ $moebelVorteil['text'] ?? '' }}
|
||||
</p>
|
||||
@if (isset($moebelVorteil['button_text']))
|
||||
<div class="mt-8">
|
||||
<a href="{{ $moebelVorteil['button_link'] ?? '/netzwerk' }}"
|
||||
class="btn-secondary-accent">
|
||||
{{ $moebelVorteil['button_text'] }}
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
<livewire:web.components.sections.c-t-a-section />
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
45
resources/views/web/impressum.blade.php
Normal file
45
resources/views/web/impressum.blade.php
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@php
|
||||
$legal = legal_page('impressum');
|
||||
@endphp
|
||||
|
||||
@section('title', $legal['meta_title'] . ' - ' . ($domainName ?? config('app.name')))
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto">
|
||||
<h1 class="text-hero mb-8">{{ $legal['title'] }}</h1>
|
||||
<p class="text-muted-foreground text-sm mb-12">
|
||||
{{ $legal['subtitle'] }}
|
||||
</p>
|
||||
|
||||
<div class="prose-legal space-y-8 text-foreground">
|
||||
{!! $legal['content'] !!}
|
||||
</div>
|
||||
|
||||
<div class="mt-12 pt-8 border-t border-border/30">
|
||||
<a href="{{ url()->previous() }}" class="text-secondary hover:underline text-sm">
|
||||
{{ $legal['back_link'] }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] { display: none !important; }
|
||||
.prose-legal a { transition: color 0.2s; }
|
||||
</style>
|
||||
@endpush
|
||||
160
resources/views/web/interior.blade.php
Normal file
160
resources/views/web/interior.blade.php
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Einrichtungsnetzwerk - B2in Interior')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
<livewire:web.components.sections.partner-hero section="interior_hero" />
|
||||
<livewire:web.components.sections.founder-bar />
|
||||
|
||||
{{-- Local-for-Local Konzept --}}
|
||||
<livewire:web.components.sections.content-section section="interior_concept" layout="left" />
|
||||
|
||||
{{-- Zwei Marken --}}
|
||||
@php
|
||||
$brands = cms_theme_section('interior_brands');
|
||||
$zielgruppen = cms_theme_section('interior_zielgruppen');
|
||||
$process = cms_theme_section('interior_process');
|
||||
@endphp
|
||||
|
||||
@if (!empty($brands))
|
||||
<section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="text-center mb-12 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $brands['title'] ?? '' !!}</h2>
|
||||
@if (isset($brands['subtitle']))
|
||||
<p class="text-large text-muted-foreground mt-4 max-w-2xl mx-auto">
|
||||
{{ $brands['subtitle'] }}
|
||||
</p>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-2 gap-8 max-w-4xl mx-auto slide-up delay-400">
|
||||
@foreach ($brands['brands'] ?? [] as $brand)
|
||||
<div class="card-elevated rounded-2xl overflow-hidden">
|
||||
<div class="p-8 lg:p-10">
|
||||
@if (isset($brand['logo']))
|
||||
<div class="mb-6">
|
||||
<img src="{{ asset($brand['logo']) }}"
|
||||
alt="{{ $brand['name'] }}"
|
||||
class="{{ $brand['logo_width'] ?? 'w-32' }}" />
|
||||
</div>
|
||||
@endif
|
||||
<p class="text-xs font-semibold uppercase tracking-wider text-secondary mb-3">
|
||||
{{ $brand['tagline'] ?? '' }}
|
||||
</p>
|
||||
<p class="text-muted-foreground leading-relaxed">
|
||||
{{ $brand['description'] ?? '' }}
|
||||
</p>
|
||||
@if (isset($brand['audience']))
|
||||
<p class="text-sm font-medium text-foreground mt-4">
|
||||
{{ $brand['audience'] }}
|
||||
</p>
|
||||
@endif
|
||||
@if (isset($brand['link']))
|
||||
<div class="mt-6">
|
||||
<a href="{{ $brand['link'] }}"
|
||||
target="_blank" rel="noopener"
|
||||
class="inline-flex items-center gap-2 text-sm font-medium text-secondary hover:text-secondary/80 transition-colors">
|
||||
{{ $brand['name'] }} entdecken
|
||||
<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="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Für wen? Zielgruppen --}}
|
||||
@if (!empty($zielgruppen))
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="text-center mb-12 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $zielgruppen['title'] ?? '' !!}</h2>
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-3 gap-8 max-w-5xl mx-auto slide-up delay-400">
|
||||
@foreach ($zielgruppen['groups'] ?? [] as $group)
|
||||
<div class="text-center p-6">
|
||||
<div class="inline-flex items-center justify-center w-14 h-14 rounded-full bg-secondary/10 text-secondary mb-5">
|
||||
<svg class="w-7 h-7" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24">
|
||||
@switch($group['icon'] ?? '')
|
||||
@case('home')
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 12l8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" />
|
||||
@break
|
||||
@case('building-office-2')
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008z" />
|
||||
@break
|
||||
@case('clipboard-document-check')
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M11.35 3.836c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75 2.25 2.25 0 00-.1-.664m-5.8 0A2.251 2.251 0 0113.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m8.9-4.414c.376.023.75.05 1.124.08 1.131.094 1.976 1.057 1.976 2.192V16.5A2.25 2.25 0 0118 18.75h-2.25m-7.5-10.5H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V18.75m-7.5-10.5h6.375c.621 0 1.125.504 1.125 1.125v9.375m-8.25-3l1.5 1.5 3-3.75" />
|
||||
@break
|
||||
@endswitch
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="text-lg font-semibold text-foreground mb-3">{{ $group['title'] ?? '' }}</h3>
|
||||
<p class="text-sm text-muted-foreground leading-relaxed">{{ $group['description'] ?? '' }}</p>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- So funktioniert es - Prozess --}}
|
||||
@if (!empty($process))
|
||||
<section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="text-center mb-12 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $process['title'] ?? '' !!}</h2>
|
||||
</div>
|
||||
|
||||
<div class="max-w-3xl mx-auto slide-up delay-400">
|
||||
<div class="space-y-8">
|
||||
@foreach ($process['steps'] ?? [] as $step)
|
||||
<div class="flex gap-6 items-start">
|
||||
<div class="shrink-0 w-14 h-14 rounded-full bg-secondary text-white flex items-center justify-center text-lg font-bold">
|
||||
{{ $step['number'] ?? '' }}
|
||||
</div>
|
||||
<div class="pt-2">
|
||||
<h3 class="text-lg font-semibold text-foreground mb-2">{{ $step['title'] ?? '' }}</h3>
|
||||
<p class="text-muted-foreground leading-relaxed">{{ $step['description'] ?? '' }}</p>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Trust / Marcel Scheibe --}}
|
||||
<livewire:web.components.sections.content-section section="interior_trust" layout="right" />
|
||||
|
||||
{{-- CTA --}}
|
||||
<livewire:web.components.sections.c-t-a-section />
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
{{-- Alpine.js wird zentral im Layout geladen --}}
|
||||
@endpush
|
||||
|
|
@ -7,15 +7,27 @@
|
|||
|
||||
<title>{{ $title ?? ($domainName ?? config('app.name', 'Laravel')) }}</title>
|
||||
|
||||
<!-- Domain-spezifisches Favicon -->
|
||||
<link rel="icon" href="{{ asset(\App\Helpers\ThemeHelper::getFaviconPath()) }}">
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="preconnect" href="https://fonts.bunny.net">
|
||||
<!-- Favicons (wie Backend) -->
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="/favicon/apple-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="/favicon/apple-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="/favicon/apple-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="/favicon/apple-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="/favicon/apple-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="/favicon/apple-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="/favicon/apple-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="/favicon/apple-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="/favicon/android-icon-192x192.png">
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="/favicon/favicon-96x96.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png">
|
||||
<link rel="shortcut icon" href="{{ asset(\App\Helpers\ThemeHelper::getFaviconPath()) }}">
|
||||
<link rel="manifest" href="/favicon/manifest.json">
|
||||
<meta name="msapplication-TileColor" content="#ffffff">
|
||||
<meta name="msapplication-TileImage" content="/favicon/ms-icon-144x144.png">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
@php
|
||||
$primaryFont = \App\Helpers\ThemeHelper::getPrimaryFont();
|
||||
$secondaryFont = \App\Helpers\ThemeHelper::getSecondaryFont();
|
||||
$theme = config('app.theme', 'b2in');
|
||||
@endphp
|
||||
|
||||
|
|
@ -59,21 +71,6 @@
|
|||
</script>
|
||||
|
||||
@stack('styles')
|
||||
|
||||
@if ($primaryFont === 'Inter' && $secondaryFont === 'IBM Plex Sans')
|
||||
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|ibm-plex-sans:400,500,600,700"
|
||||
rel="stylesheet" />
|
||||
@elseif($primaryFont === 'Inter' && $secondaryFont === 'Merriweather')
|
||||
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|merriweather:400,700" rel="stylesheet" />
|
||||
@elseif($primaryFont === 'Inter' && $secondaryFont === 'Ephesis')
|
||||
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|ephesis:400" rel="stylesheet" />
|
||||
@elseif($primaryFont === 'Inter' && $secondaryFont === 'EB Garamond')
|
||||
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|eb-garamond:400,500,600,700"
|
||||
rel="stylesheet" />
|
||||
@else
|
||||
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|ibm-plex-sans:400,500,600,700"
|
||||
rel="stylesheet" />
|
||||
@endif
|
||||
</head>
|
||||
<body class="antialiased bg-background text-foreground">
|
||||
<livewire:web.components.ui.top-bar />
|
||||
|
|
|
|||
|
|
@ -8,15 +8,42 @@
|
|||
|
||||
<title>@yield('title', $domainName ?? config('app.name', 'Laravel'))</title>
|
||||
|
||||
<!-- Domain-spezifisches Favicon -->
|
||||
<link rel="icon" href="{{ asset(\App\Helpers\ThemeHelper::getFaviconPath()) }}">
|
||||
<meta name="description" content="@yield('meta_description', 'B2in – Connecting Design and Property. Exklusive Immobilien in Dubai & europäisches Einrichtungsnetzwerk.')">
|
||||
@hasSection('meta_image')
|
||||
<meta property="og:image" content="@yield('meta_image')">
|
||||
@else
|
||||
<meta property="og:image" content="{{ asset('img/assets/b2in-og-default.jpg') }}">
|
||||
@endif
|
||||
<meta property="og:title" content="@yield('title', $domainName ?? config('app.name', 'Laravel'))">
|
||||
<meta property="og:description" content="@yield('meta_description', 'B2in – Connecting Design and Property. Exklusive Immobilien in Dubai & europäisches Einrichtungsnetzwerk.')">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="{{ url()->current() }}">
|
||||
<meta property="og:locale" content="de_DE">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="preconnect" href="https://fonts.bunny.net">
|
||||
@stack('meta')
|
||||
|
||||
<!-- Favicons (wie Backend) -->
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="/favicon/apple-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="/favicon/apple-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="/favicon/apple-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="/favicon/apple-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="/favicon/apple-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="/favicon/apple-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="/favicon/apple-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="/favicon/apple-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="/favicon/android-icon-192x192.png">
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="/favicon/favicon-96x96.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png">
|
||||
<link rel="shortcut icon" href="{{ asset(\App\Helpers\ThemeHelper::getFaviconPath()) }}">
|
||||
<link rel="manifest" href="/favicon/manifest.json">
|
||||
<meta name="msapplication-TileColor" content="#ffffff">
|
||||
<meta name="msapplication-TileImage" content="/favicon/ms-icon-144x144.png">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
@php
|
||||
$primaryFont = \App\Helpers\ThemeHelper::getPrimaryFont();
|
||||
$secondaryFont = \App\Helpers\ThemeHelper::getSecondaryFont();
|
||||
$theme = config('app.theme', 'b2in');
|
||||
@endphp
|
||||
|
||||
|
|
@ -35,63 +62,59 @@
|
|||
|
||||
let topbarHeight = topbar.offsetHeight;
|
||||
let isHeaderSticky = false;
|
||||
let ticking = false;
|
||||
|
||||
function updateHeaderPosition() {
|
||||
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
||||
|
||||
if (scrollTop >= topbarHeight && !isHeaderSticky) {
|
||||
// TopBar ist nicht mehr sichtbar - Header wird sticky
|
||||
header.classList.remove('header-normal');
|
||||
header.classList.add('header-sticky');
|
||||
isHeaderSticky = true;
|
||||
} else if (scrollTop < topbarHeight && isHeaderSticky) {
|
||||
// TopBar ist wieder sichtbar - Header wird normal
|
||||
header.classList.remove('header-sticky');
|
||||
header.classList.add('header-normal');
|
||||
isHeaderSticky = false;
|
||||
}
|
||||
ticking = false;
|
||||
}
|
||||
|
||||
// Initial check
|
||||
updateHeaderPosition();
|
||||
|
||||
// Listen for scroll events
|
||||
window.addEventListener('scroll', updateHeaderPosition);
|
||||
window.addEventListener('scroll', function() {
|
||||
if (!ticking) {
|
||||
requestAnimationFrame(updateHeaderPosition);
|
||||
ticking = true;
|
||||
}
|
||||
}, { passive: true });
|
||||
|
||||
// Listen for resize events (in case topbar height changes)
|
||||
window.addEventListener('resize', function() {
|
||||
topbarHeight = topbar.offsetHeight;
|
||||
updateHeaderPosition();
|
||||
});
|
||||
}, { passive: true });
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- Additional Styles -->
|
||||
@stack('styles')
|
||||
|
||||
<!-- Domain-spezifische Fonts -->
|
||||
@if ($primaryFont === 'Inter' && $secondaryFont === 'IBM Plex Sans')
|
||||
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|ibm-plex-sans:400,500,600,700"
|
||||
rel="stylesheet" />
|
||||
@elseif($primaryFont === 'Inter' && $secondaryFont === 'Merriweather')
|
||||
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|merriweather:400,700" rel="stylesheet" />
|
||||
@elseif($primaryFont === 'Inter' && $secondaryFont === 'Ephesis')
|
||||
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|ephesis:400" rel="stylesheet" />
|
||||
@elseif($primaryFont === 'Inter' && $secondaryFont === 'EB Garamond')
|
||||
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|eb-garamond:400,500,600,700"
|
||||
rel="stylesheet" />
|
||||
@else
|
||||
<link href="https://fonts.bunny.net/css?family=inter:400,500,600,700|ibm-plex-sans:400,500,600,700"
|
||||
rel="stylesheet" />
|
||||
@endif
|
||||
</head>
|
||||
|
||||
<body class="antialiased bg-background text-foreground">
|
||||
|
||||
<!-- TopBar - statisch oben -->
|
||||
<livewire:web.components.ui.top-bar />
|
||||
{{-- GTM noscript (nur bei GTM-Nutzung) --}}
|
||||
<x-cookie-consent::gtm-noscript />
|
||||
|
||||
<!-- Announcement Bar -->
|
||||
<livewire:web.components.ui.announcement-bar />
|
||||
|
||||
{{-- TopBar (Backup: Sprachwechsel & Social Icons – folgt später) --}}
|
||||
{{-- <livewire:web.components.ui.top-bar /> --}}
|
||||
|
||||
@yield('content')
|
||||
|
||||
{{-- Cookie Consent Manager (vor Livewire-Scripts) --}}
|
||||
<x-cookie-consent::manager />
|
||||
|
||||
<!-- Additional Scripts -->
|
||||
@stack('scripts')
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Magazin Artikel - B2In')
|
||||
@section('title', 'Magazin Artikel - B2in')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'B2In Magazin - Insights & Trends')
|
||||
@section('title', 'B2in Magazin - Insights & Trends')
|
||||
@section('meta_description', 'Insights rund um Immobilien-Investments in Dubai, Einrichtungstrends & Supply-Chain-Strategien im B2in Magazin.')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
|
|
@ -19,11 +20,5 @@
|
|||
[x-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
{{-- Alpine.js wird zentral im Layout geladen --}}
|
||||
@endpush
|
||||
|
|
|
|||
183
resources/views/web/netzwerk.blade.php
Normal file
183
resources/views/web/netzwerk.blade.php
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Netzwerk & Ökosystem - B2in')
|
||||
@section('meta_description', 'Das B2in-Netzwerk: Europäisches Einrichtungsnetzwerk, Fachhändler-Partnerschaften & Marken-Kooperationen – in Entwicklung.')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
@php
|
||||
$hero = cms_theme_section('netzwerk_hero');
|
||||
$teasers = cms_theme_section('netzwerk_teasers');
|
||||
$cta = cms_theme_section('netzwerk_cta');
|
||||
$cabinet = cms_theme_section('netzwerk_cabinet_partner');
|
||||
$immobilienHint = cms_theme_section('netzwerk_immobilien_hint');
|
||||
@endphp
|
||||
|
||||
{{-- Hero --}}
|
||||
@if (!empty($hero))
|
||||
<section class="section-padding flex items-center relative border-b border-border/30">
|
||||
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20 bg-hero-container rounded-[20px] w-[95%]">
|
||||
<div class="grid lg:grid-cols-2 gap-16 items-center">
|
||||
<div class="space-y-8">
|
||||
<div class="slide-right delay-300">
|
||||
<h1 class="text-hero mb-6">
|
||||
{!! $hero['title'] !!}
|
||||
</h1>
|
||||
<p class="text-lg text-muted-foreground max-w-md leading-relaxed">
|
||||
{{ $hero['subtitle'] ?? '' }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative">
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-elevated slide-left delay-300">
|
||||
<x-web-picture
|
||||
src="{{ theme_image_url($hero['image'] ?? '') }}"
|
||||
alt="{{ $hero['image_alt'] ?? 'B2in Netzwerk & Ökosystem' }}"
|
||||
class="w-full h-[500px] object-cover"
|
||||
loading="" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
<livewire:web.components.sections.founder-bar />
|
||||
|
||||
{{-- Teaser-Kacheln --}}
|
||||
@if (!empty($teasers))
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="text-center mb-12 slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $teasers['title'] !!}</h2>
|
||||
</div>
|
||||
|
||||
<div class="grid md:grid-cols-3 gap-8 max-w-5xl mx-auto">
|
||||
@foreach ($teasers['cards'] ?? [] as $index => $card)
|
||||
<div class="card-elevated rounded-2xl p-8 text-center slide-up delay-{{ 300 + $index * 100 }}">
|
||||
<div class="inline-flex items-center justify-center w-16 h-16 rounded-full bg-secondary/10 text-secondary mb-6">
|
||||
@svg('heroicon-o-' . ($card['icon'] ?? 'squares-2x2'), 'w-8 h-8')
|
||||
</div>
|
||||
<h3 class="text-lg font-semibold text-foreground mb-3">{{ $card['title'] ?? '' }}</h3>
|
||||
<p class="text-sm text-muted-foreground leading-relaxed mb-6">{{ $card['description'] ?? '' }}</p>
|
||||
@if (isset($card['status']))
|
||||
<span class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-semibold bg-secondary/10 text-secondary">
|
||||
<span class="w-1.5 h-1.5 rounded-full bg-secondary animate-pulse"></span>
|
||||
{{ $card['status'] }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
<livewire:web.components.sections.image-break section="netzwerk_image_break" />
|
||||
|
||||
{{-- CABINET Premiumpartner --}}
|
||||
@if (! empty($cabinet))
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-6xl mx-auto">
|
||||
<div class="grid lg:grid-cols-2 gap-12 items-center">
|
||||
<div class="space-y-6 slide-right delay-300">
|
||||
@if (! empty($cabinet['badge'] ?? null))
|
||||
<div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-secondary/10 text-secondary text-sm font-semibold">
|
||||
<span class="w-2 h-2 rounded-full bg-secondary"></span>
|
||||
{{ $cabinet['badge'] }}
|
||||
</div>
|
||||
@endif
|
||||
@if (! empty($cabinet['title'] ?? null))
|
||||
<h2 class="text-section-title">
|
||||
{!! $cabinet['title'] !!}
|
||||
</h2>
|
||||
@endif
|
||||
@if (! empty($cabinet['lead'] ?? null))
|
||||
<p class="text-lg font-medium text-foreground">{{ $cabinet['lead'] }}</p>
|
||||
@endif
|
||||
@foreach ($cabinet['paragraphs'] ?? [] as $paragraph)
|
||||
<p class="text-muted-foreground leading-relaxed">{{ $paragraph }}</p>
|
||||
@endforeach
|
||||
</div>
|
||||
<div class="relative slide-left delay-300">
|
||||
<div class="card-elevated rounded-3xl overflow-hidden p-10 flex items-center justify-center bg-white min-h-[300px]">
|
||||
<img
|
||||
src="{{ theme_image_url($cabinet['image'] ?? 'b2in/cabinet_logo.png') }}"
|
||||
alt="{{ $cabinet['image_alt'] ?? 'CABINET' }}"
|
||||
class="max-w-xs w-full object-contain"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- Immobilien-Vorteil Hinweis --}}
|
||||
@if (! empty($immobilienHint))
|
||||
<section class="section-padding bg-accent">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto text-center slide-up delay-300">
|
||||
<div class="inline-flex items-center justify-center w-14 h-14 rounded-full bg-secondary/10 text-secondary mb-6">
|
||||
@svg('heroicon-o-building-office-2', 'w-7 h-7')
|
||||
</div>
|
||||
@if (! empty($immobilienHint['title'] ?? null))
|
||||
<h2 class="text-section-title">{!! $immobilienHint['title'] !!}</h2>
|
||||
@endif
|
||||
@if (! empty($immobilienHint['description'] ?? null))
|
||||
<p class="text-large text-muted-foreground mt-4 leading-relaxed">
|
||||
{{ $immobilienHint['description'] }}
|
||||
</p>
|
||||
@endif
|
||||
@if (! empty($immobilienHint['button_text'] ?? null))
|
||||
<div class="mt-8">
|
||||
<a href="{{ url($immobilienHint['button_link'] ?? '/immobilien') }}" class="btn-primary-accent px-8 py-4 text-lg">
|
||||
{{ $immobilienHint['button_text'] }}
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
||||
{{-- CTA --}}
|
||||
@if (!empty($cta))
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto text-center slide-up delay-300">
|
||||
<h2 class="text-section-title">{!! $cta['title'] !!}</h2>
|
||||
<p class="text-large text-muted-foreground mt-4 leading-relaxed">
|
||||
{{ $cta['text'] ?? '' }}
|
||||
</p>
|
||||
@if (isset($cta['button_text']))
|
||||
<div class="mt-8">
|
||||
<a href="{{ $cta['button_link'] ?? '/contact' }}"
|
||||
class="btn-primary-accent px-8 py-4 text-lg">
|
||||
{{ $cta['button_text'] }}
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'Partner werden - B2In Ecosystem')
|
||||
@section('title', 'Für Entwickler & Partner - B2in')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
|
|
@ -8,10 +8,13 @@
|
|||
|
||||
<main class="variante-glass-flow">
|
||||
<livewire:web.components.sections.partner-hero />
|
||||
<livewire:web.components.sections.card-section bg="bg-accent" section="partner_card_section" />
|
||||
<livewire:web.components.sections.benefits-section section="partner_benefits_retailer" />
|
||||
<livewire:web.components.sections.benefits-section section="partner_benefits_supplier" layout="right" bg="bg-accent" />
|
||||
<livewire:web.components.sections.benefits-section section="partner_benefits_broker" />
|
||||
<livewire:web.components.sections.founder-bar />
|
||||
<livewire:web.components.sections.content-section section="supply_chain_intro" layout="left" bg="bg-accent" />
|
||||
<livewire:web.components.sections.card-section section="partner_card_section" />
|
||||
<livewire:web.components.sections.benefits-section section="partner_benefits_developer" />
|
||||
<livewire:web.components.sections.benefits-section section="partner_benefits_retailer" layout="right" bg="bg-accent" />
|
||||
<livewire:web.components.sections.benefits-section section="partner_benefits_supplier" />
|
||||
<livewire:web.components.sections.benefits-section section="partner_benefits_broker" layout="right" bg="bg-accent" />
|
||||
<livewire:web.components.sections.partner-process />
|
||||
<livewire:web.components.sections.commitment-section />
|
||||
<livewire:web.components.sections.partner-c-t-a />
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@section('title', 'B2In Magazin - Insights & Trends')
|
||||
@section('title', 'B2in Magazin - Insights & Trends')
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
|
|
|
|||
50
resources/views/web/privacy.blade.php
Normal file
50
resources/views/web/privacy.blade.php
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@php
|
||||
$legal = legal_page('privacy');
|
||||
@endphp
|
||||
|
||||
@section('title', $legal['meta_title'] . ' - ' . ($domainName ?? config('app.name')))
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto">
|
||||
<h1 class="text-hero mb-8">{{ $legal['title'] }}</h1>
|
||||
<p class="text-muted-foreground text-sm mb-12">
|
||||
{{ $legal['subtitle'] }}
|
||||
</p>
|
||||
|
||||
<div class="prose-legal space-y-8 text-foreground">
|
||||
{!! $legal['content'] !!}
|
||||
</div>
|
||||
|
||||
{{-- Cookie-Einstellungen & Google-Analytics-Infos (CookieConsent-Paket) --}}
|
||||
<div class="prose-legal space-y-8 text-foreground">
|
||||
<x-cookie-consent::privacy-info />
|
||||
</div>
|
||||
|
||||
<div class="mt-12 pt-8 border-t border-border/30">
|
||||
<a href="{{ url()->previous() }}" class="text-secondary hover:underline text-sm">
|
||||
{{ $legal['back_link'] }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] { display: none !important; }
|
||||
.prose-legal a { transition: color 0.2s; }
|
||||
</style>
|
||||
@endpush
|
||||
45
resources/views/web/terms.blade.php
Normal file
45
resources/views/web/terms.blade.php
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@php
|
||||
$legal = legal_page('terms');
|
||||
@endphp
|
||||
|
||||
@section('title', $legal['meta_title'] . ' - ' . ($domainName ?? config('app.name')))
|
||||
|
||||
@section('content')
|
||||
<div class="bg-background">
|
||||
<livewire:web.components.ui.header />
|
||||
|
||||
<main class="variante-glass-flow">
|
||||
<section class="section-padding">
|
||||
<div class="container-padding">
|
||||
<div class="max-w-3xl mx-auto">
|
||||
<h1 class="text-hero mb-8">{{ $legal['title'] }}</h1>
|
||||
<p class="text-muted-foreground text-sm mb-12">
|
||||
{{ $legal['subtitle'] }}
|
||||
</p>
|
||||
|
||||
<div class="prose-legal space-y-8 text-foreground">
|
||||
{!! $legal['content'] !!}
|
||||
</div>
|
||||
|
||||
<div class="mt-12 pt-8 border-t border-border/30">
|
||||
<a href="{{ url()->previous() }}" class="text-secondary hover:underline text-sm">
|
||||
{{ $legal['back_link'] }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<livewire:web.components.ui.footer />
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<style>
|
||||
[x-cloak] { display: none !important; }
|
||||
.prose-legal a { transition: color 0.2s; }
|
||||
</style>
|
||||
@endpush
|
||||
Loading…
Add table
Add a link
Reference in a new issue