html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

button {
  padding: 0;
  border: none;
  font: inherit;
  color: inherit;
  background-color: transparent;
  cursor: pointer;
}

/* End reset */
/* roboto-regular - latin */
@font-face {
  font-family: "Roboto";
  font-style: normal;
  font-weight: 400;
  src: local("Roboto"), local("Roboto-Regular"), url("/res/css/fonts/roboto-v19-latin-regular.woff2") format("woff2"), url("/res/css/fonts/roboto-v19-latin-regular.woff") format("woff");
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-italic - latin */
@font-face {
  font-family: "Roboto";
  font-style: italic;
  font-weight: 400;
  src: local("Roboto Italic"), local("Roboto-Italic"), url("/res/css/fonts/roboto-v19-latin-italic.woff2") format("woff2"), url("/res/css/fonts/roboto-v19-latin-italic.woff") format("woff");
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-700 - latin */
@font-face {
  font-family: "Roboto";
  font-style: normal;
  font-weight: 700;
  src: local("Roboto Bold"), local("Roboto-Bold"), url("/res/css/fonts/roboto-v19-latin-700.woff2") format("woff2"), url("/res/css/fonts/roboto-v19-latin-700.woff") format("woff");
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-700italic - latin */
@font-face {
  font-family: "Roboto";
  font-style: italic;
  font-weight: 700;
  src: local("Roboto Bold Italic"), local("Roboto-BoldItalic"), url("/res/css/fonts/roboto-v19-latin-700italic.woff2") format("woff2"), url("/res/css/fonts/roboto-v19-latin-700italic.woff") format("woff");
  /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
html {
  height: 100%;
}

body {
  font-family: "Roboto", sans-serif;
  font-size: 12px;
  font-weight: 400;
  width: 100%;
  background-color: #fff;
  color: #2a2a2a;
}

strong {
  font-weight: 700;
}

em {
  font-style: italic;
}

h1, h3, h4 {
  font-weight: 700;
}

h2 {
  font-size: 14px;
  font-weight: 700;
}
h1 + h2 {
  margin-top: 18px;
}

@media only screen and (max-width: 1024px) {
  h2 {
    font-size: 16px;
  }
}
a, a:visited {
  color: #2a2a2a;
}

p.info {
  font-size: 11px;
  line-height: 1.2;
}

ul.info {
  list-style: none;
  margin-top: 30px;
}
ul.info li {
  font-size: 11px;
  line-height: 1.2;
}

.noselect {
  -webkit-touch-callout: none;
}

.mobileonly {
  display: none;
}
@media only screen and (max-width: 1024px) {
  .mobileonly {
    display: block;
  }
}

.desktoponly {
  display: block;
}
@media only screen and (max-width: 1024px) {
  .desktoponly {
    display: none;
  }
}

.hidden {
  visibility: hidden;
}

.clearfix::after {
  display: block;
  content: "";
  clear: both;
}

#scroll-top {
  position: absolute;
  bottom: 60px;
  right: 15px;
  width: 17px;
  height: 16px;
  cursor: pointer;
  background: transparent url("/res/css/p/to-the-top-mobile.png") no-repeat top left;
  background-size: contain;
  z-index: 7;
}
#scroll-top.hidden {
  display: none;
}
@media screen and (max-width: 375px) and (-webkit-min-device-pixel-ratio: 2), screen and (max-width: 375px) and (min-resolution: 192dpi), screen and (max-width: 375px) and (min-resolution: 2dppx) {
  #scroll-top {
    background: transparent url("/res/css/p/to-the-top-mobile@2x.png") no-repeat top left;
    background-size: 17px 16px;
  }
}

#header {
  position: absolute;
  top: 38px;
  left: 0;
  padding-left: 40px;
  font-size: 14px;
  line-height: 115%;
}
#header a {
  display: block;
  text-decoration: none;
}

/* main navigation ---------------------------------- */
#nav {
  position: absolute;
  top: 163px;
  left: 0;
  padding-left: 40px;
}
#nav ul {
  line-height: 200%;
}
#nav ul + ul {
  margin-top: 24px;
}
#nav ul li {
  font-size: 14px;
}
#nav ul li a {
  display: block;
  text-decoration: none;
}
#nav ul li a:hover {
  text-decoration: underline;
}
#nav ul li a span {
  box-shadow: 2px 1px 0 transparent, -2px -1px 0 transparent, 2px -1px 0 transparent, -2px 1px 0 transparent;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
#nav ul li.active a {
  text-decoration: none;
  font-weight: 700;
}
#nav ul li.active a span {
  background: #f8e71c;
  box-shadow: 2px 1px 0 #f8e71c, -2px -1px 0 #f8e71c, 2px -1px 0 #f8e71c, -2px 1px 0 #f8e71c;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

