/* ==========================================================================
   THEME CUSTOMIZATIONS
   ========================================================================== */

/*
	Add theme customisations here
	
	If you need to override a class and your definition is being overridden by Elementor defaults
	there's a class on the body tag "mi" which should take precedence over default Elementor styles. 
	So if you precede your class with 'body' you should be able to override defaults.
	E.G. 'mi h1' to override h1.
*/
a.skip-link.screen-reader-text:focus {
    clip: auto !important;
    clip-path: none !important;
    height: auto !important;
    width: auto !important;
    display: block !important;
    font-size: 1em !important;
    font-weight: bold !important;
    padding: 15px 23px 14px !important;
    color: #fff !important;
    background: #21759b !important;
    z-index: 100000 !important;
    text-decoration: none !important;
    box-shadow: 0 0 2px 2px rgba(0,0,0,.6) !important;
    top: 5px !important;
    left: 5px !important;
    position: fixed !important;
}
/* ==========================================================================
   BASE STYLES
   ========================================================================== */

body {
    margin: 0;
}

/* ==========================================================================
   UTILITY CLASSES
   ========================================================================== */

.mi-readmore {
    display: none;
}

.full-width .elementor-button {
    width: 100% !important;
}

.pos-rel {
    position: relative !important;
}

.pos-mobile-rel {
    position: unset;
}

/* ==========================================================================
   TYPOGRAPHY & HEADINGS
   ========================================================================== */

span.mi-fancy {
    font-family: 'Something Fresh';
    color: var(--e-global-color-primary);
    font-size: 2em;
    font-weight: 400;
    text-transform: capitalize;
}

/* ==========================================================================
   POST INFO & TAXONOMY
   ========================================================================== */

.elementor-post-info__item--type-terms {
    display: flex !important;
}

.elementor-post-info__item--type-terms,
.elementor-post-info__item--type-terms a {
    font-weight: 300;
}

.elementor-post-info__terms-list {
    order: 1;
    padding-right: 4px;
}

.elementor-post-info__item-prefix {
    order: 2;
}

/* ==========================================================================
   HEADER COMPONENTS
   ========================================================================== */

/* WhatsApp Icon */
.mi-headericons .elementor-social-icons-wrapper .elementor-grid-item:nth-child(3) .elementor-social-icon {
    background-color: #25D366 !important;
}

.mi-headericons .elementor-social-icons-wrapper .elementor-grid-item:nth-child(3) .elementor-social-icon svg,
.mi-headericons .elementor-social-icons-wrapper .elementor-grid-item:nth-child(3) .elementor-social-icon i {
    fill: #fff !important;
    color: #fff !important;
}

/* Translation Widget */
#translator-widget .elementor-list-item-link-full_width {
    position: absolute;
    z-index: 99;
    width: 175px;
}

#translator-widget div,
#translator-widget .e-n-accordion-item,
#translator-widget {
    position: unset;
}

#google_translate_element {
    display: none !important;
}

.goog-te-banner-frame.skiptranslate {
    display: none !important;
}
/* VILLA NAME SEARCH */
.villa-search-wrapper {
    position: relative;
    width: 100%;
}
/* Search Name */
.villa-search-wrapper .mi-searchname-input, 
.mi-searchname-input {
    width: 270px;
    border: 1px solid var( --e-global-color-secondary );
    padding: 0 var(--search-filter-scale-padding-horizontal);
    border-radius: 4px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    position: relative;
}
.mi-searchpopup .mi-searchname-input {
    width: 100%;
}
.villa-search-wrapper .search-villa-icon__svg,
.mi-searchname .search-villa-icon__svg {
    scale: 1.5;
    top: 6px;
    left: auto;
    right: auto;
    position: relative;
    margin: 3px 6px;
    height: 18.4px;
    width: 18.4px;
    color: var( --e-global-color-primary );
    fill: var( --e-global-color-primary );
}
.villa-result-item-loading {
    color: #ffffff; display: flex; align-items: center; gap: 8px;
}
.villa-result-item-loading .spinner {
    border-left-color: #ffffff;
}
/* Remove any browser default styles */
.mi-searchname-input input.hd-villa-search-input:focus-visible {
    outline: 0!important;
}
.mi-searchname-input input.hd-villa-search-input::placeholder {
    font-size: .8em!important;
}
.mi-home-video .mi-searchname-input input.hd-villa-search-input::placeholder {
    font-size: 1em!important;
}
.mi-searchname-input input.hd-villa-search-input {
    width: 100%;
    border-style: none!important;
    font-family: inherit;
    box-sizing: border-box;
    color: inherit!important;
    padding: 8px 0;
    margin-right: 2px;
    font-size: 1em;
}
.hd-villa-search-input:focus-visible, .hd-villa-search-input:focus {
    border-color: var( --e-global-color-primary )!important;
    outline-color: var( --e-global-color-primary )!important;
}
.hd-villa-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    background: #fff;
    border: 1px solid var( --e-global-color-secondary );
    border-top: none;
    border-radius: 0 0 4px 4px;
    max-height: 300px;
    overflow-y: auto;
    z-index: 999999 !important; /* Very high z-index */
    display: none;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
