@keyframes page-fade-in {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
@keyframes page-fade-out {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
	box-sizing: border-box;
}

body {
	--anim-bgchange-color: rgb(255, 128, 0);
	--card-padding: 1em;
	--card-bg-color: white;
	--card-box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.05);
	--card-box-shadow-hover: 0 0.25em 1em rgba(0, 0, 0, 0.2);
	--fb3-field-border: inherit;
	--fb3-field-border-focus: #f8f;
	--interactive-item-bg: #f8f;
	--interactive-item-bg-error: #f88;
	--interactive-item-bg-error-hover: #fbb;
	--interactive-item-bg-hover: #faf;
	--nav-item-bg: #8f8;
	--nav-item-bg-hover: #cfc;
	--nav-item-bg-current: #ccf;
	animation-fill-mode: forwards;
	animation-name: page-fade-in;
	animation-duration: 0.5s;
	color: #444;
}
body.leaving {
	animation-duration: 0.5s;
	animation-name: page-fade-out;
}

button,
input,
select,
textarea {
	box-sizing: border-box;
	font-family: inherit;
	font-size: 100%;
	padding: 0.5em;
}

button {
	cursor: pointer;
}

td, th {
	font-weight: normal;
	text-align: left;
	vertical-align: top;
}

ul, ol {
	list-style-type: none;
}

a,
a:visited {
	color: inherit;
	text-decoration: none;
}

/* ======================================================================
	404 Page Not Found
====================================================================== */

.error-not_found {
	text-align: center;
	padding: 3em 0;
}


/* ======================================================================
	Caught results (messages and errors)
====================================================================== */

.gst-caught {
	list-style-type: none;
}

.gst-caught__message {
	background-color: var(--interactive-item-bg);
	cursor: pointer;
	padding: 1em;
}
.gst-caught__message + .gst-caught__message {
	margin-top: 1em;
}
.gst-caught__message:hover {
	background-color: var(--interactive-item-bg-hover);
}
.gst-caught__message.error {
	background-color: var(--interactive-item-bg-error);
}
.gst-caught__message.error:hover {
	background-color: var(--interactive-item-bg-error-hover);
}

.gst-caught__message em {
	font-style: italic;
}

.gst-caught__message strong {
	font-weight: bold;
}

.gst-caught__icon {
	font-size: inherit;
	vertical-align: middle;
}

/* ============================================================
	Admin Page Preview
============================================================ */

.preview-controls-wrap {
	color: #C5343B;
	font-size: 18px;
	text-align: center;
}

.preview-controls {
	margin: 0 auto;
	padding: 8px 0;
	width: 962px;
}


/* ============================================================
	In-Page Editing
============================================================ */

.edit-controls {
	position: relative !important;
	outline: 1px dashed #f00;
	min-height: 6em;
}

.edit-controls__actions {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 10;
}

.edit-controls__label {
	background: url('../../images/admin/gear.png') no-repeat scroll 5px center rgb(146, 26, 31);
	color: #fff;
	font-size: 10px;
	line-height: 15px;
	padding: 1px 10px 0 20px;
	text-transform: uppercase;
}

.edit-controls__action-list {
	background-color: white !important;
	box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.5) !important;
	display: none !important;
	list-style-type: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.edit-controls__actions:hover .edit-controls__action-list {
	display: block !important;
}

.edit-controls__action-link {
	display: block !important;
	color: #C2262E !important;
	font-size: 12px !important;
	margin: 0 !important;
	padding: 10px !important;
	text-decoration: none !important;
	text-transform: uppercase !important;
}
.edit-controls__action-link:hover {
	background-color: #C2262E !important;
	color: white !important;
}

body > .ui-dialog .cms-dialog .fb2_invariant {
	border-bottom: 1px solid black;
	margin-bottom: 0.5em;
	padding-bottom: 0.5em;
}

body > .ui-dialog .cms-dialog .fb2_invariant table {
	width: 100%;
}

body > .ui-dialog .cms-dialog .fb2_invariant table th {
	text-align: left;
}

body > .ui-dialog .cms-dialog .fb2_invariant table td {
	text-align: right;
}

body > .ui-dialog .cms-dialog .mceEditor {
	height: 350px;
}


/* ======================================================================
	Admin Bar (what?)
====================================================================== */

#admin-bar {
	background-color: white;
	color: #333;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 12px;
	padding: 10px;
	line-height: 1.2;
	box-shadow: 0 0 8px rgba(0,0,0,.5);
}

#admin-bar a {
	color: #c0222d;
}

#admin-bar-inner {
	background: white url('../../images/admin/header-right.png') right bottom no-repeat;
	color: white;
	font-family: georgia, serif;
	margin-bottom: 5px;
}

#admin-bar-inner img {
	vertical-align: bottom;
}

#admin-bar h1 {
	position: absolute;
	top: 10px;
	right: 30px;
	color: #666;
	font-size: 1em;
	text-align: right;
	font-weight: normal;
}

#admin-bar #top_logout {
	position: absolute;
	top: 25px;
	right: 30px;
	text-align: right;
	color: #c0222d;
	font-family: arial, helvetica, sans-serif;
	font-size: .8em;
	text-decoration: none;
}


/* ============================================================
	Animations

	When:
		anim__when__immediate
		anim__when__quarter1
		anim__when__half
		anim__when__quarter3
		anim__when__whole
	What effect:
		anim__what__bgchange
		anim__what__fadein
		anim__what__slidefromleft
		anim__what__slidefromright
============================================================ */

.anim__contain {
	overflow: hidden;
}

.anim__what__bgchange {
	transition: background-color 1s linear;
}
.anim__what__bgchange.anim__onscreen {
	background-color: var(--anim-bgchange-color);
}

.anim__what__fadein {
	opacity: 1;
	transition: opacity 1s linear;
}
.anim__what__fadein.anim__offscreen {
	opacity: 0;
}

.anim__what__slidefromleft .anim__target {
	transform: translateX(0%);
	transition: transform 1s ease-out;
}
.anim__what__slidefromleft.anim__offscreen .anim__target {
	transform: translateX(-100%);
}

.anim__what__slidefromright .anim__target {
	transform: translateX(0%);
	transition: transform 1s ease-out;
}
.anim__what__slidefromright.anim__offscreen .anim__target {
	transform: translateX(100%);
}


/* ============================================================
	Breadcrumbs
============================================================ */

.breadcrumbs__crumb {
	display: inline-block;
	margin: 0 1em;
}


/* ============================================================
	Clearfix
============================================================ */

.clearfix::after {
    clear: both;
    content: " ";
    display: block;
    height: 0;
    overflow: hidden;
}


