:root {
    --desktop-gap: 10vw;
    --ease: .64s ease-out;
    --all: all var(--ease);
}

::-webkit-scrollbar {
    width: 0px;  /* Remove scrollbar space */
    background: transparent;  /* Optional: just make scrollbar invisible */
}

*, *:before, *:after {
    box-sizing: border-box;
    margin: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Open Sans', sans-serif;
    color: #323B63;
    -webkit-font-smoothing: antialiased;
    overflow: auto;
}

body.p {
    overflow: hidden;
}

#preloader {
    position: absolute;
    display: flex;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: #323B63;
    z-index: 999;
    justify-content: center;
    align-items: center;
    opacity: 0;
    transition: opacity var(--ease);
    pointer-events: none;
}

#preloader div {
    display: block;
    height: 70px;
    animation: rotation 2.6s infinite cubic-bezier(0.40, 0, 0.25, 1);
    -webkit-animation: rotation 2.6s infinite cubic-bezier(0.40, 0, 0.25, 1);
    z-index: -99;
}

body.p #preloader {
    opacity: 1;
    pointer-events: auto;
}

img {
    height: 100%;
    width: inherit;
}

.related img {
    width: 100%;
    height: auto;
}

.related.alt img {
    width: 100%;
    height: 100%;
}

aside {
    display: block;
    height: 100%;
    /* border: 3px solid salmon; */
    padding: 50px;
    padding-right: 0;
}


aside h3, aside p {
    margin-bottom: 25px;
}

.simgholder img {
    height: auto;
    width: 100%;
    pointer-events: none;
}

.gradient {
    display: block;
    height: 100%;
    position: absolute;
    right: 7%;
    top: 0;
    bottom: 0;
    width: 15%;
    background: rgb(50,59,99);
    background: linear-gradient(90deg, rgba(50,59,99,0) 0%, rgba(50,59,99,1) 65%, rgba(50,59,99,1) 100%);
    transition: right .3s ease-out;
    pointer-events: none;
}

.gradient.f {
    right: 0%;
}

h1 {
    color: white;
    font-family: sans-serif;
    font-size: 42px;
    text-align: center;
    margin-bottom: 100px;
    width: 650px;
    transition: var(--all);
}

h2 {
    font-size: 34px;
}

h3 {
    font-size: 24px;
    font-weight: 700;
}

h4 {
    font-size: 16px;
    font-weight: 400;
}

a {
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

#peoples h2 {
    margin-bottom: 50px;
}

#ethics h2 {
    margin-bottom: 25px;
}

#offmenu {
    width: 100%;
    position: absolute;
    height: 15vh;
    display: flex;
    transform: translateY(-15vh);
    transition: var(--all);
    z-index: 99;
}

#offmenu span {
    display: flex;
    cursor: pointer;
}

#offmenu span p:first-of-type {
    margin-right: 25px;
}

#app.c #offmenu {
    transform: translateY(0);
}

#offmenu ul {
    display: flex;
    margin: 0 20px;
    padding: 0 var(--desktop-gap);
    justify-content: flex-start;
    align-items: center;
    width: 100%;
}

#offmenu ul a {
    color: #323B63;
    text-decoration: none;
    white-space: nowrap;
}

#offmenu ul a:not(:last-of-type) {
    margin-right: 25px
}

#offmenu ul a:last-of-type {
    padding-right: 25px;
    border-right: 1px solid #323B63;
    margin-right: 25px
}

#menu {
    display: flex;
    padding: 0;
    cursor: pointer!important;
}

#menu a {
    color: white;
    display: flex;
    align-items: center;
    text-decoration: none;
}

#menu a {
    position: relative;
}

#menu a p::before {
    content: '';
    display: block;
    height: 10px;
    background-color: white;
    opacity: 0.2;
    position: absolute;
    bottom: 14px;
    left: -5px;
    right: 110px;
    transition: var(--all);
}

#menu a:hover p::before {
    right: -5px;
}

#menu span {
    display: flex;
    margin-left: 25px;
    border-left: 1px solid white;
}

#menu span p {
    padding-left: 25px;
    font-size: 16px;
    font-weight: 600;
    color: white;
    line-height: 50px;
}