/* Spinner animation */
.spinner {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(0, 0, 0, 0.1);
    border-left-color: #60C5C7;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}
@keyframes spin {
    to { transform: rotate(360deg); }
}
/* Clear button - initially hidden */
.mi-clearbutton {
    display: none;
    cursor: pointer;
    transition: opacity 0.2s;
}
.mi-clearbutton:hover {
    opacity: 0.7;
}
/* Make sure Elementor popup doesn't hide overflow */
#elementor-popup-modal-2103 .dialog-message {
    height: 90vh!important;
}
/* Killing reservation one.*/
/*.elementor-popup-modal .dialog-message {
    overflow: visible !important;
}

.elementor-popup-modal .dialog-widget-content {
    overflow: visible !important;
}*/

.hd-villa-results li {
    padding: 12px;
    cursor: pointer;
    border-bottom: 1px solid #eee;
    background: #fff;
}

.hd-villa-results li:hover,
.hd-villa-results li.selected {
    background: var( --e-global-color-primary );
    color: #fff;
}

.hd-villa-results li:last-child {
    border-bottom: none;
}

.hd-villa-results.show {
    display: block !important;
}

.hd-villa-result-item {
    display: flex;
    align-items: center;
    gap: 10px;
}
/* ==========================================================================
   DROPDOWN COMPONENTS
   ========================================================================== */

/* Generic Dropdown Styles */
.dropdown-widget {
    position: relative;
    display: inline-block;
    color: var(--e-global-color-accent);
    --padding-summary: 10px;
    --padding-list: 15px;
    --gap: 0 10px;
}

.dropdown-widget .summary {
    display: flex;
    padding: var(--padding-summary);
    gap: var(--gap);
    cursor: pointer;
    justify-content: space-between;
    align-items: center;
    list-style: none;
}

.dropdown-widget .summary:hover {
    color: var(--e-global-color-accent);
}

.dropdown-widget .summary::-webkit-details-marker {
    display: none;
}

.dropdown-widget [role="region"] {
    position: relative;
    z-index: 1000;
}

.dropdown-widget .list {
    position: absolute;
    z-index: 1000;
    width: 100%;
    margin: 0;
    padding: var(--padding-list);
    list-style: none;
    background-color: var(--e-global-color-accent);
    color: var(--e-global-color-df5a56c);
}

.dropdown-widget .item {
    padding: 6px 0;
}

.dropdown-widget .item:first-child {
    padding-top: 0;
}

.dropdown-widget .item:last-child {
    padding-bottom: 0;
}

.dropdown-widget .link {
    display: flex;
    text-decoration: none;
    color: inherit;
}

.dropdown-widget .link:hover {
    color: var(--e-global-color-text);
}

.dropdown-widget .icon svg {
    fill: currentColor;
    height: 15px;
}

.dropdown-widget .icon .open {
    display: none;
}

.dropdown-widget .dropdown[open] .icon .closed {
    display: none;
}

.dropdown-widget .dropdown[open] .icon .open,
.dropdown-widget .dropdown .icon .closed {
    display: flex;
}

.dropdown-arrow {
    width: 15px;
}

.dropdown-arrow svg {
    color: var(--e-global-color-primary) !important;
    transition: transform 0.2s ease;
    fill: var(--e-global-color-primary);
}

/* ==========================================================================
   ICON LISTS
   ========================================================================== */

