
.store-locator-page{
    background:#fafaf4;
}

.store-locator-hero{
    background:#ede7dd;
    padding:3rem 0;
}

.store-locator-hero .eyebrow{
    display:block;
    margin-bottom:1rem;
    color:#014448;
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.18em;
    line-height:1;
    text-transform:uppercase;
}

.store-locator-hero h1{
    font-size: 2.8rem;
    color: var(--duvet-petrol);
    font-weight: 400;
    margin:0;
}

.store-locator-hero p{
    margin:1.25rem 0 0;
    color:#68716d;
    font-size:1rem;
    line-height:1.75;
}

.store-locator-section{
    padding:3rem 0;
}

.store-locator-layout{
    display:grid;
    grid-template-columns:400px 1fr;
    min-height:650px;
    background:#fff;
    border:1px solid #e1ddd3;
}

.store-list-panel{
    display:flex;
    flex-direction:column;
    min-width:0;
    border-right:1px solid #e1ddd3;
}

.store-list-header{
    padding:1.75rem;
    border-bottom:1px solid #e1ddd3;
}

.store-list-header .kicker{
    display:block;
    margin-bottom:.5rem;
    color:#014448;
    font-size:.65rem;
    font-weight:700;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.store-list-header h2{
    margin:0;
    color:#014448;
    font-family:Lora,serif;
    font-size:1.75rem;
    font-weight:400;
}

.store-list-header p{
    margin:.5rem 0 0;
    color:#68716d;
    font-size:.8rem;
    line-height:1.5;
}

.store-search{
    padding:1rem 1.25rem;
    border-bottom:1px solid #e1ddd3;
}

.store-search input{
    width:100%;
    height:44px;
    padding:.65rem .85rem;
    border:1px solid #e1ddd3;
    border-radius:3px;
    background:#fcfcf8;
    color:#28302e;
    font-size:.85rem;
    outline:none;
    box-sizing:border-box;
}

.store-search input:focus{
    border-color:#55bdb7;
    box-shadow:0 0 0 3px rgba(113,219,212,.18);
}

#storelistdiv{
    flex:1;
    max-height:545px;
    overflow-y:auto;
}

.store-item{
    padding:1.4rem 1.5rem;
    border-bottom:1px solid #e1ddd3;
    cursor:pointer;
    transition:background-color .2s ease;
}

.store-item:hover,
.store-item.active{
    background:rgba(113,219,212,.08);
}

.store-item h3{
    margin:0;
    color:#014448;
    font-family:Lora,serif;
    font-size:1.25rem;
    font-weight:400;
    line-height:1.2;
}

.store-item .store-address{
    margin:.55rem 0 0;
    color:#68716d;
    font-size:.78rem;
    line-height:1.6;
}

.store-item .store-phone{
    margin:.45rem 0 0;
    font-size:.78rem;
}

.store-item .store-phone a{
    color:#014448;
    text-decoration:none;
}

.store-item .store-hours{
    margin:.45rem 0 0;
    color:#68716d;
    font-size:.75rem;
}

.store-item-actions{
    display:flex !important;
    align-items:center !important;
    flex-wrap:wrap !important;
    gap:10px !important;
    margin-top:16px !important;
    padding:0 !important;
}

.store-item-actions a{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:auto !important;
    min-width:105px !important;
    min-height:38px !important;
    height:38px !important;
    margin:0 !important;
    padding:0 15px !important;
    border-radius:2px !important;
    font-family:inherit !important;
    font-size:12px !important;
    font-weight:600 !important;
    line-height:38px !important;
    text-align:center !important;
    text-decoration:none !important;
    white-space:nowrap !important;
    box-sizing:border-box !important;
    transition:all .2s ease !important;
}

.store-item-actions a.primary{
    background:#014448 !important;
    border:1px solid #014448 !important;
    color:#fff !important;
}

.store-item-actions a.primary:hover{
    background:#02383b !important;
    border-color:#02383b !important;
    color:#fff !important;
}

.store-item-actions a.secondary{
    background:#fff !important;
    border:1px solid #014448 !important;
    color:#014448 !important;
}

.store-item-actions a.secondary:hover{
    background:#014448 !important;
    border-color:#014448 !important;
    color:#fff !important;
}

#storemapdiv{
    width:100%;
    min-height:650px;
    background:#e5e5e5;
}

.mapboxgl-map{
    width:100%;
    height:100%;
    font-family:inherit;
}

.mapboxgl-marker{
    z-index:2;
}

.duvet-store-marker{
    width:30px;
    height:31px;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transform-origin:center bottom;
    transition:transform .15s ease;
}

.duvet-store-marker img{
    width:30px;
    height:31px;
    display:block;
    object-fit:contain;
    pointer-events:none;
    user-select:none;
}

.duvet-store-marker:hover{
    transform:scale(1.12);
}

.mapboxgl-popup{
    z-index:10;
}

.mapboxgl-popup-content{
    padding:0!important;
    border-radius:3px!important;
    overflow:hidden;
}

.store-popup{
    min-width:250px;
}

.store-popup-content{
    padding:1.25rem;
}

.store-popup-content .eyebrow{
    display:block;
    margin-bottom:.45rem;
    color:#014448;
    font-size:.6rem;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.store-popup-content h3{
    margin:0;
    color:#014448;
    font-family:Lora,serif;
    font-size:1.2rem;
    font-weight:400;
}

.store-popup-content p{
    margin:.5rem 0 0;
    color:#68716d;
    font-size:.75rem;
    line-height:1.5;
}

.store-popup-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    border-top:1px solid #e1ddd3;
}

.store-popup-actions a{
    display:block;
    padding:.7rem .5rem;
    color:#014448;
    font-size:.65rem;
    font-weight:700;
    text-align:center;
    text-decoration:none;
}

.store-popup-actions a:first-child{
    background:#014448;
    color:#fff;
}

.store-popup-actions a:hover{
    opacity:.85;
}

.store-locator-footer{
    padding:4rem 0 5rem;
    border-top:1px solid #e1ddd3;
}

.store-locator-footer h2{
    margin:0;
    color:#014448;
    font-family:Lora,serif;
    font-size:2rem;
    font-weight:400;
}

.store-locator-footer p{
    max-width:700px;
    margin:1rem 0 0;
    color:#68716d;
    font-size:.9rem;
    line-height:1.75;
}

.mapboxgl-ctrl-geocoder{
    width:300px!important;
    max-width:calc(100vw - 40px);
}

.mapboxgl-ctrl-geocoder input{
    font-family:inherit!important;
}

.mapboxgl-ctrl-group{
    border-radius:2px!important;
}

@media(max-width:991.98px){

    .store-locator-hero{
        padding:4rem 0;
    }

    .store-locator-section{
        padding:3.5rem 0;
    }

    .store-locator-layout{
        grid-template-columns:1fr;
    }

    .store-list-panel{
        border-right:0;
        border-bottom:1px solid #e1ddd3;
    }

    #storelistdiv{
        max-height:430px;
    }

    #storemapdiv{
        min-height:500px;
    }
}

@media(max-width:575.98px){

    .store-locator-hero{
        padding:3rem 0;
    }

    .store-locator-section{
        padding:2.5rem 0;
    }

    .store-list-header{
        padding:1.4rem 1rem;
    }

    .store-item{
        padding:1.25rem 1rem;
    }

    .store-item-actions{
        gap:8px !important;
    }

    .store-item-actions a{
        min-width:100px !important;
        padding:0 12px !important;
    }

    #storemapdiv{
        min-height:420px;
    }

    .mapboxgl-ctrl-geocoder{
        width:240px!important;
    }
}