@extends('marketing.layout') @section('title', __('marketing.light_page_title', ['app' => $appName])) @section('description', __('marketing.light_page_description')) @push('head') @endpush @section('content') @php // All text fields resolve via LandingContent::t() so the current // locale's translation (if any) overrides English automatically. $heroEyebrow = $content->t('hero_eyebrow') ?: __('marketing.light.hero_eyebrow'); $heroHeadline = $content->t('hero_headline') ?: __('marketing.light.hero_headline'); $heroHighlight = $content->t('hero_headline_highlight') ?: __('marketing.light.hero_highlight'); $heroSubtext = $content->t('hero_subtext') ?: __('marketing.light.hero_subtext'); $heroCtaLabel = $content->t('hero_cta_label') ?: __('marketing.light.hero_cta', ['days' => $trialDays]); $heroNote = $content->t('hero_note') ?: __('marketing.light.hero_note'); $featuresHeadline = $content->t('features_headline') ?: __('marketing.light.features_headline'); $featuresSubtext = $content->t('features_subtext') ?: __('marketing.light_features_subtext'); $defaultFeatures = [ ['title' => __('marketing.light_feat1_title'), 'body' => __('marketing.light_feat1_body')], ['title' => __('marketing.light_feat2_title'), 'body' => __('marketing.light_feat2_body')], ['title' => __('marketing.light_feat3_title'), 'body' => __('marketing.light_feat3_body')], ['title' => __('marketing.light_feat4_title'), 'body' => __('marketing.light_feat4_body')], ['title' => __('marketing.light_feat5_title'), 'body' => __('marketing.light_feat5_body')], ['title' => __('marketing.light_feat6_title'), 'body' => __('marketing.light_feat6_body')], ['title' => __('marketing.light_feat7_title'), 'body' => __('marketing.light_feat7_body')], ['title' => __('marketing.light_feat8_title'), 'body' => __('marketing.light_feat8_body')], ['title' => __('marketing.light_feat9_title'), 'body' => __('marketing.light_feat9_body')], ]; $features = ! empty($content->features) ? $content->features : $defaultFeatures; $pricingHeadline = $content->t('pricing_headline') ?: __('marketing.light.pricing_headline'); $pricingSubtext = $content->t('pricing_subtext') ?: __('marketing.light_pricing_subtext'); $ctaHeadline = $content->t('cta_headline') ?: __('marketing.light.cta_headline'); $ctaSubtext = $content->t('cta_subtext') ?: __('marketing.light_cta_subtext'); @endphp {{-- ── Hero ─────────────────────────────────────────────────── --}}
{{ $heroEyebrow }}

{{ $heroHeadline }} {{ $heroHighlight }}

{{ $heroSubtext }}

{{ $heroNote }}

{{-- ── Above-the-fold product mockup ──────────────────── CSS-drawn workspace preview. Gives the visitor an immediate "this is what it looks like" without needing a real screenshot. --}}
https://app.{{ parse_url(config('app.url'), PHP_URL_HOST) ?: 'leadhub.com' }}/leads
{{ __('marketing.light_mockup_nav_leads') }} {{ __('marketing.light_mockup_count_active') }}
{{ __('marketing.light_mockup_btn_new_lead') }}
{{ __('marketing.light_mockup_col_new') }}12
{{ __('marketing.light_mockup_card_acme') }} {{ __('marketing.light_mockup_card_acme_meta') }}
{{ __('marketing.light_mockup_tag_hot') }}
{{ __('marketing.light_mockup_card_globex') }} {{ __('marketing.light_mockup_card_globex_meta') }}
{{ __('marketing.light_mockup_card_initech') }} {{ __('marketing.light_mockup_card_initech_meta') }}
{{ __('marketing.light_mockup_tag_warm') }}
{{ __('marketing.light_mockup_col_qualified') }}8
{{ __('marketing.light_mockup_card_stark') }} {{ __('marketing.light_mockup_card_stark_meta') }}
{{ __('marketing.light_mockup_tag_enterprise') }}
{{ __('marketing.light_mockup_card_wayne') }} {{ __('marketing.light_mockup_card_wayne_meta') }}
{{ __('marketing.light_mockup_col_won') }}5
{{ __('marketing.light_mockup_card_umbrella') }} {{ __('marketing.light_mockup_card_umbrella_meta') }}
$48K
{{ __('marketing.light_mockup_card_piedpiper') }} {{ __('marketing.light_mockup_card_piedpiper_meta') }}
{{-- ── Features ──────────────────────────────────────────── --}}
{{ __('marketing.light_everything_included') }}

