.part-osmap h2.component-heading {
    text-align:left;
    margin-left:auto;
    margin-right:auto;
    margin-bottom:20px;
    font-size:24px;
    line-height:1.4em;
}

.part-osmap .getgeocont {
    position:relative;
}

.part-osmap .getgeocont span.err {
    display:block;
    position:absolute;
    background-color:#595959;
    color:#ffffff;
    font-size:14px;
    line-height:20px;
    border-radius:5px;
    padding:3px 10px;
}

.part-osmap #container {
    order:1;
    margin-bottom:10px;
}

.part-osmap .searchbox {
    order:2;
}

.part-osmap .getgeocont {
    order:3;
    margin-bottom:10px;
    padding-bottom:32px;
}

.part-osmap .container {
    order:4;
}

.part-osmap .com-content {
    order:5;
    margin-bottom:32px;
}

.part-osmap .com-content a.btn {
    margin-bottom:4px;
    background:none;
    border:solid 1px var(--pri);
    color:var(--pri);
    text-align:left;
    font-weight:normal;
}

.part-osmap .pointdata {
    order:6;
}

.part-osmap .com-content > * {
    margin-bottom:10px;
}

.part-osmap .com-content > *:last-child {
    margin-bottom:0;
}

.part-osmap .searchbox .schinput {
    position:relative;
    background-color:#ffffff;
    border:solid 1px #c0bdbd;
    overflow:hidden;
    padding-left:40px;
    background-repeat:no-repeat;
    background-image:url('../gfx/search.svg');
    background-position:6px;
    width:50%;
    margin-bottom:10px;
}

.part-osmap .searchbox .schinput::after {
    content:"";
    display:block;
    float:none;
    clear:both;
}

.part-osmap .searchbox .schinput label {
    display:block;
    pointer-events:none;
    z-index:2;
    position:absolute;
    top:3px;
    left:52px;
    text-transform:uppercase;
    color:#c0bdbd;
    font-size:22px;
}

.part-osmap .searchbox .schinput input {
    background:none;
    border:none;
    position:relative;
    z-index:1;
    width:100%;
}

.part-osmap .searchbox .schinput input.focused {
    z-index:3;
}

.part-osmap .getgeocont a.getgeo {
    display:inline-block;
    padding-left:25px;
    background-size:15px;
    color:var(--pri);
    background-repeat:no-repeat;
    background-position:0 9px;
    background-image:url('../gfx/position.svg');
}

.part-osmap .getgeocont a.getgeo span {
    display:block;
    color:var(--blk);
    font-size:14px;
    line-height:22px;
}

.part-osmap {
    padding:52px 0;
    margin:0 auto;    
}

.part-osmap .component-body {
    margin-left:auto;
    margin-right:auto;
    display:flex;
    flex-direction:column;
    position:relative;
}

.part-osmap .component-body::after {
    content:"";
    display:block;
    float:none;
    clear:both;
}

.part-osmap .component-body .container {
    margin:0 0 32px 0;
    padding-left:0;
    padding-right:0;
    position:relative;
}

.part-osmap .searchbox .schinput {
    width:auto;
}

.part-osmap .component-body > div:not(#container) > div.leaflet-container {
    margin-bottom:52px;
}

.part-osmap #container .leaflet-container {
    height:446px;
}

.promotion.part-osmap #container .leaflet-container {
    height:350px;
}

.part-osmap .pointdata {
    display:grid;
    grid-gap:32px;
    grid-template-columns: repeat(5,1fr);
}

.part-osmap .maplistitem {
    border-bottom:solid 1px #cccccc;
    overflow:hidden;
    padding-bottom:16px;
}

.part-osmap .lfl_popup_marker *,
.part-osmap .maplistitem * {
    font-size:12px;
    line-height:18px;
}

.part-osmap .lfl_popup_marker_name,
.part-osmap .lfl_popup_marker_name span, 
.part-osmap .lfl_popup_marker_name a {
    font-size:18px;
    line-height:24px;
    margin-bottom:10px;
}

.part-osmap .maplistitem a {
    color:var(--pri);
}

@media only screen and (min-width:1654px) {
    .part-osmap h2.component-heading,
    .part-osmap .component-body {
        width:1274px;
    }
}

@media only screen and (min-width:1324px) and (max-width:1653px) {
    .part-osmap h2.component-heading,
    .part-osmap .component-body {
        width:1274px;
    }
}

@media only screen and (min-width:994px) {
    .part-osmap #container {
        position:absolute;
        top:0;
        right:0;
        width:calc(50% - 16px);
    }
    
    .part-osmap .searchbox,
    .part-osmap .component-body .container,
    .part-osmap .getgeocont {
        width:calc(50% - 16px);
    }
}

@media only screen and (min-width:994px) and (max-width:1323px) {
    .part-osmap h2.component-heading,
    .part-osmap .component-body {
        width:970px;
    }
    
    .part-osmap .pointdata {
        grid-template-columns: repeat(4,1fr);
    }
    
}

@media only screen and (min-width:640px) and (max-width:993px) {
    .part-osmap h2.component-heading,
    .part-osmap .component-body {
        width:624px;
    }
    
    .part-osmap .pointdata {
        grid-template-columns: repeat(2,1fr);
    }
    
}

@media only screen and (max-width:993px) {
    
    .part-osmap .searchbox .schinput label {
        font-size:16px;
    }
    
    .part-osmap .getgeocont a.getgeo {
        background-position:0 6px;
    }
    
    .part-osmap #container {
        width:auto;
    }
    
    .part-osmap #container .leaflet-container {
        height:320px;
    }
}

@media only screen and (min-width:480px) and (max-width:639px) {
    .part-osmap h2.component-heading,
    .part-osmap .component-body {
        width:460px;
    }
    
}

@media only screen and (max-width:639px) {
    .part-osmap {
        padding:32px 0;
    }
    
     .part-osmap .pointdata {
        display:block;
    }
    
    .part-osmap .maplistitem {
        margin-bottom:15px;
    }
    
}

@media only screen and (min-width:320px) and (max-width:479px) {
    .part-osmap {
        padding-left:15px;
        padding-right:15px;
    }
    
    .part-osmap .com-content a.btn {
        display:block;
    }
    
}

/* root */

.part-osmap .root {
    padding:10px;
    border:solid 1px #c0bdbd;
    height:277px;
    overflow-y:auto;
}

.part-osmap .root > ul > li > span:first-child {
    display:block;
    padding:8px 0 8px 48px;
    background-repeat:no-repeat;
    background-position:0 6px;
    cursor:pointer;
}

.part-osmap .root > ul > li.haschild > span:first-child {
    background-image:url('../../../gfx/faqitem.svg');
}

.part-osmap .root > ul > li.haschild.hasul.selected > span:first-child {
    background-image:url('../../../gfx/faqitem_open.svg');
}

.part-osmap .root > ul > li ul {
    padding-left:48px;
    margin-bottom:10px;
}

.part-osmap .root > ul > li ul li {
    padding:5px;
    font-size:14px;
    text-transform:uppercase;
    transition:0.3s;
    border-bottom:solid 1px var(--bgl);
    cursor:pointer;
    color:#707070;
}

.part-osmap .root > ul > li ul li:hover {
    background-color:var(--bgl);
}