/* ============================================================
	Dynamic nav for tablet/phone view
============================================================ */

/*
.dynamic-nav {
	position: relative;

	display: none;
	text-align: center;
}

.dynamic-nav-activate {
	cursor: pointer;
	display: block;
	margin: 0 auto;
	padding: 0.5em 1em;
	width: 50%;
}

.dynamic-nav-expanded {
	_position: absolute;
	top: 100%;
	z-index: 150;

	display: none;
}
.dynamic-nav.expanded .dynamic-nav-expanded {
	display: block;
}

.dynamic-nav__heading,
.dynamic-nav__link {
	padding: 0.5em 1em;
}

.dynamic-nav__heading {
	position: relative;
	
	cursor: pointer;
}

.dynamic-nav-back {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 40px;

	display: block;
}

.dynamic-nav-back::before {
	position: absolute;
	height: 100%;
	width: 100%;

	content: "<";
	display: block;
	font-size: 200%;
	font-weight: normal;
	line-height: 100%;
}
.dynamic-nav-back:hover::before {
	_background-color: #eee;
}

.dynamic-nav__list-item {
	position: relative;
}
.dynamic-nav__list-item:hover {
	background-color: #eee;
}

.dynamic-nav-forward {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 40px;

	cursor: pointer;
	display: block;
}

.dynamic-nav-forward::before {
	position: absolute;
	height: 100%;
	width: 100%;

	content: ">";
	display: block;
	font-size: 200%;
	line-height: 100%;
}
.dynamic-nav-forward:hover::before {
	_background-color: #eee;
}

.dynamic-nav__link {
	display: block;
}
.dynamic-nav__link:hover {
	_background-color: #eee;
}
*/

/* ============================================================
	Really common styles
============================================================ */

.generic__1up,
.generic__2up,
.generic__3up,
.generic__4up {
	display: block;
}

.generic__1up::after,
.generic__2up::after,
.generic__3up::after,
.generic__4up::after {
	clear: both;
	content: " ";
	display: block;
	height: 0;
	overflow: hidden;
}

.generic__part {
	box-sizing: border-box;
	display: block;
	float: left;
}
.generic__1up .generic__part { width: 100%; }
.generic__2up .generic__part { width: 50%; }
.generic__3up .generic__part { width: 33.333%; }
.generic__4up .generic__part { width: 25%; }
.generic__2up .generic__part:nth-child(odd),
.generic__3up .generic__part:nth-child(3n+1),
.generic__4up .generic__part:nth-child(4n+1) {
	clear: left;
}

.generic__1space::after,
.generic__2space::after,
.generic__3space::after,
.generic__4space::after {
	clear: both;
	content: " ";
	display: block;
	height: 0;
	overflow: hidden;
}

.generic__1space .generic__part { width: 100%; }
.generic__2space .generic__part { width: 49%; margin-left: 2%; }
.generic__3space .generic__part { width: 32%; margin-left: 2%; }
.generic__4space .generic__part { width: 23.5%; margin-left: 2%; }
.generic__2space .generic__part:nth-child(odd),
.generic__3space .generic__part:nth-child(3n+1),
.generic__4space .generic__part:nth-child(4n+1) {
	clear: left;
	margin-left: 0;
}

.generic__card-list {
	list-style-type: none;
}

.generic__card {
	background-color: var(--card-bg-color);
	box-shadow: var(--card-box-shadow);
	padding: var(--card-padding);
	margin-top: 1em;
	transition: box-shadow 0.6s;
}
.generic__card:hover {
	box-shadow: var(--card-box-shadow-hover);
}
.generic__card:first-child {
	margin-top: 0;
}

.generic__contained {
	max-width: 960px;
	margin: 0 auto;
}
@media all and (max-width: 980px) {
	.generic__contained {
		padding-left: 1em;
		padding-right: 1em;
	}
}

.generic__inner {
	padding: 1em;
}

.generic__link-button {
	box-sizing: border-box;
	display: inline-block;
	padding: 0.5em;
	text-decoration: none;
}

.generic__alert-modal {
    position: fixed;
	left: -150%;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 400;
    opacity: 0;

	background-color: rgba(255, 255, 255, 0.75);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity 0.6s;
}
.generic__alert-modal__open {
    left: 0;
    opacity: 1;
}

.generic__alert-modal .generic__alert-modal-close {
    position: absolute;
    top: 0;
    right: 0;
    cursor: pointer;
    border-width: 0;
    padding: 0.25em 0.375em;
    display: block;
    font-size: 125%;
    line-height: 1;
    background-color: transparent;
    transition: background-color 0.2s;
}
.generic__alert-modal .generic__alert-modal-close:hover {
    background-color: #ccc;
}

.generic__alert-modal-content {
	position: relative;
	width: 85vw;
    max-width: 40em;
	background-color: white;
    padding: 2em;
    box-shadow: 0 0.5em 1em rgba(0, 0, 0, 0.25);
}

.generic__alert-popover {
    position: fixed;
    box-sizing: border-box;
    left: -150vw;
    top: 6em;
    width: 85vw;
    max-width: 40em;
	z-index: 400;
    opacity: 0;

    background-color: white;
    padding: 2em;
    box-shadow: 0 0.5em 1em rgba(0, 0, 0, 0.1);
    transition: opacity 0.6s;
    transform: translateX(-50%);
}
.generic__alert-popover__open {
    left: 50%;
    opacity: 1;
}

.generic__alert-popover .generic__alert-popover-close {
    position: absolute;
    top: 0;
    right: 0;
    cursor: pointer;
    border-width: 0;
    padding: 0.25em 0.375em;
    display: block;
    font-size: 125%;
    line-height: 1;
    background-color: transparent;
    transition: background-color 0.2s;
}
.generic__alert-popover .generic__alert-popover-close:hover {
    background-color: #ccc;
}

.generic__radio-chooser {
	margin: 1em 0;
}

.generic__radio-chooser-radio {
	display: none;
}

.generic__radio-chooser-button {
	cursor: pointer;
	display: inline-block;
	padding: 0.5em 1em;
	border: 1px solid;
}


.generic__responsive-video {
	position: relative;
}
.generic__responsive-video__16-by-9 {
	padding-bottom: 56.25%;
}
.generic__responsive-video__4-by-3 {
	padding-bottom: 75%;
}
.generic__responsive-video__1-by-1 {
	padding-bottom: 100%;
}

.generic__responsive-video iframe {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	display: block;
}


.ui-widget {
	font-size: 0.9em;
}

.ui-tabs {
	border-width: 0;
}

