svg{
	width: auto;
	height: auto;
	max-width: 100%;
}
svg:not(:root){
	/*Overrides Normalize.*/
	overflow: visible;
}
/*Global stuff*/
html, body{
	width: 100%;
	height: 100%;
	overflow: hidden;
	font-family: 'theme sans common';
}

h1,h2,h3,h4,h5,h6{
	font-weight: inherit;
}
p, figure{
	margin: 0;
}

fieldset{
	/*Override normalize, which standardizes a base presentation, to treat this element visually just like a base div by default*/
	padding: 0;
	margin: 0;
	border: none;
}

button, input[type='submit'], input[type='button']{
	/*Get rid of most browser-provided styling.*/
	background-color: transparent;
	border: 0 none currentColor;
	padding: 0;
	/*Probably what browsers do anyway:*/
	display: inline-block;
	/*iOS:*/
	-webkit-appearance: none;
	/*Applies to Firefox. No known affect, just for good measure:*/
	-moz-appearance: none;
	/*Other just for good measure:*/
	width: auto;
	font-size: inherit;
}

.hidden{
	display: none;
}
.visual-hidden{
	display: block;
	width: 0;
	height: 0;
	overflow: hidden;
	margin: 0;
	padding: 0;
}

.abstract-tr{
	display: table-row;
}

.page{
	display: table;
	width: 100%;
	height: 100%;
}
.page.panel-container{
	display: block;
}
.page > div{
	display: table-row;
}
.page.panel-container>div{
	display: block;
}
.page .body>*{
	display: table-cell;
	height: 100%;
	position: relative;
}
.page.panel-container .body>*{
	display: block;
	height: auto;
}
.page .body .panel.flex{
	/*Helps the content appear visually reasonable if panels script fails or hasn't kicked in.*/
	height: 100vh;
}
.page .body .body-inner{
	width: 100%;
	height: 100%;
	background-size: cover;
	position: relative;
}

/*Dialog stuff*/
.modal{
	z-index: 12;
	background-color: rgba(0,0,0,0.5);
}
.dialog{
	text-align: center;
	padding-top: 1.5em;
	width: 29em;
	max-width: 100%;
}
.dialog .title-bar .icon{
	color: #FEB12C;
	display: block;
	font-size: 2.5em;
	line-height: 1;
}
.dialog .title-bar .close-region{
	display: none;
}
.dialog .title{
	font-size: 1.5em;
	margin: 0.3em 0 0.6em;
	line-height: 1;
	font-weight: bold;
}
.dialog .content-area{
	padding-top: 0;
	padding-left: 1.5em;
}
.dialog .fields{
	font-size: 1.2em;
	padding-left: 2.2em;
	padding-right: 2.2em;
	padding-bottom: 0;
}
.dialog .fields p{
	margin: 0.6em 0;
}
.dialog .button-area{
	padding-top: 0;
	margin-top: 1.5em;
}
.dialog .button{
	color: #333;
	font-size: 1.15em;
	margin-left: 0.5em;
	margin-right: 0.5em;
	min-width: 5em;
	text-shadow: none;
	margin-bottom: 0.75em;
}
.dialog .ok-button{
	background-color: currentColor;
}
.dialog .ok-button-text{
	color: #FFF;
}
.dialog .cancel-button{
	border: 1px solid currentColor;
	background-color: transparent;
}
label.link input{
	position: absolute;
	left: -9999px;
}

.fa{
	line-height: inherit;
}
svg.icon{
	display: inline;
	height: 1em;
	max-width: none;
	line-height: inherit;
	fill: currentColor;
}

.header>.wrapper{
	display: table;
	width: 100%;
}
.headerlogo{
	display: table-cell;
}
.headerlogo.logo-a{
	vertical-align: middle;
	text-transform: uppercase;
}
.headerlogo.logo-b img{
	max-width: none;
	width: 100%;
}


#welcome .background-slider{
	position: absolute;
	width: 100%;
	height: 100%;
	z-index: 0;
}
.background-slider .background-slide{
	position: absolute;
	width: 100%;
	height: 100%;
	background-size: cover;
}
.background-slider .background-slide.upcoming{
	z-index: 1;
}
.background-slider .background-slide.active{
	z-index: 2;
}

