html {
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
}

body {
	background-color: #fff;
	margin: 0;
	padding: 0;
	width: 100%;
	min-height: 100%;
	box-sizing: border-box;
}

body, input, select, textarea, button {
	font: normal 100% 'Neue Helvetica W01', sans-serif;
	color: #000;
	line-height: 1.4;
}

body.menu-open {
	overflow:hidden;
}

a {
	color: #b0001f;
	text-decoration: none;
}

a:hover {
	color: #000;
}

h2 {
	font-size: 1.5em;
	margin: 4rem 0 1rem;
	text-transform: uppercase;
	letter-spacing: .0625em;
	font-family: 'L Microgramma W01', serif;
	font-style:italic;
}

h2.special {
	border-bottom:8px solid #b0001f;
	font-family: 'Neue Helvetica W01', sans-serif;
	font-style:normal;
	text-transform:uppercase;
}

h2 .special em {
	color:b0001f;
}

@media screen and (max-width: 960px) {
	h2 {
		font-size: 1.25em;
	}
}

h2 em {
	font-style: inherit;
	color: #b0001f;
}

h3 {
	font-size:1em;
	margin:3rem 0 1rem;
}

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

th, td {
	text-align: left;
	padding: .25em .5em;
	border: 1px solid #ccc;
	border-width: 1px 0;
}

td.special em {
	color:#b0001f;
	font-style:normal;
}

header.gray td, header.gray th {
	border-color:#fff;
}

th:first-child, td:first-child {
	padding-left: 0;
}

th:last-child, td:last-child {
	padding-right: 0;
}

table.prices {
	width: 100%;
	max-width: 28rem;
}

table.prices td:nth-child(2), table.prices td:nth-child(3), .numeric {
	text-align: right;
}

.prices-addendum {
	font-size: .875em;
}

form {
	border-top:4px solid #b0001f;
	padding-top:1em;
}

form .row {
	overflow:hidden;
}

form .row + .row {
	border-top:1px solid #fff;
	margin-top:.5em;
	padding-top:.5em;
}

form .row label {
	float:left;
	width:10em;
	font-size:.875em;
	padding-top:calc(.25em + 2px);
}

form .row > label {
	font-weight:bold;
}

form .row input, form .row textarea {
	background-color:#fff;
	border:1px solid #000;
	padding:.25em;
	font-size:.875em;
	margin:0;
}

form .row textarea {
	width:calc(100% - 10em);
	box-sizing:border-box;
	min-height:10em;
}

form .row.submit input {
	background-color:#000;
	color:#fff;
	float:none;
	padding:.5em 1em;
	margin-left:10em;
}

form .row.submit input:hover {
	background-color:#b0001f;
}

form .hidden {
	display:none;
}

form .col {
	float:left;
}

form .col + .col {
	margin-left:2em;
}

form .col label {
	width:auto;
	margin-right:1em;
}

form .row > label.checkbox, form .row > label.radio {
	clear:both;
	font-weight:normal;
	width:auto;
	display:block;
	float:none;
	padding-left:10em;
}

form .row > label.checkbox + .checkbox, form .row > label.radio + .radio {
	border-top:1px solid #fff;
	margin-top:.5em;
	padding-top:.5em;
}

form .row > label.checkbox input, form .row > label.radio input {
	margin-right:.5em;
	vertical-align:top;
	margin-top:5px;
}

form .hr {
	border:0;
	background-color:#000;
	height:2px;
	width:100%;
	margin:1em 0;
}

form .hr hr {
	display:none;
}

.gallery {
	margin: 2em 0;
	overflow: hidden;
	position: relative;
}

.gallery figure {
	margin:0;
}

.gallery figure img {
	width: 100%;
	vertical-align: top;
}

.video {
	position:relative;
	width:100%;
}

.controls {
	width:25%;
	display:none;
	color:#fff;
}

