/* @group Reset */

/* http://meyerweb.com/eric/tools/css/reset/ 
	 v2.0 | 20110126
	 License: none (public domain)
*/

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;
}

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

a {
	color: inherit;
	text-decoration: none;
}

figure {
	line-height: 0;
}


/* @end */

:root {
	--primary-font: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
	--unit: 20px;
	--primary-color: rgb(0, 0, 0);
	--secondary-color: rgb(255, 255, 255);
	--btn-color: rgb(233, 80, 90);
	--green-color: rgb(203, 226, 213);
	--grey-color: #D9D9D9;
	--pink-color: #FADDE1;
	--darkpink-color: #E95159;
	--mint-color: #E3E4DD;
}

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

body {
  font-family: var(--primary-font);
	font-size: var(--unit);
	font-weight: 200;
}

strong {
	font-weight: 400;
}

h3 {
	font-weight: bold;
	margin-top: calc(var(--unit) * 2);
	margin-bottom: var(--unit);
}

h3:first-child {
	margin-top: 0;
}

main {
  transition: transform .5s;
}

@media screen and (min-width: 45rem) {
	body {
		font-size: calc(var(--unit) + 2px);
	}
}


/* Header */

.logo-small {
	position: fixed;
	top: var(--unit);
	left: var(--unit);
	width: calc(var(--unit) * 2.5);
	z-index: 2;
}

@media screen and (min-width: 45rem) {
	.logo-small {
		top: calc(var(--unit) * 1.8);
		left: calc(var(--unit) * 2.5);
		width: calc(var(--unit) * 3.2);
	}
}


/* Navigation */

.nav-open main {
  transform: scale(.9);
}

.nav-trigger {
  position: fixed;
  z-index: 4;
  top: 15px;
  right: 15px;
  height: calc(var(--unit) * 2.5);
  width: calc(var(--unit) * 2.5);

  overflow: hidden;
  color: transparent;
  white-space: nowrap;
  text-indent: 100%;
	
	background-color: var(--secondary-color);
	border-radius: calc(var(--unit) * 3);
}

.nav-trigger span,
.nav-trigger span::before,
.nav-trigger span::after {
  position: absolute;
  height: 2px;
  width: 30px;
  background: var(--primary-color);
}

.nav-trigger span {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: background .3s;
}

.nav-trigger span::before,
.nav-trigger span::after {
  content: '';
  top: 0;
  left: 0;
  transition: background .3s, transform .3s;
}

.nav-trigger span::before {
  transform: translateY(-10px);
}

.nav-trigger span::after {
  transform: translateY(10px);
}

.nav-trigger:hover span::before {
  transform: translateY(-12px);
}

.nav-trigger:hover span::after {
  transform: translateY(12px);
}

.nav-open .nav-trigger span {
  background: transparent;
}

.nav-open .nav-trigger span::before,
.nav-open .nav-trigger span::after {
  background: var(--primary-color);
}

.nav-open .nav-trigger span::before {
  transform: rotate(-45deg);
}

.nav-open .nav-trigger span::after {
  transform: rotate(45deg);
}

.overlay {
  position: fixed;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--primary-color);
  opacity: 0;
  visibility: hidden;
  transition: opacity .5s, visibility .5s;
}

.nav-open .overlay {
  opacity: .6;
  visibility: visible;
}

.nav-container {
  position: fixed;
  z-index: 3;
  top: 0;
  right: 0;
  height: 100%;
  width: 90%;
  max-width: 550px;
  padding: 2em 3.5em;
  background: #F3F3F3;
  overflow: auto;
  transform: translateZ(0);
  transform: translateX(100%);
  transition: transform .5s cubic-bezier(.07,.23,.34,1);
}

.nav-open .nav-container {
  transform: translateX(0);
}

.nav {
  list-style: none;
  padding: 0;
}

.nav a {
  display: block;
  padding: .4em 0;
  font-size: calc(var(--unit) * 2);
  text-decoration: none;
  color: var(--primary-color);
  transform: translateZ(0);
}

.legal-menu {
	margin-top: calc(var(--unit) * 2);
}

.legal-menu a {
	font-size: 1em;
}

.nav-open .nav a {
  animation: slide-in .4s .2s backwards;
}

