Plugin Directory

Changeset 3332499


Ignore:
Timestamp:
07/22/2025 08:16:36 PM (7 months ago)
Author:
havenlytics
Message:

Version 1.0.6 – Added featured property carousel and dot rendering in single property widget

Location:
havenlytics
Files:
86 added
9 edited

Legend:

Unmodified
Added
Removed
  • havenlytics/trunk/admin/assets/css/havenlytics-metabox.css

    r3325794 r3332499  
    864864    margin-top: 8px;
    865865}
     866
     867
     868
     869/* Featured Toggle */
     870.havenlytics_property_featured .havenlytics-featured-toggle {
     871    position: relative;
     872    display: inline-flex;
     873    align-items: center;
     874    gap: 10px;
     875    cursor: pointer;
     876}
     877
     878.havenlytics_property_featured .havenlytics-featured-toggle input {
     879    opacity: 0;
     880    width: 0;
     881    height: 0;
     882    position: absolute;
     883}
     884
     885.havenlytics_property_featured .havenlytics-featured-slider {
     886    position: relative;
     887    display: inline-block;
     888    width: 60px;
     889    height: 30px;
     890    background-color: var(--havenlytics-border, #E4E4ED);
     891    transition: all var(--havenlytics-transitionTime);
     892    border-radius: 34px;
     893    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
     894}
     895
     896.havenlytics_property_featured .havenlytics-featured-slider:before {
     897    position: absolute;
     898    content: "";
     899    height: 24px;
     900    width: 24px;
     901    left: 3px;
     902    bottom: 3px;
     903    background-color: var(--havenlytics-bg-white, #FFFFFF);
     904    transition: all var(--havenlytics-transitionTime);
     905    border-radius: 50%;
     906    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
     907    z-index: 2;
     908}
     909
     910/* Active state - Primary color */
     911.havenlytics_property_featured input:checked+.havenlytics-featured-slider {
     912    background-color: var(--havenlytics-primary, #6C60FE);
     913}
     914
     915.havenlytics_property_featured input:checked+.havenlytics-featured-slider:before {
     916    transform: translateX(30px);
     917    background: var(--havenlytics-bg-white, #FFFFFF);
     918}
     919
     920/* Hover state - Secondary color */
     921.havenlytics_property_featured .havenlytics-featured-toggle:hover input:not(:checked)+.havenlytics-featured-slider {
     922    background-color: var(--havenlytics-secondary, #764ba2);
     923}
     924
     925.havenlytics_property_featured .havenlytics-featured-toggle:hover input:checked+.havenlytics-featured-slider {
     926    background-color: var(--havenlytics-btnPrimaryHover, #5944f0);
     927}
     928
     929/* Pulse animation using primary color */
     930.havenlytics_property_featured input:checked+.havenlytics-featured-slider {
     931    animation: havenlyticsFeaturedPulse 0.8s 1;
     932}
     933
     934@keyframes havenlyticsFeaturedPulse {
     935    0% {
     936        box-shadow: 0 0 0 0 rgba(var(--havenlytics-primary-rgb), 0.5);
     937    }
     938
     939    70% {
     940        box-shadow: 0 0 0 10px rgba(var(--havenlytics-primary-rgb), 0);
     941    }
     942
     943    100% {
     944        box-shadow: 0 0 0 0 rgba(var(--havenlytics-primary-rgb), 0);
     945    }
     946}
     947
     948/* On/Off labels */
     949.havenlytics_property_featured .havenlytics-featured-label {
     950    display: flex;
     951    font-size: var(--havenlytics-labelSize, 0.8rem);
     952    font-weight: var(--havenlytics-fontWeight-medium, 500);
     953    color: var(--havenlytics-text-secondary, #555);
     954}
     955
     956.havenlytics_property_featured .havenlytics-featured-on {
     957    color: var(--havenlytics-success, #00B46A);
     958    display: none;
     959}
     960
     961.havenlytics_property_featured .havenlytics-featured-off {
     962    color: var(--havenlytics-alert, #FF4D4F);
     963}
     964
     965.havenlytics_property_featured input:checked~.havenlytics-featured-label .havenlytics-featured-on {
     966    display: inline;
     967}
     968
     969.havenlytics_property_featured input:checked~.havenlytics-featured-label .havenlytics-featured-off {
     970    display: none;
     971}
     972
     973/* Bounce animation */
     974.havenlytics_property_featured .havenlytics-toggle-animate .havenlytics-featured-slider:before {
     975    animation: havenlyticsFeaturedBounce 0.4s;
     976}
     977
     978@keyframes havenlyticsFeaturedBounce {
     979
     980    0%,
     981    100% {
     982        transform: translateX(var(--current-position)) translateX(0);
     983    }
     984
     985    25% {
     986        transform: translateX(var(--current-position)) translateX(5px);
     987    }
     988
     989    50% {
     990        transform: translateX(var(--current-position)) translateX(-5px);
     991    }
     992
     993    75% {
     994        transform: translateX(var(--current-position)) translateX(5px);
     995    }
     996}
     997
     998#havenlytics_property_featured button.handle-order-higher,
     999#havenlytics_property_featured button.handle-order-lower{display: none !important;}
  • havenlytics/trunk/admin/assets/js/havenlytics-metabox.js

    r3325794 r3332499  
    347347
    348348
    349 
    350 
     349    // Featured Toggle Animation js
     350    // Convert primary color to RGB for pulse animation
     351    function hexToRgb(hex) {
     352        if (!hex) return null;
     353
     354        // Remove any leading #
     355        hex = hex.replace(/^#/, '');
     356
     357        // Parse the hex value
     358        if (hex.length === 3) {
     359            hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
     360        }
     361
     362        const num = parseInt(hex, 16);
     363        return {
     364            r: (num >> 16) & 255,
     365            g: (num >> 8) & 255,
     366            b: num & 255
     367        };
     368    }
     369
     370    jQuery(document).ready(function($) {
     371        // Get primary color RGB value
     372        const primaryHex = getComputedStyle(document.documentElement).getPropertyValue('--havenlytics-primary')
     373            .trim();
     374        const primaryRgb = hexToRgb(primaryHex || '#6C60FE');
     375
     376        if (primaryRgb) {
     377            const primaryRgbValue = `${primaryRgb.r}, ${primaryRgb.g}, ${primaryRgb.b}`;
     378            // Add CSS variable for pulse animation
     379            document.documentElement.style.setProperty('--havenlytics-primary-rgb', primaryRgbValue);
     380        }
     381
     382        // Initialize slider positions
     383        $('.havenlytics_property_featured .havenlytics-featured-toggle input').each(function() {
     384            const slider = $(this).siblings('.havenlytics-featured-slider');
     385            const position = this.checked ? 30 : 0;
     386            slider[0].style.setProperty('--current-position', position + 'px');
     387        });
     388
     389        // Toggle interaction
     390        $('.havenlytics_property_featured .havenlytics-featured-toggle input').on('change', function() {
     391            const toggle = $(this).closest('.havenlytics-featured-toggle');
     392            const slider = $(this).siblings('.havenlytics-featured-slider');
     393            const position = this.checked ? 30 : 0;
     394
     395            // Update CSS variable for bounce animation
     396            slider[0].style.setProperty('--current-position', position + 'px');
     397
     398            // Add animation classes
     399            toggle.addClass('havenlytics-toggle-animate');
     400
     401            // Remove animation classes after effect completes
     402            setTimeout(() => {
     403                toggle.removeClass('havenlytics-toggle-animate');
     404            }, 400);
     405
     406            // Add pulse effect when checked
     407            if (this.checked) {
     408                slider.addClass('havenlytics-featured-pulse');
     409                setTimeout(() => {
     410                    slider.removeClass('havenlytics-featured-pulse');
     411                }, 800);
     412            }
     413        });
     414    });
    351415
    352416
  • havenlytics/trunk/havenlytics.php

    r3325794 r3332499  
    44Plugin URI: https://wordpress.org/plugins/havenlytics/
    55Description: A property listing plugin for WordPress that allows users to easily manage and display property listings.
    6 Version: 1.0.5
     6Version: 1.0.6
    77Author: Havenlytics
    88Author URI: https://havenlytics.com
     
    3030
    3131// Define constants
    32 define('HVNLY_PROPERTY_VERSION', '1.0.5');
     32define('HVNLY_PROPERTY_VERSION', '1.0.6');
    3333define('HVNLY_PROPERTY_URL', plugin_dir_url(__FILE__));
    3434define('HVNLY_PROPERTY_PATH', plugin_dir_path(__FILE__));
  • havenlytics/trunk/includes/class-meta-fields.php

    r3325794 r3332499  
    116116                'high'
    117117            );
     118
     119            // Featured Property
     120            add_meta_box(
     121                'havenlytics_property_featured',
     122                __('Active Featured', 'havenlytics'),
     123                array(__CLASS__, 'havenlytics_render_featured_metabox'),
     124                'hvnly_property',
     125                'side',
     126                'high'
     127            );
    118128        }
    119129
     
    128138
    129139?>
    130             <div class="havenlytics-meta-container">
    131                 <div class="havenlytics-meta-field">
    132                     <div class="havenlytics-meta-label">
    133                         <label for="havenlytics_short_description"><?php esc_html_e('Short Description', 'havenlytics'); ?></label>
    134 
    135                     </div>
    136                     <div class="havenlytics-meta-input">
    137                         <textarea style="height: 100px;" id="havenlytics_short_description" name="_havenlytics_short_description"
    138                             class="havenlytics-large-text"><?php echo esc_textarea($short_description); ?></textarea>
    139                     </div>
    140                 </div>
    141 
    142 
    143 
    144             </div>
    145         <?php
     140<div class="havenlytics-meta-container">
     141    <div class="havenlytics-meta-field">
     142        <div class="havenlytics-meta-label">
     143            <label for="havenlytics_short_description"><?php esc_html_e('Short Description', 'havenlytics'); ?></label>
     144
     145        </div>
     146        <div class="havenlytics-meta-input">
     147            <textarea style="height: 100px;" id="havenlytics_short_description" name="_havenlytics_short_description"
     148                class="havenlytics-large-text"><?php echo esc_textarea($short_description); ?></textarea>
     149        </div>
     150    </div>
     151
     152
     153
     154</div>
     155<?php
    146156        }
    147157
     
    167177            );
    168178        ?>
    169             <div class="havenlytics-meta-container">
    170 
    171                 <div class="havenlytics-meta-field">
    172                     <div class="havenlytics-meta-label">
    173                         <label for="havenlytics_currency"><?php esc_html_e('Currency', 'havenlytics'); ?></label>
    174                     </div>
    175                     <div class="havenlytics-meta-input">
    176                         <select id="havenlytics_currency" name="_havenlytics_currency">
    177                             <option value=""><?php esc_html_e('Select Currency', 'havenlytics'); ?></option>
    178                             <?php
     179<div class="havenlytics-meta-container">
     180
     181    <div class="havenlytics-meta-field">
     182        <div class="havenlytics-meta-label">
     183            <label for="havenlytics_currency"><?php esc_html_e('Currency', 'havenlytics'); ?></label>
     184        </div>
     185        <div class="havenlytics-meta-input">
     186            <select id="havenlytics_currency" name="_havenlytics_currency">
     187                <option value=""><?php esc_html_e('Select Currency', 'havenlytics'); ?></option>
     188                <?php
    179189                            $options = array(
    180190                                'USD' => __('US Dollar', 'havenlytics'),
     
    202212                            foreach ($options as $key => $label) :
    203213                            ?>
    204                                 <option value="<?php echo esc_attr($key); ?>" <?php selected($values['currency'], $key); ?>>
    205                                     <?php echo esc_html($label); ?>
    206                                 </option>
    207                             <?php endforeach; ?>
    208                         </select>
    209                     </div>
    210                 </div>
    211 
    212                 <div class="havenlytics-meta-field">
    213                     <div class="havenlytics-meta-label">
    214                         <label for="havenlytics_price"><?php esc_html_e('Price', 'havenlytics'); ?></label>
    215 
    216                     </div>
    217                     <div class="havenlytics-meta-input">
    218                         <input type="text" id="havenlytics_price" name="_havenlytics_price"
    219                             value="<?php echo esc_attr($values['price']); ?>" class="havenlytics-regular-text" />
    220                     </div>
    221                 </div>
    222 
    223                 <div class="havenlytics-meta-field">
    224                     <div class="havenlytics-meta-label">
    225                         <label for="havenlytics_bedrooms"><?php esc_html_e('Bedrooms', 'havenlytics'); ?></label>
    226                     </div>
    227                     <div class="havenlytics-meta-input">
    228                         <input type="number" id="havenlytics_bedrooms" name="_havenlytics_bedrooms"
    229                             value="<?php echo esc_attr($values['bedrooms']); ?>" min="0" step="1" class="havenlytics-small-text" />
    230                     </div>
    231                 </div>
    232 
    233                 <div class="havenlytics-meta-field">
    234                     <div class="havenlytics-meta-label">
    235                         <label for="havenlytics_bathrooms"><?php esc_html_e('Bathrooms', 'havenlytics'); ?></label>
    236                     </div>
    237                     <div class="havenlytics-meta-input">
    238                         <input type="number" id="havenlytics_bathrooms" name="_havenlytics_bathrooms"
    239                             value="<?php echo esc_attr($values['bathrooms']); ?>" min="0" step="0.5"
    240                             class="havenlytics-small-text" />
    241                     </div>
    242                 </div>
    243 
    244                 <div class="havenlytics-meta-field">
    245                     <div class="havenlytics-meta-label">
    246                         <label for="havenlytics_sqft"><?php esc_html_e('Square Footage', 'havenlytics'); ?></label>
    247                     </div>
    248 
    249                     <div class="havenlytics-meta-input">
    250                         <input type="number" id="havenlytics_sqft" name="_havenlytics_sqft"
    251                             value="<?php echo esc_attr($values['sqft']); ?>" min="0" step="1" class="havenlytics-regular-text" />
    252                     </div>
    253                 </div>
    254 
    255                 <div class="havenlytics-meta-field">
    256                     <div class="havenlytics-meta-label">
    257                         <label for="havenlytics_address"><?php esc_html_e('Address', 'havenlytics'); ?></label>
    258                     </div>
    259                     <div class="havenlytics-meta-input">
    260                         <input type="text" id="havenlytics_address" name="_havenlytics_address"
    261                             value="<?php echo esc_attr($values['address']); ?>" class="havenlytics-large-text" />
    262                     </div>
    263                 </div>
    264 
    265                 <div class="havenlytics-meta-field">
    266                     <div class="havenlytics-meta-label">
    267                         <label for="havenlytics_year_built"><?php esc_html_e('Year Built', 'havenlytics'); ?></label>
    268                     </div>
    269                     <div class="havenlytics-meta-input">
    270                         <input type="number" id="havenlytics_year_built" name="_havenlytics_year_built"
    271                             value="<?php echo esc_attr($values['year_built']); ?>" min="1800"
    272                             max="<?php echo esc_attr(gmdate('Y')); ?>" class="havenlytics-small-text" />
    273                     </div>
    274 
    275 
    276                 </div>
    277 
    278                 <div class="havenlytics-meta-field">
    279                     <div class="havenlytics-meta-label">
    280                         <label for="havenlytics_property_type"><?php esc_html_e('Property Type', 'havenlytics'); ?></label>
    281                     </div>
    282                     <div class="havenlytics-meta-input">
    283                         <select id="havenlytics_property_type" name="_havenlytics_property_type">
    284                             <option value=""><?php esc_html_e('Select Type', 'havenlytics'); ?></option>
    285                             <?php
     214                <option value="<?php echo esc_attr($key); ?>" <?php selected($values['currency'], $key); ?>>
     215                    <?php echo esc_html($label); ?>
     216                </option>
     217                <?php endforeach; ?>
     218            </select>
     219        </div>
     220    </div>
     221
     222    <div class="havenlytics-meta-field">
     223        <div class="havenlytics-meta-label">
     224            <label for="havenlytics_price"><?php esc_html_e('Price', 'havenlytics'); ?></label>
     225
     226        </div>
     227        <div class="havenlytics-meta-input">
     228            <input type="text" id="havenlytics_price" name="_havenlytics_price"
     229                value="<?php echo esc_attr($values['price']); ?>" class="havenlytics-regular-text" />
     230        </div>
     231    </div>
     232
     233    <div class="havenlytics-meta-field">
     234        <div class="havenlytics-meta-label">
     235            <label for="havenlytics_bedrooms"><?php esc_html_e('Bedrooms', 'havenlytics'); ?></label>
     236        </div>
     237        <div class="havenlytics-meta-input">
     238            <input type="number" id="havenlytics_bedrooms" name="_havenlytics_bedrooms"
     239                value="<?php echo esc_attr($values['bedrooms']); ?>" min="0" step="1" class="havenlytics-small-text" />
     240        </div>
     241    </div>
     242
     243    <div class="havenlytics-meta-field">
     244        <div class="havenlytics-meta-label">
     245            <label for="havenlytics_bathrooms"><?php esc_html_e('Bathrooms', 'havenlytics'); ?></label>
     246        </div>
     247        <div class="havenlytics-meta-input">
     248            <input type="number" id="havenlytics_bathrooms" name="_havenlytics_bathrooms"
     249                value="<?php echo esc_attr($values['bathrooms']); ?>" min="0" step="0.5"
     250                class="havenlytics-small-text" />
     251        </div>
     252    </div>
     253
     254    <div class="havenlytics-meta-field">
     255        <div class="havenlytics-meta-label">
     256            <label for="havenlytics_sqft"><?php esc_html_e('Square Footage', 'havenlytics'); ?></label>
     257        </div>
     258
     259        <div class="havenlytics-meta-input">
     260            <input type="number" id="havenlytics_sqft" name="_havenlytics_sqft"
     261                value="<?php echo esc_attr($values['sqft']); ?>" min="0" step="1" class="havenlytics-regular-text" />
     262        </div>
     263    </div>
     264
     265    <div class="havenlytics-meta-field">
     266        <div class="havenlytics-meta-label">
     267            <label for="havenlytics_address"><?php esc_html_e('Address', 'havenlytics'); ?></label>
     268        </div>
     269        <div class="havenlytics-meta-input">
     270            <input type="text" id="havenlytics_address" name="_havenlytics_address"
     271                value="<?php echo esc_attr($values['address']); ?>" class="havenlytics-large-text" />
     272        </div>
     273    </div>
     274
     275    <div class="havenlytics-meta-field">
     276        <div class="havenlytics-meta-label">
     277            <label for="havenlytics_year_built"><?php esc_html_e('Year Built', 'havenlytics'); ?></label>
     278        </div>
     279        <div class="havenlytics-meta-input">
     280            <input type="number" id="havenlytics_year_built" name="_havenlytics_year_built"
     281                value="<?php echo esc_attr($values['year_built']); ?>" min="1800"
     282                max="<?php echo esc_attr(gmdate('Y')); ?>" class="havenlytics-small-text" />
     283        </div>
     284
     285
     286    </div>
     287
     288    <div class="havenlytics-meta-field">
     289        <div class="havenlytics-meta-label">
     290            <label for="havenlytics_property_type"><?php esc_html_e('Property Type', 'havenlytics'); ?></label>
     291        </div>
     292        <div class="havenlytics-meta-input">
     293            <select id="havenlytics_property_type" name="_havenlytics_property_type">
     294                <option value=""><?php esc_html_e('Select Type', 'havenlytics'); ?></option>
     295                <?php
    286296                            $property_types = array(
    287297                                'single_family' => __('Single Family', 'havenlytics'),
     
    294304                            foreach ($property_types as $key => $label) :
    295305                            ?>
    296                                 <option value="<?php echo esc_attr($key); ?>" <?php selected($values['property_type'], $key); ?>>
    297                                     <?php echo esc_html($label); ?>
    298                                 </option>
    299                             <?php endforeach; ?>
    300                         </select>
    301                     </div>
    302                 </div>
    303 
    304                 <div class="havenlytics-meta-field">
    305                     <div class="havenlytics-meta-label">
    306                         <label for="havenlytics_mls_number"><?php esc_html_e('MLS Number', 'havenlytics'); ?></label>
    307                     </div>
    308                     <div class="havenlytics-meta-input">
    309                         <input type="text" id="havenlytics_mls_number" name="_havenlytics_mls_number"
    310                             value="<?php echo esc_attr($values['mls_number']); ?>" class="havenlytics-regular-text" />
    311                     </div>
    312                 </div>
    313 
    314                 <div class="havenlytics-meta-field">
    315                     <div class="havenlytics-meta-label">
    316                         <label for="havenlytics_garage"><?php esc_html_e('Garage Spaces', 'havenlytics'); ?></label>
    317                     </div>
    318                     <div class="havenlytics-meta-input">
    319                         <input type="number" id="havenlytics_garage" name="_havenlytics_garage"
    320                             value="<?php echo esc_attr($values['garage']); ?>" min="0" step="1" class="havenlytics-small-text" />
    321                     </div>
    322                 </div>
    323 
    324                 <div class="havenlytics-meta-field">
    325                     <div class="havenlytics-meta-label">
    326                         <label for="havenlytics_status"><?php esc_html_e('Status', 'havenlytics'); ?></label>
    327                     </div>
    328                     <div class="havenlytics-meta-input">
    329                         <select id="havenlytics_status" name="_havenlytics_status">
    330                             <option value=""><?php esc_html_e('Select Status', 'havenlytics'); ?></option>
    331                             <?php
     306                <option value="<?php echo esc_attr($key); ?>" <?php selected($values['property_type'], $key); ?>>
     307                    <?php echo esc_html($label); ?>
     308                </option>
     309                <?php endforeach; ?>
     310            </select>
     311        </div>
     312    </div>
     313
     314    <div class="havenlytics-meta-field">
     315        <div class="havenlytics-meta-label">
     316            <label for="havenlytics_mls_number"><?php esc_html_e('MLS Number', 'havenlytics'); ?></label>
     317        </div>
     318        <div class="havenlytics-meta-input">
     319            <input type="text" id="havenlytics_mls_number" name="_havenlytics_mls_number"
     320                value="<?php echo esc_attr($values['mls_number']); ?>" class="havenlytics-regular-text" />
     321        </div>
     322    </div>
     323
     324    <div class="havenlytics-meta-field">
     325        <div class="havenlytics-meta-label">
     326            <label for="havenlytics_garage"><?php esc_html_e('Garage Spaces', 'havenlytics'); ?></label>
     327        </div>
     328        <div class="havenlytics-meta-input">
     329            <input type="number" id="havenlytics_garage" name="_havenlytics_garage"
     330                value="<?php echo esc_attr($values['garage']); ?>" min="0" step="1" class="havenlytics-small-text" />
     331        </div>
     332    </div>
     333
     334    <div class="havenlytics-meta-field">
     335        <div class="havenlytics-meta-label">
     336            <label for="havenlytics_status"><?php esc_html_e('Status', 'havenlytics'); ?></label>
     337        </div>
     338        <div class="havenlytics-meta-input">
     339            <select id="havenlytics_status" name="_havenlytics_status">
     340                <option value=""><?php esc_html_e('Select Status', 'havenlytics'); ?></option>
     341                <?php
    332342                            $statuses = array(
    333343                                'for_sale' => __('For Sale', 'havenlytics'),
     
    339349                            foreach ($statuses as $key => $label) :
    340350                            ?>
    341                                 <option value="<?php echo esc_attr($key); ?>" <?php selected($values['status'], $key); ?>>
    342                                     <?php echo esc_html($label); ?>
    343                                 </option>
    344                             <?php endforeach; ?>
    345                         </select>
    346                     </div>
    347                 </div>
    348             </div>
    349         <?php
     351                <option value="<?php echo esc_attr($key); ?>" <?php selected($values['status'], $key); ?>>
     352                    <?php echo esc_html($label); ?>
     353                </option>
     354                <?php endforeach; ?>
     355            </select>
     356        </div>
     357    </div>
     358</div>
     359<?php
    350360        }
    351361
     
    370380            );
    371381        ?>
    372             <div class="havenlytics-meta-container">
    373                 <div class="havenlytics-meta-field">
    374                     <div class="havenlytics-meta-label">
    375                         <label for="havenlytics_lot_size"><?php esc_html_e('Lot Size', 'havenlytics'); ?></label>
    376                     </div>
    377                     <div class="havenlytics-meta-input">
    378                         <input type="text" id="havenlytics_lot_size" name="_havenlytics_lot_size"
    379                             value="<?php echo esc_attr($values['lot_size']); ?>" class="havenlytics-small-text" />
    380                         <select id="havenlytics_lot_unit" name="_havenlytics_lot_unit">
    381                             <?php
     382<div class="havenlytics-meta-container">
     383    <div class="havenlytics-meta-field">
     384        <div class="havenlytics-meta-label">
     385            <label for="havenlytics_lot_size"><?php esc_html_e('Lot Size', 'havenlytics'); ?></label>
     386        </div>
     387        <div class="havenlytics-meta-input">
     388            <input type="text" id="havenlytics_lot_size" name="_havenlytics_lot_size"
     389                value="<?php echo esc_attr($values['lot_size']); ?>" class="havenlytics-small-text" />
     390            <select id="havenlytics_lot_unit" name="_havenlytics_lot_unit">
     391                <?php
    382392                            $units = array(
    383393                                'sqft' => __('Sq Ft', 'havenlytics'),
     
    387397                            foreach ($units as $key => $label) :
    388398                            ?>
    389                                 <option value="<?php echo esc_attr($key); ?>" <?php selected($values['lot_unit'], $key); ?>>
    390                                     <?php echo esc_html($label); ?>
    391                                 </option>
    392                             <?php endforeach; ?>
    393                         </select>
    394                     </div>
    395                 </div>
    396 
    397                 <div class="havenlytics-meta-field">
    398                     <div class="havenlytics-meta-label">
    399                         <label for="havenlytics_hoa_fee"><?php esc_html_e('HOA Fee', 'havenlytics'); ?></label>
    400                     </div>
    401                     <div class="havenlytics-meta-input">
    402                         <input type="text" id="havenlytics_hoa_fee" name="_havenlytics_hoa_fee"
    403                             value="<?php echo esc_attr($values['hoa_fee']); ?>" class="havenlytics-small-text" />
    404                         <select id="havenlytics_hoa_period" name="_havenlytics_hoa_period">
    405                             <?php
     399                <option value="<?php echo esc_attr($key); ?>" <?php selected($values['lot_unit'], $key); ?>>
     400                    <?php echo esc_html($label); ?>
     401                </option>
     402                <?php endforeach; ?>
     403            </select>
     404        </div>
     405    </div>
     406
     407    <div class="havenlytics-meta-field">
     408        <div class="havenlytics-meta-label">
     409            <label for="havenlytics_hoa_fee"><?php esc_html_e('HOA Fee', 'havenlytics'); ?></label>
     410        </div>
     411        <div class="havenlytics-meta-input">
     412            <input type="text" id="havenlytics_hoa_fee" name="_havenlytics_hoa_fee"
     413                value="<?php echo esc_attr($values['hoa_fee']); ?>" class="havenlytics-small-text" />
     414            <select id="havenlytics_hoa_period" name="_havenlytics_hoa_period">
     415                <?php
    406416                            $periods = array(
    407417                                'monthly' => __('Monthly', 'havenlytics'),
     
    411421                            foreach ($periods as $key => $label) :
    412422                            ?>
    413                                 <option value="<?php echo esc_attr($key); ?>" <?php selected($values['hoa_period'], $key); ?>>
    414                                     <?php echo esc_html($label); ?>
    415                                 </option>
    416                             <?php endforeach; ?>
    417                         </select>
    418                     </div>
    419                 </div>
    420 
    421                 <div class="havenlytics-meta-field">
    422                     <div class="havenlytics-meta-label">
    423                         <label for="havenlytics_tax_amount"><?php esc_html_e('Annual Tax Amount', 'havenlytics'); ?></label>
    424                     </div>
    425                     <div class="havenlytics-meta-input">
    426                         <input type="text" id="havenlytics_tax_amount" name="_havenlytics_tax_amount"
    427                             value="<?php echo esc_attr($values['tax_amount']); ?>" class="havenlytics-regular-text" />
    428                     </div>
    429                 </div>
    430 
    431                 <div class="havenlytics-meta-field">
    432                     <div class="havenlytics-meta-label">
    433                         <label for="havenlytics_tax_year"><?php esc_html_e('Tax Year', 'havenlytics'); ?></label>
    434                     </div>
    435                     <div class="havenlytics-meta-input">
    436 
    437 
    438 
    439                         <input type="number" id="havenlytics_tax_year" name="_havenlytics_tax_year"
    440                             value="<?php echo esc_attr($values['tax_year']); ?>" min="2000"
    441                             max="<?php echo esc_attr(gmdate('Y')); ?>" class="havenlytics-small-text" />
    442                     </div>
    443                 </div>
    444 
    445                 <div class="havenlytics-meta-field">
    446                     <div class="havenlytics-meta-label">
    447                         <label for="havenlytics_zoning"><?php esc_html_e('Zoning', 'havenlytics'); ?></label>
    448                     </div>
    449                     <div class="havenlytics-meta-input">
    450                         <input type="text" id="havenlytics_zoning" name="_havenlytics_zoning"
    451                             value="<?php echo esc_attr($values['zoning']); ?>" class="havenlytics-regular-text" />
    452                     </div>
    453                 </div>
    454 
    455                 <div class="havenlytics-meta-field">
    456                     <div class="havenlytics-meta-label">
    457                         <label for="havenlytics_heating"><?php esc_html_e('Heating', 'havenlytics'); ?></label>
    458                     </div>
    459                     <div class="havenlytics-meta-input">
    460                         <select id="havenlytics_heating" name="_havenlytics_heating">
    461                             <option value=""><?php esc_html_e('Select Type', 'havenlytics'); ?></option>
    462                             <?php
     423                <option value="<?php echo esc_attr($key); ?>" <?php selected($values['hoa_period'], $key); ?>>
     424                    <?php echo esc_html($label); ?>
     425                </option>
     426                <?php endforeach; ?>
     427            </select>
     428        </div>
     429    </div>
     430
     431    <div class="havenlytics-meta-field">
     432        <div class="havenlytics-meta-label">
     433            <label for="havenlytics_tax_amount"><?php esc_html_e('Annual Tax Amount', 'havenlytics'); ?></label>
     434        </div>
     435        <div class="havenlytics-meta-input">
     436            <input type="text" id="havenlytics_tax_amount" name="_havenlytics_tax_amount"
     437                value="<?php echo esc_attr($values['tax_amount']); ?>" class="havenlytics-regular-text" />
     438        </div>
     439    </div>
     440
     441    <div class="havenlytics-meta-field">
     442        <div class="havenlytics-meta-label">
     443            <label for="havenlytics_tax_year"><?php esc_html_e('Tax Year', 'havenlytics'); ?></label>
     444        </div>
     445        <div class="havenlytics-meta-input">
     446
     447
     448
     449            <input type="number" id="havenlytics_tax_year" name="_havenlytics_tax_year"
     450                value="<?php echo esc_attr($values['tax_year']); ?>" min="2000"
     451                max="<?php echo esc_attr(gmdate('Y')); ?>" class="havenlytics-small-text" />
     452        </div>
     453    </div>
     454
     455    <div class="havenlytics-meta-field">
     456        <div class="havenlytics-meta-label">
     457            <label for="havenlytics_zoning"><?php esc_html_e('Zoning', 'havenlytics'); ?></label>
     458        </div>
     459        <div class="havenlytics-meta-input">
     460            <input type="text" id="havenlytics_zoning" name="_havenlytics_zoning"
     461                value="<?php echo esc_attr($values['zoning']); ?>" class="havenlytics-regular-text" />
     462        </div>
     463    </div>
     464
     465    <div class="havenlytics-meta-field">
     466        <div class="havenlytics-meta-label">
     467            <label for="havenlytics_heating"><?php esc_html_e('Heating', 'havenlytics'); ?></label>
     468        </div>
     469        <div class="havenlytics-meta-input">
     470            <select id="havenlytics_heating" name="_havenlytics_heating">
     471                <option value=""><?php esc_html_e('Select Type', 'havenlytics'); ?></option>
     472                <?php
    463473                            $options = array(
    464474                                'forced_air' => __('Forced Air', 'havenlytics'),
     
    470480                            foreach ($options as $key => $label) :
    471481                            ?>
    472                                 <option value="<?php echo esc_attr($key); ?>" <?php selected($values['heating'], $key); ?>>
    473                                     <?php echo esc_html($label); ?>
    474                                 </option>
    475                             <?php endforeach; ?>
    476                         </select>
    477                     </div>
    478                 </div>
    479 
    480                 <div class="havenlytics-meta-field">
    481                     <div class="havenlytics-meta-label">
    482                         <label for="havenlytics_cooling"><?php esc_html_e('Cooling', 'havenlytics'); ?></label>
    483                     </div>
    484                     <div class="havenlytics-meta-input">
    485                         <select id="havenlytics_cooling" name="_havenlytics_cooling">
    486                             <option value=""><?php esc_html_e('Select Type', 'havenlytics'); ?></option>
    487                             <?php
     482                <option value="<?php echo esc_attr($key); ?>" <?php selected($values['heating'], $key); ?>>
     483                    <?php echo esc_html($label); ?>
     484                </option>
     485                <?php endforeach; ?>
     486            </select>
     487        </div>
     488    </div>
     489
     490    <div class="havenlytics-meta-field">
     491        <div class="havenlytics-meta-label">
     492            <label for="havenlytics_cooling"><?php esc_html_e('Cooling', 'havenlytics'); ?></label>
     493        </div>
     494        <div class="havenlytics-meta-input">
     495            <select id="havenlytics_cooling" name="_havenlytics_cooling">
     496                <option value=""><?php esc_html_e('Select Type', 'havenlytics'); ?></option>
     497                <?php
    488498                            $options = array(
    489499                                'central' => __('Central Air', 'havenlytics'),
     
    494504                            foreach ($options as $key => $label) :
    495505                            ?>
    496                                 <option value="<?php echo esc_attr($key); ?>" <?php selected($values['cooling'], $key); ?>>
    497                                     <?php echo esc_html($label); ?>
    498                                 </option>
    499                             <?php endforeach; ?>
    500                         </select>
    501                     </div>
    502                 </div>
    503 
    504                 <div class="havenlytics-meta-field">
    505                     <div class="havenlytics-meta-label">
    506                         <label for="havenlytics_water"><?php esc_html_e('Water', 'havenlytics'); ?></label>
    507                     </div>
    508                     <div class="havenlytics-meta-input">
    509                         <select id="havenlytics_water" name="_havenlytics_water">
    510                             <option value=""><?php esc_html_e('Select Type', 'havenlytics'); ?></option>
    511                             <?php
     506                <option value="<?php echo esc_attr($key); ?>" <?php selected($values['cooling'], $key); ?>>
     507                    <?php echo esc_html($label); ?>
     508                </option>
     509                <?php endforeach; ?>
     510            </select>
     511        </div>
     512    </div>
     513
     514    <div class="havenlytics-meta-field">
     515        <div class="havenlytics-meta-label">
     516            <label for="havenlytics_water"><?php esc_html_e('Water', 'havenlytics'); ?></label>
     517        </div>
     518        <div class="havenlytics-meta-input">
     519            <select id="havenlytics_water" name="_havenlytics_water">
     520                <option value=""><?php esc_html_e('Select Type', 'havenlytics'); ?></option>
     521                <?php
    512522                            $options = array(
    513523                                'city' => __('City', 'havenlytics'),
     
    517527                            foreach ($options as $key => $label) :
    518528                            ?>
    519                                 <option value="<?php echo esc_attr($key); ?>" <?php selected($values['water'], $key); ?>>
    520                                     <?php echo esc_html($label); ?>
    521                                 </option>
    522                             <?php endforeach; ?>
    523                         </select>
    524                     </div>
    525                 </div>
    526 
    527                 <div class="havenlytics-meta-field">
    528                     <div class="havenlytics-meta-label">
    529                         <label for="havenlytics_sewer"><?php esc_html_e('Sewer', 'havenlytics'); ?></label>
    530                     </div>
    531                     <div class="havenlytics-meta-input">
    532                         <select id="havenlytics_sewer" name="_havenlytics_sewer">
    533                             <option value=""><?php esc_html_e('Select Type', 'havenlytics'); ?></option>
    534                             <?php
     529                <option value="<?php echo esc_attr($key); ?>" <?php selected($values['water'], $key); ?>>
     530                    <?php echo esc_html($label); ?>
     531                </option>
     532                <?php endforeach; ?>
     533            </select>
     534        </div>
     535    </div>
     536
     537    <div class="havenlytics-meta-field">
     538        <div class="havenlytics-meta-label">
     539            <label for="havenlytics_sewer"><?php esc_html_e('Sewer', 'havenlytics'); ?></label>
     540        </div>
     541        <div class="havenlytics-meta-input">
     542            <select id="havenlytics_sewer" name="_havenlytics_sewer">
     543                <option value=""><?php esc_html_e('Select Type', 'havenlytics'); ?></option>
     544                <?php
    535545                            $options = array(
    536546                                'city' => __('City', 'havenlytics'),
     
    539549                            foreach ($options as $key => $label) :
    540550                            ?>
    541                                 <option value="<?php echo esc_attr($key); ?>" <?php selected($values['sewer'], $key); ?>>
    542                                     <?php echo esc_html($label); ?>
    543                                 </option>
    544                             <?php endforeach; ?>
    545                         </select>
    546                     </div>
    547                 </div>
    548 
    549                 <div class="havenlytics-meta-field">
    550                     <div class="havenlytics-meta-label">
    551                         <label for="havenlytics_rating_star"><?php esc_html_e('Rating Star', 'havenlytics'); ?></label>
    552                     </div>
    553                     <div class="havenlytics-meta-input">
    554                         <select id="havenlytics_rating_star" name="_havenlytics_rating_star">
    555                             <option value=""><?php esc_html_e('Select Star', 'havenlytics'); ?></option>
    556                             <?php
     551                <option value="<?php echo esc_attr($key); ?>" <?php selected($values['sewer'], $key); ?>>
     552                    <?php echo esc_html($label); ?>
     553                </option>
     554                <?php endforeach; ?>
     555            </select>
     556        </div>
     557    </div>
     558
     559    <div class="havenlytics-meta-field">
     560        <div class="havenlytics-meta-label">
     561            <label for="havenlytics_rating_star"><?php esc_html_e('Rating Star', 'havenlytics'); ?></label>
     562        </div>
     563        <div class="havenlytics-meta-input">
     564            <select id="havenlytics_rating_star" name="_havenlytics_rating_star">
     565                <option value=""><?php esc_html_e('Select Star', 'havenlytics'); ?></option>
     566                <?php
    557567                            $options = array(
    558568                                '1' => __('1 Star', 'havenlytics'),
     
    564574                            foreach ($options as $key => $label) :
    565575                            ?>
    566                                 <option value="<?php echo esc_attr($key); ?>" <?php selected($values['rating_star'], $key); ?>>
    567                                     <?php echo esc_html($label); ?>
    568                                 </option>
    569                             <?php endforeach; ?>
    570                         </select>
    571                     </div>
    572                 </div>
    573             </div>
    574         <?php
     576                <option value="<?php echo esc_attr($key); ?>" <?php selected($values['rating_star'], $key); ?>>
     577                    <?php echo esc_html($label); ?>
     578                </option>
     579                <?php endforeach; ?>
     580            </select>
     581        </div>
     582    </div>
     583</div>
     584<?php
    575585        }
    576586
     
    598608            );
    599609        ?>
    600             <div class="havenlytics-meta-container">
    601                 <div class="havenlytics-meta-field">
    602                     <div class="havenlytics-meta-label">
    603                         <label><?php esc_html_e('Features', 'havenlytics'); ?></label>
    604                     </div>
    605                     <div class="havenlytics-meta-input">
    606                         <ul class="havenlytics-checkbox-list havenlytics-checkbox-columns">
    607                             <?php foreach ($features as $key => $value) : ?>
    608                                 <li>
    609                                     <input type="checkbox" id="havenlytics_feature_<?php echo esc_attr($key); ?>"
    610                                         name="_havenlytics_feature_<?php echo esc_attr($key); ?>" value="1"
    611                                         <?php checked($value, '1'); ?> />
    612                                     <label for="havenlytics_feature_<?php echo esc_attr($key); ?>">
    613                                         <?php echo esc_html(ucfirst(str_replace('_', ' ', $key))); ?>
    614                                     </label>
    615                                 </li>
    616                             <?php endforeach; ?>
    617                         </ul>
    618                     </div>
    619                 </div>
    620             </div>
    621         <?php
     610<div class="havenlytics-meta-container">
     611    <div class="havenlytics-meta-field">
     612        <div class="havenlytics-meta-label">
     613            <label><?php esc_html_e('Features', 'havenlytics'); ?></label>
     614        </div>
     615        <div class="havenlytics-meta-input">
     616            <ul class="havenlytics-checkbox-list havenlytics-checkbox-columns">
     617                <?php foreach ($features as $key => $value) : ?>
     618                <li>
     619                    <input type="checkbox" id="havenlytics_feature_<?php echo esc_attr($key); ?>"
     620                        name="_havenlytics_feature_<?php echo esc_attr($key); ?>" value="1"
     621                        <?php checked($value, '1'); ?> />
     622                    <label for="havenlytics_feature_<?php echo esc_attr($key); ?>">
     623                        <?php echo esc_html(ucfirst(str_replace('_', ' ', $key))); ?>
     624                    </label>
     625                </li>
     626                <?php endforeach; ?>
     627            </ul>
     628        </div>
     629    </div>
     630</div>
     631<?php
    622632        }
    623633
     
    640650
    641651        ?>
    642             <div class="havenlytics-meta-container">
    643                 <div class="havenlytics-meta-field">
    644                     <div class="havenlytics-meta-label">
    645                         <label for="havenlytics_latitude"><?php esc_html_e('Latitude', 'havenlytics'); ?></label>
    646                     </div>
    647                     <div class="havenlytics-meta-input">
    648                         <input type="text" id="havenlytics_latitude" name="_havenlytics_latitude"
    649                             value="<?php echo esc_attr($values['latitude']); ?>" class="havenlytics-regular-text" />
    650                     </div>
    651                 </div>
    652 
    653                 <div class="havenlytics-meta-field">
    654                     <div class="havenlytics-meta-label">
    655                         <label for="havenlytics_longitude"><?php esc_html_e('Longitude', 'havenlytics'); ?></label>
    656                     </div>
    657                     <div class="havenlytics-meta-input">
    658                         <input type="text" id="havenlytics_longitude" name="_havenlytics_longitude"
    659                             value="<?php echo esc_attr($values['longitude']); ?>" class="havenlytics-regular-text" />
    660                     </div>
    661                 </div>
    662 
    663 
    664 
    665                 <div class="havenlytics-meta-field">
    666                     <div class="havenlytics-meta-label">
    667                         <label for="havenlytics_neighborhood"><?php esc_html_e('Neighborhood', 'havenlytics'); ?></label>
    668                     </div>
    669                     <div class="havenlytics-meta-input">
    670                         <input type="text" id="havenlytics_neighborhood" name="_havenlytics_neighborhood"
    671                             value="<?php echo esc_attr($values['neighborhood']); ?>" class="havenlytics-regular-text" />
    672                     </div>
    673                 </div>
    674 
    675                 <div class="havenlytics-meta-field">
    676                     <div class="havenlytics-meta-label">
    677                         <label for="havenlytics_school_district"><?php esc_html_e('School District', 'havenlytics'); ?></label>
    678                     </div>
    679                     <div class="havenlytics-meta-input">
    680                         <input type="text" id="havenlytics_school_district" name="_havenlytics_school_district"
    681                             value="<?php echo esc_attr($values['school_district']); ?>" class="havenlytics-regular-text" />
    682                     </div>
    683                 </div>
    684 
    685                 <div class="havenlytics-meta-field">
    686                     <div class="havenlytics-meta-label">
    687                         <label for="havenlytics_elementary_school"><?php esc_html_e('Elementary School', 'havenlytics'); ?></label>
    688                     </div>
    689                     <div class="havenlytics-meta-input">
    690                         <input type="text" id="havenlytics_elementary_school" name="_havenlytics_elementary_school"
    691                             value="<?php echo esc_attr($values['elementary_school']); ?>" class="havenlytics-regular-text" />
    692                     </div>
    693                 </div>
    694 
    695                 <div class="havenlytics-meta-field">
    696                     <div class="havenlytics-meta-label">
    697                         <label for="havenlytics_middle_school"><?php esc_html_e('Middle School', 'havenlytics'); ?></label>
    698                     </div>
    699                     <div class="havenlytics-meta-input">
    700                         <input type="text" id="havenlytics_middle_school" name="_havenlytics_middle_school"
    701                             value="<?php echo esc_attr($values['middle_school']); ?>" class="havenlytics-regular-text" />
    702                     </div>
    703                 </div>
    704 
    705                 <div class="havenlytics-meta-field">
    706                     <div class="havenlytics-meta-label">
    707                         <label for="havenlytics_high_school"><?php esc_html_e('High School', 'havenlytics'); ?></label>
    708                     </div>
    709                     <div class="havenlytics-meta-input">
    710                         <input type="text" id="havenlytics_high_school" name="_havenlytics_high_school"
    711                             value="<?php echo esc_attr($values['high_school']); ?>" class="havenlytics-regular-text" />
    712                     </div>
    713                 </div>
    714 
    715                 <div class="havenlytics-meta-field">
    716                     <div class="havenlytics-meta-label">
    717                         <label for="havenlytics_walk_score"><?php esc_html_e('Walk Score', 'havenlytics'); ?></label>
    718                     </div>
    719                     <div class="havenlytics-meta-input">
    720                         <input type="number" id="havenlytics_walk_score" name="_havenlytics_walk_score"
    721                             value="<?php echo esc_attr($values['walk_score']); ?>" min="0" max="100"
    722                             class="havenlytics-small-text" />
    723                     </div>
    724                 </div>
    725             </div>
    726         <?php
     652<div class="havenlytics-meta-container">
     653    <div class="havenlytics-meta-field">
     654        <div class="havenlytics-meta-label">
     655            <label for="havenlytics_latitude"><?php esc_html_e('Latitude', 'havenlytics'); ?></label>
     656        </div>
     657        <div class="havenlytics-meta-input">
     658            <input type="text" id="havenlytics_latitude" name="_havenlytics_latitude"
     659                value="<?php echo esc_attr($values['latitude']); ?>" class="havenlytics-regular-text" />
     660        </div>
     661    </div>
     662
     663    <div class="havenlytics-meta-field">
     664        <div class="havenlytics-meta-label">
     665            <label for="havenlytics_longitude"><?php esc_html_e('Longitude', 'havenlytics'); ?></label>
     666        </div>
     667        <div class="havenlytics-meta-input">
     668            <input type="text" id="havenlytics_longitude" name="_havenlytics_longitude"
     669                value="<?php echo esc_attr($values['longitude']); ?>" class="havenlytics-regular-text" />
     670        </div>
     671    </div>
     672
     673
     674
     675    <div class="havenlytics-meta-field">
     676        <div class="havenlytics-meta-label">
     677            <label for="havenlytics_neighborhood"><?php esc_html_e('Neighborhood', 'havenlytics'); ?></label>
     678        </div>
     679        <div class="havenlytics-meta-input">
     680            <input type="text" id="havenlytics_neighborhood" name="_havenlytics_neighborhood"
     681                value="<?php echo esc_attr($values['neighborhood']); ?>" class="havenlytics-regular-text" />
     682        </div>
     683    </div>
     684
     685    <div class="havenlytics-meta-field">
     686        <div class="havenlytics-meta-label">
     687            <label for="havenlytics_school_district"><?php esc_html_e('School District', 'havenlytics'); ?></label>
     688        </div>
     689        <div class="havenlytics-meta-input">
     690            <input type="text" id="havenlytics_school_district" name="_havenlytics_school_district"
     691                value="<?php echo esc_attr($values['school_district']); ?>" class="havenlytics-regular-text" />
     692        </div>
     693    </div>
     694
     695    <div class="havenlytics-meta-field">
     696        <div class="havenlytics-meta-label">
     697            <label for="havenlytics_elementary_school"><?php esc_html_e('Elementary School', 'havenlytics'); ?></label>
     698        </div>
     699        <div class="havenlytics-meta-input">
     700            <input type="text" id="havenlytics_elementary_school" name="_havenlytics_elementary_school"
     701                value="<?php echo esc_attr($values['elementary_school']); ?>" class="havenlytics-regular-text" />
     702        </div>
     703    </div>
     704
     705    <div class="havenlytics-meta-field">
     706        <div class="havenlytics-meta-label">
     707            <label for="havenlytics_middle_school"><?php esc_html_e('Middle School', 'havenlytics'); ?></label>
     708        </div>
     709        <div class="havenlytics-meta-input">
     710            <input type="text" id="havenlytics_middle_school" name="_havenlytics_middle_school"
     711                value="<?php echo esc_attr($values['middle_school']); ?>" class="havenlytics-regular-text" />
     712        </div>
     713    </div>
     714
     715    <div class="havenlytics-meta-field">
     716        <div class="havenlytics-meta-label">
     717            <label for="havenlytics_high_school"><?php esc_html_e('High School', 'havenlytics'); ?></label>
     718        </div>
     719        <div class="havenlytics-meta-input">
     720            <input type="text" id="havenlytics_high_school" name="_havenlytics_high_school"
     721                value="<?php echo esc_attr($values['high_school']); ?>" class="havenlytics-regular-text" />
     722        </div>
     723    </div>
     724
     725    <div class="havenlytics-meta-field">
     726        <div class="havenlytics-meta-label">
     727            <label for="havenlytics_walk_score"><?php esc_html_e('Walk Score', 'havenlytics'); ?></label>
     728        </div>
     729        <div class="havenlytics-meta-input">
     730            <input type="number" id="havenlytics_walk_score" name="_havenlytics_walk_score"
     731                value="<?php echo esc_attr($values['walk_score']); ?>" min="0" max="100"
     732                class="havenlytics-small-text" />
     733        </div>
     734    </div>
     735</div>
     736<?php
    727737        }
    728738
     
    736746            $virtual_tour_url = get_post_meta($post->ID, '_havenlytics_virtual_tour', true);
    737747        ?>
    738             <div class="havenlytics-meta-container havenlytics-meta-container-virtual-tour">
    739                 <div class="havenlytics-meta-field">
    740                     <div class="havenlytics-meta-label">
    741                         <label for="havenlytics_virtual_tour"><?php esc_html_e('Virtual Tour URL', 'havenlytics'); ?></label>
    742                     </div>
    743                     <div class="havenlytics-meta-input">
    744                         <input type="url" id="havenlytics_virtual_tour" name="_havenlytics_virtual_tour"
    745                             value="<?php echo esc_url($virtual_tour_url); ?>" class="widefat" placeholder="https://" />
    746                         <p class="description">
    747                             <?php esc_html_e('Enter URL for Matterport, YouTube, or other virtual tour service', 'havenlytics'); ?>
    748                         </p>
    749                     </div>
    750                 </div>
    751             </div>
    752         <?php
     748<div class="havenlytics-meta-container havenlytics-meta-container-virtual-tour">
     749    <div class="havenlytics-meta-field">
     750        <div class="havenlytics-meta-label">
     751            <label for="havenlytics_virtual_tour"><?php esc_html_e('Virtual Tour URL', 'havenlytics'); ?></label>
     752        </div>
     753        <div class="havenlytics-meta-input">
     754            <input type="url" id="havenlytics_virtual_tour" name="_havenlytics_virtual_tour"
     755                value="<?php echo esc_url($virtual_tour_url); ?>" class="widefat" placeholder="https://" />
     756            <p class="description">
     757                <?php esc_html_e('Enter URL for Matterport, YouTube, or other virtual tour service', 'havenlytics'); ?>
     758            </p>
     759        </div>
     760    </div>
     761</div>
     762<?php
    753763        }
    754764
     
    770780            $hav_property_custom_video_thumbnail  = get_post_meta($post->ID, '_havenlytics_property_custom_video_thumbnail', true);
    771781        ?>
    772             <div class="havenlytics-video-metabox">
    773                 <!-- Video Type Selector -->
    774                 <div class="havenlytics-meta-container havenlytics-meta-container-select">
    775                     <div class="havenlytics-meta-field">
    776                         <div class="havenlytics-meta-label">
    777                             <label
    778                                 for="havenlytics_property_video_type"><?php esc_html_e('Select Video Type', 'havenlytics'); ?></label>
    779                         </div>
    780                         <div class="havenlytics-meta-input">
    781                             <select id="havenlytics_property_video_type" name="_havenlytics_property_video_type" class="widefat">
    782                                 <option value="youtube" <?php selected($hav_property_video_type, 'youtube'); ?>>YouTube</option>
    783                                 <option value="vimeo" <?php selected($hav_property_video_type, 'vimeo'); ?>>Vimeo</option>
    784                                 <option value="custom" <?php selected($hav_property_video_type, 'custom'); ?>>Upload MP4</option>
    785                             </select>
    786                         </div>
     782<div class="havenlytics-video-metabox">
     783    <!-- Video Type Selector -->
     784    <div class="havenlytics-meta-container havenlytics-meta-container-select">
     785        <div class="havenlytics-meta-field">
     786            <div class="havenlytics-meta-label">
     787                <label
     788                    for="havenlytics_property_video_type"><?php esc_html_e('Select Video Type', 'havenlytics'); ?></label>
     789            </div>
     790            <div class="havenlytics-meta-input">
     791                <select id="havenlytics_property_video_type" name="_havenlytics_property_video_type" class="widefat">
     792                    <option value="youtube" <?php selected($hav_property_video_type, 'youtube'); ?>>YouTube</option>
     793                    <option value="vimeo" <?php selected($hav_property_video_type, 'vimeo'); ?>>Vimeo</option>
     794                    <option value="custom" <?php selected($hav_property_video_type, 'custom'); ?>>Upload MP4</option>
     795                </select>
     796            </div>
     797        </div>
     798    </div>
     799
     800    <!-- YouTube Fields -->
     801    <div class="havenlytics-meta-container havenlytics-meta-container-youtube">
     802        <div class="havenlytics-meta-field">
     803            <div class="havenlytics-meta-label">
     804                <label
     805                    for="havenlytics_property_youtube_title"><?php esc_html_e('Video Title', 'havenlytics'); ?></label>
     806            </div>
     807            <div class="havenlytics-meta-input">
     808                <input type="text" id="havenlytics_property_youtube_title" name="_havenlytics_property_youtube_title"
     809                    value="<?php echo esc_attr($hav_property_youtube_title); ?>" class="widefat" />
     810                <p class="description"><?php esc_html_e('Optional title for the video', 'havenlytics'); ?></p>
     811            </div>
     812        </div>
     813
     814        <div class="havenlytics-meta-field">
     815            <div class="havenlytics-meta-label">
     816                <label
     817                    for="havenlytics_property_youtube_url"><?php esc_html_e('YouTube Video URL', 'havenlytics'); ?></label>
     818            </div>
     819            <div class="havenlytics-meta-input">
     820                <input type="url" id="havenlytics_property_youtube_url" name="_havenlytics_property_youtube_url"
     821                    value="<?php echo esc_url($hav_property_youtube_url); ?>" class="widefat"
     822                    placeholder="https://www.youtube.com/watch?v=..." />
     823                <p class="description">
     824                    <?php esc_html_e('Enter the full YouTube video URL with ID or only the ID example here:AWovHEZcpQU', 'havenlytics'); ?>
     825                </p>
     826            </div>
     827        </div>
     828
     829        <div class="havenlytics-meta-field">
     830            <div class="havenlytics-meta-label">
     831                <label
     832                    for="havenlytics_property_youtube_thumbnail"><?php esc_html_e('YouTube Video Thumbnail', 'havenlytics'); ?></label>
     833            </div>
     834            <div class="havenlytics-meta-input">
     835                <input type="text" id="havenlytics_property_youtube_thumbnail"
     836                    name="_havenlytics_property_youtube_thumbnail"
     837                    value="<?php echo esc_url($hav_property_youtube_thumbnail); ?>" class="widefat" />
     838                <div class="havenlytics-preview-container">
     839                    <?php if ($hav_property_youtube_thumbnail) : ?>
     840                    <div class="havenlytics-preview-wrapper">
     841                        <img src="<?php echo esc_url($hav_property_youtube_thumbnail); ?>" alt="Thumbnail preview">
     842                        <button type="button" class="havenlytics-remove-preview"
     843                            data-target="#havenlytics_property_youtube_thumbnail">
     844                            <span class="dashicons dashicons-no-alt"></span>
     845                        </button>
    787846                    </div>
     847                    <?php endif; ?>
    788848                </div>
    789 
    790                 <!-- YouTube Fields -->
    791                 <div class="havenlytics-meta-container havenlytics-meta-container-youtube">
    792                     <div class="havenlytics-meta-field">
    793                         <div class="havenlytics-meta-label">
    794                             <label
    795                                 for="havenlytics_property_youtube_title"><?php esc_html_e('Video Title', 'havenlytics'); ?></label>
    796                         </div>
    797                         <div class="havenlytics-meta-input">
    798                             <input type="text" id="havenlytics_property_youtube_title" name="_havenlytics_property_youtube_title"
    799                                 value="<?php echo esc_attr($hav_property_youtube_title); ?>" class="widefat" />
    800                             <p class="description"><?php esc_html_e('Optional title for the video', 'havenlytics'); ?></p>
    801                         </div>
     849                <button class="button havenlytics-upload-button" data-target="#havenlytics_property_youtube_thumbnail"
     850                    data-type="image">
     851                    <?php esc_html_e('Upload Thumbnail', 'havenlytics'); ?>
     852                </button>
     853            </div>
     854        </div>
     855    </div>
     856
     857    <!-- Vimeo Fields -->
     858    <div class="havenlytics-meta-container havenlytics-meta-container-vimeo">
     859        <div class="havenlytics-meta-field">
     860            <div class="havenlytics-meta-label">
     861                <label
     862                    for="havenlytics_property_vimeo_url"><?php esc_html_e('Vimeo Video URL', 'havenlytics'); ?></label>
     863            </div>
     864            <div class="havenlytics-meta-input">
     865                <input type="url" id="havenlytics_property_vimeo_url" name="_havenlytics_property_vimeo_url"
     866                    value="<?php echo esc_url($hav_property_vimeo_url); ?>" class="widefat"
     867                    placeholder="https://vimeo.com/..." />
     868                <p class="description"><?php esc_html_e('Enter the full Vimeo video URL', 'havenlytics'); ?></p>
     869            </div>
     870        </div>
     871
     872        <div class="havenlytics-meta-field">
     873            <div class="havenlytics-meta-label">
     874                <label
     875                    for="havenlytics_property_vimeo_thumbnail"><?php esc_html_e('Vimeo Video Thumbnail', 'havenlytics'); ?></label>
     876            </div>
     877            <div class="havenlytics-meta-input">
     878                <input type="text" id="havenlytics_property_vimeo_thumbnail"
     879                    name="_havenlytics_property_vimeo_thumbnail"
     880                    value="<?php echo esc_url($hav_property_vimeo_thumbnail); ?>" class="widefat" />
     881                <div class="havenlytics-preview-container">
     882                    <?php if ($hav_property_vimeo_thumbnail) : ?>
     883                    <div class="havenlytics-preview-wrapper">
     884                        <img src="<?php echo esc_url($hav_property_vimeo_thumbnail); ?>" alt="Thumbnail preview">
     885                        <button type="button" class="havenlytics-remove-preview"
     886                            data-target="#havenlytics_property_vimeo_thumbnail">
     887                            <span class="dashicons dashicons-no-alt"></span>
     888                        </button>
    802889                    </div>
    803 
    804                     <div class="havenlytics-meta-field">
    805                         <div class="havenlytics-meta-label">
    806                             <label
    807                                 for="havenlytics_property_youtube_url"><?php esc_html_e('YouTube Video URL', 'havenlytics'); ?></label>
    808                         </div>
    809                         <div class="havenlytics-meta-input">
    810                             <input type="url" id="havenlytics_property_youtube_url" name="_havenlytics_property_youtube_url"
    811                                 value="<?php echo esc_url($hav_property_youtube_url); ?>" class="widefat"
    812                                 placeholder="https://www.youtube.com/watch?v=..." />
    813                             <p class="description">
    814                                 <?php esc_html_e('Enter the full YouTube video URL with ID or only the ID example here:AWovHEZcpQU', 'havenlytics'); ?>
    815                             </p>
    816                         </div>
     890                    <?php endif; ?>
     891                </div>
     892                <button class="button havenlytics-upload-button" data-target="#havenlytics_property_vimeo_thumbnail"
     893                    data-type="image">
     894                    <?php esc_html_e('Upload Thumbnail', 'havenlytics'); ?>
     895                </button>
     896            </div>
     897        </div>
     898    </div>
     899
     900    <!-- Custom MP4 Fields -->
     901    <div class="havenlytics-meta-container havenlytics-meta-container-custom">
     902        <div class="havenlytics-meta-field">
     903            <div class="havenlytics-meta-label">
     904                <label
     905                    for="havenlytics_property_custom_video"><?php esc_html_e('Upload MP4 Video', 'havenlytics'); ?></label>
     906            </div>
     907            <div class="havenlytics-meta-input">
     908                <input type="text" id="havenlytics_property_custom_video" name="_havenlytics_property_custom_video"
     909                    value="<?php echo esc_url($hav_property_custom_video); ?>" class="widefat" />
     910                <div class="havenlytics-preview-container">
     911                    <?php if ($hav_property_custom_video) : ?>
     912                    <div class="havenlytics-preview-wrapper">
     913                        <video controls>
     914                            <source src="<?php echo esc_url($hav_property_custom_video); ?>" type="video/mp4">
     915                        </video>
     916                        <button type="button" class="havenlytics-remove-preview"
     917                            data-target="#havenlytics_property_custom_video">
     918                            <span class="dashicons dashicons-no-alt"></span>
     919                        </button>
    817920                    </div>
    818 
    819                     <div class="havenlytics-meta-field">
    820                         <div class="havenlytics-meta-label">
    821                             <label
    822                                 for="havenlytics_property_youtube_thumbnail"><?php esc_html_e('YouTube Video Thumbnail', 'havenlytics'); ?></label>
    823                         </div>
    824                         <div class="havenlytics-meta-input">
    825                             <input type="text" id="havenlytics_property_youtube_thumbnail"
    826                                 name="_havenlytics_property_youtube_thumbnail"
    827                                 value="<?php echo esc_url($hav_property_youtube_thumbnail); ?>" class="widefat" />
    828                             <div class="havenlytics-preview-container">
    829                                 <?php if ($hav_property_youtube_thumbnail) : ?>
    830                                     <div class="havenlytics-preview-wrapper">
    831                                         <img src="<?php echo esc_url($hav_property_youtube_thumbnail); ?>" alt="Thumbnail preview">
    832                                         <button type="button" class="havenlytics-remove-preview"
    833                                             data-target="#havenlytics_property_youtube_thumbnail">
    834                                             <span class="dashicons dashicons-no-alt"></span>
    835                                         </button>
    836                                     </div>
    837                                 <?php endif; ?>
    838                             </div>
    839                             <button class="button havenlytics-upload-button" data-target="#havenlytics_property_youtube_thumbnail"
    840                                 data-type="image">
    841                                 <?php esc_html_e('Upload Thumbnail', 'havenlytics'); ?>
    842                             </button>
    843                         </div>
     921                    <?php endif; ?>
     922                </div>
     923                <button class="button havenlytics-upload-button" data-target="#havenlytics_property_custom_video"
     924                    data-type="video">
     925                    <?php esc_html_e('Upload Video', 'havenlytics'); ?>
     926                </button>
     927            </div>
     928        </div>
     929
     930        <div class="havenlytics-meta-field">
     931            <div class="havenlytics-meta-label">
     932                <label
     933                    for="havenlytics_property_custom_video_thumbnail"><?php esc_html_e('Custom Video Thumbnail', 'havenlytics'); ?></label>
     934            </div>
     935            <div class="havenlytics-meta-input">
     936                <input type="text" id="havenlytics_property_custom_video_thumbnail"
     937                    name="_havenlytics_property_custom_video_thumbnail"
     938                    value="<?php echo esc_url($hav_property_custom_video_thumbnail); ?>" class="widefat" />
     939                <div class="havenlytics-preview-container">
     940                    <?php if ($hav_property_custom_video_thumbnail) : ?>
     941                    <div class="havenlytics-preview-wrapper">
     942                        <img src="<?php echo esc_url($hav_property_custom_video_thumbnail); ?>" alt="Thumbnail preview">
     943                        <button type="button" class="havenlytics-remove-preview"
     944                            data-target="#havenlytics_property_custom_video_thumbnail">
     945                            <span class="dashicons dashicons-no-alt"></span>
     946                        </button>
    844947                    </div>
     948                    <?php endif; ?>
    845949                </div>
    846 
    847                 <!-- Vimeo Fields -->
    848                 <div class="havenlytics-meta-container havenlytics-meta-container-vimeo">
    849                     <div class="havenlytics-meta-field">
    850                         <div class="havenlytics-meta-label">
    851                             <label
    852                                 for="havenlytics_property_vimeo_url"><?php esc_html_e('Vimeo Video URL', 'havenlytics'); ?></label>
    853                         </div>
    854                         <div class="havenlytics-meta-input">
    855                             <input type="url" id="havenlytics_property_vimeo_url" name="_havenlytics_property_vimeo_url"
    856                                 value="<?php echo esc_url($hav_property_vimeo_url); ?>" class="widefat"
    857                                 placeholder="https://vimeo.com/..." />
    858                             <p class="description"><?php esc_html_e('Enter the full Vimeo video URL', 'havenlytics'); ?></p>
    859                         </div>
    860                     </div>
    861 
    862                     <div class="havenlytics-meta-field">
    863                         <div class="havenlytics-meta-label">
    864                             <label
    865                                 for="havenlytics_property_vimeo_thumbnail"><?php esc_html_e('Vimeo Video Thumbnail', 'havenlytics'); ?></label>
    866                         </div>
    867                         <div class="havenlytics-meta-input">
    868                             <input type="text" id="havenlytics_property_vimeo_thumbnail"
    869                                 name="_havenlytics_property_vimeo_thumbnail"
    870                                 value="<?php echo esc_url($hav_property_vimeo_thumbnail); ?>" class="widefat" />
    871                             <div class="havenlytics-preview-container">
    872                                 <?php if ($hav_property_vimeo_thumbnail) : ?>
    873                                     <div class="havenlytics-preview-wrapper">
    874                                         <img src="<?php echo esc_url($hav_property_vimeo_thumbnail); ?>" alt="Thumbnail preview">
    875                                         <button type="button" class="havenlytics-remove-preview"
    876                                             data-target="#havenlytics_property_vimeo_thumbnail">
    877                                             <span class="dashicons dashicons-no-alt"></span>
    878                                         </button>
    879                                     </div>
    880                                 <?php endif; ?>
    881                             </div>
    882                             <button class="button havenlytics-upload-button" data-target="#havenlytics_property_vimeo_thumbnail"
    883                                 data-type="image">
    884                                 <?php esc_html_e('Upload Thumbnail', 'havenlytics'); ?>
    885                             </button>
    886                         </div>
    887                     </div>
    888                 </div>
    889 
    890                 <!-- Custom MP4 Fields -->
    891                 <div class="havenlytics-meta-container havenlytics-meta-container-custom">
    892                     <div class="havenlytics-meta-field">
    893                         <div class="havenlytics-meta-label">
    894                             <label
    895                                 for="havenlytics_property_custom_video"><?php esc_html_e('Upload MP4 Video', 'havenlytics'); ?></label>
    896                         </div>
    897                         <div class="havenlytics-meta-input">
    898                             <input type="text" id="havenlytics_property_custom_video" name="_havenlytics_property_custom_video"
    899                                 value="<?php echo esc_url($hav_property_custom_video); ?>" class="widefat" />
    900                             <div class="havenlytics-preview-container">
    901                                 <?php if ($hav_property_custom_video) : ?>
    902                                     <div class="havenlytics-preview-wrapper">
    903                                         <video controls>
    904                                             <source src="<?php echo esc_url($hav_property_custom_video); ?>" type="video/mp4">
    905                                         </video>
    906                                         <button type="button" class="havenlytics-remove-preview"
    907                                             data-target="#havenlytics_property_custom_video">
    908                                             <span class="dashicons dashicons-no-alt"></span>
    909                                         </button>
    910                                     </div>
    911                                 <?php endif; ?>
    912                             </div>
    913                             <button class="button havenlytics-upload-button" data-target="#havenlytics_property_custom_video"
    914                                 data-type="video">
    915                                 <?php esc_html_e('Upload Video', 'havenlytics'); ?>
    916                             </button>
    917                         </div>
    918                     </div>
    919 
    920                     <div class="havenlytics-meta-field">
    921                         <div class="havenlytics-meta-label">
    922                             <label
    923                                 for="havenlytics_property_custom_video_thumbnail"><?php esc_html_e('Custom Video Thumbnail', 'havenlytics'); ?></label>
    924                         </div>
    925                         <div class="havenlytics-meta-input">
    926                             <input type="text" id="havenlytics_property_custom_video_thumbnail"
    927                                 name="_havenlytics_property_custom_video_thumbnail"
    928                                 value="<?php echo esc_url($hav_property_custom_video_thumbnail); ?>" class="widefat" />
    929                             <div class="havenlytics-preview-container">
    930                                 <?php if ($hav_property_custom_video_thumbnail) : ?>
    931                                     <div class="havenlytics-preview-wrapper">
    932                                         <img src="<?php echo esc_url($hav_property_custom_video_thumbnail); ?>" alt="Thumbnail preview">
    933                                         <button type="button" class="havenlytics-remove-preview"
    934                                             data-target="#havenlytics_property_custom_video_thumbnail">
    935                                             <span class="dashicons dashicons-no-alt"></span>
    936                                         </button>
    937                                     </div>
    938                                 <?php endif; ?>
    939                             </div>
    940                             <button class="button havenlytics-upload-button"
    941                                 data-target="#havenlytics_property_custom_video_thumbnail" data-type="image">
    942                                 <?php esc_html_e('Upload Thumbnail', 'havenlytics'); ?>
    943                             </button>
    944                         </div>
    945                     </div>
    946                 </div>
    947             </div>
    948 
    949 
    950 
    951         <?php
     950                <button class="button havenlytics-upload-button"
     951                    data-target="#havenlytics_property_custom_video_thumbnail" data-type="image">
     952                    <?php esc_html_e('Upload Thumbnail', 'havenlytics'); ?>
     953                </button>
     954            </div>
     955        </div>
     956    </div>
     957</div>
     958
     959
     960
     961<?php
    952962        }
    953963
     
    969979        ?>
    970980
    971             <!-- Book Property -->
    972             <div class="havenlytics-meta-container havenlytics_property_amenities havenlytics-meta-container-book">
    973                 <div class="havenlytics-meta-field">
    974                     <div class="havenlytics-meta-label">
    975                         <label
    976                             for="havenlytics_property_book_property"><?php esc_html_e('Book Property (Shortcode)', 'havenlytics'); ?></label>
    977                     </div>
    978                     <div class="havenlytics-meta-input">
    979                         <input type="text" id="havenlytics_property_book_property" name="_havenlytics_property_book_property"
    980                             class="widefat" value="<?php echo esc_attr($book_property); ?>"
    981                             placeholder="[contact-form-7 id='123']" />
    982 
    983                         <?php
     981<!-- Book Property -->
     982<div class="havenlytics-meta-container havenlytics_property_amenities havenlytics-meta-container-book">
     983    <div class="havenlytics-meta-field">
     984        <div class="havenlytics-meta-label">
     985            <label
     986                for="havenlytics_property_book_property"><?php esc_html_e('Book Property (Shortcode)', 'havenlytics'); ?></label>
     987        </div>
     988        <div class="havenlytics-meta-input">
     989            <input type="text" id="havenlytics_property_book_property" name="_havenlytics_property_book_property"
     990                class="widefat" value="<?php echo esc_attr($book_property); ?>"
     991                placeholder="[contact-form-7 id='123']" />
     992
     993            <?php
    984994                        $cf7_forms = get_posts([
    985995                            'post_type'   => 'wpcf7_contact_form',
     
    988998
    989999                        if (!empty($cf7_forms)) : ?>
    990                             <select class="widefat"
    991                                 onchange="document.getElementById('havenlytics_property_book_property').value = this.value;">
    992                                 <option value=""><?php esc_html_e('Select a Contact Form…', 'havenlytics'); ?></option>
    993                                 <?php foreach ($cf7_forms as $form) :
     1000            <select class="widefat"
     1001                onchange="document.getElementById('havenlytics_property_book_property').value = this.value;">
     1002                <option value=""><?php esc_html_e('Select a Contact Form…', 'havenlytics'); ?></option>
     1003                <?php foreach ($cf7_forms as $form) :
    9941004                                    $shortcode = '[contact-form-7 id="' . esc_attr($form->ID) . '"]';
    9951005                                    $selected = selected($book_property, $shortcode, false);
    9961006                                ?>
    997                                     <option value="<?php echo esc_attr($shortcode); ?>" <?php echo esc_attr($selected); ?>>
    998                                         <?php echo esc_html($form->post_title); ?>
    999                                     </option>
    1000                                 <?php endforeach; ?>
    1001                             </select>
    1002                         <?php endif; ?>
    1003                     </div>
    1004 
    1005 
    1006 
    1007 
    1008                 </div>
    1009 
    1010                 <div class="havenlytics-meta-field">
    1011                     <div class="havenlytics-meta-label">
    1012                         <label
    1013                             for="havenlytics_property_virtual_tour"><?php esc_html_e('Virtual Tour URL', 'havenlytics'); ?></label>
    1014                     </div>
    1015                     <div class="havenlytics-meta-input">
    1016                         <input type="url" id="havenlytics_property_virtual_tour" name="_havenlytics_property_virtual_tour"
    1017                             class="widefat" value="<?php echo esc_url($virtual_tour); ?>" placeholder="https://" />
    1018                         <p class="description">
    1019                             <?php esc_html_e('Enter URL for Matterport, YouTube, or other virtual tour service', 'havenlytics'); ?>
    1020                         </p>
    1021                     </div>
    1022                 </div>
    1023 
    1024                 <!-- Floorplan Image -->
    1025                 <div class="havenlytics-meta-field">
    1026                     <div class="havenlytics-meta-label">
    1027                         <label
    1028                             for="havenlytics_property_floorplan_img"><?php esc_html_e('Floorplan Image URL', 'havenlytics'); ?></label>
    1029                     </div>
    1030                     <div class="havenlytics-meta-input havenlytics-popup-meta-input">
    1031                         <input type="url" id="havenlytics_property_floorplan_img" name="_havenlytics_property_floorplan_img"
    1032                             class="widefat" value="<?php echo esc_url($floorplan_img); ?>" />
    1033                         <button type="button" class="button havenlytics-popup-upload-button"
    1034                             data-target="#havenlytics_property_floorplan_img" data-type="image">
    1035                             <?php esc_html_e('Upload Image', 'havenlytics'); ?>
    1036                         </button>
    1037 
    1038                         <div class="havenlytics-popup-preview-container"></div>
    1039                     </div>
    1040                 </div>
    1041 
    1042                 <!-- Brochure PDF -->
    1043                 <div class="havenlytics-meta-field">
    1044                     <div class="havenlytics-meta-label">
    1045                         <label
    1046                             for="havenlytics_property_brochure_pdf"><?php esc_html_e('Brochure PDF URL', 'havenlytics'); ?></label>
    1047                     </div>
    1048                     <div class="havenlytics-meta-input havenlytics-popup-meta-input">
    1049                         <input type="url" id="havenlytics_property_brochure_pdf" name="_havenlytics_property_brochure_pdf"
    1050                             class="widefat" value="<?php echo esc_url($brochure_pdf); ?>" />
    1051                         <button type="button" class="button havenlytics-popup-upload-button"
    1052                             data-target="#havenlytics_property_brochure_pdf" data-type="pdf">
    1053                             <?php esc_html_e('Upload PDF', 'havenlytics'); ?>
    1054                         </button>
    1055                         <div class="havenlytics-popup-preview-container"></div>
    1056                     </div>
    1057                 </div>
    1058 
    1059                 <!-- EPC PDF -->
    1060                 <div class="havenlytics-meta-field">
    1061                     <div class="havenlytics-meta-label">
    1062                         <label for="havenlytics_property_epc_pdf"><?php esc_html_e('EPC PDF URL', 'havenlytics'); ?></label>
    1063                     </div>
    1064                     <div class="havenlytics-meta-input havenlytics-popup-meta-input">
    1065                         <input type="url" id="havenlytics_property_epc_pdf" name="_havenlytics_property_epc_pdf" class="widefat"
    1066                             value="<?php echo esc_url($epc_pdf); ?>" />
    1067                         <button type="button" class="button havenlytics-popup-upload-button"
    1068                             data-target="#havenlytics_property_epc_pdf" data-type="pdf">
    1069                             <?php esc_html_e('Upload PDF', 'havenlytics'); ?>
    1070                         </button>
    1071                         <div class="havenlytics-popup-preview-container"></div>
    1072                     </div>
    1073                 </div>
    1074 
    1075 
    1076                 <div class="havenlytics-meta-field">
    1077                     <div class="havenlytics-meta-label">
    1078                         <label for="havenlytics_property_map_url"><?php esc_html_e('Google Map URL', 'havenlytics'); ?></label>
    1079                     </div>
    1080                     <div class="havenlytics-meta-input">
    1081                         <input type="url" id="havenlytics_property_map_url" name="_havenlytics_property_map_url" class="widefat"
    1082                             value="<?php echo esc_url($map_url); ?>" placeholder="https://maps.google.com/..." />
    1083                     </div>
    1084                 </div>
    1085 
    1086                 <div class="havenlytics-meta-field">
    1087                     <div class="havenlytics-meta-label">
    1088                         <label
    1089                             for="havenlytics_property_request_call"><?php esc_html_e('Request Call Back (Shortcode)', 'havenlytics'); ?></label>
    1090                     </div>
    1091                     <div class="havenlytics-meta-input">
    1092                         <input type="text" id="havenlytics_property_request_call" name="_havenlytics_property_request_call"
    1093                             class="widefat" value="<?php echo esc_attr($request_call); ?>"
    1094                             placeholder="[contact-form-7 id='456']" />
    1095 
    1096                         <?php
     1007                <option value="<?php echo esc_attr($shortcode); ?>" <?php echo esc_attr($selected); ?>>
     1008                    <?php echo esc_html($form->post_title); ?>
     1009                </option>
     1010                <?php endforeach; ?>
     1011            </select>
     1012            <?php endif; ?>
     1013        </div>
     1014
     1015
     1016
     1017
     1018    </div>
     1019
     1020    <div class="havenlytics-meta-field">
     1021        <div class="havenlytics-meta-label">
     1022            <label
     1023                for="havenlytics_property_virtual_tour"><?php esc_html_e('Virtual Tour URL', 'havenlytics'); ?></label>
     1024        </div>
     1025        <div class="havenlytics-meta-input">
     1026            <input type="url" id="havenlytics_property_virtual_tour" name="_havenlytics_property_virtual_tour"
     1027                class="widefat" value="<?php echo esc_url($virtual_tour); ?>" placeholder="https://" />
     1028            <p class="description">
     1029                <?php esc_html_e('Enter URL for Matterport, YouTube, or other virtual tour service', 'havenlytics'); ?>
     1030            </p>
     1031        </div>
     1032    </div>
     1033
     1034    <!-- Floorplan Image -->
     1035    <div class="havenlytics-meta-field">
     1036        <div class="havenlytics-meta-label">
     1037            <label
     1038                for="havenlytics_property_floorplan_img"><?php esc_html_e('Floorplan Image URL', 'havenlytics'); ?></label>
     1039        </div>
     1040        <div class="havenlytics-meta-input havenlytics-popup-meta-input">
     1041            <input type="url" id="havenlytics_property_floorplan_img" name="_havenlytics_property_floorplan_img"
     1042                class="widefat" value="<?php echo esc_url($floorplan_img); ?>" />
     1043            <button type="button" class="button havenlytics-popup-upload-button"
     1044                data-target="#havenlytics_property_floorplan_img" data-type="image">
     1045                <?php esc_html_e('Upload Image', 'havenlytics'); ?>
     1046            </button>
     1047
     1048            <div class="havenlytics-popup-preview-container"></div>
     1049        </div>
     1050    </div>
     1051
     1052    <!-- Brochure PDF -->
     1053    <div class="havenlytics-meta-field">
     1054        <div class="havenlytics-meta-label">
     1055            <label
     1056                for="havenlytics_property_brochure_pdf"><?php esc_html_e('Brochure PDF URL', 'havenlytics'); ?></label>
     1057        </div>
     1058        <div class="havenlytics-meta-input havenlytics-popup-meta-input">
     1059            <input type="url" id="havenlytics_property_brochure_pdf" name="_havenlytics_property_brochure_pdf"
     1060                class="widefat" value="<?php echo esc_url($brochure_pdf); ?>" />
     1061            <button type="button" class="button havenlytics-popup-upload-button"
     1062                data-target="#havenlytics_property_brochure_pdf" data-type="pdf">
     1063                <?php esc_html_e('Upload PDF', 'havenlytics'); ?>
     1064            </button>
     1065            <div class="havenlytics-popup-preview-container"></div>
     1066        </div>
     1067    </div>
     1068
     1069    <!-- EPC PDF -->
     1070    <div class="havenlytics-meta-field">
     1071        <div class="havenlytics-meta-label">
     1072            <label for="havenlytics_property_epc_pdf"><?php esc_html_e('EPC PDF URL', 'havenlytics'); ?></label>
     1073        </div>
     1074        <div class="havenlytics-meta-input havenlytics-popup-meta-input">
     1075            <input type="url" id="havenlytics_property_epc_pdf" name="_havenlytics_property_epc_pdf" class="widefat"
     1076                value="<?php echo esc_url($epc_pdf); ?>" />
     1077            <button type="button" class="button havenlytics-popup-upload-button"
     1078                data-target="#havenlytics_property_epc_pdf" data-type="pdf">
     1079                <?php esc_html_e('Upload PDF', 'havenlytics'); ?>
     1080            </button>
     1081            <div class="havenlytics-popup-preview-container"></div>
     1082        </div>
     1083    </div>
     1084
     1085
     1086    <div class="havenlytics-meta-field">
     1087        <div class="havenlytics-meta-label">
     1088            <label for="havenlytics_property_map_url"><?php esc_html_e('Google Map URL', 'havenlytics'); ?></label>
     1089        </div>
     1090        <div class="havenlytics-meta-input">
     1091            <input type="url" id="havenlytics_property_map_url" name="_havenlytics_property_map_url" class="widefat"
     1092                value="<?php echo esc_url($map_url); ?>" placeholder="https://maps.google.com/..." />
     1093        </div>
     1094    </div>
     1095
     1096    <div class="havenlytics-meta-field">
     1097        <div class="havenlytics-meta-label">
     1098            <label
     1099                for="havenlytics_property_request_call"><?php esc_html_e('Request Call Back (Shortcode)', 'havenlytics'); ?></label>
     1100        </div>
     1101        <div class="havenlytics-meta-input">
     1102            <input type="text" id="havenlytics_property_request_call" name="_havenlytics_property_request_call"
     1103                class="widefat" value="<?php echo esc_attr($request_call); ?>"
     1104                placeholder="[contact-form-7 id='456']" />
     1105
     1106            <?php
    10971107
    10981108
    10991109                        if (!empty($cf7_forms)) : ?>
    1100                             <select class="widefat"
    1101                                 onchange="document.getElementById('havenlytics_property_request_call').value = this.value;">
    1102                                 <option value=""><?php esc_html_e('Select a Contact Form…', 'havenlytics'); ?></option>
    1103                                 <?php foreach ($cf7_forms as $form) :
     1110            <select class="widefat"
     1111                onchange="document.getElementById('havenlytics_property_request_call').value = this.value;">
     1112                <option value=""><?php esc_html_e('Select a Contact Form…', 'havenlytics'); ?></option>
     1113                <?php foreach ($cf7_forms as $form) :
    11041114                                    $shortcode = '[contact-form-7 id="' . esc_attr($form->ID) . '"]';
    11051115                                    $selected = selected($request_call, $shortcode, false);
    11061116                                ?>
    1107                                     <option value="<?php echo esc_attr($shortcode); ?>" <?php echo esc_attr($selected); ?>>
    1108                                         <?php echo esc_html($form->post_title); ?>
    1109                                     </option>
    1110                                 <?php endforeach; ?>
    1111                             </select>
    1112                         <?php endif; ?>
    1113                     </div>
    1114                 </div>
    1115 
    1116                 <div class="havenlytics-meta-field">
    1117                     <div class="havenlytics-meta-label">
    1118                         <label
    1119                             for="havenlytics_property_arrange_view"><?php esc_html_e('Arrange Viewing (Shortcode)', 'havenlytics'); ?></label>
    1120                     </div>
    1121                     <div class="havenlytics-meta-input">
    1122                         <input type="text" id="havenlytics_property_arrange_view" name="_havenlytics_property_arrange_view"
    1123                             class="widefat" value="<?php echo esc_attr($arrange_view); ?>"
    1124                             placeholder="[contact-form-7 id='789']" />
    1125 
    1126                         <?php
     1117                <option value="<?php echo esc_attr($shortcode); ?>" <?php echo esc_attr($selected); ?>>
     1118                    <?php echo esc_html($form->post_title); ?>
     1119                </option>
     1120                <?php endforeach; ?>
     1121            </select>
     1122            <?php endif; ?>
     1123        </div>
     1124    </div>
     1125
     1126    <div class="havenlytics-meta-field">
     1127        <div class="havenlytics-meta-label">
     1128            <label
     1129                for="havenlytics_property_arrange_view"><?php esc_html_e('Arrange Viewing (Shortcode)', 'havenlytics'); ?></label>
     1130        </div>
     1131        <div class="havenlytics-meta-input">
     1132            <input type="text" id="havenlytics_property_arrange_view" name="_havenlytics_property_arrange_view"
     1133                class="widefat" value="<?php echo esc_attr($arrange_view); ?>"
     1134                placeholder="[contact-form-7 id='789']" />
     1135
     1136            <?php
    11271137                        if (!empty($cf7_forms)) : ?>
    1128                             <select class="widefat"
    1129                                 onchange="document.getElementById('havenlytics_property_arrange_view').value = this.value;">
    1130                                 <option value=""><?php esc_html_e('Select a Contact Form…', 'havenlytics'); ?></option>
    1131                                 <?php foreach ($cf7_forms as $form) :
     1138            <select class="widefat"
     1139                onchange="document.getElementById('havenlytics_property_arrange_view').value = this.value;">
     1140                <option value=""><?php esc_html_e('Select a Contact Form…', 'havenlytics'); ?></option>
     1141                <?php foreach ($cf7_forms as $form) :
    11321142                                    $shortcode = '[contact-form-7 id="' . esc_attr($form->ID) . '"]';
    11331143                                    $selected = selected($arrange_view, $shortcode, false);
    11341144                                ?>
    1135                                     <option value="<?php echo esc_attr($shortcode); ?>" <?php echo esc_attr($selected); ?>>
    1136                                         <?php echo esc_html($form->post_title); ?>
    1137                                     </option>
    1138                                 <?php endforeach; ?>
    1139                             </select>
    1140                         <?php endif; ?>
    1141                     </div>
    1142                 </div>
    1143 
    1144             </div>
    1145 
    1146         <?php
     1145                <option value="<?php echo esc_attr($shortcode); ?>" <?php echo esc_attr($selected); ?>>
     1146                    <?php echo esc_html($form->post_title); ?>
     1147                </option>
     1148                <?php endforeach; ?>
     1149            </select>
     1150            <?php endif; ?>
     1151        </div>
     1152    </div>
     1153
     1154</div>
     1155
     1156<?php
    11471157        }
    11481158
     
    11601170            $gallery_images = !empty($gallery_images) ? explode(',', $gallery_images) : array();
    11611171        ?>
    1162             <div class="havenlytics-gallery-container">
    1163                 <div class="havenlytics-gallery-instructions">
    1164                     <?php esc_html_e('Add images to your property gallery. Drag to reorder.', 'havenlytics'); ?>
    1165                 </div>
    1166 
    1167                 <ul class="havenlytics-gallery-images" id="havenlytics-gallery-list">
    1168                     <?php
     1172<div class="havenlytics-gallery-container">
     1173    <div class="havenlytics-gallery-instructions">
     1174        <?php esc_html_e('Add images to your property gallery. Drag to reorder.', 'havenlytics'); ?>
     1175    </div>
     1176
     1177    <ul class="havenlytics-gallery-images" id="havenlytics-gallery-list">
     1178        <?php
    11691179                    if (!empty($gallery_images)) :
    11701180                        foreach ($gallery_images as $image_id) :
     
    11731183                                $attachment = get_post($image_id);
    11741184                    ?>
    1175                                 <li class="havenlytics-gallery-item" data-id="<?php echo esc_attr($image_id); ?>">
    1176                                     <img src="<?php echo esc_url($image[0]); ?>" alt="<?php echo esc_attr($attachment->post_title); ?>" />
    1177                                     <div class="havenlytics-gallery-item-actions">
    1178                                         <a href="#" class="havenlytics-gallery-edit" title="<?php esc_html_e('Edit Image', 'havenlytics'); ?>">
    1179                                             <span class="dashicons dashicons-edit"></span>
    1180                                         </a>
    1181                                         <a href="#" class="havenlytics-gallery-remove"
    1182                                             title="<?php esc_html_e('Remove Image', 'havenlytics'); ?>">
    1183                                             <span class="dashicons dashicons-no"></span>
    1184                                         </a>
    1185                                     </div>
    1186                                     <input type="hidden" name="havenlytics_gallery_title[]"
    1187                                         value="<?php echo esc_attr($attachment->post_title); ?>" />
    1188                                     <input type="hidden" name="havenlytics_gallery_caption[]"
    1189                                         value="<?php echo esc_attr($attachment->post_excerpt); ?>" />
    1190                                 </li>
    1191                     <?php endif;
     1185        <li class="havenlytics-gallery-item" data-id="<?php echo esc_attr($image_id); ?>">
     1186            <img src="<?php echo esc_url($image[0]); ?>" alt="<?php echo esc_attr($attachment->post_title); ?>" />
     1187            <div class="havenlytics-gallery-item-actions">
     1188                <a href="#" class="havenlytics-gallery-edit" title="<?php esc_html_e('Edit Image', 'havenlytics'); ?>">
     1189                    <span class="dashicons dashicons-edit"></span>
     1190                </a>
     1191                <a href="#" class="havenlytics-gallery-remove"
     1192                    title="<?php esc_html_e('Remove Image', 'havenlytics'); ?>">
     1193                    <span class="dashicons dashicons-no"></span>
     1194                </a>
     1195            </div>
     1196            <input type="hidden" name="havenlytics_gallery_title[]"
     1197                value="<?php echo esc_attr($attachment->post_title); ?>" />
     1198            <input type="hidden" name="havenlytics_gallery_caption[]"
     1199                value="<?php echo esc_attr($attachment->post_excerpt); ?>" />
     1200        </li>
     1201        <?php endif;
    11921202                        endforeach;
    11931203                    endif; ?>
    1194                 </ul>
    1195 
    1196                 <input type="hidden" id="havenlytics_gallery" name="_havenlytics_gallery"
    1197                     value="<?php echo esc_attr(implode(',', $gallery_images)); ?>" />
    1198 
    1199                 <div class="havenlytics-gallery-actions">
    1200                     <button type="button" class="button button-primary havenlytics-add-gallery">
    1201                         <span class="dashicons dashicons-plus"></span>
    1202                         <?php esc_html_e('Add Images', 'havenlytics'); ?>
    1203                     </button>
    1204 
    1205                     <button type="button" class="button havenlytics-clear-gallery">
    1206                         <span class="dashicons dashicons-trash"></span>
    1207                         <?php esc_html_e('Clear Gallery', 'havenlytics'); ?>
    1208                     </button>
    1209                 </div>
    1210             </div>
     1204    </ul>
     1205
     1206    <input type="hidden" id="havenlytics_gallery" name="_havenlytics_gallery"
     1207        value="<?php echo esc_attr(implode(',', $gallery_images)); ?>" />
     1208
     1209    <div class="havenlytics-gallery-actions">
     1210        <button type="button" class="button button-primary havenlytics-add-gallery">
     1211            <span class="dashicons dashicons-plus"></span>
     1212            <?php esc_html_e('Add Images', 'havenlytics'); ?>
     1213        </button>
     1214
     1215        <button type="button" class="button havenlytics-clear-gallery">
     1216            <span class="dashicons dashicons-trash"></span>
     1217            <?php esc_html_e('Clear Gallery', 'havenlytics'); ?>
     1218        </button>
     1219    </div>
     1220</div>
     1221<?php
     1222        }
     1223
     1224        /**
     1225         * Render featured metabox
     1226         */
     1227        public static function havenlytics_render_featured_metabox($post)
     1228        {
     1229            $property_featured_item = get_post_meta($post->ID, '_havenlytics_property_featured_item', true);
     1230        ?>
     1231<div class="havenlytics_property_featured">
     1232    <div class="havenlytics-meta-field">
     1233        <div class="havenlytics-meta-input">
     1234            <input type="hidden" name="havenlytics_property_featured_item" value="0">
     1235            <label class="havenlytics-featured-toggle">
     1236                <input type="checkbox" name="havenlytics_property_featured_item" value="1"
     1237                    <?php echo esc_attr(checked($property_featured_item, '1', false)); ?>>
     1238                <span class="havenlytics-featured-slider"></span>
     1239                <span class="havenlytics-featured-label">
     1240                    <span class="havenlytics-featured-off"><?php esc_html_e('Off', 'havenlytics'); ?></span>
     1241                    <span class="havenlytics-featured-on"><?php esc_html_e('On', 'havenlytics'); ?></span>
     1242                </span>
     1243            </label>
     1244        </div>
     1245    </div>
     1246</div>
    12111247<?php
    12121248        }
     
    13971433            }
    13981434
     1435            // Featured property field
     1436            if (isset($_POST['havenlytics_property_featured_item'])) {
     1437                $featured_item = sanitize_text_field(wp_unslash($_POST['havenlytics_property_featured_item']));
     1438                update_post_meta($post_id, '_havenlytics_property_featured_item', $featured_item);
     1439            } else {
     1440                delete_post_meta($post_id, '_havenlytics_property_featured_item');
     1441            }
     1442
     1443
    13991444            // Property Amenities
    14001445            $fields = [
  • havenlytics/trunk/public/assets/js/havenlytics-frontend-scripts.js

    r3325794 r3332499  
    584584        }
    585585
     586        // Property Featured Carousel
     587        $(document).ready(function(){
     588            var $carousel = $('.havenlytics_carousel');
     589            var $dots = $('.havenlytics_dot');
     590           
     591            $carousel.owlCarousel({
     592                loop: true,
     593                margin: 15,
     594                nav: false,
     595                dots: false,
     596                autoplay: false,
     597                autoplayTimeout: 5000,
     598                autoplayHoverPause: true,
     599                items: 1,
     600                smartSpeed: 450
     601            });
     602           
     603            // Custom navigation
     604            $('.havenlytics_prev').click(function() {
     605                $carousel.trigger('prev.owl.carousel');
     606            });
     607           
     608            $('.havenlytics_next').click(function() {
     609                $carousel.trigger('next.owl.carousel');
     610            });
     611           
     612            // Update dots on change
     613            $carousel.on('changed.owl.carousel', function(event) {
     614                var current = event.item.index;
     615                $dots.removeClass('active');
     616                $dots.eq(current % $dots.length).addClass('active');
     617            });
     618           
     619            // Click on dots
     620            $dots.each(function(index) {
     621                $(this).click(function() {
     622                    $carousel.trigger('to.owl.carousel', [index, 300]);
     623                });
     624            });
     625        });
    586626
    587627
  • havenlytics/trunk/public/class-frontend-assets.php

    r3324509 r3332499  
    7474            if (is_singular('hvnly_property')) {
    7575
     76                // ✅ Property property-featured-carousel CSS
     77                wp_enqueue_style(
     78                    'havenlytics-property-featured-carousel',
     79                    HVNLY_PROPERTY_URL . 'public/assets/css/havenlytics-property-featured-carousel.css',
     80                    [],
     81                    HVNLY_PROPERTY_VERSION
     82                );
    7683                // ✅ Property property-related-carousel CSS
    7784                wp_enqueue_style(
  • havenlytics/trunk/readme.txt

    r3325794 r3332499  
    66Tested up to: 6.8
    77Requires PHP: 7.2 
    8 Stable tag: 1.0.5
     8Stable tag: 1.0.6
    99License: GPLv2 or later
    1010License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    139139== Changelog ==
    140140
     141= 1.0.6 =
     142* Introduced dynamic rendering of featured properties in the single property widget carousel.
     143* Added option to enable or disable "Featured Property" for individual listings via the property edit screen.
     144* Pagination dots for the carousel now generate automatically based on the number of featured properties.
     145
     146
    141147= 1.0.5 =
    142148* Added feedback form link in plugin readme
  • havenlytics/trunk/templates/hvnly_property-single.php

    r3325794 r3332499  
    120120    ?>
    121121
    122         <div class="container">
    123             <!-- Property Gallery with Prefix -->
    124             <div class="havenlytics_property_single">
    125                 <div class="property-gallery">
    126                     <?php if (!empty($gallery_images)) : ?>
    127                         <div class="gallery-main">
    128                             <?php foreach ($gallery_images as $index => $image_id) : ?>
    129                                 <div class="gallery-slide <?php echo $index === 0 ? 'active' : ''; ?>"
    130                                     style="background-image: url('<?php echo esc_url(wp_get_attachment_image_url($image_id, 'large')); ?>')">
    131                                 </div>
    132 
    133                             <?php endforeach; ?>
    134 
    135                             <div class="gallery-counter">1/<?php echo count($gallery_images); ?></div>
    136                             <div class="transition-indicator"></div>
    137 
    138                             <div class="gallery-controls">
    139                                 <button class="gallery-btn prev-btn">
    140                                     <i class="fas fa-chevron-left"></i>
    141                                 </button>
    142                                 <button class="gallery-btn next-btn">
    143                                     <i class="fas fa-chevron-right"></i>
    144                                 </button>
    145                             </div>
    146                         </div>
    147 
    148                         <div class="thumbnail-container">
    149                             <?php foreach ($gallery_images as $index => $image_id) : ?>
    150                                 <div class="property-thumbnail <?php echo $index === 0 ? 'active' : ''; ?>"
    151                                     data-index="<?php echo esc_attr($index); ?>"
    152                                     style="background-image: url('<?php echo esc_url(wp_get_attachment_image_url($image_id, 'thumbnail')); ?>')">
    153                                 </div>
    154                             <?php endforeach; ?>
    155                         </div>
    156 
    157                     <?php elseif (has_post_thumbnail($property_id)) : ?>
    158                         <div class="gallery-main">
    159                             <div class="gallery-slide active"
    160                                 style="background-image: url('<?php echo esc_url(get_the_post_thumbnail_url($property_id, 'large')); ?>')">
    161                             </div>
    162 
    163                             <div class="gallery-counter">1/1</div>
    164                             <div class="transition-indicator"></div>
    165 
    166                             <div class="gallery-controls">
    167                                 <button class="gallery-btn prev-btn">
    168                                     <i class="fas fa-chevron-left"></i>
    169                                 </button>
    170                                 <button class="gallery-btn next-btn">
    171                                     <i class="fas fa-chevron-right"></i>
    172                                 </button>
    173                             </div>
    174                         </div>
    175 
    176                         <div class="thumbnail-container">
    177                             <div class="property-thumbnail active" data-index="0"
    178                                 style="background-image: url('<?php echo esc_url(get_the_post_thumbnail_url($property_id, 'thumbnail')); ?>')">
    179                             </div>
    180                         </div>
    181 
    182                     <?php else : ?>
    183                         <div class="gallery-main">
    184                             <div class="gallery-slide active"
    185                                 style="background-image: url('<?php echo esc_url(HVNLY_PROPERTY_URL . 'public/assets/img/no-thumb.png'); ?>')">
    186                             </div>
    187                             <div class="gallery-counter">0/0</div>
    188                         </div>
    189                     <?php endif; ?>
    190                 </div>
    191 
    192                 <!-- Property Header -->
    193                 <div class="property-header">
    194                     <div>
    195                         <h1 class="property-title"><?php the_title(); ?></h1>
    196                         <div class="property-address">
    197                             <i class="fas fa-map-marker-alt"></i>
    198                             <?php echo esc_html($address); ?>
    199                         </div>
    200                         <div class="property-uptodate">
    201                             <i class="fas fa-calendar"></i>
    202                             <?php
     122    <div class="container">
     123        <!-- Property Gallery with Prefix -->
     124        <div class="havenlytics_property_single">
     125            <div class="property-gallery">
     126                <?php if (!empty($gallery_images)) : ?>
     127                <div class="gallery-main">
     128                    <?php foreach ($gallery_images as $index => $image_id) : ?>
     129                    <div class="gallery-slide <?php echo $index === 0 ? 'active' : ''; ?>"
     130                        style="background-image: url('<?php echo esc_url(wp_get_attachment_image_url($image_id, 'large')); ?>')">
     131                    </div>
     132
     133                    <?php endforeach; ?>
     134
     135                    <div class="gallery-counter">1/<?php echo count($gallery_images); ?></div>
     136                    <div class="transition-indicator"></div>
     137
     138                    <div class="gallery-controls">
     139                        <button class="gallery-btn prev-btn">
     140                            <i class="fas fa-chevron-left"></i>
     141                        </button>
     142                        <button class="gallery-btn next-btn">
     143                            <i class="fas fa-chevron-right"></i>
     144                        </button>
     145                    </div>
     146                </div>
     147
     148                <div class="thumbnail-container">
     149                    <?php foreach ($gallery_images as $index => $image_id) : ?>
     150                    <div class="property-thumbnail <?php echo $index === 0 ? 'active' : ''; ?>"
     151                        data-index="<?php echo esc_attr($index); ?>"
     152                        style="background-image: url('<?php echo esc_url(wp_get_attachment_image_url($image_id, 'thumbnail')); ?>')">
     153                    </div>
     154                    <?php endforeach; ?>
     155                </div>
     156
     157                <?php elseif (has_post_thumbnail($property_id)) : ?>
     158                <div class="gallery-main">
     159                    <div class="gallery-slide active"
     160                        style="background-image: url('<?php echo esc_url(get_the_post_thumbnail_url($property_id, 'large')); ?>')">
     161                    </div>
     162
     163                    <div class="gallery-counter">1/1</div>
     164                    <div class="transition-indicator"></div>
     165
     166                    <div class="gallery-controls">
     167                        <button class="gallery-btn prev-btn">
     168                            <i class="fas fa-chevron-left"></i>
     169                        </button>
     170                        <button class="gallery-btn next-btn">
     171                            <i class="fas fa-chevron-right"></i>
     172                        </button>
     173                    </div>
     174                </div>
     175
     176                <div class="thumbnail-container">
     177                    <div class="property-thumbnail active" data-index="0"
     178                        style="background-image: url('<?php echo esc_url(get_the_post_thumbnail_url($property_id, 'thumbnail')); ?>')">
     179                    </div>
     180                </div>
     181
     182                <?php else : ?>
     183                <div class="gallery-main">
     184                    <div class="gallery-slide active"
     185                        style="background-image: url('<?php echo esc_url(HVNLY_PROPERTY_URL . 'public/assets/img/no-thumb.png'); ?>')">
     186                    </div>
     187                    <div class="gallery-counter">0/0</div>
     188                </div>
     189                <?php endif; ?>
     190            </div>
     191
     192            <!-- Property Header -->
     193            <div class="property-header">
     194                <div>
     195                    <h1 class="property-title"><?php the_title(); ?></h1>
     196                    <div class="property-address">
     197                        <i class="fas fa-map-marker-alt"></i>
     198                        <?php echo esc_html($address); ?>
     199                    </div>
     200                    <div class="property-uptodate">
     201                        <i class="fas fa-calendar"></i>
     202                        <?php
    203203                            $updated_time = get_the_modified_time('U'); // Get UNIX timestamp
    204204                            $current_time = current_time('timestamp'); // Current timestamp according to WordPress time zone
     
    212212                            }
    213213                            ?>
    214                         </div>
    215 
    216 
    217                     </div>
    218 
    219 
    220                     <div class="property-price">
    221                         <?php echo esc_html($currency_symbol); ?> <?php echo esc_html($price); ?>
    222                     </div>
    223 
    224 
    225                 </div>
    226 
    227 
    228 
    229                 <div class="row">
    230                     <div class="col-lg-8">
    231 
    232                         <!-- Property Overview -->
    233                         <div class="property-details-card">
    234                             <h2 class="section-title">Overview</h2>
    235 
    236                             <div class="row">
    237                                 <div class="col-lg-4 col-md-6">
    238 
    239                                     <?php if ($bedrooms) : ?>
    240                                         <div class="detail-item">
    241                                             <div class="detail-icon">
    242                                                 <i class="fas fa-bed"></i>
    243                                             </div>
    244                                             <div class="detail-content">
    245                                                 <h4><?php esc_html_e('Bedrooms', 'havenlytics'); ?></h4>
    246                                                 <p><?php echo esc_html($bedrooms); ?></p>
    247                                             </div>
    248                                         </div>
    249                                     <?php endif; ?>
    250 
    251                                     <?php if ($sqft) : ?>
    252                                         <div class="detail-item">
    253                                             <div class="detail-icon">
    254                                                 <i class="fas fa-ruler-combined"></i>
    255                                             </div>
    256                                             <div class="detail-content">
    257                                                 <h4>
    258                                                     <?php esc_html_e('Square Feet', 'havenlytics'); ?></h4>
    259                                                 <p> <?php echo esc_html($sqft); ?>
    260                                                     <?php esc_html_e('sqft', 'havenlytics'); ?>
    261                                                 </p>
    262                                             </div>
    263                                         </div>
    264                                     <?php endif; ?>
    265                                     <?php if ($year_built) : ?>
    266                                         <div class="detail-item">
    267                                             <div class="detail-icon">
    268                                                 <i class="fas fa-calendar-alt"></i>
    269                                             </div>
    270                                             <div class="detail-content">
    271                                                 <h4><?php esc_html_e('Year Built', 'havenlytics'); ?></h4>
    272                                                 <p><?php echo esc_html($year_built); ?></p>
    273                                             </div>
    274                                         </div>
    275                                     <?php endif; ?>
    276                                 </div>
    277 
    278                                 <div class="col-lg-4 col-md-6">
    279                                     <?php if ($bathrooms) : ?>
    280                                         <div class="detail-item">
    281                                             <div class="detail-icon">
    282                                                 <i class="fas fa-bath"></i>
    283                                             </div>
    284                                             <div class="detail-content">
    285                                                 <h4><?php esc_html_e('Bathrooms', 'havenlytics'); ?></h4>
    286                                                 <p><?php echo esc_html($bathrooms); ?></p>
    287                                             </div>
    288                                         </div>
    289                                     <?php endif; ?>
    290                                     <?php if ($lot_size) : ?>
    291                                         <div class="detail-item">
    292                                             <div class="detail-icon">
    293                                                 <i class="fas fa-vector-square"></i>
    294                                             </div>
    295                                             <div class="detail-content">
    296                                                 <h4><?php esc_html_e('Lot Size', 'havenlytics'); ?></h4>
    297                                                 <p><?php echo esc_html($lot_size); ?> acres</p>
    298                                             </div>
    299                                         </div>
    300                                     <?php endif; ?>
    301                                     <?php if ($garage) : ?>
    302                                         <div class="detail-item">
    303                                             <div class="detail-icon">
    304                                                 <i class="fas fa-car"></i>
    305                                             </div>
    306                                             <div class="detail-content">
    307                                                 <h4><?php esc_html_e('Garage', 'havenlytics'); ?></h4>
    308                                                 <p><?php echo esc_html($garage); ?>
    309                                                     car<?php echo esc_html($garage > 1 ? 's' : ''); ?></p>
    310                                             </div>
    311                                         </div>
    312                                     <?php endif; ?>
    313                                 </div>
    314 
    315                                 <div class="col-lg-4 col-md-6">
    316                                     <?php if ($tax_amount) : ?>
    317                                         <div class="detail-item">
    318                                             <div class="detail-icon">
    319                                                 <i class="fas fa-dollar-sign"></i>
    320                                             </div>
    321                                             <div class="detail-content">
    322                                                 <h4><?php esc_html_e('Annual Tax', 'havenlytics'); ?></h4>
    323                                                 <p><?php echo esc_html($currency_symbol); ?>
    324                                                     <?php echo esc_html($tax_amount); ?></p>
    325                                             </div>
    326                                         </div>
    327                                     <?php endif; ?>
    328                                     <?php if ($rating) : ?>
    329                                         <div class="detail-item">
    330                                             <div class="detail-icon">
    331                                                 <i class="fas fa-star"></i>
    332                                             </div>
    333                                             <div class="detail-content">
    334                                                 <h4><?php esc_html_e('Rating', 'havenlytics'); ?></h4>
    335                                                 <p><?php echo esc_html($rating); ?> / 5</p>
    336                                             </div>
    337                                         </div>
    338                                     <?php endif; ?>
    339 
    340                                 </div>
     214                    </div>
     215
     216
     217                </div>
     218
     219
     220                <div class="property-price">
     221                    <?php echo esc_html($currency_symbol); ?> <?php echo esc_html($price); ?>
     222                </div>
     223
     224
     225            </div>
     226
     227
     228
     229            <div class="row">
     230                <div class="col-lg-8">
     231
     232                    <!-- Property Overview -->
     233                    <div class="property-details-card">
     234                        <h2 class="section-title">Overview</h2>
     235
     236                        <div class="row">
     237                            <div class="col-lg-4 col-md-6">
     238
     239                                <?php if ($bedrooms) : ?>
     240                                <div class="detail-item">
     241                                    <div class="detail-icon">
     242                                        <i class="fas fa-bed"></i>
     243                                    </div>
     244                                    <div class="detail-content">
     245                                        <h4><?php esc_html_e('Bedrooms', 'havenlytics'); ?></h4>
     246                                        <p><?php echo esc_html($bedrooms); ?></p>
     247                                    </div>
     248                                </div>
     249                                <?php endif; ?>
     250
     251                                <?php if ($sqft) : ?>
     252                                <div class="detail-item">
     253                                    <div class="detail-icon">
     254                                        <i class="fas fa-ruler-combined"></i>
     255                                    </div>
     256                                    <div class="detail-content">
     257                                        <h4>
     258                                            <?php esc_html_e('Square Feet', 'havenlytics'); ?></h4>
     259                                        <p> <?php echo esc_html($sqft); ?>
     260                                            <?php esc_html_e('sqft', 'havenlytics'); ?>
     261                                        </p>
     262                                    </div>
     263                                </div>
     264                                <?php endif; ?>
     265                                <?php if ($year_built) : ?>
     266                                <div class="detail-item">
     267                                    <div class="detail-icon">
     268                                        <i class="fas fa-calendar-alt"></i>
     269                                    </div>
     270                                    <div class="detail-content">
     271                                        <h4><?php esc_html_e('Year Built', 'havenlytics'); ?></h4>
     272                                        <p><?php echo esc_html($year_built); ?></p>
     273                                    </div>
     274                                </div>
     275                                <?php endif; ?>
     276                            </div>
     277
     278                            <div class="col-lg-4 col-md-6">
     279                                <?php if ($bathrooms) : ?>
     280                                <div class="detail-item">
     281                                    <div class="detail-icon">
     282                                        <i class="fas fa-bath"></i>
     283                                    </div>
     284                                    <div class="detail-content">
     285                                        <h4><?php esc_html_e('Bathrooms', 'havenlytics'); ?></h4>
     286                                        <p><?php echo esc_html($bathrooms); ?></p>
     287                                    </div>
     288                                </div>
     289                                <?php endif; ?>
     290                                <?php if ($lot_size) : ?>
     291                                <div class="detail-item">
     292                                    <div class="detail-icon">
     293                                        <i class="fas fa-vector-square"></i>
     294                                    </div>
     295                                    <div class="detail-content">
     296                                        <h4><?php esc_html_e('Lot Size', 'havenlytics'); ?></h4>
     297                                        <p><?php echo esc_html($lot_size); ?> acres</p>
     298                                    </div>
     299                                </div>
     300                                <?php endif; ?>
     301                                <?php if ($garage) : ?>
     302                                <div class="detail-item">
     303                                    <div class="detail-icon">
     304                                        <i class="fas fa-car"></i>
     305                                    </div>
     306                                    <div class="detail-content">
     307                                        <h4><?php esc_html_e('Garage', 'havenlytics'); ?></h4>
     308                                        <p><?php echo esc_html($garage); ?>
     309                                            car<?php echo esc_html($garage > 1 ? 's' : ''); ?></p>
     310                                    </div>
     311                                </div>
     312                                <?php endif; ?>
     313                            </div>
     314
     315                            <div class="col-lg-4 col-md-6">
     316                                <?php if ($tax_amount) : ?>
     317                                <div class="detail-item">
     318                                    <div class="detail-icon">
     319                                        <i class="fas fa-dollar-sign"></i>
     320                                    </div>
     321                                    <div class="detail-content">
     322                                        <h4><?php esc_html_e('Annual Tax', 'havenlytics'); ?></h4>
     323                                        <p><?php echo esc_html($currency_symbol); ?>
     324                                            <?php echo esc_html($tax_amount); ?></p>
     325                                    </div>
     326                                </div>
     327                                <?php endif; ?>
     328                                <?php if ($rating) : ?>
     329                                <div class="detail-item">
     330                                    <div class="detail-icon">
     331                                        <i class="fas fa-star"></i>
     332                                    </div>
     333                                    <div class="detail-content">
     334                                        <h4><?php esc_html_e('Rating', 'havenlytics'); ?></h4>
     335                                        <p><?php echo esc_html($rating); ?> / 5</p>
     336                                    </div>
     337                                </div>
     338                                <?php endif; ?>
     339
    341340                            </div>
    342341                        </div>
    343 
    344                         <?php if ($short_description) : ?>
    345                             <!-- Property Summary -->
    346                             <div class="property-details-card">
    347                                 <h2 class="section-title">Property Summary</h2>
    348                                 <p class="property-description">
    349                                     <?php echo esc_html($short_description); ?>
    350                                 </p>
    351 
     342                    </div>
     343
     344                    <?php if ($short_description) : ?>
     345                    <!-- Property Summary -->
     346                    <div class="property-details-card">
     347                        <h2 class="section-title">Property Summary</h2>
     348                        <p class="property-description">
     349                            <?php echo esc_html($short_description); ?>
     350                        </p>
     351
     352                    </div>
     353                    <?php endif; ?>
     354                    <!-- Property Details -->
     355                    <div class="property-details-card">
     356                        <h2 class="section-title">Property Details</h2>
     357                        <div class="property-description">
     358                            <?php the_content(); ?>
     359                        </div>
     360
     361                    </div>
     362
     363
     364
     365
     366                    <?php if (!empty(array_filter($features))) : ?>
     367                    <!-- Features Section -->
     368                    <div class="property-details-card">
     369                        <h2 class="section-title"><?php esc_html_e('Features & Amenities', 'havenlytics'); ?></h2>
     370                        <div class="features-grid">
     371                            <?php foreach ($features as $feature => $value) :
     372                                        if ($value) : ?>
     373
     374                            <div class="feature-item">
     375                                <i class="fas fa-check-circle"></i>
     376                                <span><?php echo esc_html(ucfirst(str_replace('_', ' ', $feature))); ?></span>
    352377                            </div>
    353                         <?php endif; ?>
    354                         <!-- Property Details -->
    355                         <div class="property-details-card">
    356                             <h2 class="section-title">Property Details</h2>
    357                             <div class="property-description">
    358                                 <?php the_content(); ?>
    359                             </div>
    360 
     378                            <?php endif;
     379                                    endforeach; ?>
    361380                        </div>
    362 
    363 
    364 
    365 
    366                         <?php if (!empty(array_filter($features))) : ?>
    367                             <!-- Features Section -->
    368                             <div class="property-details-card">
    369                                 <h2 class="section-title"><?php esc_html_e('Features & Amenities', 'havenlytics'); ?></h2>
    370                                 <div class="features-grid">
    371                                     <?php foreach ($features as $feature => $value) :
    372                                         if ($value) : ?>
    373 
    374                                             <div class="feature-item">
    375                                                 <i class="fas fa-check-circle"></i>
    376                                                 <span><?php echo esc_html(ucfirst(str_replace('_', ' ', $feature))); ?></span>
    377                                             </div>
    378                                     <?php endif;
    379                                     endforeach; ?>
    380                                 </div>
    381                             </div>
    382                         <?php endif; ?>
    383                         <!-- Floor Plans -->
    384 
    385 
    386                         <!-- Video -->
    387                         <div class="property-details-card">
    388                             <div class="property-video-card">
    389                                 <h2 class="section-title"><?php esc_html_e('Property Video', 'havenlytics'); ?></h2>
    390 
    391                                 <div class="video-container">
    392                                     <?php
     381                    </div>
     382                    <?php endif; ?>
     383                    <!-- Floor Plans -->
     384
     385
     386                    <!-- Video -->
     387                    <div class="property-details-card">
     388                        <div class="property-video-card">
     389                            <h2 class="section-title"><?php esc_html_e('Property Video', 'havenlytics'); ?></h2>
     390
     391                            <div class="video-container">
     392                                <?php
    393393                                    // Get selected video type
    394394                                    $video_type = get_post_meta(get_the_ID(), '_havenlytics_property_video_type', true);
     
    414414                                    ?>
    415415
    416                                     <?php if (!empty($video_url)) : ?>
    417                                         <div class="video-wrapper">
    418                                             <div class="video-thumbnail">
    419                                                 <img src="<?php echo esc_url($thumbnail_url); ?>"
    420                                                     alt="Property Video Thumbnail">
    421 
    422                                                 <div class="havenlytics_property_video-btn-main">
    423                                                     <div class="havenlytics_property_video-play-button" id="play-button"
    424                                                         data-video-url="<?php echo esc_url($video_url); ?>"
    425                                                         data-video-type="<?php echo esc_attr($video_type); ?>">
    426                                                         <div class="havenlytics_property_video-icon"></div>
    427                                                         <div class="havenlytics_property_video-pulse-ring"></div>
    428                                                     </div>
    429                                                 </div>
     416                                <?php if (!empty($video_url)) : ?>
     417                                <div class="video-wrapper">
     418                                    <div class="video-thumbnail">
     419                                        <img src="<?php echo esc_url($thumbnail_url); ?>"
     420                                            alt="Property Video Thumbnail">
     421
     422                                        <div class="havenlytics_property_video-btn-main">
     423                                            <div class="havenlytics_property_video-play-button" id="play-button"
     424                                                data-video-url="<?php echo esc_url($video_url); ?>"
     425                                                data-video-type="<?php echo esc_attr($video_type); ?>">
     426                                                <div class="havenlytics_property_video-icon"></div>
     427                                                <div class="havenlytics_property_video-pulse-ring"></div>
    430428                                            </div>
    431429                                        </div>
    432 
    433                                         <!-- Video Popup -->
    434                                         <div class="havenlytics_property_video-overlay">
    435                                             <div class="havenlytics_property_video-spinner"></div>
    436                                             <div class="havenlytics_property_video-container">
    437                                                 <div class="havenlytics_property_video-close">
    438                                                     <i class="fas fa-times"></i>
    439                                                 </div>
    440                                                 <div class="havenlytics_property_video-player" id="video-player"></div>
    441                                             </div>
     430                                    </div>
     431                                </div>
     432
     433                                <!-- Video Popup -->
     434                                <div class="havenlytics_property_video-overlay">
     435                                    <div class="havenlytics_property_video-spinner"></div>
     436                                    <div class="havenlytics_property_video-container">
     437                                        <div class="havenlytics_property_video-close">
     438                                            <i class="fas fa-times"></i>
    442439                                        </div>
    443                                     <?php else : ?>
    444                                         <p><?php esc_html_e('No video available for this property.', 'havenlytics'); ?></p>
    445                                     <?php endif; ?>
    446                                 </div>
     440                                        <div class="havenlytics_property_video-player" id="video-player"></div>
     441                                    </div>
     442                                </div>
     443                                <?php else : ?>
     444                                <p><?php esc_html_e('No video available for this property.', 'havenlytics'); ?></p>
     445                                <?php endif; ?>
    447446                            </div>
    448447                        </div>
    449 
    450 
    451 
    452                         <?php if ($latitude && $longitude) : ?>
    453                             <!-- Location Map -->
    454                             <div class="property-details-card">
    455                                 <h2 class="section-title"><?php esc_html_e('Property Location', 'havenlytics'); ?></h2>
    456 
    457                                 <div class="map-container">
    458                                     <div id="havenlytics-property-map" data-lat="<?php echo esc_attr($latitude); ?>"
    459                                         data-lng="<?php echo esc_attr($longitude); ?>"
    460                                         style="height: 400px; width: 100%; background: #f5f5f5;">
    461                                     </div>
    462                                     <!-- <div class="map-overlay">
     448                    </div>
     449
     450
     451
     452                    <?php if ($latitude && $longitude) : ?>
     453                    <!-- Location Map -->
     454                    <div class="property-details-card">
     455                        <h2 class="section-title"><?php esc_html_e('Property Location', 'havenlytics'); ?></h2>
     456
     457                        <div class="map-container">
     458                            <div id="havenlytics-property-map" data-lat="<?php echo esc_attr($latitude); ?>"
     459                                data-lng="<?php echo esc_attr($longitude); ?>"
     460                                style="height: 400px; width: 100%; background: #f5f5f5;">
     461                            </div>
     462                            <!-- <div class="map-overlay">
    463463
    464464                                        <h3>Neighborhood Information</h3>
     
    470470                                    </div> -->
    471471
    472                                 </div>
    473                             </div>
    474                         <?php endif; ?>
    475                         <!-- Popup Gallery  -->
    476                         <div class="property-details-card">
    477                             <h2 class="section-title">Property Gallery</h2>
    478                             <div class="row">
    479                                 <div class="col-md-12 mb-4">
    480                                     <div class="havenlytics_gallery_fancybox_gallery">
    481                                         <?php if (!empty($gallery_images)) : ?>
    482                                             <?php foreach ($gallery_images as $index => $image_id) :
     472                        </div>
     473                    </div>
     474                    <?php endif; ?>
     475                    <!-- Popup Gallery  -->
     476                    <div class="property-details-card">
     477                        <h2 class="section-title">Property Gallery</h2>
     478                        <div class="row">
     479                            <div class="col-md-12 mb-4">
     480                                <div class="havenlytics_gallery_fancybox_gallery">
     481                                    <?php if (!empty($gallery_images)) : ?>
     482                                    <?php foreach ($gallery_images as $index => $image_id) :
    483483                                                $thumb_url = wp_get_attachment_image_url($image_id, 'medium');
    484484                                                $large_url = wp_get_attachment_image_url($image_id, 'large');
     
    487487                                                $animation_delay = 0.2 + ($index * 0.1); // optional animated delay
    488488                                            ?>
    489                                                 <div class="havenlytics_gallery_fancybox_gallery-item havenlytics_gallery_fancybox_floating"
    490                                                     style="animation-delay: <?php echo esc_attr(number_format($animation_delay, 1)); ?>s;"
    491                                                     data-button-title="<?php the_title(); ?>"
    492                                                     data-button-link="<?php echo esc_url(get_permalink($property_id)); ?>">
    493                                                     <img src="<?php echo esc_url($thumb_url); ?>"
    494                                                         data-large="<?php echo esc_url($large_url); ?>"
    495                                                         alt="<?php echo esc_attr($alt_text ? $alt_text : $title_text); ?>">
    496                                                     <div class="havenlytics_gallery_fancybox_gallery-caption">
    497                                                         <?php echo esc_html($title_text); ?>
    498                                                     </div>
     489                                    <div class="havenlytics_gallery_fancybox_gallery-item havenlytics_gallery_fancybox_floating"
     490                                        style="animation-delay: <?php echo esc_attr(number_format($animation_delay, 1)); ?>s;"
     491                                        data-button-title="<?php the_title(); ?>"
     492                                        data-button-link="<?php echo esc_url(get_permalink($property_id)); ?>">
     493                                        <img src="<?php echo esc_url($thumb_url); ?>"
     494                                            data-large="<?php echo esc_url($large_url); ?>"
     495                                            alt="<?php echo esc_attr($alt_text ? $alt_text : $title_text); ?>">
     496                                        <div class="havenlytics_gallery_fancybox_gallery-caption">
     497                                            <?php echo esc_html($title_text); ?>
     498                                        </div>
     499                                    </div>
     500                                    <?php endforeach; ?>
     501                                    <?php else : ?>
     502                                    <p><?php esc_html_e('No gallery images found.', 'havenlytics'); ?></p>
     503                                    <?php endif; ?>
     504                                </div>
     505
     506                                <!-- Heavenlytics FancyBox Structure -->
     507                                <div class="havenlytics_gallery_fancybox_fancybox">
     508                                    <span class="havenlytics_gallery_fancybox_fancybox_close"><i
     509                                            class="fas fa-times"></i></span>
     510                                    <span
     511                                        class="havenlytics_gallery_fancybox_fancybox_nav havenlytics_gallery_fancybox_fancybox_prev"><i
     512                                            class="fas fa-chevron-left"></i></span>
     513                                    <span
     514                                        class="havenlytics_gallery_fancybox_fancybox_nav havenlytics_gallery_fancybox_fancybox_next"><i
     515                                            class="fas fa-chevron-right"></i></span>
     516                                    <div class="havenlytics_gallery_fancybox_fancybox_counter">1 / 8</div>
     517
     518                                    <div class="havenlytics_gallery_fancybox_fancybox_content">
     519                                        <div class="havenlytics_gallery_fancybox_fancybox_main">
     520                                            <div class="havenlytics_gallery_fancybox_fancybox_img_wrap">
     521                                                <img class="havenlytics_gallery_fancybox_fancybox_img" src="" alt="">
     522                                            </div>
     523                                            <div class="havenlytics_gallery_fancybox_fancybox_caption"></div>
     524                                            <div class="havenlytics_gallery_fancybox_fancybox_property">
     525                                                <a href="#" class="havenlytics_gallery_fancybox_property_button"
     526                                                    target="_blank">
     527                                                    View Property Details <i class="fas fa-arrow-right"></i>
     528                                                </a>
     529                                            </div>
     530                                        </div>
     531                                        <div class="havenlytics_gallery_fancybox_fancybox_sidebar">
     532                                            <div class="havenlytics_gallery_fancybox_fancybox_thumbnails"></div>
     533                                        </div>
     534                                    </div>
     535                                </div>
     536                                <!-- Heavenlytics FancyBox Structure -->
     537                            </div>
     538
     539
     540                        </div>
     541                    </div>
     542
     543
     544                </div>
     545
     546                <!-- Sidebar -->
     547                <div class="col-lg-4">
     548                    <div class="havenlytics_sticky_sidebar">
     549                        <!-- Amenities Section -->
     550                        <div class="property-details-card">
     551                            <h2 class="section-title">Property Amenities</h2>
     552                            <div class="havenlytics-amenities-grid">
     553                                <?php
     554                                    $post_id = get_the_ID();
     555
     556                                    if (get_post_meta($post_id, '_havenlytics_property_book_property', true)) :
     557                                    ?>
     558                                <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="enquiry">
     559                                    <div class="havenlytics-amenity-icon">
     560                                        <i class="fas fa-calendar"></i>
     561                                    </div>
     562                                    <h4>Book Property</h4>
     563                                </div>
     564                                <?php endif; ?>
     565
     566                                <?php if (get_post_meta($post_id, '_havenlytics_property_virtual_tour', true)) : ?>
     567                                <div class="havenlytics-amenity-card havenlytics-popup-trigger"
     568                                    data-popup="virtualTour">
     569                                    <div class="havenlytics-amenity-icon">
     570                                        <i class="fas fa-vr-cardboard"></i>
     571                                    </div>
     572                                    <h4>Virtual Tour</h4>
     573                                </div>
     574                                <?php endif; ?>
     575
     576                                <?php if (get_post_meta($post_id, '_havenlytics_property_floorplan_img', true)) : ?>
     577                                <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="floorplan">
     578                                    <div class="havenlytics-amenity-icon">
     579                                        <i class="fas fa-vector-square"></i>
     580                                    </div>
     581                                    <h4>Floorplan</h4>
     582                                </div>
     583                                <?php endif; ?>
     584
     585                                <?php if (get_post_meta($post_id, '_havenlytics_property_brochure_pdf', true)) : ?>
     586                                <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="brochure">
     587                                    <div class="havenlytics-amenity-icon">
     588                                        <i class="fas fa-file-alt"></i>
     589                                    </div>
     590                                    <h4>View Brochure</h4>
     591                                </div>
     592                                <?php endif; ?>
     593
     594                                <?php if (get_post_meta($post_id, '_havenlytics_property_epc_pdf', true)) : ?>
     595                                <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="epc">
     596                                    <div class="havenlytics-amenity-icon">
     597                                        <i class="fas fa-clipboard"></i>
     598                                    </div>
     599                                    <h4>View Epc</h4>
     600                                </div>
     601                                <?php endif; ?>
     602
     603                                <?php if (get_post_meta($post_id, '_havenlytics_property_map_url', true)) : ?>
     604                                <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="map">
     605                                    <div class="havenlytics-amenity-icon">
     606                                        <i class="fas fa-map-marked-alt"></i>
     607                                    </div>
     608                                    <h4>Map</h4>
     609                                </div>
     610                                <?php endif; ?>
     611
     612                                <?php if (get_post_meta($post_id, '_havenlytics_property_request_call', true)) : ?>
     613                                <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="agent">
     614                                    <div class="havenlytics-amenity-icon">
     615                                        <i class="fas fa-phone-alt"></i>
     616                                    </div>
     617                                    <h4>Request Call Back</h4>
     618                                </div>
     619                                <?php endif; ?>
     620
     621                                <?php if (get_post_meta($post_id, '_havenlytics_property_arrange_view', true)) : ?>
     622                                <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="viewing">
     623                                    <div class="havenlytics-amenity-icon">
     624                                        <i class="fas fa-calendar-check"></i>
     625                                    </div>
     626                                    <h4>Arrange Viewing</h4>
     627                                </div>
     628                                <?php endif; ?>
     629                            </div>
     630
     631                        </div>
     632                        <?php
     633                            // Get the custom meta field value
     634                            $featured_property = get_post_meta(get_the_ID(), '_havenlytics_property_featured_item', true);
     635
     636                            // Check if it's not empty before displaying the widget
     637                            if (!empty($featured_property)) :
     638                            ?>
     639                        <!-- Featured Property-->
     640                        <div class="property-details-card">
     641
     642                            <h2 class="section-title">Featured Property</h2>
     643
     644                            <div class="havenlytics_featured_items-widget">
     645                                <div class="havenlytics_carousel-container">
     646                                    <div class="owl-carousel owl-theme havenlytics_carousel">
     647
     648                                        <?php
     649                                                // Query only featured properties
     650                                                $args = array(
     651                                                    'post_type'      => 'hvnly_property',
     652                                                    'posts_per_page' => -1,
     653                                                    'meta_key'       => '_havenlytics_property_featured_item',
     654                                                    'meta_value'     => '1',
     655                                                );
     656
     657                                                $featured_query = new WP_Query($args);
     658
     659                                                // Define currency symbols
     660                                                $currency_symbols = array(
     661                                                    'USD' => '$',
     662                                                    'EUR' => '€',
     663                                                    'GBP' => '£',
     664                                                    'AUD' => 'A$',
     665                                                    'CAD' => 'C$',
     666                                                    'JPY' => '¥',
     667                                                    'CHF' => 'CHF',
     668                                                    'CNY' => '¥',
     669                                                    'INR' => '₹',
     670                                                    'NZD' => 'NZ$',
     671                                                    'SGD' => 'S$',
     672                                                    'HKD' => 'HK$',
     673                                                    'SEK' => 'kr',
     674                                                    'NOK' => 'kr',
     675                                                    'MXN' => 'Mex$',
     676                                                    'ZAR' => 'R',
     677                                                    'BRL' => 'R$',
     678                                                    'RUB' => '₽',
     679                                                    'KRW' => '₩',
     680                                                    'TRY' => '₺',
     681                                                );
     682
     683                                                if ($featured_query->have_posts()) :
     684                                                    while ($featured_query->have_posts()) :
     685                                                        $featured_query->the_post();
     686
     687                                                        $property_id    = get_the_ID();
     688                                                        $currency_code  = get_post_meta($property_id, '_havenlytics_currency', true);
     689                                                        $price          = get_post_meta($property_id, '_havenlytics_price', true);
     690                                                        $bedrooms       = get_post_meta($property_id, '_havenlytics_bedrooms', true);
     691                                                        $bathrooms      = get_post_meta($property_id, '_havenlytics_bathrooms', true);
     692                                                        $sqft           = get_post_meta($property_id, '_havenlytics_sqft', true);
     693                                                        $status         = get_post_meta($property_id, '_havenlytics_status', true);
     694                                                        $address        = get_post_meta($property_id, '_havenlytics_address', true);
     695
     696                                                        $currency_symbol = isset($currency_symbols[$currency_code]) ? $currency_symbols[$currency_code] : '$';
     697
     698                                                        // Get status badge label
     699                                                        $status_badge = '';
     700                                                        switch ($status) {
     701                                                            case 'for_sale':
     702                                                                $status_badge = __('For Sale', 'havenlytics');
     703                                                                break;
     704                                                            case 'for_rent':
     705                                                                $status_badge = __('For Rent', 'havenlytics');
     706                                                                break;
     707                                                            case 'pending':
     708                                                                $status_badge = __('Pending', 'havenlytics');
     709                                                                break;
     710                                                            case 'sold':
     711                                                                $status_badge = __('Sold', 'havenlytics');
     712                                                                break;
     713                                                            case 'off_market':
     714                                                                $status_badge = __('Off Market', 'havenlytics');
     715                                                                break;
     716                                                        }
     717                                                ?>
     718
     719                                        <!-- Property 1 -->
     720                                        <div class="havenlytics_property item">
     721                                            <div class="havenlytics_image">
     722                                                <?php if (has_post_thumbnail()) : ?>
     723                                                <?php the_post_thumbnail('havenlytics-property-related-thumb', array('class' => 'img-fluid', 'alt' => esc_attr(get_the_title()))); ?>
     724                                                <?php else : ?>
     725                                                <img src="<?php echo esc_url(HVNLY_PROPERTY_URL . 'public/assets/img/video-placeholder.png'); ?>"
     726                                                    alt="<?php esc_attr_e('Property Image', 'havenlytics'); ?>"
     727                                                    class="img-fluid" />
     728                                                <?php endif; ?>
     729                                                <?php if (! empty($status_badge)) : ?>
     730                                                <div class="havenlytics_badge"><?php echo esc_html($status_badge); ?>
    499731                                                </div>
    500                                             <?php endforeach; ?>
    501                                         <?php else : ?>
    502                                             <p><?php esc_html_e('No gallery images found.', 'havenlytics'); ?></p>
    503                                         <?php endif; ?>
    504                                     </div>
    505 
    506                                     <!-- Heavenlytics FancyBox Structure -->
    507                                     <div class="havenlytics_gallery_fancybox_fancybox">
    508                                         <span class="havenlytics_gallery_fancybox_fancybox_close"><i
    509                                                 class="fas fa-times"></i></span>
    510                                         <span
    511                                             class="havenlytics_gallery_fancybox_fancybox_nav havenlytics_gallery_fancybox_fancybox_prev"><i
    512                                                 class="fas fa-chevron-left"></i></span>
    513                                         <span
    514                                             class="havenlytics_gallery_fancybox_fancybox_nav havenlytics_gallery_fancybox_fancybox_next"><i
    515                                                 class="fas fa-chevron-right"></i></span>
    516                                         <div class="havenlytics_gallery_fancybox_fancybox_counter">1 / 8</div>
    517 
    518                                         <div class="havenlytics_gallery_fancybox_fancybox_content">
    519                                             <div class="havenlytics_gallery_fancybox_fancybox_main">
    520                                                 <div class="havenlytics_gallery_fancybox_fancybox_img_wrap">
    521                                                     <img class="havenlytics_gallery_fancybox_fancybox_img" src="" alt="">
    522                                                 </div>
    523                                                 <div class="havenlytics_gallery_fancybox_fancybox_caption"></div>
    524                                                 <div class="havenlytics_gallery_fancybox_fancybox_property">
    525                                                     <a href="#" class="havenlytics_gallery_fancybox_property_button"
    526                                                         target="_blank">
    527                                                         View Property Details <i class="fas fa-arrow-right"></i>
     732                                                <?php endif; ?>
     733                                            </div>
     734                                            <div class="havenlytics_details">
     735                                                <?php if ($price) : ?>
     736                                                <div class="havenlytics_price">
     737                                                    <?php echo esc_html($currency_symbol . $price); ?></div>
     738                                                <?php endif; ?>
     739                                                <div class="havenlytics_title">
     740                                                    <a href="<?php the_permalink(); ?>">
     741                                                        <?php echo esc_html(wp_trim_words(get_the_title(), 8, '...')); ?>
    528742                                                    </a>
    529743                                                </div>
    530                                             </div>
    531                                             <div class="havenlytics_gallery_fancybox_fancybox_sidebar">
    532                                                 <div class="havenlytics_gallery_fancybox_fancybox_thumbnails"></div>
     744                                                <?php if ($address) : ?>
     745                                                <div class="havenlytics_address">
     746                                                    <i class="fas fa-map-marker-alt"></i>
     747                                                    <?php echo esc_html($address); ?>
     748                                                </div>
     749                                                <?php endif; ?>
     750                                                <div class="havenlytics_features">
     751                                                    <?php if ($bedrooms) : ?>
     752
     753
     754
     755                                                    <div class="havenlytics_feature">
     756                                                        <!-- Bedrooms SVG -->
     757                                                        <svg fill="#6C60FE" width="20px" height="20px"
     758                                                            viewBox="0 -11.47 122.88 122.88" version="1.1" id="Layer_1"
     759                                                            xmlns="http://www.w3.org/2000/svg"
     760                                                            xmlns:xlink="http://www.w3.org/1999/xlink"
     761                                                            style="enable-background:new 0 0 122.88 99.94"
     762                                                            xml:space="preserve">
     763                                                            <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
     764                                                            <g id="SVGRepo_tracerCarrier" stroke-linecap="round"
     765                                                                stroke-linejoin="round"></g>
     766                                                            <g id="SVGRepo_iconCarrier">
     767                                                                <g>
     768                                                                    <path
     769                                                                        d="M4.22,67.36h114.31v-4.67c0-1.13-0.22-2.18-0.61-3.12c-0.42-1-1.04-1.89-1.81-2.66c-0.47-0.47-1-0.9-1.57-1.28 c-0.58-0.39-1.2-0.73-1.85-1.02c-1.75-0.38-3.49-0.74-5.22-1.08c-1.74-0.34-3.49-0.66-5.25-0.96c-0.08-0.01-0.14-0.02-0.22-0.04 c-0.89-0.15-1.74-0.29-2.55-0.42c-0.81-0.13-1.67-0.26-2.57-0.4l-0.02,0c-6.12-0.78-12.22-1.38-18.31-1.78 c-6.1-0.4-12.17-0.6-18.2-0.61c-3.58,0-7.15,0.06-10.72,0.2c-3.55,0.14-7.12,0.34-10.69,0.62l-0.02,0 c-3.34,0.31-6.67,0.7-10.01,1.15c-3.33,0.45-6.67,0.98-10.03,1.57l-0.37,0.09c-0.07,0.02-0.14,0.03-0.2,0.03 c-0.06,0.01-0.12,0.01-0.18,0.01c-1.57,0.28-3.18,0.59-4.84,0.92c-1.61,0.32-3.22,0.66-4.82,1.01c-0.4,0.22-0.78,0.47-1.14,0.73 c-0.36,0.27-0.71,0.56-1.02,0.87v0c-0.67,0.67-1.2,1.44-1.56,2.3c-0.34,0.81-0.53,1.71-0.53,2.69V67.36L4.22,67.36z M14.2,0h92.99 c1.21,0,2.37,0.24,3.43,0.68c1.1,0.46,2.09,1.13,2.92,1.95c0.83,0.83,1.5,1.82,1.95,2.92c0.44,1.06,0.68,2.22,0.68,3.43v42.69 c0.51,0.3,1.01,0.63,1.47,0.99c0.52,0.4,1.01,0.82,1.46,1.27c1.16,1.16,2.1,2.51,2.73,4.03c0.6,1.43,0.93,3.02,0.93,4.74v6.09 c0.03,0.1,0.06,0.2,0.08,0.3l0,0.02c0.02,0.13,0.03,0.25,0.03,0.37c0,0.13-0.01,0.26-0.04,0.39l0,0c-0.02,0.1-0.05,0.2-0.08,0.3 v27.66c0,0.58-0.24,1.11-0.62,1.49c-0.38,0.38-0.91,0.62-1.49,0.62h-4.35c-0.49,0-0.94-0.17-1.3-0.45 c-0.36-0.28-0.63-0.68-0.74-1.14c-0.8-2.3-1.61-4.12-2.48-5.54c-0.86-1.4-1.78-2.4-2.84-3.11c-1.07-0.71-2.35-1.16-3.9-1.43 c-1.58-0.28-3.42-0.37-5.61-0.36l-79.76,0.1l-0.04,0c-1.57-0.03-2.86,0.17-3.94,0.59c-1.07,0.42-1.94,1.05-2.66,1.86 c-0.81,0.9-1.49,2.05-2.11,3.39c-0.63,1.37-1.2,2.93-1.77,4.64l0,0c-0.14,0.44-0.42,0.79-0.77,1.04c-0.33,0.24-0.73,0.38-1.14,0.4 c-0.03,0.01-0.06,0.01-0.09,0.01H2.11c-0.58,0-1.11-0.24-1.49-0.62C0.24,98.94,0,98.41,0,97.83V61.52c0-1.57,0.3-3.01,0.84-4.31 c0.58-1.38,1.43-2.61,2.49-3.67c0.3-0.3,0.63-0.6,0.98-0.88c0.3-0.24,0.6-0.47,0.92-0.68V8.89c0-1.21,0.24-2.36,0.68-3.4 c0.46-1.09,1.13-2.07,1.96-2.89c0.83-0.82,1.82-1.47,2.91-1.92C11.84,0.24,12.99,0,14.2,0L14.2,0z M107.19,4.22H14.2 c-0.65,0-1.27,0.13-1.84,0.36c-0.59,0.24-1.11,0.59-1.55,1.02c-0.43,0.42-0.78,0.94-1.02,1.5C9.57,7.65,9.45,8.25,9.45,8.89v41.06 c0.3-0.1,0.6-0.18,0.91-0.26c0.49-0.13,0.98-0.24,1.47-0.32c0.68-0.12,1.42-0.25,2.22-0.39c0.6-0.1,1.24-0.21,1.9-0.31V38.19 c0-1.58,0.32-3.09,0.89-4.47c0.6-1.44,1.47-2.73,2.55-3.81c1.08-1.08,2.37-1.95,3.81-2.55c1.38-0.57,2.89-0.89,4.47-0.89h19.82 c1.58,0,3.09,0.32,4.47,0.89c1.44,0.6,2.73,1.47,3.81,2.55c1.08,1.08,1.95,2.37,2.55,3.81c0.57,1.38,0.89,2.89,0.89,4.47v6.69 c0.7-0.01,1.4-0.01,2.11-0.01v-6.68c0-1.58,0.32-3.09,0.89-4.47c0.6-1.44,1.47-2.73,2.55-3.81c1.08-1.08,2.37-1.95,3.81-2.55 c1.38-0.57,2.89-0.89,4.47-0.89h19.82c1.58,0,3.09,0.32,4.47,0.89c1.44,0.6,2.73,1.47,3.81,2.55c1.08,1.08,1.95,2.37,2.55,3.81 c0.57,1.38,0.89,2.89,0.89,4.47v10.34c0.75,0.11,1.55,0.24,2.41,0.38c0.95,0.15,1.86,0.3,2.74,0.45c0.45,0.08,0.91,0.17,1.37,0.28 c0.29,0.07,0.57,0.14,0.84,0.22V8.98c0-0.64-0.13-1.25-0.36-1.81c-0.24-0.58-0.6-1.1-1.04-1.55c-0.44-0.44-0.97-0.8-1.54-1.04 C108.44,4.35,107.83,4.22,107.19,4.22L107.19,4.22z M43.21,45.56c2.01-0.15,4.03-0.28,6.08-0.38c1.89-0.1,3.8-0.17,5.71-0.22v-6.77 c0-1.01-0.2-1.98-0.57-2.86c-0.38-0.92-0.94-1.74-1.64-2.44c-0.69-0.69-1.52-1.25-2.44-1.64c-0.88-0.37-1.85-0.57-2.86-0.57H27.67 c-1.01,0-1.98,0.2-2.86,0.57c-0.92,0.38-1.74,0.94-2.44,1.64c-0.69,0.69-1.25,1.52-1.64,2.44c-0.37,0.88-0.57,1.85-0.57,2.86V48 c1.62-0.24,3.26-0.46,4.94-0.68c1.81-0.23,3.61-0.44,5.39-0.64c0.69-0.08,1.43-0.17,2.2-0.25c0.72-0.08,1.47-0.15,2.27-0.23 c1.36-0.13,2.71-0.25,4.04-0.36C40.37,45.75,41.77,45.65,43.21,45.56L43.21,45.56z M65.54,44.9c1.21,0.02,2.42,0.05,3.63,0.09 c1.34,0.04,2.68,0.1,4.01,0.16l0.01,0c2.19,0.08,4.33,0.18,6.41,0.3c2.08,0.12,4.11,0.27,6.05,0.44c2.82,0.25,5.55,0.55,8.14,0.9 c2.32,0.32,4.52,0.68,6.58,1.08v-9.68c0-1.01-0.2-1.98-0.57-2.86c-0.38-0.92-0.94-1.74-1.64-2.44c-0.69-0.69-1.52-1.25-2.44-1.64 c-0.88-0.37-1.85-0.57-2.86-0.57H73.05c-1.01,0-1.98,0.2-2.86,0.57c-0.92,0.38-1.74,0.94-2.44,1.64c-0.69,0.69-1.25,1.52-1.64,2.44 c-0.37,0.88-0.57,1.85-0.57,2.86V44.9L65.54,44.9z M118.54,71.59H4.22v24.13h1.43c0.56-1.58,1.14-3.05,1.79-4.36 c0.7-1.4,1.49-2.64,2.45-3.71c1.14-1.28,2.48-2.27,4.09-2.93c1.61-0.65,3.49-0.98,5.75-0.93l79.69-0.1c2.57,0,4.77,0.12,6.69,0.49 c1.95,0.37,3.63,1,5.14,2c1.4,0.93,2.6,2.16,3.68,3.77c1.03,1.54,1.95,3.43,2.83,5.76h0.76V71.59L118.54,71.59z">
     770                                                                    </path>
     771                                                                </g>
     772                                                            </g>
     773                                                        </svg>
     774                                                        <span><?php echo esc_html($bedrooms); ?>
     775                                                            <?php esc_html_e('Beds', 'havenlytics'); ?></span>
     776                                                    </div>
     777                                                    <?php endif; ?>
     778
     779                                                    <?php if ($bathrooms) : ?>
     780
     781
     782                                                    <div class="havenlytics_feature">
     783                                                        <!-- Bathrooms SVG -->
     784                                                        <svg fill="#6C60FE" width="20px" height="20px"
     785                                                            viewBox="0 0 512 512" id="Layer_1"
     786                                                            enable-background="new 0 0 512 512"
     787                                                            xmlns="http://www.w3.org/2000/svg">
     788                                                            <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
     789                                                            <g id="SVGRepo_tracerCarrier" stroke-linecap="round"
     790                                                                stroke-linejoin="round"></g>
     791                                                            <g id="SVGRepo_iconCarrier">
     792                                                                <g>
     793                                                                    <path
     794                                                                        d="m496 288c-38.154 0-437.487 0-448 0v-56h32c8.837 0 16-7.164 16-16v-40c0-8.836-7.163-16-16-16s-16 7.164-16 16v24h-16v-138.745c0-25.903 31.562-39.064 49.941-20.686l16.94 16.94c-13.424 23.401-10.164 53.835 9.805 73.805l8 8c6.247 6.248 16.379 6.249 22.627 0l64-64c6.249-6.248 6.249-16.379 0-22.627l-8-8c-20.35-20.351-50.837-23.06-73.817-9.817l-16.928-16.928c-11.57-11.57-26.952-17.942-43.313-17.942-33.776 0-61.255 27.479-61.255 61.255v226.745c-8.837 0-16 7.164-16 16s7.163 16 16 16v32c0 43.889 19.742 83.247 50.806 109.681l-22.338 23.229c-9.803 10.193-2.445 27.09 11.53 27.09 4.199 0 8.394-1.644 11.534-4.91l26.218-27.263c19.844 10.326 42.376 16.173 66.25 16.173h192c23.874 0 46.406-5.847 66.25-16.173l26.218 27.263c6.106 6.35 16.234 6.585 22.623.442 6.369-6.125 6.566-16.254.441-22.623l-22.338-23.229c31.064-26.433 50.806-65.791 50.806-109.68v-32c8.837 0 16-7.164 16-16s-7.163-16-16-16zm-310.89-223.738-40.845 40.845c-8.246-11.427-7.23-27.515 3.048-37.794 10.378-10.377 26.461-11.259 37.797-3.051zm278.89 287.738c0 61.757-50.243 112-112 112h-192c-61.757 0-112-50.243-112-112v-32h416z">
     795                                                                    </path>
     796                                                                </g>
     797                                                            </g>
     798                                                        </svg>
     799                                                        <span><?php echo esc_html($bathrooms); ?>
     800                                                            <?php esc_html_e('Baths', 'havenlytics'); ?></span>
     801                                                    </div>
     802                                                    <?php endif; ?>
     803
     804
     805                                                    <?php if ($sqft) : ?>
     806                                                    <div class="havenlytics_feature">
     807
     808                                                        <!-- Area SVG -->
     809                                                        <svg fill="#6C60FE" width="20px" height="20px"
     810                                                            viewBox="0 0 256 256" id="Flat"
     811                                                            xmlns="http://www.w3.org/2000/svg">
     812                                                            <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
     813                                                            <g id="SVGRepo_tracerCarrier" stroke-linecap="round"
     814                                                                stroke-linejoin="round" stroke="#CCCCCC"
     815                                                                stroke-width="7.68"></g>
     816                                                            <g id="SVGRepo_iconCarrier">
     817                                                                <path
     818                                                                    d="M240,211.98316H227.99414v-108a12.01343,12.01343,0,0,0-12-12h-68v-52a12.01343,12.01343,0,0,0-12-12h-96a12.01343,12.01343,0,0,0-12,12v172H16a4,4,0,0,0,0,8H240a4,4,0,0,0,0-8Zm-24.00586-112a4.00426,4.00426,0,0,1,4,4v108h-72v-112Zm-180-60a4.00427,4.00427,0,0,1,4-4h96a4.00426,4.00426,0,0,1,4,4v172h-104Zm24,32a4.0002,4.0002,0,0,1,4-4h32a4,4,0,1,1,0,8h-32A4.0002,4.0002,0,0,1,59.99414,71.98316Zm56,64a4.0002,4.0002,0,0,1-4,4h-32a4,4,0,0,1,0-8h32A4.0002,4.0002,0,0,1,115.99414,135.98316Zm-16,40a4.0002,4.0002,0,0,1-4,4h-32a4,4,0,0,1,0-8h32A4.0002,4.0002,0,0,1,99.99414,175.98316Zm96,0a4.0002,4.0002,0,0,1-4,4h-16a4,4,0,0,1,0-8h16A4.0002,4.0002,0,0,1,195.99414,175.98316Zm-24-40a4.0002,4.0002,0,0,1,4-4h16a4,4,0,1,1,0,8h-16A4.0002,4.0002,0,0,1,171.99414,135.98316Z">
     819                                                                </path>
     820                                                            </g>
     821                                                        </svg>
     822                                                        <span><?php echo esc_html(number_format($sqft)); ?>
     823                                                            <?php esc_html_e('sqft', 'havenlytics'); ?></span>
     824                                                    </div>
     825                                                    <?php endif; ?>
     826                                                </div>
    533827                                            </div>
    534828                                        </div>
    535                                     </div>
    536                                     <!-- Heavenlytics FancyBox Structure -->
    537                                 </div>
     829                                        <?php
     830                                                    endwhile;
     831                                                    wp_reset_postdata();
     832                                                endif;
     833                                                ?>
     834
     835
     836
     837                                    </div>
     838
     839                                    <div class="havenlytics_nav">
     840                                        <button class="havenlytics_prev">
     841                                            <i class="fas fa-chevron-left"></i>
     842                                        </button>
     843                                        <button class="havenlytics_next">
     844                                            <i class="fas fa-chevron-right"></i>
     845                                        </button>
     846                                    </div>
     847                                </div>
     848
     849                                <?php
     850                                        // Generate dynamic dots based on found posts
     851                                        $total_items = $featured_query->found_posts;
     852                                        if ($total_items > 0) :
     853                                        ?>
     854                                <div class="havenlytics_dots">
     855                                    <?php for ($i = 0; $i < $total_items; $i++) : ?>
     856                                    <div class="havenlytics_dot<?php echo ($i === 0) ? ' active' : ''; ?>"></div>
     857                                    <?php endfor; ?>
     858                                </div>
     859                                <?php endif; ?>
    538860
    539861
    540862                            </div>
     863
    541864                        </div>
    542 
    543 
    544                     </div>
    545 
    546                     <!-- Sidebar -->
    547                     <div class="col-lg-4">
    548                         <div class="havenlytics_sticky_sidebar">
    549                             <!-- Amenities Section -->
    550                             <div class="property-details-card">
    551                                 <h2 class="section-title">Property Amenities</h2>
    552                                 <div class="havenlytics-amenities-grid">
    553                                     <?php
    554                                     $post_id = get_the_ID();
    555 
    556                                     if (get_post_meta($post_id, '_havenlytics_property_book_property', true)) :
    557                                     ?>
    558                                         <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="enquiry">
    559                                             <div class="havenlytics-amenity-icon">
    560                                                 <i class="fas fa-calendar"></i>
    561                                             </div>
    562                                             <h4>Book Property</h4>
    563                                         </div>
    564                                     <?php endif; ?>
    565 
    566                                     <?php if (get_post_meta($post_id, '_havenlytics_property_virtual_tour', true)) : ?>
    567                                         <div class="havenlytics-amenity-card havenlytics-popup-trigger"
    568                                             data-popup="virtualTour">
    569                                             <div class="havenlytics-amenity-icon">
    570                                                 <i class="fas fa-vr-cardboard"></i>
    571                                             </div>
    572                                             <h4>Virtual Tour</h4>
    573                                         </div>
    574                                     <?php endif; ?>
    575 
    576                                     <?php if (get_post_meta($post_id, '_havenlytics_property_floorplan_img', true)) : ?>
    577                                         <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="floorplan">
    578                                             <div class="havenlytics-amenity-icon">
    579                                                 <i class="fas fa-vector-square"></i>
    580                                             </div>
    581                                             <h4>Floorplan</h4>
    582                                         </div>
    583                                     <?php endif; ?>
    584 
    585                                     <?php if (get_post_meta($post_id, '_havenlytics_property_brochure_pdf', true)) : ?>
    586                                         <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="brochure">
    587                                             <div class="havenlytics-amenity-icon">
    588                                                 <i class="fas fa-file-alt"></i>
    589                                             </div>
    590                                             <h4>View Brochure</h4>
    591                                         </div>
    592                                     <?php endif; ?>
    593 
    594                                     <?php if (get_post_meta($post_id, '_havenlytics_property_epc_pdf', true)) : ?>
    595                                         <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="epc">
    596                                             <div class="havenlytics-amenity-icon">
    597                                                 <i class="fas fa-clipboard"></i>
    598                                             </div>
    599                                             <h4>View Epc</h4>
    600                                         </div>
    601                                     <?php endif; ?>
    602 
    603                                     <?php if (get_post_meta($post_id, '_havenlytics_property_map_url', true)) : ?>
    604                                         <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="map">
    605                                             <div class="havenlytics-amenity-icon">
    606                                                 <i class="fas fa-map-marked-alt"></i>
    607                                             </div>
    608                                             <h4>Map</h4>
    609                                         </div>
    610                                     <?php endif; ?>
    611 
    612                                     <?php if (get_post_meta($post_id, '_havenlytics_property_request_call', true)) : ?>
    613                                         <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="agent">
    614                                             <div class="havenlytics-amenity-icon">
    615                                                 <i class="fas fa-phone-alt"></i>
    616                                             </div>
    617                                             <h4>Request Call Back</h4>
    618                                         </div>
    619                                     <?php endif; ?>
    620 
    621                                     <?php if (get_post_meta($post_id, '_havenlytics_property_arrange_view', true)) : ?>
    622                                         <div class="havenlytics-amenity-card havenlytics-popup-trigger" data-popup="viewing">
    623                                             <div class="havenlytics-amenity-icon">
    624                                                 <i class="fas fa-calendar-check"></i>
    625                                             </div>
    626                                             <h4>Arrange Viewing</h4>
    627                                         </div>
    628                                     <?php endif; ?>
    629                                 </div>
    630 
    631                             </div>
    632 
    633                             <!-- Agent Contact -->
    634                             <div class="property-details-card">
    635                                 <div class="agent-card">
    636 
    637 
    638                                     <div class="contact-info">
    639                                         <div class="contact-item">
    640                                             <i class="fas fa-phone"></i>
    641                                             <span>(305) 555-0123</span>
    642                                         </div>
    643                                         <div class="contact-item">
    644                                             <i class="fas fa-envelope"></i>
    645                                             <span>[email protected]</span>
    646                                         </div>
    647                                         <div class="contact-item">
    648                                             <i class="fas fa-certificate"></i>
    649                                             <span>License #: SL3456723</span>
    650                                         </div>
    651                                     </div>
    652 
    653                                     <form class="contact-form">
    654                                         <input type="text" placeholder="Your Name" required>
    655                                         <input type="email" placeholder="Your Email" required>
    656                                         <input type="tel" placeholder="Your Phone">
    657                                         <textarea placeholder="Your Message"></textarea>
    658                                         <button type="submit" class="havenlytics-btn-primary havenlytics-btn-style-2">Send
    659                                             Email</button>
    660                                     </form>
    661                                 </div>
    662                             </div>
    663 
    664 
    665 
    666 
    667                         </div>
    668                     </div>
    669                 </div>
    670 
    671 
    672                 <!-- Similar Listings -->
    673                 <div class="havenlytics-similar-list">
    674                     <div class="havenlytics-similar-section-heading">
    675                         <h2><?php esc_html_e('Similar Property Listings', 'havenlytics'); ?></h2>
    676                         <div class="havenlytics-similar-line">
    677                             <span class="havenlytics-similar-line1"></span>
    678                             <span class="havenlytics-similar-line2"></span>
    679                         </div>
    680                         <p><?php esc_html_e('Explore properties with similar features and locations', 'havenlytics'); ?></p>
    681                     </div>
    682                     <div class="row">
    683                         <div class="col-md-12">
    684                             <div class="havenlytics-similar-slider owl-carousel">
    685                                 <?php
     865                        <?php endif; ?>
     866
     867                    </div>
     868                </div>
     869            </div>
     870
     871
     872            <!-- Similar Listings -->
     873            <div class="havenlytics-similar-list">
     874                <div class="havenlytics-similar-section-heading">
     875                    <h2><?php esc_html_e('Similar Property Listings', 'havenlytics'); ?></h2>
     876                    <div class="havenlytics-similar-line">
     877                        <span class="havenlytics-similar-line1"></span>
     878                        <span class="havenlytics-similar-line2"></span>
     879                    </div>
     880                    <p><?php esc_html_e('Explore properties with similar features and locations', 'havenlytics'); ?></p>
     881                </div>
     882                <div class="row">
     883                    <div class="col-md-12">
     884                        <div class="havenlytics-similar-slider owl-carousel">
     885                            <?php
    686886                                $current_post_id = get_the_ID();
    687887
     
    781981                                        }
    782982                                ?>
    783                                         <!-- Property Card -->
    784                                         <div class="havenlytics-property-card-grid">
    785                                             <div class="havenlytics-property-grid-item">
    786                                                 <div class="havenlytics-property-thumbnail-item">
    787                                                     <div class="havenlytics-related-carousel-thumbnail">
    788                                                         <?php if (has_post_thumbnail()) : ?>
    789                                                             <?php the_post_thumbnail('havenlytics-property-related-thumb', array(
     983                            <!-- Property Card -->
     984                            <div class="havenlytics-property-card-grid">
     985                                <div class="havenlytics-property-grid-item">
     986                                    <div class="havenlytics-property-thumbnail-item">
     987                                        <div class="havenlytics-related-carousel-thumbnail">
     988                                            <?php if (has_post_thumbnail()) : ?>
     989                                            <?php the_post_thumbnail('havenlytics-property-related-thumb', array(
    790990                                                                'alt' => esc_attr(get_the_title()),
    791991                                                                'class' => 'img-fluid'
    792992                                                            )); ?>
    793                                                         <?php else : ?>
    794                                                             <img src="<?php echo esc_url(HVNLY_PROPERTY_URL . 'public/assets/img/video-placeholder.png'); ?>"
    795                                                                 alt="<?php esc_attr_e('Property Image', 'havenlytics'); ?>"
    796                                                                 class="img-fluid" width="400" height="300" <?php endif; ?> </div>
    797 
    798                                                             <?php if ($price) : ?>
    799                                                                 <div class="havenlytics-property-amount">
    800                                                                     <h5>
    801                                                                         <span>
    802                                                                             <?php echo esc_html($currency_symbol); ?>
    803                                                                             <?php echo esc_html($price); ?>
    804                                                                         </span>
    805                                                                     </h5>
    806                                                                 </div>
    807                                                             <?php endif; ?>
    808 
    809                                                             <?php if ($status_badge) : ?>
    810                                                                 <div class="havenlytics-property-featured">
    811                                                                     <span><?php echo esc_html($status_badge); ?></span>
    812                                                                 </div>
    813                                                             <?php endif; ?>
     993                                            <?php else : ?>
     994                                            <img src="<?php echo esc_url(HVNLY_PROPERTY_URL . 'public/assets/img/video-placeholder.png'); ?>"
     995                                                alt="<?php esc_attr_e('Property Image', 'havenlytics'); ?>"
     996                                                class="img-fluid" width="400" height="300" <?php endif; ?> </div>
     997
     998                                            <?php if ($price) : ?>
     999                                            <div class="havenlytics-property-amount">
     1000                                                <h5>
     1001                                                    <span>
     1002                                                        <?php echo esc_html($currency_symbol); ?>
     1003                                                        <?php echo esc_html($price); ?>
     1004                                                    </span>
     1005                                                </h5>
     1006                                            </div>
     1007                                            <?php endif; ?>
     1008
     1009                                            <?php if ($status_badge) : ?>
     1010                                            <div class="havenlytics-property-featured">
     1011                                                <span><?php echo esc_html($status_badge); ?></span>
     1012                                            </div>
     1013                                            <?php endif; ?>
     1014                                        </div>
     1015
     1016                                        <div class="havenlytics-property--content">
     1017                                            <h3 class="havenlytics-property-title">
     1018                                                <a
     1019                                                    href="<?php the_permalink(); ?>"><?php echo esc_html(wp_trim_words(get_the_title(), 4, '...')); ?></a>
     1020                                            </h3>
     1021
     1022                                            <?php if ($address) : ?>
     1023                                            <p class="havenlytics-property-location">
     1024                                                <svg class="custom-icon" width="20px" height="20px" viewBox="0 0 24 24"
     1025                                                    fill="#6C60FE">
     1026                                                    <path
     1027                                                        d="M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z">
     1028                                                    </path>
     1029                                                </svg>
     1030                                                <?php echo esc_html($address); ?>
     1031                                            </p>
     1032                                            <?php endif; ?>
     1033
     1034                                            <ul class="d-flex havenlytics-property-short-details">
     1035                                                <?php if ($bedrooms) : ?>
     1036                                                <li>
     1037                                                    <div class="heavenlytics-property-meta-item">
     1038                                                        <!-- Bedrooms SVG -->
     1039                                                        <svg fill="#6C60FE" width="20px" height="20px"
     1040                                                            viewBox="0 -11.47 122.88 122.88" version="1.1" id="Layer_1"
     1041                                                            xmlns="http://www.w3.org/2000/svg"
     1042                                                            xmlns:xlink="http://www.w3.org/1999/xlink"
     1043                                                            style="enable-background:new 0 0 122.88 99.94"
     1044                                                            xml:space="preserve">
     1045                                                            <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
     1046                                                            <g id="SVGRepo_tracerCarrier" stroke-linecap="round"
     1047                                                                stroke-linejoin="round"></g>
     1048                                                            <g id="SVGRepo_iconCarrier">
     1049                                                                <g>
     1050                                                                    <path
     1051                                                                        d="M4.22,67.36h114.31v-4.67c0-1.13-0.22-2.18-0.61-3.12c-0.42-1-1.04-1.89-1.81-2.66c-0.47-0.47-1-0.9-1.57-1.28 c-0.58-0.39-1.2-0.73-1.85-1.02c-1.75-0.38-3.49-0.74-5.22-1.08c-1.74-0.34-3.49-0.66-5.25-0.96c-0.08-0.01-0.14-0.02-0.22-0.04 c-0.89-0.15-1.74-0.29-2.55-0.42c-0.81-0.13-1.67-0.26-2.57-0.4l-0.02,0c-6.12-0.78-12.22-1.38-18.31-1.78 c-6.1-0.4-12.17-0.6-18.2-0.61c-3.58,0-7.15,0.06-10.72,0.2c-3.55,0.14-7.12,0.34-10.69,0.62l-0.02,0 c-3.34,0.31-6.67,0.7-10.01,1.15c-3.33,0.45-6.67,0.98-10.03,1.57l-0.37,0.09c-0.07,0.02-0.14,0.03-0.2,0.03 c-0.06,0.01-0.12,0.01-0.18,0.01c-1.57,0.28-3.18,0.59-4.84,0.92c-1.61,0.32-3.22,0.66-4.82,1.01c-0.4,0.22-0.78,0.47-1.14,0.73 c-0.36,0.27-0.71,0.56-1.02,0.87v0c-0.67,0.67-1.2,1.44-1.56,2.3c-0.34,0.81-0.53,1.71-0.53,2.69V67.36L4.22,67.36z M14.2,0h92.99 c1.21,0,2.37,0.24,3.43,0.68c1.1,0.46,2.09,1.13,2.92,1.95c0.83,0.83,1.5,1.82,1.95,2.92c0.44,1.06,0.68,2.22,0.68,3.43v42.69 c0.51,0.3,1.01,0.63,1.47,0.99c0.52,0.4,1.01,0.82,1.46,1.27c1.16,1.16,2.1,2.51,2.73,4.03c0.6,1.43,0.93,3.02,0.93,4.74v6.09 c0.03,0.1,0.06,0.2,0.08,0.3l0,0.02c0.02,0.13,0.03,0.25,0.03,0.37c0,0.13-0.01,0.26-0.04,0.39l0,0c-0.02,0.1-0.05,0.2-0.08,0.3 v27.66c0,0.58-0.24,1.11-0.62,1.49c-0.38,0.38-0.91,0.62-1.49,0.62h-4.35c-0.49,0-0.94-0.17-1.3-0.45 c-0.36-0.28-0.63-0.68-0.74-1.14c-0.8-2.3-1.61-4.12-2.48-5.54c-0.86-1.4-1.78-2.4-2.84-3.11c-1.07-0.71-2.35-1.16-3.9-1.43 c-1.58-0.28-3.42-0.37-5.61-0.36l-79.76,0.1l-0.04,0c-1.57-0.03-2.86,0.17-3.94,0.59c-1.07,0.42-1.94,1.05-2.66,1.86 c-0.81,0.9-1.49,2.05-2.11,3.39c-0.63,1.37-1.2,2.93-1.77,4.64l0,0c-0.14,0.44-0.42,0.79-0.77,1.04c-0.33,0.24-0.73,0.38-1.14,0.4 c-0.03,0.01-0.06,0.01-0.09,0.01H2.11c-0.58,0-1.11-0.24-1.49-0.62C0.24,98.94,0,98.41,0,97.83V61.52c0-1.57,0.3-3.01,0.84-4.31 c0.58-1.38,1.43-2.61,2.49-3.67c0.3-0.3,0.63-0.6,0.98-0.88c0.3-0.24,0.6-0.47,0.92-0.68V8.89c0-1.21,0.24-2.36,0.68-3.4 c0.46-1.09,1.13-2.07,1.96-2.89c0.83-0.82,1.82-1.47,2.91-1.92C11.84,0.24,12.99,0,14.2,0L14.2,0z M107.19,4.22H14.2 c-0.65,0-1.27,0.13-1.84,0.36c-0.59,0.24-1.11,0.59-1.55,1.02c-0.43,0.42-0.78,0.94-1.02,1.5C9.57,7.65,9.45,8.25,9.45,8.89v41.06 c0.3-0.1,0.6-0.18,0.91-0.26c0.49-0.13,0.98-0.24,1.47-0.32c0.68-0.12,1.42-0.25,2.22-0.39c0.6-0.1,1.24-0.21,1.9-0.31V38.19 c0-1.58,0.32-3.09,0.89-4.47c0.6-1.44,1.47-2.73,2.55-3.81c1.08-1.08,2.37-1.95,3.81-2.55c1.38-0.57,2.89-0.89,4.47-0.89h19.82 c1.58,0,3.09,0.32,4.47,0.89c1.44,0.6,2.73,1.47,3.81,2.55c1.08,1.08,1.95,2.37,2.55,3.81c0.57,1.38,0.89,2.89,0.89,4.47v6.69 c0.7-0.01,1.4-0.01,2.11-0.01v-6.68c0-1.58,0.32-3.09,0.89-4.47c0.6-1.44,1.47-2.73,2.55-3.81c1.08-1.08,2.37-1.95,3.81-2.55 c1.38-0.57,2.89-0.89,4.47-0.89h19.82c1.58,0,3.09,0.32,4.47,0.89c1.44,0.6,2.73,1.47,3.81,2.55c1.08,1.08,1.95,2.37,2.55,3.81 c0.57,1.38,0.89,2.89,0.89,4.47v10.34c0.75,0.11,1.55,0.24,2.41,0.38c0.95,0.15,1.86,0.3,2.74,0.45c0.45,0.08,0.91,0.17,1.37,0.28 c0.29,0.07,0.57,0.14,0.84,0.22V8.98c0-0.64-0.13-1.25-0.36-1.81c-0.24-0.58-0.6-1.1-1.04-1.55c-0.44-0.44-0.97-0.8-1.54-1.04 C108.44,4.35,107.83,4.22,107.19,4.22L107.19,4.22z M43.21,45.56c2.01-0.15,4.03-0.28,6.08-0.38c1.89-0.1,3.8-0.17,5.71-0.22v-6.77 c0-1.01-0.2-1.98-0.57-2.86c-0.38-0.92-0.94-1.74-1.64-2.44c-0.69-0.69-1.52-1.25-2.44-1.64c-0.88-0.37-1.85-0.57-2.86-0.57H27.67 c-1.01,0-1.98,0.2-2.86,0.57c-0.92,0.38-1.74,0.94-2.44,1.64c-0.69,0.69-1.25,1.52-1.64,2.44c-0.37,0.88-0.57,1.85-0.57,2.86V48 c1.62-0.24,3.26-0.46,4.94-0.68c1.81-0.23,3.61-0.44,5.39-0.64c0.69-0.08,1.43-0.17,2.2-0.25c0.72-0.08,1.47-0.15,2.27-0.23 c1.36-0.13,2.71-0.25,4.04-0.36C40.37,45.75,41.77,45.65,43.21,45.56L43.21,45.56z M65.54,44.9c1.21,0.02,2.42,0.05,3.63,0.09 c1.34,0.04,2.68,0.1,4.01,0.16l0.01,0c2.19,0.08,4.33,0.18,6.41,0.3c2.08,0.12,4.11,0.27,6.05,0.44c2.82,0.25,5.55,0.55,8.14,0.9 c2.32,0.32,4.52,0.68,6.58,1.08v-9.68c0-1.01-0.2-1.98-0.57-2.86c-0.38-0.92-0.94-1.74-1.64-2.44c-0.69-0.69-1.52-1.25-2.44-1.64 c-0.88-0.37-1.85-0.57-2.86-0.57H73.05c-1.01,0-1.98,0.2-2.86,0.57c-0.92,0.38-1.74,0.94-2.44,1.64c-0.69,0.69-1.25,1.52-1.64,2.44 c-0.37,0.88-0.57,1.85-0.57,2.86V44.9L65.54,44.9z M118.54,71.59H4.22v24.13h1.43c0.56-1.58,1.14-3.05,1.79-4.36 c0.7-1.4,1.49-2.64,2.45-3.71c1.14-1.28,2.48-2.27,4.09-2.93c1.61-0.65,3.49-0.98,5.75-0.93l79.69-0.1c2.57,0,4.77,0.12,6.69,0.49 c1.95,0.37,3.63,1,5.14,2c1.4,0.93,2.6,2.16,3.68,3.77c1.03,1.54,1.95,3.43,2.83,5.76h0.76V71.59L118.54,71.59z">
     1052                                                                    </path>
     1053                                                                </g>
     1054                                                            </g>
     1055                                                        </svg>
     1056                                                        <?php echo esc_html($bedrooms); ?>
     1057                                                        <?php esc_html_e('Beds', 'havenlytics'); ?>
    8141058                                                    </div>
    815 
    816                                                     <div class="havenlytics-property--content">
    817                                                         <h3 class="havenlytics-property-title">
    818                                                             <a
    819                                                                 href="<?php the_permalink(); ?>"><?php echo esc_html(wp_trim_words(get_the_title(), 4, '...')); ?></a>
    820                                                         </h3>
    821 
    822                                                         <?php if ($address) : ?>
    823                                                             <p class="havenlytics-property-location">
    824                                                                 <svg class="custom-icon" width="20px" height="20px" viewBox="0 0 24 24"
    825                                                                     fill="#6C60FE">
     1059                                                </li>
     1060                                                <?php endif; ?>
     1061
     1062                                                <?php if ($bathrooms) : ?>
     1063                                                <li>
     1064                                                    <div class="heavenlytics-property-meta-item">
     1065                                                        <!-- Bathrooms SVG -->
     1066                                                        <svg fill="#6C60FE" width="20px" height="20px"
     1067                                                            viewBox="0 0 512 512" id="Layer_1"
     1068                                                            enable-background="new 0 0 512 512"
     1069                                                            xmlns="http://www.w3.org/2000/svg">
     1070                                                            <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
     1071                                                            <g id="SVGRepo_tracerCarrier" stroke-linecap="round"
     1072                                                                stroke-linejoin="round"></g>
     1073                                                            <g id="SVGRepo_iconCarrier">
     1074                                                                <g>
    8261075                                                                    <path
    827                                                                         d="M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z">
     1076                                                                        d="m496 288c-38.154 0-437.487 0-448 0v-56h32c8.837 0 16-7.164 16-16v-40c0-8.836-7.163-16-16-16s-16 7.164-16 16v24h-16v-138.745c0-25.903 31.562-39.064 49.941-20.686l16.94 16.94c-13.424 23.401-10.164 53.835 9.805 73.805l8 8c6.247 6.248 16.379 6.249 22.627 0l64-64c6.249-6.248 6.249-16.379 0-22.627l-8-8c-20.35-20.351-50.837-23.06-73.817-9.817l-16.928-16.928c-11.57-11.57-26.952-17.942-43.313-17.942-33.776 0-61.255 27.479-61.255 61.255v226.745c-8.837 0-16 7.164-16 16s7.163 16 16 16v32c0 43.889 19.742 83.247 50.806 109.681l-22.338 23.229c-9.803 10.193-2.445 27.09 11.53 27.09 4.199 0 8.394-1.644 11.534-4.91l26.218-27.263c19.844 10.326 42.376 16.173 66.25 16.173h192c23.874 0 46.406-5.847 66.25-16.173l26.218 27.263c6.106 6.35 16.234 6.585 22.623.442 6.369-6.125 6.566-16.254.441-22.623l-22.338-23.229c31.064-26.433 50.806-65.791 50.806-109.68v-32c8.837 0 16-7.164 16-16s-7.163-16-16-16zm-310.89-223.738-40.845 40.845c-8.246-11.427-7.23-27.515 3.048-37.794 10.378-10.377 26.461-11.259 37.797-3.051zm278.89 287.738c0 61.757-50.243 112-112 112h-192c-61.757 0-112-50.243-112-112v-32h416z">
    8281077                                                                    </path>
    829                                                                 </svg>
    830                                                                 <?php echo esc_html($address); ?>
    831                                                             </p>
    832                                                         <?php endif; ?>
    833 
    834                                                         <ul class="d-flex havenlytics-property-short-details">
    835                                                             <?php if ($bedrooms) : ?>
    836                                                                 <li>
    837                                                                     <div class="heavenlytics-property-meta-item">
    838                                                                         <!-- Bedrooms SVG -->
    839                                                                         <svg fill="#6C60FE" width="20px" height="20px"
    840                                                                             viewBox="0 -11.47 122.88 122.88" version="1.1" id="Layer_1"
    841                                                                             xmlns="http://www.w3.org/2000/svg"
    842                                                                             xmlns:xlink="http://www.w3.org/1999/xlink"
    843                                                                             style="enable-background:new 0 0 122.88 99.94"
    844                                                                             xml:space="preserve">
    845                                                                             <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
    846                                                                             <g id="SVGRepo_tracerCarrier" stroke-linecap="round"
    847                                                                                 stroke-linejoin="round"></g>
    848                                                                             <g id="SVGRepo_iconCarrier">
    849                                                                                 <g>
    850                                                                                     <path
    851                                                                                         d="M4.22,67.36h114.31v-4.67c0-1.13-0.22-2.18-0.61-3.12c-0.42-1-1.04-1.89-1.81-2.66c-0.47-0.47-1-0.9-1.57-1.28 c-0.58-0.39-1.2-0.73-1.85-1.02c-1.75-0.38-3.49-0.74-5.22-1.08c-1.74-0.34-3.49-0.66-5.25-0.96c-0.08-0.01-0.14-0.02-0.22-0.04 c-0.89-0.15-1.74-0.29-2.55-0.42c-0.81-0.13-1.67-0.26-2.57-0.4l-0.02,0c-6.12-0.78-12.22-1.38-18.31-1.78 c-6.1-0.4-12.17-0.6-18.2-0.61c-3.58,0-7.15,0.06-10.72,0.2c-3.55,0.14-7.12,0.34-10.69,0.62l-0.02,0 c-3.34,0.31-6.67,0.7-10.01,1.15c-3.33,0.45-6.67,0.98-10.03,1.57l-0.37,0.09c-0.07,0.02-0.14,0.03-0.2,0.03 c-0.06,0.01-0.12,0.01-0.18,0.01c-1.57,0.28-3.18,0.59-4.84,0.92c-1.61,0.32-3.22,0.66-4.82,1.01c-0.4,0.22-0.78,0.47-1.14,0.73 c-0.36,0.27-0.71,0.56-1.02,0.87v0c-0.67,0.67-1.2,1.44-1.56,2.3c-0.34,0.81-0.53,1.71-0.53,2.69V67.36L4.22,67.36z M14.2,0h92.99 c1.21,0,2.37,0.24,3.43,0.68c1.1,0.46,2.09,1.13,2.92,1.95c0.83,0.83,1.5,1.82,1.95,2.92c0.44,1.06,0.68,2.22,0.68,3.43v42.69 c0.51,0.3,1.01,0.63,1.47,0.99c0.52,0.4,1.01,0.82,1.46,1.27c1.16,1.16,2.1,2.51,2.73,4.03c0.6,1.43,0.93,3.02,0.93,4.74v6.09 c0.03,0.1,0.06,0.2,0.08,0.3l0,0.02c0.02,0.13,0.03,0.25,0.03,0.37c0,0.13-0.01,0.26-0.04,0.39l0,0c-0.02,0.1-0.05,0.2-0.08,0.3 v27.66c0,0.58-0.24,1.11-0.62,1.49c-0.38,0.38-0.91,0.62-1.49,0.62h-4.35c-0.49,0-0.94-0.17-1.3-0.45 c-0.36-0.28-0.63-0.68-0.74-1.14c-0.8-2.3-1.61-4.12-2.48-5.54c-0.86-1.4-1.78-2.4-2.84-3.11c-1.07-0.71-2.35-1.16-3.9-1.43 c-1.58-0.28-3.42-0.37-5.61-0.36l-79.76,0.1l-0.04,0c-1.57-0.03-2.86,0.17-3.94,0.59c-1.07,0.42-1.94,1.05-2.66,1.86 c-0.81,0.9-1.49,2.05-2.11,3.39c-0.63,1.37-1.2,2.93-1.77,4.64l0,0c-0.14,0.44-0.42,0.79-0.77,1.04c-0.33,0.24-0.73,0.38-1.14,0.4 c-0.03,0.01-0.06,0.01-0.09,0.01H2.11c-0.58,0-1.11-0.24-1.49-0.62C0.24,98.94,0,98.41,0,97.83V61.52c0-1.57,0.3-3.01,0.84-4.31 c0.58-1.38,1.43-2.61,2.49-3.67c0.3-0.3,0.63-0.6,0.98-0.88c0.3-0.24,0.6-0.47,0.92-0.68V8.89c0-1.21,0.24-2.36,0.68-3.4 c0.46-1.09,1.13-2.07,1.96-2.89c0.83-0.82,1.82-1.47,2.91-1.92C11.84,0.24,12.99,0,14.2,0L14.2,0z M107.19,4.22H14.2 c-0.65,0-1.27,0.13-1.84,0.36c-0.59,0.24-1.11,0.59-1.55,1.02c-0.43,0.42-0.78,0.94-1.02,1.5C9.57,7.65,9.45,8.25,9.45,8.89v41.06 c0.3-0.1,0.6-0.18,0.91-0.26c0.49-0.13,0.98-0.24,1.47-0.32c0.68-0.12,1.42-0.25,2.22-0.39c0.6-0.1,1.24-0.21,1.9-0.31V38.19 c0-1.58,0.32-3.09,0.89-4.47c0.6-1.44,1.47-2.73,2.55-3.81c1.08-1.08,2.37-1.95,3.81-2.55c1.38-0.57,2.89-0.89,4.47-0.89h19.82 c1.58,0,3.09,0.32,4.47,0.89c1.44,0.6,2.73,1.47,3.81,2.55c1.08,1.08,1.95,2.37,2.55,3.81c0.57,1.38,0.89,2.89,0.89,4.47v6.69 c0.7-0.01,1.4-0.01,2.11-0.01v-6.68c0-1.58,0.32-3.09,0.89-4.47c0.6-1.44,1.47-2.73,2.55-3.81c1.08-1.08,2.37-1.95,3.81-2.55 c1.38-0.57,2.89-0.89,4.47-0.89h19.82c1.58,0,3.09,0.32,4.47,0.89c1.44,0.6,2.73,1.47,3.81,2.55c1.08,1.08,1.95,2.37,2.55,3.81 c0.57,1.38,0.89,2.89,0.89,4.47v10.34c0.75,0.11,1.55,0.24,2.41,0.38c0.95,0.15,1.86,0.3,2.74,0.45c0.45,0.08,0.91,0.17,1.37,0.28 c0.29,0.07,0.57,0.14,0.84,0.22V8.98c0-0.64-0.13-1.25-0.36-1.81c-0.24-0.58-0.6-1.1-1.04-1.55c-0.44-0.44-0.97-0.8-1.54-1.04 C108.44,4.35,107.83,4.22,107.19,4.22L107.19,4.22z M43.21,45.56c2.01-0.15,4.03-0.28,6.08-0.38c1.89-0.1,3.8-0.17,5.71-0.22v-6.77 c0-1.01-0.2-1.98-0.57-2.86c-0.38-0.92-0.94-1.74-1.64-2.44c-0.69-0.69-1.52-1.25-2.44-1.64c-0.88-0.37-1.85-0.57-2.86-0.57H27.67 c-1.01,0-1.98,0.2-2.86,0.57c-0.92,0.38-1.74,0.94-2.44,1.64c-0.69,0.69-1.25,1.52-1.64,2.44c-0.37,0.88-0.57,1.85-0.57,2.86V48 c1.62-0.24,3.26-0.46,4.94-0.68c1.81-0.23,3.61-0.44,5.39-0.64c0.69-0.08,1.43-0.17,2.2-0.25c0.72-0.08,1.47-0.15,2.27-0.23 c1.36-0.13,2.71-0.25,4.04-0.36C40.37,45.75,41.77,45.65,43.21,45.56L43.21,45.56z M65.54,44.9c1.21,0.02,2.42,0.05,3.63,0.09 c1.34,0.04,2.68,0.1,4.01,0.16l0.01,0c2.19,0.08,4.33,0.18,6.41,0.3c2.08,0.12,4.11,0.27,6.05,0.44c2.82,0.25,5.55,0.55,8.14,0.9 c2.32,0.32,4.52,0.68,6.58,1.08v-9.68c0-1.01-0.2-1.98-0.57-2.86c-0.38-0.92-0.94-1.74-1.64-2.44c-0.69-0.69-1.52-1.25-2.44-1.64 c-0.88-0.37-1.85-0.57-2.86-0.57H73.05c-1.01,0-1.98,0.2-2.86,0.57c-0.92,0.38-1.74,0.94-2.44,1.64c-0.69,0.69-1.25,1.52-1.64,2.44 c-0.37,0.88-0.57,1.85-0.57,2.86V44.9L65.54,44.9z M118.54,71.59H4.22v24.13h1.43c0.56-1.58,1.14-3.05,1.79-4.36 c0.7-1.4,1.49-2.64,2.45-3.71c1.14-1.28,2.48-2.27,4.09-2.93c1.61-0.65,3.49-0.98,5.75-0.93l79.69-0.1c2.57,0,4.77,0.12,6.69,0.49 c1.95,0.37,3.63,1,5.14,2c1.4,0.93,2.6,2.16,3.68,3.77c1.03,1.54,1.95,3.43,2.83,5.76h0.76V71.59L118.54,71.59z">
    852                                                                                     </path>
    853                                                                                 </g>
    854                                                                             </g>
    855                                                                         </svg>
    856                                                                         <?php echo esc_html($bedrooms); ?>
    857                                                                         <?php esc_html_e('Beds', 'havenlytics'); ?>
    858                                                                     </div>
    859                                                                 </li>
    860                                                             <?php endif; ?>
    861 
    862                                                             <?php if ($bathrooms) : ?>
    863                                                                 <li>
    864                                                                     <div class="heavenlytics-property-meta-item">
    865                                                                         <!-- Bathrooms SVG -->
    866                                                                         <svg fill="#6C60FE" width="20px" height="20px"
    867                                                                             viewBox="0 0 512 512" id="Layer_1"
    868                                                                             enable-background="new 0 0 512 512"
    869                                                                             xmlns="http://www.w3.org/2000/svg">
    870                                                                             <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
    871                                                                             <g id="SVGRepo_tracerCarrier" stroke-linecap="round"
    872                                                                                 stroke-linejoin="round"></g>
    873                                                                             <g id="SVGRepo_iconCarrier">
    874                                                                                 <g>
    875                                                                                     <path
    876                                                                                         d="m496 288c-38.154 0-437.487 0-448 0v-56h32c8.837 0 16-7.164 16-16v-40c0-8.836-7.163-16-16-16s-16 7.164-16 16v24h-16v-138.745c0-25.903 31.562-39.064 49.941-20.686l16.94 16.94c-13.424 23.401-10.164 53.835 9.805 73.805l8 8c6.247 6.248 16.379 6.249 22.627 0l64-64c6.249-6.248 6.249-16.379 0-22.627l-8-8c-20.35-20.351-50.837-23.06-73.817-9.817l-16.928-16.928c-11.57-11.57-26.952-17.942-43.313-17.942-33.776 0-61.255 27.479-61.255 61.255v226.745c-8.837 0-16 7.164-16 16s7.163 16 16 16v32c0 43.889 19.742 83.247 50.806 109.681l-22.338 23.229c-9.803 10.193-2.445 27.09 11.53 27.09 4.199 0 8.394-1.644 11.534-4.91l26.218-27.263c19.844 10.326 42.376 16.173 66.25 16.173h192c23.874 0 46.406-5.847 66.25-16.173l26.218 27.263c6.106 6.35 16.234 6.585 22.623.442 6.369-6.125 6.566-16.254.441-22.623l-22.338-23.229c31.064-26.433 50.806-65.791 50.806-109.68v-32c8.837 0 16-7.164 16-16s-7.163-16-16-16zm-310.89-223.738-40.845 40.845c-8.246-11.427-7.23-27.515 3.048-37.794 10.378-10.377 26.461-11.259 37.797-3.051zm278.89 287.738c0 61.757-50.243 112-112 112h-192c-61.757 0-112-50.243-112-112v-32h416z">
    877                                                                                     </path>
    878                                                                                 </g>
    879                                                                             </g>
    880                                                                         </svg>
    881                                                                         <?php echo esc_html($bathrooms); ?>
    882                                                                         <?php esc_html_e('Baths', 'havenlytics'); ?>
    883                                                                     </div>
    884                                                                 </li>
    885                                                             <?php endif; ?>
    886 
    887                                                             <?php if ($sqft) : ?>
    888                                                                 <li>
    889                                                                     <div class="heavenlytics-property-meta-item">
    890                                                                         <!-- Area SVG -->
    891                                                                         <svg fill="#6C60FE" width="20px" height="20px"
    892                                                                             viewBox="0 0 256 256" id="Flat"
    893                                                                             xmlns="http://www.w3.org/2000/svg">
    894                                                                             <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
    895                                                                             <g id="SVGRepo_tracerCarrier" stroke-linecap="round"
    896                                                                                 stroke-linejoin="round" stroke="#CCCCCC"
    897                                                                                 stroke-width="7.68"></g>
    898                                                                             <g id="SVGRepo_iconCarrier">
    899                                                                                 <path
    900                                                                                     d="M240,211.98316H227.99414v-108a12.01343,12.01343,0,0,0-12-12h-68v-52a12.01343,12.01343,0,0,0-12-12h-96a12.01343,12.01343,0,0,0-12,12v172H16a4,4,0,0,0,0,8H240a4,4,0,0,0,0-8Zm-24.00586-112a4.00426,4.00426,0,0,1,4,4v108h-72v-112Zm-180-60a4.00427,4.00427,0,0,1,4-4h96a4.00426,4.00426,0,0,1,4,4v172h-104Zm24,32a4.0002,4.0002,0,0,1,4-4h32a4,4,0,1,1,0,8h-32A4.0002,4.0002,0,0,1,59.99414,71.98316Zm56,64a4.0002,4.0002,0,0,1-4,4h-32a4,4,0,0,1,0-8h32A4.0002,4.0002,0,0,1,115.99414,135.98316Zm-16,40a4.0002,4.0002,0,0,1-4,4h-32a4,4,0,0,1,0-8h32A4.0002,4.0002,0,0,1,99.99414,175.98316Zm96,0a4.0002,4.0002,0,0,1-4,4h-16a4,4,0,0,1,0-8h16A4.0002,4.0002,0,0,1,195.99414,175.98316Zm-24-40a4.0002,4.0002,0,0,1,4-4h16a4,4,0,1,1,0,8h-16A4.0002,4.0002,0,0,1,171.99414,135.98316Z">
    901                                                                                 </path>
    902                                                                             </g>
    903                                                                         </svg>
    904                                                                         <?php echo esc_html(number_format($sqft)); ?>
    905                                                                         <?php esc_html_e('sqft', 'havenlytics'); ?>
    906                                                                     </div>
    907                                                                 </li>
    908                                                             <?php endif; ?>
    909                                                         </ul>
    910 
    911                                                         <ul
    912                                                             class="havenlytics-property-category d-flex justify-content-between align-items-center">
    913                                                             <li>
    914                                                                 <a href="<?php the_permalink(); ?>"
    915                                                                     class="havenlytics-btn-primary havenlytics-btn-style-1">
    916                                                                     <?php esc_html_e('View Property', 'havenlytics'); ?>
    917                                                                 </a>
    918                                                             </li>
    919                                                         </ul>
     1078                                                                </g>
     1079                                                            </g>
     1080                                                        </svg>
     1081                                                        <?php echo esc_html($bathrooms); ?>
     1082                                                        <?php esc_html_e('Baths', 'havenlytics'); ?>
    9201083                                                    </div>
    921                                                 </div>
    922                                             </div>
    923                                             <!-- /Property Card -->
    924                                         <?php
     1084                                                </li>
     1085                                                <?php endif; ?>
     1086
     1087                                                <?php if ($sqft) : ?>
     1088                                                <li>
     1089                                                    <div class="heavenlytics-property-meta-item">
     1090                                                        <!-- Area SVG -->
     1091                                                        <svg fill="#6C60FE" width="20px" height="20px"
     1092                                                            viewBox="0 0 256 256" id="Flat"
     1093                                                            xmlns="http://www.w3.org/2000/svg">
     1094                                                            <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
     1095                                                            <g id="SVGRepo_tracerCarrier" stroke-linecap="round"
     1096                                                                stroke-linejoin="round" stroke="#CCCCCC"
     1097                                                                stroke-width="7.68"></g>
     1098                                                            <g id="SVGRepo_iconCarrier">
     1099                                                                <path
     1100                                                                    d="M240,211.98316H227.99414v-108a12.01343,12.01343,0,0,0-12-12h-68v-52a12.01343,12.01343,0,0,0-12-12h-96a12.01343,12.01343,0,0,0-12,12v172H16a4,4,0,0,0,0,8H240a4,4,0,0,0,0-8Zm-24.00586-112a4.00426,4.00426,0,0,1,4,4v108h-72v-112Zm-180-60a4.00427,4.00427,0,0,1,4-4h96a4.00426,4.00426,0,0,1,4,4v172h-104Zm24,32a4.0002,4.0002,0,0,1,4-4h32a4,4,0,1,1,0,8h-32A4.0002,4.0002,0,0,1,59.99414,71.98316Zm56,64a4.0002,4.0002,0,0,1-4,4h-32a4,4,0,0,1,0-8h32A4.0002,4.0002,0,0,1,115.99414,135.98316Zm-16,40a4.0002,4.0002,0,0,1-4,4h-32a4,4,0,0,1,0-8h32A4.0002,4.0002,0,0,1,99.99414,175.98316Zm96,0a4.0002,4.0002,0,0,1-4,4h-16a4,4,0,0,1,0-8h16A4.0002,4.0002,0,0,1,195.99414,175.98316Zm-24-40a4.0002,4.0002,0,0,1,4-4h16a4,4,0,1,1,0,8h-16A4.0002,4.0002,0,0,1,171.99414,135.98316Z">
     1101                                                                </path>
     1102                                                            </g>
     1103                                                        </svg>
     1104                                                        <?php echo esc_html(number_format($sqft)); ?>
     1105                                                        <?php esc_html_e('sqft', 'havenlytics'); ?>
     1106                                                    </div>
     1107                                                </li>
     1108                                                <?php endif; ?>
     1109                                            </ul>
     1110
     1111                                            <ul
     1112                                                class="havenlytics-property-category d-flex justify-content-between align-items-center">
     1113                                                <li>
     1114                                                    <a href="<?php the_permalink(); ?>"
     1115                                                        class="havenlytics-btn-primary havenlytics-btn-style-1">
     1116                                                        <?php esc_html_e('View Property', 'havenlytics'); ?>
     1117                                                    </a>
     1118                                                </li>
     1119                                            </ul>
     1120                                        </div>
     1121                                    </div>
     1122                                </div>
     1123                                <!-- /Property Card -->
     1124                                <?php
    9251125                                    endwhile;
    9261126                                    wp_reset_postdata();
    9271127                                else : ?>
    928                                         <p><?php esc_html_e('No similar properties found.', 'havenlytics'); ?></p>
    929                                     <?php endif; ?>
    930                                         </div>
     1128                                <p><?php esc_html_e('No similar properties found.', 'havenlytics'); ?></p>
     1129                                <?php endif; ?>
    9311130                            </div>
    9321131                        </div>
    9331132                    </div>
    934                     <!-- /Similar Listings -->
    935 
    936 
    937                 </div>
    938             </div>
     1133                </div>
     1134                <!-- /Similar Listings -->
     1135
     1136
     1137            </div>
     1138        </div>
    9391139
    9401140        <?php endwhile; ?>
    941         </div>
    942 
    943 
    944 
    945 
    946 
    947         <!-- Make Enquiry Popup -->
    948         <div class="havenlytics_popup_overlay" id="havenlytics_popup_enquiry">
    949             <div class="havenlytics_popup_container havenlytics_popup_animate_flip">
    950                 <div class="fullscreen-indicator">Full Screen Mode</div>
    951                 <div class="havenlytics_popup_controls">
    952                     <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
    953                         <i class="fas fa-expand"></i>
    954                     </div>
    955                     <div class="havenlytics_popup_control_btn havenlytics_popup_close">
    956                         <i class="fas fa-times"></i>
    957                     </div>
    958                 </div>
    959                 <div class="havenlytics_popup_content">
    960                     <h2 class="havenlytics_popup_title">Book Property</h2>
    961                     <p>Fill out the form below and our team will get back to you as soon as possible.</p>
    962 
    963                     <div class="havenlytics_popup_form">
    964                         <?php
     1141    </div>
     1142
     1143
     1144
     1145
     1146
     1147    <!-- Make Enquiry Popup -->
     1148    <div class="havenlytics_popup_overlay" id="havenlytics_popup_enquiry">
     1149        <div class="havenlytics_popup_container havenlytics_popup_animate_flip">
     1150            <div class="fullscreen-indicator">Full Screen Mode</div>
     1151            <div class="havenlytics_popup_controls">
     1152                <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
     1153                    <i class="fas fa-expand"></i>
     1154                </div>
     1155                <div class="havenlytics_popup_control_btn havenlytics_popup_close">
     1156                    <i class="fas fa-times"></i>
     1157                </div>
     1158            </div>
     1159            <div class="havenlytics_popup_content">
     1160                <h2 class="havenlytics_popup_title">Book Property</h2>
     1161                <p>Fill out the form below and our team will get back to you as soon as possible.</p>
     1162
     1163                <div class="havenlytics_popup_form">
     1164                    <?php
    9651165                        $book_property = get_post_meta($post->ID, '_havenlytics_property_book_property', true);
    9661166
     
    9701170                        ?>
    9711171
    972                     </div>
    9731172                </div>
    9741173            </div>
    9751174        </div>
    976 
    977         <!-- Virtual Tour Popup -->
    978         <div class="havenlytics_popup_overlay" id="havenlytics_popup_virtualTour">
    979             <div class="havenlytics_popup_container havenlytics_popup_animate_3d">
    980                 <div class="fullscreen-indicator">Full Screen Mode</div>
    981                 <div class="havenlytics_popup_controls">
    982                     <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
    983                         <i class="fas fa-expand"></i>
    984                     </div>
    985                     <div class="havenlytics_popup_control_btn havenlytics_popup_close">
    986                         <i class="fas fa-times"></i>
    987                     </div>
    988                 </div>
    989                 <div class="havenlytics_popup_content">
    990                     <h2 class="havenlytics_popup_title">3D Virtual Tour</h2>
    991                     <p>Explore this beautiful property through our immersive 360° virtual tour.</p>
    992 
    993                     <?php
     1175    </div>
     1176
     1177    <!-- Virtual Tour Popup -->
     1178    <div class="havenlytics_popup_overlay" id="havenlytics_popup_virtualTour">
     1179        <div class="havenlytics_popup_container havenlytics_popup_animate_3d">
     1180            <div class="fullscreen-indicator">Full Screen Mode</div>
     1181            <div class="havenlytics_popup_controls">
     1182                <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
     1183                    <i class="fas fa-expand"></i>
     1184                </div>
     1185                <div class="havenlytics_popup_control_btn havenlytics_popup_close">
     1186                    <i class="fas fa-times"></i>
     1187                </div>
     1188            </div>
     1189            <div class="havenlytics_popup_content">
     1190                <h2 class="havenlytics_popup_title">3D Virtual Tour</h2>
     1191                <p>Explore this beautiful property through our immersive 360° virtual tour.</p>
     1192
     1193                <?php
    9941194                    $virtual_tour_url = get_post_meta($post->ID, '_havenlytics_property_virtual_tour', true);
    9951195                    ?>
    9961196
    997                     <div class="havenlytics_popup_virtual_tour" style="height: 100vh;">
    998                         <?php if (!empty($virtual_tour_url)) : ?>
    999                             <iframe src="<?php echo esc_url($virtual_tour_url); ?>" width="100%" height="100%" frameborder="0"
    1000                                 allowfullscreen loading="lazy" style="border: none; height: 100%; width: 100%;"></iframe>
    1001                         <?php else : ?>
    1002                             <div class="virtual-tour-placeholder">
    1003                                 <i class="fas fa-vr-cardboard"></i>
    1004                                 <h3>Interactive 3D Tour</h3>
    1005                                 <p>Navigate through each room with our virtual reality experience</p>
    1006                             </div>
    1007                         <?php endif; ?>
    1008                     </div>
    1009 
    1010 
    1011                 </div>
     1197                <div class="havenlytics_popup_virtual_tour" style="height: 100vh;">
     1198                    <?php if (!empty($virtual_tour_url)) : ?>
     1199                    <iframe src="<?php echo esc_url($virtual_tour_url); ?>" width="100%" height="100%" frameborder="0"
     1200                        allowfullscreen loading="lazy" style="border: none; height: 100%; width: 100%;"></iframe>
     1201                    <?php else : ?>
     1202                    <div class="virtual-tour-placeholder">
     1203                        <i class="fas fa-vr-cardboard"></i>
     1204                        <h3>Interactive 3D Tour</h3>
     1205                        <p>Navigate through each room with our virtual reality experience</p>
     1206                    </div>
     1207                    <?php endif; ?>
     1208                </div>
     1209
     1210
    10121211            </div>
    10131212        </div>
    1014 
    1015         <!-- Floorplan Popup -->
    1016         <div class="havenlytics_popup_overlay" id="havenlytics_popup_floorplan">
    1017             <div class="havenlytics_popup_container havenlytics_popup_animate_slide">
    1018                 <div class="fullscreen-indicator">Full Screen Mode</div>
    1019                 <div class="havenlytics_popup_controls">
    1020                     <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
    1021                         <i class="fas fa-expand"></i>
    1022                     </div>
    1023                     <div class="havenlytics_popup_control_btn havenlytics_popup_close">
    1024                         <i class="fas fa-times"></i>
    1025                     </div>
    1026                 </div>
    1027                 <div class="havenlytics_popup_content">
    1028                     <h2 class="havenlytics_popup_title">Property Floorplan</h2>
    1029                     <p>Detailed layout showing room dimensions and spatial relationships.</p>
    1030 
    1031 
    1032                     <?php
     1213    </div>
     1214
     1215    <!-- Floorplan Popup -->
     1216    <div class="havenlytics_popup_overlay" id="havenlytics_popup_floorplan">
     1217        <div class="havenlytics_popup_container havenlytics_popup_animate_slide">
     1218            <div class="fullscreen-indicator">Full Screen Mode</div>
     1219            <div class="havenlytics_popup_controls">
     1220                <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
     1221                    <i class="fas fa-expand"></i>
     1222                </div>
     1223                <div class="havenlytics_popup_control_btn havenlytics_popup_close">
     1224                    <i class="fas fa-times"></i>
     1225                </div>
     1226            </div>
     1227            <div class="havenlytics_popup_content">
     1228                <h2 class="havenlytics_popup_title">Property Floorplan</h2>
     1229                <p>Detailed layout showing room dimensions and spatial relationships.</p>
     1230
     1231
     1232                <?php
    10331233                    $floorplan_url = get_post_meta($post->ID, '_havenlytics_property_floorplan_img', true);
    10341234                    ?>
    10351235
    10361236
    1037                     <?php if (!empty($floorplan_url)) : ?>
    1038                         <img src="<?php echo esc_url($floorplan_url); ?>" alt="Property Floorplan"
    1039                             style="width: 100%; height: 100%; object-fit: cover; border-radius: 8px;">
    1040                     <?php else : ?>
    1041                         <div class="havenlytics_popup_floorplan">
    1042                             <div style="text-align: center; color: #7f8c8d;">
    1043                                 <i class="fas fa-drafting-compass" style="font-size: 4rem; margin-bottom: 15px;"></i>
    1044                                 <h3>Detailed Floorplan</h3>
    1045                                 <p>PDF document with measurements and layout</p>
    1046                             </div>
    1047                         </div>
    1048                     <?php endif; ?>
    1049 
    1050 
    1051 
    1052 
    1053 
    1054 
    1055                 </div>
     1237                <?php if (!empty($floorplan_url)) : ?>
     1238                <img src="<?php echo esc_url($floorplan_url); ?>" alt="Property Floorplan"
     1239                    style="width: 100%; height: 100%; object-fit: cover; border-radius: 8px;">
     1240                <?php else : ?>
     1241                <div class="havenlytics_popup_floorplan">
     1242                    <div style="text-align: center; color: #7f8c8d;">
     1243                        <i class="fas fa-drafting-compass" style="font-size: 4rem; margin-bottom: 15px;"></i>
     1244                        <h3>Detailed Floorplan</h3>
     1245                        <p>PDF document with measurements and layout</p>
     1246                    </div>
     1247                </div>
     1248                <?php endif; ?>
     1249
     1250
     1251
     1252
     1253
     1254
    10561255            </div>
    10571256        </div>
    1058 
    1059         <!-- Brochure Popup -->
    1060         <div class="havenlytics_popup_overlay" id="havenlytics_popup_brochure">
    1061             <div class="havenlytics_popup_container havenlytics_popup_animate_rotate">
    1062                 <div class="fullscreen-indicator">Full Screen Mode</div>
    1063                 <div class="havenlytics_popup_controls">
    1064                     <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
    1065                         <i class="fas fa-expand"></i>
    1066                     </div>
    1067                     <div class="havenlytics_popup_control_btn havenlytics_popup_close">
    1068                         <i class="fas fa-times"></i>
    1069                     </div>
    1070                 </div>
    1071                 <?php
     1257    </div>
     1258
     1259    <!-- Brochure Popup -->
     1260    <div class="havenlytics_popup_overlay" id="havenlytics_popup_brochure">
     1261        <div class="havenlytics_popup_container havenlytics_popup_animate_rotate">
     1262            <div class="fullscreen-indicator">Full Screen Mode</div>
     1263            <div class="havenlytics_popup_controls">
     1264                <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
     1265                    <i class="fas fa-expand"></i>
     1266                </div>
     1267                <div class="havenlytics_popup_control_btn havenlytics_popup_close">
     1268                    <i class="fas fa-times"></i>
     1269                </div>
     1270            </div>
     1271            <?php
    10721272                $brochure_pdf = get_post_meta(get_the_ID(), '_havenlytics_property_brochure_pdf', true);
    10731273                ?>
    10741274
    1075                 <div class="havenlytics_popup_content">
    1076                     <h2 class="havenlytics_popup_title">Property Brochure</h2>
    1077                     <p>Download our comprehensive brochure with high-quality photos and details.</p>
    1078 
    1079                     <div class="havenlytics_popup_brochure">
    1080                         <?php if (!empty($brochure_pdf)) : ?>
    1081                             <iframe src="<?php echo esc_url($brochure_pdf); ?>" width="100%" height="700"
    1082                                 style="border: none;"></iframe>
    1083                         <?php else : ?>
    1084                             <div style="text-align: center; color: #7f8c8d;">
    1085                                 <i class="fas fa-file-pdf" style="font-size: 4rem; margin-bottom: 15px;"></i>
    1086                                 <h3>Property Brochure</h3>
    1087                                 <p>Detailed PDF document with all property information</p>
    1088                             </div>
    1089                         <?php endif; ?>
    1090                     </div>
    1091 
     1275            <div class="havenlytics_popup_content">
     1276                <h2 class="havenlytics_popup_title">Property Brochure</h2>
     1277                <p>Download our comprehensive brochure with high-quality photos and details.</p>
     1278
     1279                <div class="havenlytics_popup_brochure">
    10921280                    <?php if (!empty($brochure_pdf)) : ?>
    1093                         <a href="<?php echo esc_url($brochure_pdf); ?>" download class="havenlytics_popup_submit"
    1094                             style="margin-top: 20px; display: inline-block;">
    1095                             <i class="fas fa-download"></i> Download Brochure (PDF)
    1096                         </a>
     1281                    <iframe src="<?php echo esc_url($brochure_pdf); ?>" width="100%" height="700"
     1282                        style="border: none;"></iframe>
     1283                    <?php else : ?>
     1284                    <div style="text-align: center; color: #7f8c8d;">
     1285                        <i class="fas fa-file-pdf" style="font-size: 4rem; margin-bottom: 15px;"></i>
     1286                        <h3>Property Brochure</h3>
     1287                        <p>Detailed PDF document with all property information</p>
     1288                    </div>
    10971289                    <?php endif; ?>
    10981290                </div>
    10991291
    1100             </div>
     1292                <?php if (!empty($brochure_pdf)) : ?>
     1293                <a href="<?php echo esc_url($brochure_pdf); ?>" download class="havenlytics_popup_submit"
     1294                    style="margin-top: 20px; display: inline-block;">
     1295                    <i class="fas fa-download"></i> Download Brochure (PDF)
     1296                </a>
     1297                <?php endif; ?>
     1298            </div>
     1299
    11011300        </div>
    1102 
    1103         <!-- View EPC Popup -->
    1104         <div class="havenlytics_popup_overlay" id="havenlytics_popup_epc">
    1105             <div class="havenlytics_popup_container havenlytics_popup_animate_bounce">
    1106                 <div class="fullscreen-indicator">Full Screen Mode</div>
    1107                 <div class="havenlytics_popup_controls">
    1108                     <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
    1109                         <i class="fas fa-expand"></i>
    1110                     </div>
    1111                     <div class="havenlytics_popup_control_btn havenlytics_popup_close">
    1112                         <i class="fas fa-times"></i>
    1113                     </div>
    1114                 </div>
    1115                 <?php
     1301    </div>
     1302
     1303    <!-- View EPC Popup -->
     1304    <div class="havenlytics_popup_overlay" id="havenlytics_popup_epc">
     1305        <div class="havenlytics_popup_container havenlytics_popup_animate_bounce">
     1306            <div class="fullscreen-indicator">Full Screen Mode</div>
     1307            <div class="havenlytics_popup_controls">
     1308                <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
     1309                    <i class="fas fa-expand"></i>
     1310                </div>
     1311                <div class="havenlytics_popup_control_btn havenlytics_popup_close">
     1312                    <i class="fas fa-times"></i>
     1313                </div>
     1314            </div>
     1315            <?php
    11161316                $epc_pdf = get_post_meta(get_the_ID(), '_havenlytics_property_epc_pdf', true);
    11171317                ?>
    11181318
    1119                 <div class="havenlytics_popup_content">
    1120                     <h2 class="havenlytics_popup_title">Energy Performance Certificate</h2>
    1121                     <p>Energy efficiency rating of the property.</p>
    1122 
    1123                     <div class="havenlytics_popup_epc">
    1124                         <?php if (!empty($epc_pdf)) : ?>
    1125                             <iframe src="<?php echo esc_url($epc_pdf); ?>" width="100%" height="700"
    1126                                 style="border: 1px solid #ccc;" allowfullscreen>
    1127                             </iframe>
    1128                         <?php else : ?>
    1129                             <div style="text-align: center; color: #7f8c8d;">
    1130                                 <div style="font-size: 5rem; font-weight: bold; color: #27ae60; margin-bottom: 15px;">B</div>
    1131                                 <h3>Energy Rating: B (82)</h3>
    1132                                 <p>Potential Rating: A (94)</p>
    1133                             </div>
    1134                         <?php endif; ?>
    1135                     </div>
    1136 
     1319            <div class="havenlytics_popup_content">
     1320                <h2 class="havenlytics_popup_title">Energy Performance Certificate</h2>
     1321                <p>Energy efficiency rating of the property.</p>
     1322
     1323                <div class="havenlytics_popup_epc">
    11371324                    <?php if (!empty($epc_pdf)) : ?>
    1138                         <a href="<?php echo esc_url($epc_pdf); ?>" target="_blank" class="havenlytics_popup_submit"
    1139                             style="margin-top: 20px; display: inline-block; text-align: center;">
    1140                             <i class="fas fa-download"></i> Download EPC (PDF)
    1141                         </a>
     1325                    <iframe src="<?php echo esc_url($epc_pdf); ?>" width="100%" height="700"
     1326                        style="border: 1px solid #ccc;" allowfullscreen>
     1327                    </iframe>
    11421328                    <?php else : ?>
    1143                         <button class="havenlytics_popup_submit" style="margin-top: 20px;" disabled>
    1144                             <i class="fas fa-download"></i> Download EPC (PDF)
    1145                         </button>
     1329                    <div style="text-align: center; color: #7f8c8d;">
     1330                        <div style="font-size: 5rem; font-weight: bold; color: #27ae60; margin-bottom: 15px;">B</div>
     1331                        <h3>Energy Rating: B (82)</h3>
     1332                        <p>Potential Rating: A (94)</p>
     1333                    </div>
    11461334                    <?php endif; ?>
    11471335                </div>
    11481336
    1149             </div>
     1337                <?php if (!empty($epc_pdf)) : ?>
     1338                <a href="<?php echo esc_url($epc_pdf); ?>" target="_blank" class="havenlytics_popup_submit"
     1339                    style="margin-top: 20px; display: inline-block; text-align: center;">
     1340                    <i class="fas fa-download"></i> Download EPC (PDF)
     1341                </a>
     1342                <?php else : ?>
     1343                <button class="havenlytics_popup_submit" style="margin-top: 20px;" disabled>
     1344                    <i class="fas fa-download"></i> Download EPC (PDF)
     1345                </button>
     1346                <?php endif; ?>
     1347            </div>
     1348
    11501349        </div>
    1151 
    1152         <!-- Map Popup -->
    1153         <div class="havenlytics_popup_overlay" id="havenlytics_popup_map">
    1154             <div class="havenlytics_popup_container havenlytics_popup_animate_zoom">
    1155                 <div class="fullscreen-indicator">Full Screen Mode</div>
    1156                 <div class="havenlytics_popup_controls">
    1157                     <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
    1158                         <i class="fas fa-expand"></i>
    1159                     </div>
    1160                     <div class="havenlytics_popup_control_btn havenlytics_popup_close">
    1161                         <i class="fas fa-times"></i>
    1162                     </div>
    1163                 </div>
    1164                 <?php
     1350    </div>
     1351
     1352    <!-- Map Popup -->
     1353    <div class="havenlytics_popup_overlay" id="havenlytics_popup_map">
     1354        <div class="havenlytics_popup_container havenlytics_popup_animate_zoom">
     1355            <div class="fullscreen-indicator">Full Screen Mode</div>
     1356            <div class="havenlytics_popup_controls">
     1357                <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
     1358                    <i class="fas fa-expand"></i>
     1359                </div>
     1360                <div class="havenlytics_popup_control_btn havenlytics_popup_close">
     1361                    <i class="fas fa-times"></i>
     1362                </div>
     1363            </div>
     1364            <?php
    11651365                $map_url = get_post_meta(get_the_ID(), '_havenlytics_property_map_url', true);
    11661366                ?>
    11671367
    1168                 <div class="havenlytics_popup_content">
    1169                     <h2 class="havenlytics_popup_title">Property Location</h2>
    1170                     <p>Located in a desirable neighborhood with excellent amenities.</p>
    1171 
    1172                     <div class="havenlytics_popup_map">
    1173                         <?php if (!empty($map_url)) : ?>
    1174                             <iframe src="<?php echo esc_url($map_url); ?>" width="100%" height="700" style="border:0;"
    1175                                 allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade">
    1176                             </iframe>
    1177                         <?php else : ?>
    1178                             <div style="text-align: center; color: #7f8c8d;">
    1179                                 <i class="fas fa-map-marked-alt" style="font-size: 4rem; margin-bottom: 15px;"></i>
    1180                                 <h3>Interactive Map</h3>
    1181                                 <p>Explore the neighborhood and nearby amenities</p>
    1182                             </div>
    1183                         <?php endif; ?>
    1184                     </div>
    1185                 </div>
    1186 
    1187             </div>
     1368            <div class="havenlytics_popup_content">
     1369                <h2 class="havenlytics_popup_title">Property Location</h2>
     1370                <p>Located in a desirable neighborhood with excellent amenities.</p>
     1371
     1372                <div class="havenlytics_popup_map">
     1373                    <?php if (!empty($map_url)) : ?>
     1374                    <iframe src="<?php echo esc_url($map_url); ?>" width="100%" height="700" style="border:0;"
     1375                        allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade">
     1376                    </iframe>
     1377                    <?php else : ?>
     1378                    <div style="text-align: center; color: #7f8c8d;">
     1379                        <i class="fas fa-map-marked-alt" style="font-size: 4rem; margin-bottom: 15px;"></i>
     1380                        <h3>Interactive Map</h3>
     1381                        <p>Explore the neighborhood and nearby amenities</p>
     1382                    </div>
     1383                    <?php endif; ?>
     1384                </div>
     1385            </div>
     1386
    11881387        </div>
    1189 
    1190         <!-- Arrange Viewing Popup -->
    1191         <div class="havenlytics_popup_overlay" id="havenlytics_popup_viewing">
    1192             <div class="havenlytics_popup_container havenlytics_popup_animate_flip">
    1193                 <div class="fullscreen-indicator">Full Screen Mode</div>
    1194                 <div class="havenlytics_popup_controls">
    1195                     <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
    1196                         <i class="fas fa-expand"></i>
    1197                     </div>
    1198                     <div class="havenlytics_popup_control_btn havenlytics_popup_close">
    1199                         <i class="fas fa-times"></i>
    1200                     </div>
    1201                 </div>
    1202                 <div class="havenlytics_popup_content">
    1203                     <h2 class="havenlytics_popup_title">Arrange a Viewing</h2>
    1204                     <p>Schedule a time to visit this property.</p>
    1205 
    1206                     <div class="havenlytics_popup_form">
    1207                         <?php
     1388    </div>
     1389
     1390    <!-- Arrange Viewing Popup -->
     1391    <div class="havenlytics_popup_overlay" id="havenlytics_popup_viewing">
     1392        <div class="havenlytics_popup_container havenlytics_popup_animate_flip">
     1393            <div class="fullscreen-indicator">Full Screen Mode</div>
     1394            <div class="havenlytics_popup_controls">
     1395                <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
     1396                    <i class="fas fa-expand"></i>
     1397                </div>
     1398                <div class="havenlytics_popup_control_btn havenlytics_popup_close">
     1399                    <i class="fas fa-times"></i>
     1400                </div>
     1401            </div>
     1402            <div class="havenlytics_popup_content">
     1403                <h2 class="havenlytics_popup_title">Arrange a Viewing</h2>
     1404                <p>Schedule a time to visit this property.</p>
     1405
     1406                <div class="havenlytics_popup_form">
     1407                    <?php
    12081408                        $request_callback = get_post_meta($post->ID, '_havenlytics_property_request_call', true);
    12091409
     
    12131413                        ?>
    12141414
    1215                     </div>
    12161415                </div>
    12171416            </div>
    12181417        </div>
    1219 
    1220         <!-- Contact Agent Popup -->
    1221         <div class="havenlytics_popup_overlay" id="havenlytics_popup_agent">
    1222             <div class="havenlytics_popup_container havenlytics_popup_animate_rotate">
    1223                 <div class="fullscreen-indicator">Full Screen Mode</div>
    1224                 <div class="havenlytics_popup_controls">
    1225                     <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
    1226                         <i class="fas fa-expand"></i>
    1227                     </div>
    1228                     <div class="havenlytics_popup_control_btn havenlytics_popup_close">
    1229                         <i class="fas fa-times"></i>
    1230                     </div>
    1231                 </div>
    1232                 <div class="havenlytics_popup_content">
    1233                     <h2 class="havenlytics_popup_title">Request Call Back</h2>
    1234                     <p>Get in touch with our dedicated agent for this property.</p>
    1235 
    1236 
    1237 
    1238                     <div class="havenlytics_popup_form">
    1239                         <?php
     1418    </div>
     1419
     1420    <!-- Contact Agent Popup -->
     1421    <div class="havenlytics_popup_overlay" id="havenlytics_popup_agent">
     1422        <div class="havenlytics_popup_container havenlytics_popup_animate_rotate">
     1423            <div class="fullscreen-indicator">Full Screen Mode</div>
     1424            <div class="havenlytics_popup_controls">
     1425                <div class="havenlytics_popup_control_btn havenlytics_popup_fullscreen">
     1426                    <i class="fas fa-expand"></i>
     1427                </div>
     1428                <div class="havenlytics_popup_control_btn havenlytics_popup_close">
     1429                    <i class="fas fa-times"></i>
     1430                </div>
     1431            </div>
     1432            <div class="havenlytics_popup_content">
     1433                <h2 class="havenlytics_popup_title">Request Call Back</h2>
     1434                <p>Get in touch with our dedicated agent for this property.</p>
     1435
     1436
     1437
     1438                <div class="havenlytics_popup_form">
     1439                    <?php
    12401440                        $arrange_viewing = get_post_meta($post->ID, '_havenlytics_property_arrange_view', true);
    12411441
     
    12451445                        ?>
    12461446
    1247                     </div>
    12481447                </div>
    12491448            </div>
    12501449        </div>
    1251 
    1252 
    1253 
    1254 
    1255         <?php get_footer(); ?>
     1450    </div>
     1451
     1452
     1453
     1454
     1455    <?php get_footer(); ?>
Note: See TracChangeset for help on using the changeset viewer.