/* Palm Icon List */
.mi-iconpalm li {
    list-style: none;
    padding: 0 0 12px 30px !important;
    background: url(../images/icon-palmtree.webp) no-repeat;
    background-size: 20px 20px;
}

/* BFG List */
.bfg-list a {
    color: var(--e-global-color-text);
}

.bfg-list .current-page a {
    color: var(--e-global-color-accent);
}

.bfg-list .elementor-icon-list-icon svg {
    fill: var(--e-global-color-accent);
}

.bfg-list .elementor-icon-list-icon + .elementor-icon-list-text {
    padding-inline-start: 5px;
}

.bfg-list.elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child) {
    margin-bottom: 10px;
}

/* ACF List */
.mi-acf-list ul {
    columns: 2;
    column-gap: 20px;
    padding: 0 !important;
    margin: 0 !important;
}

.mi-acf-list .elementor-icon-list-icon svg {
    color: var(--e-global-color-primary);
    fill: var(--e-global-color-primary);
    height: .8em;
    width: .8em;
}

.mi-acf-list li {
    padding: 0 0 10px 0 !important;
    align-items: start !important;
}

.mi-acf-list li .elementor-icon-list-icon {
    margin-top: 4px;
}
/* Location Blocks */
.location-block-click h2, 
.location-block-click .location-heading {
    display: flex;
    text-align: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    align-items: center;
}
.location-image::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.25); /* 25% black overlay */
    z-index: 1;
} 
.location-block-click:hover .location-image::before {
    background-color: rgba(0, 0, 0, 0); /* 25% black overlay */ /* Fade out on hover */
}
.location-image img {
    display: block;
    width: 100%;
    height: auto;
}
/* ==========================================================================
   VILLA LISTING & SINGLE VILLA STYLES
   ========================================================================== */
.mi-listing-title span { font-family: inherit; font-size: inherit;}
.mi-base-desc h3 {
    font-weight: 300;
}
/* Villa List Features */
.mi-villalist-features,
.mi-villalist-features a {
    font-weight: 300;
    color: var(--e-global-color-text);
    display: inline !important;
    width: auto !important;
}

.mi-villalist-features a {
    color: #787878 !important;
    font-weight: 300 !important;
}

.mi-listing-title span {
    font-family: inherit;
    font-size: inherit;
}

