/* ========= SWSLANG ========= */
/* ======================================================= */
@import 'swslang.css';

/* --- tags --- */
body {
    margin: 0px;
    padding: 0px;
    background-color: #E9E9E9;
}
body.plain {
    padding: 0px;
    margin: 0px;
    background: #ffffff;
}
body.plain img {
    max-width: 100%;
    height: auto;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}
body, td {
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
    color: #596066;
}
hr {
    background: url(../../images/site/spacer_medium.png) no-repeat center;
    background-size: 100% 3px;
    height: 3px;
    border: none;
}
a, a:active {
    color: #7777a0;
    text-decoration: underline;
}
a:hover {
    color: #596066;
    text-decoration: none;
}
a img, img {
    border: 0px;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    text-decoration: none;
}
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover {
    text-decoration: underline;
}
strong {
    font-weight: 700;
}
form {
    margin: 0px;
}
legend {
    display: table; /* enable line-wrapping in IE8+ */
}
select, textarea, input {
    padding: 4px;
    /*border: 1px solid #D3D3D3;*/
    background-color: #F3F3F3;
    font-family: 'Open Sans', sans-serif;

    border: none;
    border-radius: 3px;

}
select {
    padding: 2px;
}
input.cb, input.rb, input.image, input[type="checkbox"], input[type="radio"] {
    padding: 0px;
    border: 0px;
    background: none;
    width: auto;
}
label, input.button, button.button, button, input.cb, input.rb, input.image {
    cursor: pointer;
}
input.button, a.button, button.button, button, input[type="button"] {
    width: auto;
    text-decoration: none;
    color: #ffffff !important;
    background: #7777a0;
    padding: 3px 20px 3px 20px;
    border: none;
    border-radius: 7px;
}
a.button {
    padding: 3px 6px 3px 6px;
    display: inline-block;
}
input.button:hover, a.button:hover, button.button:hover, button:hover, input[type="button"]:hover {
    background: #dddddd;
}
input.btnDisabled, button.btnDisabled {
    color: #aaaaaa !important;
    cursor: default;
}
input.inputLeft {
    border-radius: 7px 0px 0px 7px;
}
input.inputRight {
    border-radius: 0px 7px 7px 0px;
}

cite {
    line-height: 22px;
    text-align: center;
    display: block;
    font-style: italic;
    color: #7777a0;
    padding: 0px 20px 0px 20px;
}
iframe {
    z-index: 0;
    position: relative;
    border: 0;
}
div.pp_pic_holder {
    z-index: 9999999 !important;
}
.copyright {}
.clearFloat {
    clear: both;
}
.clearFloat hr {
    /*display: none;*/
}
.hidden {
    position: absolute;
    left: -1000em;
    top: -1000em;
    height: 1px;
    width: 1px;
}
.nospacing {
    margin: 0px;
    padding: 0px;
    list-style: none;
}
.maxwidth, maxWidth {
    width: 100%;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}
.islink {
    cursor: pointer;
}
.swtable, .swTable {
    display: table;
}
.swtable_row, .swTableRow {
    display: table-row;
}
.swtable_cell, .swTableCell {
    display: table-cell;
}
.inputWide {
    padding: 6px 15px 6px 15px;
    margin: 0px 0px 5px 0px;
    background-color: #F3F3F3;
    border-radius: 3px 3px 3px 3px;
}
.inputWide input, .inputWide select, .inputWide textarea {
    border: none !important;
    padding: 0px !important;
    display: block !important;
    margin: 0px !important;
    width: 100%;
}

/* --- common --- */
.modTitle, .modSubTitle, .modTitle a {
    color: #7777a0;
    font-family: 'Open Sans', sans-serif;
    margin: 0px;
    font-weight: 600;
}
.modTitle a, .modTitle a:active {
    text-decoration: none;
}
.modTitle a:hover {
    color: #596066;
    text-decoration: underline;
}
.modSubTitle {
    font-weight: normal;
}
.modTeaser {}
.modAlert {
    color:#c50047;
}
input.modAlert, textarea.modAlert {
    border: 1px solid #c50047 !important;
}
.statusMsg {
    text-align: center;
    padding: 40px 0px 40px 0px;
}
.swWatermark {
    color: #8F8E8E;
}
.modAutor {
    padding: 20px 0px 0px 0px;
    text-align: right;
    font-family: 'Open Sans', sans-serif;
    font-size: 13px;
    font-style: italic;
}
.modPubdate {
    padding: 0px 0px 0px 0px;
    text-align: right;
    font-family: 'Open Sans', sans-serif;
    font-size: 13px;
    font-style: italic;
}

