/*
 * Copyright (c) 2010, 2023 BSI Business Systems Integration AG
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 */
@import "normalize.css";
@import "main.css";

/* ==== COLORS & SIZES ==== */

// Colors
@palette-white: #FFF;
@palette-almost-white: #EEE;
@palette-dark-gray: #463F37;
@palette-gray: #666;
@palette-lighter-gray: #BBB;
@palette-light-gray: #E5E5E5;
@palette-black: #333;
@palette-blue: #014786;
@palette-medium-blue: #73BDFF;
@palette-light-blue: #CBDEF0;
@palette-bsi-blue: #1482A1;

@palette-orange: #FE9915;
@palette-green: #1482A1;

// Sizes
@font-size-h1: 42px;
@font-size-h2: 36px;
@font-size-h3: 32px;
@font-size-larger: 22px;
@font-size-button: 19px;
@font-size-medium: 16px;
@font-size-small: 14px;

@border-radius-image: 10px;

@column-gap: 30px;
@column-gap-large: 50px;
@vgap-large: 50px;
@vgap-large-center-offset: 9px;
@vgap-medium: 30px;
@vgap-medium-center-offset: 7px;
@vgap-h3: 10px;

@sm-icon-size: 28px;

@tile-height: 200px;
@mobile-max-image-height: 240px;
@mobile-page-margin: 15px;

/* ==== MIX-INS ==== */
#drop-shadow-soft() {
  filter: drop-shadow(0px 6px 15px rgba(0, 0, 0, 0.4));
}

#drop-shadow-hard() {
  filter: drop-shadow(0px 4px 6px rgba(0, 0, 0, 0.4));
}

#title-font(@fontSize, @textColor) {
  margin-top: 0;
  font-weight: bold;
  font-size: @fontSize;
  color: @textColor;
}

#content-link(@h-padding) {
  text-decoration: none;
  background-color: @palette-light-blue;
  padding: 0 @h-padding;
  border-radius: 4px;
  color: @palette-blue;
  white-space: nowrap;

  &:visited {
    color: @palette-black;
  }
}

#arrow-link(@textColor, @imageUrl) {
  color: @textColor;
  text-decoration: none;
  font-weight: bold;

  &::after {
    content: ' ';
    display: inline-block;
    margin-bottom: -4px;
    margin-left: 12px;
    background-image: url(@imageUrl);
    background-repeat: no-repeat;
    background-size: 30px;
    width: 30px;
    height: 21px;
  }
}

#arrow-link-small() {
  &::after {
    background-size: 24px;
    width: 24px;
    height: 18px;
  }
}

// Required on desktop, so we have always a vertical scrollbar, even on pages
// with few content to avoid visual "jumps" when switching between pages.
.filler {
  min-height: 440px;
}

/* ==========================================================================
   Website styles.
   ========================================================================== */

@font-face {
  font-family: 'DaxOT';
  src: url('DaxWeb.eot');
  src: url('DaxWeb.woff') format('woff');
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: 'DaxOT';
  src: url('DaxWeb-Bold.eot');
  src: url('DaxWeb-Bold.woff') format('woff');
  font-weight: 700; /* Bold */
  font-style: normal;
}

body {
  margin-top: 0;
  font-family: DaxOT, sans-serif;
  font-size: 28px;
  font-style: normal;
  font-weight: normal;
  background-color: @palette-light-gray;

  // Required in mobile mode to disable scrolling when navigation panel is open
  &.fixed {
    overflow: hidden;
  }
}

#wrapper {
  max-width: 1200px;
  margin: auto;
  background-color: @palette-white;
}

// Used to detect mobile mode (=media queries) with JavaScript
#device-detection {
  font-size: 0.1px;

  &::before {
    content: 'desktop'
  }
}

/* ==== ANIMATIONS ==== */
.animate-hide {
  animation: fade-out 0.35s linear forwards;
}

.animate-show {
  animation: fade-in 0.35s linear forwards;
}

