@charset "UTF-8";

/* Alignment styles for images, videos and iframes in editable regions */

/* Center (default) */
[data-editable] iframe,
[data-editable] image,
[data-editable] [data-ce-tag=img],
[data-editable] img,
[data-editable] video {
    clear: both;
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
}

/* Left align */
[data-editable] .align-left {
    clear: initial;
    float: left;
    margin-right: 0.5em;
}

/* Right align */
[data-editable].align-right {
    clear: initial;
    float: right;
    margin-left: 0.5em;
}

/* Alignment styles for text in editable regions */
[data-editable] .text-center {
    text-align: center;
}

[data-editable] .text-left {
    text-align: left;
}

[data-editable] .text-right {
    text-align: right;
}

/*--*/

html {
    font-size: .95em;
}

/*--*/

.oepnv i {
    font-style: normal;
}
.oepnv i:before {
    content: '';
    height: 24px;
    width: 24px;
    display: inline-block;
    background-size: 24px 24px;
}
.oepnv td, .oepnv th {
    padding: 2px;
}
.oepnv-table-wrapper {
    max-height: 300px;
    overflow: auto;
}
.oepnv-table-wrapper table tbody {
    text-align: left;
}
.oepnv-nav {
    display: flex;
    justify-content: center;
}
.oepnv-nav a {
    display: inline-block;
    margin: 0 5px;
    color: white;
    text-decoration: underline;
}

/* origin DB */

.oepnv i[data-type='ICE']:before {
    background-image: url(/static/assets/dbahn/ice_24x24.gif);
}

.oepnv i[data-type='IC']:before {
    background-image: url(/static/assets/dbahn/ec_ic_24x24.gif);
}

.oepnv i[data-type='S']:before {
    background-image: url(/static/assets/dbahn/sbahn_24x24.gif);
}

.oepnv i[data-type='STR']:before {
    background-image: url(/static/assets/dbahn/tram_24x24.gif);
}

.oepnv i[data-type='U']:before {
    background-image: url(/static/assets/dbahn/ubahn_24x24.gif);
}

.oepnv i[data-type='RB']:before {
    background-image: url(/static/assets/dbahn/re_24x24.gif);
}

.oepnv i[data-type='BUS']:before {
    background-image: url(/static/assets/dbahn/bus_24x24.gif);
}

.oepnv i[data-type='RE']:before {
    background-image: url(/static/assets/dbahn/ir_24x24.gif);
}

.oepnv i[data-type='ERB']:before {
    background-image: url(/static/assets/dbahn/ir_24x24.gif);
}

.oepnv i[data-type='UNDEFINED']:before {
    background-image: url(/static/assets/oepnv/haltestelle.png);
}

.oepnv i[data-type='SCHIFF']:before {
    background-image: url(/static/assets/dbahn/faehre_24x24.gif);
}

.oepnv i[data-type='ALT']:before {
    background-image: url(/static/assets/dbahn/alt.png);
}

/* default */
/*/static/assets/oepnv/haltestelle.png*/

.poi-desc p {
}
.poi-desc p:last-child {
    margin-bottom: 0;
}
.poi-desc p, .poi-desc div {
    margin: 0 0 5px 0;
}
.poi-desc ul {
    margin: 0;
    padding: 0 0 0 10px;
    list-style-type: none;
}
.poi-desc li {
    margin: 0 0 5px 0;
    line-height: 1rem;
}
.poi-desc a {
    white-space: nowrap;
}

/*--*/

.my-tippy {
    text-align: left;
}
.my-tippy p {
    margin: 5px;
}
.my-tippy ul {
    margin: 5px;
    padding: 0;
    list-style-type: none;
}

/*--*/

.cc-window {
    background: #000;
    color: #fff;
}

.cc-btn {
    background: #f1d600;
}

/*--*/

.inp-wrapper {
    margin: 0 0 10px 0;
    position: relative !important;
}
.autoComplete_highlighted {
    font-weight: bold;
    color: var(--primary);
}

.autoComplete_selected {
    background: var(--light);
}

.combo-result {
    width: 100%;
    position: absolute;
    margin-top: .2rem;
    top: 100%;
    left: 0;
    z-index: 500;
}

/*https://jsfiddle.net/djibe89/6gj5k3ed/*/