/* --- icons --- */
.iconsDetail {
    clear: both;
}
.topIcons .iconsDetail {
    padding: 0px 0px 20px 0px;
}
.bottomIcons {
    border-top: 1px solid #ffffff;
    clear: both;
}
.bottomIcons .iconsDetail {
    padding: 45px 0px 10px 0px;
    margin: 25px 0px 0px 0px;
    background-image: url(../../images/site/border_bottom_large.png);
    background-position: top center;
    background-repeat: no-repeat;
}
.bottomIcons .iconsDetail .linkIconLeft {
    padding: 3px 0px 4px 30px;
    background-image: url(../../images/site/arrow_blue_left.png);
    background-position: left center;
    background-repeat: no-repeat;
}
.topIcons {
    display: none;
}
.bottomIcons {}
.linkIconLeft {
    /*
    padding: 3px 0px 4px 30px;
    background-image: url(../../images/site/arrow_blue_left.png);
    background-position: left center;
    background-repeat: no-repeat;
    */
}
.linkIconLeft a {
    font-family: 'Open Sans', sans-serif;
    font-style: italic;
    color: #7777a0;
    text-decoration: none;
}
.linkIconLeft a, .linkIconLeft a:active {}
.linkIconLeft a:hover {
    color: #c50047;
}
.linkIconRight {
    /*
    padding: 3px 0px 4px 20px;
    background-image: url(../../images/site/arrow_blue_right.png);
    background-position: left center;
    background-repeat: no-repeat;
    clear: both;*/
}
.linkIconRight a {
    font-family: 'Open Sans', sans-serif;
    font-style: italic;
    color: #7777a0;
    text-decoration: none;
}
.linkIconRight a, .linkIconRight a:active {}
.linkIconRight a:hover {
    color: #c50047;
}
.btnBookmark {}
.btnTellfriend {}
.btnPrint {}

.btnDateselect {
    background-image: url(../../images/btn_dateselect.gif);
    background-repeat: no-repeat;
    background-position: 0px 1px;
    background-color: transparent !important;
    width: 23px !important;
    height: 20px !important;
    margin: 0px 2px 0px 0px;
    border: 0px;
}
.btnDateselect:hover {
    background-position: 0px -21px;
}
/* --- special inputs --- */
.inputShowPasswort {
    background-image: url(../../images/input_password_bkg.gif);
}
.inputShowUser {
    background-image: url(../../images/input_user_bkg.gif);
}

.barAccessKeys {
    position: absolute;
    top: -200px;
}

/* datepicker */
input.jQueryUiDatepicker {
    background-image: url(../../images/input_datepicker_bkg.png);
    background-position: right center;
    background-repeat: no-repeat;
    padding-right: 28px;
    width: 80px !important;
}
input.hasDateTime {
    width: 117px !important;
}
input.jQueryUiDatepicker:hover {
    /*background-position: right -30px;*/
}
input.jQueryUiDatepicker.hasTime {
    background-image: url(../../images/input_timepicker_bkg.png);
}
input.hasTime {
    width: 47px !important;
}

/* ===--- addthis: start ---=== */
.addthisShare  {
    height: 36px;
}
.addthisShare .addthis_toolbox {
    padding: 20px 0px 0px 0px;
}
.addthisShare .addthis_toolbox a {
    display: block;
    width: 22px;
    height: 22px;
    padding: 0px;
    margin: 0px 0px 0px 4px;
    background-position: 0px 0px;
    background-repeat: no-repeat;
    background-image: url(../../images/site/icons_social_share.png);
    float: left;
}
.addthisShare .addthis_toolbox a span {
    display: none;
}
.addthisShare .addthis_toolbox a.addthis_button_facebook {
    background-position: -22px 0px;
}
    .addthisShare .addthis_toolbox a.addthis_button_facebook:hover {
        background-position: -22px -22px;
    }
.addthisShare .addthis_toolbox a.addthis_button_twitter {
    background-position: -44px 0px;
}
    .addthisShare .addthis_toolbox a.addthis_button_twitter:hover {
        background-position: -44px -22px;
    }
.addthisShare .addthis_toolbox a.addthis_button_google {
    background-position: 0px 0px;
}
    .addthisShare .addthis_toolbox a.addthis_button_google:hover {
        background-position: 0px -22px;
    }
.addthisShare .addthis_toolbox a.addthis_button_expanded {
    background-position: -66px 0px;
}
    .addthisShare .addthis_toolbox a.addthis_button_expanded:hover {
        background-position: -66px -22px;
    }
/* ===--- addthis: end ---=== */

.tabs {
    display: table;
    width: 100%;
    table-layout: fixed;
    /*
    margin: 0px 0px 20px 0px;
    border-bottom: 1px solid #9E9E9E;
    */
}
.tabs li {
    display: table-cell;
    border-bottom: 1px solid #9E9E9E;
    vertical-align: middle;
    text-align: center;
    padding: 10px 0px 10px 0px;
    cursor: pointer;
    border-bottom: 3px solid #ffffff;
    color: #9E9E9E;
}
.tabs li:hover {
    border-bottom: 3px solid #EAEAEA;
    color: #EAEAEA;
}
.tabs li.selected {
    border-bottom: 3px solid #9E9E9E;
    font-weight: 700;
}
.tabs li.selected:hover {
    color: #9E9E9E;
}
.tabscontent li {
    display: none;
}
.tabscontent li.selected {
    display: block;
}

.aspectratio {
    display: inline-block;
    position: relative;
    width: 100%;
}
.aspectratio:before {
    content: "";
    display: block;
    padding-top: 100%; /* 1:1 aspect ratio */
}
.aspectratio.ratio16_9:before {
    padding-top: 56.25%; /* 16:9 aspect ratio */
}
.aspectratio.ratio4_3:before {
    padding-top: 75%; /* 4:3 aspect ratio */
}
.aspectratio .element {
    position: absolute;
    top: 0px;
    bottom: 0px;
    left: 0px;
    right: 0px;
}

