*, *:before, *:after {
    -webkit-box-sizing: border-box; /* Safari/Chrome, andere WebKit-Browser */
    -moz-box-sizing: border-box; /* Firefox, andere Gecko-Browser */
    box-sizing: border-box; /* Opera/IE 8+ */
}


.page-wrapper {
	margin: 0;
}

header {
	height: 200px;
	padding-top: 30px;
	padding-right: 20px;
	padding-bottom: 0em;
	padding-left: 20px;
	background-image: url(../img/icons_linie.png);
	background-repeat: no-repeat;
	background-position: right;
}

aside, footer, top {
    padding: 0.6em 20px;
}

section {
    padding: 0 20px;
}

.mainContent {
    width: 100%;
    border-top: 1px solid transparent;
}

aside {
    width: 100%;
    margin-left: 0;
}

/* --------------- ** Textauszeichnungen ** ------------------ */
h1 {
	margin: 0;
}

h2, h3 {
    margin: 0.6em 20px;
}

p {
    margin: 0.8em 20px;
}

ul, ol {
    padding: 0;
    margin: 0 0 0.625em 20px;
}

/* ---------- ** Navigation ** ------------------------- */
nav ul {
    margin: 0;
}

nav ul > li {
    margin-left: 0;
    border-bottom: 1px solid rgba(250, 250, 250, 0.6);
}

nav ul > li > a, nav ul > li > strong {
    padding: 0.6em 20px;
    display: block;
}

nav ul a:link {
    text-decoration: none;
}

/* ---- ** Tabletversion 750px bis 1.248px  ** --------------------- */
@media only screen and (min-width: 46.875em) {
    
/* Schriftverkleinerung wird für große Screens wieder aufgehoben */
@media only screen and (max-width: 78em) {
        body {
            font-size: 0.938em; /* 15px */

        }
    }

    .main {
        /* clearing für die floatenden gleichlangen Spalten (.mainContent und .aside) */
        overflow: hidden;
    }

    .mainContent {
        width: 100%;  /* war 70% */
        float: left;
        padding: 0.8em 20px;
        border-top: none;
    }

    aside {
        width: 0%; /* war 30% */
        margin-left: 100%; /* war 70% */
        /* Trick für gleichlange Spalten  - dazu gehört ein overflow: hidden für den umgeb. Container */
        margin-bottom: -99999px !important;
        padding-bottom: 99999px !important;
    }

    aside, footer, top {
        padding: 0.8em 20px;
    }

    section {
        padding: 0;
    }

/* ----------- ** Textauszeichnungen  **---------------------------- */
    h2 {
        font-size: 2.1875em; /* 35px */
        line-height: 1.2em;
        margin: 0.3em 0 0;
    }

    p, h3 {
        margin: 0.8em 0;
    }

/* ---------- ** Navigation ** -------------------------- */
    nav {
	/* clearing für die floatenden LIs */
	overflow: hidden;
	font-size: 0.9em;
	background-color: #bd1220;
    }

    nav ul {
        margin: 0 20px;
    }

    nav ul li {
        float: left;
        border: none;
        width: auto;
    }

    nav ul > li > a {
        padding: 0.7em 10px 0.7em 10px;
        display: inline-block;
    }
}
/* ------------- ** Top-Navigation waagerecht ** ------------------ */

top {
	height: auto;
	line-height: 100%;
	text-align: left;
	font-size: 80%;
	color: #333333;
	margin: 0px;
	font-weight: bold;
	padding-top: 8px;
	padding-right: 0;
	padding-bottom: 8px;
	padding-left: 0;
} 

top a:hover {
	font-weight: bold;
	color: #333333;
	text-decoration: none;
}

top a {
	color: #333333;
	text-decoration: none;
}
top ul {
	text-decoration: none;
	list-style-type: none;
	list-style-position: inside;
	display: inline;
	line-height: 18px;
}

top li {
	list-style-position: inside;
	list-style-type: none;
	display: inline;
	padding: 5px;
	margin: 0px;
}

/* ------ ** Styles für kleine Desktops 1024px / 16px/em = 64em ** ----- */
@media only screen and (min-width: 64em) {

    nav {
	width: 20%;
	float: left;
	box-shadow: none;
    }

    nav ul {
        margin: 1.6em 0 0;
    }

    nav ul > li {
        width: 100%;
        float: none;
    }

    nav ul > li > a {
        padding: 0.8em 25px;
        display: block;
    }

    /* .main macht Platz für .nav */
    .main {
        width: 80%;
        float: left;
    }

    /* Größenanpassungen */
    .mainContent {
        width: 95%; /* war 65% */
        padding: 0.8em 20px;
    }

    aside {
        width: 0%;  /* war 35% */
        margin-left: 100%;  /* war 65% */
    }

    footer, top {
        clear: left;
    }
}
/* ----- ** Styles für große Desktops 1248px / 16px/em = 78em ** ------- */
@media only screen and (min-width: 78em) {
 
 
    .page-wrapper {
        margin: 0 auto;
        max-width: 78em;
    }
}


/* -------------- ** Basis-Layout ** ------------------------ */

/*
 #nav ul {
     margin: 0;
     padding: 0;
     width: 100%;
     display: block;
     list-style: none;
 }
 #nav li {
     width: 100%;
     display: block;
 }
 */