@keyframes fade-out {
  0% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes fade-in {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

/* ==== HEADER ==== */
header {
  display: flex;
  padding: 50px 60px;
  max-width: 1080px;
  margin: auto;
  background-color: @palette-white;
}

#eclipse-scout-logo {
  margin-top: 5px;
  white-space: nowrap;

  & > .logo {
    background-image: url('../img/eclipse-scout-logo.svg');
    background-repeat: no-repeat;
    background-size: contain;
    width: 35px;
    height: 31px;
    display: inline-block;
    transition: width, height 0.25s ease;
  }

  & > .text {
    background-image: url('../img/eclipse-scout-logo-text.svg');
    background-repeat: no-repeat;
    background-size: contain;
    width: 241px;
    height: 31px;
    display: inline-block;
    transition: all 0.25s ease;
  }
}

#scout-version-button {
  margin-top: 6px;
  margin-right: 10px;
  text-decoration: none;
  position: relative;
  #drop-shadow-hard();

  &:visited {
    color: @palette-black;
  }

  &:hover {
    & > div {
      color: @palette-orange;
    }
    & > svg > circle {
      stroke: @palette-orange;
    }
  }

  & > svg > circle {
    transition: stroke 0.2s ease;
  }

  & > div {
    position: absolute;
    top: 8.5px;
    left: 6px;
    color: @palette-black;
    font-size: @font-size-medium;
    text-align: center;
    transition: color 0.2s ease;
  }
}

#get-started-button {
  height: 36px;
  margin-top: 7px;
  padding: 9px 22px;
  background-color: @palette-blue;
  color: @palette-white;
  border: none;
  border-radius: 3px;
  font-size: @font-size-button;
  line-height: @font-size-button;
  text-transform: uppercase;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.2s ease;

  &:hover {
    background-color: @palette-orange;
  }
}

/* ==== NAVIGATION ==== */

/* Desktop */
#main-navigation {
  display: flex;
  flex-grow: 4;
}

.navigation-item {
  font-size: @font-size-larger;
  cursor: pointer;
  user-select: none;

  & > a {
    text-decoration: none;
    &:visited {
      color: @palette-black;
    }
  }

  /* ---- Level 1 ---- */
  &.lv1 {
    margin: 8px 20px;

    &.first {
      flex-grow: 1;
      text-align: right;
    }

    &.last {
      flex-grow: 1;
    }

    & > .text {
      color: @palette-black;

      &:hover {
        color: @palette-orange;
      }
    }
  }

  /* ---- Level 2 ---- */
  &.lv2 {
    display: block;
    text-decoration: none;

    &:not(.last) {
      margin-bottom: 15px;
    }
    & .title {
      #title-font(@font-size-larger, @palette-black);
      line-height: 24px;
    }
    & .text {
      font-size: @font-size-medium;
      color: @palette-black;
    }
    &::before {
      content: ' ';
      display: inline-block;
      width: 38px;
      height: 30px;
      background-repeat: no-repeat;
      vertical-align: top;
      margin-top: 7px;
    }

    &:visited {
      color: @palette-black;
    }
    &:hover {
      color: @palette-orange;
      & .title {
        color: @palette-orange;
      }
      & .text {
        color: @palette-orange;
      }
    }
  }
}

#icon-eclipse-scout-forum::before {
  background-image: url('../img/regular/conversation-question-warning-1.svg');
  fill: currentColor;
}

#icon-stack-overflow::before {
  background-image: url('../img/regular/developer-community-stack-overflow.svg');
}

#icon-git-hub::before {
  background-image: url('../img/regular/developer-community-github-1.svg');
}

.navigation-item-container {
  display: inline-block;
}

.navigation-lv2-panel {
  position: absolute;
  margin-left: -80px;
  margin-top: 15px;
  background-color: @palette-white;
  padding: 20px 30px 20px 20px;
  box-shadow: 0 4px 40px rgba(0, 0, 0, 0.3);
  z-index: 1;
  border-radius: @border-radius-image;
  border: solid 1px @palette-light-gray;

  &::before {
    content: '';
    position: absolute;
    background-color: white;
    width: 20px;
    height: 20px;
    transform: rotate(45deg);
    top: -10px;
    z-index: 0;
    left: 127px;
  }
}

