PageSourceSearch

https://www.islandvacationproperties.com/about-island-vacation-properties/

html islandvacationproperties.com collected 2026-10-08 10:55:08 UTC 201,654 bytes, 1,880 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US">
3<head>
4        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5<script>
6var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),document.addEventListener("gform/theme/scripts_loaded",function(){gform.themeScriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>"function"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn("The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1."),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener("gform_main_scripts_loaded",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener("gform/theme/scripts_loaded",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener("DOMContentLoaded",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook("action",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook("filter",o,r,e,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,r){gform.removeHook("action",o,r)},removeFilter:function(o,r,e){gform.removeHook("filter",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+"_"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==r?t.apply(null,e):e[0]=t.apply(null,e)})),"filter"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});
7</script>
7
8
9        <meta name="viewport" content="width=device-width, initial-scale=1" />
10    <link rel="preconnect" href="https://www.google.com">
11    <link rel="preconnect" href="https://www.gstatic.com" crossorigin>
12    <link rel="preconnect" href="https://fonts.googleapis.com">
13    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
14    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL,GRAD@40,100..300,0..1,0&display=block" />
15    <title>About Us | Island Vacation Properties</title>
16
17		<!-- All in One SEO Pro 5.0.2 - aioseo.com -->
18	<meta name="description" content="Learn more about Island Vacation Properties and our beach vacation rentals on Anna Maria Island. There are plenty of activities and events to keep the whole family entertained." />
19	<meta name="robots" content="max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
20	<link rel="canonical" href="https://www.islandvacationproperties.com/about-island-vacation-properties/" />
21	<meta name="generator" content="All in One SEO Pro (AIOSEO) 5.0.2" />
22		<meta property="og:locale" content="en_US" />
23		<meta property="og:site_name" content="Island Vacation Properties" />
24		<meta property="og:type" content="website" />
25		<meta property="og:title" content="About Us | Island Vacation Properties" />
26		<meta property="og:description" content="Learn more about Island Vacation Properties and our beach vacation rentals on Anna Maria Island. There are plenty of activities and events to keep the whole family entertained." />
27		<meta property="og:url" content="https://www.islandvacationproperties.com/about-island-vacation-properties/" />
28		<meta property="article:published_time" content="2019-12-10T16:06:09+00:00" />
29		<meta property="article:modified_time" content="2026-09-16T13:31:58+00:00" />
30		<meta property="article:publisher" content="https://www.facebook.com/islandvacationproperties/" />
31		<meta name="twitter:card" content="summary" />
32		<meta name="twitter:title" content="About Us | Island Vacation Properties" />
33		<meta name="twitter:description" content="Learn more about Island Vacation Properties and our beach vacation rentals on Anna Maria Island. There are plenty of activities and events to keep the whole family entertained." />
34		
34<script type="application/ld+json" class="aioseo-schema">
35			{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/www.islandvacationproperties.com\/about-island-vacation-properties\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.islandvacationproperties.com\/#listItem","position":1,"name":"Home","item":"https:\/\/www.islandvacationproperties.com\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.islandvacationproperties.com\/about-island-vacation-properties\/#listItem","name":"About Island Vacation Properties"}},{"@type":"ListItem","@id":"https:\/\/www.islandvacationproperties.com\/about-island-vacation-properties\/#listItem","position":2,"name":"About Island Vacation Properties","previousItem":{"@type":"ListItem","@id":"https:\/\/www.islandvacationproperties.com\/#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/www.islandvacationproperties.com\/#organization","name":"Island Vacation Properties","description":"Anna Maria Island Vacation Rentals","url":"https:\/\/www.islandvacationproperties.com\/","email":"[email protected]","telephone":"+19417781000","logo":{"@type":"ImageObject","url":"https:\/\/www.islandvacationproperties.com\/wp-content\/uploads\/2026\/08\/IVPBlue200.png","@id":"https:\/\/www.islandvacationproperties.com\/about-island-vacation-properties\/#organizationLogo","width":367,"height":200,"caption":"ivp logo"},"image":{"@id":"https:\/\/www.islandvacationproperties.com\/about-island-vacation-properties\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/islandvacationproperties\/","https:\/\/www.google.com\/maps\/place\/?q=place_id:ChIJnZBkwbARw4gR3gR-y7Y6aB4"]},{"@type":"WebPage","@id":"https:\/\/www.islandvacationproperties.com\/about-island-vacation-properties\/#webpage","url":"https:\/\/www.islandvacationproperties.com\/about-island-vacation-properties\/","name":"About Us | Island Vacation Properties","description":"Learn more about Island Vacation Properties and our beach vacation rentals on Anna Maria Island. There are plenty of activities and events to keep the whole family entertained.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.islandvacationproperties.com\/#website"},"breadcrumb":{"@id":"https:\/\/www.islandvacationproperties.com\/about-island-vacation-properties\/#breadcrumblist"},"datePublished":"2019-12-10T11:06:09-05:00","dateModified":"2026-09-16T09:31:58-04:00"},{"@type":"WebSite","@id":"https:\/\/www.islandvacationproperties.com\/#website","url":"https:\/\/www.islandvacationproperties.com\/","name":"Island Vacation Properties","description":"Anna Maria Island Vacation Rentals","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.islandvacationproperties.com\/#organization"}}]}
36		</script>
36
37		<!-- All in One SEO Pro -->
38
39<link rel='dns-prefetch' href='//www.google.com' />
40<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.islandvacationproperties.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.islandvacationproperties.com%2Fabout-island-vacation-properties%2F" />
41<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.islandvacationproperties.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.islandvacationproperties.com%2Fabout-island-vacation-properties%2F&#038;format=xml" />
42<style id="wp-img-auto-sizes-contain-inline-css">
43img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
44/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
45</style>
46<style id="wp-emoji-styles-inline-css">
47
48	img.wp-smiley, img.emoji {
49		display: inline !important;
50		border: none !important;
51		box-shadow: none !important;
52		height: 1em !important;
53		width: 1em !important;
54		margin: 0 0.07em !important;
55		vertical-align: -0.1em !important;
56		background: none !important;
57		padding: 0 !important;
58	}
59/*# sourceURL=wp-emoji-styles-inline-css */
60</style>
61<style id="wp-block-library-inline-css">
62:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
62--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
63
64/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
65</style>
66<style id="wp-block-heading-inline-css">
67h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg}
68/*# sourceURL=https://www.islandvacationproperties.com/wp-includes/blocks/heading/style.min.css */
69</style>
70<style id="wp-block-paragraph-inline-css">
71.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
72/*# sourceURL=https://www.islandvacationproperties.com/wp-includes/blocks/paragraph/style.min.css */
73</style>
74
75
76<style id="global-styles-inline-css">
77:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--rt-primary: #f4dd56;--wp--preset--color--rt-secondary: #f4dd56;--wp--preset--color--rt-above-footer: #737578;--wp--preset--color--rt-footer: #000000;--wp--preset--color--rt-accent: #55a0a3;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
770) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: clamp(.8rem, .8rem + ((1vw - 0.48rem) * 1.194), 1rem);--wp--preset--font-size--medium: clamp(.8rem, 1rem + ((1vw - 0.48rem) * 1.194), 1.6rem);--wp--preset--font-size--large: clamp(1.6rem, 1.6rem + ((1vw - 0.48rem) * 1.592), 2.5rem);--wp--preset--font-size--x-large: clamp(25.014px, 1.563rem + ((1vw - 3.2px) * 1.213), 42px);--wp--preset--font-size--extra-large: clamp(2.5rem, 2.5rem + ((1vw - 0.48rem) * 1.99), 3.5rem);--wp--preset--font-size--extra-extra-large: clamp(3.5rem, 3.5rem + ((1vw - 0.48rem) * 1.99), 4.55rem);--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:root { --wp--style--global--content-size: 1200px;--wp--style--global--wide-size: 1720px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 24px; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 24px; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 24px;}:root :where(.is-layout-grid){gap: 24px;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained >
77 :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-rt-primary-color{color: var(--wp--preset--color--rt-primary) !important;}.has-rt-secondary-color{color: var(--wp--preset--color--rt-secondary) !important;}.has-rt-above-footer-color{color: var(--wp--preset--color--rt-above-footer) !important;}.has-rt-footer-color{color: var(--wp--preset--color--rt-footer) !important;}.has-rt-accent-color{color: var(--wp--preset--color--rt-accent) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-rt-primary-background-color{background-color: var(--wp--preset--color--rt-primary) !important;}.has-rt-secondary-background-color{background-color: var(--wp--preset--color--rt-secondary) !important;}.has-rt-above-footer-background-color{background-color: var(--wp--preset--color--rt-above-footer) !important;}.has-rt-footer-background-color{background-color: var(--wp--preset--color--rt-footer) !important;}.has-rt-accent-background-color{background-color: var(--wp--preset--color--rt-accent) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-rt-primary-border-color{border-color: var(--wp--preset--color--rt-primary) !important;}.has-rt-secondary-border-color{border-color: var(--wp--preset--color--rt-secondary) !important;}.has-rt-above-footer-border-color{border-color: var(--wp--preset--color--rt-above-footer) !important;}.has-rt-footer-border-color{border-color: var(--wp--preset--color--rt-footer) !important;}.has-rt-accent-border-color{border-color: var(--wp--preset--color--rt-accent) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
77.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-extra-large-font-size{font-size: var(--wp--preset--font-size--extra-large) !important;}.has-extra-extra-large-font-size{font-size: var(--wp--preset--font-size--extra-extra-large) !important;}
78/*# sourceURL=global-styles-inline-css */
79</style>
80
81<link rel='stylesheet' id='normalize-css' href='https://www.islandvacationproperties.com/wp-content/themes/rtapi/css/normalize.css?ver=7.1.3' media='all' />
82<link rel='stylesheet' id='icons-css' href='https://www.islandvacationproperties.com/wp-content/themes/rtapi/material-icons.css?ver=7.1.3' media='all' />
83<link rel='stylesheet' id='core-css' href='https://www.islandvacationproperties.com/wp-content/themes/rtapi/style.css?ver=1791205626' media='' />
84<link rel='stylesheet' id='gforms_reset_css-css' href='https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/legacy/css/formreset.min.css?ver=3.1.2' media='all' />
85<link rel='stylesheet' id='gforms_formsmain_css-css' href='https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/legacy/css/formsmain.min.css?ver=3.1.2' media='all' />
86<link rel='stylesheet' id='gforms_ready_class_css-css' href='https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/legacy/css/readyclass.min.css?ver=3.1.2' media='all' />
87<link rel='stylesheet' id='gforms_browsers_css-css' href='https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/legacy/css/browsers.min.css?ver=3.1.2' media='all' />
88<link rel='stylesheet' id='popup-maker-site-css' href='//www.islandvacationproperties.com/wp-content/uploads/pum/pum-site-styles.css?generated=1787948087&#038;ver=1.25.0' media='all' />
89<script id="jquery-core-js" src="https://www.islandvacationproperties.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 89
89
90<script id="jquery-migrate-js" src="https://www.islandvacationproperties.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 90
90
91<script id="jquery-ui-core-js-before">
92jQuery.uiBackCompat = true;
93jQuery.uiBackCompat = true;
94//# sourceURL=jquery-ui-core-js-before
95</script>
vendor: 1 bytes, line 95
95
96<script id="jquery-ui-core-js" src="https://www.islandvacationproperties.com/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 96
96
97<script id="jquery-ui-mouse-js" src="https://www.islandvacationproperties.com/wp-includes/js/jquery/ui/mouse.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 97
97
98<script id="jquery-ui-sortable-js" src="https://www.islandvacationproperties.com/wp-includes/js/jquery/ui/sortable.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 98
98
99<script id="jquery-ui-resizable-js" src="https://www.islandvacationproperties.com/wp-includes/js/jquery/ui/resizable.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 99
99
100<script id="acf-js" src="https://www.islandvacationproperties.com/wp-content/plugins/advanced-custom-fields-pro/assets/build/js/acf.min.js?ver=6.8.10"></script>
vendor: 1 bytes, line 100
100
101<script id="wp-dom-ready-js" src="https://www.islandvacationproperties.com/wp-includes/js/dist/dom-ready.min.js?ver=3fe927cab37bf38d6a23"></script>
vendor: 1 bytes, line 101
101
102<script id="wp-hooks-js" src="https://www.islandvacationproperties.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
vendor: 1 bytes, line 102
102
103<script id="wp-i18n-js" src="https://www.islandvacationproperties.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
vendor: 1 bytes, line 103
103
104<script id="wp-i18n-js-after">
105wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
106wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
107//# sourceURL=wp-i18n-js-after
108</script>
vendor: 1 bytes, line 108
108
109<script id="wp-a11y-js" src="https://www.islandvacationproperties.com/wp-includes/js/dist/a11y.min.js?ver=31c6cec5a4ff7aff483d"></script>
vendor: 1 bytes, line 109
109
110<script id="acf-input-js" src="https://www.islandvacationproperties.com/wp-content/plugins/advanced-custom-fields-pro/assets/build/js/acf-input.min.js?ver=6.8.10"></script>
vendor: 1 bytes, line 110
110
111<script id="rtc-acf-fixer-js-extra">
112var rtwpVars = {"theme_url":"https://www.islandvacationproperties.com/wp-content/themes/rtapi"};
113//# sourceURL=rtc-acf-fixer-js-extra
114</script>
vendor: 1 bytes, line 114
114
115<script id="rtc-acf-fixer-js" src="https://www.islandvacationproperties.com/wp-content/themes/rtapi/js/rtc-acf-fixer.js?ver=7.1.3"></script>
vendor: 1 bytes, line 115
115
116<script id="custom-js" src="https://www.islandvacationproperties.com/wp-content/themes/rtapi/js/submenu.js?ver=1.0.0"></script>
vendor: 1 bytes, line 116
116
117<script id="vue-js" src="https://www.islandvacationproperties.com/wp-content/themes/rtapi/js/vue.global.prod.js?ver=3.5.41"></script>
vendor: 1 bytes, line 117
117
118<script id="vueuse-shared-js" src="https://www.islandvacationproperties.com/wp-content/themes/rtapi/js/vueuse-shared.iife.js?ver=14.4.0"></script>
vendor: 1 bytes, line 118
118
119<script id="vueuse-core-js" src="https://www.islandvacationproperties.com/wp-content/themes/rtapi/js/vueuse-core.iife.js?ver=14.4.0"></script>
vendor: 1 bytes, line 119
119
120<script id="axios-js" src="https://www.islandvacationproperties.com/wp-content/themes/rtapi/js/axios.min.js?ver=1.19.0"></script>
vendor: 1 bytes, line 120
120
121<script id="gform_json-js" defer='defer' src="https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/js/jquery.json.min.js?ver=3.1.2"></script>
vendor: 1 bytes, line 121
121
122<script id="gform_gravityforms-js-extra">
123var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2,"code":"USD"},"base_url":"https://www.islandvacationproperties.com/wp-content/plugins/gravityforms","number_formats":[],"version_hash":"19dbec403806d76761dede907ba49b18","countries":{"AF":"Afghanistan","AX":"\u00c5land Islands","AL":"Albania","DZ":"Algeria","AS":"American Samoa","AD":"Andorra","AO":"Angola","AI":"Anguilla","AQ":"Antarctica","AG":"Antigua and Barbuda","AR":"Argentina","AM":"Armenia","AW":"Aruba","AU":"Australia","AT":"Austria","AZ":"Azerbaijan","BS":"Bahamas","BH":"Bahrain","BD":"Bangladesh","BB":"Barbados","BY":"Belarus","BE":"Belgium","BZ":"Belize","BJ":"Benin","BM":"Bermuda","BT":"Bhutan","BO":"Bolivia","BQ":"Bonaire, Sint Eustatius and Saba","BA":"Bosnia and Herzegovina","BW":"Botswana","BV":"Bouvet Island","BR":"Brazil","IO":"British Indian Ocean Territory","BN":"Brunei Darussalam","BG":"Bulgaria","BF":"Burkina Faso","BI":"Burundi","CV":"Cabo Verde","KH":"Cambodia","CM":"Cameroon","CA":"Canada","KY":"Cayman Islands","CF":"Central African Republic","TD":"Chad","CL":"Chile","CN":"China","CX":"Christmas Island","CC":"Cocos Islands","CO":"Colombia","KM":"Comoros","CD":"Congo, Democratic Republic of the","CG":"Congo","CK":"Cook Islands","CR":"Costa Rica","CI":"C\u00f4te d'Ivoire","HR":"Croatia","CU":"Cuba","CW":"Cura\u00e7ao","CY":"Cyprus","CZ":"Czechia","DK":"Denmark","DJ":"Djibouti","DM":"Dominica","DO":"Dominican Republic","EC":"Ecuador","EG":"Egypt","SV":"El Salvador","GQ":"Equatorial Guinea","ER":"Eritrea","EE":"Estonia","SZ":"Eswatini","ET":"Ethiopia","FK":"Falkland Islands","FO":"Faroe Islands","FJ":"Fiji","FI":"Finland","FR":"France","GF":"French Guiana","PF":"French Polynesia","TF":"French Southern Territories","GA":"Gabon","GM":"Gambia","GE":"Georgia","DE":"Germany","GH":"Ghana","GI":"Gibraltar","GR":"Greece","GL":"Greenland","GD":"Grenada","GP":"Guadeloupe","GU":"Guam","GT":"Guatemala","GG":"Guernsey","GN":"Guinea","GW":"Guinea-Bissau","GY":"Guyana","HT":"Haiti","HM":"Heard Island and McDonald Islands","VA":"Holy See","HN":"Honduras","HK":"Hong Kong","HU":"Hungary","IS":"Iceland","IN":"India","ID":"Indonesia","IR":"Iran","IQ":"Iraq","IE":"Ireland","IM":"Isle of Man","IL":"Israel","IT":"Italy","JM":"Jamaica","JP":"Japan","JE":"Jersey","JO":"Jordan","KZ":"Kazakhstan","KE":"Kenya","KI":"Kiribati","KP":"Korea, Democratic People's Republic of","KR":"Korea, Republic of","KW":"Kuwait","KG":"Kyrgyzstan","LA":"Lao People's Democratic Republic","LV":"Latvia","LB":"Lebanon","LS":"Lesotho","LR":"Liberia","LY":"Libya","LI":"Liechtenstein","LT":"Lithuania","LU":"Luxembourg","MO":"Macao","MG":"Madagascar","MW":"Malawi","MY":"Malaysia","MV":"Maldives","ML":"Mali","MT":"Malta","MH":"Marshall Islands","MQ":"Martinique","MR":"Mauritania","MU":"Mauritius","YT":"Mayotte","MX":"Mexico","FM":"Micronesia","MD":"Moldova","MC":"Monaco","MN":"Mongolia","ME":"Montenegro","MS":"Montserrat","MA":"Morocco","MZ":"Mozambique","MM":"Myanmar","NA":"Namibia","NR":"Nauru","NP":"Nepal","NL":"Netherlands","NC":"New Caledonia","NZ":"New Zealand","NI":"Nicaragua","NE":"Niger","NG":"Nigeria","NU":"Niue","NF":"Norfolk Island","MK":"North Macedonia","MP":"Northern Mariana Islands","NO":"Norway","OM":"Oman","PK":"Pakistan","PW":"Palau","PS":"Palestine, State of","PA":"Panama","PG":"Papua New Guinea","PY":"Paraguay","PE":"Peru","PH":"Philippines","PN":"Pitcairn","PL":"Poland","PT":"Portugal","PR":"Puerto Rico","QA":"Qatar","RE":"R\u00e9union","RO":"Romania","RU":"Russian Federation","RW":"Rwanda","BL":"Saint Barth\u00e9lemy","SH":"Saint Helena, Ascension and Tristan da Cunha","KN":"Saint Kitts and Nevis","LC":"Saint Lucia","MF":"Saint Martin","PM":"Saint Pierre and Miquelon","VC":"Saint Vincent and the Grenadines","WS":"Samoa","SM":"San Marino","ST":"Sao Tome and Principe","SA":"Saudi Arabia","SN":"Senegal","RS":"Serbia","SC":"Seychelles","SL":"Sierra Leone","SG":"Singapore","SX":"Sint Maarten","SK":"Slovakia","SI":"Slovenia","SB":"Solomon Islands","SO":"Somalia","ZA":"South Africa","GS":"South Georgia and the South Sandwich Islands","SS":"South Sudan","ES":"Spain","LK":"Sri Lanka","SD":"Sudan","SR":"Suriname","SJ":"Svalbard and Jan Mayen","SE":"Sweden","CH":"Switzerland","SY":"Syria Arab Republic","TW":"Taiwan","TJ":"Tajikistan","TZ":"Tanzania, the United Republic of","TH":"Thailand","TL":"Timor-Leste","TG":"Togo","TK":"Tokelau","TO":"Tonga","TT":"Trinidad and Tobago","TN":"Tunisia","TR":"T\u00fcrkiye","TM":"Turkmenistan","TC":"Turks and Caicos Islands","TV":"Tuvalu","UG":"Uganda","UA":"Ukraine","AE":"United Arab Emirates","GB":"United Kingdom","US":"United States","UY":"Uruguay","UM":"US Minor Outlying Islands","UZ":"Uzbekistan","VU":"Vanuatu","VE":"Venezuela","VN":"Viet Nam","VG":"Virgin Islands, British","VI":"Virgin Islands, U.S.","WF":"Wallis and Futuna","EH":"Western Sahara","YE":"Yemen","ZM":"Zambia","ZW":"Zimbabwe"},"strings":{"newRowAdded":"New row added.","rowRemoved":"Row removed","formSaved":"The form has been saved.  The content contains the link to return and complete the form."}};
124var gform_i18n = {"datepicker":{"wdOffset":0,"helpTextShort":"Press F1 for help","helpText":"Press the arrow keys to navigate by day, PageUp and PageDown to navigate by month, Alt+PageUp and Alt+PageDown to navigate by year, or Escape to cancel.","openOnFocusHelpText":"Press Down arrow to browse the calendar, or Escape to close.","tooltipTxt":"Press Escape to cancel","disabledTxt":"Disabled","markedTxt":"Selected","prevTxt":"Previous","nextTxt":"Next","monthTxt":"Month","yearTxt":"Year","months":["January","February","March","April","May","June","July","August","September","October","November","December"],"days":[{"s":"S","l":"Sunday"},{"s":"M","l":"Monday"},{"s":"T","l":"Tuesday"},{"s":"W","l":"Wednesday"},{"s":"T","l":"Thursday"},{"s":"F","l":"Friday"},{"s":"S","l":"Saturday"}]}};
125var gf_legacy_multi = {"10":"1"};
126var gform_gravityforms = {"strings":{"invalid_file_extension":"This type of file is not allowed. Must be one of the following:","file_uploaded":"File uploaded","delete_file":"Delete this file","in_progress":"in progress","file_exceeds_limit":"File exceeds size limit","illegal_extension":"This type of file is not allowed.","max_reached":"Maximum number of files reached","unknown_error":"There was a problem while saving the file on the server","currently_uploading":"Please wait for the uploading to complete","cancel":"Cancel","cancel_upload":"Cancel this upload","cancelled":"Cancelled","error":"Error","message":"Message"},"vars":{"images_url":"https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/images"}};
127//# sourceURL=gform_gravityforms-js-extra
128</script>
vendor: 1 bytes, line 128
128
129<script id="gform_gravityforms-js" defer='defer' src="https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/js/gravityforms.min.js?ver=3.1.2"></script>
vendor: 1 bytes, line 129
129
130<script id="gform_gravityforms_utils-js" defer='defer' src="https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/assets/js/dist/utils.min.js?ver=69a9db57304a9f86c3d1a0bea5fd2cf9"></script>
130
131<link rel="https://api.w.org/" href="https://www.islandvacationproperties.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.islandvacationproperties.com/wp-json/wp/v2/pages/112" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.islandvacationproperties.com/xmlrpc.php?rsd" />
132<meta name="generator" content="WordPress 7.1.3" />
133<link rel='shortlink' href='https://www.islandvacationproperties.com/?p=112' />
134<link rel="icon" href="https://www.islandvacationproperties.com/wp-content/uploads/2026/08/favicon.jpg" sizes="32x32" />
135<link rel="icon" href="https://www.islandvacationproperties.com/wp-content/uploads/2026/08/favicon.jpg" sizes="192x192" />
136<link rel="apple-touch-icon" href="https://www.islandvacationproperties.com/wp-content/uploads/2026/08/favicon.jpg" />
137<meta name="msapplication-TileImage" content="https://www.islandvacationproperties.com/wp-content/uploads/2026/08/favicon.jpg" />
138    <!-- Google Tag Manager -->
139<script>
vendor: 359 bytes, lines 139-143
139(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
140            new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
141        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
142        'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
143    })(window,document,'script','dataLayer','
143GTM-KDN4RC6
vendor: 3 bytes, line 143
143');
143</script>
143
144<!-- End Google Tag Manager -->
145    <link href="https://fonts.googleapis.com/css2?family=Marcellus:wght@400&family=Cabin:wght@400;500;600;700&display=fallback" rel="stylesheet">
146<style>
147    :root {
148                    --primary: #f4dd56;
149                            --primary-text: #333333;
150                            --secondary: #f4dd56;
151                            --secondary-text: #00437c;
152                    --above-footer: #737578;
153                    --footer: #000000;
154                    --menu: #03437c;
155                    --menu-hover: #21619a;
156                    --qs-color: #00437c;
157                    --heading-color: #00437c;
158                    --splash-medium: rgb(204,227,227);
159            --splash-extra-light: rgb(247,250,250);
160            --splash-light: rgb(238,246,246);
161            --splash-dark: rgb(51,141,145);
162            --splash-extra-dark: rgb(-43,89,94);
163                    --tone-extra-light: color-mix(in srgb, rgb(247,250,250) 55%, #f4f4f4);
164            --tone-light: color-mix(in srgb, rgb(247,250,250) 75%, #eee);
165                --heading-font-family: "Marcellus", sans-serif;
166        --body-font-family: "Cabin", sans-serif;
167        --heading-weight: 400;
168        --subheading-weight: 400;
169        --body-weight: 400;
170        --h-scale: 1.35rem;
171        --h-vw: 1.1vw;
172        --b-scale: 1.25rem;
173        --fluid-heading: calc(var(--h-scale) + var(--h-vw));
174        --fluid-body: calc(var(--b-scale));
175    }
176        head, body {
177        font-family: var(--body-font-family) !important;
178        font-size: var(--fluid-body) !important;
179        font-weight: var(--body-weight) !important;
180    }
181    h1, h2.page-title, .page-title, .page-title h1, .page-title h2, .page-title h3 {
182        font-family: var(--heading-font-family) !important;
183        font-weight: var(--heading-weight) !important;
184    }
185    h1, .page-title h1, .page-title h2, .cta-wrapper h2.page-title {
186        font-size: var(--fluid-heading) !important;
187    }
188    h2, h3 {
189        font-weight: var(--subheading-weight) !important;
190    }
191    </style>    </head>
192<body class="wp-singular page-template-default page page-id-112 wp-theme-rtapi">
193    <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 193-194
193
194<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
194GTM-KDN4RC6
vendor: 83 bytes, line 194
194" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
195<!-- End Google Tag Manager (noscript) -->
196    <div id="content-wrap" class="content-wrap">
197        <div class="site-wrap">
198            <div class="header-main-wrapper classic">
199                <a role="link" class="sr-only" href="#post-112">Skip to main content</a>
200                <header id="header" role="banner" class="classic" aria-label="banner">
201                                        <div class="header-wrap">
202                        <div class="header contained">
203                            <div class="logo">
204                                <a id="rt-logo-anchor" href="https://www.islandvacationproperties.com/">
205                                    <img width="367" height="200" src="https://www.islandvacationproperties.com/wp-content/uploads/2026/08/IVPBlue200.png" class="attachment-full size-full" alt="Island Vacation Properties Logo" id="rtlogo" style="max-width:250px;" decoding="async" fetchpriority="high" />                                </a>
206                            </div>
207                            <button id="toggle" role='button' aria-label="Mobile Navigation Trigger" class="open-button toggle-spot white-text">
208                                <div class="toggle-spot">
209                                    <span></span>
210                                </div>
211                            </button>
212                                                        <div class="headerright">
213                                <div class="headerright-top">
214                                    <div style="position:relative; cursor: pointer;" id="my-rentals-header">
215    <div v-if="displayMyRentalsHeader">
216        <a href="https://www.islandvacationproperties.com/vacation-rentals/results/?myrentals" title="View Favorite Rentals" style="gap: 2px;" aria-label="View favorite Rentals">
217            <i class="rt-google-icon heart" :class="{'filled-symbol': favoritesCount }" aria-hidden="true"></i>
218            <span v-if="favoritesCount" class="filter-ticker">{{favoritesCount}}</span>
219            <span class="nomobile">My Rentals</span>
220        </a>
221    </div>
222</div>
223
224<script>
225    const { useStorage } = VueUse;
226    const sanitizeRtFavorited = function (raw) {
227        const clean = {
228            favorites: [],
229            recently_viewed: [],
230            date_history: [],
231            check_history: [],
232            select_history: [],
233            sort_order: {
234                field: "",
235                direction: "",
236            },
237            version: 1,
238        };
239
240        // Check data types and clean unapproved types
241        const isValidId = (v) => typeof v === 'string' && v.length > 0;
242
243        if (Array.isArray(raw.favorites)) {
244        clean.favorites = [...new Set(raw.favorites.filter(isValidId))].slice(0, 100);
245        }
246        if (Array.isArray(raw.recently_viewed)) {
247        clean.recently_viewed = [...new Set(raw.recently_viewed.filter(isValidId))].slice(0, 10);
248        }
249
250        if (Array.isArray(raw.date_history)) {
251            clean.date_history = raw.date_history
252                .filter(d => d && !isNaN(Date.parse(d.arrive)) && !isNaN(Date.parse(d.depart)) && new Date(d.depart) > new Date(d.arrive))
253                .map(d => ({ arrive: d.arrive, depart: d.depart, latest_search: !!d.latest_search }))
254                .slice(0, 3);
255        }
256        if (Array.isArray(raw.check_history)) {
257            clean.check_history = raw.check_history
258                .filter(c => c && typeof c.label === 'string' && c.latest_search === true)
259                .map(c => ({ label: c.label, latest_search: true }));
260        }
261        if (Array.isArray(raw.select_history)) {
262            clean.select_history = raw.select_history
263                .filter(s => s && typeof s.label === 'string' && typeof s.value === 'string' && s.latest_search === true)
264                .map(s => ({ label: s.label, value: s.value, latest_search: true }));
265        }
266
267        // Preserve the sort_order if it exists in the raw local storage
268        if (raw.sort_order && typeof raw.sort_order === 'object') {
269            const field = typeof raw.sort_order.field === 'string' ? raw.sort_order.field : "";
270            const direction = typeof raw.sort_order.direction === 'string' ? raw.sort_order.direction : "";
271            const validDirections = ['asc', 'desc'];
272
273            if (field && validDirections.includes(direction)) {
274                clean.sort_order = {field, direction};
275            }
276            // else: leave clean.sort_order at its default {field: "", direction: ""}
277        }
278
279        return clean;
280    }
281
282    const rtFavorited = useStorage('rt-favorited', {
283        favorites: [],
284        recently_viewed: [],
285        date_history: [],
286        check_history: [],
287        select_history: [],
288        sort_order: {
289            field: "",
290            direction: "",
291        },
292        version: 1,
293    });
294
295    rtFavorited.value = sanitizeRtFavorited(rtFavorited.value);
296
297
298    const myRentalsHeaderApp = Vue.createApp({
299        // hand the app the global ref
300        setup() {
301            return { unitsFavorite: rtFavorited };
302        },
303        data() {
304            return {
305                displayMyRentalsHeader: true,
306                localStorageClean: false,
307            }
308        },
309        computed: {
310            favoritesCount: function () {
311                if (this.unitsFavorite.favorites && this.unitsFavorite.favorites.length > 0) {
312                    return this.unitsFavorite.favorites.length;
313                } else {
314                    return 0;
315                }
316            },
317        },
318        methods: {
319            cleanseStorage: function() {
320                var appRoot = this;
321
322                axios.post('https://www.islandvacationproperties.com/vacation-rentals' + '/router/', {
323                    call: 'cleanseFavorites',
324                    store: appRoot.unitsFavorite,
325                })
326                    .then(function (response) {
327                        appRoot.localStorageClean = true;
328
329                        const validFavorites = response.data.favorites || [];
330                        const validRecent = response.data.recently_viewed || [];
331
332                        appRoot.unitsFavorite.favorites = appRoot.unitsFavorite.favorites.filter(id => validFavorites.includes(id));
333                        appRoot.unitsFavorite.recently_viewed = appRoot.unitsFavorite.recently_viewed.filter(id => validRecent.includes(id));
334
335                        appRoot.unitsFavorite.check_history = response.data.check_history || appRoot.unitsFavorite.check_history;
336                        appRoot.unitsFavorite.select_history = response.data.select_history || appRoot.unitsFavorite.select_history;
337                    })
338                    .catch(function (error) {
339                        console.log(error);
340                    });
341            },
342        },
343        mounted: function() {
344            const hasData = this.unitsFavorite.favorites.length
345                || this.unitsFavorite.recently_viewed.length
346                || this.unitsFavorite.check_history.length
347                || this.unitsFavorite.select_history.length;
348
349            if (!this.localStorageClean && hasData) {
350                this.cleanseStorage();
351            }
352        },
353    });
354
355    myRentalsHeaderApp.mount('#my-rentals-header');
356</script>
356                                    <a class="headerright-top-tel" href="tel:(941) 7781000">
357                                        <i class="rt-google-icon phone" aria-hidden="true"></i>
358                                        <span>(941) 778-1000                                        </span>
359                                    </a>
360                                </div>
361                                <nav class="navclass nav classic">
362                                    <ul id="menu-main-nav" class="menu clearfix hide-nav leftnav white-text"><li id="menu-item-110" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-110"><a href="https://www.islandvacationproperties.com/vacation-rentals/results/?viewall" aria-haspopup="true" aria-expanded="false">Vacation Rentals</a><ul class="sub-menu">	<li id="menu-item-5865" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5865"><a href="https://www.islandvacationproperties.com/vacation-rentals/results/?viewall">View All Rentals</a></li>	<li id="menu-item-162" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-162"><a aria-haspopup="true" aria-expanded="false">Rentals By Amenity</a>	<ul class="sub-menu">		<li id="menu-item-691" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-691"><a href="https://www.islandvacationproperties.com/beachfront-rentals/">Beachfront</a></li>		<li id="menu-item-163" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-163"><a href="https://www.islandvacationproperties.com/pool-properties/">Rentals With Pool</a></li>		<li id="menu-item-189" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-189"><a href="https://www.islandvacationproperties.com/pet-friendly-rentals/">Pet Friendly</a></li>	</ul></li>	<li id="menu-item-183" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-183"><a aria-haspopup="true" aria-expanded="false">Rentals By Community</a>	<ul class="sub-menu">		<li id="menu-item-186" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-186"><a href="https://www.islandvacationproperties.com/anna-maria-rentals/">City of Anna Maria</a></li>		<li id="menu-item-188" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-188"><a href="https://www.islandvacationproperties.com/holmes-beach-rentals/">Holmes Beach</a></li>		<li id="menu-item-187" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-187"><a href="https://www.islandvacationproperties.com/bradenton-beach-rentals/">Bradenton Beach</a></li>		<li id="menu-item-184" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-184"><a href="https://www.islandvacationproperties.com/main-land-rentals/">Mainland</a></li>		<li id="menu-item-1179" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1179"><a href="https://www.islandvacationproperties.com/one-particular-harbour-rentals/">One Particular Harbour</a></li>		<li id="menu-item-295" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-295"><a href="https://www.islandvacationproperties.com/rentals-by-area/">All Rentals By Area</a></li>	</ul></li>	<li id="menu-item-1672" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-1672"><a aria-haspopup="true" aria-expanded="false">Rentals By Type</a>	<ul class="sub-menu">		<li id="menu-item-1458" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1458"><a href="https://www.islandvacationproperties.com/house-rentals/">House Rentals</a></li>		<li id="menu-item-1673" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1673"><a href="https://www.islandvacationproperties.com/anna-maria-island-condo-rentals/">Condo Rentals</a></li>		<li id="menu-item-164" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-164"><a href="https://www.islandvacationproperties.com/long-weekend-rentals/">Long Weekend Rentals</a></li>		<li id="menu-item-2147" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2147"><a href="https://www.islandvacationproperties.com/anna-maria-island-monthly-rentals/">Monthly Rentals</a></li>		<li id="menu-item-4944" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4944"><a href="https://www.islandvacationproperties.com/duplex-and-fourplex-rentals/">Multi Unit Properties</a></li>	</ul></li>	<li id="menu-item-873" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-873"><a aria-haspopup="true" aria-expanded="false">Rentals by Bedroom</a>	<ul class="sub-menu">		<li id="menu-item-874" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-874"><a href="https://www.islandvacationproperties.com/1-bedroom-rentals/">1 Bedroom</a></li>		<li id="menu-item-951" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-951"><a href="https://www.islandvacationproperties.com/2-bedroom-rentals/">2 Bedroom</a></li>		<li id="menu-item-1009" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1009"><a href="https://www.islandvacationproperties.com/three-bedroom-rentals/">3 Bedroom</a></li>		<li id="menu-item-1455" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1455"><a href="https://www.islandvacationproperties.com/four-bedroom-rentals/">4 Bedroom</a></li>		<li id="menu-item-1454" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1454"><a href="https://www.islandvacationproperties.com/five-bedroom-rentals/">5+ Bedroom</a></li>	</ul></li>	<li id="menu-item-240" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-240"><a href="https://www.islandvacationproperties.com/featured-properties/">Featured AMI Vacation Rentals</a></li>	<li id="menu-item-4125" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4125"><a href="https://www.islandvacationproperties.com/specials/">Specials</a></li>	<li id="menu-item-3654" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3654"><a href="https://www.islandvacationproperties.com/travel-insurance-information/">Travel Insurance Information</a></li>	<li id="menu-item-5751" class="menu-item menu-item-type-post_type menu-item-object-rtc menu-item-5751"><a href="https://www.islandvacationproperties.com/vacation-rentals/rentals-availability-calendar/">Availability Calendar</a></li></ul></li><li id="menu-item-111" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-111">
362<a href="https://islandvacationproperties.idxbroker.com/idx/featured" aria-haspopup="true" aria-expanded="false">Real Estate Sales</a><ul class="sub-menu">	<li id="menu-item-146" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-146"><a href="https://islandvacationproperties.idxbroker.com/idx/search/advanced">Search MLS</a></li>	<li id="menu-item-147" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-147"><a href="https://islandvacationproperties.idxbroker.com/idx/featured">Our Featured Listings</a></li>	<li id="menu-item-128" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-128"><a href="https://www.islandvacationproperties.com/anna-maria-island-real-estate-buyer-resources/">Home Buying Tips</a></li>	<li id="menu-item-129" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-129"><a href="https://www.islandvacationproperties.com/anna-maria-island-real-estate-seller-resources/">Home Selling Tips</a></li>	<li id="menu-item-148" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-148"><a href="https://islandvacationproperties.idxbroker.com/idx/mortgage">Mortgage Calculator</a></li>	<li id="menu-item-227" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-227"><a href="https://www.islandvacationproperties.com/meet-our-sales-agents/">Meet Our Sales Agents</a></li></ul></li><li id="menu-item-195" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-195"><a href="https://www.islandvacationproperties.com/property-management/" aria-haspopup="true" aria-expanded="false">Property Management</a><ul class="sub-menu">	<li id="menu-item-106" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-106"><a href="https://www.islandvacationproperties.com/property-management/">List With IVP</a></li>	<li id="menu-item-260" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-260"><a target="_blank" rel="noopener noreferrer" href="https://owner.escapia.com/dist/index.html#/login">Owner Log-In</a></li>	<li id="menu-item-199" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-199"><a href="https://www.islandvacationproperties.com/contact-property-management/">Contact Property Management</a></li></ul></li><li id="menu-item-119" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current-menu-ancestor current-menu-parent menu-item-has-children menu-item-119"><a href="https://www.islandvacationproperties.com/about-island-vacation-properties/" aria-current="page" aria-haspopup="true" aria-expanded="false">About Us</a><ul class="sub-menu">	<li id="menu-item-5207" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-5207"><a href="https://www.islandvacationproperties.com/about-island-vacation-properties/" aria-current="page">Our Story</a></li>	<li id="menu-item-220" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-220"><a href="https://www.islandvacationproperties.com/meet-our-team/">Meet Our Rentals Team</a></li>	<li id="menu-item-159" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-159"><a href="https://www.islandvacationproperties.com/frequently-asked-questions/">Frequently Asked Questions</a></li>	<li id="menu-item-229" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-229"><a href="https://www.islandvacationproperties.com/driving-directions/">Driving Directions</a></li>	<li id="menu-item-117" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-117"><a href="https://www.islandvacationproperties.com/contact/">Contact Us</a></li></ul></li><li id="menu-item-120" class="last-link menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-120"><a href="https://www.islandvacationproperties.com/island-blog/" aria-haspopup="true" aria-expanded="false">Explore AMI</a><ul class="sub-menu">	<li id="menu-item-107" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107"><a href="https://www.islandvacationproperties.com/about-anna-maria-island/">Anna Maria Island History</a></li>	<li id="menu-item-108" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-108"><a href="https://www.islandvacationproperties.com/anna-maria-island-information/">City of Anna Maria</a></li>	<li id="menu-item-122" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-122"><a target="_blank" href="/wp-content/uploads/2019/12/trolley-map.pdf">Free Trolley Map</a></li>	<li id="menu-item-4228" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4228"><a href="https://www.islandvacationproperties.com/island-blog/">Our Blog</a></li></ul></li></ul>                                </nav>
363                            </div>
364                        </div>
365                                                                    </div>
366                </header>
367                                    <figure class="hero" role="complementary" aria-label="hero image">
368                        <img width="1920" height="500" src="https://www.islandvacationproperties.com/wp-content/uploads/2026/08/IVPsecondary.jpg" class="banner-image" alt="Island Vacation Properties" decoding="async" srcset="https://www.islandvacationproperties.com/wp-content/uploads/2026/08/IVPsecondary.jpg 1920w, https://www.islandvacationproperties.com/wp-content/uploads/2026/08/IVPsecondary-600x156.jpg 600w, https://www.islandvacationproperties.com/wp-content/uploads/2026/08/IVPsecondary-1200x313.jpg 1200w, https://www.islandvacationproperties.com/wp-content/uploads/2026/08/IVPsecondary-768x200.jpg 768w, https://www.islandvacationproperties.com/wp-content/uploads/2026/08/IVPsecondary-1536x400.jpg 1536w" sizes="(max-width: 1920px) 100v
368w, 1920px" />                    </figure>
369				                    <div class="qswrap classic">
370	<div class="qscenter">
371        <div id="qsformroot">
372            <form id="qsform" @keydown.enter.prevent @submit.prevent role="search" aria-label="Search for available properties using specific search criteria." title="search for vacation rentals">
373                <datepick-inputs
374                    v-on:update-dates="newDates"
375                ></datepick-inputs>
376                <div v-for="(select,index) in searchCriteria.selectBoxes" class="select-wrap" :key="'select-id-'+index">
377                    <div class="select-container">
378                        <label :for="'select-'+index" class="hidden-label">{{select.label}}</label>
379                        <select :id="'select-'+index" v-model="select.selected">
380                            <option value="">{{select.label}}</option>
381                            <option v-for="(option,index) in select.options" :value="option.value" :key="select.input+'-option'+index">{{option.name}}</option>
382                        </select>
383                    </div>
384                </div>
385                <button class="button" @click="performSearch" @keydown.enter="performSearch" key="performSearch" aria-label="Go to the search results for the selected criteria.">Search</button>
386            </form>
387        </div>
388        <div id="property-search-instance">
389    <propertysearch></propertysearch>
390</div>
391
392<template id="rt-searchbox">
393    <div v-click-outside="outsideClick" class="property-searchbox-wrap">
394        <form aria-label="Search for specific properties by filtering as you type.">
395            <div class="input-wrap">
396                <input :value="query"
397                       @input="query = $event.target.value"
398                       @focus="openDropdown()"
399                       @click="openDropdown()"
400                       @enter.prevent="toggleDropdown()"
401                       placeholder="Jump to a Property"
402                       autocomplete="off"
403                       aria-label="If you would like to go to a specific property webpage, type in the first few characters of the property you want to search for, then tab down through a list of matching results and then select the appropriate property link."
404                >
405                <i role="presentation" class="rt-google-icon search"></i>
406            </div>
407            <transition-group v-if="active" name="fade" tag="ul" mode="out-in">
408                <li v-for="(item, index) in computedList"
409                    v-bind:key="item.option"
410                    v-bind:data-index="index"
411                ><a role="link" :href="'https://www.islandvacationproperties.com/vacation-rentals/rental/' + item.propName + '/'" :aria-label="'Go to the webpage for ' + item.option">{{ item.option }}</a></li>
412            </transition-group>
413        </form>
414    </div>
415</template>
416<script>
417    const rtpropsearchbox = {
418        template: '#rt-searchbox',
419        props: {
420        },
421        data: function() {
422            return {
423                active: false,
424                query: '',
425                hasFocus: false,
426                units: [{"unit_id":"2531-250437","prop_name":" The Point at Bermuda Bay Club","prop_number":"2531-250437"},{"unit_id":"2531-241210","prop_name":"1239 Edgewater Circle","prop_number":"2531-241210"},{"unit_id":"2531-207379","prop_name":"A Getaway Retreat A","prop_number":"2531-207379"},{"unit_id":"2531-207381","prop_name":"A Getaway Retreat B","prop_number":"2531-207381"},{"unit_id":"2531-207370","prop_name":"A Getaway Retreat Both Units","prop_number":"2531-207370"},{"unit_id":"2531-174509","prop_name":"A Wright Place","prop_number":"2531-174509"},{"unit_id":"2531-174510","prop_name":"Absolutely Perfect","prop_number":"2531-174510"},{"unit_id":"2531-271103","prop_name":"Anglers Bay at One Particular Harbour 392-103","prop_number":"2531-271103"},{"unit_id":"2531-174455","prop_name":"Anna Cabana Bungalow #1","prop_number":"2531-174455"},{"unit_id":"2531-174456","prop_name":"Anna Cabana Bungalow #2","prop_number":"2531-174456"},{"unit_id":"2531-174457","prop_name":"Anna Cabana Bungalow #3","prop_number":"2531-174457"},{"unit_id":"2531-174458","prop_name":"Anna Cabana Bungalow #4","prop_number":"2531-174458"},{"unit_id":"2531-174514","prop_name":"Anna Maria Beach Place, Unit 3","prop_number":"2531-174514"},{"unit_id":"2531-174516","prop_name":"Anna Maria Beach Place, Unit 5","prop_number":"2531-174516"},{"unit_id":"2531-174517","prop_name":"Anna Maria Beach Place, Unit 6","prop_number":"2531-174517"},{"unit_id":"2531-174519","prop_name":"Annas Cottage","prop_number":"2531-174519"},{"unit_id":"2531-248838","prop_name":"Avenue A Retreat","prop_number":"2531-248838"},{"unit_id":"2531-174522","prop_name":"Bay Watch 6a","prop_number":"2531-174522"},{"unit_id":"2531-256701","prop_name":"Bayview Condo B","prop_number":"2531-256701"},{"unit_id":"2531-234316","prop_name":"Bayview Inn #101","prop_number":"2531-234316"},{"unit_id":"2531-174526","prop_name":"Beach House Resort 10","prop_number":"2531-174526"},{"unit_id":"2531-174528","prop_name":"Beach House Resort 3","prop_number":"2531-174528"},{"unit_id":"2531-174533","prop_name":"Beach House Resort 9","prop_number":"2531-174533"},{"unit_id":"2531-174536","prop_name":"Beachside","prop_number":"2531-174536"},{"unit_id":"2531-274431","prop_name":"Beachview #5","prop_number":"2531-274431"},{"unit_id":"2531-174460","prop_name":"Bliss & Tonic Both","prop_number":"2531-174460"},{"unit_id":"2531-174461","prop_name":"Bliss & Tonic Down","prop_number":"2531-174461"},{"unit_id":"2531-174462","prop_name":"Bliss & Tonic Up","prop_number":"2531-174462"},{"unit_id":"2531-174468","prop_name":"Bollinger Duplex  2 Units ","prop_number":"2531-174468"},{"unit_id":"2531-174469","prop_name":"Bollinger Duplex, A","prop_number":"2531-174469"},{"unit_id":"2531-174470","prop_name":"Bollinger Duplex, B","prop_number":"2531-174470"},{"unit_id":"2531-174540","prop_name":"Bradenton Beach Club D","prop_number":"2531-174540"},{"unit_id":"2531-174541","prop_name":"Breakers 1","prop_number":"2531-174541"},{"unit_id":"2531-174542","prop_name":"Breakers 3","prop_number":"2531-174542"},{"unit_id":"2531-174543","prop_name":"Breakers 4 At Sandcastle #1","prop_number":"2531-174543"},{"unit_id":"2531-174545","prop_name":"Bridgeport Condo 101","prop_number":"2531-174545"},{"unit_id":"2531-174445","prop_name":"Bridgeport Condo 204","prop_number":"2531-174445"},{"unit_id":"2531-174446","prop_name":"Bridgeport Condo 209","prop_number":"2531-174446"},{"unit_id":"2531-174546","prop_name":"Bridgeport Condo 211","prop_number":"2531-174546"},{"unit_id":"2531-284000","prop_name":"Coastal Cottage","prop_number":"2531-284000"},{"unit_id":"2531-174549","prop_name":"Coco Cabana","prop_number":"2531-174549"},{"unit_id":"2531-174550","prop_name":"Coquina Beach Club 101","prop_number":"2531-174550"},{"unit_id":"2531-260960","prop_name":"Coquina Beach Club 102","prop_number":"2531-260960"},{"unit_id":"2531-174552","prop_name":"Coquina Moorings 102","prop_number":"2531-174552"},{"unit_id":"2531-174554","prop_name":"Coquina Moorings 202","prop_number":"2531-174554"},{"unit_id":"2531-260136","prop_name":"Coquina Moorings 203","prop_number":"2531-260136"},{"unit_id":"2531-174555","prop_name":"Coquina Moorings 206","prop_number":"2531-174555"},{"unit_id":"2531-274179","prop_name":"Cove at Sandy Pointe 112","prop_number":"2531-274179"},{"unit_id":"2531-174560","prop_name":"Cove At Sandy Pointe 208","prop_number":"2531-174560"},{"unit_id":"2531-174475","prop_name":"Dolphin Dance Both","prop_number":"2531-174475"},{"unit_id":"2531-174476","prop_name":"Dolphin Dance, North Side","prop_number":"2531-174476"},{"unit_id":"2531-174477","prop_name":"Dolphin Dance, South Side","prop_number":"2531-174477"},{"unit_id":"2531-254395","prop_name":"Escape to Serenity 2 Units ","prop_number":"2531-254395"},{"unit_id":"2531-254393","prop_name":"Escape to Serenity A","prop_number":"2531-254393"},{"unit_id":"2531-254394","prop_name":"Escape to Serenity B","prop_number":"2531-254394"},{"unit_id":"2531-174564","prop_name":"Fountainhead Condo 3","prop_number":"2531-174564"},{"unit_id":"2531-174565","prop_name":"Fountainhead Condo 4","prop_number":"2531-174565"},{"unit_id":"2531-174478","prop_name":"Four Beach Lovers 1","prop_number":"2531-174478"},{"unit_id":"2531-174479","prop_name":"Four Beach Lovers 2","prop_number":"2531-174479"},{"unit_id":"2531-174480","prop_name":"Four Beach Lovers 3","prop_number":"2531-174480"},{"unit_id":"2531-174481","prop_name":"Four Beach Lovers 4","prop_number":"2531-174481"},{"unit_id":"2531-174482","prop_name":"Four Beach Lovers 4 Units ","prop_number":"2531-174482"},{"unit_id":"2531-174568","prop_name":"Franks Beach House","prop_number":"2531-174568"},{"unit_id":"2531-174483","prop_name":"Good Times Both Units","prop_number":"2531-174483"},{"unit_id":"2531-174484","prop_name":"Good Times Downstairs","prop_number":"2531-174484"},{"unit_id":"2531-174485","prop_name":"Good Times Upstairs A","prop_number":"2531-174485"},{"unit_id":"2531-174570","prop_name":"Gulf Sands 201","prop_number":"2531-174570"},{"unit_id":"2531-174575","prop_name":"Island Daze","prop_number":"2531-174575"},{"unit_id":"2531-240263","prop_name":"Island Walk, Cove At Sandy Point 207","prop_number":"2531-240263"},{"unit_id":"2531-213680","prop_name":"La Playita 7","prop_number":"2531-213680"},{"unit_id":"2531-174578","prop_name":"Lakeside Beach House","prop_number":"2531-174578"},{"unit_id":"2531-265790","prop_name":"LaPlage #3","prop_number":"2531-265790"},{"unit_id":"2531-216483","prop_name":"Lazy Livin 6","prop_number":"2531-216483"},{"unit_id":"2531-230130","prop_name":"Made In The Shade 2 Units ","prop_number":"2531-230130"},{"unit_id":"2531-230126","prop_name":"Made In The Shade A","prop_number":"2531-230126"},{"unit_id":"2531-230128","prop_name":"Made In The Shade B","prop_number":"2531-230128"}
426,{"unit_id":"2531-174436","prop_name":"MI Happy Place Sand Castle 1","prop_number":"2531-174436"},{"unit_id":"2531-174437","prop_name":"MI Happy Place Sand Dollar 2","prop_number":"2531-174437"},{"unit_id":"2531-174487","prop_name":"MI Happy Place Sea Horse 3","prop_number":"2531-174487"},{"unit_id":"2531-174488","prop_name":"MI Happy Place Sea Turtle 4","prop_number":"2531-174488"},{"unit_id":"2531-174489","prop_name":"MI Happy Place-4 Units ","prop_number":"2531-174489"},{"unit_id":"2531-174581","prop_name":"Ocean Park Terrace 202","prop_number":"2531-174581"},{"unit_id":"2531-216784","prop_name":"One Particular Harbour  Sound View 379-401","prop_number":"2531-216784"},{"unit_id":"2531-230259","prop_name":"One Particular Harbour 379-101","prop_number":"2531-230259"},{"unit_id":"2531-206954","prop_name":"One Particular Harbour 387-101","prop_number":"2531-206954"},{"unit_id":"2531-206004","prop_name":"One Particular Harbour 391-201","prop_number":"2531-206004"},{"unit_id":"2531-283886","prop_name":"One Particular Harbour 391-203","prop_number":"2531-283886"},{"unit_id":"2531-208713","prop_name":"One Particular Harbour 392-201","prop_number":"2531-208713"},{"unit_id":"2531-265896","prop_name":"One Particular Harbour 395-402","prop_number":"2531-265896"},{"unit_id":"2531-259917","prop_name":"One Particular Harbour 396-303","prop_number":"2531-259917"},{"unit_id":"2531-247410","prop_name":"One Particular Harbour Lagoon view 383-202","prop_number":"2531-247410"},{"unit_id":"2531-198297","prop_name":"One Particular Harbour Lagoon View 395-103","prop_number":"2531-198297"},{"unit_id":"2531-256990","prop_name":"Otter Lagoon at One Particular Harbour  379-103","prop_number":"2531-256990"},{"unit_id":"2531-174584","prop_name":"Palm Cay 3","prop_number":"2531-174584"},{"unit_id":"2531-174585","prop_name":"Palm Cay 4","prop_number":"2531-174585"},{"unit_id":"2531-174586","prop_name":"Palm Cay 5","prop_number":"2531-174586"},{"unit_id":"2531-245092","prop_name":"Palm View Lakehouse","prop_number":"2531-245092"},{"unit_id":"2531-231137","prop_name":"Palma Sola","prop_number":"2531-231137"},{"unit_id":"2531-174490","prop_name":"Peace 'n Paradise","prop_number":"2531-174490"},{"unit_id":"2531-174588","prop_name":"Pelican Cove 15","prop_number":"2531-174588"},{"unit_id":"2531-261257","prop_name":"Pelican Place at The Nautilus","prop_number":"2531-261257"},{"unit_id":"2531-277058","prop_name":"Penthouse View at One Particular Harbour 388-401","prop_number":"2531-277058"},{"unit_id":"2531-237311","prop_name":"Pool Party 2 Units ","prop_number":"2531-237311"},{"unit_id":"2531-237312","prop_name":"Pool Party North","prop_number":"2531-237312"},{"unit_id":"2531-237313","prop_name":"Pool Party South","prop_number":"2531-237313"},{"unit_id":"2531-174592","prop_name":"Runaway Bay 250","prop_number":"2531-174592"},{"unit_id":"2531-174593","prop_name":"Sail Away Cottage","prop_number":"2531-174593"},{"unit_id":"2531-275311","prop_name":"Sand & Sun 2 Units ","prop_number":"2531-275311"},{"unit_id":"2531-275312","prop_name":"Sand & Sun A SIDE","prop_number":"2531-275312"},{"unit_id":"2531-275313","prop_name":"Sand & Sun B SIDE","prop_number":"2531-275313"},{"unit_id":"2531-174595","prop_name":"Sandcastle 3","prop_number":"2531-174595"},{"unit_id":"2531-273507","prop_name":"Sandy Feet Retreat","prop_number":"2531-273507"},{"unit_id":"2531-174596","prop_name":"Sandy Pointe 210","prop_number":"2531-174596"},{"unit_id":"2531-278824","prop_name":"Sapphire Serenity ","prop_number":"2531-278824"},{"unit_id":"2531-174597","prop_name":"Sea Pirate 3","prop_number":"2531-174597"},{"unit_id":"2531-174599","prop_name":"Sea Pirate 7","prop_number":"2531-174599"},{"unit_id":"2531-174600","prop_name":"Sea-Esta","prop_number":"2531-174600"},{"unit_id":"2531-174601","prop_name":"Seabreeze Condo B","prop_number":"2531-174601"},{"unit_id":"2531-174611","prop_name":"Seaside Beach House 101  ","prop_number":"2531-174611"},{"unit_id":"2531-174612","prop_name":"Seaside Beach House 102 ","prop_number":"2531-174612"},{"unit_id":"2531-174613","prop_name":"Seaside Beach House 105 ","prop_number":"2531-174613"},{"unit_id":"2531-174614","prop_name":"Seaside Beach House 201 ","prop_number":"2531-174614"},{"unit_id":"2531-204602","prop_name":"Seaside Beach House 203 ","prop_number":"2531-204602"},{"unit_id":"2531-174615","prop_name":"Seaside Beach House 205 ","prop_number":"2531-174615"},{"unit_id":"2531-174617","prop_name":"Shell Cove 9","prop_number":"2531-174617"},{"unit_id":"2531-174619","prop_name":"Sirena Del Mar","prop_number":"2531-174619"},{"unit_id":"2531-261258","prop_name":"So Beachy Chic","prop_number":"2531-261258"},{"unit_id":"2531-178725","prop_name":"Southern Comfort","prop_number":"2531-178725"},{"unit_id":"2531-174492","prop_name":"SS Salamander 2 Units ","prop_number":"2531-174492"},{"unit_id":"2531-174493","prop_name":"SS Salamander North","prop_number":"2531-174493"},{"unit_id":"2531-174494","prop_name":"SS Salamander South","prop_number":"2531-174494"},{"unit_id":"2531-262804","prop_name":"Sunset FantaSea at One Particular Harbour 380-202","prop_number":"2531-262804"}
426,{"unit_id":"2531-174621","prop_name":"Sunset Terrace 108 ","prop_number":"2531-174621"},{"unit_id":"2531-174623","prop_name":"Sunset Terrace 201","prop_number":"2531-174623"},{"unit_id":"2531-174448","prop_name":"Sunset Villas","prop_number":"2531-174448"},{"unit_id":"2531-257566","prop_name":"SWEPT AWAY B","prop_number":"2531-257566"},{"unit_id":"2531-218299","prop_name":"Swizzle On The Sound","prop_number":"2531-218299"},{"unit_id":"2531-174628","prop_name":"Terrace Condo 1","prop_number":"2531-174628"},{"unit_id":"2531-248621","prop_name":"Terrace Condo 6","prop_number":"2531-248621"},{"unit_id":"2531-235198","prop_name":"The Palms #3","prop_number":"2531-235198"},{"unit_id":"2531-231331","prop_name":"The Palms #4","prop_number":"2531-231331"},{"unit_id":"2531-204768","prop_name":"The Sunset Retreat at One Particular Harbour 384-202","prop_number":"2531-204768"},{"unit_id":"2531-285578","prop_name":"Tides & Turtles","prop_number":"2531-285578"},{"unit_id":"2531-174630","prop_name":"Tiki","prop_number":"2531-174630"},{"unit_id":"2531-277062","prop_name":"Tortuga Cottage","prop_number":"2531-277062"},{"unit_id":"2531-248571","prop_name":"Turquoise Turtle at One Particular Harbour 388-403 ","prop_number":"2531-248571"},{"unit_id":"2531-174500","prop_name":"Valhalla 2 Units ","prop_number":"2531-174500"},{"unit_id":"2531-174499","prop_name":"Valhalla Downstairs","prop_number":"2531-174499"},{"unit_id":"2531-174501","prop_name":"Valhalla Upstairs","prop_number":"2531-174501"},{"unit_id":"2531-174632","prop_name":"Waters Edge 102 N","prop_number":"2531-174632"},{"unit_id":"2531-174633","prop_name":"Waters Edge 106s","prop_number":"2531-174633"},{"unit_id":"2531-174634","prop_name":"Waters Edge 110s","prop_number":"2531-174634"},{"unit_id":"2531-174503","prop_name":"West Bay Cove 131","prop_number":"2531-174503"},{"unit_id":"2531-174640","prop_name":"West Bay Cove 142","prop_number":"2531-174640"},{"unit_id":"2531-278919","prop_name":"West Bay Cove 213","prop_number":"2531-278919"},{"unit_id":"2531-174643","prop_name":"West Bay Cove 216","prop_number":"2531-174643"},{"unit_id":"2531-207705","prop_name":"West Bay Cove 223","prop_number":"2531-207705"},{"unit_id":"2531-174644","prop_name":"West Bay Cove 226","prop_number":"2531-174644"},{"unit_id":"2531-174508","prop_name":"West Bay Cove 231","prop_number":"2531-174508"},{"unit_id":"2531-174505","prop_name":"West Bay Cove 236","prop_number":"2531-174505"},{"unit_id":"2531-174506","prop_name":"West Bay Cove 238","prop_number":"2531-174506"},{"unit_id":"2531-276790","prop_name":"West Bay Cove 242","prop_number":"2531-276790"},{"unit_id":"2531-257568","prop_name":"WHILE AWAY 2 Units ","prop_number":"2531-257568"},{"unit_id":"2531-174645","prop_name":"WHILE AWAY A","prop_number":"2531-174645"}],
427            }
428        },
429        computed: {
430            list: function() {
431                var propsArray = new Array();
432                this.units.forEach(function(prop) {
433                    var propIndex = prop.prop_number.replace(/\s/g,'');
434                    propsArray.push({propName:propIndex, option: prop.prop_name});
435                });
436                return propsArray;
437            },
438            computedList: function () {
439                var vm = this;
440                return this.list.filter(function (item) {
441                    return item.option.toLowerCase().indexOf(vm.query.toLowerCase()) !== -1;
442                })
443            },
444        },
445        methods: {
446            makeSelection: function(option) {
447                this.closeDropdown();
448                this.$emit('smartselect', option.value);
449            },
450            openDropdown: function () {
451                this.active = true;
452            },
453            closeDropdown: function() {
454                this.active = false;
455            },
456            outsideClick: function(e) {
457                // Close the calendar when clicking outside
458                this.closeDropdown();
459            },
460            toggleDropdown: function() {
461                if(this.active) {
462                    this.active = false;
463                } else {
464                    this.active = true;
465                }
466            },
467            toggle: function () {
468                if(this.hasFocus == false) {
469                    this.hasFocus = true;
470                } else {
471                    this.hasFocus = false;
472                }
473
474            },
475            getYpos: function () {
476                var qsForm = this.$refs.quicksearchForm;
477                var qsFormYpos = qsForm.getBoundingClientRect().y;
478                if(qsFormYpos > 425) {
479                    this.popupTopAlign = true;
480                } else {
481                    this.popupTopAlign = false;
482                }
483            }
484        },
485        directives: {
486            'click-outside': {
487                mounted(el, binding, vnode) {
488                    el.clickOutsideEvent = function(event) {
489                        if (!(el === event.target || el.contains(event.target))) {
490                            binding.value(event, el);
491                        }
492                    };
493                    document.body.addEventListener('click', el.clickOutsideEvent);
494                },
495                unmounted(el) {
496                    document.body.removeEventListener('click', el.clickOutsideEvent);
497                }
498            },
499        },
500    };
501    // register the components and mount the app
502    const rtPropSearch = Vue.createApp({});
503    rtPropSearch.component('propertysearch', rtpropsearchbox);
504    rtPropSearch.mount('#property-search-instance');
505</script>
505
506	</div>
507</div>
508
509<template id="general-calendar">
510    <div class="calendar" @mouseleave="leaveCalendar($event)" :class="[{arriveballoon: calendarVisible && !arriveDate && ! departDate},{departballoon: calendarVisible && arriveDate && ! departDate}]">
511        <div class="month-wrap">
512            <div class="header">
513                <i class="arrow rt-google-icon left-chevron" :class="{nonav: (monthIndex <= currentMonth && year == currentYear)}"  @click="movePreviousMonth"></i>
514                <span v-cloak class="title">{{ header.label }}</span>
515                <i class="arrow rt-google-icon right-chevron" :class="{ nonav: year == calEndYear && month >= calEndMonth }"  @click="moveNextMonth"></i>
516            </div>
517            <div class="weekdays">
518                <div v-cloak class="weekday" v-for="weekday in weekdays">
519                    {{ weekday.label_3 }}
520                </div>
521            </div>
522            <div class='week' v-for="(week,index) in weeks" :key="'week'+index"
523                 @touchstart="touchStart($event)"
524                 @touchmove="touchMove($event)"
525                 @touchend="touchEnd($event)">
526                <div class="day-wrap" v-for="day in week" :key="day.dayKeyIndex">
527                    <transition :name="daysSliding" mode="out-in">
528                        <div v-cloak
529                             class="day"
530                             :key="daysSliding"
531                             :class="{ today: day.isToday, booked: day.isBooked, bookstart: day.bookingStart, bookend: day.bookingEnd, unselectable: day.unselectable, unforeseeable: day.unforeseeable, anotherMonthDate: day.dateInAnotherMonth, anotherMonthDateCheckout: day.dateInAnotherMonthCheckout, 'not-in-month': !day.inMonth, 'selected': day.isSelected && !day.dragActive, 'dragged': day.isDragged, 'endpoint': day.startsDrag || day.endsDrag, 'navdate': day.navigateDate }"
532                             @click="selectDay(day)"
533                             @mouseenter="enterDay(day)">
534                            {{ day[dayKey] }}
535                        </div>
536                    </transition>
537                </div>
538            </div>
539        </div>
540        <div class="datepick-footer">
541                        <div v-if="flexButtons && flexButtons.length > 0">
542                <div style="font-size: .85em;">Are your search dates flexible?</div>
543                <div class="flex-button-toolbar">
544                    <button
545                        v-for="button in flexButtons"
546                        @click.prevent="selectFlexButton(button)"
547                        @keydown.enter.prevent="selectFlexButton(button)"
548                        :key="'flexbutton'+button"
549                        class="flex-degree-buttons"
550                        :class="{selectedFlex: button === flexDegree, desktop: button > 2}"
551                        :aria-label="'Search for properties within plus or minus '+button+' days of your search dates.'"
552                        :aria-pressed="button === flexDegree ? true : false"
553                    >&#177;{{button}} day<span v-if="button > 1">s</span>
554                    </button>
555                </div>
556            </div>
557            <transition name="fade">
558                <button id="clear-dates-calendar-button" class="clear-dates" @click.stop="$parent.clearDates" @keyup.enter="$parent.clearDates" @keydown.tab="$parent.closeCalendar()" aria-label="Clear search dates from the calendar.">
559                    <i class="rt-google-icon close-window" role="presentation"></i>
560                    <span>Clear Dates</span>
561                </button>
562            </transition>
563        </div>
564        <div id="general-datepick-nav-message">{{navigationAriaMessage}}</div>
565    </div>
566</template>
567<template id="rt-general-datepick-app">
568    <div id="rt-general-datepick" class="rt-general-datepick">
569        <rt-modal v-if="isMobile && mobileDatesModal" ref="mobilecalmodal" @close-modal="closeCalendar" max-width="500px">
570                        <div id="mobile-calendar-target" class="calendar-container" :class="{calendarvisible: calendarVisible}"></div>
571        </rt-modal>
572        <div class="calendar-container" v-click-outside="outsideClick">
573            <div class="modal-container" >
574                <div class="interface-wrap">
575                    <div class="interface-body">
576                        <div class="interface-inner-wrap">
577                            <div class="input-container date-input google-icon-calendar"
578                                 :class="{inputcoloration: calendarVisible && !arriveDate && !departDate}">
579                                <label for="arriveinput" class="hidden-label">Arrival Date</label>
580                                <input id="arriveinput" ref="arriveinput" type="text" name="arrive_date"
581                                       :value="dateString(arriveDate)"
582                                       @focus="openCalendar()"
583                                       @keyup.enter="!navigateActive ? navigateActive=true : null"
584                                       @keydown.tab.shift.exact="closeCalendar()"
585                                       @keydown.escape="navigateActive=false"
586                                       @keydown.delete="clearDates"
587                                       @keydown.arrow-down.prevent
588                                       @keydown.arrow-up.prevent
589                                       @keydown.page-down.prevent
590                                       @keydown.page-up.prevent
591                                       @click="openCalendar()"
592                                       @keydown.enter.prevent="openCalendar()"
593                                       @keydown="navigationKeyStroke=$event.key"
594                                       placeholder="Arrival"
595                                       aria-describedby="general-datepick-nav-message"
596                                       readonly
597                                />
598                                                            </div>
599                            <div class="input-container date-input google-icon-calendar"
600                                 :class="{inputcoloration: calendarVisible && arriveDate && !departDate}">
601                                <label for="departinput" class="hidden-label">Departure Date</label>
602                                <input id="departinput" ref="departinput" type="text" name="depart_date"
603                                       :value="dateString(departDate)"
604                                       @focus="openCalendar()"
605                                       @keydown.tab="closeCalendar()"
606                                       @keyup.enter="!navigateActive ? navigateActive=true : null"
607                                       @keydown.escape="navigateActive=false"
608                                       @keydown.delete="clearDates"
609                                       @keydown.arrow-down.prevent
610                                       @keydown.arrow-up.prevent
611                                       @keydown.page-down.prevent
612                                       @keydown.page-up.prevent
613                                       @click="openCalendar()"
614                                       @keydown.enter.prevent="openCalendar()"
615                                       @keydown="navigationKeyStroke=$event.key"
616                                       placeholder="Departure"
617                                       aria-describedby="general-datepick-nav-message"
618                                       readonly
619                                />
620                                                            </div>
621                                                        <div id="general-calendar-home" style="display: contents;"></div>
622                            <teleport defer :to="(isMobile && mobileDatesModal) ? '#mobile-calendar-target' : '#general-calendar-home'">
623                                <div v-show="!isMobile || mobileDatesModal" class="calendar-wrap rt-general-datepick">
624                                    <div v-if="mobileDatesModal" class="interface-wrap">
625                                        <div class="interface-body">
626                                            <div class="interface-inner-wrap" style="display: flex;">
627                                                <div class="input-container date-input google-icon-calendar" :class="{inputcoloration: calendarVisible && !arriveDate && !departDate}">
628                                                    <label for="arriveinput" class="hidden-label">Arrival Date</label>
629                                                    <input id="arriveinput" ref="arriveinput" type="text" name="arrive_date"
630                                                           :value="dateString(arriveDate)"
631                                                           @focus="openCalendar()"
632                                                           @keyup.enter="!navigateActive ? navigateActive=true : null"
633                                                           @keydown.tab.shift.exact="closeCalendar(
633)"
634                                                           @keydown.escape="navigateActive=false"
635                                                           @keydown.delete="clearDates"
636                                                           @keydown.arrow-down.prevent
637                                                           @keydown.arrow-up.prevent
638                                                           @keydown.page-down.prevent
639                                                           @keydown.page-up.prevent
640                                                           @click="openCalendar()"
641                                                           @keydown.enter.prevent="openCalendar()"
642                                                           @keydown="navigationKeyStroke=$event.key"
643                                                           placeholder="Arrival"
644                                                           aria-describedby="general-datepick-nav-message"
645                                                           readonly
646                                                    />
647                                                </div>
648                                                <div class="input-container date-input google-icon-calendar"
649                                                     :class="{inputcoloration: calendarVisible && arriveDate && !departDate}">
650                                                    <label for="departinput" class="hidden-label">Departure Date</label>
651                                                    <input id="departinput" ref="departinput" type="text" name="depart_date"
652                                                           :value="dateString(departDate)"
653                                                           @focus="openCalendar()"
654                                                           @keydown.tab="closeCalendar()"
655                                                           @keyup.enter="!navigateActive ? navigateActive=true : null"
656                                                           @keydown.escape="navigateActive=false"
657                                                           @keydown.delete="clearDates"
658                                                           @keydown.arrow-down.prevent
659                                                           @keydown.arrow-up.prevent
660                                                           @keydown.page-down.prevent
661                                                           @keydown.page-up.prevent
662                                                           @click="openCalendar()"
663                                                           @keydown.enter.prevent="openCalendar()"
664                                                           @keydown="navigationKeyStroke=$event.key"
665                                                           placeholder="Departure"
666                                                           aria-describedby="general-datepick-nav-message"
667                                                           readonly
668                                                    />
669                                                </div>
670                                            </div>
671                                        </div>
672                                    </div>
673                                    <div class="calendar-layout" :class="{openAbove: spaceAboveInputs}">
674                                        <general-date-range-picker ref="rtGenDatepicker"
675                                           v-show="calendarVisible"
676                                           v-model="dateSelection"
677                                           :is-mobile="isMobile"
678                                           @drag="dragSelection = $event"
679                                           @emit-keystrokecomplete="navigationKeyStroke = null"
680                                           @emit-newflexdegree="newFlexDegree($event)"
681                                           :calendar-visible="calendarVisible"
682                                           :space-above-inputs="spaceAboveInputs"
683                                           :navigation-mode="navigateActive"
684                                           :key-stroke="navigationKeyStroke">
685                                        </general-date-range-picker>
686                                    </div>
687                                </div>
688                            </teleport>
689                        </div>
690                    </div>
691                </div>
692            </div>
693        </div>
694    </div>
695</template>
696<script>
697        var _daysInMonths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
698    var _weekdayLabels = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
699    var _monthLabels = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
700    var _today = new Date();
701    var _todayComps = {
702        year: _today.getFullYear(),
703        month: _today.getMonth() + 1,
704        day: _today.getDate()
705    };
706    var _initialMonth = _todayComps.month;
707    var _initialYear = _todayComps.year;
708    // set the initial month view ahead one month when we're past the 20th of the current month, which mirrors the availability calendar's logic
709    if(_todayComps.day >= 20) {
710        if(_initialMonth !== 12) {
711            _initialMonth++;
712        } else { // special case for December
713            _initialMonth = 1;
714            _initialYear++;
715        }
716    }
717    
718        const generalCalendar = {
719        template: '#general-calendar',
720        data: function data() {
721            return {
722                month: _initialMonth,
723                year: _initialYear,
724                touchState: null,
725                arriveDate: null,
726                arriveMinDays: null,
727                departDate: null,
728                calStartDate: new Date(new Date(new Date().setDate(new Date().getDate() + 1)).setHours(0,0,0,0)),
729                calEndDate: new Date(new Date(new Date().setDate(new Date().getDate() + 425)).setHours(0,0,0,0)),
730                valueIsValid: false,
731                dragRange: null,
732                navigationDate: new Date(new Date(new Date().setDate(new Date().getDate() + 1)).setHours(0,0,0,0)),
733                navigationDateObject: null,
734                daysSliding: null,
735                flexDegree: 0,
736                flexButtons: [1,2,3],
737            };
738        },
739        props: {
740            dayKey: { type: String, default: 'label' },
741            modelValue: { type: Object, default: {} },
742            calendarVisible: { type: Boolean, default: false },
743            spaceAboveInputs: { type: Boolean, default: false },
744            navigationMode: { type: Boolean, default: false },
745            keyStroke: { type: String, default: null },
746        },
747        emits: ['update:modelValue', 'drag', 'emit-newflexdegree', 'emit-keystrokecomplete'],
748        computed: {
749            normalizedValue: function normalizedValue() {
750                return this.normalizeRange(this.modelValue);
751            },
752            normalizedDragRange: function normalizedDragRange() {
753                return this.normalizeRange(this.dragRange);
754            },
755            // Our component exposes month as 1-based, but sometimes we need 0-based
756            monthIndex: function monthIndex() {
757                return this.month - 1;
758            },
759            isLeapYear: function isLeapYear() {
760                return this.year % 4 === 0 && this.year % 100 !== 0 || this.year % 400 === 0;
761            },
762            currentMonth: function currentMonth() {
763                var currentDate = new Date();
764                return currentDate.getMonth();
765            },
766            currentYear: function currentMonth() {
767                var currentDate = new Date();
768                return currentDate.getFullYear();
769            },
770            calEndMonth: function calEndMonth() {
771                return this.calEndDate.getMonth() + 1;
772            },
773            calEndYear: function calEndYear() {
774                return this.calEndDate.getFullYear();
775            },
776            // Day/month/year components for previous month
777            previousMonthComps: function previousMonthComps() {
778                if (this.month === 1) return {
779                    days: _daysInMonths[11],
780                    month: 12,
781                    year: this.year - 1
782                };
783                return {
784                    days: this.month === 3 && this.isLeapYear ? 29 : _daysInMonths[this.month - 2],
785                    month: this.month - 1,
786                    year: this.year
787                };
788            },
789            // Day/month/year components for next month
790            nextMonthComps: function nextMonthComps() {
791                if (this.month === 12) return {
792                    days: _daysInMonths[0],
793                    month: 1,
794                    year: this.year + 1
795                };
796                return {
797                    days: this.month === 2 && this.isLeapYear ? 29 : _daysInMonths[this.month],
798                    month: this.month + 1,
799                    year: this.year
800                };
801            },
802            // State for calendar header (no dependencies yet...)
803            months: function months() {
804                return _monthLabels.map(function (ml, i) {
805                    return {
806                        label: ml,
807                        label_1: ml.substring(0, 1),
808                        label_2: ml.substring(0, 2),
809                        label_3: ml.substring(0, 3),
810                        number: i + 1
811                    };
812                });
813            },
814            // State for weekday header (no dependencies yet...)
815            weekdays: function weekdays() {
816                return _weekdayLabels.map(function (wl, i) {
817                    return {
818                        label: wl,
819                        label_1: wl.substring(0, 1),
820                        label_2: wl.substring(0, 2),
821                        label_3: wl.substring(0, 3),
822                        number: i + 1
823                    };
824                });
825            },
826            // State for calendar header
827            header: function header() {
828                var month = this.months[this.monthIndex];
829                return {
830                    month: month,
831                    year: this.year.toString(),
832                    shortYear: this.year.toString().substring(2, 4),
833                    label: month.label + ' ' + this.year
834                };
835            },
836            // Returns number for first weekday (1-7), starting from Sunday
837            firstWeekdayInMonth: function firstWeekdayInMonth() {
838                return new Date(this.year, this.monthIndex, 1).getDay() + 1;
839            },
840            // Returns number of days in the current month
841            daysInMonth: function daysInMonth() {
842                // Check for February in a leap year
843                if (this.month === 2 && this.isLeapYear) return 29;
844                // ...Just a normal month
845                return _daysInMonths[this.monthIndex];
846            },
847            // Returns number of days in the last month
848            daysInLastMonth: function daysInMonth() {
849                var lastmonth = 0;
850                if(this.monthIndex > 0) {
851                    lastmonth = this.monthIndex - 1;
852                } else {
853                    lastmonth == 11;
854                }
855                // Check for February in a leap year
856                if ((this.month - 1) === 2 && this.isLeapYear) return 29;
857                // ...Just a normal month
858                return _daysInMonths[lastmonth];
859            },
860            weeks: function weeks() {
861                //Create an index key for the days showing
862                var dayIndex = 0;
863                var weeks = [];
864                var previousMonth = true, thisMonth = false, nextMonth = false;
865                var day = this.previousMonthComps.days - this.firstWeekdayInMonth + 2;
866                var month = this.previousMonthComps.month;
867                var year = this.previousMonthComps.year;
868                var lastMonthArray = [];
869                // Cycle through each week of the month, up to 6 total
870                for (var w = 1; w <= 6; w++) {
871                    // Cycle through each weekday
872                    var week = [];
873                    for (var d = 1; d <= 7; d++) {
874                        dayIndex++;
875                        // lets populate last months dates on this months calendar
876                        if (w === 1 && d < this.firstWeekdayInMonth) {
877                            var lastDay = this.daysInLastMonth;
878                            lastMonthArray.push(lastDay);
879                            day = lastDay - (this.firstWeekdayInMonth - (dayIndex + 1));
880                            month = this.previousMonthComps.month;
881                            year = this.previousMonthComps.year;
882                            thisMonth = true;
883                        }
884                        // We need to know when to start counting actual month days
885                        if (previousMonth && d >= this.firstWeekdayInMonth) {
886                            // Reset day/month/year counters
887                            day = 1;
888                            month = this.month;
889                            year = this.year;
890                            // ...and flag we're tracking actual month days
891                            previousMonth = false;
892                            thisMonth = true;
893                        }
894
895                        // Append day info for the current week
896                        // Note: this might or might not be an actual month day
897                        //  We don't know how the UI wants to display various days,
898                        //  so we'll supply all the data we can
899                        var dayInfo = {
900                            dayKeyIndex: dayIndex,
901                            label: (day && thisMonth) ? day.toString() : '',
902                            day: day,
903                            weekday: d,
904                            week: w,
905                            month: month,
906                            year: year,
907                            date: new Date(year, month - 1, day),
908                            beforeMonth: previousMonth,
909                            afterMonth: nextMonth,
910                            inMonth: thisMonth,
911                            isToday: day === _todayComps.day && month 
911=== _todayComps.month && year === _todayComps.year,
912                            isFirstDay: thisMonth && day === 1,
913                            isLastDay: thisMonth && day === this.daysInMonth,
914                            unselectable: false,
915                            unforeseeable: false,
916                            dateInAnotherMonth: false,
917                            dateInAnotherMonthCheckout: false,
918                            navigateDate: false,
919                        };
920                        //Identify calendar start and end
921                        if(this.calStartDate && dayInfo.date < this.calStartDate) {
922                            dayInfo.unforeseeable = true;
923                        } else if(this.calEndDate && dayInfo.date > this.calEndDate) {
924                            dayInfo.unforeseeable = true;
925                        }
926                        //Identify which date is currently navigated to in screen-reader mode
927                        if(this.navigationMode && this.navigationDate) {
928                            var navDate = this.navigationDate.getTime();
929                            var compareToday = dayInfo.date.getTime();
930                            if(navDate === compareToday) {
931                                dayInfo.navigateDate = true;
932                            }
933                        }
934                        /**SECOND RENDER OF DATES AFTER AN ARRIVE DATE IS SELECTED**/
935                        if(this.arriveDate && this.departDate === null) {
936                            var compRoot = this;
937                            //Make all days selectable by default
938                            dayInfo.unselectable = false;
939
940                            //Any date behind the arrive date is unselectable
941                            if(dayInfo.date <= compRoot.arriveDate) {
942                                dayInfo.unselectable = true;
943                            }
944                            // add class for selectable dates in other months to distinguish
945                            if((dayInfo.date > compRoot.arriveDate) && (w >= 5 && (dayInfo.date.getDate() < 20)) || (this.previousMonthComps.month === this.arriveDate.getMonth() + 1)) {
946                                dayInfo.dateInAnotherMonthCheckout = true;
947                            }
948                        /**FIRST RENDER OF DATES WHEN NO ARRIVE DATE IS SELECTED OR BOTH AN ARRIVE AND DEPART ARE SELECTED**/
949                        } else {
950                            if(this.calEndDate && dayInfo.date >= this.calEndDate) {
951                                dayInfo.unselectable = true;
952                            }
953                        } /**END OF EVALUATIONS OF WHETHER DATES HAVE BEEN SELECTED OR NOT**/
954                        this.configureDay(dayInfo);
955                        week.push(dayInfo);
956
957                        // We've hit the last day of the month
958                        // but let's keep adding the first few days of the next month to keep week 6 on the calendar for all months
959                        if (thisMonth && day >= this.daysInMonth) {
960                            day = 1;
961                            month = this.nextMonthComps.month;
962                            year = this.nextMonthComps.year;
963                            // Still in the middle of the month (hasn't ended yet)
964                        } else {
965                            day++;
966                        }
967                        // add class for selectable dates in other months to distinguish
968                        if((w >= 5 && (dayInfo.date.getDate() < 20)) || previousMonth) {
969                            dayInfo.dateInAnotherMonth = true;
970                        }
971                    }
972                    // Append week info for the month
973                    weeks.push(week);
974                }
975                return weeks;
976            },
977            nights: function () {
978                var nights = null;
979                if(this.arriveDate && this.departDate) {
980                    var timeDiff = Math.abs(this.departDate.getTime() - this.arriveDate.getTime());
981                    nights = Math.round(timeDiff / (1000 * 3600 * 24));
982                    return nights;
983                } else if(this.dragRange && this.dragRange.start && this.dragRange.end && this.dragRange.end > this.dragRange.start) {
984                    var timeDiff = Math.abs(this.dragRange.end.getTime() - this.dragRange.start.getTime());
985                    nights = Math.round(timeDiff / (1000 * 3600 * 24));
986                }
987                return nights;
988            },
989            navigationAriaMessage: function () {
990                var ariaMessage = "";
991                var bookedMessage = '';
992                var minDayMessage = '';
993                var selectInstructions = '';
994                if(this.navigationMode && this.navigationDate && this.calendarVisible) { //Message for when keyboard navigation mode is active
995                    ariaMessage = 'You have navigated to ' + this.navigationDate.toDateString() + '. ';
996                    for(var i = 0; i < this.weeks.length; i++) {
997                        var weekArray = this.weeks[i];
998                        var navDateFound = false;
999                        //Loop over every day in the visible month to grab the navigationDateObject
1000                        for (var ii = 0; ii < this.weeks[i].length; ii++) {
1001                            if (this.weeks[i][ii].date && this.weeks[i][ii].date.getTime() === this.navigationDate.getTime()) {
1002                                this.navigationDateObject = this.weeks[i][ii];
1003                                break;
1004                            }
1005                        }
1006                    }
1007                    if(this.navigationDateObject) {
1008                        if(this.navigationDateObject.unselectable || this.navigationDateObject.unforeseeable) {
1009                            ariaMessage += 'This date is not available ';
1010                        } else {
1011                            ariaMessage += 'This date is available ';
1012                            selectInstructions = ' Click enter if you want to select this date.';
1013                        }
1014                        //Add the appropriate check-in/check-out substring to the message
1015                        if(this.arriveDate && this.departDate === null) {
1016                            ariaMessage += 'for a departure date.';
1017                        } else {
1018                            ariaMessage += 'for an arrival date.';
1019                            ariaMessage += minDayMessage;
1020                        }
1021                        ariaMessage += selectInstructions;
1022                    }
1023                } else if(this.calendarVisible) { //Default input labels when not in navigation mode
1024                    var inputLabel = 'Select an arrival date and a departure date.';
1025                    var navInstructions = ' If you wish to navigate through the calendar using your keyboard, click the enter key to initiate keyboard calendar navigation. Once keyboard calendar navigation is active, you can use the arrow keys, page up, and page down to navigate through the calendar. Press the delete key to clear your dates. Press the escape key to exit keyboard calendar navigation and return to the main page content.'
1026                    // add navigation verbiage when flex exists
1027                    if(this.flexButtons && this.flexButtons.length > 0) {
1028                        navInstructions += ' If you are flexible with your search dates and wish to 
1028see results for a certain number of adjacent dates, tab to the next set of inputs, then back tab to this arrival date input and follow the screen reader instructions to enter calendar keyboard navigation.';
1029                    }
1030                    if(this.arriveDate) {
1031                        inputLabel += ' The currently selected arrive date is ' + this.arriveDate.toDateString() + '.';
1032                    }
1033                    if(this.departDate) {
1034                        inputLabel += ' The currently selected departure date is ' + this.departDate.toDateString() + '.';
1035                    }
1036                    ariaMessage = inputLabel + navInstructions;
1037                }
1038                return ariaMessage;
1039            }
1040        },
1041        methods: {
1042            configureDay: function configureDay(day) {
1043                var dateTime = day.date.getTime();
1044                var valueRange = this.normalizedValue;
1045                var dragRange = this.normalizedDragRange;
1046                day.isSelected = valueRange && dateTime >= valueRange.startTime && dateTime <= valueRange.endTime;
1047                day.startsSelection = valueRange && dateTime === valueRange.startTime;
1048                day.endsSelection = valueRange && dateTime === valueRange.endTime;
1049                day.dragActive = dragRange; // Just to var day know drag is happening somewhere
1050                day.isDragged = dragRange && dateTime >= dragRange.startTime && dateTime <= dragRange.endTime;
1051                day.startsDrag = dragRange && dateTime === dragRange.startTime;
1052                day.endsDrag = dragRange && dateTime === dragRange.endTime;
1053            },
1054            selectDay: function selectDay(day) {
1055                // Start new drag selection if not dragging
1056                if(day.unselectable || day.unforeseeable) {
1057                    return;
1058                }
1059                if (!this.dragRange) {
1060                    this.dragRange = {
1061                        start: day.date,
1062                        end: day.date
1063                    };
1064                    this.arriveDate = this.dragRange.start;
1065                    if(day.minDays) {
1066                        this.arriveMinDays = day.minDays;
1067                    } else if(day.rateData) {
1068                        this.arriveMinDays = day.rateData.minDays;
1069                    }
1070                    this.departDate = null;
1071                    // Complete drag selection
1072                } else {
1073                    var _normalizedDragRange = this.normalizedDragRange,
1074                        start = _normalizedDragRange.start,
1075                        end = _normalizedDragRange.end;
1076                    // Clear drag selection
1077                    this.departDate = this.dragRange.end;
1078                    this.dragRange = null;
1079                    // Signal new value selected on drag complete
1080                    this.$emit('update:modelValue', { start: start, end: end });
1081                }
1082            },
1083            navSelectDay: function navSelectDay(navDate) {
1084                // Start new drag selection if not dragging
1085                if (!this.dragRange) {
1086                    this.dragRange = {
1087                        start: navDate.date,
1088                        end: navDate.date
1089                    };
1090                    this.arriveDate = this.dragRange.start;
1091                    this.departDate = null;
1092                    // Complete drag selection
1093                } else {
1094                    var _normalizedDragRange = this.normalizedDragRange,
1095                        start = _normalizedDragRange.start,
1096                        end = navDate.date;
1097                    // Clear drag selection
1098                    this.departDate = this.dragRange.end;
1099                    this.dragRange = null;
1100                    // Signal new value selected on drag complete
1101                    this.$emit('update:modelValue', { start: start, end: end });
1102                }
1103            },
1104            enterDay: function enterDay(day) {
1105                if (!this.dragRange) {
1106                    return; //Restrict end of selection to greater than first selection of range
1107                }
1108                // Update drag selection
1109                this.dragRange = {
1110                    start: this.dragRange.start,
1111                    end: day.date
1112                };
1113                if((day.unselectable || day.unforeseeable) && this.dragRange.start && this.dragRange.end) {
1114                    this.dragRange.end = this.dragRange.start;
1115                }
1116            },
1117            leaveCalendar: function leaveCalendar() {
1118                if(this.dragRange && this.dragRange.start && this.dragRange.end) {
1119                    this.dragRange.end = this.dragRange.start;
1120                }
1121            },
1122
1123            // Ranges can privately have end date earlier than start date
1124            // This function will correct the order before exposing it to to other components
1125            normalizeRange: function normalizeRange(range) {
1126                if (!range) return null;
1127                var start = range.start,
1128                    end = range.end;
1129
1130                var startTime = start.getTime();
1131                var endTime = end.getTime();
1132                var isNormal = start < end;
1133                return {
1134                    start: isNormal ? start : end,
1135                    startTime: isNormal ? startTime : endTime,
1136                    end: isNormal ? end : start,
1137                    endTime: isNormal ? endTime : startTime
1138                };
1139            },
1140            moveThisMonth: function moveThisMonth() {
1141                this.month = _todayComps.month;
1142                this.year = _todayComps.year;
1143            },
1144            moveNextMonth: function moveNextMonth() {
1145                this.daysSliding = 'slideleft';
1146                var _nextMonthComps = this.nextMonthComps,
1147                    month = _nextMonthComps.month,
1148                    year = _nextMonthComps.year;
1149
1150                this.month = month;
1151                this.year = year;
1152                //Create a short DOM update delay for allowing day slide to transition
1153                this.$nextTick(
1154                    function() {
1155                        this.daysSliding = null;
1156                    }
1157                );
1158            },
1159            movePreviousMonth: function movePreviousMonth() {
1160                this.daysSliding = 'slideright';
1161                var _previousMonthComps = this.previousMonthComps,
1162                    month = _previousMonthComps.month,
1163                    year = _previousMonthComps.year;
1164
1165                this.month = month;
1166                this.year = year;
1167                //Create a short DOM update delay for allowing day slide to transition
1168                this.$nextTick(
1169                    function() {
1170                        this.daysSliding = null;
1171                    }
1172                );
1173            },
1174            moveNextYear: function moveNextYear() {
1175                this.year++;
1176            },
1177            movePreviousYear: function movePreviousYear() {
1178                this.year--;
1179            },
1180            touchStart: function(e) {
1181                var t = e.changedTouches[0];
1182                this.touchState = {
1183                    active: true,
1184                    startX: t.screenX,
1185                    startY: t.screenY,
1186                    startTime: new Date().getTime(),
1187                    isSwiping: false,
1188                    isMonitoringSwipe: true,
1189                };
1190            },
1191            touchMove: function(e) {
1192                if (!this.touchState.isMonitoringSwipe) {
1193                    if (this.touchState.isSwiping) e.preventDefault();
1194                    return;
1195                }
1196                var deltaTime = new Date().getTime() - this.touchState.startTime;
1197                if (deltaTime <= 5) {
1198                    e.preventDefault();
1199                    return;
1200                }
1201                var t = e.changedTouches[0];
1202                var deltaX = t.screenX - this.touchState.startX;
1203                var deltaY = t.screenY - this.touchState.startY;
1204                if (Math.abs(deltaX) >= Math.abs(deltaY)) {
1205                    this.touchState.isSwiping = true;
1206                    //e.preventDefault();
1207                }
1208                this.touchState.isMonitoringSwipe = false;
1209            },
1210            touchEnd: function(e) {
1211                var t = e.changedTouches[0];
1212                var deltaX = t.screenX - this.touchState.startX;
1213                var deltaY = t.screenY - this.touchState.startY;
1214                var deltaTime = new Date().getTime() - this.touchState.startTime;
1215                if (deltaTime < 300) {
1216                    if (
1217                        Math.abs(deltaX) >= 60 &&
1218                        Math.abs(deltaY) <= 80
1219                    ) {
1220                        // Swipe left
1221                        // Move to next month
1222                        if (deltaX < 0) {
1223                            if (this.year === this.calEndYear) {
1224                                if (this.month < this.calEndMonth) {
1225                                    this.moveNextMonth();
1226                                }
1227                            } else if (this.year < this.calEndYear) {
1228                                this.moveNextMonth();
1229                            }
1230                            // Swipe right
1231                            // Move to previous month
1232                        } else {
1233                            if(this.year === this.currentYear) {
1234                                if(this.monthIndex > this.currentMonth) {
1235                                    this.movePreviousMonth();
1236                                }
1237                            } else if(this.year > this.currentYear) {
1238                                this.movePreviousMonth();
1239                            }
1240                        }
1241                    }
1242                }
1243            },
1244            selectFlexButton: function(flexSelection) {
1245                // if flexSelection is the same as what flexDegree already is, the user is unchecking this button and we set flexDegree to zero
1246                if(this.flexDegree === flexSelection) {
1247                    this.flexDegree = 0;
1248                } else {
1249                    this.flexDegree = flexSelection;
1250                }
1251            },
1252            updateFlexSession: function() {
1253                var siteURL = document.location.origin;
1254                axios.post(siteURL + '/vacation-rentals/router/', {
1255                    call: 'updateFlexSession',
1256                    flexDegree: this.flexDegree
1257                })
1258                    .then(function (response) {
1259                        return;
1260                    })
1261                    .catch(function (error) {
1262                        console.log(error);
1263                    });
1264            },
1265        },
1266        mounted: function() {
1267            //What to do when we land with dates in the session
1268            if(this.modelValue && this.modelValue.start && this.modelValue.end) {
1269                var sessionStart = this.modelValue.start;
1270                var sessionEnd = this.modelValue.end;
1271            }
1272        },
1273        watch: {
1274            normalizedDragRange: function normalizedDragRange(val) {
1275                // Any time drag changes, normalize it and emit 'drag' event
1276                this.$emit('drag', val ? { start: val.start, end: val.end } : null);
1277            },
1278            keyStroke: function () {
1279                var keystroke = this.keyStroke;
1280                var fromNavDate = new Date(this.navigationDate);
1281                var toNavDate = fromNavDate;
1282                //Set the calendar month and year in case we need to change the view
1283                this.month = fromNavDate.getMonth() + 1;
1284                this.year = fromNavDate.getFullYear();
1285                if(this.navigationMode) {
1286                    //If the keystroke is enter to select a day, make sure it's actually selectable
1287                    if(keystroke === 'Enter' && this.navigationDateObject && this.navigationDateObject.unselectable === false && this.navigationDateObject.unforeseeable === false) {
1288                        this.navSelectDay(this.navigationDateObject);
1289                        //Set the focus on the depart input
1290                        document.getElementById('departinput').focus({preventScroll:true});
1291                    } else if(keystroke === 'ArrowRight') {
1292                        toNavDate.setFullYear(fromNavDate.getFullYear());
1293                        toNavDate.setMonth(fromNavDate.getMonth());
1294                        toNavDate.setDate(fromNavDate.getDate() + 1);
1295                        toNavDate.setHours(0,0,0,0);
1296                    } else if(keystroke === 'ArrowLeft') {
1297                        toNavDate.setFullYear(fromNavDate.getFullYear());
1298                        toNavDate.setMonth(fromNavDate.getMonth());
1299                        toNavDate.setDate(fromNavDate.getDate() - 1);
1300                        toNavDate.setHours(0,0,0,0);
1301                    } else if(keystroke === 'ArrowDown') {
1302                        toNavDate.setFullYear(fromNavDate.getFullYear());
1303                        toNavDate.setMonth(fromNavDate.getMonth());
1304                        toNavDate.setDate(fromNavDate.getDate() + 7);
1305                        toNavDate.setHours(0,0,0,0);
1306                    } else if(keystroke === 'ArrowUp') {
1307                        toNavDate.setFullYear(fromNavDate.getFullYear());
1308                        toNavDate.setMonth(fromNavDate.getMonth());
1309                        toNavDate.setDate(fromNavDate.getDate() - 7);
1310                        toNavDate.setHours(0,0,0,0);
1311                    } else if(keystroke === 'PageDown') {
1312                        toNavDate.setDate(1);
1313                        toNavDate.setFullYear(fromNavDate.getFullYear());
1314                        toNavDate.setMonth(fromNavDate.getMonth() + 1);
1315                        toNavDate.setHours(0,0,0,0);
1316                    } else if(keystroke === 'PageUp') {
1317                        toNavDate.setDate(1);
1318                        toNavDate.setFullYear(fromNavDate.getFullYear());
1319                        toNavDate.setMonth(fromNavDate.getMonth() - 1);
1320                        toNavDate.setHours(0,0,0,0);
1321                    }
1322                    //Set the calendar month and year in case we need to change the view
1323                    this.month = toNavDate.getMonth() + 1;
1324                    this.year = toNavDate.getFullYear();
1325                    this.navigationDate = toNavDate;
1326                } else { // events that are available before entering calendar keyboard navigation mode
1327                    if(keystroke === 'Tab') {
1328                        if(this.flexButtons && this.flexButtons.length > 0 && document.getElementsByClassName('flex-degree-buttons')[0] !== undefined) {
1329                            document.getElementsByClassName('flex-degree-buttons')[0].focus({preventScroll:true});
1330                        } else if(document.getElementById('clear-dates-calendar-button') !== undefined) {
1331                            document.getElementById('clear-dates-calendar-button').focus({preventScroll:true});
1332                        } else {
1333                            document.getElementById('departinput').focus({preventScroll:true});
1334                        }
1335                    }
1336                }
1337                //Let the parent instance know the keystroke is finished being evaluated
1338                this.$emit('emit-keystrokecomplete');
1339            },
1340            flexDegree: {
1341                immediate: true,
1342                handler: function () {
1343                    //Let the parent instance know the keystroke is finished being evaluated
1344                    var flexDegree = this.flexDegree;
1345                    this.$emit('emit-newflexdegree', flexDegree);
1346                    this.updateFlexSession();
1347                }
1348            }
1349        },
1350    };
1351        const rtDateInputs = {
1352        template: '#rt-general-datepick-app',
1353        props: [],
1354        emits: ['update-dates', 'emit-newflexdegree'],
1355        data: function() {
1356            return {
1357                dateSelection: null,
1358                dragSelection: null,
1359                calendarVisible: false,
1360                spaceAboveInputs: false, // is there room above inputs to fit the calendar; false by default
1361                mobileInterfaceVisible: false,
1362                mobileDatesModal: false,
1363                navigateActive: false,
1364                navigationKeyStroke: null,
1365                windowWidth: 0,
1366                windowHeight: 0
1367            }
1368        },
1369        computed: {
1370            isMobile: function() {
1371                if(this.windowWidth) {
1372                    if(this.windowWidth <= 640) {
1373                        return true;
1374                    } else {
1375                        return false;
1376                    }
1377                } else {
1378                    return null;
1379                }
1380            },
1381            arriveDate: function () {
1382                if(this.dragSelection == null && this.dateSelection == null) {
1383                    return null;
1384                } else if (this.dragSelection) {
1385                    this.priceQuote = null;
1386                    this.isAvailable = null;
1387                    return this.dragSelection.start;
1388                } else if (this.dragSelection == null && this.dateSelection) {
1389                    return this.dateSelection.start;
1390                } else {
1391                    return null;
1392                }
1393            },
1394            departDate: function () {
1395                if(this.dragSelection == null && this.dateSelection == null) {
1396                    return null;
1397                } else if (this.dragSelection == null && this.dateSelection) {
1398                    return this.dateSelection.end;
1399                } else {
1400                    return null;
1401                }
1402            },
1403            dateSelectionLabel: function dateSelectionLabel() {
1404                return JSON.stringify(this.dateSelection, null, '\t');
1405            },
1406        },
1407        methods: {
1408            clearDates: function () {
1409                //Clear root element values
1410                this.dragSelection = null;
1411                this.dateSelection = null;
1412                //Clear child component values
1413                if(this.$refs.rtGenDatepicker) {
1414                    this.$refs.rtGenDatepicker.dragRange = null;
1415                    this.$refs.rtGenDatepicker.arriveDate = null;
1416                    this.$refs.rtGenDatepicker.arriveMinDays = null;
1417                    this.$refs.rtGenDatepicker.departDate = null;
1418                }
1419                this.openCalendar();
1420                //emit the dates to the parent component
1421                this.$emit('update-dates', {'arrive': this.arriveDate, 'depart': this.departDate});
1422            },
1423            dateString: function dateString(MyDate) {
1424                if(MyDate) {
1425                    return ('0' + (MyDate.getMonth()+1)).slice(-2) + '/'
1426                        + ('0' + MyDate.getDate()).slice(-2) + '/'
1427                        + MyDate.getFullYear();
1428                }
1429            },
1430            getWindowWidth: function(event) {
1431                this.windowWidth = document.documentElement.clientWidth;
1432            },
1433            getWindowHeight: function(event) {
1434                this.windowHeight = document.documentElement.clientHeight;
1435            },
1436            activateModal: function () {
1437                this.mobileInterfaceVisible = true;
1438                this.clearDates();
1439            },
1440            openCalendar: function () {
1441                this.calendarVisible = true;
1442                if (this.isMobile) {
1443                    this.mobileDatesModal = true;
1444                }
1445                if(document.getElementById('rt-general-datepick').getBoundingClientRect().top > 500) {
1446                    this.spaceAboveInputs = true;
1447                }
1448            },
1449            closeCalendar: function () {
1450                this.spaceAboveInputs = false;
1451                this.mobileDatesModal = false; // Close the modal
1452                this.calendarVisible = false;
1453            },
1454            outsideClick: function(e) {
1455                // If the mobile modal is active, let rt-modal handle its own closing
1456                if (this.mobileDatesModal) {
1457                    return;
1458                }
1459                // Close the calendar when clicking outside
1460                this.closeCalendar();
1461            },
1462            newFlexDegree: function (flexDegree) {
1463                this.$emit('emit-newflexdegree', flexDegree);
1464            },
1465        },
1466        directives: {
1467            'click-outside': {
1468                mounted(el, binding, vnode) {
1469                    el.clickOutsideEvent = function(event) {
1470                        if (!(el === event.target || el.contains(event.target))) {
1471                            binding.value(event, el);
1472                        }
1473                    };
1474                    document.body.addEventListener('click', el.clickOutsideEvent);
1475                },
1476                unmounted(el) {
1477                    document.body.removeEventListener('click', el.clickOutsideEvent);
1478                }
1479            },
1480        },
1481        watch: {
1482            selectMode: function selectMode() {
1483                this.dateSelection = null;
1484            },
1485            //Whenever a depart date is defined, run the price call
1486            departDate: function() {
1487                if(this.arriveDate && this.departDate) {
1488                    //emit the dates to the parent component
1489                    this.$emit('update-dates', {'arrive': this.arriveDate, 'depart': this.departDate});
1490                    // Automatically close the calendar
1491                    this.closeCalendar();
1492                }
1493            }
1494        },
1495        mounted: function() {
1496            if(this.arriveDate && this.departDate) {
1497                this.$refs.rtGenDatepicker.month = this.arriveDate.getMonth() +1;
1498                this.$refs.rtGenDatepicker.year = this.arriveDate.getFullYear();
1499                this.$emit('update-dates', {'arrive': this.arriveDate, 'depart': this.departDate});
1500            }
1501            // Add a window-resize event listener
1502            this.$nextTick(function() {
1503                window.addEventListener('resize', this.getWindowWidth);
1504                window.addEventListener('resize', this.getWindowHeight);
1505
1506                //Init
1507                this.getWindowWidth();
1508                this.getWindowHeight();
1509            });
1510        },
1511        beforeDestroy: function() {
1512            window.removeEventListener('resize', this.getWindowWidth);
1513            window.removeEventListener('resize', this.getWindowHeight);
1514        },
1515    };
1516</script>
1516<template id="rt-modal">
1517    <Teleport to="body">
1518        <div class="rt-modal popover-mask">
1519            <div class="popover-wrapper">
1520                <div class="popover" :style="{maxWidth: maxWidth}">
1521                    <button class="popover-close" @click.prevent="$emit('close-modal')" @keydown.enter.prevent="$emit('close-modal')" aria-label="Close the popup window"><i role="presentation" class="rt-google-icon close-window filled-symbol"></i></button>
1522                    <span class="sr-only" role="alert" aria-label="You have opened a modal window. You can press the escape key at any time to close this modal window."></span>
1523                    <slot/>
1524                </div>
1525            </div>
1526        </div>
1527    </Teleport>
1528</template>
1529<script>
1530    const rtModal = {
1531        template: '#rt-modal',
1532        props: {
1533            maxWidth: {
1534                type: String,
1535                default: '700px'
1536            },
1537        },
1538        emits: ['close-modal'],
1539        methods: {
1540            resizeModal: function () {
1541                if(document.getElementsByClassName('popover-mask')[0] !== undefined) {
1542                    document.getElementsByClassName('popover-mask')[0].style.height = "100vh";
1543                    document.getElementsByClassName('popover-mask')[0].style.width = "100%";
1544                }
1545            },
1546            escapeClose: function (event) {
1547                if(event.key === 'Escape') {
1548                    this.$emit('close-modal');
1549                }
1550            }
1551        },
1552        mounted: function () {
1553            // add window resize event to deal with screen rotation, and the shrinking address bar on iOS
1554            window.addEventListener('resize', this.resizeModal);
1555            // add escape key listener
1556            document.addEventListener('keyup', this.escapeClose)
1557        },
1558        unmounted: function () {
1559            // remove escape key listener
1560            document.removeEventListener('keyup', this.escapeClose);
1561        },
1562        beforeDestroy: function () {
1563            window.removeEventListener('resize', this.resizeModal);
1564        },
1565    };
1566</script>
1566<script>
1567    const rtQuickSearch = Vue.createApp({
1568        data() {
1569            return {
1570                searchCriteria: {
1571                    arriveDate: null,
1572                    departDate: null,
1573                    selectBoxes: [],
1574                },
1575                windowWidth: 0
1576            }
1577        },
1578        computed: {
1579            urlQuerystring: function () {
1580                var queryString = '?searchform=1';
1581                // Build up the dates part of the URL string
1582                if(this.searchCriteria.arriveDate && this.searchCriteria.departDate) {
1583                    var datesString = '';
1584                    var arriveString = '';
1585                    var departString = '';
1586                    var arriveMonth = this.searchCriteria.arriveDate.getMonth() +1;
1587                    var arriveDay = this.searchCriteria.arriveDate.getDate();
1588                    var arriveYear = this.searchCriteria.arriveDate.getFullYear();
1589                    arriveString = arriveMonth + '/' + arriveDay + '/' + arriveYear;
1590                    var departMonth = this.searchCriteria.departDate.getMonth() +1;
1591                    var departDay = this.searchCriteria.departDate.getDate();
1592                    var departYear = this.searchCriteria.departDate.getFullYear();
1593                    departString = departMonth + '/' + departDay + '/' + departYear;
1594                    datesString = '&arrive_date=' + arriveString + '&depart_date=' + departString;
1595                    queryString += datesString;
1596                }
1597                // Loop over every other defined option
1598                for(var i = 0; i < this.searchCriteria.selectBoxes.length; i++) {
1599                    var optionString = '';
1600                    if(this.searchCriteria.selectBoxes[i].selected) {
1601                        optionString = '&' + this.searchCriteria.selectBoxes[i].label + '=' + this.searchCriteria.selectBoxes[i].selected;
1602                        queryString += optionString;
1603                    }
1604                }
1605                return encodeURI(queryString).replace(/[\/]/g, '%2F');
1606            }
1607        },
1608        methods: {
1609            newDates: function (dates) {
1610                this.searchCriteria.arriveDate = dates.arrive;
1611                this.searchCriteria.departDate = dates.depart;
1612            },
1613            performSearch: function () {
1614                window.location.href = 'https://www.islandvacationproperties.com/vacation-rentals' + '/results/' + this.urlQuerystring;
1615            },
1616            getWindowWidth: function(event) {
1617                this.windowWidth = window.innerWidth;
1618            },
1619        },
1620        mounted: function() {
1621            // Add a window-resize event listener
1622            window.addEventListener('resize', this.getWindowWidth);
1623            this.getWindowWidth();
1624        },
1625        beforeDestroy: function() {
1626            window.removeEventListener('resize', this.getWindowWidth);
1627        },
1628    });
1629    // register the components and mount the app
1630    rtQuickSearch.component('general-date-range-picker', generalCalendar);
1631    rtQuickSearch.component('datepick-inputs', rtDateInputs);
1632    rtQuickSearch.component('rt-modal', rtModal);
1633    rtQuickSearch.mount('#qsformroot');
1634</script>
1634
1635            </div>
1636
1637<script>
1638    jQuery(".menu-item-has-children a").focus(function(){
1639        jQuery(this).next(".sub-menu").addClass("focusSubmenu");
1640        jQuery(this).closest('ul').find('li.menu-item-has-children > a').attr('aria-expanded', function (i, attr) {
1641            return attr == 'true' ? 'false' : 'true'
1642        });
1643    });
1644    jQuery("ul li:last-of-type").focusout(function(){
1645        jQuery(this).closest(".sub-menu").removeClass("focusSubmenu");
1646        jQuery(this).closest('.nav').find('li.menu-item-has-children > a').attr('aria-expanded', function (i, attr) {
1647            return attr == 'false' ? 'true' : 'false'
1648        });
1649    });
1650</script>
1650	<div class="content">
1651		<div class="content-full contained">
1652		            <main role="main" aria-label="main content" id="post-112">
1653                                    <div role="complementary" class="content-full">
1654                                                    <h1 class="page-title">About Island Vacation Properties</h1>
1655                                                                        </div>
1656                                <article class="entry">
1657                    
1658<h1 class="wp-block-heading">An Open Letter to the Owner Who Hasn’t Found Us Yet</h1>
1659
1660
1661
1662<p class="wp-block-paragraph"><em>Island Vacation Properties — Anna Maria Island</em></p>
1663
1664
1665
1666<p class="wp-block-paragraph">Maybe you bought your Anna Maria Island property at the height of the market and it hasn’t performed the way you hoped. Maybe you signed with a large management company because it felt like the safe choice — and now you can’t get anyone on the phone who has actually been to the island, let alone walked through your home. Maybe you’ve been through the storms, literally and figuratively, and you’re wondering if any of this is worth it.</p>
1667
1668
1669
1670<p class="wp-block-paragraph">I hear you. And I want you to know something: what you’re feeling is real, and it matters.</p>
1671
1672
1673
1674<p class="wp-block-paragraph">My name is Sara Annis, and I am the owner of Island Vacation Properties. I grew up just over the bridge from Anna Maria Island — spent my childhood and teenage years out here with friends, on the water, learning every corner of this place long before it was ever my career. This island has been part of my life for as long as I can remember.</p>
1675
1676
1677
1678<p class="wp-block-paragraph">I didn’t walk into this industry from a business school or a corporate office. I started cleaning vacation rentals on Anna Maria Island in my late teens and early twenties. I know what it takes to turn a home over properly. I know what guests notice when they walk through a door. I know what pride in a property actually looks like — because I’ve been on my hands and knees making sure it was right.</p>
1679
1680
1681
1682<p class="wp-block-paragraph">I was here when Island Vacation Properties opened its doors in July of 2000. Our founder, Ann Caron, built this company on a conviction that has never left us: that ethical behavior, genuine service, and trust could fill a void that desperately existed in property management on Anna Maria Island. She was right. I grew with this company, eventually becoming rental manager, and my husband Bill joined the team in 2013. When Ann retired in 2016, Bill and I bought IVP — not because it was a business opportunity, but because we believed in what she had built and were committed to carrying it forward.</p>
1683
1684
1685
1686<p class="wp-block-paragraph">I made a commitment when we took over that I’ve kept every day since: I will never ask anyone on my team to do something I haven’t done myself. That’s not a policy. That’s just who I am.</p>
1687
1688
1689
1690<p class="wp-block-paragraph">Today we manage 185 properties on Anna Maria Island. The market out here has grown and changed enormously — there are more companies, more platforms, more options than ever before. We have no interest in competing on size. What we are focused on, every single day, is the quality of the relationships we keep — with our owners, with our guests, and with this community.</p>
1691
1692
1693
1694<p class="wp-block-paragraph">And those relationships run deep. We still have owners today who followed Ann from her previous company over twenty years ago and have never left. That kind of loyalty doesn’t happen by accident. It happens because this has always been a relationship, not a transaction.</p>
1695
1696
1697
1698<p class="wp-block-paragraph">When Covid came, we didn’t let anyone go. When the hurricanes came, Bill and I rebuilt our office, cared for our properties, and did everything in our power to keep our entire team employed and our owners supported — through all of it. It was the hardest season of my professional life. But we showed up, because that’s what you do for the people who trust you.</p>
1699
1700
1701
1702<p class="wp-block-paragraph">Here at IVP, we believe in something simple: <em>we were expecting you.</em> Whether you are a guest arriving for a long-awaited family reunion, a couple celebrating something precious, or someone who just needs a few days to breathe — we think about your arrival before you get here. We want you to feel it the moment you walk through the door.</p>
1703
1704
1705
1706<p class="wp-block-paragraph">And for our owners, that same philosophy applies. We are not the right fit for everyone, and we say that with respect, not arrogance. We are built for owners who see this as a partnership — who trust us to care for their property the way they would, who value their guests’ experience as much as their revenue, and who want a management team that is here, on this island, invested in this community, and accountable to them by name.</p>
1707
1708
1709
1710<p class="wp-block-paragraph"><strong>If you’ve been treated like a number, we want to be your antidote.</strong></p>
1711
1712
1713
1714<p class="wp-block-paragraph">If you’re ready for a management relationship built on trust, transparency, and genuine care — for your property, your guests, and this island we all love — we’d be honored to talk.</p>
1715
1716
1717
1718<p class="wp-block-paragraph"><em>Sara &amp; Bill Annis</em></p>
1719
1720
1721
1722<p class="wp-block-paragraph"><em>Island Vacation Properties</em></p>
1723
1724
1725
1726<p class="wp-block-paragraph"><em>Anna Maria Island</em></p>
1727
1728
1729
1730<p class="wp-block-paragraph"><strong><em>We’ve been here from the beginning. We’re not going anywhere.</em></strong></p>
1731
1732
1733    <div class="flex-container logo-bar" class="align wp-block-acf-logobar" style="background:#ffffff;">
1734        <div class="logo-bar-logos contained">
1735            <img decoding="async" width="226" height="91" src="https://www.islandvacationproperties.com/wp-content/uploads/2026/09/logo-VRMA.jpg" class="attachment-small size-small" alt="logo-VRMA" /><img loading="lazy" decoding="async" width="250" height="107" src="https://www.islandvacationproperties.com/wp-content/uploads/2026/09/logo-ManateeChamber.jpg" class="attachment-small size-small" alt="logo-ManateeChamber" /><img loading="lazy" decoding="async" width="500" height="500" src="https://www.islandvacationproperties.com/wp-content/uploads/2026/09/chamber.jpg" class="attachment-small size-small" alt="chamber" srcset="https://www.islandvacationproperties.com/wp-content/uploads/2026/09/chamber.jpg 500w, https://www.islandvacationproperties.com/wp-content/uploads/2026/09/chamber-300x300.jpg 300w" sizes="auto, (max-width: 500px) 100v
1735w, 500px" />        </div>
1736    </div>
1737                    </article>
1738                <div class="clear"></div>
1739            </main>
1740				</div>
1741	</div>
1742            <section aria-label="content above footer" role="complementary" class="ft-top white-text"><div class="above-footer-grid contained"><div class="above-footer-column"><div class="above-footer-block footer-block--logo"><img width="296" height="146" src="https://www.islandvacationproperties.com/wp-content/uploads/2026/09/whitelogo.png" class="rtfooterlogo" alt="Island Vacation Properties Logo" style="max-width:210px;" decoding="async" loading="lazy" /></div><div class="above-footer-block footer-block--contact"><div><strong>Island Vacation Properties</strong><br>3001 Gulf Drive<br />Holmes Beach, FL 34217<br><br><a href="tel:(941) 7781000">(941) 778-1000</a></div></div><div class="above-footer-block footer-block--social"><div class="above-footer-social-grid"><a href="https://www.facebook.com/islandvacationproperties/" target="_blank" rel="noopener" aria-label="opens in new window" title="Follow us on Facebook"><i role="presentation" class="rt-icon icon-facebook"></i></a></div></div></div><div class="above-footer-column"><div class="above-footer-block footer-block--menu"><div class="ft-column-title" role="heading" aria-level="4">Rental Links</div><div class="menu-footer-l-container"><ul id="menu-footer-l" class="menu"><li id="menu-item-139" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-139"><a href="https://www.islandvacationproperties.com/pool-properties/">Rentals With Pool</a></li><li id="menu-item-140" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-140"><a href="https://www.islandvacationproperties.com/long-weekend-rentals/">Weekend Vacation Rentals</a></li><li id="menu-item-158" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-158"><a href="https://www.islandvacationproperties.com/frequently-asked-questions/">FAQ</a></li><li id="menu-item-165" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-165"><a href="https://www.generalitravelinsurance.com/customer/coronavirus">Travel Insurance</a></li><li id="menu-item-5863" class="menu-item menu-item-type-post_type menu-item-object-rtc menu-item-5863"><a href="https://www.islandvacationproperties.com/vacation-rentals/terms-conditions/">Terms &#038; Conditions</a></li><li id="menu-item-5204" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-5204"><a rel="privacy-policy" href="https://www.islandvacationproperties.com/privacy-policy/">Privacy Policy</a></li></ul></div></div></div><div class="above-footer-column"><div class="above-footer-block footer-block--menu"><div class="ft-column-title" role="heading" aria-level="4">Other Links</div><div class="menu-footer-r-container"><ul id="menu-footer-r" class="menu"><li id="menu-item-142" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-142"><a href="https://islandvacationproperties.idxbroker.com/idx/search/advanced">MLS Search</a></li><li id="menu-item-143" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-143"><a href="https://islandvacationproperties.idxbroker.com/idx/featured">Our Listings</a></li><li id="menu-item-144" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-144"><a href="https://www.islandvacationproperties.com/anna-maria-island-real-estate-buyer-resources/">Home Buying Tips</a></li><li id="menu-item-145" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-145"><a href="https://www.islandvacationproperties.com/anna-maria-island-real-estate-seller-resources/">Home Selling Tips</a></li><li id="menu-item-149" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-149"><a href="https://islandvacationproperties.idxbroker.com/idx/mortgage">Mortgage Calculator</a></li><li id="menu-item-228" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-228"><a href="https://www.islandvacationproperties.com/meet-our-sales-agents/">Meet Our Sales Agents</a></li></ul></div></div></div><div class="above-footer-column"><div class="above-footer-block footer-block--gravity-form"><div class="ft-column-title" role="heading" aria-level="4">Sign Up For Our Newsletter</div><div style="flex: 1 1 auto;"><div class='gf_browser_chrome gform_wrapper gform_legacy_markup_wrapper gform-theme--no-framework' data-form-theme='legacy' data-form-index='0' id='gform_wrapper_3' ><div id='gf_3' class='gform_anchor' tabindex='-1'></div><div class='gform_heading'><p class='gform_description'>Stay in the know. Get exclusive offers straight to your inbox:</p></div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_3' id='gform_3'action='/about-island-vacation-properties/#gf_3' data-formid='3' novalidate><div class='gf_invisible ginput_recaptchav3' data-sitekey='6LeDap0tAAAAAH8QvJNFDOpBZOagZYajMX8m-Iiv' data-tabindex='0'><input id="input_758befbaf0db4f55f79edb12dec25966" class="gfield_recaptcha_response" type="hidden" name="input_758befbaf0db4f55f79edb12dec25966" value=""/></div><div class='gform-body gform_body'><ul id='gform_fields_3' class='gform_fields top_label form_sublabel_below description_below validation_below'><li id="field_3_4" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible"><label class='gfield_label gform-field-label' for='input_3_4'><span class='gform-field-label__text'>Email</span></label><div class='ginput_container'><input name='input_4' id='input_3_4' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_3_4'>This field is for validation purposes and should be left unchanged.</div></li>
1742<li id="field_3_1" class="gfield gfield--type-email gfield--input-type-email newsletter-form-field gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"><label class='gfield_label gform-field-label' for='input_3_1'><span class='gform-field-label__text'>Email</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'><input name='input_1' id='input_3_1' type='email' value='' class='large' placeholder='Your Email Address' aria-required="true" aria-invalid="false"/></div></li><li id="field_3_3" class="gfield gfield--type-name gfield--input-type-name gfield--width-full gfield_contains_required field_sublabel_hidden_label gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"><label class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>Name</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name no_last_name no_suffix gf_name_has_1 ginput_container_name gform-grid-row' id='input_3_3'><span id='input_3_3_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' ><input type='text' name='input_3.3' id='input_3_3_3' value='' aria-required='true' placeholder='Your Name'/><label for='input_3_3_3' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>First</label></span></div></li></ul></div><div class='gform-footer gform_footer top_label'> <button type='submit' id='gform_submit_button_3' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Yes, Sign Me Up!</button> <input type='hidden' name='gform_ajax' value='form_id=3&amp;title=&amp;description=1&amp;tabindex=0&amp;theme=legacy&amp;hash=d7aac58212932cf536521f9aa25fc1ec' /><input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_3' value='iframe' /><input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_3' id='gform_theme_3' value='legacy' /><input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_3' id='gform_style_settings_3' value='' /><input type='hidden' class='gform_hidden' name='is_submit_3' value='1' /><input type='hidden' class='gform_hidden' name='gform_submit' value='3' /><input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='ObwsY01Xm+UC2qgeo/pfF+i+Pw9cl5c/jCiuAM8Tz9nhHfr33gGYYGvudYicKZb1lxHPPxC989pVUVQdeliCbo5RXPSks9UAet4ewKqgWjqd6D0=' /><input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /><input type='hidden' class='gform_hidden' name='state_3' value='WyJ7XCJnZm9ybV9zdWJtaXNzaW9uX21ldGhvZFwiOltcIjcxOTc2NzZjMzA4OWIyZjdlMTY0ZWRkMTJlZTY1ZmU1XCIsXCI0N2ExNDZlMGNiZDlhZWE4NjlhNGFjOGU2ZDgxMTIxYlwiLFwiMWEzY2I0YjUwYTNlNDVhOWQ2ZjI0NTUwZDllNWEzOTZcIl0sXCJnZm9ybV90aGVtZVwiOlwiYTIwNjE3MzljOTZiZDdjYjNmMTM3OWY3MTk1OTcxZjhcIixcImdmb3JtX3N0eWxlX3NldHRpbmdzXCI6XCI4NTU1NWEwODIwNzY2OTgyNWEzMzlhNTMzYzkwNjAxNFwiLFwiZm9ybV9pZFwiOlwiNDI2YWY2ZWJjYzRmODYxMGM4NGYyNzhjZjFlMWUwODNcIixcInVybFwiOlwiNDM1MTQ2YzgzZTUxOWYzYjlhZTFlZmU0NDA2M2UyNjdcIixcInN0YXRlX3RpbWVzdGFtcFwiOlwiZTJlODAzMzU5NDRkNzkzNjQxNzYwOWNmNTVmMGZhMGFcIn0iLCJlMWY4ZTE2YTdlNGNhNTQ1N2Q5ZjE4YmI1YWUzZjA1ZiIsMTc5MTQ1NjkwOF0=' /><input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_3' id='gform_target_page_number_3' value='0' /><input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_3' id='gform_source_page_number_3' value='1' /><input type='hidden' name='gform_field_values' value='' /></div><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_2" name="ak_js" value="132"/>
1742<script>document.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );</script>
1742</p></form></div><iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_3' id='gform_ajax_frame_3' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe>
1742<script>gform.initializeOnLoaded( function() {jQuery('#gform_ajax_frame_3').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_3');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_3').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_3').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_3').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_3').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_3').offset().top - mt); }, 50 );var current_page = jQuery('#gform_source_page_number_3').val();jQuery(document).trigger('gform_page_loaded', [3, current_page]);window['gf_submitting_3'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_3').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_3').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [3]);window['gf_submitting_3'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_3').text());}else{jQuery('#gform_3').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "3", currentPage: "current_page", abort: function() { this.preventDefault(); } }]);if (event && event.defaultPrevented) {return;}const gformWrapperDiv = document.getElementById( "gform_wrapper_3" );if ( gformWrapperDiv ) {const visibilitySpan = document.createElement( "span" );visibilitySpan.id = "gform_visibility_test_3";gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );}const visibilityTestDiv = document.getElementById( "gform_visibility_test_3" );let postRenderFired = false;function triggerPostRender() {if ( postRenderFired ) {return;}postRenderFired = true;gform.core.triggerPostRenderEvents( 3, current_page );if ( visibilityTestDiv ) {visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );}}function debounce( func, wait, immediate ) {var timeout;return function() {var context = this, args = arguments;var later = function() {timeout = null;if ( !immediate ) func.apply( context, args );};var callNow = immediate && !timeout;clearTimeout( timeout );timeout = setTimeout( later, wait );if ( callNow ) func.apply( context, args );};}const debouncedTriggerPostRender = debounce( function() {triggerPostRender();}, 200 );if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {const observer = new MutationObserver( ( mutations ) => {mutations.forEach( ( mutation ) => {if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {debouncedTriggerPostRender();observer.disconnect();}});});observer.observe( document.body, {attributes: true,childList: false,subtree: true,attributeFilter: [ 'style', 'class' ],});} else {triggerPostRender();}} );} );</script>
1742</div></div></div></div></section>            <footer aria-label="footer" role="contentinfo" class="footer-wrap white-text">
1743                <div class="footer contained">
1744                    <div class="footerleft">&copy; Copyright 2026  Island Vacation Properties  | <i>Anna Maria Island Vacation Rentals</i>                     <br><a href="https://www.islandvacationproperties.com/website-accessibility-policy/">Website Accessibility Policy</a> | <a href="https://www.islandvacationproperties.com/privacy-policy/">Privacy Policy</a>
1745                    </div>
1746                    <div class="footerright"><a href="//www.realtechvr.com" target="_blank" rel="nofollow noopener noreferrer" aria-label="opens in new window" title="Link for RealTech Webmasters"><i class="rt-icon icon-rt-circle-icon" aria-hidden="true"></i>Website Powered by RealTech Direct</a><br>
1747                        This site is protected by reCAPTCHA and the Google
1748                        <a href="https://policies.google.com/privacy">Privacy Policy</a> and
1749                        <a href="https://policies.google.com/terms">Terms of Service</a> apply.
1750                    </div>
1751                    <div style="clear:both;"></div>
1752                                            <div class="footer-yapstone yapstone-terms">Powered by Yapstone Inc. | For disclosures and information about consumer complaints regarding your payments, please see: <a href="https://www.yapstone.com/legal-licenses/" target="_blank" rel="nofollow">https://www.yapstone.com/legal-licenses/</a></div>
1753                                    </div>
1754                
1754<script src="https://cdn.userway.org/widget.js" data-account="WjewwfEzKf"></script>
1754            </footer>
1755        </div><!-- end .site-wrap -->
1756    </div> <!-- end content wrap -->
1757
1758    <div class="navclass nav">
1759        <nav aria-label="Mobile Navigation" id="c-menu--push-left" class="c-menu c-menu--push-left">
1760            <button class="c-menu__close">&larr; Close Menu</button>
1761            <div id="nav-acc" class="menu-main-nav-container"><ul id="menu-main-nav-1" class="c-menu__items white-text"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-110"><a href="https://www.islandvacationproperties.com/vacation-rentals/results/?viewall" aria-haspopup="true" aria-expanded="false">Vacation Rentals</a><ul class="sub-menu">	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5865"><a href="https://www.islandvacationproperties.com/vacation-rentals/results/?viewall">View All Rentals</a></li>	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-162"><a aria-haspopup="true" aria-expanded="false">Rentals By Amenity</a>	<ul class="sub-menu">		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-691"><a href="https://www.islandvacationproperties.com/beachfront-rentals/">Beachfront</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-163"><a href="https://www.islandvacationproperties.com/pool-properties/">Rentals With Pool</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-189"><a href="https://www.islandvacationproperties.com/pet-friendly-rentals/">Pet Friendly</a></li>	</ul></li>	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-183"><a aria-haspopup="true" aria-expanded="false">Rentals By Community</a>	<ul class="sub-menu">		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-186"><a href="https://www.islandvacationproperties.com/anna-maria-rentals/">City of Anna Maria</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-188"><a href="https://www.islandvacationproperties.com/holmes-beach-rentals/">Holmes Beach</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-187"><a href="https://www.islandvacationproperties.com/bradenton-beach-rentals/">Bradenton Beach</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-184"><a href="https://www.islandvacationproperties.com/main-land-rentals/">Mainland</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1179"><a href="https://www.islandvacationproperties.com/one-particular-harbour-rentals/">One Particular Harbour</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-295"><a href="https://www.islandvacationproperties.com/rentals-by-area/">All Rentals By Area</a></li>	</ul></li>	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-1672"><a aria-haspopup="true" aria-expanded="false">Rentals By Type</a>	<ul class="sub-menu">		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1458"><a href="https://www.islandvacationproperties.com/house-rentals/">House Rentals</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1673"><a href="https://www.islandvacationproperties.com/anna-maria-island-condo-rentals/">Condo Rentals</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-164"><a href="https://www.islandvacationproperties.com/long-weekend-rentals/">Long Weekend Rentals</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2147"><a href="https://www.islandvacationproperties.com/anna-maria-island-monthly-rentals/">Monthly Rentals</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4944"><a href="https://www.islandvacationproperties.com/duplex-and-fourplex-rentals/">Multi Unit Properties</a></li>	</ul></li>	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-873"><a aria-haspopup="true" aria-expanded="false">Rentals by Bedroom</a>	<ul class="sub-menu">		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-874"><a href="https://www.islandvacationproperties.com/1-bedroom-rentals/">1 Bedroom</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-951"><a href="https://www.islandvacationproperties.com/2-bedroom-rentals/">2 Bedroom</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1009"><a href="https://www.islandvacationproperties.com/three-bedroom-rentals/">3 Bedroom</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1455"><a href="https://www.islandvacationproperties.com/four-bedroom-rentals/">4 Bedroom</a></li>		<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1454"><a href="https://www.islandvacationproperties.com/five-bedroom-rentals/">5+ Bedroom</a></li>	</ul></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-240"><a href="https://www.islandvacationproperties.com/featured-properties/">Featured AMI Vacation Rentals</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4125"><a href="https://www.islandvacationproperties.com/specials/">Specials</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3654"><a href="https://www.islandvacationproperties.com/travel-insurance-information/">Travel Insurance Information</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-rtc menu-item-5751"><a href="https://www.islandvacationproperties.com/vacation-rentals/rentals-availability-calendar/">Availability Calendar</a></li></ul></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-111">
1761<a href="https://islandvacationproperties.idxbroker.com/idx/featured" aria-haspopup="true" aria-expanded="false">Real Estate Sales</a><ul class="sub-menu">	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-146"><a href="https://islandvacationproperties.idxbroker.com/idx/search/advanced">Search MLS</a></li>	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-147"><a href="https://islandvacationproperties.idxbroker.com/idx/featured">Our Featured Listings</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-128"><a href="https://www.islandvacationproperties.com/anna-maria-island-real-estate-buyer-resources/">Home Buying Tips</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-129"><a href="https://www.islandvacationproperties.com/anna-maria-island-real-estate-seller-resources/">Home Selling Tips</a></li>	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-148"><a href="https://islandvacationproperties.idxbroker.com/idx/mortgage">Mortgage Calculator</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-227"><a href="https://www.islandvacationproperties.com/meet-our-sales-agents/">Meet Our Sales Agents</a></li></ul></li><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-195"><a href="https://www.islandvacationproperties.com/property-management/" aria-haspopup="true" aria-expanded="false">Property Management</a><ul class="sub-menu">	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-106"><a href="https://www.islandvacationproperties.com/property-management/">List With IVP</a></li>	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-260"><a target="_blank" rel="noopener noreferrer" href="https://owner.escapia.com/dist/index.html#/login">Owner Log-In</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-199"><a href="https://www.islandvacationproperties.com/contact-property-management/">Contact Property Management</a></li></ul></li><li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current-menu-ancestor current-menu-parent menu-item-has-children menu-item-119"><a href="https://www.islandvacationproperties.com/about-island-vacation-properties/" aria-current="page" aria-haspopup="true" aria-expanded="false">About Us</a><ul class="sub-menu">	<li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-5207"><a href="https://www.islandvacationproperties.com/about-island-vacation-properties/" aria-current="page">Our Story</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-220"><a href="https://www.islandvacationproperties.com/meet-our-team/">Meet Our Rentals Team</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-159"><a href="https://www.islandvacationproperties.com/frequently-asked-questions/">Frequently Asked Questions</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-229"><a href="https://www.islandvacationproperties.com/driving-directions/">Driving Directions</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-117"><a href="https://www.islandvacationproperties.com/contact/">Contact Us</a></li></ul></li><li class="last-link menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-120"><a href="https://www.islandvacationproperties.com/island-blog/" aria-haspopup="true" aria-expanded="false">Explore AMI</a><ul class="sub-menu">	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-107"><a href="https://www.islandvacationproperties.com/about-anna-maria-island/">Anna Maria Island History</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-108"><a href="https://www.islandvacationproperties.com/anna-maria-island-information/">City of Anna Maria</a></li>	<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-122"><a target="_blank" href="/wp-content/uploads/2019/12/trolley-map.pdf">Free Trolley Map</a></li>	<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4228"><a href="https://www.islandvacationproperties.com/island-blog/">Our Blog</a></li></ul></li></ul></div>        </nav> 
1762    </div> <!-- end div #nav -->
1763    <div style="clear:both;"></div>
1764    <div id="content-mask" class="content-mask"></div><!-- /content-mask -->
1765    
1765<script type="speculationrules">
1766{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/rtapi/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
1767</script>
1767
1768<div 
1769	id="pum-4776" 
1770	role="dialog" 
1771	aria-modal="false"
1772	aria-labelledby="pum_popup_title_4776"
1773	class="pum pum-overlay pum-theme-823 pum-theme-default-theme popmake-overlay pum-overlay-disabled auto_open click_open" 
1774	data-popmake="{&quot;id&quot;:4776,&quot;slug&quot;:&quot;newsletter-sign-up&quot;,&quot;theme_id&quot;:823,&quot;cookies&quot;:[{&quot;event&quot;:&quot;on_popup_close&quot;,&quot;settings&quot;:{&quot;name&quot;:&quot;pum-4776&quot;,&quot;key&quot;:&quot;&quot;,&quot;session&quot;:false,&quot;path&quot;:&quot;1&quot;,&quot;time&quot;:&quot;1 month&quot;}}],&quot;triggers&quot;:[{&quot;type&quot;:&quot;auto_open&quot;,&quot;settings&quot;:{&quot;cookie_name&quot;:[&quot;pum-4776&quot;],&quot;delay&quot;:&quot;10000&quot;}},{&quot;type&quot;:&quot;click_open&quot;,&quot;settings&quot;:{&quot;extra_selectors&quot;:&quot;&quot;,&quot;cookie_name&quot;:null}}],&quot;mobile_disabled&quot;:null,&quot;tablet_disabled&quot;:null,&quot;meta&quot;:{&quot;display&quot;:{&quot;stackable&quot;:&quot;1&quot;,&quot;overlay_disabled&quot;:&quot;1&quot;,&quot;scrollable_content&quot;:false,&quot;disable_reposition&quot;:false,&quot;size&quot;:&quot;small&quot;,&quot;responsive_min_width&quot;:&quot;300px&quot;,&quot;responsive_min_width_unit&quot;:false,&quot;responsive_max_width&quot;:&quot;400px&quot;,&quot;responsive_max_width_unit&quot;:false,&quot;custom_width&quot;:&quot;300px&quot;,&quot;custom_width_unit&quot;:false,&quot;custom_height&quot;:&quot;px&quot;,&quot;custom_height_unit&quot;:false,&quot;custom_height_auto&quot;:&quot;1&quot;,&quot;location&quot;:&quot;right bottom&quot;,&quot;position_from_trigger&quot;:false,&quot;position_top&quot;:&quot;100&quot;,&quot;position_left&quot;:&quot;0&quot;,&quot;position_bottom&quot;:&quot;10&quot;,&quot;position_right&quot;:&quot;10&quot;,&quot;position_fixed&quot;:&quot;1&quot;,&quot;animation_type&quot;:&quot;slide&quot;,&quot;animation_speed&quot;:&quot;350&quot;,&quot;animation_origin&quot;:&quot;bottom&quot;,&quot;overlay_zindex&quot;:false,&quot;zindex&quot;:&quot;1999999999&quot;},&quot;close&quot;:{&quot;text&quot;:&quot;x&quot;,&quot;button_delay&quot;:&quot;0&quot;,&quot;overlay_click&quot;:false,&quot;esc_press&quot;:false,&quot;f4_press&quot;:false},&quot;click_open&quot;:[]}}">
1775
1776	<div id="popmake-4776" class="pum-container popmake theme-823 pum-responsive pum-responsive-small responsive size-small pum-position-fixed">
1777
1778				
1779							<div id="pum_popup_title_4776" class="pum-title popmake-title">
1780				Newsletter Sign Up			</div>
1781		
1782		
1783				<div class="pum-content popmake-content" tabindex="0">
1784			
1785                <div class='gf_browser_chrome gform_wrapper gform_legacy_markup_wrapper gform-theme--no-framework' data-form-theme='legacy' data-form-index='0' id='gform_wrapper_10' ><div id='gf_10' class='gform_anchor' tabindex='-1'></div>
1786                        <div class='gform_heading'>
1787                            <p class='gform_description'>Stay in the know. Get exclusive offers straight to your inbox:</p>
1788                        </div><form method='post' enctype='multipart/form-data'  id='gform_10'  action='/about-island-vacation-properties/#gf_10' data-formid='10' novalidate><div class='gf_invisible ginput_recaptchav3' data-sitekey='6LeDap0tAAAAAH8QvJNFDOpBZOagZYajMX8m-Iiv' data-tabindex='0'><input id="input_42285b71e9989e0d1c1db7eeb502e71f" class="gfield_recaptcha_response" type="hidden" name="input_42285b71e9989e0d1c1db7eeb502e71f" value=""/></div>
1789                        <div class='gform-body gform_body'><ul id='gform_fields_10' class='gform_fields top_label form_sublabel_below description_below validation_below'><li id="field_10_4" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible"  ><label class='gfield_label gform-field-label' for='input_10_4'><span class='gform-field-label__text'>URL</span></label><div class='ginput_container'><input name='input_4' id='input_10_4' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_10_4'>This field is for validation purposes and should be left unchanged.</div></li>
1789<li id="field_10_1" class="gfield gfield--type-email gfield--input-type-email newsletter-form-field gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  ><label class='gfield_label gform-field-label' for='input_10_1'><span class='gform-field-label__text'>Email</span><span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'>
1790                            <input name='input_1' id='input_10_1' type='email' value='' class='large'   placeholder='Your Email Address' aria-required="true" aria-invalid="false"  />
1791                        </div></li><li id="field_10_3" class="gfield gfield--type-name gfield--input-type-name gfield--width-full field_sublabel_hidden_label gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  ><label class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>Name</span></label><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name no_last_name no_suffix gf_name_has_1 ginput_container_name gform-grid-row' id='input_10_3'>
1792                            
1793                            <span id='input_10_3_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >
1794                                                    <input type='text' name='input_3.3' id='input_10_3_3' value=''   aria-required='false'   placeholder='Your Name'  />
1795                                                    <label for='input_10_3_3' class='gform-field-label gform-field-label--type-sub hidden_sub_label screen-reader-text'>First</label>
1796                                                </span>
1797                            
1798                            
1799                            
1800                        </div></li></ul></div>
1801        <div class='gform-footer gform_footer top_label'> <button type='submit' id='gform_submit_button_10' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Yes, Sign Me Up!</button> 
1802            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_10' value='postback' />
1803            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_10' id='gform_theme_10' value='legacy' />
1804            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_10' id='gform_style_settings_10' value='[]' />
1805            <input type='hidden' class='gform_hidden' name='is_submit_10' value='1' />
1806            <input type='hidden' class='gform_hidden' name='gform_submit' value='10' />
1807            
1808            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='M9uSgLOrCB55sWtb46KlolZL+5/VQ2N2wn8wQ/CJEUDPL6LdL3ZnPFSccvyEol6TRdSz4HBYN232tgDzKvLhSrPHWlp6ey+GEmOweUgrYb+2Wzo=' />
1809            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
1810            <input type='hidden' class='gform_hidden' name='state_10' value='WyJ7XCJnZm9ybV9zdWJtaXNzaW9uX21ldGhvZFwiOltcIjcxOTc2NzZjMzA4OWIyZjdlMTY0ZWRkMTJlZTY1ZmU1XCIsXCI0N2ExNDZlMGNiZDlhZWE4NjlhNGFjOGU2ZDgxMTIxYlwiXSxcImdmb3JtX3RoZW1lXCI6XCJhMjA2MTczOWM5NmJkN2NiM2YxMzc5ZjcxOTU5NzFmOFwiLFwiZ2Zvcm1fc3R5bGVfc2V0dGluZ3NcIjpcImQ3MGU5ODhmOTY2ZjlhNDBkMzdhZGQyODY1ZTc4ZTBhXCIsXCJmb3JtX2lkXCI6XCJhZGE2N2NkNDU2OThlNDQxMmNhNDEwMDAwNDk2Y2M3N1wiLFwidXJsXCI6XCI0MzUxNDZjODNlNTE5ZjNiOWFlMWVmZTQ0MDYzZTI2N1wiLFwic3RhdGVfdGltZXN0YW1wXCI6XCJlMmU4MDMzNTk0NGQ3OTM2NDE3NjA5Y2Y1NWYwZmEwYVwifSIsIjU2YjE4YjAyY2E1NTk4NGFlOTExZDBmMDEzNDQyZjUzIiwxNzkxNDU2OTA4XQ==' />
1811            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_10' id='gform_target_page_number_10' value='0' />
1812            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_10' id='gform_source_page_number_10' value='1' />
1813            <input type='hidden' name='gform_field_values' value='' />
1814            
1815        </div>
1816                        <p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="150"/>
1816<script>
1817document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );
1818</script>
1818
1819</p></form>
1820                        </div>
1821		</div>
1822
1823				
1824							<button type="button" class="pum-close popmake-close" aria-label="Close">
1825			x			</button>
1826		
1827	</div>
1828
1829</div>
1830<script id="menu-js" src="https://www.islandvacationproperties.com/wp-content/themes/rtapi/js/menu.js?ver=1.0"></script>
vendor: 1 bytes, line 1830
1830
1831<script id="shrinkhead-js" src="https://www.islandvacationproperties.com/wp-content/themes/rtapi/js/shrinkhead.js?ver=1.0"></script>
vendor: 1 bytes, line 1831
1831
1832<script id="focus-visible-js" src="https://www.islandvacationproperties.com/wp-content/themes/rtapi/js/focus-visible.js?ver=5.1.0"></script>
vendor: 1 bytes, line 1832
1832
1833<script id="gforms_recaptcha_recaptcha-js-extra">
1834var gforms_recaptcha_recaptcha_strings = {"nonce":"51bc720e2c","disconnect":"Disconnecting","change_connection_type":"Resetting","spinner":"https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/images/spinner.svg","connection_type":"classic","disable_badge":"1","change_connection_type_title":"Change Connection Type","change_connection_type_message":"Changing the connection type will delete your current settings.  Do you want to proceed?","disconnect_title":"Disconnect","disconnect_message":"Disconnecting from reCAPTCHA will delete your current settings.  Do you want to proceed?","site_key":"6LeDap0tAAAAAH8QvJNFDOpBZOagZYajMX8m-Iiv"};
1835//# sourceURL=gforms_recaptcha_recaptcha-js-extra
1836</script>
vendor: 127 bytes, lines 1836-1837
1836
1837<script data-wp-strategy="defer" defer id="gforms_recaptcha_recaptcha-js" src="https://www.google.com/recaptcha/api.js?render=
18376LeDap0tAAAAAH8QvJNFDOpBZOagZYajMX8m-Iiv
vendor: 27 bytes, line 1837
1837&#038;ver=2.2.2"></script>
1838<script data-wp-strategy="defer" defer id="gforms_recaptcha_frontend-js" src="https://www.islandvacationproperties.com/wp-content/plugins/gravityformsrecaptcha/js/frontend.min.js?ver=2.2.2"></script>
vendor: 1 bytes, line 1838
1838
1839<script id="gform_placeholder-js" defer='defer' src="https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/js/placeholders.jquery.min.js?ver=3.1.2"></script>
vendor: 1 bytes, line 1839
1839
1840<script id="gform_gravityforms_theme_vendors-js" defer='defer' src="https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/assets/js/dist/vendor-theme.min.js?ver=0c901cb641ce64b99c20ea1a4d208cc9"></script>
vendor: 1 bytes, line 1840
1840
1841<script id="gform_gravityforms_theme-js-extra">
1842var gform_theme_config = {"common":{"form":{"honeypot":{"version_hash":"19dbec403806d76761dede907ba49b18"},"ajax":{"ajaxurl":"https://www.islandvacationproperties.com/wp-admin/admin-ajax.php","ajax_submission_nonce":"7bb29140b0","i18n":{"step_announcement":"Step %1$s of %2$s, %3$s","unknown_error":"There was an unknown error processing your request. Please try again.","error_403":"The request was blocked (403 error) for unknown security reasons. Remove any code-like text (scripts or DB queries) and try again."}}}},"hmr_dev":"","public_path":"https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/assets/js/dist/","config_nonce":"114f76e95b"};
1843//# sourceURL=gform_gravityforms_theme-js-extra
1844</script>
vendor: 1 bytes, line 1844
1844
1845<script id="gform_gravityforms_theme-js" defer='defer' src="https://www.islandvacationproperties.com/wp-content/plugins/gravityforms/assets/js/dist/scripts-theme.min.js?ver=e27d9712159624c99129c8c208f022ad"></script>
vendor: 1 bytes, line 1845
1845
1846<script defer id="akismet-frontend-js" src="https://www.islandvacationproperties.com/wp-content/plugins/akismet/_inc/akismet-frontend.js?ver=1787933035"></script>
vendor: 1 bytes, line 1846
1846
1847<script id="popup-maker-site-js-extra">
1848var pum_vars = {"version":"1.25.0","pm_dir_url":"https://www.islandvacationproperties.com/wp-content/plugins/popup-maker/","ajaxurl":"https://www.islandvacationproperties.com/wp-admin/admin-ajax.php","restapi":"https://www.islandvacationproperties.com/wp-json/pum/v1","rest_nonce":null,"default_theme":"823","debug_mode":"","disable_tracking":"","disable_url_params":"","home_url":"/","message_position":"top","core_sub_forms_enabled":"1","popups":[],"cookie_domain":"","paramNames":{"popup_id":"pid","cta":"cta","notrack":"notrack"},"analytics_enabled":"1","analytics_route":"analytics","analytics_api":"https://www.islandvacationproperties.com/wp-json/pum/v1"};
1849var pum_sub_vars = {"ajaxurl":"https://www.islandvacationproperties.com/wp-admin/admin-ajax.php","message_position":"top"};
1850var pum_popups = {"pum-4776":{"triggers":[{"type":"auto_open","settings":{"cookie_name":["pum-4776"],"delay":"10000"}}],"cookies":[{"event":"on_popup_close","settings":{"name":"pum-4776","key":"","session":false,"path":"1","time":"1 month"}}],"disable_on_mobile":false,"disable_on_tablet":false,"explain":null,"type_section":null,"theme_id":"823","size":"small","responsive_min_width":"300px","responsive_max_width":"400px","custom_width":"300px","custom_height_auto":true,"custom_height":"px","scrollable_content":false,"animation_type":"slide","animation_speed":"350","animation_origin":"bottom","open_sound":"none","custom_sound":"","location":"right bottom","position_top":"100","position_bottom":"10","position_left":"0","position_right":"10","position_from_trigger":false,"position_fixed":true,"overlay_disabled":true,"stackable":true,"disable_reposition":false,"zindex":"1999999999","close_button_delay":"0","close_on_form_submission":false,"close_on_form_submission_delay":"0","close_on_overlay_click":false,"close_on_esc_press":false,"close_on_f4_press":false,"disable_form_reopen":false,"disable_accessibility":false,"theme_slug":"default-theme","id":4776,"slug":"newsletter-sign-up"}};
1851//# sourceURL=popup-maker-site-js-extra
1852</script>
vendor: 1 bytes, line 1852
1852
1853<script id="popup-maker-site-js" src="//www.islandvacationproperties.com/wp-content/uploads/pum/pum-site-scripts.js?defer&#038;generated=1787948090&#038;ver=1.25.0"></script>
vendor: 1 bytes, line 1853
1853
1854<script id="wp-emoji-settings" type="application/json">
1855{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.islandvacationproperties.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.3"}}
1856</script>
vendor: 1 bytes, line 1856
1856
1857<script type="module">
1858/*! This file is auto-generated */
1859var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
1860//# sourceURL=https://www.islandvacationproperties.com/wp-includes/js/wp-emoji-loader.min.js
1861</script>
vendor: 1 bytes, line 1861
1861
1862<script>
1863gform.initializeOnLoaded( function() { jQuery(document).on('gform_post_render', function(event, formId, currentPage){if(formId == 10) {if(typeof Placeholders != 'undefined'){
1864                        Placeholders.enable();
1865                    }} } );jQuery(document).on('gform_post_conditional_logic', function(event, formId, fields, isInit){} ) } );
1866</script>
vendor: 1 bytes, line 1866
1866
1867<script>
1868gform.initializeOnLoaded( function() {jQuery(document).trigger("gform_pre_post_render", [{ formId: "10", currentPage: "1", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( "gform_wrapper_10" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( "span" );            visibilitySpan.id = "gform_visibility_test_10";            gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( "gform_visibility_test_10" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 10, 1 );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );
1869</script>
vendor: 1 bytes, line 1869
1869
1870<script>
1871gform.initializeOnLoaded( function() { jQuery(document).on('gform_post_render', function(event, formId, currentPage){if(formId == 3) {if(typeof Placeholders != 'undefined'){
1872                        Placeholders.enable();
1873                    }} } );jQuery(document).on('gform_post_conditional_logic', function(event, formId, fields, isInit){} ) } );
1874</script>
vendor: 1 bytes, line 1874
1874
1875<script>
1876gform.initializeOnLoaded( function() {jQuery(document).trigger("gform_pre_post_render", [{ formId: "3", currentPage: "1", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( "gform_wrapper_3" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( "span" );            visibilitySpan.id = "gform_visibility_test_3";            gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( "gform_visibility_test_3" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 3, 1 );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );
1877</script>
1877
1878
1879    </body>
1880</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.