{{# Prices Page Template #}} {{# Hero #}}

{{ hero_title ?? title }}

{{ if hero_subtitle }}

{{ hero_subtitle }}

{{ /if }}
{{# Pricing state — data is pre-encoded JSON (built by view composer); methods added in JS. Uses object-spread (not Object.assign) so `get plans()` is attached as a real getter — Object.assign would invoke the getter during copy and lose the binding to `this`. #}} {{# Pricing Section #}}
{{# Property Type Toggle #}}
{{# Hotel Period Selector #}}
{{ trans:messages.price_billing_period }}
{{# Apartment Count Selector #}}
{{ trans:messages.price_num_apartments }}
{{# Pricing Cards #}}
{{# Footnote #}}

{{ trans:messages.price_footnote }}

{{# Comparison-table labels — stashed on window so Alpine's x-data can spread them. Inlining the JSON directly into the attribute produced "Unexpected token" errors because the HTML-attribute parser doesn't process Unicode escapes the way a {{# Feature Comparison Table #}}

{{ trans:messages.price_compare_title }}

{{ trans:messages.price_compare_subtitle }}

{{# Tab toggle for comparison #}}
{{# Free tier features #}} {{# Standard tier additions #}} {{# Ultra tier additions #}} {{# Pricing row #}}
{{ trans:messages.price_compare_feature_column }} {{ trans:messages.price_plan_free }} {{ trans:messages.price_plan_standard }} {{ trans:messages.price_plan_ultra }}
{{ trans:messages.price_compare_section_core }}
{{ trans:messages.price_feat_basic_system }}
{{ trans:messages.price_feat_booking_module }}
{{ trans:messages.price_feat_reports }}
{{ trans:messages.price_feat_support }}
{{ trans:messages.price_compare_section_distribution }}
{{ trans:messages.price_feat_channel_manager }}
{{ trans:messages.price_feat_web_analytics }}
{{ trans:messages.price_compare_section_advanced }}
{{ trans:messages.price_feat_housekeeping }}
{{ trans:messages.price_feat_wifi }}
{{ trans:messages.price_feat_reputation }}
$0
{{# CTA — full-bleed parallax background matching the page's hero #}}

{{ trans:messages.prices_cta_title }}

{{ trans:messages.prices_cta_subtitle }}

{{ trans:messages.nav_free_trial }}