/* Mobile Navigation */
#mobile-navigation-button {
  background-image: url(../img/regular/navigation-menu.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-color: transparent;
  width: 36px;
  min-width: 36px;
  height: 36px;
  border: none;
  cursor: pointer;

  &.open {
    background-image: url(../img/regular/close.svg);
    background-size: 26px 26px;
    background-position-x: 5px;
    background-position-y: 5px;
  }
}

/* ==== FOOTER ==== */
footer {
  background: radial-gradient(50% 340% at 70% 50%, @palette-black 0%, rgba(51, 51, 51, 0.87) 100%);
  color: @palette-white;
  padding: @vgap-medium 0 (@vgap-medium + @vgap-medium-center-offset) 0;
  font-size: @font-size-medium;
  text-align: center;

  & a {
    &, &:visited {
      text-decoration: none;
      color: @palette-white;
    }
    &:hover {
      color: @palette-orange;
    }
  }

  #copyright {
    font-weight: bold;
    margin-top: 10px;
    margin-bottom: 30px;
  }

  #social-media-bar > a {
    margin: 0 10px;

    & > img {
      max-width: @sm-icon-size;
      max-height: @sm-icon-size;

      &.small {
        max-width: @sm-icon-size - 4px;
        max-height: @sm-icon-size - 4px;
      }
    }
  }

  #eclipse-navigation-bar > a {
    margin: 0 20px;
  }
}

/* ==== INTRO ==== */
#intro-panel {
  display: flex;
  margin: auto auto @vgap-large;
  width: 80%;
}

.intro-column {
  &.first {
    width: calc(~'55% - @{column-gap}');
    margin-right: @column-gap;

    & > img {
      width: 100%;
      border-radius: @border-radius-image;
      #drop-shadow-soft();
    }
  }
  &.last {
    width: 45%;

    & > h1 {
      #title-font(@font-size-h1, @palette-blue);
      line-height: @font-size-h1 + 6px;
    }
    & > p {
      font-size: @font-size-larger;
    }
  }
}

/* ==== FEATURES ==== */
#features-panel {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #E9F0F6 43.23%);
  text-align: center;
  padding-bottom: 30px;

  & > h2 {
    margin: 10px 0;
    text-align: center;
    #title-font(@font-size-h2, @palette-blue);
  }

  & > p {
    margin: auto;
    width: 50%;
    font-size: @font-size-medium;

    & a {
      #content-link(4px);
    }
  }
}

.features-grid {
  display: table;
  width: 75%;
  margin: @vgap-large auto auto;
}

.features-grid-row {
  display: table-row;

  &.first > .features-grid-tile {
    border-bottom: solid 1px @palette-gray;
  }

  &:not(.first) > .features-grid-tile {
    padding-top: 10px;
  }
}

.features-grid-tile {
  text-align: center;
  display: table-cell;
  padding: 5px;
  width: 33.33%;

  &:not(.last) {
    border-right: solid 1px @palette-gray;
  }

  & > a {
    display: block;
    height: @tile-height;
    padding: 10px;
    border-radius: @border-radius-image;
    text-decoration: none;
    transition: background-color 0.2s ease;

    &:visited {
      color: @palette-black;

      & > div, p {
        color: @palette-black;
      }
    }

    &:hover {
      background-color: rgba(255, 255, 255, 0.7);

      & > div {
        color: @palette-blue;
      }
    }

    & > img {
      max-width: 70px;
    }

    & > div {
      #title-font(@font-size-larger, @palette-black);
      margin: 15px 0 0 0;
      color: @palette-black;
    }

    & > p {
      font-size: @font-size-medium;
      margin-top: 8px;
      color: @palette-black;
    }
  }

}

/* ==== DEMO-APPS ==== */
#demo-apps-panel {
  margin: auto;
  padding: @vgap-medium 0;
  width: 80%;

  & > h2 {
    #title-font(@font-size-h2, @palette-blue);
    margin-bottom: 10px;
    text-align: left;
  }
}

#demo-apps-navigation {
  position: relative;
  text-align: center;
  margin: @vgap-medium 0;
}