.ui-tabs .ui-tabs-nav {
	background: transparent none;
	border-width: 0;
	padding: 0;
}

.ui-tabs .ui-tabs-panel {
	border: 1px solid #aaa;
	padding: 0.5em;
}

.pretty {
	border: 1px solid #b0b0b0;
	box-shadow: 0 0 4px #b9b9b9;
	padding: 4px;
}

.module::after {
    clear: both;
	content: " ";
    display: block;
    height: 0;
    visibility: hidden;
}


/* ============================================================
	Module - Banner Images
============================================================ */
.module.banner-images__full-width {
	/* Assumes .module will be max-width controlled in most designs */
	max-width: 100%;
}

.banner-images__image {
	display: block;
	width: 100%;
	height: auto;
}

.banner-images__full-width .banner-images__inner {
	max-width: 100%;
}


/* ============================================================
	Module? - Causes
============================================================ */

.module.causes .causes-home__list {
	padding-top: 2em;
}

.causes-tag__list {
	margin-top: 2em;
}

.causes-view__container {
	margin-bottom: 2em;
}

.cause-view__images {
	float: left;
	width: 48%;
}

.cause-view__images-other::after {
	clear: both;
	content: " ";
	display: block;
	height: 0;
	overflow: hidden;
}

.cause-view__image__other {
	float: left;
	width: 20%;
}

.cause-view__image-img {
	display: block;
	width: 100%;
	height: auto;
}

.cause-view__info {
	float: right;
	width: 48%;
}

.cause-view__description {
	clear: both;
}

.causes-donate__step + .causes-donate__step {
	margin-top: 2em;
}

.causes-donate__payment-profiles {
	margin: 1em 0;
}

.causes-donate__step .users-payment-method-add__form {
	display: none;
}
.causes-donate__step__open .users-payment-method-add__form {
	display: block;
}

.causes-donate__add-method .material-icons {
	vertical-align: top;
}

.causes-donate__step__open .causes-donate__add-method {
	display: none;
}

.causes-donate__type .generic__radio-chooser-radio:checked + .generic__radio-chooser-button {
	font-weight: bold;
}

.causes-donate__when {
	display: none;
}
.causes-donate__step__ongoing .causes-donate__when {
	display: block;
}

.causes-donate__when .generic__radio-chooser-radio:checked + .generic__radio-chooser-button {
	font-weight: bold;
}

.causes-donate__submit {
	margin-top: 1em;
}
.causes-donate__submit__ongoing {
	display: none;
}
.causes-donate__step__ongoing .causes-donate__submit__ongoing {
	display: block;
}
.causes-donate__step__ongoing .causes-donate__submit__one-time {
	display: none;
}

.causes-ongoing__donation__inactive {
	opacity: 0.6;
}

.causes-one-time__donation {
	box-shadow: 0 6px 8px rgba(0, 0, 0, 0.3);
	margin-top: 1em;
	padding: 1em;
}
.causes-one-time__donation:first-child {
	margin-top: 0;
}

.causes-receipt__table th {
	padding-right: 1em;
	padding-bottom: 0.25em;
}


/* ============================================================
	Module - Content Areas
============================================================ */


/* ============================================================
	Module - Directory
============================================================ */

.directory__item {
	display: flex;
	justify-content: space-between;
}
.directory__item + .directory__item {
	margin-top: 1em;
}

.directory__photo-link {
	display: block;
	width: 20%;
}

.directory__photo {
	display: block;
	width: 100%;
	height: auto;
}

.directory__info {
	width: 75%;
}

.directory-view__columns {
	display: flex;
}

.directory-view__photo-link {
	width: 25%;
}

.directory-view__information {
	padding-left: 1em;
	width: 75%;
}

.directory-view .directory-view__photo {
	display: block;
	width: 100%;
	height: auto;
}

.directory__position,
.directory__phone,
.directory__email {
	margin-top: 1em;
}

.directory-view .directory-view__position,
.directory-view .directory-view__phone,
.directory-view .directory-view__email {
	_margin: 0 0 1em 0;
}

.directory-view__details::after {
	clear: both;
	content: " ";
	display: block;
	height: 0;
	overflow: hidden;
}

.directory-view__details dt {
	clear: left;
	float: left;
	font-weight: bold;
	margin-bottom: 0.5em;
}

.directory-view__details dd {
	float: left;
	margin-left: 0.5em;
}

.directory-view__bio {
	clear: left;
}

@media all and (max-width: 767px) {
	.directory__photo-link {
		width: 30%;
	}
	
	.directory__info {
		width: 65%;
	}
}

@media all and (max-width: 399px) {
	.directory__item {
		display: block;
	}
	
	.directory__photo-link,
	.directory__info {
		width: 100%;
	}
}


/* ============================================================
	Module - Events
============================================================ */

.events__list {
	list-style-type: none;
}

.events__list__card::after {
	clear: both;
	content: " ";
	display: block;
	height: 0;
	overflow: hidden;
}

.events__list__card .events__item {
    background-color: #ffffff;
    box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.2);
	float: left;
	margin-bottom: 1em;
    padding: 1em;
    transition: box-shadow .6s;
	width: 48%;
}
.events__item + .events__item {
	margin-top: 1em;
}
.events__list__card .events__item + .events__item {
	margin-top: 0;
	margin-bottom: 1em;
}
.events__list__card .events__item:nth-child(even) {
	margin-left: 4%;
}
.events__list__card .events__item:nth-child(odd) {
	clear: left;
}
.events__list__card .events__item:hover {
     box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.33);
}

.events__title {
	text-decoration: none;
}

.events__date {
	border: 1px solid;
	display: block;
	float: left;
	font-weight: bold;
	margin-right: 2em;
	padding: 0.125em 0;
	width: 3.5em;
	text-align: center;
}

.events__date-month,
.events__date-day {
	display: block;
}

.events__date-month {
	font-size: 90%;
	text-transform: uppercase;
}

.events__date-day {
	font-size: 140%;
}

.events__title {
	font-weight: bold;
	_margin-left: 6em;
}

.events__short-details {
	margin-top: 0.5em;
}

.events-view__registration {
	margin-top: 2em;
}


/* ============================================================
	Module - FAQs
============================================================ */

.faqs__list {
	list-style-type: none;
}

.faqs__item {
	position: relative;

	margin-top: 1em;
}
.faqs__item:first-child {
	margin-top: 0;
}

.faqs__item-indicator {
	position: absolute;
	left: 0;
	top: 0;

	transition: transform 0.4s;
}
.faqs__item__open .faqs__item-indicator {
	transform: rotate(90deg);
}