/* Villa Description */
.mi-desc {
    padding-right: 15px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.mi-desc:after {
    display: block;
    position: absolute;
    bottom: 0;
    right: 0;
    width: 30px;
    border: 0;
    color: #d4d4d4;
    height: auto;
    text-align: right;
}

.mi-desc h2 {
    text-transform: uppercase;
    font-size: 1.2em;
    color: var(--e-global-color-primary);
}
.arc-desc h2 { 
    text-transform: uppercase; 
    color: var( --e-global-color-primary ); 
    font-weight: 300;
}
.mi-single-desc h2 {
    font-weight: 300;
}
.mi-single-desc h4 {
    color: var( --e-global-color-primary ) !important;
    font-size: 16px;
}

/* Loop Excerpt */
.mi_excerpt p {
    margin: 0;
    padding: 0;
}

/* No Results */
.no-results {
    padding: 30px;
    width: 100%;
    display: flex;
    grid-column: span 4;
}

/* Text Paragraphs */
.mi-textpara p {
    padding: 0;
    margin: 0;
}

/* ==========================================================================
   GOOGLE MAPS
   ========================================================================== */
.mi-map-lazy {
    min-height: 400px;
}
/* Simple map loading text */
.mi-map-loading::before {
    content: 'Loading map...';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(255, 255, 255, 0.95);
    padding: 12px 24px;
    font-size: 16px;
    color: rgb(96, 197, 199);
    font-weight: 300;
    text-transform: uppercase;
    z-index: 1000;
}

.mi-map-loaded::before {
    display: none;
}
.acf-map {
    width: 100%;
    height: 600px;
    margin: 20px 0;
}

.acf-map img {
    max-width: 100%;
}
.marker {
    display: none;
}
.gm-style-mtc button {
    border-radius: 0 !important;
}

.gm-style-iw-d a {
    outline: 0;
    display: block;
}
.gm-style-iw-d h3 a {
    padding: 10px 0;
}
.gm-ui-hover-effect span {
    mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z%22/%3E%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z%22/%3E%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22/%3E%3C/svg%3E");
}

/* Villa Map Info Window */
.mi-villamapitem .gm-style-iw-chr {
    top: 10px;
    right: 12px;
    position: absolute;
    background-color: #e4e4e4;
}

.mi-villamapitem .gm-style .gm-style-iw-c {
    border-radius: 0;
}

.mi-villamapitem .gm-style-iw-d {
    padding-top: 10px;
}

.mi-villamapitem .gm-style-iw-d h3 {
    margin: 0;
    font-weight: 400;
    text-transform: uppercase;
    color: var(--e-global-color-primary);
    font-size: 1.5em;
}

.mi-villamapitem .gm-style-iw-d img {
    max-width: 100%;
    width: 300px;
    height: 150px;
    object-fit: cover;
}

.mi-villamapitem .elementor-icon-list-icon svg {
    fill: #e4e4e4;
    font-size: 1.5em;
    margin-right: 5px;
    margin-top: -2px;
}

.villa-mapinfo {
    font-size: 15px;
    display: flex;
    padding: 5px;
}

.villa-bedrooms {
    display: flex;
}

.mi-villamapitem .villa-price {
    font-size: 1em;
    margin-left: 10px;
}

/* ==========================================================================
   GRAVITY FORMS
   ========================================================================== */

/* Base Variables */
.mi-joinup .gform-button { color: #fff!important; border-color: var( --e-global-color-primary )!important;}
:root,
.gform-theme--foundation .gform_fields,
.gform-theme,
#gform_wrapper_1[data-form-index="0"].gform-theme,
[data-parent-form="1_0"] {
    --gf-ctrl-date-picker-cell-content-bg-color-selected: var(--e-global-color-primary) !important;
    --gf-form-gap-y: 15px !important;
    --gf-form-gap-x: 15px !important;
    --gf-label-font-size: 16px !important;
    --gf-input-border-radius: 8px !important;
    --gf-ctrl-label-color-primary: var(--e-global-color-text);
    --gf-local-color: var(--e-global-color-text);
    --gf-ctrl-label-color-secondary: var(--e-global-color-text);
    --gf-ctrl-border-color: #ffffff;
    --gf-ctrl-color: var(--e-global-color-text);
    --gf-ctrl-color-hover: var(--e-global-color-text);
    --gf-ctrl-color-focus: var(--e-global-color-text);
    --gf-local-font-size: 16px;
    --gf-local-bg-color: var(--e-global-color-primary) !important;
    --gf-color-primary: var(--e-global-color-primary) !important;
    --gf-ctrl-accent-color: var(--e-global-color-primary) !important;
    --gf-local-outline-color: var(--e-global-color-primary) !important;
    --gf-ctrl-outline-color-focus: var(--e-global-color-primary) !important;
    --gf-ctrl-choice-check-color: var(--e-global-color-primary) !important;
    --gf-color-in-ctrl-primary: var(--e-global-color-primary) !important;
    --gf-ctrl-date-picker-cell-content-radius: 0;
}

/* Submit Button */
#gform_submit_button_2 {
    background-color: var(--e-global-color-primary);
}

.gform_button {
    color: #fff;
    --gf-local-color: #fff;
    --e-global-color-text: #fff;
    --gf-local-border-color: var(--gf-local-bg-color) !important;
    --gf-ctrl-btn-bg-color-hover-primary: var(--e-global-color-accent);
    box-shadow: none;
}

/* Date Picker */
.gform-theme--framework.ui-datepicker table td {
    border: 1px solid #d0d5de;
    --gf-ctrl-date-picker-cell-content-color: rgba(0, 0, 0, 0.54);
}

.gform-theme--framework.ui-datepicker table td a.ui-state-active {
    color: #fff;
}

.gform-theme--framework.ui-datepicker table td,
.gform-theme--framework.ui-datepicker table th {
    --gf-ctrl-date-picker-cell-content-color: rgba(0, 0, 0, 0.54);
    --gf-ctrl-date-picker-head-cell-font-size: 14px;
}

.gform-theme--framework.ui-datepicker table td a,
.gform-theme--framework.ui-datepicker table td span {
    --gf-local-color: var(--e-global-color-primary) !important;
}

.gform-theme--framework .ui-datepicker-unselectable,
.gform-theme--framework.ui-datepicker table td.ui-datepicker-unselectable span {
    color: #d0d5de !important;
    background-color: #eceff3 !important;
    cursor: not-allowed !important;
}

/* Form Elements */
.gform_button.button,
.gform-theme--framework .gfield_list_group_item::before:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework .gform-field-label:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)) {
    text-transform: uppercase !important;
}

