/* ==========================================================================
   1. Fonts
   ========================================================================== */
@font-face {
    font-family: 'wpsl-fontello';
    src: url('../../../font/frontend/fontello.eot?28897909');
    src: url('../../../font/frontend/fontello.eot?28897909#iefix') format('embedded-opentype'),
        url('../../../font/frontend/fontello.woff?28897909') format('woff'),
        url('../../../font/frontend/fontello.ttf?28897909') format('truetype'),
        url('../../../font/frontend/fontello.svg?28897909#fontello') format('svg');
    font-weight: normal;
    font-style: normal;
}

/* ==========================================================================
   2. Base Layout
   ========================================================================== */
#wpsl-wrap {
    position: relative;
    /*
     * Contain the floated map and result list without clipping. 2.x used
     * overflow: hidden for this, which would cut off the autocomplete
     * dropdown. Without a formatting context the wrap collapses to 0px in
     * most themes, and the absolutely positioned GDPR checkpoint, sized to
     * the wrap, then centers its box on the top edge of the map.
     */
    display: flow-root;
    width: 100%;
    clear: both;
    margin-bottom: 20px;
    z-index: 1;
}

#wpsl-wrap.wpsl-has-credits {
    margin-bottom: 0;
}

#wpsl-map {
    float: inline-end;
    width: 66.5%;
    height: 350px;
    margin-bottom: 0;
    position: relative;
}

#wpsl-map.wpsl-canvas-osm,
#wpsl-map.wpsl-canvas-stadia,
#wpsl-map.wpsl-canvas-gmaps {
    z-index: 0;
}

/*
 * Keeps markers from being drawn blurry.
 */
.wpsl-canvas-gmaps gmp-advanced-marker {
    will-change: auto !important;
}

.wpsl-horizontal-template #wpsl-map,
.wpsl-store-below #wpsl-map {
    float: none;
    width: 100%;
}

div[class^="wpsl-canvas-"] {
    width: 100%;
    height: 300px;
    margin-bottom: 20px;
}

div[class^="wpsl-canvas-"] .gmnoprint button {
    border-radius: 0;
}

.wpsl-search-input-only #wpsl-map,
.wpsl-search-input-only #wpsl-result-list {
    display: none;
}

#wpsl-wrap.wpsl-search-input-only #wpsl-panel {
    height: auto !important;
    border-bottom: none !important;
}

#wpsl-wrap.wpsl-gdpr-checkpoint #wpsl-map {
    position: relative;
}

#wpsl-search-wrap {
    float: inline-start;
    width: 100%;
}

.wpsl-vertical-template.wpsl-flex .wpsl-search-wrap,
.wpsl-has-panel.wpsl-flex .wpsl-search-wrap {
    height: 42px;
    display: flex;
    align-items: stretch;
}

.wpsl-vertical-template.wpsl-flex .wpsl-search-action-wrapper,
.wpsl-has-panel.wpsl-flex .wpsl-search-action-wrapper {
    display: flex;
    align-items: center;
    height: 100%;
}


.wpsl-vertical-template.wpsl-flex #mapbox-autocomplete,
.wpsl-has-panel.wpsl-flex #mapbox-autocomplete {
    height: 100%;
    display: flex;
    align-items: center;
}

.wpsl-vertical-template.wpsl-flex #mapbox-autocomplete .mapboxgl-ctrl-geocoder,
.wpsl-has-panel.wpsl-flex #mapbox-autocomplete .mapboxgl-ctrl-geocoder {
    height: 100%;
}

.wpsl-vertical-template.wpsl-flex #mapbox-autocomplete .mapboxgl-ctrl-geocoder--input,
.wpsl-has-panel.wpsl-flex #mapbox-autocomplete .mapboxgl-ctrl-geocoder--input {
    height: 100% !important;
    box-sizing: border-box;
}

#wpsl-search-wrap form {
    margin: 0;
    padding: 0;
    border: none;
    outline: none;
}

.wpsl-hide,
#wpsl-direction-details {
    display: none;
}

/* ==========================================================================
   3. Map — Theme Overrides
   Prevent themes from breaking map elements with box-shadow, max-width, etc.
   The .gv-iv- class is used in streetview, and .gm-svpc for the draggable
   streetview man. Both need to be excluded.
   ========================================================================== */

#wpsl-map div:not[class^="gv-iv"],
#wpsl-map img,
div[class^="wpsl-canvas-"] div:not[class^="gv-iv"],
div[class^="wpsl-canvas-"] div:not[class^="gm-svpc"] img,
div[class^="wpsl-canvas-"] img {
    box-shadow: none !important;
    max-width: none !important;
    background: none;
}

#wpsl-map img,
div[class^="wpsl-canvas-"] img,
div[class^="wpsl-canvas-"] div:not[class^="gmnoprint"] img,
div[class^="wpsl-canvas-"] div:not[class^="gm-svpc"] img {
    display: inline !important;
    opacity: 1 !important;
    max-height: none !important;
    background: none !important;
}

/* Prevent the streetview man from disappearing if the theme has max-width:100% on images */
#wpsl-map .gm-svpc img {
    max-width: none;
}

#wpsl-map div.gm-iv-marker,
div[class^="wpsl-canvas-"] div.gm-iv-marker {
    background-image: inherit;
}

/* Prevent theme shadows on map images and infowindow close buttons */
[class*="wpsl-canvas-"] img,
.wpsl-canvas-gmaps .gm-style-iw button,
.wpsl-canvas-gmaps .gm-style-iw button:hover {
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    -moz-box-shadow: none !important;
}

/* Possible fix for vertical text issue in IE9 */
.gm-style-cc {
    word-wrap: normal;
}

/* ==========================================================================
   4. Map Controls
   ========================================================================== */

#wpsl-map #wpsl-map-controls {
    position: absolute;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 4px -1px;
    height: 40px;
    inset-inline-end: 10px;
    bottom: 24px;
    border-radius: 2px;
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    z-index: 1000;
}

#wpsl-map #wpsl-map-controls.wpsl-hide-reset {
    display: none;
}

/* Hide the map controls container when it only contains a reset button that is initially hidden */
#wpsl-map #wpsl-map-controls:not(:has(.wpsl-icon-direction)):not(.wpsl-reset-exists) {
    display: none;
}

/* Mapbox / OSM / Stadia map controls — merged overrides */
#wpsl-map.wpsl-canvas-mapbox #wpsl-map-controls,
#wpsl-map.wpsl-canvas-osm #wpsl-map-controls,
#wpsl-map.wpsl-canvas-stadia #wpsl-map-controls {
    height: auto;
    width: 29px;
    border-radius: 4px;
    font-size: 14px;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, .1);
    bottom: 30px;
}

/* Container query for element-based responsive behavior */
#wpsl-map.wpsl-canvas-mapbox {
    container-type: inline-size;
}

/* 
Some themes force a padding on all button elements 
breaking the Mapbox attribution element. 
*/
#wpsl-map.wpsl-canvas-mapbox .mapboxgl-ctrl-attrib-button {
    padding: 0;
    margin: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
}

#wpsl-map.wpsl-canvas-mapbox .mapboxgl-ctrl-attrib-button:hover {
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");
}

@container (max-width: 640px) {
    #wpsl-map.wpsl-canvas-mapbox #wpsl-map-controls {
        bottom: 45px;
    }
}

/* Fallback for browsers that don't support container queries */
@media screen and (max-width: 640px) {
    #wpsl-map.wpsl-canvas-mapbox #wpsl-map-controls {
        bottom: 45px;
    }
}

#wpsl-map.wpsl-canvas-mapbox .mapboxgl-ctrl-group button {
    margin: 0;
    padding: 0;
    box-shadow: none;
}

/* Apply border-bottom to reset button only when it's not the only button */
#wpsl-map.wpsl-canvas-mapbox #wpsl-map-controls .wpsl-icon-reset:not( :only-child),
#wpsl-map.wpsl-canvas-osm #wpsl-map-controls .wpsl-icon-reset:not( :only-child),
#wpsl-map.wpsl-canvas-stadia #wpsl-map-controls .wpsl-icon-reset:not( :only-child) {
    border-bottom: 1px solid #ccc;
}

#wpsl-map #wpsl-map-controls.wpsl-street-view-exists {
    inset-inline-end: 60px;
}

#wpsl-map-controls .wpsl-direction-preloader {
    margin: 5px 5px 0 5px;
}

#wpsl-map-controls div {
    float: inline-start;
    background: #fff;
    border-radius: 2px;
}

#wpsl-gdpr-checkpoint button:hover,
#wpsl-map-controls button:hover {
    cursor: pointer;
}

#wpsl-map-controls [class^="wpsl-icon-"],
#wpsl-map-controls [class*=" wpsl-icon-"] {
    position: relative;
    float: inline-start;
    background: #fff;
    border: none;
    border-radius: 0;
    box-shadow: 0;
    padding: 12px 13px;
    margin: 0;
    font-family: "wpsl-fontello";
    font-style: normal;
    font-weight: normal;
    font-size: 1.3em;
    color: #737373;
    speak: none;
    text-decoration: inherit;
    text-align: center;
    font-variant: normal;
    text-transform: none;
    line-height: 1em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Apply the Mapbox styles to the reset / geolocation icon */
#wpsl-map:not(.wpsl-canvas-gmaps) #wpsl-map-controls [class^="wpsl-icon-"],
#wpsl-map:not(.wpsl-canvas-gmaps) #wpsl-map-controls [class*=" wpsl-icon-"] {
    padding: 7px;
    font-size: 14px;
    width: 29px;
}

#wpsl-map:not(.wpsl-canvas-gmaps) #wpsl-map-controls [class^="wpsl-icon-"]:hover,
#wpsl-map:not(.wpsl-canvas-gmaps) #wpsl-map-controls [class*=" wpsl-icon-"]:hover {
    background: #f4f4f4;
}

#wpsl-map.wpsl-canvas-osm #wpsl-map-controls [class^="wpsl-icon-"]:hover,
#wpsl-map.wpsl-canvas-osm #wpsl-map-controls [class*=" wpsl-icon-"]:hover,
#wpsl-map.wpsl-canvas-stadia #wpsl-map-controls [class^="wpsl-icon-"]:hover,
#wpsl-map.wpsl-canvas-stadia #wpsl-map-controls [class*=" wpsl-icon-"]:hover {
    transition: background-color 0.3s ease;
}

#wpsl-wrap .wpsl-canvas-gmaps #wpsl-map-controls [class^="wpsl-icon-"],
#wpsl-wrap .wpsl-canvas-gmaps #wpsl-map-controls [class*=" wpsl-icon-"] {
    color: #737373;
}