.faqs__question {
	cursor: pointer;
	font-weight: bold;
	padding-left: 1.5em;
}

.faqs__answer {
	overflow: hidden;
}


/* ============================================================
	Module - Forms
============================================================ */

.forms__contact-field-item + .forms__contact-field-item {
	margin-top: 1em;
}

.forms__question-item {
	margin-top: 1em;
}
.forms__form-list {
	list-style-type: none;
}

.forms__contact-field-list {
	list-style-type: none;
}

.forms__question-list {
	list-style-type: none;
}

.forms__range-table {
	width: 100%;
}

.forms__range-table th,
.forms__range-table td {
	text-align: center;
}


/* ============================================================
	Module - Gallery
============================================================ */

/*
.gst-gallery-active {
	-moz-user-select: none;
	-khtml-user-select: none;
	-webkit-user-select: none;
	user-select: none;
}

.gst-gallery-active .gallery__wrap {
	position: relative;

	overflow: hidden;
	padding: 0;
}

.gst-gallery-active .gallery__list {
	position: absolute;
	left: 0;
	top: 0;

	list-style-type: none;
	margin: 0;
	padding: 0;
}
.gallery__list::after {
    clear: both;
	content: " ";
    display: block;
    height: 0;
    visibility: hidden;
}

.gallery__item {
	float: left;
	margin-right: 0.5em;
	margin-bottom: 0.5em;
}
.gst-gallery-active .gallery__item {
	margin-bottom: 0;
}

.gallery__item-image {
	display: block;
}

.gallery__control-wrap {
	display: none;
	margin-top: 0.5em;
	text-align: center;
}
.gst-gallery-active .gallery__control-wrap {
	display: block;
}

.gallery__control {
	position: relative;
	width: 4em;
	height: 2em;

	border: 1px solid;
	cursor: pointer;
	display: inline-block;
	overflow: hidden;
	text-indent: 100%;
}
.gst-gallery-button-disabled {
	opacity: 0.5;
}
.gallery__control::after {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;

	font-size: 185%;
	font-weight: bold;
	line-height: 1;
	text-indent: 0;
}
.gallery__control__previous::after {
	content: "<";
}
.gallery__control__next::after {
	content: ">";
}
*/

/*
.gst-gallery2__scripted .gst-gallery2__container {
	position: relative;

	overflow: hidden;
}

.gst-gallery2__scripted .gst-gallery2__items {
	_overflow: hidden;
	_padding-left: 50%;
	white-space: nowrap;
}

.gst-gallery2__item {
	display: inline-block;
	text-align: center;
	vertical-align: top;
}

.gst-gallery2__image,
.gst-gallery2__item-link,
.gst-gallery2__label {
	display: block;
}

.gst-gallery2__controls {
	display: none;
	margin-top: 1em;
	text-align: center;
}
.gst-gallery2__scripted .gst-gallery2__controls {
	display: block;
}

.gst-gallery2__control {
	position: relative;
	width: 4em;
	height: 2em;

	border: 1px solid;
	cursor: pointer;
	display: inline-block;
	overflow: hidden;
	text-indent: 100%;
}
.gst-gallery2__control__disabled {
	opacity: 0.5;
}
.gst-gallery2__control::after {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;

	font-size: 185%;
	font-weight: bold;
	line-height: 1;
	text-indent: 0;
}
.gst-gallery2__control__previous::after {
	content: "<";
}
.gst-gallery2__control__next::after {
	content: ">";
}
*/

.module-gallery__wrap {
	position: relative;

	-ms-user-select: none;
	user-select: none;
}

.module-gallery__items {
	display: flex;
	flex-wrap: wrap;
}
.gallery__style__scroll_h .module-gallery__items {
	position: relative;

	display: block;
	margin: 0 3em;
	overflow: hidden;
}

.module-gallery__sentinel {
	display: none;
}
.gallery__style__scroll_h .module-gallery__sentinel {
	display: block;
	visibility: hidden;
	width: 20%;
	padding-top: 20%;
}

.module-gallery__item {
	width: 20%;
}
.gallery__style__grid_alt .module-gallery__item {
	width: 33.333%;
}
.gallery__style__grid_alt .module-gallery__item:nth-child(5n),
.gallery__style__grid_alt .module-gallery__item:nth-child(5n+1) {
	width: 50%;
}
.gallery__style__scroll_h .module-gallery__item {
	position: absolute;
	top: 0;
	left: -20%;

	transition: left 0.2s;
}
.gallery__style__scroll_h .module-gallery__item__active { left: 0; }
.gallery__style__scroll_h .module-gallery__item__active ~ .module-gallery__item { left: 100%; }
.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item { left: 20%; }
.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item + .module-gallery__item { left: 40%; }
.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item + .module-gallery__item + .module-gallery__item { left: 60%; }
.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item + .module-gallery__item + .module-gallery__item + .module-gallery__item { left: 80%; }

.module-gallery__item-link {
	display: block;
}

.module-gallery__item-image {
	display: block;
	width: 100%;
	height: auto;
}
.gallery__style__scroll_h .module-gallery__item-image {
	background-color: #000005;
}

.module-gallery__control {
	position: absolute;
	top: 50%;
	height: 1em;
	width: 1em;
	z-index: 100;
	transform: translateY(-50%);
	display: none;

	cursor: pointer;
	font-size: 300%;
	text-align: center;

	font-family: 'Material Icons';
	font-weight: normal;
	font-style: normal;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-moz-font-feature-settings: 'liga';
	-moz-osx-font-smoothing: grayscale;
}
.module-gallery__control__previous {
	left: 0;
}
.module-gallery__control__next {
	right: 0;
}
.gallery__style__scroll_h .module-gallery__control {
	display: block;
}


/* ============================================================
	Module - Google Reviews
============================================================ */

.module.google_reviews {
	padding: 1em 2em;
}

.google_reviews__list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 4em;
	row-gap: 1em;
}

.google_reviews__review-author {
	font-size: 140%;
	font-weight: bold;
}

.google_reviews__review-rating {
	margin: 0.5em 0;
}

.google_reviews__review-time {
	padding-bottom: 1em;
	font-weight: bold;
	font-style: italic;
}

.google_reviews__review-text {
	position: relative;

}
.google_reviews__review-text::before,
.google_reviews__review-text::after {
	position: absolute;
    display: inline;
	font-size: 200%;
}
.google_reviews__review-text::before {
	content: "\201C";
	left: -1rem;
    top: 0;
}
.google_reviews__review-text::after {
	content: "\201D";
    bottom: 0;
	right: -1rem;
}

