/* ############################################################
        font import
############################################################ */

@import url(https://fonts.googleapis.com/css?family=Ropa+Sans);

@font-face {
    font-family: DINWeb;
    src: url(../fonts/DIN/DINWeb.eot);
}

@font-face {
    font-family: DINWeb-bold;
    src: url(../fonts/DIN/DINWeb-Bold.eot);
}

@font-face {
    font-family: DINWeb;
    src: url(../fonts/DIN/DINWeb.eot) format("eot"), url(../fonts/DIN/DINWeb.woff) format("woff"), url(../fonts/DIN/DINComp.ttf) format("truetype");
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: DINWeb-bold;
    src: url(../fonts/DIN/DINWeb-Bold.eot) format("eot"), url(../fonts/DIN/DINWeb-Bold.woff) format("woff"), url(../fonts/DIN/DINComp-Bold.ttf) format("truetype");
    font-weight: normal;
    font-style: normal;
}

/* ############################################################
        container media queries / width
############################################################ */

/* // Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) {
    .container {
        max-width: 720px;
    }
}
/* // Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {
    .container {
        max-width: 780px;
    }
}
/* // Large devices (desktops, 992px and up) */
@media (min-width: 992px) {
    .container {
        max-width: 1000px;
    }
}
/* // Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1280px) {
    .container {
        max-width: 1280px;
    }
}


/* ############################################################
        general styles
############################################################ */

html {
    height: 100%;
    overflow:auto;
}

body {
    height: 100%;
    font-family: DINWeb;
    font-size: 16px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    /*line-height: 1.2;*/
    /*line-height: normal;*/
    letter-spacing: normal;
    /*overflow-x: hidden;*/
}

h1, h2, h3, h4, h5, h6 {
    font-family: DINWeb;
    color: #4187ba;
}

.header-container {
    background-size: cover;
    background-position: 50%;
    text-shadow: 2px 2px #000;
}

footer {
    background-color: #e20036;
    width: 100%;
    padding: 8rem 0;
    font-size: 21px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.43;
    letter-spacing: 0.6px;
    text-align: center;
    color: #f7f6f3;
    display: block;
}

p {
    line-height: 1.6rem;
}

a {
    color: #e20036;
}
a:hover {
    color: #e20036;
}

a.lk-ueberschrift-list-headline:hover {
    text-decoration: none;
}

hr {
    border-top: 1px solid #979797;
}

.bg-custom {
    color: #fff;
    background-color: #4187ba;
}

.h-256 {
    max-height: 256px;
}

.pointer {
    cursor: pointer;
}


/* ############################################################
        color styles
############################################################ */

.bg-light {
    background-color: #f7f6f3 !important;
}

nav li a,
nav li #miniwk-buchende-small {
    font-size: 21px;
    color: #333333;
}

nav li a:hover, nav li.active a {
    color: #4187ba;
}

/* ############################################################
        button styles
############################################################ */

.btn {
    border-radius: 0px;
}

.btn-big-custom {
    /* background-color: #4187ba;
    border: 2px solid #4187ba; */
    border-width: 2px;
    /* color: #fff; */
    padding: 7.5px 11px;
    cursor: pointer;
    white-space: nowrap;
    font-size: 21px;
    font-weight: bold;
    letter-spacing: 0.6px;
}

/*.btn-primary {
    color: #fff;
    background-color: #4187ba;
    border-color: #4187ba !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    color: #4187ba !important;
    background-color: #fff !important;
}*/

.btn-primary[disabled],
.btn-primary[disabled]:hover,
.btn-primary.disabled,
.btn-primary.disabled:hover,
.btn-primary:disabled,
.btn-primary:disabled:hover {
    color: #fff!important;
    background-color: #979797 !important;
    border-color: #727272 !important;
}