.js #nav {
	clip: rect(0 0 0 0);
	max-height: 0;
	position: absolute;
	display: block;
	overflow: hidden;
	zoom: 1;
	background-color: #FFF;
}

#nav.opened {
	max-height: 9999px;

}



/* -------- ** Desktop-Layout: 750px ** ----------------------------- */
@media only screen and (min-width: 46.875em) {

    .js #nav {
        position: relative;
    }

    .js #nav.closed {
        max-height: none;
    }

    #nav-toggle {
        display: none;
		color: #333333;
		background-color: #FFFFFF;
    }
	
}


/* -------- ** Mobile-Layout: max 749px ** ------------------ */
@media only screen and (max-width: 46.8125em) {
body {
	margin-top: 0px;
}

header {
	height: auto;
	padding-top: 10px;
	padding-right: 20px;
	padding-bottom: 10px;
	padding-left: 20px;
	background-image: none;
	background-color: #CCCCCC; /* grau */
}

.js #nav {
        position: relative;
}

.js #nav.closed {
        max-height: none;
}

#nav-toggle {
	display: inline-block;
	position: absolute;
	right: 5%;
	top: 4em;
	-webkit-border-radius: 0.4em;
	-moz-border-radius: 0.4em;
	border-radius: 0.4em;
	cursor: pointer;
	padding: 0.357em;
	color: #ffffff; /* weiss */
	border: 2px solid #bd1220; /*rot*/
	background-color: #bd1220; /*rot*/
}

#nav-toggle:hover {
	border: 1px solid #FFFFFF;
	color: #333333;
	background-color: #FFFFFF;
}

img {
	max-width: 100%;
	height: auto;
	margin-right: 300px;
}

h1  {
	font-size: 2em; /* 32px; */
	line-height: 1.25em; /* 20px */
}

nav ul {
	margin: 0;
	box-shadow: 0px 0px 2px rgb(51,51,51);
}

nav ul > li {
    margin-left: 0;
    border-bottom: 1px solid rgba(250, 250, 250, 0.6);
}

nav ul > li > a, nav ul > li > strong {
    padding: 0.6em 20px;
    display: block;
}

nav ul a:link {
    text-decoration: none;
}

#nav.opened {
	max-height: 9999px;
	background-color: #CCCCCC;

}

table {
    border-collapse: collapse;
    border-spacing: 0;
	margin: 0.8em 20px;
}
}


/* ------- ** Anpassungsfähige Bilder 750px / 16px/em = 46.875em ** ------------ */
/* Bilder flexibel machen:
 * hier mit max-width: 100%; damit sie nicht größer werden als das Original
 * width: 100%; würde die Bilder immer einpassen, aber u.U. auch aufblähen
 **/
img {
    max-width: 100%;
    height: auto;
}

/* figure.slides-Container um die Bilder */
.slides {
    margin: 20px 0;
    line-height: 0;
}

figcaption {
    background-color: #EDEDED;
    font-size: 0.875em;
    line-height: 1.4em;
    padding: 0.5em;
    text-align: center;
}


/* Andere Abstände und Schatten auf größeren Screens */
@media only screen and (min-width: 46.875em) {
    .slides {
        margin: 0 0 2em 0;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
    }
}


/* NEU: */
/* --------- ** Styles für Teaserboxen ** ------------------ */

/* clearing für floatende Teaserboxen */
section {
    overflow: auto;
}

.box {
    margin: 0;
    border-bottom: 1px solid rgba(250, 250, 250, 0); /* verhindert das margin-Collapse nach unten */
    background-color: #DAE4F0;
}

.teaser {
    margin: 0 0 1em 0;
}

.box-inner {
    padding: 1em;
}

.box.teaser {
    overflow: auto;
}

.teaser h3 {
    margin: 0.2em 0 0.4em;
}

.teaser p {
    margin: 0;
    font-size: 1em; /* 16 px */
}

/* -------- ** Teaser geht noch über die gesamte Breite, aber Text rutscht im Teaser rechts neben das Bild ** 400px / 16px/em = 25em ** --------- */
@media only screen and (min-width: 25em) {

    .box.teaser img {
        width: 45%;
        float: left;
        margin: 1em;
    }
    .box-inner {
        padding: 1em;
        line-height: 1.375em;
    }
}
/* ------- ** Teaserboxen mit Bild und Text ** Borders und Box-Shadows für größere Auflösungen ** 750px / 16px/em = 46.875em ** -------------- */
@media only screen and (min-width: 46.875em) {

    .box {
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
        margin-bottom: 2em;
        border: 1px solid rgba(133, 165, 204, 0.2);
    }

    /* Wenn der Screen breiter wird werden 2 Teaserboxen nebeneinander dargestellt. */
    .box.teaser {
        float: left;
        margin-right: 4%;
        width: 48%;
    }

    .box.teaser img {
        width: 100%;
        float: none;
        margin: 0;
    }

    /* damit 2 Teaser-boxen den gesamten Inhaltsbereich ausfüllen,
     * wird bei jedem zweiten das Margin auf 0 gesetzt. */
    .box.teaser:nth-of-type(2n+2) {
        margin-right: 0;
    }
}

.fltrt {
	float: right;
	margin-left: 8px;
	margin-right: 8px;
	margin-top: 8px;
	margin-bottom: 8px;
    }
.fltlft { 
    float: left;
    margin-right: 8px;
	margin-top: 8px;
	margin-bottom: 8px;
    }
