PageSourceSearch

https://alpine-property.com/blog

html alpine-property.com collected 2026-10-04 20:54:33 UTC 221,948 bytes, 2,599 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3    <head>
4        <meta charset="utf-8" />
5<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6<meta name="csrf-token" content="9ghEubkJTep89b0znOYODOU91KqhnmMbPc0O2ewA" />
7
8
9
10    
10<script>
11        if (!window.__gtmBoot) {
12            window.__gtmBoot = 1
13            ;(function (w, d, s, l, i) {
14                w[l] = w[l] || []
15                w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' })
16                var f = d.getElementsByTagName(s)[0],
17                    j = d.createElement(s),
18                    dl = l != 'dataLayer' ? '&l=' + l : ''
19                j.async = true
20                j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl
21                f.parentNode.insertBefore(j, f)
22            })(window, document, 'script', 'dataLayer', 'GTM-5RKVL3W')
23        }
24    </script>
24
25
26<title>Alpine Property - Guides Et Marché Immobilier</title>
27
28<link
29            href="https://alpine-property.com/css/filament-environment-indicator/styles.css?v=4.13.4.0"
30            rel="stylesheet"
31            data-navigate-track
32        />
33                <link
34            href="https://alpine-property.com/css/solution-forest/filament-tree/filament-tree-min.css?v=3.1.6.0"
35            rel="stylesheet"
36            data-navigate-track
37        />
38                    <link
39            href="https://alpine-property.com/fonts/filament/filament/inter/index.css?v=4.13.4.0"
40            rel="stylesheet"
41            data-navigate-track
42        />
43    
44<style>
45    :root {
46         --danger-50:oklch(0.971 0.013 17.38);  --danger-100:oklch(0.936 0.032 17.717);  --danger-200:oklch(0.885 0.062 18.334);  --danger-300:oklch(0.808 0.114 19.571);  --danger-400:oklch(0.704 0.191 22.216);  --danger-500:oklch(0.637 0.237 25.331);  --danger-600:oklch(0.577 0.245 27.325);  --danger-700:oklch(0.505 0.213 27.518);  --danger-800:oklch(0.444 0.177 26.899);  --danger-900:oklch(0.396 0.141 25.723);  --danger-950:oklch(0.258 0.092 26.042);  --gray-50:oklch(0.985 0 0);  --gray-100:oklch(0.967 0.001 286.375);  --gray-200:oklch(0.92 0.004 286.32);  --gray-300:oklch(0.871 0.006 286.286);  --gray-400:oklch(0.705 0.015 286.067);  --gray-500:oklch(0.552 0.016 285.938);  --gray-600:oklch(0.442 0.017 285.786);  --gray-700:oklch(0.37 0.013 285.805);  --gray-800:oklch(0.274 0.006 286.033);  --gray-900:oklch(0.21 0.006 285.885);  --gray-950:oklch(0.141 0.005 285.823);  --info-50:oklch(0.97 0.014 254.604);  --info-100:oklch(0.932 0.032 255.585);  --info-200:oklch(0.882 0.059 254.128);  --info-300:oklch(0.809 0.105 251.813);  --info-400:oklch(0.707 0.165 254.624);  --info-500:oklch(0.623 0.214 259.815);  --info-600:oklch(0.546 0.245 262.881);  --info-700:oklch(0.488 0.243 264.376);  --info-800:oklch(0.424 0.199 265.638);  --info-900:oklch(0.379 0.146 265.522);  --info-950:oklch(0.282 0.091 267.935);  --primary-50:oklch(0.987 0.022 95.277);  --primary-100:oklch(0.962 0.059 95.617);  --primary-200:oklch(0.924 0.12 95.746);  --primary-300:oklch(0.879 0.169 91.605);  --primary-400:oklch(0.828 0.189 84.429);  --primary-500:oklch(0.769 0.188 70.08);  --primary-600:oklch(0.666 0.179 58.318);  --primary-700:oklch(0.555 0.163 48.998);  --primary-800:oklch(0.473 0.137 46.201);  --primary-900:oklch(0.414 0.112 45.904);  --primary-950:oklch(0.279 0.077 45.635);  --success-50:oklch(0.982 0.018 155.826);  --success-100:oklch(0.962 0.044 156.743);  --success-200:oklch(0.925 0.084 155.995);  --success-300:oklch(0.871 0.15 154.449);  --success-400:oklch(0.792 0.209 151.711);  --success-500:oklch(0.723 0.219 149.579);  --success-600:oklch(0.627 0.194 149.214);  --success-700:oklch(0.527 0.154 150.069);  --success-800:oklch(0.448 0.119 151.328);  --success-900:oklch(0.393 0.095 152.535);  --success-950:oklch(0.266 0.065 152.934);  --warning-50:oklch(0.987 0.022 95.277);  --warning-100:oklch(0.962 0.059 95.617);  --warning-200:oklch(0.924 0.12 95.746);  --warning-300:oklch(0.879 0.169 91.605);  --warning-400:oklch(0.828 0.189 84.429);  --warning-500:oklch(0.769 0.188 70.08);  --warning-600:oklch(0.666 0.179 58.318);  --warning-700:oklch(0.555 0.163 48.998);  --warning-800:oklch(0.473 0.137 46.201);  --warning-900:oklch(0.414 0.112 45.904);  --warning-950:oklch(0.279 0.077 45.635);     }
47
48    </style>
49
50<link rel="preload" as="style" href="https://alpine-property.com/build/assets/app-CEOUOdTz.css" /><link rel="modulepreload" as="script" href="https://alpine-property.com/build/assets/app-C9dV7QkH.js" /><link rel="modulepreload" as="script" href="https://alpine-property.com/build/assets/dist-SwqmWDbT.js" /><link rel="stylesheet" href="https://alpine-property.com/build/assets/app-CEOUOdTz.css" data-navigate-track="reload" />
50<script type="module" src="https://alpine-property.com/build/assets/app-C9dV7QkH.js" data-navigate-track="reload"></script>
50        <style>
51            @keyframes lazy-image-skeleton {
52                0% {
53                    background-position: 200% 0;
54                }
55                100% {
56                    background-position: -200% 0;
57                }
58            }
59        </style>
60    
61<link href="https://fonts.bunny.net" rel="preconnect" />
62    <link href="https://fls-a1569c84-ada7-455e-9b34-6fd3a11d7485.laravel.cloud/tenant4f7ab57b-46ca-4888-9ba7-963b34f11668/tenant/favicon.ico" rel="icon" sizes="any" />
63
64    <link href="https://fls-a1569c84-ada7-455e-9b34-6fd3a11d7485.laravel.cloud/tenant4f7ab57b-46ca-4888-9ba7-963b34f11668/tenant/favicon.svg" rel="icon" type="image/svg+xml" />
65
66    <link href="https://fls-a1569c84-ada7-455e-9b34-6fd3a11d7485.laravel.cloud/tenant4f7ab57b-46ca-4888-9ba7-963b34f11668/tenant/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png" />
67
68    <link href="https://fls-a1569c84-ada7-455e-9b34-6fd3a11d7485.laravel.cloud/tenant4f7ab57b-46ca-4888-9ba7-963b34f11668/tenant/apple-touch-icon.png" rel="apple-touch-icon" />
69
70    <link href="https://fonts.bunny.net/css?family=inter:400,500,600&amp;display=swap" rel="stylesheet" />
71    <style>
72        :root {
73            --font-sans: 'Inter', sans-serif;
74        }
75    </style>
76
77    <style>
78        :root {
79            --livewire-progress-bar-color: #c70036 !important;
80            --color-primary: #c70036;
81        }
82    </style>
83
84    <style>
85        :root {
86            --color-secondary: #ab002e;
87        }
88    </style>
89
90    <style>
91        :root {
92            --color-page-bg: #f8f7f2;
93        }
94    </style>
95        <!--[if BLOCK]><![endif]-->    <meta name="description" content="Stay informed with our latest market reports, news, property insights, area information and alpine living guides." />
96<!--[if ENDBLOCK]><![endif]-->
97<!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
98<!--[if BLOCK]><![endif]-->    <link href="https://alpine-property.com/blog" rel="canonical" />
99<!--[if ENDBLOCK]><![endif]-->
100<!--[if BLOCK]><![endif]-->    <!--[if BLOCK]><![endif]-->        <link href="https://alpine-property.com/blog" hreflang="en" rel="alternate" />
101            <link href="https://alpine-property.com/fr/blog" hreflang="fr" rel="alternate" />
102    <!--[if ENDBLOCK]><![endif]-->
103    <!--[if BLOCK]><![endif]-->        <link href="https://alpine-property.com/blog" hreflang="x-default" rel="alternate" />
104    <!--[if ENDBLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
105
106<meta content="Guides Et Marché Immobilier - Alpine Property" property="og:title" />
107<!--[if BLOCK]><![endif]-->    <meta content="Stay informed with our latest market reports, news, property insights, area information and alpine living guides." property="og:description" />
108<!--[if ENDBLOCK]><![endif]-->
109<meta content="website" property="og:type" />
110<!--[if BLOCK]><![endif]-->    <meta content="https://alpine-property.com/blog" property="og:url" />
111<!--[if ENDBLOCK]><![endif]-->
112<!--[if BLOCK]><![endif]-->    <meta content="Alpine Property" property="og:site_name" />
113<!--[if ENDBLOCK]><![endif]-->
114<meta content="en_GB" property="og:locale" />
115<!--[if BLOCK]><![endif]-->    <!--[if BLOCK]><![endif]-->        <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->            <!--[if BLOCK]><![endif]-->            <meta content="fr_FR" property="og:locale:alternate" />
116        <!--[if ENDBLOCK]><![endif]-->    <!--[if ENDBLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
117<!--[if BLOCK]><![endif]-->    <meta content="https://fls-a1569c84-ada7-455e-9b34-6fd3a11d7485.laravel.cloud/tenant4f7ab57b-46ca-4888-9ba7-963b34f11668/page-blocks/3554/blog-featured.webp" property="og:image" />
118<!--[if ENDBLOCK]><![endif]-->
119
120<meta name="twitter:card" content="summary_large_image" />
121<!--[if BLOCK]><![endif]-->    <meta name="twitter:site" content="@alpineproperty" />
122<!--[if ENDBLOCK]><![endif]-->
123<meta name="twitter:title" content="Guides Et Marché Immobilier - Alpine Property" />
124<!--[if BLOCK]><![endif]-->    <meta name="twitter:description" content="Stay informed with our latest market reports, news, property insights, area information and alpine living guides." />
125<!--[if ENDBLOCK]><![endif]-->
126<!--[if BLOCK]><![endif]-->    <meta name="twitter:image" content="https://fls-a1569c84-ada7-455e-9b34-6fd3a11d7485.laravel.cloud/tenant4f7ab57b-46ca-4888-9ba7-963b34f11668/page-blocks/3554/blog-featured.webp" />
127<!--[if ENDBLOCK]><![endif]-->
128
129<!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
130        
130<script type="application/ld+json">
131    {"@context":"https://schema.org","@type":"WebSite","name":"Alpine Property","url":"https://alpine-property.com/blog"}
132</script>
132
133
134<!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
135<!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
136<!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
137<!--[if BLOCK]><![endif]-->    
138    
138<script type="application/ld+json">
139        {"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Alpine Property","item":"https://alpine-property.com/home"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://alpine-property.com/blog"}]}
140    </script>
140
141<!--[if ENDBLOCK]><![endif]-->
142    <!-- Livewire Styles --><style >[wire\:loading][wire\:loading], [wire\:loading\.delay][wire\:loading\.delay], [wire\:loading\.inline-block][wire\:loading\.inline-block], [wire\:loading\.inline][wire\:loading\.inline], [wire\:loading\.block][wire\:loading\.block], [wire\:loading\.flex][wire\:loading\.flex], [wire\:loading\.table][wire\:loading\.table], [wire\:loading\.grid][wire\:loading\.grid], [wire\:loading\.inline-flex][wire\:loading\.inline-flex] {display: none;}[wire\:loading\.delay\.none][wire\:loading\.delay\.none], [wire\:loading\.delay\.shortest][wire\:loading\.delay\.shortest], [wire\:loading\.delay\.shorter][wire\:loading\.delay\.shorter], [wire\:loading\.delay\.short][wire\:loading\.delay\.short], [wire\:loading\.delay\.default][wire\:loading\.delay\.default], [wire\:loading\.delay\.long][wire\:loading\.delay\.long], [wire\:loading\.delay\.longer][wire\:loading\.delay\.longer], [wire\:loading\.delay\.longest][wire\:loading\.delay\.longest] {display: none;}[wire\:offline][wire\:offline] {display: none;}[wire\:dirty]:not(textarea):not(input):not(select) {display: none;}:root {--livewire-progress-bar-color: #2299dd;}[x-cloak="x-cloak"],[x-cloak=""] {display: none !important;}[wire\:cloak="wire:cloak"],[wire\:cloak=""] {display: none !important;}dialog#livewire-error::backdrop {background-color: rgba(0, 0, 0, .6);}</style>
143</head>
144    <body  style="background-color: #f8f7f2" >
145        <div wire:snapshot="{&quot;data&quot;:{&quot;page&quot;:[null,{&quot;class&quot;:&quot;App\\Models\\Page&quot;,&quot;key&quot;:160,&quot;s&quot;:&quot;mdl&quot;}],&quot;currentEstate&quot;:null,&quot;isPermanentUrl&quot;:false,&quot;permanentPrettyPath&quot;:null,&quot;currentZone&quot;:null,&quot;currentParentZone&quot;:null},&quot;memo&quot;:{&quot;id&quot;:&quot;SnJr9LMpgR8LmDhi9QZi&quot;,&quot;name&quot;:&quot;dynamic-page&quot;,&quot;path&quot;:&quot;blog&quot;,&quot;method&quot;:&quot;GET&quot;,&quot;release&quot;:&quot;a-a-a&quot;,&quot;children&quot;:{&quot;layout-header-header-0&quot;:[&quot;header&quot;,&quot;iX02agC4lQNpTxMLVcG2&quot;],&quot;blog-listing-0&quot;:[&quot;&quot;,&quot;cr7ZWHOmrfogt0gk0E3u&quot;],&quot;layout-footer-contact-0&quot;:[&quot;section&quot;,&quot;w79UkDKR2FxiCxEOZVb4&quot;],&quot;layout-footer-footer-1&quot;:[&quot;footer&quot;,&quot;l6MBMhgSq5V1fZH5wn0T&quot;]},&quot;scripts&quot;:[],&quot;assets&quot;:[],&quot;errors&quot;:[],&quot;locale&quot;:&quot;en&quot;},&quot;checksum&quot;:&quot;9b8be8dd640ed6cafc9d7fd75d27d88e5eca4955b7dc14a51858c832afd38d56&quot;}" wire:effects="{&quot;partials&quot;:[],&quot;listeners&quot;:[&quot;locale-changed&quot;]}" wire:id="SnJr9LMpgR8LmDhi9QZi">
146     
147     
148    
149    <!--[if BLOCK]><![endif]-->        <!--[if BLOCK]><![endif]-->            <header wire:snapshot="{&quot;data&quot;:{&quot;data&quot;:[{&quot;id&quot;:&quot;e8979e93-e39c-4e07-865b-16b5e920143e&quot;,&quot;phone&quot;:&quot;+44 (0)208 123 2384&quot;,&quot;design&quot;:&quot;with-multiple-flyout-menus&quot;,&quot;sample&quot;:false,&quot;brand_name&quot;:&quot;Alpine Property&quot;},{&quot;s&quot;:&quot;arr&quot;}],&quot;design&quot;:null,&quot;estate&quot;:null,&quot;page&quot;:null,&quot;sample&quot;:false,&quot;zone&quot;:null,&quot;blockIndex&quot;:-1,&quot;blockType&quot;:&quot;header&quot;},&quot;memo&quot;:{&quot;id&quot;:&quot;iX02agC4lQNpTxMLVcG2&quot;,&quot;name&quot;:&quot;blocks.header&quot;,&quot;path&quot;:&quot;blog&quot;,&quot;method&quot;:&quot;GET&quot;,&quot;release&quot;:&quot;a-a-a&quot;,&quot;children&quot;:[],&quot;scripts&quot;:[],&quot;assets&quot;:[],&quot;errors&quot;:[],&quot;locale&quot;:&quot;en&quot;},&quot;checksum&quot;:&quot;ebf41b16116c94e01d0d59cc47b6bce14b24113cf2bc9dc00041ea270c471e91&quot;}" wire:effects="{&quot;partials&quot;:[]}" wire:id="iX02agC4lQNpTxMLVcG2"
150    x-data="{
151        mobileMenuOpen: false,
152        activeMenu: null,
153        scrollOpacity: 0,
154        isDark: false,
155        initScrollListener() {
156            const scrollContainer =
157                this.$root.closest('.overflow-y-scroll') || window
158            const handleScroll = () => {
159                const scrollTop =
160                    scrollContainer === window
161                        ? window.scrollY
162                        : scrollContainer.scrollTop
163                this.scrollOpacity = Math.min(1, scrollTop / 100)
164            }
165            scrollContainer.addEventListener('scroll', handleScroll, {
166                passive: true,
167            })
168            handleScroll()
169        },
170        initDarkModeObserver() {
171            this.isDark = document.documentElement.classList.contains('dark')
172            const observer = new MutationObserver(() => {
173                this.isDark = document.documentElement.classList.contains('dark')
174            })
175            observer.observe(document.documentElement, {
176                attributes: true,
177                attributeFilter: ['class'],
178            })
179        },
180        get navBgColor() {
181            return this.isDark ? '17 24 39' : '255 255 255'
182        },
183    }"
184    x-init="
185        initScrollListener()
186        initDarkModeObserver()
187    "
188    x-on:keydown.escape.window="mobileMenuOpen = false"
189    @click.outside="activeMenu = null"
190            style="--header-bg: #c70036; --header-text: #fff; --header-text-muted: rgba(255,255,255,0.6);"
191    >
192    
193    <div
194        class="fixed inset-x-0 top-0 z-[70] flex items-center justify-between p-4 shadow-sm lg:hidden text-white"
195         style="background-color: var(--header-bg)"     >
196        <a class="flex cursor-pointer items-center gap-2" href="/home" wire:navigate>
197            <!--[if BLOCK]><![endif]-->                <!--[if BLOCK]><![endif]-->                    
198                    <img class="h-9 w-auto shrink-0" alt="Alpine Property" src="https://fls-a1569c84-ada7-455e-9b34-6fd3a11d7485.laravel.cloud/tenant4f7ab57b-46ca-4888-9ba7-963b34f11668/tenant/logo.svg" />
199                <!--[if ENDBLOCK]><![endif]-->            <!--[if ENDBLOCK]><![endif]-->            
200            <span class="text-white font-bold whitespace-nowrap">
201                Alpine Property
202            </span>
203        </a>
204
205        
206        <button
207            :aria-expanded="mobileMenuOpen"
208            x-on:click="mobileMenuOpen = !mobileMenuOpen"
209            class="relative flex size-10 items-center justify-center text-white hover:bg-white/10"
210            aria-label="Toggle menu"
211            type="button"
212        >
213            <span x-text="mobileMenuOpen ? 'Close menu' : 'Open menu'" class="sr-only"></span>
214            <div class="flex h-5 w-6 flex-col items-center justify-center">
215                <span
216                    :class="mobileMenuOpen ? 'rotate-45' : '-translate-y-1.5'"
217                    class="absolute h-0.5 w-5 rounded-full bg-current transition-all duration-300 ease-out"
218                ></span>
219                <span
220                    :class="mobileMenuOpen ? 'opacity-0 scale-0' : 'opacity-100 scale-100'"
221                    class="absolute h-0.5 w-5 rounded-full bg-current transition-all duration-300 ease-out"
222                ></span>
223                <span
224                    :class="mobileMenuOpen ? '-rotate-45' : 'translate-y-1.5'"
225                    class="absolute h-0.5 w-5 rounded-full bg-current transition-all duration-300 ease-out"
226                ></span>
227            </div>
228        </button>
229    </div>
230
231    
232    <div
233        class="fixed inset-x-0 top-0 z-[70] hidden h-14 px-12 shadow-md md:px-16 lg:flex text-white"
234         style="background-color: var(--header-bg)"     >
235        <nav class="flex w-full items-center" aria-label="Global navigation">
236            
237            <div class="flex h-full items-center">
238                <a class="flex cursor-pointer items-center gap-3" href="/home" wire:navigate>
239                    <!--[if BLOCK]><![endif]-->                        <!--[if BLOCK]><![endif]-->                            
240                            <img class="h-9 w-auto shrink-0 object-contain" alt="Alpine Property" src="https://fls-a1569c84-ada7-455e-9b34-6fd3a11d7485.laravel.cloud/tenant4f7ab57b-46ca-4888-9ba7-963b34f11668/tenant/logo.svg" />
241                        <!--[if ENDBLOCK]><![endif]-->                    <!--[if ENDBLOCK]><![endif]-->                    
242                    <span
243                        class="font-bold whitespace-nowrap text-white"
244                    >
245                        Alpine Property
246                    </span>
247                </a>
248            </div>
249
250            
251            <div class="flex h-full flex-1 items-stretch pl-16">
252                <!--[if BLOCK]><![endif]-->                    
253                    <div class="relative flex">
254                        <!--[if BLOCK]><![endif]-->                            <button
255                                @click="activeMenu = activeMenu === 'buy' ? null : 'buy'"
256                                                                    style="--nav: #0a97d4; --nav-hover: #0b88bf; --nav-fg: #fff;"
257                                    class="flex h-full min-w-28 items-center justify-center gap-2 px-6 text-sm font-semibold text-[color:var(--nav-fg)
257] [text-shadow:0_1px_2px_rgb(0_0_0/0.5)] transition-colors bg-[var(--nav)] hover:bg-[var(--nav-hover)]"
258                                                            >
259                                Buy
260                                <svg class="shrink-0 [:where(&amp;)]:size-4 size-4 transition-transform duration-200 ease-in-out" :class="activeMenu === 'buy' && 'rotate-180'" data-flux-icon xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" data-slot="icon">
261  <path fill-rule="evenodd" d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd"/>
262</svg>
263
264                                    </button>
265                            <div
266                                x-cloak
267                                x-show="activeMenu === 'buy'"
268                                x-transition:enter="transition duration-100 ease-out"
269                                x-transition:enter-end="scale-100 opacity-100"
270                                x-transition:enter-start="scale-95 opacity-0"
271                                x-transition:leave="transition duration-75 ease-in"
272                                x-transition:leave-end="scale-95 opacity-0"
273                                x-transition:leave-start="scale-100 opacity-100"
274                                class="absolute top-full left-0 z-50 min-w-48 shadow-lg"
275                                                                    style="--nav: #0a97d4; --nav-hover: #0b88bf; --nav-fg: #fff; background-color: var(--nav);"
276                                                            >
277                                <div class="py-1">
278                                    <!--[if BLOCK]><![endif]-->                                                                                <a
279                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
280                                                                                         href="/our-properties"                                              wire:navigate                                         >
281                                            All our properties
282                                        </a>
283                                                                                                                    <a
284                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
285                                                                                         href="/map"                                              wire:navigate                                         >
286                                            Map Search
287                                        </a>
288                                                                                                                    <a
289                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
290                                                                                         href="/buyers-guide"                                              wire:navigate                                         >
291                                            Buyers Guide
292                                        </a>
293                                                                                                                    <a
294                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
295                                                                                         href="/faq"                                              wire:navigate                                         >
296                                            FAQ
297                                        </a>
298                                                                                                                    <a
299                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)
299] transition-colors hover:bg-[var(--nav-hover)]"
300                                                                                         href="/video-faq"                                              wire:navigate                                         >
301                                            Video FAQ
302                                        </a>
303                                                                                                                    <a
304                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
305                                                                                         href="/finances"                                              wire:navigate                                         >
306                                            Finances
307                                        </a>
308                                    <!--[if ENDBLOCK]><![endif]-->                                </div>
309                            </div>
310                        <!--[if ENDBLOCK]><![endif]-->                    </div>
311                                    
312                    <div class="relative flex">
313                        <!--[if BLOCK]><![endif]-->                            <button
314                                @click="activeMenu = activeMenu === 'sell' ? null : 'sell'"
315                                                                    style="--nav: #17bf82; --nav-hover: #17ab76; --nav-fg: #fff;"
316                                    class="flex h-full min-w-28 items-center justify-center gap-2 px-6 text-sm font-semibold text-[color:var(--nav-fg)] [text-shadow:0_1px_2px_rgb(0_0_0/0.5)] transition-colors bg-[var(--nav)] hover:bg-[var(--nav-hover)]"
317                                                            >
318                                Sell
319                                <svg class="shrink-0 [:where(&amp;)]:size-4 size-4 transition-transform duration-200 ease-in-out" :class="activeMenu === 'sell' && 'rotate-180'" data-flux-icon xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" data-slot="icon">
320  <path fill-rule="evenodd" d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd"/>
321</svg>
322
323                                    </button>
324                            <div
325                                x-cloak
326                                x-show="activeMenu === 'sell'"
327                                x-transition:enter="transition duration-100 ease-out"
328                                x-transition:enter-end="scale-100 opacity-100"
329                                x-transition:enter-start="scale-95 opacity-0"
330                                x-transition:leave="transition duration-75 ease-in"
331                                x-transition:leave-end="scale-95 opacity-0"
332                                x-transition:leave-start="scale-100 opacity-100"
333                                class="absolute top-full left-0 z-50 min-w-48 shadow-lg"
334                                                                    style="--nav: #17bf82; --nav-hover: #17ab76; --nav-fg: #fff; background-color: var(--nav);"
335                                                            >
336                                <div class="py-1">
337                                    <!--[if BLOCK]><![endif]-->                                                                                <a
338                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
339                                                                                         href="/why-us"                                              wire:navigate                                         >
340                                            Why Us?
341                                        </a>
342                                                                                                                    <a
343                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)
343] transition-colors hover:bg-[var(--nav-hover)]"
344                                                                                         href="/our-fees"                                              wire:navigate                                         >
345                                            Our Fees
346                                        </a>
347                                                                                                                    <a
348                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
349                                                                                         href="/get-valuation"                                              wire:navigate                                         >
350                                            Get a Valuation
351                                        </a>
352                                                                                                                    <a
353                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
354                                                                                         href="/sold-listings"                                              wire:navigate                                         >
355                                            Sold Properties
356                                        </a>
357                                    <!--[if ENDBLOCK]><![endif]-->                                </div>
358                            </div>
359                        <!--[if ENDBLOCK]><![endif]-->                    </div>
360                                    
361                    <div class="relative flex">
362                        <!--[if BLOCK]><![endif]-->                            <button
363                                @click="activeMenu = activeMenu === 'areas' ? null : 'areas'"
364                                                                    style="--nav: #846fd9; --nav-hover: #7764c4; --nav-fg: #fff;"
365                                    class="flex h-full min-w-28 items-center justify-center gap-2 px-6 text-sm font-semibold text-[color:var(--nav-fg)] [text-shadow:0_1px_2px_rgb(0_0_0/0.5)] transition-colors bg-[var(--nav)] hover:bg-[var(--nav-hover)]"
366                                                            >
367                                Areas
368                                <svg class="shrink-0 [:where(&amp;)]:size-4 size-4 transition-transform duration-200 ease-in-out" :class="activeMenu === 'areas' && 'rotate-180'" data-flux-icon xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" data-slot="icon">
369  <path fill-rule="evenodd" d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd"/>
370</svg>
371
372                                    </button>
373                            <div
374                                x-cloak
375                                x-show="activeMenu === 'areas'"
376                                x-transition:enter="transition duration-100 ease-out"
377                                x-transition:enter-end="scale-100 opacity-100"
378                                x-transition:enter-start="scale-95 opacity-0"
379                                x-transition:leave="transition duration-75 ease-in"
380                                x-transition:leave-end="scale-95 opacity-0"
381                                x-transition:leave-start="scale-100 opacity-100"
382                                class="absolute top-full left-0 z-50 min-w-48 shadow-lg"
383                                                                    style="--nav: #846fd9; --nav-hover: #7764c4; --nav-fg: #fff; background-color: var(--nav);"
384                                                            >
385                                <div class="py-1">
386                                    <!--[if BLOCK]><![endif]-->                                                                                <a
387                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)
387] transition-colors hover:bg-[var(--nav-hover)]"
388                                                                                         href="/our-properties/mont-blanc"                                              wire:navigate                                         >
389                                            Mont Blanc
390                                        </a>
391                                                                                                                    <a
392                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
393                                                                                         href="/our-properties/grand-massif"                                              wire:navigate                                         >
394                                            Grand Massif
395                                        </a>
396                                                                                                                    <a
397                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
398                                                                                         href="/our-properties/portes-du-soleil"                                              wire:navigate                                         >
399                                            Portes du Soleil
400                                        </a>
401                                                                                                                    <a
402                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
403                                                                                         href="/our-properties/alpes-du-leman"                                              wire:navigate                                         >
404                                            Les Alpes du Léman
405                                        </a>
406                                                                                                                    <a
407                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
408                                                                                         href="/our-properties/aravis"                                              wire:navigate                                         >
409                                            Aravis
410                                        </a>
411                                                                                                                    <a
412                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
413                                                                                         href="/our-properties/lac-annecy"                                              wire:navigate                                         >
414                                            Lac Annecy
415                                        </a>
416                                    <!--[if ENDBLOCK]><![endif]-->                                </div>
417                            </div>
418                        <!--[if ENDBLOCK]><![endif]-->                    </div>
419                                    
420                    <div class="relative flex">
421                        <!--[if BLOCK]><![endif]-->                            <button
422                                @click="activeMenu = activeMenu === 'about-us' ? null : 'about-us'"
423                                                                    style="--nav: #deb510; --nav-hover: #c8a312; --nav-fg: #fff;"
424                                    class="flex h-full min-w-28 items-center justify-center gap-2 px-6 text-sm font-semibold text-[color:var(--nav-fg)
424] [text-shadow:0_1px_2px_rgb(0_0_0/0.5)] transition-colors bg-[var(--nav)] hover:bg-[var(--nav-hover)]"
425                                                            >
426                                About Us
427                                <svg class="shrink-0 [:where(&amp;)]:size-4 size-4 transition-transform duration-200 ease-in-out" :class="activeMenu === 'about-us' && 'rotate-180'" data-flux-icon xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" data-slot="icon">
428  <path fill-rule="evenodd" d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd"/>
429</svg>
430
431                                    </button>
432                            <div
433                                x-cloak
434                                x-show="activeMenu === 'about-us'"
435                                x-transition:enter="transition duration-100 ease-out"
436                                x-transition:enter-end="scale-100 opacity-100"
437                                x-transition:enter-start="scale-95 opacity-0"
438                                x-transition:leave="transition duration-75 ease-in"
439                                x-transition:leave-end="scale-95 opacity-0"
440                                x-transition:leave-start="scale-100 opacity-100"
441                                class="absolute top-full left-0 z-50 min-w-48 shadow-lg"
442                                                                    style="--nav: #deb510; --nav-hover: #c8a312; --nav-fg: #fff; background-color: var(--nav);"
443                                                            >
444                                <div class="py-1">
445                                    <!--[if BLOCK]><![endif]-->                                                                                <a
446                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
447                                                                                         href="/our-way"                                              wire:navigate                                         >
448                                            Our Way
449                                        </a>
450                                                                                                                    <a
451                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
452                                                                                         href="/the-company"                                              wire:navigate                                         >
453                                            Company &amp; Team
454                                        </a>
455                                                                                                                    <a
456                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
457                                                                                         href="/careers"                                              wire:navigate                                         >
458                                            Careers
459                                        </a>
460                                                                                                                    <a
461                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
462                                                                                         href="/blog"                                              wire:navigate                                         >
463                                            Blog
464                                        </a>
465                                                                                                                    <a
466                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)
466] transition-colors hover:bg-[var(--nav-hover)]"
467                                                                                         href="/reviews"                                              wire:navigate                                         >
468                                            Reviews
469                                        </a>
470                                                                                                                    <a
471                                                                                            class="block px-4 py-2 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
472                                                                                         href="/legal"                                              wire:navigate                                         >
473                                            Legal
474                                        </a>
475                                    <!--[if ENDBLOCK]><![endif]-->                                </div>
476                            </div>
477                        <!--[if ENDBLOCK]><![endif]-->                    </div>
478                <!--[if ENDBLOCK]><![endif]-->            </div>
479
480            
481            <div class="flex items-center gap-4">
482                <a
483                    x-on:click="document.getElementById('contact')?.scrollIntoView({ behavior: 'smooth', block: 'start' })"
484                    class="cursor-pointer text-sm font-semibold text-white hover:text-white/80"
485                >
486                    Contact
487                </a>
488                <!--[if BLOCK]><![endif]-->                    <span class="hidden text-sm text-white/60 xl:inline">|</span>
489                    <a
490                        class="hidden text-sm font-semibold text-white hover:text-white/80 xl:inline"
491                        href="tel:+442081232384"
492                    >
493                        +44 (0)208 123 2384
494                    </a>
495                <!--[if ENDBLOCK]><![endif]-->
496                <!--[if BLOCK]><![endif]-->                    <div
497                        x-data="{ localeOpen: false }"
498                        class="relative border-l border-white/30 pl-4"
499                        @click.away="localeOpen = false"
500                    >
501                        
502                        <button
503                            class="flex items-center gap-2 text-sm font-medium text-white/80 transition hover:text-white"
504                            @click="localeOpen = !localeOpen"
505                            type="button"
506                        >
507                            <!--[if BLOCK]><![endif]-->                                <span class="iti__flag iti__flag iti__gb"></span> 
508                            <!--[if ENDBLOCK]><![endif]-->
509                            <span>EN</span>
510                            <svg
511                                :class="localeOpen ? 'rotate-180' : ''"
512                                class="size-3 transition-transform"
513                                fill="none"
514                                stroke="currentColor"
515                                viewBox="0 0 24 24"
516                            >
517                                <path
518                                    d="M19 9l-7 7-7-7"
519                                    stroke-linecap="round"
520                                    stroke-linejoin="round"
521                                    stroke-width="2"
522                                />
523                            </svg>
524                        </button>
525
526                        
527                        <div
528                            x-cloak
529                            x-show="localeOpen"
530                            x-transition:enter="transition duration-100 ease-out"
531                            x-transition:enter-end="scale-100 transform opacity-100"
532                            x-transition:enter-start="scale-95 transform opacity-0"
533                            x-transition:leave="transition duration-75 ease-in"
534                            x-transition:leave-end="scale-95 transform opacity-0"
535                            x-transition:leave-start="scale-100 transform opacity-100"
536                            class="absolute right-0 z-50 mt-2 w-40 origin-top-right overflow-hidden rounded-md bg-white shadow-lg ring-1 ring-black/5"
537                        >
538                            <!--[if BLOCK]><![endif]-->                                
539                                <a
540                                    class="flex items-center gap-3 px-4 py-2.5 text-sm transition bg-gray-100 font-medium text-gray-900"
541                                    href="https://alpine-property.com/locale/en?from=%2Fblog"
542                                    wire:navigate
543                                >
544                                    <!--[if BLOCK]><![endif]-->                                        <span class="iti__flag iti__flag iti__gb"></span> 
545                                        <span>English</span>
546                                    <!--[if ENDBLOCK]><![endif]-->                                </a>
547                                                            
548                                <a
549                                    class="flex items-center gap-3 px-4 py-2.5 text-sm transition text-gray-700 hover:bg-gray-50"
550                                    href="https://alpine-property.com/locale/fr?from=%2Fblog"
551                                    wire:navigate
552                                >
553                                    <!--[if BLOCK]><![endif]-->                                        <span class="iti__flag iti__flag iti__fr"></span> 
554                                        <span>Français</span>
555                                    <!--[if ENDBLOCK]><![endif]-->                                </a>
556                            <!--[if ENDBLOCK]><![endif]-->                        </div>
557                    </div>
558                <!--[if ENDBLOCK]><![endif]-->            </div>
559        </nav>
560    </div>
561
562    
563    <div
564        x-cloak
565        x-on:click="mobileMenuOpen = false"
566        x-show="mobileMenuOpen"
567        x-transition:enter="transition duration-300 ease-out"
568        x-transition:enter-end="opacity-100"
569        x-transition:enter-start="opacity-0"
570        x-transition:leave="transition duration-200 ease-in"
571        x-transition:leave-end="opacity-0"
572        x-transition:leave-start="opacity-100"
573        class="fixed inset-0 z-[65] bg-black/20 backdrop-blur-sm lg:hidden"
574        aria-hidden="true"
575    ></div>
576
577    
578    <div
579        x-cloak
580        x-show="mobileMenuOpen"
581        x-transition:enter="transition duration-400 ease-[cubic-bezier(0.34,1.56,0.64,1)]"
582        x-transition:enter-end="translate-y-0 opacity-100"
583        x-transition:enter-start="-translate-y-full opacity-0"
584        x-transition:leave="transition duration-200 ease-in"
585        x-transition:leave-end="-translate-y-full opacity-0"
586        x-transition:leave-start="translate-y-0 opacity-100"
587        x-trap.noscroll.inert="mobileMenuOpen"
588        class="fixed inset-x-0 top-0 z-[65] max-h-dvh overflow-y-auto pt-[72px] shadow-xl lg:hidden text-white"
589         style="background-color: var(--header-bg)"     >
590        <div class="p-4">
591            <!--[if BLOCK]><![endif]-->                
592                <!--[if BLOCK]><![endif]-->                    <div x-data="{ open: false }" class="mb-1">
593                        <button
594                            :aria-expanded="open"
595                            x-on:click="open = !open"
596                                                            style="--nav: #0a97d4; --nav-hover: #0b88bf; --nav-fg: #fff;"
597                                class="flex w-full items-center justify-between px-4 py-3 text-base font-semibold text-[color:var(--nav-fg)] [text-shadow:0_1px_2px_rgb(0_0_0/0.5)] bg-[var(--nav)] hover:bg-[var(--nav-hover)]"
598                                                        type="button"
599                        >
600                            Buy
601                            <svg
602                                :class="open ? 'rotate-180' : ''"
603                                class="text-white/60 size-5 flex-none transition-transform duration-200"
604                                aria-hidden="true"
605                                fill="currentColor"
606                                viewBox="0 0 20 20"
607                            >
608                                <path
609                                    clip-rule="evenodd"
610                                    d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z"
611                                    fill-rule="evenodd"
612                                />
613                            </svg>
614                        </button>
615                        <div
616                            x-cloak
617                            x-collapse
618                            x-show="open"
619                                                            style="--nav: #0a97d4; --nav-hover: #0b88bf; --nav-fg: #fff; background-color: var(--nav);"
620                                                    >
621                            <!--[if BLOCK]><![endif]-->                                                                <a
622                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
623                                                                         href="/our-properties"                                      wire:navigate                                 >
624                                    All our properties
625                                </a>
626                                                                                            <a
627                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
628                                                                         href="/map"                                      wire:navigate                                 >
629                                    Map Search
630                                </a>
631                                                                                            <a
632                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
633                                                                         href="/buyers-guide"                                      wire:navigate                                 >
634                                    Buyers Guide
635                                </a>
636                                                                                            <a
637                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
638                                                                         href="/faq"                                      wire:navigate                                 >
639                                    FAQ
640                                </a>
641                                                                                            <a
642                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
643                                                                         href="/video-faq"                                      wire:navigate                                 >
644                                    Video FAQ
645                                </a>
646                                                                                            <a
647                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
648                                                                         href="/finances"                                      wire:navigate                                 >
649                                    Finances
650                                </a>
651                            <!--[if ENDBLOCK]><![endif]-->                        </div>
652                    </div>
653                <!--[if ENDBLOCK]><![endif]-->                            
654                <!--[if BLOCK]><![endif]-->                    <div x-data="{ open: false }" class="mb-1">
655                        <button
656                            :aria-expanded="open"
657                            x-on:click="open = !open"
658                                                            style="--nav: #17bf82; --nav-hover: #17ab76; --nav-fg: #fff;"
659                                class="flex w-full items-center justify-between px-4 py-3 text-base font-semibold text-[color:var(--nav-fg)
659] [text-shadow:0_1px_2px_rgb(0_0_0/0.5)] bg-[var(--nav)] hover:bg-[var(--nav-hover)]"
660                                                        type="button"
661                        >
662                            Sell
663                            <svg
664                                :class="open ? 'rotate-180' : ''"
665                                class="text-white/60 size-5 flex-none transition-transform duration-200"
666                                aria-hidden="true"
667                                fill="currentColor"
668                                viewBox="0 0 20 20"
669                            >
670                                <path
671                                    clip-rule="evenodd"
672                                    d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z"
673                                    fill-rule="evenodd"
674                                />
675                            </svg>
676                        </button>
677                        <div
678                            x-cloak
679                            x-collapse
680                            x-show="open"
681                                                            style="--nav: #17bf82; --nav-hover: #17ab76; --nav-fg: #fff; background-color: var(--nav);"
682                                                    >
683                            <!--[if BLOCK]><![endif]-->                                                                <a
684                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
685                                                                         href="/why-us"                                      wire:navigate                                 >
686                                    Why Us?
687                                </a>
688                                                                                            <a
689                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
690                                                                         href="/our-fees"                                      wire:navigate                                 >
691                                    Our Fees
692                                </a>
693                                                                                            <a
694                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
695                                                                         href="/get-valuation"                                      wire:navigate                                 >
696                                    Get a Valuation
697                                </a>
698                                                                                            <a
699                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
700                                                                         href="/sold-listings"                                      wire:navigate                                 >
701                                    Sold Properties
702                                </a>
703                            <!--[if ENDBLOCK]><![endif]-->                        </div>
704                    </div>
705                <!--[if ENDBLOCK]><![endif]-->                            
706                <!--[if BLOCK]><![endif]-->                    <div x-data="{ open: false }" class="mb-1">
707                        <button
708                            :aria-expanded="open"
709                            x-on:click="open = !open"
710                                                            style="--nav: #846fd9; --nav-hover: #7764c4; --nav-fg: #fff;"
711                                class="flex w-full items-center justify-between px-4 py-3 text-base font-semibold text-[color:var(--nav-fg)
711] [text-shadow:0_1px_2px_rgb(0_0_0/0.5)] bg-[var(--nav)] hover:bg-[var(--nav-hover)]"
712                                                        type="button"
713                        >
714                            Areas
715                            <svg
716                                :class="open ? 'rotate-180' : ''"
717                                class="text-white/60 size-5 flex-none transition-transform duration-200"
718                                aria-hidden="true"
719                                fill="currentColor"
720                                viewBox="0 0 20 20"
721                            >
722                                <path
723                                    clip-rule="evenodd"
724                                    d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z"
725                                    fill-rule="evenodd"
726                                />
727                            </svg>
728                        </button>
729                        <div
730                            x-cloak
731                            x-collapse
732                            x-show="open"
733                                                            style="--nav: #846fd9; --nav-hover: #7764c4; --nav-fg: #fff; background-color: var(--nav);"
734                                                    >
735                            <!--[if BLOCK]><![endif]-->                                                                <a
736                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
737                                                                         href="/our-properties/mont-blanc"                                      wire:navigate                                 >
738                                    Mont Blanc
739                                </a>
740                                                                                            <a
741                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
742                                                                         href="/our-properties/grand-massif"                                      wire:navigate                                 >
743                                    Grand Massif
744                                </a>
745                                                                                            <a
746                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
747                                                                         href="/our-properties/portes-du-soleil"                                      wire:navigate                                 >
748                                    Portes du Soleil
749                                </a>
750                                                                                            <a
751                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
752                                                                         href="/our-properties/alpes-du-leman"                                      wire:navigate                                 >
753                                    Les Alpes du Léman
754                                </a>
755                                                                                            <a
756                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
757                                                                         href="/our-properties/aravis"                                      wire:navigate                                 >
758                                    Aravis
759                                </a>
760                                                                                            <a
761                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)
761] transition-colors hover:bg-[var(--nav-hover)]"
762                                                                         href="/our-properties/lac-annecy"                                      wire:navigate                                 >
763                                    Lac Annecy
764                                </a>
765                            <!--[if ENDBLOCK]><![endif]-->                        </div>
766                    </div>
767                <!--[if ENDBLOCK]><![endif]-->                            
768                <!--[if BLOCK]><![endif]-->                    <div x-data="{ open: false }" class="mb-1">
769                        <button
770                            :aria-expanded="open"
771                            x-on:click="open = !open"
772                                                            style="--nav: #deb510; --nav-hover: #c8a312; --nav-fg: #fff;"
773                                class="flex w-full items-center justify-between px-4 py-3 text-base font-semibold text-[color:var(--nav-fg)] [text-shadow:0_1px_2px_rgb(0_0_0/0.5)] bg-[var(--nav)] hover:bg-[var(--nav-hover)]"
774                                                        type="button"
775                        >
776                            About Us
777                            <svg
778                                :class="open ? 'rotate-180' : ''"
779                                class="text-white/60 size-5 flex-none transition-transform duration-200"
780                                aria-hidden="true"
781                                fill="currentColor"
782                                viewBox="0 0 20 20"
783                            >
784                                <path
785                                    clip-rule="evenodd"
786                                    d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z"
787                                    fill-rule="evenodd"
788                                />
789                            </svg>
790                        </button>
791                        <div
792                            x-cloak
793                            x-collapse
794                            x-show="open"
795                                                            style="--nav: #deb510; --nav-hover: #c8a312; --nav-fg: #fff; background-color: var(--nav);"
796                                                    >
797                            <!--[if BLOCK]><![endif]-->                                                                <a
798                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
799                                                                         href="/our-way"                                      wire:navigate                                 >
800                                    Our Way
801                                </a>
802                                                                                            <a
803                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
804                                                                         href="/the-company"                                      wire:navigate                                 >
805                                    Company &amp; Team
806                                </a>
807                                                                                            <a
808                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
809                                                                         href="/careers"                                      wire:navigate                                 >
810                                    Careers
811                                </a>
812                                                                                            <a
813                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
814                                                                         href="/blog"                                      wire:navigate                                 >
815                                    Blog
816                                </a>
817                                                                                            <a
818                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
819                                                                         href="/reviews"                                      wire:navigate                                 >
820                                    Reviews
821                                </a>
822                                                                                            <a
823                                                                            class="block px-6 py-2.5 text-sm text-[color:var(--nav-fg)] transition-colors hover:bg-[var(--nav-hover)]"
824                                                                         href="/legal"                                      wire:navigate                                 >
825                                    Legal
826                                </a>
827                            <!--[if ENDBLOCK]><![endif]-->                        </div>
828                    </div>
829                <!--[if ENDBLOCK]><![endif]-->            <!--[if ENDBLOCK]><![endif]-->
830            
831            <a
832                x-on:click="
833                    mobileMenuOpen = false
834                    $nextTick(() =>
835                        [...$root.closest('.overflow-y-scroll')?.querySelectorAll('#contact')]
836                            .find((el) => el.offsetParent !== null)
837                            ?.scrollIntoView({ behavior: 'smooth' }),
838                    )
839                "
840                class="mb-4 block cursor-pointer border-b px-4 py-3 text-base font-semibold border-white/15 text-white hover:bg-white/10"
841            >
842                Contact
843            </a>
844
845            
846            <!--[if BLOCK]><![endif]-->                <div class="mb-4 flex items-center gap-2 border-b px-4 pb-4 border-white/15">
847                    <!--[if BLOCK]><![endif]-->                                                <a
848                            class="flex items-center gap-2 rounded px-3 py-1.5 text-sm transition bg-white/20 font-semibold text-white"
849                            href="https://alpine-property.com/locale/en?from=%2Fblog"
850                            wire:navigate
851                        >
852                            <!--[if BLOCK]><![endif]-->
852                                <span class="iti__flag iti__flag iti__gb"></span> 
853                                <span>English</span>
854                            <!--[if ENDBLOCK]><![endif]-->                        </a>
855                                                                    <a
856                            class="flex items-center gap-2 rounded px-3 py-1.5 text-sm transition text-white/80 hover:bg-white/10"
857                            href="https://alpine-property.com/locale/fr?from=%2Fblog"
858                            wire:navigate
859                        >
860                            <!--[if BLOCK]><![endif]-->                                <span class="iti__flag iti__flag iti__fr"></span> 
861                                <span>Français</span>
862                            <!--[if ENDBLOCK]><![endif]-->                        </a>
863                    <!--[if ENDBLOCK]><![endif]-->                </div>
864            <!--[if ENDBLOCK]><![endif]-->
865            
866            <!--[if BLOCK]><![endif]-->                <div class="mt-4 border-t pt-4 border-white/15">
867                    <a
868                        class="flex items-center justify-center gap-2 px-4 py-3 text-sm font-semibold bg-white/15 text-white hover:bg-white/25"
869                        href="tel:+442081232384"
870                    >
871                        <svg class="shrink-0 [:where(&amp;)]:size-6 size-5" data-flux-icon xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon">
872  <path stroke-linecap="round" stroke-linejoin="round" d="M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 0 0 2.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 0 1-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 0 0-1.091-.852H4.5A2.25 2.25 0 0 0 2.25 4.5v2.25Z"/>
873</svg>
874
875                                +44 (0)208 123 2384
876                    </a>
877                </div>
878            <!--[if ENDBLOCK]><![endif]-->        </div>
879    </div>
880</header>
881        <!--[if ENDBLOCK]><![endif]-->    <!--[if ENDBLOCK]><![endif]-->
882    
883    <!--[if BLOCK]><![endif]-->        <div class="relative min-h-screen">
884            
885            <div class="fixed inset-0 -z-10 h-[90vh]">
886                <img class="h-full w-full object-cover" alt="" src="https://fls-a1569c84-ada7-455e-9b34-6fd3a11d7485.laravel.cloud/tenant4f7ab57b-46ca-4888-9ba7-963b34f11668/page-blocks/3554/blog-featured.webp" />
887                <div class="absolute inset-0 bg-black/30"></div>
888            </div>
889
890            
891            <div>
892                <div class="pt-8">
893                    
894                    <div class="h-12 lg:h-16"></div>
895
896                    
897                    <!--[if BLOCK]><![endif]-->                        <!--[if BLOCK]><![endif]-->                            <div >
898    <!--[if BLOCK]><![endif]-->    
899    <div wire:snapshot="{&quot;data&quot;:{&quot;selectedCategory&quot;:&quot;&quot;,&quot;searchQuery&quot;:&quot;&quot;,&quot;data&quot;:[{&quot;id&quot;:null,&quot;design&quot;:&quot;grid&quot;,&quot;sample&quot;:false,&quot;heading&quot;:&quot;Our Blog&quot;,&quot;subtitle&quot;:&quot;Stay informed with our latest news, property insights, and alpine living guides.&quot;,&quot;category_id&quot;:null,&quot;section_icon&quot;:null,&quot;posts_per_page&quot;:9},{&quot;s&quot;:&quot;arr&quot;}],&quot;design&quot;:null,&quot;estate&quot;:null,&quot;page&quot;:[null,{&quot;class&quot;:&quot;App\\Models\\Page&quot;,&quot;key&quot;:160,&quot;s&quot;:&quot;mdl&quot;}],&quot;sample&quot;:false,&quot;zone&quot;:null,&quot;blockIndex&quot;:0,&quot;blockType&quot;:&quot;blog-listing&quot;,&quot;paginators&quot;:[{&quot;page&quot;:1},{&quot;s&quot;:&quot;arr&quot;}]},&quot;memo&quot;:{&quot;id&quot;:&quot;cr7ZWHOmrfogt0gk0E3u&quot;,&quot;name&quot;:&quot;blocks.blog-listing&quot;,&quot;path&quot;:&quot;blog&quot;,&quot;method&quot;:&quot;GET&quot;,&quot;release&quot;:&quot;a-a-a&quot;,&quot;children&quot;:[],&quot;scripts&quot;:[],&quot;assets&quot;:[],&quot;errors&quot;:[],&quot;locale&quot;:&quot;en&quot;},&quot;checksum&quot;:&quot;398e8f0f7f121ff1fc47acd5d72dbb5709890a7e40f947e2b7538e60f53dda32&quot;}" wire:effects="{&quot;partials&quot;:[],&quot;url&quot;:{&quot;paginators.page&quot;:{&quot;as&quot;:&quot;page&quot;,&quot;use&quot;:&quot;push&quot;,&quot;alwaysShow&quot;:false,&quot;except&quot;:null}}}" wire:id="cr7ZWHOmrfogt0gk0E3u" class="mx-auto max-w-7xl px-4 pt-8 pb-16 sm:px-6 lg:px-8" x-data="window.blogCardLazy()">
900        <div class=" relative z-0 bg-white/80 p-6 shadow-lg sm:p-8">
901            <!--[if BLOCK]><![endif]-->                <h2 class="mb-6 text-3xl font-black tracking-tight text-gray-800 sm:text-4xl">
902                    Blog
903                </h2>
904            <!--[if ENDBLOCK]><![endif]-->
905            
906            <!--[if BLOCK]><![endif]-->                <div class="mb-8 flex flex-wrap items-center gap-3">
907                    <div class="flex flex-wrap gap-2">
908                        <button
909                            wire:click="$set('selectedCategory', '')"
910                            class=" px-3 py-1.5 text-sm font-medium transition bg-accent text-white"
911                        >
912                            All
913                        </button>
914                        <!--[if BLOCK]><![endif]-->                            <button
915                                wire:click="$set('selectedCategory', '1')"
916                                class=" px-3 py-1.5 text-sm font-medium transition bg-gray-100 text-gray-700 hover:bg-gray-200"
917                            >
918                                Advice
919                            </button>
920                                                    <button
921                                wire:click="$set('selectedCategory', '2')"
922                                class=" px-3 py-1.5 text-sm font-medium transition bg-gray-100 text-gray-700 hover:bg-gray-200"
923                            >
924                                Community
925                            </button>
926                                                    <button
927                                wire:click="$set('selectedCategory', '3')"
928                                class=" px-3 py-1.5 text-sm font-medium transition bg-gray-100 text-gray-700 hover:bg-gray-200"
929                            >
930                                Guides
931                            </button>
932                                                    <button
933                                wire:click="$set('selectedCategory', '4')"
934                                class=" px-3 py-1.5 text-sm font-medium transition bg-gray-100 text-gray-700 hover:bg-gray-200"
935                            >
936                                Latest News
937                            </button>
938                                                    <button
939                                wire:click="$set('selectedCategory', '5')"
940                                class=" px-3 py-1.5 text-sm font-medium transition bg-gray-100 text-gray-700 hover:bg-gray-200"
941                            >
942                                Sustainability
943                            </button>
944                        <!--[if ENDBLOCK]><![endif]-->                    </div>
945
946                    <div class="relative ml-auto w-full sm:w-64">
947                        <input
948                            wire:model.live.debounce.300ms="searchQuery"
949                            type="text"
950                            class=" w-full border border-gray-300 bg-white/60 py-1.5 pr-3 pl-9 text-sm text-gray-900 placeholder-gray-400 backdrop-blur-sm focus:border-gray-400 focus:ring-0 focus:outline-none"
951                            placeholder="Search articles..."
952                        />
953                        <svg class="absolute top-1/2 left-3 size-4 -translate-y-1/2 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
954                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
955                        </svg>
956                        <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->                    </div>
957                </div>
958            <!--[if ENDBLOCK]><![endif]-->
959            <div class="grid grid-cols-1 gap-x-8 gap-y-12 sm:grid-cols-2 lg:grid-cols-3">
960                <!--[if BLOCK]><![endif]-->                    <div wire:key="blog-card-8" class="contents">
961                        <div
962    class=" -m-1.5 grid grid-cols-1 shadow-[inset_0_0_2px_1px_#ffffff4d] ring-1 ring-black/5"
963>
964<div class="grid grid-cols-1 p-1.5 shadow-md shadow-black/5 dark:shadow-none">
965<article class=" group flex h-full flex-col items-start justify-between overflow-hidden bg-white shadow-xl ring-1 ring-black/5 dark:bg-gray-800 dark:shadow-none dark:ring-white/10">
966    
967    <a class="relative block w-full overflow-hidden" href="/blog/morzine-vallee-daulps-property-market-winter-2025" wire:navigate>
968        <div
969            class="aspect-video w-full bg-gray-100 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
970            data-blog-image-cell
971            data-page-id="8"
972            data-page-alt="Winter 2025/26 Alpine Property Market Report: Morzine &amp; Vallée d&#039;Aulps"
973            data-img-class="aspect-video w-full bg-gray-100 object-cover transition-transform duration-300 group-hover:scale-105 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
974            style="background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%); background-size: 200% 100%; animation: lazy-image-skeleton 1.4s ease-in-out infinite;"
975            aria-busy="true"
976        ></div>
977        <div class="absolute inset-0 inset-ring inset-ring-gray-900/10 dark:inset-ring-white/10"></div>
978    </a>
979    <div class="flex w-full max-w-xl grow flex-col justify-between p-6 [&>*:first-child]:mt-0">
980        
981        <!--[if BLOCK]><![endif]-->            <div class="mt-8 flex items-center gap-x-4 text-xs">
982                <time class="text-gray-500 dark:text-gray-400" datetime="2025-12-27">
983                    27 Dec 2025
984                </time>
985            </div>
986        <!--[if ENDBLOCK]><![endif]-->        <div class="group relative grow">
987            <h3 class="mt-3 text-lg/6 font-semibold text-gray-900 group-hover:text-accent dark:text-white dark:group-hover:text-accent">
988                <a href="/blog/morzine-vallee-daulps-property-market-winter-2025" wire:navigate>
989                    <span class="absolute inset-0"></span>
990                    Winter 2025/26 Alpine Property Market Report: Morzine &amp; Vallée d&#039;Aulps
991                </a>
992            </h3>
993            <!--[if BLOCK]><![endif]-->                <p class="mt-5 line-clamp-5 text-sm/6 text-gray-600 dark:text-gray-400">Market analysis showing apartment price increases of 28% in Morzine over the past year, with demand strength in mid-range properties. French mortgage rates below 4% support buyer confidence.</p>
994            <!--[if ENDBLOCK]><![endif]-->        </div>
995    </div>
996</article>
997</div>
998</div>
999                    </div>
1000                                    <div wire:key="blog-card-9" class="contents">
1001                        <div
1002    class=" -m-1.5 grid grid-cols-1 shadow-[inset_0_0_2px_1px_#ffffff4d] ring-1 ring-black/5"
1003>
1004<div class="grid grid-cols-1 p-1.5 shadow-md shadow-black/5 dark:shadow-none">
1005<article class=" group flex h-full flex-col items-start justify-between overflow-hidden bg-white shadow-xl ring-1 ring-black/5 dark:bg-gray-800 dark:shadow-none dark:ring-white/10">
1006    
1007    <a class="relative block w-full overflow-hidden" href="/blog/alpine-property-market-report-may-2025" wire:navigate>
1008        <div
1009            class="aspect-video w-full bg-gray-100 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1010            data-blog-image-cell
1011            data-page-id="9"
1012            data-page-alt="Alpine Property Market Report May 2025"
1013            data-img-class="aspect-video w-full bg-gray-100 object-cover transition-transform duration-300 group-hover:scale-105 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1014            style="background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%); background-size: 200% 100%; animation: lazy-image-skeleton 1.4s ease-in-out infinite;"
1015            aria-busy="true"
1016        ></div>
1017        <div class="absolute inset-0 inset-ring inset-ring-gray-900/10 dark:inset-ring-white/10"></div>
1018    </a>
1019    <div class="flex w-full max-w-xl grow flex-col justify-between p-6 [&>*:first-child]:mt-0">
1020        
1021        <!--[if BLOCK]><![endif]-->            <div class="mt-8 flex items-center gap-x-4 text-xs">
1022                <time class="text-gray-500 dark:text-gray-400" datetime="2025-06-02">
1023                    02 Jun 2025
1024                </time>
1025            </div>
1026        <!--[if ENDBLOCK]><![endif]-->        <div class="group relative grow">
1027            <h3 class="mt-3 text-lg/6 font-semibold text-gray-900 group-hover:text-accent dark:text-white dark:group-hover:text-accent">
1028                <a href="/blog/alpine-property-market-report-may-2025" wire:navigate>
1029                    <span class="absolute inset-0"></span>
1030                    Alpine Property Market Report May 2025
1031                </a>
1032            </h3>
1033            <!--[if BLOCK]><![endif]-->                <p class="mt-5 line-clamp-5 text-sm/6 text-gray-600 dark:text-gray-400">Comprehensive regional pricing analysis across ski areas. Chamonix T4 apartments up 40% since 2020; Samoëns showing 20% growth in mid-range properties. Geneva-area villages emerge as affordable alternatives.</p>
1034            <!--[if ENDBLOCK]><![endif]-->        </div>
1035    </div>
1036</article>
1037</div>
1038</div>
1039                    </div>
1040                                    <div wire:key="blog-card-10" class="contents">
1041                        <div
1042    class=" -m-1.5 grid grid-cols-1 shadow-[inset_0_0_2px_1px_#ffffff4d] ring-1 ring-black/5"
1043>
1044<div class="grid grid-cols-1 p-1.5 shadow-md shadow-black/5 dark:shadow-none">
1045<article class=" group flex h-full flex-col items-start justify-between overflow-hidden bg-white shadow-xl ring-1 ring-black/5 dark:bg-gray-800 dark:shadow-none dark:ring-white/10">
1046    
1047    <a class="relative block w-full overflow-hidden" href="/blog/greenwashing-living-with-contradictions-running-an-estate-agency-in-the-alps" wire:navigate>
1048        <div
1049            class="aspect-video w-full bg-gray-100 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1050            data-blog-image-cell
1051            data-page-id="10"
1052            data-page-alt="Greenwashing? Living With Contradictions: Running an Estate Agency in the Alps"
1053            data-img-class="aspect-video w-full bg-gray-100 object-cover transition-transform duration-300 group-hover:scale-105 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1054            style="background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%); background-size: 200% 100%; animation: lazy-image-skeleton 1.4s ease-in-out infinite;"
1055            aria-busy="true"
1056        ></div>
1057        <div class="absolute inset-0 inset-ring inset-ring-gray-900/10 dark:inset-ring-white/10"></div>
1058    </a>
1059    <div class="flex w-full max-w-xl grow flex-col justify-between p-6 [&>*:first-child]:mt-0">
1060        
1061        <!--[if BLOCK]><![endif]-->            <div class="mt-8 flex items-center gap-x-4 text-xs">
1062                <time class="text-gray-500 dark:text-gray-400" datetime="2025-05-09">
1063                    09 May 2025
1064                </time>
1065            </div>
1066        <!--[if ENDBLOCK]><![endif]-->        <div class="group relative grow">
1067            <h3 class="mt-3 text-lg/6 font-semibold text-gray-900 group-hover:text-accent dark:text-white dark:group-hover:text-accent">
1068                <a href="/blog/greenwashing-living-with-contradictions-running-an-estate-agency-in-the-alps" wire:navigate>
1069                    <span class="absolute inset-0"></span>
1070                    Greenwashing? Living With Contradictions: Running an Estate Agency in the Alps
1071                </a>
1072            </h3>
1073            <!--[if BLOCK]><![endif]-->                <p class="mt-5 line-clamp-5 text-sm/6 text-gray-600 dark:text-gray-400">Personal reflection on environmental responsibility in tourism. The company has donated nearly €60,000 through 1% for the Planet since 2022, supporting local conservation initiatives.</p>
1074            <!--[if ENDBLOCK]><![endif]-->        </div>
1075    </div>
1076</article>
1077</div>
1078</div>
1079                    </div>
1080                                    <div wire:key="blog-card-11" class="contents">
1081                        <div
1082    class=" -m-1.5 grid grid-cols-1 shadow-[inset_0_0_2px_1px_#ffffff4d] ring-1 ring-black/5"
1083>
1084<div class="grid grid-cols-1 p-1.5 shadow-md shadow-black/5 dark:shadow-none">
1085<article class=" group flex h-full flex-col items-start justify-between overflow-hidden bg-white shadow-xl ring-1 ring-black/5 dark:bg-gray-800 dark:shadow-none dark:ring-white/10">
1086    
1087    <a class="relative block w-full overflow-hidden" href="/blog/compost-ecotrivelo-chamonix-spring-2025" wire:navigate>
1088        <div
1089            class="aspect-video w-full bg-gray-100 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1090            data-blog-image-cell
1091            data-page-id="11"
1092            data-page-alt="How Compost is Transforming Chamonix&#039;s Gardens"
1093            data-img-class="aspect-video w-full bg-gray-100 object-cover transition-transform duration-300 group-hover:scale-105 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1094            style="background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%); background-size: 200% 100%; animation: lazy-image-skeleton 1.4s ease-in-out infinite;"
1095            aria-busy="true"
1096        ></div>
1097        <div class="absolute inset-0 inset-ring inset-ring-gray-900/10 dark:inset-ring-white/10"></div>
1098    </a>
1099    <div class="flex w-full max-w-xl grow flex-col justify-between p-6 [&>*:first-child]:mt-0">
1100        
1101        <!--[if BLOCK]><![endif]-->            <div class="mt-8 flex items-center gap-x-4 text-xs">
1102                <time class="text-gray-500 dark:text-gray-400" datetime="2025-04-28">
1103                    28 Apr 2025
1104                </time>
1105            </div>
1106        <!--[if ENDBLOCK]><![endif]-->        <div class="group relative grow">
1107            <h3 class="mt-3 text-lg/6 font-semibold text-gray-900 group-hover:text-accent dark:text-white dark:group-hover:text-accent">
1108                <a href="/blog/compost-ecotrivelo-chamonix-spring-2025" wire:navigate>
1109                    <span class="absolute inset-0"></span>
1110                    How Compost is Transforming Chamonix&#039;s Gardens
1111                </a>
1112            </h3>
1113            <!--[if BLOCK]><![endif]-->                <p class="mt-5 line-clamp-5 text-sm/6 text-gray-600 dark:text-gray-400">Feature on Ecotrivélo&#039;s composting initiative, which collected 79 tonnes of food waste in 2024. The organization produced 20 tonnes of mature compost available this spring for local gardeners.</p>
1114            <!--[if ENDBLOCK]><![endif]-->        </div>
1115    </div>
1116</article>
1117</div>
1118</div>
1119                    </div>
1120                                    <div wire:key="blog-card-12" class="contents">
1121                        <div
1122    class=" -m-1.5 grid grid-cols-1 shadow-[inset_0_0_2px_1px_#ffffff4d] ring-1 ring-black/5"
1123>
1124<div class="grid grid-cols-1 p-1.5 shadow-md shadow-black/5 dark:shadow-none">
1125<article class=" group flex h-full flex-col items-start justify-between overflow-hidden bg-white shadow-xl ring-1 ring-black/5 dark:bg-gray-800 dark:shadow-none dark:ring-white/10">
1126    
1127    <a class="relative block w-full overflow-hidden" href="/blog/torrent-de-boue-mudslide-in-saint-jean-daulps" wire:navigate>
1128        <div
1129            class="aspect-video w-full bg-gray-100 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1130            data-blog-image-cell
1131            data-page-id="12"
1132            data-page-alt="Torrent de Boue: Mudslide in Saint-Jean-d&#039;Aulps"
1133            data-img-class="aspect-video w-full bg-gray-100 object-cover transition-transform duration-300 group-hover:scale-105 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1134            style="background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%); background-size: 200% 100%; animation: lazy-image-skeleton 1.4s ease-in-out infinite;"
1135            aria-busy="true"
1136        ></div>
1137        <div class="absolute inset-0 inset-ring inset-ring-gray-900/10 dark:inset-ring-white/10"></div>
1138    </a>
1139    <div class="flex w-full max-w-xl grow flex-col justify-between p-6 [&>*:first-child]:mt-0">
1140        
1141        <!--[if BLOCK]><![endif]-->            <div class="mt-8 flex items-center gap-x-4 text-xs">
1142                <time class="text-gray-500 dark:text-gray-400" datetime="2025-03-24">
1143                    24 Mar 2025
1144                </time>
1145            </div>
1146        <!--[if ENDBLOCK]><![endif]-->        <div class="group relative grow">
1147            <h3 class="mt-3 text-lg/6 font-semibold text-gray-900 group-hover:text-accent dark:text-white dark:group-hover:text-accent">
1148                <a href="/blog/torrent-de-boue-mudslide-in-saint-jean-daulps" wire:navigate>
1149                    <span class="absolute inset-0"></span>
1150                    Torrent de Boue: Mudslide in Saint-Jean-d&#039;Aulps
1151                </a>
1152            </h3>
1153            <!--[if BLOCK]><![endif]-->                <p class="mt-5 line-clamp-5 text-sm/6 text-gray-600 dark:text-gray-400">Historical account of a 1966 mudslide event in the Vallée d&#039;Aulps, examining geological risks in Alpine communities and natural disaster preparedness.</p>
1154            <!--[if ENDBLOCK]><![endif]-->        </div>
1155    </div>
1156</article>
1157</div>
1158</div>
1159                    </div>
1160                                    <div wire:key="blog-card-13" class="contents">
1161                        <div
1162    class=" -m-1.5 grid grid-cols-1 shadow-[inset_0_0_2px_1px_#ffffff4d] ring-1 ring-black/5"
1163>
1164<div class="grid grid-cols-1 p-1.5 shadow-md shadow-black/5 dark:shadow-none">
1165<article class=" group flex h-full flex-col items-start justify-between overflow-hidden bg-white shadow-xl ring-1 ring-black/5 dark:bg-gray-800 dark:shadow-none dark:ring-white/10">
1166    
1167    <a class="relative block w-full overflow-hidden" href="/blog/what-do-you-need-to-know-about-st-jean-daulps" wire:navigate>
1168        <div
1169            class="aspect-video w-full bg-gray-100 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1170            data-blog-image-cell
1171            data-page-id="13"
1172            data-page-alt="What Do You Need to Know About St Jean d&#039;Aulps?"
1173            data-img-class="aspect-video w-full bg-gray-100 object-cover transition-transform duration-300 group-hover:scale-105 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1174            style="background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%); background-size: 200% 100%; animation: lazy-image-skeleton 1.4s ease-in-out infinite;"
1175            aria-busy="true"
1176        ></div>
1177        <div class="absolute inset-0 inset-ring inset-ring-gray-900/10 dark:inset-ring-white/10"></div>
1178    </a>
1179    <div class="flex w-full max-w-xl grow flex-col justify-between p-6 [&>*:first-child]:mt-0">
1180        
1181        <!--[if BLOCK]><![endif]-->            <div class="mt-8 flex items-center gap-x-4 text-xs">
1182                <time class="text-gray-500 dark:text-gray-400" datetime="2024-10-22">
1183                    22 Oct 2024
1184                </time>
1185            </div>
1186        <!--[if ENDBLOCK]><![endif]-->        <div class="group relative grow">
1187            <h3 class="mt-3 text-lg/6 font-semibold text-gray-900 group-hover:text-accent dark:text-white dark:group-hover:text-accent">
1188                <a href="/blog/what-do-you-need-to-know-about-st-jean-daulps" wire:navigate>
1189                    <span class="absolute inset-0"></span>
1190                    What Do You Need to Know About St Jean d&#039;Aulps?
1191                </a>
1192            </h3>
1193            <!--[if BLOCK]><![endif]-->                <p class="mt-5 line-clamp-5 text-sm/6 text-gray-600 dark:text-gray-400">Community profile covering village amenities, schools, skiing infrastructure, and historical development. Population growth of 30% since 2015 reflects increasing appeal.</p>
1194            <!--[if ENDBLOCK]><![endif]-->        </div>
1195    </div>
1196</article>
1197</div>
1198</div>
1199                    </div>
1200                                    <div wire:key="blog-card-14" class="contents">
1201                        <div
1202    class=" -m-1.5 grid grid-cols-1 shadow-[inset_0_0_2px_1px_#ffffff4d] ring-1 ring-black/5"
1203>
1204<div class="grid grid-cols-1 p-1.5 shadow-md shadow-black/5 dark:shadow-none">
1205<article class=" group flex h-full flex-col items-start justify-between overflow-hidden bg-white shadow-xl ring-1 ring-black/5 dark:bg-gray-800 dark:shadow-none dark:ring-white/10">
1206    
1207    <a class="relative block w-full overflow-hidden" href="/blog/using-the-train-from-thonon-to-geneva-airport" wire:navigate>
1208        <div
1209            class="aspect-video w-full bg-gray-100 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1210            data-blog-image-cell
1211            data-page-id="14"
1212            data-page-alt="Using the Train from Thonon to Geneva Airport"
1213            data-img-class="aspect-video w-full bg-gray-100 object-cover transition-transform duration-300 group-hover:scale-105 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1214            style="background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%); background-size: 200% 100%; animation: lazy-image-skeleton 1.4s ease-in-out infinite;"
1215            aria-busy="true"
1216        ></div>
1217        <div class="absolute inset-0 inset-ring inset-ring-gray-900/10 dark:inset-ring-white/10"></div>
1218    </a>
1219    <div class="flex w-full max-w-xl grow flex-col justify-between p-6 [&>*:first-child]:mt-0">
1220        
1221        <!--[if BLOCK]><![endif]-->            <div class="mt-8 flex items-center gap-x-4 text-xs">
1222                <time class="text-gray-500 dark:text-gray-400" datetime="2024-10-14">
1223                    14 Oct 2024
1224                </time>
1225            </div>
1226        <!--[if ENDBLOCK]><![endif]-->        <div class="group relative grow">
1227            <h3 class="mt-3 text-lg/6 font-semibold text-gray-900 group-hover:text-accent dark:text-white dark:group-hover:text-accent">
1228                <a href="/blog/using-the-train-from-thonon-to-geneva-airport" wire:navigate>
1229                    <span class="absolute inset-0"></span>
1230                    Using the Train from Thonon to Geneva Airport
1231                </a>
1232            </h3>
1233            <!--[if BLOCK]><![endif]-->                <p class="mt-5 line-clamp-5 text-sm/6 text-gray-600 dark:text-gray-400">Practical guide to Léman Express rail service connecting Alpine villages to Geneva airport, offering alternatives to costly parking and long driving times.</p>
1234            <!--[if ENDBLOCK]><![endif]-->        </div>
1235    </div>
1236</article>
1237</div>
1238</div>
1239                    </div>
1240                                    <div wire:key="blog-card-15" class="contents">
1241                        <div
1242    class=" -m-1.5 grid grid-cols-1 shadow-[inset_0_0_2px_1px_#ffffff4d] ring-1 ring-black/5"
1243>
1244<div class="grid grid-cols-1 p-1.5 shadow-md shadow-black/5 dark:shadow-none">
1245<article class=" group flex h-full flex-col items-start justify-between overflow-hidden bg-white shadow-xl ring-1 ring-black/5 dark:bg-gray-800 dark:shadow-none dark:ring-white/10">
1246    
1247    <a class="relative block w-full overflow-hidden" href="/blog/supporting-ecotrivelo-sustainable-waste-management-chamonix" wire:navigate>
1248        <div
1249            class="aspect-video w-full bg-gray-100 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1250            data-blog-image-cell
1251            data-page-id="15"
1252            data-page-alt="Ecotrivelo in Chamonix"
1253            data-img-class="aspect-video w-full bg-gray-100 object-cover transition-transform duration-300 group-hover:scale-105 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1254            style="background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%); background-size: 200% 100%; animation: lazy-image-skeleton 1.4s ease-in-out infinite;"
1255            aria-busy="true"
1256        ></div>
1257        <div class="absolute inset-0 inset-ring inset-ring-gray-900/10 dark:inset-ring-white/10"></div>
1258    </a>
1259    <div class="flex w-full max-w-xl grow flex-col justify-between p-6 [&>*:first-child]:mt-0">
1260        
1261        <!--[if BLOCK]><![endif]-->            <div class="mt-8 flex items-center gap-x-4 text-xs">
1262                <time class="text-gray-500 dark:text-gray-400" datetime="2024-09-12">
1263                    12 Sep 2024
1264                </time>
1265            </div>
1266        <!--[if ENDBLOCK]><![endif]-->        <div class="group relative grow">
1267            <h3 class="mt-3 text-lg/6 font-semibold text-gray-900 group-hover:text-accent dark:text-white dark:group-hover:text-accent">
1268                <a href="/blog/supporting-ecotrivelo-sustainable-waste-management-chamonix" wire:navigate>
1269                    <span class="absolute inset-0"></span>
1270                    Ecotrivelo in Chamonix
1271                </a>
1272            </h3>
1273            <!--[if BLOCK]><![endif]-->                <p class="mt-5 line-clamp-5 text-sm/6 text-gray-600 dark:text-gray-400">Overview of sustainable waste management organization collecting organic material by bicycle and producing nutrient-rich compost for local use.</p>
1274            <!--[if ENDBLOCK]><![endif]-->        </div>
1275    </div>
1276</article>
1277</div>
1278</div>
1279                    </div>
1280                                    <div wire:key="blog-card-16" class="contents">
1281                        <div
1282    class=" -m-1.5 grid grid-cols-1 shadow-[inset_0_0_2px_1px_#ffffff4d] ring-1 ring-black/5"
1283>
1284<div class="grid grid-cols-1 p-1.5 shadow-md shadow-black/5 dark:shadow-none">
1285<article class=" group flex h-full flex-col items-start justify-between overflow-hidden bg-white shadow-xl ring-1 ring-black/5 dark:bg-gray-800 dark:shadow-none dark:ring-white/10">
1286    
1287    <a class="relative block w-full overflow-hidden" href="/blog/alpine-property-market-report-april-2024" wire:navigate>
1288        <div
1289            class="aspect-video w-full bg-gray-100 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1290            data-blog-image-cell
1291            data-page-id="16"
1292            data-page-alt="Alpine Property Market Report April 2024"
1293            data-img-class="aspect-video w-full bg-gray-100 object-cover transition-transform duration-300 group-hover:scale-105 sm:aspect-2/1 lg:aspect-3/2 dark:bg-gray-800"
1294            style="background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%); background-size: 200% 100%; animation: lazy-image-skeleton 1.4s ease-in-out infinite;"
1295            aria-busy="true"
1296        ></div>
1297        <div class="absolute inset-0 inset-ring inset-ring-gray-900/10 dark:inset-ring-white/10"></div>
1298    </a>
1299    <div class="flex w-full max-w-xl grow flex-col justify-between p-6 [&>*:first-child]:mt-0">
1300        
1301        <!--[if BLOCK]><![endif]-->            <div class="mt-8 flex items-center gap-x-4 text-xs">
1302                <time class="text-gray-500 dark:text-gray-400" datetime="2024-04-23">
1303                    23 Apr 2024
1304                </time>
1305            </div>
1306        <!--[if ENDBLOCK]><![endif]-->        <div class="group relative grow">
1307            <h3 class="mt-3 text-lg/6 font-semibold text-gray-900 group-hover:text-accent dark:text-white dark:group-hover:text-accent">
1308                <a href="/blog/alpine-property-market-report-april-2024" wire:navigate>
1309                    <span class="absolute inset-0"></span>
1310                    Alpine Property Market Report April 2024
1311                </a>
1312            </h3>
1313            <!--[if BLOCK]><![endif]-->                <p class="mt-5 line-clamp-5 text-sm/6 text-gray-600 dark:text-gray-400">Seasonal analysis with regional price trends showing 18% average increases over two years. Discussion of mortgage accessibility improvements supporting market activity.</p>
1314            <!--[if ENDBLOCK]><![endif]-->        </div>
1315    </div>
1316</article>
1317</div>
1318</div>
1319                    </div>
1320                <!--[if ENDBLOCK]><![endif]-->            </div>
1321
1322            <!--[if BLOCK]><![endif]-->                <div class="mt-8">
1323                    <div>
1324    <!--[if BLOCK]><![endif]-->        <nav role="navigation" aria-label="Pagination Navigation" class="flex items-center justify-between">
1325            <div class="flex justify-between flex-1 sm:hidden">
1326                <span>
1327                    <!--[if BLOCK]><![endif]-->                        <span class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5  dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300">
1328                            &laquo; Previous
1329                        </span>
1330                    <!--[if ENDBLOCK]><![endif]-->                </span>
1331
1332                <span>
1333                    <!--[if BLOCK]><![endif]-->                        <button type="button" wire:click="nextPage('page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" wire:loading.attr="disabled" dusk="nextPage.before" class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5  hover:text-gray-500 focus:outline-none focus:ring ring-primary-300 focus:border-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:active:bg-gray-700 dark:active:text-gray-300">
1334                            Next &raquo;
1335                        </button>
1336                    <!--[if ENDBLOCK]><![endif]-->                </span>
1337            </div>
1338
1339            <div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between">
1340                <div>
1341                    <p class="text-sm text-gray-700 leading-5 dark:text-gray-400">
1342                        <span>Showing</span>
1343                        <span class="font-medium">1</span>
1344                        <span>to</span>
1345                        <span class="font-medium">9</span>
1346                        <span>of</span>
1347                        <span class="font-medium">139</span>
1348                        <span>results</span>
1349                    </p>
1350                </div>
1351
1352                <div>
1353                    <span class="relative z-0 inline-flex rtl:flex-row-reverse  shadow-sm">
1354                        <span>
1355                            
1356                            <!--[if BLOCK]><![endif]-->                                <span aria-disabled="true" aria-label="&amp;laquo; Previous">
1357                                    <span class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default  leading-5 dark:bg-gray-800 dark:border-gray-600" aria-hidden="true">
1358                                        <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1359                                            <path fill-rule="evenodd" d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" clip-rule="evenodd" />
1360                                        </svg>
1361                                    </span>
1362                                </span>
1363                            <!--[if ENDBLOCK]><![endif]-->                        </span>
1364
1365                        
1366                        <!--[if BLOCK]><![endif]-->                            
1367                            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1368                            
1369                            <!--[if BLOCK]><![endif]-->                                <!--[if BLOCK]><![endif]-->
1369                                    <span wire:key="paginator-page-page1">
1370                                        <!--[if BLOCK]><![endif]-->                                            <span aria-current="page">
1371                                                <span class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium bg-primary-600 text-white border border-primary-600 cursor-default leading-5">1</span>
1372                                            </span>
1373                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1374                                                                    <span wire:key="paginator-page-page2">
1375                                        <!--[if BLOCK]><![endif]-->                                            <button type="button" wire:click="gotoPage(2, 'page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700" aria-label="Go to page 2">
1376                                                2
1377                                            </button>
1378                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1379                                                                    <span wire:key="paginator-page-page3">
1380                                        <!--[if BLOCK]><![endif]-->                                            <button type="button" wire:click="gotoPage(3, 'page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700" aria-label="Go to page 3">
1381                                                3
1382                                            </button>
1383                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1384                                                                    <span wire:key="paginator-page-page4">
1385                                        <!--[if BLOCK]><![endif]-->                                            <button type="button" wire:click="gotoPage(4, 'page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700" aria-label="Go to page 4">
1386                                                4
1387                                            </button>
1388                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1389                                                                    <span wire:key="paginator-page-page5">
1390                                        <!--[if BLOCK]><![endif]-->                                            <button type="button" wire:click="gotoPage(5, 'page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700" aria-label="Go to page 5">
1391                                                5
1392                                            </button>
1393                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1394                                                                    <sp
1394an wire:key="paginator-page-page6">
1395                                        <!--[if BLOCK]><![endif]-->                                            <button type="button" wire:click="gotoPage(6, 'page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700" aria-label="Go to page 6">
1396                                                6
1397                                            </button>
1398                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1399                                                                    <span wire:key="paginator-page-page7">
1400                                        <!--[if BLOCK]><![endif]-->                                            <button type="button" wire:click="gotoPage(7, 'page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700" aria-label="Go to page 7">
1401                                                7
1402                                            </button>
1403                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1404                                                                    <span wire:key="paginator-page-page8">
1405                                        <!--[if BLOCK]><![endif]-->                                            <button type="button" wire:click="gotoPage(8, 'page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700" aria-label="Go to page 8">
1406                                                8
1407                                            </button>
1408                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1409                                                                    <span wire:key="paginator-page-page9">
1410                                        <!--[if BLOCK]><![endif]-->                                            <button type="button" wire:click="gotoPage(9, 'page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700" aria-label="Go to page 9">
1411                                                9
1412                                            </button>
1413                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1414                                                                    <sp
1414an wire:key="paginator-page-page10">
1415                                        <!--[if BLOCK]><![endif]-->                                            <button type="button" wire:click="gotoPage(10, 'page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700" aria-label="Go to page 10">
1416                                                10
1417                                            </button>
1418                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1419                                <!--[if ENDBLOCK]><![endif]-->                            <!--[if ENDBLOCK]><![endif]-->                                                    
1420                            <!--[if BLOCK]><![endif]-->                                <span aria-disabled="true">
1421                                    <span class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 cursor-default leading-5 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300">...</span>
1422                                </span>
1423                            <!--[if ENDBLOCK]><![endif]-->
1424                            
1425                            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->                                                    
1426                            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1427                            
1428                            <!--[if BLOCK]><![endif]-->                                <!--[if BLOCK]><![endif]-->                                    <span wire:key="paginator-page-page15">
1429                                        <!--[if BLOCK]><![endif]-->                                            <button type="button" wire:click="gotoPage(15, 'page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700" aria-label="Go to page 15">
1430                                                15
1431                                            </button>
1432                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1433                                                                    <span wire:key="paginator-page-page16">
1434                                        <!--[if BLOCK]><![endif]-->                                            <button type="button" wire:click="gotoPage(16, 'page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 hover:bg-gray-50 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700" aria-label="Go to page 16">
1435                                                16
1436                                            </button>
1437                                        <!--[if ENDBLOCK]><![endif]-->                                    </span>
1438                                <!--[if ENDBLOCK]><![endif]-->                            <!--[if ENDBLOCK]><![endif]-->                        <!--[if ENDBLOCK]><![endif]-->
1439                        <span>
1440                            
1441                            <!--[if BLOCK]><![endif]-->                                <button type="button" wire:click="nextPage('page')" x-on:click="   ($el.closest(&#039;body&#039;) || document.querySelector(&#039;body&#039;)).scrollIntoView()" dusk="nextPage.after" class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300  leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:border-primary-300 focus:ring ring-primary-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:active:bg-gray-700" aria-label="Next &amp;raquo;">
1442                                    <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1443                                        <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd" />
1444                                    </svg>
1445                                </button>
1446                            <!--[if ENDBLOCK]><![endif]-->                        </span>
1447                    </span>
1448                </div>
1449            </div>
1450        </nav>
1451    <!--[if ENDBLOCK]><![endif]--></div>
1452
1453                </div>
1454            <!--[if ENDBLOCK]><![endif]-->        </div>
1455    </div>
1456<!--[if ENDBLOCK]><![endif]-->
1457</div>
1458                        <!--[if ENDBLOCK]><![endif]-->                    <!--[if ENDBLOCK]><![endif]-->
1459                    
1460                    <div class="h-16"></div>
1461                </div>
1462            </div>
1463        </div>
1464    <!--[if ENDBLOCK]><![endif]-->
1465    
1466    <!--[if BLOCK]><![endif]-->        <!--[if BLOCK]><![endif]-->            <section wire:snapshot="{&quot;data&quot;:{&quot;form&quot;:[{&quot;firstName&quot;:&quot;&quot;,&quot;lastName&quot;:&quot;&quot;,&quot;email&quot;:&quot;&quot;,&quot;phone&quot;:&quot;&quot;,&quot;company&quot;:&quot;&quot;,&quot;subject&quot;:&quot;&quot;,&quot;address&quot;:&quot;&quot;,&quot;budget&quot;:&quot;&quot;,&quot;propertyRef&quot;:&quot;&quot;,&quot;contactMethod&quot;:&quot;&quot;,&quot;message&quot;:&quot;&quot;,&quot;agreement&quot;:false,&quot;propertyId&quot;:null,&quot;prospection&quot;:true,&quot;phoneOptional&quot;:false,&quot;propertyTitle&quot;:null,&quot;propertyUrl&quot;:null,&quot;agentName&quot;:null,&quot;propertyReference&quot;:null,&quot;enabledFields&quot;:[[&quot;first_name&quot;,&quot;last_name&quot;,&quot;email&quot;,&quot;phone&quot;,&quot;subject&quot;,&quot;message&quot;],{&quot;s&quot;:&quot;arr&quot;}],&quot;subjectLabels&quot;:[{&quot;buying&quot;:&quot;Buying&quot;,&quot;selling&quot;:&quot;Selling&quot;,&quot;renting&quot;:&quot;Renting&quot;,&quot;valuation&quot;:&quot;Valuation&quot;,&quot;other&quot;:&quot;Other&quot;},{&quot;s&quot;:&quot;arr&quot;}],&quot;ownerSubjectValues&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}]},{&quot;class&quot;:&quot;App\\Livewire\\Forms\\ContactForm&quot;,&quot;s&quot;:&quot;form&quot;}],&quot;fields&quot;:[[&quot;first_name&quot;,&quot;last_name&quot;,&quot;email&quot;,&quot;phone&quot;,&quot;subject&quot;,&quot;message&quot;],{&quot;s&quot;:&quot;arr&quot;}],&quot;justSent&quot;:false,&quot;lastSendFailed&quot;:false,&quot;throttleMessage&quot;:&quot;&quot;,&quot;modalName&quot;:null,&quot;propertyTitle&quot;:null,&quot;propertyUrl&quot;:null,&quot;agentName&quot;:null,&quot;propertyReference&quot;:null,&quot;data&quot;:[{&quot;id&quot;:&quot;5baef29e-9bbd-4dfd-86a5-5925b66a427f&quot;,&quot;design&quot;:&quot;simple-centered&quot;,&quot;fields&quot;:[[&quot;first_name&quot;,&quot;last_name&quot;,&quot;email&quot;,&quot;phone&quot;,&quot;subject&quot;,&quot;message&quot;],{&quot;s&quot;:&quot;arr&quot;}],&quot;heading&quot;:&quot;Contact Us&quot;,&quot;subtitle&quot;:&quot;Have a question about a property or looking for something specific? Get in touch with our team.&quot;,&quot;background&quot;:null,&quot;button_label&quot;:&quot;Send Message&quot;,&quot;section_icon&quot;:&quot;heroicon-s-envelope&quot;,&quot;agreement_text&quot;:&quot;I agree to the privacy policy and consent to being contacted regarding my enquiry.&quot;,&quot;subject_options&quot;:[[[{&quot;label&quot;:&quot;Buying&quot;,&quot;value&quot;:&quot;buying&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;label&quot;:&quot;Selling&quot;,&quot;value&quot;:&quot;selling&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;label&quot;:&quot;Renting&quot;,&quot;value&quot;:&quot;renting&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;label&quot;:&quot;Valuation&quot;,&quot;value&quot;:&quot;valuation&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;label&quot;:&quot;Other&quot;,&quot;value&quot;:&quot;other&quot;},{&quot;s&quot;:&quot;arr&quot;}]],{&quot;s&quot;:&quot;arr&quot;}],&quot;owner_subject_values&quot;:[[],{&quot;s&quot;:&quot;arr&quot;}]},{&quot;s&quot;:&quot;arr&quot;}],&quot;design&quot;:null,&quot;estate&quot;:null,&quot;page&quot;:null,&quot;sample&quot;:false,&quot;zone&quot;:null,&quot;blockIndex&quot;:999,&quot;blockType&quot;:&quot;contact&quot;},&quot;memo&quot;:{&quot;id&quot;:&quot;w79UkDKR2FxiCxEOZVb4&quot;,&quot;name&quot;:&quot;blocks.contact&quot;,&quot;path&quot;:&quot;blog&quot;,&quot;method&quot;:&quot;GET&quot;,&quot;release&quot;:&quot;a-a-a&quot;,&quot;children&quot;:[],&quot;scripts&quot;:[],&quot;assets&quot;:[],&quot;errors&quot;:[],&quot;locale&quot;:&quot;en&quot;},&quot;checksum&quot;:&quot;a2d0a07eaf4c22af3741e555e53ec1da9e7041214eb854d2ce33d343cada6079&quot;}" wire:effects="{&quot;partials&quot;:[]}" wire:id="w79UkDKR2FxiCxEOZVb4"
1467    id="contact"
1468    class="px-4 py-16 sm:px-6 sm:py-20 lg:px-8 dark:bg-gray-900"
1469    >
1470    <div class="mx-auto max-w-2xl">
1471        
1472        <div class="mb-10">
1473            <div class="flex items-center gap-3">
1474                <!--[if BLOCK]><![endif]-->                    <svg class="text-accent size-8" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon">
1475  <path d="M1.5 8.67v8.58a3 3 0 0 0 3 3h15a3 3 0 0 0 3-3V8.67l-8.928 5.493a3 3 0 0 1-3.144 0L1.5 8.67Z"/>
1476  <path d="M22.5 6.908V6.75a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3v.158l9.714 5.978a1.5 1.5 0 0 0 1.572 0L22.5 6.908Z"/>
1477</svg>                <!--[if ENDBLOCK]><![endif]-->                <h2 class="text-3xl font-bold text-gray-800 dark:text-white">Contact Us</h2>
1478            </div>
1479            <!--[if BLOCK]><![endif]-->                <p class="mt-2 text-sm text-gray-600 dark:text-gray-400">Have a question about a property or looking for something specific? Get in touch with our team.</p>
1480            <!--[if ENDBLOCK]><![endif]-->        </div>
1481
1482        
1483        <!--[if BLOCK]><![endif]-->            
1484            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1485            
1486            <form wire:submit="save" class="space-y-5">
1487            <!--[if BLOCK]><![endif]-->                <div class="grid grid-cols-1 gap-5 sm:grid-cols-2">
1488                    <!--[if BLOCK]><![endif]-->                        <ui-field class="min-w-0 [&amp;:not(:has([data-flux-field])):has([data-flux-control][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-radio-group][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-checkbox-group][disabled])&gt;[data-flux-label]]:opacity-50 block *:data-flux-label:mb-3 [&amp;&gt;[data-flux-label]:has(+[data-flux-description])]:mb-2 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mt-0 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mb-3 [&amp;&gt;[data-flux-description]:first-child:has(+*)]:mb-3 [&amp;&gt;*:not([data-flux-label])+[data-flux-description]]:mt-3" data-flux-field>
1489    <ui-label class="inline-flex items-center text-sm font-medium  [:where(&amp;)]:text-zinc-800 [:where(&amp;)]:dark:text-white [&amp;:has([data-flux-label-trailing])]:flex" data-flux-label>
1490    First name
1491
1492    
1493    
1494    </ui-label>
1495        
1496        
1497        <div class="w-full relative block group/input !rounded-none [&amp;_input]:!rounded-none [&amp;_input]:!bg-white dark:[&amp;_input]:!bg-gray-800" data-flux-input>
1498            
1499            <input
1500                type="text"
1501                
1502                class="w-full border block disabled:shadow-none dark:shadow-none appearance-none text-base sm:text-sm rounded-lg py-2 h-10 leading-[1.375rem] ps-3 pe-3 bg-white dark:bg-white/10 dark:disabled:bg-white/[7%] text-zinc-700 disabled:text-zinc-500 placeholder-zinc-400 disabled:placeholder-zinc-400/70 dark:text-zinc-300 dark:disabled:text-zinc-400 dark:placeholder-zinc-400 dark:disabled:placeholder-zinc-500 shadow-xs border-zinc-200 border-b-zinc-300/80 disabled:border-b-zinc-200 dark:border-white/10 dark:disabled:border-white/5 data-invalid:shadow-none data-invalid:border-red-500 dark:data-invalid:border-red-500 disabled:data-invalid:border-red-500 dark:disabled:data-invalid:border-red-500" required="required" wire:model="form.firstName" autocomplete="given-name" label="First name"
1503                 name="form.firstName"                                                                                                 data-flux-control
1504                data-flux-group-target
1505                                            >
1506
1507                    </div>
1508
1509        
1510                <div role="alert" aria-live="polite" aria-atomic="true" class="mt-3 text-sm font-medium text-red-500 dark:text-red-400 hidden" data-flux-error>
1511    </div>
1512</ui-field>
1513                    <!--[if ENDBLOCK]><![endif]-->                    <!--[if BLOCK]><![endif]-->                        <ui-field class="min-w-0 [&amp;:not(:has([data-flux-field])):has([data-flux-control][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-radio-group][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-checkbox-group][disabled])&gt;[data-flux-label]]:opacity-50 block *:data-flux-label:mb-3 [&amp;&gt;[data-flux-label]:has(+[data-flux-description])]:mb-2 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mt-0 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mb-3 [&amp;&gt;[data-flux-description]:first-child:has(+*)]:mb-3 [&amp;&gt;*:not([data-flux-label])+[data-flux-description]]:mt-3" data-flux-field>
1514    <ui-label class="inline-flex items-center text-sm font-medium  [:where(&amp;)]:text-zinc-800 [:where(&amp;)]:dark:text-white [&amp;:has([data-flux-label-trailing])]:flex" data-flux-label>
1515    Last name
1516
1517    
1518    
1519    </ui-label>
1520        
1521        
1522        <div class="w-full relative block group/input !rounded-none [&amp;_input]:!rounded-none [&amp;_input]:!bg-white dark:[&amp;_input]:!bg-gray-800" data-flux-input>
1523            
1524            <input
1525                type="text"
1526                
1527                class="w-full border block disabled:shadow-none dark:shadow-none appearance-none text-base sm:text-sm rounded-lg py-2 h-10 leading-[1.375rem] ps-3 pe-3 bg-white dark:bg-white/10 dark:disabled:bg-white/[7%] text-zinc-700 disabled:text-zinc-500 placeholder-zinc-400 disabled:placeholder-zinc-400/70 dark:text-zinc-300 dark:disabled:text-zinc-400 dark:placeholder-zinc-400 dark:disabled:placeholder-zinc-500 shadow-xs border-zinc-200 border-b-zinc-300/80 disabled:border-b-zinc-200 dark:border-white/10 dark:disabled:border-white/5 data-invalid:shadow-none data-invalid:border-red-500 dark:data-invalid:border-red-500 disabled:data-invalid:border-red-500 dark:disabled:data-invalid:border-red-500" wire:model="form.lastName" autocomplete="family-name" label="Last name"
1528                 name="form.lastName"                                                                                                 data-flux-control
1529                data-flux-group-target
1530                                            >
1531
1532                    </div>
1533
1534        
1535                <div role="alert" aria-live="polite" aria-atomic="true" class="mt-3 text-sm font-medium text-red-500 dark:text-red-400 hidden" data-flux-error>
1536    </div>
1537</ui-field>
1538                    <!--[if ENDBLOCK]><![endif]-->                </div>
1539            <!--[if ENDBLOCK]><![endif]-->
1540            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1541            <!--[if BLOCK]><![endif]-->                <div class="grid grid-cols-1 gap-5 sm:grid-cols-2">
1542                    <!--[if BLOCK]><![endif]-->                        <ui-field class="min-w-0 [&amp;:not(:has([data-flux-field])):has([data-flux-control][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-radio-group][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-checkbox-group][disabled])&gt;[data-flux-label]]:opacity-50 block *:data-flux-label:mb-3 [&amp;&gt;[data-flux-label]:has(+[data-flux-description])]:mb-2 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mt-0 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mb-3 [&amp;&gt;[data-flux-description]:first-child:has(+*)]:mb-3 [&amp;&gt;*:not([data-flux-label])+[data-flux-description]]:mt-3" data-flux-field>
1543    <ui-label class="inline-flex items-center text-sm font-medium  [:where(&amp;)]:text-zinc-800 [:where(&amp;)]:dark:text-white [&amp;:has([data-flux-label-trailing])]:flex" data-flux-label>
1544    Email
1545
1546    
1547    
1548    </ui-label>
1549        
1550        
1551        <div class="w-full relative block group/input !rounded-none [&amp;_input]:!rounded-none [&amp;_input]:!bg-white dark:[&amp;_input]:!bg-gray-800" data-flux-input>
1552            
1553            <input
1554                type="email"
1555                
1556                class="w-full border block disabled:shadow-none dark:shadow-none appearance-none text-base sm:text-sm rounded-lg py-2 h-10 leading-[1.375rem] ps-3 pe-3 bg-white dark:bg-white/10 dark:disabled:bg-white/[7%] text-zinc-700 disabled:text-zinc-500 placeholder-zinc-400 disabled:placeholder-zinc-400/70 dark:text-zinc-300 dark:disabled:text-zinc-400 dark:placeholder-zinc-400 dark:disabled:placeholder-zinc-500 shadow-xs border-zinc-200 border-b-zinc-300/80 disabled:border-b-zinc-200 dark:border-white/10 dark:disabled:border-white/5 data-invalid:shadow-none data-invalid:border-red-500 dark:data-invalid:border-red-500 disabled:data-invalid:border-red-500 dark:disabled:data-invalid:border-red-500" required="required" wire:model="form.email" autocomplete="email" label="Email"
1557                 name="form.email"                                                                                                 data-flux-control
1558                data-flux-group-target
1559                                            >
1560
1561                    </div>
1562
1563        
1564                <div role="alert" aria-live="polite" aria-atomic="true" class="mt-3 text-sm font-medium text-red-500 dark:text-red-400 hidden" data-flux-error>
1565    </div>
1566</ui-field>
1567                    <!--[if ENDBLOCK]><![endif]-->                    <!--[if BLOCK]><![endif]-->                        <ui-field class="min-w-0 [&amp;:not(:has([data-flux-field])):has([data-flux-control][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-radio-group][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-checkbox-group][disabled])&gt;[data-flux-label]]:opacity-50 block *:data-flux-label:mb-3 [&amp;&gt;[data-flux-label]:has(+[data-flux-description])]:mb-2 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mt-0 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mb-3 [&amp;&gt;[data-flux-description]:first-child:has(+*)]:mb-3 [&amp;&gt;*:not([data-flux-label])+[data-flux-description]]:mt-3" data-flux-field>
1568    <ui-label class="inline-flex items-center text-sm font-medium  [:where(&amp;)]:text-zinc-800 [:where(&amp;)]:dark:text-white [&amp;:has([data-flux-label-trailing])]:flex" data-flux-label>
1569    Phone
1570
1571    
1572    
1573    </ui-label>
1574        
1575        
1576        <div class="w-full relative block group/input !rounded-none [&amp;_input]:!rounded-none [&amp;_input]:!bg-white dark:[&amp;_input]:!bg-gray-800" data-flux-input>
1577            
1578            <input
1579                type="tel"
1580                
1581                class="w-full border block disabled:shadow-none dark:shadow-none appearance-none text-base sm:text-sm rounded-lg py-2 h-10 leading-[1.375rem] ps-3 pe-3 bg-white dark:bg-white/10 dark:disabled:bg-white/[7%] text-zinc-700 disabled:text-zinc-500 placeholder-zinc-400 disabled:placeholder-zinc-
1581400/70 dark:text-zinc-300 dark:disabled:text-zinc-400 dark:placeholder-zinc-400 dark:disabled:placeholder-zinc-500 shadow-xs border-zinc-200 border-b-zinc-300/80 disabled:border-b-zinc-200 dark:border-white/10 dark:disabled:border-white/5 data-invalid:shadow-none data-invalid:border-red-500 dark:data-invalid:border-red-500 disabled:data-invalid:border-red-500 dark:disabled:data-invalid:border-red-500" wire:model="form.phone" autocomplete="tel" label="Phone"
1582                 name="form.phone"                                                                                                 data-flux-control
1583                data-flux-group-target
1584                                            >
1585
1586                    </div>
1587
1588        
1589                <div role="alert" aria-live="polite" aria-atomic="true" class="mt-3 text-sm font-medium text-red-500 dark:text-red-400 hidden" data-flux-error>
1590    </div>
1591</ui-field>
1592                    <!--[if ENDBLOCK]><![endif]-->                </div>
1593            <!--[if ENDBLOCK]><![endif]-->
1594            <!--[if BLOCK]><![endif]-->                <!--[if BLOCK]><![endif]-->                    <ui-field class="min-w-0 [&amp;:not(:has([data-flux-field])):has([data-flux-control][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-radio-group][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-checkbox-group][disabled])&gt;[data-flux-label]]:opacity-50 block *:data-flux-label:mb-3 [&amp;&gt;[data-flux-label]:has(+[data-flux-description])]:mb-2 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mt-0 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mb-3 [&amp;&gt;[data-flux-description]:first-child:has(+*)]:mb-3 [&amp;&gt;*:not([data-flux-label])+[data-flux-description]]:mt-3" data-flux-field>
1595    <ui-label class="inline-flex items-center text-sm font-medium  [:where(&amp;)]:text-zinc-800 [:where(&amp;)]:dark:text-white [&amp;:has([data-flux-label-trailing])]:flex" data-flux-label>
1596    Subject
1597
1598    
1599    
1600    </ui-label>
1601        
1602        
1603        <select
1604    class="appearance-none [:where(&amp;)]:w-full ps-3 pe-10 block h-10 py-2 text-base sm:text-sm leading-[1.375rem] rounded-lg shadow-xs border bg-white dark:bg-white/10 dark:disabled:bg-white/[7%] text-zinc-700 dark:text-zinc-300 disabled:text-zinc-500 dark:disabled:text-zinc-400 has-[option.placeholder:checked]:text-zinc-400 dark:has-[option.placeholder:checked]:text-zinc-400 dark:[&amp;_option]:bg-zinc-700 dark:[&amp;_option]:text-white disabled:shadow-none border border-zinc-200 border-b-zinc-300/80 dark:border-white/10 !rounded-none !bg-white dark:!bg-gray-800" wire:model="form.subject" label="Subject"
1605         name="form.subject"         data-flux-control
1606    data-flux-select-native
1607    data-flux-group-target
1608>
1609            <option value="" disabled selected class="placeholder">Select a subject...</option>
1610    
1611    <!--[if BLOCK]><![endif]-->                            <option
1612    
1613     value="buying"      wire:key="buying" >Buying</option>                                                    <option
1614    
1615     value="selling"      wire:key="selling" >Selling</option>                                                    <option
1616    
1617     value="renting"      wire:key="renting" >Renting</option>                                                    <option
1618    
1619     value="valuation"      wire:key="valuation" >Valuation</option>                                                    <option
1620    
1621     value="other"      wire:key="other" >Other</option>                        <!--[if ENDBLOCK]><![endif]-->
1622</select>
1623
1624        
1625                <div role="alert" aria-live="polite" aria-atomic="true" class="mt-3 text-sm font-medium text-red-500 dark:text-red-400 hidden" data-flux-error>
1626    </div>
1627</ui-field>
1628                <!--[if ENDBLOCK]><![endif]-->            <!--[if ENDBLOCK]><![endif]-->
1629            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1630            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1631            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1632            <!--[if BLOCK]><![endif]-->                
1633                <ui-field class="min-w-0 [&amp;:not(:has([data-flux-field])):has([data-flux-control][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-radio-group][disabled])&gt;[data-flux-label]]:opacity-50 [&amp;:has(&gt;[data-flux-checkbox-group][disabled])&gt;[data-flux-label]]:opacity-50 block *:data-flux-label:mb-3 [&amp;&gt;[data-flux-label]:has(+[data-flux-description])]:mb-2 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mt-0 [&amp;&gt;[data-flux-label]+[data-flux-description]]:mb-3 [&amp;&gt;[data-flux-description]:first-child:has(+*)]:mb-3 [&amp;&gt;*:not([data-flux-label])+[data-flux-description]]:mt-3" data-flux-field>
1634    <ui-label class="inline-flex items-center text-sm font-medium  [:where(&amp;)]:text-zinc-800 [:where(&amp;)]:dark:text-white [&amp;:has([data-flux-label-trailing])]:flex" data-flux-label>
1635    Message
1636
1637    
1638    
1639    </ui-label>
1640        
1641                    <ui-description class="text-sm text-zinc-500 dark:text-white/60" data-flux-description>
1642    Tell us what you&#039;re looking for — e.g. preferred location, property type, budget range, timeframe, must-haves...
1643</ui-description>
1644        
1645        <textarea
1646        class="block p-3 w-full shadow-xs disabled:shadow-none border rounded-lg bg-white dark:bg-white/10 dark:disabled:bg-white/[7%] resize-y  text-base sm:text-sm text-zinc-700 disabled:text-zinc-500 placeholder-zinc-400 disabled:placeholder-zinc-400/70 dark:text-zinc-300 dark:disabled:text-zinc-400 dark:placeholder-zinc-400 dark:disabled:placeholder-zinc-500 border-zinc-200 border-b-zinc-300/80 dark:border-white/10 data-invalid:shadow-none data-invalid:border-red-500 dark:data-invalid:border-red-500 !rounded-none [&amp;_textarea]:!rounded-none [&amp;_textarea]:!bg-white dark:[&amp;_textarea]:!bg-gray-800" required="required" wire:model="form.message" label="Message" description="Tell us what you&#039;re looking for — e.g. preferred location, property type, budget range, timeframe, must-haves..."
1647        rows="5"
1648         name="form.message"                                 data-flux-control
1649        data-flux-textarea
1650    ></textarea>
1651
1652        
1653                <div role="alert" aria-live="polite" aria-atomic="true" class="mt-3 text-sm font-medium text-red-500 dark:text-red-400 hidden" data-flux-error>
1654    </div>
1655</ui-field>
1656            <!--[if ENDBLOCK]><![endif]-->
1657            <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->
1658            
1659            <div class="flex items-center justify-between gap-4">
1660                <div class="flex-1 text-sm text-red-600 dark:text-red-400"></div>
1661                <button type="submit" class="relative items-center font-medium justify-center whitespace-nowrap disabled:opacity-50 dark:disabled:opacity-50 disabled:cursor-default disabled:pointer-events-none disabled:shadow-none justify-center h-10 text-sm rounded-lg gap-2 ps-4 pe-4 inline-flex  bg-[var(--color-accent)] hover:bg-[color-mix(in_oklab,_var(--color-accent),_transparent_10%)] text-[var(--color-accent-foreground)] border border-black/10 dark:border-0 shadow-[inset_0px_1px_--theme(--color-white/.2)] [[data-flux-button-group]_&amp;]:border-e-0 [:is([data-flux-button-group]&gt;&amp;:last-child,_[data-flux-button-group]_:last-child&gt;&amp;)]:border-e-[1px] dark:[:is([data-flux-button-group]&gt;&amp;:last-child,_[data-flux-button-group]_:last-child&gt;&amp;)]:border-e-0 [:is([data-flux-button-group]&gt;&amp;:not(:first-child),_[data-flux-button-group]_:not(:first-child)&gt;&amp;)]:border-s-[1px]! [:is([data-flux-button-group]&gt;&amp;:not(:first-child),_[data-flux-button-group]_:not(:first-child)&gt;&amp;)]:border-s-[color-mix(in_srgb,var(--color-accent-foreground),transparent_85%)] *:transition-opacity [&amp;[disabled]&gt;:not([data-flux-loading-indicator])]:opacity-0 [&amp;[disabled]&gt;[data-flux-loading-indicator]]:opacity-100 [&amp;[disabled]]:pointer-events-none   !rounded-none" data-flux-button="data-flux-button" data-flux-group-target="data-flux-group-target">
1662        <div class="absolute inset-0 flex items-center justify-center opacity-0" data-flux-loading-indicator>
1663                <svg class="shrink-0 [:where(&amp;)]:size-4 animate-spin" data-flux-icon xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true" data-slot="icon">
1664    <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
1665    <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
1666</svg>
1667                    </div>
1668        
1669        
1670                    
1671            
1672            <span><span wire:loading.remove wire:target="save">Send Message</span>
1673                    <span wire:loading wire:target="save">Sending...</span></span>
1674    </button>
1675            </div>
1676        </form>
1677        <!--[if ENDBLOCK]><![endif]-->    </div>
1678</section>
1679                    <footer wire:snapshot="{&quot;data&quot;:{&quot;data&quot;:[{&quot;id&quot;:&quot;a6787a15-2423-42d2-b16f-ecf8f1c473bc&quot;,&quot;email&quot;:&quot;[email protected]&quot;,&quot;design&quot;:&quot;four-columns-with-socials-bellow&quot;,&quot;address&quot;:&quot;627 route du Jourdil\n74430 Saint-Jean-d&#039;Aulps, France&quot;,&quot;columns&quot;:[[[{&quot;links&quot;:[[[{&quot;url&quot;:&quot;https:\/\/alpine-property.com\/our-properties\/portes-du-soleil\/morzine&quot;,&quot;label&quot;:&quot;Morzine&quot;,&quot;page_id&quot;:159,&quot;link_type&quot;:&quot;custom&quot;,&quot;page_suffix&quot;:&quot;?city=Morzine&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;https:\/\/alpine-property.com\/our-properties\/portes-du-soleil\/les-gets&quot;,&quot;label&quot;:&quot;Les Gets&quot;,&quot;page_id&quot;:159,&quot;link_type&quot;:&quot;custom&quot;,&quot;page_suffix&quot;:&quot;?city=Les+Gets&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;https:\/\/alpine-property.com\/our-properties\/portes-du-soleil\/chatel-vallee&quot;,&quot;label&quot;:&quot;Ch\u00e2tel&quot;,&quot;page_id&quot;:159,&quot;link_type&quot;:&quot;custom&quot;,&quot;page_suffix&quot;:&quot;?city=Ch%C3%A2tel&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;https:\/\/alpine-property.com\/our-properties\/grand-massif\/samoens-vallee&quot;,&quot;label&quot;:&quot;Samo\u00ebns&quot;,&quot;page_id&quot;:159,&quot;link_type&quot;:&quot;custom&quot;,&quot;page_suffix&quot;:&quot;?city=Samo%C3%ABns&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;https:\/\/alpine-property.com\/our-properties\/aravis\/la-clusaz&quot;,&quot;label&quot;:&quot;La Clusaz&quot;,&quot;page_id&quot;:159,&quot;link_type&quot;:&quot;custom&quot;,&quot;page_suffix&quot;:&quot;?city=La+Clusaz&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;https:\/\/alpine-property.com\/our-properties\/mont-blanc\/chamonix-vallee&quot;,&quot;label&quot;:&quot;Chamonix&quot;,&quot;page_id&quot;:159,&quot;link_type&quot;:&quot;custom&quot;,&quot;page_suffix&quot;:&quot;?city=Chamonix&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;https:\/\/alpine-property.com\/our-properties\/mont-blanc\/st-gervais&quot;,&quot;label&quot;:&quot;St Gervais&quot;,&quot;page_id&quot;:159,&quot;link_type&quot;:&quot;custom&quot;,&quot;page_suffix&quot;:&quot;?city=St+Gervais&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;https:\/\/alpine-property.com\/our-properties\/grand-massif\/flaine-les-carroz&quot;,&quot;label&quot;:&quot;Les Carroz&quot;,&quot;page_id&quot;:159,&quot;link_type&quot;:&quot;custom&quot;,&quot;page_suffix&quot;:&quot;?city=Les+Carroz&quot;},{&quot;s&quot;:&quot;arr&quot;}]],{&quot;s&quot;:&quot;arr&quot;}],&quot;title&quot;:&quot;Popular Locations&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;links&quot;:[[[{&quot;url&quot;:&quot;\/our-properties&quot;,&quot;label&quot;:&quot;Buy Property&quot;,&quot;page_id&quot;:159,&quot;link_type&quot;:&quot;page&quot;,&quot;page_suffix&quot;:null},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;\/our-fees&quot;,&quot;label&quot;:&quot;Sell Property&quot;,&quot;page_id&quot;:150,&quot;link_type&quot;:&quot;page&quot;,&quot;page_suffix&quot;:null},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;\/get-valuation&quot;,&quot;label&quot;:&quot;Get a Valuation&quot;,&quot;page_id&quot;:165,&quot;link_type&quot;:&quot;page&quot;,&quot;page_suffix&quot;:null},{&quot;s&quot;:&quot;arr&quot;}]],{&quot;s&quot;:&quot;arr&quot;}],&quot;title&quot;:&quot;Properties&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;links&quot;:[[[{&quot;url&quot;:&quot;\/the-company&quot;,&quot;label&quot;:&quot;About Us&quot;,&quot;page_id&quot;:147,&quot;link_type&quot;:&quot;page&quot;,&quot;page_suffix&quot;:null},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;\/blog&quot;,&quot;label&quot;:&quot;Blog&quot;,&quot;page_id&quot;:160,&quot;link_type&quot;:&quot;page&quot;,&quot;page_suffix&quot;:null},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;\/faq&quot;,&quot;label&quot;:&quot;FAQ&quot;,&quot;page_id&quot;:153,&quot;link_type&quot;:&quot;page&quot;,&quot;page_suffix&quot;:null},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;\/contact&quot;,&quot;label&quot;:&quot;Contact Us&quot;,&quot;page_id&quot;:167,&quot;link_type&quot;:&quot;page&quot;,&quot;page_suffix&quot;:null},{&quot;s&quot;:&quot;arr&quot;}]],{&quot;s&quot;:&quot;arr&quot;}],&quot;title&quot;:&quot;Company&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;links&quot;:[[[{&quot;url&quot;:&quot;\/privacy-policy&quot;,&quot;label&quot;:&quot;Privacy Policy&quot;,&quot;page_id&quot;:157,&quot;link_type&quot;:&quot;page&quot;,&quot;page_suffix&quot;:null},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;\/legal&quot;,&quot;label&quot;:&quot;Legal Notices&quot;,&quot;page_id&quot;:155,&quot;link_type&quot;:&quot;page&quot;,&quot;page_suffix&quot;:null},{&quot;s&quot;:&quot;arr&quot;}]],{&quot;s&quot;:&quot;arr&quot;}],&quot;title&quot;:&quot;Legal&quot;},{&quot;s&quot;:&quot;arr&quot;}]],{&quot;s&quot;:&quot;arr&quot;}],&quot;brand_name&quot;:&quot;Alpine Property&quot;,&quot;legal_text&quot;:&quot;**Alpine Property SAS** au capital de 3 450 \u20ac \u2014 RCS Thonon les Bains 508 578 556\n\nTitulaire de la Carte Professionnelle n\u00b0 CPI 7401 2016 000 017 391 d\u00e9livr\u00e9e par la CCI de la Haute Savoie.\n\nAlpine Property does not hold client funds. All transactions are handled by a Notaire in accordance with French law.&quot;,&quot;description&quot;:&quot;Specialists in Alpine property since 1999. We help you find the perfect chalet, apartment, or investment property in the French Alps.&quot;,&quot;phone_lines&quot;:[[[{&quot;label&quot;:&quot;FR&quot;,&quot;number&quot;:&quot;+33 (0)4 50 04 86 07&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;label&quot;:&quot;UK&quot;,&quot;number&quot;:&quot;+44 (0)208 123 2384&quot;},{&quot;s&quot;:&quot;arr&quot;}]],{&quot;s&quot;:&quot;arr&quot;}],&quot;social_links&quot;:[[[{&quot;url&quot;:&quot;https:\/\/alpine-property.com\/blog&quot;,&quot;platform&quot;:&quot;blog&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;https:\/\/twitter.com\/alpineproperty&quot;,&quot;platform&quot;:&quot;twitter&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;https:\/\/facebook.com\/alpineproperty&quot;,&quot;platform&quot;:&quot;facebook&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;https:\/\/linkedin.com\/company\/alpine-property&quot;,&quot;platform&quot;:&quot;linkedin&quot;},{&quot;s&quot;:&quot;arr&quot;}],[{&quot;url&quot;:&quot;https:\/\/instagram.com\/alpineproperty&quot;,&quot;platform&quot;:&quot;instagram&quot;},{&quot;s&quot;:&quot;arr&quot;}]],{&quot;s&quot;:&quot;arr&quot;}],&quot;copyright_text&quot;:&quot;Alpine Property - All rights reserved.&quot;},{&quot;s&quot;:&quot;arr&quot;}],&quot;design&quot;:null,&quot;estate&quot;:null,&quot;page&quot;:null,&quot;sample&quot;:false,&quot;zone&quot;:null,&quot;blockIndex&quot;:999,&quot;blockType&quot;:&quot;footer&quot;},&quot;memo&quot;:{&quot;id&quot;:&quot;l6MBMhgSq5V1fZH5wn0T&quot;,&quot;name&quot;:&quot;blocks.footer&quot;,&quot;path&quot;:&quot;blog&quot;,&quot;method&quot;:&quot;GET&quot;,&quot;release&quot;:&quot;a-a-a&quot;,&quot;children&quot;:[],&quot;scripts&quot;:[],&quot;assets&quot;:[],&quot;errors&quot;:[],&quot;locale&quot;:&quot;en&quot;},&quot;checksum&quot;:&quot;dd61bdaf8096d1fa6a489f87a04778fe6609625780c7e6675be3b5ba333618d8&quot;}" wire:effects="{&quot;partials&quot;:[]}" wire:id="l6MBMhgSq5V1fZH5wn0T"
1680            class="border-t border-current/10"
1681        style="--footer-bg: #f8f7f2; --footer-fg: oklch(from var(--footer-bg) clamp(0, (0.6 - l) * 1000, 1) 0 0); background-color: var(--footer-bg); color: var(--footer-fg);"
1682    >
1683    
1684    <div class="mx-auto max-w-7xl px-4 pt-12 pb-12 sm:px-6 sm:pt-14 sm:pb-14 lg:px-8 lg:pt-16 lg:pb-16">
1685        <div class="lg:grid lg:grid-cols-3 lg:gap-8">
1686            
1687            <div class="lg:pr-20">
1688                <div class="flex items-center gap-3">
1689                    <!--[if BLOCK]><![endif]-->                        <img
1690                            class="h-10 w-auto object-contain"
1691                            alt="Alpine Property"
1692                            src="https://fls-a1569c84-ada7-455e-9b34-6fd3a11d7485.laravel.cloud/tenant4f7ab57b-46ca-4888-9ba7-963b34f11668/tenant/logo.svg"
1693                        />
1694                    <!--[if ENDBLOCK]><![endif]-->
1695                    <span class="text-xl font-bold">Alpine Property</span>
1696                </div>
1697
1698                <!--[if BLOCK]><![endif]-->                    <p class="mt-6 text-sm leading-relaxed opacity-80">Specialists in Alpine property since 1999. We help you find the perfect chalet, apartment, or investment property in the French Alps.</p>
1699                <!--[if ENDBLOCK]><![endif]-->
1700                <div class="mt-8 grid grid-cols-1 items-start gap-4 text-sm sm:grid-cols-3 lg:grid-cols-1">
1701                    <!--[if BLOCK]><![endif]-->                        <div class="flex items-start gap-3">
1702                            <svg style="color: #c70036;" class="mt-0.5 size-5 shrink-0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon">
1703  <path fill-rule="evenodd" d="m9.69 18.933.003.001C9.89 19.02 10 19 10 19s.11.02.308-.066l.002-.001.006-.003.018-.008a5.741 5.741 0 0 0 .281-.14c.186-.096.446-.24.757-.433.62-.384 1.445-.966 2.274-1.765C15.302 14.988 17 12.493 17 9A7 7 0 1 0 3 9c0 3.492 1.698 5.988 3.355 7.584a13.731 13.731 0 0 0 2.273 1.765 11.842 11.842 0 0 0 .976.544l.062.029.018.008.006.003ZM10 11.25a2.25 2.25 0 1 0 0-4.5 2.25 2.25 0 0 0 0 4.5Z" clip-rule="evenodd"/>
1704</svg>                            <span class="whitespace-pre-line opacity-80">627 route du Jourdil
170574430 Saint-Jean-d&#039;Aulps, France</span>
1706                        </div>
1707                    <!--[if ENDBLOCK]><![endif]-->
1708                    <!--[if BLOCK]><![endif]-->                        <div class="flex items-start gap-3">
1709                            <svg style="color: #c70036;" class="mt-0.5 size-5 shrink-0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon">
1710  <path fill-rule="evenodd" d="M2 3.5A1.5 1.5 0 0 1 3.5 2h1.148a1.5 1.5 0 0 1 1.465 1.175l.716 3.223a1.5 1.5 0 0 1-1.052 1.767l-.933.267c-.41.117-.643.555-.48.95a11.542 11.542 0 0 0 6.254 6.254c.395.163.833-.07.95-.48l.267-.933a1.5 1.5 0 0 1 1.767-1.052l3.223.716A1.5 1.5 0 0 1 18 15.352V16.5a1.5 1.5 0 0 1-1.5 1.5H15c-1.149 0-2.263-.15-3.326-.43A13.022 13.022 0 0 1 2.43 8.326 13.019 13.019 0 0 1 2 5V3.5Z" clip-rule="evenodd"/>
1711</svg>                            <div class="opacity-80">
1712                                <!--[if BLOCK]><![endif]-->                                    <p>
1713                                        <!--[if BLOCK]><![endif]-->                                            FR:
1714                                        <!--[if ENDBLOCK]><![endif]-->
1715                                        +33 (0)4 50 04 86 07
1716                                    </p>
1717                                                                    <p>
1718                                        <!--[if BLOCK]><![endif]-->                                            UK:
1719                                        <!--[if ENDBLOCK]><![endif]-->
1720                                        +44 (0)208 123 2384
1721                                    </p>
1722                                <!--[if ENDBLOCK]><![endif]-->                            </div>
1723                        </div>
1724                    <!--[if ENDBLOCK]><![endif]-->
1725                    <!--[if BLOCK]><![endif]-->                        <div class="flex items-center gap-3">
1726                            <svg style="color: #c70036;" class="size-5 shrink-0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon">
1727  <path d="M3 4a2 2 0 0 0-2 2v1.161l8.441 4.221a1.25 1.25 0 0 0 1.118 0L19 7.162V6a2 2 0 0 0-2-2H3Z"/>
1728  <path d="m19 8.839-7.77 3.885a2.75 2.75 0 0 1-2.46 0L1 8.839V14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.839Z"/>
1729</svg>                            <a class="opacity-80 transition-opacity hover:opacity-100" href="mailto:[email protected]">
1730                                [email protected]
1731                            </a>
1732                        </div>
1733                    <!--[if ENDBLOCK]><![endif]-->                </div>
1734
1735                
1736                <!--[if BLOCK]><![endif]-->                    <div class="mt-10 flex items-center gap-x-6 sm:justify-center lg:justify-start">
1737                        <!--[if BLOCK]><![endif]-->                                                        <a
1738                                class="text-[color:var(--ic)] transition-colors hover:text-[color:var(--ic-h)]"
1739                                style="--ic: #c70036; --ic-h: #ab002e;"
1740                                href="https://alpine-property.com/blog"
1741                                                                    rel="nofollow noopener"
1742                                                            >
1743                                <span class="sr-only">Blog</span>
1744                                <!--[if BLOCK]><![endif]-->    <svg class="size-7" aria-hidden="true" fill="currentColor" viewBox="0 0 24 24">
1745        <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/>
1746    </svg>
1747<!--[if ENDBLOCK]><![endif]-->                            </a>
1748                                                                                <a
1749                                class="text-[color:var(--ic)] transition-colors hover:text-[color:var(--ic-h)]"
1750                                style="--ic: #c70036; --ic-h: #ab002e;"
1751                                href="https://twitter.com/alpineproperty"
1752                                                                    rel="nofollow noopener"
1753                                                            >
1754                                <span class="sr-only">Twitter</span>
1755                                <!--[if BLOCK]><![endif]-->    <svg class="size-7" aria-hidden="true" fill="currentColor" viewBox="0 0 24 24">
1756        <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"/>
1757    </svg>
1758<!--[if ENDBLOCK]><![endif]-->                            </a>
1759                                                                                <a
1760                                class="text-[color:var(--ic)] transition-colors hover:text-[color:var(--ic-h)]"
1761                                style="--ic: #c70036; --ic-h: #ab002e;"
1762                                href="https://facebook.com/alpineproperty"
1763                                                                    rel="nofollow noopener"
1764                                                            >
1765                                <span class="sr-only">Facebook</span>
1766                                <!--[if BLOCK]><![endif]-->    <svg class="size-7" aria-hidden="true" fill="currentColor" viewBox="0 0 24 24">
1767        <path fill-rule="evenodd" d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987
1767h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z" clip-rule="evenodd" />
1768    </svg>
1769<!--[if ENDBLOCK]><![endif]-->                            </a>
1770                                                                                <a
1771                                class="text-[color:var(--ic)] transition-colors hover:text-[color:var(--ic-h)]"
1772                                style="--ic: #c70036; --ic-h: #ab002e;"
1773                                href="https://linkedin.com/company/alpine-property"
1774                                                                    rel="nofollow noopener"
1775                                                            >
1776                                <span class="sr-only">Linkedin</span>
1777                                <!--[if BLOCK]><![endif]-->    <svg class="size-7" aria-hidden="true" fill="currentColor" viewBox="0 0 24 24">
1778        <path fill-rule="evenodd" d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z" clip-rule="evenodd" />
1779    </svg>
1780<!--[if ENDBLOCK]><![endif]-->                            </a>
1781                                                                                <a
1782                                class="text-[color:var(--ic)] transition-colors hover:text-[color:var(--ic-h)]"
1783                                style="--ic: #c70036; --ic-h: #ab002e;"
1784                                href="https://instagram.com/alpineproperty"
1785                                                                    rel="nofollow noopener"
1786                                                            >
1787                                <span class="sr-only">Instagram</span>
1788                                <!--[if BLOCK]><![endif]-->    <svg class="size-7" aria-hidden="true" fill="currentColor" viewBox="0 0 24 24">
1789        <path fill-rule="evenodd" d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z" clip-rule="evenodd" />
1790    </svg>
1791<!--[if ENDBLOCK]><![endif]-->                            </a>
1792                        <!--[if ENDBLOCK]><![endif]-->                    </div>
1793                <!--[if ENDBLOCK]><![endif]-->            </div>
1794
1795            
1796            <!--[if BLOCK]><![endif]-->                <div class="mt-12 grid grid-cols-2 gap-8 lg:col-span-2 lg:mt-0">
1797                    <!--[if BLOCK]><![endif]-->                        <div class="md:grid md:grid-cols-2 md:gap-8">
1798                            <!--[if BLOCK]><![endif]-->                                <div class="">
1799                                    <h3 class="text-sm font-semibold tracking-wider up
1799percase">
1800                                        Popular Locations
1801                                    </h3>
1802                                    <!--[if BLOCK]><![endif]-->                                        <ul class="mt-5 space-y-3" role="list">
1803                                            <!--[if BLOCK]><![endif]-->                                                                                                                                                <li>
1804                                                    <a
1805                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1806                                                        href="https://alpine-property.com/our-properties/portes-du-soleil/morzine"
1807                                                                                                                    rel="nofollow noopener"
1808                                                                                                            >
1809                                                        Morzine
1810                                                    </a>
1811                                                </li>
1812                                                                                                                                                                                            <li>
1813                                                    <a
1814                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1815                                                        href="https://alpine-property.com/our-properties/portes-du-soleil/les-gets"
1816                                                                                                                    rel="nofollow noopener"
1817                                                                                                            >
1818                                                        Les Gets
1819                                                    </a>
1820                                                </li>
1821                                                                                                                                                                                            <li>
1822                                                    <a
1823                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1824                                                        href="https://alpine-property.com/our-properties/portes-du-soleil/chatel-vallee"
1825                                                                                                                    rel="nofollow noopener"
1826                                                                                                            >
1827                                                        Châtel
1828                                                    </a>
1829                                                </li>
1830                                                                                                                                                                                            <li>
1831                                                    <a
1832                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1833                                                        href="https://alpine-property.com/our-properties/grand-massif/samoens-vallee"
1834                                                                                                                    rel="nofollow noopener"
1835                                                                                                            >
1836                                                        Samoëns
1837                                                    </a>
1838                                                </li>
1839                                                                                                                                                                                            <li>
1840                                                    <a
1841                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1842                                                        href="https://alpine-property.com/our-properties/aravis/la-clusaz"
1843                                                                                                                    rel="nofollow noopener"
1844                                                                                                            >
1845                                                        La Clusaz
1846                                                    </a>
1847                                                </li>
1848                                                                                                                                                                                            <li>
1849                                                    <a
1850                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1851                                                        href="https://alpine-property.com/our-properties/mont-blanc/chamonix-vallee"
1852                                                                                                                    rel="nofollow noopener"
1853                                                                                                            >
1854                                                        Chamonix
1855                                                    </a>
1856                                                </li>
1857                                                                                                                                                                                            <li>
1858                                                    <a
1859                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1860                                                        href="https://alpine-property.com/our-properties/mont-blanc/st-gervais"
1861                                                                                                                    rel="nofollow noopener"
1862                                                                                                            >
1863                                                        St Gervais
1864                                                    </a>
1865                                                </li>
1866                                                                                                                                                                                            <li>
1867                                                    <a
1868                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1869                                                        href="https://alpine-property.com/our-properties/grand-massif/flaine-les-carroz"
1870                                                                                                                    rel="nofollow noopener"
1871                                                                                                            >
1872                                                        Les Carroz
1873                                                    </a>
1874                                                </li>
1875                                            <!--[if ENDBLOCK]><![endif]-->                                        </ul>
1876                                    <!--[if ENDBLOCK]><![endif]-->                                </div>
1877                                                            <div class="mt-12 md:mt-0">
1878                                    <h3 class="text-sm font-semibold tracking-wider up
1878percase">
1879                                        Properties
1880                                    </h3>
1881                                    <!--[if BLOCK]><![endif]-->                                        <ul class="mt-5 space-y-3" role="list">
1882                                            <!--[if BLOCK]><![endif]-->                                                                                                                                                <li>
1883                                                    <a
1884                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1885                                                        href="/our-properties"
1886                                                                                                                    wire:navigate
1887                                                                                                            >
1888                                                        Buy Property
1889                                                    </a>
1890                                                </li>
1891                                                                                                                                                                                            <li>
1892                                                    <a
1893                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1894                                                        href="/our-fees"
1895                                                                                                                    wire:navigate
1896                                                                                                            >
1897                                                        Sell Property
1898                                                    </a>
1899                                                </li>
1900                                                                                                                                                                                            <li>
1901                                                    <a
1902                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1903                                                        href="/get-valuation"
1904                                                                                                                    wire:navigate
1905                                                                                                            >
1906                                                        Get a Valuation
1907                                                    </a>
1908                                                </li>
1909                                            <!--[if ENDBLOCK]><![endif]-->                                        </ul>
1910                                    <!--[if ENDBLOCK]><![endif]-->                                </div>
1911                            <!--[if ENDBLOCK]><![endif]-->                        </div>
1912                                            <div class="md:grid md:grid-cols-2 md:gap-8">
1913                            <!--[if BLOCK]><![endif]-->                                <div class="">
1914                                    <h3 class="text-sm font-semibold tracking-wider uppercase">
1915                                        Company
1916                                    </h3>
1917                                    <!--[if BLOCK]><![endif]-->                                        <ul class="mt-5 space-y-3" role="list">
1918                                            <!--[if BLOCK]><![endif]-->                                                                                                                                                <li>
1919                                                    <a
1920                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1921                                                        href="/the-company"
1922                                                                                                                    wire:navigate
1923                                                                                                            >
1924                                                        About Us
1925                                                    </a>
1926                                                </li>
1927                                                                                                                                                                                            <li>
1928                                                    <a
1929                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1930                                                        href="/blog"
1931                                                                                                                    wire:navigate
1932                                                                                                            >
1933                                                        Blog
1934                                                    </a>
1935                                                </li>
1936                                                                                                                                                                                            <li>
1937                                                    <a
1938                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1939                                                        href="/faq"
1940                                                                                                                    wire:navigate
1941                                                                                                            >
1942                                                        FAQ
1943                                                    </a>
1944                                                </li>
1945                                                                                                                                                                                            <li>
1946                                                    <a
1947                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1948                                                        href="/contact"
1949                                                                                                                    wire:navigate
1950                                                                                                            >
1951                                                        Contact Us
1952                                                    </a>
1953                                                </li>
1954                                            <!--[if ENDBLOCK]><![endif]-->                                        </ul>
1955                                    <!--[if ENDBLOCK]><![endif]-->                                </div>
1956                                                            <div class="mt-12 md:mt-0">
1957                                    <h3 class="text-sm font-semibold tracking-wider up
1957percase">
1958                                        Legal
1959                                    </h3>
1960                                    <!--[if BLOCK]><![endif]-->                                        <ul class="mt-5 space-y-3" role="list">
1961                                            <!--[if BLOCK]><![endif]-->                                                                                                                                                <li>
1962                                                    <a
1963                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1964                                                        href="/privacy-policy"
1965                                                                                                                    wire:navigate
1966                                                                                                            >
1967                                                        Privacy Policy
1968                                                    </a>
1969                                                </li>
1970                                                                                                                                                                                            <li>
1971                                                    <a
1972                                                        class="text-sm opacity-70 transition-opacity hover:opacity-100"
1973                                                        href="/legal"
1974                                                                                                                    wire:navigate
1975                                                                                                            >
1976                                                        Legal Notices
1977                                                    </a>
1978                                                </li>
1979                                            <!--[if ENDBLOCK]><![endif]-->                                        </ul>
1980                                    <!--[if ENDBLOCK]><![endif]-->                                </div>
1981                            <!--[if ENDBLOCK]><![endif]-->                        </div>
1982                    <!--[if ENDBLOCK]><![endif]-->                </div>
1983            <!--[if ENDBLOCK]><![endif]-->        </div>
1984    </div>
1985
1986    
1987    <!--[if BLOCK]><![endif]-->        <div
1988                            style="--legal-bg: #ab002e; background-color: var(--legal-bg); color: oklch(from var(--legal-bg) clamp(0, (0.6 - l) * 1000, 1) 0 0)"
1989                    >
1990            <div class="mx-auto max-w-7xl px-4 py-10 sm:px-6 lg:px-8">
1991                <!--[if BLOCK]><![endif]-->                    <div
1992                        class="text-left text-xs leading-relaxed opacity-70 [&_a]:underline [&_p]:mb-1 [&_strong]:font-semibold"
1993                    >
1994                        <p><strong>Alpine Property SAS</strong> au capital de 3 450 € — RCS Thonon les Bains 508 578 556</p>
1995<p>Titulaire de la Carte Professionnelle n° CPI 7401 2016 000 017 391 délivrée par la CCI de la Haute Savoie.</p>
1996<p>Alpine Property does not hold client funds. All transactions are handled by a Notaire in accordance with French law.</p>
1997
1998                    </div>
1999                    <div class="my-8 border-t border-current/15"></div>
2000                <!--[if ENDBLOCK]><![endif]-->
2001                <!--[if BLOCK]><![endif]-->                    <div class="flex flex-col items-center justify-between gap-4 text-center sm:flex-row sm:text-left">
2002                        <p class="text-xs opacity-60">&copy; 2026 Alpine Property - All rights reserved.</p>
2003                        
2004                        <!--[if BLOCK]><![endif]--><!--[if ENDBLOCK]><![endif]-->                    </div>
2005                <!--[if ENDBLOCK]><![endif]-->            </div>
2006        </div>
2007    <!--[if ENDBLOCK]><![endif]--></footer>
2008        <!--[if ENDBLOCK]><![endif]-->    <!--[if ENDBLOCK]><![endif]--></div>
2009
2010        <div
2011    x-data="{
2012        visible: false,
2013        cookieOpen: false,
2014        init() {
2015            window.addEventListener(
2016                'scroll',
2017                () => {
2018                    this.visible = window.scrollY > window.innerHeight
2019                },
2020                { passive: true },
2021            )
2022        },
2023    }"
2024    x-on:cookie-consent-visibility.document="cookieOpen = $event.detail.open"
2025    class="bottom-6 fixed right-6 z-50 flex flex-col items-end gap-3"
2026>
2027    
2028    <button
2029        x-cloak
2030        x-on:click="window.scrollTo({ top: 0, behavior: 'smooth' })"
2031        x-show="visible"
2032        x-transition:enter="transition-all duration-500 ease-out"
2033        x-transition:enter-end="translate-y-0 opacity-100"
2034        x-transition:enter-start="translate-y-4 opacity-0"
2035        x-transition:leave="transition-all duration-300 ease-in"
2036        x-transition:leave-end="translate-y-4 opacity-0"
2037        x-transition:leave-start="translate-y-0 opacity-100"
2038        class=" flex size-12 items-center justify-center text-white shadow-lg hover:scale-110 hover:shadow-xl"
2039        style="background-color: #c70036"
2040        type="button"
2041    >
2042        <span class="sr-only">Scroll to top</span>
2043        <svg class="size-6" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
2044            <path d="M4.5 15.75l7.5-7.5 7.5 7.5" stroke-linecap="round" stroke-linejoin="round" />
2045        </svg>
2046    </button>
2047</div>
2048                <ui-toast x-data x-on:toast-show.document="! $el.closest('ui-toast-group') && $el.showToast($event.detail)" popover="manual" position="bottom end" wire:ignore>
2049    <template>
2050        <div class="group/toast max-w-sm in-[ui-toast-group]:max-w-auto in-[ui-toast-group]:w-xs sm:in-[ui-toast-group]:w-sm" data-variant=""  data-flux-toast-dialog>
2051            <div class="p-2 flex rounded-xl shadow-lg bg-white border border-zinc-200 border-b-zinc-300/80 dark:bg-zinc-700 dark:border-zinc-600 group-data-invert/toast:bg-zinc-800 group-data-invert/toast:border-zinc-700 dark:group-data-invert/toast:bg-white dark:group-data-invert/toast:border-zinc-200 dark:group-data-invert/toast:border-b-zinc-300/80">
2052                <div class="flex-1 flex items-start gap-4 has-data-flux-toast-action:gap-2 overflow-hidden">
2053                    <div class="flex-1 py-1.5 ps-2.5 flex gap-2">
2054                        
2055                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" class="hidden [[data-flux-toast-dialog][data-variant=success]_&]:block shrink-0 mt-0.5 size-4 text-lime-600 dark:text-lime-400">
2056                            <path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm3.844-8.791a.75.75 0 0 0-1.188-.918l-3.7 4.79-1.649-1.833a.75.75 0 1 0-1.114 1.004l2.25 2.5a.75.75 0 0 0 1.15-.043l4.25-5.5Z" clip-rule="evenodd" />
2057                        </svg>
2058
2059                        
2060                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" class="hidden [[data-flux-toast-dialog][data-variant=warning]_&]:block shrink-0 mt-0.5 size-4 text-amber-500 dark:text-amber-400">
2061                            <path fill-rule="evenodd" d="M6.701 2.25c.577-1 2.02-1 2.598 0l5.196 9a1.5 1.5 0 0 1-1.299 2.25H2.804a1.5 1.5 0 0 1-1.3-2.25l5.197-9ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 1 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" />
2062                        </svg>
2063
2064                        
2065                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" class="hidden [[data-flux-toast-dialog][data-variant=info]_&]:block shrink-0 mt-0.5 size-4 text-cyan-500 dark:text-cyan-400">
2066                            <path fill-rule="evenodd" d="M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM9 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM6.75 8a.75.75 0 0 0 0 1.5h.75v1.75a.75.75 0 0 0 1.5 0v-2.5A.75.75 0 0 0 8.25 8h-1.5Z" clip-rule="evenodd" />
2067                        </svg>
2068
2069                        
2070                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" class="hidden [[data-flux-toast-dialog][data-variant=danger]_&]:block shrink-0 mt-0.5 size-4 text-rose-500 dark:text-rose-400">
2071                            <path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM8 4a.75.75 0 0 1 .75.75v3a.75.75 0 0 1-1.5 0v-3A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" clip-rule="evenodd" />
2072                        </svg>
2073
2074                        <div>
2075                            
2076                            <div class="font-medium text-sm text-zinc-800 dark:text-white group-data-invert/toast:text-white dark:group-data-invert/toast:text-zinc-800 [&:not(:empty)+div]:font-normal [&:not(:empty)+div]:text-zinc-500 [&:not(:empty)+div]:dark:text-zinc-300 group-data-invert/toast:[&:not(:empty)+div]:text-zinc-300 dark:group-data-invert/toast:[&:not(:empty)+div]:text-zinc-500 [&:not(:empty)]:pb-2"><slot name="heading"></slot></div>
2077
2078                            
2079                            <div class="font-medium text-sm text-zinc-800 dark:text-white group-data-invert/toast:text-white dark:group-data-invert/toast:text-zinc-800"><slot name="text"></slot></div>
2080
2081                            
2082                            <template name="link">
2083                                <a class="block mt-2 font-medium text-sm text-[var(--color-accent-content)] decoration-[color-mix(in_oklab,var(--color-accent-content),transparent_80%)] underline underline-offset-[6px] hover:decoration-current group-data-invert/toast:text-white group-data-invert/toast:decoration-white/20 dark:group-data-invert/toast:text-zinc-800 dark:group-data-invert/toast:decoration-zinc-800/20"><slot name="text"></slot></a>
2084                            </template>
2085                        </div>
2086                    </div>
2087
2088                    <div class="flex items-center gap-1">
2089                        
2090                        <template name="action">
2091                            <div class="flex items-center" data-flux-toast-action>
2092                                <button type="button" data-flux-toast-action-button class="relative inline-flex h-8 items-center justify-center gap-2 whitespace-nowrap rounded-md bg-zinc-800/5 px-3 text-sm font-medium text-zinc-800 hover:bg-zinc-800/10 data-loading:pointer-events-none dark:bg-white/10 dark:text-white dark:hover:bg-white/20 group-data-invert/toast:bg-white/10 group-data-invert/toast:text-white group-data-invert/toast:hover:bg-white/20 dark:group-data-invert/toast:bg-zinc-800/5 dark:group-data-invert/toast:text-zinc-800 dark:group-data-invert/toast:hover:bg-zinc-800/10 [&[data-loading]_[data-flux-toast-action-label]]:opacity-0 [&[data-loading]_[data-flux-loading-indicator]]:opacity-100">
2093                                    <span class="transition-opacity" data-flux-toast-action-label></span>
2094                                    <span class="absolute inset-0 flex items-center justify-center opacity-0 transition-opacity" data-flux-loading-indicator>
2095                                        <svg class="size-4 animate-spin" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true">
2096                                            <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
2097                                            <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 0 1 8-8V0C5.373 0 0 5.373 0 12h4Z"></path>
2098                                        </svg>
2099                                    </span>
2100                                </button>
2101
2102                                <a data-flux-toast-action-link class="inline-flex h-8 items-center justify-center gap-2 whitespace-nowrap rounded-md bg-zinc-800/5 px-3 text-sm font-medium text-zinc-800 hover:bg-zinc-800/10 dark:bg-white/10 dark:text-white dark:hover:bg-white/20 group-data-invert/toast:bg-white/10 group-data-invert/toast:text-white group-data-invert/toast:hover:bg-white/20 dark:group-data-invert/toast:bg-zinc-800/5 dark:group-data-invert/toast:text-zinc-800 dark:group-data-invert/toast:hover:bg-zinc-800/10">
2103                                    <span data-flux-toast-action-label></span>
2104                                </a>
2105                            </div>
2106                        </template>
2107
2108                        
2109                        <ui-close class="flex items-center">
2110                            <button type="button" class="inline-flex items-center font-medium justify-center gap-2 truncate disabled:opacity-50 dark:disabled:opacity-75 disabled:cursor-default h-8 text-sm rounded-md w-8 bg-transparent hover:bg-zinc-800/5 dark:hover:bg-white/15 text-zinc-400 hover:text-zinc-800 dark:text-zinc-400 dark:hover:text-white group-data-invert/toast:hover:bg-white/15 group-data-invert/toast:hover:text-white dark:group-data-invert/toast:hover:bg-zinc-800/5 dark:group-data-invert/toast:hover:text-zinc-800" as="button">
2111                                <div>
2112                                    <svg class="[:where(&)]:size-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon">
2113                                        <path d="M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z"></path>
2114                                    </svg>
2115                                </div>
2116                            </button>
2117                        </ui-close>
2118                    </div>
2119                </div>
2120            </div>
2121        </div>
2122    </template>
2123</ui-toast>
2124        
2124<script src="https://alpine-property.com/flux/flux.min.js?id=505e8a75" data-navigate-once></script>
2124
2125        
2125<script>
2126        window.filamentData = []    </script>
2126
2127
2128            
2129            
2129<script
2130                src="https://alpine-property.com/js/filament/actions/actions.js?v=4.13.4.0"
2131                
2132                
2133                
2134                
2135                
2136                
2137            ></script>
2137
2138        
2139                
2140            
2140<script
2141                src="https://alpine-property.com/js/filament/notifications/notifications.js?v=4.13.4.0"
2142                
2143                
2144                
2145                
2146                
2147                
2148            ></script>
2148
2149        
2150                
2151            
2151<script
2152                src="https://alpine-property.com/js/filament/schemas/schemas.js?v=4.13.4.0"
2153                
2154                
2155                
2156                
2157                
2158                
2159            ></script>
2159
2160        
2161                
2162            
2162<script
2163                src="https://alpine-property.com/js/filament/support/support.js?v=4.13.4.0"
2164                
2165                
2166                
2167                
2168                
2169                
2170            ></script>
2170
2171        
2172                
2173            
2173<script
2174                src="https://alpine-property.com/js/filament/tables/tables.js?v=4.13.4.0"
2175                
2176                
2177                
2178                
2179                
2180                
2181            ></script>
2181
2182        
2183                
2184            
2184<script
2185                src="https://alpine-property.com/js/solution-forest/filament-tree/filament-tree.js?v=3.1.6.0"
2186                
2187                
2188                
2189                
2190                
2191                
2192            ></script>
2192
2193        
2194    
2195<style>
2196    :root {
2197            }
2198
2199    </style>
2200                
2200<script>
2201            ;(function () {
2202                if (window.lazyImageGrid) return
2203
2204                // Wire-protocol markers (EstateThumbnailResolver::PENDING /
2205                // ::OUT_OF_SCOPE). Defined here too because grid pages
2206                // without a map block never load the map popup renderer that
2207                // also registers them.
2208                window.THUMB_PENDING = window.THUMB_PENDING || '__THUMB_PENDING__'
2209                window.THUMB_OOS = window.THUMB_OOS || '__THUMB_OOS__'
2210
2211                window.lazyImageGrid = function (config) {
2212                    const STORE_KEY = config.storageKey
2213                    const CELL_SELECTOR = `[${config.cellAttr}]`
2214                    const ID_ATTR = config.idAttr
2215                    const ALT_ATTR = config.altAttr
2216                    const EVENT_NAME = config.eventName
2217                    const WIRE_METHOD = config.wireMethod
2218                    const DEFAULT_IMG_CLASS = config.defaultImgClass || 'size-full object-cover'
2219
2220                    return {
2221                        _queue: null,
2222                        _debounce: null,
2223                        _fetched: null,
2224                        _negatives: null,
2225                        _io: null,
2226                        _mo: null,
2227                        _timers: null,
2228                        _alive: false,
2229
2230                        init() {
2231                            // Cleared in destroy(): pending/watchdog timers on
2232                            // a torn-down instance must never poke a dead
2233                            // component's $wire.
2234                            this._alive = true
2235                            this._timers = []
2236                            this._queue = new Set()
2237                            this._fetched = new Set()
2238                            // Ids resolved to "no image" this session. Kept in memory
2239                            // only (never persisted), so a returning visitor re-checks
2240                            // and a newly-photographed estate self-heals — while still
2241                            // giving morph-reverted cells a zero-round-trip recovery path.
2242                            this._negatives = new Set()
2243
2244                            this.$wire.on(EVENT_NAME, (event) => {
2245                                // Family rule: Livewire never unbinds $wire.on
2246                                // — a destroyed instance's handler must be inert.
2247                                if (!this._alive) return
2248                                this.handleBatch(event.thumbnails || {})
2249                            })
2250
2251                            this.$nextTick(() => {
2252                                this.hydrateFromStorage()
2253                                this.installObserver()
2254                            })
2255
2256                            // Pagination and filter/sort morphs rewrite $root: pagination
2257                            // tears cards down + adds fresh ones (new wire:key), and an
2258                            // in-place morph of a SURVIVING card reconciles its cell back
2259                            // to the server skeleton — blanking the image we injected. The
2260                            // MutationObserver catches both: re-hydrate reverted/new cells
2261                            // from the cache (or the in-memory negatives) and observe any
2262                            // still-empty newcomers. (The removed capture-phase click
2263                            // listener used to blank EVERY loaded cell on a pagination
2264                            // click, which the visitor saw as the whole page
2265                            // "re-lazy-loading" during the round-trip — that was the flash.)
2266                            const mo = (this._mo = new MutationObserver(() => {
2267                                queueMicrotask(() => {
2268                                    if (!this._alive) return
2269                                    this.hydrateFromStorage()
2270                                    this.observeNew()
2271                                })
2272                            }))
2273                            this.$nextTick(() => {
2274                                if (this._alive) mo.observe(this.$root, { childList: true, subtree: true })
2275                            })
2276                        },
2277
2278                        destroy() {
2279                            this._alive = false
2280                            if (this._debounce) clearTimeout(this._debounce)
2281                            ;
2281(this._timers || []).forEach((t) => clearTimeout(t))
2282                            this._timers = []
2283                            this._io?.disconnect()
2284                            this._io = null
2285                            this._mo?.disconnect()
2286                            this._mo = null
2287                        },
2288
2289                        hydrateFromStorage() {
2290                            // `:not([data-image-loaded])` selects cells that still need
2291                            // rendering — both never-loaded cells AND cells a Livewire
2292                            // morph just reverted to the server skeleton (which drops the
2293                            // attribute). Restore each from the positive cache, else from
2294                            // this session's negatives, without a round-trip.
2295                            const cells = this.$root.querySelectorAll(`${CELL_SELECTOR}:not([data-image-loaded])`)
2296                            cells.forEach((cell) => {
2297                                const id = cell.getAttribute(ID_ATTR)
2298                                if (!id) return
2299                                let cached = null
2300                                try {
2301                                    cached = localStorage.getItem(STORE_KEY + id)
2302                                } catch {
2303                                    /* private mode etc. — silent */
2304                                }
2305                                // Session truth beats a possibly-stale cached
2306                                // positive: OOS and an authoritative negative
2307                                // are both CURRENT-server verdicts, the cache
2308                                // entry may predate them (same order as the
2309                                // map sidebar).
2310                                if (this._oosIds && this._oosIds.has(id)) {
2311                                    this.renderNoImage(cell)
2312                                } else if (this._negatives.has(id)) {
2313                                    this.renderNoImage(cell)
2314                                } else if (cached) {
2315                                    this._fetched.add(id)
2316                                    this.renderImage(cell, cached)
2317                                }
2318                            })
2319                        },
2320
2321                        installObserver() {
2322                            this._io = new IntersectionObserver(
2323                                (entries) => {
2324                                    for (const entry of entries) {
2325                                        if (!entry.isIntersecting) continue
2326                                        const id = entry.target.getAttribute(ID_ATTR)
2327                                        if (!id || this._fetched.has(id)) {
2328                                            this._io.unobserve(entry.target)
2329                                            continue
2330                                        }
2331                                        this._queue.add(id)
2332                                        this._io.unobserve(entry.target)
2333                                    }
2334                                    this.scheduleBatch()
2335                                },
2336                                { rootMargin: '300px 0px', threshold: 0.01 }
2337                            )
2338
2339                            this.observeNew()
2340                        },
2341
2342                        observeNew() {
2343                            if (!this._io) return
2344                            const cells = this.$root.querySelectorAll(`${CELL_SELECTOR}:not([data-image-loaded])`)
2345                            cells.forEach((cell) => {
2346                                const id = cell.getAttribute(ID_ATTR)
2347                                if (id && !this._fetched.has(id)) this._io.observe(cell)
2348                            })
2349                        },
2350
2351                        scheduleBatch() {
2352                            if (!this._alive) return
2353                            if (this._debounce) clearTimeout(this._debounce)
2354                            this._debounce = setTimeout(() => {
2355                                const ids = [...this._queue]
2356                                this._queue.clear()
2357                                this._debounce = null
2358                                if (ids.length === 0 || !this._alive) return
2359                                ids.forEach((id) => this._fetched.add(id))
2360                                // Livewire method promises resolve with the
2361                                // return value but NEVER reject — a .catch
2362                                // would be dead code. On a missing settlement
2363                                // (deploy window, network blip) the watchdog
2364                                // re-queues the batch directly — the observer
2365                                // already unobserved these cells, so un-marking
2366                                // alone would leave them skeletons forever.
2367                                // Bounded to one watchdog retry per id.
2368                                let settled = false
2369                                const watchdog = setTimeout(() => {
2370                                    if (settled || !this._alive) return
2371                                    this._wdRetried = this._wdRetried || new Set()
2372                                    const retryable = ids.filter((id) => !this._wdRetried.has(id))
2373                                    ids.forEach((id) => this._fetched.delete(id))
2374                                    if (retryable.length === 0) return
2375                                    retryable.forEach((id) => {
2376                                        this._wdRetried.add(id)
2377                                        this._queue.add(id)
2378                                    })
2379                                    this.scheduleBatch()
2380                                }, 15000)
2381                                this._timers.push(watchdog)
2382                                this.$wire[WIRE_METHOD](ids).then((result) => {
2383                                    settled = true
2384                                    clearTimeout(watchdog)
2385                                    this._timers = this._timers.filter((t) => t !== watchdog)
2386                                    if (!this._alive || !result || typeof result !== 'object') return
2387                                    // Ids the server omitted (batch cap) go
2388                                    // back in the queue — each follow-up
2389                                    // batch answers up to the cap, converging.
2390                                    const dropped = ids.filter((id) => !(id in result))
2391                                    if (dropped.length === 0) return
2392                                    dropped.forEach((id) => {
2393                                        this._fetched.delete(id)
2394                                        this._queue.add(id)
2395                                    })
2396                                    this.scheduleBatch()
2397                                })
2398                            }, 150)
2399                        },
2400
2401                        handleBatch(map) {
2402                            for (const [id, url] of Object.entries(map)) {
2403                                // ANY non-OOS answer (url, null, PENDING)
2404                                // supersedes an earlier OOS verdict — clear it
2405                                // FIRST so the PENDING early-exit can't leave
2406                                // stale scope state behind.
2407                                if (url !== window.THUMB_OOS) {
2408                                    this._oosIds?.delete(id)
2409                                }
2410                                // Outside the endpoint's filtered scope: stop
2411                                // asking and show the placeholder on the
2412                                // (stale) cell — no negative, no cache. The
2413                                // OOS set gives morph-reverted cells the same
2414                                // zero-round-trip recovery the negatives get,
2415                                // or a reverted cell would skeleton forever
2416                                // (fetched blocks the observer, nothing in
2417                                // storage to hydrate from).
2418                                if (url === window.THUMB_OOS) {
2419                                    this._fetched.add(id)
2420                                    this._oosIds = this._oosIds || new Set()
2421                                    this._oosIds.add(id)
2422                                    const cell = this.$root.querySelector(`${CELL_SELECTOR}[${ID_ATTR}="${id}"]`)
2423                                    if (cell) this.renderNoImage(cell)
2424                                    continue
2425                                }
2426                                // "Conversions still generating" (estate grids
2427                                // only): keep the skeleton, never persist or
2428                                // record a negative, and retry ONCE after the
2429                                // typical conversion-drain delay. A false "no
2430                                // photo" here is exactly the misclassification
2431                                // the tri-state protocol exists to prevent.
2432                                if (url === window.THUMB_PENDING) {
2433                                    // A stale PENDING must never displace a
2434                                    // real image a newer answer delivered.
2435                                    const loadedCell = this.$root.querySelector(
2436                                        `${CELL_SELECTOR}[${ID_ATTR}="${id}"] img`
2437                                    )
2438                                    if (loadedCell) {
2439                                        this._fetched.add(id)
2440                                        continue
2441                                    }
2442                                    // Duplicate answers (slow response landing
2443                                    // after its watchdog re-asked) must not
2444                                    // burn the single retry into a false
2445                                    // negative — debounce per id.
2446                                    this._pendingSeenAt = this._pendingSeenAt || new Map()
2447                                    const seenAt = this._pendingSeenAt.get(id) || 0
2448                                    if (Date.now() - seenAt < 25000) {
2449                                        this._fetched.add(id)
2450                                        continue
2451                                    }
2452                                    this._pendingSeenAt.set(id, Date.now())
2453                                    this._pendingTried = this._pendingTried || new Set()
2454                                    if (!this._pendingTried.has(id)) {
2455                                        this._pendingTried.add(id)
2456                                        this._fetched.add(id)
2457                                        this._timers.push(
2458                                            setTimeout(() => {
2459                                                if (!this._alive) return
2460                                                this._fetched.delete(id)
2461                                                this._queue.add(id)
2462                                                this.scheduleBatch()
2463                                            }, 45000)
2464                                        )
2465                                    } else {
2466                                        this._fetched.add(id)
2467                                        this._negatives.add(id)
2468                                        const cell = this.$root.querySelector(`${CELL_SELECTOR}[${ID_ATTR}="${id}"]`)
2469                                        if (cell) this.renderNoImage(cell)
2470                                    }
2471                                    continue
2472                                }
2473                                this._fetched.add(id)
2474                                // Persist positive URLs only; track "no image" in the
2475                                // session-only negatives set. The old code cached a
2476                                // permanent __NO_THUMB__ sentinel, so an estate that later
2477                                // gained photos showed the placeholder forever.
2478                                if (url) {
2479                                    this._negatives.delete(id)
2480                                    try {
2481                                        localStorage.setItem(STORE_KEY + id, url)
2482                                    } catch {}
2483                                } else {
2484                                    this._negatives.add(id)
2485                                    // Purge any stale cached positive: the
2486                                    // authoritative null must not resurface
2487                                    // an old image on the next morph-revert.
2488                                    try {
2489                                        localStorage.removeItem(STORE_KEY + id)
2490                                    } catch {}
2491                                }
2492                                const cell = this.$root.querySelector(`${CELL_SELECTOR}[${ID_ATTR}="${id}"]`)
2493                                if (!cell) continue
2494                                if (url) this.renderImage(cell, url)
2495                                else this.renderNoImage(cell)
2496                            }
2497                        },
2498
2499                        renderImage(cell, url) {
2500                            cell.dataset.imageLoaded = '1'
2501                            cell.removeAttribute('style')
2502                            cell.removeAttribute('aria-busy')
2503                            // A cell can arrive here styled as a placeholder
2504                            // (error-retry renders one during the round-trip)
2505                            // — strip those classes or the img sits in a grey
2506                            // flexbox.
2507                            cell.classList.remove(
2508                                'flex',
2509                                'items-center',
2510                                'justify-center',
2511                                'bg-gray-100',
2512                                'text-gray-400',
2513                                'dark:bg-gray-700',
2514                                'dark:text-gray-500'
2515                            )
2516                            // Build the node (not innerHTML) so the alt is escaped by the
2517                            // DOM and the error handler stays out of markup — no inline
2518                            // handler for the CSP to trip over.
2519                            const img = document.createElement('img')
2520                            img.className = cell.dataset.imgClass || DEFAULT_IMG_CLASS
2521                            img.alt = cell.getAttribute(ALT_ATTR) || ''
2522                            // No native loading="lazy" here: our IntersectionObserver
2523                            // (rootMargin 300px) already defers the fetch until the cell
2524                            // nears the viewport, so the URL is only injected when the
2525                            // image is imminently needed. A second native-lazy gate on
2526                            // top adds nothing in Chrome but, in privacy-hardened engines
2527                            // (Brave), defers the fetch again and leaves the card blank
2528                            // at the user's scroll position. Inject eagerly.
2529                            img.addEventListener(
2530                                'error',
2531                                () => {
2532                                    // A resolved URL that 404s (moved/pruned R2 object)
2533                                    // proves only that THIS url is dead — never that the
2534                                    // record has no image. Drop the poisoned positive and
2535                                    // re-ask the SERVER once (its answer is authoritative,
2536                                    // same family rule as the map sidebar); only after a
2537                                    // second failure fall back to the placeholder.
2538                                    const id = cell.getAttribute(ID_ATTR)
2539                                    if (id) {
2540                                        try {
2541                                            localStorage.removeItem(STORE_KEY + id)
2542                                        } catch {}
2543                                        this._retried = this._retried || new Set()
2544                                        if (!this._retried.has(id)) {
2545                                            this._retried.add(id)
2546                                            this._fetched.delete(id)
2547                                            this._queue.add(id)
2548                                            this.scheduleBatch()
2549                                            // Placeholder (not a broken glyph)
2550                                            // while the retry round-trips; a
2551                                            // fresh URL swaps back in via
2552                                            // handleBatch.
2553                                            this.renderNoImage(cell)
2554                                            return
2555                                        }
2556                                        this._negatives.add(id)
2557                                    }
2558                                    this.renderNoImage(cell)
2559                                },
2560                                { once: true }
2561                            )
2562                            img.src = url
2563                            cell.replaceChildren(img)
2564                        },
2565
2566                        renderNoImage(cell) {
2567                            cell.dataset.imageLoaded = '1'
2568                            cell.removeAttribute('style')
2569                            cell.removeAttribute('aria-busy')
2570                            cell.classList.add(
2571                                'flex',
2572                                'items-center',
2573                                'justify-center',
2574                                'bg-gray-100',
2575                                'text-gray-400',
2576                                'dark:bg-gray-700',
2577                                'dark:text-gray-500'
2578                            )
2579                            cell.innerHTML = `<svg class="size-12" fill="none" stroke="currentColor" stroke-width="1.5" viewB
2579ox="0 0 24 24" aria-hidden="true"><path d="m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Z" stroke-linecap="round" stroke-linejoin="round"/></svg>`
2580                        }
2581                    }
2582                }
2583            })()
2584        </script>
2584
2585            
2585<script>
2586            window.blogCardLazy = () =>
2587                window.lazyImageGrid({
2588                    storageKey: 'blogcardthumb:v2:',
2589                    cellAttr: 'data-blog-image-cell',
2590                    idAttr: 'data-page-id',
2591                    altAttr: 'data-page-alt',
2592                    eventName: 'blog-thumbnails-loaded',
2593                    wireMethod: 'loadThumbnailsForPages',
2594                    defaultImgClass: 'size-full object-cover'
2595                })
2596        </script>
2596
2597        
2597<script src="/livewire/livewire.min.js?id=6f2ea2c9"   data-csrf="9ghEubkJTep89b0znOYODOU91KqhnmMbPc0O2ewA" data-update-uri="/livewire/update" data-navigate-once="true"></script>
vendor: 1 bytes, line 2597
2597
2598<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a45715140d40f861',t:'MTc5MTE0NzI3Mg=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
2598</body>
2599</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.