.btn-outline-primary {
    border: 2px solid #fff;
    color: #fff;
    padding: 7.5px 11px;
    cursor: pointer;
    white-space: nowrap;
    font-size: 21px;
    font-weight: bold;
    letter-spacing: 0.6px;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
    color: #4187ba !important;
    background-color: #fff !important;
    border-color: #fff !important;
}

.btn-outline-secondary {
    border: 2px solid #ddd;
    color: #ddd;
    padding: 7.5px 11px;
    cursor: pointer;
    white-space: nowrap;
    font-size: 21px;
    font-weight: bold;
    letter-spacing: 0.6px;
}
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:active {
    color: #fff !important;
    background-color: #ddd !important;
    border-color: #ddd !important;
}

.btn-default {
    border: 1px solid #979797;
}
.btn-default:hover,
.btn-default:focus,
.btn-default:active {
    border: 1px solid #ddd;
    color: #fff;
    background-color: #ddd;
}

.btn.btn-light.btn-block.active {
    background-color: #4187ba;
    border-color: #4187ba !important;
}

.btn.btn-primary.btn-block.active,
.btn-primary:not(:disabled):not(.disabled).active{
    background-color: #fff !important;
    border-color: #4187ba !important;
}

.btn-link,
.btn-link:hover {
    color: #e20036;
}


/* ############################################################
        form styles
############################################################ */

input.form-control,
select.form-control,
textarea.form-control {
    border-radius: 0px;
}

select.form-control {
    font-family: "arial", sans-serif;
}

.input-group-text {
    border-radius: 0px;
}


/* ############################################################
        underline animation
############################################################ */

.underline {
    display: inline;
    position: relative;
    overflow: hidden;
}
.underline:after {
    content: "";
    position: absolute;
    z-index: -1;
    left: 0;
    width: 0;
    bottom: -5px;
    background: #343a40;
    height: 2px;
    transition-property: width;
    transition-duration: 0.2s;
    transition-timing-function: ease-out;
}
.underline:hover:after,
.underline:focus:after,
.underline:active:after {
    left: 0;
    right: auto;
    width: 100%;
}


/* ############################################################
        types styles
############################################################ */

.leistungsuebersicht-card {
    min-height: 360px!important;
}

a.leistungsuebersicht-card:hover {
    text-decoration: none;
}

.category-btn {
    cursor: pointer;
}
.category-btn:hover {
    background-color: #f2f2f2!important;
}

.category-window {
    border: none;
}
@media (min-width: 768px) {
    .category-window {
        border-left: 1px solid #d6d6d6!important;
    }
}


/* ############################################################
        border styles
############################################################ */

.border {
    border-radius: 0px;
}

.border-top {
    border-top: 1px solid #d6d6d6;
}

.border-bottom {
    border-bottom: 1px solid #979797;
}

.border-left {
    border-left: 1px solid #d6d6d6;
}

.border-right {
    border-right: 1px solid #d6d6d6;
}

.border-list {
    border-left: none;
    border-right: none;
    border-bottom: 1px solid #d6d6d6;
}
@media (min-width: 576px) and (max-width: 767px) {
    .border-list {
        border-right: 1px solid #d6d6d6;
        border-bottom: 1px solid #d6d6d6;
    }
    .border-list:nth-child(2n) {
        border-right: none;
    }
}
@media (min-width: 768px) and (max-width: 991px) {
    .border-list {
        border-right: 1px solid #d6d6d6;
        border-bottom: 1px solid #d6d6d6;
    }
    .border-list:nth-child(2n) {
        border-right: none;
    }
}
@media (min-width: 992px) and (max-width: 1199px) {
    .border-list {
        border-right: 1px solid #d6d6d6;
        border-bottom: 1px solid #d6d6d6;
    }
    .border-list:nth-child(2n) {
        border-right: none;
    }
}
@media (min-width: 1200px) {
    .border-list {
        border-right: 1px solid #d6d6d6;
        border-bottom: 1px solid #d6d6d6;
    }
    .border-list:nth-child(4n) {
        border-right: none;
    }
}

