/********** Base Parameters ***********/

.headermobile, .mp-menu, a.totop {
    display:none;
}

img {
        max-width:100%;
        height:auto;
}

#content table, #content table td {
        hyphens: auto;
        -moz-hyphens: auto;
        -ms-hyphens: auto;
        -webkit-hyphens: auto;
}


#content .powermail_form .powermail_fieldwrap.powermail_fieldwrap_type_radio label {
    float: none;
}

.powermail_submit  {
    background: #a42c2e;
    padding: 10px 10px 10px 15px;
    color: white;
    display: inline-block;
    cursor: pointer;
}

/********** Base Parameters ***********/

@media only screen and (max-width: 767px) {
    
    .mp-menu {
        display: block;
    }

    html {
          position:relative;
  top:0px;
  left:0px;
  overflow:auto;
  height:auto
    }
    
    body {
        background: white;
    }
    
    .container {
        position: relative;
        overflow: hidden;
        height: 100%;
    }

    .headermobile {
        background: white;
        padding: 10px;
        border-bottom: 1px solid #cdcdcd;
    }
    
    #logo {
        text-align: center;
    }

    .menu-trigger {
        position: absolute;
        width: 100%;
        height: 30px;
        top: 25px;
        left: 15px;
        margin-top: 0px;
        opacity: 1;
        width: 30px;
        z-index: 9999;
    }

    .menu-trigger:before {
        position: absolute;
        background: #a42c2e;
        width: 30px;
        height: 5px;
        top: 8px;
        content: "";
        display: block;
    }

    .menu-trigger:after {
      position: absolute;
        background: #a42c2e;
        width: 30px;
        height: 5px;
        bottom: 8px;
        content: "";
        display: block;
    }

    .menu-trigger:after, .menu-trigger:before, .menu-trigger {
      transition: all .3s ease-in-out;
      -webkit-transition: all .3s ease-in-out;
    }


    .blue .menu-trigger:before, .blue .menu-trigger:after {
        background: #a8916f;
    }

    .darkgreen .menu-trigger:before, .darkgreen .menu-trigger:after {
        background: #6b675d;
    }

    a.totop {
        position: fixed;
        bottom: 10px;
        right: 10px;
        font-size: 0.75rem;
        background: #a42c2e;
        color: white;
        padding: 10px;
        text-decoration: none;
        display: block;
    }
    
    .headermobile {
        display: block;
    }
    
    #siteholder, #footerNav, #middle, #header #logo_wrapper, #middle .info, #middle .rightcol .snm_textheader {
        float: none;
        width: 100%;
        background:#fff;
    }
    
     #content, #middle #content .snm_textheader {
        width:100%;
        background: white;
        margin: 0px 0px 20px 0px;
        float: none;
    }
    
     #content .snm_teaser, #content .news-list-item, #middle .rightcol, #leftcol {
        width: auto;
        float: none;
    }
    
    .home #header #logo_wrapper, .home #header #metaNav, .home #header .mainNav, #header #logo_wrapper, #header #metaNav, #header .mainNav, #leftcol, #footerNav {
        display: none;
    }
    
    .home .rightcol {
        display: none;
    }
    
    #middle {
        margin: 0px;
        padding-bottom: 30px;
    }
    
    #middle .rightcol .service {
        float: none;
        min-height: 0px;
        width: 100%;
        margin: 0px;
        position: relative;
        top: 0px;
    }
    
    #footer {
        padding: 0px;
        display: none;
    } 
    
    #siteholder {
        margin: 0px;
        box-shadow: none;
    }
    
    #content {
        box-sizing: border-box;
        padding: 20px 15px;
        float: none;
    }
    
    .snapjs-right .snap-drawer-right {
        margin-left: 20%;
    }
    
    .mp-pushed .menu-trigger:after{
       transform: rotate(-45deg);
       -webkit-transform: rotate(-45deg);
      bottom: 12px;
    }

    .mp-pushed .menu-trigger:before{
       transform: rotate(45deg);
       -webkit-transform: rotate(45deg);
      top: 12px;
    }

    .mp-pushed .menu-trigger{
        background: none;
    }


    .mp-pusher {
        position: relative;
        left: 0;
        height: 100%;
    }

    .mp-menu {
        position: absolute; /* we can't use fixed here :( */
        top: 0;
        left: 0;
        z-index: 1;
        width: 280px;
        height: 100%;
        -webkit-transform: translate3d(-100%, 0, 0);
        -moz-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }

    .mp-level {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        -webkit-transform: translate3d(-100%, 0, 0);
        -moz-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }

    /* overlays for pusher and for level that gets covered */
    .mp-pusher::after,
    .mp-level::after,
    .mp-level::before {
        position: absolute;
        top: 0;
        right: 0;
        width: 0;
        height: 0;
        content: '';
        opacity: 0;
    }

    .mp-pusher::after,
    .mp-level::after {
        background: rgba(0,0,0,0.3);
        -webkit-transition: opacity 0.3s, width 0.1s 0.3s, height 0.1s 0.3s;
        -moz-transition: opacity 0.3s, width 0.1s 0.3s, height 0.1s 0.3s;
        transition: opacity 0.3s, width 0.1s 0.3s, height 0.1s 0.3s;
    }

    .mp-level::after {
        z-index: -1;
    }

    .mp-pusher.mp-pushed::after,
    .mp-level.mp-level-overlay::after {
        width: 100%;
        height: 100%;
        opacity: 1;
        -webkit-transition: opacity 0.3s;
        -moz-transition: opacity 0.3s;
        transition: opacity 0.3s;
    }

    .mp-level.mp-level-overlay {
        cursor: pointer;
    }

    .mp-level.mp-level-overlay.mp-level::before {
        width: 100%;
        height: 100%;
        background: transparent;
        opacity: 1;
    }

    .mp-pusher,
    .mp-level {
        -webkit-transition: all 0.5s;
        -moz-transition: all 0.5s;
        transition: all 0.5s;
    }

    /* overlap */
    .mp-overlap .mp-level.mp-level-open {
        box-shadow: 1px 0 2px rgba(0,0,0,0.2);
        -webkit-transform: translate3d(-40px, 0, 0);
        -moz-transform: translate3d(-40px, 0, 0);
        transform: translate3d(-40px, 0, 0);
    }

    /* First level */
    .mp-menu > .mp-level,
    .mp-menu > .mp-level.mp-level-open,
    .mp-menu.mp-overlap > .mp-level,
    .mp-menu.mp-overlap > .mp-level.mp-level-open {
        box-shadow: none;
        -webkit-transform: translate3d(0, 0, 0);
        -moz-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }

    /* cover */
    .mp-cover .mp-level.mp-level-open {
        -webkit-transform: translate3d(0, 0, 0);
        -moz-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
    }

    .mp-cover .mp-level.mp-level-open > ul > li > .mp-level:not(.mp-level-open) {
        -webkit-transform: translate3d(-100%, 0, 0);
        -moz-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }

    /* content style */
    .mp-menu ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .mp-menu h2 {
        margin: 0;
        padding: 1em;
        color: rgba(0,0,0,0.4);
        text-shadow: 0 0 1px rgba(0,0,0,0.1);
        font-weight: 300;
        font-size: 2em;
    }

    .mp-menu.mp-overlap h2::before {
        position: absolute;
        top: 0;
        right: 0;
        margin-right: 8px;
        font-size: 75%;
        line-height: 1.8;
        opacity: 0;
        -webkit-transition: opacity 0.3s, -webkit-transform 0.1s 0.3s;
        -moz-transition: opacity 0.3s, -moz-transform 0.1s 0.3s;
        transition: opacity 0.3s, transform 0.1s 0.3s;
        -webkit-transform: translateX(-100%);
        -moz-transform: translateX(-100%);
        transform: translateX(-100%);
    }

    .mp-menu.mp-cover h2 {
        text-transform: uppercase;
        font-weight: 700;
        letter-spacing: 1px;
        font-size: 1em;
    }

    .mp-overlap .mp-level.mp-level-overlay > h2::before {
        opacity: 1;
        -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
        -moz-transition: -moz-transform 0.3s, opacity 0.3s;
        transition: transform 0.3s, opacity 0.3s;
        -webkit-transform: translateX(0);
        -moz-transform: translateX(0);
        transform: translateX(0);
    }

    .mp-menu ul li > a {
        display: block;
        padding: 0.7em 1em 0.7em 1.8em;
        outline: none;
        font-size: 1.4em;
    }

    .mp-menu ul li::before {
        position: absolute;
        left: 10px;
        z-index: -1;
        color: rgba(0,0,0,0.2);
        line-height: 3.5;
    }



    .mp-back {
        background: rgba(0,0,0,0.1);
        outline: none;
        color: #fff;
        text-transform: uppercase;
        letter-spacing: 1px;
        font-weight: 700;
        display: block;
        font-size: 0.8em;
        padding: 1em;
        position: relative;
        box-shadow: inset 0 1px rgba(0,0,0,0.1);
        -webkit-transition: background 0.3s;
        -moz-transition: background 0.3s;
        transition: background 0.3s;
    }

    .mp-back::after {
        font-family: 'linecons';
        position: absolute;
        content: "\e037";
        right: 10px;
        font-size: 1.3em;
        color: rgba(0,0,0,0.3);
    }

    .mp-menu .mp-level.mp-level-overlay > .mp-back,
    .mp-menu .mp-level.mp-level-overlay > .mp-back::after {
        background: transparent;
        box-shadow: none;
        color: transparent;
    }

    /* Fallback example for browsers that don't support 3D transforms (and no JS fallback) */
    /* We'll show the first level only */
    .no-csstransforms3d .mp-pusher,
    .no-js .mp-pusher {
        padding-left: 300px;
    }

    .no-csstransforms3d .mp-menu .mp-level,
    .no-js .mp-menu .mp-level {
        display: none;
    }

    .no-csstransforms3d .mp-menu > .mp-level,
    .no-js .mp-menu > .mp-level {
        display: block;
    }
    
    .mp-level {
        background: white;
    }
    
    .mp-level p {
        margin: 0px;
    }
    
    #mp-menu li > a {
        color:white;
        text-decoration: none;
        border-bottom: 1px solid #cdcdcd;
    }
    
    #mp-menu .grey > a {
        background: #3d3c3f;
    }
    #mp-menu .lightgrey > a {
        background:#ececed;
        color: #3d3c3f;
    }
    
    #mp-menu .green > a {
        background: #a42c2e;
    }
    
    #mp-menu li .mp-level ul li a {
        background-color: #faf4f4;
        font-family: "ruda black";
        font-size: 15px;
        color: #3d3c3f;
    }
    
    #mp-menu li .mp-level ul li a span {
        display: inline-block;
        padding-left:20px;
    }
    
    #mp-menu .green .mp-level ul li a {
        background-color: #faf4f4;
    }
    
    #mp-menu .green .mp-level ul .mainhead a {
        background: #a42c2e;
        color: white;
        font-size:18px;
    }
    
    #mp-menu .blue .mp-level ul .mainhead a {
        background: #a8916f;
        color: white;
        font-size:18px;
    }
    
    #mp-menu .darkgreen .mp-level ul .mainhead a {
        background: #6b675d;
        color: white;
        font-size:18px;
    }
    
    #mp-menu .lightgrey .mp-level ul .mainhead a {
        background: #ececed;
        color: #3d3c3f;
        font-size:18px;
    }
    
    #mp-menu .lightgrey .mp-level ul li a span {
        background: url("../img/resp/dunkelgruen/navipfeil.png") no-repeat 0% 0%;
        background-size: 15px 15px;
        color:#3d3c3f;
    }
    
    #mp-menu .lightgrey .mp-level ul li a {
        background-color: #fbfbfb;
    }
    
    
    #mp-menu .green .mp-level ul li a span {
        background: url("../img/resp/gruen/navipfeil.png") no-repeat 0% 0%;
        background-size: 15px 15px;
        
    }
    
    #mp-menu .blue > a {
        background: #a8916f;
    }
    
    #mp-menu .blue .mp-level ul li a {
        background-color: #f1eee9;;
    }
    
    #mp-menu .blue .mp-level ul li a span {
        background: url("../img/resp/blau/navipfeil.png") no-repeat 0% 0%;
        background-size: 15px 15px;

    }
    
    #mp-menu .darkgreen > a {
        background: #6b675d;
    }
    
    #mp-menu .darkgreen .mp-level ul li a {
        background-color: #e8e8e6;
    }
    
    #mp-menu .darkgreen .mp-level ul li a span {
        background: url("../img/resp/dunkelgruen/navipfeil.png") no-repeat 0% 0%;
        background-size: 15px 15px;
    }
    
    
    #middle .rightcol .snm_textheader a {
        background-position: left 0%;
        background-size: 15px 15px;
        display: inline-block;
    }
    
    #content .snm_doubleimg, #content .snm_doubleimg_item {
        float: none;
        width: 100%;
    }
    
    #content .snm_doubleimg_item:first-child {
        margin: 0px;
    }
    
    #content table, #content table td {
        border-spacing: 1px;
        hyphens: auto;
        -moz-hyphens: auto;
        -ms-hyphens: auto;
        -webkit-hyphens: auto;
    }
    
    .rightcol {
        background: white;
    }
    
    #middle .rightcol .snm_contact {
        width:100%;
    }
    
    
    #middle .rightcol .snm_textheader h2, .green #middle .snm_contact h5 {
        width: 100%;
        padding: 7px 15px 4px 15px;
    }
    #middle .rightcol .snm_textheader {
        box-sizing: border-box;
    }
    
    #middle .rightcol .snm_textheader p, #middle .snm_contact .contact_information {
        margin: auto 15px 7px;
    }
    
    .green #middle .rightcol .snm_textheader a {
        background: #a42c2e;
        padding: 10px 10px 10px 15px;
        color: white;
        display: inline-block;
    }
    
    .blue #middle .rightcol .snm_textheader a {
        background: #a42c2e;
        padding: 10px 10px 10px 15px;
        color: white;
        display: inline-block;
    }
    
    .darkgreen #middle .rightcol .snm_textheader a {
        background: #a42c2e;
        padding: 10px 10px 10px 15px;
        color: white;
        display: inline-block;
    }
    
    
    .rightcol .snm_imageright, #middle .rightcol .snm_servnavi {
        margin: 0px 15px 25px;
    }
    
    #content .snm_doubleimg {
        margin: 0px 0px 25px;
    }
    
    .snm_rtnavi {
        padding:15px;
    }
    
    #middle .rightcol .snm_rtnavi ul li {
        width: auto;
        background-position: 95% 50%;
    }
    
    
    #middle .rightcol .snm_servnavi h2 {
        width: auto;
    }
    
    #middle .rightcol .snm_servnavi ul {
        float: none;
        width: auto;
    }
    
    #middle .rightcol .snm_servnavi ul li a span {
        background-image: url("../img/resp/grau/linkpfeil.png");
        background-position: 10px 50%;
        background-size: 15px 15px;
        padding: 7px 0 0 30px;
        width: auto;
    }
    
    
    #content .powermail_form .powermail_fieldwrap input[type="text"], #content .powermail_form .powermail_fieldwrap input[type="email"] {
        float: none;
        width: auto;
    }
    
    #content .powermail_form .powermail_fieldwrap {
        float: none;
    }
    #content .powermail_form .powermail_fieldwrap {
        width: 100%;
    }
    
    #content .snm_teaser .snm_teaser_image {
        float: none;
        padding: 0px;
        width: 100%;
    }
    
    #content .snm_teaser .snm_teaser_preview {
        margin: 0px;
        padding: 5px 0px 0px;
    }
    
    .rightcol .snm_image {
        margin: 0px 15px;
    }
    
    #middle .rightcol .snm_contact h5 {
        width:100%;
        padding: 7px 0 4px 15px;
    }
    
    .languagemenu, .search_form {
        background: #ececed;
        padding: 0.5em 2.5em;
        margin: 1px 0px;    
    }
    .languagemenu {
        border-bottom: 1px solid #cdcdcd;
    }
        
    
    .languagemenu label {
        color:#3d3c3f;
    }
    
    .languagemenu select {
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        width:100%;
        background: #fff url("../img/resp/grau/select.png") no-repeat 95% 50%;
        background-size:15px 15px;
        padding: 10px;
        box-shadow: 1px 1px 5px #cdcdcd;
        border-radius:0px;
    }
    
    .search_form #searchbox {
        padding: 10px 15px;
        width: 89%;
        box-sizing: border-box;
        font-family: 'ruda regular';
        font-size: 13px;
    }
    
    .search_form  #searchsubmit {
        width: 15px;
        height: 15px;
        vertical-align: sub;
    }
    
    .search_form fieldset {
        background: white;
        box-shadow: 1px 1px 5px #cdcdcd;
    }
    
    .search_form {
        border-bottom: 1px solid #cdcdcd;
    }
    
    body.home #content {
        float: none;
        margin: 0px;
    }
    
    #content .home_columns {
        width: 100%;
        float: none;
        margin: 0 0 30px 0px;
        padding: 0 0 10px 0px;
        box-sizing: border-box;
        background: none !important;
    }
    
    #content .home_columns:after {
        content: " ";
        display: table;
        height:5px;
        width:100%;
        background: #a42c2e;
        border: 1px solid #fff;
        box-shadow: 1px 1px 4px #777;
    }
    
    #content > .home_columns.blue:after {
        background: #a8916f;
    }
    
    #content > .home_columns.darkgreen:after {
        background: #6b675d;
    }
    
    #content .snm_teaser {
        padding: 0 0 15px 0;
        margin-bottom: 30px;
    }
    
    #middle #content .home_columns .snm_textheader {
        width: 100%;
    }
    
    #middle #content .snm_contact {
        width: 100%;
        float: none;
    }  
    
    .snm_contact dd:after, .snm_contact:after {
        content: " ";
        display: table;
        clear: both;
    }
    
    #middle .rightcol .snm_contact dl, #middle .snm_contact dl {
        width: 100%;
        display: block;
    }
    
    #middle .rightcol .snm_contact dd, #middle .snm_contact dd, #middle #content .snm_contact dd, #middle #content .snm_contact dd  {
        width: 100%;
        float: none;
    }
}