.controls .progress {
	height:.25em;
	min-height:6px;
	background-color:rgba(255, 255, 255, .25);
	cursor:pointer;
	position:relative;
}

.controls .progress .fill {
	content:'';
	display:block;
	width:0%;
	height:100%;
	background-color:#b0001f;
}

.controls .progress .seekbar {
	position:absolute;
	left:0;
	top:0;
	bottom:0;
	z-index:1;
	background-color:rgba(255, 255, 255, .5);
	display:none;
}

.controls .progress:hover .seekbar {
	display:block;
}

.controls .block {
	overflow:hidden;
	margin-top:.25em;
}

.controls .time {
	font-weight:normal;
	text-align:right;
	width:50%;
	float:right;
}

.controls .buttonbar {
	float:left;
	width:50%;
	overflow:hidden;
}

.controls .buttonbar > div {
	float:left;
	cursor:pointer;
	text-align:left;
}

.controls .buttonbar > div:hover {
	color:#b0001f;
}

video {
	position:absolute;
	left:0;
	top:0;
	z-index:1;
	width:100%;
	height:100%;
	cursor:pointer;
}

.video .caption {
	position:absolute;
	right:1.5em;
	bottom:3em;
	z-index:2;
	color:#fff;
	text-shadow:#000 1px 1px 1px;
}

.slide-button {
	position:absolute;
	top:50%;
	top:calc(50% - 1.5em);
	width:3em;
	height:3em;
	z-index:180;
	cursor:pointer;
	opacity:0;
	transition:opacity .25s ease;
}

@media all and (max-width: 1280px) {
	.slide-button {
		display: none;
	}
}

.gallery:hover .slide-button {
	opacity:1;
}

.slide-button svg {
	width:100%;
	height:100%;
}

.slide-button svg circle {
	transition:fill-opacity .25s ease;
	fill:#b0001f;
	fill-opacity:0;
}

.slide-button:hover svg circle {
	fill-opacity:.75;
}

.slide-button-prev {
	left:1em;
}

.slide-button-prev svg {
	transform-origin:center center;
	transform:scale(-1, 1);
}

.slide-button-next {
	right:1em;
}

.block {
	overflow:hidden;
}

@media screen and (min-width: 961px) {
	.block .aside {
		float:right;
		margin:0 0 2em 2em;
	}
	
	.block .main {
		float:left;
	}
}

@media screen and (max-width: 960px) {
	.block .aside {
		margin-bottom:2em;
	}
}

ul.styled > li + li {
	border-top:1px solid #000;
	margin-top:.5em;
	padding-top:.5em;
}

ul.styled ul li + li {
	border:0;
	margin:0;
	padding:0;
}

#header {
	min-height:5.375em;
}

#main-nav, #float-nav {
	padding: 2em;
	text-transform: uppercase;
	letter-spacing: .0625em;
	background-color: #fff;
	transition: padding .5s ease, box-shadow .5s ease;
}

#main-nav {
	font-weight: bold;
}

#header nav ul {
	list-style: none;
	padding: 0;
	margin: 0;
	overflow: hidden;
}

#main-nav li {
	float: left;
}

#main-nav li + li {
	margin-left: 1em;
}

#main-nav li.active > a {
	color: #000;
}

#float-nav {
	position:fixed;
	left:-100%;
	top:0;
	bottom:0;
	width:100%;
	padding:10em 4em 4em;
	box-sizing:border-box;
	z-index:200;
	background-color:rgba(0, 0, 0, .9);
	color:#fff;
	text-align:center;
	transition:left .5s ease;
	overflow:auto;
}

.menu-open #float-nav {
	left:0;
}

#float-nav li {
	display:inline-block;
	font-size:4em;
	font-size:4vw;
	letter-spacing:.0625em;
	line-height:1;
}

#float-nav li::after {
	content:'/';
	margin:0 .25em;
}

#float-nav li:first-child::before {
	content:'/';
	margin:0 .25em;
}

#float-nav a {
	color:#fff;
	font-family: 'L Microgramma W01', serif;
	font-style: italic;
}

