* {
    font-family: "Open Sans";
    font-weight: lighter;
    color: #000000;
}

p {
    font-weight: lighter;
}

a, a:active, a:visited, a * {
    color: #000000;
    transition: none !important;
}

a:hover,
a:hover *,
li:hover > a,
li:hover > a * {
    color: #555555;
    /*font-weight: normal;*/
    text-decoration: none;
}

/*
    HEADER
 */

header {
    background-color: #FFFFFF;
    transition: linear 0.2s;
    z-index: 10;
}

header * {
    transition: ease-in-out all 0.2s;
}

header .top-menu-right {
    float: right;
    margin: 25px 25px 5px 0;
}

header ul.language-menu {
    list-style: none;
}

header ul.language-menu li {
    float: left;
    text-transform: uppercase;
    padding: 0 5px;
}

header ul.language-menu li a {
    color: #555;
    font-weight: 100;
}

header ul.language-menu li.active a,
header ul.language-menu li:hover a {
    font-weight: 100;
    color: #000000;
}

header ul.language-menu li:last-child {
    border-right: none;
}

header .header-middle {
    text-align: center;
}

header .logo {
    margin: 0;
    opacity: 1;
    visibility: visible;
}

header .logo-small {
    opacity: 0;
    visibility: hidden;
    display: none;
    margin: 0 0 0 20px;
    line-height: 100px;
}

header .main-menu,
header .mobile-menu {
    text-align: center;
    padding: 25px 0;
}

header .mobile-menu {
    padding: 0;
    height: 20px;
}

header .mobile-menu .opened {
    position: fixed;
    right: 0;
    top: 0;
    padding: 15px;
    z-index: 101;
    color: transparent !important;
    font-size: 30px;
    line-height: 30px;
    width: 60px;
    display: block;
}

header .mobile-menu .opened::before {
    content: "X";
    color: #000000;
    position: fixed;
    right: 0;
    top: 0;
    padding: 15px;
    vertical-align: middle;
    line-height: 30px;
    font-size: 30px;
    text-align: center;
    width: 60px;
    height: 60px;
}

header.scroll {
    height: 100px;
    position: fixed;
    left: 0;
    right: 0;
    top: 0;
}

header.scroll .header-top {
    position: absolute;
    right: 0;
}

header.scroll .top-menu-right {
    float: right;
    margin: 5px 0;
}

header.scroll .header-middle {
    float: left;
    width: 20%;
    text-align: left;
}

header.scroll .header-bottom {
    float: left;
    width: 80%;
}

header.scroll .logo {
    opacity: 0;
    visibility: hidden;
    display: none;
}

header.scroll .logo-small {
    opacity: 1;
    visibility: visible;
    display: inherit;
}

header.scroll .main-menu {
    text-align: left;
    padding: 40px 0 0;
}

/*
    MENU
 */
header.scroll,
header.border-bottom {
    border-bottom: 1px solid #818285;
}

header .main-menu > ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

header .main-menu > ul > li {
    display: inline;
    text-transform: uppercase;
    padding-bottom: 15px;
    margin: 0 10px;
    font-size: 12pt;
}

header .main-menu > ul > li,
header .main-menu > ul > li * {
    transition: opacity 0.2s ease-out;
}

header .main-menu li > a {
    cursor: pointer;
}

header .main-menu a,
header .main-menu a * {
    color: #555;
    font-weight: lighter !important;
}

header .main-menu ul ul a {
    /*color: #000000;*/
}

header .main-menu li > a:hover,
header .main-menu li > a:hover *,
header .main-menu li:hover > a,
header .main-menu li:hover > a * {
    font-weight: lighter;
    color: #000000;
}

/*header .main-menu a:hover,*/
/*header .main-menu a.current {*/
/*color: #000000;*/
/*}*/

header .main-menu a.current {
    font-weight: normal;
}

header .main-menu > ul > li:not(.bigger) {
    position: relative;
}