.border-list-category {
    border-bottom: 1px solid #d6d6d6!important;
}
@media (min-width: 992px) {
    .border-list-category {
        border-bottom: 1px solid #d6d6d6!important;
    }
    .border-list-category:nth-child(2n+1) {
        border-right: 1px solid #d6d6d6!important;
    }
}


/* ############################################################
        card styles
############################################################ */

.card {
    border: none;
    border-radius: 0px;
}
/*.card > .card-header {
    background-color: transparent;
}*/

.card-header {
    padding: 1rem;
    /*border-bottom: 1px solid #979797;*/
}

.card-columns {
    column-count: 1;
}
@media (min-width: 576px) {
    .card-columns {
        column-count: 2;
    }
}
@media (min-width: 992px) {
    .card-columns {
        column-count: 3;
    }
}
@media (min-width: 1200px) {
    .card-columns {
        column-count: 3;
    }
}

.flex-card {
    width: 100%;
}
@media (min-width: 576px) {
    .flex-card {
        width: 48%;
    }
}
@media (min-width: 992px) {
    .flex-card {
        width: 32%;
    }
}
@media (min-width: 1200px) {
    .flex-card {
        width: 32%;
    }
}


/* ############################################################
        ngx-datepicker overwrite styles
############################################################ */

/* das !important später am besten hier weg und in der style.inc hin,
wenn es um die Farbparametrisierung durch den Shopassistenten geht */
.bs-datepicker-head {
    background-color: #2e9699!important;
}

.bs-datepicker-body table td span.selected {
    background-color: #2e9699!important;
}

.bs-datepicker-body table td.week span {
    color: #2e9699!important;
}

.bs-timepicker-field {
    width: 100%!important;
}


/* ############################################################
        util styles
############################################################ */

.font-light {
    font-family: 'OpenSansLight';
}

.font-regular {
    font-family: 'OpenSansRegular';
}

.font-bold {
    font-family: 'OpenSansBold';
}

.font-big {
    font-size: 1.8rem;
}

.serviceleistungen-nav-overlay {
    /* position: absolute; */
    margin-top: 90px;
    width: 100%;
    background-color: #fff;
    z-index: 110;
}

.backdrop {
    height: 100%;
    width: 100%;
    position: absolute;
    z-index: 100;
    background-color: rgb(0, 0, 0, 0.5);
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s ease-out;
}

.z-index-100 {
    z-index: 100;
}

.wk-counter {
    height: 24px;
    width: 24px;
    color: #4187ba;
    background-color: #fff;
    text-align: center;
    line-height: 1.6rem;
    border-radius: 50%;
    font-family: DINWeb-bold;
    font-weight: bold;
    font-size: 1rem;
    top: 15px;
    left: 32px;
}

.miniwk-buchende-container {
    line-height: 1.6rem;
    border-radius: 50%;
    font-family: DINWeb-bold;
    font-weight: bold;
    font-size: 1rem;
}

.data-counter {
    height: 24px;
    width: 24px;
    color: #4187ba;
    background-color: #fff;
    text-align: center;
    line-height: 1.6rem;
    border-radius: 50%;
    font-family: DINWeb-bold;
    font-weight: bold;
    font-size: 1rem;
    top: 12px;
    left: 94px;
}

.termine-counter {
    height: 24px;
    width: 24px;
    color: #fff;
    background-color: #dc3545;
    text-align: center;
    line-height: 1.6rem;
    border-radius: 50%;
    font-family: DINWeb-bold;
    font-weight: bold;
    font-size: 1rem;
    top: 12px;
    left: 94px;
}

.alert {
    border-radius: 0px;
}

.list-group-item,
.list-group-item:last-child,
.list-group-item:first-child {
    border-radius: 0px;
    border-top: 1px solid #979797;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
}

.totop-btn {
    z-index: 20;
    position: fixed;
    bottom: 0;
    right: 0px;
}