#menu > a:not(:last-of-type) {
    margin-right: 25px;
}

#mission h2, #peoples h2, #partners h2, #ethics h2 {
    text-transform: uppercase;
    letter-spacing: 1.5px;
}


#peoples > h3 {
    margin: 50px 0;
}

#peoples > h2, #peoples > h3 {
    text-align: center;
}

#top {
    height: 100vh;
    background-color: #323B63;
    border: 20px solid white;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    align-items: center;
    transition: var(--ease);
    transition-property: border-top-width;
    background-image: url(../assets/bgtop.jpg);
    background-position: center;
    background-size: cover;
    position: relative;
}

#top nav {
    height: 50px;
    margin-top: 25px!important;
    width: calc(100% - var(--desktop-gap)*2);
    display: flex;
    justify-content: space-between;
}

#app.c #top {
    border-top-width: 15vh
}

#logo {
    height: 50px;
}

#flogo {
    height: 100px;
}

#ham {
    /* border: 1px solid red; */
    width: 75px;
    display: none;
    justify-content: space-between;
    flex-direction: column;
    padding: 10px;
    transition: var(--all);
    transition-property: padding;
    cursor: pointer;
}

#app.c #ham {
    padding: 24px;
    padding-right: 0;
}

#ham.h {
    padding: 10px 10px;
}

#ham span {
    display: block;
    background-color: white;
    height: 3px;
    width: 100%;
    transition: var(--ease);
    transition-property: transform,opacity;
}

#ham.c span  {
    width: 100%!important;
}

#ham.h span {
    height: 3px;
}

#ham span:first-of-type, #ham span:last-of-type {
    width: 50%;
}

#app.c #ham span:first-of-type, #app.c #ham span:last-of-type {
    width: 100%;
}

#app.c #ham span:first-of-type {
    transform: rotate(-45deg)
}

#app #ham span:nth-child(2) {
    opacity: 1;
}

#app.c #ham span:nth-child(2) {
    opacity: 0;
}

#app.c #ham span:last-of-type {
    transform: rotate(45deg)
}

#ham span:last-of-type {
    align-self:flex-end 
}

#ham.h span:first-of-type {
    transform: translateX(26.5px);
}

#ham.h span:last-of-type {
    transform: translateX(-26.5px);
}

#peoples {
    /* border: 20px solid red; */
    padding:25px var(--desktop-gap);
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    position: relative;
    overflow: hidden;
}

#peoples .partner {
    /* border: 1px solid red; */
    display: flex;
    position: absolute;
    top: 125px;
    right: var(--desktop-gap);
    left: var(--desktop-gap);
    bottom: 225px;
    transform: translateX(100vw);
    transition: var(--all)
}

#app.f #peoples .partner {
    transform: translateX(0);
}

#peoples .cards {
    display: flex;
    justify-content: space-between;
    transform: translateX(0);
    transition: var(--all)
}

#app.f #peoples .cards {
    transform: translateX(-100vw);
}

#peoples .cards .scard {
    display: block;
    width: 30%;
    margin: 0 25px;
    background-color: #f4f4f4;
}

#peoples .cards .scard div:not(.simgholder) {
    padding: 25px;
    margin-top: -25px;
}

#peoples .cards .scard:first-of-type {
    margin-left: 0!important;
}

#peoples .cards .scard:last-of-type {
    margin-right: 0!important;
}

#peoples .cards .scard h4, #peoples .cards .scard h3 { 
    margin-bottom: 12.5px!important;
}


footer {
    display: flex;
    background-color: #333C67;
    justify-content: space-between;
    align-items: flex-end;
    padding: 25px calc(20px + var(--desktop-gap));
    color: white;
    font-size: 14px
}

footer #flogo {
margin-bottom: 25px;
}

footer > div {
    height: 80%;
    /* border: 1px solid white; */
    width: 30%;
}

footer .contacts {
    width: 50%
}

footer ul {
    margin: 25px 0;
    padding-left: 12.5px;
    white-space: nowrap;
}

footer ul p:not(:last-of-type), footer ul a:not(:last-of-type) {
    padding-bottom: 7.5px;
}

footer ul *, .policy p {
    color: white;
    text-decoration: none;
}

.footlogo p {
    white-space: nowrap;
}