#wpsl-wrap .wpsl-canvas-gmaps #wpsl-map-controls [class^="wpsl-icon-"]:hover,
#wpsl-wrap .wpsl-canvas-gmaps #wpsl-map-controls [class*=" wpsl-icon-"]:hover {
    color: #000;
}

#wpsl-wrap .wpsl-canvas-osm #wpsl-map-controls [class^="wpsl-icon-"],
#wpsl-wrap .wpsl-canvas-osm #wpsl-map-controls [class*=" wpsl-icon-"],
#wpsl-wrap .wpsl-canvas-stadia #wpsl-map-controls [class^="wpsl-icon-"],
#wpsl-wrap .wpsl-canvas-stadia #wpsl-map-controls [class*=" wpsl-icon-"] {
    height: 30px;
}

#wpsl-wrap [class*="wpsl-canvas"]:not(.wpsl-canvas-gmaps) .wpsl-icon-reset span,
#wpsl-wrap [class*="wpsl-canvas"]:not(.wpsl-canvas-gmaps) .wpsl-icon-direction span {
    margin: 0;
}

/*
 * Make sure the CSS from a theme doesn't set a different font family, or font size
 * for the font icons. Otherwise the icons either don't show, or are to large.
 */
#wpsl-map-controls span {
    font-family: inherit;
    font-size: inherit;
}

#wpsl-wrap .wpsl-icon-reset {
    z-index: 2;
}

#wpsl-wrap .wpsl-icon-direction {
    z-index: 1;
}

#wpsl-wrap .wpsl-name-support .wpsl-icon-reset,
#wpsl-map-controls.wpsl-location-search-inactive .wpsl-icon-reset {
    padding-inline-end: 13px;
}

#wpsl-wrap .wpsl-active-icon,
#wpsl-wrap #wpsl-map-controls .wpsl-icon-reset:hover,
#wpsl-wrap #wpsl-map-controls .wpsl-icon-direction:hover {
    color: #000;
}

#wpsl-wrap [class^="wpsl-icon-"]:active,
#wpsl-wrap [class*=" wpsl-icon-"]:focus {
    outline: 0;
}

#wpsl-wrap .wpsl-in-progress:hover,
#wpsl-wrap .wpsl-in-progress {
    color: #c6c6c6;
}

/* Map reset button */
#wpsl-map #wpsl-reset-map {
    position: absolute;
    display: none;
    inset-inline-end: 37px;
    top: 37px;
    padding: 6px 14px;
    background: #fff !important;
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 2px;
    z-index: 3;
}

#wpsl-reset-map:hover {
    cursor: pointer;
}

/* ==========================================================================
   5. Search Bar
   ========================================================================== */

#wpsl-search-wrap .wpsl-input,
#wpsl-search-wrap .wpsl-select-wrap,
#wpsl-search-wrap #wpsl-category {
    display: table;
}

#wpsl-search-wrap .wpsl-input label,
#wpsl-search-wrap .wpsl-input input,
#wpsl-search-wrap #wpsl-radius,
#wpsl-search-wrap #wpsl-results,
#wpsl-search-wrap .wpsl-input .wpsl-autocomplete-search-container,
#wpsl-search-btn {
    display: table-cell;
    vertical-align: middle;
}

#wpsl-search-wrap .wpsl-input #mapbox-autocomplete {
    display: none;
}

#wpsl-search-wrap .wpsl-input #mapbox-autocomplete:not( .wpsl-geocoder-active ) {
    display: none !important;
}

#wpsl-search-wrap .wpsl-input #mapbox-autocomplete.wpsl-geocoder-active {
    display: table-cell;
    vertical-align: middle;
}

/* ==========================================================================
   V3 Flexbox Layout for Search Bar
   Applied only when wpsl-v3-css class exists on body
   ========================================================================== */
.wpsl-v3-css #wpsl-search-wrap .wpsl-input,
.wpsl-v3-css #wpsl-search-wrap .wpsl-select-wrap,
.wpsl-v3-css #wpsl-search-wrap #wpsl-category {
    display: flex;
    align-items: center;
}

.wpsl-v3-css #wpsl-search-wrap .wpsl-input > div:not( #wpsl-stadia-autocomplete-results ),
.wpsl-v3-css #wpsl-search-wrap .wpsl-input input,
.wpsl-v3-css #wpsl-search-wrap #wpsl-radius,
.wpsl-v3-css #wpsl-search-wrap #wpsl-results,
.wpsl-v3-css #wpsl-search-btn {
    display: flex;
    align-items: center;
    height: 40px;
    max-height: 40px;
    min-height: 40px;
}

.wpsl-v3-css #wpsl-search-wrap input,
.wpsl-v3-css #wpsl-search-wrap button,
.wpsl-v3-css .wpsl-search input,
.wpsl-v3-css .wpsl-search button,
.wpsl-v3-css #wpsl-result-filters button {
    text-transform: none;
    letter-spacing: normal;
    padding-top: 0;
    padding-bottom: 0;
    box-shadow: none;
    -webkit-box-shadow: none;
}

.wpsl-v3-css #wpsl-search-wrap .wpsl-input > div:not( #wpsl-stadia-autocomplete-results ):not( .wpsl-autocomplete-search-container ) {
    flex-shrink: 0;
}

.wpsl-v3-css #wpsl-search-wrap label {
    display: flex;
    align-items: center;
    line-height: 1;
    white-space: nowrap;
    flex-shrink: 0;
}

.wpsl-flex.wpsl-v3-css #wpsl-search-input,
.wpsl-flex.wpsl-v3-css #wpsl-search-btn,
.wpsl-flex.wpsl-v3-css #mapbox-autocomplete input[type=text] {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    box-sizing: border-box;
    line-height: 1 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wpsl-flex.wpsl-v3-css #wpsl-search-input,
.wpsl-flex.wpsl-v3-css #wpsl-search-btn {
    height: 40px;
    max-height: 40px;
    padding: 0.5em 0.857em;
}

.wpsl-flex.wpsl-v3-css #wpsl-search-btn {
    padding: 0.5em 0.714em;
    justify-content: center;
    letter-spacing: normal;
}

.wpsl-v3-css .wpsl-dropdown {
    height: 40px;
    max-height: 40px;
    box-sizing: border-box;
}

.wpsl-dropdown .wpsl-selected-item {
    color: var(--wpsl-header-dropdown-text, inherit) !important;
    background: transparent !important;
    border: none;
    cursor: pointer;
}

.wpsl-v3-css .wpsl-dropdown .wpsl-selected-item {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    box-shadow: none;
    height: 100%;
    box-sizing: border-box;
    line-height: 1 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin: 0 !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    border: none !important;
    cursor: pointer;
    text-align: start !important;
    padding-left: 0.857em !important;
    padding-right: 2.5em !important;
}

.wpsl-v3-css .wpsl-dropdown li {
    padding-left: 0.857em !important;
    padding-right: 0.857em !important;
    padding-top: 0.643em !important;
    padding-bottom: 0.643em !important;
}

/* V3 Checkbox Filter Alignment - prevents theme interference */
.wpsl-v3-css #wpsl-checkbox-filter label,
.wpsl-v3-css .wpsl-custom-checkboxes label,
.wpsl-v3-css .wpsl-checkboxes label,
.wpsl-v3-css #wpsl-filter-options label,
.wpsl-v3-css #wpsl-filter-options .wpsl-filter label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    line-height: 1 !important;
    cursor: pointer;
    vertical-align: middle !important;
}

.wpsl-v3-css #wpsl-checkbox-filter input[type="checkbox"],
.wpsl-v3-css .wpsl-custom-checkboxes input[type="checkbox"],
.wpsl-v3-css .wpsl-checkboxes input[type="checkbox"],
.wpsl-v3-css #wpsl-filter-options input[type="checkbox"] {
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
}

#wpsl-wrap.wpsl-flex #mapbox-autocomplete {
    height: 42px;
    min-height: 42px;
}

/* Vertical template: 42px height for inputs */
.wpsl-vertical-template.wpsl-v3-css #wpsl-search-input,
.wpsl-vertical-template.wpsl-v3-css #wpsl-search-btn,
.wpsl-vertical-template.wpsl-v3-css #mapbox-autocomplete input[type=text],
.wpsl-has-panel.wpsl-v3-css #wpsl-search-input,
.wpsl-has-panel.wpsl-v3-css #wpsl-search-btn,
.wpsl-has-panel.wpsl-v3-css #mapbox-autocomplete input[type=text] {
    height: 42px;
    max-height: 42px;
}

.wpsl-vertical-template.wpsl-flex #wpsl-search-btn,
.wpsl-has-panel.wpsl-flex #wpsl-search-btn {
    height: 100%;
    max-height: none;
    box-sizing: border-box;
}

#wpsl-search-wrap label {
    margin-bottom: 0;
}

#wpsl-search-input {
    width: var(--wpsl-search-input-width);
    height: auto;
    padding: 7px 12px;
    font-size: 100%;
    margin: 0;
    line-height: 1.428571429;
}

.wpsl-v3-css #wpsl-search-input {
    box-sizing: border-box;
    padding: 0.5em 0.857em;
}

#wpsl-wrap #wpsl-panel .wpsl-autocomplete-search-container #wpsl-search-input {
    width: 100%;
    box-sizing: border-box;
}

#wpsl-search-wrap input,
#wpsl-search-btn {
    border: 1px solid #e8e8e8;
    border-radius: 3px;
}

#wpsl-search-btn {
    height: auto;
    padding: 7px 10px;
    line-height: 1.428571429;
    font-size: 100%;
    font-weight: normal;
    color: #7c7c7c;
    background-color: #e6e6e6;
    box-shadow: 0 1px 2px rgba(64, 64, 64, 0.1);
    text-transform: none !important;
}

.wpsl-v3-css #wpsl-search-btn {
    box-sizing: border-box;
    padding: 0.5em 0.714em;
}

#wpsl-search-btn:disabled {
    opacity: 0.8;
}

#wpsl-search-btn:disabled:hover {
    cursor: default;
}

#wpsl-search-btn:hover,
#wpsl-search-btn:focus {
    cursor: pointer;
    background-color: #d4d4d4;
}

#wpsl-search-btn:focus-visible {
    outline: var(--wpsl-focus-outline, auto);
    outline-offset: -2px;
    border-radius: 3px;
}

#wpsl-search-btn:focus:not(:focus-visible) {
    outline: none;
}

.wpsl-error,
#wpsl-search-input.wpsl-error {
    border: 1px solid #bd0028 !important;
}

#wpsl-wrap .wpsl-search {
    position: relative;
    z-index: 3;
    margin-bottom: 12px;
    padding: 12px 12px 0 12px;
    background: #f4f3f3;
}

