@extends('layouts.app') @php use App\Helpers\SeoHelper; $locale = app()->getLocale(); $homeContent = $homeContent ?? \App\Helpers\MarketContent::home($locale); $homeText = function (string $key, array $replace = []) use ($homeContent) { $value = data_get($homeContent, $key, data_get($homeContent, 'copy.' . $key, '')); foreach ($replace as $placeholder => $replacement) { $value = str_replace(':' . $placeholder, $replacement, (string) $value); } return $value; }; $pageSeo = $homeContent['metadata'] ?? []; // Helper function to generate localized routes (English has no prefix) $localizedRoute = function($routeName, $params = []) use ($locale) { return SeoHelper::localizedRoute($routeName, $params, $locale); }; // Get localized slug for service/industry URLs (translates English slug to current locale) $getLocalizedSlug = function($slug) use ($locale) { return \App\Helpers\SeoHelper::getTranslatedSlug($slug, $locale); }; @endphp @section('title', $pageSeo['title']) @section('meta_description', $pageSeo['description']) @section('meta_keywords', $pageSeo['keywords']) @section('og_image', isset($heroServices[0]['image']) ? $heroServices[0]['image'] : asset($pageSeo['image'] ?? 'images/og-home.jpg')) @push('head') {{-- Geo meta is output by layout (default PT) --}} {{-- Preload LCP Image for Performance --}} @if(isset($heroServices[0]['image'])) @endif @endpush @push('schema') {{-- LocalBusiness Schema for Homepage --}} {{-- FAQ Schema --}} @php $homeFaqs = [ ...array_slice($homeContent['faqs']['items'] ?? [], 0, 4), ]; @endphp {{-- WebPage Schema --}} @endpush @section('content') {{-- Hero Section - Clean Mobile-First Design --}}
{{-- Hero Content - Mobile-first responsive grid --}}
{{-- Left: Title --}}

{{ $homeText('hero.headline_1') }}
{{ $homeText('hero.headline_2') }}

{{-- Right: Description & CTA (aligned to bottom on desktop) --}}

{{ $homeText('hero.subheadline') }}

@if(false) {{-- Prominent CTAs - Desktop --}} {{-- Prominent CTAs - Mobile --}} @endif
{{-- Expandable Sliding Portfolio Cards with Images - Full Width --}}
{{-- Desktop: Flex layout, Mobile: Horizontal scroll --}}
@foreach($heroServices as $index => $card) @php $benefits = $card['benefits'] ?? []; @endphp @endforeach
{{-- Portfolio Showcase - Autoplay Slider with External Meta --}} @if(isset($projects) && count($projects) > 0)
{{-- Header --}}

{{ $homeText('portfolio.badge') }}

{{ $homeText('portfolio.title_1') }} {{ $homeText('portfolio.title_2') }}

{{ $homeText('portfolio.description') }}

{{-- Portfolio Slider Container --}}
{{-- Slider Wrapper --}}
@foreach($projects as $index => $project) @php $projectTk = 'messages.portfolio_projects.' . str_replace('-', '_', $project['slug'] ?? ''); // Brand/project name: always use canonical name from data — never translate or re-case $projectTitle = $project['title'] ?? ''; if (\App\Helpers\SeoHelper::requiresOwnPublicCopy($locale)) { $projectCategory = $project['category'] ?? ''; $projectSubtitle = $project['hero']['subtitle'] ?? ''; } else { $projectCategory = __($projectTk . '.category'); $projectCategory = ($projectCategory === $projectTk . '.category') ? ($project['category'] ?? '') : $projectCategory; $projectSubtitle = __($projectTk . '.subtitle'); $projectSubtitle = ($projectSubtitle === $projectTk . '.subtitle') ? ($project['hero']['subtitle'] ?? '') : $projectSubtitle; } @endphp
{{-- Image Card --}}
@if(isset($project['hero']['image'])) {{ SeoHelper::generateImageAlt($projectTitle, $projectCategory ?: $homeText('alt_text.portfolio_project_context'), 'Criazo ' . $homeText('alt_text.portfolio_case_study')) }} @else
@endif
{{-- Meta Information Outside Card (for SEO) --}}
{{-- Category (smaller, muted) --}} @if($projectCategory)

