@php $centre = config('site.centre'); $statuses = [ 'available' => ['label' => 'Box disponibles', 'class' => 'bg-available'], 'limited' => ['label' => 'Derniers box disponibles', 'class' => 'bg-limited'], 'unavailable' => ['label' => 'Complet', 'class' => 'bg-unavailable'], ]; $status = $statuses[$centre['status']]; // Photos : utilisées seulement si le fichier existe réellement dans public/ $exists = fn (?string $path) => $path && file_exists(public_path($path)) ? $path : null; $heroImage = $exists(config('site.hero_image')); $centreImage = $exists($centre['image'] ?? null); $reviews = config('site.reviews'); // FAQ structurée : Google peut afficher les questions directement dans ses résultats. $faqSchema = [ '@context' => 'https://schema.org', '@type' => 'FAQPage', 'mainEntity' => collect(config('site.faq')) ->map(fn (array $item) => [ '@type' => 'Question', 'name' => $item['q'], 'acceptedAnswer' => [ '@type' => 'Answer', // Le balisage attend du texte lisible, pas la mise en forme. 'text' => trim(preg_replace('/\s+/', ' ', strip_tags($item['a']))), ], ]) ->all(), ]; @endphp {{-- ================= HERO ================= --}}
{{-- Décor : graphite dominant, ponctué de turquoise --}}

Particuliers ou professionnels

Votre solution
de self-stockage

Louez votre box et stockez vos biens en toute sécurité. Accès libre 24h/24 et 7j/7, sans engagement.

{{-- ================= SIMULATEUR (bande turquoise) ================= --}}
Calculer mon volume de stockage
{{-- ================= NOTRE CENTRE ================= --}}

Notre centre et nos tarifs

Votre box de stockage à {{ $centre['city'] }}

@if ($centreImage) {{ $centre['image_alt'] }} @else {{-- Aucune photo déposée dans public/images : repli sur l'illustration --}} @endif {{ $status['label'] }}

{{ $centre['name'] }}

Adresse
{{ $centre['street'] }}
{{ $centre['postal_code'] }} {{ mb_strtoupper($centre['city']) }} @if (! empty($centre['landmark'])) {{ $centre['landmark'] }} @endif
Accès
{{ $centre['access'] }}
Nous joindre
@foreach (config('site.contacts') as $contact) {{ $contact['name'] }} — {{ $contact['phone'] }} @endforeach {{ config('site.visits') }}
{{-- ================= 3 ÉTAPES ================= --}}

En 3 étapes

Réservez, récupérez vos clés et accédez à votre box

    @foreach (config('site.steps') as $i => $step)
  1. {{ $i + 1 }}

    {{ $step['title'] }}

    {!! $step['text'] !!}

  2. @endforeach
{{-- ================= POURQUOI NOUS CHOISIR ================= --}}

Professionnels ou particuliers

Pourquoi nous choisir ?

@foreach (config('site.advantages') as $advantage) @php $tag = empty($advantage['url']) ? 'div' : 'a'; @endphp <{{ $tag }} @if (! empty($advantage['url'])) href="{{ $advantage['url'] }}" target="_blank" rel="noopener" @endif class="group flex flex-col bg-ink p-8 transition-colors duration-200 hover:bg-brand">

{{ $advantage['title'] }}

@if (! empty($advantage['note']))

{{ $advantage['note'] }}

@endif @endforeach
{{-- ================= AVIS GOOGLE ================= --}}

Ils nous font confiance

Les 10 derniers avis Google

{{ number_format($reviews['rating'], 1, ',', ' ') }}

@if ($reviews['count'] > 0) sur {{ $reviews['count'] }} avis Google @else Avis Google @endif

{{-- Flèches : le rail reste défilable au doigt et à la molette sans elles --}}
{{-- Rail horizontal : 10 avis sans casser la grille, barre de défilement masquée --}}
    @foreach ($reviews['items'] as $review)
  • {{-- Guillemet décoratif --}}
    {{ $review['text'] }}
    {{-- Initiale de l'auteur, faute de photo : la saisie manuelle n'en fournit pas --}} {{ mb_strtoupper(mb_substr($review['author'], 0, 1)) }} {{ $review['author'] }} {{ $review['date'] }}@if (! empty($review['visit'])) · {{ $review['visit'] }}@endif
  • @endforeach
Voir tous les avis sur Google

Faites glisser pour parcourir les avis →

{{-- ================= FAQ ================= --}}

Besoin d’aide ?

Questions fréquentes

@foreach (config('site.faq') as $item)
{{ $item['q'] }}
{!! $item['a'] !!}
@endforeach