/* ===--- socialshareprivacy: end ---=== */
#socialshareprivacy {
    clear: both;
    margin: 40px 0px 0px 0px;
}
/* ===--- socialshareprivacy: end ---=== */

/* --- common --- */
.spacerLarge {
    background: url(../../images/site/spacer_large.png) no-repeat center;
    height: 3px;
    border: none;
}
.spacerMedium {
    background: url(../../images/site/spacer_medium.png) no-repeat center;
    height: 3px;
    border: none;
}
.spacerSmall {
    background: url(../../images/site/spacer_small.png) no-repeat center;
    height: 3px;
    border: none;
}
.borderLarge {
    background: url(../../images/site/border_bottom_large.png) no-repeat center;
    height: 20px;
    border: none;
}
.borderMedium {
    background: url(../../images/site/border_bottom_medium.png) no-repeat center;
    height: 10px;
    border: none;
}
.borderSmall {
    background: url(../../images/site/border_bottom_small.png) no-repeat center;
    height: 10px;
    border: none;
}
.headerTitle {
    color: #7777a0;
    text-transform: uppercase;
    display: inline-block;
    font-family: 'Open Sans', sans-serif;
    font-weight: 700;
    text-decoration: none;
}
.headerTitle span {
    display: block;
    float: left;
    width: 20px;
    height: 20px;
    overflow: hidden;
    background-image: url(../../images/site/icon_headertitle.png);
    background-repeat: no-repeat;
    background-position: 0px 0px;
    margin: -1px 10px 0px 5px;
}
.headerTitle span.termine {
    background-position: -20px 0px;
}
.headerSubTitle {
    color: #7777a0;
    display: inline-block;
    font-family: 'Open Sans', sans-serif;
    font-weight: 700;
    text-decoration: none;
}
.sectionTitle {
    color: #7777a0;
    text-transform: uppercase;
    display: inline-block;
    font-family: 'Open Sans', sans-serif;
    text-decoration: none;
    padding: 10px 0px 52px 0px;
    width: 100%;
}
#locationHeader.sectionTitle {
    padding: 30px 0px 30px 0px;
    text-align: center;
    width: 729px;
}
.sectionTitle.noNav {
    padding-top: 45px;
}

.person {
    padding-bottom: 10px;
    margin-bottom: 10px;
}
.person.lastrow {
    border-bottom: none;
}
.person .image {
    float: left;
}
.person .text {
    padding: 0px 0px 0px 0px;
}
.person .text.hasImage {
    padding-left: 80px;
}
.person .title {
    color: #7B848F;
    padding: 0px 0px 5px 0px;
}
.person .funktion {
    padding: 0px 0px 10px 0px;
}
.person .toggle {
    margin: 0px 0px 10px 0px;
    height: 26px;
    background-image: url(../../images/portal/icon_arrow_small_grey_down.png);
    background-repeat: no-repeat;
    background-position: center;
    cursor: pointer;
}
.person .toggle:hover {
    opacity: 0.5;
}
.person .toggle.open {
    background-image: url(../../images/portal/icon_arrow_small_grey_up.png);
}
.person .memo {
    height: 0px;
    overflow: hidden;
}

/* --- detail --- */
.detailLeft {
    width: 347px;
    float: left;
    padding: 0px 40px 0px 0px;
}
.detailRight {
    width: 347px;
    margin: 0px 22px 0px 0px;
    float: right;
}
.detail .modTitle {
    color: #7777a0;
    /*text-transform: uppercase;*/
    display: inline-block;
    font-family: 'Open Sans', sans-serif;
    text-decoration: none;
    padding: 10px 0px 50px 0px;
    width: 100%;
    font-weight: 400;
}
.detail .modTitle.noNav {
    padding-top: 45px;
    text-transform: none;
}
.detail .leadText {
    padding: 0px 0px 15px 0px;
}
.detail .leadText .modLead {
    padding: 0px 0px 40px 0px;
}

/* --- detail --- */
.disqusDetail {
    padding: 40px 0px 0px 0px;
    width: 733px;
}

/* --- list --- */
.listLeft {
    width: 347px;
    float: left;
    padding: 0px 40px 0px 0px;
}
.listLeft .leftPic {
    padding-bottom: 0px;
}
.listRight {
    width: 347px;
    float: left;
    overflow: hidden;
}
.listRight .smallContent {}
.listRight .smallContent #tabBox {}
.listRight .smallContent #tabBox .tabswrapper {
    border-bottom: 1px solid #E6E6E6;
}
.listRight .smallContent #tabBox .tabs {

}
.listRight .smallContent #tabBox .tabs li {
    display: block;
    float: left;
    position: relative;
    width: 121px;
    padding: 8px 0px 8px 0px;
    margin: 0px -8px -1px 0px;
    background-image: url(../../images/site/btn_calendartabs.png);
    background-repeat: no-repeat;
    background-position: 0px -50px;
    text-align: center;
    border-bottom: 1px solid #E6E6E6;
    z-index: 0;
}