header.scroll .main-menu > ul > li {
    padding-bottom: 40px;
}

header .main-menu > ul > li.active a {
    text-decoration: none;
    font-weight: normal;
}

header .main-menu > ul > li > ul {
    position: absolute;
    top: 100%;
    left: -20px;
    min-width: 200px;
    background-color: rgba(255, 255, 255, 0.95);
    margin: 25px 0 15px;
    padding: 10px 15px;
    z-index: 500;
    text-align: left;
    visibility: hidden;
    opacity: 0;
    border: 1px solid #DFDFDF;
    /*box-shadow: 5px 5px 7px #DFDFDF;*/
}

header .main-menu > ul > li:not(.bigger) > ul {
    margin-top: 25px;
}

header.scroll .main-menu > ul > li:not(.bigger) > ul {
    margin-top: 15px;
}

header .main-menu > ul > li.has-submenu > ul::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 35px;
    top: -35px;
    background-color: transparent;
    left: 0;
    right: 0;
}

header .main-menu ul > li > ul {
    list-style: none;
}

header .main-menu > ul > li.bigger > ul {
    left: 20px;
    right: 20px;
    padding-left: 0;
    margin-top: 15px;
    top: 100%;
    max-height: calc(100vh - 42px - 234px - 30px);
    padding-bottom: 30px;
    border: 1px solid #DFDFDF;
    /*box-shadow: 5px 5px 7px #DFDFDF;*/
}

header.scroll .main-menu > ul > li.bigger > ul {
    top: 100px;
    position: fixed;
    max-height: calc(100vh - 42px - 110px - 20px);
}

header .main-menu > ul > li:hover > ul {
    visibility: visible;
    opacity: 1;
}

header .main-menu > ul > li > ul > li {
    padding: 3px 0;
    white-space: nowrap;
}

header .main-menu > ul > li.bigger > ul > li {
    width: auto;
    float: left;
    margin: 5px 15px;
    white-space: normal;
}

header .main-menu > ul > li.bigger > ul > li.has-submenu {
    margin: 0;
    padding: 10px;
}

header .main-menu > ul > li.bigger > ul > li.has-submenu > a {
    padding-bottom: 15px;
    position: relative;
    margin-bottom: 15px;
    display: block;
}

header .main-menu > ul > li.bigger > ul > li.has-submenu > a::after {
    left: 0;
    content: "";
    background-color: #7A7B7E;
    height: 1px;
    position: absolute;
    bottom: 0;
    width: 60px;
}

header .main-menu > ul > li.bigger > ul > li > ul {
    padding-left: 0;
    margin-top: 0;
    padding-bottom: 25px;
}

header .main-menu > ul > li.bigger > ul > li > ul > li {
    margin: 30px 0;
}

header .main-menu > ul > li.bigger > ul > li > ul > li:first-child {
    margin-top: 20px !important;
}

header .main-menu > ul > li.bigger > ul > li > ul > li:last-child {
    margin-bottom: 0;
}

header .main-menu > ul > li.bigger > ul > li > ul > li > a {
    font-size: 12pt;
    line-height: 1em;
}

header .main-menu > ul > li.bigger > ul > li > ul > li > a p {
    margin-bottom: 0;
}

header .main-menu > ul > li.bigger > ul > li > ul > li > a span {
    font-size: 12px;
    text-transform: none;
    width: 100%;
    display: inline-block;
    line-height: 1em;
    float: left;
}

a:hover span {
    font-weight: normal;
}

/*
    FOOTER
 */

div.footer-menu {
    background-color: #EFF0EF;
    padding: 20px 5%;
    margin-bottom: 42px;
}

div.footer-menu ul {
    list-style: none;
    padding-left: 0;
}

ul.menu {
    list-style: none;
    padding-left: 0;
}

ul.menu > li {
    float: right;
    width: 20%;
}

#breadcrumb ul.menu > li {
    float: left;
}

