:root {
  /* dimensions */
  --base-unit: 0.625em; /* ^= 10px; */
  --nav-height: 177px;
  --content-width: 1000px;

  /* colors */
  --color-light: #edf0fb;
  --color-dark: #081235;
  --color-medium-dark-gray: #999;
  --color-medium-gray: #666;
  --color-light-gray: #ccc;
  --color-font: #333;
  --color-highlight-1: #081235;
  --color-highlight-2: #1b31ff;
  --color-cta: #081235;

  /* fonts */
  --font-bold: arial, sans-serif;
  --font-semi: arial, sans-serif;
  --font-light: arial, sans-serif;
  --font-regular: arial, sans-serif;

  /*
  --break-small: 360px;
  --break-medium: 600px;
  --break-large: 799px;
  */
}

body {
  background-color: var(--color-light);
  color: var(--color-dark);
  font-family: var(--font-light);
  margin: 0 auto;
  overflow-y: scroll;
  display: none;
}

body.appear {
  display: block;
}

/* --- basic styling --- */
html {
  box-sizing: border-box;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

p,
li {
  line-height: 1.6em;
}

ul {
  padding-left: calc(2 * var(--base-unit));
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-semi);
}

img {
  margin: 0 auto;
  width: 100%;
  height: auto;
}

a:link {
  color: var(--color-dark);
  text-decoration: underline;
}

a u {
  text-decoration: underline;
}

a:visited {
  color: var(--color-dark);
}

a:hover {
  text-decoration: underline;
}

a:active {
  text-decoration: underline;
}

nav a:link {
  text-decoration: none;
}

.icon {
  display: inline-block;
  height: 24px;
  width: 24px;
}

.icon img {
  height: 100%;
  width: 100%;
}

/* --- buttons --- */
a.button:not(.social-teaser a.button, .stage-header a.button, .teaser-bar a.button) {
  background-color: var(--color-highlight-2);
  color: var(--color-light);
  padding: 10px 20px;
  border-radius: 20px;
  text-decoration: none;
}

p.button-container:not(.social-teaser p.button-container, .stage-header p.button-container, .teaser-bar p.button-container) {
  display: inline-block;
  margin-right: 10px;
  margin-top: 5px;
  margin-bottom: 5px;
}

/* --- header static elements --- */
header {
  position: relative;
  height: var(--nav-height);
  width: 100%;
  color: #edf0fb;
  background-color: #081235;
}

@media screen and (width <= 360px) {
  header {
    height: 110px;
  }
}

header .nav-background {
  position: absolute;
  background-color: var(--color-highlight-1);
  top: calc(var(--nav-height) - 36px);
  height: 36px;
  width: 100%;
}

header .nav-background, nav > ul {
  border-top: 1px solid var(--color-highlight-2);
}

@media screen and (width <= 360px) {
  header .nav-background {
    top: 77px;
  }
}

header .header-container {
  margin: 0 auto;
  max-width: 100%;
  width: 100%;
  padding: 0 var(--base-unit) 0;
}

@media screen and (width <= 360px) {
  header .header-container {
    padding: 0;
  }
}

@media screen and (width > 799px) {
  header .header-container {
    width: var(--content-width);
  }
}

header .header-container .logo {
  background-color: var(--color-dark);
  padding: 0 0 2em;
  float: right;
}

header .header-container .logo div {
  width: 123px;
  height: 130px;
  background: url("/resources/img/logo.svg") 10px 10px no-repeat;
  background-size: 108px 108px;
  background-position: 0 20px;
  background-repeat: no-repeat;
}

@media screen and (width <= 360px) {
  header .header-container .logo div {
    width: 60px;
    height: 52px;
    background-size: 40px 40px;
    background-position: 0 12px;
  }
}

/* horizontal line in content */
main > div:nth-child(n+2) + div:not(.stage-header-section, .aside-bar-section, .teaser-bar-section, .talk-detail-footer-container) {
  border-top: 1px solid var(--color-medium-dark-gray);
}

/* --- grid layout for main area --- */
@media screen and (width <= 799px) {
  main .section {
    padding: 0 var(--base-unit);
  }

  main .section.stage-header-section,
  main .section.teaser-bar-section {
    padding: 0;
  }
}

.content-2col main .section.aside-bar-section {
  display: flex;
}

.content-2col main .section.aside-bar-section > div {
  flex: 1 0;
}

@media screen and (width > 600px) and (width <= 799px) {
  main .section.aside-bar-section {
    display: flex;
  }

  main .section.aside-bar-section > div {
    flex: 1 0;
  }
}

@media screen and (width > 799px) {
  main {
    display: grid;
    grid-template-columns: 0 repeat(4, 25%) 0;
    grid-template-rows: auto;
  }

  /* assign no row - there may be multiple "default content" sections, the aide bar flows parallel to all of them */
  main .section {
    grid-column: 2 / 6;
    padding: 0 var(--base-unit);
  }

  .content-3col main .section {
    grid-column: 2 / 5;
  }

  .content-2col main .section {
    grid-column: 2 / 4;
  }

  .content-3col main > .section:not(.stage-header-section, .aside-bar-section, .teaser-bar-section) {
    margin-right: 20px;
  }

  main .section.stage-header-section {
    grid-column: 2 / 6;
    grid-row: 1;
    padding: 0;
  }

  main .section.aside-bar-section {
    grid-column: 5 / 6;
    grid-row: 2 / 999;
  }

  .content-2col main .section.aside-bar-section {
    grid-column: 4 / 6;
  }

  main .section.teaser-bar-section {
    grid-column: 2 / 6;
    padding: 0;
  }
}

@media screen and (width > 1000px) {
  main {
    grid-template-columns: 1fr repeat(4, 250px) 1fr;
  }
}

/* UserCentrics consent message */
main .usercentrics-consent-dialog {
  display: flex;
  flex-direction: column;
  text-align: center;
  align-items: center;
  width: 100%;
  height: 100%;
  border: 10px solid lightgray;
  background-color: #fff;
  padding: 20px;
  overflow: auto;
}

main .usercentrics-consent-dialog h3 {
  margin-top: 10px;
  margin-bottom: 0;
}

main .usercentrics-consent-dialog p {
  margin-top: 10px;
  margin-bottom: 20px;
}

main .usercentrics-consent-dialog button {
  display: block;
  width: 180px;
  margin: 5px;
  padding: 10px;
  border: 0;
  font-family: var(--font-bold);
  font-size: 16px;
  cursor: pointer;
}

main .usercentrics-consent-dialog button.more-info {
  background-color: lightgray;
}

main .usercentrics-consent-dialog button.accept {
  color: #fff;
  background-color: var(--color-cta);
}

main .usercentrics-loading-spinner {
  width: 100%;
  height: 100%;
}

body.fullscreen   main .section.aside-bar-section {
  grid-column: 6;
  grid-row: 2 / 999;
}