.wpsl-v3-css #wpsl-wrap .wpsl-search {
    padding: 12px;
}

/* Avoid a flash of mis-aligned labels: hide the search form from first paint
   until the JS has measured and equalised the column widths */
.wpsl-v3-css #wpsl-wrap:not( .wpsl-has-panel ):not( .wpsl-labels-aligned ) #wpsl-search-wrap {
    visibility: hidden;
}

.wpsl-gdpr-checkpoint .wpsl-search {
    display: none;
}

.wpsl-checkboxes-enabled .wpsl-search {
    padding: 12px;
}

#wpsl-search-wrap div:not( #mapbox-autocomplete ):not( .wpsl-autocomplete-search-container ),
#wpsl-search-btn {
    margin-inline-end: 10px;
    float: inline-start;
}

#wpsl-wrap #wpsl-search-wrap .wpsl-dropdown > div {
    margin-inline-end: 0;
}

#wpsl-search-wrap .wpsl-select-wrap {
    position: relative;
    z-index: 2;
    margin-right: 0;
    margin-inline-end: 0;
}

#wpsl-search-wrap .wpsl-input-field {
    position: relative;
}

#wpsl-radius,
#wpsl-results {
    float: inline-start;
    margin-inline-end: 15px;
}

#wpsl-category {
    position: relative;
    z-index: 1;
    clear: both;
}

#wpsl-search-wrap .wpsl-dropdown div {
    position: absolute;
    float: none;
    margin: -1px 0 0 0;
    top: 100%;
    inset-inline-start: -1px;
    inset-inline-end: -1px;
    border: 1px solid #ccc;
    background: #fff;
    border-top: 1px solid #eee;
    border-radius: 0 0 3px 3px;
    opacity: 0;
    overflow: hidden;
    -webkit-transition: all 150ms ease-in-out;
    -moz-transition: all 150ms ease-in-out;
    -ms-transition: all 150ms ease-in-out;
    transition: all 150ms ease-in-out;
}

#wpsl-search-wrap .wpsl-dropdown.wpsl-active div {
    opacity: 1;
}

#wpsl-search-wrap .wpsl-input label {
    margin-inline-end: 0;
}

#wpsl-radius,
#wpsl-results {
    display: inline;
}

#wpsl-radius {
    margin-inline-end: 10px;
}

#wpsl-search-wrap select,
#wpsl-search select {
    display: none;
}

#wpsl-search-wrap div label {
    float: inline-start;
    margin-inline-end: 10px;
    line-height: 32px;
    vertical-align: middle;
}

.wpsl-v3-css #wpsl-search-wrap div label {
    font-size: inherit;
    line-height: inherit;
}

#wpsl-results label {
    width: auto;
}

#wpsl-category,
#wpsl-country,
#wpsl-wrap .wpsl-input,
#wpsl-wrap .wpsl-select-wrap {
    position: relative;
    margin-bottom: 10px;
}

.wpsl-v3-css #wpsl-category,
.wpsl-v3-css #wpsl-country {
    margin-bottom: 0;
}

.wpsl-v3-css #wpsl-wrap .wpsl-input,
.wpsl-v3-css #wpsl-wrap .wpsl-select-wrap {
    margin-bottom: 0;
}

.wpsl-v3-css #wpsl-category,
.wpsl-v3-css #wpsl-country {
    margin-top: 10px;
}

.wpsl-v3-css #wpsl-category ~ .wpsl-search-btn-wrap,
.wpsl-v3-css #wpsl-country ~ .wpsl-search-btn-wrap {
    margin-top: 10px;
}

@media (min-width: 826px) {
    .wpsl-v3-css #wpsl-wrap:not( .wpsl-has-panel ):not( .wpsl-vertical-template ) .wpsl-input,
    .wpsl-v3-css #wpsl-wrap:not( .wpsl-has-panel ):not( .wpsl-vertical-template ) .wpsl-select-wrap,
    .wpsl-v3-css #wpsl-wrap:not( .wpsl-has-panel ):not( .wpsl-vertical-template ) #wpsl-category,
    .wpsl-v3-css #wpsl-wrap:not( .wpsl-has-panel ):not( .wpsl-vertical-template ) #wpsl-country,
    .wpsl-v3-css #wpsl-wrap:not( .wpsl-has-panel ):not( .wpsl-vertical-template ) .wpsl-search-btn-wrap {
        margin-top: 0;
        margin-bottom: 10px;
    }

    .wpsl-v3-css #wpsl-wrap:not( .wpsl-has-panel ):not( .wpsl-vertical-template ) .wpsl-search {
        padding-bottom: 2px;
    }
}

#wpsl-search-wrap .wpsl-scroll-required div {
    overflow-y: scroll;
}

.wpsl-dropdown.wpsl-scroll-required ul {
    overflow: visible;
}

#wpsl-wrap .wpsl-results-only label {
    width: auto;
}

#wpsl-search-wrap .select2 {
    display: none !important;
}

/* ==========================================================================
   6. Dropdowns
   ========================================================================== */

.wpsl-dropdown {
    position: relative;
    width: max-content;
    border: 1px solid var(--wpsl-header-dropdown-border, #ccc);
    cursor: pointer;
    background: #fff;
    border-radius: 3px;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    margin-inline-end: 0 !important;
    z-index: 2;
}

#wpsl-results .wpsl-dropdown {
    width: 70px;
}

#wpsl-search-type-filter .wpsl-dropdown {
    width: 145px;
}

.wpsl-dropdown ul {
    position: absolute;
    inset-inline-start: 0;
    width: 100%;
    height: 100%;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none;
    overflow: hidden;
    background: var(--wpsl-header-dropdown-background, #fff) !important;
}

.wpsl-v3-css .wpsl-dropdown ul {
    font-size: var(--wpsl-font-size-base, 14px) !important;
}

.wpsl-dropdown.wpsl-active ul {
    background: var(--wpsl-header-dropdown-background-expanded, #fff) !important;
}

.wpsl-dropdown:hover {
    border-color: var(--wpsl-header-dropdown-border-hover, #ccc);
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
}

.wpsl-dropdown .wpsl-selected-item,
.wpsl-dropdown li {
    position: relative;
    display: block;
    line-height: normal;
    font-weight: normal;
    color: var(--wpsl-header-dropdown-text, #000);
    overflow: hidden;
}

#wpsl-search-wrap .wpsl-dropdown .wpsl-selected-item,
#wpsl-search-wrap .wpsl-dropdown li {
    white-space: nowrap;
}

.wpsl-selected-item:after {
    position: absolute;
    content: "";
    inset-inline-end: 0.857em;
    top: 50%;
    margin-top: -4px;
    border: 6px solid transparent;
    border-top: 8px solid var(--wpsl-header-dropdown-text, #000);
}

.wpsl-active .wpsl-selected-item:after {
    margin-top: -10px;
    border: 6px solid transparent;
    border-bottom: 8px solid var(--wpsl-header-dropdown-text, #000);
}

.wpsl-v3-css .wpsl-selected-item:after {
    width: 10px;
    height: 10px;
    margin-top: -5px;
    border: 0;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2010%2010'%3E%3Cpath%20d='M1,3%20L5,7%20L9,3'%20fill='none'%20stroke='%23000'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
    mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2010%2010'%3E%3Cpath%20d='M1,3%20L5,7%20L9,3'%20fill='none'%20stroke='%23000'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
}

.wpsl-v3-css .wpsl-active .wpsl-selected-item:after {
    margin-top: -5px;
    border: 0;
    transform: rotate(180deg);
}

#wpsl-wrap .wpsl-dropdown li:hover,
#wpsl-wrap .wpsl-dropdown li:focus {
    background: var(--wpsl-header-dropdown-item-background-hover, #f8f9f8) !important;
    color: var(--wpsl-header-dropdown-item-text-hover, #000) !important;
    position: relative;
    z-index: 3;
}

#wpsl-wrap .wpsl-dropdown li:focus-visible {
    outline: var(--wpsl-focus-outline, auto);
    outline-offset: -2px;
    border-radius: 3px;
}

#wpsl-wrap .wpsl-dropdown li:focus:not(:focus-visible) {
    outline: none;
}

#wpsl-wrap .wpsl-dropdown li {
    background: transparent;
    color: var(--wpsl-header-dropdown-item-text, inherit);
}

#wpsl-wrap .wpsl-dropdown.wpsl-active li {
    background: transparent;
    color: var(--wpsl-header-dropdown-item-text, inherit);
}

#wpsl-wrap .wpsl-dropdown li.wpsl-selected-dropdown {
    background: var(--wpsl-header-dropdown-item-background-selected, #fff) !important;
    color: var(--wpsl-header-dropdown-item-text-selected, #000) !important;
}

#wpsl-wrap .wpsl-dropdown .wpsl-selected-item:hover {
    color: var(--wpsl-header-dropdown-text-hover, inherit) !important;
}

#wpsl-wrap .wpsl-dropdown .wpsl-selected-item:hover:after {
    border-top-color: var(--wpsl-header-dropdown-text-hover, #000);
}

#wpsl-wrap .wpsl-dropdown.wpsl-active .wpsl-selected-item:hover:after {
    border-bottom-color: var(--wpsl-header-dropdown-text-hover, #000);
    border-top-color: transparent;
}

#wpsl-wrap .wpsl-dropdown.wpsl-active {
    background: var(--wpsl-header-dropdown-background-expanded, #fff) !important;
}

#wpsl-wrap .wpsl-dropdown.wpsl-active .wpsl-selected-item {
    background: transparent !important;
    color: var(--wpsl-header-dropdown-text-hover, #000) !important;
}

#wpsl-wrap .wpsl-dropdown.wpsl-active .wpsl-selected-item:after {
    border-bottom-color: var(--wpsl-header-dropdown-text-hover, #000);
    border-top-color: transparent;
}

.wpsl-dropdown .wpsl-selected-item,
.wpsl-dropdown li,
.wpsl-selected-item {
    list-style: none;
    padding: 9px 12px !important;
    margin: 0 !important;
}

.wpsl-selected-dropdown {
    font-weight: bold;
}

#wpsl-wrap .wpsl-selected-item {
    position: static;
    padding-right: 35px !important;
}

/* ==========================================================================
   7. Result List
   ========================================================================== */

.wpsl-back {
    display: inline-block;
}

#wpsl-result-list {
    width: 33%;
    float: inline-start;
    margin-inline-end: 0.5%;
}

.wpsl-horizontal-template #wpsl-result-list,
.wpsl-store-below #wpsl-result-list {
    width: 100%;
    margin: 12px 0 0 0;
}