ul.menu > li.has-submenu {
    float: left;
}

ul.menu li {
    margin: 10px 0;
    text-transform: uppercase;
}

ul.menu > li > a {
    font-weight: normal;
}

footer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    height: 42px;
    background-color: #FFFFFF;
    z-index: 10;
    border-top: 1px solid #7F7F82;
}

#index footer {
    border-top: none;
}

footer .footer-data {
    text-align: center;
    line-height: 32px;
    padding: 5px 0;
}

footer .footer-data > ul {
    list-style: none;
    padding: 0;
}

footer .footer-data > ul > li {
    display: inline;
    margin: 0 10px;
    white-space: nowrap;
}

/*
    STYLING
 */
h1 {
    font-weight: lighter;
    color: #333;
    font-size: 30px;
    margin-bottom: 1em;
}

h2 {
    font-weight: lighter;
    color: #333;
    font-size: 25px;
    margin-bottom: 1em;
}

h3 {
    font-weight: lighter;
    color: #333;
    font-size: 22px;
    margin-bottom: 1em;
}

h4 {
    font-weight: lighter;
    color: #333;
    font-size: 20px;
    margin-bottom: 1em;
}

h5 {
    font-weight: lighter;
    color: #333;
    font-size: 18px;
    margin-bottom: 1em;
}

h6 {
    font-weight: lighter;
    color: #333;
    font-size: 13px;
    margin-bottom: 1em;
}

table {
    width: 100%;
    margin: 20px 0;
}

table tr {
    border-bottom: 1px solid #333333;
    margin: 5px 0;
}

table tr.no-border {
    border: none;
}

table tr.no-border td {
    padding-bottom: 0;
}

table td {
    padding: 5px 0;
}

strong, b {
    font-weight: normal;
}

.pagination > li > a, .pagination > li > span, .pagination > li > a:focus, .pagination > li > a:hover, .pagination > li > span:focus, .pagination > li > span:hover {
    color: #7A7B7E;
}

.pagination > .active > a, .pagination > .active > a:focus, .pagination > .active > a:hover, .pagination > .active > span, .pagination > .active > span:focus, .pagination > .active > span:hover {
    background-color: #7A7B7E;
    border-color: #7A7B7E;
}

.underlined {
    position: relative;
    padding-bottom: 10px;
    margin-bottom: 20px;
    display: inline-block;
    width: auto;
}

.underlined::after {
    left: 30%;
    right: 30%;
    content: "";
    background-color: #6D6E71;
    height: 1px;
    position: absolute;
    bottom: 0;
}

h3.underlined::after {
    min-width: 80%;
}

.underlined.text-center::after {
    left: 30%;
    right: 30%;
}

.underlined.text-left::after {
    left: 0;
    right: 70%;
}

.underlined.text-right::after {
    left: 70%;
    right: 0;
}

.list-divider {
    padding-left: 0;
    list-style-position: inside;
}

.list-divider li {
    margin-bottom: 10px;
}

.google-map {
    height: 250px;
}

#full-width-map .google-map {
    height: 350px;
}

.reset-margin {
    margin: 0 !important;
}

.reset-margin-top {
    margin-bottom: 0 !important;
}

.reset-margin-right {
    margin-bottom: 0 !important;
}

.reset-margin-bottom {
    margin-bottom: 0 !important;
}

.reset-margin-left {
    margin-bottom: 0 !important;
}

.reset-padding {
    padding: 0 !important;
}

.reset-padding-top {
    padding-bottom: 0 !important;
}

.reset-padding-right {
    padding-bottom: 0 !important;
}

.reset-padding-bottom {
    padding-bottom: 0 !important;
}

.reset-padding-left {
    padding-bottom: 0 !important;
}

.container, .container-fluid {
    padding-right: 25px;
    padding-left: 25px;
}

.row {
    margin-left: -25px;
    margin-right: -25px;
}

