@font-face {
    font-family: OverpassNerd;
    src: url("/style/fonts/overpass/OverpassNerdFont-Regular.otf") format("opentype");
}
:root {
  --main-bg-color: #111317;
  --main-fg-color: #d7afaf;
  --theme-white: #e4e4e4;
  --secondary-bg-color: color-mix(in srgb, var(--main-bg-color) 75%, var(--main-fg-color) 25%);
  --tertiary-bg-color: color-mix(in srgb, var(--main-bg-color) 93%, var(--main-fg-color) 7%);
  --warn-color: color-mix(in srgb, var(--main-fg-color) 15%, #d75f87 85%);
  --good-color: color-mix(in srgb, var(--main-fg-color) 15%, #87af87 85%);
  --alert-color: color-mix(in srgb, var(--main-bg-color) 15%, #ffd787 85%);
}

body {
  background-color: var(--main-bg-color);
  margin: 0 5vw;
}
h1,h2,h3,p,a,hr,li {
  color: var(--main-fg-color);
}
hr.minor {
  border-style: dashed;
  width: 80%;
  margin-top: 2vmax;
}
.text_block {
  display: block;
  margin: 2vmax auto;
  min-width: 50%;
  width: 30vmax;
  max-width: 80%;
  border: var(--main-fg-color) solid 3px;
  border-radius: 8px;
  padding-bottom: 2vmax;
  &> p {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 90%;
    text-align: left;
  }
  & > ul {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 90%;
  }
  & li {
    text-align: left;
  }
}
p > a {
  text-decoration: underline;
}
h1,h2,h3,p,a,li {
  font-family: 'OverpassNerd', sans-serif;
  font-weight: 50;
  text-align: center;
  margin-bottom: 0;
  text-decoration: none;
}
h1 {
  font-size: 3em;
}
.button {
  margin: 1vh 1vw;
  transition: 0.5s;
  display:block;
  & > p {
    margin: 1vh 0vw;
  }
  &:hover{
/*    box-shadow: 0px 0px 30px #da75e5dd;*/
    background-color: var(--secondary-bg-color);
    transition: 0.25s;
  }
}
.flexrow,.wrapgroup{
  display:flex;
  flex-direction: row;
  justify-content: center;
  flex-wrap: wrap;
}
.flexrow {
  margin: 1vh 0;
}
.wrapgroup {
  flex-wrap: nowrap;
  flex: 0 1 0px;
}
.header {
  .wrapgroup > .flexobject {
    a {
      min-width: 45px;
      img {
        width: auto;
      }
      h1 {
        font-size: unset;
        margin: 0;
        width: auto;
        aspect-ratio: 1/1;
      }
      p {
        font-size: 0.75em;
      }
    }
  }
}
.service_column {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  &>a {
    margin-bottom: auto;
    &:last-of-type {
      margin-bottom: 0;
    }
  }
  &>div>a>img {
    margin-top: 0.5vmax;
  }
}
.searchbar {
  display: flex;
  background-color: color-mix(in srgb, var(--secondary-bg-color) 15%, var(--main-bg-color) 85%) ;
  max-width: 600px;
  margin: 1.5vmax auto 1vh;
  > input {
    background: none;
    padding: 1vw;
    border: none;
    color: var(--main-fg-color);
  }
  > input[type=text] {
    flex: 1;
    outline: none;
  }
}
.footer {
  .wrapgroup > .flexobject > a {
    min-width: 35px;
    padding: 1.5vh;
  }
}
.hiddentext {
  color: var(--main-bg-color);
  font-size: 0.5em;
}
#footer {
  margin-bottom: 1vw;
  & > p {
    text-align: center;
  }
}
.flexobject,.flexobject > a {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.pinkborder {
  border-style: solid;
  border-color: var(--main-fg-color);
  border-width: 3px;
  border-radius: 8px;
}
.demo_details {
  display: block;
  width: 14vmax;
  min-width: 225px;
  max-width: 80%;
  margin: 0 auto;
}
.service_subtile {
  margin: 0.5vmin 0;
  > div {
/*    padding: 0.5vh 1vh;*/
    margin: 0 1vw;
    width: 100%;
    border-width: 3px;
    border-radius: 8px;
    border-style: solid;
    &:hover{
      background-color: var(--secondary-bg-color);
      transition: 0.25s;
      &.flexrow:not(:has(:only-child)) {
        justify-content: start;
        > p:first-of-type {
          background-color: var(--secondary-bg-color);
          transition: 0.25s;
          border-radius: 8px 0 0 8px;
          color: var(--main-fg-color);
        }
      }
    }
    &.flexrow:not(:has(:only-child)) {
      justify-content: start;
      > p:first-of-type {
        background-color: var(--main-fg-color);
        color: var(--main-bg-color);
        transition: 0.25s;
      }
    }
    > p {
      margin: auto 0;
      padding: 0.5em;
      &:first-of-type {
        padding: 0.25em 0.5em;
      }
      &:not(:first-of-type) {
        flex-grow: 1;
        font-size: 0.8em;
      }
/*      margin: auto 0;*/
    }
    &.demo {
      width: 7vw;
    }
  }
  & > .warn {
    border-color: var(--warn-color);
    & > p {
      color: var(--warn-color);
    }
    &:hover{
      background-color: color-mix(in srgb, var(--main-bg-color) 75%, var(--warn-color) 25%);
      transition: 0.25s;
    }
  }
  & > .alert {
    border-color: var(--alert-color);
    & > p {
      color: var(--alert-color);
    }
    &:hover{
      background-color: color-mix(in srgb, var(--main-bg-color) 75%, var(--alert-color) 25%);
      transition: 0.25s;
    }
  }
  & > .good {
    border-color: var(--good-color);
    & > p {
      color: var(--good-color);
    }
    &:hover{
      background-color: color-mix(in srgb, var(--main-bg-color) 75%, var(--good-color) 25%);
      transition: 0.25s;
    }
  }
}
.warning {
  padding: 0.5vh 1vh;
  width: fit-content;
  margin: 0 1vmin;
  border-style: solid;
  border-color: var(--warn-color);
  border-width: 3px;
  border-radius: 8px;
  & > p {
    color: var(--warn-color);
    margin: auto 0;
  }
  & > h2 {
    margin: auto 0;
  }
  & > img {
    margin: auto 1vh auto 0px;
    height: 1em;
  }
}
.flex_spacer {
  margin: 0 80px;
}
.flex_column {
  margin: 0 120px;
}
.diagram {
  width: 60%;
  display: block;
  margin: 3vw auto;
}
.flexobject {
  & > a {
    min-width: 75px;
    text-decoration: none;
    padding: 1.5vh 2vmax;
    & > p {
      font-size: 1em;
      margin-bottom: 0px;
    }
  }
  & > .buttondetails {
    display:flex;
    flex-direction: row;
    width: 100%;
    justify-content: space-evenly;
    & > a {
      width: 50%;
      padding: 10px 0;
      & > img {
        display: block;
        margin: 0 auto;
      }
    }
    & > a:hover {
      opacity: 50%;
    }
  }
}
.platformicon{
  margin: 0px 0px 0px 0.75vmin;
}
h2:has(+ .platformicon) {
  margin: auto 0;
}
.textsection {
  margin: 2vh auto;
  max-width: 600px;
  & > .groupcontent {
    margin-top: 3vh;
  }
}
.clientgroup {
  flex: 1 1 0px;
  flex-wrap: wrap;
  min-width: 40vh;
  margin: 2vh 2vw;
  height: fit-content;
}
.clientgroup,.textsection{
  & > .groupheader,&>.flexrow:has(.groupheader),&>.flexrow>.groupheader {
    background-color: var(--main-fg-color);
    color: var(--main-bg-color);
    margin-top: 0;
  }
  & > .groupcontent {
    padding: 0 2vw 2vh;
    & > .flexrow:has(h2) {
      margin-top: 3vh;
    }
  }
}
.termtext {
  font-family:monospace;
  background-color: var(--main-fg-color);
  padding: 0px 3px;
  color: var(--main-bg-color);
}
:target {
  background-color: var(--tertiary-bg-color);
  border-radius: 13px;
  padding: 2vh 0;
}
.mcmap {
  height: 500px;
  & > iframe {
    width:100%;
    height:100%;
  }
}
@font-face {
  font-family: 'Overpass';
  font-style: normal;
  font-weight: 400;
  src: url(/style/fonts/overpass/latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Overpass';
  font-style: normal;
  font-weight: 400;
  src: url(/style/fonts/overpass/latin.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;
}