.donut-line {
  position: absolute;
  height: 3px;
  width: 96%;
  top: 25px;
  left: 2%;
  background-color: @palette-lighter-gray;
}

.demo-apps-buttons {
  display: flex;
  width: 100%;
  position: relative;
}

.demo-app-button-column {
  text-align: center;
  flex-grow: 1;

  &.first {
    text-align: left;
  }
  &.last {
    text-align: right;
  }
}

.demo-app-button {
  display: inline-block;
  text-align: center;
  cursor: pointer;

  & > .demo-app-button-donut {
    padding: 0 10px;
    background-color: @palette-white;
    & > .outer {
      fill: @palette-black;
      transition: fill 0.25s ease;
    }
    & > .inner {
      fill: @palette-white;
    }
  }

  & > .demo-app-button-label {
    font-size: @font-size-larger;
    text-align: center;
    transition: color 0.25s ease;
    user-select: none;
  }

  &:hover:not(.active) {
    & > .demo-app-button-label {
      color: @palette-orange;
    }
    & > .demo-app-button-donut > .outer {
      fill: @palette-orange;
    }
  }

  &.active {
    cursor: default;

    & > .demo-app-button-donut > .outer {
      fill: @palette-blue;
    }
    & > .demo-app-button-label {
      color: @palette-blue;
    }
  }

}

.demo-app-description {
  text-align: left;
  width: calc(~'45% - @{column-gap}');
  margin-right: @column-gap;

  & > div {
    #title-font(@font-size-h3, @palette-black);
    margin-bottom: @vgap-h3;
  }

  & > p {
    font-size: @font-size-larger;
    margin-top: 0;
  }

  & > .launch-app-link {
    font-size: @font-size-larger;
    #arrow-link(@palette-blue, '../img/arrow-blue.svg');

    &:hover {
      color: @palette-orange;
      #arrow-link(@palette-orange, '../img/arrow-orange.svg');
    }
  }
}

#demo-app-container-wrapper {
  position: relative;
  height: 370px;
}

.demo-app-container {
  position: absolute;
  display: flex;
}

.demo-app-image {
  text-align: center;
  width: 55%;

  & > a > img {
    max-width: calc(100% - 2px);
    border-radius: @border-radius-image;
    #drop-shadow-soft();
  }
}

/* ==== GETTING STARTED ==== */
#getting-started-panel {
  background: radial-gradient(50% 340% at 70% 50%, @palette-black 0%, rgba(51, 51, 51, 0.8) 100%);
}

#getting-started-panel-columns {
  display: flex;
  margin: auto;
  padding: @vgap-medium 0 (@vgap-medium + @vgap-medium-center-offset) 0;
  width: 80%;
}

.getting-started-column {
  width: 33%;
  color: @palette-white;
  text-align: center;

  &.center {
    text-align: center;
    vertical-align: middle;
    opacity: 0.85;

    & > img {
      width: 50%;
      margin-top: 30px;
    }
  }

  & > h3 {
    #title-font(@font-size-h3, @palette-white);
    margin-bottom: @vgap-h3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  & > p {
    color: @palette-almost-white;
    font-size: @font-size-larger;
    margin-top: 0;
  }

  & > .get-started-link {
    #arrow-link(@palette-white, '../img/arrow-medium-blue.svg');
    font-size: @font-size-larger;
    color: @palette-medium-blue;

    &:hover {
      #arrow-link(@palette-orange, '../img/arrow-orange.svg');
      color: @palette-orange;
    }
  }
}

/* ==== TRY SCOUT JS ==== */
#try-scout-js-panel {
  margin: auto;
  width: 80%;
}

#try-scout-js-columns {
  margin: @vgap-large 0 (@vgap-large + @vgap-large-center-offset) 0;
  display: flex;
}

.try-scout-js-column {
  &.first {
    width: calc(~'33% - @{column-gap}');
    margin-right: @column-gap;
    padding-top: 53px; // vertical center text in panel
  }
  &.last {
    width: 66%;
  }
  & > h3 {
    #title-font(@font-size-h3, @palette-blue);
    margin-bottom: @vgap-h3;
  }
  & > p {
    font-size: @font-size-larger;
    margin-top: 0;
  }
}

