@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(../fonts/montserrat.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/lato-regular.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/lato-bold.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

*::-webkit-scrollbar {
    width: 8px;
    height: 100%;
}
*::-webkit-scrollbar:disabled {
    display: none;
}
*::-webkit-scrollbar-button{
    display: none;
}
*::-webkit-scrollbar-thumb {
    border-radius: 4px;
    scrollbar-color: rgba(0,0,0,.2)
}
*::-webkit-scrollbar-track {
    background-color: transparent;
}
* {
    scrollbar-width: thin;
    scrollbar-color: rgba(0,0,0,.2) transparent
}
:root {
    --main-font: 'Lato', sans-serif;
    --highlight-font: 'Montserrat', sans-serif;
    --light: #fff;
    --light-rgb: 255,255,255;
    --dark: #000;
    --dark-rgb: 0,0,0;
    --blue-light: #d7edf7;
    --blue-light-rgb: 215,237,247;
    --blue-mid: #12678b;
    --blue-mid-rgb: 18,103,139;
    --blue-dark: #0b4259;
    --blue-dark-rgb: 11,66,89;
    --grey: #5a6364;
    --grey-rgb: 90,99,100;
    --shadow: 0 0 20px rgba(var(--dark-rgb),1);
    --shadow2: 0 5px 25px rgba(var(--dark-rgb),0.5);
    --padding: 40px;
    --max-width: 1800px;
    --min-height: 450px;
    --flex-base: 250px;
    --font-size: 18px;
}
html, body {
    padding: 0;
    margin: 0;
    width: 100%;
    max-width: 100%;
}
html {
    overflow-x: hidden;
    position: relative;
    min-height: 550px;
    font-size: var(--font-size);
    height: 100%;
}
body {
    font-family: var(--main-font);
    font-weight: 400;
    overflow: hidden;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    color: var(--grey);
    min-width: 300px;
    background-color: var(--light);
    min-height: 100%;
    line-height: 1.6;
}
body, body * {
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

a {
    text-decoration: none;
}

h1, .h1, h2, .h2, h3, .h3 {
    font-family: var(--highlight-font);
    text-transform: uppercase;
}

h1, .h1, h2, .h2, h3, .h3 {color: var(--blue-dark);}

h2, .h2, h3, .h3 {
    font-weight: 800;
    font-size: 1.4rem;
    line-height: 1.5rem;
}

/* FLEX */
.flex {
    display: flex;
    flex-flow: row wrap;
    width: auto;
    padding: var(--padding);
}
.pad {
    padding: var(--padding);
}
.dopad {
    padding: var(--padding) calc(2 * var(--padding)) 0!important;
}
.flex.halfpad {
    padding: calc(.5 * var(--padding));
}
.flex.halfpad > [class*="box"] {
    padding: calc(.5 * var(--padding));
}
.flex.halfpadvertical {
    padding-top: calc(.5 * var(--padding));
    padding-bottom: calc(.5 * var(--padding));
}
.flex.halfpadvertical > [class*="box"] {
    padding-top: calc(.5 * var(--padding));
    padding-bottom: calc(.5 * var(--padding));
}
.content.flex.halfpad > [class*="box"] {
    padding: calc(1 * var(--padding)) calc(.5 * var(--padding));
}
.flex.nm {
    margin: calc(-1 * var(--padding));
}
.flex.nw {
    flex-flow: row nowrap;
}
.flex.unpad {
    margin-left: calc(-1 * var(--padding));
    margin-right: calc(-1 * var(--padding));
    max-width: calc(100% + (2 * var(--padding)));
}
.halfpad > .flex.unpad {
    margin: 0 calc(-.5 * var(--padding));
    max-width: calc(100% + 1 * var(--padding));
}
.flex.wr {
    flex-flow: row wrap-reverse;
}
.flex.vcenter {
    align-items: center;
    align-content: center;
}
.flex.vstretch {
    align-items: stretch;
    align-content: stretch;
}
.flex.vstart {
    align-items: flex-start !important;
    align-content: flex-start !important;
}
.flex.vend {
    align-items: flex-end !important;
    align-content: flex-end !important;
}
.vcenter[class*="box"] {
    align-self: center;
}
.vend[class*="box"] {
    align-self: flex-end;
}
.vstart[class*="box"] {
    align-self: flex-start;
}
.box0 {flex: 1 1 max(calc(1 * var(--flex-base)), 12.5%);}
.box1 {flex: 1 1 max(calc(1 * var(--flex-base)), 25%);}
.box2 {flex: 2 1 max(calc(2 * var(--flex-base)), 50%);}
.box3 {flex: 3 1 max(calc(3 * var(--flex-base)), 75%);}
.boxfull {flex: 1 1 100%;}
.box0, .box1, .box2, .box3, .box-po, .boxfull {padding: var(--padding);min-width: 0;max-width: 100%;position: relative;order: 2;}

.flex.box1.fw, .flex.box2.fw, .flex.box3.fw {
    width: calc(100% + (2 * var(--padding)));
    max-width: calc(100% + (2 * var(--padding)));
}
.first:not(.fw) + section {
    order: -1;
}
.flex > .nopad[class*="box"], .nopad {
    padding: 0;
}
.flex > .nopadtop[class*="box"] {
    padding-top: 0 !important;
}
.flex > .nopadbottom[class*="box"] {
    padding-bottom: 0 !important;
}
.halfpadtop {
    padding-top: calc(.5* var(--padding)) !important;
}
.halfpadbottom {
    padding-bottom: calc(.5* var(--padding)) !important;
}
.flex > .flex[class*="box"]:not(.fpad) {
    padding: 0;
}
.flex > .flex.halfpad[class*="box"] {
    padding: calc(.5* var(--padding)) 0;
}
.flex > .flex.doublepad[class*="box"], .doublepad {
    padding: calc(2* var(--padding));
}
.flex > .padleft[class*="box"] {
    padding-left: calc(1.5 * var(--padding)) !important;
}
.flex > .divider {
    flex: 1 1 100%;
    padding: 0;
    margin: 0;
}
.flex > .hdivider {
    flex: 0 0 0%;
    padding: 0;
    margin: 0;
}
.flex > .hw + .hdivider {
    flex: 1 1 100%;
    padding: 0;
    margin: 0;
}
@media (max-width: 1220px){
.flex > .divider {
    display: none;
}    
}
img[classbox]:only-child, picture[class^="box"]:only-child, picture[class^="box"] > img {
    width: 100%;
    display: block;
    height: 100%;
}
/* CONTENT */
.wrapper {
    max-width: var(--max-width);
    margin: 0 auto;
    min-height: 100vh;
}
section:not(.fw) .min-height {
    min-height: var(--min-height);
}
.quote {
    color: var(--light);
    font-family: var(--highlight-font);
    text-transform: uppercase;
    font-weight: 700;
    font-size: 1.4rem;
    line-height: 1.5rem;
    text-indent: calc(-1 * (0.3 * var(--padding)));
}
.quotesmall {
    font-family: var(--main-font);
    color: var(--light);
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.2rem;
    text-transform: uppercase;
}
.quotebreak {
    width: 100%;
}
section.box1:nth-child(2) > div:nth-child(1) > picture:nth-child(1), section.box1:nth-child(3) > div:nth-child(1) > picture:nth-child(1) {
    position: absolute;
    width: 100%;
    overflow: hidden;
    height: 100%;
}
.bgimage {
    position: absolute;
    object-fit: cover;
    object-position: center;
    z-index: -1;
    width: 100%;
    height: 100%;
}
.positioned {
    position: relative;
    height: 100%;
    width: 100%;
}
.portimg {
    position: absolute;
    right: 0;
    bottom: 0;
    max-width: 300px;
    min-width: 200px;
    height: auto;
}
.logo {
    text-align: center;
    margin: 0 auto;
}
.logo img {
    width: 100%;
    min-width: 250px;
    max-width: 400px;
}
.bluebg {
    background-color: var(--blue-dark);
    color: var(--light);
}
.lightbluebg {
    background-color: var(--blue-light);
}
.lightbluebg .box1 {
    padding-top: 0;
}
.boxtitle {
    width: 100%;
    margin: 0;
    padding: var(--padding) var(--padding) 0;
}
.boxtitle h3 {
    margin-bottom: 0;
}
.light {
    color: var(--light);
}
.lightbluebg p.light {
    color: var(--grey) !important;
}
.lightbluebg a, .lightbluebg .light a  {
    color: var(--blue-dark);
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
}
.lightbluebg a:hover, .lightbluebg .light a:hover  {
    opacity: 0.5;
}
.light a {
    color: var(--light);
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
}
.light a:hover, .lightbluebg a:hover {
    opacity: 0.5;
}
.darkblue {
    color: var(--blue-dark);
}
.darkblue a {
    color: var(--blue-dark);
}
span.table, span.conttable {
    display: block;
    max-width: 300px;
}
span.table > span, span.conttable > span {
    display: flex;
    flex-flow: row wrap;
}
span.table > span > *:first-child {
    width: 1.5rem;
    height: 1.5rem;
}
span.table > span > *:nth-child(2), span.table > span > *:last-child {
    flex: 1 1 100px;
    text-align: center;
}
span.conttable i {
    font-size: 1.5rem;
}
span.conttable h3 {
    margin: 0 0 0 var(--padding);
    padding: 0;
}
span.conttable > span {
    padding: calc(0.25 * (var(--padding))) 0;
}
span.conttable > span > *:first-child {
    width: 1.5rem;
}
span.conttable > span > *:last-child {
    flex: 1 1 100px;
}

.footer {
    position: relative;
    bottom: 0;
}
.footerbuttons {
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    z-index: 500;
    font-size: 1.4rem;
    line-height: 1.6rem;
}    
.footerbuttons .social > * {
    position: relative;
    display: inline-block;
    cursor: pointer;
    z-index: 2;
    color: var(--dark);
}    
.footerbuttons .social > * i {
    color: var(--light);
    opacity: 1;
    transition: opacity .5s ease-in-out;
    padding: 0 calc(0.5 * var(--padding)) 0 0;
}

.footerbuttons .social > *:hover i {
    opacity: 0.5;
}

footer p, footer a {
    font-size: 0.9rem;
    opacity: 1;
}
footer a {
    transition: opacity 0.5s ease-in-out;
}
footer a:hover {
    opacity: 0.5;
}
/* POPUPS */
.sharebuttons {
    position: fixed;
    z-index: 2;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex !important;
    justify-content: center;
    align-items: center;
    background-color: var(--light);
    opacity: 0;
    pointer-events: none;
    z-index: 2100;
    transition: opacity 0.5s ease-in-out;
}
.sharebuttons.showbuttons {
    opacity: 1;
    pointer-events: all;
}
.sharebuttons .shbox {
    position: relative;
    display: block;
    width: 90%;
    max-width: 500px;
    margin: 0;
    padding: 20px;
    background-color: transparent;
}
.closeshare, #sc-close, #closeform, .pu-close {
    position: absolute;
    z-index: 3000;
    cursor: pointer;
    top: calc(0.5 * var(--padding));
    right: calc(0.5 * var(--padding));
    height: 2rem;
    width: 2rem;
    font-size: 2rem;
    margin: 0;
    text-align: center;
    line-height: 1;
    -ms-user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none; 
    color: var(--grey);
}
.tosoc p {
    color: var(--grey);
}
.tosoc a {
    color: var(--blue-dark);
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
}
.tosoc a:hover {
    opacity: 0.5;
}



#tpu-close:hover, .closeshare:hover, #sc-close:hover {
    color: var(--blue-dark);
}
.sharebuttons {
    text-align: center;
}
.sharebuttons .shariff ul {
    justify-content: center;
    margin-top: 1rem
}
.sharebuttons .shariff .orientation-horizontal li, .sharebuttons .shariff .orientation-horizontal li  a {
    width: 40px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 100%;
}
.sharebuttons .tosoc {
    font-size: 0.7rem;
    line-height: 1.2em;
}