#wpsl-stores,
#wpsl-direction-details,
#wpsl-map {
    height: var(--wpsl-map-height, 350px) !important;
}

#wpsl-result-list {
    height: var(--wpsl-map-height, 350px) !important;
}

.wpsl-horizontal-template #wpsl-result-list {
    height: var(--wpsl-results-height, 350px) !important;
}

.wpsl-vertical-template #wpsl-wrap,
.wpsl-has-panel #wpsl-wrap {
    height: var(--wpsl-container-height, 450px) !important;
}

#wpsl-stores,
#wpsl-direction-details {
    overflow-y: auto;
}

#wpsl-result-list p {
    padding-inline-start: 10px;
}

.wpsl-horizontal-template #wpsl-result-list p,
.wpsl-store-below #wpsl-result-list p {
    padding-inline-start: 0;
}

.wpsl-v3-css .wpsl-horizontal-template #wpsl-direction-details .wpsl-direction-after,
.wpsl-v3-css .wpsl-store-below #wpsl-direction-details .wpsl-direction-after {
    padding: 10px;
}

#wpsl-result-list a {
    outline: none;
}

#wpsl-wrap #wpsl-result-list li {
    padding: 10px;
    border-bottom: 1px dotted #ccc;
    margin-inline-start: 0;
    overflow: hidden;
    list-style: none outside none !important;
    text-indent: 0;
}

#wpsl-panel #wpsl-result-list li:last-child {
    border-bottom: none;
}

#wpsl-direction-details li:last-child {
    border-bottom: none;
}

#wpsl-wrap.wpsl-flex #wpsl-result-list li {
    padding: 15px;
}

#wpsl-wrap #wpsl-result-list li li {
    padding: 0;
    border-bottom: 0;
    margin-inline-start: 14px;
    overflow: visible;
}

#wpsl-wrap #wpsl-result-list ul li {
    list-style: none !important;
}

.wpsl-v3-css #wpsl-wrap #wpsl-result-list ul li {
    margin: 0;
}

#wpsl-wrap #wpsl-result-list ol li {
    list-style: decimal !important;
}

#wpsl-wrap.wpsl-store-below #wpsl-result-list li {
    padding: 10px 10px 10px 0;
}

#wpsl-result-list li p {
    padding-inline-start: 0;
    margin: 0 0 20px 0;
}

#wpsl-result-list .wpsl-no-results-msg p:last-child {
    margin-bottom: 0;
}

#wpsl-result-list ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.wpsl-v3-css #wpsl-result-list ul,
.wpsl-v3-css #wpsl-result-list li,
.wpsl-v3-css #wpsl-result-list li * {
    font-size: var(--wpsl-font-size-base, 14px) !important;
}

#wpsl-result-list .wpsl-contact-details span {
    display: block !important;
}

.wpsl-store-details.wpsl-store-listing {
    position: relative;
    padding-inline-end: 20px;
}

#wpsl-stores .wpsl-store-thumb {
    float: inline-end;
    border-radius: 3px;
    margin: 7px 0 0 10px;
    padding: 0;
    border: none;
}

.wpsl-more-info-listings {
    display: none;
}

.wpsl-more-info-listings span,
.wpsl-info-window span {
    display: block;
}

.wpsl-number-results {
    font-weight: bold;
    padding: 10px;
}

.wpsl-flex .wpsl-number-results {
    padding: 15px;
}

#wpsl-wrap #wpsl-result-list .wpsl-preloader {
    position: relative;
    border-bottom: none;
    padding: 10px 10px 10px 35px;
}

#wpsl-wrap.wpsl-flex #wpsl-result-list .wpsl-preloader {
    padding-inline-start: 40px;
}

.wpsl-preloader img {
    position: absolute;
    inset-inline-start: 10px;
    top: 50%;
    margin-top: -8px;
    box-shadow: none !important;
    border: none !important;
}

.wpsl-preloader span {
    float: inline-start;
    margin: -5px 0 0 11px;
}

#wpsl-pagination {
    padding: 10px;
}

#wpsl-pagination button {
    background: none;
    border: none;
    outline: none;
    padding: 0;
    color: #000;
    font-size: inherit;
    font-weight: inherit;
    font-family: inherit;
    text-transform: inherit;
}

#wpsl-pagination button:not(.wpsl-disabled):hover {
    cursor: pointer;
}

#wpsl-pagination .wpsl-prev-page {
    float: inline-start;
    text-align: start;
}

#wpsl-pagination .wpsl-next-page {
    float: inline-end;
    text-align: end;
}

#wpsl-pagination p {
    padding-inline-start: 0;
    margin: 0 0 5px 0;
}

#wpsl-pagination .wpsl-disabled {
    opacity: 0.5;
}

.wpsl-disabled:hover {
    cursor: default;
}

.wpsl-direction-before {
    margin: 14px 0 10px 0;
    padding-inline-start: 10px;
}

.wpsl-direction-separator.wpsl-hidden {
    display: none;
}

.wpsl-horizontal-template .wpsl-direction-before,
.wpsl-store-below .wpsl-direction-before {
    padding-inline-start: 10px;
}

.wpsl-flex .wpsl-direction-before {
    padding-inline-start: 15px;
}

#wpsl-direction-details .wpsl-direction-before div {
    margin-top: 10px;
}

#wpsl-direction-details .wpsl-direction-after {
    font-size: var(--wpsl-font-size-base, 14px) !important;
    padding-bottom: 10px;
}

.wpsl-v3-css #wpsl-direction-details .wpsl-direction-after  {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 10px;
}

.wpsl-flex #wpsl-direction-details .wpsl-direction-after {
    padding-inline-start: 14px;
} 

.wpsl-direction-index {
    float: inline-start;
    width: 8%;
    margin: 0 5% 0 0;
}

.wpsl-direction-txt {
    float: inline-start;
    width: 62%;
}

.wpsl-direction-distance {
    float: inline-start;
    width: 20%;
    margin: 0 0 0 5%;
}

.wpsl-direction-sml .wpsl-direction-index,
.wpsl-direction-sml .wpsl-direction-txt,
.wpsl-direction-sml .wpsl-direction-distance {
    float: none;
    width: auto;
    margin: 0;
}

.wpsl-direction-txt span {
    display: block;
    margin-top: 10px;
}

.wpsl-street,
.wpsl-country {
    display: block;
    border-bottom: none !important;
}

.wpsl-directions {
    display: table;
    border-bottom: none !important;
}

#wpsl-wrap .wpsl-direction-wrap .wpsl-directions,
#wpsl-result-list li > .wpsl-directions {
    display: table;
}

.wpsl-direction-details {
    display: none;
}

#wpsl-result-list .wpsl-direction-wrap .wpsl-error {
    border: 2px solid #bd0028 !important;
    padding: 10px;
    margin: 10px 0;
}

/* ==========================================================================
   9. Opening Hours — Status Indicators
   ========================================================================== */

.wpsl-opening-hours-status {
    margin-bottom: 10px !important;
}

.wpsl-opening-hours-status span {
    display: inline;
}

#wpsl-result-list .wpsl-opening-hours-status {
    margin-bottom: 10px;
}

/* Nothing after the details ( name search: no distance or directions ), so the last line ends on the same 10px as the hours status. */
#wpsl-result-list li > .wpsl-store-location:last-child > p:last-child {
    margin-bottom: 10px;
}

#wpsl-result-list .wpsl-opening-hours-status a {
    text-decoration: none;
}

.wpsl-currently-open {
    color: green;
}

.wpsl-currently-closed {
    color: #C24545;
}

.wpsl-closing-soon {
    color: #ff8c00;
}

.wpsl-location-status {
    color: #C24545;
}

/* Triangle indicators */
.wpsl-opens-next {
    position: relative;
    padding-inline-end: 20px;
}

.wpsl-opening-hours-status a {
    position: relative;
    padding-inline-end: 20px;
}

