/* web fonts */
@font-face {

  font-family: 'Aggie URW';

  src: url('../fonts/aggie-urw.woff2') format('woff2'),

       url('../fonts/aggie-urw.woff') format('woff');

  font-weight: normal;

  font-style: normal;
}

/* end of web fonts */

:root {
  --bg_colour: #1c3149;
  --bg_colour_darker: #192b41;
  --bg_colour_lighter: #234c7a;
  --text_colour: aliceblue;
  --text_colour_light: aliceblue;
  --faint_line: #314d6e;
  --accu-tint-colour: rgb(245, 174, 80);
  --hovered_button_bg: var(--accu-tint-colour);
  --hovered_button_light_bg: rgb(245, 174, 80, 0.25);
  --optical_blue: #90f8f6;
  --main-font: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --secondary-font: Exo, Garamond, "Lucida Sans", sans-serif;
  --title-font: "Aggie URW", var(--secondary-font);
  --menu-color: rgba(14, 29, 48, 0.86);
  --menu-highlight: rgba(0, 0, 0, 0.05);
  --menu-line: var(--accu-tint-colour); }

* {
  margin: 0;
  padding: 0; }

body {
  font-family: var(--secondary-font);
  background-color: black; }

div#page {
  padding-bottom: 1em; }

div#page-bg {
  position: relative;
  top: 0;
  background-color: var(--bg_colour);
  z-index: 0; }

nav, div#pop_up_menu {
  padding: 0.25em 0.5em;
  position: sticky;
  top: 0;
  width: 100%;
  height: 1.5em;
  z-index: 100;
  background-color: var(--menu-color);
  color: white;
  filter: drop-shadow(0 0 10px rgba(128, 92, 0, 0.25));
  display: flex;
  align-items: center; }
  nav a, div#pop_up_menu a {
    text-decoration: none;
    color: inherit;
    padding: 0.25em 1em; }
  nav a:hover, div#pop_up_menu a:hover {
    padding-bottom: calc(0.25em - 2px);
    border-bottom: solid 2px var(--menu-line);
    background-color: var(--menu-highlight); }
  nav img, div#pop_up_menu img {
    height: 1.25em; }

nav.burger-menu {
  display: none;
  justify-content: space-between; }
  nav.burger-menu img.burger-icon {
    margin-left: 0.5em; }

div#pop_up_menu {
  position: fixed;
  width: revert;
  height: revert;
  padding: 0;
  background-color: var(--bg_colour_darker);
  border: solid 1px var(--faint_line);
  filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.5));
  font-family: var(--secondary-font);
  display: flex;
  flex-direction: column;
  align-items: stretch; }
  div#pop_up_menu a {
    padding: 1em; }
  div#pop_up_menu a:hover {
    padding-bottom: calc(1em - 2px);
    border-bottom: solid 2px var(--menu-line);
    background-color: var(--menu-highlight); }

div#banner {
  width: 100%;
  height: 300px;
  overflow: hidden;
  object-fit: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-image: url("../../static/img/banner-world.jpg");
  opacity: 0.8;
  background-size: cover;
  display: flex;
  flex-direction: column;
  justify-content: space-between; }

div#banner div.dates {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  margin-right: 0.5em;
  margin-bottom: 0.35em; }

div#banner div.dates div {
  color: white;
  background-color: rgba(0, 0, 0, 0.3);
  border-radius: 16px;
  font-family: var(--main-font);
  font-weight: 500;
  font-size: 16pt;
  text-align: right;
  padding: 0.75em; }

ol {
  padding-left: 2em; }

ul {
  padding-left: 1.25em; }

div.indented {
  margin-left: 2em; }

div.logos img {
  height: 100px;
  margin: 1em; }

img.logo {
  margin-left: 1em;
  margin-top: 1em;
  width: 20em; }

main {
  font-size: 16pt;
  font-weight: 300;
  font-family: var(--main-font);
  color: var(--text_colour); }

#page h1 {
  font-family: var(--title-font); }