/*Steps*/
/*.wizard-steps .header img{
	width: 100%;
}*/
.wizard-steps .header h5 {
	letter-spacing: 1.5px;
	text-shadow: none;
	font-weight: 500;
}
.wizard-steps .body{
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
}
.steps-container{
	overflow: hidden;
	position: absolute;
	width: 100%;
}
.wizard-step{
	position:absolute;
	top: 0;
	width: 100%;
	overflow: hidden;
	padding-bottom: 100px;
}
.wizard-step.active{
	position: relative;
}

.page-foreground{
	z-index: 1;
	position: relative;
}
.step-header {
	padding: 12px 0 15px;
	text-align: center;
}
.step-header h2 {
	line-height: 1;
	font-family: 'theme sans heavy';
	text-shadow: 1px 1px #333;
	font-size: 38px;
	margin: 0;
	font-weight: normal;
	text-transform: uppercase;
}
.step-header p {
	line-height: 1;
	font-weight: normal;
	margin: 0;
	font-size: 18px;
}
.step-body{
	margin-top: 3px;
	position: relative;
}

.swipe-indicator{
	display: block;
	position: absolute;
	height: 95%;
	top: 0;
	z-index: 10;
	pointer-events: none;
	overflow: hidden;
}
.swipe-indicator.left{
	left: 0;
}
.swipe-indicator.right{
	right: 0;
}
.swipe-indicator .wrapper{
	position: absolute;
	top: 10%;
	bottom: 0;
	height: 90%;
	width: 50%;
}
.swipe-indicator.left .wrapper{
	left: 0;
}
.swipe-indicator.right .wrapper{
	right: 0;
}
.swipe-indicator a{
	position: relative;
	display: block;
	pointer-events: all;
	top: 25%;
	height: 50%;
}
.swipe-indicator.left a{
	right: 100%;
}
.swipe-indicator.right a{
	left: 100%;
	text-align: right;
}
.swipe-indicator img{
	max-height: 100%;
	max-width: 100%;
	width: auto;
	height: auto;
	position: relative;
}


.primary-content{
	font-size: 16px;
}
.primary-content .max-selections{
	font-weight: bold;
	text-transform: uppercase;
	padding: 0.45em 0;
	border: 1px solid transparent;
	text-align: center;
}


.filter-interface h3{
	font-size: inherit;
	text-transform: uppercase;
	line-height: 1.2;
	padding: 0.3em 0.9em 0.2em;
	margin: 0 0 0.2em;
	color: #FFF;
	background-color: #b3b3b3;
}
.filter-options{
	margin-bottom: 0.5em;
	padding: 0.6em 0.9em;
	background-color: #EAEAEA;
}
.filter-option{
	display: block;
	margin: 0.3em 0;
}
.filter-option.hidden{
	display: none;
}
.filter-check-box{
	display: inline-block;
	font-size: 0.8em;
	line-height: 0;
	vertical-align: middle;
	border: 1px solid currentColor;
	padding: 0.1em;
	margin-right: 0.3em;
}
.filter-check-box .filter-check{
	visibility: hidden;
	display: block;
}
.filter-check-box .filter-check .icon{
	display: block;
}
input:checked+.filter-check-box{
	color: #FFF;
    background-color: #b3b3b3;
	border-color: #b3b3b3;
}
input:checked+.filter-check-box .filter-check{
	visibility: visible;
}


.supporting-image{
	font-weight: bold;
}
.supporting-image .caption p:last-child{
	font-style: italic;
	text-transform: none;
}
.supporting-image .caption p, .supporting-image .caption p:first-child{
	text-transform: uppercase;
	font-style: normal;
}

/*Photo theme step*/
.primary-content.photo-container{
	position: relative;
	/*background: transparent;*/
}
.photo-container .shadow{
	position: absolute;
	height: 100%;
	top: 0;
}
.photo-container .shadow .cover{
	position: absolute;
	height: 100%;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 90% auto;
	background-color: #000;
	z-index: 3;
	opacity: 0.75;
	filter:alpha(opacity=75);
}
.photo-container .shadow.left{
	left: 0;
	right: 50%;
}
.photo-container .shadow.right{
	left: 50%;
	right: 0;
}
.photo-container .shadow.left .cover{
	left: 0;
	background-image: url('../img/pt-arrow-left.svg');
}
.photo-container .shadow.right .cover{
	right: 0;
	background-image: url('../img/pt-arrow-right.svg');
}
.photo-container .shadow.no-go .cover{
	background-image: none;
}