/* Triangle only after the final time element */
.wpsl-opening-hours-status a .wpsl-opens-time time:after,
.wpsl-store-location a.wpsl-store-listing:before {
    position: absolute;
    content: '';
    top: 50%;
    inset-inline-end: 0;
    transform: translateY(-50%);
    border-top: 8px solid var(--wpsl-listing-results-text, #000);
    border-inline-start: 6px solid rgba(0, 0, 0, 0);
    border-inline-end: 6px solid rgba(0, 0, 0, 0);
}

.wpsl-opening-hours-status a .wpsl-currently-open time:after,
.wpsl-opening-hours-status a .wpsl-currently-closed time:after,
.wpsl-opening-hours-status a .wpsl-currently-open~time:after,
.wpsl-opening-hours-status a .wpsl-currently-closed~time:after {
    position: absolute;
    content: '';
    top: 50%;
    inset-inline-end: 0;
    transform: translateY(-50%);
    border-top: 8px solid var(--wpsl-listing-results-text, #000);
    border-inline-start: 6px solid rgba(0, 0, 0, 0);
    border-inline-end: 6px solid rgba(0, 0, 0, 0);
}

.wpsl-opening-hours-status a .wpsl-closing-soon time:after {
    display: none;
}

.wpsl-opening-hours-status a.wpsl-active-details .wpsl-opens-time time:after,
.wpsl-opening-hours-status a.wpsl-active-details:not(:has(.wpsl-opens-next)) time:after,
.wpsl-store-location a.wpsl-store-listing.wpsl-active-details:before {
    position: absolute;
    content: '';
    bottom: 6px;
    inset-inline-end: 0;
    border-bottom: 8px solid var(--wpsl-listing-results-text, #000);
    border-top: none;
    border-inline-start: 6px solid rgba(0, 0, 0, 0);
    border-inline-end: 6px solid rgba(0, 0, 0, 0);
}

/* v3 replaces the border triangles with the SVG chevron from the vertical template. */
.wpsl-v3-css .wpsl-opening-hours-status a .wpsl-opens-time time:after,
.wpsl-v3-css .wpsl-opening-hours-status a .wpsl-currently-open time:after,
.wpsl-v3-css .wpsl-opening-hours-status a .wpsl-currently-closed time:after,
.wpsl-v3-css .wpsl-opening-hours-status a .wpsl-currently-open~time:after,
.wpsl-v3-css .wpsl-opening-hours-status a .wpsl-currently-closed~time:after,
.wpsl-v3-css .wpsl-store-location a.wpsl-store-listing:before {
    width: 10px;
    height: 10px;
    border: 0;
    background-color: var(--wpsl-listing-results-text, #000);
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2010%2010'%3E%3Cpath%20d='M1,3%20L5,7%20L9,3'%20fill='none'%20stroke='%23000'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
    mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2010%2010'%3E%3Cpath%20d='M1,3%20L5,7%20L9,3'%20fill='none'%20stroke='%23000'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
}

.wpsl-v3-css .wpsl-opening-hours-status a.wpsl-active-details .wpsl-opens-time time:after,
.wpsl-v3-css .wpsl-opening-hours-status a.wpsl-active-details:not(:has(.wpsl-opens-next)) time:after,
.wpsl-v3-css .wpsl-store-location a.wpsl-store-listing.wpsl-active-details:before {
    top: 50%;
    bottom: auto;
    border: 0;
    transform: translateY(-50%) rotate(180deg);
}

.wpsl-v3-css .wpsl-store-location a.wpsl-store-listing:before {
    transform: translateY(calc(-50% - 1px));
}

.wpsl-v3-css .wpsl-store-location a.wpsl-store-listing.wpsl-active-details:before {
    transform: translateY(calc(-50% - 1px)) rotate(180deg);
}

/* Dot separator between status and time */
.wpsl-flex-hours {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px;
}

#wpsl-map .wpsl-flex-hours {
    flex-wrap: nowrap;
}

#wpsl-map .wpsl-icon-hours,
.gm-style-iw-d .wpsl-icon-hours,
.mapboxgl-popup-content .wpsl-icon-hours,
.leaflet-popup-content .wpsl-icon-hours {
    flex-wrap: nowrap !important;
}

.wpsl-flex-hours .wpsl-currently-closed::after,
.wpsl-flex-hours .wpsl-currently-open::after,
.wpsl-flex-hours .wpsl-closing-soon::after {
    margin-inline-end: -4px;
    content: '\0020\00B7\0020';
    color: var(--wpsl-listing-results-text, #000);
    white-space: pre;
}

.wpsl-flex-hours.wpsl-wrapped .wpsl-currently-closed::after,
.wpsl-flex-hours.wpsl-wrapped .wpsl-currently-open::after {
    display: none;
}

.wpsl-flex-hours .wpsl-closing-soon:has(~ .wpsl-opens-next)::after {
    display: inline !important;
}

.wpsl-flex-hours .wpsl-closing-soon::after {
    display: inline !important;
}

.wpsl-flex-hours.wpsl-wrapped .wpsl-closing-soon:not(:has(~ .wpsl-opens-next))::after {
    display: none;
}

/* Info window dot separators */
.wpsl-info-window .wpsl-opening-hours-status .wpsl-currently-closed::after,
.wpsl-info-window .wpsl-opening-hours-status .wpsl-currently-open::after,
.wpsl-info-window .wpsl-opening-hours-status .wpsl-closing-soon::after {
    margin-inline-end: -4px;
    content: " · ";
    color: var(--wpsl-listing-results-text, #000);
    white-space: pre;
}

/* ==========================================================================
   10. Opening Hours — Flexbox Layout
   ========================================================================== */

.wpsl-flex-opening-hours {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    margin: 0 0 15px 0;
    padding: 0;
    flex-basis: 100%;
}

.wpsl-has-icons #wpsl-result-list li .wpsl-more-info,
.wpsl-has-icons:not( .wpsl-cta-details) .wpsl-directions,
.wpsl-has-icons:not( .wpsl-static-hours) .wpsl-flex-opening-hours,
.wpsl-has-icons .wpsl-opening-hours.wpsl-legacy-hours {
    margin-inline-start: 28px;
}

#wpsl-wrap.wpsl-has-icons .wpsl-icon-hours:has( > .wpsl-special-opening-hours) {
    flex-wrap: wrap;
}

#wpsl-wrap.wpsl-has-icons .wpsl-icon-hours > .wpsl-special-opening-hours {
    flex-basis: 100%;
    margin-block: 0 20px;
    margin-inline-start: 28px;
}

#wpsl-wrap.wpsl-has-icons .wpsl-icon-hours:has( > .wpsl-special-opening-hours) > .wpsl-opening-hours {
    margin-bottom: 0;
}

#wpsl-wrap.wpsl-has-icons.wpsl-static-hours .wpsl-icon-hours:has( > .wpsl-special-opening-hours) > .wpsl-flex-opening-hours {
    flex-basis: auto;
}

#wpsl-wrap.wpsl-has-icons .wpsl-icon-hours > table.wpsl-opening-hours {
    width: auto;
    max-width: 100%;
}

.wpsl-info-window .wpsl-flex-opening-hours,
.gm-style-iw-d .wpsl-flex-opening-hours,
.mapboxgl-popup-content .wpsl-flex-opening-hours,
.leaflet-popup-content .wpsl-flex-opening-hours {
    flex-basis: auto;
    width: fit-content;
    max-width: 100%;
}

.wpsl-opening-hours-row {
    display: flex;
    flex-wrap: wrap;
}

/* Day */
.wpsl-opening-hours-row dt {
    min-width: 95px;
    font-weight: normal;
    padding: 0;
    margin: 0;
}

.wpsl-opening-hours-row.wpsl-current-day dt,
.wpsl-opening-hours-row.wpsl-current-day dd:not(.wpsl-multiple-time-ranges),
.wpsl-opening-hours-row.wpsl-current-day .wpsl-multiple-time-ranges .wpsl-current-time-range {
    font-weight: bold;
}

/* Hours */
.wpsl-opening-hours-row dd {
    flex: 1 1 auto;
    padding: 0;
    margin: 0;
}

.wpsl-opening-hours-row dd.wpsl-multiple-time-ranges .wpsl-time-range {
    display: block;
}

.wpsl-opening-hours-row dd.wpsl-multiple-time-ranges .wpsl-time-range:not( :last-child) {
    margin-bottom: 10px;
}

.wpsl-icon-hours::before {
    flex-shrink: 0;
}

.wpsl-store-hours {
    margin-top: 10px;
}

.wpsl-store-hours strong {
    display: block;
}

.wpsl-v3-css #wpsl-result-list .wpsl-store-location p:first-child strong,
.wpsl-v3-css #wpsl-result-list .wpsl-store-location p:first-child strong * {
    font-size: var(--wpsl-font-size-location-name, 16px) !important;
}

#wpsl-stores li .wpsl-opening-hours {
    margin-bottom: 20px;
}

/* ==========================================================================
   11. Opening Hours — Legacy Table Layout
   ========================================================================== */

table.wpsl-opening-hours {
    width: 100%;
    font-size: 100% !important;
}

.is-layout-constrained > table.wpsl-opening-hours {
    max-width: var(--wp--style--global--content-size, 100%);
}

.is-layout-constrained > table.wpsl-opening-hours td:last-child {
    width: 100%;
}

table.wpsl-opening-hours,
table.wpsl-opening-hours td {
    border: none !important;
}

table.wpsl-opening-hours td {
    vertical-align: top;
    padding: 5px 15px 5px 0;
    text-align: start;
}

table.wpsl-opening-hours .wpsl-time-range {
    display: block;
}

table.wpsl-opening-hours .wpsl-time-range:not( :last-child ) {
    margin-bottom: 10px;
}

.wpsl-flex table.wpsl-opening-hours td {
    padding: 5px;
}

.wpsl-flex table.wpsl-opening-hours td:first-child {
    padding-inline-start: 0;
}

#wpsl-result-list table:not(.wpsl-legacy-hours),
.wpsl_stores table.wpsl-opening-hours:not(.wpsl-legacy-hours) {
    display: none;
}

/* ==========================================================================
   12. Info Windows & Popups
   ========================================================================== */

#wpsl-map .wpsl-info-window,
div[class^="wpsl-canvas-"] .wpsl-info-window {
    padding: 4px;
    overflow: hidden;
}

#wpsl-map.wpsl-directions-active .wpsl-info-window p {
    margin-bottom: 0;
}

#wpsl-map.wpsl-directions-active .wpsl-info-window .wpsl-info-window-phone {
    display: none;
}

.wpsl-info-window .wpsl-no-margin {
    margin: 0;
}

.wpsl-info-window span span {
    display: inline !important;
}

#wpsl-wrap .wpsl-info-window p {
    margin: 0 0 10px 0;
}

#wpsl-map .wpsl-info-actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 7px;
    margin: 0;
}

#wpsl-map .wpsl-info-actions.wpsl-cta-section {
    display: flex !important;
    align-items: center;
    gap: 10px;
}

#wpsl-map.wpsl-canvas-mapbox .wpsl-directions-active .wpsl-info-actions {
    display: none;
}

#wpsl-map.wpsl-directions-active .wpsl-info-actions {
    display: none;
}

.wpsl-info-actions a {
    flex-shrink: 0;
}

.wpsl-info-actions.wpsl-cta-section a {
    float: none !important;
    margin: 0 !important;
}

.wpsl-info-actions .wpsl-zoom-here {
    margin-inline-end: 0;
}

/* ==========================================================================
   13. Checkbox Filters
   ========================================================================== */

#wpsl-checkbox-filter,
.wpsl-custom-checkboxes,
.wpsl-checkboxes {
    display: block;
    float: inline-start;
    margin: 5px 0 15px;
    padding: 0;
    width: 100%;
}

.wpsl-v3-css #wpsl-checkbox-filter,
.wpsl-v3-css .wpsl-custom-checkboxes,
.wpsl-v3-css .wpsl-checkboxes {
    margin: 10px 0;
}

#wpsl-checkbox-filter li,
.wpsl-custom-checkboxes li {
    float: inline-start;
    list-style: none;
    margin: 0 1% 0 0;
}

.wpsl-v3-css #wpsl-checkbox-filter li,
.wpsl-v3-css .wpsl-custom-checkboxes li,
.wpsl-v3-css .wpsl-checkboxes li {
    margin-bottom: 8px;
    padding: 4px 0;
}

#wpsl-checkbox-filter.wpsl-checkbox-1-columns li,
.wpsl-custom-checkboxes.wpsl-checkbox-1-columns li {
    width: 99%;
}

#wpsl-checkbox-filter.wpsl-checkbox-2-columns li,
.wpsl-custom-checkboxes.wpsl-checkbox-2-columns li {
    width: 49%;
}

#wpsl-checkbox-filter.wpsl-checkbox-3-columns li,
.wpsl-custom-checkboxes.wpsl-checkbox-3-columns li {
    width: 32%;
}

#wpsl-checkbox-filter.wpsl-checkbox-4-columns li,
.wpsl-custom-checkboxes.wpsl-checkbox-4-columns li {
    width: 24%;
}

#wpsl-checkbox-filter input,
.wpsl-checkboxes input,
.wpsl-custom-checkboxes input {
    margin-inline-end: 5px;
}

/* ==========================================================================
   14. Store Detail Pages (wpsl custom post type)
   ========================================================================== */

