/* apply a natural box layout model to all elements */
*, *:before, *:after {
	margin:0;
	padding:0;
	-moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
}

/* For modern browsers */
.cf:before,
.cf:after {
    content:"";
    display:table;
}

.cf:after, .reset {
    clear:both;
}

/* For IE 6/7 (trigger hasLayout) */
.cf {
    zoom:1;
}

/* fixes iOS safari presents layout issues when application is framed */
html.framed {
	text-size-adjust:100%;
	-moz-text-size-adjust:100%;
	-ms-text-size-adjust:100%;
	-o-text-size-adjust:100%;
	-webkit-text-size-adjust:100%;
	height:0;
	width:0;
	max-width:100%;
	min-width:100%;
	max-height:100%;
	min-height:100%;
}

body {
	padding:1em;
	margin:0 auto;
	position:relative;
	width:100%;
	line-height:1;
}

html.framed body {
	padding:1px;
}

body.cancel main {
	padding:2.5% 5%;
}

img {
	max-width:100%;
	width:100%;
	height:auto;
	color:#000;
}

p {
	line-height:1.5;
}

input[type="text"], input[type="submit"], main button, input[type="reset"], input[type="email"], input[type="number"], input[type="tel"], select, textarea {
	-webkit-appearance:none;
	appearance:none;
	outline:none;
	border:none;
	padding:0.125em 0.5em;
}

fieldset {
	padding:1.5em;
	border:none;
}

form:not(#attendees) fieldset + fieldset {
	padding-top:0;
}

fieldset legend {
	display:none;
}

form#attendees fieldset legend {
	display:block;
}

form p, fieldset > span {
	display:block;
	margin-bottom:1em;
}

main label {
	display:block;
	/*text-transform:uppercase;*/
	margin-bottom:0.125em;
}

main label.radio {
	width:auto;
	display:inline-block;
	margin-right:1em;
	text-transform:none;
	margin-top:0.5em;
}

main .reverse {
	margin-left:25%;
}

main .reverse label {
	width:auto;
	display:inline;
	text-transform:none;
	font-style:italic;
}

main .reverse input {
	display:inline;
}

main input[type="text"], main input[type="email"], main input[type="number"], main input[type="tel"], main select, main textarea {
	width:100%;
}

main select {
	-webkit-appearance:auto;
	appearance:auto;
}

main input[type="submit"], main button {
	text-transform:uppercase;
	float:right;
}

.cancel-panel button, .print-panel button {
	float:none;
	margin-left:0;
	margin-right:1em;
}

main button {
	margin-left:1em;
}

main input[type="radio"], main input[type="checkbox"] {
	display:inline-block;
	width:auto;
	box-shadow:none;
	background-color:transparent;
}

main input[type="radio"] {
	-webkit-appearance:radio;
}

main input[type="checkbox"] {
	-webkit-appearance:checkbox;
}

main .full .checkbox-wrapper {
	display:flex;
	flex-direction:row;
	flex-wrap:wrap;
	justify-content:flex-start;
	align-items:stretch;
	align-content:stretch;
	margin-top:0.5em;
}

main .full label.checkbox {
	display:inline-block;
	width:23%;
	margin-right:2%;
	position:relative;
}

main .full label.checkbox input[type="checkbox"] {
	position:absolute;
	top:0;
	left:0;
}

main .full label.checkbox span {
	display:inline-block;
	padding-left:1.25em;
}

div.form-buttons {
	padding:0 1.5em 1.5em 1.5em;
	margin-top:-1.5em;
}

.cancel-panel div.form-buttons, .print-panel div.form-buttons {
	margin:1em 0;
	padding:0;
}

.alert + div.form-buttons,
.warn + div.form-buttons,
.error + div.form-buttons {
	margin: 0;
	padding: 0;
}

body.cancel .alert + div.form-buttons {
	margin-top:1em;
}

header {
	width:100%;
}

section.calendar-header {
	padding:1em;
}

h1.calendar-month-name {
	float:left;
	font-size:1.5em;
}

ul.calendar-month-controls {
	float:right;
	list-style:none;
}

ul.calendar-month-controls li {
	display:inline;
	margin:0.25em 0;
}

ul.calendar-month-controls a {
	padding:0 0 0 0.75em;
	margin:0 0 0 0.75em;
}

ul.calendar-month-controls li:first-child a {
	padding-left:0;
	margin-left:0;
}

ul.calendar-month-controls span {
	color:#FBB040;
	padding:0 0.125em;
}

ul.calendar-month-controls.calendar-day-controls-right {
	margin-bottom:2em;
	float:none;
	text-align: right;
}

section.calendar-subheader {
	padding:0.5em 1em;
}

ul.calendar-view-controls, ul.calendar-filters-controls {
	float:left;
	list-style:none;
	display:inline-block;
	margin:0.375em 0;
}

ul.calendar-view-controls {
	margin-right:1.5em;
}