.inp-wrapper.position-relative input {
    padding-right: 32px;
}

.action-btn {
    align-items: center;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(0, 0, 0, .65);
    cursor: pointer;
    display: flex;
    height: 24px;
    justify-content: center;
    position: absolute;
    right: 6px;
    width: 24px;
    z-index: 10;
}

.action-btn.material-icons {
    font-size: 16px;
    font-weight: 500;
}

.clear-btn {
    background: var(--light);
    border-radius: 50%;
}

.submit-btn {
    background: #fff;
}

.inp-group-wrapper .inp-wrapper .form-control {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.inp-group-wrapper .inp-wrapper {
    flex: 1 1 auto;
    margin-bottom: 0;
}

.inp-group-wrapper {
    margin: 0 0 10px 0;
    position: relative !important;
}

.inp-group-wrapper-2 {
    margin: 0 0 10px 0;
    position: relative !important;
}

.inp-group-wrapper-2 .inp-wrapper .form-control {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.inp-group-wrapper-2 .inp-wrapper {
    flex: 1 1 auto;
    margin-bottom: 0;
}

.inp-group-wrapper-2 {
    margin: 0 0 10px 0;
    position: relative !important;
}

.spot {
    position: absolute;
    top: 0;
    left: 0;
    display: none;
    z-index: 444;
    outline: 0;
    background-color: #f005;
}

.default-grp {
    margin: 10px 0;
}

.default-grp:first-child {
    margin-top: 0;
}

.default-grp button:not(.dropdown-toggle) {
    margin-bottom: 5px;
}

.default-grp button:last-child {
    margin-bottom: 0;
}

/*--*/

#_search .input-group-prepend span {
    padding-left: .5rem;
    padding-right: .5rem;
}

#_search i:first-child {
    font-size: 1.5rem;
}

.pin {
    position: absolute;
    height: 1.5rem;
    width: 1.5rem;

    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;

    z-index: 777;

    touch-action: none;
}

.pin i {
    font-size: 1.5rem;
    color: #495057;
}

.pin-active {
    transform-origin: bottom center;
    transform: scale(1.8);
}

/*--*/

/*https://codepen.io/aanjulena/pen/ZLZjzV*/

.btn-toggle {
    padding: 0;
    position: relative;
    border: none;
    height: 1.5rem;
    width: 3rem;
    border-radius: 1.5rem;
    color: #6b7381;
    background: #bdc1c8;
}

.btn-toggle:focus,
.btn-toggle.focus,
.btn-toggle:focus.active,
.btn-toggle.focus.active {
    outline: none;
}

.btn-toggle > .handle {
    position: absolute;
    top: 0.1875rem;
    left: 0.1875rem;
    width: 1.125rem;
    height: 1.125rem;
    border-radius: 1.125rem;
    background: #fff;
    transition: left 0.25s;
}

.btn-toggle.active {
    transition: background-color 0.25s;
}

.btn-toggle.active > .handle {
    left: 1.6875rem;
    transition: left 0.25s;
}

.btn-toggle.active {
    background-color: var(--primary);
}

/*--*/
#routeDesc {
    counter-reset: lc;
    /*flex: 0 0 18em;*/
    padding: 5px;
    overflow-y: auto;
    display: none;
}

.route-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    cursor: pointer;

    counter-increment: lc;
}

.route-row .route-cell:first-child::before {
    content: counter(lc) ". ";
}

.route-cell {
    padding: 5px;
}

.route-icon {
    display: inline-block;
    height: 45px;
    width: 45px;
}

/*--*/

#measTool {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
    display: none;
}

#measInfo {
    position: absolute;
    width: 30em;
    background-color: white;
    right: 50%;
    bottom: 15px;
    transform: translateX(50%);
    z-index: 1000;
    padding: 10px;
    border: 1px solid #e1e1e1;
    font-size: .8rem;
    display: none;
    max-width: 90%;
}

#measUrl {
    vertical-align: middle;
    font-size: .9rem;
    display: none;
}

/*--*/

#pois {
    display: flex;
    flex-direction: column;
}

.btn-poi {
    border-radius: 0;
    position: relative;
    padding-left: 40px;
    font-size: .9em;
    text-align: left;
}