.wpsl-locations-details,
.wpsl-location-address,
.wpsl-contact-details {
    margin-bottom: 15px;
}

.wpsl-contact-details {
    clear: both;
}

/* ==========================================================================
   15. API Error Messages
   ========================================================================== */

.wpsl-key-required {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
    padding: 12px;
    background: #fff;
    border: 2px solid #970606;
    border-radius: 3px;
}

.wpsl-key-required p {
    margin: 0;
    font-size: 14px;
}

.wpsl-api-message-wrap .wpsl-search {
    background: #fff;
    border: 4px solid #970606;
    padding: 12px;
    width: auto;
}

.wpsl-api-message-wrap .wpsl-search p:first-child {
    margin-top: 0;
}

.wpsl-api-message-wrap .wpsl-search p:last-child {
    margin-bottom: 0;
}

#wpsl-map .wpsl-api-message {
    position: absolute;
    z-index: 9999;
    font-size: 14px;
    padding: 10px;
    height: auto;
    width: auto;
    top: 25%;
    left: 15%;
    right: 15%;
    background: #fff;
    border: 2px solid #970606;
    border-radius: 3px;
}

#wpsl-map .wpsl-api-message p {
    margin: 5px 0;
}

.wpsl-api-message #wpsl-close-api-notice {
    float: inline-end;
}

#wpsl-map .wpsl-api-message .wpsl-error {
    border: none !important;
    margin: 10px 0;
}

.wpsl-api-message .wpsl-api-error-list {
    margin: 15px 0;
    padding-inline-start: 20px;
}

.wpsl-error #wpsl-close-api-notice {
    display: block;
}

.wpsl-inline-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    box-sizing: border-box;
    margin-top: 10px;
    padding: 9px 10px;
    background: #fff;
    border: 1px solid #e8e8e8;
    border-inline-start: 5px solid #dba2ac;
    border-radius: 3px;
    font-size: 13px;
    line-height: 1.45;
    color: #4b5563;
}

#wpsl-search-wrap:has( + .wpsl-inline-notice ) {
    margin-bottom: 10px;
}

.wpsl-inline-notice-body {
    flex: 1 1 auto;
    min-width: 0;
}

#wpsl-wrap .wpsl-inline-notice-body p {
    margin: 0;
    padding: 0;
    font-size: 13px;
}

#wpsl-wrap .wpsl-inline-notice-body p + p {
    margin-top: 8px;
}

#wpsl-wrap .wpsl-inline-notice-meta {
    color: #6b7280;
}

#wpsl-wrap .wpsl-inline-notice-cta a {
    font-weight: 600;
}

#wpsl-wrap .wpsl-inline-notice-body a {
    color: inherit;
    text-decoration: underline;
}

.wpsl-inline-notice-close {
    flex: 0 0 auto;
    box-sizing: border-box;
    width: 21px;
    min-width: 21px;
    height: 21px;
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    box-shadow: none;
    font-size: 0;
    line-height: 0;
    cursor: pointer;
}

.wpsl-inline-notice-close:hover,
.wpsl-inline-notice-close:focus {
    background: none;
}

.wpsl-inline-notice-close svg {
    box-sizing: content-box;
    display: block;
    width: 15px;
    height: 15px;
    padding: 3px;
    fill: #6b7280;
    background: #f5f5f5;
    border-radius: 3px;
    transition: fill 0.3s ease;
}

.wpsl-inline-notice-close:hover svg,
.wpsl-inline-notice-close:focus svg {
    fill: #000;
    background: #ececec;
}

.wpsl-inline-notice-close:active svg {
    fill: #333;
}

/* ==========================================================================
   16. GDPR Checkpoint
   ========================================================================== */

#wpsl-gdpr-checkpoint {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    inset-inline-start: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
}

#wpsl-gdpr-checkpoint p {
    margin-bottom: 0;
}

.wpsl-gdpr-passed #wpsl-gdpr-checkpoint {
    display: none;
}

div[id^="wpsl-base-"].wpsl-gdpr-checkpoint {
    position: relative;
}

.wpsl-gdpr-checkpoint-overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    inset-inline-start: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wpsl-gdpr-checkpoint-overlay p {
    margin-bottom: 0;
}

.wpsl-gdpr-passed .wpsl-gdpr-checkpoint-overlay {
    display: none;
}

#wpsl-gdpr-approved,
.wpsl-gdpr-approve {
    padding: 9px 12px;
    border-radius: 3px;
    margin-inline-end: 10px;
    border: none;
    font-weight: normal;
    font-size: inherit;
}

.wpsl-gdpr-approve:hover {
    cursor: pointer;
}

#wpsl-gdpr-permanent-approved,
.wpsl-gdpr-permanent {
    margin-inline-end: 5px;
}

.wpsl-gdpr-content {
    padding: 20px;
    max-width: 400px;
    border-radius: 3px;
}

.wpsl-gdpr-checkpoint #wpsl-panel {
    display: none;
}

#wpsl-wrap.wpsl-gdpr-checkpoint,
#wpsl-wrap.wpsl-gdpr-checkpoint #wpsl-result-list,
#wpsl-wrap.wpsl-gdpr-checkpoint #wpsl-stores,
#wpsl-wrap.wpsl-gdpr-checkpoint #wpsl-direction-details,
#wpsl-wrap.wpsl-gdpr-checkpoint #wpsl-panel,
#wpsl-wrap.wpsl-gdpr-checkpoint .wpsl-search {
    background: transparent !important;
}

#wpsl-wrap.wpsl-credits-gated .wpsl-provided-by,
#wpsl-wrap.wpsl-credits-gated + .wpsl-provided-by {
    display: none;
}

#wpsl-wrap.wpsl-has-credits.wpsl-credits-gated {
    margin-bottom: 20px;
}

.wpsl-gdpr-text {
    padding: 20px;
    display: inline-block;
    font-size: 14px;
    background-color: #fff;
    color: #000;
    border-radius: 3px;
    text-align: center;
}

.wpsl-gdpr-actions {
    margin-top: 15px;
    font-weight: normal;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wpsl-gdpr-actions label {
    font-weight: normal;
}

/* ==========================================================================
   17. Geolocation Dialog
   ========================================================================== */

.wpsl-geolocation-dialog {
    position: absolute;
    top: 0;
    inset-inline-start: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.wpsl-geolocation-dialog-content {
    background: #fff;
    padding: 20px;
    border-radius: 3px;
    text-align: center;
    width: max-content;
    max-width: 90%;
    font-size: 13px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

#wpsl-map .wpsl-geolocation-dialog-content p {
    margin: 0 0 12px 0;
    color: #333;
    font-size: 13px;
}

.wpsl-geolocation-dialog-actions {
    display: flex;
    gap: 10px;
    justify-content: center;
}

.wpsl-geolocation-dialog-actions .wpsl-styled-btn,
.wpsl-geolocation-dialog-actions .wpsl-styled-btn:hover {
    font-weight: normal;
    font-size: 13px;
    cursor: pointer;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    text-transform: none;
}

#wpsl-wrap .wpsl-geolocation-dialog-actions .wpsl-geolocation-accept {
    padding: 10px 14px;
}

.wpsl-geolocation-overlay {
    position: absolute;
    top: 0;
    inset-inline-start: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    pointer-events: none;
}

.wpsl-geolocation-overlay-box {
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 90%;
    padding: 12px 14px;
    background: #fff;
    border-radius: 3px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    font-size: 14px;
    color: #333;
}

#wpsl-map .wpsl-geolocation-overlay-box img {
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    min-width: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-block !important;
}

/* ==========================================================================
   19. Icon Colors
   ========================================================================== */

#wpsl-wrap #wpsl-stores [class*="wpsl-icon-"]::before {
    color: var(--wpsl-listing-icons-color, #000);
}

#wpsl-wrap .wpsl-info-window [class*="wpsl-icon-"]::before,
#wpsl-wrap .gm-style-iw-d [class*="wpsl-icon-"]::before,
#wpsl-wrap .mapboxgl-popup-content [class*="wpsl-icon-"]::before,
#wpsl-wrap .leaflet-popup-content [class*="wpsl-icon-"]::before {
    color: var(--wpsl-popup-icons-color, #000);
}

#wpsl-wrap [class*="wpsl-icon-"]:not(.wpsl-geolocation-accept)::before {
    margin: 0;
    width: 18px;
    display: inline-block;
}

/* ==========================================================================
   20. Mapbox Marker Overlay
   ========================================================================== */

#wpsl-map .wpsl-mapbox-marker-overlay,
#wpsl-map .wpsl-mapbox-cluster-overlay,
.wpsl-canvas-mapbox .wpsl-mapbox-marker-overlay,
.wpsl-canvas-mapbox .wpsl-mapbox-cluster-overlay {
    box-shadow: none !important;
    padding: 0 !important;
    min-width: 0 !important;
    background: transparent !important;
    border: none !important;
    font-size: 0 !important;
    line-height: 0 !important;
    box-sizing: border-box !important;
}

/* Keyboard focus only: a mouse click on the canvas must not outline the box. */
#wpsl-map .wpsl-mapbox-marker-overlay:focus-visible,
#wpsl-map .wpsl-mapbox-cluster-overlay:focus-visible,
.wpsl-canvas-mapbox .wpsl-mapbox-marker-overlay:focus-visible,
.wpsl-canvas-mapbox .wpsl-mapbox-cluster-overlay:focus-visible {
    outline: 2px solid #005fcc !important;
    outline-offset: 2px !important;
}

#wpsl-map .wpsl-mapbox-cluster-overlay:focus,
.wpsl-canvas-mapbox .wpsl-mapbox-cluster-overlay:focus {
    border-radius: 50% !important;
}

/* ==========================================================================
   21. Mapbox Popup Styles
   ========================================================================== */

.mapboxgl-popup-content {
    padding: 10px;
}

.wpsl-canvas-mapbox .mapboxgl-popup .mapboxgl-popup-close-button {
    position: absolute;
    inset-inline-end: 0;
    top: 0;
    padding: 1px 6px;
    box-shadow: none;
    border-radius: 0 3px 0 0;
    background-color: initial;
    border: 0;
    cursor: pointer;
    color: #000;
}

.wpsl-canvas-mapbox .mapboxgl-popup .mapboxgl-popup-close-button:hover {
    background-color: #0000000d
}

.wpsl-canvas-mapbox .mapboxgl-popup .mapboxgl-popup-content {
    background: #fff;
    border-radius: 3px;
    box-shadow: 0 1px 2px #0000001a;
    padding: 10px 10px 15px;
    pointer-events: auto;
    position: relative
}

.wpsl-canvas-mapbox .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip {
    margin-top: -1px;
}