/* sub navigation ---------------------------------- */
#snav {
  position: absolute;
  top: 165px;
  left: 200px;
  width: 250px;
  max-width: 250px;
}
#snav p {
  line-height: 120%;
  font-size: 14px;
}
#snav p + p {
  margin-top: 20px;
}
#snav p > a {
  display: block;
  text-decoration: none;
}
#snav p > a > span {
  font-weight: 400;
  color: #888;
}
#snav p > a:hover {
  text-decoration: underline;
}
#snav p.active a {
  text-decoration: none;
  font-weight: 700;
}
#snav p.active a > span, #snav p.active a > strong {
  font-weight: bold;
}
#snav p.active a > span {
  color: #2a2a2a;
  font-weight: bold;
}
#snav p strong {
  background: #f8e71c;
  box-shadow: 2px 1px 0 #f8e71c, -2px -1px 0 #f8e71c, 2px -1px 0 #f8e71c, -2px 1px 0 #f8e71c;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

@media only screen and (max-width: 1024px) {
  #header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding-top: 8px;
    padding-left: 8px;
    padding-right: 0;
    height: 48px;
    box-sizing: border-box;
    background: #fff;
    z-index: 3;
  }

  br.desktop {
    display: none;
  }

  #nav-container {
    margin-top: 50px;
    display: flex;
    flex-direction: row-reverse;
    -webkit-flex-direction: row-reverse;
  }

  #nav {
    display: none;
    position: static;
    top: auto;
    left: auto;
    padding-left: 0;
    padding-bottom: 16px;
    text-align: right;
    width: 110px;
    margin-right: 10px;
  }
  #nav.active {
    display: block;
  }
  #nav ul {
    line-height: 240%;
  }
  #nav ul + ul {
    margin-top: 31px;
  }
  #nav ul li {
    font-size: 18px;
  }

  #snav {
    display: none;
    position: static;
    top: auto;
    left: auto;
    padding-bottom: 16px;
    text-align: right;
    width: 200px;
    max-width: 200px;
    margin-top: 3px;
  }
  #snav.active {
    display: block;
  }
  #snav p {
    line-height: 160%;
    font-size: 16px;
  }
  #snav p + p {
    margin-top: 20px;
  }
}
#menu-trigger {
  display: none;
  position: absolute;
  z-index: 4;
  top: 0;
  right: 0;
  width: 48px;
  height: 48px;
  cursor: pointer;
  background: transparent url("p/menu_mobile.png") no-repeat 22px 12px;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  #menu-trigger {
    background-image: url("p/menu_mobile@2x.png");
    background-size: 15px 15px;
  }
}
#menu-trigger.active {
  background-image: url("p/menu_close.png");
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  #menu-trigger.active {
    background-image: url("p/menu_close@2x.png");
    background-size: 15px 15px;
  }
}
@media (max-width: 1024px) {
  #menu-trigger {
    display: block;
  }
}

/* STRUCTURE ELEMENTS ---------------------------------- */
#project-header {
  padding-top: 60px;
  padding-bottom: 20px;
  position: relative;
}
#project-header h1, #project-header h2 {
  font-size: 20px;
  padding-left: 8px;
}
#project-header h1 + h2 {
  margin-top: 0;
}
#project-header h2 {
  font-weight: normal;
}
#project-header #semester {
  position: absolute;
  right: 8px;
  top: 60px;
  font-size: 14px;
}
@media only screen and (max-width: 540px) {
  #project-header #semester {
    top: 12px;
  }
}
#project-header #semester a {
  text-decoration: none;
}
#project-header #semester a:hover {
  text-decoration: underline;
}

#text-content {
  position: relative;
  padding-top: 30px;
  font-size: 14px;
  line-height: 20px;
  max-width: 440px;
  margin-left: 506px;
}
#text-content.editor-content {
  margin-left: 30px;
  margin-bottom: 30px;
}
#text-content.editor-content #second-column {
  position: relative;
  border-top: 1px dashed #bcbcbc;
  padding-top: 7px;
  margin-top: 7px;
}
#text-content.editor-content #second-column:before {
  content: "[2. Spalte]";
  display: block;
  position: absolute;
  top: -5px;
  font-size: 10px;
  color: #c4c4c4;
  text-align: right;
  width: 100%;
  z-index: -1;
}
#text-content h1 {
  margin-bottom: 14px;
}
#text-content h2 {
  margin-bottom: 7px;
}
#text-content p + h1, #text-content p + h2 {
  margin-top: 28px;
}
#text-content p + p {
  margin-top: 14px;
}
#text-content ul {
  margin-top: 14px;
  max-width: 746px;
  padding-right: 8px;
  list-style-type: square;
  padding-left: 15px;
}
#text-content ul > li {
  text-indent: 0px;
}
#text-content ul > li:before {
  text-indent: -15px;
}