button.btn-fa {
    padding: 0px;
    color: #000;
}
button.btn-fa:hover {
    color: #000;
}

a.pagelink.active {
    font-family: DINWeb-bold;
}

.progress {
    height: 2rem;
    border-radius: 0rem;
}


/* ############################################################
        hamburger styles
############################################################ */

.hamburger-container {
    /*display: inline-block;*/
    cursor: pointer;
}

.bar1, .bar2, .bar3 {
    width: 40px;
    height: 6px;
    background-color: #2e9699;
    margin: 6px 0;
    transition: 0.4s;
}

.change .bar1 {
    -webkit-transform: rotate(-45deg) translate(-8.5px, 8.5px);
    transform: rotate(-45deg) translate(-8.5px, 8.5px);
}

.change .bar2 {opacity: 0;}

.change .bar3 {
    -webkit-transform: rotate(45deg) translate(-8.5px, -8.5px);
    transform: rotate(45deg) translate(-8.5px, -8.5px);
}


/* ############################################################
        nav form styles
############################################################ */

.group-navsearch {
    border-bottom: 1px solid #fff;
}

input.form-control.input-navsearch {
    /*color: #fff;*/
    background-color: transparent;
    border: none;
}
input.form-control.input-navsearch:focus {
    outline: none!important;
    box-shadow: none;
}

input.form-control.input-navsearch::placeholder {
    /*color: #fff;*/
    opacity: 0.4;
}
/* Polyfill für IE 10-11 und Edge */
input.form-control.input-navsearch:-ms-input-placeholder {
    color: #fff;
    opacity: 0.4;
}
input.form-control.input-navsearch::-ms-input-placeholder {
    color: #fff;
    opacity: 0.4;
}

.btn-navsearch {
    color: #979797 !important;
    background-color: transparent;
    border: none;
    outline: none!important;
}


.group-navsearch-dark {
    border-bottom: 1px solid #979797;
}

input.form-control.input-navsearch-dark {
    color: #000;
    background-color: transparent;
    border: none;
}
input.form-control.input-navsearch-dark:focus {
    outline: none!important;
    box-shadow: none;
}

input.form-control.input-navsearch-dark::placeholder {
    color: #000;
    opacity: 0.4;
}

.btn-navsearch-dark {
    color: #979797 !important;
    background-color: transparent;
    border: none;
    outline: none!important;
}

a.vgColLink {
    color: #fff!important;
}

#mobile-nav {
    position: absolute;
    top: 0px;
    right: 12px;
    z-index: 10000;
}

.mobile-nav-container {
    position: relative;
    width: 100%;
}

/* ############################################################
        diverses
############################################################ */

.loader {
    margin: 0 auto;
    border: 4px solid #f3f3f3; /* Light grey */
    border-top: 4px solid #34d7f6; /* Light blue */
    border-radius: 50%;
    width: 24px;
    height: 24px;
    animation: spin 2s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

#itb-miniwk-content {
    margin-top: 10px;
    padding: 15px;
    /*box-shadow: 0 6px 12px rgba(0,0,0,.7);*/
    width: 300px;
    border-radius: 0;
    white-space: normal;
}

#itb-minitermine-content {
    margin-top: 10px;
    padding: 15px;
    width: 300px;
    border-radius: 0;
    white-space: normal;
    z-index: 20000;
}

#divminiwk ul {
    color: #666;
    /*left: -215px;
    top: -5px;*/
    top: -40px;
    left: 40px;
    cursor: default;
}

#divminitermine ul {
    color: #666;
    top: -40px;
    left: 40px;
    cursor: default;
}

[data-toggle="collapse"] .fas:before {
    content: "\f078";
}

[aria-expanded="true"] .fas:before {
    content: "\f077";
}

[data-toggle="collapse"].collapsed .fas:before {
    content: "\f078";
}