#wpsl-map .mapboxgl-popup-close-button {
    background-color: none;
    padding: 1px 6px;
    font-weight: normal;
    color: #000;
}

#wpsl-map .mapboxgl-popup-close-button:hover {
    background-color: rgb(0 0 0/5%);
}

/* 
==========================================================================
22. Mapbox Autocomplete / Geocoder
========================================================================== 
*/

#mapbox-autocomplete {
    display: none;
}

.wpsl-v3-css #wpsl-wrap #mapbox-autocomplete {
    display: none;
}

#mapbox-autocomplete .mapboxgl-ctrl-geocoder {
    position: relative;
    z-index: 100;
    box-shadow: none !important;
    font-size: 100%;
}

#wpsl-wrap.wpsl-flex #mapbox-autocomplete {
    width: 100%;
}

/* Mapbox Geocoder Container */
#wpsl-wrap.wpsl-flex #mapbox-autocomplete .mapboxgl-ctrl-geocoder {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
}

#mapbox-autocomplete .mapboxgl-ctrl-geocoder a {
    text-decoration: none;
}

#mapbox-autocomplete .mapboxgl-ctrl-geocoder--input {
    width: 100% !important;
    padding: 7px 12px !important;
    font-size: 100% !important;
    margin: 0 !important;
    border-radius: 3px !important;
    box-sizing: border-box !important;
}

#wpsl-wrap.wpsl-flex #mapbox-autocomplete,
#wpsl-wrap.wpsl-flex #mapbox-autocomplete .mapboxgl-ctrl-geocoder {
    min-width: 0;
}

#wpsl-wrap.wpsl-flex #mapbox-autocomplete .suggestions {
    width: calc( 100% + 42px );
}

#wpsl-wrap.wpsl-flex #mapbox-autocomplete .mapboxgl-ctrl-geocoder--input {
    height: 42px !important;
    min-height: auto;
}

#wpsl-wrap #mapbox-autocomplete input[type=text] {
    line-height: 1 !important;
    padding: 13px 14px !important;
    font-size: inherit;
    font-family: inherit;
}

#wpsl-wrap #wpsl-panel #mapbox-autocomplete input[type=text] {
    width: 100% !important;
    height: 100% !important; 
    font-size: inherit;
}

#mapbox-autocomplete .mapboxgl-ctrl-geocoder--input:focus:not(:focus-visible) {
    outline: none !important;
}

#mapbox-autocomplete .suggestions-wrapper {
    position: absolute;
    top: 100%;
    inset-inline-start: 0;
    inset-inline-end: 0;
    z-index: 1000;
}

#wpsl-wrap #mapbox-autocomplete .suggestions {
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 0 0 3px 3px;
    box-shadow: 0 2px 4px rgba( 0, 0, 0, 0.1 );
    margin: 0;
    font-size: var(--wpsl-font-size-base, 14px) !important;
}

#wpsl-wrap #mapbox-autocomplete .suggestions li {
    list-style-type: none;
    margin:0;
}

#wpsl-panel .mapboxgl-ctrl-geocoder {
    box-shadow: none;
    width: 100%;
}

#mapbox-autocomplete,
#mapbox-autocomplete div {
    float: none !important;
    margin-inline-end: 0 !important;
}

#mapbox-autocomplete.mapbox-gl-geocoder--error {
    font-size: inherit;
    padding: 7px 12px;
}

#mapbox-autocomplete {
    text-decoration: none;
}

#mapbox-autocomplete.mapboxgl-ctrl-geocoder {
    box-shadow: none;
    min-width: 100%;
}

#wpsl-wrap .mapboxgl-ctrl-geocoder .suggestions>li>a {
    overflow: hidden;
    line-height: 1.3;
    box-shadow: none;
}

/* ==========================================================================
   23. OpenStreetMap / Leaflet Specific
   ========================================================================== */

.leaflet-container a.leaflet-popup-close-button {
    box-shadow: none;
}

#wpsl-wrap .leaflet-popup-content {
    margin: 11px;
    line-height: inherit;
}

.wpsl-canvas-osm .leaflet-control a,
.wpsl-canvas-stadia .leaflet-control a {
    text-decoration: none !important;
}

#wpsl-wrap .leaflet-popup-content .wpsl-info-actions.wpsl-cta-section {
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    align-items: center;
    gap: 10px;
}

#wpsl-wrap .leaflet-popup-content:has(.wpsl-info-actions.wpsl-cta-section a) {
    min-width: 210px !important;
    width: fit-content !important;
}

#wpsl-map.leaflet-container {
    font-family: inherit;
}

/* ==========================================================================
   24. Google Places Autocomplete
   ========================================================================== */

/* New autocomplete support 01/03/2025 */
#wpsl-search-wrap .wpsl-autocomplete-search-container {
    position: relative;
    margin-inline-end: 0;
}

#wpsl-panel .wpsl-autocomplete-search-container {
    width: 100%;
}

#wpsl-autocomplete-search-input {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 3px;
    font-size: 16px;
    box-sizing: border-box;
}

#wpsl-wrap .wpsl-autocomplete-search-results {
    position: absolute;
    width: 100%;
    top: 100%;
    inset-inline-start: -1px;
    z-index: 1000;
    background: white;
    border: 1px solid #ccc;
    border-top: none;
    border-radius: 0 0 3px 3px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    max-height: 300px;
    overflow-y: auto;
    display: none;
    box-sizing: border-box;
}

#wpsl-wrap.wpsl-stadia-autocomplete .wpsl-autocomplete-search-results {
    border-radius: 3px;
    border-top: 1px solid #ccc;
    margin-top: 5px;
}

#wpsl-wrap .wpsl-autocomplete-search-results ul {
    position: relative;
    list-style-type: none;
    margin: 0;
    padding: 0 0 25px 0;
}

#wpsl-wrap #wpsl-stadia-autocomplete-results ul {
    padding-bottom: 0;
}

.wpsl-v3-css #wpsl-wrap .wpsl-autocomplete-search-results ul {
    font-size: var(--wpsl-font-size-base, 14px) !important;
}

#wpsl-wrap .wpsl-autocomplete-search-results:not( #wpsl-stadia-autocomplete-results ) ul:after {
    content: "";
    display: block;
    position: absolute;
    inset-inline-start: 14px;
    inset-inline-end: 0;
    background-image: url('https://storage.googleapis.com/geo-devrel-public-buckets/powered_by_google_on_white.png');
    background-repeat: no-repeat;
    background-size: contain;
    height: 18px
}

#wpsl-wrap .wpsl-autocomplete-search-results li {
    padding: 5px 10px;
    cursor: pointer;
    border-bottom: 1px solid #eee;
    margin-bottom: 0;
    margin-top: 0;
    list-style-type: none;
}

.wpsl-v3-css #wpsl-wrap .wpsl-autocomplete-search-results li {
    padding: 0.5em 0.857em;
    margin: 0;
}

#wpsl-panel .wpsl-autocomplete-search-results li {
    padding: 6px 14px;
    margin: 0;
}

#wpsl-wrap .wpsl-autocomplete-search-results li:last-child {
    border-bottom: none;
}

#wpsl-wrap .wpsl-autocomplete-search-results .wpsl-suggestion-name,
#wpsl-wrap .wpsl-autocomplete-search-results .wpsl-suggestion-context {
    display: block;
}

#wpsl-wrap .wpsl-autocomplete-search-results .wpsl-suggestion-context {
    font-size: 0.85em;
    line-height: 1.4;
    color: #777;
}

#wpsl-wrap .wpsl-autocomplete-search-results .wpsl-search-attribution {
    padding: 6px 10px;
    border-top: 1px solid #eee;
    font-size: 11px;
    line-height: 1.4;
    color: #777;
}

#wpsl-wrap .wpsl-autocomplete-search-results .wpsl-search-attribution a {
    color: #777;
    text-decoration: underline;
    box-shadow: none;
}

#wpsl-wrap .wpsl-autocomplete-search-results li:hover,
#wpsl-wrap .wpsl-autocomplete-search-results li:focus,
#wpsl-wrap .wpsl-autocomplete-search-results li.wpsl-selected {
    background-color: #f5f5f5;
}

#wpsl-wrap .wpsl-autocomplete-search-results li a,
#wpsl-wrap .wpsl-autocomplete-search-results li a:link,
#wpsl-wrap .wpsl-autocomplete-search-results li a:hover,
#wpsl-wrap .wpsl-autocomplete-search-results li a:visited {
    text-decoration: none;
    color: #000;
    box-shadow: none;
}

#wpsl-search-wrap .wpsl-autocomplete-highlight,
#wpsl-panel .wpsl-autocomplete-highlight {
    font-weight: bold;
}

#wpsl-search-wrap [class*="--SearchIcon"] {
    display: none !important;
}

#wpsl-search-wrap [class*="--ClearBtn"],
#wpsl-search-wrap [class*="--SearchBox"] {
    box-shadow: none !important;
}

#wpsl-search-wrap [class*="--ClearBtn"] {
    border-radius: 0 !important;
}

#wpsl-search-wrap [class*="--ActionIcon"] {
    width: 16px;
    height: 16px;
    margin-inline-end: 3px;
}

/* Legacy Google Maps autocomplete */
.pac-container .pac-item:hover {
    cursor: pointer;
}

/* ==========================================================================
   25. Accessibility — Skip Link (keyboard-only map bypass)
   ========================================================================== */

.wpsl-skip-to-results {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    text-decoration: none;
}

.wpsl-skip-to-results:focus-visible {
    position: absolute;
    inset-block-start: 10px;
    inset-inline-end: 10px;
    width: auto;
    height: auto;
    padding: 8px 14px;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: nowrap;
    z-index: 9999;
    background: #fff;
    border: 2px solid var(--wpsl-focus-outline-color, #007bff);
    border-radius: 4px;
    color: #000;
    font-size: 14px;
    font-weight: normal;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    text-decoration: none;
}

/* ==========================================================================
   25. Accessibility — Focus Indicators
   ========================================================================== */

#wpsl-map a:focus:not(:focus-visible),
#wpsl-map a:active,
#wpsl-map a img:focus:not(:focus-visible),
#wpsl-map a img:active,
#wpsl-map img:focus:not(:focus-visible),
#wpsl-map img:active {
    outline: none;
    border: none;
    outline-style: none;
    -moz-outline-style: none;
}

#wpsl-map button:focus-visible {
    outline: var(--wpsl-focus-outline, 2px solid #0066cc) !important;
    outline-offset: -2px;
    border-radius: 3px;
}

#wpsl-map button:focus:not(:focus-visible) {
    outline: none !important;
}


