@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

@font-face {
  font-family: 'IBMPlexSans-Light';
  src: url("fonts/otf/IBMPlexSans-Light.otf") format("opentype"), url("fonts/woff/IBMPlexSans-Light-Latin1.woff") format("woff"), url("fonts/woff2/IBMPlexSans-Light-Latin1.woff2") format("woff2"), url("fonts/eot/IBMPlexSans-Light.eot") format("eot");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'IBMPlexSans-ExtraLight';
  src: url("fonts/otf/IBMPlexSans-ExtraLight.otf") format("opentype"), url("fonts/eot/IBMPlexSans-ExtraLight.eot") format("eot");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'IBMPlexSans-Medium';
  src: url("fonts/otf/IBMPlexSans-Medium.otf") format("opentype"), url("fonts/eot/IBMPlexSans-Medium.eot") format("eot");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'IBMPlexSans-Regular';
  src: url("fonts/otf/IBMPlexSans-Regular.otf") format("opentype"), url("fonts/woff/IBMPlexSans-Regular-Latin1.woff") format("woff"), url("fonts/woff2/IBMPlexSans-Regular-Latin1.woff2") format("woff2"), url("fonts/eot/IBMPlexSans-Regular.eot") format("eot");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "GuessSansW00-Light";
  src: url("fonts/eot/GuessSans-Light.eot");
  /* IE9*/
  src: url("fonts/eot/GuessSans-Light.eot?#iefix") format("embedded-opentype"), url("fonts/woff2/GuessSans-Light.woff2") format("woff2"), url("fonts/woff/GuessSans-Light.woff") format("woff"), url("fonts/woff/GuessSans-Light.ttf") format("truetype"), url("fonts/svg/GuessSans-Light.svg#GuessSansW00-Light") format("svg");
  /* iOS 4.1- */ }

html, body, * {
  font-family: 'IBMPlexSans-Light', sans-serif; }

* {
  box-sizing: border-box; }

html, body {
  width: 100vw;
  height: 100vh; }

body {
  background: url("img/bg.jpg") no-repeat;
  background-size: cover;
  background-attachment: fixed; }
  body:before {
    left: 0;
    top: 0;
    background: radial-gradient(circle farthest-side, #fff, transparent);
    width: 100vw;
    height: 100vh;
    content: '';
    position: fixed;
    z-index: -1; }
  @media (min-width: 900px) {
    body:after {
      background: url("img/graduation-tile.png");
      background-attachment: fixed;
      background-position: 100% 0;
      content: '';
      display: block;
      width: 32px;
      height: 90%;
      position: absolute;
      top: 10%;
      right: 0; } }

.hidden {
  opacity: 0;
  pointer-events: none; }

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  /* display: none; <- Crashes Chrome on hover */
  -webkit-appearance: none;
  margin: 0;
  /* <-- Apparently some margin are still there even though it's hidden */ }