.listRight .smallContent #tabBox .tabs li a, .listRight .smallContent #tabBox .tabs li.selected a {
    display: block;
    padding: 5px 0px 5px 0px;
    text-decoration: none;
    text-align: center;
    color: #7777a0;
    font-style: italic;
    font-size: 16px;
}
/*
.listRight .smallContent #tabBox .tabs li.suchen a {
    background-image: url(../../images/site/icon_calendar_suchen.png);
}
.listRight .smallContent #tabBox .tabs li.maps a {
    background-image: url(../../images/site/icon_calendar_maps.png);
}
.listRight .smallContent #tabBox .tabs li.eintragen a {
    background-image: url(../../images/site/icon_calendar_eintragen.png);
    border-right: none;
}
*/
.listRight .smallContent #tabBox .tabs li.selected {
    font-weight: 700;
    background-position: 0px 0px;
    border-bottom: 1px solid #ffffff;
    z-index: 1;
}
.listRight .smallContent #tabBox .tabs li.selected a {
    font-weight: 700;
    background-position: 0px 0px;

}
.listRight .smallContent #tabBox .content {
    padding: 20px 0px 20px 0px;
}
.listRight .smallContent #tabBox .content #calSearchBox input, .listRight .smallContent #tabBox .content #calSearchBox select {
    margin: 0px 0px 5px 0px;
    padding: 6px 15px 6px 15px;
}
.listRight .smallContent #tabBox .content #mapSearchBox {}
.listRight .smallContent #tabBox .content #mapSearchBox form.swslang {
    margin: 0px 0px 0px 0px;
}
.listRight .smallContent #tabBox .content #mapSearchBox form.swslang input {
    width: 32% !important;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    margin: 0px 2px 0px 2px;
    float: left;
}

.listRight .smallContent #tabBox .content .siteswift-map-provider__canvas {
    margin: 30px 0px 0px 0px;
    width: 100%;
}
.listRight .smallContent #tabBox .content #tabInsert {}
.listRight .smallContent #tabBox .content #tabInsert input, .listRight .smallContent #tabBox .content #tabInsert textarea {
    margin: 0px 0px 5px 0px;
    padding: 6px 15px 6px 15px;
}
.listRight .smallContent #tabBox .content #tabInsert .subHeader {
    text-transform: uppercase;
    font-size: 16px;
    padding: 10px 0px 10px 0px;
}
.listRight .smallContent #tabBox .content #tabInsert .subHeader span {
    text-transform: lowercase;
}
.listRight .smallContent #tabBox .content #tabInsert .spacer {
    height: 30px;
}
.vikInfo .leftPic {
    width: 84px;
    height: 84px;
    overflow: hidden;
    padding: 0px;
}
.vikInfo .leftPic img {
    width: auto;
    height: 84px;
    margin-left: -15px;
}
.vikInfo .listContent {
    padding-left: 104px !important;
}

/* --- form --- */
.swStyle-select select, .swStyle-select textarea, .swStyle-select input,
.swStyle-search select, .swStyle-search textarea, .swStyle-search input
{
    border-radius: 0px;
}
.swStyle-select .swStyle-select-select, .swStyle-select .swStyle-select-options {
    width: 320px;
}
.swStyle-select .swStyle-select-select {
    height: 30px;
    overflow: hidden;
    cursor: pointer;
    width: 347px;
}
    .swStyle-select .swStyle-select-select .selectvalue {
        background-image: url(../../images/site/swstyle_select.png);
        width: 281px; /* target width minus width of .swStyle-select .swStyle-select-button */
        height: 24px;
        float: left;
        padding: 6px 0px 0px 10px;
        overflow: hidden;
        white-space: nowrap;
    }

    .swStyle-select .swStyle-select-select .selectbutton {
        background-image: url(../../images/site/swstyle_select.png);
        background-repeat: no-repeat;
        background-position: right;
        background-color: transparent;
        width: 56px;
        height: 30px;
        float: left;
    }
    .swStyle-select .swStyle-select-options {
        background-color: #f5f5f5;
        border-top: none;
        margin: 0px;
        padding: 0px;
        list-style: none;
        position: absolute;
        max-height: 250px;
        overflow: auto;
        border-radius: 7px;
        width: 290px;
        z-index: 999;
    }
        .swStyle-select .swStyle-select-options li {
            border-bottom: 1px solid #ffffff;
            padding: 3px 3px 3px 3px;
            cursor: pointer;
            overflow: hidden;
        }
        .swStyle-select .swStyle-select-options li:hover {
            background-color: #e5e5e5;
        }

.swStyle-search {
    display: inline-block;
}
    .swStyle-search .searchinput {
        display: block;
        float: left;
        width: 214px;
        height: 30px;
        background-image: url(../../images/site/swstyle_search.png);
        background-repeat: no-repeat;
        background-position: left;
        background-color: transparent;
        border: none;
        padding: 0px 10px 0px 10px;
        margin: 0px 0px 0px 0px;
        border-radius: 0px;
    }
    .swStyle-search .searchbutton {
        float: left;
        height: 30px;
        background-image: url(../../images/site/swstyle_search.png);
        background-repeat: no-repeat;
        background-position: right;
        background-color: transparent;
        padding: 0px 45px 0px 10px;
        color: #ffffff;
        font-family: 'Open Sans', sans-serif;
        text-decoration: none;
        text-transform: uppercase;
        display: table;
        cursor: pointer;
        border-radius: 0px 0px 0px 0px;
    }
        .swStyle-search .searchbutton span {
            display: table-cell;
            vertical-align: middle;
            height: 30px;
        }

