*,
*:before,
*:after {
    -moz-box-sizing:border-box;
    -webkit-box-sizing:border-box;
    box-sizing:border-box;
}
body {
    margin: 0;
    padding: 0;
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 20px;
    font-weight: 400;
}
h1, h2, h3 {
    font-family: 'Source Sans Pro', sans-serif;
    font-weight: 300;
}
h1 {
    font-size: 36px;
    line-height: 42px;
}
h2 {
    font-size: 26px;
    line-height: 31px;
}
h1 + h2 {
    margin-top: 0;
}

p, ul, ol {
    line-height: 1.4;
}
b, strong {
    font-weight: 600;
}
em {
    color: inherit;
}
p small {
    display: inline-block;
    font-size: 17px;
    color: #777;
}
main a,
main a:visited,
main a:hover {
    color: #C40000;
}

/*
* Container, grid
*/
.container {
    max-width: 1500px;
    margin: 0 auto;
    padding: 0 8px;
}
.container + .container {
    margin-top: 40px;
}

.uk-grid + .uk-grid/*,
p + .uk-grid > div h2*/ {
    margin-top: 20px;
}

.uk-grid + .gallery,
table + .gallery {
    margin-top: 40px;
}
* + .uk-grid-margin,
.uk-grid > .uk-grid-margin {
    margin-top: 20px;
}

.uk-grid.link-list {
    padding: 20px 0;
    border-bottom: 1px solid #efefef;
}
.uk-grid.link-list + .uk-grid.link-list {
    margin-top: 0px;
}
.uk-grid.link-list .uk-grid-margin {
    margin-top: 0px;
}

.uk-grid > div > figure {
    margin-top: 6px;
}

/*
* Header
*/
header {
    padding-top: 50px;
}
header .header-image {
    height: 300px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}
@media (min-width: 768px) {
    header .header-image {
        height: 400px;
    }
}
@media (min-width: 1200px) {
    header {
        padding-top: 120px;
        min-height: 142px;
    }
    header .header-image {
        height: 500px;
    }
}

/*
* Logos
*/
.logo-desktop {
    display: none;
}
.logo-mobile {
    display: inline-block;
    padding: 5px;
}
.logo-mobile img {
    width: 170px;
    height: auto;
    max-height: 50px;
}
.logo-desktop img {
    width: 650px;
    height: auto;
    transition: width 0.2s;
}
.scrolled-down .logo-desktop img {
    width: 500px;
    height: auto;
}
@media (min-width: 1200px) {
    .logo-desktop {
        display: block;
    }
    .logo-mobile {
        display: none;
    }
}

/*
* Navigation
*/
nav {
    position: fixed;
    display: block;
    z-index: 1000;
    width: 100%;
    background-color: #fff;
    box-shadow: 0 0 7px 0 rgba(0, 0, 0, 0.2);
}
.navbar {
    display: none;
}
.navbar.mobile-nav-open {
    display: block;
}

/*
* Navigation: Main
*/
.nav-main {
    background-color: #D2BE6E;
    max-height: calc(100vh - 95px);
    overflow-y: auto;
}
.nav-main ul {
    margin: 0;
    padding: 10px 0;
    list-style-type: none;
    line-height: 22px;
}
.nav-main a,
.nav-main a:visited {
    display: block;
    color: #000;
    text-decoration: none;
    font-size: 19px;
    font-weight: 300;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    transition: color 0.3s;
    padding: 5px 0;
}
.nav-main a:hover,
.nav-main li.active a {
    color: #fff;
    text-decoration: none;
}

@media (min-width: 1200px) {
    .navbar {
        display: block;
    }
    .nav-main {
        display: block;
    }
    .nav-main ul {
        margin-left: 2px;
    }
    .nav-main li {
        display: inline-block;
    }
    .nav-main li + li {
        margin-left: 15px;
    }
}

/*
* Navigation: submenu
*/
.nav-main ul.submenu {
    padding: 0 0 0 15px;
}
.nav-main ul.submenu a,
.nav-main ul.submenu a:visited {
    display: block;
    color: #000;
    text-decoration: none;
    font-size: 19px;
    font-weight: 300;
    letter-spacing: 0.05em;
    text-transform: none;
    transition: color 0.3s;
}
.nav-main ul.submenu a:hover,
.nav-main ul.submenu li.active a {
    color: #fff;
    text-decoration: none;
}
@media (min-width: 1200px) {
    .nav-main ul.submenu {
        display: none;
    }
}

/*
* Secondary nav
*/
.nav-secondary {
    text-align: right;
}
.nav-secondary {
    margin-bottom: 3px;
}
@media (min-width: 1200px) {
    .nav-secondary {
        margin-top: -35px;
    }
}

