PageSourceSearch

https://getproperly.com/pricing

html getproperly.com collected 2026-10-02 11:09:11 UTC 181,213 bytes, 469 lines download raw bytes

1<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"><link rel="help" type="text/plain" href="/llms.txt"><link rel="help" type="text/plain" href="/llms-full.txt"><!-- GA4 Consent Mode v2 — MUST be first script before any GA/GTM loading -->
1<script>(function(){const analyticsContentGroup = "pricing";
2const analyticsLocale = "en";
3const analyticsTagId = "GT-NBXPWL5";
4
5      /* eslint-disable prefer-rest-params */
6      window.dataLayer = window.dataLayer || [];
7      function gtag() {
8        dataLayer.push(arguments);
9      }
10      window.gtag = gtag;
11      // Global default: analytics ON by default; ad signals are not used.
12      gtag('consent', 'default', {
13        analytics_storage: 'granted',
14        ad_storage: 'denied',
15        ad_user_data: 'denied',
16        ad_personalization: 'denied',
17      });
18      // EU/EEA + UK + Switzerland: deny everything by default until the visitor opts in
19      // (Necessary or Accept all). GDPR/ePrivacy require prior consent for analytics here.
20      gtag('consent', 'default', {
21        region: [
22          'AT',
23          'BE',
24          'BG',
25          'HR',
26          'CY',
27          'CZ',
28          'DK',
29          'EE',
30          'FI',
31          'FR',
32          'DE',
33          'GR',
34          'HU',
35          'IE',
36          'IT',
37          'LV',
38          'LT',
39          'LU',
40          'MT',
41          'NL',
42          'PL',
43          'PT',
44          'RO',
45          'SK',
46          'SI',
47          'ES',
48          'SE',
49          'IS',
50          'LI',
51          'NO',
52          'GB',
53          'CH',
54        ],
55        analytics_storage: 'denied',
56        ad_storage: 'denied',
57        ad_user_data: 'denied',
58        ad_personalization: 'denied',
59        wait_for_update: 500,
60      });
61      // Restore saved consent before the initial GA config/pageview is queued.
62      // Stored values:
63      //   'accepted'              -> analytics consent, ad signals denied
64      //   'essential'/'analytics' -> analytics only, ad signals denied
65      //   'rejected' (legacy)     -> all denied; honor prior opt-outs
66      const consentCookie = (document.cookie.match(/(^|; )properly_consent=([^;]*)/) || [])[2];
67      if (consentCookie === 'accepted') {
68        gtag('consent', 'update', {
69          analytics_storage: 'granted',
70          ad_storage: 'denied',
71          ad_user_data: 'denied',
72          ad_personalization: 'denied',
73        });
74      } else if (consentCookie === 'essential' || consentCookie === 'analytics') {
75        gtag('consent', 'update', {
76          analytics_storage: 'granted',
77          ad_storage: 'denied',
78          ad_user_data: 'denied',
79          ad_personalization: 'denied',
80        });
81      } else if (consentCookie === 'rejected') {
82        gtag('consent', 'update', {
83          analytics_storage: 'denied',
84          ad_storage: 'denied',
85          ad_user_data: 'denied',
86          ad_personalization: 'denied',
87        });
88      }
89      gtag('js', new Date());
90      const analyticsPageLocation = window.location.href.split('#')[0];
91      gtag('set', 'user_properties', { locale: analyticsLocale });
92      gtag('config', analyticsTagId, {
93        send_page_view: true,
94        page_location: analyticsPageLocation,
95        content_group: analyticsContentGroup,
96        linker: {
97          domains: [
98            'app.getproperly.com',
99            'getproperly.com',
100            'help.getproperly.com',
101            'findacleaner.getproperly.com',
102          ],
103        },
104      });
105      /* eslint-enable prefer-rest-params */
106    })();</script>
106<!-- Preconnect to Google Fonts for faster font loading --><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><!-- Google Fonts: Plus Jakarta Sans (headings), DM Sans (body), JetBrains Mono (mono/stats) --><!-- Preload critical font (headings) for LCP, async-load the full stylesheet --><link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500;600;700&display=swap"><link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet" media="print" onload="this.media='all'"><noscript><link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet"></noscript><!-- DNS prefetch for external domains --><link rel="dns-prefetch" href="https://app.getproperly.com"><link rel="dns-prefetch" href="https://images.getproperly.com"><link rel="dns-prefetch" href="https://bookings.zoho.com"><link rel="dns-prefetch" href="https://www.youtube.com"><link rel="dns-prefetch" href="https://i.ytimg.com"><link rel="dns-prefetch" href="https://widget.intercom.io"><link rel="dns-prefetch" href="https://www.googletagmanager.com"><!-- Favicon --><link rel="icon" type="image/x-icon" href="/favicon.ico"><!-- SEO Head --><!-- Primary Meta --><title>Pricing — Plans for Every Host | Properly</title> <meta name="description" content="Properly pricing: SaaS Platform from $12.99/property/month, Real-Time Inspection at $5/inspection, Cohost Pro from $119/active property/month, Guest Support Plus at $149/listing/month, and demo-scoped Actionable Intelligence AI onboarding. The 30-day trial is Platform-only."> <link rel="canonical" href="https://getproperly.com/pricing">  <!-- Open Graph --> <meta property="og:type" content="website"> <meta property="og:title" content="Pricing — Plans for Every Host | Properly"> <meta property="og:description" content="Properly pricing: SaaS Platform from $12.99/property/month, Real-Time Inspection at $5/inspection, Cohost Pro from $119/active property/month, Guest Support Plus at $149/listing/month, and demo-scoped Actionable Intelligence AI onboarding. The 30-day trial is Platform-only."> <meta property="og:image" content="https://getproperly.com/images/og-default.jpg"> <meta property="og:url" content="https://getproperly.com/pricing"> <meta property="og:site_name" content="Properly"> <!-- Twitter Card --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@GetProperly"> <meta name="twitter:creator" content="@GetProperly"> <meta name="twitter:title" content="Pricing — Plans for Every Host | Properly"> <meta name="twitter:description" content="Properly pricing: SaaS Platform from $12.99/property/month, Real-Time Inspection at $5/inspection, Cohost Pro from $119/active property/month, Guest Support Plus at $149/listing/month, and demo-scoped Actionable Intelligence AI onboarding. The 30-day trial is Platform-only."> <meta name="twitter:image" content="https://getproperly.com/images/og-default.jpg"> <!-- Hreflang — only emitted when the page has localized variants. English-only
107     pages (e.g. /careers) skip these so we don't advertise URLs that 404. --> <link rel="alternate" hreflang="en" href="https://getproperly.com/pricing"><link rel="alternate" hreflang="fr" href="https://getproperly.com/fr/pricing"><link rel="alternate" hreflang="de" href="https://getproperly.com/de/pricing"><link rel="alternate" hreflang="it" href="https://getproperly.com/it/pricing"><link rel="alternate" hreflang="pt-BR" href="https://getproperly.com/pt-br/pricing"><link rel="alternate" hreflang="es" href="https://getproperly.com/es/pricing"><link rel="alternate" hreflang="hr" href="https://getproperly.com/hr/pricing"><link rel="alternate" hreflang="ru" href="https://getproperly.com/ru/pricing"> <link rel="alternate" hreflang="x-default" href="https://getproperly.com/pricing"> <!-- JSON-LD Structured Data --> 
107<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"SoftwareApplication","name":"Properly Platform","applicationCategory":"BusinessApplication","operatingSystem":"Web, iOS, Android","offers":[{"@type":"AggregateOffer","name":"Platform Standard","description":"Self-service SaaS platform with checklists, scheduling, marketplace, Airbnb + iCal sync. Volume-tiered pricing.","lowPrice":"5","highPrice":"12.99","priceCurrency":"USD","offerCount":4,"url":"https://getproperly.com/pricing"},{"@type":"AggregateOffer","name":"Platform Pro","description":"Everything in Standard plus direct API integration with Guesty, Hostaway, and 10+ PMS platforms.","lowPrice":"6","highPrice":"14.99","priceCurrency":"USD","offerCount":4,"url":"https://getproperly.com/pricing"}],"featureList":["Unlimited photo uploads","Unlimited checklists","Free checklist templates","Unlimited notifications","Web, iOS, and Android apps","Unlimited service providers","8-language support","Unlimited booking syncing","30-day free trial"]},{"@type":"Service","name":"Properly Actionable Intelligence","description":"AI-assisted property onboarding that turns a walkthrough video into a structured property record and operating workflows. Pricing is scoped through a demo.","url":"https://getproperly.com/actionable-intelligence","potentialAction":{"@type":"ViewAction","name":"Book an Actionable Intelligence demo","target":"https://getproperly.com/book-demo?product=actionable-intelligence&topic=onboarding"}},{"@type":"Service","name":"Properly Real-Time Inspection","description":"Standalone expert and AI photo verification for every turnover.","offers":{"@type":"Offer","priceSpecification":{"@type":"UnitPriceSpecification","price":"5","priceCurrency":"USD","unitText":"inspection"},"url":"https://getproperly.com/real-time-inspection"}},{"@type":"Service","name":"Properly Guest Support Plus","description":"Flat-rate managed guest operations for individual hosts at $149 per listing per month, plus a one-time $249 onboarding fee. Optional add-ons are priced separately.","offers":{"@type":"Offer","priceSpecification":{"@type":"UnitPriceSpecification","price":"149","priceCurrency":"USD","unitText":"listing/month"},"url":"https://getproperly.com/co-host-owners"}},{"@type":"Service","name":"Properly Cohost Pro","description":"Managed remote operations for property managers from $119 per active property per month, plus a $499 portfolio fee and $59 per-property implementation fee.","offers":{"@type":"Offer","priceSpecification":{"@type":"UnitPriceSpecification","price":"119","priceCurrency":"USD","unitText":"active property/month"},"eligibleQuantity":{"@type":"QuantitativeValue","minValue":10,"maxValue":24,"unitText":"active properties"},"url":"https://getproperly.com/co-host"}}]}</script>
107<link rel="stylesheet" href="/_astro/Footer.BognTUcR.css"><style>.faq-item summary{list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item[open] .faq-chevron{transform:rotate(180deg)}
108</style>
108<script type="module" src="/_astro/page.BZqDKivF.js"></script>
108</head> <body class="bg-white text-gray-900 font-body antialiased">   <a href="#main-content" class="sr-only focus:not-sr-only focus:fixed focus:top-4 focus:left-4 focus:z-[100] focus:bg-white focus:px-4 focus:py-2 focus:rounded-lg focus:shadow-lg focus:text-primary-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2"> Skip to content </a> <header id="site-header" class="fixed top-0 left-0 right-0 z-50 transition-all duration-500" role="banner"> <!-- Background — frosted glass on scroll --><div id="header-bg" class="absolute inset-0 transition-all duration-500 border-b border-transparent"></div> <nav class="relative mx-auto flex h-[72px] max-w-[1280px] items-center justify-between px-5 max-[374px]:px-4 sm:px-8 lg:px-10" aria-label="Main navigation"> <!-- Logo --><a href="/" class="relative z-10 flex items-center gap-2.5 no-underline hover:no-underline shrink-0 group" aria-label="Properly home"> <img src="/images/properly-logo-horizontal.png" alt="Properly: Vacation Rental Quality Management" width="224" height="50" loading="eager" fetchpriority="high" class="h-[25px] max-[359px]:h-5.5 w-auto transition-opacity duration-200 group-hover:opacity-80"> </a> <!-- Desktop Navigation — centered --> <div class="hidden lg:flex lg:items-center lg:gap-0.5 xl:gap-1"> <div class="nav-dropdown group relative" data-dropdown> <button class="nav-trigger relative flex items-center gap-1 px-2.5 xl:px-3.5 py-2 text-[13px] xl:text-[13.5px] font-medium tracking-wide transition-colors duration-200 text-gray-600 hover:text-gray-900" aria-expanded="false" aria-haspopup="true" data-dropdown-trigger> Products <svg class="h-3.5 w-3.5 opacity-50 transition-transform duration-300 group-hover:rotate-180 group-hover:opacity-80" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z" clip-rule="evenodd"></path> </svg>  <span class="absolute bottom-0 left-2.5 right-2.5 xl:left-3.5 xl:right-3.5 h-[2px] scale-x-0 rounded-full bg-primary-500 transition-transform duration-300 origin-left group-hover:scale-x-100"></span> </button>  <div class="mega-panel pointer-events-none invisible absolute left-1/2 top-full -translate-x-1/2 pt-3 opacity-0 transition-all duration-300 translate-y-2 group-hover:pointer-events-auto group-hover:visible group-hover:opacity-100 group-hover:translate-y-0" data-dropdown-panel> <div class="relative overflow-hidden rounded-2xl bg-white/95 backdrop-blur-xl shadow-[0_20px_60px_-15px_rgba(0,0,0,0.15)] ring-1 ring-black/[0.06]">  <div class="absolute top-0 left-0 right-0 h-[2px] bg-gradient-to-r from-primary-400 via-primary-500 to-accent-400"></div> <div class="p-2 min-w-[240px] sm:min-w-[280px]"> <a href="/platform" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Platform"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M3.75 3A1.75 1.75 0 002 4.75v3.5C2 9.216 2.784 10 3.75 10h3.5A1.75 1.75 0 009 8.25v-3.5A1.75 1.75 0 007.25 3h-3.5zM12.75 3a1.75 1.75 0 00-1.75 1.75v3.5c0 .966.784 1.75 1.75 1.75h3.5A1.75 1.75 0 0018 8.25v-3.5A1.75 1.75 0 0016.25 3h-3.5zM2 12.75c0-.966.784-1.75 1.75-1.75h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 017.25 18h-3.5A1.75 1.75 0 012 16.25v-3.5zM12.75 11a1.75 1.75 0 00-1.75 1.75v3.5c0 .966.784 1.75 1.75 1.75h3.5A1.75 1.75 0 0018 16.25v-3.5A1.75 1.75 0 0016.25 11h-3.5z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Platform   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> Self-service tools from $12.99/property/mo </span> </span> </a><a href="/actionable-intelligence" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Actionable Intelligence"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M15.98 1.804a1 1 0 00-1.96 0l-.24 1.192a1 1 0 01-.784.785l-1.192.238a1 1 0 000 1.962l1.192.238a1 1 0 01.785.785l.238 1.192a1 1 0 001.962 0l.238-1.192a1 1 0 01.785-.785l1.192-.238a1 1 0 000-1.962l-1.192-.238a1 1 0 01-.785-.785l-.238-1.192zM6.949 5.684a1 1 0 00-1.898 0l-.683 2.051a1 1 0 01-.633.633l-2.051.683a1 1 0 000 1.898l2.051.684a1 1 0 01.633.632l.683 2.051a1 1 0 001.898 0l.683-2.051a1 1 0 01.633-.633l2.051-.683a1 1 0 000-1.898l-2.051-.683a1 1 0 01-.633-.633L6.95 5.684zM13.949 13.684a1 1 0 00-1.898 0l-.184.551a1 1 0 01-.632.633l-.551.183a1 1 0 000 1.898l.551.183a1 1 0 01.633.633l.183.551a1 1 0 001.898 0l.184-.551a1 1 0 01.632-.633l.551-.183a1 1 0 000-1.898l-.551-.184a1 1 0 01-.633-.632l-.183-.551z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Actionable Intelligence <span class="inline-flex items-center rounded-full bg-accent-500/15 px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-accent-600"> New </span>  </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> AI onboarding: video → workflows </span> </span> </a><a href="/real-time-inspection" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Real-Time Inspection"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Real-Time Inspection   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> Expert-led review at $5/inspection </span> </span> </a><a href="/co-host" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Cohost Pro"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Cohost Pro   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600">
108 Managed service for property managers </span> </span> </a><a href="/co-host-owners" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Guest Support Plus"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Guest Support Plus   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> Managed guest and turnover support for owners </span> </span> </a> </div> </div> </div> </div><div class="relative group" data-navlink> <a href="/ai" class="relative block px-2.5 xl:px-3.5 py-2 text-[13px] xl:text-[13.5px] font-medium tracking-wide transition-colors duration-200 no-underline hover:no-underline text-gray-600 hover:text-gray-900"> AI <span class="absolute bottom-0 left-2.5 right-2.5 xl:left-3.5 xl:right-3.5 h-[2px] rounded-full bg-primary-500 transition-transform duration-300 origin-left scale-x-0 group-hover:scale-x-100"></span> </a> </div><div class="nav-dropdown group relative" data-dropdown> <button class="nav-trigger relative flex items-center gap-1 px-2.5 xl:px-3.5 py-2 text-[13px] xl:text-[13.5px] font-medium tracking-wide transition-colors duration-200 text-gray-600 hover:text-gray-900" aria-expanded="false" aria-haspopup="true" data-dropdown-trigger> Features <svg class="h-3.5 w-3.5 opacity-50 transition-transform duration-300 group-hover:rotate-180 group-hover:opacity-80" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z" clip-rule="evenodd"></path> </svg>  <span class="absolute bottom-0 left-2.5 right-2.5 xl:left-3.5 xl:right-3.5 h-[2px] scale-x-0 rounded-full bg-primary-500 transition-transform duration-300 origin-left group-hover:scale-x-100"></span> </button>  <div class="mega-panel pointer-events-none invisible absolute left-1/2 top-full -translate-x-1/2 pt-3 opacity-0 transition-all duration-300 translate-y-2 group-hover:pointer-events-auto group-hover:visible group-hover:opacity-100 group-hover:translate-y-0" data-dropdown-panel> <div class="relative overflow-hidden rounded-2xl bg-white/95 backdrop-blur-xl shadow-[0_20px_60px_-15px_rgba(0,0,0,0.15)] ring-1 ring-black/[0.06]">  <div class="absolute top-0 left-0 right-0 h-[2px] bg-gradient-to-r from-primary-400 via-primary-500 to-accent-400"></div> <div class="p-2 min-w-[240px] sm:min-w-[280px]"> <a href="/autoscheduler" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Autoscheduler"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm.75-11.25a.75.75 0 00-1.5 0v2.5c0 .414.336.75.75.75h2.5a.75.75 0 000-1.5h-1.75v-1.75z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Autoscheduler   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> Automated turnover scheduling </span> </span> </a><a href="/features/photo-checklists" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Photo Checklists"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M1 8a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 018.07 3h3.86a2 2 0 011.
108664.89l.812 1.22A2 2 0 0016.07 6H17a2 2 0 012 2v7a2 2 0 01-2 2H3a2 2 0 01-2-2V8zm13.5 3a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0zM10 14a3 3 0 100-6 3 3 0 000 6z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Photo Checklists   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> Photo-verified cleaning </span> </span> </a><a href="/features/marketplace" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Marketplace"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zm0 16a3 3 0 01-3-3h6a3 3 0 01-3 3z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Marketplace   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> Find trusted cleaners </span> </span> </a><a href="/skills" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Skills &amp; Training"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.394 2.08a1 1 0 00-.788 0l-7 3a1 1 0 000 1.84L5.25 8.051a.999.999 0 01.356-.257l4-1.714a1 1 0 11.788 1.838L7.667 9.088l1.94.831a1 1 0 00.787 0l7-3a1 1 0 000-1.838l-7-3zM3.31 9.397L5 10.12v4.102a8.969 8.969 0 00-1.05-.174 1 1 0 01-.89-.89 11.115 11.115 0 01.25-3.762zM9.3 16.573A9.026 9.026 0 007 14.935v-3.547l1.607.688a3 3 0 002.346 0l1.607-.688v3.547a9.026 9.026 0 00-2.3 1.638z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Skills &amp; Training   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> Certification and training library </span> </span> </a><a href="/features" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-center py-2 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="All Features"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M3.75 3A1.75 1.75 0 002 4.75v3.5C2 9.216 2.784 10 3.75 10h3.5A1.75 1.75 0 009 8.25v-3.5A1.75 1.75 0 007.25 3h-3.5zM12.75 3a1.75 1.75 0 00-1.75 1.75v3.5c0 .966.784 1.75 1.75 1.75h3.5A1.75 1.75 0 0018 8.25v-3.5A1.75 1.75 0 0016.25 3h-3.5zM2 12.75c0-.966.784-1.75 1.75-1.75h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 017.25 18h-3.5A1.75 1.75 0 012 16.25v-3.5zM12.75 11a1.75 1.75 0 00-1.75 1.75v3.5c0 .966.784 1.75 1.75 1.75h3.5A1.75 1.75 0 0018 16.25v-3.5A1.75 1.75 0 0016.25 11h-3.5z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> All Features   </span>  </span> </a> </div> </div> </div> </div><div class="nav-dropdown group relative" data-dropdown> <button class="nav-trigger relative flex items-center gap-1 px-2.5 xl:px-3.5 py-2 text-[13px] xl:text-[13.5px] font-medium tracking-wide transition-colors duration-200 text-gray-600 hover:text-gray-900" aria-expanded="false" aria-haspopup="true" data-dropdown-trigger> Solutions <svg class="h-3.5 w-3.5 opacity-50 transition-transform duration-300 group-hover:rotate-180 group-hover:opacity-80" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z" clip-rule="evenodd"></path> </svg>  <span class="absolute bottom-0 left-2.5 right-2.5 xl:left-3.5 xl:right-3.5 h-[2px] scale-x-0 rounded-full bg-primary-500 transition-transform duration-300 origin-left group-hover:scale-x-100"></span> </button>  <div class="mega-panel pointer-events-none invisible absolute left-1/2 top-full -translate-x-1/2 pt-3 opacity-0 transition-all duration-300 translate-y-2 group-hover:pointer-events-auto group-hover:visible group-hover:opacity-100 group-hover:translate-y-0" data-dropdown-panel> <div class="relative overflow-hidden rounded-2xl bg-white/95 backdrop-blur-xl shadow-[0_20px_60px_-15px_rgba(0,0,0,0.15)] ring-1 ring-black/[0.06]">  <div class="absolute top-0 left-0 right-0 h-[2px] bg-gradient-to-r from-primary-400 via-primary-500 to-accent-400"></div> <div class="p-2 min-w-[240px] sm:min-w-[280px]"> <a href="/" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-center py-2 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="For Property Owners"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> For Property Owners   </span>  </span> </a><a href="/property-managers" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-center py-2 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="For Property Managers"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M4 4a2 2 0 012-2h8a2 2 0 012 2v12a1 1 0 110 2h-3a1 1 0 01-1-1v-2a1 1 0 00-1-1H9a1 1 0 00-1 1v2a1 1 0 01-1 1H4a1 1 0 110-2V4zm3 1h2v2H7V5zm2 4H7v2h2V9zm2-4h2v2h-2V5zm2 4h-2v2h2V9z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> For Property Managers   </span>  </span> </a><a href="/service-providers" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-center py-2 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="For Service Providers"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M11.3 1.046A1 1 0 0112 2v5h4a1 1 0 01.82 1.573l-7 10A1 1 0 018 18v-5H4a1 1 0 01-.82-1.573l7-10a1 1 0 011.12-.38z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> For Service Providers   </span>  </span> </a> </div> </div> </div> </div><div class="nav-dropdown group relative" data-dropdown> <button class="nav-trigger relative flex items-center gap-1 px-2.5 xl:px-3.5 py-2 text-[13px] xl:text-[13.5px] font-medium tracking-wide transition-colors duration-200 text-gray-600 hover:text-gray-900" aria-expanded="false" aria-haspopup="true" data-dropdown-trigger> Resources <svg class="h-3.5 w-3.5 opacity-50 transition-transform duration-300 group-hover:rotate-180 group-hover:opacity-80" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z" clip-rule="evenodd"></path> </svg>  <span class="absolute bottom-0 left-2.5 right-2.5 xl:left-3.5 xl:right-3.5 h-[2px] scale-x-0 rounded-full bg-primary-500 transition-transform duration-300 origin-left group-hover:scale-x-100"></span> </button>  <div class="mega-panel pointer-events-none invisible absolute left-1/2 top-full -translate-x-1/2 pt-3 opacity-0 transition-all duration-300 translate-y-2 group-hover:pointer-events-auto group-hover:visible group-hover:opacity-100 group-hover:translate-y-0" data-dropdown-panel> <div class="relative overflow-hidden rounded-2xl bg-white/95 backdrop-blur-xl shadow-[0_20px_60px_-15px_rgba(0,0,0,0.15)] ring-1 ring-black/[0.06]">  <div class="absolute top-0 left-0 right-0 h-[2px] bg-gradient-to-r from-primary-400 via-primary-500 to-accent-400"></div> <div class="p-2 min-w-[240px] sm:min-w-[280px]"> <a href="/blog" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-center py-2 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Blog"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M2 5a2 2 0 012-2h7a2 2 0 012 2v4a2 2 0 01-2 2H9l-3 3v-3H4a2 2 0 01-2-2V5z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Blog   </span>  </span> </a><a href="/case-studies" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Case Studies"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M4 2a2 2 0 00-2 2v12a2 2 0 002 2h12a2 2 0 002-2V7.414A2 2 0 0015.414 6L12 2.586A2 2 0 0010.586 2H4zm5 3a1 1 0 012 0v2a1 1 0 11-2 0V5zm-2 6a1 1 0 011-1h4a1 1 0 110 2H8a1 1 0 01-1-1zm1 3h6a1 1 0 110 2H8a1 1 0 110-2z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Case Studies   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> Measured customer outcomes </span> </span> </a><a href="/str-shopping-list" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Vacation Rental Shopping List"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M4 3a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V5a2 2 0 00-2-2H4zm1 4.75A.75.75 0 015.75 7h2.5a.75.75 0 010 1.5h-2.5A.75.75 0 015 7.75zm0 3A.75.75 0 015.75 10h7.5a.75.75 0 010 1.5h-7.5A.75.75 0 015 10.75zm0 3A.75.75 0 015.75 13h5.5a.75.75 0 010 1.5h-5.5A.75.75 0 015 13.75zM15.5 7a1 1 0 100 2 1 1 0 000-2z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Vacation Rental Shopping List   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> Room-by-room STR setup picks </span> </span> </a><a href="/properly-vs-turno" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Properly vs Turno"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M7 3a3 3 0 00-3 3v8a3 3 0 003 3h6a3 3 0 003-3V6a3 3 0 00-3-3H7zm0 2h6a1 1 0 011 1v1H6V6a1 1 0 011-1zm-1 4h8v5a1 1 0 01-1 1H7a1 1 0 01-1-1V9zm2 2a1 1 0 100 2h1a1 1 0 100-2H8zm4 0a1 1 0 100 2h1a1 1 0 100-2h-1z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Properly vs Turno   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> Compare scheduling vs verification </span> </span> </a><a href="/properly-vs-breezeway" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-start py-2.5 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Properly vs Breezeway"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M5 3a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2V5a2 2 0 00-2-2H5zm7 0a1 1 0 100 2h3v10h-3a1 1 0 100 2h3a2 2 0 002-2V5a2 2 0 00-2-2h-3zm-7 9a2 2 0 00-2 2v1a2 2 0 002 2h3a2 2 0 002-2v-1a2 2 0 00-2-2H5z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Properly vs Breezeway   </span> <span class="mt-0.5 text-[12px] leading-relaxed text-gray-500 group-hover/item:text-gray-600"> Compare property operations tools </span> </span> </a><a href="/partners" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-center py-2 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav
108" data-ga-label="Partners"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Partners   </span>  </span> </a><a href="/about" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-center py-2 text-gray-700 hover:bg-gray-50/80" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="About Us"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> About Us   </span>  </span> </a><a href="https://help.getproperly.com/en/" class="group/item flex gap-3 rounded-xl px-3.5 text-sm no-underline hover:no-underline transition-all duration-200 items-center py-2 text-gray-700 hover:bg-gray-50/80" target="_blank" rel="noopener noreferrer" data-ga-event="navigation_click" data-ga-category="nav" data-ga-label="Support"> <span class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg transition-colors duration-200 bg-gray-100 text-gray-500 group-hover/item:bg-primary-50 group-hover/item:text-primary-600"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-3a1 1 0 00-.867.5 1 1 0 11-1.731-1A3 3 0 0113 8a3.001 3.001 0 01-2 2.83V11a1 1 0 11-2 0v-1a1 1 0 011-1 1 1 0 100-2zm0 8a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path> </svg> </span> <span class="flex flex-col min-w-0"> <span class="font-semibold text-[13px] leading-tight flex items-center gap-1.5 text-gray-900 group-hover/item:text-gray-900"> Support  <svg class="h-3 w-3 text-gray-400" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M4.25 5.5a.75.75 0 00-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 00.75-.75v-4a.75.75 0 011.5 0v4A2.25 2.25 0 0112.75 17h-8.5A2.25 2.25 0 012 14.75v-8.5A2.25 2.25 0 014.25 4h5a.75.75 0 010 1.5h-5zm7.25-.75a.75.75 0 01.75-.75h3.5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0V6.31l-5.47 5.47a.75.75 0 01-1.06-1.06l5.47-5.47H12.25a.75.75 0 01-.75-.75z" clip-rule="evenodd"></path> </svg> </span>  </span> </a> </div> </div> </div> </div><div class="relative group" data-navlink> <a href="/pricing" class="relative block px-2.5 xl:px-3.5 py-2 text-[13px] xl:text-[13.5px] font-medium tracking-wide transition-colors duration-200 no-underline hover:no-underline text-primary-700"> Pricing <span class="absolute bottom-0 left-2.5 right-2.5 xl:left-3.5 xl:right-3.5 h-[2px] rounded-full bg-primary-500 transition-transform duration-300 origin-left scale-x-100"></span> </a> </div> </div> <!-- Right side: Login, Language, dual CTAs --> <div class="hidden lg:flex lg:items-center lg:gap-1 xl:gap-1.5"> <a href="https://app.getproperly.com/login" class="px-2.5 py-2 text-[13px] font-medium text-gray-500 no-underline hover:no-underline transition-colors duration-200 hover:text-gray-800" data-ga-event="login" data-ga-label="nav"> Log in </a> <div class="h-4 w-px bg-gray-200 mx-1" aria-hidden="true"></div> <!-- Language switcher — compact globe --> <div class="lang-dropdown group relative" data-dropdown> <button class="flex items-center gap-1 rounded-full px-2 py-2 text-gray-500 transition-all duration-200 hover:bg-gray-100 hover:text-gray-700" aria-expanded="false" aria-haspopup="true" aria-label="Select language" data-dropdown-trigger> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M4.083 9h1.946c.089-1.546.383-2.97.837-4.118A6.004 6.004 0 004.083 9zM10 2a8 8 0 100 16 8 8 0 000-16zm0 2c-.076 0-.232.032-.465.262-.238.234-.497.623-.737 1.182-.389.907-.673 2.142-.766 3.556h3.936c-.093-1.414-.377-2.649-.766-3.556-.24-.56-.5-.948-.737-1.182C10.232 4.032 10.076 4 10 4zm3.971 5c-.
108089-1.546-.383-2.97-.837-4.118A6.004 6.004 0 0115.917 9h-1.946zm-2.003 2H8.032c.093 1.414.377 2.649.766 3.556.24.56.5.948.737 1.182.233.23.389.262.465.262.076 0 .232-.032.465-.262.238-.234.497-.623.737-1.182.389-.907.673-2.142.766-3.556zm1.166 4.118c.454-1.147.748-2.572.837-4.118h1.946a6.004 6.004 0 01-2.783 4.118zm-6.268 0C6.412 13.97 6.118 12.546 6.03 11H4.083a6.004 6.004 0 002.783 4.118z" clip-rule="evenodd"></path> </svg> <span class="text-[11px] font-semibold tracking-wider">EN</span> </button> <div class="mega-panel pointer-events-none invisible absolute right-0 top-full pt-2 opacity-0 transition-all duration-300 translate-y-2 group-hover:pointer-events-auto group-hover:visible group-hover:opacity-100 group-hover:translate-y-0" data-dropdown-panel> <div class="relative overflow-hidden rounded-xl bg-white/95 backdrop-blur-xl shadow-[0_20px_60px_-15px_rgba(0,0,0,0.15)] ring-1 ring-black/[0.06]"> <div class="absolute top-0 left-0 right-0 h-[2px] bg-gradient-to-r from-primary-400 via-primary-500 to-accent-400"></div> <div class="p-2 min-w-[180px]"> <p class="px-3 py-1.5 text-[10px] font-bold uppercase tracking-[0.15em] text-gray-400"> Language </p> <a href="/pricing" class="flex items-center justify-between rounded-lg px-3 py-2 text-[13px] no-underline hover:no-underline transition-colors duration-150 bg-primary-50 text-primary-700 font-semibold" data-ga-event="select_content" data-ga-category="locale" data-ga-label="en"> <span>English</span> <span class="text-[10px] font-semibold tracking-wider text-primary-500"> EN </span> </a><a href="/fr/pricing" class="flex items-center justify-between rounded-lg px-3 py-2 text-[13px] no-underline hover:no-underline transition-colors duration-150 text-gray-600 hover:bg-gray-50 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="fr"> <span>Français</span> <span class="text-[10px] font-semibold tracking-wider text-gray-400"> FR </span> </a><a href="/de/pricing" class="flex items-center justify-between rounded-lg px-3 py-2 text-[13px] no-underline hover:no-underline transition-colors duration-150 text-gray-600 hover:bg-gray-50 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="de"> <span>Deutsch</span> <span class="text-[10px] font-semibold tracking-wider text-gray-400"> DE </span> </a><a href="/it/pricing" class="flex items-center justify-between rounded-lg px-3 py-2 text-[13px] no-underline hover:no-underline transition-colors duration-150 text-gray-600 hover:bg-gray-50 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="it"> <span>Italiano</span> <span class="text-[10px] font-semibold tracking-wider text-gray-400"> IT </span> </a><a href="/pt-br/pricing" class="flex items-center justify-between rounded-lg px-3 py-2 text-[13px] no-underline hover:no-underline transition-colors duration-150 text-gray-600 hover:bg-gray-50 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="pt-br"> <span>Português</span> <span class="text-[10px] font-semibold tracking-wider text-gray-400"> PT </span> </a><a href="/es/pricing" class="flex items-center justify-between rounded-lg px-3 py-2 text-[13px] no-underline hover:no-underline transition-colors duration-150 text-gray-600 hover:bg-gray-50 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="es"> <span>Español</span> <span class="text-[10px] font-semibold tracking-wider text-gray-400"> ES </span> </a><a href="/hr/pricing" class="flex items-center justify-between rounded-lg px-3 py-2 text-[13px] no-underline hover:no-underline transition-colors duration-150 text-gray-600 hover:bg-gray-50 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="hr"> <span>Hrvatski</span> <span class="text-[10px] font-semibold tracking-wider text-gray-400"> HR </span> </a><a href="/ru/pricing" class="flex items-center justify-between rounded-lg px-3 py-2 text-[13px] no-underline hover:no-underline transition-colors duration-150 text-gray-600 hover:bg-gray-50 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="ru"> <span>Русский</span> <span class="text-[10px] font-semibold tracking-wider text-gray-400"> RU </span> </a> </div> </div> </div> </div> <a href="https://app.getproperly.com/hostSignUpForm" class="inline-flex items-center rounded-full border border-gray-300 bg-white px-4 py-[7px] text-[13px] font-semibold text-gray-700 no-underline hover:no-underline shadow-sm transition-all duration-200 hover:border-gray-400 hover:text-gray-900 hover:shadow-md active:scale-[0.97]" data-ga-event="sign_up" data-ga-label="nav"> Start Free Trial </a> <!-- Primary CTA — path-aware --> <a href="/book-demo?product=cohosting&amp;topic=pricing" class="cta-primary group relative inline-flex items-center gap-1.5 overflow-hidden rounded-full bg-accent-500 px-5 py-[7px] text-[13px] font-bold text-gray-900 no-underline hover:no-underline shadow-[0_1px_3px_rgba(245,158,11,0.4)] transition-all duration-200 hover:bg-accent-600 hover:shadow-[0_4px_16px_rgba(245,158,11,0.35)] active:scale-[0.97]" data-ga-event="demo_cta_click" data-ga-label="nav"> <span class="relative z-10">Book a Demo</span> <svg class="relative z-10 h-3.5 w-3.5 transition-transform duration-200 group-hover:translate-x-0.5" viewB
108ox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M3 10a.75.75 0 01.75-.75h10.638L10.23 5.29a.75.75 0 111.04-1.08l5.5 5.25a.75.75 0 010 1.08l-5.5 5.25a.75.75 0 11-1.04-1.08l4.158-3.96H3.75A.75.75 0 013 10z" clip-rule="evenodd"></path> </svg> <span class="absolute inset-0 -translate-x-full bg-gradient-to-r from-transparent via-white/25 to-transparent transition-transform duration-700 group-hover:translate-x-full" aria-hidden="true"></span> </a> </div> <!-- Mobile: CTA + Hamburger. The CTA wraps long localized labels instead of nowrap (checked 320-414px, 8 locales); the toggle never shrinks. --> <div class="ml-2 flex items-center gap-2.5 max-[359px]:gap-2 lg:hidden"> <a href="/book-demo?product=cohosting&amp;topic=pricing" class="inline-flex items-center min-h-11 rounded-full bg-accent-500 px-5 py-1.5 max-[359px]:px-3 text-center text-sm leading-tight text-balance wrap-anywhere max-[359px]:text-[13px] font-bold text-gray-900 no-underline hover:no-underline shadow-sm transition-all duration-200 hover:bg-accent-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent-500 focus-visible:ring-offset-2" data-ga-event="demo_cta_click" data-ga-label="nav_mobile"> Book a Demo </a> <button id="mobile-menu-toggle" class="relative z-50 flex h-11 w-11 shrink-0 items-center justify-center rounded-xl text-gray-600 transition-all duration-200 hover:bg-gray-100 hover:text-gray-900" aria-expanded="false" aria-controls="mobile-menu" aria-label="Toggle navigation menu"> <svg id="hamburger-icon" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"></path> </svg> <svg id="close-icon" class="hidden h-5 w-5" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> </svg> </button> </div> </nav> </header> <!-- Mobile menu overlay — rendered outside header to preserve z-index stacking --> <!-- Mobile Menu — slide-in from right with backdrop --><div id="mobile-menu" class="fixed inset-0 z-40 hidden" role="dialog" aria-modal="true" aria-label="Navigation menu"> <div class="mobile-backdrop absolute inset-0 bg-black/40 backdrop-blur-sm opacity-0 transition-opacity duration-300"></div> <div class="mobile-panel absolute top-0 right-0 bottom-0 w-full max-w-[min(380px,90vw)] translate-x-full transition-transform duration-300 ease-out bg-white overflow-hidden flex flex-col shadow-2xl"> <!-- Panel header --><div class="flex items-center justify-between px-6 h-[72px] border-b border-gray-100 shrink-0"> <a href="/" class="no-underline hover:no-underline"> <img src="/images/properly-logo-horizontal.png" alt="Properly: Vacation Rental Quality Management" width="224" height="50" loading="eager" class="h-[22px] w-auto"> </a> </div> <!-- CTAs first — conversion optimized, path-aware primary --> <div class="px-5 pt-5 pb-3 space-y-2.5 shrink-0"> <a href="/book-demo?product=cohosting&amp;topic=pricing" class="mobile-nav-link flex items-center justify-center gap-2 rounded-xl bg-accent-500 px-5 py-3 text-[14px] font-bold text-gray-900 no-underline hover:no-underline shadow-md transition-all duration-200 hover:bg-accent-600" data-ga-event="demo_cta_click" data-ga-label="mobile_menu"> Book a Demo <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M3 10a.75.75 0 01.75-.75h10.638L10.23 5.29a.75.75 0 111.04-1.08l5.5 5.25a.75.75 0 010 1.08l-5.5 5.25a.75.75 0 11-1.04-1.08l4.158-3.96H3.75A.75.75 0 013 10z" clip-rule="evenodd"></path> </svg> </a> <a href="https://app.getproperly.com/hostSignUpForm" class="mobile-nav-link flex items-center justify-center rounded-xl border border-gray-200 bg-white px-5 py-2.5 text-[14px] font-semibold text-gray-700 no-underline hover:no-underline transition-colors hover:bg-gray-50" data-ga-event="sign_up" data-ga-label="mobile_menu"> Start Free Trial </a> </div> <!-- Scrollable nav --> <nav class="flex-1 overflow-y-auto px-5 py-3 pb-[max(0.75rem,env(safe-area-inset-bottom))]" aria-label="Mobile navigation"> <ul class="space-y-0.5" role="list"> <li class="mobile-nav-item" style="--delay: 0ms"> <div class="mobile-nav-group"> <button class="mobile-nav-group-toggle flex w-full items-center justify-between rounded-xl px-4 py-3 text-left text-[14px] font-semibold text-gray-800 transition-colors hover:bg-gray-50" aria-expanded="false" aria-controls="mobile-nav-products"> Products <svg class="mobile-chevron h-4 w-4 text-gray-400 transition-transform duration-200" viewB
108ox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd"></path> </svg> </button> <ul id="mobile-nav-products" class="mobile-nav-children hidden space-y-0.5 pb-1 pl-3" role="list"> <li> <a href="/platform" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Platform  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Self-service tools from $12.99/property/mo </span> </a> </li><li> <a href="/actionable-intelligence" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Actionable Intelligence <span class="inline-flex items-center rounded-full bg-accent-500/15 px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-accent-600"> New </span> </span> <span class="text-[11px] text-gray-400 mt-0.5"> AI onboarding: video → workflows </span> </a> </li><li> <a href="/real-time-inspection" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Real-Time Inspection  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Expert-led review at $5/inspection </span> </a> </li><li> <a href="/co-host" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Cohost Pro  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Managed service for property managers </span> </a> </li><li> <a href="/co-host-owners" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Guest Support Plus  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Managed guest and turnover support for owners </span> </a> </li> </ul> </div> </li><li class="mobile-nav-item" style="--delay: 50ms"> <a href="/ai" class="mobile-nav-link block rounded-xl px-4 py-3 text-[14px] font-semibold no-underline hover:no-underline transition-colors text-gray-800 hover:bg-gray-50"> AI </a> </li><li class="mobile-nav-item" style="--delay: 100ms"> <div class="mobile-nav-group"> <button class="mobile-nav-group-toggle flex w-full items-center justify-between rounded-xl px-4 py-3 text-left text-[14px] font-semibold text-gray-800 transition-colors hover:bg-gray-50" aria-expanded="false" aria-controls="mobile-nav-features"> Features <svg class="mobile-chevron h-4 w-4 text-gray-400 transition-transform duration-200" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd"></path> </svg> </button> <ul id="mobile-nav-features" class="mobile-nav-children hidden space-y-0.5 pb-1 pl-3" role="list"> <li> <a href="/autoscheduler" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Autoscheduler  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Automated turnover scheduling </span> </a> </li><li> <a href="/features/photo-checklists" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Photo Checklists  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Photo-verified cleaning </span> </a> </li><li> <a href="/features/marketplace" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Marketplace  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Find trusted cleaners </span> </a> </li><li> <a href="/skills" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Skills &amp; Training  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Certification and training library </span> </a> </li><li> <a href="/features" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> All Features  </span>  </a> </li> </ul> </div> </li><li class="mobile-nav-item" style="--delay: 150ms"> <div class="mobile-nav-group"> <button class="mobile-nav-group-toggle flex w-full items-center justify-between rounded-xl px-4 py-3 text-left text-[14px] font-semibold text-gray-800 transition-colors hover:bg-gray-50" aria-expanded="false" aria-controls="mobile-nav-solutions"> Solutions <svg class="mobile-chevron h-4 w-4 text-gray-400 transition-transform duration-200" viewB
108ox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd"></path> </svg> </button> <ul id="mobile-nav-solutions" class="mobile-nav-children hidden space-y-0.5 pb-1 pl-3" role="list"> <li> <a href="/" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> For Property Owners  </span>  </a> </li><li> <a href="/property-managers" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> For Property Managers  </span>  </a> </li><li> <a href="/service-providers" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> For Service Providers  </span>  </a> </li> </ul> </div> </li><li class="mobile-nav-item" style="--delay: 200ms"> <div class="mobile-nav-group"> <button class="mobile-nav-group-toggle flex w-full items-center justify-between rounded-xl px-4 py-3 text-left text-[14px] font-semibold text-gray-800 transition-colors hover:bg-gray-50" aria-expanded="false" aria-controls="mobile-nav-resources"> Resources <svg class="mobile-chevron h-4 w-4 text-gray-400 transition-transform duration-200" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd"></path> </svg> </button> <ul id="mobile-nav-resources" class="mobile-nav-children hidden space-y-0.5 pb-1 pl-3" role="list"> <li> <a href="/blog" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Blog  </span>  </a> </li><li> <a href="/case-studies" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Case Studies  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Measured customer outcomes </span> </a> </li><li> <a href="/str-shopping-list" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Vacation Rental Shopping List  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Room-by-room STR setup picks </span> </a> </li><li> <a href="/properly-vs-turno" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Properly vs Turno  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Compare scheduling vs verification </span> </a> </li><li> <a href="/properly-vs-breezeway" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Properly vs Breezeway  </span> <span class="text-[11px] text-gray-400 mt-0.5"> Compare property operations tools </span> </a> </li><li> <a href="/partners" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5">
108 Partners  </span>  </a> </li><li> <a href="/about" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> About Us  </span>  </a> </li><li> <a href="https://help.getproperly.com/en/" class="mobile-nav-link flex flex-col rounded-xl px-4 py-2.5 no-underline hover:no-underline transition-colors text-gray-600 hover:bg-gray-50 hover:text-gray-900" target="_blank" rel="noopener noreferrer"> <span class="text-[13.5px] font-medium flex items-center gap-1.5"> Support  </span>  </a> </li> </ul> </div> </li><li class="mobile-nav-item" style="--delay: 250ms"> <a href="/pricing" class="mobile-nav-link block rounded-xl px-4 py-3 text-[14px] font-semibold no-underline hover:no-underline transition-colors bg-primary-50 text-primary-700"> Pricing </a> </li> </ul> <!-- Footer links --> <div class="mt-6 border-t border-gray-100 pt-5 space-y-1 mobile-nav-item" style="--delay: 300ms"> <a href="https://app.getproperly.com/login" class="flex items-center gap-2 rounded-xl px-4 py-2.5 text-[13.5px] font-medium text-gray-600 no-underline hover:no-underline transition-colors hover:bg-gray-50 hover:text-gray-900" data-ga-event="login" data-ga-label="mobile_menu"> <svg class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M3 4.25A2.25 2.25 0 015.25 2h5.5A2.25 2.25 0 0113 4.25v2a.75.75 0 01-1.5 0v-2a.75.75 0 00-.75-.75h-5.5a.75.75 0 00-.75.75v11.5c0 .414.336.75.75.75h5.5a.75.75 0 00.75-.75v-2a.75.75 0 011.5 0v2A2.25 2.25 0 0110.75 18h-5.5A2.25 2.25 0 013 15.75V4.25z" clip-rule="evenodd"></path> <path fill-rule="evenodd" d="M6 10a.75.75 0 01.75-.75h9.546l-1.048-.943a.75.75 0 111.004-1.114l2.5 2.25a.75.75 0 010 1.114l-2.5 2.25a.75.75 0 11-1.004-1.114l1.048-.943H6.75A.75.75 0 016 10z" clip-rule="evenodd"></path> </svg> Log in to Dashboard </a> <div class="px-4 pt-3"> <p class="mb-2 text-[10px] font-bold uppercase tracking-[0.15em] text-gray-400"> Language </p> <div class="flex flex-wrap gap-1.5"> <a href="/pricing" class="mobile-nav-link inline-flex items-center justify-center rounded-lg px-3 py-2 text-xs font-semibold tracking-wide no-underline hover:no-underline transition-colors min-w-[44px] min-h-[44px] bg-primary-600 text-white" data-ga-event="select_content" data-ga-category="locale" data-ga-label="en"> EN </a><a href="/fr/pricing" class="mobile-nav-link inline-flex items-center justify-center rounded-lg px-3 py-2 text-xs font-semibold tracking-wide no-underline hover:no-underline transition-colors min-w-[44px] min-h-[44px] bg-gray-100 text-gray-600 hover:bg-gray-200 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="fr"> FR </a><a href="/de/pricing" class="mobile-nav-link inline-flex items-center justify-center rounded-lg px-3 py-2 text-xs font-semibold tracking-wide no-underline hover:no-underline transition-colors min-w-[44px] min-h-[44px] bg-gray-100 text-gray-600 hover:bg-gray-200 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="de"> DE </a><a href="/it/pricing" class="mobile-nav-link inline-flex items-center justify-center rounded-lg px-3 py-2 text-xs font-semibold tracking-wide no-underline hover:no-underline transition-colors min-w-[44px] min-h-[44px] bg-gray-100 text-gray-600 hover:bg-gray-200 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="it"> IT </a><a href="/pt-br/pricing" class="mobile-nav-link inline-flex items-center justify-center rounded-lg px-3 py-2 text-xs font-semibold tracking-wide no-underline hover:no-underline transition-colors min-w-[44px] min-h-[44px] bg-gray-100 text-gray-600 hover:bg-gray-200 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="pt-br"> PT </a><a href="/es/pricing" class="mobile-nav-link inline-flex items-center justify-center rounded-lg px-3 py-2 text-xs font-semibold tracking-wide no-underline hover:no-underline transition-colors min-w-[44px] min-h-[44px] bg-gray-100 text-gray-600 hover:bg-gray-200 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="es"> ES </a><a href="/hr/pricing" class="mobile-nav-link inline-flex items-center justify-center rounded-lg px-3 py-2 text-xs font-semibold tracking-wide no-underline hover:no-underline transition-colors min-w-[44px] min-h-[44px] bg-gray-100 text-gray-600 hover:bg-gray-200 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="hr"> HR </a><a href="/ru/pricing" class="mobile-nav-link inline-flex items-center justify-center rounded-lg px-3 py-2 text-xs font-semibold tracking-wide no-underline hover:no-underline transition-colors min-w-[44px] min-h-[44px] bg-gray-100 text-gray-600 hover:bg-gray-200 hover:text-gray-900" data-ga-event="select_content" data-ga-category="locale" data-ga-label="ru"> RU </a> </div> </div> </div> </nav> </div> </div> <!-- Spacer for fixed header --> <div class="h-[72px]" aria-hidden="true"></div>
108<script type="module" src="/_astro/Nav.astro_astro_type_script_index_0_lang.DbJaRtW2.js"></script>
108 <main id="main-content" tabindex="-1">  
108<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Can I cancel the Platform anytime?","acceptedAnswer":{"@type":"Answer","text":"Yes. Platform subscriptions can be cancelled anytime without a cancellation fee. Managed-service terms are separate: Cohost Pro has a 12-month initial term and Guest Support Plus requires 30 days’ written notice."}},{"@type":"Question","name":"What happens after the trial?","acceptedAnswer":{"@type":"Answer","text":"After your 30-day free trial of the Platform, you can continue with a paid Platform plan or explore Properly's managed services. Real-Time Inspection is also available standalone or alongside the Platform."}},{"@type":"Question","name":"Do I need a credit card?","acceptedAnswer":{"@type":"Answer","text":"No. You can start your 30-day free trial without entering any payment information. We only ask for payment details when you decide to continue with a paid plan."}},{"@type":"Question","name":"How does billing work?","acceptedA
108nswer":{"@type":"Answer","text":"Platform billing is monthly and tiered by volume, starting at $12.99/property/month and scaling down to $5. Managed services have separate pricing and terms."}},{"@type":"Question","name":"Is there a free trial?","acceptedAnswer":{"@type":"Answer","text":"Yes. The Platform has a 30-day free trial with no credit card required. Managed services do not use the Platform trial terms."}},{"@type":"Question","name":"What are Managed Services?","acceptedAnswer":{"@type":"Answer","text":"Managed Services comprise Guest Support Plus for owners at $149/listing/month and Cohost Pro for professional managers from $119/active property/month. Each has its own scope and commercial terms."}},{"@type":"Question","name":"What is Real-Time Inspection?","acceptedAnswer":{"@type":"Answer","text":"Real-Time Inspection is a standalone $5-per-inspection service where experienced inspectors, assisted by AI, review turnover photos and flag issues before guests arrive. Use it on its own or alongside the Platform."}}]}</script>
108<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://getproperly.com"},{"@type":"ListItem","position":2,"name":"Pricing","item":"https://getproperly.com/pricing"}]}</script>
108 <section class="relative overflow-hidden grain" style="background: radial-gradient(ellipse 80% 50% at 70% 20%, rgba(20,145,155,0.18) 0%, transparent 100%), radial-gradient(ellipse 50% 70% at 10% 80%, rgba(34,184,199,0.08) 0%, transparent 100%), linear-gradient(170deg, #0A2E33 0%, #0D4D56 60%, #107080 100%);"> <div class="relative z-10 mx-auto max-w-[1280px] px-6 pb-16 pt-32 text-center md:px-12 md:pb-20 md:pt-40 lg:px-20"> <!-- Badge --><div class="mb-6 inline-flex items-center gap-2 rounded-full border border-primary-400/20 bg-white/5 px-4 py-2 backdrop-blur-sm"> <svg class="h-4 w-4 text-accent-500" fill="currentColor" viewBox="0 0 20 20" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg> <span class="text-sm font-semibold text-white/80">30-day free trial of the Platform</span> </div> <h1 class="mx-auto max-w-3xl font-display text-4xl font-extrabold tracking-tight text-white sm:text-5xl lg:text-6xl"> Simple Pricing. <br class="hidden sm:block"> <span class="text-primary-400">Pay Less as You Grow.</span> </h1> <p class="mx-auto mt-6 max-w-xl text-lg text-white/70 md:text-xl"> Compare self-service and managed offers. The Platform trial requires no credit card and can be canceled anytime. </p> <!-- Hero CTAs --> <div class="mt-8 flex flex-col items-center justify-center gap-4 sm:flex-row sm:flex-wrap sm:*:whitespace-nowrap"> <a href="/book-demo?product=cohosting&amp;topic=pricing&amp;ref=pricing_page" class="group inline-flex items-center gap-2 rounded-full bg-accent-500 px-8 py-4 text-base font-bold text-primary-950 shadow-lg shadow-accent-500/20 transition-all duration-300 hover:bg-accent-600 hover:shadow-xl hover:scale-[1.03] active:scale-[0.98] no-underline hover:no-underline" data-ga-event="demo_cta_click" data-ga-label="pricing_hero_managed_services"> Book a Demo <svg class="h-4 w-4 transition-transform duration-300 group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6"></path> </svg> </a> <a href="https://app.getproperly.com/hostSignUpForm" class="group inline-flex items-center gap-2 rounded-full border border-white/20 px-8 py-4 text-base font-semibold text-white/90 backdrop-blur-sm transition-all duration-300 hover:border-white/40 hover:bg-white/5 no-underline hover:no-underline" data-ga-event="sign_up" data-ga-label="pricing_hero_platform_trial"> Start Free Trial <svg class="h-4 w-4 transition-transform duration-300 group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6"></path> </svg> </a> </div> <!-- Trust signals --> <div class="mt-10 flex flex-wrap items-center justify-center gap-x-5 gap-y-2 text-sm text-white/50"> <span class="flex items-center gap-1.5"> <svg class="h-4 w-4 text-primary-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path> </svg> Platform: no credit card </span> <span class="text-white/25">&middot;</span> <span class="flex items-center gap-1.5"> <svg class="h-4 w-4 text-primary-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path> </svg> Platform: cancel anytime </span> <span class="text-white/25">&middot;</span> <span class="flex items-center gap-1.5"> <svg class="h-4 w-4 text-primary-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M15 19.128a9.38 9.38 0 002.625.372 9.337 9.337 0 004.121-.952 4.125 4.125 0 00-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 018.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0111.964-3.07M12 6.375a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zm8.25 2.25a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z"></path> </svg> <span class="font-semibold text-white/70">10,000+ hosts</span> </span> </div> </div> <div class="absolute bottom-0 left-0 right-0"> <div class="h-px bg-gradient-to-r from-transparent via-primary-400/20 to-transparent"></div> <div class="h-16 bg-gradient-to-t from-gray-50 to-transparent"></div> </div> </section>  <section id="plans" class="bg-gray-50 pb-24 pt-12 md:pb-32 md:pt-16" data-ga-section-view="pricing_plans"> <div class="mx-auto max-w-[1280px] px-6 md:px-12 lg:px-20"> <!-- Group 1: self-serve offers --><div class="mb-6" data-animate> <h2 class="font-display text-xl font-extrabold tracking-tight text-gray-900 md:text-2xl"> Do it yourself </h2> <p class="mt-1 text-sm text-gray-500">Software and standalone inspection for hosts who run their own operations.</p> </div> <div class="grid grid-cols-1 gap-6 lg:grid-cols-2" data-animate> <div class="relative flex flex-col rounded-2xl border border-gray-200 bg-white p-6 shadow-sm transition-shadow duration-300 hover:shadow-md lg:p-7" data-animate-child="fade-in-up"> <div class="mb-1.5 font-mono text-xs font-bold uppercase tracking-widest text-primary-500"> Start here </div> <div class="mb-3 flex h-10 w-10 items-center justify-center rounded-xl bg-primary-100"> <svg class="h-5 w-5 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"> <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 6h9.75M10.5 6a1.5 1.5 0 11-3 0m3 0a1.5 1.5 0 10-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m-9.75 0h9.75"></path> </svg> </div> <h3 class="font-display text-2xl font-extrabold text-gray-900"> SaaS Platform </h3> <p class="mt-1.5 text-sm leading-relaxed text-gray-500">You manage your property. We give you the tools to do it better.</p> <div class="mt-4 rounded-xl border border-gray-100 bg-gray-50/60 p-3"> <div class="pricing-calc pricing-calc--full" data-pricing-calc data-variant="full" data-min="1" data-max="500" data-currency="$" data-plan="standard" id="pricing-platform-calc-en">  <div class="mb-4 inline-flex rounded-full border border-gray-200 bg-gray-100 p-1" role="radiogroup" aria-label="Plan type" data-plan-toggle> <button type="button" role="radio" aria-checked="true" data-plan-btn="standard" tabindex="0" class="plan-toggle-btn rounded-full px-5 py-2 text-sm font-bold transition-all bg-white text-gray-900 shadow-sm"> Standard </button> <button type="button" role="radio" aria-checked="false" data-plan-btn="pro" tabindex="-1" class="plan-toggle-btn rounded-full px-5 py-2 text-sm font-bold transition-all text-gray-500 hover:text-gray-700"> Pro </button> </div> <label for="pricing-platform-calc-en-input" class="block text-xs font-semibold uppercase tracking-widest text-primary-600"> How many properties? </label> <div class="mt-2 flex items-center gap-3"> <button type="button" data-step="-1" aria-label="Decrease" aria-controls="pricing-platform-calc-en-input" class="flex h-11 w-11 items-center justify-center rounded-full border border-gray-200 bg-white text-lg font-bold text-gray-700 transition-all hover:border-primary-500 hover:text-primary-600 active:scale-95">
109−
110</button> <input id="pricing-platform-calc-en-input" type="number" min="1" max="500" value="1" inputmode="numeric" data-pricing-input class="w-20 rounded-lg border border-gray-200 bg-white py-1.5 text-center font-mono text-lg font-bold text-gray-900 focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-500/30 [appearance:textfield] [&amp;::-webkit-inner-spin-button]:appearance-none [&amp;::-webkit-outer-spin-button]:appearance-none"> <button type="button" data-step="1" aria-label="Increase" aria-controls="pricing-platform-calc-en-input" class="flex h-11 w-11 items-center justify-center rounded-full border border-gray-200 bg-white text-lg font-bold text-gray-700 transition-all hover:border-primary-500 hover:text-primary-600 active:scale-95">
111+
112</button> </div> <input type="range" min="1" max="500" value="1" data-pricing-slider class="mt-4 w-full accent-primary-600" aria-label="Slide to choose number of properties"> <div class="mt-4" aria-live="polite" aria-atomic="true" role="status"> <div class="flex items-baseline gap-2"> <span class="font-mono text-3xl font-extrabold tracking-tight text-gray-900" data-pricing-total> $12.99 </span> <span class="text-sm text-gray-500">per month</span> </div> <p class="mt-0.5 text-sm text-gray-500"> <span class="font-semibold text-gray-700" data-pricing-per-unit> $12.99 </span>  per property </p> </div>  <p class="mt-3 text-xs leading-relaxed text-gray-500" data-upsell-to-pro-note> Need Guesty, Hostaway, or another PMS? Switch to Pro for direct API 
112sync. </p> <p class="mt-3 text-xs leading-relaxed text-primary-600 font-medium hidden" data-pro-value-note> Includes API access and direct integration with Guesty, Hostaway, and 10+ PMS platforms. </p>  </div>
112<script type="module">var e=2**53-1,t=[{min:1,max:3,perProperty:12.99},{min:4,max:10,perProperty:8.99},{min:11,max:30,perProperty:5.99},{min:31,max:e,perProperty:3.99}],n=[{min:1,max:3,perProperty:14.99},{min:4,max:10,perProperty:10.49},{min:11,max:30,perProperty:7.49},{min:31,max:e,perProperty:4.49}];function r(e,t){if(e<=0)return 0;let n=0;for(let r of t){let t=Math.max(0,Math.min(e,r.max)-r.min+1);n+=t*r.perProperty}return Math.round(n*100)/100}function i(e){return r(e,t)}function a(e){if(e<=0)return 0;let t=i(e);return Math.round(t/e*100)/100}function o(e){return r(e,n)}function s(e){return e<=0?0:Math.round(o(e)/e*100)/100}function c(e,t=`en-US`){return e.toLocaleString(t,{minimumFractionDigits:2,maximumFractionDigits:2})}function l(e){if(e.dataset.bound===`1`)return;e.dataset.bound=`1`;let t=Number(e.dataset.min)||1,n=Number(e.dataset.max)||100,r=e.dataset.currency??`$`,l=e.querySelector(`[data-pricing-input]`),u=e.querySelector(`[data-pricing-slider]`),d=e.querySelector(`[data-pricing-total]`),f=e.querySelector(`[data-
112pricing-per-unit]`),p=e.querySelectorAll(`[data-step]`),m=e.querySelectorAll(`[data-plan-btn]`),h=e.querySelector(`[data-upsell-to-pro-note]`);if(!l||!d||!f)return;let g=()=>e.dataset.plan===`pro`,_=e.querySelector(`[data-pro-value-note]`),v;function y(t,n={}){window.__properly?.trackEvent?.(t,{calculator_id:e.id||`pricing-calc`,calculator_variant:e.dataset.variant||`compact`,plan:e.dataset.plan||`standard`,...n})}let b=e=>{let p=typeof e==`number`?e:parseInt(String(e),10);(!Number.isFinite(p)||p<t)&&(p=t),p>n&&(p=n),l.value=String(p),u&&(u.value=String(p));let m=g()?o:i,h=g()?s:a;return d.textContent=r+c(m(p)),f.textContent=r+c(h(p)),p};function x(e,t){y(`pricing_calculator_change`,{method:e,property_count:t})}function S(e,t){v&&window.clearTimeout(v),v=window.setTimeout(()=>{x(e,t)},500)}let C=Array.from(m);function w(t,n=!0,r=!0){let i=e.dataset.plan||`standard`;if(e.dataset.plan=t,m.forEach(e=>{let n=e.dataset.planBtn===t;e.setAttribute(`aria-checked`,String(n)),e.setAttribute(`tabindex`,n?`0`:`-1`),e.classList.toggle(`bg-white`,n),e.classList.toggle(`text-gray-900`,n),e.classList.toggle(`shadow-sm`,n),e.classList.toggle(`text-gray-500`,!n),e.classList.toggle(`hover:text-gray-700`,!n)}),h&&h.classList.toggle(`hidden`,t!==`standard`),_&&_.classList.toggle(`hidden`,t!==`pro`),n){let e=new URL(window.location.href);t===`pro`?e.searchParams.set(`plan`,`pro`):e.searchParams.delete(`plan`),history.replaceState(null,``,e.toString())}let a=b(l.value);r&&i!==t&&y(`pricing_plan_select`,{selected_plan:t,property_count:a})}m.forEach(e=>{e.addEventListener(`click`,()=>{let t=e.dataset.planBtn;t&&w(t)})}
112),e.querySelector(`[data-plan-toggle]`)?.addEventListener(`keydown`,e=>{let t=e.key;if(![`ArrowLeft`,`ArrowRight`].includes(t))return;e.preventDefault();let n=C.findIndex(e=>e.getAttribute(`aria-checked`)===`true`),r=t===`ArrowRight`?(n+1)%C.length:(n-1+C.length)%C.length,i=C[r].dataset.planBtn;i&&w(i),C[r].focus()}),new URLSearchParams(window.location.search).get(`plan`)===`pro`&&m.length&&w(`pro`,!1,!1),l.addEventListener(`input`,e=>{S(`input`,b(e.target.value))}),u?.addEventListener(`input`,e=>{S(`slider`,b(e.target.value))}),p.forEach(e=>{e.addEventListener(`click`,()=>{let n=parseInt(e.getAttribute(`data-step`)||`1`,10),r=b((parseInt(l.value,10)||t)+n);x(n>0?`stepper_increase`:`stepper_decrease`,r)})})}document.querySelectorAll(`[data-pricing-calc]`).forEach(l);</script>
112 </div> <ul class="mt-4 flex-1 space-y-2"> <li class="flex items-center gap-2"> <svg class="h-4 w-4 shrink-0 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm text-gray-700"> <strong>Autoscheduler</strong> —  Synced to your booking calendar </span> </li> <li class="flex items-center gap-2"> <svg class="h-4 w-4 shrink-0 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm text-gray-700"> <strong>Photo checklists</strong> —  Unlimited, with proof of completion </span> </li> <li class="flex items-center gap-2"> <svg class="h-4 w-4 shrink-0 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm text-gray-700"> <strong>Airbnb + iCal sync</strong> —  Sync bookings automatically </span> </li> <li class="flex items-center gap-2"> <svg class="h-4 w-4 shrink-0 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm text-gray-700"> <strong>Service provider marketplace</strong> —  Find vetted cleaners in your area </span> </li> <li class="flex items-center gap-2"> <svg class="h-4 w-4 shrink-0 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm text-gray-700"> <strong>Reports &amp; dashboards</strong> —  Track quality and operations </span> </li> </ul> <div class="mt-4 rounded-lg border border-primary-100 bg-primary-50/60 p-2.5 text-center"> <!-- prettier-ignore --><p class="text-sm text-primary-800"> <strong>Managing a portfolio?</strong>  <a href="/book-demo?product=platform&amp;topic=portfolio" class="font-semibold text-primary-600 underline underline-offset-2 transition-colors hover:text-primary-800" data-ga-event="demo_cta_click" data-ga-label="pricing_platform_portfolio">Talk to us about custom pricing</a>.
113</p> </div> <div class="mt-auto pt-4"> <a href="https://app.getproperly.com/hostSignUpForm" class="group inline-flex w-full items-center justify-center gap-2 rounded-full bg-accent-500 px-6 py-3 text-sm font-bold text-primary-950 shadow-sm shadow-accent-500/20 transition-all duration-300 hover:bg-accent-600 hover:shadow-md hover:shadow-accent-500/30 hover:scale-[1.02] active:scale-[0.98] no-underline hover:no-underline" data-ga-event="sign_up" data-ga-label="pricing_platform_card"> Start Free Trial <svg class="h-4 w-4 transition-transform duration-300 group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6"></path> </svg> </a> <p class="mt-1.5 text-center text-xs text-gray-400">30-day free trial · No credit card</p> </div> </div> <div class="relative flex flex-col rounded-2xl border border-gray-200 bg-white p-6 shadow-sm transition-shadow duration-300 hover:shadow-md lg:p-7" data-animate-child="fade-in-up"> <div class="mb-1.5 font-mono text-xs font-bold uppercase tracking-widest text-primary-500"> Add oversight </div> <div class="absolute top-5 right-5"> <span class="inline-flex items-center rounded-full bg-primary-100 px-2.5 py-0.5 text-[11px] font-bold text-primary-700"> Expert Review + AI </span> </div> <div class="mb-3 flex h-10 w-10 items-center justify-center rounded-xl bg-primary-100"> <svg class="h-5 w-5 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"> <path stroke-linecap="round" stroke-linejoin="round" d="M2.036 12.322a1.012 1.012 0 010-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178z"></path> <path stroke-linecap="round" stroke-linejoin="round" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> </svg> </div> <h3 class="font-display text-2xl font-extrabold text-gray-900"> Real-Time Inspection </h3> <p class="mt-1.5 flex items-baseline gap-1"> <span class="font-mono text-3xl font-extrabold tracking-tight text-gray-900">$5</span> <span class="text-sm text-gray-500">/inspection</span> </p> <p class="mt-2 text-sm leading-relaxed text-gray-500">Experts with 5+ years avg. experience review every photo, AI-assisted. Issues flagged before guests arrive.</p> <ul class="mt-4 flex-1 space-y-2"> <li class="flex items-center gap-2"> <svg class="h-4 w-4 shrink-0 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm text-gray-700"> <strong>5+ Year Expert Reviewers</strong> — Seasoned inspectors, assisted by cutting-edge AI </span> </li> <li class="flex items-center gap-2"> <svg class="h-4 w-4 shrink-0 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm text-gray-700"> <strong>Damage documentation</strong>
113 — Timestamped evidence for claims </span> </li> <li class="flex items-center gap-2"> <svg class="h-4 w-4 shrink-0 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm text-gray-700"> <strong>Pre-check-in alerts</strong> —  Issues flagged before guests arrive </span> </li> <li class="flex items-center gap-2"> <svg class="h-4 w-4 shrink-0 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm text-gray-700"> <strong>Instant pass/fail report</strong> —  Full summary emailed within minutes </span> </li> </ul> <div class="mt-4 rounded-lg border border-gray-200 bg-gray-50 p-3"> <p class="mb-2 text-[10px] font-bold uppercase tracking-widest text-gray-400"> How it works </p> <ol class="flex items-start gap-1"> <li class="flex flex-1 flex-col items-center text-center"> <span class="mb-1 flex h-5 w-5 items-center justify-center rounded-full bg-primary-100 text-[10px] font-bold text-primary-700">
1141
115</span> <span class="text-[11px] leading-tight text-gray-600"> Cleaner submits photos </span> </li> <li aria-hidden="true" class="mt-2 shrink-0 select-none text-gray-300">
116›
117</li> <li class="flex flex-1 flex-col items-center text-center"> <span class="mb-1 flex h-5 w-5 items-center justify-center rounded-full bg-primary-100 text-[10px] font-bold text-primary-700">
1182
119</span> <span class="text-[11px] leading-tight text-gray-600"> Expert review, AI-assisted </span> </li> <li aria-hidden="true" class="mt-2 shrink-0 select-none text-gray-300">
120›
121</li> <li class="flex flex-1 flex-col items-center text-center"> <span class="mb-1 flex h-5 w-5 items-center justify-center rounded-full bg-primary-100 text-[10px] font-bold text-primary-700">
1223
123</span> <span class="text-[11px] leading-tight text-gray-600"> You get alerted before check-in </span> </li> </ol> </div> <div class="mt-3 rounded-lg border border-primary-100 bg-primary-50/60 p-2.5"> <p class="text-sm font-semibold text-primary-800">$5 prevents a $3,000 bad review — 500x ROI</p> </div> <div class="mt-auto pt-4"> <a href="/book-demo?product=inspection&amp;topic=ri-demo" class="group inline-flex w-full items-center justify-center gap-2 rounded-full bg-primary-600 px-6 py-3 text-sm font-bold text-white shadow-sm shadow-primary-600/20 transition-all duration-300 hover:bg-primary-700 hover:shadow-md hover:scale-[1.02] active:scale-[0.98] no-underline hover:no-underline" data-ga-event="demo_cta_click" data-ga-label="pricing_inspection_card"> Book a Demo <svg class="h-4 w-4 transition-transform duration-300 group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6"></path> </svg> </a> </div> </div> </div> <!-- Group 2: managed offers --> <div class="mb-6 mt-14" data-animate> <h2 class="font-display text-xl font-extrabold tracking-tight text-gray-900 md:text-2xl"> Have it handled </h2> <p class="mt-1 text-sm text-gray-500">Managed offers where Properly’s team runs guest support and operations with you.</p> </div> <div class="grid grid-cols-1 gap-6 lg:grid-cols-3" data-animate> <!-- ─── Cohost Pro ─── --><div class="relative flex flex-col rounded-2xl border border-gray-200 bg-white p-6 shadow-sm transition-shadow duration-300 hover:shadow-md lg:p-7" data-animate-child="fade-in-up"> <a href="/co-host" class="mb-1.5 self-start font-mono text-xs font-bold uppercase tracking-widest text-primary-500 no-underline hover:no-underline"> Cohost Pro </a> <p class="mt-1.5 flex flex-wrap items-baseline gap-1"> <span class="text-sm text-gray-500">from</span> <span class="font-mono text-3xl font-extrabold tracking-tight text-gray-900">
124$119 </span> <span class="text-sm text-gray-500">/active property/month</span> </p> <ul class="mt-4 flex-1 space-y-2 text-sm text-gray-700"> <li> <strong>Core operating coverage</strong> —  Guest communication, turnover coordination, remote inspection </li> <li> <strong>Revenue management</strong> —  Cohost Pro included · Guest Support Plus +$89/mo </li> </ul> <div class="mt-auto pt-4"> <a href="/book-demo?product=cohosting&amp;topic=property-manager&amp;ref=pricing_cohost_pm" class="group inline-flex w-full items-center justify-center gap-2 rounded-full bg-primary-600 px-5 py-3 text-sm font-bold text-white shadow-sm shadow-primary-600/20 transition-all duration-300 hover:bg-primary-700 hover:shadow-md hover:scale-[1.02] active:scale-[0.98] no-underline hover:no-underline" data-ga-event="demo_cta_click" data-ga-label="pricing_cohost_pro_card"> Book a Demo </a> </div> </div> <!-- ─── Guest Support Plus ─── --> <div class="relative flex flex-col rounded-2xl border border-gray-200 bg-white p-6 shadow-sm transition-shadow duration-300 hover:shadow-md lg:p-7" data-animate-child="fade-in-up"> <a href="/co-host-owners" class="mb-1.5 self-start font-mono text-xs font-bold uppercase tracking-widest text-primary-500 no-underline hover:no-underline"> Guest Support Plus </a> <p class="mt-1.5 flex flex-wrap items-baseline gap-1"> <span class="font-mono text-3xl font-extrabold tracking-tight text-gray-900">
125$149 </span> <span class="text-sm text-gray-500">/listing/month</span> </p> <ul class="mt-4 flex-1 space-y-2 text-sm text-gray-700"> <li> <strong>24/7 guest support</strong> —  3–5 minute target · 95% under 5 minutes </li> <li> <strong>Dynamic pricing</strong> —  Cohost Pro included · Guest Support Plus +$89/mo </li> <li> <strong>Damage claims</strong> —  Cohost Pro included · Guest Support Plus +$19/mo </li> </ul> <div class="mt-auto pt-4"> <a href="/book-demo?product=cohosting&amp;topic=guest-support&amp;ref=pricing_guest_support" class="group inline-flex w-full items-center justify-center gap-2 rounded-full bg-primary-600 px-5 py-3 text-sm font-bold text-white shadow-sm shadow-primary-600/20 transition-all duration-300 hover:bg-primary-700 hover:shadow-md hover:scale-[1.02] active:scale-[0.98] no-underline hover:no-underline" data-ga-event="demo_cta_click" data-ga-label="pricing_guest_support_plus_card"> Book a Demo </a> </div> </div> <div class="relative flex flex-col rounded-2xl border border-gray-200 bg-white p-6 shadow-sm transition-shadow duration-300 hover:shadow-md lg:p-7" data-animate-child="fade-in-up"> <div class="mb-1.5 font-mono text-xs font-bold uppercase tracking-widest text-ai-600"> Properly Actionable Intelligence </div> <div class="mb-3 flex h-10 w-10 items-center justify-center rounded-xl bg-purple-100"> <svg class="h-5 w-5 text-ai-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M9.813 15.904L9 18l-.813-2.096a4.5 4.5 0 00-2.591-2.591L3.5 12.5l2.096-.813a4.5 4.5 0 002.591-2.591L9 7l.813 2.096a4.5 4.5 0 002.591 2.591l2.096.813-2.096.813a4.5 4.5 0 00-2.591 2.591zM18.259 8.715L18 9.5l-.259-.785a3.375 3.375 0 00-2.456-2.456L14.5 6l.785-.259a3.375 3.375 0 002.456-2.456L18 2.5l.259.785a3.375 3.375 0 002.456 2.456L21.5 6l-.785.259a3.375 3.375 0 00-2.456 2.456z"></path> </svg> </div> <h3 class="font-display text-2xl font-extrabold text-gray-900"> Actionable Intelligence </h3> <div class="mt-4 rounded-xl border border-purple-100 bg-purple-50/70 p-3"> <p class="text-sm font-semibold leading-relaxed text-purple-900">One simple capture process. Expert-level output. Automated from there.</p> </div> <ul class="mt-4 flex-1 space-y-2.5"> <li class="flex items-start gap-2"> <svg class="mt-0.5 h-4 w-4 shrink-0 text-ai-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm font-semibold leading-relaxed text-gray-700">AI property onboarding</span> </li><li class="flex items-start gap-2"> <svg class="mt-0.5 h-4 w-4 shrink-0 text-ai-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm font-semibold leading-relaxed text-gray-700">Generated operating workflows</span> </li><li class="flex items-start gap-2"> <svg class="mt-0.5 h-4 w-4 shrink-0 text-ai-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="text-sm font-semibold leading-relaxed text-gray-700">Property-specific context</span> </li> </ul> <div class="mt-auto flex flex-col gap-3 pt-5 sm:flex-row sm:flex-wrap sm:*:whitespace-nowrap"> <a href="/book-demo?product=actionable-intelligence&amp;topic=onboarding" class="group inline-flex flex-1 items-center justify-center gap-2 rounded-full bg-primary-600 px-6 py-3 text-sm font-bold text-white shadow-sm shadow-primary-600/20 transition-all duration-300 hover:bg-primary-700 hover:shadow-md hover:scale-[1.02] active:scale-[0.98] no-underline hover:no-underline" data-ga-event="demo_cta_click" data-ga-label="pricing_actionable_intelligence_card"> Book a Demo </a> <a href="/actionable-intelligence" class="inline-flex flex-1 items-center justify-center rounded-full border border-primary-200 px-6 py-3 text-sm font-bold text-primary-700 transition-all hover:border-primary-300 hover:bg-primary-50 no-underline hover:no-underline" data-ga-event="select_content" data-ga-label="pricing_actionable_intelligence_learn_more"> Learn More </a> </div> </div> </div> <!-- Trust bar --> <p class="mt-8 text-center text-sm text-gray-400">Trusted by 10,000+ hosts across 45+ countries since 2014</p> </div> </section>  <section class="section-padding bg-white" data-animate> <div class="mx-auto max-w-[1280px] px-6 md:px-12 lg:px-20"> <div class="mx-auto mb-10 max-w-2xl text-center"> <p class="text-xs font-semibold uppercase tracking-[0.2em] text-primary-600"> All Plans Compared </p> <h2 class="mt-4 font-display text-3xl font-extrabold tracking-tight text-gray-900 md:text-4xl"> Which Plan Is Right for You? </h2> <p class="mt-4 text-base text-gray-500">
125Compare self-service tools, standalone inspection, and clearly scoped remote managed services side by side.</p> </div> <p class="mb-3 flex items-center justify-center gap-1.5 text-center text-xs font-semibold text-gray-500 lg:hidden" aria-hidden="true"> Swipe to compare all plans <svg class="h-3.5 w-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"> <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path> </svg> </p> <div class="relative mx-auto w-full min-w-0 max-w-5xl overflow-hidden rounded-2xl"> <div id="plan-compare-scroll" class="max-h-[80vh] overflow-auto rounded-2xl border border-gray-200 bg-white shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary-600" role="region" aria-label="Which Plan Is Right for You?" tabindex="0"> <table class="w-full min-w-[900px] text-sm"> <caption class="sr-only">Which Plan Is Right for You?</caption> <thead> <tr class="border-b border-gray-100"> <th scope="col" class="sticky left-0 top-0 z-30 w-[30%] max-sm:w-[150px] max-sm:min-w-[150px] max-sm:px-3 bg-gray-50 px-4 py-3 text-left font-semibold text-gray-600 sm:py-3.5"> Feature </th> <th scope="col" class="sticky top-0 z-20 bg-gray-50 px-3 py-3 text-center align-top sm:py-3.5 font-semibold text-gray-600"> Standard <span class="mt-0.5 block font-mono text-[11px] font-bold leading-tight text-gray-900"> <span class="sr-only">From </span> $12.99/property/mo </span> </th><th scope="col" class="sticky top-0 z-20 bg-gray-50 px-3 py-3 text-center align-top sm:py-3.5 font-bold text-primary-700"> Pro <span class="mt-0.5 block font-mono text-[11px] font-bold leading-tight text-gray-900"> <span class="sr-only">From </span> $14.99/property/mo </span> </th><th scope="col" class="sticky top-0 z-20 bg-gray-50 px-3 py-3 text-center align-top sm:py-3.5 font-bold text-accent-600"> Real-Time Inspection <span class="mt-0.5 block font-mono text-[11px] font-bold leading-tight text-gray-900"> <span class="sr-only">From </span> $5 / inspection </span> </th><th scope="col" class="sticky top-0 z-20 bg-gray-50 px-3 py-3 text-center align-top sm:py-3.5 font-bold text-primary-700"> Cohost Pro <span class="mt-0.5 block font-mono text-[11px] font-bold leading-tight text-gray-900"> <span class="sr-only">From </span> from $119/active property/month </span> </th><th scope="col" class="sticky top-0 z-20 bg-gray-50 px-3 py-3 text-center align-top sm:py-3.5 font-bold text-primary-700"> Guest Support Plus <span class="mt-0.5 block font-mono text-[11px] font-bold leading-tight text-gray-900"> <span class="sr-only">From </span> $149/listing/month </span> </th> </tr> </thead> <tbody class="divide-y divide-gray-100"> <tr class="bg-white"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-white"> Calendar sync </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700"> Airbnb + iCal </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700"> Standard + Direct API </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-accent-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td> </tr><tr class="bg-white"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-white"> PMS integrations </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700"> Airbnb, 50+ via iCal </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700"> Standard + Guesty, Hostaway, 10+ </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-accent-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
126—
127</span> </td> </tr><tr class="bg-white"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-white"> Photo checklists </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-accent-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td> </tr><tr class="bg-white"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-white"> Autoscheduler </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-accent-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td> </tr><tr class="bg-white"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-white"> Marketplace access </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-accent-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
128—
129</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
130—
131</span> </td> </tr><tr class="bg-white"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-white"> Reports &amp; dashboards </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-accent-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td> </tr><tr class="bg-white"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-white"> Mobile apps (iOS + Android) </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-accent-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td> </tr><tr class="bg-accent-50/30"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-amber-50"> AI photo analysis + Expert human review </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
132—
133</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
134—
135</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-accent-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td> </tr><tr class="bg-accent-50/30"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-amber-50"> Pre-check-in alerts </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
136—
137</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
138—
139</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-accent-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <spa
139n class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td> </tr><tr class="bg-accent-50/30"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-amber-50"> Damage documentation </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
140—
141</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
142—
143</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-accent-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700"> +$19/mo </td> </tr><tr class="bg-primary-50/30"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-teal-50"> 24/7 guest support </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
144—
145</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
146—
147</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
148—
149</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td> </tr><tr class="bg-primary-50/30"> <th scope="row" class="sticky left-0 z-10 px-4 py-2.5 text-gray-700 bg-teal-50"> Revenue optimization </th> <td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
150—
151</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
152—
153</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700" aria-label="Not included"> <span aria-hidden="true" class="text-gray-300">
154—
155</span> </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700">  <svg class="mx-auto h-4 w-4 text-primary-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> <span class="sr-only">Included</span>  </td><td class="px-3 py-2.5 text-center text-xs font-medium text-gray-700"> +$89/mo </td> </tr> </tbody> </table> </div> <div id="plan-compare-fade" class="pointer-events-none absolute inset-y-0 right-0 w-14 roun
155ded-r-2xl bg-gradient-to-l from-white via-white/70 to-transparent transition-opacity duration-200 lg:hidden" aria-hidden="true"></div> </div> <div class="mt-8 flex flex-col items-center justify-center gap-3 sm:flex-row sm:flex-wrap sm:*:whitespace-nowrap"> <a href="/book-demo?product=cohosting&amp;topic=pricing&amp;ref=pricing_page" class="inline-flex items-center justify-center gap-2 rounded-full bg-primary-600 px-7 py-3 text-sm font-bold text-white shadow-sm shadow-primary-600/20 transition-all duration-300 hover:bg-primary-700 hover:shadow-md hover:scale-[1.02] active:scale-[0.98] no-underline hover:no-underline" data-ga-event="demo_cta_click" data-ga-label="pricing_compare_book_demo"> Book a Demo </a> <a href="https://app.getproperly.com/hostSignUpForm" class="inline-flex items-center justify-center gap-2 rounded-full border border-primary-200 px-7 py-3 text-sm font-bold text-primary-700 transition-all hover:border-primary-300 hover:bg-primary-50 no-underline hover:no-underline" data-ga-event="sign_up" data-ga-label="pricing_compare_start_trial"> Start Free Trial </a> </div>
155<script type="module">var e=document.getElementById(`plan-compare-scroll`),t=document.getElementById(`plan-compare-fade`);if(e&&t){let n=()=>{let n=e.scrollLeft+e.clientWidth>=e.scrollWidth-8;t.style.opacity=n?`0`:`1`};e.addEventListener(`scroll`,n,{passive:!0}),window.addEventListener(`resize`,n,{passive:!0}),n()}</script>
155</div> </section>  <section class="section-padding bg-gray-50" data-animate> <div class="mx-auto max-w-[1280px] px-6 md:px-12 lg:px-20"> <div class="mx-auto mb-14 max-w-2xl text-center"> <p class="text-xs font-semibold uppercase tracking-[0.2em] text-primary-600"> Platform foundations </p> <h2 class="mt-4 font-display text-3xl font-extrabold tracking-tight text-gray-900 md:text-4xl"> All Platform Plans Include </h2> <p class="mt-4 text-base text-gray-500">Core self-service tools included with every Platform subscription.</p> </div> <div class="mx-auto grid max-w-4xl grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3" data-animate> <div class="flex items-start gap-3 rounded-xl border border-gray-100 bg-white p-5 transition-shadow hover:shadow-sm" data-animate-child="fade-in-up"> <div class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary-100"> <svg class="h-3.5 w-3.5 text-primary-700" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> </div> <span class="text-sm font-medium text-gray-700">Unlimited photo uploads</span> </div><div class="flex items-start gap-3 rounded-xl border border-gray-100 bg-white p-5 transition-shadow hover:shadow-sm" data-animate-child="fade-in-up"> <div class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary-100"> <svg class="h-3.5 w-3.5 text-primary-700" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> </div> <span class="text-sm font-medium text-gray-700">Unlimited checklists</span> </div><div class="flex items-start gap-3 rounded-xl border border-gray-100 bg-white p-5 transition-shadow hover:shadow-sm" data-animate-child="fade-in-up"> <div class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary-100"> <svg class="h-3.5 w-3.5 text-primary-700" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> </div> <span class="text-sm font-medium text-gray-700">Free checklist templates</span> </div><div class="flex items-start gap-3 rounded-xl border border-gray-100 bg-white p-5 transition-shadow hover:shadow-sm" data-animate-child="fade-in-up"> <div class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary-100"> <svg class="h-3.5 w-3.5 text-primary-700" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> </div> <span class="text-sm font-medium text-gray-700">Unlimited email &amp; push notifications</span> </div><div class="flex items-start gap-3 rounded-xl border border-gray-100 bg-white p-5 transition-shadow hover:shadow-sm" data-animate-child="fade-in-up"> <div class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary-100"> <svg class="h-3.5 w-3.5 text-primary-700" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> </div> <span class="text-sm font-medium text-gray-700">Web, iOS, and Android app access</span> </div><div class="flex items-start gap-3 rounded-xl border border-gray-100 bg-white p-5 transition-shadow hover:shadow-sm" data-animate-child="fade-in-up"> <div class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary-100"> <svg class="h-3.5 w-3.5 text-primary-700" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> </div> <span class="text-sm font-medium text-gray-700">Unlimited service provider additions</span> </div><div class="flex items-start gap-3 rounded-xl border border-gray-100 bg-white p-5 transition-shadow hover:shadow-sm" data-animate-child="fade-in-up"> <div class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary-100"> <svg class="h-3.5 w-3.5 text-primary-700" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> </div> <span class="text-sm font-medium text-gray-700">8-language support</span> </div><div class="flex items-start gap-3 rounded-xl border border-gray-100 bg-white p-5 transition-shadow hover:shadow-sm" data-animate-child="fade-in-up"> <div class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary-100"> <svg class="h-3.5 w-3.5 text-primary-700" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> </div> <span class="text-sm font-medium text-gray-700">Airbnb + iCal calendar sync (Standard); direct PMS API (Pro)</span> </div><div class="flex items-start gap-3 rounded-xl border border-gray-100 bg-white p-5 transition-shadow hover:shadow-sm" data-animate-child="fade-in-up"> <div class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary-100"> <svg class="h-3.5 w-3.5 text-primary-700" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> </svg> </div> <span class="text-sm font-medium text-gray-700">30-day free trial of the Platform</span> </div> </div> </div> </section>  <section class="section-padding bg-primary-50/50" data-animate> <div class="mx-auto max-w-[1280px] px-6 md:px-12 lg:px-20"> <div class="mx-auto mb-14 max-w-2xl text-center"> <p class="text-xs font-semibold uppercase tracking-[0.2em] text-primary-600"> What hosts say </p> <h2 class="mt-4 font-display text-3xl font-extrabold tracking-tight text-gray-900 md:text-4xl"> Worth Every Dollar </h2> </div> <div class="grid grid-cols-1 gap-6 md:grid-cols-3 md:gap-8" data-animate> <div class="rounded-2xl border border-gray-200/80 bg-white p-8 shadow-sm transition-shadow hover:shadow-md" data-animate-child="fade-in-up">  <div class="flex gap-0.5 mb-5" role="img" aria-label="5 out of 5 stars">
155 <svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg><svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg><svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg><svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg><svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg> </div> <blockquote class="text-sm leading-relaxed text-gray-600">"Having the optional real-time inspection service is a great plus for me, especially on days where I&#39;m fully booked and have no time to do live check-ins on ongoing jobs."</blockquote> <div class="mt-6 flex items-center gap-3"> <div class="flex h-10 w-10 items-center justify-center rounded-full bg-primary-600 text-sm font-bold text-white"> M </div> <div> <p class="text-sm font-semibold text-gray-900">Melissa D.</p> </div> </div> </div><div class="rounded-2xl border border-gray-200/80 bg-white p-8 shadow-sm transition-shadow hover:shadow-md" data-animate-child="fade-in-up">  <div class="flex gap-0.5 mb-5" role="img" aria-label="5 out of 5 stars"> <svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg><svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg><svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg>
155<svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg><svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg> </div> <blockquote class="text-sm leading-relaxed text-gray-600">"After signing up with Properly, I was able to see an increase in my income. Not only were my listings performing better, but because my fees were a lot less, I got to enjoy a bigger percentage of my earnings."</blockquote> <div class="mt-6 flex items-center gap-3"> <div class="flex h-10 w-10 items-center justify-center rounded-full bg-primary-600 text-sm font-bold text-white"> P </div> <div> <p class="text-sm font-semibold text-gray-900">Paul K.</p> </div> </div> </div><div class="rounded-2xl border border-gray-200/80 bg-white p-8 shadow-sm transition-shadow hover:shadow-md" data-animate-child="fade-in-up">  <div class="flex gap-0.5 mb-5" role="img" aria-label="5 out of 5 stars"> <svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg><svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg><svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg><svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg><svg class="h-4 w-4 text-accent-500" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> <path fill-rule="evenodd" d="M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z" clip-rule="evenodd"></path> </svg> </div> <blockquote class="text-sm leading-relaxed text-gray-600">"The service provider network is one of the most helpful features for me, because it allows me to access plenty of trained and experienced service providers if my own aren&#39;t available, and I can trust that they&#39;ll get the job done, perfectly."</blockquote> <div class="mt-6 flex items-center gap-3"> <div class="flex h-10 w-10 items-center justify-center rounded-full bg-primary-600 text-sm font-bold text-white"> H </div> <div> <p class="text-sm font-semibold text-gray-900">Harper M.</p> </div> </div> </div> </div> </div> </section>  <section class="bg-white pt-12 pb-2"> <div class="mx-auto max-w-[1280px] px-6 md:px-12 lg:px-20"> <p class="mx-auto max-w-3xl text-center text-sm leading-relaxed text-gray-500"> Properly offers a SaaS Platform from $12.99/property/month, Real-Time Inspection at $5/inspection, Cohost Pro from $119/active property/month, and Guest Support Plus at $149/listing/month. Actionable Intelligence is a distinct AI property-onboarding offer with pricing and scope provided through a demo. The 30-day trial applies only to the Platform. </p> </div> </section>  <section class="section-padding bg-white"> <div class="mx-auto max-w-[1280px] px-6 md:px-12 lg:px-20"> <div class="mx-auto mb-14 max-w-2xl text-center" data-animate> <p class="text-xs font-semibold uppercase tracking-[0.2em] text-primary-600"> Common questions </p> <h2 class="mt-4 font-display text-3xl font-extrabold tracking-tight text-gray-900 md:text-4xl"> Pricing FAQ </h2> <!-- prettier-ignore --> <p class="mt-4 text-base text-gray-500"> Have another question? <a href="https://help.getproperly.com/en/" class="font-semibold text-primary-600 hover:text-primary-700 transition-colors">Contact our support team</a>.
156</p> </div> <div class="mx-auto max-w-3xl space-y-10"> <div> <h3 class="text-xs font-bold uppercase tracking-[0.16em] text-primary-700"> About the Platform trial </h3> <div class="mt-2 divide-y divide-gray-100"> <details class="faq-item group py-5"> <summary class="flex cursor-pointer items-center justify-between gap-4 font-display font-semibold text-gray-900"> <span>Can I cancel the Platform anytime?</span> <svg class="faq-chevron h-5 w-5 shrink-0 text-gray-400 transition-transform duration-200" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path> </svg> </summary> <p class="pt-3 pb-2 text-gray-600 leading-relaxed">Yes. Platform subscriptions can be cancelled anytime without a cancellation fee. Managed-service terms are separate: Cohost Pro has a 12-month initial term and Guest Support Plus requires 30 days’ written notice.</p> </details>
156<details class="faq-item group py-5"> <summary class="flex cursor-pointer items-center justify-between gap-4 font-display font-semibold text-gray-900"> <span>What happens after the trial?</span> <svg class="faq-chevron h-5 w-5 shrink-0 text-gray-400 transition-transform duration-200" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path> </svg> </summary> <p class="pt-3 pb-2 text-gray-600 leading-relaxed">After your 30-day free trial of the Platform, you can continue with a paid Platform plan or explore Properly&#39;s managed services. Real-Time Inspection is also available standalone or alongside the Platform.</p> </details><details class="faq-item group py-5"> <summary class="flex cursor-pointer items-center justify-between gap-4 font-display font-semibold text-gray-900"> <span>Do I need a credit card?</span> <svg class="faq-chevron h-5 w-5 shrink-0 text-gray-400 transition-transform duration-200" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path> </svg> </summary> <p class="pt-3 pb-2 text-gray-600 leading-relaxed">No. You can start your 30-day free trial without entering any payment information. We only ask for payment details when you decide to continue with a paid plan.</p> </details><details class="faq-item group py-5"> <summary class="flex cursor-pointer items-center justify-between gap-4 font-display font-semibold text-gray-900"> <span>How does billing work?</span> <svg class="faq-chevron h-5 w-5 shrink-0 text-gray-400 transition-transform duration-200" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path> </svg> </summary> <p class="pt-3 pb-2 text-gray-600 leading-relaxed">Platform billing is monthly and tiered by volume, starting at $12.99/property/month and scaling down to $5. Managed services have separate pricing and terms.</p> </details><details class="faq-item group py-5"> <summary class="flex cursor-pointer items-center justify-between gap-4 font-display font-semibold text-gray-900"> <span>Is there a free trial?</span> <svg class="faq-chevron h-5 w-5 shrink-0 text-gray-400 transition-transform duration-200" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path> </svg> </summary> <p class="pt-3 pb-2 text-gray-600 leading-relaxed">Yes. The Platform has a 30-day free trial with no credit card required. Managed services do not use the Platform trial terms.</p> </details> </div> </div><div> <h3 class="text-xs font-bold uppercase tracking-[0.16em] text-primary-700"> About managed services &amp; inspection </h3> <div class="mt-2 divide-y divide-gray-100"> <details class="faq-item group py-5"> <summary class="flex cursor-pointer items-center justify-between gap-4 font-display font-semibold text-gray-900"> <span>What are Managed Services?</span> <svg class="faq-chevron h-5 w-5 shrink-0 text-gray-400 transition-transform duration-200" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path> </svg> </summary> <p class="pt-3 pb-2 text-gray-600 leading-relaxed">Managed Services comprise Guest Support Plus for owners at $149/listing/month and Cohost Pro for professional managers from $119/active property/month. Each has its own scope and commercial terms.</p> </details><details class="faq-item group py-5"> <summary class="flex cursor-pointer items-center justify-between gap-4 font-display font-semibold text-gray-900"> <span>What is Real-Time Inspection?</span> <svg class="faq-chevron h-5 w-5 shrink-0 text-gray-400 transition-transform duration-200" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path> </svg> </summary> <p class="pt-3 pb-2 text-gray-600 leading-relaxed">Real-Time Inspection is a standalone $5-per-inspection service where experienced inspectors, assisted by AI, review turnover photos and flag issues before guests arrive. Use it on its own or alongside the Platform.</p> </details> </div> </div> </div> </div> </section>   <section class="relative overflow-hidden grain" style="background: linear-gradient(170deg, #0A2E33 0%, #0D4D56 100%);" data-ga-section-view="pricing_bottom_cta"> <div class="relative z-10 mx-auto max-w-[1280px] px-6 py-20 text-center md:px-12 md:py-28 lg:px-20"> <h2 class="mx-auto max-w-2xl font-display text-3xl font-extrabold tracking-tight text-white md:text-4xl lg:text-5xl"> Find the Right Properly Offer for Your Operation </h2> <p class="mx-auto mt-6 max-w-xl text-lg text-white/50">Book a demo to compare managed services, Real-Time Inspection, and the self-service Platform.</p> <div class="mt-10 flex flex-col items-center justify-center gap-4 sm:flex-row sm:flex-wrap sm:*:whitespace-nowrap"> <a href="/book-demo?product=cohosting&amp;topic=pricing&amp;ref=pricing_page" class="group inline-flex items-center gap-2 rounded-full bg-accent-500 px-8 py-4 text-base font-bold text-primary-950 shadow-lg shadow-accent-500/20 transition-all duration-300 hover:bg-accent-600 hover:shadow-xl hover:scale-[1.03] active:scale-[0.98] no-underline hover:no-underline" data-ga-event="demo_cta_click" data-ga-label="pricing_bottom_cta_managed_services"> Book a Demo <svg class="h-4 w-4 transition-transform duration-300 group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6"></path> </svg> </a> <a href="https://app.getproperly.com/hostSignUpForm" class="group inline-flex items-center gap-2 rounded-full border border-white/20 px-8 py-4 text-base font-semibold text-white/90 transition-all duration-300 hover:border-white/40 hover:bg-white/5 no-underline hover:no-underline" data-ga-event="sign_up" data-ga-label="pricing_bottom_cta_platform_trial"> Start Free Trial <svg class="h-4 w-4 transition-transform duration-300 group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6"></path> </svg> </a> </div> </div> </section>  </main> <!-- Pre-footer CTA block --> <!-- Footer --> <footer class="bg-primary-900 text-white/80" role="contentinfo"> <div class="mx-auto max-w-[1200px] px-6 py-12 md:px-12 lg:px-20 lg:py-16"> <!-- Footer grid: the brand column gets 1.5 shares at lg so its app-store badges aren't squeezed. --><div class="grid grid-cols-2 gap-10 sm:grid-cols-3 lg:grid-cols-[1.5fr_repeat(5,minmax(0,1fr))] lg:gap-6 xl:grid-cols-6"> <!-- Column 1: Brand --><div class="col-span-2 sm:col-span-3 lg:col-span-1"> <a href="/" class="inline-block font-display text-2xl font-extrabold tracking-tight text-white no-underline hover:no-underline">
157PROPERLY
158</a> <p class="mt-4 max-w-xs text-sm leading-relaxed">Remote vacation-rental operations for owners and professional property managers.</p> <div class="mt-6 flex flex-col gap-3"> <a href="https://apple.co/3cpJDrS" target="_blank" rel="noopener noreferrer" class="inline-flex w-fit items-center gap-2.5 rounded-lg border border-white/15 bg-white/5 px-4 py-2.5 text-xs font-semibold text-white/90 transition-colors duration-200 hover:border-white/30 hover:bg-white/10 hover:text-white" aria-label="Download on the App Store" data-ga-event="app_store_click" data-ga-category="app_download" data-ga-label="app_store"> <!-- Apple icon -->
158<svg class="h-5 w-5 shrink-0" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.8-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.19-.69.85-1.83 1.51-2.95 1.42-.15-1.15.41-2.35 1.05-3.11z"></path> </svg> <span class="flex flex-col leading-tight"> <span class="text-[10px] font-normal text-white/60">Download on the</span> <span class="text-sm">App Store</span> </span> </a> <a href="https://play.google.com/store/apps/details?id=com.getproperly.properlyv2" target="_blank" rel="noopener noreferrer" class="inline-flex w-fit items-center gap-2.5 rounded-lg border border-white/15 bg-white/5 px-4 py-2.5 text-xs font-semibold text-white/90 transition-colors duration-200 hover:border-white/30 hover:bg-white/10 hover:text-white" aria-label="Get it on Google Play" data-ga-event="app_store_click" data-ga-category="app_download" data-ga-label="google_play"> <!-- Google Play icon --><svg class="h-5 w-5 shrink-0" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M3.609 1.814L13.792 12 3.61 22.186a.996.996 0 01-.61-.92V2.734a1 1 0 01.609-.92zm10.89 10.893l2.302 2.302-10.937 6.333 8.635-8.635zm3.199-3.199l2.302 1.33-3.066 1.775-2.093-2.093 2.857-1.012zM5.864 2.658L16.8 8.99l-2.302 2.302-8.635-8.635z"></path> </svg> <span class="flex flex-col leading-tight"> <span class="text-[10px] font-normal text-white/60">Get it on</span> <span class="text-sm">Google Play</span> </span> </a> </div> </div> <!-- Column 2: Products --> <div> <h3 class="text-xs font-bold uppercase tracking-widest text-white/60"> Products </h3> <ul class="mt-5 space-y-3.5"> <li> <a href="/platform" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Platform"> Platform </a> </li><li> <a href="/actionable-intelligence" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Actionable Intelligence"> Actionable Intelligence </a> </li><li> <a href="/real-time-inspection" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Real-Time Inspection"> Real-Time Inspection </a> </li><li> <a href="/co-host" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Cohost Pro"> Cohost Pro </a> </li><li> <a href="/co-host-owners" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Guest Support Plus"> Guest Support Plus </a> </li> </ul> </div> <!-- Column 3: Features --> <div> <h3 class="text-xs font-bold uppercase tracking-widest text-white/60"> Features </h3> <ul class="mt-5 space-y-3.5"> <li> <a href="/autoscheduler" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Autoscheduler"> Autoscheduler </a> </li><li> <a href="/features/photo-checklists" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Photo Checklists"> Photo Checklists </a> </li><li> <a href="/features/marketplace" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Marketplace"> Marketplace </a> </li><li> <a href="/skills" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Skills &amp; Training"> Skills &amp; Training </a> </li><li> <a href="/ai" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="AI &amp; Innovation"> AI &amp; Innovation </a> </li><li> <a href="/features" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="All Features"> All Features </a> </li> </ul> </div> <!-- Column 4: Solutions --> <div> <h3 class="text-xs font-bold uppercase tracking-widest text-white/60"> Solutions </h3> <ul class="mt-5 space-y-3.5"> <li> <a href="/" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="For Property Owners"> For Property Owners </a> </li><li> <a href="/property-managers" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="For Property Managers"> For Property Managers </a> </li><li> <a href="/service-providers" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="For Service Providers"> For Service Providers </a> </li> </ul> </div> <!-- Column 5: Resources --> <div> <h3 class="text-xs font-bold uppercase tracking-widest text-white/60"> Resources </h3> <ul class="mt-5 space-y-3.5"> <li> <a href="/blog" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Blog"> Blog </a> </li><li> <a href="/case-studies" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Case Studies"> Case Studies </a> </li><li> <a href="/str-shopping-list" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Vacation Rental Shopping List"> Vacation Rental Shopping List </a> </li><li> <a href="/properly-vs-turno" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Properly vs Turno"> Properly vs Turno </a> </li><li> <a href="/properly-vs-breezeway" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Properly vs Breezeway"> Properly vs Breezeway </a> </li><li> <a href="/partners" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Partners"> Partners </a> </li><li> <a href="/about" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="About"> About Us </a> </li><li> <a href="/pricing" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Plans &amp; Pricing"> Plans &amp; Pricing </a> </li><li> <a href="/careers" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Careers"> Careers </a> </li><li> <a href="https://help.getproperly.com/en/" target="_blank" rel="noopener noreferrer" class="block py-1 text-sm text-white/80 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Support"> Support </a> </li> </ul> </div> <!-- Column 6: Connect --> <div> <h3 class="text-xs font-bold uppercase tracking-widest text-white/60"> Connect </h3> <ul class="mt-5 flex flex-wrap gap-3"> <li> <a href="https://www.facebook.com/GetProperly/" target="_blank" rel="noopener noreferrer" class="inline-flex h-11 w-11 items-center justify-center rounded-lg border border-white/10 bg-white/5 text-white/60 transition-all duration-200 hover:border-primary-500/40 hover:bg-primary-500/10 hover:text-primary-500" aria-label="Facebook" data-ga-event="social_click" data-ga-label="facebook"> <svg class="h-[18px] w-[18px]" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"></path> </svg> </a> </li> <li> <a href="https://www.linkedin.com/company/properly-inc/" target="_blank" rel="noopener noreferrer" class="inline-flex h-11 w-11 items-center justify-center rounded-lg border border-white/10 bg-white/5 text-white/60 transition-all duration-200 hover:border-primary-500/40 hover:bg-primary-500/10 hover:text-primary-500" aria-label="LinkedIn" data-ga-event="social_click" data-ga-label="linkedin"> <svg class="h-[18px] w-[18px]" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path> </svg> </a> </li> <li> <a href="https://www.instagram.com/theproperlyteam/" target="_blank" rel="noopener noreferrer" class="inline-flex h-11 w-11 items-center justify-center rounded-lg border border-white/10 bg-white/5 text-white/60 transition-all duration-200 hover:border-primary-500/40 hover:bg-primary-500/10 hover:text-primary-500" aria-label="Instagram" data-ga-event="social_click" data-ga-label="instagram"> <svg class="h-[18px] w-[18px]" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 
15812 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678a6.162 6.162 0 100 12.324 6.162 6.162 0 100-12.324zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405a1.441 1.441 0 11-2.88 0 1.441 1.441 0 012.88 0z"></path> </svg> </a> </li> <li> <a href="https://x.com/GetProperly" target="_blank" rel="noopener noreferrer" class="inline-flex h-11 w-11 items-center justify-center rounded-lg border border-white/10 bg-white/5 text-white/60 transition-all duration-200 hover:border-primary-500/40 hover:bg-primary-500/10 hover:text-primary-500" aria-label="X (formerly Twitter)" data-ga-event="social_click" data-ga-label="twitter"> <svg class="h-[16px] w-[16px]" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path> </svg> </a> </li> <li> <a href="https://www.youtube.com/@getproperly" target="_blank" rel="noopener noreferrer" class="inline-flex h-11 w-11 items-center justify-center rounded-lg border border-white/10 bg-white/5 text-white/60 transition-all duration-200 hover:border-primary-500/40 hover:bg-primary-500/10 hover:text-primary-500" aria-label="YouTube" data-ga-event="social_click" data-ga-label="youtube"> <svg class="h-[18px] w-[18px]" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> <path d="M23.498 6.186a3.016 3.016 0 00-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 00.502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 002.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 002.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"></path> </svg> </a> </li> </ul> </div> </div> <!-- Bottom bar --> <div class="mt-12 border-t border-primary-700/50 pt-8 lg:mt-16"> <div class="flex flex-col items-center gap-4 text-center sm:flex-row sm:justify-between sm:text-left"> <!-- Copyright + legal links --><div class="flex flex-col items-center gap-x-5 gap-y-2 sm:flex-row"> <p class="text-xs text-white/60"> © 2014–2026 Properly Inc. All rights reserved. </p> <ul class="flex items-center gap-5"> <li> <a href="/terms" class="text-xs text-white/60 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Terms of Service"> Terms of Service </a> </li><li> <a href="/privacy" class="text-xs text-white/60 transition-colors duration-200 hover:text-primary-500 hover:no-underline" data-ga-event="navigation_click" data-ga-category="footer" data-ga-label="Privacy Policy"> Privacy Policy </a> </li> </ul> </div> <!-- Positioning descriptor --> <p class="text-xs text-white/60">Vacation rental quality management</p> </div> </div> </div> </footer>  <!-- Intercom Chat Widget — delayed until interaction or 10s after load to protect initial LCP --> 
158<script>
159      (function () {
160        let loaded = false;
161        let passiveLoadTimer;
162        function loadIntercom() {
163          if (loaded) return;
164          if (passiveLoadTimer) {
165            window.clearTimeout(passiveLoadTimer);
166            passiveLoadTimer = undefined;
167          }
168          // Intercom is functional support chat (not advertising/analytics), so it
169          // loads regardless of cookie consent — deferred so it does not compete
170          // with first paint/LCP work.
171          loaded = true;
172          window.intercomSettings = {
173            api_base: 'https://api-iam.intercom.io',
174            app_id: 'qr66vi0q',
175            // Below lg the sticky bottom CTA bar (~65px) owns the bottom edge;
176            // lift the launcher above it so it never covers the CTA button.
177            vertical_padding: window.matchMedia('(max-width: 1023px)').matches ? 88 : 20,
178          };
179          const w = window;
180          const ic = w.Intercom;
181          if (typeof ic === 'function') {
182            ic('reattach_activator');
183            ic('update', w.intercomSettings);
184          } else {
185            /* eslint-disable prefer-rest-params, no-var */
186            var d = document;
187            var i = function () {
188              i.c(arguments);
189            };
190            i.q = [];
191            i.c = function (args) {
192              i.q.push(args);
193            };
194            w.Intercom = i;
195            var s = d.createElement('script');
196            s.type = 'text/javascript';
197            s.async = true;
198            s.src = 'https://widget.intercom.io/widget/qr66vi0q';
199            var x = d.getElementsByTagName('script')[0];
200            x.parentNode.insertBefore(s, x);
201            /* eslint-enable prefer-rest-params, no-var */
202          }
203          // Track Intercom chat engagement via GA4
204          function trackIntercom(ic) {
205            if (typeof ic !== 'function') return;
206            ic('onShow', function () {
207              if (w.__properly && w.__properly.trackEvent) {
208                w.__properly.trackEvent('chat_open', { chat_provider: 'intercom' });
209              }
210            });
211            ic('onUserReplyMessage', function () {
212              if (w.__properly && w.__properly.trackEvent) {
213                w.__properly.trackEvent('chat_message_sent', { chat_provider: 'intercom' });
214              }
215            });
216          }
217          // Intercom may not be fully ready yet — poll briefly
218          let pollCount = 0;
219          const pollTimer = setInterval(function () {
220            pollCount++;
221            if (typeof w.Intercom === 'function' && w.Intercom.booted !== false) {
222              trackIntercom(w.Intercom);
223              clearInterval(pollTimer);
224            } else if (pollCount > 50) {
225              clearInterval(pollTimer);
226            }
227          }, 200);
228
229          // Clean up listeners after loading
230          window.removeEventListener('scroll', loadIntercom);
231          window.removeEventListener('click', loadIntercom);
232          window.removeEventListener('touchstart', loadIntercom);
233          window.removeEventListener('pointerdown', loadIntercom);
234          window.removeEventListener('keydown', loadIntercom);
235        }
236        window.addEventListener('scroll', loadIntercom, { once: true, passive: true });
237        window.addEventListener('click', loadIntercom, { once: true });
238        window.addEventListener('touchstart', loadIntercom, { once: true, passive: true });
239        window.addEventListener('pointerdown', loadIntercom, { once: true, passive: true });
240        window.addEventListener('keydown', loadIntercom, { once: true });
241
242        // Fallback: load for passive visitors, but outside the initial Lighthouse
243        // mobile measurement window.
244        function schedulePassiveLoad() {
245          passiveLoadTimer = window.setTimeout(loadIntercom, 10000);
246        }
247        if (document.readyState === 'complete') {
248          schedulePassiveLoad();
249        } else {
250          window.addEventListener('load', schedulePassiveLoad, { once: true });
251        }
252      })();
253    </script>
253<!-- Scroll-triggered animations via Intersection Observer --> 
253<script>
254      (function () {
255        function initObserver() {
256          const els = document.querySelectorAll('[data-animate]');
257          if (!els.length) return;
258          // Respect prefers-reduced-motion
259          if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
260            els.forEach(function (el) {
261              el.classList.remove('data-animate-hidden');
262            });
263            return;
264          }
265          const observer = new IntersectionObserver(
266            function (entries) {
267              entries.forEach(function (entry) {
268                if (entry.isIntersecting) {
269                  const el = entry.target;
270                  el.classList.remove('data-animate-hidden');
271                  // Support custom animation direction via data-animate value
272                  const anim = el.getAttribute('data-animate') || 'fade-in-up';
273                  el.classList.add('animate-' + anim);
274                  // Support animation delay via data-animate-delay
275                  const delay = el.getAttribute('data-animate-delay');
276                  if (delay) el.style.animationDelay = delay;
277                  // Auto-stagger children with [data-animate-child]
278                  const children = el.querySelectorAll('[data-animate-child]');
279                  children.forEach(function (child, i) {
280                    child.classList.remove('data-animate-hidden');
281                    const childAnim = child.getAttribute('data-animate-child') || 'fade-in-up';
282                    child.classList.add('animate-' + childAnim);
283                    child.style.animationDelay = i * 120 + 'ms';
284                  });
285                  observer.unobserve(el);
286                }
287              });
288            },
289            { threshold: 0.1, rootMargin: '0px 0px -40px 0px' },
290          );
291          els.forEach(function (el) {
292            el.classList.add('data-animate-hidden');
293            // Also hide children that will be staggered
294            const children = el.querySelectorAll('[data-animate-child]');
295            children.forEach(function (child) {
296              child.classList.add('data-animate-hidden');
297            });
298            observer.observe(el);
299          });
300        }
301        if (document.readyState === 'complete' || document.readyState === 'interactive') {
302          initObserver();
303        } else {
304          document.addEventListener('DOMContentLoaded', initObserver);
305        }
306        document.addEventListener('astro:page-load', initObserver);
307      })();
308    </script>
308<!-- Sticky mobile CTA bar — appears after scrolling past hero --> <div id="sticky-cta" class="fixed bottom-0 left-0 right-0 z-40 translate-y-full transition-transform duration-300 lg:hidden" aria-hidden="true" inert> <div class="flex items-center justify-between gap-3 border-t border-gray-200 bg-white/95 px-4 py-3 pb-[max(0.75rem,env(safe-area-inset-bottom))] backdrop-blur-lg shadow-[0_-4px_16px_rgba(0,0,0,0.08)]"> <a href="/book-demo?product=cohosting&amp;topic=pricing" class="block w-full rounded-full bg-accent-500 px-5 py-3 text-center text-sm font-bold text-primary-950 shadow-sm transition-all duration-200 hover:bg-accent-600 no-underline hover:no-underline" data-ga-event="demo_cta_click" data-ga-label="sticky_mobile"> Book a Demo </a> </div> </div> 
308<script>
309      (function () {
310        let stickyCta = document.getElementById('sticky-cta');
311        if (!stickyCta) return;
312        let shown = false;
313
314        /** Returns true when the cookie-consent banner is currently visible (not translated off-screen). */
315        function isCookieBannerVisible() {
316          const banner = document.getElementById('cookie-consent');
317          // Banner is visible when it exists, is not aria-hidden, and has not been slid away
318          if (!banner) return false;
319          if (banner.getAttribute('aria-hidden') === 'true') return false;
320          return banner.classList.contains('translate-y-full') === false;
321        }
322
323        function checkScroll() {
324          const shouldShow = window.scrollY > 600 && !isCookieBannerVisible();
325          if (shouldShow && !shown) {
326            stickyCta.classList.remove('translate-y-full');
327            stickyCta.setAttribute('aria-hidden', 'false');
328            // Keep the bar's link out of the tab order / a11y tree while hidden,
329            // and restore it here. inert mirrors aria-hidden so keyboard and
330            // screen-reader users can't reach an off-screen CTA.
331            stickyCta.removeAttribute('inert');
332            shown = true;
333          } else if (!shouldShow && shown) {
334            stickyCta.classList.add('translate-y-full');
335            stickyCta.setAttribute('aria-hidden', 'true');
336            stickyCta.setAttribute('inert', '');
337            shown = false;
338          }
339        }
340
341        window.addEventListener('scroll', checkScroll, { passive: true });
342
343        // Re-evaluate when the cookie banner is dismissed so the sticky CTA can appear immediately
344        window.addEventListener('consentGranted', checkScroll);
345        // Also re-check when the banner hides after a rejection (fired by cookie-consent script)
346        window.addEventListener('consentDismissed', checkScroll);
347
348        document.addEventListener('astro:page-load', function () {
349          stickyCta = document.getElementById('sticky-cta');
350          shown = false;
351          checkScroll();
352        });
353      })();
354    </script>
354<!-- Google Analytics — always load gtag.js; Consent Mode gates storage --> 
354<script>(function(){const analyticsTagId = "GT-NBXPWL5";
355
356      (function () {
357        const s = document.createElement('script');
358        s.async = true;
359        s.src = 'https://www.googletagmanager.com/gtag/js?id=' + encodeURIComponent(analyticsTagId);
360        document.head.appendChild(s);
361      })();
362    })();</script>
362<!-- Analytics event tracking initialization --> 
362<script type="module" src="/_astro/BaseLayout.astro_astro_type_script_index_0_lang.INiKB_zu.js"></script>
362<!-- UTM parameter forwarding to external links (signup, login, findacleaner) --> 
362<script type="module" src="/_astro/BaseLayout.astro_astro_type_script_index_1_lang.ocehvnp3.js"></script>
362<div id="cookie-consent" class="fixed bottom-0 inset-x-0 z-[60] translate-y-full transition-transform duration-500 ease-out" role="alertdialog" aria-label="Cookie consent" aria-describedby="cookie-consent-message" aria-hidden="true" inert> <div class="mx-auto max-w-[820px] px-4 pb-[max(1rem,env(safe-area-inset-bottom))] sm:px-6"> <div class="rounded-2xl border border-gray-200 bg-white p-5 shadow-[0_-8px_30px_rgba(0,0,0,0.1)] sm:p-6"> <div id="cookie-consent-message" class="text-sm leading-relaxed text-gray-600"> We use cookies for analytics and to improve your experience. We share data with Google Analytics and Intercom. See our Privacy Policy for details. <a href="/privacy" class="font-medium text-primary-600 underline underline-offset-2 transition-colors duration-150 hover:text-primary-700"> Privacy Policy </a> </div> <!-- Consent choices: decline (all denied) / accept (analytics granted, no ad signals) --> <div class="mt-4 flex flex-wrap items-center gap-2 sm:justify-end"> <button id="cookie-reject" type="button" class="min-h-11 rounded-lg border border-gray-300 bg-white px-4 py-2 text-sm font-semibold text-gray-700 transition-colors duration-150 hover:bg-gray-50 hover:border-gray-400"> Decline </button> <button id="cookie-accept" type="button" class="min-h-11 rounded-lg bg-primary-600 px-4 py-2 text-sm font-semibold text-white shadow-sm transition-colors duration-150 hover:bg-primary-700"> Accept </button> </div> </div> </div> </div> 
362<script>
363  (function () {
364    const COOKIE_NAME = 'properly_consent';
365
366    function getCookie(name) {
367      const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
368      return match ? match[2] : null;
369    }
370
371    function setCookie(name, value, days) {
372      const d = new Date();
373      d.setTime(d.getTime() + days * 24 * 60 * 60 * 1000);
374      const secure = location.protocol === 'https:' ? ';Secure' : '';
375      document.cookie =
376        name + '=' + value + ';expires=' + d.toUTCString() + ';path=/;SameSite=Lax' + secure;
377    }
378
379    function trackConsentEvent(eventName, params) {
380      if (window.__properly && window.__properly.trackEvent) {
381        window.__properly.trackEvent(eventName, params || {});
382        return;
383      }
384
385      const eventParams = Object.assign({}, params || {}, { page_path: window.location.pathname });
386      if (typeof window.gtag === 'function') {
387        window.gtag('event', eventName, eventParams);
388      } else {
389        window.dataLayer = window.dataLayer || [];
390        window.dataLayer.push(['event', eventName, eventParams]);
391      }
392    }
393
394    // If consent has already been recorded, do nothing
395    if (getCookie(COOKIE_NAME)) return;
396
397    const banner = document.getElementById('cookie-consent');
398    if (!banner) return;
399
400    let bannerShownAt = 0;
401
402    // Show the banner after a short delay so it doesn't block first paint
403    setTimeout(function () {
404      banner.classList.remove('translate-y-full');
405      banner.setAttribute('aria-hidden', 'false');
406      // Only reachable by keyboard/AT while actually shown — mirrors the
407      // sticky-CTA inert pattern in BaseLayout.astro.
408      banner.removeAttribute('inert');
409      bannerShownAt = Date.now();
410      trackConsentEvent('consent_banner_shown');
411    }, 800);
412
413    function hideBanner() {
414      banner.classList.add('translate-y-full');
415      banner.setAttribute('aria-hidden', 'true');
416      banner.setAttribute('inert', '');
417    }
418
419    function timeToConsent() {
420      return bannerShownAt > 0 ? Math.round((Date.now() - bannerShownAt) / 1000) : 0;
421    }
422
423    /** "Accept" — grants analytics; ad signals stay denied because ad tracking is not used */
424    document.getElementById('cookie-accept').addEventListener('click', function () {
425      setCookie(COOKIE_NAME, 'accepted', 365);
426      hideBanner();
427      // Update GA4 Consent Mode: analytics consent only
428      if (typeof window.gtag === 'function') {
429        window.gtag('consent', 'update', {
430          analytics_storage: 'granted',
431          ad_storage: 'denied',
432          ad_user_data: 'denied',
433          ad_personalization: 'denied',
434        });
435      }
436      // Dispatch event so analytics-dependent scripts can re-initialize
437      window.dispatchEvent(new CustomEvent('consentGranted'));
438      // Track consent acceptance with time to decision
439      const ttc = timeToConsent();
440      trackConsentEvent('consent_update', {
441        action: 'accept',
442        time_to_consent_sec: ttc,
443      });
444    });
445
446    /** "Decline" — denies all signals so the visitor can opt out as easily as opt in */
447    document.getElementById('cookie-reject').addEventListener('click', function () {
448      setCookie(COOKIE_NAME, 'rejected', 365);
449      hideBanner();
450      // Explicitly signal denial to GA4 Consent Mode for all four signals
451      if (typeof window.gtag === 'function') {
452        window.gtag('consent', 'update', {
453          analytics_storage: 'denied',
454          ad_storage: 'denied',
455          ad_user_data: 'denied',
456          ad_personalization: 'denied',
457        });
458      }
459      // Track the rejection through gtag; Consent Mode gates storage/identifiers.
460      const ttc = timeToConsent();
461      trackConsentEvent('consent_update', {
462        action: 'reject',
463        time_to_consent_sec: ttc,
464      });
465      // Notify other scripts (e.g. sticky CTA) that the banner has been dismissed
466      window.dispatchEvent(new CustomEvent('consentDismissed'));
467    });
468  })();
469</script>
469 </body> </html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.