/* ----------------------------------------------------------------------------- *
 * Änderung des default-Box-Modells aller Elemente auf "border-box"
 * http://www.paulirish.com/2012/box-sizing-border-box-ftw/
  * ----------------------------------------------------------------------------- */
*, *: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 {
    padding: 1.8em 20px;
}

footer {
    padding: 0.6em 20px;
}

footer a {
	text-decoration:underline;
}

section {
    padding: 0 20px;
}

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

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

h2 {
    margin: 0.6em 20px;
}

p.teasertext {
    margin: 0.8em 20px;
}

ul, ol {
    padding-top:20px;
    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;
}

.klein {
	font-size: 10px;
}

/* Bilder flexible machen */

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

/* ------------------------------------ *
 * Styles der Tabletversion             *
 * 750px / 16px/em = 46.875em           *
 * ------------------------------------ */
@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) */
        overflow: hidden;
    }

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

     footer {
        padding: 3px;
    }

    section {
        padding: 0;
    }

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

    p.teasertext {
        margin: 0.8em 0;
    }

 /* ------------------------------- *
  * Navigation                      *
  * --------------------------------*/
    nav {
        /* clearing für die floatenden LIs */
        overflow: hidden;
        font-size: 1.2em; /* 18px */
    }

    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;
    }
}
/* ------------------------------------- *
 * Styles für kleine Desktops            *
 * 1024px / 16px/em = 64em               *
 * ------------------------------------- */
@media only screen and (min-width: 64em) {
    /* Navigation wird links neben dem Inhalt angeordnet */
    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.5em 25px;
        display: block;
    }

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

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

    footer {
        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;
    }
}


/* --------------------------------------- *
 * Nav Basis-Layout                        *
 * --------------------------------------- */
header {
    position: relative;
}

/* Menü-Link im Header zum Ein-und Ausblenden des Menüs */
a.toggle-nav {
    display: inline-block;
    position: absolute;
    right: 5%;
    top: 0.7em;
    text-decoration: none;
    -webkit-border-radius: 0.4em;
    -moz-border-radius: 0.4em;
    border-radius: 0.4em;
    cursor: pointer;
    padding: 0.357em;
    color: #000;
    background: #fcdb96;
    border: 1px solid #fcdb96;
}

a.toggle-nav:hover {
    border: 1px solid #D0E4F2;
    background: #D0E4F2;
    color: #1A1F2B;
}

/* ------------------------------------------- *
 * Navigation mit :target Basis-Layout         *
 * ------------------------------------------- */

#navMain {
    display: none;
}

#navMain:target {
    display: block;
}

/* -------------------------------------------- *
 * Navigation ab Tablet-Layout                  *
 * -------------------------------------------- */
@media only screen and (min-width: 46.875em) {
    #navMain {
        display: block;
    }

    /* Menü-Link verstecken in großen Viewports */
    a.toggle-nav {
        display: none;
    }
}

/* ----------------------------------------------------------------------------- * 
 *                          Styles für Formulare                                 *
 * ----------------------------------------------------------------------------- */

form {
	clear:left;
	padding-top:20px;
}

fieldset {
    border: 1px solid #C2D2E5;
}

legend {
    color: #564b47;
    font-size: 1.375em;
    padding: 0 0.5em;
}

.formset {
    margin: 0.5em 0;
}

.formset label, .formset input, .formset textarea {
    display: inline-block;
}

.formset label {
    width: 100%;
    padding-right: 2%;
}

.formset input, .formset textarea {
    width: 100%;
    border: 1px solid #fcdb96;
    padding: 0.2em;
}

.submit-btn {
    float: right;
    border: 1px solid #C2D2E5;
    padding: 0.4em;
    color: #fff;
    background: #e09b04;
    margin-right: 2.5%;
}

input:required {
    padding-right: 3%;
}


input[type='number']:out-of-range {
    border-color: red;
}

/* Positionierung der Required * in em */
em{

    left: 98%;
}

@media only screen and (min-width: 30em) {
    .formset label {
        width: 34%;
        text-align: right;
    }

    .formset input, .formset textarea {
        width: 62%;
    }
    
    em{
        left: 32.5%;
    }
}