@media only screen and (max-width: 700px){
	.google_reviews__list {
		grid-template-columns: 1fr;
		column-gap: 0;
	}
}


/* ============================================================
	Module - Locations
============================================================ */

.locations__map {
	border: 1px solid black;
	height: 300px;
}

.locations__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	list-style-type: none;
}

.locations__wrap #adp-placemark td,
.locations__wrap .adp-placemark td {
	padding: 0.25em;
	vertical-align: middle;
}

.locations__wrap #adp-placemark .adp-marker,
.locations__wrap .adp-placemark .adp-marker {
	display: block;
}

.locations__location-title {
	font-weight: bold;
}

/*
.gst-map-location + .gst-map-location {
	margin-top: 1em;
}

.gst-map-title,
.gst-map-address,
.gst-map-phone {
	display: block;
}
*/

.locations__location {
	margin-top: 1em;
    width: calc(50% - 0.5em);
}

.locations__location-title,
.locations__location-address,
.locations__location-phone {
    display: block;
	margin-bottom: 0.5em;
}

.locations__location-getdirections a {
	border: 1px solid;
	display:inline-block;
	padding: 0.5em 1em;
}

/*
.locations__location-getdirections {
    display: block;
    width: 150px;
	border: 1px solid;
    text-align: center;
	padding: 0.5em 1em;
	margin-top: 0.5em;
}
*/

.locations__location-directions-form {
	margin-top: 1em;
}


/* ============================================================
	Module - News
============================================================ */

.news__list {
	list-style-type: none;
}

.news__list__card::after {
	clear: both;
	content: " ";
	display: block;
	height: 0;
	overflow: hidden;
}

.news__list__card .news__item {
    background-color: #ffffff;
    box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.2);
	float: left;
	margin-bottom: 1em;
    padding: 1em;
    transition: box-shadow .6s;
	width: 48%;
}
.news__item + .news__item {
	margin-top: 1em;
}
.news__list__card .news__item + .news__item {
	margin-top: 0;
	margin-bottom: 1em;
}
.news__list__card .news__item:nth-child(even) {
	margin-left: 4%;
}
.news__list__card .news__item:nth-child(odd) {
	clear: left;
}
.news__list__card .news__item:hover {
     box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.33);
}

.news__thumbnail {
	width: 6em;
	height: auto;
	display: block;
	float: left;
	margin: 0 1em 0 0;
}

.news__link {
	text-decoration: none;
}

/* ============================================================
	Module - Page Headers
============================================================ */

.page-headers {
	position: relative;
}

.page-headers__list {
	list-style-type: none;
}

.page-headers__item {
	position: relative;
	width: 100%;
}
.page-headers__item + .page-headers__item {
	display: none;
}
.page-headers__item.cycle-sentinel + .page-headers__item.cycle-slide {
	display: block;
}

.page-headers__link {
	display: block;
}

.page-headers__image {
	display: block;
	height: auto;
	width: 100%;
}

.page-headers__overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;

	background-color: rgba(255, 255, 255, 0.5);
	padding: 1em;
	text-align: center;
}

.page-headers__button {
	display: inline-block;
}

.page-headers__prev,
.page-headers__next {
	position: absolute;
	top: 50%;
	z-index: 200;
}
.page-headers__prev {
	left: 0;
}
.page-headers__next {
	right: 0;
}

.page-headers__pager {
	display: none;
}

/* ============================================================
	Module - Testimonials
============================================================ */

.testimonials__list {
	list-style-type: none;
}

.testimonials__list__card::after {
	clear: both;
	content: " ";
	display: block;
	height: 0;
	overflow: hidden;
}

.testimonials__list__card .testimonials__item {
    background-color: #ffffff;
    box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.2);
	float: left;
	margin-bottom: 1em;
    padding: 1em;
    transition: box-shadow .6s;
	width: 48%;
}
.testimonials__item + .testimonials__item {
	margin-top: 2em;
}
.insta-switch .testimonials__item {
	display: none;
}
.insta-switch .testimonials__item.show {
	display: block;
	margin-top: 0;
}
.testimonials__list__card .testimonials__item + .testimonials__item {
	margin-top: 0;
	margin-bottom: 1em;
}
.testimonials__list__card .testimonials__item:nth-child(even) {
	margin-left: 4%;
}
.testimonials__list__card .testimonials__item:nth-child(odd) {
	clear: left;
}
.testimonials__list__card .testimonials__item:hover {
     box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.33);
}

.testimonials__quote::before {
	content: "\201C";
	display: inline;
}

.testimonials__quote:after {
	content: "\201D";
	display: inline;
}

.testimonials__citation {
	display: block;
	margin-top: 0.5em;
	font-size: .8em;
}

.testimonials__citation-person,
.testimonials__citation-position,
.testimonials__citation-company {
	display: block;
}

.testimonials__citation-person {
	color: #4b4b4b;
	font-size: 1.2em;
}

.testimonials__prev,
.testimonials__next {
	cursor: pointer;
}


/* ============================================================
	Module - Video Banners
============================================================ */

.module-video-banners__video-wrap {
	padding: 0;
}

.module-video-banners__video {
	display: block;
	width: 100%;
	height: auto;
}


/* ============================================================================
	Nav
	
	2020-01-23: New Flex feature: fill-available
		This makes the top-level nav items, however many, expand to fill the
		horizontal space available. Causes really long nav titles to wrap such
		that the nav stays one row tall.
		Recommend: text-align center on the items and indicating their box,
		else the text placement looks odd.
	
	2020-01-23: New Flex features: left and right
		These make the top-level nav items left or right aligned, like
		text-align on inline-block items, but without inheriting down. If the
		nav gets too wide, flex causes really long nav titles to wrap such that
		the nav stays one row tall.
============================================================================ */

.nav.open {
	position: fixed;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	z-index: 20;

	background-color: rgba(0, 0, 0, 0.5);
	text-align: right;
}
.nav.desktop {
	position: static;
	background-color: transparent;
	text-align: left;
}

#primary-nav-toggle {
	border-width: 0;
	background-color: transparent;
	margin: 0;
	padding: 0;
}

#primary-nav-toggle .material-icons {
	vertical-align: top;
}

.open .nav__menu {
	background-color: rgba(255, 255, 255, 0.25);
	height: 100%;
	margin-left: 20%;
	overflow-y: auto;
	padding: 1em;
}

.nav__list {
	display: none;
	padding-left: 1.5em;
	text-align: left;
}
.open .nav__list__level-1 {
	display: block;
	padding-left: 0;
}
.desktop .nav__list {
	padding-left: 0;
}