.swStyle-button.search {
    display: table;
}
.swStyle-button.search .searchbutton {
    height: 30px;
    background-image: url(../../images/site/swstyle_button_search.png);
    background-repeat: no-repeat;
    background-position: right;
    background-color: transparent;
    padding: 0px 45px 0px 10px;
    color: #ffffff;
    font-family: 'Open Sans', sans-serif;
    text-decoration: none;
    text-transform: uppercase;
    display: table-cell;
    cursor: pointer;
    border-radius: 7px;
}
.swStyle-button.search .searchbutton:hover {
    opacity: 0.5;
}

/* === swGrid System === */

/* ============================================= */

.swgridMultiCol {}

.swgridMultiCol .swgridFlex {
    display: flex;
    flex-wrap: wrap;
    margin-left: -15px;
    margin-right: -15px;
}

.swgridMultiCol .swgridFlexItem {
    margin-left: 15px;
    margin-right: 15px;
    margin-bottom: 15px;
    // border-bottom: 1px solid #EEEEEE;
    flex: 0 1 calc(100% - 30px); // 1col, col-size minus margin
}

/* ========== width: mobile ========== */

.swgridMultiCol.swgridListautoCol[max-width~='419px'] {
    & .swgridFlex {
        display: block;
    }
    & .swgridFlexItem {
        margin-bottom: 30px;
    }
    & .swgridFlexItem.swgridFlexItemEmpty {
        display: none;
    }
    & .listSpacer {
        display: none;
    }
}

/* ========== width: mobile-landscape ========== */

.swgridMultiCol.swgridListautoCol[min-width~='420px'] {
    & .swgridFlexItem {
        flex-basis: calc(50% - 30px); // 2col, col-size minus margin

        &.has1Items {
            flex-basis: calc(100% - 30px); // 3col, col-size minus margin
        }
    }
}

/* ========== width: tablet ========== */

.swgridMultiCol.swgridListautoCol[min-width~='720px'] {
    & .swgridFlexItem {
        flex-basis: calc(33.3333% - 30px); // 3col, col-size minus margin

        &.has1Items {
            flex-basis: calc(100% - 30px); // 3col, col-size minus margin
        }
        &.has2Items {
            flex-basis: calc(50% - 30px); // 3col, col-size minus margin
        }
    }
}

/* ========== width: desktop ========== */

.swgridMultiCol.swgridListautoCol[min-width~='932px'] {
    & .swgridFlexItem {
        flex-basis: calc(25% - 30px); // 4col, col-size minus margin

        &.has1Items {
            flex-basis: calc(100% - 30px); // 3col, col-size minus margin
        }
        &.has2Items {
            flex-basis: calc(50% - 30px); // 3col, col-size minus margin
        }
        &.has3Items {
            flex-basis: calc(33.3333% - 30px); // 3col, col-size minus margin
        }
    }
}

/* ========== width: large ========== */

.swgridMultiCol.swgridListautoCol[min-width~='1140px'] {
    & .swgridFlexItem {
        flex-basis: calc(20% - 30px); // 5col, col-size minus margin

        &.has1Items {
            flex-basis: calc(100% - 30px); // 3col, col-size minus margin
        }
        &.has2Items {
            flex-basis: calc(50% - 30px); // 3col, col-size minus margin
        }
        &.has3Items {
            flex-basis: calc(33.3333% - 30px); // 3col, col-size minus margin
        }
        &.has4Items {
            flex-basis: calc(25% - 30px); // 3col, col-size minus margin
        }
    }

}

/* ========== fixed width columns ========== */

.swgridMultiCol.swgridList1Col .swgridFlexItem.item {
    overflow: hidden;
    flex-basis: calc(100% - 30px); // col-size minus margin
}
.swgridMultiCol.swgridList2Col .swgridFlexItem.item {
    overflow: hidden;
    flex-basis: calc(50% - 30px); // col-size minus margin
}

.swgridMultiCol.swgridList3Col .swgridFlexItem.item {
    overflow: hidden;
    flex-basis: calc(33.3333% - 30px); // col-size minus margin
}

.swgridMultiCol.swgridList4Col .swgridFlexItem.item {
    overflow: hidden;
    flex-basis: calc(25% - 30px); // col-size minus margin
}

/* === swSimpleGrid System === */
/* ============================================= */
.swSimpleGrid {
    overflow: hidden;
}

.swSimpleGridFlex {
    display: flex;
    flex-wrap: wrap;
    margin-left: -15px;
}

.swSimpleGridFlexItem {
    border-left: 15px solid transparent;
}
.swSimpleGridFlexItem.alignCenter {
    text-align: center;
}
.swSimpleGridFlexItem.alignMiddle {
    align-self: center;
}