{{ $projectCategory }}

@endif {{-- Title (H3 for SEO) --}}

{{ $projectTitle }}

{{-- Description: use project data only so brand/place names (e.g. Promoto Service, Odivelas) keep correct capitalization in all locales --}} @php $projectDescription = $project['hero']['description'] ?? $projectSubtitle ?? ($project['overview']['solution'] ?? null); @endphp @if($projectDescription)

{{ $projectDescription }}

@else

{{ __('messages.portfolio.project_description_fallback', ['category' => strtolower($projectCategory ?: __('messages.portfolio.digital_solution'))]) }}

@endif {{ $homeText('portfolio.view_project') }}
@endforeach
{{-- Navigation Arrows --}}
{{-- Mobile CTA --}}
@endif {{-- Industries Highlights Carousel --}} @php $localeBase = strtolower((string) \Illuminate\Support\Str::of((string) app()->getLocale())->before('_')->before('-')); $translateIndustryFallbackLabel = static function (string $label, string $locale): string { $trimmed = trim($label); if ($trimmed === '' || $locale === 'en') { return $trimmed; } $taxonomyTranslations = config("industry_taxonomy_translations.{$locale}", []); if (isset($taxonomyTranslations[$trimmed])) { return $taxonomyTranslations[$trimmed]; } $slug = str_replace('-', '_', \Illuminate\Support\Str::slug($trimmed)); $overrides = [ 'pt' => [ 'food_beverage' => 'Restauração e Bebidas', 'home_local_services' => 'Serviços Locais e para Casa', 'coffee_shops' => 'Cafetarias', 'brunch_spots' => 'Espaços de brunch', ], 'es' => [ 'food_beverage' => 'Restauración y Bebidas', 'home_local_services' => 'Servicios Locales y del Hogar', 'coffee_shops' => 'Cafeterías', 'brunch_spots' => 'Espacios de brunch', ], ]; return $overrides[$locale][$slug] ?? $trimmed; }; $translateIndustryLabel = static function (?string $routeName, ?string $childSlug, string $fallbackLabel) use ($localeBase, $translateIndustryFallbackLabel): string { if (!is_string($routeName) || trim($routeName) === '') { return $translateIndustryFallbackLabel($fallbackLabel, $localeBase); } $base = str_replace('.', '_', preg_replace('/\.child$/', '', $routeName)); $namespace = $childSlug !== null && trim($childSlug) !== '' ? $base . '_' . str_replace('-', '_', \Illuminate\Support\Str::slug($childSlug)) : $base; $key = "messages.{$namespace}.hero_eyebrow"; $translated = __($key); if ($translated !== $key && trim((string) $translated) !== '') { if ( $localeBase !== 'en' && ( trim((string) $translated) === trim($fallbackLabel) || \Illuminate\Support\Str::slug((string) $translated) === \Illuminate\Support\Str::slug($fallbackLabel) ) ) { return $translateIndustryFallbackLabel($fallbackLabel, $localeBase); } return $translated; } return $translateIndustryFallbackLabel($fallbackLabel, $localeBase); }; $industryCarouselItems = []; foreach (config('industry_taxonomy', []) as $section) { $routeName = $section['route'] ?? null; if (!is_string($routeName) || trim($routeName) === '') { continue; } $sectionLabel = $translateIndustryLabel($routeName, null, $section['label'] ?? 'Industry'); $sectionNs = 'messages.' . str_replace('.', '_', $routeName); $sectionDescription = __($sectionNs . '.meta_description'); if ($sectionDescription === $sectionNs . '.meta_description') { $sectionDescription = $homeText('industries.for_industry', ['industry' => $sectionLabel]); } $highlights = []; $childRoute = $section['child_route'] ?? null; foreach (array_slice($section['items'] ?? [], 0, 3) as $item) { if (is_string($item)) { $slug = \Illuminate\Support\Str::slug($item); $highlights[] = [ 'slug' => $slug, 'label' => $translateIndustryLabel($childRoute, $slug, $item), ]; continue; } if (!is_array($item)) { continue; } $slug = $item['child'] ?? \Illuminate\Support\Str::slug($item['label'] ?? ''); $highlights[] = [ 'slug' => $slug, 'label' => $translateIndustryLabel($childRoute, $slug, $item['label'] ?? ''), ]; } $industryCarouselItems[] = [ 'label' => $sectionLabel, 'route' => $routeName, 'description' => \Illuminate\Support\Str::limit(strip_tags((string) $sectionDescription), 130), 'highlights' => $highlights, ]; } @endphp @if(!empty($industryCarouselItems))