.trunc-text {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/*.img-max-size, img {
    max-height: 250px;
}*/

ul.pagination li a{
    border: none;
}

ul.pagination li.pagination-page.page-item.active a.page-link{
    /*background-color: transparent;*/
    font-family: DINWeb-bold;
}

ul.pagination{
    margin-top: 0;
    margin-bottom: 0;
}

.bg-free-space {
    background-color: #aaa;
}

.bg-used-space {
    background-color: #4187ba;
}




/*======================================================================*/
.breadcrumbs {
    margin: 0;
    padding: 0;
    list-style: none;
    overflow: hidden;
    width: 100%;
}

.breadcrumbs li {
    float: left;
    margin: 0 .5em 0 1em;
}
.breadcrumbs li:first-child {
    margin: 0 .5em 0 0;
}

.breadcrumbs a {
    background: #2e9699;
    padding: 1em;
    float: left;
    text-decoration: none;
    font-family: DINWeb-bold;
    font-weight: bold;
    letter-spacing: 0.6px;
    color: #fff;
    position: relative;
}

/* first breadcrumb element */
.breadcrumbs li:first-child a {
    padding: 0.95em 1rem;
}


/* last breadcrumb element */
.breadcrumbs li:last-child a {
    cursor: default;
    color: #fff;
    background-color: #ddd;
}
.breadcrumbs li:last-child a::before {
    border-color: #ddd #ddd #ddd transparent;
}
.breadcrumbs li:last-child a:hover {
    cursor: default;
    color: #fff;
    background-color: #ddd;
}
.breadcrumbs li:last-child a:hover::before {
    cursor: default;
    border-color: #ddd #ddd #ddd transparent;
}

.breadcrumbs a:hover {
    color: #fff;
    background: #ddd;
}

.breadcrumbs a::before {
    content: "";
    position: absolute;
    top: 50%;
    margin-top: -1.6em;
    border-width: 1.6em 0 1.6em 1em;
    border-style: solid;
    border-color: #2e9699 #2e9699 #2e9699 transparent;
    left: -1em;
}

.breadcrumbs a:hover::before {
    border-color: #ddd #ddd #ddd transparent;
}

.breadcrumbs li:last-child a::after {
    display: none;
}

.breadcrumbs a::after {
    content: "";
    position: absolute;
    top: 50%;
    margin-top: -1.6em;
    border-top: 1.6em solid transparent;
    border-bottom: 1.6em solid transparent;
    border-left: 1em solid #2e9699;
    right: -1em;
}

.breadcrumbs a:hover::after {
    border-left-color: #ddd;
}

.breadcrumbs .current,
.breadcrumbs .current:hover {
    font-weight: bold;
    background: none;
}

.breadcrumbs .current::after,
.breadcrumbs .current::before {
    content: normal;
}


.teaser {
    /*margin-left: 3rem;*/
    /*margin-top: 1rem;*/
    text-shadow: none;
    padding: 0.725rem;
    font-family: DINWeb-bold;
    font-weight: bold;
    z-index: 1000;
}

.table thead th {
    border-top: none;
    border-bottom: 2px solid #979797;
}

.table td, .table th {
    padding: 1rem;
    vertical-align: middle;
    border-top: none;
    border-bottom: 1px solid #979797;
}

.bigger-lineheight {
    line-height: 1.4rem;
}

.page-link {
    color: #4187ba;
}
.page-item.active .page-link {
    background-color: #2e9699;
}


.dropdown-mini-nav {
    left: 17%;
    top: 100%;
    margin: 0;
    padding: 0;
    position: absolute;
    list-style: none;
    font-size: 21px;
    background-color: #4187ba;
    line-height: 2.4rem;
    z-index: 1000;
}

.bg-primary {
    background-color: #4187ba !important;
}

/** In Anlehnung an die Datenbankprozedur dbpax.text2html**/
.text2html{
    white-space: pre-line;
}


/* ############################################################
        step styles
############################################################ */

.step {
    width: 40px;
    height: 40px;
    border-radius: 20px;
    color: #fff;
    font-weight: bold;
    font-size: 16px;
    text-align: center;
    margin: 0 auto;
    line-height: 40px;
}

.step-active {
    background-color: #2e9699;
}

.step-next {
    background-color: #ddd;
}

.step-visited {
    background-color: #555555;
}

.step-flex {
    font-family: DINWeb-bold;
    color: #fff;
    position: relative;
    /*line-height: 1.2;*/
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.step-column:first-child {
    padding: 0 .7rem 0 0;
}

.step-column:last-child {
    padding: 0 0 0 .7rem;
}

.step-column {
    width: 100%;
    padding: 0 .7rem;
}

.step-column:first-child .step-flex::before {
    display: none;
}
.step-column:last-child .step-flex::after {
    display: none;
}

.step-flex.step-active::before {
    content: "";
    position: absolute;
    /*top: 50%;*/
    /*margin-top: -1.6em;*/
    border-width: 30px 0 30px 16px;
    border-style: solid;
    border-color: #2e9699 #2e9699 #2e9699 transparent;
    top: 0px;
    left: -1em;
}
.step-flex.step-active::after {
    content: "";
    position: absolute;
    /*top: -25%;*/
    border-top: 30px solid transparent;
    border-bottom: 30px solid transparent;
    border-left: 16px solid #2e9699;
    top: 0px;
    right: -16px;
}

.step-flex.step-next::before {
    content: "";
    position: absolute;
    border-width: 30px 0 30px 16px;
    border-style: solid;
    border-color: #ddd #ddd #ddd transparent;
    top: 0px;
    left: -1em;
}
.step-flex.step-next::after {
    content: "";
    position: absolute;
    border-top: 30px solid transparent;
    border-bottom: 30px solid transparent;
    border-left: 16px solid #ddd;
    top: 0px;
    right: -16px;
}

.step-flex.step-visited::before {
    content: "";
    position: absolute;
    border-width: 30px 0 30px 16px;
    border-style: solid;
    border-color: #555 #555 #555 transparent;
    top: 0px;
    left: -1em;
}
.step-flex.step-visited::after {
    content: "";
    position: absolute;
    border-top: 30px solid transparent;
    border-bottom: 30px solid transparent;
    border-left: 16px solid #555;
    top: 0px;
    right: -16px;
}


.loader-btn {
   border: 2px solid #f3f3f3; /* Light grey */
   border-top: 2px solid #555555; /* Orange */
   border-radius: 50%;
   width: 12px;
   height: 12px;
   animation: spin 2s linear infinite;
}

.card-danger {
    border: 1px #f5c6cb solid;
}

.card-danger, .card-danger .card-header {
    background-color: #f8d7da;
}

.card-danger .card-header {
    border-bottom-color: #f5c6cb;
}
.card-danger .card-header,
.card-danger .card-body {
    color: #721c24;
}

.text-primary {
    color: #4187ba !important;
}

.itb-lineheight-075 {
    line-height: 0.75;
}

bex-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1030;
}

/*

    Dienstleistungkatalog

*/
ul.dienstleistungskatalog-ueb-list {
    list-style-type: none;
    padding: 0;
}

.alert-itb-success {
    padding: 2px 3px;
    color: #155724;
    background-color: #d4edda;
    border-color: #c3e6cb;
}

.alert-itb-danger-inline {
    padding: 2px 3px;
    color: #721c24;
    background-color: #f8d7da;
    border-color: #f5c6cb;
    display: inline;
    white-space: nowrap;
}

@media print {
    .accordion-show-in-print {
        height: auto !important;
    }

    .itb-print-page-break-after {
        page-break-after: always;
    }

    .itb-print-page-break-before {
        page-break-before: always;
    }
}

sk-lew-text p {
    margin-bottom: 0;
}