[class*='col-'] {
    padding-right: 25px;
    padding-left: 25px;
}

/*
    BODY
 */
body {
    overflow-x: hidden;
    overflow-y: scroll;
    background-color: #EFF0EF;
}

body.menu-opened {
    position: fixed;
}

.wrapper {
    padding-left: 25px;
    padding-right: 25px;
    background-color: #FFFFFF;
}

#error .page-wrapper .wrapper {
    padding-bottom: 50px !important;
}

.page-wrapper .wrapper:last-child {
    padding-bottom: 50px !important;
}

header.scroll + .page-wrapper {
    padding-top: 100px;
}

header.scroll + .page-wrapper > div.wrapper:first-child {
    padding-top: 134px !important;
}

#welcome.wrapper {
    background-color: #EBE9E9;
    position: relative;
    padding: 0;
    margin: 0;
}

#welcome .content {
    position: relative;
}

#welcome .text {
    position: absolute;
    left: 50%;
    right: 5%;
    top: 50px;
    max-width: 45%;
}

#welcome .text p {
    text-align: justify;
    color: #6D6E71;
}

#welcome .image img {
    max-width: 100%;
}

.video.fullscreen {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    padding: 0 !important;
    background-color: rgba(0, 0, 0, 0.85);
    max-width: none !important;
    max-height: none !important;
    height: auto !important;
    width: auto !important;
}

.fullscreen-opened {
    overflow: hidden;
}

.video .play {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 108px;
    height: 108px;
    background-color: black;
    border-radius: 50%;
    margin: auto;
    z-index: 2;
    text-align: center;
    line-height: 108px;
    vertical-align: middle;
    color: white;
    font-size: 50px;
    cursor: pointer;
}

.news_files .video .play {
    width: 50px;
    height: 50px;
    line-height: 50px;
    font-size: 27px;
}

.video .play::after {
    position: absolute;
    top: 0;
    left: 22px;
    right: 0;
    bottom: 0;
    width: 50px;
    height: 50px;
    border-left: 37px solid white;
    border-bottom: 27px solid transparent;
    border-top: 27px solid transparent;
    content: "";
    margin: auto;
}

.news_files .video .play::after {
    left: 14px;
    width: 25px;
    height: 25px;
    border-left: 17px solid white;
    border-bottom: 13px solid transparent;
    border-top: 13px solid transparent;
}

.video.fullscreen .play {
    display: none;
}

.video .close {
    display: none;
}

.video.fullscreen .close {
    display: block;
    position: fixed;
    top: 0;
    right: 20px;
    padding: 20px;
    color: white;
    font-size: 25px;
    z-index: 1001;
    opacity: 1;
}

.video.fullscreen video {
    position: relative;
    width: 100% !important;
    height: 100% !important;
    padding: 10% !important;
    left: 0 !important;
    right: 0 !important;
}

.blog .list.wrapper,
.blog .list.wrapper .container-fluid,
.team .list.wrapper,
.team .list.wrapper .container-fluid {
    padding: 0 0 0 !important;
    margin: 0;
}

.blog .list.wrapper .container-fluid .row,
.team .list.wrapper .container-fluid .row {
    margin: 0;
}

.blog-entry {
    position: relative;
    cursor: pointer;
    padding: 0;
    overflow: hidden;
}

.blog-entry * {
    transition: ease-in-out .2s;
}

.blog-entry picture {
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
}

.blog-entry:hover picture {
    filter: grayscale(0%);
    -webkit-filter: grayscale(0%);
    -moz-filter: grayscale(0%);
    -ms-filter: grayscale(0%);
}

.blog-entry .caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 10px 25px;
    background-color: rgba(255, 255, 255, 0.8);
    height: 45%;
    z-index: 6;
    min-height: 162px;
}

.team .blog-entry .caption {
    height: 20%;
    min-height: 122px;
    text-align: center;
}

