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 & 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 & 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&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&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&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 & 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&topic=pricing&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">·</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">·</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] [&::-webkit-inner-spin-button]:appearance-none [&::-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 & 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&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&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&topic=property-manager&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&topic=guest-support&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&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 & 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&topic=pricing&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 & 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'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't available, and I can trust that they'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'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 & 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&topic=pricing&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 & Training"> Skills & 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 & Innovation"> AI & 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 & Pricing"> Plans & 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&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.