#float-nav .close {
	cursor:pointer;
	position:absolute;
	right:2em;
	bottom:2em;
	font-weight: bold;
}

#float-nav .active > a, #float-nav a:hover, #float-nav .close:hover {
	color:#b0001f;
}

#fixed-menu {
	position:fixed;
	top:0;
	left:0;
	right:0;
	z-index:210;
	display:none;
	border-top:30px solid transparent;
	transition:border-color .5s ease;
}

#fixed-menu .inner {
	position:absolute;
	left:35vw;
	top:-30px;
	z-index:1;
}

@media screen and (max-width: 960px) {
	#fixed-menu .inner {
		left:1em;
		right:1em;
	}
}

#fixed-menu svg {
	vertical-align:top;
	width: 50em;
	max-width:100%;
}

#fixed-menu:hover path, body.menu-open #fixed-menu path {
	fill:#b0001f;
}

#fixed-menu .menu-button {
	position:absolute;
	top:1em;
	right:6em;
	color:#fff;
	opacity:0;
	transition:opacity .5s ease;
	cursor:pointer;
	font-weight:bold;
	text-transform:uppercase;
	letter-spacing:.0625em;
}

@media all and (max-width: 960px) {
	#fixed-menu .menu-button {
		top:1vw;
		right:10vw;
		font-size:3vw;
	}
}

#fixed-menu .menu-button:hover {
	color:#000;
}

#header.thin #fixed-menu {
	border-color:#fff;
}

#header.thin #fixed-menu .menu-button {
	opacity:1;
}

@media screen and (min-width: 961px) {
	#logo {
		position: absolute;
		right: 90px;
		top: 20px;
		width: 12%;
		z-index: 30;
	}
}

@media screen and (max-width: 960px) {
	#logo {
		width: 100%;
		max-width: calc(200px + 10%);
		padding: 4em 5% 2em;
		box-sizing: border-box;		
	}
}

#logo img {
	width: 100%;
	vertical-align: top;
}

.page {
	position: relative;
}

.page + .page {
	margin-top: 4em;
}

.page + .page-picture {
	margin-top: 0;
}

.page header {
	position: relative;
	z-index: 10;
	transition:opacity 1s ease;
}

.page header.gray > .inner {
	background-color:#dedee0;
	padding:2em 0;
}

.page header.gray .copytext h2 {
	margin-top:0;
}

.page header.gray svg {
	vertical-align:top;
}

.page header .text {
	display: none;
}

.page header.hidden {
	opacity:0;
	transition:none;
}

.page header.gray svg.mask path:last-child {
	transition:opacity 1s .5s ease;
}

.page header.hidden svg.mask path:last-child {
	opacity:0;
	transition:none;
}

.page header:not(.gray) svg {
	height: auto;
	position: absolute;
	left: 0;
	top: -1px;
	z-index: 180;
}

.page header svg text {
	fill: #fff;
	font-family: 'L Microgramma W01', serif;
	text-transform: uppercase;
	letter-spacing: 1px;
	line-height: 1;
	font-size: 32px;
}

.page header svg tspan.accented {
	fill: #b0001f;
}

.page header svg text.multiline {
	font-size: 18px;
}

.page header svg.mask, .page header svg.lines {
	width: 100%;
	height: auto !important;
}

.page header svg.lines {
	z-index: 40;
	top: auto;
	bottom: 0;
}

.page header .fancy-text {
	max-width: 80%;
	width:960px;
	height:auto;
	z-index: 30;
}

.page header .fancy-text[data-fixed="true"] {
	position: fixed;
	top: 20px;
	z-index: 190;
}

.page header nav, .controls {
	position: absolute;
	left: 4em;
	bottom: 3vw;
	z-index: 50;
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: 1px;
}

@media screen and (max-width: 960px) {
	.page header nav {
		left: 5%;
		bottom: -3em;
	}
}