#wpsl-map [role="button"][aria-label]:focus-visible {
    outline: var(--wpsl-focus-outline, 2px solid #0066cc) !important;
    outline-offset: 2px;
    border-radius: 3px;
}

#wpsl-map [role="button"][aria-label]:focus:not(:focus-visible) {
    outline: none;
}

#wpsl-map .mapboxgl-ctrl button:focus-visible {
    outline: var(--wpsl-focus-outline, auto);
    outline-offset: 2px;
    border-radius: 3px;
}

#wpsl-map .mapboxgl-ctrl button:focus:not(:focus-visible) {
    outline: none;
}

#wpsl-map .mapboxgl-ctrl a:focus-visible {
    outline: var(--wpsl-focus-outline, auto);
    outline-offset: 2px;
    border-radius: 3px;
}

#wpsl-map .mapboxgl-ctrl a:focus:not(:focus-visible) {
    outline: none;
}

#wpsl-map.wpsl-canvas-gmaps div[role="region"]:focus-visible {
    outline: var(--wpsl-focus-outline, auto) !important;
    outline-offset: -2px !important;
}

#wpsl-map.wpsl-canvas-gmaps div[role="region"]:focus:not(:focus-visible) {
    outline: none !important;
}

#wpsl-map.wpsl-canvas-gmaps .gm-style > div[style*="pointer-events: none"][style*="border"] {
    border-color: var(--wpsl-focus-outline-color, currentColor) !important;
    border-width: 2px !important;
    border-style: solid !important;
}

#wpsl-stores li p[role="button"]:focus-visible {
    outline: var(--wpsl-focus-outline, auto);
    outline-offset: 2px;
    border-radius: 3px;
    cursor: pointer;
}

#wpsl-stores li p[role="button"]:focus:not(:focus-visible) {
    outline: none;
}

#wpsl-direction-details ul li:focus-visible {
    outline: var(--wpsl-focus-outline, auto);
    outline-offset: 2px;
    border-radius: 3px;
}

#wpsl-direction-details ul li:focus:not(:focus-visible) {
    outline: none;
}

/* ==========================================================================
   26. Accessibility — Screen Reader Text
   ========================================================================== */

#wpsl-wrap .reader-txt {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

/* ==========================================================================
   27. RTL Support
   ========================================================================== */


.rtl #wpsl-checkbox-filter input,
.rtl .wpsl-custom-checkboxes input {
    margin-right: 0;
    margin-left: 5px;
}

.rtl .wpsl-info-actions a {
    flex-shrink: 0;
}

.rtl .wpsl-info-actions.wpsl-cta-section a {
    float: none;
    margin: 0;
}

.rtl #wpsl-map .wpsl-info-window {
    padding-right: 22px;
}

.rtl #wpsl-wrap #wpsl-result-list li.wpsl-preloader {
    padding: 10px 35px 10px 0;
}

.rtl .wpsl-preloader img {
    left: 0;
    right: 10px;
}

/* ==========================================================================
   28. Theme Compat — TwentyNineteen
   ========================================================================== */

.wpsl-twentynineteen .wpsl-input {
    width: 100%;
}

.wpsl-twentynineteen.wpsl-name-support .wpsl-input {
    width: auto;
}

.wpsl-twentynineteen #wpsl-search-input {
    line-height: 1.3em;
}

.wpsl-twentynineteen #wpsl-search-btn {
    padding: 6px 10px;
}

.wpsl-twentynineteen #wpsl-search-wrap label {
    margin-top: 6px;
}

.wpsl-twentynineteen .wpsl-dropdown {
    width: 116px;
}

.wpsl-twentynineteen .wpsl-dropdown .wpsl-selected-item {
    padding: 6px 12px !important;
}

/* ==========================================================================
   29. Theme Compat — TwentyTwenty
   ========================================================================== */

#wpsl-wrap .wpsl-twentytwenty .wpsl-selected-item {
    font-size: 1.6rem;
    height: 38px;
    padding: 2px 12px !important;
}

#wpsl-wrap .wpsl-twentytwenty div label {
    line-height: 40px;
}

#wpsl-wrap .wpsl-twentytwenty #wpsl-search-input {
    font-size: 16px;
    height: 40px;
}

.wpsl-twentytwenty #wpsl-search-btn:hover {
    text-decoration: none;
}

#wpsl-results .wpsl-dropdown {
    width: 81px;
}

/* ==========================================================================
   30. Name-Only Templates & Search Type Filter
   ========================================================================== */

#wpsl-wrap .wpsl-name-support #wpsl-search-input,
#wpsl-wrap .wpsl-name-support #wpsl-search-btn {
    float: none;
    display: inline;
}

#wpsl-wrap .wpsl-name-support #wpsl-search-btn {
    margin-inline-start: 10px;
}

#wpsl-wrap .wpsl-name-support.wpsl-filter #wpsl-search-btn {
    margin-inline-start: 0;
}

#wpsl-wrap.wpsl-names .wpsl-distance {
    display: none !important;
}

.wpsl-cat-autosubmit #wpsl-search-btn {
    display: none;
}

#wpsl-search-type-filter {
    margin-bottom: 10px;
}

#wpsl-search-type-filter .wpsl-search-type-dropdown {
    margin-inline-end: 10px !important;
}

.wpsl-search-types-support .wpsl-search {
    padding: 12px 12px 2px 12px;
}

.wpsl-search-types-support #wpsl-search-input {
    margin-inline-end: 10px;
}

.wpsl-search-types-support #wpsl-search-btn {
    float: none;
}

.wpsl-search-types-support .wpsl-input {
    margin-bottom: 0;
}

/* ==========================================================================
   31. Flex (v3) Template Layout
   ========================================================================== */

#wpsl-wrap.wpsl-flex {
    display: flex;
}

#wpsl-panel #wpsl-stores {
    height: auto !important;
}

.wpsl-flex button {
    font-family: inherit;
}

#wpsl-result-filters button {
    font-size: inherit;
}

#wpsl-wrap #wpsl-result-list .wpsl-styled-btn {
    font-size: var(--wpsl-font-size-cta-buttons, 16px) !important;
    height: auto;
    text-decoration: none !important;
}

#wpsl-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 33%;
    min-width: 275px;
    margin-inline-end: 5px;
    box-sizing: border-box;
    border: 1px solid #e8e8e8;
}

.wpsl-full-page-template #wpsl-panel {
    position: absolute;
    inset-inline-start: 0;
    top: 0;
    bottom: 0;
    z-index: 3;
    padding: 15px;
    border: none;
}

.wpsl-flex #wpsl-map,
.wpsl-flex #wpsl-panel {
    height: 350px;
}

.wpsl-flex #wpsl-panel form,
.wpsl-flex .wpsl-search-wrap {
    padding: 0 !important;
    margin: 0 !important;
}

.wpsl-flex .wpsl-search-wrap:has( #wpsl-search-input:focus-visible ) {
    border-color: #3b82f6;
}

.wpsl-flex #wpsl-search-input::placeholder {
    color: #9ca3af;
}

.wpsl-flex #wpsl-clear-search-input:hover,
.wpsl-flex #wpsl-clear-search-input:focus {
    color: #374151;
}

.wpsl-flex #wpsl-clear-search-input:focus-visible {
    outline: var(--wpsl-focus-outline, auto);
    outline-offset: 2px;
    border-radius: 3px;
}

.wpsl-flex #wpsl-clear-search-input:focus:not(:focus-visible) {
    outline: none;
}

.wpsl-flex #wpsl-clear-search-input.visible {
    display: block;
}

.wpsl-flex #wpsl-map {
    flex: 1;
    box-sizing: border-box;
}

.wpsl-full-page-template #wpsl-map {
    width: 100%;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
}

.wpsl-flex .wpsl-search {
    padding: 10px;
    margin-bottom: 0;
    border-bottom: 1px solid #e8e8e8;
}

.wpsl-full-page-template #wpsl-panel #wpsl-result-list {
    background: #fff;
    border-radius: 3px;
    margin-top: 10px;
}

.wpsl-flex #wpsl-stores,
.wpsl-flex #wpsl-direction-details {
    overflow-y: visible;
}

#wpsl-panel #wpsl-result-list::-webkit-scrollbar {
    width: 8px;
}

#wpsl-panel #wpsl-result-list::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 0px;
}

#wpsl-panel #wpsl-result-list::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 0px;
}

#wpsl-panel #wpsl-result-list::-webkit-scrollbar-thumb:hover {
    background: #555;
}

/* ==========================================================================
   32. Utilities
   ========================================================================== */

.wpsl-clearfix:before,
.wpsl-clearfix:after {
    content: " ";
    display: table;
}

.wpsl-clearfix:after {
    clear: both;
}

.wpsl-provided-by {
    float: inline-end;
    padding: 5px 0;
    text-align: end;
    font-size: 12px;
    width: 100%;
}

.wpsl-marker-bounce {
    background: none;
    border: none;
    pointer-events: none;
}

.wpsl-marker-bounce img {
    display: block;
}

/*
 * Marker bounce -- the "bounces up and down" hover effect.
 *
 * An Advanced Marker has no Animation API, so the effect is this class rather
 * than google.maps.Animation.BOUNCE ( which the legacy marker still uses ).
 */
@keyframes wpsl-bounce {
    0%, 100% { translate: 0 0; }
    50%      { translate: 0 -12px; }
}

.wpsl-bounce {
    animation: wpsl-bounce 0.5s ease infinite;
}

@media ( prefers-reduced-motion: reduce ) {
    .wpsl-bounce {
        animation: none;
    }
}

#wpsl-wrap #wpsl-result-list li.wpsl-has-marker-label {
    position: relative;
}

/* Logical sides, so the badge column moves to the right on RTL sites. */
#wpsl-wrap #wpsl-result-list li.wpsl-has-marker-label:not( .wpsl-marker-label-stacked ) {
    padding-inline-start: 40px;
}

#wpsl-wrap #wpsl-result-list li .wpsl-marker-label {
    position: absolute;
    inset-inline-start: 8px;
    /* Its static position: the top of the result's content, so it follows each template's padding. */
    top: auto;
    box-sizing: border-box;
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    border-radius: 12px;
    background: var(--wpsl-marker-label-bg, #1e5b83);
    color: var(--wpsl-marker-label-color, #fff);
    font-size: 12px !important;
    font-weight: 700;
    line-height: 24px !important;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* Three characters or more ( 100, AAA ) outgrow the side column, so the badge sits above the result instead. */
#wpsl-wrap #wpsl-result-list li.wpsl-marker-label-stacked .wpsl-marker-label {
    position: static;
    display: inline-block;
    margin-bottom: 6px;
}