/*
* Language switcher
*/
ul.languages {
    margin: 0;
    padding: 0;
    display: inline-block;
    vertical-align: middle;
}
ul.languages li {
    display: inline-block;
}
ul.languages li a,
ul.languages li a:visited {
    text-transform: uppercase;
    margin-right: 5px;
    padding: 0 4px;
    color: #999;
}
ul.languages li a:hover {
    color: #000;
    text-decoration: none;
}
ul.languages li.current a {
    color: #000;
}
@media (min-width: 1200px) {
    ul.languages {
        margin-top: 0;
    }
}

/*
* Search field
*/
.search {
    display: inline-block;
}
.search form input {
    font-size: 90%;
}
.search-content-area {
    width: 100%;
    max-width: 350px;
}

/*
* Mobile menu toggle
*/
.menu-toggle {
    position: absolute;
    top: 5px;
    right: 15px;
}
@media (min-width: 1200px) {
    .menu-toggle {
        display: none;
    }
}
.icon-close {
    display: none;
}

/*
* Navigation: sidebar menu
*/
.sidebar-menu ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
.sidebar-menu ul li {
    border-bottom: 1px solid #ddd;
}
.sidebar-menu a,
.sidebar-menu a:visited {
    color: #888;
    text-decoration: none;
    /*padding: 10px;*/
    padding: 10px 10px 10px 2px;
    display: block;
    transition: color 0.3s; 
}
.sidebar-menu li a:hover,
.sidebar-menu li.current > a {
    color: #000;
}
.sidebar-menu ul li:first-child a {
    padding-top: 4px;
}

/*
* Main
*/
main {
    display: block;
    margin-top: 35px;
    margin-bottom: 50px;
}
main:after {
    content: '';
    display: block;
    clear: both;
}

/*
* Footer
*/
footer {
    clear: both;
    background-color: #f9f9f9;
    padding: 20px 0;
    text-align: center;
    color: #888;
    font-size: 18px;
}
footer .uk-grid {
    padding: 10px 0;
}
footer a,
footer a:visited,
footer a:hover {
    color: inherit;
    text-decoration: underline;
    border: 0;
}
@media (min-width: 1200px) {
    footer .uk-grid div:nth-child(1) {
        text-align: left;
    }
    footer .uk-grid div:nth-child(3) {
        text-align: right;
    }
}

/*
* Table
*/
table + table,
.tablewrap + .tablewrap {
    margin-top: 40px;
}

table {
    display: table;
    border-spacing: 0;
    /*overflow-x: auto;
    min-width: 480px;*/
    width: 100%;
    height: auto;
}
table th {
    font-size: 20px;
    font-weight: 400;
    text-transform: uppercase;
}
table th,
table td {
    text-align: left;
    vertical-align: top;
    padding: 8px;
    border-bottom: 1px solid #e5e5e5;
}

table tr:nth-child(odd) td {
    background-color: #fafafa;
}
table tbody tr:hover {
    background-color: rgba(210, 190, 110, 0.15);
}
table tbody tr:hover td {
    background-color: transparent;
}

table.timetable td:first-child {
    white-space: nowrap;
    font-weight: 600;
    width: 150px;
}

@media (max-width: 959px) {
    
    table.stack td:empty {
        display: none !important;
        padding: 0 !important;
    }
    
    table.stack,
    table.stack tbody,
    table.stack td,
    table.stack th,
    table.stack tr {
        display: block;
    }
    table.stack th,
    table.stack td {
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        overflow: visible !important;
        white-space: normal !important;
    }

    table.stack td:first-child {
        font-weight: 600;
    }
    
    table.stack th:not(:last-child),
    table.stack td:not(:last-child) {
        padding-bottom: 5px !important;
    }
    table.stack td:not(:first-child),
    table.stack th:not(:first-child) {
        padding-top: 5px !important;
    }
    table.stack td {
        padding: 16px 12px;
        vertical-align: top;
    }
}

/*
* Figure
*/
figure img {
    width: 100%;
}
figure figcaption {
    font-size: 17px;
    line-height: 1.3;
    color: #888;
}

/*
* Gallery
*/
.gallery .uk-panel {
    box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.5s
}
.gallery .uk-panel:hover {
    box-shadow: 0px 0px 11px 0px rgba(0, 0, 0, 0.2);
}
.gallery figure figcaption {
    margin: 0;
    padding: 7px;
}

/*
* Gallery: square image crop
*/
.square-image {
    background-position: 50% 50%;
    background-size: cover;
    background-repeat: no-repeat;
}