.btn-poi div {
    position: absolute;
    left: 4px;
    top: 50%;
    transform: translateY(-50%);
    height: 30px;
    width: 30px;
    background-size: 24px 24px;
    background-repeat: no-repeat;
    background-position: center;
    filter: grayscale(100%);
}

.btn-poi:focus {
    box-shadow: none;
}

.btn-poi[aria-pressed=true] span {
    font-weight: bold;
    color: #343a40;
}

.btn-poi[aria-pressed=true] div {
    filter: grayscale(0);
}

.set-poi {
    background-color: #f8f9fa;
    margin: 4px 0;
    padding: 5px;
    position: relative;
}

.set-poi > a {
    display: block;
}

.set-poi.active > a {
    margin-right: 29px;
}

.set-poi > a:hover, .set-poi > a:active {
    text-decoration: none;
}

.set-menu {
    height: 24px;
    width: 24px;
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 100;
}

.set-menu > a {
    display: block;
    height: 100%;
    width: 100%;
}

.set-poi .set-menu {
    display: none;
}

.set-poi.active .set-menu {
    display: block;
}

/*--*/

.svgOvl {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%;
    z-index: 333;
}

.route-line {
    fill: none;
    stroke: #00f;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-opacity: .7;
}

.route-marker circle {
    fill: #d9058d;
    fill-opacity: .8;
}

.route-marker text {
    font-size: .9rem;
    fill: #fff;
}

.grecaptcha-badge {
    z-index: 4000;
}

html, body {
    height: 100%;
    overflow: hidden;
}

body {
    display: flex;
    flex-direction: column;
}

#main {
    display: flex;
    flex: 1;
    max-height: 100%;
    overflow: hidden;

    position: relative;
}

#left {
    flex: 0 0 18em;
    /*padding: 15px 10px 10px;*/
    padding: 10px;

    display: flex;
    flex-direction: column;

    overflow-y: auto;

    transition: all 500ms ease-in-out;
}

#left.hidden {
    margin-left: -18em;
}

.left-tab {
    height: 100%;
}

#right {
    flex: 1;
    overflow: hidden;
    position: relative;
}

#showLeft {
    display: block;
    position: absolute;
    z-index: 555;
    top: 10px;
    left: 0;
    height: 50px;
    width: 40px;
    background-color: #fff;
    background-image: url(/static/assets/panel-arrow.svg);
    background-repeat: no-repeat;
    background-position: 5px center;
    background-size: auto 40px;
    transition: all 500ms ease-in-out;
    margin-left: 0;
    outline: none;
}

#showLeft.hidden {
    margin-left: -40px;
}

@media (max-width: 768px) {
    #left {
        position: absolute;
        left: 0;
        top: 0;
        width: 18em;
        z-index: 666;
        background: #fff;
        height: 100%;
    }
    #showLeft {
        left: 0;
    }
    #showLeft.hidden {
        margin-left: -40px;
        left: 18em;
    }
}

#fast {
    text-align: center;
}

#fast > div {
    display: flex;
    justify-content: center;
}

#fast a {
    display: inline-block;
    height: 50px;
    width: 54px;
    line-height: 1;
    vertical-align: middle;
    text-align: center;
    padding: 5px 7px;

    position: relative;
}

/*#fast a.arrow-act:hover::before, #fast:not(.hovering) a.active-act::before {
    content: '';
    background: url(/static/assets/navi-arrow.svg) no-repeat;
    height: 15px;
    width: 30px;
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
}*/

#fast a.active-act {
    background-color: var(--light);
    border-radius: .5rem;
}

#fast i {
    font-size: 40px;
    color: var(--dark);
}

#fast hr {
    border: 0;
    height: 1px;
    background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
    margin: 10px;
}

#searchTab {}

#routeTab, #moreTab {
    display: none;
}

#searchAct i {
    color: #00aaa7;
}

#routeAct i {
    color: #d9058d;
}

.mar-brand {
    flex-basis: 17rem;
}

.mar-brand a {
    padding: 0;
}

#topic > .modal-dialog {
    max-width: 70%;
}


.lot {
    /*white-space: nowrap;*/
}

/*webcam*/

.webcam {
    position: relative;
}

.webcam a {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: block;
    padding: 4% 2%;
    background: #2a2a2a;
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    opacity: 0.8;
    cursor: pointer;
}