.nav.desktop .nav__item:hover > .nav__list,
.nav__item__open > .nav__list {
	display: block;
}

.nav__item-actions {
	display: flex;
	flex-direction: row;
	align-items: center;
}

.nav__link {
	background-color: var(--nav-item-bg);
	display: block;
	flex: 1;
	padding: 0.5em 1em;
	transition: background-color 0.2s;
}
/*
.nav__flex__fill-available .nav__link__level-1,
.nav__flex__left .nav__link__level-1,
.nav__flex__right .nav__link__level-1 {
	height: 100%;
}
*/
.nav__item:hover > .nav__item-actions .nav__link {
	background-color: var(--nav-item-bg-hover);
}
.nav__item__current > .nav__item-actions .nav__link {
	background-color: var(--nav-item-bg-current);
}

.nav__item-action {
	cursor: pointer;
}
.nav__item-action__less {
	display: none;
}
.nav.desktop .nav__item-action {
	display: none;
}
.nav__item__open > .nav__item-actions .nav__item-action__more {
	display: none;
}
.nav__item__open > .nav__item-actions .nav__item-action__less {
	display: inline-block;
}
.nav.desktop .nav__item__open > .nav__item-actions .nav__item-action {
	display: none;
}

@media all and (min-width: 768px) {
	.desktop #primary-nav-toggle {
		display: none;
	}

	.desktop .nav__list {
		position: absolute;
		left: 100%;
		top: 0;
		width: 250px;
		z-index: 300;
	
		box-shadow: 0 0.185em 0.5em rgba(0, 0, 0, 0.15);
	}
	.desktop  .nav__list__level-1 {
		position: static;
		width: auto;
	
		box-shadow: none;
		flex-direction: row;
		justify-content: flex-start;
		margin-left: 0;
	}
	.desktop .nav__list__level-2 {
		left: 0;
		top: 100%;
	}
	.desktop.nav__flex__right .nav__list__level-1 {
		justify-content: flex-end;
	}
	.desktop.nav__clamp__right > .nav__list {
		left: auto;
		right: 100%;
	}
	.desktop.nav__clamp__right > .nav__list__level-2 {
		right: 0;
	}

	.desktop .nav__item {
		position: relative;
	}
	.desktop.nav__flex__fill-available .nav__item__level-1 {
		flex: 1;
	}
}

@media all and (max-width: 767px) {
	.nav {
		max-height: 100vh;
		overflow-y: auto;
	}
}


/* ============================================================
	Main Content
============================================================ */

.cms-content::after {
    clear: both;
    content: " ";
    display: block;
    height: 0;
    overflow: hidden;
}

.cms-content img {
	margin: 1em;
}

.cms-content img[style="float: left;"] {
	margin: 1em 1em 1em 0;
}

.cms-content img[style="float: right;"] {
	margin: 1em 0 1em 1em;
}

.cms-content ul {
	list-style-type: disc;
}

.cms-content ol {
	list-style-type: decimal;
}

.cms-content th {
	font-weight: bold;
}
.cms-content table.plain th {
	font-weight: normal;
}

.cms-content td + td,
.cms-content th + th,
.cms-content th + td {
	padding-left: 0.25em;
}
.cms-content table.plain td + td,
.cms-content table.plain th + th,
.cms-content table.plain th + td {
	padding-left: 0;
}

.cms-content tr + tr td,
.cms-content tr + tr th,
.cms-content thead + tbody td {
	padding-top: 0.25em;
}
.cms-content table.plain tr + tr td,
.cms-content table.plain tr + tr th,
.cms-content table.plain thead + tbody td {
	padding-top: 0;
}

/* ============================================================
	Footer
============================================================ */

.footer::after {
	clear: both;
	content: " ";
	display: block;
	height: 0;
	overflow: hidden;
}

.footer__inner {
	padding: 1em;
	text-align: center;
}

.footer__inner a {
	text-decoration: none;
}

/* ============================================================
	Main
============================================================ */

main::after {
	clear: both;
	content: " ";
	display: block;
	height: 0;
	overflow: hidden;
}

/* ============================================================
	Shop
============================================================ */

.shop {
	display: flex;
	flex-flow: row-reverse;
}

.shop__primary {
	padding: 1em;
	width: 75%;
}

.shop__secondary {
	padding: 1em;
	width: 25%;
}

.shop__sidebar-controls {
	margin-top: 1em;
}

.shop__products-list {
	text-align: center;
}

.shop__products-list-link {
	display: block;
}

.shop__products-list-image {
	display: block;
	width: 100%;
	height: auto;
}

.shop__products-list-item {
	display: inline-block;
	margin-bottom: 1em;
	vertical-align: top;
	width: 32%;
}

.shop__sidebar-categories {
	padding-left: 1em;
}
.shop__sidebar-categories__root {
	padding-left: 0;
}

.shop__twocol::after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}

.shop-cart__after-footer {
	display: none;
	text-align: right;
}

.shop-cart__table {
	width: 100%;
}

.shop-cart__table .nothing {
	text-align: center;
}

.shop-cart__table tfoot {
	text-align: right;
}

.shop-cart__table tfoot td {
	padding-top: 0.25em;
	padding-bottom: 0.25em;
}

.shop-cart__td {
	vertical-align: middle;
}
.shop-cart__td + .shop-cart__td {
	padding-left: 0.5em;
}

.shop-cart__th + .shop-cart__th {
	padding-left: 0.5em;
}

.shop-cart__td__quantity,
.shop-cart__td__item-name {
	text-align: left;
}

.shop-cart__td__unit-price,
.shop-cart__td__price {
	text-align: right;
}

.shop-cart__th__quantity,
.shop-cart__th__item-name {
	text-align: left;
}

.shop-cart__th__unit-price,
.shop-cart__th__price {
	text-align: right;
}

.shop-cart__td__thumb img {
	margin: 0;
	max-height: 100px;
	max-width: 100px;
}

.shop-cart__td__quantity input {
	width: 4em;
	text-align: center;
}

.shop-cart__tr__shipping td,
.shop-cart__tr__subtotal td,
.shop-cart__tr__tax td,
.shop-cart__tr__total td {
	text-align: right;
}

.shop-checkout__payment-types {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-gap: 1em;
}

.shop-order__billing {
	float: left;
	width: 49%;
}

.shop-order__shipping {
	float: right;
	width: 49%;
}

.shop-orders__orders {
	width: 100%;
}

.shop-orders__orders th {
	text-align: left;
}

.shop-product__a2c-form button {
	width: 100%;
}