ul.calendar-view-controls li, ul.calendar-filters-controls li {
	display:inline;
	margin:0.25em 0;
}

ul.calendar-view-controls a, ul.calendar-filters-controls a {
	padding:0 0 0 0.75em;
	margin:0 0 0 0.75em;
}

ul.calendar-view-controls li:first-child a, ul.calendar-filters-controls li:first-child a {
	padding-left:0;
	margin-left:0;
}

ul.calendar-view-controls li:first-child+li.calendar-view-control a, ul.calendar-filters-controls li:first-child+li.calendar-filters-control a {
	margin-left:0;
}

form.calendar-search-form {
	float:right;
	-webkit-appearance:none;
	outline:none;
}

form.calendar-search-form fieldset {
	border:none;
	padding:0;
}

section.calendar-filters {
	padding:1em;
}

ul.calendar-filters-options {
	list-style:none;
	margin-bottom:1em;
}

ul.calendar-filters-options li {
	display:inline-block;
	width:24%;
	margin:0.5em 0;
	vertical-align:top;
}

main {
	margin-bottom:2em;
	display:block;
}

.calendar-days-wrapper, body.calendar main.calendar-days {
	display:table;
	table-layout: fixed;
	width:100%;
}

.calendar-days-controls {
	padding-top:1em;
}

.calendar-days-controls-right {
	text-align:right;
	padding-right:5px;
}

.calendar-days-controls input {
	float:none !important;
	margin-bottom:0.5em;
}

.week, .day-names {
	display:table-row;
	width:100%;
	word-wrap:break-word;
	word-break:break-word;
	-webkit-hyphens: auto;
	-moz-hyphens: auto;
	-ms-hyphens: auto;
	hyphens: auto;
}

.day-name, .day {
	width:14.28571428571429%;
	padding:0.5em;
	display:table-cell;
	position:relative;
}

.day {
	height:8em;
}

.event {
	line-height:1.125;
	margin-top:0.75em;
}

.event-register-link, .event-detail-link {
	display:block;
}

.event-day, .event-location, .event-description-excerpt, .event-detail-link, .event-no-registration, .event-fee {
	display:none;
}

.event-location .event-location-branch:before, .event-location .event-location-address:before {
	content:', ';
}

.event-collapsible-expander {
	font-family:monospace;
}

.event-collapsible-child-events {
	padding: 1em 0.5em;
	background: #eee;
	margin-top: 0.25em;
	width:fit-content;
}

.event-collapsible-child-events .event-time {
	padding-right:0;
}

.event-collapsible-child-events-wrapper {
	display:table;
	border-collapse:collapse;
	width:auto;
	margin-top:0.5em;
}

.event-collapsible-child-events .event-collapsible-child-events-event {
	display:table-row;
}

.event-collapsible-child-events .event-collapsible-child-events-event-title,
.event-collapsible-child-events .event-collapsible-child-events-event-time {
	display:table-cell;
	vertical-align:top;
	padding:0.25em 0.5em 0.25em 0;
	border-bottom:1px solid #ccc;
}

.event-collapsible-child-events .event-collapsible-child-events-event-time {
	white-space:nowrap;
}

.event-collapsible-child-events .event-collapsible-child-events-event:last-child span {
	border-bottom:none;
}

.cancel-panel .event-day, .print-panel .event-day {
	display:block;
}

footer {
/*	font-size:14px !important;*/
	color:#666 !important;
}

footer small {
	font-size:12px !important;
	line-height:1.125;
}

footer a {
	color:#666 !important;
}

footer a:first-child {
	color:#000 !important;
	padding-left:1.5em !important;
	background:#fff url('../images/branding/ai-16x16.png') scroll no-repeat left center !important;
}

.alert {
	border:1px dashed #0f745d;
	background-color:#BFE1D9;
	color:#0f745d;
	margin:0;
	padding:1em 1em 1em 3em;
}

.warn {
	background-color:#fdeec6;
	/*border: 1px dashed #ab7d02;
	color: #ab7d02;*/
	border:1px dashed #926a00;
	color:#926a00;
	margin:0 0 1em 0;
	padding:1em 1em 1em 3em;
}

.error {
	border:1px dashed #e75b0f;
	background-color:#FDF0E9;
	color:#e75b0f;
	margin:0 0 1em 0;
	padding:1em 1em 1em 3em;
}

.period {
	padding: 0.125em 0.75em;
	background-color: #FFFFB8;
	border: 2px solid #FEFF01;
	position: absolute;
	top: 0.5em;
	left: 50%;
	transform: translateX(-50%);
	text-align:center;
}

.alert .icon, .warn .icon, .error .icon {
	display: inline-block;
	width: 1.5em;
	height: 1.5em;
	text-align: center;
	vertical-align: middle;
	border-radius: 50%;
	margin-right: 0.25em;
	margin-left:-2em;
}