.gform-theme--framework .gfield:where(.gfield--type-multiselect, .gfield--input-type-multiselect) .chosen-container-multi:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework .gfield:where(.gfield--type-select, .gfield--input-type-select) .chosen-search input[type="text"]:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework .gfield:where(.gfield--type-select, .gfield--input-type-select) .chosen-single:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework .gform-theme-field-control:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework input[type]:where(:not(.gform-text-input-reset):not([type="hidden"])):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework select:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework select[multiple]:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework textarea:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework.gform-theme.gform_wrapper .button:where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework.gform-theme.gform_wrapper .gform-theme-button:where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework.gform-theme.gform_wrapper :where(:not(.mce-splitbtn)) > button:not([id*="mceu_"]):not(.mce-open):where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework.gform-theme.gform_wrapper button.button:where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework.gform-theme.gform_wrapper input:is([type="submit"], [type="button"], [type="reset"]).button:where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework.gform-theme.gform_wrapper input:is([type="submit"], [type="button"], [type="reset"]):where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme--framework.gform-theme.gform_wrapper input[type="submit"].button.gform_button:where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)) {
    --gf-local-border-color: #fff;
    --gf-local-color: var(--e-global-color-text);
    --gf-ctrl-label-color-secondary: var(--e-global-color-text);
}

.gform-theme--framework .gform-field-label--type-inline:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)) {
    --gf-local-color: var(--e-global-color-text);
    text-transform: none !important;
}

.gform-theme h3 {
    margin: 0;
    color: var(--e-global-color-primary);
    text-transform: uppercase;
    font-size: 1em !important;
}

/* Checkbox & Radio */
.gform-theme--framework input[type="checkbox"]:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *))::before {
    color: var(--e-global-color-primary);
    --gf-local-outline-color: var(--e-global-color-primary);
}

.gfield_required.gfield_required_text,
.gfield_required.gfield_required_asterisk,
.gform_required_legend,
.gform_required_legend .gfield_required_asterisk {
    color: var(--e-global-color-accent);
}

.gform-theme--framework .gfield--type-choice.field-nowrap .gfield_radio {
    display: flex !important;
}

.mi .gfield.extras .gfield_checkbox {
    flex-direction: row;
    flex-wrap: wrap;
}

.mi .gfield.extras .gfield_checkbox .gchoice {
    cursor: pointer;
}

.mi-gf-gridsplit .gfield_checkbox {
    flex-direction: row !important;
}

/* ==========================================================================
   SEARCH & FILTER STYLES
   ========================================================================== */

/* Base Styles */
.home-search .mi-date .search-filter-input-text {
    margin-top: 0!important;
}
.search-filter-input-text__input.flatpickr-input,
.mi-date .search-filter-input-text {
    border: 0 !important;
    padding: 0;
    overflow: visible;
}

.elementor-widget-search-filter-field,
.elementor-widget-search-filter-field .search-filter-field,
.elementor-widget-search-filter-field .elementor-widget-container {
    position: unset !important;
}

.search-filter-field.search-filter-field--type-choice,
.elementor-widget-search-filter-field {
    position: unset;
}

.search-filter-base .search-filter-input-group {
    border: 1px solid #fff;
    position: absolute;
    top: 100%;
    background-color: #b7b7b8;
    z-index: 9;
    padding: 15px;
    width: 300px !important;
    max-width: 100%;
}

/* Hide/Show Input Groups */
.search-filter-input-group {
    display: none !important;
}

.search-filter-field.dropdown-open .search-filter-input-group {
    display: block !important;
}

.search-filter-base input {
    background-color: #fff;
}

.search-filter-icon {
    top: -4px;
}
/* Icons & Controls */
.search-filter-base .search-filter-icon__svg, .hd-villa-search-wrapper .search-filter-icon__svg {
    fill: var(--e-global-color-primary) !important;
    color: var(--e-global-color-primary) !important;
}