.webcam i {
    line-height: 1.3em;
    font-size: 1.3em;
    vertical-align: middle;
}

.webcam a:hover {
    opacity: 1;
    -webkit-transition: all 0.2s ease;
}

.webcam ul {
    display: flex;
    flex-direction: row;
    list-style-type: none;
    padding: 0;
    margin: 0;
    width: 275px;
    height: 154px; /*ich gehe mal davon aus, dass ratio immer gleich*/
    overflow: hidden;
}

.webcam ul li {
    order: 1
}

.webcam ul li.webcam-img-active {
    order: 0;
}

.webcam-img img {
    width: 275px;
}

.webcam-prev {
    border-radius: 0 2px 2px 0;
}

.webcam-next {
    right: 0;
    border-radius: 2px 0 0 2px;
}

#plusMinus {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 444;
}

#plusMinus a {
    display: block;
    height: 40px;
    width: 40px;
    background: #555;
    margin-bottom: 2px;
    position: relative;
}

#plusMinus a:first-child::before {
    content: '';
    display: block;
    background: #fff;
    height: 4px;
    width: 26px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#plusMinus a:first-child::after {
    content: '';
    display: block;
    background: #fff;
    height: 4px;
    width: 26px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(90deg);
}

#plusMinus a:last-child::before {
    content: '';
    display: block;
    background: #fff;
    height: 4px;
    width: 18px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#viewDir {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 444;
    display: none;
}

#viewDir a {
    display: block;
    height: 40px;
    width: 40px;
    background: #555;
    line-height: 40px;
    text-align: center;
    color: white;
    font-size: 1.6rem;
    margin-bottom: 2px;
}

#viewDir a.active {
    color: var(--primary);
}

#viewDir a:hover, #viewDir a:active {
    text-decoration: none;
}

.list {
    padding: 0 1.5rem;
    list-style: none;
    counter-reset: bold-counter;
}

.list > li {
    counter-increment: bold-counter;
    position: relative;
}

.list > li::before {
    content: counter(bold-counter) ". ";
    font-weight: 600;
    position: absolute;
    left: -1.5rem;
}

.list-alpha {
    list-style: lower-alpha;
    padding: 0 1.25rem;
    margin-bottom: .5rem;
}

.list-alpha li {
    padding: .5rem;
}

.list-alpha p:last-child {
    margin-bottom: 0;
}

.list-bold {
    font-weight: 600;
}

.list-unordered {
    margin-bottom: 1rem;
}

/*.btn-poi-disabled::after {
    content: "Hinweis";
    right: 5px;
    position: absolute;
    font-size: .7em;
    top: 50%;
    transform: translateY(-50%);
    background: #f7f7f7;
    padding: 1px 5px;
    vertical-align: middle;
    border-radius: 11px;
    height: 22px;
    line-height: 18px;
    border: 1px solid #c5c5c5;
    color: #555;
}

.btn-poi.btn-poi-disabled:hover::after {
    content: "im aktuellen Zoom nicht sichtbar";
}*/

.zoom-in-wrapper {
    position: relative;

    margin-bottom: 5px;
    order: 0;
    display: none;
}

.zoom-in-wrapper .btn-poi {
    width: 100%;
}

.zoom-in {
    right: 5px;
    position: absolute;
    font-size: .7em;
    top: 50%;
    transform: translateY(-50%);
    background: #f7f7f7;
    padding: 1px 5px;
    vertical-align: middle;
    border-radius: 11px;
    height: 22px;
    line-height: 18px;
    border: 1px solid #c5c5c5;
    color: #555;
    display: none;
}

.zoom-in:hover, .zoom-in:active {
    text-decoration: none;
}

.btn-poi-disabled + .zoom-in {
    display: block;
}

/* anpassung vag */
.tooltip-vag-line {
    font-weight: 600;
    color: #fff;
    font-style: normal;
    padding: 0 2px;
}
.popup-vag {
    text-align: left;
}
.popup-vag p {
    margin-bottom: .5rem;
}
.popup-vag p:first-child {
    position: relative;
}