{{ $featuresHeadline }}

{{ $featuresSubtext }}

@foreach($features as $feature)

{{ $feature['title'] ?? '' }}

{{ $feature['body'] ?? '' }}

@endforeach
{{-- ── Stats ────────────────────────────────────────────── Each tile prefers the SA-edited override from LandingContent when present; falls back to the translator key shipped in lang//marketing.php (which existing installs see). SuperAdmin edits live at /super-admin/landing-page-editor → Stats tab and persist via the `landing` settings group. --}} @php $stat1n = filled($content->stat1_number) ? $content->stat1_number : __('marketing.light_stat1_n'); $stat1l = filled($content->stat1_label) ? $content->stat1_label : __('marketing.light_stat1_l'); $stat2n = filled($content->stat2_number) ? $content->stat2_number : __('marketing.light_stat2_n'); $stat2l = filled($content->stat2_label) ? $content->stat2_label : __('marketing.light_stat2_l'); // Stat 3 has no light_stat3_n lang key — the original blade // hard-coded "∞". Keep that as the SA-overrideable fallback. $stat3n = filled($content->stat3_number) ? $content->stat3_number : '∞'; $stat3l = filled($content->stat3_label) ? $content->stat3_label : __('marketing.light_stat3_l'); $stat4n = filled($content->stat4_number) ? $content->stat4_number : __('marketing.light_stat4_n'); $stat4l = filled($content->stat4_label) ? $content->stat4_label : __('marketing.light_stat4_l'); @endphp
{{ $stat1n }}
{{ $stat1l }}
{{ $stat2n }}
{{ $stat2l }}
{{ $stat3n }}
{{ $stat3l }}
{{ $stat4n }}
{{ $stat4l }}
{{-- ── Pricing ──────────────────────────────────────────── --}} @if($plans && count($plans) > 0)
{{ __('marketing.light_transparent_pricing') }}

{{ $pricingHeadline }}

{{ $pricingSubtext }}

@foreach($plans as $key => $plan) @php $isPop = $plan['highlight'] ?? false; @endphp
@if($isPop)
{{ __('marketing.light_most_popular') }}
@endif

{{ $plan['name'] }}

{{ $plan['description'] ?? '' }}

@php // Translator-first interval label so "/month" respects tenant locale. $ltIntervalSlug = $plan['interval'] ?? 'month'; $ltKey = 'marketing.interval_' . $ltIntervalSlug; $ltTrans = __($ltKey); $ltIntervalLbl = (is_string($ltTrans) && $ltTrans !== $ltKey) ? $ltTrans : __('marketing.light_per_month'); @endphp
{{ \App\Support\Currency::format((float) $plan['price'], $plan['currency'] ?? \App\Support\Currency::default()) }} / {{ $ltIntervalLbl }}
    @foreach(array_slice($plan['features'] ?? [], 0, 6) as $feat => $on) @if($on) @php // Translator-first feature label so the marketing landing // respects locale. Reuses the billing_portal feature keys. $mkFeatKey = 'filament/billing_portal.feature_' . $feat; $mkFeatTrans = __($mkFeatKey); $mkFeatLabel = is_string($mkFeatTrans) && $mkFeatTrans !== $mkFeatKey ? $mkFeatTrans : ucwords(str_replace('_', ' ', (string) $feat)); @endphp
  • {{ $mkFeatLabel }}
  • @endif @endforeach
@if($canSignUp) @php $lightIsPaid = ((float) ($plan['price'] ?? 0)) > 0; @endphp {{ $lightIsPaid ? __('marketing.light_choose_plan') : __('marketing.light_start_trial') }} @else {{ __('marketing.light_signin') }} @endif
@endforeach
@endif {{-- ── Closing CTA ─────────────────────────────────────── --}}

{{ $ctaHeadline }}

{{ $ctaSubtext }}

@if($canSignUp) {{ __('marketing.light_cta_create') }} @else {{ __('marketing.light_signin') }} @endif
{{-- Rich footer moved into marketing/layout.blade.php so every public page (home, pricing, docs, static pages) shares the same dark-card footer treatment. All toggles (show brand, show static pages, show social, individual URL overrides) still live on LandingContent and are read by the layout. --}} {{-- ── Scroll-reveal + nav-shadow JS ────────────────────── IntersectionObserver flips .reveal → .is-visible as each element enters the viewport. Nav gets a tighter shadow once the user scrolls past the hero. --}} @endsection