.blog-entry .caption h3 {
    font-size: 15px;
    text-transform: uppercase;
    margin-bottom: 10px;
    padding-bottom: 10px;
    position: relative;
    margin-top: 10px;
}

.blog-entry .caption h3::after {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 70%;
    content: " ";
    background-color: #333333;
    height: 1px;
}

.team .blog-entry .caption h3::after {
    left: 40%;
    right: 40%;
}

.blog-entry .caption p {
    line-height: 1.42857143em;
    max-height: 2.85714286em;
    overflow: hidden;
}

.blog-entry .caption span.date {
    text-transform: uppercase;
}

.publication .blog-entry .caption span.date {
    font-size: 12px;
}

#partners.wrapper,
#partners.wrapper .container-fluid,
#partners.wrapper .container-fluid .row,
#partners.wrapper .container-fluid .row > div {
    padding: 0;
    margin: 0;
}

#partners.wrapper .partner {
    overflow: hidden;
}

#partners.wrapper .partner > .image {
    float: left;
    width: 50%;
    overflow: hidden;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: calc(100vw / 4);
}

#partners.wrapper .partner > .caption {
    float: left;
    width: 50%;
    text-align: center;
    padding: 10px;
}

#partners.wrapper .partner > .caption h3 {
    font-size: 15px;
    text-transform: uppercase;
    margin-bottom: 15px;
    padding-bottom: 15px;
    position: relative;
    margin-top: 10px;
}

#partners.wrapper .partner > .caption h3::after {
    position: absolute;
    bottom: 0;
    left: 40%;
    right: 40%;
    content: " ";
    background-color: #333333;
    height: 1px;
}

#partners.wrapper .partner:nth-child(4n) > .image,
#partners.wrapper .partner:nth-child(4n-1) > .image {
    float: right;
}

#contact.wrapper {
    overflow: hidden;
    padding: 0;
}

#contact.wrapper .google-map {
    height: 350px;
    width: calc(50vw - 15px);
}

#contact.wrapper .contact-form {
    margin-top: 40px;
    margin-bottom: 40px;
}

#contact.wrapper .contact-form:first-child {
    margin-top: 0;
}

#contact.wrapper .contact-form:last-child {
    padding-bottom: 0 !important;
}

.wrapper.grid {
    padding: 0;
}

.page-wrapper .wrapper.grid:last-child {
    padding-bottom: 0 !important;
}

.wrapper.grid .blog-entry .caption {
    height: auto;
    min-height: 62px;
}

@media screen and (min-width: 1440px) {
    .blog-entry .caption {
        height: 40%;
    }
}

@media screen and (max-width: 1200px) {

    #welcome .image {
        padding-top: 50px;
    }

    .blog-entry .caption {
        height: 50%;
    }
}

