.search_options {
    position: relative;
}

/*
Set up CSS map as single-column grid with optional 2-column
*/
#col-main {
    display: grid;
    grid-template-columns: 1fr;
}

#store_map {
    width: 100%
}

.addresses {
    grid-column: 1;
    grid-row: 4;
    width:100%;
}

/* Optional layouts for double column when addresses column is not removed by app block setting  */

#col-main.show-addresses {
    grid-template-columns: 40% 60%;
}

.show-addresses div#store_map{
    grid-column: 2;
    grid-row: 4
}

#store-locator-title, .header_html, .search_bar, .footer_html {
    grid-column: 1/span 2;
}

.search_bar  {
    padding: 10px 20px;
    margin-bottom: 15px;
}

.search_bar div{
    padding: 5px;
}
fieldset{
    display:flex;
    column-gap: 10px;
}
input#address_search, button#submitBtn {
    flex-grow:0.3
}

fieldset#search_filters{
    display:none;
    grid-template-columns: repeat(6, 1fr);
}

fieldset#search_filters.filters-loaded{
    display:grid;
}

#store_map {
    border: 1px solid #DDDDDD;
    height: 400px;
    font-size: 12px;
}
#store_map .name {
    font-weight:bold;
}
#store_map .custom_field_value {
    margin-left:5px;
}
#store_map label { width: auto; display:inline; }
#store_map img { max-width: none; }
.addresses {
    padding-right: 10px;
    max-height: 400px;
    overflow: hidden;
    height: 0px;
    transition: 0.4s all ease-in;
}

.addresses ul {
    display: block;
    margin: 0;
    padding: 0;
    list-style:none;
}

.addresses.display {
    height : 400px;
    overflow: auto;
    transition-delay: 0.4s;
    display: flex;
    flex-direction: column;
}

.addresses li {
    background: url("map-pin-lightblue.png") no-repeat scroll 12px 17px transparent;
    border-top: 1px dotted #DDDDDD;
    clear: both;
    font-size: 12px;
    line-height: 16px;
    padding: 15px 5px;
    min-height: 30px;
    list-style: none;
}

#sl_addresses li{
    display: grid;
    grid-template-columns: 1fr 5fr;
}

.distance{
    grid-column: 1;
    margin-top: 40px;
}

.addresses li a  {
    outline: medium none;
    margin-bottom: 15px;
    text-decoration: none;
    grid-column: 2;
}
.addresses li a:hover {
    text-decoration: none;
}
.addresses li a .name {
    color:#069;
    font-weight:bold;
}
.addresses li a span  {
    color:#333;
}
.addresses li a .name {
    color: #069;
    font-weight: bold;
    font-size: 1.1em;
    margin: 0.2em 0em;
}

#sl_addresses .no_stores_found{
    background-image: none;
}

.header_html {
    margin-bottom:10px;
}
.footer_html {
    grid-row: 5;
    margin-top:15px;
}
.no_stores_found {
    margin: 5px 0 0 40px;
}
.applicable_filter {
    padding:2px 10px 0 16px;
    float:left;
}

.addresses .store_website, .store_website_container,
.addresses .directions {
    grid-column: 2;
}
.addresses .store_website li,
.addresses .directions li {
    width: auto;
}

.gm_popup .store_website_container {
    margin: 0;
}
.website_text_span {
    font-weight: bold;
}
.store_website_container a {
    margin: 0 !important;
}
.store_website_container a:hover {
    text-decoration: underline !important;
    color: #0AA5DF;
}

.directions a:hover{
    text-decoration:underline;
}

/* ============== DIRECTIONS ==============  */

#directions_text a.return_to_results  {
    margin-bottom:15px;
}
#directions_text #direction_destination {
    background: url("map-pin-black.png") no-repeat scroll 7px 13px transparent;
    border-bottom: 1px dotted #DDDDDD;
    color: #333333;
    font-size: 12px;
    padding: 10px 0 10px 40px;
}
#directions_text #direction_destination .name {
    font-weight:bold;
    font-size: 1.1em;
    margin:0.2em 0em;
}
#directions_text .directions_step	{
    border-bottom: 1px dotted #DDDDDD;
    color: #333333;
    font-size: 11px;
    padding: 10px 10px 10px 0px;
    background: none;
}
#directions_steps .directions_step_distance {
    display: inline-table;
    color:#999;
}