@media only screen and (max-width: 321px) {
    
    #siteholder, #footerNav, #middle, #header #logo_wrapper, #middle .info, #middle .rightcol .snm_textheader {
        max-width: 320px;
    }
    
    #content, #middle #content .snm_textheader {
        max-width: 320px;
    }
    
    .home #header, #header {
        height: 188px;
        background-size: 200% 100%;
        background-position: 100% 50%;
    }
    
    #footer {
        max-width: 320px;
    }   
    
    
    #content table {
        max-width: 320px;
    }
    
    #middle .snm_rtnavi:after, .snm_contact_openingtime dl:after {
        content: " ";
        display: table;
        clear: both;
    }
    
    .floatimagewrap {
        width:100% !important;
    }
    
    
    #content #event #searchfields table tr td {
        border-bottom: 1px solid #fff;
        hyphens: none;
        -moz-hyphens: none;
        -ms-hyphens: none;
        -webkit-hyphens: none;
    }
    
    #content #event #searchfields table input, #content #event #searchfields table select {
        width: 100px !important;
    }
    
}

@media only screen and (max-device-width: 767px) and (orientation : landscape){
  .mp-menu ul li > a {
        padding: 0.2em 1em 0.2em 1.8em;
    }
}

@media only screen and (max-width: 767px) {
    
    #siteholder, #footerNav, #middle, #header #logo_wrapper, #middle .info, #middle .rightcol .snm_textheader {
        max-width: 767px;
    }
    
    #content, #middle #content .snm_textheader {
        max-width: 767px;
    }
    
    .home #header, #header {
        height: 188px;
        background-size: auto 100%;
        background-position: 100% 50%;
    }
    
    #footer {
        max-width: 767px;
    }   
    
    
    #logo {
        max-width: 50%;
        margin: 4px auto;
    }
    
    
    #content table {
        max-width: 767px;
    }
    
    .rightcol .tx_indexedsearch {
        display: none;
    }
    
    
    
    

}

