@charset "UTF-8";

.dialog-overlay {
	z-index: 10;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.7); }
  
  .dialog {
	z-index: 11;
	position: fixed;
	width: 90%;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%); }
	.dialog.small-dialog {
	  width: 75%; }
	.dialog.medium-dialog {
	  width: 75%; }
	.dialog p {
	  font-size: calc(12px + 1vw); }
	.dialog video {
	  max-width: 100%;
	  display: block; }
	.dialog .dialog-modal {
	  /* font-size: 1.117647059rem; */
	  /* 19px */ }
	  .dialog .dialog-modal h2 {
		display: flex;
		align-items: center;
		text-transform: none;
		padding: .9375rem 1.875rem;
		padding-right: 1.5em;
		/* clearance for close button */
		line-height: 1.5;
		margin: 0; }
	  .dialog .dialog-modal > div {
		padding: 1.875rem;
		/* 30px */ }
		.dialog .dialog-modal > div p {
		  font-size: 1rem;
		  margin-top: 0;
		  line-height: 1.5; }
	  .dialog .dialog-modal nav {
		align-items: center; }
	  .dialog .dialog-modal .icon {
		width: 1.2em;
		height: 1.3em;
		transform: translateY(0.2em); }
	.dialog nav {
	  display: -ms-flexbox;
	  display: flex;
	  justify-content: space-evenly;
	  -ms-flex-pack: justify;
	  width: 100%;
	  margin: 1em 0;
	  flex-direction: column; }
	  .dialog nav.underhang {
		justify-content: space-between;
		position: absolute;
		margin: 0;
		flex-direction: row; }
	  .dialog nav > a {
		font-size: 1.2rem;
		text-decoration: none;
		margin: 1em auto; }
	  .dialog nav button {
		border: 0;
		background: none;
		color: white;
		-moz-appearance: none;
		-webkit-appearance: none;
		cursor: pointer;
		margin: 0.8em 0;
		padding: 0 1vw; }
		.dialog nav button[data-action="dialog-prev"] {
		  margin-left: auto;
		  margin-right: 5vw; }
		.dialog nav button span {
		  display: none; }
  
  .map-overlay-container .dialog {
	z-index: 2; }
  
  .locations-dialog {
	max-width: 70vh; }
	.locations-dialog .dialog-content {
	  max-height: 70vh;
	  overflow: auto; }
	.locations-dialog details {
	  white-space: pre-line; }
	  .locations-dialog details summary {
		cursor: pointer; }
  
  .locations-dialog > button[data-action="dialog-close"] {
	display: none;
	/* hide for small screns */ }
  
  .dialog-content .barnacles {
	justify-content: flex-start;
	align-items: center;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding-left: 30px; }
  
  .dialog-content article ul {
	list-style: none;
	margin: 0;
	padding: 0; }
	.dialog-content article ul a::after {
	  content: " >"; }
  
  .dialog-content article .flex-video video:focus {
	outline: 1px dotted white; }
  
  .dialog-content article .flex-video video, .dialog-content article .flex-video iframe {
	display: block;
	height: 100%;
	width: 100%;
	object-fit: contain;
	object-position: top; }
  
  .dialog-content article aside {
	font-size: 1rem;
	padding: 2em 2em 3em;
	position: relative; }
	.dialog-content article aside p, .dialog-content article aside h1, .dialog-content article aside h2, .dialog-content article aside h3 {
	  font-size: inherit;
	  margin-top: 0; }
  
  .dialog-content > iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 50vh; }
  
  .dialog-overlay[aria-hidden="true"],
  .dialog[aria-hidden="true"] {
	display: none; }
  
  .dialog-overlay:not([aria-hidden="true"]),
  .dialog:not([aria-hidden="true"]) {
	display: block; }
  
  .dialog nav button:first-child {
	left: 0; }
  
  .dialog nav button:last-child {
	right: 0; }
  
  .sr-only {
	opacity: 0;
	position: absolute;
	clip: rect(1px 1px 1px 1px);
	clip: rect(1px, 1px, 1px, 1px); }
  
  .map-overlay-container .map-dialog-overlay, .map-overlay-container .dialog {
	position: absolute; }
  
  @media screen and (min-width: 150vh) {
	.locations-dialog {
	  max-width: none; }
	  .locations-dialog .dialog-content {
		max-height: 70vh; }
	.dialog-content::after {
	  content: none; }
	.dialog-content article {
	  display: -ms-grid;
	  display: grid;
	  -ms-grid-columns: 1fr 1fr;
	  grid-template-columns: 1fr 1fr; }
	  .dialog-content article .flex-video {
		-ms-grid-column: 1; }
	  .dialog-content article aside {
		-ms-grid-column: 2; }
	.dialog h2 {
	  margin-top: 0; }
	.dialog nav button span {
	  display: inline; }
	.dialog.small-dialog {
	  width: 33%;
	  min-width: 480px; }
	.dialog.medium-dialog {
	  width: 50%; }
	.dialog.locations-dialog {
	  top: 50%;
	  left: 50%;
	  transform: translate(-50%, -50%); }
	.locations-dialog > button[data-action="dialog-close"] {
	  display: block; } }
  
  @media screen and (min-width: 890px) {
	.dialog .dialog-modal nav {
	  flex-direction: row; }
	  .dialog .dialog-modal nav a {
		font-size: 1.3rem; } }
  
  @media screen and (min-height: 640px) {
	.dialog-content article .flex-video video {
	  object-position: center;
	  object-fit: contain; } }
  
  * {
	box-sizing: border-box; }
  
  html {
	overflow-x: hidden;
	/* prevent horizontal scrollbars on Windows etc. */ }
  
  body {
	margin: 0; }
  
  #vt-skip.show-for-sr:focus {
	padding: 0.3rem;
	z-index: 2;
	position: absolute; }
  
  .show-for-sr:not(:focus) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0; }
  
  main {
	max-height: 100vh;
	overflow-y: scroll; }
  
  svg#assets {
	display: none; }
  
  .sticky-nav[data-breakpoint="mobile"] {
	padding: 0 1em;
	height: 12vh; }
  
  input#menu--mobile:checked + label,
  input#menu--mobile:checked ~ svg {
	z-index: 1; }
  
  input#menu--mobile + label {
	font-size: 1rem;
	position: absolute;
	right: 1em;
	cursor: pointer; }
  
  input#menu--mobile + label > svg {
	width: 2rem;
	height: 2rem; }
  
  input#menu--mobile {
	position: absolute;
	clip: rect(0, 0, 0, 0); }
  
  .vod-wrapper > footer {
	display: none;
	/* don't show on mobile, its in the mobile menu anyway, and can get in the way */
	position: fixed;
	right: 1em;
	bottom: 1em;
	z-index: 3; }
  
  .vod-mobile-menu {
	display: none;
	-webkit-clip-path: inset(0 0 100% 0);
	clip-path: inset(0 0 100% 0);
	top: 0;
	left: 0;
	justify-content: space-around;
	justify-content: space-evenly;
	-ms-flex-pack: justify;
	align-items: center;
	flex-direction: column; }
	.vod-mobile-menu nav {
	  display: flex;
	  flex-direction: column;
	  align-items: start;
	  font-size: 1.375rem;
	  padding-top: 91px;
	  /* clearance for the header bar */
	  align-self: start;
	  margin: 0 30px; }
	  .vod-mobile-menu nav a {
		margin-bottom: 0.2em; }
	.vod-mobile-menu a.button {
	  display: block;
	  margin: 0;
	  text-align: center;
	  padding: 1.5em 0;
	  align-self: stretch;
	  margin: 0 30px; }
	.vod-mobile-menu .vod-social p {
	  font-size: 1rem;
	  margin-top: 0;
	  line-height: 1.5; }
  
  .fascia.vod-mobile-menu {
	position: absolute; }
  
  input#menu--mobile:checked ~ .vod-mobile-menu {
	display: -ms-flexbox;
	display: flex;
	-webkit-clip-path: inset(0 0 0 0);
	clip-path: inset(0 0 0 0); }
  
  .button {
	display: inline-block;
	color: currentColor;
	text-decoration: none;
	padding: 1em;
	font-size: 1rem;
	line-height: 1.5; }
  
  .button-icon svg {
	width: 1em;
	height: 1em;
	padding: 1rem 1em;
	box-sizing: content-box; }
  
  .button-icon {
	background: none;
	border: 0;
	color: inherit;
	line-height: 1.5;
	margin: 0;
	padding: 0;
	position: absolute;
	top: 0;
	right: 0;
	cursor: pointer;
	font-size: 1rem; }
  
  .vod-gondola h1 {
	font-size: calc(12px + 9vmin);
	line-height: 1.5;
	box-sizing: content-box; }
  
  svg.icon {
	width: 0.8em;
	height: 0.8em;
	fill: currentColor;
	margin-bottom: -0.1em;
	display: inline; }
  
  main > header {
	position: absolute; }
  
  .fascia {
	position: relative;
	min-height: 100vh;
	width: 100vw;
	max-width: 100vw; }
	.fascia header {
	  padding-top: 2vh;
	  text-align: center; }
	  .fascia header h2 {
		font-size: 52px;
		text-align: center;
		line-height: 1.5;
		margin-bottom: 1em; }
	.fascia > footer {
	  position: absolute;
	  right: 1em;
	  bottom: 1em; }
	  .fascia > footer p {
		margin: 0; }
  
  figure {
	margin: 0; }
  
  .scroll-prompter {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	text-align: center; }
	.scroll-prompter svg {
	  max-height: 12vh;
	  cursor: pointer; }
  
  .decoration {
	position: absolute;
	box-sizing: border-box;
	left: 0;
	right: 0;
	width: 100%;
	overflow: hidden; }
  
  .vod-gondola {
	text-align: center;
	position: relative; }
  
  .vod-social {
	text-align: center;
	position: relative; }
  
  /**
   *   S P L A S H   P A G E 
   *
   *
   **/
  .vod-logo {
	width: 170px;
	height: 43px; }
  
  .vod-splash {
	max-height: 100vh;
	overflow: hidden;
	background-image: url('/media/dist/bundles/virtual-tour/img/header-background.jpg');
	background-size: cover;
	background-position: center;
	display: flex;
	flex-direction: column;
	justify-content: center; }
	.vod-splash > .vod-logo {
	  margin: 29px 0 29px 35px;
	  position: absolute;
	  top: 0;
	  left: 0;
	  z-index: 2; }
	.vod-splash video {
	  position: absolute;
	  object-fit: cover;
	  width: 100%;
	  height: 100%;
	  display: block;
	  background-color: transparent; }
	.vod-splash header {
	  position: absolute; }
	.vod-splash footer {
	  text-align: center; }
	.vod-splash .vod-gondola p {
	  margin: 0; }
	.vod-splash .vod-gondola h1 {
	  margin: 0;
	  padding: 3vmin 8vw;
	  margin-bottom: 5vh;
	  display: inline-block; }
	  .vod-splash .vod-gondola h1 img {
		width: 66vw; }
	.vod-splash .decoration:nth-last-child(2) {
	  top: -2vh;
	  bottom: auto;
	  height: 13vh;
	  left: auto;
	  width: 73vw; }
	.vod-splash .decoration:last-child {
	  top: auto;
	  right: auto;
	  bottom: 0;
	  height: 12vh;
	  width: 34vw; }
  
  /**
   *   T O U R    B E G I N S !
   **/
  .vod-tetraptych {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: 1fr 2em 1fr;
	-ms-grid-rows: 1fr 2em 1fr;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 2vmin;
	width: 39.875rem;
	max-width: 90%;
	margin-bottom: 10vh; }
	.vod-tetraptych figure {
	  max-width: 14.75rem;
	  -ms-grid-column-align: center;
	  justify-self: center;
	  margin-bottom: 1rem; }
	  .vod-tetraptych figure img {
		width: 100%;
		display: block; }
	  .vod-tetraptych figure figcaption {
		text-align: center;
		white-space: nowrap; }
	  .vod-tetraptych figure:nth-child(even) {
		-ms-grid-column: 3; }
	  .vod-tetraptych figure:nth-child(3), .vod-tetraptych figure:nth-child(4) {
		-ms-grid-row: 3; }
  
  .vod-tour-container {
	width: 100vw; }
  
  .vod-tour {
	/* will-change: filter; */
	display: -ms-flexbox;
	display: flex;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	min-height: 88vh;
	/* becuase stickynav is 12vh */
	margin-top: 12vh; }
	.vod-tour .decoration:first-child {
	  width: 18vh;
	  top: 45vh;
	  bottom: auto;
	  height: 32vh;
	  display: none; }
	.vod-tour .decoration:nth-child(2) {
	  width: 62vh;
	  top: 0;
	  right: 0;
	  left: auto;
	  bottom: auto;
	  height: 30vh; }
	.vod-tour .decoration:nth-child(3) {
	  width: 100%;
	  top: auto;
	  bottom: 0;
	  height: 14vh; }
  
  header.sticky-nav {
	position: fixed;
	box-sizing: border-box;
	width: 100%;
	top: -1px;
	display: -ms-flexbox;
	display: flex;
	align-items: center;
	z-index: 3; }
	header.sticky-nav > nav {
	  display: none;
	  align-self: center;
	  margin: auto 1em auto auto; }
  
  .vod-map .sticky-nav {
	display: none;
	/* show only for larger-than-mobile*/ }
  
  .vod-map {
	/**
	   * Intrinsic Sizing bug thing for IE etc.
	   * Basically the same as the flex-video class we use on the main site.
	   **/ }
	.vod-map header {
	  padding: 2vh 2vw 4vh; }
	  .vod-map header nav {
		display: flex;
		justify-content: flex-end; }
		.vod-map header nav a {
		  display: inline-block;
		  margin-left: 4vw; }
	.vod-map .map-scroll-container {
	  position: relative;
	  max-width: 100vw;
	  overflow: auto; }
	.vod-map .map-container {
	  position: relative;
	  min-width: 1024px;
	  min-height: 552px;
	  overflow: auto; }
	  .vod-map .map-container > svg {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%; }
  
  .mapmarker,
  #location {
	width: 64px;
	height: 64px; }
  
  /** L O C A T I O N S */
  .vod-locations {
	display: none; }
  
  .no-js .vod-location {
	display: block; }
  
  .vod-location svg.placeholder {
	width: 60vw;
	/* 60 / 19 = 3.157894737 */
	height: 28.42vw;
	/* 9 * 3.157894737 = 28.421052633 */
	border: 0;
	display: block;
	max-width: 960px;
	max-height: 540px; }
  
  .vod-now {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center; }
	.vod-now > header {
	  margin: auto auto 0;
	  padding-top: 2vh; }
	.vod-now .vod-gondola {
	  margin: 5vh auto;
	  display: -ms-flexbox;
	  display: flex; }
	  .vod-now .vod-gondola > nav {
		display: -ms-flexbox;
		display: flex;
		flex-direction: column; }
		.vod-now .vod-gondola > nav > a {
		  font-size: 1rem;
		  /* 16px */
		  margin: 0 1em 0.5em;
		  display: block;
		  align-self: stretch; }
		  .vod-now .vod-gondola > nav > a:last-child {
			margin-bottom: 0; }
	.vod-now .vod-social {
	  margin: 0 auto auto;
	  padding-bottom: 2vh;
	  font-size: 1rem; }
	  .vod-now .vod-social p {
		font-size: 1.25rem;
		/* 20px */
		margin: 0;
		line-height: 1.5; }
	.vod-now .decoration:first-child {
	  /* tictacs */
	  top: 0;
	  bottom: auto;
	  height: 150px;
	  left: auto;
	  width: 300px;
	  right: 0;
	  left: auto; }
	.vod-now .decoration:nth-child(2) {
	  top: 42vh;
	  bottom: auto;
	  height: 20vh;
	  left: auto;
	  width: 115px;
	  right: 0; }
	.vod-now .decoration:nth-child(3) {
	  top: auto;
	  right: auto;
	  bottom: 0;
	  left: 0;
	  height: 250px;
	  width: 300px; }
  
  .barnacles {
	list-style: none;
	margin: 0;
	padding: 0;
	display: -ms-flexbox;
	display: flex;
	font-size: 2rem;
	flex-wrap: wrap;
	justify-content: space-evenly;
	align-items: baseline; }
	.barnacles span {
	  font-size: 1rem; }
	.barnacles > a {
	  margin: 0 2vw; }
  
  .barnacles li {
	display: inline-block;
	margin: 0 5%;
	flex-basis: 20%; }
  
  /* *** *** *** *** */
  @media screen and (min-width: 640px) {
	.button {
	  padding: 1em 2em; }
	.vod-tetraptych figure figcaption {
	  font-size: 1.3rem; }
	.vod-splash .vod-gondola h1 img {
	  max-width: 11ch; }
	header.sticky-nav > nav {
	  display: block;
	  display: flex; }
	.vod-tour {
	  min-height: 100vh;
	  margin-top: 0; }
	  .vod-tour .decoration:first-child {
		display: block; }
	.sticky-nav[data-breakpoint="mobile"] {
	  display: none; }
	.vod-map .sticky-nav {
	  display: none;
	  margin-bottom: -1em; }
	@supports (position: sticky) {
	  .vod-map .sticky-nav {
		display: flex;
		position: sticky; } }
	.vod-now .vod-gondola > nav > a {
	  font-size: 1.25rem;
	  /* 20px */ }
	.vod-wrapper > footer {
	  display: block; }
	.barnacles > a {
	  margin: 0 1vw; } }
  
  /* if the rightmost map icon is hidden, show the scroll prompt */
  @media screen and (min-width: 725px) {
	.vod-map .helpful-hint {
	  display: none;
	  animation: none; } }
  
  @media screen and (min-width: 1024px) {
	.vod-map .map-container {
	  min-width: auto;
	  min-height: auto;
	  overflow: visible;
	  height: 0;
	  padding-bottom: 56%; } }
  
  /* Microsoft IE 10, 11 */
  @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
	.fascia {
	  width: auto;
	  /* IE calculated widths differently?! */ }
	.vod-splash video {
	  top: 50%;
	  left: 50%;
	  min-width: 100%;
	  min-height: 100%;
	  width: auto;
	  height: auto;
	  z-index: -100;
	  -ms-transform: translateX(-50%) translateY(-50%);
	  transform: translateX(-50%) translateY(-50%); }
	.vod-map .sticky-nav {
	  position: static; } }
  
  @media screen and (orientation: landscape) and (max-height: 30em) {
	.vod-tetraptych {
	  grid-template-columns: 1fr 1fr 1fr 1fr;
	  grid-template-rows: 1fr; }
	  .vod-tetraptych figure figcaption {
		font-size: 1rem; } }
  
  /* Microsoft Edge Browser 12+ (All) - @supports method */
  @supports (-ms-ime-align: auto) {
	.vod-splash video {
	  top: 50%;
	  left: 50%;
	  min-width: 100%;
	  min-height: 100%;
	  width: auto;
	  height: auto;
	  z-index: -100;
	  -ms-transform: translateX(-50%) translateY(-50%);
	  transform: translateX(-50%) translateY(-50%); } }
  
  p.vestibular-wrapper {
	margin: 0;
	position: absolute;
	right: 1em;
	bottom: 0;
	transform: translateY(-3em);
	z-index: 2;
	line-height: 1.5; }
  
  input#vestibular + label::before {
	content: '\a0';
	/* non-breaking space */
	display: inline-block;
	/* vertical-align: .2em; */
	width: .8em;
	height: .8em;
	margin-right: .2em;
	border-radius: .2em;
	background: silver;
	text-indent: .15em;
	/* line-height: .65; */
	vertical-align: middle;
	border: 1px dotted transparent; }
  
  input#vestibular:checked + label::before {
	content: '\2713';
	background: yellowgreen; }
  
  input#vestibular + label {
	font-size: 0.9rem;
	/* 16px */
	cursor: pointer; }
  
  input:focus#vestibular + label {
	outline: 2px solid #D41568;
	outline-offset: 2px; }
  
  input:focus#vestibular + label::before {
	border-color: white; }
  
  input#vestibular,
  input[name="location"] {
	position: absolute;
	clip: rect(0, 0, 0, 0); }
  
  .scroll-prompter svg {
	animation: pogo 1s cubic-bezier(0.65, 0.05, 0.36, 1) infinite alternate;
	animation-play-state: running; }
  
  .button, .barnacles li {
	transition: transform 0.2s linear; }
  
  .button:hover {
	/* transform: scale(1.05); */
	filter: brightness(1.1); }
  
  .barnacles li:hover {
	transform: scale(1.2); }
  
  .button-icon {
	transition: transform 0.333s cubic-bezier(0.445, 0.05, 0.55, 0.95);
	will-change: contents; }
  
  .button-icon:hover {
	transform: rotate(180deg); }
  
  .vod-mobile-menu {
	transition: clip-path 0.2s cubic-bezier(0.445, 0.05, 0.55, 0.95); }
  
  .helpful-hint::after {
	animation: sashay 0.5s cubic-bezier(0.445, 0.05, 0.55, 0.95) alternate infinite; }
  
  @keyframes pogo {
	to {
	  transform: translateY(-100%); } }
  
  @keyframes spin {
	100% {
	  transform: rotate(720deg); } }
  
  @keyframes sashay {
	to {
	  transform: translateX(0.3em); } }
  
  .vod-splash {
	z-index: 1; }
  
  .overlay {
	position: absolute;
	top: 0;
	height: 100vh;
	width: 100vw;
	background: #000;
	z-index: 1; }
  
  .vod-tour-container {
	/* position: fixed; */
	top: 0;
	/* z-index: -1; */ }
  
  .vod-wrapper {
	min-height: 200vh; }
  
  /* .vod-tetraptych {
	  transition: transform 0.333s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  } */
  .vod-tetraptych a:hover .vod-wiggly-borders::after {
	transform: rotate(180deg); }
  
  @keyframes pause {}@keyframes northerly {
	from {
	  transform: translate(0, -100vh); }
	to {
	  transform: translate(0, 0); } }
  
  @keyframes marching-ants {
	from {
	  stroke-dashoffset: 1; }
	to {
	  stroke-dashoffset: 4; } }
  
  @media screen and (min-width: 1024px) {
	.vod-map.active .map-container .location-point {
	  animation-name: northerly;
	  animation-duration: 0.333s;
	  animation-direction: normal;
	  animation-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
	  .vod-map.active .map-container .location-point:nth-child(1) {
		animation-delay: 0.4s; }
	  .vod-map.active .map-container .location-point:nth-child(2) {
		animation-delay: 0.3s; }
	  .vod-map.active .map-container .location-point:nth-child(3) {
		animation-delay: 0.5s; }
	  .vod-map.active .map-container .location-point:nth-child(4) {
		animation-delay: 0.6s; }
	  .vod-map.active .map-container .location-point:nth-child(5) {
		animation-delay: 0.7s; }
	  .vod-map.active .map-container .location-point:nth-child(6) {
		animation-delay: 0.9s; }
	  .vod-map.active .map-container .location-point:nth-child(7) {
		animation-delay: 0s; }
	  .vod-map.active .map-container .location-point:nth-child(8) {
		animation-delay: 0.1s; }
	  .vod-map.active .map-container .location-point:nth-child(9) {
		animation-delay: 0.2s; }
	  .vod-map.active .map-container .location-point:nth-child(10) {
		animation-delay: 1.1s; } }
  
  body.reduced-motion .scroll-prompter svg,
  body.reduced-motion .helpful-hint::after,
  body.reduced-motion .location-point a:focus svg {
	animation-play-state: paused; }
  
  body.reduced-motion .button,
  body.reduced-motion .barnacles li,
  body.reduced-motion .button-icon,
  body.reduced-motion .vod-map svg use.icon,
  body.reduced-motion .vod-map svg use.lozenge,
  body.reduced-motion .vod-map svg text,
  body.reduced-motion .vod-tetraptych {
	transition: none; }
  
  body.reduced-motion #map .map-container .location-point {
	animation-name: none; }
  
  /* *** BRAND AND TYPOGRAPHY *** */
  @font-face {
	font-family: "FSMaja";
	src: url('/media/dist/fonts/fsmaja/FSMajaWeb-Regular.woff') format('woff'), url("fsmaja/FSMajaWeb-Regular.woff") format('woff');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
  }
  
  body {
	font-size: 24px;
	font-family: "Open Sans", Arial, Helvetica, sans-serif;
	color: #fff; }
  
  #vt-skip {
	background-color: #AC1154;
	color: white; }
  
  .dialog-content h2 {
	font-size: 1.25rem; }
  
  .dialog-content article aside h2 {
	font-family: FSMaja, serif;
	font-size: 2em; }
  
  header h2,
  .fascia .vod-gondola h1,
  .dialog-overlay,
  .dialog-modal h2 {
	/* font-family: "Just Another Hand", cursive; */
	/* text-transform: uppercase; */
	font-weight: normal; }
  
  h1, h2 {
	position: relative; }
  
  .dialog nav button, nav a {
	font-size: 1rem; }
  
  .ink {
	fill: #76BD22; }
  
  .ink2 {
	fill: inherit; }
  
  .paper {
	fill: white; }
  
  .stroke {
	fill: none;
	stroke: inherit; }
  
  button svg.icon {
	fill: currentColor; }
  
  button:focus {
	outline: 1px dotted white; }
  
  button::-moz-focus-inner {
	border: 0; }
  
  input#vestibular:checked + label::before {
	background: #AC1154; }
  
  /* #tictacs path, */
  #logo path {
	fill: inherit; }
  
  .vod-gondola h1, .fascia h2 {
	background-image: url('/media/dist/bundles/virtual-tour/img/paint-splat.svg');
	background-repeat: no-repeat;
	background-position: center bottom;
	padding: 0 6vw 1vw; }
  
  .fascia h2 img {
	width: 50vw; }
  
  .vod-now h2 {
	background-image: url('/media/dist/bundles/virtual-tour/img/paint-splat-pink.svg'); }
  
  .vod-now .decoration:first-child {
	fill: #76BD22; }
  
  .vod-now .decoration:nth-child(2) {
	fill: #31006F; }
  
  .vod-now .decoration:nth-child(3) {
	fill: #AC1154; }
  
  .vod-tour .decoration:first-child {
	fill: #76BD22; }
  
  .vod-tour .decoration:nth-child(2) {
	fill: #31006F;
	stroke: #31006F;
	stroke-width: 16; }
  
  .vod-tour .decoration:nth-child(3) {
	fill: #76BD22; }
  
  .vod-logo {
	fill: white; }
  
  .vod-tour, .vod-wrapper {
	background-color: #AC1154; }
  
  .vod-tour {
	background-image: url('/media/dist/bundles/virtual-tour/img/map-repeat-pink.jpg');
	background-size: 100% auto; }
  
  .dialog-content article {
	background-color: black; }
	.dialog-content article aside {
	  background: white; }
  
  .vod-tour-container, .vod-mobile-menu {
	background-color: #006938; }
  
  .button::after,
  .vod-mobile-menu nav > a::after,
  .dialog-content nav > a::after {
	content: '';
	width: 1em;
	height: 1em;
	margin-left: 0.5em;
	display: inline-block;
	vertical-align: middle;
	background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0xOS43MTIgNTkuMzkyYzAtMC41MTIgMC4yNTYtMS4wMjQgMC42NC0xLjQwOGwyNS44NTYtMjUuOTg0LTI1Ljg1Ni0yNS45ODRjLTAuNzY4LTAuNzY4LTAuNzY4LTIuMDQ4IDAtMi45NDQgMC43NjgtMC43NjggMi4wNDgtMC43NjggMi45NDQgMGwyNy4zOTIgMjcuMzkyYzAuNzY4IDAuNzY4IDAuNzY4IDIuMTc2IDAgMi45NDRsLTI3LjUyIDI3LjM5MmMtMC43NjggMC43NjgtMi4wNDggMC43NjgtMi45NDQgMC0wLjM4NC0wLjM4NC0wLjUxMi0wLjg5Ni0wLjUxMi0xLjQwOHoiPjwvcGF0aD48L3N2Zz4="); }
  
  .vod-gondola footer a::after {
	content: none; }
  
  .vod-tour-container {
	background-image: url('/media/dist/bundles/virtual-tour/img/map-repeat-green.jpg');
	background-size: 100% auto; }
  
  .sticky-nav[data-breakpoint="mobile"] {
	background-color: #006938; }
  
  p.helpful-hint {
	font-size: 1rem;
	color: white;
	text-align: center; }
	p.helpful-hint::after {
	  content: "↝";
	  display: inline-block; }
  
  .vod-map header {
	background-color: transparent;
	background-image: url('/media/dist/bundles/virtual-tour/img/paint-bg.svg');
	background-size: cover;
	background-position: center bottom; }
	.vod-map header nav a {
	  font-size: 1.25rem; }
  
  a:link,
  a:hover,
  a:active,
  a:visited,
  a:focus {
	color: inherit; }
  
  a {
	/* font-size: 2em; */
	/* font-family: "Just Another Hand", cursive; */
	/* letter-spacing: 2px; */
	text-decoration: none; }
  
  nav a:hover {
	text-decoration: underline; }
  
  .button {
	background-color: #AC1154; }
  
  .button--contact {
	background: rgba(49, 0, 111, 0.8); }
  
  .vod-tetraptych figcaption {
	font-size: 1rem;
	/* 16px */
	/* margin-top: 0.3125rem; */
	background-color: #AC1154; }
  
  .vod-tetraptych a:hover {
	text-decoration: underline; }
  
  .vod-tetraptych figure > a {
	position: relative;
	display: block; }
	.vod-tetraptych figure > a::after {
	  position: absolute;
	  background-image: url('/media/dist/bundles/virtual-tour/img/frame.svg');
	  background-size: contain;
	  background-repeat: no-repeat;
	  top: -1rem;
	  bottom: -1rem;
	  left: -1rem;
	  right: -1rem; }
	.vod-tetraptych figure > a:hover::after {
	  content: ""; }
  
  .vod-tetraptych figure:nth-child(2) > a::after {
	transform: scale(-1) rotate(-10deg); }
  
  .vod-tetraptych figure:nth-child(3) > a::after {
	transform: rotate(-10deg); }
  
  .vod-tetraptych figure:nth-child(4) > a::after {
	transform: scale(-1); }
  
  .dialog-content button {
	border: 1px solid #006938;
	padding: 0.333rem;
	font-size: 1rem;
	background: #006938;
	color: white;
	cursor: pointer;
	font-family: inherit; }
  
  .dialog-content button:hover {
	background-color: #008346; }
  
  .dialog-content a {
	text-decoration: none; }
  
  .dialog-content a:hover {
	text-decoration: underline; }
  
  .dialog-content article aside ul li a {
	display: inline-block;
	margin-bottom: 1em; }
  
  .dialog-content article aside ul li a::after,
  .dialog-content article aside a.featured::after {
	content: url('/media/dist/bundles/virtual-tour/img/chevron-htggrn.svg');
	vertical-align: middle;
	padding-left: 2px; }
  
  .dialog-content article aside a.featured::after {
	content: url('/media/dist/bundles/virtual-tour/img/chevron-nrgpnk.svg'); }
  
  .dialog-content article aside a.featured {
	color: #AC1154; }
  
  .vod-splash {
	color: white;
	box-shadow: 0 0 1vh 2vh rgba(0, 0, 0, 0.3); }
  
  a#begin {
	font-size: 1.25rem;
	padding: 1.375rem 2.875rem; }
  
  .location-point svg {
	color: white;
	fill: #AC1154; }
  
  .location-point a:focus svg {
	stroke: white;
	stroke-dasharray: 2;
	animation: marching-ants 0.2s infinite steps(4); }
  
  .location-point svg:hover {
	fill: #006938; }
  
  .dialog {
	background-color: white;
	color: #373a36; }
	.dialog h1, .dialog h2, .dialog h3 {
	  color: #006938; }
	.dialog .dialog-content a {
	  color: #006938; }
	.dialog .dialog-content nav > a {
	  background-color: #006938;
	  color: white;
	  padding: 1em; }
	.dialog .dialog-modal h2 {
	  background-color: #006938;
	  color: white; }
	.dialog .dialog-modal .icon {
	  fill: #AC1154; }
	.dialog .dialog-modal button .icon {
	  fill: currentColor; }
  
  .dialog-content .barnacles {
	background-color: #AC1154;
	color: white; }
	.dialog-content .barnacles .icon {
	  color: white; }
  
  button.close-dialog {
	color: white; }
  
  .locations-dialog button.close-dialog {
	color: #776e64;
	outline-color: #D41568; }
  
  /* social */
  .barnacles a:hover svg {
	border-radius: 2px;
	background: white; }
  
  .barnacles a:focus {
	outline: none; }
	.barnacles a:focus svg {
	  outline: 1px dotted white;
	  outline-offset: 2px; }
  
  a:hover use {
	fill: #006938; }
  
  a[href*="twitter.com"]:hover use {
	fill: #1da1f2; }
  
  a[href*="facebook.com"]:hover use {
	fill: #3b5998; }
  
  a[href*="linkedin.com"]:hover use {
	fill: #007bb5; }
  
  a[href*="instagram.com"]:hover use {
	fill: #3b5998; }
  
  a[href*="wechat.com"]:hover use {
	/* https://res.wx.qq.com/a/wx_fed/wedesign/res/static/res/2b7c/WeChat_Standard_Color_Guidelines_201703.pdf */
	fill: #1aad19; }
  
  a[href*="weibo.com"]:hover use {
	fill: #C30E1B; }
  
  @media screen and (min-width: 640px) {
	a.button {
	  font-size: 0.875rem; }
	a.c-link {
	  font-size: 2.666em; }
	.fascia h2 img {
	  width: 33vw;
	  max-width: 9ch; } }
  
  @media screen and (orientation: landscape) {
	.fascia h2 img {
	  width: 20vw; } }
  
  .map-scroll-container {
	-webkit-overflow-scrolling: touch; }
	.map-scroll-container button.help {
	  z-index: 1;
	  position: absolute;
	  top: 16px;
	  left: 16px;
	  padding: 0;
	  border: 0;
	  background: none;
	  color: white;
	  cursor: pointer; }
	  .map-scroll-container button.help:focus {
		outline-color: currentColor; }
	  .map-scroll-container button.help svg {
		width: 64px;
		height: 64px; }
  
  .dialog-overlay.map-dialog-overlay {
	z-index: 2; }
  
  .map-container {
	background-image: url('/media/dist/bundles/virtual-tour/img/map-bg.jpg');
	background-size: contain;
	background-repeat: no-repeat; }
	.map-container .location-point {
	  position: absolute;
	  top: 0;
	  left: 0;
	  animation-name: none;
	  animation-duration: 0s;
	  animation-direction: reverse;
	  animation-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
	  .map-container .location-point a:focus {
		outline: none; }
	  .map-container .location-point svg {
		transform: translate(-50%, -50%);
		display: block;
		width: 42px;
		height: 42px;
		cursor: pointer;
		filter: drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.5)); }
  
  .map-container .location-point:nth-child(1n) {
	left: 10%;
	top: 10%; }
  
  .map-container .location-point:nth-child(2) {
	top: 70%;
	left: 33%; }
  
  .map-container .location-point:nth-child(3) {
	top: 35%;
	left: 20%; }
  
  .map-container .location-point:nth-child(4) {
	top: 15%;
	left: 42%; }
  
  .map-container .location-point:nth-child(5) {
	top: 40%;
	left: 55%; }
  
  .map-container .location-point:nth-child(6) {
	top: 50%; }
  
  .map-container .location-point:nth-child(7) {
	top: 50%; }
  
  .map-container .location-point:nth-child(8) {
	top: 50%; }
  
  .map-container .location-point:nth-child(9) {
	top: 50%; }
  
  .map-container .location-point:nth-child(10) {
	top: 50%; }
  
  #location--pathfoot {
	top: 70%;
	left: 33%; }
  
  #location--halls {
	top: 35%;
	left: 20%; }
  
  #location--atrium {
	top: 15%;
	left: 42%; }
  
  #location--sport {
	top: 40%;
	left: 55%; }
  
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
	/* Retina-specific stuff here */
	.map-container {
	  background-image: url(/media/dist/bundles/virtual-tour/img/map-bg2x.jpg);
	}
  }
  
  [lang="cn"] .dialog nav button {
	font-size: 1.2rem; }
	[lang="cn"] .dialog nav button svg {
	  font-size: 1.8rem; }
  
  .flex-video .x-player, .flex-video .ykplayer {
	width: auto;
	height: auto;
	position: absolute;
	overflow: visible;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0; }
  