.swSimpleGrid2Col .swSimpleGridFlexItem {
    flex-basis: 50%;
}

.swSimpleGrid3Col .swSimpleGridFlexItem {
    flex-basis: 33.3333%;
}

.swSimpleGrid4Col .swSimpleGridFlexItem {
    flex-basis: 25%;
}

.swSimpleGrid5Col .swSimpleGridFlexItem {
    flex-basis: 20%;
}

/* === swList System === */

.swList {}

.swList .swListFlex {
    display: flex;
    height: 100%;
}

.swListImage .swListFlexItem {}

.swListImage .swListFlexItem.contentImage {
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: 170px; // maximum image width
}

.swListImage .swListFlex.swListDirectionleft .swListFlexItem.contentImage {
    padding-right: 15px;
}

.swListImage .swListFlexItem.listContent {
    width: 100%;
}

.swList .swListFlex.swListDirectionright {
    flex-direction: row-reverse;
}

.swListImage .swListFlex.swListDirectionright .swListFlexItem.contentImage {
    padding-left: 15px;
}

/* === styled radio and checkboxes === */
.swStyledRadio {
    position: relative;
}
.swStyledRadio .labelstyle {
    display: inline-block;
    width: 16px;
    height: 16px;
    position: relative;
    border-radius: 50px;
    border: 1px solid #888888;
    background-color: #ffffff;
    margin-top: 0.1em;
    position: absolute;
    z-index: 1;
}

.waisettings li {
    display: table-cell;
}

.waisettings a {
    display: inline-block;
    width: 20px;
    font-size: 13px;
    font-weight: 700;
    line-height: 20px;
    text-decoration: none;
    color: $colorBase;
    text-align: center;
}

.waisettings a:hover {
    opacity: 0.5
}

.waisettings .fontsize1 a {
    font-size: 10px;
}

.waisettings .fontsize2 a {
    font-size: 14px;
}

.waisettings .fontsize3 {
    padding-right: 10px;
}

.waisettings .fontsize3 a {
    font-size: 18px;
}

.waisettings .color a {
    border: 0px solid #000000;
    border-top-width: 1px;
    border-bottom-width: 1px;
}

.waisettings .color1 a {
    color: #676767;
    background-color: #E8E8E8;
    border-left-width: 1px;
}

.waisettings .color2 a {
    color: #FFD735;
    background-color: #000000;
}

.waisettings .color3 a {
    color: #000000;
    background-color: #FFD735;
}

.waisettings .color4 a {
    color: #ffffff;
    background-color: #000094;
}

.waisettings .color5 a {
    color: #000094;
    background-color: #ffffff;
    border-right-width: 1px;
}

.clickblocker {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 600;
}

/* === swslang: MAP === */
.swMap .map .markerclusterer {
  color: #ffffff;
  text-shadow: 1px 1px 2px #000000;
  text-align: center;
  border-radius: 100%;
  position: absolute;
  cursor: pointer;
  -webkit-transition: all 0.2s;
  -o-transition: all 0.2s;
  transition: all 0.2s;
  font-weight: 700;
}

.swMap .map .markerclusterer::after {
  content: '';
  position: absolute;
  width: calc(100% + 10px);
  height: calc(100% + 10px);
  top: -5px;
  left: -5px;
  border: 8px solid transparent;
  border-radius: 100%;
  -webkit-transform: scale(1.15);
  -ms-transform: scale(1.15);
  transform: scale(1.15);
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.swMap .map .markerclusterer:hover {
  -webkit-transform: scale(1.15);
  -ms-transform: scale(1.15);
  transform: scale(1.15);
}

.swMap .map .cluster0 {
  /* small */
  width: 30px;
  height: 30px;
  line-height: 30px;
}

.swMap .map .cluster1 {
  /* medium */
  width: 35px;
  height: 35px;
  line-height: 35px;
}

.swMap .map .cluster2 {
  /* large */
  width: 40px;
  height: 40px;
  line-height: 40px;
}

.swMap .map .cluster3 {
  /* x-large */
  width: 45px;
  height: 45px;
  line-height: 45px;
}

.swMap .map .cluster4 {
  /* xx-large */
  width: 50px;
  height: 50px;
  line-height: 50px;
}

.swMap .mapItemlist.hasMap {
  margin-top: 50px;
}

.swMap .mapItemlist .item {
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px dotted #EEEEEE;
}

.swMap .mapItemlist .titleSpacer {
  height: 10px;
}

.swMap .mapItemlist .addressSpacer {
  height: 20px;
}

.swMap .mapItemlist .fa {
  margin-right: 10px;
}

.swMap .mapItemlist .title {
  font-weight: 700;
  font-size: 1.8rem;
  line-height: 2.4rem;
}

.swMap .mapItemlist .email,
.swMap .mapItemlist .www {
  white-space: nowrap;
  -o-text-overflow: ellipsis;
  text-overflow: ellipsis;
  overflow: hidden;
}

/* ===--- map: search popup ---=== */
.swMap .mapSearch {
  background-color: #ffffff;
}

.swMap .mapSearch input {
  width: calc(100% - 105px);
    text-align: center;
    -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.swMap .mapSearch #map_searchButton {
    width: 100px;
    -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.edw-map-overlay {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
    left: 0;
}

.edw-map-overlay * {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.edw-map-overlay .gm-style button {
  border-radius: inherit;
}

.edw-map-overlay .gm-style img {
  max-width: none;
}

.edw-map-overlay .siteswift-map-provider__canvas {
  z-index: 1;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.edw-map-overlay .siteswift-map-provider__canvas .mapText {
  font-weight: 400;
}

.edw-map-overlay .siteswift-map-provider__canvas .mapText .title {
  font-size: 15px;
  color: #77779F;
}

.edw-map-overlay .siteswift-map-provider__canvas .mapText .website {
  padding: 5px 0px 0px 0px;
}

.edw-map-overlay .siteswift-map-provider__canvas .mapText .copyright {
  padding-top: 10px;
  font-size: 12px;
  line-height: 14px;
  color: #a0a0a0;
}

.edw-map-overlay #mapTools {
  z-index: 3;
  position: fixed;
  width: 300px;
  top: 0;
  left: 0;
  background-color: #ffffff;
  top: 10px;
  left: 10px;
  -webkit-box-shadow: 0px 0px 0px 5px rgba(0,0,0, 0.1);
  box-shadow: 0px 0px 0px 5px rgba(0,0,0, 0.1);
  padding: 0px 10px 0px 10px;
  border-radius: 2px;
  -webkit-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
}

.edw-map-overlay #mapTools .toolsWrapper {
  overflow: hidden;
}

.edw-map-overlay #mapTools #searchBar {
  position: relative;
}

.edw-map-overlay #mapTools #searchBar input[type=text] {
  width: calc(100% - 50px);
  padding: 0px 10px 0px 10px;
  line-height: 40px;
  background-color: transparent;
  outline: none;
}

