feat: recreate public frontend with Heritage Editorial identity

Replace placeholder visual system with EB Garamond/olive tokens, brand assets, editorial home narrative, São Paulo settings, real testimonials, and regenerated visual baselines.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-01 23:17:35 -03:00
parent 637be0664a
commit 9c43ad1d65
68 changed files with 1917 additions and 344 deletions

View File

@@ -1,36 +1,44 @@
@extends('layouts.public')
@section('content')
<div class="container-amare space-y-10">
<div class="max-w-2xl space-y-3">
<h1 class="text-4xl font-semibold text-amare-text">Serviços</h1>
<p class="text-lg text-amare-text-muted">Assessoria completa para casamentos e eventos corporativos.</p>
</div>
@if ($services->isEmpty())
<p class="text-amare-text-muted">Em breve publicaremos o catálogo de serviços.</p>
@else
<div class="grid gap-8 md:grid-cols-2">
@foreach ($services as $service)
<article class="space-y-3 border-t border-amare-border pt-6">
@if (filled($service->cover_image_path))
<x-media.image
:path="$service->cover_image_path"
:alt="$service->cover_image_alt ?: $service->title"
sizes="(max-width: 768px) 100vw, 50vw"
class="aspect-[16/10] w-full object-cover"
/>
@endif
<h2 class="text-2xl font-semibold text-amare-text">{{ $service->title }}</h2>
<p class="text-amare-text-muted">{{ $service->summary }}</p>
@if (filled($service->description))
<div class="prose prose-amare max-w-none text-amare-text-muted">
{!! nl2br(e($service->description)) !!}
</div>
@endif
</article>
@endforeach
<div class="border-b border-amare-border bg-amare-bg">
<div class="container-amare space-y-10 py-16 md:py-24">
<div class="max-w-2xl space-y-4">
<p class="text-xs font-semibold uppercase tracking-[0.14em] text-amare-accent">Serviços</p>
<h1 class="text-4xl font-medium tracking-tight text-amare-text md:text-5xl">Uma mesma excelência, diferentes ocasiões.</h1>
<p class="text-lg text-amare-muted">O escopo é construído de acordo com o momento do projeto, o nível de apoio necessário e a complexidade de cada evento.</p>
</div>
@endif
@if ($services->isEmpty())
<p class="text-amare-muted">Em breve publicaremos o catálogo de serviços.</p>
@else
<div class="divide-y divide-amare-border border-y border-amare-border">
@foreach ($services as $index => $service)
<article class="grid gap-4 py-8 md:grid-cols-[5rem_minmax(0,1fr)_minmax(0,1.2fr)] md:items-start">
<span class="text-sm font-semibold uppercase tracking-[0.14em] text-amare-accent">{{ str_pad((string) ($index + 1), 2, '0', STR_PAD_LEFT) }}</span>
<div class="space-y-3">
<h2 class="text-2xl font-medium text-amare-text md:text-3xl">{{ $service->title }}</h2>
<p class="text-amare-muted">{{ $service->summary }}</p>
</div>
<div class="space-y-4">
@if (filled($service->cover_image_path))
<x-media.image
:path="$service->cover_image_path"
:alt="$service->cover_image_alt ?: $service->title"
sizes="(max-width: 768px) 100vw, 40vw"
class="img-editorial aspect-[16/10] w-full object-cover"
/>
@endif
@if (filled($service->description))
<div class="text-amare-muted">
{!! nl2br(e($service->description)) !!}
</div>
@endif
</div>
</article>
@endforeach
</div>
@endif
</div>
</div>
@endsection