#directions_steps {
    overflow-y: auto;
    margin:0px auto;
}

#directions_steps .directions_instructions {
    display: inline-table;
    width: 80%;
    padding-right: 3ch;
}

li.directions_step{
    list-style-type: auto;
}

/*Responsive Maps*/

@media (max-width: 800px) {
    .search_bar .main_search_bar {
        width: 100%;
        margin-bottom: 15px;
    }
    .main_search_label {
        width: auto;
        margin-right: 10px;
        padding-top: 7px;
    }
    .main_search_bar input {
        width: 200px;
    }

    .search_bar .search_within_distance, .search_bar .search_limit {
        text-align: left;
        margin-right: 15px;
    }

    .search_within_distance {
        min-width: 25%;
    }
    #directions_steps .directions_instructions {
        width: auto;
        float: none;
    }
    .addresses li a {
        width: 120px;
        float: none;
    }
    .addresses .directions {
        float: none;
        margin-top: 0;
        width: auto;
    }
    #directions_steps .directions_step_distance {
        display: block;
        float: none;
    }
    .directions_instructions {
        display: inline;
        float: none;
        width: auto;
    }
    .store_website a {
        word-break:break-all;
    }
}

@media (max-width: 650px) {
    #store_map {
        width: 100%;
        float: none;
    }
    .addresses {
        width: 100%;
    }
    .addresses li a {
        width: auto;
        display: inline-block;
    }
    .addresses .directions {
        float: none;
    }
    .addresses .directions a {
        margin-bottom: 0;
    }
    #directions_text {
        width: 100%;
        margin-top: 20px;
    }
    #directions_steps .directions_instructions {
        display:inline-table;
        width: 80%;
        padding-right:3ch;
    }
    #directions_steps .directions_step_distance {
        display: inline-table;
    }
}

@media (max-width: 510px) {

    div#col-main.show-addresses {
        grid-template-columns: 1fr;
    }

    fieldset {
        display:grid;
        grid-template-columns: 1fr 1fr;
    }
    #address_search, .search_bar button {
        grid-column: 1 / span 2;
    }
    .main_search_label {
        margin-bottom: 5px;
    }

    fieldset#search_filters {
        grid-column: 1 / span 2;
        grid-template-columns: repeat(2, 1fr);
    }

    .search_bar .search_within_distance, .search_bar .search_limit {
        margin-bottom: 10px;
    }
    .search_filters .search_filter {
        width: 50%;
        margin: 0;
    }

    #store_map {
        height: 250px !important;
    }
    .show-addresses div#store_map{
        grid-column: 1;
    }
    .addresses {
        grid-row: 4;
    }
}

#directions_text #direction_destination .name,
.addresses li a .name {
    color: #006699;
}

.plan_restricted{
    display: none;
}

.shopify-block {
    container-type: inline-size; /* Set upper <div> as a container so we can manipulate the main #col-main container*/
}

.sl-autocomplete-dropdown {
    position: absolute;
    background: white;
    border: 1px solid #ccc;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    max-height: 240px;
    overflow-y: auto;
    z-index: 9999;
    list-style: none;
    margin: 0;
    padding: 0;
    width: 300px; /* default, will be updated to match input */
}

.sl-autocomplete-dropdown li {
    padding: 10px 12px;
    cursor: pointer;
}

.sl-autocomplete-dropdown li:hover {
    background-color: #f0f0f0;
}

@container (max-width: 510px) {
    #col-main {
        display: flex;
        flex-direction: column;
    }
    .addresses.display {
        height: 250px;
        overflow: scroll;
    }
    .addresses {
        padding-right: 0;
    }
    .search_options {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    .search_options > * {
        display: inline-block;
    }
    fieldset#search_filters.filters-loaded {
        grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    }
}