.search-filter-base .search-filter-input-checkbox__control svg,
.search-filter-input-radio__control > svg {
    fill: #fff;
    color: #fff;
    background-color: #fff;
}

.search-filter-input-radio__control > svg {
    background-color: transparent;
}

.search-filter-base .search-filter-input-checkbox__label,
.search-filter-input-radio__label {
    color: #fff;
}

.search-filter-base.search-filter-field {
    height: 100%;
}

/* Labels & Descriptions */
.search-filter-label {
    color: #787878;
    font-size: 1em;
    font-weight: 400;
    display: flex;
    align-items: start;
    cursor: pointer;
    margin: 0;
    flex-wrap: wrap;
    text-transform: uppercase;
}

.search-filter-field--input-type-date_picker {
    padding-top: 4px;
}

.search-filter-description {
    color: #787878;
    display: flex;
    width: 100%;
    z-index: 1;
    cursor: pointer;
    text-transform: none;
    height: 1.4em;
    overflow: hidden;
    padding: 7px 0 0 0;
    align-content: center;
}

.search-filter-description strong {
    font-weight: 400 !important;
    font-style: italic;
}

/* Date Picker */
.elementor-widget-search-filter-field .search-filter-input-date-picker:hover,
.elementor-widget-search-filter-field .search-filter-input-date-picker {
    border: 1px solid transparent;
}

.elementor-widget-search-filter-field .search-filter-input-date-picker {
    background-color: transparent;
    padding: 0;
}

.elementor-widget-search-filter-field .search-filter-style--advanced-date_picker {
    padding: 0;
}

.elementor-widget-search-filter-field .search-filter-style--advanced-date_picker .search-filter-label {
    height: auto;
}

.search-filter-input-date-picker .search-filter-input-text__icon {
    padding-left: 0;
}

.search-filter-component-combobox-base__listbox-option--selected {
    background-color: var(--e-global-color-primary);
}

.search-filter-input-checkbox--is-active > .search-filter-input-checkbox__container > .search-filter-input-checkbox__control > svg {
    fill: var(--e-global-color-primary) !important;
    color: var(--e-global-color-primary) !important;
}

/* Search Name Combobox Fix */
.admin-bar #search-filter-input-combobox-listbox-0 {
    /* margin-top: -32px; */
}

/* Custom Date Picker Icon */
.search-filter-input-date-picker__input-container .search-filter-input-text__input {
    font-size: .8em !important;
}

.mi-date .search-filter-label:after {
    display: none;
}

.mi-date .search-filter-input-text__clear-button {
    top: 0px;
    right: 4px;
    cursor: pointer;
}

.mi-date .search-filter-input-text:after,
.mi-date .selected-package:after {
    content: "";
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%2360C5C7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;
    width: 22px;
    height: 22px;
    position: absolute;
    right: 5px;
    top: -18px;
    text-align: center;
}

/* Submit & Reset Buttons */
#mi-showonmap .elementor-button {
    width: 141px;
}

.search-filter-style--control-submit {
    align-items: center;
}

.search-filter-input-button:focus,
.search-filter-input-button:active {
    box-shadow: 0;
    --search-filter-input-color: #fff;
    --search-filter-input-border-focus-color: var(--e-global-color-accent);
}

.search-filter-input-button {
    --search-filter-input-border-color: var(--e-global-color-primary);
}

/* Home Search */
.home-search {
    align-items: center;
    justify-content: center;
    text-align: center;
}

.home-search .mi-submit input,
.home-search .mi-submit button:active,
.home-search .mi-submit button:focus,
.home-search .mi-submit button,
.home-search .mi-submit input:focus,
.home-search .mi-submit input:active {
    background-color: var(--e-global-color-primary) !important;
    border-color: var(--e-global-color-primary) !important;
    box-shadow: none !important;
    color: #fff !important;
}

.home-search .mi-submit input:hover,
.home-search .mi-submit button:hover {
    background-color: var(--e-global-color-accent) !important;
    border-color: var(--e-global-color-accent) !important;
    color: #fff !important;
}

.mi-reset input,
.mi-reset button:active,
.mi-reset button:focus,
.mi-reset button,
.mi-reset input:focus,
.mi-submit reset:active {
    background-color: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: var(--e-global-color-accent) !important;
    padding: 5px;
}

.mi-reset input:hover,
.mi-reset button:hover {
    color: var(--e-global-color-primary) !important;
}