.table-vag {
    width: 100%;
}
.table-vag td, .table-vag th {
    padding: 2px;
}
.table-vag thead {
    text-align: center;
}
.table-vag tbody tr:nth-child(odd) {
    background-color: #dadada;
}
.buttons-vag {
    display: flex;
    justify-content: center;
}
.buttons-vag a {
    background: #499b38;
    font-weight: 600;
    font-size: 1.15em;
    color: #000;
    margin: 4px;
    padding: 4px;
    border-radius: 4px;
    text-decoration: none;
}
.station-vag {
    display: flex;
    align-items: center;
}

.station-vag i:first-child {
    margin-left: 5px;
}

.popup-vag .station-vag i:first-child {
    margin-left: auto;
}

.station-vag i {
    display: block;
    height: 18px;
    width: 18px;
    margin-left: 2px;
}

.vag-tram {
    background: url(/static/js/vag/imgs/tram/small.png);
}
.vag-sbahn {
    background: url(/static/js/vag/imgs/sbahn/small.png);
}
.vag-bus {
    background: url(/static/js/vag/imgs/bus/small.png);
}
.vag-subway {
    background: url(/static/js/vag/imgs/subway/small.png);
}

.movies {
    display: flex;
    flex-wrap: wrap;
    max-height: 300px;
    overflow: auto;
}
.movies a {
    flex: 1 0 calc(25%);
    max-width: calc(25%);
    cursor: default;
}
.movies img {
    width: 100%;
    height: auto;
}

.museum div {
    max-height: 300px;
    overflow: auto;
}

#stops {
    position: relative;
}

.stop {
    display: flex;
    align-items: center;
    margin: 0 0 10px 0;
    width: 100%;
}

.stop > .inp-wrapper {
    margin: 0;
    width: 100%;
}

.stop > .handle {
    background: url(/static/assets/handle.svg) no-repeat center;
    display: inline-block;
    height: 30px;
    width: 18px;
    cursor: move;
    flex: 0 0 18px;
}

.add-stop {
    display: block;
    height: 24px;
    width: 24px;
    color: #555;
    background: var(--light);
    margin-left: 3px;
    border-radius: 4px;
}

.add-stop:hover, .add-stop:active {
    color: #d9058d;
}

.stop:nth-child(2) .add-stop, .stop:last-child .add-stop {
    display: none;
}

.stop-draggable {
    position: absolute;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

#miniMap {
    position: absolute;
    right: 10px;
    bottom: 35px;
    z-index: 2000;
    height: 60px;
    width: 60px;
    cursor: pointer;
}

.grecaptcha-badge {
    display: none !important;
}

.pl-grp {
    padding-left: .75rem;
}

#switch {
    background: url(/static/assets/switch.png) no-repeat -60px;
    display: block;
    height: 64px;
    width: 64px;
    position: absolute;
    right: 60px;
    top: 10px;
    z-index: 1000;
    border: 2px solid #555;
}

.social {
    display: flex;
    align-items: center;
}

.social a {
    display: block;
    height: 30px;
    width: 30px;
    padding: 0 !important;
    margin-right: .5rem;
}

.social-white a {
    background-position-y: 0;
}

.social-color a {
    background-position-y: -30px;
}

.social a:last-child {
    margin-right: 0;
}

.social-mail {
    background: url(/static/assets/social.svg) no-repeat;
}

.social-twitter {
    background: url(/static/assets/social.svg) no-repeat -30px;
}

.social-facebook {
    background: url(/static/assets/social.svg) no-repeat -60px;
}

#moreAct i {
    display: block;
    height: 40px;
    width: 40px;
    background: url(/static/assets/poi-icon.svg) center no-repeat;
}

.clip {
    width: 280px;
}

.clip-map {
    height: 200px;
    width: 280px;
}

.clip-desc {
    font-size: .75rem;
    margin: 0.375rem 0;
}

.meteo-road {
    fill: none;
    stroke: var(--primary);
    stroke-width: 3;
    stroke-opacity: .8;
}

.bootstrap-select .dropdown-toggle:focus, .bootstrap-select > select.mobile-device:focus + .dropdown-toggle {
    outline: none !important;
}

.bootstrap-select > .dropdown-menu {
    width: 100% !important;
    min-width: 100% !important;
}

.bootstrap-select > .dropdown-menu > .inner {
    overflow-x: hidden;
}

.vrn-3 {
    fill: #ff2a2a;
}