
/* @font-face { font-family: NotoSans; src: url('/fonts/NotoSans-Regular.ttf'); }  */
/* @font-face { font-family: Ubuntu; src: url('/fonts/Ubuntu-Regular.ttf'); }  */
@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap');

body {
  font-family: Ubuntu, Arial, Helvetica, sans-serif;
  font-size: 1.2em;
  margin: 0px;
}

.page {
  width: 100%;
  min-height: 100vh;
}

.page-content {
  flex-grow: 1;
}

.pageHeader {
  padding-left: 1em;
  padding-right: 1em;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
}

.pageHeader-content {
  height: 100%;
  max-width: 1230px;
  margin-left: auto;
  margin-right: auto;
  font-size: 18px;
  font-weight: 500;
}

a {
  text-decoration: none;
  color: black;
}

p {
  margin: 0px;
}

.pageHeader-title > a {
  text-decoration: underline;
}

.pageHeader-navigation {
  display: flex;
  align-items: center;
  width: 100%;
  justify-content: space-evenly;
  gap: 30px;
  flex-wrap: wrap;
}

.button {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  padding-left: 8px;
  padding-right: 8px;
  padding-top: 3px;
  padding-bottom: 3px;
  text-align: center;
  cursor: pointer;
  border: none;
  outline: none;
  background-color: transparent;
  border: 2px solid transparent;

  user-select: none;
}

.button:focus-visible {
  outline: none;
  border-color: rgb(134, 176, 255);
}

.textEntry {
  text-align: center;
  
  border: none;
  outline: none;
  border-bottom: 1px solid #808080;
  background-color: transparent;
}

.textEntry.error {
  border-color: #f33;
}
.text.error {
  color: #f55;
  font-size: 0.7em;
}

.pageHeader input:focus-visible {
  border-color: rgb(134, 176, 255);
}


/* floating panels */

.floatingPanel {
  display: flex;
  flex-direction: column;
  gap: 10px;

  padding: 10px;

  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translate(-50%);
  border-radius: 5px;

  background-color: #fff;
  box-shadow: 1px 1px 4px #00000080;

  z-index: 10;
}

.floatingPanel form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.floatingPanelContainer {
  position: relative;
  height: 20px;
}

.floatingPanelContainer > .button {
  width: 100%;
}

.floatingPanelOpened {
  animation: 0.2s ease-out 0s 1 floatingPanelAppearAnimation forwards;
}

.floatingPanelClosed {
  animation: 0.2s ease-out 0s 1 floatingPanelDisappearAnimation forwards;
}

@keyframes floatingPanelAppearAnimation {
  0% {
    transform: translate(-50%, -10px);
    opacity: 0;
  }
  100% {
    opacity: 1;
    transform: translate(-50%, 0px);
  }
}

@keyframes floatingPanelDisappearAnimation {
  0% {
    opacity: 1;
    transform: translate(-50%, 0px);
  }
  100% {
    transform: translate(-50%, -10px);
    opacity: 0;
    display: none;
  }
}

::selection {
  color: white;
  background-color: #963CEE;
}


/* divs */

.page-content {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 10px;
}

.atCenter {
  align-self: center;
}

.horizontal {
  display: flex;
  flex-direction: row;
  /* flex-wrap: wrap; */
  align-items: center;
  gap: 10px;
}

.vertical {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.largegap {
  gap: 20px;
}

.nogap {
  gap: 0px;
}

.gap12 {
  gap: 12px;
}

.space-between {
  justify-content: space-between;
}

.space-evenly {
  justify-content: space-evenly;
}

.align-center {
  align-items: center;
}

.align-inherit {
  align-items: inherit;
}

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

.full-height {
  height: 100%;
}

.stretch {
  flex-grow: 1;
}

.full-width {
  align-self: stretch;
}

.crop {
  overflow: hidden;
}


/* svg icons */

.svg-icon, img, a {
  user-select: none;
}

.interactive {
  cursor: pointer;
}


/* errorpage */

.errorpage {
  text-align: center;
  position: fixed;
  top: calc(50% - 1em);
  left: 50%;
  transform: translate(-50%, -50%);
}

.errorpage #text-n {
  font-size: 5em;
  color: #808080;
}

.errorpage #text-h1 {
  font-size: 1.5em;
}

.errorpage #text-h2 {
  font-size: 0.7em;
  margin-top: 1em;
  color: #808080;
}

.errorpage #link-home {
  text-decoration: underline;
  font-size: 1em;
}


.background-image {
  position: fixed;
  top: -61px;
  left: -61px;

  width: calc(100% + 61px*2);
  height: calc(100% + 61px*2);

  z-index: -1;

  object-fit: cover;

  overflow: hidden;
  filter: blur(61px);
}


@media (min-width: 1300px) {
  .cover-image {
    width: calc(min(650px, calc(90vw - 50px), calc(90vh - 50px)));
    height: calc(min(650px, calc(90vw - 50px), calc(90vh - 50px)));
    border-radius: 20px;
    box-shadow: 0px 0px 15px #0000004C;
    z-index: 0;

    align-self: center;
    justify-self: center;
  }
  .cover-image.mini {
    width: 300px;
    height: 300px;
  }

  .mobile {
    display: none;
  }
}


@media (max-width: 1299px) {
  .cover-image {
    width: calc(min(650px, calc(90vw - 50px), calc(90vh - 50px)));
    height: calc(min(650px, calc(90vw - 50px), calc(90vh - 50px)));
    border-radius: 20px;
    box-shadow: 0px 0px 15px #0000004C;
    z-index: 0;

    align-self: center;
    justify-self: center;
  }
  .cover-image.mini {
    width: calc(min(300px, calc(90vw - 50px), calc(90vh - 50px)));
    height: calc(min(300px, calc(90vw - 50px), calc(90vh - 50px)));
  }

  .desktop {
    display: none;
  }
}

.panel {
  width: 600px;
  height: calc(100vh - 58.95px);
}

.text-title {
  margin-top: 50px;
  font-size: 24px;
}

.text-subtitle {
  margin-top: 6px;
  font-size: 16px;
}

.separator {
  width: calc(100% - 48px);
  height: 2px;
}

.horizontal > .separator {
  height: 25px;
  width: 2px;
}

.service-option {
  padding-left: 60px;
  padding-right: 60px;
}

.button {
  min-height: 30px;
  min-width: 80px;
  padding-left: 20px;
  padding-right: 20px;
  border-radius: 50px;
}

.panel-download {
  margin-top: 38px;
  padding: 32px;
  border-radius: 20px;
  box-shadow: 0px 0px 15px #0000004C;
  max-width: calc(100vw - 32px*2 - 15px*2);
}

.panel-download .text-title {
  margin-top: 0px;
}

.panel-download .text-subtitle {
  margin-top: -10px;
}

.panel-download-after {
  padding: 50px;
}

.icon15x15 {
  width: 15px;
  height: 15px;
}

.icon22x22 {
  width: 22px;
  height: 22px;
}

.logo {
  width: 90px;
}

.scroll-area {
  overflow-y: scroll;
}

.service-option > img {
  height: 42px;
}


@media (max-width: 600px) {
  .hide-on-squeeze {
    display: none;
  }

  .service-option > img {
    height: 35px;
  }

  .separator {
    width: calc(100% - 10px);
  }

  .service-option {
    padding-left: 0px;
    padding-right: 0px;
  }
}