/* More Filters */
.more-filters-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    transition: all 0.2s ease;
    padding: 5px 10px;
    margin-top: 2px;
}

.more-filters-icon {
    margin: 4px 0 0 0;
    transition: transform 0.2s ease;
}

.more-filters-content {
    display: none;
    margin-top: 8px;
    position: absolute;
    width: 100%;
    left: 0;
    background: rgb(234, 234, 234);
    z-index: 8;
    padding: 15px;
}

.more-filters-content .search-filter-base {
    margin-bottom: 10px;
}

/* Prevent layout shifts that cause recursion in German translations */
html.translated-ltr, html.translated-rtl {
    overflow-x: hidden !important;
}
html.translated-ltr *, html.translated-rtl * {
    transition: none !important;
    animation: none !important;
}
/* Disable problematic animations during translation */
.translated-ltr [class*="animate"],
.translated-rtl [class*="animate"],
.translated-ltr [class*="scroll"],
.translated-rtl [class*="scroll"] {
    animation: none !important;
    transform: none !important;
}

/* ==========================================================================
   RESPONSIVE STYLES
   ========================================================================== */

/* Tablet and Mobile - 768px and below */
@media (max-width: 768px) {
    /* Icon Lists */
    .mi-acf-list ul {
        columns: 1;
    }

    .mi-iconpalm ul {
        padding-left: 0;
    }

    /* Sticky Header */
    html:not([lang="en-AU"]) .elementor-sticky--active {
        margin-top: 40px !important;
    }

    /* Gravity Forms */
    .gform-theme--framework .gfield--type-choice .gfield_checkbox,
    .gform-theme--framework .gfield--type-choice .gfield_radio,
    .mi .gfield.extras .gfield_checkbox {
        flex-direction: column !important;
    }

    /* Scroll Target */
    :target {
        scroll-margin-top: 150px;
    }

    /* Position Utilities */
    .pos-mobile-rel {
        position: relative !important;
    }

    /* Accordion Fixes */
    .footeraccordion div,
    .footeraccordion details,
    .footeraccordion,
    .headeraccordion,
    .headeraccordion div,
    details.dropdown {
        position: unset !important;
    }

    .footeraccordion .e-n-accordion-item[open] .e-con,
    .footeraccordion .content {
        position: absolute !important;
        bottom: 100%;
        top: auto !important;
        left: 0;
        right: 0;
        z-index: 999;
        box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.15);
        border-radius: 4px;
        width: 100%;
    }

    .footeraccordion .e-n-accordion-item[open] .e-con {
        margin-bottom: -110px;
    }

    /* Header Accordion */
    .headeraccordion .dropdown-widget .summary {
        gap: 5px;
        padding: 0;
        font-size: .9em;
    }

    .headeraccordion .dropdown-widget .icon svg {
        height: 10px;
    }

    .headeraccordion .dropdown-widget .list {
        width: auto;
        padding: 20px;
        margin-left: -30px;
    }

    .headeraccordion .dropdown-widget .list li {
        padding: 10px;
    }
}
/* Mobile - 767px and below */
@media (max-width: 767px) {
    .mi-home-slogan h2 {
        font-weight: 400!important;
    }
    /* Search Box Mobile */
    #searchbox-name {
        justify-content: center;
    }

    #mi-showonmap {
        width: 25%;
    }

    #mi-showonmap .elementor-button {
        width: auto;
        white-space: nowrap;
    }
    .search-filter-field.search-filter-field--type-choice,
    .elementor-widget-search-filter-field {
        position: relative;
    }

    .search-villas .pos-mobile-rel {
        position: unset !important;
    }

    .search-villas .search-filter-base .search-filter-label__toggle-icon .search-filter-icon__svg {
        width: calc(var(--search-filter-scale-base-unit-calc) * 2.5);
        height: calc(var(--search-filter-scale-base-unit-calc) * 2.5);
    }

    .search-villas .search-filter-label {
        margin: 0 !important;
    }

    .search-villas .search-filter-base .search-filter-input-group {
        top: auto;
        margin-top: 36px;
        left: 0;
        width: 100% !important;
    }

    .search-villas .search-filter-base .flatpickr-mobile {
        border: 0;
    }

    /* Inline Layout */
    .search-villas {
        display: block;
        white-space: normal;
        transform: translateY(0);
        transition: transform 0.3s ease;
    }
    .search-villas.elementor-sticky--active {
	    transform: translateY(-2px); /* Small upward movement */
    }
    .search-villas .elementor-element {
        display: inline-block !important;
        vertical-align: top;
        margin: 2px;
        width: calc(50% - 4px);
        min-width: 120px;
        float: none !important;
        clear: none !important;
    }

    .search-villas .elementor-widget-search-filter-field {
        width: auto !important;
    }

    .search-villas .search-filter-input-text input[type="text"].search-filter-input-text__input {
        width: 75px;
        font-size: .8em;
    }

    #srcCheckIn .search-filter-input-text__clear-button,
    #srcCheckOut .search-filter-input-text__clear-button {
        display: none;
    }

    .search-villas .e-con,
    .search-villas .e-flex {
        display: block !important;
        flex-direction: unset !important;
    }

    /* Date Fields */
    .search-villas .mi-date .search-filter-input-text::after,
    .search-villas .mi-date .selected-package::after {
        left: 6px;
        top: 6px;
    }

    /* Hide Labels */
    .search-villas .search-filter-label,
    #search-heading {
        display: none !important;
    }

    /* Icon Descriptions */
    .search-villas .search-filter-description,
    .more-filters-button {
        font-size: 1em !important;
        padding: 5px 12px;
        border: 1px solid var(--e-global-color-primary);
        border-radius: 0;
        cursor: pointer;
        transition: all 0.2s ease;
        min-height: 36px;
        display: flex;
        justify-content: start;
        margin-bottom: 0;
        color: var(--e-global-color-primary);
        align-items: center;
    }

    .search-filter-input-button {
        padding: 4px 10px;
        min-height: 36px;
    }

    .search-villas #srcCheckIn,
    .search-villas #srcCheckOut {
        border: 1px solid var(--e-global-color-primary);  
    }
    .search-villas #srcCheckIn input,
    .search-villas #srcCheckOut input {
        margin-left: 30px;
    }
    .search-villas .search-filter-description:hover {
        border-color: #007cba;
        background: #f0f8ff;
    }

    /* Limit Text */
    .search-filter-description strong {
        height: 20px;
        line-height: 20px;
        overflow: hidden;
        display: flex;
    }

    .search-filter-description strong:after {
        content: '...';
        display: flex;
        align-items: end;
        width: 15px;
    }

    .search-villas .search-filter-input-text input[type="text"].search-filter-input-text__input::placeholder,
    .search-villas .search-filter-input-text input[type="number"].search-filter-input-text__input::placeholder {
        color: var(--e-global-color-primary);
    }

    /* Icons */
    .search-villas .search-filter-description::before,
    .search-villas .mi-reset .search-filter-input-button::before {
        display: inline-block;
        font-size: 16px;
        margin-right: 6px;
        color: var(--e-global-color-primary);
        font-family: "Font Awesome 5 Free";
        font-weight: 900;
        content: "\f236";
        text-align: left;
    }

    .search-villas .mi-reset .search-filter-input-button {
        font-size: 0;
    }

    .search-villas .mi-reset .search-filter-input-button::before {
        content: "\f00d";
        color: var(--e-global-color-accent);
        font-size: 18px;
    }

    .search-villas #srcLocation .search-filter-description::before {
        content: "\f3c5";
    }

    .search-villas #srcFeatures .search-filter-description::before,
    .search-villas .search-filter-field--id-7 .search-filter-description::before {
        content: "\f155";
    }

    .search-villas #srcPriceRange .search-filter-description::before,
    .search-villas .search-filter-field--id-9 .search-filter-description::before {
        content: "\f005";
    }

    .search-villas #srcSort .search-filter-description::before,
    .search-villas .search-filter-field--id-8 .search-filter-description::before {
        content: "\f884";
    }

    /* Hide Initially */
    .search-villas #srcFeatures,
    .search-villas #srcSort,
    .search-villas #srcPriceRange {
        display: none !important;
    }

    /* Hide non-critical sections until after initial paint */
    .elementor-section:not(:first-child):not(.hero-section) {
        content-visibility: auto;
        contain-intrinsic-size: 500px;
    }
    
    /* Simplify box shadows on mobile */
    * {
        box-shadow: none !important;
    }
}