.nav-open .nav li:nth-of-type(2) a {
  animation-delay: .3s;
}

.nav-open .nav li:nth-of-type(3) a {
  animation-delay: .4s;
}

.nav-open .nav li:nth-of-type(4) a {
  animation-delay: .5s;
}

.nav-open .nav li:nth-of-type(5) a {
  animation-delay: .6s;
}

.menu-contact {
	margin-top: calc(var(--unit) * 3);
	line-height: 1.2;
}

.nav-open .menu-contact {
	animation: slide-in .4s .2s backwards;
}

.language-switcher {
	display: flex;
	flex-direction: row;
	margin-bottom: calc(var(--unit) * 2);
}

.language-switcher li {
	margin-right: 8px;
}

.language-switcher .marked {
	border-bottom: 1px solid var(--primary-color);
}

.house-table-item-container {
	border-right: 1px solid var(--primary-color);
	width: fit-content;
	zoom: 85%;
}
.house-table-item-container:last-child {
	border-right: none;
}
.house-table {

}
@keyframes slide-in {
  0% {
    opacity: 0;
    transform: translateX(80px);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@media screen and (min-width: 45rem) {
	.nav-trigger {
		top: 30px;
		right: 30px;
		height: calc(var(--unit) * 3);
		width: calc(var(--unit) * 3);
	}
}


/* Layout */

.grid-4, .grid-3 {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	grid-gap: calc(var(--unit) * 3);
}

.grid-3b {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	grid-gap: calc(var(--unit) * 3);
}

.grid-3-columns-left, .grid-3-columns-right, .grid-3-columns-full, .grid-4-columns-3, .grid-4-columns-4, .grid-3-columns-middle, .grid-3-columns-smallright {
	grid-column: 1 / span 1;
}

.grid-bottom {
	align-items: end;
}

.flex {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
}

@media screen and (min-width: 45rem) {
	.grid-3 {
		grid-template-columns: repeat(3, 1fr);
	}
	.grid-3b {
		grid-template-columns: repeat(3, 1fr);
	}
	.grid-4 {
		grid-template-columns: repeat(4, 1fr);
	}
	.grid-3-columns-left {
		grid-column: 1 / span 2;
	}
	.grid-3-columns-right {
		grid-column: 2 / span 2;
	}
	.grid-3-columns-middle {
		grid-column: 2 / span 1;
	}
	.grid-3-columns-smallright {
		grid-column: 3 / span 1;
	}
	.grid-3-columns-full {
		grid-column: 1 / span 3;
	}
	.grid-4-columns-3 {
		grid-column: 3 / span 1;
	}
	.grid-4-columns-4 {
		grid-column: 4 / span 1;
	}
}


/* Basic Styles */

.intro h1 {
	position: absolute;
	top: calc(var(--unit) * 8);
	left: calc(var(--unit) * 0.8);
	font-size: calc(var(--unit) * 4);
	line-height: .9;
}

.claim {
	padding-top: 55vh;
	padding-right: var(--unit);
	padding-left: var(--unit);
	font-size: calc(var(--unit) * 1.5);
	line-height: 1.2;
}

.claim strong {
	font-weight: bold;
}

.claim-row {
	grid-column: 1 / span 1;
}

.block {
	display: block;
	width: 100vw;
	height: 100vh;
}

.intro-bg {
	background: #f5f5f5 url('../img/Hub_8_Bg.png') no-repeat center center;
	background-size: cover;
}

.campus-bg {
	background: #f5f5f5 url('../img/Campus-Bg.jpg') no-repeat center center;
	background-size: cover;	
}

.line-top {
	border-top: 1px solid var(--primary-color);
}

.footer {
	padding-top: calc(var(--unit) * 2.5);
	padding-right: var(--unit);
	padding-bottom: calc(var(--unit) * 8);
	padding-left: var(--unit);
}

.footer-item-headline {
	font-size: calc(var(--unit) - 5px);
	padding-bottom: calc(var(--unit) / 2);
	border-bottom: 1px solid #333;
}

.footer-item-text {
	margin-top: var(--unit);
	line-height: 1.2;
}

.footer-logo {
	font-size: calc(var(--unit) * 2);
	font-weight: 200;
	line-height: 1;
}

.footer-logo strong {
	font-weight: 400;
}

.text-tile--intro {
	font-size: calc(var(--unit) * 1.4);
}

.text-tile--small {
	font-size: calc(var(--unit) / 1.2);
}

.bg-color--grey {
	background-color: var(--grey-color);
}
.bg-color--green {
	background-color: var(--green-color);
}
.bg-color--pink {
	color: var(--darkpink-color);
	background-color: var(--pink-color);
}

@media screen and (min-width: 45rem) {
	.intro h1 {
		left: calc(var(--unit) * 2);
		font-size: calc(var(--unit) * 8);
	}
	.claim {
		padding-left: calc(var(--unit) * 2.5);
		padding-right: calc(var(--unit) * 2.5);
	}
	.claim-row {
		grid-column: 4 / span 1;
	}
	.footer {
		padding-left: calc(var(--unit) * 2.5);
		padding-right: calc(var(--unit) * 2.5);
	}
}


/* UI */

.btn-small {
	position: relative;
	width: calc(var(--unit) * 9);
}

.btn-small a {
	display: block;
	color: var(--btn-color);
	background-color: var(--secondary-color);
	text-decoration: none;
	font-size: calc(var(--unit) - 5px);
	line-height: calc(var(--unit) * 2);
	height: calc(var(--unit) * 2);
	width: calc(var(--unit) * 9);
	border-radius: var(--unit);
	padding-left: var(--unit);
	transition: all .3s;
}

.btn-small span {
	position: absolute;
	top: 5px;
	right: 5px;
	display: block;
	height: calc(var(--unit) * 1.5);	
	width: calc(var(--unit) * 1.5);
	
	color: var(--btn-color);
	background-color: var(--secondary-color);
	
	line-height: 25px;
	text-align: center;
	
	border: 1px solid var(--btn-color);
	border-radius: 100%;
}

.btn-small a:hover {
	color: var(--secondary-color);
	background-color: var(--btn-color);	
}

.btn-small a:hover span {
	color: var(--secondary-color);
	background-color: var(--btn-color);	
	border: 1px solid var(--secondary-color);
}


/* Blocks */

/* Spacing */

.tile-top--none {
	padding-top: 0;	
}
.tile-top--small {
	padding-top: var(--unit);	
}
.tile-top--medium {
	padding-top: calc(var(--unit) * 2);	
}
.tile-top--big {
	padding-top: calc(var(--unit) * 6);	
}

.tile-bottom--none {
	padding-bottom: 0;	
}
.tile-bottom--small {
	padding-bottom: var(--unit);	
}
.tile-bottom--medium {
	padding-bottom: calc(var(--unit) * 2);	
}
.tile-bottom--big {
	padding-bottom: calc(var(--unit) * 6);	
}

@media screen and (min-width: 45rem) {
	.tile-top--medium {
		padding-top: calc(var(--unit) * 4);	
	}
	.tile-top--big {
		padding-top: calc(var(--unit) * 8);	
	}
	.tile-bottom--medium {
		padding-bottom: calc(var(--unit) * 4);	
	}
	.tile-bottom--big {
		padding-bottom: calc(var(--unit) * 8);	
	}
}


/* Master Tile */

.master-tile {
	position: relative;
	width: 100%;
	color: var(--secondary-color);
	padding-left: var(--unit);
	padding-right: var(--unit);
}

.master-tile h2 {
	font-size: calc(var(--unit) * 1.5);
	font-weight: 200;
	line-height: 1;
	margin-top: -15px;
}

.master-tile-content {
	position: absolute;
	padding-right: var(--unit);
	top: 40vh;
}

.master-tile-text {
	line-height: 1.2;
}

@media screen and (min-width: 45rem) {
	.master-tile {
		padding-left: calc(var(--unit) * 2.5);
		padding-right: calc(var(--unit) * 2.5);
	}
	.master-tile h2 {
		font-size: calc(var(--unit) * 3.5);
	}
	.master-tile-content {
		top: 60vh;
	}
}

/* Intro Tile + Text Tile */

.intro-tile, .text-tile, .tab-tile {
	padding-right: var(--unit);
	padding-left: var(--unit);
}

.headline-tile {
	padding-right: var(--unit);
	padding-left: var(--unit);
}

.image-tile--wrap {
	padding-right: var(--unit);
	padding-left: var(--unit);	
}

.intro-tile h2, .headline-tile h2, .text-tile--normal h2 {
	font-size: calc(var(--unit) * 1.5);
	font-weight: 200;
	line-height: 1;
}

.text-tile {
	line-height: 1.4;
}

.text-tile--normal {
	width: 100%;
	max-width: 1040px;
}

.text-tile--normal strong {
	font-weight: bold;
}

.text-tile--normal li {
	list-style: disc;
	padding-bottom: calc(var(--unit) * 1);
	margin-left: var(--unit);
}

@media screen and (min-width: 45rem) {
	.intro-tile, .text-tile, .tab-tile {
		padding-right: calc(var(--unit) * 2.5);
		padding-left: calc(var(--unit) * 2.5);
	}
	.image-tile--wrap {
		padding-right: calc(var(--unit) * 2.5);
		padding-left: calc(var(--unit) * 2.5);
	}
	.headline-tile {
		padding-right: calc(var(--unit) * 2.5);
		padding-left: calc(var(--unit) * 2.5);
	}
	.intro-tile h2, .headline-tile h2, .text-tile--normal h2 {
		font-size: calc(var(--unit) * 3.5);
	}
}

/* Keyfacts */

.keyfacts {
	padding-bottom: calc(var(--unit) * 2)
}

.keyfacts-headline {
	margin-bottom: calc(var(--unit) * 3);
}

.keyfacts-item {
	width: 90%;
	margin: 0 auto;
}

@media screen and (min-width: 45rem) {
	.keyfacts-item {
		width: 100%;
	}
}


/* Outro */

.outro-gap {
	padding-top: calc(var(--unit) * 6);	
}

.outro-item--show {
	display: block;
}

.outro-item--hide {
	display: none;
}

.outro-item {
	width: 100%;
	height: calc(var(--unit) * 5);
	overflow: hidden;
}

img.outro-item-icon {
	height: 60px;
	width: auto;
	padding-left: var(--unit);
}

.arrow-icon {
	height: var(--unit);
	width: calc(var(--unit) * 3);
	margin-right: 0;
	transition: margin-right .3s ease-in-out;
}

.outro-wrap a:hover .arrow-icon {
	margin-right: 15px;
}

.outro-item-link {
	width: calc(var(--unit) * 12);
	padding-right: var(--unit);
}

.outro-campus {
	background-color: var(--grey-color);
}
.outro-building {
	background-color: var(--green-color);	
}
.outro-location {
	background-color: var(--mint-color);
}
.outro-offices {
	background-color: var(--pink-color);	
}

@media screen and (min-width: 45rem) {
	.outro-gap {
		padding-top: calc(var(--unit) * 10);	
	}
	.outro-item-link {
		padding-right: calc(var(--unit) * 2);
	}
}

/* random */

.item-icon img {
	width: 80%;
}

.list-item {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	
	padding-top: calc(var(--unit) / 2);
	padding-bottom: calc(var(--unit) / 2);	
}

.list-headline {
	font-weight: bold;
	padding-bottom: calc(var(--unit) / 2);	
}

.list-item-right {
	font-weight: 400;
	width: 100%;
	text-align: left;
}

.list-item-left {
	letter-spacing: 1px;
	width: 100%;
}

.line {
	width: 100%;
	border-bottom: 1px solid var(--primary-color);
}

.building-headline {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.building-headline-text {
	font-size: 3em;
}

.building-image img {
	width: 220px;
}

.building-tile ul {
	padding-top: 1em;
}

.building-tile li {
	list-style: disc;
	margin-left: 1em;
}

@media screen and (min-width: 45rem) {
	.building-headline {
		flex-direction: row;
		align-items: center;
	}
	.list-item {
		flex-direction: row;
		justify-content: space-between;
	}
	.list-item-right {
		text-align: right;
	}
}


/* Tabs */

.tab-tile {
	border-bottom: 1px solid var(--secondary-color);
	min-height: 110vh;
}

.tab-tile-headline, .info {
	font-size: calc(var(--unit) * 1.5);
	line-height: 1.2;
}

.tabs h3 {
	font-size: calc(var(--unit) * 1.5);
	font-weight: 200;
}

.tabs {
	margin-top: calc(var(--unit) * 4);
	clear: both;
	position: relative;   
}

.tabs figcaption {
	margin-top: calc(var(--unit) / 2);
	line-height: 1.2;
}

.tab {
	float: left;
}

.tab label {
	margin-right: 5px;
	position: relative;
	top: 0;
	cursor: pointer;
	font-size: calc(var(--unit) - 5px);
	color: var(--btn-color);
	background-color: var(--secondary-color);
	padding: 5px 20px;
	border-radius: 50px;
}

.tab [type=radio] {
	display: none;   
}

.tab__content {
  position: relative;
	top: calc(var(--unit) * 3);
	left: 0;
	right: 0;
	bottom: 0;
	transition: opacity .3s cubic-bezier(.42,0,.34,1.01);
	opacity: 0;
}

@media screen and (min-width: 45rem) {
	.tab-tile {
		min-height: 180vh;
	}
	.tab-tile-headline, .info {
		font-size: calc(var(--unit) * 3);
	}
	.tabs h3 {
		font-size: calc(var(--unit) * 3);
	}
}

[type=radio]:checked ~ label {
	color: var(--secondary-color);
	background-color: var(--btn-color);
	z-index: 2;
}

[type=radio]:checked ~ label ~ .tab__content {
	z-index: 1;
	opacity: 1;
}

/* Animations */

@keyframes spin {
  from {
      transform:rotate(0deg);
  }
  to {
      transform:rotate(360deg);
  }
}


.animated { 
  -webkit-animation-duration: 1s; 
  animation-duration: 1s; 
  -webkit-animation-fill-mode: both; 
  animation-fill-mode: both; 
}

.delay-300 {
    -webkit-animation-delay:0.3s;
    -moz-animation-delay:0.3s;
    -o-animation-delay:0.3s;
    animation-delay:0.3s;
}

@-webkit-keyframes fadeInUpShort { 
    0% { 
        opacity: 0; 
        -webkit-transform: translateY(40px); 
    } 
    100% { 
        opacity: 1; 
        -webkit-transform: translateY(0); 
    } 
} 

@keyframes fadeInUpShort { 
    0% { 
        opacity: 0; 
        transform: translateY(40px); 
    } 
    100% { 
        opacity: 1; 
        transform: translateY(0); 
    } 
} 
.fadeInUpShort{
    opacity: 0; 
    -webkit-transform: translateY(40px); 
    transform: translateY(40px); 
}
.fadeInUpShort.go { 
    -webkit-animation-name: fadeInUpShort; 
    animation-name: fadeInUpShort; 
}


/* Slider */

.main-carousel {
	margin-top: calc(var(--unit) * 2);
}

.carousel-cell {
	width: 100%;
	/*height: 600px;*/
/*	padding: calc(var(--unit) * 1);*/
}

.carousel-cell figcaption p {
  position: absolute;
	bottom: 10px;
	left: 10px;
	padding: 5px 15px;
	border-radius: 5px;

	line-height: 1.2;

	background-color: rgba(255, 255, 255, 0.4);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	
	z-index: 100;
}

/* smaller, dark, rounded square */
.flickity-button {
  background: #333;
}
.flickity-button:hover {
  background: var(--btn-color);
}

.flickity-prev-next-button {
  width: 30px;
  height: 30px;
  border-radius: 5px;
}
/* icon color */
.flickity-button-icon {
  fill: white;
}
/* position outside */
.flickity-prev-next-button.previous {
  left: -10px;
}
.flickity-prev-next-button.next {
  right: -10px;
}

/* position dots up a bit */
.flickity-page-dots {
  bottom: -22px;
}
/* dots are lines */
.flickity-page-dots .dot {
  height: 4px;
  width: 40px;
  margin: 0;
  border-radius: 0;
}

@media screen and (min-width: 45rem) {
	/* position outside */
	.flickity-prev-next-button.previous {
	  left: 20px;
	}
	.flickity-prev-next-button.next {
	  right: 20px;
	}
}


@media screen and (max-width: 800px) {
	.house-table {
		
	}
	.house-table-item-container {
		width: 100%;
		border-right: none;
	}
}