/* SMARTPHONE */
@media only screen 
    and (min-width: 375px) 
    and (max-width: 812px) 
    and (-webkit-min-device-pixel-ratio: 3), 
    only screen 
    and (min-width: 375px) 
    and (max-width: 667px) 
    and (-webkit-min-device-pixel-ratio: 2),
    (max-width: 770px)
{ 
.footerbuttons{
    font-size: 1.2rem 
}
:root {
    --padding: 15px;
    --font-size: 16px;
    --flex-base: 300;
}
h1, .h1 {
    font-size: 1.2rem;
}
h2, .h2 {
    font-size: 1.1rem;
}
h3, .h3 {
    font-size: 1rem;
}  
}

/* TABLET */
@media only screen 
    and (min-width : 768px) 
    and (max-width : 1024px) 
    and (-webkit-min-device-pixel-ratio: 1),
    only screen 
    and (min-width : 768px) 
    and (max-width : 1024px)
    and (-webkit-min-device-pixel-ratio: 2),
    (min-width: 771px) and (max-width: 1400px){

:root {
    --padding: 25px;
    --font-size: 16px;
}
h1, .h1 {
    font-size: 1.3rem;
}
h2, .h2 {
    font-size: 1.2rem;
}
h3, .h3 {
    font-size: 1rem;
}  
}



.empty {
    min-height: 0 !important;
    height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    opacity: 0 !important;
    margin-bottom: 0 !important;
}

body.loaded {opacity: 1;}