@media screen and (max-width: 991px) {

    header {
        height: 100px;
        position: fixed;
        left: 0;
        right: 0;
        top: 0;
    }

    header .header-top {
        position: absolute;
        right: 0;
    }

    header .top-menu-right {
        float: right;
        margin: 5px 25px 5px 0;
    }

    header .header-middle {
        float: left;
        width: 20%;
        text-align: left;
    }

    header .header-bottom {
        float: left;
        width: 80%;
    }

    header .logo {
        opacity: 0;
        visibility: hidden;
        display: none;
    }

    header .logo-small {
        opacity: 1;
        visibility: visible;
        display: inherit;
    }

    header + .page-wrapper > div.wrapper:first-child {
        padding-top: 100px !important;
    }

    header .main-menu {
        text-align: left;
        padding: 40px 0 0;
    }

    header .main-menu > ul {
        opacity: 0;
        visibility: hidden;
        position: fixed;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        background-color: rgba(255, 255, 255, 0.95);
        z-index: 100;
        margin: 0;
        padding: 10%;
        display: none;
        transition: linear 0.2s;
        overflow: scroll;
    }

    header .main-menu > ul.opened {
        opacity: 1;
        visibility: visible;
        display: inherit;
    }

    header .main-menu li {
        display: inherit !important;
        text-align: center;
        width: 100%;
    }

    header .main-menu > ul > li:last-child {
        margin-bottom: calc(10% + 25px);
    }

    header .main-menu > ul > li > a {
        border-bottom: 1px solid #000000;
        font-size: 20px;
    }

    header .main-menu > ul > li > ul,
    header .main-menu > ul > li.bigger > ul {
        position: static;
        opacity: 1;
        visibility: visible;
        text-align: center;
        background-color: transparent;
        display: inline-block;
        width: 100%;
        margin: 0;
        padding: 0;
        border: none;
    }

    header .main-menu > ul > li > ul {
        margin: 5px 0;
        padding: 0;
        border: none;
        box-shadow: none;
    }

    header .main-menu > ul > li.bigger > ul > li.has-submenu {
        width: 100% !important;
        margin: 0;
        padding: 3px 0;
    }

    header .main-menu > ul > li.bigger > ul > li.has-submenu > a {
        width: 100% !important;
        margin: 0;
        padding: 0;
    }

    header .main-menu > ul > li.bigger > ul > li > ul {
        display: none;
    }

    header .main-menu > ul > li.bigger > ul > li.has-submenu > a::after {
        display: none;
    }

    #breadcrumb.wrapper {
        padding-left: 0;
        padding-right: 0;
    }

    #breadcrumb ul.menu > li {
        min-width: 25%;
    }

    footer .footer-data > ul {
        font-size: 13px;
    }

    #welcome .text {
        left: 45%;
        right: 0;
        max-width: 55%;
    }

    #welcome .image {
        padding-top: 120px;
    }

    #partners.wrapper .partner > .image {
        float: left !important;
        height: 100%;
        min-height: calc(100vw / 2);
    }

    #partners.wrapper .partner:nth-child(2n+1) > .image {
        float: right !important;
    }

}

@media screen and (max-width: 767px) {
    div.footer-menu ul.menu > li {
        width: 50%;
        text-align: center;
        float: left;
    }

    div.footer-menu ul ul {
        display: none;
    }

    footer {
        z-index: 9;
    }

    footer .footer-data > ul {
        font-size: 12px;
    }

    #welcome .text {
        position: relative;
        left: 0;
        right: 0;
        max-width: none;
        top: 0;
        margin-top: 50px;
    }

    #welcome .image {
        padding-top: 20px;
    }

    .blog-entry .caption {
        height: 45%;
    }

    .blog-entry:hover .caption {
        height: 45%;
    }

    #contact.wrapper .google-map {
        height: 350px;
        width: 100%;
    }

    #full-width-video.wrapper .video {
        padding: 100px 0;
        min-height: 200px;
    }

    header {
        border-bottom: 1px solid #818285;
    }
}

@media screen and (max-width: 500px) {
    .container, .container-fluid {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .row {
        margin-left: -15px !important;
        margin-right: -15px !important;
    }

    .page-wrapper {
        margin-bottom: 0;
    }

    footer {
        position: relative;
        height: auto;
    }

    .blog-entry .caption {
        height: 60%;
    }

    .blog-entry:hover .caption {
        height: 100%;
    }

    #partners.wrapper .partner > .caption div.resizable {
        display: none;
    }

    div.footer-menu {
        margin-bottom: 0;
    }

    footer .footer-data > ul > li {
        display: inline-block !important;
        min-width: 50%;
        margin: 0;
        padding: 0 10px;
        text-align: center;
        float: left;
    }

    footer .footer-data > ul > li.show-xxs {
        width: 100%;
    }

    .grid .col-xs-6 {
        width: 100%;
    }

}

@media screen and (max-width: 400px) {
    footer .footer-data > ul > li {
        width: 100%;
    }
}

@media screen and (max-height: 500px) {
    #full-width-video.wrapper {
        padding: 100px 0;
        min-height: 200px;
    }
}