.policy p {
    font-weight: 100;
}


#mission {
    /* border: 20px solid green; */
    padding: 0 var(--desktop-gap);
    display: flex;
    justify-content: space-between;
    flex-direction: column;
}

#mission .main-block {
    background-color: #323B63;
    padding: 25px 50px;
    margin-bottom: 25px;
    color: white;
    text-align: center;
}

#mission h2 {
    margin-bottom: 12.5px;
}

#mission .main-block h3 {
    margin-bottom: 25px;
    font-weight: 500;
}

#mission .main-block div {
    padding: 25px 0;
}

#mission .sub-block {
    background-color: #f4f4f4;
    padding: 25px;
    text-align: center;
}

#mission .sub-block h3 {
    margin-bottom: 12.5px;
}

#mission .sub-block div {
    font-size: 24px;
    line-height: 35px;
}

#partners {
    padding: 50px 0;
    background-color: #323B63;
    margin-top: 50px;
    overflow: hidden;
    position: relative;
    display: none;
}

#partners h2 {
    text-align: center;
    color: #f4f4f4;
    margin-bottom: 50px;
}

#partners .scrollable {
    display: flex;
    color: #f4f4f4;
    position: relative;
    width: 90%;
    overflow-x: scroll;
    overflow-y: hidden;
    white-space: nowrap;
    transition: all 0.4s;
    transform: scale(1);
    will-change: transform;
    user-select: none;
    cursor: grab;
}

#partners .scrollable.active {
    cursor: grabbing;
    transform: scale(1.02);
}

#partners .pcard {
    display: block;
    min-width: 325px;
    color: #f4f4f4;
}

#partners .pcard:first-of-type {
    margin-left: var(--desktop-gap);
}

#partners .pcard:last-of-type {
    margin-right: var(--desktop-gap)!important;
}

#partners .pcard:not(:last-of-type) {
    margin-right: 50px;
}

#partners .pcard div:not(.simgholder) {
    padding: 25px;
}

#partners .pcard div h3 {
    margin-bottom: 12.5px!important;
}

#partners .pcard div h4 {
    font-size: 14px;
    font-weight: lighter;
    white-space: normal;
}

#ethics {
    padding: 50px var(--desktop-gap);
    text-align: center
}

#ethics h2 {
    margin-top: 50px;
}

#ethics h3 {
    font-weight: 500;
    margin-bottom: 100px;
}

#ethics h4 {
    margin-top: 50px;
    font-size: 22px;
    text-decoration: underline;
}

#ethics .division {
    display: flex;
    width: 80%;
    height: 150px;
    justify-content: space-evenly;
    align-items: center;
    margin: 100px auto;
    margin-top: 50px;
}

#ethics .division a {
    display: block;
    width: 22.5%;
    position: relative;
    height: 100px;
}

/* #ethics .division a:nth-child(2) {
    margin: 0 100px;
} */

.related span {
    position: absolute;
    white-space: nowrap;
    font-size: 12px;
    color: #333C67;
    margin-top: 25px;
    transform: translateX(-50%);
    bottom: -35px;
    left: 50%;
}

.showmore {
    transition: var(--all);
    opacity: .75
}

.showmore:hover {
    opacity: 1
}

.icon-scroll,
.icon-scroll:before {
  position: absolute;
  left: 50%;
}
.icon-scroll {
  width: 40px;
  height: 70px;
  margin-left: -20px;
  bottom: 10px;
  transform: scale(.4);
  margin-top: -35px;
  box-shadow: inset 0 0 0 1px #fff;
  border-radius: 25px;
}
.icon-scroll:before {
  content: '';
  width: 8px;
  height: 8px;
  background: #fff;
  margin-left: -4px;
  top: 8px;
  border-radius: 4px;
  -webkit-animation-duration: 1.5s;
          animation-duration: 1.5s;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-name: scroll;
          animation-name: scroll;
}
@-webkit-keyframes scroll {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(46px);
            transform: translateY(46px);
  }
}
@keyframes scroll {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(46px);
            transform: translateY(46px);
  }
}

@keyframes rotation {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(359deg);
    }
}

@-webkit-keyframes rotation {
    from {
        -webkit-transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(359deg);
    }
}