/* This class is generated by CodePen - it may change without notice! */
.cp_embed_wrapper {
  background-color: @palette-light-gray; /* use while CodePen is loading */
}

/* ==== CONTENT ==== */
#content-header {
  width: 60%;
  padding: 0 20%;
  margin: auto auto calc(~'10% + @{vgap-large}'); // compensate for negative margin bottom of IMG
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #E9F0F6 43.23%);
  text-align: center;

  & a {
    #content-link(6px);
  }

  & > h1 {
    #title-font(@font-size-h1, @palette-blue);
    line-height: @font-size-h1 + 6px;
  }
  & > p {
    font-size: @font-size-larger;
    text-align: justify;
  }
  & > img {
    width: 90%;
    border-radius: @border-radius-image;
    margin-bottom: -10%;
    #drop-shadow-soft();
  }
}

.content-block {
  margin: auto;
  width: 100%;
  padding: 4% 10%;
  box-sizing: border-box;

  & > h3 {
    #title-font(@font-size-larger, @palette-black);
  }

  &.first {
    padding-top: 0;
  }

  &.alt-color {
    background-color: rgba(233, 240, 246, 0.3);
  }

  & > .content-block-columns {
    display: flex;

    & > .content-block-column {
      &.first {
        width: calc(~'45% - @{column-gap-large}');
        margin-right: @column-gap-large;

        & > img {
          width: 100%;
          border-radius: @border-radius-image;
          #drop-shadow-soft();
        }
      }

      &.last {
        width: 55%;
        font-size: @font-size-medium;

        & a {
          #content-link(4px);
        }

        & ul {
          list-style: none;
          padding-inline-start: 0;
        }

        & li {
          margin-bottom: 5px;

          &::before {
            content: ' ';
            display: inline-block;
            width: 20px;
            height: 22px;
            background-image: url(../img/arrow-blue.svg);
            background-size: contain;
            background-repeat: no-repeat;
            background-position-y: 4px;
            vertical-align: top;
            margin-right: 8px;
          }
        }

        & > p {
          margin-top: 0;
        }
      }
    }
  }
}

/* ==== VERSIONS ==== */
#versions-header {
  width: 60%;
  padding: 0 20% 1px 20%;
  margin-bottom: 10px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #E9F0F6 43.23%);
  text-align: center;

  & > h1 {
    #title-font(@font-size-h1, @palette-blue);
    line-height: @font-size-h1 + 6px;
  }
  & > p {
    font-size: @font-size-larger;
    text-align: justify;
  }
}

#older-versions-info {
  font-size: @font-size-medium;
  text-align: center;
  margin: 35px 0;

  & > a {
    color: @palette-blue;
    &:visited {
      color: @palette-blue;
    }
  }
}

.version-marker {
  text-transform: uppercase;
  font-weight: bold;
  color: @palette-blue;
}

.version-target  {
  color: @palette-black;
}


/* ==== TABLE ==== */
.content-table {
  font-size: @font-size-medium;
  border-collapse: collapse;
  margin: auto;

  td {
    border-bottom: solid 1px @palette-lighter-gray;
    padding: 10px 15px;

    &.first {
      padding-left: 30px;
      padding-right: 0;
    }

    &.last {
      padding-right: 30px;
    }
  }

  td > a:not([id]) {
    color: @palette-blue;

    &:visited {
      color: @palette-blue;
    }
  }
}

