@charset "utf-8";

.modal._full .front > .content > .box > .close
{
	top:1.5rem;
	right:1.5rem;
	box-shadow:0 0 0.5rem rgba(0,0,0,0.5);
}
#loading
{
	display:flex;
	justify-content:center;
	align-items:center;
	position:fixed;
	left:0;
	top:0;
	width:100%;
	height:100%;
	background-image:linear-gradient(15deg, #303040 0, #b0b0c0 100%);
	z-index:1;
}
#loading.fade
{
	transition:opacity 0.75s;
}
#loading.loaded
{
	opacity:0;
	z-index:0;
}
#loading.fade.loaded
{
	z-index:1;
}
#loading.hide
{
	display:none;
}
#loading svg
{
	width:100%;
	max-width:12rem;
	padding:var(--space-large);
}
#loading.fade svg
{
	transition:opacity 0.5s, transform 0.5s;
}
#loading.fade.loaded svg
{
	opacity:0;
	transform:scale(1.25);
}
#pano
{
	position:fixed;
	left:0;
	top:0;
	width:100%;
	height:100%;
}
#pano > *
{
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
}
#pano > *:first-child
{
	cursor:grab;
}
#pano > *:first-child:active
{
	cursor:grabbing;
}
#pano > *:last-child
{
	pointer-events:none;
}
#pano > *:last-child *
{
	pointer-events:auto;
}
.keyboard-navigation-engaged #pano:focus > *
{
	outline:1rem solid #2070ff !important;
	outline-offset:-0.5rem;
}
.virtual.no-markers #pano > div
{
	display:none;
}
.virtual .menu
{
	display:flex;
	align-items:center;
	gap:var(--space);
	position:absolute;
	left:0;
	top:0;
	width:100%;
	max-width:26rem;
	padding:1rem var(--edge);
	background-image:linear-gradient(to right, rgba(255,255,255,1.0) 0, rgba(255,255,255,0.0) 100%);
	box-sizing:border-box;
	z-index:2;
}
.virtual .menu img
{
	width:2.5rem;
}
.virtual .menu a + a
{
	display:block;
	font-family:var(--font-b);
	text-transform:uppercase;
	text-align:center;
	font-weight:500;
	letter-spacing:0.0625em;
	padding:0.375rem 0.625rem;
	font-size:0.75rem;
	line-height:1.25rem;
	color:#ffffff;
	background-color:#101010;
	border-radius:0.25rem;
}
body:not(.touch) .virtual .menu a + a:hover
{
	color:#ffffff;
	background-color:#707070;
}
.virtual .title
{
	position:absolute;
	left:var(--edge);
	bottom:2rem;
	width:100%;
	max-width:26rem;
	padding:0.5rem;
	background-color:rgba(0,0,0,0.75);
	box-sizing:border-box;
	z-index:2;
}
.virtual .title h1
{
	padding:0.5rem 1rem;
	border:1px solid rgba(255,255,255,0.125);
	font-size:1.625rem;
	line-height:1.25;
	text-align:center;
	color:#ffffff;
	font-weight:500;
	text-shadow:0 0 0.5rem rgba(0,0,0,0.125);
}
.virtual .title h1 *
{
	display:block;
}
.virtual .title h1 .subtitle
{
	margin-top:0.25rem;
	font-size:0.875rem;
	font-weight:400;
}
.virtual a.back,
.virtual a.next
{
	position:absolute;
	left:0;
	bottom:50%;
	transform:translateY(50%);
	padding:0.75rem 0.75rem 0.75rem 2rem;
	max-width:8rem;
	background-color:rgba(0,0,0,0.5);
	color:#ffffff;
	font-family:var(--font-b);
	font-weight:500;
	font-size:0.75rem;
	letter-spacing:0.0625em;
	line-height:1.25;
	text-align:center;
	text-transform:uppercase;
	text-shadow:0 0 0.5rem rgba(0,0,0,0.5);
	z-index:2;
}
.virtual a.next
{
	left:auto;
	right:0;
	padding:0.75rem 2rem 0.75rem 0.75rem;
}
body:not(.touch) .virtual a.back:hover,
body:not(.touch) .virtual a.next:hover
{
	color:#ffffff;
	background-color:rgba(0,0,0,0.75);
}
.virtual a.back svg,
.virtual a.next svg
{
	position:absolute;
	left:0.5rem;
	top:0;
	bottom:0;
	width:0.75rem;
	height:auto;
	margin:auto 0;
	fill:#ffffff;
}
.virtual a.next svg
{
	left:auto;
	right:0.5rem;
}
.virtual a.back .mobile,
.virtual a.next .mobile
{
	display:none;
}
.virtual .sidebar
{
	display:flex;
	gap:1.5rem;
	position:absolute;
	right:var(--edge);
	bottom:2rem;
	z-index:2;
}
.virtual .sidebar a
{
	width:4rem;
	color:#ffffff;
}
body:not(.touch) .virtual .sidebar a:hover
{
	color:#ffffff;
}
.virtual .sidebar a .graphic
{
	padding:0.5rem;
	background-color:rgba(0,0,0,0.75);
	border-radius:50%;
	transition:background-color 0.25s;
}
body:not(.touch) .virtual .sidebar a:hover .graphic
{
	background-color:rgba(0,0,0,1);
}
.virtual .sidebar a > span
{
	display:block;
	margin-top:0.5rem;
	font-family:var(--font-b);
	font-weight:500;
	font-size:0.75rem;
	letter-spacing:0.0625em;
	line-height:1.25;
	text-align:center;
	text-transform:uppercase;
	text-shadow:0 0 0.5rem rgba(0,0,0,0.75);
}
.virtual .settings
{
	position:absolute;
	right:0;
	bottom:100%;
	padding:0.75rem;
}
.virtual .settings summary
{
	width:1.5rem;
	height:1.5rem;
	padding:0.5rem;
	border-radius:50%;
	background-color:rgba(0,0,0,0.75);
	transition:background-color 0.25s;
}
.virtual .settings[open] summary,
body:not(.touch) .virtual .settings summary:hover
{
	background-color:rgba(0,0,0,1);
}
.virtual .settings summary svg
{
	fill:#ffffff;
	animation:none;
}
body:not(.touch) .virtual .settings summary:hover svg
{
	animation:spin 1s linear infinite;
}
body:not(.touch) .virtual .settings[open] summary:hover svg
{
	animation:none;
}
.virtual .settings > div
{
	position:absolute;
	right:100%;
	bottom:0.75rem;
	width:max-content;
	background-color:#101010;
	color:#ffffff;
	padding:0.75rem 1rem 0.75rem 0.75rem;
	border-radius:0.375rem;
}
.virtual .settings .checkbox
{
	position:relative;
	padding-left:1.5rem;
}
.virtual .settings .checkbox label
{
	display:block;
	font-size:0.875rem;
	line-height:1.5rem;
	padding-left:0.5rem;
	font-family:var(--font-b);
	font-weight:500;
	text-transform:uppercase;
	color:#707070;
	cursor:pointer;
}
.virtual .settings .checkbox input:checked + label
{
	color:#ffffff;
}
.virtual .settings .checkbox input
{
	display:block;
	position:absolute;
	left:0;
	top:0;
	width:1.5rem;
	height:1.5rem;
	border-radius:0.5rem;
	margin:0;
	border:0.125rem solid #707070;
	box-sizing:border-box;
	-webkit-appearance:none;
	cursor:pointer;
}
.virtual .settings .checkbox input:checked
{
	border-color:#ffffff;
	background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 6" fill="%23ffffff"><polygon points="3 4 1 2 0 3 3 6 8 1 7 0 3 4"/></svg>');
	background-size:1rem auto;
	background-position:center;
	background-repeat:no-repeat;
}
@media(max-width:1200px)
{
	.virtual .title h1
	{
		font-size:1.375rem;
	}
}
@media(max-width:1080px)
{
	.virtual .title h1
	{
		font-size:1.25rem;
	}
}
@media(max-width:720px)
{
	#loading svg
	{
		max-width:8rem;
	}
	.virtual .content
	{
		display:grid;
		grid-template-rows:auto auto 1fr;
	}
	
	.virtual .menu
	{
		position:relative;
		max-width:none;
		background-color:#ffffff;
	}
	
	.virtual .title
	{
		position:relative;
		max-width:none;
		left:0;
		bottom:0;
		padding:1rem;
	}
	
	.virtual .title h1
	{
		padding:0;
		border:none;
		font-size:1.125rem;
		text-align:left;
	}
	
	.virtual a.back
	{
		padding-left:1.75rem;
	}
	
	.virtual a.next
	{
		padding-right:1.75rem;
	}
	
	.virtual a.back svg, .virtual a.next svg
	{
		width:0.5rem;
	}
	
	.virtual a.back .desktop,
	.virtual a.next .desktop
	{
		display:none;
	}
	
	.virtual a.back .mobile,
	.virtual a.next .mobile
	{
		display:inline;
	}
	
	.virtual .sidebar
	{
		bottom:var(--edge);
	}
}
@media(max-width:640px)
{
	.virtual .settings
	{
		padding:0.375rem;
	}
	.virtual .settings summary
	{
		width:1.25rem;
		height:1.25rem;
	}
	.virtual .settings > div
	{
		bottom:0.375rem;
	}
	.virtual .sidebar a
	{
		width:3rem;
	}
	.virtual .sidebar a .graphic
	{
		padding:0.375rem;
	}
	.virtual .sidebar a > span
	{
		margin-top:0.375rem;
		font-size:0.6875rem;
	}
}
@media(max-width:400px)
{
	#loading svg
	{
		max-width:6rem;
	}
	.virtual .menu
	{
		padding-top:0.75rem;
		padding-bottom:0.75rem;
	}
	.virtual .menu img
	{
		width:2.25rem;
	}
	.virtual .menu a + a
	{
		font-size:0.625rem;
		line-height:1.125rem;
	}
	.virtual .title h1
	{
		font-size:1rem;
	}
	.virtual .title h1 .subtitle
	{
		font-size:0.75rem;
	}
}
.map
{
	background-color:#909090;
	overflow:auto;
	cursor:move;
}
.map .view
{
	position:relative;
	width:1650px;
	margin:0 auto;
}
.pin
{
	display:block;
	position:absolute;
	transform:translate(-50%, -50%);
	border-radius:50%;
}
.pin[open]
{
	z-index:1;
}
.pin .marker
{
	display:block;
	position:relative;
	border-radius:50%;
}
.pin .marker .inside
{
	display:block;
	position:relative;
	width:1rem;
	height:1rem;
	background-color:#b30838;
	border-radius:50%;
	border:0.125rem solid #ffffff;
	box-shadow:0 0 0.25rem rgba(0,0,0,1), 0 0 0.75rem rgba(0,0,0,0.75);
	transition:background-color 0.25s;
	z-index:1;
}
.pin.current .marker .inside
{
	width:1.5rem;
	height:1.5rem;
	background-color:#101010;
	background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 9.51" fill="%23fff"><polygon points="5 0 6.55 3.13 10 3.63 7.5 6.07 8.09 9.51 5 7.89 1.91 9.51 2.5 6.07 0 3.63 3.45 3.13 5 0"/></svg>');
	background-size:1rem auto;
	background-position:0.25rem 0.25rem;
	background-repeat:no-repeat;
}
body:not(.touch) .pin .marker:hover .inside,
.pin[open] .marker .inside
{
	background-color:#707070;
}
.pin .marker .text
{
	display:block;
	position:absolute;
	left:50%;
	bottom:50%;
	margin-bottom:0.375rem;
	width:max-content;
	max-width:8rem;
	padding:0.25rem 0.5rem;
	transform:translateX(-50%);
	background-color:rgba(0,0,0,0.4);
	color:#ffffff;
	font-family:var(--font-b);
	font-size:0.75rem;
	line-height:1rem;
	text-align:center;
	border-radius:0.5rem;
	text-shadow:0 0 0.25rem rgba(0,0,0,1), 0 0 0.25rem rgba(0,0,0,1), 0 0 0.25rem rgba(0,0,0,1), 0 0 0.5rem rgba(0,0,0,1);
	transition:background-color 0.25s;
}
body:not(.touch) .pin .marker:hover .text,
.pin[open] .marker .text
{
	background-color:rgba(0,0,0,0.8);
}
.pin.current .marker .text
{
	margin-bottom:0.625rem;
}
.pin .marker .text:after
{
	content:"";
	display:block;
	width:0;
	height:0;
	position:absolute;
	top:100%;
	left:0;
	right:0;
	margin:0 auto;
	border-left:1rem solid transparent;
	border-right:1rem solid transparent;
	border-top:1rem solid rgba(0,0,0,0.4);
	transition:border-top-color 0.25s;
}
body:not(.touch) .pin .marker:hover .text:after,
.pin[open] .marker .text:after
{
	border-top-color:rgba(0,0,0,0.8);
}
.pin .content
{
	display:block;
	position:absolute;
	left:50%;
	top:50%;
	margin-top:0.375rem;
	width:max-content;
	max-width:10rem;
	transform:translateX(-50%);
	padding:0.5rem 0.75rem 0.25rem 0.75rem;
	background-color:rgba(0,0,0,0.8);
	border-radius:0.5rem;
}
.pin .content.info
{
	padding-bottom:0.5rem;
}
.pin.current .content
{
	margin-top:0.625rem;
}
.pin .content:after
{
	content:"";
	display:block;
	width:0;
	height:0;
	position:absolute;
	bottom:100%;
	left:0;
	right:0;
	margin:0 auto;
	border-left:1rem solid transparent;
	border-right:1rem solid transparent;
	border-bottom:1rem solid rgba(0,0,0,0.8);
	transition:border-top-color 0.25s;
}
.pin .content > div
{
	max-height:12rem;
	overflow:auto;
}
.pin .content p
{
	font-size:0.875rem;
	line-height:1.5rem;
	color:#ffffff;
}
.pin .content ul
{
	padding:0;
}
.pin .content li
{
	list-style-type:none;
	font-size:0.875rem;
	line-height:1.25rem;
}
.pin .content li + li
{
	margin-top:0;
}
.pin .content li a
{
	display:block;
	padding:0.75rem 0 0.75rem 1rem;
	color:#ffffff;
	font-family:var(--font-b);
	font-size:0.75rem;
	line-height:0.875rem;
	background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 266.62 399.94" fill="%23fff"><path d="M241.59,440H238.2a10.82,10.82,0,0,1-5.13-3.39c-12.14-14.19-23.56-28.94-34.5-44.07-23.64-32.66-44.83-66.79-61.88-103.39-9.91-21.28-18.18-43.16-23.72-66a223.48,223.48,0,0,1-5.61-33c-.24-2.72-.45-5.44-.67-8.16V165.53c.06-.43.15-.85.17-1.28q.33-5.38,1.15-10.73A134.1,134.1,0,0,1,187.16,50.78,129.06,129.06,0,0,1,223.43,41c2.92-.34,5.85-.63,8.78-.94h15.63c2.33.23,4.65.44,7,.69a128.83,128.83,0,0,1,25.76,5.45,132.48,132.48,0,0,1,38.21,19.49,134.05,134.05,0,0,1,48.33,67,130.71,130.71,0,0,1,5,22c.5,3.61.73,7.24,1.17,10.85v16.15c-.05.38-.14.77-.16,1.15a178.22,178.22,0,0,1-2.71,23.49A299.77,299.77,0,0,1,354.12,263a487.63,487.63,0,0,1-30.9,64,756.61,756.61,0,0,1-75.65,108.88A11.17,11.17,0,0,1,241.59,440ZM240,131.78c-27.79.43-49.75,22.05-49.77,49.86a49.81,49.81,0,1,0,99.61.07C289.85,153.87,267.84,132.17,240,131.78Z" transform="translate(-106.69 -40.04)"/></svg>');
	background-size:0.625rem auto;
	background-position:left center;
	background-repeat:no-repeat;
}
body:not(.touch) .pin .content li a:hover
{
	color:#b30838;
}
.pin .content li + li a
{
	border-top:1px solid rgba(255,255,255,0.125);
}
#debug-reticle
{
	position:fixed;
	top:50%;
	left:50%;
	transform:translate(-50%, -50%);
	width:0.5rem;
	height:0.5rem;
	background-color:#00ff00;
	border-radius:0.25rem;
	z-index:1;
}
#debug-reticle span
{
	display:block;
	position:absolute;
	left:1rem;
	top:0;
	color:#00ff00;
	font-size:0.75rem;
	font-weight:500;
	text-shadow:0 0 0.5rem rgba(0,0,0,1), 0 0 0.5rem rgba(0,0,0,1);
}