.page header nav ul {
	list-style: none;
	padding: 0;
	margin: 0;
	overflow: hidden;
}

.page header nav li {
	float: left;
}

.page header nav li + li {
	margin-left: 1em;
}

.page header nav a {
	color: #888887;
}

.page header nav li.active > a, .page header nav a:hover {
	color: #fff;
}

.page .image img {
	max-width: 100%;
	vertical-align: top;
}

.page .visual {
	padding-bottom: 140px;
	padding-bottom: 7.25vw;
}

@media screen and (max-width: 960px) {
	.page .visual {
		margin-bottom: 6em;
	}
	
	.page header nav li.active > a, .page header nav a:hover {
		color: #b0001f;
	}
}

.page .visual img {
	width: 100%;
	vertical-align: top;
}

.content, #footer .wrapper {
	width:90%;
	max-width: 80em;
	margin: 0 auto;
}

.content header h1 {
	color: #b0001f;
	font-weight: normal;
	text-transform: uppercase;
	letter-spacing: .3125em;
	font-size: 1.5em;
	margin-left: 10rem;
}

.content header .subhead {
	font-family: 'L Microgramma W01', serif;
	font-size: 3.5em;
	font-style: italic;
	text-transform: uppercase;
	letter-spacing: 1px;
	line-height: 1;
	margin: 3rem 0;
}

@media screen and (max-width: 960px) {
	.content header h1 {
		font-size: 1em;
		margin:0;
	}

	.content header .subhead {
		font-size:1.5em;
	}
}

.content .copytext {
	margin-left: 10rem;
	font-size: 1.25em;
	overflow: hidden;
}

@media screen and (max-width: 960px) {
	.content .copytext {
		margin:0;
		font-size:1em;
	}
}

.content header + .copytext {
	border-top: 8px solid #b0001f;
}

.flex-container .logo {
	margin:1em auto;
	max-width:240px;
}

.flex-container .logo img {
	width:100%;
	height:auto;
	vertical-align:top;
}

.flex-container .text {
	margin-top:2em;	
}
		
@media all and (min-width: 641px) {
	.flex-container {
		display:flex;
	}

	.flex-container .text {
		margin-top:0;
		margin-left:2em;
		flex:1;
	}
}

#voucher {
	margin:2em 0;
}

#voucher .wrapper {
	position: relative;
}

#voucher .wrapper + .wrapper {
	margin-top:2em;
}

#voucher .face {
	transition: transform 1s ease;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

#voucher .back {
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	transform: rotateY(180deg);
}

#voucher .wrapper.flip .front {
	transform: rotateY(180deg);
}

#voucher .wrapper.flip .back {
	transform: rotateY(0deg);
}

@media screen and (min-width: 960px) {
	#voucher .wrapper:hover .front {
		transform: rotateY(180deg);
	}
	
	#voucher .wrapper:hover .back {
		transform: rotateY(0deg);
	}
}

#voucher img {
	box-sizing: border-box;
	width: 100%;
	vertical-align: top;
	border: 1px solid #000;
}

#footer {
	padding-top: 130px;
	position: relative;
}

#footer .mask {
	width: 100%;
	vertical-align: top;
}

#footer .inside {
	background-color: #000;
	color: #fff;
	padding: 1em 0;
	font-size: 1.25em;
}

@media screen and (max-width: 960px) {
	#footer .inside {
		font-size: 1em;
	}
}

#footer a:hover {
	color: #fff;
}

#footer .wrapper {
	padding-left: 10rem;
	box-sizing: border-box;
	overflow:hidden;
}

@media screen and (max-width: 960px) {
	#footer .wrapper {
		padding:0;
	}
}

#social-media nav {
	margin-bottom:2em;
	text-align:right;
}

#social-media a {
	display:inline-block;
}

#social-media a img {
	vertical-align:top;
	transition:opacity .25s ease;
}

#social-media a:hover img {
	opacity:.5;
}