@media only screen and (min-width: 1024px) {
  #text-content {
    max-width: 470px;
  }
  #text-content p {
    width: 470px;
    max-width: 470px;
  }
  #text-content .project-heading h1, #text-content .project-heading h2 {
    width: 470px;
    max-width: 470px;
  }
}
#second-column.right {
  position: absolute;
  padding-top: 30px;
  left: 520px;
  top: 0;
  margin-top: 0 !important;
  width: 200px;
}

#next-project {
  font-size: 14px;
  font-weight: 400;
  text-align: right;
  padding-top: 40px;
  padding-right: 8px;
}

#footer {
  box-sizing: border-box;
  position: relative;
  display: none;
  padding-top: 200px;
  padding-bottom: 15px;
  margin-left: 40px;
  width: calc(100% - 48px);
  font-size: 10px;
}

#logo {
  display: block;
  position: absolute;
  bottom: 15px;
  right: 0;
  width: 130px;
  height: 20px;
  background: transparent url("p/angewandte@2x.gif") no-repeat;
  background-size: contain;
}

/* GRID */
#grid {
  position: relative;
  width: 100%;
  height: 100vw;
  margin-left: 506px;
  overflow: hidden;
  /* Text after a grid container */
}
#grid .tile {
  position: absolute;
  top: 0;
  left: 0;
  width: 425px;
  height: 250px;
  background: #eee none no-repeat;
  background-size: cover;
  font-size: 20px;
  font-weight: bolder;
  color: #fff;
}
#grid .tile a {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 20px;
  display: block;
}
#grid .tile span {
  height: 16px;
  color: black;
  font-size: 12px;
  position: absolute;
  bottom: -20px;
  font-weight: 400;
  width: inherit;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#grid .tile.tile-framed {
  border: 1px solid #d3d3d3;
}
#grid .tile.tile-framed span {
  bottom: -21px;
  left: -1px;
}
#grid + #text-content {
  max-width: 1900px;
}
#grid + #text-content p {
  max-width: 746px;
  padding-right: 8px;
}

.fancybox-slide.image-framed img.fancybox-image {
  border: 1px solid #d3d3d3;
}

@media only screen and (max-width: 1024px) {
  #text-content:not(.editor-content) {
    margin-left: 0 !important;
    padding-left: 8px;
    padding-right: 8px;
    max-width: 746px;
  }
  #text-content:not(.editor-content) p {
    font-size: 16px;
    line-height: 22px;
  }
  #text-content:not(.editor-content) p + h1 {
    margin-top: 32px;
  }
  #text-content:not(.editor-content) p + h2 {
    margin-top: 32px;
  }
  #text-content:not(.editor-content) p + p {
    margin-top: 16px;
  }
  #text-content:not(.editor-content) p.info {
    font-size: 11px;
    line-height: 1.2;
  }
  #text-content:not(.editor-content) h1 {
    font-size: 20px;
    margin-bottom: 16px;
  }
  #text-content:not(.editor-content) h2 {
    font-size: 16px;
    margin-bottom: 8px;
  }

  #next-project {
    font-size: 16px;
  }

  #footer {
    margin-left: 8px;
    margin-right: 8px;
    width: calc(100% - 16px);
  }

  #grid {
    margin-left: 10px !important;
    margin-right: 10px !important;
    width: calc(100% - 50px);
    overflow-x: hidden;
  }
  #grid .tile span {
    padding-left: 8px;
  }
}
@media only screen and (min-width: 1864px) {
  #text-content {
    width: 1358px;
  }

  #footer {
    width: calc(100% - 80px);
    margin-right: 40px;
  }
}
@media only screen and (max-width: 540px) {
  #grid + #text-content p {
    max-width: unset;
  }

  #footer-inner {
    display: table-cell;
    vertical-align: bottom;
    height: 66px;
  }

  #logo {
    width: 96px;
    bottom: 50px;
    right: unset;
    left: 0;
  }
}
#text-content .project-heading {
  margin-bottom: 25px;
}
#text-content .project-heading h1, #text-content .project-heading h2 {
  font-size: 18px;
}
#text-content .project-heading h1 {
  margin-bottom: 0;
}
#text-content .project-heading h1 + h2 {
  margin-top: 0;
}
#text-content .project-heading h2 {
  font-weight: normal;
}

#debug {
  position: fixed;
  left: 202px;
  top: 106px;
  font-weight: bold;
  color: darkturquoise;
  display: none;
}

/* fancybox modifications */
body.fancybox-active {
  overflow: hidden;
}
body.fancybox-active .fancybox-bg {
  background-color: #fff;
}
body.fancybox-active .fancybox-is-open .fancybox-bg {
  opacity: 1;
}
body.fancybox-active .fancybox-caption--separate, body.fancybox-active .fancybox-caption {
  background: none;
  color: #000;
}
body.fancybox-active .fancybox-button {
  background-color: #fff;
  color: #666;
}
body.fancybox-active .fancybox-button:hover {
  color: #000;
}

/*# sourceMappingURL=general.css.map */