.photo-theme .slider{
	position: relative;
	width: 220px;
	margin: 0 auto;
	padding-left: 1em;
	padding-right: 1em;
}
.photo-theme .slider:after{
	/*Clearfix*/
	content: "";
	display: block;
	height: 0;
	clear: both;
}
.photo-theme ul{
	padding: 0;
	margin: 0;
	list-style: none;
}
.photo-theme .slide-size{
	position: relative;
}
.photo-theme .slide{
	z-index: 2;
	width: 100%;
	top: 0;
	padding: 0;
	display: inline-block;
	margin-right: -100%;
	vertical-align: middle;
}
.photo-theme .slide>.wrapper{
	position: relative;
	width: 100%;
}
.photo-theme .slide label{
	display: block;
	position: relative;
}
.photo-theme .slide:first-child label{
	border-left-color: transparent;
}
.photo-theme .slide label span{
	display: block;
}
.photo-theme .slide img{
	display: block;
	width: 100%;
	/*IE 11 will not propagate the click, through the label that contains thie image, to the input in same label, if the image is clicked.
	The rules below cause the image not to register the click (why position: relative is necessary is unclear)*/
	position: relative;
	pointer-events: none;
}
.photo-theme .slide .caption{
	background: #FFF;
	padding: 0.6em 0.5em;
	text-align: center;
	position: absolute;
	width: 100%;
	bottom: 0;
	opacity: 0.8;
}
.photo-theme .slide.active{
	position: relative;
}
.photo-theme .pt-navigation{
	text-align: center;
	font-size: 0.9em;
	margin-top: 1.5em;
}
.photo-theme .pt-navigation .nav-item{
	display: inline-block;
	line-height: 1;
	margin: 0 0.4em;
	color: #666;
	opacity: 0.5;
	cursor: pointer;
}
.photo-theme .pt-navigation .nav-item.active{
	opacity: 1;
}
.photo-theme .pt-navigation .nav-item svg.icon{
	display: block;
	width: 1em;
	height: 1em;
}

/*About me step*/
.about-me .primary-content{
	text-align: center;
	/*Specifically, center the "view now" button*/
}
.about-me .fields{
	text-align: left;
	overflow: hidden;
}
.cvb-branding{
	font-size: 11px;
	position: relative;
	color: #adadad;
	text-align: right;
	margin-bottom: -1em;
}
.cvb-branding a{
	color: inherit;
	display: block;
}
.cvb-branding #customviewbook{
	text-decoration: none;
	font-family: "Tahoma", sans-serif;
}
.cvb-branding .view-privacy-policy{
	font-size: 0.8em;
}
.cvb-branding .bold{
	font-weight: bolder;
}

.question-label{
	line-height: 1.5em;
	margin-bottom: .5em;
	margin-top: 1em;
}
/*Buttons*/
.button{
	display: inline-block;
	font-size: 30px;
	font-weight: 400;
	text-transform: uppercase;
	line-height: 1;
	padding: 0.21em 0.3em 0.18em;
	text-decoration: none;
	text-shadow: 0px 1px 1px #fff;
	text-align: center;
	cursor: pointer;
	font-family: 'theme sans heavy';
}
.button.finish{
	margin-top: 0.21em;
	margin-bottom: 1em;
	text-transform: uppercase;
}
.button.finish.disabled{
	cursor: default;
}

/*Form controls*/
input[type='checkbox'],
.wizard-question.checkbox-question input,
.photo-theme .slide input{
	/*These controls have a custom look. The input tags exist for semantics and keyboard control.
	Typically, position: absolute; left: -9999px would suffice to hide them visually but not semantically,
	but this leaves them not anchored to the ancestor div that manages scrolling and causes UX difficulties
	in some phone browsers.
	Because of this, we use position: relative combined with everything we can think of to prevent the input from taking up space*/
	position: relative;
	display: block;
	width: 0;
	height: 0;
	left: -9999px;
	-moz-appearance: none;
	float: left;
	margin-top: -1em;
}
label.button input{
	position: absolute;
	left: -9999px;
}

input[type="text"]{
	-webkit-appearance: none;
}
label.error input[type="text"]{
	outline: none;
	border-color: red;
}
.wizard-question.select.error .select-bar{
	border-color: red;
}
.about-me .wizard-question{
	margin: 0 0 0.4em;
}
.about-me .wizard-question.select{
	padding-bottom:0;
}
.wizard-question {
	font-size: 16px;
	line-height: 2;
}