/* ==== TOOLTIPS ==== */
.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dashed @palette-black;

  & > .tooltip-text {
    display: none;
    width: 250px;
    background-color: @palette-black;
    color: @palette-white;
    text-align: justify;
    border-radius: 6px;
    padding: 5px 10px;
    position: absolute;
    z-index: 1;
    top: 150%;
    left: 50%;
    margin-left: -125px;
    font-size: @font-size-medium;
    // Don't use the #drop-shadow-hard mixin here, because 'filter' causes display issues on Mac computers
    // for the tooltip. In other cases filter is required for SVG elements, where box-shadow does not
    // work for round shapes.
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4);

    &::after {
      content: '';
      position: absolute;
      bottom: 100%;
      left: 50%;
      margin-left: -5px;
      border-width: 5px;
      border-style: solid;
      border-color: transparent transparent @palette-black transparent;
    }
    &.adjust-left::after {
      left: 15%;
    }
    &.adjust-right::after {
      left: 85%;
    }
  }

  // See main.js #onTooltipEvent for details on IOs handling
  &:hover:not(.ios) > .tooltip-text,
  &.hover.ios > .tooltip-text {
    display: block;
  }

  &.inverted {
    color: @palette-almost-white;
    border-color: @palette-almost-white;

    & > .tooltip-text {
      background-color: @palette-white;
      color: @palette-black;

      &::after {
        border-bottom-color: @palette-white;
      }
    }
  }

}

/* ==== MEDIA QUERIES & RESPONSIVENESS ==== */
.desktop-only {
  display: block;
}
.mobile-only {
  display: none;
}

/* >= 1000px: desktop mode
   >= 750 and < 1000px: make logo smaller, desktop or tablet mode
   < 750px: mobile mode: re-order items, change navigation
 */

/* ---- Smaller Desktop Mode ---- */
@media screen and (max-width: 999px) {
  #eclipse-scout-logo {
    margin-top: 5px;

    & > .logo {
      height: 40px;
      background-size: cover;
    }

    & > .text {
      opacity: 0;
      width: 0;
    }
  }

  .intro-column.last {
    & > h1 {
      font-size: @font-size-h3;
      line-height: calc(@font-size-h3 + 2px);
    }
    & > p {
      font-size: @font-size-medium;
    }
  }

  /* Features */
  #features-panel {
    & > h2 {
      font-size: @font-size-larger;
    }
    & > p {
      width: 60%;
    }
  }

  .features-grid-tile {
    & > a {
      & > img {
        max-width: 60px;
      }
      & > div {
        font-size: @font-size-button;
      }
      & > p {
        font-size: @font-size-small;
      }
    }
  }

  #demo-apps-panel > h2 {
    font-size: @font-size-larger;
  }

  #demo-app-container-wrapper {
    height: 280px;
  }

  .demo-app-button > .demo-app-button-label {
    font-size: @font-size-medium;
  }

  .demo-app-description {
    & > div {
      font-size: @font-size-button;
    }
    & > p {
      font-size: @font-size-small;
    }
    & > .launch-app-link {
      font-size: @font-size-button;
      #arrow-link-small();

      &:hover {
        #arrow-link-small();
      }
    }
  }

  .getting-started-column {
    & > h3 {
      font-size: @font-size-button;
    }
    & > p {
      font-size: @font-size-small;
    }
    & > .get-started-link {
      font-size: @font-size-button;
      #arrow-link-small();

      &:hover {
        #arrow-link-small();
      }
    }
  }

  .try-scout-js-column {
    & > h3 {
      font-size: @font-size-button;
    }
    & > p {
      font-size: @font-size-small;
    }
  }

  #device-detection::before {
    content: 'tablet';
  }
}