{{ $homeText('industries.title_1') }} {{ $homeText('industries.title_2') }}

{{ $homeText('industries.description') }} {{ $homeText('industries.description_2') }}

@foreach($industryCarouselItems as $industryCard) @endforeach
@endif {{-- How It Works - Hidden for now (not adding enough value). Re-enable by changing @if(false) to @if(true) --}} @if(false)
{{ $homeText('process.badge') }}

{{ $homeText('process.title') }}

{{ $homeText('process.description') }}

{{ $homeText('process.steps.0.title') }}

{{ $homeText('process.steps.0.text') }}

{{ $homeText('process.steps.1.title') }}

{{ $homeText('process.steps.1.text') }}

{{ $homeText('process.steps.2.title') }}

{{ $homeText('process.steps.2.text') }}

@endif {{-- Testimonials Section --}} @if(isset($testimonials) && count($testimonials) > 0)
{{-- Header --}}

{{ $homeText('testimonials.badge') }}

{{ $homeText('testimonials.title_1') }} {{ $homeText('testimonials.title_2') }}

{{ $homeText('testimonials.description') }}

@php $testimonialsList = array_slice($testimonials, 0, 6); @endphp {{-- Testimonials Carousel --}}
@foreach($testimonialsList as $index => $testimonial)
{{-- Header: Icon + Rating --}}
{{-- Quote --}}
"{{ $testimonial['content'] }}"
{{-- Author --}}
{{ strtoupper(substr($testimonial['name'], 0, 1)) }}

{{ $testimonial['name'] }}

@if(isset($testimonial['company']))

{{ $testimonial['company'] }}

@endif
@endforeach
{{-- Navigation Arrows --}}
@endif {{-- FAQ Section - hidden for now --}} @if(false)
{{ $homeText('faqs.badge') }}

{{ $homeText('faqs.title_1') }} {{ $homeText('faqs.title_2') }}

{{ $homeText('faqs.description') }}

@php $faqs = $homeContent['faqs']['items'] ?? []; @endphp @foreach($faqs as $index => $faq)
@endforeach
@endif {{-- Why Choose Criazo Section --}} @if(isset($aboutUs))
{{ $homeText('why.badge') }}

{{ $homeText('why.title_1') }}
{{ $homeText('why.title_2') }}

{{ $homeText('why.description_1') }} {{ $homeText('why.highlight_1') }} {{ $homeText('why.description_2') }}

{{ $homeText('why.description_3') }} {{ $homeText('why.highlight_2') }}

{{-- Values - Enhanced Design --}} @if(isset($aboutUs['values']))
@foreach($aboutUs['values'] as $index => $value)

{{ $value['title'] }}

{{ $value['description'] }}

@endforeach
@endif
@endif {{-- Final CTA Section --}}

{{ $homeText('cta.title') }}

{{ $homeText('cta.description_1') }} {{ $homeText('cta.description_2') }} {{ $homeText('cta.highlight') }} {{ $homeText('cta.description_3') }}

{{-- Trust Indicators --}}
{{ $homeText('cta.trust.0') }}
{{ $homeText('cta.trust.1') }}
{{ $homeText('cta.trust.2') }}
@push('styles') @endpush @push('scripts') @endpush @endsection