@media only screen and (min-width: 768px) and (max-width: 1023px) {
    
    #siteholder {
        width: 100%;
        box-shadow: none;
        max-width: 1023px;
    }
    
    .mainNav > ul > li > a {
        background-size: 100% 100%;
    }
    
    .mainNav > ul {
        width: 763px;
        left: 5px;
    }
    
    .mainNav > ul > li {
        width: 250px;
    }
    
    #middle {
        width: 100%;
        float:none;
    }  
    
    #leftcol {
        width: 235px;
        margin: -30px 0 0 0;
    }
    
    #leftcol .subNav {
        padding: 0 0 0 25px;
    }
    
    #content {
        float: none;
        width: auto;
        margin: 36px 33px 0 270px;
    }
    
    #middle .rightcol .snm_rtnavi:after, #middle .rightcol:after, .snm_contact_openingtime dl:after {
        content: " ";
        display: table;
        clear: both;
    }
    
    #footerNav {
        width: 100%;
    }
    
    .mainNav > ul > li > a {
        width: 250px;
        height: 45px;
    }
    
    .mainNav > ul > li > ul {
        width: 215px;
    }
    
    .mainNav > ul > li > ul > li > a span {
        width: 190px;
    }
    
    #middle .rightcol .service {
        min-height: 0px;
        width: auto;
        float: none;
        top: auto;
        margin: 0px;
    }
    
    #middle .rightcol {
        float: none;
        width: auto;
        margin: 0px 0px 0 270px;
    }
    
    #middle .info {
        width: auto;
        margin: 30px 0px 0px;
    }
    
    #middle .rightcol .snm_textheader {
        float: none;
        margin: 0 0 20px 0;
        width: auto;
    }
    
    .mainNav > ul > li > ul > li > a {
        font-size: 13px;  
    }
    
    #middle #content .snm_textheader {
        float: none;
        width: auto;
        margin: 10px 0 20px 0;
    }
    
    #middle .rightcol .snm_servnavi ul li, #middle .rightcol .snm_rtnavi ul li {
        float: left;
        margin: 5px 3px 5px 0px;
    }   
    
    #leftcol .subNav > ul > li > a span {
        width: 170px;
    }
    
    #content .snm_teaser {
        float: none;
        width: auto;
    }
    
    #middle .rightcol .snm_contact, #middle .rightcol .snm_contact dl, #middle .snm_contact, #middle  .snm_contact dl {
        width: auto;
        overflow: inherit;
    }
    
    #middle .rightcol .snm_contact dd, #middle .snm_contact dd {
        width: 100%;
        float: none;
    }
    
    #middle .snm_contact h5 {
        padding: 7px 0 4px 0px;
    }
    
    #middle .snm_contact .contact_information {
        margin: 0px;
    }
    
    .info .snm_teaser {
        max-width:300px;
    }
    
    body.home #content {
        margin: 34px 18px 0 18px;
    }
    
    #content .home_columns {
        margin: 0 25px 0 0px;
        padding: 0 0 9px 0px;
    }
    
     #content .home_columns:last-child {
        margin-right: 0px;
    }

}