header.main {
  left: 0;
  top: 0;
  width: 100vw;
  height: 72px;
  display: flex;
  flex-direction: row;
  align-items: center;
  position: fixed;
  z-index: 2;
  transition: opacity 0.45s ease-in-out, transform 0.45s ease-in-out; }
  header.main:after {
    left: 0;
    top: 0;
    width: 100vw;
    height: 88px;
    background: linear-gradient(#eae3d4, #eae3d4 60%, rgba(234, 227, 212, 0) 100%);
    content: '';
    display: block;
    position: fixed;
    z-index: -1; }
    @media (min-width: 600px) {
      header.main:after {
        background: linear-gradient(#eae3d4, #eae3d4 50%, rgba(234, 227, 212, 0) 100%); } }
  header.main.hidden {
    transform: translate3d(0, -72px, 0); }
  header.main .back {
    flex: 1;
    transform: none;
    transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out; }
    header.main .back a {
      display: block;
      background: url("img/button-back@2x.png") no-repeat;
      background-size: 72px 16px;
      background-position: 22px center;
      cursor: pointer;
      font-size: 1px;
      padding: 28px 0;
      text-indent: -9999px;
      width: 116px;
      height: 16px; }
    header.main .back.hidden {
      display: block;
      pointer-events: none;
      opacity: 0; }
  header.main .logo {
    width: 97px;
    height: 18px;
    background: url(img/logo-offset.svg) no-repeat;
    background-size: 97px 18px;
    color: transparent;
    flex: 1;
    margin: 0 0 0 24px;
    text-indent: -9999px; }
    @media (min-width: 600px) {
      header.main .logo {
        width: 156px;
        height: 30px;
        background-size: 156px 30px; } }
  header.main .usage {
    color: #223A52;
    font-size: 32px;
    line-height: 32px;
    margin-right: 12px;
    vertical-align: baseline;
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out; }
    header.main .usage small {
      font-size: 16px;
      line-height: 32px; }
  header.main .close {
    top: 24px;
    right: 24px;
    width: 21px;
    height: 22px;
    background: url("img/icon-close.svg");
    background-size: 21px 22px;
    cursor: pointer;
    position: absolute;
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
    opacity: 0;
    transform: scale3d(1.1, 1.1, 1); }

.modal header.main .close {
  opacity: 1;
  transform: scale3d(1, 1, 1); }

.modal header.main .usage {
  opacity: 0;
  transform: scale3d(0.9, 0.9, 1); }

.content {
  color: #223A52;
  padding: 0 24px;
  padding-top: 88px;
  padding-bottom: 120px;
  position: relative;
  text-align: center; }
  @media (min-width: 600px) {
    .content {
      padding-top: 180px; } }
  .content h1 {
    font-size: 24px;
    line-height: 32px;
    margin-bottom: 16px; }
    @media (min-width: 600px) {
      .content h1 {
        display: inline-block;
        font-size: 48px;
        font-family: 'IBMPlexSans-ExtraLight';
        line-height: 56px;
        margin-bottom: 44px;
        max-width: 700px; } }
  .content h2, .content label {
    font-family: 'IBMPlexSans-Medium';
    font-size: 16px;
    line-height: 32px; }
  .content h3 {
    font-family: 'IBMPlexSans-Medium';
    font-size: 20px;
    line-height: 36px; }
  .content p {
    font-size: 16px;
    line-height: 24px;
    margin-bottom: 24px; }
    @media (min-width: 600px) {
      .content p {
        font-size: 24px;
        line-height: 36px;
        margin: 0 auto 48px;
        max-width: 720px;
        padding: 0 40px; } }
  .content p a {
    color: #0CB6BB;
    text-decoration: none;
    cursor: pointer; }
    .content p a:hover {
      text-decoration: underline;
      text-decoration-style: dotted; }

footer {
  position: absolute;
  left: 0;
  bottom: 0px;
  text-transform: uppercase;
  width: 100vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 16px; }
  footer > p {
    font: 400 11px GuessSansW00-Light,Arial,Helvetica,sans !important;
    color: #000; }
  footer .logo {
    width: 99px;
    height: 40px;
    background: url(/img/logo-flow-2021-footer.svg) no-repeat;
    background-size: contain;
    margin-top: 8px;
    margin-bottom: 12px;
    cursor: pointer; }
  footer a {
    cursor: pointer; }

.button {
  background-color: #0AB6B9;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  height: 56px;
  color: #fff;
  font-size: 20px;
  letter-spacing: 0.2px;
  line-height: 56px;
  outline: none;
  padding: 0 26px;
  text-align: center;
  box-shadow: 0 4px 16px -8px #103F59; }
  .button.alt {
    background-color: #0AB6B9; }
  .button.arrow {
    padding-right: 68px;
    position: relative; }
    .button.arrow:after {
      right: 24px;
      top: 20px;
      width: 25px;
      height: 17px;
      background: url("img/button-arrow.svg") no-repeat;
      background-size: 25px 17px;
      content: '';
      position: absolute; }
  .button.restart {
    background: #0CB6BB;
    padding-right: 68px;
    position: relative;
    margin-bottom: 16px;
    margin-top: 0px;
    min-width: 200px; }
    .button.restart:after {
      right: 24px;
      top: 20px;
      width: 18px;
      height: 22px;
      background: url("img/icon-restart.svg") no-repeat;
      background-size: 18px 22px;
      content: '';
      position: absolute; }
  .button.disabled {
    cursor: not-allowed;
    opacity: 0.5; }
  .button.wide {
    min-width: 255px; }

.water {
  left: 0;
  top: 0;
  width: 100vw;
  height: 55vh;
  position: fixed;
  z-index: -1; }

.numeric {
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 4px;
  box-shadow: inset 0 1px 1px 0 rgba(16, 63, 89, 0.41);
  color: #223A52;
  font-size: 25px;
  flex: 1;
  height: 56px;
  line-height: 56px;
  max-width: 183px;
  margin: 0 8px;
  outline: none;
  text-align: center;
  width: 100px; }

.numeric-wrapper {
  display: flex;
  justify-content: center;
  flex-direction: row; }
  .numeric-wrapper a {
    width: 56px;
    height: 56px;
    display: block;
    background: rgba(10, 182, 185, 0.7);
    border-radius: 28px;
    color: #fff;
    cursor: pointer;
    flex-grow: 0;
    flex-shrink: 0;
    flex-basis: 56px;
    font-size: 25px;
    line-height: 56px;
    overflow: hidden;
    user-select: none; }
    .numeric-wrapper a:hover {
      background: #0AB6B9; }

.screen {
  left: 0;
  top: 0;
  min-height: 100vh;
  width: 100vw;
  overflow: hidden;
  position: absolute;
  display: none; }

.screen-days h1 {
  margin-bottom: 145px;
  position: relative; }
  .screen-days h1:after {
    left: 50%;
    bottom: -145px;
    width: 98px;
    height: 113px;
    content: '';
    background: url("img/icon-calendar.svg");
    background-size: 98px 113px;
    display: block;
    margin-left: -49px;
    position: absolute; }

.screen-days .numeric-wrapper {
  padding-top: 32px; }

.screen-days .button {
  margin-top: 40px; }

.screen-donate .content {
  padding-left: 0;
  padding-right: 0; }
  @media (min-width: 600px) {
    .screen-donate .content {
      padding-left: 24px;
      padding-right: 24px;
      padding-top: 100px;
      display: flex;
      justify-content: center; } }
  @media (min-width: 600px) {
    .screen-donate .content .project-info {
      max-width: 640px;
      margin-right: 5%;
      display: flex;
      flex-direction: column; } }
  @media (min-width: 600px) {
    .screen-donate .content .donation {
      margin-top: 104px; } }
  .screen-donate .content .project-info img {
    width: 100%;
    height: auto;
    margin-bottom: 24px; }
  @media (min-width: 600px) {
    .screen-donate .content p {
      margin-bottom: 24px;
      padding: 0;
      font-size: 20px;
      line-height: 32px; } }

.screen-donate .inner {
  padding-left: 24px;
  padding-right: 24px; }
  @media (min-width: 600px) {
    .screen-donate .inner {
      padding-left: 0;
      padding-right: 0; } }

.screen-donate .icon {
  width: 125px;
  height: 144px;
  background: url("img/icon-project1.svg") no-repeat;
  background-size: 125px 144px;
  margin: 0 auto 20px; }

@media (min-width: 600px) {
  .screen-donate h2 {
    text-align: left;
    display: block; } }

.screen-donate h1 {
  margin-bottom: 20px; }
  @media (min-width: 600px) {
    .screen-donate h1 {
      text-align: left;
      display: block; } }

.screen-donate p {
  text-align: left;
  font-size: 16px;
  line-height: 24px; }

.screen-donate h3 {
  font-size: 16px;
  line-height: 24px;
  margin-bottom: 8px;
  text-align: left; }

.screen-donate .offset {
  width: 100%;
  height: 64px;
  background: #fff;
  border-radius: 4px;
  box-shadow: inset 0 1px 3px 0 rgba(17, 51, 84, 0.84);
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: 'IBMPlexSans-Light', sans-serif;
  font-size: 20px;
  line-height: 32px;
  margin-bottom: 20px; }
  .screen-donate .offset img {
    position: relative;
    left: 8px;
    top: 0px; }

.screen-donate .extra {
  margin-bottom: 20px; }
  @media (min-width: 600px) {
    .screen-donate .extra {
      margin-bottom: 24px; } }
  .screen-donate .extra > div {
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    text-align: left;
    box-shadow: 0 1px 1px 0 rgba(16, 63, 89, 0.32);
    padding: 12px 16px;
    margin-bottom: 8px;
    opacity: 0.85;
    transition: opacity 0.2s ease-in-out, box-shadow 0.2s ease-in-out; }
    .screen-donate .extra > div.active {
      box-shadow: inset 0px 0px 0px 2.5px #0CB6BB;
      opacity: 1; }
  .screen-donate .extra.no-click > div {
    cursor: default;
    opacity: 1; }
  .screen-donate .extra h4 {
    font-size: 16px;
    line-height: 24px; }
    .screen-donate .extra h4 img {
      position: absolute;
      margin-left: 3px; }
  .screen-donate .extra small {
    padding-left: 36px;
    opacity: 0.5;
    float: right; }
  .screen-donate .extra p {
    font-family: 'IBMPlexSans-Light', sans-serif;
    font-size: 14px;
    line-height: 24px;
    margin: 0;
    padding: 0;
    opacity: 0.7; }
  .screen-donate .extra .input {
    position: relative;
    margin-top: 12px;
    margin-bottom: 4px;
    margin-right: 4px; }
  .screen-donate .extra input {
    border: 1px solid #D4D4D4;
    border-radius: 4px;
    color: #646464;
    font-size: 20px;
    height: 48px;
    line-height: 48px;
    padding: 0 16px;
    padding-left: 32px; }
  .screen-donate .extra .input:after {
    content: '€';
    font-family: 'IBMPlexSans-Light', sans-serif;
    font-size: 20px;
    line-height: 48px;
    height: 48px;
    position: absolute;
    left: 16px;
    top: 0;
    opacity: 0.5; }

.screen-donate .total .button {
  background-color: #0AB6B9;
  min-width: 160px;
  margin-bottom: 4px; }

.screen-donate .total h1 {
  font-family: IBMPlexSans-Regular;
  font-size: 24px;
  line-height: 1em;
  opacity: 0.5;
  position: absolute; }

.screen-donate .total .rands {
  font-size: 32px;
  text-align: right; }

.screen-donate .total .credits {
  font-size: 16px;
  line-height: 24px;
  font-family: 'IBMPlexSans-Medium';
  opacity: 0.5;
  margin-bottom: 12px;
  margin-top: 3px;
  text-align: right; }

.screen-donate .total img {
  width: 18px;
  height: 18px;
  position: relative;
  top: 3px;
  left: 4px;
  margin-right: 5px; }

.screen-home .content {
  padding-top: 40px; }
  @media (max-width: 599px) {
    .screen-home .content {
      padding: 40px 16px 120px; } }

.screen-home h1 {
  position: relative;
  padding-top: 78px; }
  @media (min-width: 600px) {
    .screen-home h1 {
      padding-top: 30px;
      max-width: 860px; } }

@media (min-width: 600px) {
  .screen-home .content > p {
    max-width: 860px;
    padding: 0;
    font-size: 20px;
    line-height: 32px; } }

.screen-home h1:before {
  left: 50%;
  top: -30px;
  background: url("img/logo-flow2021-glyph.svg");
  background-size: 86px 88px;
  width: 86px;
  height: 88px;
  content: "";
  position: absolute;
  margin-left: -93px; }
  @media (min-width: 600px) {
    .screen-home h1:before {
      top: -78px; } }

.screen-home .help {
  color: #0AB6B9;
  cursor: pointer;
  display: inline-block;
  font-family: 'IBMPlexSans-Medium', sans-serif;
  font-size: 14px;
  line-height: 20px;
  margin: 16px 0 0;
  max-width: none;
  position: relative;
  padding: 0 0 0 28px; }
  .screen-home .help.why {
    margin-top: 40px; }
  @media (min-width: 600px) {
    .screen-home .help.why {
      margin-top: 48px; } }
  .screen-home .help.terms {
    margin-bottom: 16px; }
  .screen-home .help:after {
    left: 0;
    top: 0;
    width: 20px;
    height: 20px;
    content: '';
    background: url("img/icon-help.svg") no-repeat;
    position: absolute; }
  .screen-home .help.widget:after {
    background: url("img/icon-widget.svg") no-repeat; }
  .screen-home .help.terms:after {
    background: url("img/icon-info.svg") no-repeat; }

.screen-home button.button.restart {
  min-width: none; }
  @media (min-width: 600px) {
    .screen-home button.button.restart {
      margin-bottom: 0;
      margin-right: 16px; } }

.screen-home .flow-logo {
  margin: 0 auto 40px;
  background: url("img/logo-flow-2021-glyph.svg");
  background-size: 86px 88px;
  width: 86px;
  height: 88px; }

.screen-modal .content p {
  text-align: left !important;
  margin-left: 8px;
  margin-right: 20px; }
  @media (min-width: 600px) {
    .screen-modal .content p {
      margin-left: auto;
      margin-right: auto; } }

.screen-modal.about-flow .logo {
  background: url("img/logo-flow2021-horiz.svg");
  background-size: 223px 90px;
  width: 223px;
  height: 90px;
  margin: 0 auto 56px;
  margin-top: -104px; }
  @media (max-width: 599px) {
    .screen-modal.about-flow .logo {
      margin-top: 0;
      margin-bottom: 40px;
      background-size: 186px 75px;
      width: 186px;
      height: 75px; } }

.screen-modal.terms, .screen-modal.privacy {
  margin-top: -104px; }
  .screen-modal.terms p, .screen-modal.terms li, .screen-modal.privacy p, .screen-modal.privacy li {
    font-size: 18px;
    line-height: 25.2px;
    margin-bottom: 32px; }
    .screen-modal.terms p:last-child, .screen-modal.terms li:last-child, .screen-modal.privacy p:last-child, .screen-modal.privacy li:last-child {
      margin-bottom: 0; }
  .screen-modal.terms h2, .screen-modal.privacy h2 {
    text-align: left;
    margin: 0 auto;
    max-width: 720px;
    padding: 0 40px;
    text-transform: uppercase; }
  .screen-modal.terms b, .screen-modal.terms em, .screen-modal.privacy b, .screen-modal.privacy em {
    font-family: IBMPlexSans-Medium,Arial, Helvetica, sans-serif; }
  @media (max-width: 599px) {
    .screen-modal.terms, .screen-modal.privacy {
      margin-top: 0; } }
  .screen-modal.terms li, .screen-modal.privacy li {
    margin-bottom: 0 !important;
    text-align: left;
    list-style-type: disc;
    list-style-position: inside; }
    @media (min-width: 600px) {
      .screen-modal.terms li, .screen-modal.privacy li {
        margin: 0 auto 48px;
        max-width: 720px;
        padding: 0 40px; } }
  .screen-modal.terms ul, .screen-modal.privacy ul {
    margin-bottom: 24px; }
    @media (min-width: 600px) {
      .screen-modal.terms ul, .screen-modal.privacy ul {
        margin-bottom: 32px; } }

.screen-modal.ctwc .icon {
  background: url("img/logo-ctwc.svg") no-repeat;
  background-size: 226px 97px;
  width: 226px;
  height: 97px;
  margin: 0px auto 32px; }
  @media (min-width: 600px) {
    .screen-modal.ctwc .icon {
      width: 412px;
      height: 177px;
      background-size: 412px 177px;
      margin: -60px auto 60px; } }

@media (min-width: 600px) {
  .screen-modal.ctwc p {
    font-size: 20px;
    line-height: 32px;
    max-width: 720px; } }

@media (min-width: 600px) {
  .screen-modal.why .content,
  .screen-modal.flow-credit .content {
    padding-top: 88px; } }

.screen-modal.why .icon,
.screen-modal.flow-credit .icon {
  background: url("img/icon-travel.svg") no-repeat;
  background-size: 108px 117px;
  width: 108px;
  height: 117px;
  margin: -20px auto 16px; }
  @media (min-width: 600px) {
    .screen-modal.why .icon,
    .screen-modal.flow-credit .icon {
      width: 132px;
      height: 143px;
      background-size: 132px 143px;
      margin: 0 auto 24px; } }

.screen-modal.why p,
.screen-modal.flow-credit p {
  padding-left: 54px;
  position: relative; }
  @media (min-width: 600px) {
    .screen-modal.why p,
    .screen-modal.flow-credit p {
      font-size: 20px;
      line-height: 32px;
      max-width: 720px; } }
  .screen-modal.why p:before,
  .screen-modal.flow-credit p:before {
    content: '';
    background: url("img/icon-water.svg") no-repeat;
    background-size: 35px 34px;
    width: 35px;
    height: 34px;
    position: absolute;
    left: 0;
    top: 0; }
  .screen-modal.why p b,
  .screen-modal.flow-credit p b {
    font-family: 'IBMPlexSans-Medium', sans-serif; }

.screen-modal.flow-credit .icon {
  background: url("img/logo-flowtoken.svg") no-repeat;
  background-size: 103px 119px;
  width: 103px;
  height: 119px; }

.screen-modal.flow-credit p:before {
  background-image: url("img/icon-flowtoken.svg");
  opacity: 0.9; }

.screen-questions h2 {
  margin-top: -16px; }
  @media (min-width: 600px) {
    .screen-questions h2 {
      font-family: 'IBMPlexSans-ExtraLight', sans-serif;
      font-size: 48px;
      line-height: 56px;
      margin-bottom: 9px;
      margin-top: -58px; } }

.screen-questions h1 {
  margin-bottom: 176px;
  position: relative; }
  @media (min-width: 600px) {
    .screen-questions h1 {
      display: block;
      font-family: 'IBMPlexSans-Light', sans-serif;
      font-size: 32px;
      line-height: 40px;
      margin-bottom: 36px;
      max-width: none; } }

.screen-questions h3 {
  margin-top: 32px; }
  @media (min-width: 600px) {
    .screen-questions h3 {
      line-height: 56px;
      margin-top: 0;
      text-align: left;
      width: 300px; } }

.screen-questions .questions {
  position: relative; }
  .screen-questions .questions:after {
    content: '';
    left: 50%;
    display: block;
    margin-left: -51px;
    position: absolute; }
    @media (min-width: 600px) {
      .screen-questions .questions:after {
        left: -262px;
        margin-left: 0;
        top: 50px; } }
  @media (min-width: 600px) {
    .screen-questions .questions {
      display: inline-block;
      border-left: 1px solid rgba(34, 58, 82, 0.3);
      margin-left: 262px;
      padding-left: 32px; } }

@media (min-width: 600px) {
  .screen-questions .question {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center; } }

.screen-questions label {
  display: block;
  margin-top: 24px;
  margin-bottom: 8px; }
  @media (min-width: 600px) {
    .screen-questions label {
      width: 300px;
      text-align: left;
      font-family: 'IBMPlexSans-Light', sans-serif;
      font-size: 20px;
      line-height: 24px;
      margin: 0; } }

@media (min-width: 600px) {
  .screen-questions .summary {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    margin-top: 32px; } }

@media (min-width: 600px) {
  .screen-questions .numeric-wrapper {
    margin: 16px 0; } }

.screen-questions .button {
  margin-top: 32px; }
  @media (min-width: 600px) {
    .screen-questions .button {
      margin: 0;
      min-width: 228px; } }

.screen-questions.hygiene .questions:after {
  background: url("img/icon-shower.svg");
  background-size: 103px 120px;
  top: -152px;
  width: 103px;
  height: 120px; }
  @media (min-width: 600px) {
    .screen-questions.hygiene .questions:after {
      top: 50px;
      width: 183px;
      height: 213px;
      background-size: 183px 213px; } }

.screen-questions.food .questions:after {
  background: url("img/icon-food.svg");
  background-size: 103px 120px;
  top: -152px;
  width: 103px;
  height: 120px; }
  @media (min-width: 600px) {
    .screen-questions.food .questions:after {
      top: 46px;
      width: 183px;
      height: 213px;
      background-size: 183px 213px; } }

.screen-questions.housekeeping .questions:after {
  background: url("img/icon-housekeeping.svg");
  background-size: 103px 120px;
  top: -152px;
  width: 103px;
  height: 120px; }
  @media (min-width: 600px) {
    .screen-questions.housekeeping .questions:after {
      top: 46px;
      width: 183px;
      height: 213px;
      background-size: 183px 213px; } }

.screen-reason h1 {
  max-width: 600px;
  margin: 0 auto 68px; }
  @media (min-width: 600px) {
    .screen-reason h1 {
      margin-bottom: 34px; } }

.screen-reason .buttons {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center; }
  @media (max-width: 600px) {
    .screen-reason .buttons {
      flex-wrap: wrap; }
      .screen-reason .buttons .icon {
        zoom: 75%;
        margin-bottom: 24px; } }
  @media (max-width: 460px) {
    .screen-reason .buttons .icon {
      zoom: 63%;
      margin-bottom: 24px; } }
  .screen-reason .buttons .button {
    height: 88px;
    line-height: 26.4px;
    margin-left: 12px;
    margin-right: 12px;
    min-width: 147px; }
    @media (min-width: 600px) {
      .screen-reason .buttons .button {
        margin-left: 24px;
        margin-right: 24px; } }

.screen-reason .icon {
  align-items: center;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  position: relative; }
  .screen-reason .icon:before {
    width: 122px;
    height: 141px;
    content: '';
    background-size: cover;
    background-repeat: no-repeat;
    display: block;
    margin-bottom: 24px; }
  .screen-reason .icon.traveller:before {
    background-image: url("img/icon-traveller.svg"); }
  .screen-reason .icon.event-goer:before {
    background-image: url("img/icon-event-attendee.svg"); }
  .screen-reason .icon.conscious-consumer:before {
    background-image: url("img/icon-conscious-consumer.svg"); }

@media (min-width: 600px) {
  .screen-total .content {
    padding-top: 80px; } }

.screen-total .usage {
  width: 100%;
  height: 64px;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 4px;
  box-shadow: inset 0 1px 3px 0px rgba(17, 51, 84, 0.672);
  color: #223A52;
  font-size: 32px;
  line-height: 32px;
  margin: 0 auto;
  max-width: 343px;
  padding-top: 16px;
  vertical-align: baseline; }
  .screen-total .usage small {
    font-size: 16px;
    line-height: 32px; }
  @media (min-width: 600px) {
    .screen-total .usage {
      max-width: 272px; } }

.screen-total h1 b {
  display: block;
  margin-bottom: 0.25em;
  font-size: 32px;
  line-height: 40px; }

.screen-total h1.alt {
  margin-bottom: 0;
  margin-top: 32px; }

@media (min-width: 600px) {
  .screen-total h1 {
    max-width: none;
    font-size: 32px;
    line-height: 40px; }
    .screen-total h1 b {
      font-size: 48px;
      line-height: 56px; } }

.screen-total h2 {
  line-height: 25px;
  margin-top: 30px; }
  .screen-total h2 img {
    position: relative;
    left: 1px;
    top: 5.5px; }
  .screen-total h2 .help {
    display: inline-block;
    font-size: 14px;
    color: #0AB6B9;
    cursor: pointer;
    position: relative;
    margin-top: 2px;
    text-decoration: underline;
    text-decoration-style: dotted; }

.screen-total .projects {
  display: flex;
  flex-direction: column;
  align-items: center; }
  @media (min-width: 900px) {
    .screen-total .projects {
      flex-direction: row;
      justify-content: center;
      margin-bottom: 24px;
      align-items: flex-start; } }

.screen-total .project {
  align-items: flex-start;
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 4px;
  box-shadow: 0 1px 1px 0 rgba(16, 63, 89, 0.32);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  margin-top: 16px;
  max-width: 360px;
  position: relative;
  width: 100%;
  transition: background-color 0.3s ease-in-out; }
  .screen-total .project:hover {
    background-color: #fff; }
  @media (min-width: 900px) {
    .screen-total .project {
      margin-top: 40px;
      margin-left: 12px;
      margin-right: 12px;
      min-height: 337px; } }
  .screen-total .project .thumb {
    width: 100%;
    height: auto; }
    .screen-total .project .thumb.project1 {
      background-image: url("img/thumb-project1@2x.jpg"); }
    .screen-total .project .thumb.project2 {
      background-image: url("img/thumb-project2@2x.jpg"); }
  .screen-total .project h3 {
    color: #0AB6B9;
    font-family: 'IBMPlexSans-Light', sans-serif;
    font-size: 20px;
    line-height: 24px;
    text-align: left;
    margin: 0;
    padding: 15px 22px;
    padding-bottom: 13px;
    padding-right: 32px;
    position: relative;
    width: 100%; }
    .screen-total .project h3:after {
      content: '';
      background: url("img/arrow-right.svg") no-repeat;
      position: absolute;
      right: 22px;
      top: 20px;
      width: 8px;
      height: 13px; }
  .screen-total .project p {
    font-size: 16px;
    line-height: 24px;
    text-align: left;
    padding: 0 22px;
    margin: 0 0 22px; }

.screen-visitors h1 {
  margin-bottom: 32px;
  position: relative; }

.screen-visitors .numeric-wrapper {
  padding-top: 32px; }

.screen-visitors .button {
  margin-top: 40px; }

.screen-visitors .graphic {
  background: url("img/icon-cloud.svg") no-repeat;
  background-position: 50% 0;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center; }
  .screen-visitors .graphic .hidden {
    margin: 0;
    transform: scale3d(0.3, 0.3, 1); }
  .screen-visitors .graphic .person {
    transition: all 0.2s ease-in-out;
    background: url("img/icon-person.svg");
    margin: 0 5px;
    width: 46px;
    height: 113px; }
    .screen-visitors .graphic .person.hidden {
      margin-right: -46px; }
  .screen-visitors .graphic .plus {
    transition: all 0.2s ease-in-out;
    background: url("img/icon-plus.svg");
    width: 37px;
    height: 37px;
    margin-left: 8px; }
    .screen-visitors .graphic .plus.hidden {
      margin-right: -37px; }

.screen-certificate .desktop {
  display: none; }

@media (min-width: 900px) {
  .screen-certificate .no-desktop {
    display: none; }
  .screen-certificate .desktop {
    display: block; } }

.screen-certificate .content {
  padding-left: 0;
  padding-right: 0;
  display: flex;
  flex-direction: column;
  align-items: center; }
  @media (min-width: 600px) {
    .screen-certificate .content {
      padding-top: 80px; } }
  @media (min-width: 900px) {
    .screen-certificate .content {
      flex-direction: row;
      align-items: center;
      justify-content: center;
      height: 100vh; } }

.screen-certificate .message h1 {
  max-width: 270px; }
  @media (min-width: 600px) {
    .screen-certificate .message h1 {
      max-width: 540px; } }
  @media (min-width: 900px) {
    .screen-certificate .message h1 {
      max-width: 540px; } }

@media (min-width: 900px) {
  .screen-certificate .message {
    order: 2;
    text-align: left;
    margin-left: 60px;
    zoom: 94%; } }

.screen-certificate .message p {
  margin-bottom: 26px; }

.screen-certificate .certificate {
  zoom: 75%; }
  @media (min-width: 375px) {
    .screen-certificate .certificate {
      zoom: 85%; } }
  @media (min-width: 475px) {
    .screen-certificate .certificate {
      zoom: 100%; } }
  @media (min-width: 900px) {
    .screen-certificate .certificate {
      flex-basis: 407px;
      flex-shrink: 0;
      flex-grow: 0;
      order: 1; } }

.screen-certificate .notification {
  background: #0CB6BB;
  border-radius: 4px;
  color: #fff;
  font-family: 'IBMPlexSans-Regular', sans-serif;
  display: inline-block;
  height: 40px;
  line-height: 40px;
  position: absolute;
  top: 16px;
  right: 16px;
  padding: 0 42px 0 16px;
  transition: all 0.3s ease-in-out; }
  .screen-certificate .notification:after {
    background: url("img/icon-check.svg") no-repeat;
    background-size: 18px 18px;
    display: block;
    content: '';
    position: absolute;
    width: 18px;
    height: 18px;
    top: 11px;
    right: 16px; }
  .screen-certificate .notification.hidden {
    opacity: 0;
    transform: scale3d(0.9, 0.9, 1); }

.screen-certificate p, .screen-certificate .form {
  max-width: 270px; }
  @media (min-width: 600px) {
    .screen-certificate p, .screen-certificate .form {
      max-width: 80%; } }
  @media (min-width: 900px) {
    .screen-certificate p, .screen-certificate .form {
      font-size: 24px;
      line-height: 36px;
      max-width: 540px;
      padding: 0;
      margin-left: 0;
      margin-right: 0; } }

.screen-certificate h3 {
  font-size: 16px;
  line-height: 32px;
  margin-bottom: 8px;
  margin-top: 16px; }

.screen-certificate .certificate {
  background: url("img/certificate-small-new@2x.png");
  background-size: 407px 525px;
  width: 407px;
  height: 525px; }
  .screen-certificate .certificate h1 {
    color: #0CB6BB;
    font-size: 30px;
    line-height: 24px;
    margin: 0;
    padding: 0;
    text-transform: uppercase;
    margin-top: 138px;
    margin-bottom: 16px; }
  .screen-certificate .certificate p {
    color: #467370;
    font-size: 16px;
    line-height: 24px;
    padding: 0 64px;
    margin: 0;
    max-width: none; }
    .screen-certificate .certificate p b {
      font-family: 'IBMPlexSans-Medium', sans-serif; }
  .screen-certificate .certificate .name {
    color: #223A52;
    font-size: 20px;
    width: 320px;
    height: 56px;
    padding: 0 16px;
    margin: 0 auto;
    text-align: center;
    margin-top: 16px;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center; }
  .screen-certificate .certificate input {
    color: #223A52;
    font-size: 20px;
    width: 279px;
    height: 56px;
    padding: 0 16px;
    text-align: center;
    margin-top: 16px;
    margin-bottom: 24px; }

.screen-certificate .buttons {
  display: flex;
  margin-bottom: 24px;
  justify-content: center; }
  .screen-certificate .buttons.social {
    flex-direction: column; }
    .screen-certificate .buttons.social button:first-child {
      margin-bottom: 16px; }
    @media (min-width: 600px) {
      .screen-certificate .buttons.social {
        flex-direction: row; }
        .screen-certificate .buttons.social button:first-child {
          margin-right: 16px;
          margin-bottom: 0; } }
  @media (min-width: 900px) {
    .screen-certificate .buttons {
      justify-content: flex-start; } }
  .screen-certificate .buttons button {
    background: #233952;
    font-size: 14px; }
    @media (min-width: 900px) {
      .screen-certificate .buttons button {
        font-size: 16px; } }
    .screen-certificate .buttons button.email {
      padding: 0 64px; }
  .screen-certificate .buttons a {
    cursor: pointer;
    display: block;
    font-size: 1px;
    text-indent: -9999px;
    width: 158px;
    height: 66px;
    background-size: 158px 66px;
    margin: 0 8px;
    transition: opacity 0.3s ease-in-out; }
    @media (min-width: 900px) {
      .screen-certificate .buttons a {
        margin-left: 0;
        margin-right: 16px; } }
    .screen-certificate .buttons a.fb {
      background-image: url("img/social-fb@2x.png"); }
    .screen-certificate .buttons a.email {
      background-image: url("img/social-email@2x.png");
      background-color: #233952;
      color: #fff; }
    .screen-certificate .buttons a.disabled {
      opacity: 0.5;
      cursor: not-allowed; }

.screen-certificate .form {
  display: flex;
  flex-direction: column;
  gap: 26px;
  margin: 0 auto;
  margin-bottom: 44px; }
  @media (min-width: 900px) {
    .screen-certificate .form {
      margin-bottom: 0; } }
  .screen-certificate .form input:not([type=checkbox]) {
    border: solid 2px #7c7c7c;
    border-radius: 16px;
    font-family: 'IBMPlexSans-Light', sans-serif;
    font-size: 20px;
    line-height: 20px;
    padding: 12px 16px;
    text-align: center;
    max-width: 325px;
    margin: 0 auto; }
    @media (min-width: 900px) {
      .screen-certificate .form input:not([type=checkbox]) {
        margin: 0; } }
  .screen-certificate .form .checkboxes {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px; }
    .screen-certificate .form .checkboxes .checkbox {
      align-items: flex-start; }
    @media (max-width: 899px) {
      .screen-certificate .form .checkboxes {
        padding: 0 40px; } }
    @media (max-width: 599px) {
      .screen-certificate .form .checkboxes {
        padding: 0 0px; } }
    @media (min-width: 900px) {
      .screen-certificate .form .checkboxes {
        margin: 0;
        gap: 0; }
        .screen-certificate .form .checkboxes .checkbox {
          align-items: center; } }
  .screen-certificate .form .checkbox {
    font-family: 'IBMPlexSans-Medium', sans-serif;
    font-size: 16px;
    gap: 0;
    display: flex;
    justify-content: center;
    align-items: center; }
    .screen-certificate .form .checkbox label {
      line-height: 19px;
      text-align: left; }
    .screen-certificate .form .checkbox input {
      border: solid 2px #7c7c7c;
      width: 24px;
      height: 24px;
      min-width: 24px;
      min-height: 24px;
      border-radius: 16px;
      margin-right: 16px;
      accent-color: #4B8DC9; }

.screen-certificate .hidden {
  display: none; }

.screen-certificate .message {
  transition: opacity .3s ease-in-out, transform .3s ease-in-out; }
  .screen-certificate .message.hide {
    opacity: 0;
    transform: scale(0.95); }

.lds-ring {
  display: inline-block;
  position: relative;
  width: 50px;
  height: 50px;
  margin-left: 16px; }

.lds-ring div {
  box-sizing: border-box;
  display: block;
  position: absolute;
  width: 48px;
  height: 48px;
  margin: 7px;
  border: 7px solid #233952;
  border-radius: 50%;
  animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  border-color: #233952 transparent transparent transparent; }

.lds-ring div:nth-child(1) {
  animation-delay: -0.45s; }

.lds-ring div:nth-child(2) {
  animation-delay: -0.3s; }

.lds-ring div:nth-child(3) {
  animation-delay: -0.15s; }

@keyframes lds-ring {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }

.block-grid {
  display: grid;
  max-width: 840px;
  width: 100%;
  grid-template-columns: 1fr 1fr;
  grid-gap: 24px;
  margin: 0 auto 24px; }
  @media (max-width: 959px) {
    .block-grid {
      grid-template-columns: 1fr;
      grid-gap: 0;
      row-gap: 24px; } }
  @media (max-width: 599px) {
    .block-grid {
      row-gap: 16px; } }

.block {
  background: #233952;
  border-radius: 24px;
  color: #fff;
  padding: 40px 32px;
  text-align: left;
  display: flex;
  flex-direction: column;
  transition: transform .4s ease-in-out, opacity .4s ease-in-out; }
  .block.hide {
    opacity: 0;
    transform: scale(0.95) rotateX(5deg); }
  .block a {
    font-family: IBMPlexSans-Medium, sans-serif;
    text-decoration: none !important; }
    .block a:hover {
      text-decoration: underline !important; }
  .block h2 {
    font-family: GuessSansW00-Light, sans-serif;
    font-size: 48px;
    line-height: 48px;
    text-transform: uppercase;
    margin-bottom: 24px; }
    @media (max-width: 599px) {
      .block h2 {
        font-size: 44px;
        line-height: 44px; } }
    .block h2.chevron:after {
      content: '';
      background: url(/img/chevron.svg);
      background-size: 12px 25.3px;
      width: 12px;
      height: 25.3px;
      display: inline-block;
      margin-left: 16px;
      position: relative;
      top: 0.5px; }
  .block p {
    font-size: 18px;
    line-height: 25.2px;
    margin: 0 0 24px;
    padding: 0; }
    .block p b {
      font-family: IBMPlexSans-Medium, sans-serif; }
  @media (max-width: 959px) {
    .block {
      grid-column: 1; } }

@keyframes attract {
  0% {
    transform: translateX(0px); }
  100% {
    transform: translateX(3px); } }

.block.clickable {
  cursor: pointer;
  transition: transform .25s ease-in-out; }
  .block.clickable:hover {
    transform: scale(1.03); }
    .block.clickable:hover h2.chevron:after {
      animation-name: attract;
      animation-duration: .6s;
      animation-iteration-count: infinite;
      animation-timing-function: ease-in-out; }

.block.start {
  background-color: #0AB6B9;
  align-items: center;
  justify-content: center; }
  .block.start img {
    margin-bottom: 40px; }
  .block.start h2 {
    font-size: 32px;
    line-height: 32px; }
  .block.start a {
    color: #223A52; }

.block.total {
  background-color: #45716C;
  flex-direction: row;
  grid-column: span 2;
  padding: 40px; }
  @media (max-width: 599px) {
    .block.total {
      padding: 40px 32px; } }
  .block.total h2 {
    color: #90BE54;
    margin-right: 40px;
    max-width: 410px;
    margin-bottom: 0; }
  .block.total .value {
    text-align: right;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    flex: 1; }
    .block.total .value span {
      display: block; }
    .block.total .value :first-child {
      font-family: GuessSansW00-Light, sans-serif;
      font-size: 96px;
      line-height: 96px; }
      @media (max-width: 599px) {
        .block.total .value :first-child {
          font-size: 72px;
          line-height: 72px; } }
    .block.total .value :last-child {
      font-family: GuessSansW00-Light, sans-serif;
      font-size: 24px;
      line-height: 24px;
      text-transform: uppercase; }
      @media (max-width: 599px) {
        .block.total .value :last-child {
          font-size: 18px;
          line-height: 18px; } }
  @media (max-width: 959px) {
    .block.total {
      flex-direction: column; }
      .block.total h2 {
        margin-right: 0;
        margin-bottom: 32px; } }

.block.latest {
  align-items: center;
  text-align: center;
  grid-column: span 2; }
  .block.latest h2 {
    font-size: 32px;
    line-height: 32px;
    margin-bottom: 32px; }
  .block.latest ul {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 24px;
    align-items: center; }
  .block.latest li {
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: all .5s ease-in-out; }
    .block.latest li :nth-child(2) {
      font-family: GuessSansW00-Light, sans-serif;
      font-size: 24px;
      line-height: 24px;
      margin-bottom: 8px; }
    .block.latest li :nth-child(3) {
      margin-bottom: 12px; }
    .block.latest li :nth-child(4) {
      font-size: 24px;
      line-height: 24px; }
    .block.latest li.hide {
      opacity: 0;
      transform: scale(0.8); }
      .block.latest li.hide img, .block.latest li.hide span {
        transition: transform .5s ease-in-out; }
      .block.latest li.hide img {
        transform-origin: center;
        transform: translateY(-5px); }
      .block.latest li.hide span {
        transform: translateY(5px); }
  .block.latest img {
    width: 64px;
    height: 64px;
    margin-bottom: 16px; }
  @media (max-width: 959px) {
    .block.latest ul {
      grid-template-columns: repeat(2, 1fr); } }

.block.widget {
  background-color: #45716C;
  grid-column: span 2;
  flex-direction: row;
  padding: 40px; }
  .block.widget img {
    position: relative;
    display: block;
    width: 300px;
    height: 300px;
    max-width: calc(100vw - 112px);
    max-height: calc(100vw - 112px);
    margin-right: 46px; }
  .block.widget picture {
    position: relative; }
    .block.widget picture:before {
      content: '';
      position: absolute;
      display: block;
      top: -16px;
      left: -18px;
      width: 338px;
      height: 332px;
      max-width: calc(100vw - 74px);
      max-height: calc(100vw - 80px);
      background: url(/img/widget-outline.svg) no-repeat;
      background-size: contain; }
  .block.widget .lockup {
    display: flex;
    flex-direction: column; }
  .block.widget h2 {
    font-size: 32px;
    line-height: 32px;
    margin-bottom: 16px; }
  @media (max-width: 959px) {
    .block.widget {
      flex-direction: column;
      align-items: center; }
      .block.widget img {
        margin-right: 0;
        margin-bottom: 56px; } }