h2, h3, h4 {
  margin-top: 1em;
  margin-bottom: 0.5em;
  color: var(--accu-tint-colour); }

section {
  padding: 0 1em 1em 1em; }

section, #page h1 {
  margin: 1em auto 0;
  max-width: 800px; }

#page h1 {
  padding-bottom: 1em;
  color: var(--accu-tint-colour); }

main ul {
  margin-top: 1em;
  margin-bottom: 1em; }

section.flash_messages {
  padding-top: 1em; }

div.flash {
  border: 1px solid var(--accu-tint-colour);
  border-radius: 8px;
  padding: 1em;
  filter: drop-shadow(0px 0px 8px black);
  color: white; }

div.flash-error {
  background-color: rgba(203, 50, 52, 0.51);
  color: yellow; }

div.flash-success {
  background-color: rgba(151, 224, 102, 0.57); }

main#error-page {
  padding-top: 1em; }

div.speaker-list {
  margin-top: 1em;
  margin-bottom: 1em;
  display: flex;
  flex-direction: column; }

div.speaker-list > div {
  padding-left: 1em; }

main p {
  margin-top: 1em;
  margin-bottom: 1em; }

div.page-header {
  position: relative;
  border-top: solid 1px rgba(0, 0, 0, 0); }

div.page-header div.info {
  margin-top: 0;
  margin-left: 1em;
  margin-right: 1em; }

div.page-header::before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  overflow: hidden;
  object-fit: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url("../../static/img/banner-world.jpg");
  opacity: 0.5; }

div.page-header h1 {
  font-size: 44px;
  filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0.4)); }

div.lozenge-left, div.lozenge-right {
  padding: 3em 6em;
  margin-top: 3em;
  margin-bottom: 3em;
  position: relative; }

div.lozenge-left {
  margin-right: 2em; }

div.lozenge-right {
  margin-left: 2em; }

div.lozenge-left::before, div.lozenge-right::before {
  content: '';
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  overflow: hidden;
  object-fit: cover;
  background-position: center center;
  background-repeat: no-repeat;
  background-image: url("../../static/img/Banner_01.jpg");
  opacity: 0.3;
  background-size: cover; }

div.lozenge-left::before {
  border-top-right-radius: 400px;
  border-bottom-right-radius: 400px; }

div.lozenge-right::before {
  border-top-left-radius: 400px;
  border-bottom-left-radius: 400px; }

.lozenge-right p {
  color: var(--optical_blue);
  text-shadow: 0 0 4px black;
  margin: 0 1em; }

a {
  color: var(--text_colour_light); }

div.button_strip {
  font-weight: 400;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: flex-start;
  align-content: flex-start;
  padding: 1em; }

div.form_buttons {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: flex-start;
  align-content: flex-start;
  padding: 1em; }

div.button-link {
  margin: 1em;
  padding: 0.5em;
  border-radius: 8px;
  width: 260px;
  text-align: center;
  vertical-align: middle; }

/* big link buttons */
div.button-link:hover {
  box-shadow: 0 5px 15px black; }

.button-link a {
  color: var(--bg_colour);
  text-decoration: none; }

.button-link:hover a {
  color: white; }

div.button-link {
  background-color: var(--hovered_button_bg);
  font-size: 24px; }

footer {
  font-size: 12px; }