.shop-product__description {
	clear: both;
}

.shop-product__info {
	float: right;
	width: 48%;
}

.shop-product__photos {
	float: left;
	width: 48%;
}

.shop-product__photos-list {
	margin-top: 1em;
	text-align: center;
}

.shop-product__photo {
	display: inline-block;
	width: 24%;
}

.shop-product__photo-link {
	display: block;
}

.shop-product__photo-image {
	display: block;
	width: 100%;
	height: auto;
}

.shop-product__primary-photo {
	display: block;
}

.shop-product__primary-photo-image {
	display: block;
	width: 100%;
	height: auto;
}

.shop-product__tag-list,
.shop-product__tag {
	display: inline;
}


/* ============================================================
	Form Builder 3.0
============================================================ */

.fb3__form fieldset + fieldset {
	margin-top: 1em;
}

.fb3__captcha-image {
	display: inline;
	vertical-align: middle;
}

.fb3__field + .fb3__field,
.fb3__field__captcha {
	margin-top: 1em;
}

.fb3__field-label,
.fb3__field-heading,
.fb3__field-heading-text,
.fb3__field-subheading,
.fb3__field-input,
.fb3__field-part,
.fb3__field-part-heading,
.fb3__field-select,
.fb3__file {
	display: block;
	font-weight: normal;
	color: inherit;
}

.fb3__field-input,
.fb3__field-select {
	width: 100%;
	border: 1px solid;
	border-color: var(--fb3-field-border);
}
/*
.fb3__field__focus .fb3__field-input,
.fb3__field__focus .fb3__field-select,
*/
.fb3__field:focus-within .fb3__field-input,
.fb3__field:focus-within .fb3__field-select {
	border-color: var(--fb3-field-border-focus);
	outline: none;
}

.fb3__field-heading__use-placeholder {
	display: none;
}

.fb3__field-heading-text {
	font-size:.9em;
}
.fb3__field__required .fb3__field-heading-text:after {
	content: "*";
	display: inline;
}

.fb3__field-subheading {
	font-size: 80%;
}

.fb3__field-parts::after {
    clear: both;
    content: " ";
    display: block;
    height: 0;
    visibility: hidden;
}

.fb3__field__address .fb3__field-part {
	float: left;
	width: 100%;
}

.fb3__field__address .fb3__field-part__city {
	width: 50%;
}

.fb3__field__address .fb3__field-part__state {
	width: 23%;
	margin-left: 2%;
}

.fb3__field__address .fb3__field-part__postal_code {
	width: 23%;
	margin-left: 2%;
}

.fb3__field-part-heading {
	font-size: 80%;
}


.fb3__field__captcha .fb3__field-input {
	display: inline;
	max-width: 100px;
}

.fb3__field__phone .fb3__field-part {
	float: left;
}

.fb3__field__phone .fb3__field-part__area {
	width: 28.8%;
}

.fb3__field__phone .fb3__field-part__exchange {
	width: 28.8%;
	margin-left: 2%;
}

.fb3__field__phone .fb3__field-part__subscriber {
	width: 38.4%;
	margin-left: 2%;
}

.fb3__checkbox,
.fb3__radio {
	margin-right: 0.5em;
}

.fb3__field__checkbox-wrapper .fb3__field-part + .fb3__field-part,
.fb3__field__radio-wrapper .fb3__field-part + .fb3__field-part {
	margin-top: 0.5em;
}

.fb3__field__checkbox-wrapper .fb3__field-part-heading,
.fb3__field__radio-wrapper .fb3__field-part-heading {
	display: inline;
}

/* ============================================================
	Users
============================================================ */

.users-home__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.users-home__action {
	margin-bottom: 1em;
	width: 32%;
}

.users-home__action-link {
	background-color: var(--interactive-item-bg);
	display: block;
	padding: 1em;
	transition: background-color 0.2s;
}
.users-home__action-link:hover {
	background-color: var(--interactive-item-bg-hover);
}

.users-login__actions {
	margin-top: 1em;
}

.users-payment-method-add__payment-types {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-gap: 1em;
}

/* ============================================================
	Mobile-friendly tables
============================================================ */

.gst-table-wrap {
	max-width: 100%;
	overflow: auto;
}

/* ============================================================
	Header
============================================================ */

.header::after {
	clear: both;
	content: " ";
	display: block;
	height: 0;
	overflow: hidden;
}

.header__logo-link {
	display: block;
}

.header__logo-image {
	display: block;
	max-width: 100%;
	height: auto;
}

.header__scheduled-alert {
	padding: 0.5em 1em;
	text-align: center;
}


/* ============================================================
	Responsive Styles
============================================================ */

/*
	Gallery before:
		5, 4: 767-, 3: 550-, 2: 399-, 1: 320-
	Gallery after:
		5, 4: 959-, 3: 767-, 2: 550-, 1: 399-
*/

@media all and (max-width: 1199px) {
	/* 4up becomes a 3up */
	.generic__4up .generic__part { width: 33.333%; }
	.generic__4up .generic__part:nth-child(4n+1) {
		clear: none;
	}
	.generic__4up .generic__part:nth-child(3n+1) {
		clear: left;
	}
	
	.generic__4space .generic__part { width: 32%; }
	.generic__4space .generic__part:nth-child(4n+1) {
		clear: none;
		margin-left: 2%;
	}
	.generic__4space .generic__part:nth-child(3n+1) {
		clear: left;
		margin-left: 0;
	}
}

@media all and (max-width: 959px) {
	.gallery__style__scroll_h .module-gallery__sentinel {
		width: 25%;
		padding-top: 25%;
	}
	
	.module-gallery__item {
		width: 25%;
	}
	.gallery__style__scroll_h .module-gallery__item {
		left: -25%;
	}
	.gallery__style__scroll_h .module-gallery__item__active { left: 0; }
	.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item { left: 25%; }
	.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item + .module-gallery__item { left: 50%; }
	.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item + .module-gallery__item + .module-gallery__item { left: 75%; }
	.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item + .module-gallery__item + .module-gallery__item + .module-gallery__item { left: 100%; }
	
	.gallery__style__scroll_h .module-gallery__item-image {
		background-color: #000004;
	}
}