.alert .icon {
	background-color: #0f745d;
	color: #BFE1D9;
}

.warn .icon{
	background-color: #926a00;
	color: #fdeec6;
}

.error .icon {
	background-color: #e75b0f;
	color: #FDF0E9;
}

.error a {
	color:#e75b0f;
}

.alert a, .warn a, .error a {
	text-decoration:underline;
}

.alert + .warn, .alert + .error {
	margin-top:1em;
}

.alert ul, .warn ul, .error ul {
	margin:0;
	padding:0;
	list-style:none;
}

.alert > ul, .warn > ul, .error > ul {
	font-size:0.875em;
	line-height:1.25;
	margin:0;
}

.alert ul ul, .warn ul ul, .error ul ul {
	margin:0.5em 0 0.5em 1em;
}

.error > ul > li {
	text-transform:uppercase;
}

.error > ul > li li {
	text-transform:none;
}

.alert p:last-child, .warn p:last-child, .error p:last-child {
	margin-bottom:0;
}

.email-typo-warning {
	display:none;
	font-size:0.75em;
	border-top:none;
}

.event.print-panel img {
	width:auto;
	border:1px solid #000;
}

.event.print-panel img.large {
	width:24em; /* 384 pixels */
	border:none;
}

.event.print-panel hr {
	margin:2em 0 2em 0;
	border:1px solid #bbb;
	border-top:none;
}

body.museum-passes.print ul.calendar-view-controls {
	float:right;
	margin-right:0;
}

.calendar-view-print a {
	padding-left:1.5em !important;
	background:transparent url('../images/icons/printer-16x16.png') scroll no-repeat left center !important;
}

@media all and (max-width: 81.25em) and (min-width: 45.9375em) { /* 1300px @ 100%, 735px @ 100% */

	body:not(.event-listing) .event-collapsible-child-events-wrapper,
	body:not(.event-listing) .event-collapsible-child-events .event-collapsible-child-events-event,
	body:not(.event-listing) .event-collapsible-child-events .event-collapsible-child-events-event-title,
	body:not(.event-listing) .event-collapsible-child-events .event-collapsible-child-events-event-time {
		display:block;
		white-space:normal;
	}

	body:not(.event-listing) .event-collapsible-child-events .event-collapsible-child-events-event-title,
	body:not(.event-listing) .event-collapsible-child-events .event-collapsible-child-events-event-time {
		padding-right:0;
		padding-left:0;
	}

	body:not(.event-listing) .event-collapsible-child-events .event-collapsible-child-events-event-time {
		border:none;
		padding-top:1em;
	}

	body:not(.event-listing) .event-collapsible-child-events .event-collapsible-child-events-event-title {
		padding-bottom:1em;
	}

}


@media all and (max-width: 62.5em) { /* 1000px @ 100% */

	section.calendar-subheader {
		text-align:right;
	}

	ul.calendar-view-controls, ul.calendar-filters-controls {
		float:none;
		display:inline-block;
		text-align:right;
		margin-bottom:0.5em;
		margin-top:0;
	}

	form.calendar-search-form {
		float:none;
		display:block;
		text-align:right;
	}

}

@media all and (max-width: 45.9375em) { /* 735px @ 100% */

	ul.calendar-view-controls {
		display:none;
	}

	ul.calendar-filters-options li {
		width:49%;
	}	

}

@media all and (max-width: 40.625em) { /* 650px @ 100% */

	h1.calendar-month-name {
		float:none;
		margin-bottom:0.5em;
	}

	ul.calendar-month-controls {
		float:none;
		text-align:right;
	}

}



@media all and (max-width: 31.25em) { /* 500px @ 100% */

	ul.calendar-month-controls, section.calendar-subheader, section.calendar-filters {
		font-size:0.75em;
	}

	ul.calendar-month-controls a {
		margin:0 0 0 0.5em;
		padding:0 0 0 0.5em;
	}

	main label {
		display:block;
		width:auto;
		padding:0;
		text-align:left;
	}

	main input[type="text"], main input[type="email"], main input[type="number"], main input[type="tel"] {
		width:100%;
	}

	main button {
		float:none;
		display:block;
		margin:0 0 1em 0;
	}

	.barcode {
		font-size:3em !important;
	}

	.event.print-panel .instructions-panel div {
		float:none !important;
		width:auto !important;
		margin-right:0 !important;
	}

}

@media all and (max-width: 25em) { /* 400px @ 100% */

	h1.calendar-month-name {
		text-align:center;
	}

	ul.calendar-month-controls, ul.calendar-month-controls.calendar-day-controls-right  {
		font-size:0.625em;
		text-align:center;
	}

	.barcode {
		font-size:2em !important;
	}

}

@media print {

	body.museum-passes.print header {
		display:none;
	}

	body.museum-passes.print main {
		border:none;
	}

	.barcode {
		font-size:3em !important;
	}

}