footer a {
  text-decoration: none;
  color: #EAEAEA; }

footer a:hover {
  text-decoration: underline;
  color: #8787c5; }

footer {
  width: 100%;
  padding-top: 2em;
  padding-bottom: 2em;
  margin-top: 1em;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 1em; }

footer img {
  width: 32px; }

iframe {
  margin-top: 1em;
  margin-bottom: 0; }

form {
  /*margin-top: 2em;*/ }

hr {
  margin-top: 1em;
  border: 0.5px solid var(--faint_line); }

form input:not([type=checkbox]), form textarea {
  font-size: 14pt;
  padding: 0.25em;
  color: var(--bg_colour);
  background-color: var(--text_colour);
  border: solid 1px #F0F0F0;
  border-bottom-color: #AAAAAA;
  border-radius: 4px;
  width: 100%; }

form input[type=checkbox] {
  transform: scale(2);
  margin: 1em; }

form label {
  margin-right: 1em; }

form button {
  font-size: 14pt;
  padding: 0.25em 0.5em;
  border: solid 1px #F0F0F0;
  border-bottom-color: #AAAAAA;
  border-radius: 4px; }

form div.label {
  margin: 1em 0 0.25em; }

form div.description {
  margin-top: 0.25em;
  margin-bottom: 0.5em;
  font-size: 14px;
  color: var(--text_colour_light); }

form p, .tabbed-box p {
  margin-left: 1em;
  margin-right: 1em; }

.tabbed-box :first-child {
  margin-top: 0; }

.tabbed-box p:first-child {
  padding-top: 1em; }

.field span.required {
  vertical-align: super;
  font-size: 10px;
  font-weight: normal;
  color: var(--accu-tint-colour); }

div.fields {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-bottom: 1em; }

div.field {
  margin-left: 1em;
  margin-right: 1em;
  width: 350px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end; }

.field div.errors {
  margin-top: 0.25em;
  margin-bottom: 0.5em;
  font-size: 14px;
  color: #ff5555; }

div.membership {
  width: 100%; }

div.membership input {
  width: 200px; }

div.tabs {
  display: flex;
  /*border-left: solid 1px var(--accu-tint-colour);*/
  /*border-top: solid 1px var(--accu-tint-colour);*/
  /*border-right: solid 1px var(--accu-tint-colour);*/
  /*border-top-left-radius: 8px;*/
  /*border-top-right-radius: 8px;*/ }

div.tab {
  padding: 0.25em 1em;
  position: relative;
  flex-grow: 1;
  width: max-content;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  border-bottom: solid 1px var(--accu-tint-colour);
  background-color: var(--bg_colour_darker); }

div.active-tab {
  border-left: solid 1px var(--accu-tint-colour);
  border-right: solid 1px var(--accu-tint-colour);
  border-top: solid 1px var(--accu-tint-colour);
  background-color: var(--bg_colour);
  border-bottom: none; }

div.non-tab {
  flex-grow: 2;
  background-color: var(--bg_colour); }

div.tab a {
  text-decoration: none;
  color: var(--text_colour_light); }

div.active-tab a {
  color: var(--accu-tint-colour);
  font-weight: 400; }

div.tab a:hover {
  color: var(--text_colour); }

.rounded-box, .tabbed-box {
  border: solid 1px var(--accu-tint-colour); }

.rounded-box {
  border-radius: 8px; }

.tabbed-box {
  border-top: none;
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px; }

table.price-list {
  width: 100%;
  font-family: var(--main-font);
  font-size: 16pt;
  color: var(--text_colour); }

form table.price-list {
  margin: 1em;
  width: calc(100% - 2em); }

table.price-list tr:nth-child(odd) td {
  background-color: rgba(0, 0, 0, 0.2); }

table.price-list tr td:nth-child(2) {
  font-weight: 300;
  padding-left: 1em;
  padding-right: 1em; }

table.price-list tr td:nth-child(3) {
  padding-left: 8pt;
  padding-right: 8pt; }

table.price-list tr.unavailable td {
  color: var(--text_colour_light); }

.price-list p {
  margin: 0;
  padding: 12pt 0 0 12pt; }

.price-list .vat {
  color: #9999b4;
  font-size: 12pt; }

.price-list .ticket_description {
  color: #9999b4;
  font-size: 10pt;
  padding-top: 0;
  padding-bottom: 12pt; }

div.guard_block {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(64, 64, 64, 0.25); }

p.keynote_bio {
  font-size: 12pt;
  color: var(--optical_blue);
  background-color: #0c0c27; }

section.one-liner p {
  text-align: center; }

section.keynote-bios {
  max-width: revert;
  width: calc(100vw - 3em);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1em; }
  section.keynote-bios > div {
    width: 330px;
    padding: 0;
    filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0.2)); }
  section.keynote-bios img {
    width: 100%;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px; }
  section.keynote-bios p {
    margin-top: 0;
    padding: 1em;
    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px; }

img.post-image {
  width: 100%; }

img.post-image-50 {
  width: 50%; }

div.centered {
  display: flex;
  justify-content: center; }

div.img_left, div.img_right {
  overflow: auto;
  /* clears the float */
  padding-left: 0;
  padding-right: 0;
  padding-top: 1em; }
  div.img_left img, div.img_right img {
    object-fit: cover; }
  div.img_left p, div.img_right p {
    margin-top: 0; }

div.img_left img {
  float: left;
  margin-right: 1em; }

div.img_right img {
  float: right;
  margin-left: 1em; }

img.left-rounded {
  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px; }

img.right-rounded {
  border-top-right-radius: 16px;
  border-bottom-right-radius: 16px; }

img.top-rounded {
  border-top-left-radius: 16px;
  border-top-right-radius: 16px; }

img.bottom-rounded {
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px; }

section.sponsor-tiers {
  margin: 1em;
  max-width: initial; }
  section.sponsor-tiers div.sponsors, section.sponsor-tiers div.sponsors-Compact {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 2em;
    padding-bottom: 2em; }
  section.sponsor-tiers div.sponsors-Compact {
    padding-bottom: 0; }
  section.sponsor-tiers div.sponsors {
    border-top: solid 1px rgba(128, 128, 128, 0.25);
    border-bottom: solid 1px rgba(128, 128, 128, 0.25);
    border-radius: 16px;
    background-color: rgba(255, 255, 255, 0.95); }
  section.sponsor-tiers div.sponsor-title {
    border-radius: 8px;
    background-color: var(--bg_colour);
    margin-top: -1em;
    margin-bottom: 2em; }
    section.sponsor-tiers div.sponsor-title h2 {
      margin: 0.05em 0.35em; }
  section.sponsor-tiers div.sponsors-Headline div.sponsor-title {
    border: solid 1px rgba(116, 229, 208, 0.75); }
  section.sponsor-tiers div.sponsors-Headline img {
    width: 500px; }
  section.sponsor-tiers div.sponsors-Gold div.sponsor-title {
    border: solid 1px #e5d674; }
  section.sponsor-tiers div.sponsors-Gold img {
    width: 300px; }
  section.sponsor-tiers div.sponsors-Silver div.sponsor-title {
    border: solid 1px rgba(222, 221, 221, 0.75); }
  section.sponsor-tiers div.sponsors-Silver img {
    width: 200px; }
  section.sponsor-tiers div.sponsors-Bronze div.sponsor-title {
    border: solid 1px rgba(218, 165, 32, 0.75); }
  section.sponsor-tiers div.sponsors-Bronze img {
    width: 200px; }
  section.sponsor-tiers div.sponsors-Community div.sponsor-title {
    border: solid 1px rgba(208, 207, 207, 0.78); }
  section.sponsor-tiers div.sponsors-Community img {
    width: 200px; }
  section.sponsor-tiers div.sponsors-Compact img {
    width: 200px; }
  section.sponsor-tiers div.sponsors_strip {
    display: flex;
    flex-wrap: wrap;
    gap: 2em;
    justify-content: center; }
    section.sponsor-tiers div.sponsors_strip div {
      margin: auto 0; }
    section.sponsor-tiers div.sponsors_strip a {
      display: block; }

section.compact-tiers {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2em; }

@media screen and (max-width: 700px) {
  div.lozenge-left, div.lozenge-right {
    padding: 2em 0;
    margin: 3em 0;
    position: relative; }
  div.lozenge-left:before, div.lozenge-right:before {
    border-radius: 0; }
  div.sponsors-Headline img {
    width: calc(400px - 2em) !important; }
  nav.full-menu {
    display: none; }
  nav.burger-menu {
    display: flex; } }

@media screen and (max-width: 400px) {
  div.sponsors-Headline img {
    width: calc(100vw - 2em) !important; } }