@media all and (max-width: 899px) {
	/* 4up & 3up becomes a 2up */
	.generic__4up .generic__part,
	.generic__3up .generic__part {
		width: 50%;
	}
	.generic__4up .generic__part:nth-child(3n+1),
	.generic__3up .generic__part:nth-child(3n+1) {
		clear: none;
	}
	.generic__4up .generic__part:nth-child(odd),
	.generic__3up .generic__part:nth-child(odd) {
		clear: left;
	}
	
	.generic__4space .generic__part,
	.generic__3space .generic__part {
		width: 49%;
	}
	.generic__4space .generic__part:nth-child(3n+1),
	.generic__3space .generic__part:nth-child(3n+1) {
		clear: none;
		margin-left: 2%;
	}
	.generic__4space .generic__part:nth-child(odd),
	.generic__3space .generic__part:nth-child(odd) {
		clear: left;
		margin-left: 0;
	}
}

@media all and (max-width: 767px) {
	/*
	.nav {
		display: none;
	}
	
	.dynamic-nav {
		display: block;
	}
	*/

	.gallery__style__scroll_h .module-gallery__sentinel {
		width: 33.333%;
		padding-top: 33.333%;
	}
	
	.module-gallery__item {
		width: 33.333%;
	}
	.gallery__style__scroll_h .module-gallery__item {
		left: -33.333%;
	}
	.gallery__style__scroll_h .module-gallery__item__active { left: 0; }
	.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item { left: 33.333%; }
	.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item + .module-gallery__item { left: 66.666%; }
	.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item + .module-gallery__item + .module-gallery__item { left: 100%; }
	
	.gallery__style__scroll_h .module-gallery__item-image {
		background-color: #000003;
	}
	
	.locations__list {
		display: block;
	}
	
	.locations__location {
		width: 100%;
	}
}

@media all and (max-width: 699px) {
	.shop__primary {
		float: none;
		margin-bottom: 1em;
		width: 100%;
	}
	
	.shop__products-list-item {
		width: 48%;
	}
	
	.shop__secondary {
		float: none;
		width: 100%;
	}
	
	.shop-cart__table,
	.shop-cart__table > tbody,
	.shop-cart__tr,
	.shop-cart__th,
	.shop-cart__td {
		display: block;
	}
	
	.shop-cart__table > thead,
	.shop-cart__table > tfoot {
		display: none;
	}
	
	.shop-cart__table .cart-item-product:after {
		clear: both;
		content: " ";
		display: block;
		height: 0;
		overflow: hidden;
	}
	
	.shop-cart__tr {
		margin: 1em 0;
	}
	
	.shop-cart__td {
		margin-left: 160px;
	}
	
	.shop-cart__td__thumb {
		float: left;
		margin-left: 0;
		width: 140px;
	}
	.shop-cart__td__thumb img {
		display: block;
		max-height: 100%;
		max-width: 100%;
		width: 100%;
		height: auto;
	}
	
	.shop-cart__td__unit-price,
	.shop-cart__td__price {
    	text-align: left;
	}
	.shop-cart__td__unit-price:before {
		content: "Unit Price: ";
		display: inline;
	}
	.shop-cart__td__price:before {
		content: "Price: ";
		display: inline;
	}
	
	.shop-cart__after-footer {
		display: block;
	}
	
}

@media all and (max-width: 600px) {
	.cms-content img[style="float: left;"],
	.cms-content img[style="float: right;"] {
		max-width: 50%;
	}
}

@media all and (max-width: 550px) {
	.gallery__style__scroll_h .module-gallery__sentinel {
		width: 50%;
		padding-top: 50%;
	}
	
	.module-gallery__item {
		width: 50%;
	}
	.gallery__style__grid_alt .module-gallery__item:nth-child(n) {
		width: 100%;
	}
	.gallery__style__scroll_h .module-gallery__item {
		left: -50%;
	}
	.gallery__style__scroll_h .module-gallery__item__active { left: 0; }
	.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item { left: 50%; }
	.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item + .module-gallery__item { left: 100%; }
	
	.gallery__style__scroll_h .module-gallery__item-image {
		background-color: #000002;
	}
	
	/* All ups become a 1up */
	.generic__2up .generic__part,
	.generic__3up .generic__part,
	.generic__4up .generic__part {
		width: 100%;
	}
	
	.generic__2space .generic__part,
	.generic__3space .generic__part,
	.generic__4space .generic__part {
		width: 100%;
	}
	.generic__2space .generic__part:nth-child(n),
	.generic__3space .generic__part:nth-child(n),
	.generic__4space .generic__part:nth-child(n) {
		margin-left: 0;
	}
	
	.events__list__card .events__item {
		float: none;
		width: 100%;
	}
	.events__list__card .events__item:nth-child(even) {
		margin-left: 0;
	}
	
	.news__list__card .news__item {
		float: none;
		width: 100%;
	}
	.news__list__card .news__item:nth-child(even) {
		margin-left: 0;
	}
	
	.testimonials__list__card .testimonials__item {
		float: none;
		width: 100%;
	}
	.testimonials__list__card .testimonials__item:nth-child(even) {
		margin-left: 0;
	}
}

@media all and (max-width: 499px) {
	.shop__products-list-item {
		display: block;
		width: 100%;
	}
	
	.shop-product__info {
		float: none;
		width: 100%;
	}
	
	.shop-product__photos {
	    float: none;
	    width: 100%;
	    margin-bottom: 1em;
	}
}

@media all and (max-width: 479px) {
	.fb3__field__address .fb3__field-part__city {
		width: 100%;
	}
	
	.fb3__field__address .fb3__field-part__state {
		width: 48%;
		margin-left: 0;
	}
	
	.fb3__field__address .fb3__field-part__postal_code {
		width: 48%;
	}
	
	.gallery__style__scroll_h .module-gallery__sentinel {
		width: 100%;
		padding-top: 100%;
	}
	
	.module-gallery__item {
		width: 100%;
	}
	.gallery__style__scroll_h .module-gallery__item {
		left: -100%;
	}
	.gallery__style__scroll_h .module-gallery__item__active { left: 0; }
	.gallery__style__scroll_h .module-gallery__item__active + .module-gallery__item { left: 100%; }
	
	.gallery__style__scroll_h .module-gallery__item-image {
		background-color: #000001;
	}
}

@media all and (max-width: 399px) {
	.shop-cart__td {
		margin-left: 0;
	}
	
	.shop-cart__td__thumb {
		float: none;
		margin-left: 0;
		width: 100%;
	}
}

@media all and (max-width: 320px) {
	.fb3__field__address .fb3__field-part__state {
		width: 100%;
	}
	
	.fb3__field__address .fb3__field-part__postal_code {
		width: 100%;
		margin-left: 0;
	}
	
	.fb3__field__phone .fb3__field-part__area,
	.fb3__field__phone .fb3__field-part__exchange,
	.fb3__field__phone .fb3__field-part__subscriber {
		width: 100%;
		margin-left: 0;
	}
}