/* ==== MOBILE MODE ==== */
@media screen and (max-width: 749px) {
  .desktop-only {
    display: none !important;
  }
  .mobile-only {
    display: block;
  }
  .filler {
    min-height: auto;
  }

  body {
    background-color: @palette-white;
  }

  /* ---- Header ---- */
  header {
    padding: 10px @mobile-page-margin;
    margin-bottom: 30px;
    border-bottom: solid 1px @palette-bsi-blue;
  }

  // Don't react on clicks, blur everything
  body.fixed > #wrapper {
    filter: blur(2px);
    pointer-events: none;
  }

  #eclipse-scout-logo {
    flex-grow: 1;
    margin-top: 6px;
    height: 24px;
    display: flex;

    & > .logo {
      display: block;
      width: 35px;
      height: 31px;
      background-size: contain;
    }

    & > .text {
      display: block;
      opacity: 1;
      width: 190px;
      margin-top: 1.5px;
    }
  }

  /* ---- Navigation ---- */
  #main-navigation {
    display: none;
    position: fixed;
    padding-top: 10px;
    //background-color: @palette-blue;
    background: rgb(1,71,134);
    background: radial-gradient(circle, rgba(1,71,134,1) 33%, rgba(12,40,66,1) 98%);
    top: 56px;
    right: 0;
    height: calc(100% - 58px);
    z-index: 1;
    color: white;
    width: 55%;
    transition: margin 0.35s ease;
    margin-right: -55%; // Move panel out of the viewport

    &.open { // this class is only implemented for mobile mode
      display: block;
    }

    &.navigation-slide-in {
      margin-right: 0;
    }

    & .navigation-item {
      font-size: @font-size-button;

      &.first {
        text-align: left;
      }

      &.has-children > .text {
        &::after {
          display: inline-block;
          float: right;
          content: '';
          width: 16px;
          height: 16px;
          margin-top: 4px;
          background-image: url(../img/regular/arrow-down-1.svg);
          background-size: contain;
          background-repeat: no-repeat;
          transition: transform 0.25s ease;
        }
        &.open::after {
          transform: rotate(180deg);
        }
      }

      &.lv1 > .text {
        color: white;
      }

      &.lv2 {
        margin-left: 1px;
        margin-bottom: 9px !important;
        margin-top: 9px;

        &::before {
          display: none !important;
        }

        & > .navigation-item-container {
          & > .title {
            font-size: @font-size-medium;
            font-weight: normal;
            color: @palette-light-blue;
          }
          & > .text {
            display: none !important;
          }
        }
      }

      & > a {
        color: white;
      }
    }
  }

  .navigation-lv2-panel {
    position: static;
    margin: 0;
    background-color: transparent;
    padding: 0;
    box-shadow: none;
    z-index: inherit;
    border-radius: 0;
    border: none;
    // Maybe we should do this with jQuery animation, because CSS only cannot animate height 'auto' to 0
    // See: https://stackoverflow.com/questions/3508605/how-can-i-transition-height-0-to-height-auto-using-css
    overflow: hidden;
    transition: max-height 0.4s ease;
    max-height: 200px;
    height: auto;

    &::before {
      content: none;
    }

    &.hidden {
      display: inherit !important; // Override hidden from normalizer.css
      max-height: 0;
    }
  }

  /* ---- Intro ---- */
  #intro-panel {
    flex-direction: column-reverse;
    margin: auto @mobile-page-margin @vgap-medium @mobile-page-margin;
    width: calc(~'100% - 2 * @{mobile-page-margin}');
  }

  .intro-column {
    &.first {
      width: auto;
      margin-right: 0;
      text-align: center;

      & > img {
        width: auto;
        max-height: @mobile-max-image-height;
        max-width: 100%;
      }
    }
    &.last {
      width: 100%;
    }
  }

  /* ---- Features ---- */
  #features-panel {
    text-align: left;
    padding-bottom: 10px;

    & > h2 {
      text-align: left;
      padding: 0 @mobile-page-margin;
    }
    & > p {
      text-align: left;
      width: auto;
      padding: 0 @mobile-page-margin;
      margin-bottom: 15px;
    }
  }

  .features-grid {
    display: flex;
    width: auto;
    overflow-x: scroll;
    overflow-y: hidden;
    height: 250px;
    padding: 0 calc(@mobile-page-margin / 2);
    margin-top: 15px;
  }

  .features-grid-row {
    display: flex;

    &.first > .features-grid-tile {
      border-bottom: none;
    }

    &:not(.first) > .features-grid-tile {
      padding: 5px;
    }
  }

  .features-grid-tile {
    display: block;
    width: auto;

    & > a {
      display: block;
      width: 185px;
      height: 205px;
      border: solid 1px #ccc;
      background-color: rgba(255, 255, 255, 0.5);
    }

    &:not(.last) {
      border-right: none;
    }
  }

  /* ---- Demo Apps ---- */
  #demo-apps-panel {
    width: calc(~'100% - 2 * @{mobile-page-margin}');
    padding: 15px 0;
  }

  #demo-apps-navigation {
    margin: 20px 0 10px 0;
  }

  #demo-app-container-wrapper {
    height: 370px;
    max-width: 500px;
    margin: auto;
  }

  .donut-line {
    height: 2px;
    top: 20px;
  }

  .demo-app-container {
    flex-direction: column-reverse;
    // Not sure why right/left=0 is required. But without that, the container is not
    // properly laid out in mobile mode, when a hidden container becomes visible.
    right: 0;
    left: 0;
  }

  .demo-apps-buttons {
    width: 100%;
  }

  .demo-app-button > .demo-app-button-donut {
    padding: 0 7px;
    width: 40px;
    height: 40px;
  }

  .demo-app-image {
    width: auto;
    margin-bottom: 15px;

    & > a > img {
      max-height: @mobile-max-image-height;
    }
  }

  .demo-app-description {
    margin: auto;
    text-align: center;
    width: 100%;

    & > div {
      font-size: @font-size-button;
      margin-bottom: 0;
    }
    & > p {
      font-size: @font-size-small;
      margin-bottom: 0;
      margin-top: 0;
    }
  }

  /* ---- Getting Started ---- */
  #getting-started-panel-columns {
    width: calc(~'100% - 2 * @{mobile-page-margin}');
    padding: calc(2 * @mobile-page-margin) 0;
  }

  .getting-started-column {
    width: 50%;
    text-align: center;

    &.first {
      border-right: 1px solid @palette-lighter-gray;
      padding-right: 10px;
      padding-left: 0;
    }
    &.center {
      display: none;
    }
    &.last {
      padding-left: 10px;
    }
    & > h3 {
      white-space: inherit;
      min-height: 55px;
    }
    & > p {
      white-space: inherit;
      min-height: 100px;
      max-width: 200px;
      margin: auto;
    }
  }

  /* ---- Try Scout ---- */
  #try-scout-js-panel {
    width: calc(~'100% - 2 * @{mobile-page-margin}');
  }

  #try-scout-js-columns {
    flex-direction: column;
    margin: 20px 0 29px 0;
  }

  .try-scout-js-column {
    &.last {
      width: auto;
    }
    &.first {
      width: auto;
      margin-right: 0;
      padding-top: 0;
    }
  }

  /* ---- Footer ---- */
  footer {

    padding: 30px 0 20px 0;

    #eclipse-navigation-bar {
      width: 80%;
      margin: auto;
      text-align: left;

      & > a {
        display: inline-block;
        width: 49%;
        text-align: center;
        margin: 0 0 10px 0;
      }
    }
  }

  /* ---- Content ---- */
  #content-header {
    width: calc(~'100% - 2 * @{mobile-page-margin}');
    padding: 0 @mobile-page-margin;
    margin: 0 0 17% 0;

    & > p {
      max-width: 600px;
      margin: auto auto @vgap-medium auto;
    }

    & > img {
      max-height: @mobile-max-image-height;
      max-width: 100%;
      width: auto;
    }
  }

  .content-block {
    padding: 5% @mobile-page-margin;

    & > .content-block-columns {
      display: block;

      & > .content-block-column {
        &.first {
          width: 100%;
          margin: 0 0 15px 0;
          text-align: center;

          & > img {
            max-height: @mobile-max-image-height;
            max-width: 100%;
            width: auto;
          }
        }
        &.last {
          width: 100%;
          margin: 0;
        }
      }
    }
  }

  /* ---- Versions ---- */

  #versions-header {
    width: calc(~'100% - 2 * @{mobile-page-margin}');
    padding: 0 @mobile-page-margin @vgap-medium @mobile-page-margin;

    & > p {
      max-width: 600px;
      margin: auto;
    }
  }

  .content-table {
    width: 100%;
    display: inherit;

    & > tbody {
      width: 100%;
      display: block;
    }

    & tr {
      display: flex;
      flex-direction: column;
      flex-wrap: wrap;
      border-bottom: solid 1px @palette-lighter-gray;
      padding-bottom: 10px;
    }

    & td {
      display: block;
      border-bottom: none;
      padding: 4px 0 !important;

      &.version {
        font-weight: bold;
      }
    }
  }

  #device-detection::before {
    content: 'mobile';
  }
}