.edw-map-overlay #mapTools #searchBar button[type=submit] {
  width: 40px;
  height: 40px;
  line-height: 40px;
  border: 0;
  position: absolute;
  top: 0;
  right: 0;
  -webkit-box-shadow: 0 0 0 transparent;
  box-shadow: 0 0 0 transparent;
  padding: 0;
  background-color: transparent;
}

.edw-map-overlay #mapTools #searchBar button[type=submit]::before {
  font-family: FontAwesome;
  content: "\f002";
  font-size: 20px;
  color: #3e3e40;
}

.edw-map-overlay #mapTools #searchBar button[type=submit]:hover {
  opacity: 0.5 !important;
}

.edw-map-overlay #mapErrorMessage {
  padding: 30px 0px 0px 0px;
}

/* --- consent management (orejime, styled like the former klaro notice) --- */
.orejime-Env {
    --orejime-font-size: 17px;
    --orejime-radius: 0;
    --orejime-color-background: #333333;
    --orejime-color-text: #fafafa;
    --orejime-color-interactive: #1a936f;
    --orejime-color-on-interactive: #ffffff;
}

/* theme font instead of the orejime default */
.orejime-Env [class^="orejime-"] {
    font-family: inherit;
}

/* stacked full-width buttons with accept first, "learn more" as text link */
.orejime-Banner-actions {
    flex-direction: column;
}

.orejime-Banner-button {
    width: 100%;
    text-align: center;
    padding-top: 10px;
    padding-bottom: 10px;
}

.orejime-Banner-declineButton {
    background: #5c5c5c;
}

.orejime-Banner-learnMoreButton {
    background: transparent;
    color: var(--orejime-color-interactive);
    padding-left: 0;
}

/* Map host rules mirrored from the core base-draft theme (utilities/shared/_map.scss): the provider status is a
   centred overlay and the host hides while the Orejime contextual consent notice follows it, so the notice takes
   the map's place in fixed-height or clipped containers. */
.siteswift-map-provider {
    position: relative;
}

.siteswift-map-provider__status {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-items: center;
    margin: 0;
    pointer-events: none;
}

.siteswift-map-provider__status:empty {
    display: none;
}

.siteswift-map-provider:has(+ div > .orejime-Env > .orejime-ContextualNotice) {
    display: none;
}

/* Fullscreen popups: Magnific Popup centres its content as an inline-block next to a 100%-high ::before pseudo
   element. As soon as the wrap shows a scrollbar (e.g. after a window resize) the container gets narrower than the
   core's 100vw content, the inline-block wraps to a second line and the whole popup lands below the viewport, leaving
   only the backdrop visible. Block layout with relative sizes keeps the content pinned to the viewport. */
.sw-popup--fullscreen .mfp-container::before {
    display: none;
}

.sw-popup--fullscreen .mfp-content,
.sw-popup--fullscreen .mfp-iframe-scaler {
    display: block;
    width: 100%;
    height: 100%;
}

/* Close button of fullscreen map-search popups: styled like the Google Maps fullscreen control (40px white
   square, 2px radius, soft shadow) and stacked below it so neither control covers the other. Display, padding,
   opacity and colour are set explicitly because theme-wide button rules (e.g. VIRC's button reset with
   !important colour) otherwise squash the facade button into an invisible 12px strip. */
.sw-popup--fullscreen .sw-popup__close {
    top: 60px;
    right: 10px;
    display: grid;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 2px;
    background-color: #fff;
    color: #666 !important;
    opacity: 1;
    box-shadow: rgba(0, 0, 0, 0.3) 0 1px 4px -1px;
}