#social-media a + a {
	margin-left:1.5em;
}

@media all and (min-width: 960px) {
	#footer address {
		float:left;
	}
	
	#social-media {
		float:right;
		margin-top:1em;
	}
}

.em::before {
	content: '/ → ';
}

.em::after {
	content: ' /';
}


#news {
	margin-top:3em;
}

#news img {
	max-width:100%;	
	vertical-align:top;
}

#news .row {
	border:1px solid rgba(0, 0, 0, 0.2);
	padding:10px 20px;
	margin-bottom:20px;
}

#news .row div, #news .row p {
	overflow:hidden;
	text-overflow:ellipsis;
}

#news .row p:empty {
	display:none;	
}

#news .user-image {
	float:left;
	width:50px;
}

#news .user-name {
	float:left;
	width:calc(100% - 50px - 1em);
	margin:0 0 0 1rem;
	line-height:50px;
}

#news .clear {
	clear:both;
}

#news .row > header > a, #news .row > header > h3 {
	float:left;	
	vertical-align:middle;
	margin:0;
	line-height:52px;
}

#news .row > header {
	overflow:hidden;
	border-bottom:1px solid #1d1d1b;
}

#news .row > header > a {
	margin-right:10px;
	padding-bottom:5px;
}

#news .row > p, #news .row .story, #news .row .block {
	clear:both;
	margin-top:5px;
	margin-bottom:15px;
	padding-top:15px;
}

#news .row .block > :first-child {
	margin-top:0;
}

#news .row > .meta, #news .row > .comments {
	padding-top:4px;
	font-size:0.875em;
}

#news .row > .meta, #news .comments .stats {
	font-weight:bold;
}

#news .row > .meta {
	border-top:1px solid #1d1d1b;
	margin-top:10px;
	padding-top:10px;
}

#news .row .photo {
	margin-top:10px;	
}

#news .row .comments > div {
	background-color:#eee;
	margin-top:5px;
	padding:5px;
}

#news .row .comments a {
	/*color:#000;*/
}

#news .row .comments a:hover {
	/*color:#d00;*/
}

#news .row .comment > img {
	float:left;
	width:30px;
}

#news .row .comment > h4, #news .row .comment > p, #news .row .comment > div {
	margin-left:40px;	
}

#news .row h4 {
	margin-top:2em;
}

#news .row .comment > h4 {
	margin-top:5px;	
	padding:0;
	font-size:1em;
}

#news .meta img {
	max-height:1em;	
}

@media screen and (max-width: 480px) {
	#news .row {
		font-size:0.875em;
	}
	
	#news .row > h3 {
		line-height:1;
		margin:5px 0;
	}
}


.dummy-text {
	background-color:yellow;
}

.arrow {
	color:#b0001f;
}



#toplink {
	text-align:right;
	box-sizing: border-box;
	margin: 0 auto;
	max-width: 80em;
   width: 90%;
}

#toplink a {
	display:inline-block;
	text-align:center;
	color:#000;
	transition:color .25s ease;
}

#toplink a:hover {
	color:$accent-color;
}

#toplink span {
	display:block;
	margin:0 auto;
}

#toplink .text {
	text-transform:uppercase;
	letter-spacing:.25em;
	font-size:.75em;
}

#toplink .icon {
	border:1px solid #000;
	width:1.5em;
	height:1.5em;
	line-height:1.5em;
	border-radius:50%;
	margin-top:.25em;
	cursor:pointer;
	font-size:1.25em;
	transition:border-color .25s ease;
}

#toplink svg polyline {
	transition:stroke .25s ease;
	stroke-width:4px;
}

#toplink a:hover .icon {
	border-color:$accent-color;
}

#toplink a:hover svg polyline {
	stroke:$accent-color;
}

#toplink svg {
	width:1em;
	height:1em;
	transform-origin:center center;
	transform:rotate(180deg);
	vertical-align:middle;
	font-size:.5em;
	margin-bottom: 3px;
}