@media (min-width: 640px) {
    .square-image {
        overflow: hidden;
        position: relative;
    }
    .square-image:before {
        content: '';
        display: block;
        padding-top: 100%;
    }
    .square-image img {
        opacity: 0;
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        width: 100%;
        height: 100%;
    }
}

/*
* Buttons
*/
button.default-btn,
a.default-btn {
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    text-decoration: none;
    padding: 9px 18px;
    color: #333;
    background-color: #fff;
    border: 1px solid #e5e5e5;
    transition: border 0.3s;
    cursor: pointer;
}
button.default-btn:hover,
a.default-btn:hover {
    border: 1px solid #b2b2b2;
}

/*
* Form
*/
form > div + div {
    margin-top: 25px;
}
form > div.no-gap {
    margin-top: 5px;
}
form input[type="text"],
form textarea {
    width: 100%;
    padding: 9px;
    border: 1px solid #dbdbdb;
    font-family: inherit;
    font-size: inherit;
    font-weight: 400;
}
form input[type="text"]:focus,
form input[type="text"]:active,
form textarea:focus,
form textarea:active {
    border: 1px solid #a7a7a7 !important;
}
form select {
    border: 1px solid #dbdbdb;
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 20px;
    font-weight: 400;
    padding: 0 20px;
    width: auto;
    display: block !important;
}
form .uk-checkbox,
form .uk-radio {
    margin-right: 5px;
}
form label {
    cursor: pointer;
    display: block;
    font-weight: 600;
}
form .msg {
    color: red;
    font-size: 15px;
    font-weight: 400;
}
.required {
    color: red;
}
form h2 {
    margin: 30px 0 5px 0;
}

form .consent_privacy_policy .text > p:last-of-type {
    margin-bottom: 0;
}

form .hp-comment {
    position: fixed;
    left: -1000px;
    top: -1000px;
}

form .checkbox,
form .radiobutton {
    font-weight: 600;
}
form .checkbox label,
form .radiobutton label,
form .dropdown select {
    font-weight: 400;
}

/*
* News entries
*/
.news-entries {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
.news-entries li {
    border-top: 1px solid #ddd;
}
.news-entries li a,
.news-entries li a:visited {
    display: block;
    padding: 10px 0px;
    color: #888;
    text-decoration: none;
    transition: color 0.3s;
}
.news-entries li a:hover,
.news-entries li.current > a {
    color: #000;
}
.news-entries .uk-icon {
    margin-right: 5px;
    color: #C40000;
}

/*
* Accordion
*/
.accordion {
    margin-top: 30px;
    padding: 10px 0 5px 0;
    border-top: 1px solid #efefef;
    border-bottom: 1px solid #efefef;
}
.accordion + .accordion {
    margin-top: 0;
    border-top: 0;
}
h3.accordion-title {
    cursor: pointer;
    margin: 0;
    padding: 0px 40px 5px 0;
    background-image: url(dropdown-icon-plus.png);
    background-repeat: no-repeat;
    background-position: top right;
    background-size: auto;
    font-size: 26px;
    font-weight: 300;
    line-height: 31px;
}
.accordion.open .accordion-title  {
    background-image: url(dropdown-icon-minus.png);
}
.accordion-content {
    display: none;
    background-color: rgba(255, 255, 255, 0.5);
}
.accordion-content > *:first-child {
    margin-top: 20px;
}
.accordion-content > *:last-child {
    margin-bottom: 20px;
}

/* <fix: uk-modal> */
.uk-modal-page,
.uk-modal-page body {
    overflow-y: auto !important;
}
/* </fix: uk-modal> */

/*
* Scroll to top icon
*/
.scroll-to-top {
    position: fixed;
    bottom: 25px;
    right: 25px;
    display: none;
}
.scroll-to-top a {
    background-color: transparent;
    background-image: url(to-top.png);
    background-repeat: no-repeat;
    background-size: 40px 40px;
    width: 40px;
    height: 40px;
    box-shadow: 0px 0px 13px 0px rgba(0, 0, 0, 0.15);
    border-radius: 50%;
    display: block;
}

/*
* Scroll down icon
*/
.header-image {
    position: relative;
}
.scroll-down {
    background-color: transparent;
    background-image: url(scroll-down.png);
    background-repeat: no-repeat;
    background-size: 40px 40px;
    width: 40px;
    height: 40px;
    box-shadow: 0px 0px 13px 0px rgba(0, 0, 0, 0.25);
    border-radius: 50%;
    display: inline-block;
    margin-right: 25px;
}