.sw-popup--fullscreen .sw-popup__close::before,
.sw-popup--fullscreen .sw-popup__close::after {
    width: 18px;
    height: 2px;
}

.sw-popup--fullscreen .sw-popup__close:hover,
.sw-popup--fullscreen .sw-popup__close:focus-visible {
    border-color: transparent;
    background-color: #fff;
    color: #333 !important;
    opacity: 1;
    outline-color: rgba(0, 0, 0, 0.3);
}

/* hover: lighten instead of an outline, keep the outline for keyboard focus only */
.orejime-Env .orejime-Button:not([disabled]):hover {
    outline: none;
    opacity: 0.8;
}

.orejime-Env .orejime-Button:not([disabled]):focus:not(:focus-visible) {
    outline: none;
}

/* ##### --- module: swprivacystatement ##### --- */
.swprivacystatement .editPrivacy {
  margin-bottom: 50px;
  display: inline-block;
  /* background-color: #f5f5f5; */
  margin-bottom: 20px;
  text-decoration: none;
  padding: 15px 30px 15px 30px;
}
.swprivacystatement .editPrivacy:hover {
  opacity: 0.5;
  text-decoration: none;
}
.swprivacystatement .editPrivacy i {
  vertical-align: middle;
  margin-right: 10px;
}
.swprivacystatement .serviceprovider {
  padding-bottom: 50px;
}
.swprivacystatement .serviceprovider .title {
  font-weight: bold;
  margin-bottom: 5px;
  text-transform: uppercase;
  font-size: 18px;
  line-height: 22px;
}
.swprivacystatement .serviceprovider .serviceLinks {
  display: table;
  margin-top: 20px;
}
.swprivacystatement .serviceprovider .serviceLinks .linkitem {
  display: table-row;
}
.swprivacystatement .serviceprovider .serviceLinks .linkitem .label, .swprivacystatement .serviceprovider .serviceLinks .linkitem .link {
  padding-top: 2px;
  padding-bottom: 2px;
}
.swprivacystatement .serviceprovider .serviceLinks .linkitem .label {
  display: table-cell;
  padding-right: 15px;
  opacity: 0.7;
}
.swprivacystatement .serviceprovider .serviceLinks .linkitem .link {
  display: table-cell;
  word-break: break-all;
}
.swprivacystatement .serviceprovider .serviceCookies {
  margin-top: 20px;
  width: 100%;
  overflow-x: auto;
}
.swprivacystatement .serviceprovider .serviceCookies.swResponsiveTable[max-width~="520px"] td {
  padding-left: 160px;
}
.swprivacystatement .serviceprovider .serviceCookies.swResponsiveTable[max-width~="520px"] td::before {
  width: 160px;
  padding: 0;
  display: block;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 13px;
  line-height: 18px;
}
.swprivacystatement .serviceprovider .serviceCookies th {
  text-transform: uppercase;
  font-size: 13px;
  line-height: 18px;
  border-bottom: 2px solid #c3c3c3;
}
.swprivacystatement .serviceprovider .serviceCookies .cookie {
  font-weight: 700;
}

/* === responsive Table ===
   ============================================= */
.swResponsiveTable table {
  width: 100%;
}
.swResponsiveTable th {
  text-align: left;
  vertical-align: bottom;
  padding: 10px;
}
.swResponsiveTable td {
  padding: 10px;
}
.swResponsiveTable tr:nth-child(even) td {
  background-color: #f5f5f5;
}
.swResponsiveTable td::before {
  /* initially hidden - only show on small width (element-queries) */
  display: none;
}
.swResponsiveTable[max-width] {
  /* Hide table headers (but not display: none;, for accessibility) */
  /*
  Label the data -> see template
  */
  /*
    & td:nth-of-type(1):before { content: "Hausnummer"; }
    & td:nth-of-type(2):before { content: "Strasse"; }
    & td:nth-of-type(3):before { content: "Tuernummer"; }
    & td:nth-of-type(4):before { content: "Ort"; }
  */
}
.swResponsiveTable[max-width] table, .swResponsiveTable[max-width] thead, .swResponsiveTable[max-width] tbody, .swResponsiveTable[max-width] th, .swResponsiveTable[max-width] td, .swResponsiveTable[max-width] tr {
  display: block;
}
.swResponsiveTable[max-width] thead tr, .swResponsiveTable[max-width] tr.thead {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  top: -99px;
  left: -99px;
}
.swResponsiveTable[max-width] tr {
  margin-bottom: 20px;
}
.swResponsiveTable[max-width] tr:nth-child(even) td {
  background-color: #f5f5f5;
}
.swResponsiveTable[max-width] td {
  /* Behave  like a "row" */
  border: none;
  position: relative;
  padding-left: 50%;
  margin-bottom: 2px;
}
.swResponsiveTable[max-width] td::before {
  /* Now like a table header */
  position: absolute;
  /* Top/left values mimic padding */
  top: 10px;
  left: 10px;
  width: 40%;
  padding-right: 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 1.4rem;
}
.swResponsiveTable input {
  width: 100%;
}