.checkbox{
	position: relative;
}
.checkbox-question .checkbox .check{
	visibility: hidden;
	font-size: 24px;
	text-align: right;
}
.checkbox-question .checkbox.checked .check{
	visibility: visible;
}

.checkbox-question .question-label .opener{
	display: none;
}
.accordion .checkbox-question{
	border-bottom-width: 1px;
	border-bottom-style: solid;
}
.checkbox-question .question-label{
	display: table;
	width: 100%;
}
.accordion .checkbox-question .question-label .opener{
	display: table-cell;
}
.checkbox-question .question-label, .wizard-question.select .selected-value{
	font-weight: 400;
}
.checkbox-question .question-label{
	margin: 0;
	font-size: 22px;
	padding: 0.6em 0.9em 0.7em 0.7em;
	line-height: 1;
	cursor: pointer;
}
.checkbox-question .selected-icon{
	font-size: 25px;
	text-align: right;
}
.checkbox-question[data-selected='0'] .selected-icon, .checkbox-question .question-label.ui-state-active .selected-icon{
	display: none;
}

.checkbox-question .question-label>span{
	display: table-cell;
	vertical-align: middle;
}
.checkbox-question ul{
	margin: 0px;
	padding: 0;
}
.checkbox-question li {
	display: block;
}
.checkbox-question .opener, .wizard-question.select .opener{
	padding: 0 0.5em 0 0;
	vertical-align: middle;
	box-sizing: content-box;
	-moz-box-sizing: content-box;
	width: 1em;
}
.checkbox-question .opener .close, .wizard-question.select .opener .close{
	visibility: hidden;
}
.checkbox-question .question-label.ui-state-active .opener .open{
	visibility: hidden;
}
.checkbox-question .question-label.ui-state-active .opener .close{
	visibility: visible;
}
.checkbox-question .checkbox{
	margin: 0;
	position: relative;
}
.checkbox-question .checkbox label, .wizard-question.select .option{
	margin: 0;
	font-size: 18px;
	font-weight: 400;
	line-height: 1;
	display: block;
	padding: 12px 1em 10px 2.2em;
}
.checkbox-question .checkbox label{
	display: table;
	width: 100%;
}
.checkbox-question .checkbox label>span{
	display: table-cell;
	vertical-align: middle;
}
.freetext-question{
	display: block;
}
.freetext-question input, .wizard-question.select .selected-value{
	padding: 0.3em 0.5em;
	overflow: hidden;
}
.freetext-question input, .wizard-question.select .select-bar{
	font-size: 18px;
	border: 1px solid #999;
	width: 100%;
	border-radius: 0;
}
.wizard-question.select .select-bar{
	/*padding-top: 0;
	padding-bottom: 0;*/
	padding-right: 0;
	line-height: normal;
	display: table;
}
.wizard-question.select .select-bar>*{
	display: table-cell;
	vertical-align: middle;
}
.wizard-question.select .select-bar .opener{
	border-left-width: 1px;
	border-left-style: solid;
	padding: 0.3em 0.5em;
}
.wizard-question.select .select-bar .opener .icon{
	display: block;
}
.wizard-question.select .selected-value{
	width: 100%;
}
.wizard-question.select .selected-value:before{
	content: attr(data-value);
	/*This hacky configuration allows excess text to be clipped.*/
	display: block;
	width: 1em;
	overflow: visible;
	white-space: nowrap;
}
.wizard-question.select.focus .select-bar,
.freetext-question input:focus{
	border-color: #5f99d7;
	box-shadow: 0 0 3px 0px #5f99d7;
	outline: none;
}
.wizard-question.select ul{
	display: block;
}
.wizard-question.select .options{
	max-height: 150px;
	overflow: auto;
	overflow-x: hidden;
	overflow-y: auto;
	padding: 0;
	margin: 0;
	border: 1px solid #999;
	border-top: 0px none transparent;
}
.wizard-question.select.closed li{
	height: 0;
}
.wizard-question.select.closed .options{
	border-style: none;
	height: 0;
	padding: 0;
}
.wizard-question.select.closed .options .option{
	height: 0;
}
.wizard-question.select .options-backing{
	position: fixed;
	left: 9999px;
	clip: rect(0,0,0,0);
}
.wizard-question.select .options-backing option{
	visility: hidden;
}
.wizard-question.select li{
	display: block;
}
