/*********************************************************************************************************************
 * Theme Name: Improvise
 * Description: A simple, Gutenberg supported WordPress custom theme built by Crack Ajax as a starter theme to quickly develop children themes for clients.
 * Author: Crack-Ajax Web Technologies
 * Author URI: http://improvise.com
 * Text Domain: improvise
 * Version: 2.0
 ********************************************************************************************************************/

/****************************************** WordPress User Edit Link ************************************************/

.edit-this-link {
    display: none;
    width: 100%;
}

/*********************************************************************************************************************
 *********** General Purpose Classes
 *
 * @class .no-margin-top			| Sets margin-top to 0 !important
 * @class .no-margin-bottom			| Sets margin-bottom to 0 !important
 * @class .restricted-width			| Sets the user defined restricted width to a block
 * @class .portrait-image			| Centers image and limits width to 450px
 * 
 *********** Media Text Block Custom Classes ( styling for plugin /inc/gutenberg//blocks/block-media-text.js )
 *
 * @class .media-text-cta 			| Create polished CTA for the Media-Text block
 * @class .media-padded				| Media image has padding around the outside edges, good for background color
 * @class .content-flush			| If no background-color & no alignfull, removes outside edge padding of content
 *
 *********** Cover Block Custom Classes ( styling for plugin /inc/gutenberg//blocks/block-cover.js )
 *
 * @class .is-style-cover-cta		| Cover Block with Resticted Width for CTA setup
 * @class .a-left					| Align the CTA to the left
 * @class .a-right					| Align the CTA to the right
 *
 ********************************************************************************************************************/

.no-margin-top {
	margin-top: 0!important;
}

.no-margin-bottom {
	margin-bottom: 0!important;
}

.restricted-width {
	max-width: var(--restricted-width);
	margin-left: auto;
    margin-right: auto;
}

.portrait-image {
	margin: 0 auto;
	max-width: 450px;
}

/****************************************** Text and Anchor Tag Settings ******************************************/
*, *::after, *::before {
	box-sizing: border-box;
}

h1, h2, h3, h4, p, a, span, div, label {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-smoothing: antialiased;
}

h1 {
	color: var(--color-dark-text);
	font-family: var(--font-primary-heading);
	margin-bottom: var(--m-spacing);
	font-size: 2rem;
}

h2 { font-size: 1.5rem; }
h3 { font-size: 1.25rem; }
h4 { font-size: 1.125rem; }
h5 { font-size: 1rem; }
h6 { font-size: 0.8rem; }

h2, h3, h4, h5, h6 {
	color: var(--color-dark-text);
	font-family: var(--font-secondary-heading);
	margin-bottom: var(--s-spacing);
}

h1, h2, h3, h4, h5, h6, p {
	margin-top: 0;
	line-height: 1.2;
}

h1.has-background,
h2.has-background,
h3.has-background,
h4.has-background,
h5.has-background,
h6.has-background {
	padding: var(--l-spacing);
	@media (max-width: 992px) { padding: var(--m-spacing); }
	@media (max-width: 480px) { padding: var(--s-spacing); }
}

h2[id]:not(.block-editor-rich-text__editable):before {
	display: block;
    content: " ";
    margin-top: calc( calc( var(--s-spacing) + var(--xl-spacing) ) * -1 );
    height: calc( var(--s-spacing) + var(--xl-spacing) );
    visibility: hidden;
    pointer-events: none;
}

p, li, pre, .wp-block-verse {
	color: var(--color-light-text);
	font-family: var(--font-primary);
	font-size: var(--fontsize-base);
	line-height: 1.6;
}

p, pre, .wp-block-verse {
	margin-bottom: var(--s-spacing);
}

sup {
	font-size: 0.5em;
    font-weight: bold;
}

article li {
	margin: 10px 0;
}

.wp-block-verse {
	font-style: italic;
    font-weight: 600;
}

a {
	font-weight: 500;
	text-decoration: none;
	&:link { color: var(--color-light-text); }
	&:visited { color: var(--color-dark-text); }
	&:hover, &:active { color: var(--color-accent); }
}

article a {
	text-decoration: underline;
}

.wp-block-group.has-text-color *,
.wp-block-media-text.has-text-color * {
	color: inherit;
}

@media (max-width: 540px) {
	h1 { font-size: 2rem; }
	h2 { font-size: 1.625rem; }
	h3 { font-size: 1.375rem; }
	h4 { font-size: 1.125rem; }
	h5 { font-size: 1rem; }
	h6 { font-size: 1rem; }
}

/******************************************* WordPress Alignment Settings *******************************************/

.alignright {
	float: right;
	max-width: 100%;
}

.alignleft {
	float: left;
	max-width: 100%;
}

.aligncenter {
    display: block;
    margin: 0 auto;
	max-width: 100%;
}

.alignwide {
	width: calc(100% + calc(var(--xl-spacing) * 2));
	max-width: var(--wide-width);
	margin-left: calc(var(--xl-spacing) * -1);
	@media (max-width: 1200px) { width: calc(100% + calc(var(--l-spacing) * 2)); margin-left: calc(var(--l-spacing) * -1); }
	@media (max-width: 992px) { width: calc(100% + calc(var(--s-spacing) * 2)); margin-left: calc(var(--s-spacing) * -1); }
	@media (max-width: 480px) { width: calc(100% + calc(calc(var(--s-spacing) / 2) * 2)); margin-left: calc(calc(var(--s-spacing) / 2) * -1); }
}

.alignfull {
	margin-left: calc( -100vw / 2 + 100% / 2 );
	margin-right: calc( -100vw / 2 + 100% / 2 );
	max-width: 100vw !important;
	width: 100vw !important;
}

img.alignleft {
	margin-top: var(--s-spacing);
	margin-right: var(--s-spacing);
	margin-bottom: var(--s-spacing);
}

img.center {
	margin-top: var(--s-spacing);
	margin-bottom: var(--s-spacing);
}

img.alignright {
	margin-top: var(--s-spacing);
	margin-left: var(--s-spacing);
	margin-bottom: var(--s-spacing);
}

.alignfull .alignfull {
	@media (max-width: 1200px) { margin-left: 0; margin-right: 0; max-width: 100% !important; }
}

.wp-block-image {
	.alignright { @media (max-width: 480px) { display: block; margin-left: 0; float: none; width: 100%; } }
	.alignleft { @media (max-width: 480px) { display: block; margin-right: 0; float: none; width: 100%; } }
}

.wp-block-group__inner-container .alignwide {
	@media (max-width: 480px) { max-width: 100%; margin-left: 0; }
}

.no-margin-bottom-mobile {
	@media (max-width: 480px) { margin-bottom: 0; }
}

.inherit-color p, .inherit-color a, .inherit-color li, .inherit-color li::before {
	color: inherit!important;
}

/****************************************** Image & Video Default Settings *******************************************/

.wp-block-image figure {
	margin-bottom: 1em!important;
	@media (max-width: 540px) { display: block; }
}

.wp-block-image .aligncenter>figcaption {
	text-align: center;
}

video {
    -webkit-mask-image: -webkit-radial-gradient(white, black);
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
	/*-webkit-appearance: none;    Try this if still don't work */
}

iframe {
	max-width: 100%;
	width: 100%;
}

figcaption {
	font-size: 0.8rem;
	font-family: var(--font-accent);
}

/********************************************* Blockquotes & Pullquotes **********************************************/

caption,
blockquote,
blockquote p {
	font-family: var(--font-accent);
}

blockquote {
	position: relative;
	border: none;
	max-width: var(--restricted-width);
	quotes: "\201C""\201D""\2018""\2019";
	@media (max-width: 480px) { margin: 1em 0; }
	&.is-style-default {
		margin: calc(var(--l-spacing) + var(--m-spacing)) auto;
		@media (max-width: 992px) { max-width: calc(100% - calc(var(--m-spacing) * 2)); }
		@media (max-width: 480px) { margin: calc(var(--m-spacing) + var(--m-spacing)) auto; }
		&:before, &:after { content: ''; border: 5px solid var(--color-accent); width: calc(100% + calc(var(--m-spacing) * 2)); position: absolute; left: calc(var(--m-spacing) * -1); height: var(--s-spacing); }
		&:before { top: calc(var(--m-spacing) * -1); border-bottom: 0; }
		&:after { border-top: 0; bottom: calc(var(--m-spacing) * -1); }
	}
	cite { font-family: var(--font-primary); font-size: 0.8rem; }
	a, cite { color: var(--color-accent) !important; text-decoration: none; }
	a:hover { text-decoration: underline; }
}

.wp-block-quote p:before,
.wp-block-quote p:after,
.wp-block-pullquote blockquote:before,
.wp-block-pullquote blockquote:after {
    color: var(--color-accent);
    content: open-quote;
    font-size: 3.5em;
    line-height: 0.1em;
    margin-right: 0.25em;
    vertical-align: -0.4em;
}

.wp-block-quote p:after,
.wp-block-pullquote blockquote:after {
    content: close-quote;
    margin-right: 0;
}

.wp-block-quote.is-style-large cite {
	display: block;
}

.wp-block-quote,
.wp-block-quote.is-style-large {
	margin: var(--l-spacing) auto;
	@media (max-width: 480px) { margin: var(--m-spacing) auto; }
}

.wp-block-pullquote {
	position: relative;
	margin: var(--l-spacing) auto;
	padding: 0;
	max-width: var(--restricted-width);

	blockquote p { display: block; font-size: 1.5rem; }
	blockquote:after { position: absolute; opacity: 0; }

	&:not(.is-style-solid-color) {
		border-top: 3px solid var(--color-dark-text);
		border-bottom: 3px solid var(--color-dark-text);
		padding: var(--xl-spacing) 0 var(--m-spacing);
		blockquote:before {
			content: open-quote;
			quotes: "\201C""\201D""\2018""\2019";
			font-size: 10rem;
			position: absolute;
			left: 0;
			width: 100%;
			@media (max-width: 480px) { left: 0; transform: translate(-5%); }
		}
	}

	&.alignright, &.alignleft { margin-top: var(--m-spacing); margin-bottom: var(--m-spacing); max-width: var(--restricted-width); }
	&.alignright { margin-left: var(--m-spacing); }
	&.alignleft { margin-right: var(--m-spacing); }

	&.alignwide {
		margin: var(--l-spacing) calc(var(--xl-spacing) * -1);
		max-width: none;
		@media (max-width: 1200px) { margin: var(--l-spacing) auto; margin-left: calc(var(--l-spacing) * -1); }
		@media (max-width: 992px) { margin: var(--l-spacing) auto; margin-left: calc(var(--s-spacing) * -1); }
		@media (max-width: 480px) { margin: var(--m-spacing) auto; margin-left: calc(calc(var(--s-spacing) / 2) * -1); }
		&:not(.is-style-solid-color) blockquote {
			margin: 1em auto;
			@media (max-width: 480px) { padding: 0 var(--s-spacing); }
		}
	}

	&.alignfull {
		margin: var(--l-spacing) calc( -100vw / 2 + 100% / 2 );
		max-width: none;
		@media (max-width: 480px) { margin: var(--m-spacing) auto; margin-left: calc(calc(var(--s-spacing) / 2) * -1); }
		&:not(.is-style-solid-color) blockquote {
			max-width: var(--restricted-width);
			margin: 0 auto;
			@media (max-width: 480px) { padding: 0 var(--s-spacing); }
		}
	}

	&.is-style-solid-color {
		blockquote {
			position: relative;
			background-color: #eee;
			padding: var(--l-spacing);
			max-width: var(--restricted-width);
			margin: 0;
			@media (max-width: 768px) { padding: var(--s-spacing); }
			&:before {
				font-size: 8em;
				color: var(--color-accent);
				position: absolute;
				left: var(--m-spacing);
				top: var(--xl-spacing);
				@media (max-width: 768px) { left: 0; top: calc(var(--l-spacing) + var(--s-spacing)); }
			}
			p {
				padding-left: var(--xl-spacing);
				font-size: 1.3rem;
				text-align: left;
				margin-bottom: var(--s-spacing);
				&:last-child { margin-bottom: 0; }
				@media (max-width: 768px) { padding-left: var(--l-spacing); }
			}
		}
		&.alignwide blockquote { max-width: none; }
		&.alignfull blockquote { margin: 0; padding: var(--xl-spacing); max-width: none; @media (max-width: 992px) { padding: var(--l-spacing); } @media (max-width: 768px) { padding: var(--s-spacing); } }
		cite, .wp-block-pullquote__citation { display: block; text-align: right; }
	}
}

/********************************************** Verse Block Styles ***********************************************/
.wp-block-verse.has-background {
	padding: var(--s-spacing);
}

/********************************************** Block Separator Styles ***********************************************/

.wp-block-separator {
	color: var(--color-accent);
	border-color: var(--color-accent);
	margin: var(--l-spacing) auto;
	border-style: solid;

	&.has-primary-background-color,
	&.has-primary-color { border-color: var(--color-primary) !important; }
	&.has-secondary-background-color,
	&.has-secondary-color { border-color: var(--color-secondary) !important; }
	&.has-accent-background-color,
	&.has-accent-color { border-color: var(--color-accent) !important; }
	&.has-dark-text-background-color,
	&.has-dark-text-color { border-color: var(--color-dark-text) !important; }
	&.has-light-text-background-color,
	&.has-light-text-color { border-color: var(--color-light-text) !important; }
	&.has-background { border-color: inherit; }
	&:not(.is-style-dots):not(.is-style-wide),
	&.is-style-default { max-width: calc(var(--xl-spacing) * 2); }
	&.is-style-wide { border-color: var(--color-accent); }
	&.is-style-dots {
		margin: var(--m-spacing) auto;
		&:before {
			font-size: 2.5rem;
			@media (max-width: 480px) { letter-spacing: 1em; padding-left: 1em; }
		}
		&:not([style*=color]):before { color: var(--color-accent); }
		&.has-primary-color:before { color: var(--color-primary) !important; }
		&.has-secondary-color:before { color: var(--color-secondary) !important; }
		&.has-accent-color:before { color: var(--color-accent) !important; }
		&.has-dark-text-color:before { color: var(--color-dark-text) !important; }
		&.has-light-text-color:before { color: var(--color-light-text) !important; }
	}
}

hr.wp-block-separator.has-text-color.has-background[style*=background-color],
hr.wp-block-separator.has-text-color.has-background[style*=color] { border-color: transparent; }

/****************************************** Gutenberg Color Palette Styles *******************************************/

:root .has-white-background-color { background-color: var(--color-white); }
.has-white-color { color: var(--color-white); }
:root .has-black-background-color { background-color: var(--color-black); }
.has-black-color { color: var(--color-black); }
:root .has-primary-background-color { background-color: var(--color-primary); }
.has-primary-color { color: var(--color-primary); }
:root .has-secondary-background-color { background-color: var(--color-secondary); }
.has-secondary-color { color: var(--color-secondary); }
:root .has-accent-background-color { background-color: var(--color-accent); }
.has-accent-color { color: var(--color-accent); }
:root .has-light-text-background-color { background-color: var(--color-light-text); }
.has-light-text-color { color: var(--color-light-text); }
:root .has-dark-text-background-color { background-color: var(--color-dark-text); }
.has-dark-text-color { color: var(--color-dark-text); }

/********************************************** Gutenberg Button Styles ***********************************************/

.wp-block-buttons,
.wp-block-buttons.aligncenter {
	margin: var(--l-spacing) auto;
	@media (max-width: 480px) { margin: var(--s-spacing) auto; }
}

.button:not(.read-more),
.wp-block-button__link,
.wp-block-button__link.add_to_cart_button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit.disabled,
.woocommerce #respond input#submit:disabled,
.woocommerce #respond input#submit:disabled[disabled],
.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce a.button:disabled[disabled],
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce input.button.disabled,
.woocommerce input.button:disabled,
.woocommerce input.button:disabled[disabled],
#add_payment_method .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout .wc-proceed-to-checkout a.checkout-button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce button.button.alt.disabled {
	display: inline-block;
	border: 2px solid white;
	border-radius: 0;
	background-color: var(--color-primary);
	color: white;
	font-family: var(--font-primary-heading);
	padding: calc(var(--s-spacing) / 2 ) var(--m-spacing);
	text-decoration: none;
	transition: none;
}

.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit.disabled,
.woocommerce #respond input#submit:disabled,
.woocommerce #respond input#submit:disabled[disabled],
.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce a.button:disabled[disabled],
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce input.button.disabled,
.woocommerce input.button:disabled,
.woocommerce input.button:disabled[disabled],
.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	border-color: var(--color-primary);
}

#add_payment_method .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout .wc-proceed-to-checkout a.checkout-button {
	display: block;
	padding: 1em;
}

.button:not(.read-more),
.wp-block-button__link {
	@media (max-width: 480px) { padding: 10px 15px; }
}

.button:not(.read-more):hover,
.wp-block-button__link:hover,
.wp-block-button__link.add_to_cart_button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit.disabled:hover,
.woocommerce #respond input#submit:disabled:hover,
.woocommerce #respond input#submit:disabled[disabled]:hover,
.woocommerce a.button.disabled:hover,
.woocommerce a.button:disabled:hover,
.woocommerce a.button:disabled[disabled]:hover,
.woocommerce button.button.disabled:hover,
.woocommerce button.button:disabled:hover,
.woocommerce button.button:disabled[disabled]:hover,
.woocommerce input.button.disabled:hover,
.woocommerce input.button:disabled:hover,
.woocommerce input.button:disabled[disabled]:hover,
#add_payment_method .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-checkout .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	border: 2px solid white;
	background-color: var(--color-accent);
	color: white;
	text-decoration: none;
	transition: all .2s ease-in;
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit.disabled:hover,
.woocommerce #respond input#submit:disabled:hover,
.woocommerce #respond input#submit:disabled[disabled]:hover,
.woocommerce a.button.disabled:hover,
.woocommerce a.button:disabled:hover,
.woocommerce a.button:disabled[disabled]:hover,
.woocommerce button.button.disabled:hover,
.woocommerce button.button:disabled:hover,
.woocommerce button.button:disabled[disabled]:hover,
.woocommerce input.button.disabled:hover,
.woocommerce input.button:disabled:hover,
.woocommerce input.button:disabled[disabled]:hover,
.woocommerce div.product form.cart .button:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	border-color: var(--color-accent);
}

.is-style-outline .wp-block-button__link {
	border: 2px solid;
}

/** Button Color Combinations */
.wp-block-button__link {
	/** Black & White */
	&.has-white-color.has-black-background-color,
	&.has-black-color.has-white-background-color:hover {
		color: var(--color-white) !important;
		border-color: var(--color-white) !important;
		background-color: var(--color-black) !important;
	}
	&.has-black-color.has-white-background-color,
	&.has-white-color.has-black-background-color:hover {
		color: var(--color-black) !important;
		border-color: var(--color-black) !important;
		background-color: var(--color-white) !important;
	}

	/** Primary & White */
	&.has-white-color.has-primary-background-color,
	&.has-primary-color.has-white-background-color:hover {
		color: var(--color-white) !important;
		border-color: var(--color-white) !important;
		background-color: var(--color-primary) !important;
	}
	&.has-primary-color.has-white-background-color,
	&.has-white-color.has-primary-background-color:hover {
		color: var(--color-primary) !important;
		border-color: var(--color-primary) !important;
		background-color: var(--color-white) !important;
	}
	/** Secondary & White */
	&.has-white-color.has-secondary-background-color,
	&.has-secondary-color.has-white-background-color:hover {
		color: var(--color-white) !important;
		border-color: var(--color-white) !important;
		background-color: var(--color-secondary) !important;
	}
	&.has-secondary-color.has-white-background-color,
	&.has-white-color.has-secondary-background-color:hover {
		color: var(--color-secondary) !important;
		border-color: var(--color-secondary) !important;
		background-color: var(--color-white) !important;
	}

	/** Accent & White */
	&.has-white-color.has-accent-background-color,
	&.has-accent-color.has-white-background-color:hover {
		color: var(--color-white) !important;
		border-color: var(--color-white) !important;
		background-color: var(--color-accent) !important;
	}
	&.has-accent-color.has-white-background-color,
	&.has-white-color.has-accent-background-color:hover {
		color: var(--color-accent) !important;
		border-color: var(--color-accent) !important;
		background-color: var(--color-white) !important;
	}
	/** Light Text & White */
	&.has-white-color.has-light-text-background-color,
	&.has-light-text-color.has-white-background-color:hover {
		color: var(--color-white) !important;
		border-color: var(--color-white) !important;
		background-color: var(--color-light-text) !important;
	}
	&.has-light-text-color.has-white-background-color,
	&.has-white-color.has-light-text-background-color:hover {
		color: var(--color-light-text) !important;
		border-color: var(--color-light-text) !important;
		background-color: var(--color-white) !important;
	}
	/** Dark Text & White */
	&.has-white-color.has-dark-text-background-color,
	&.has-dark-text-color.has-white-background-color:hover {
		color: var(--color-white) !important;
		border-color: var(--color-white) !important;
		background-color: var(--color-dark-text) !important;
	}
	&.has-dark-text-color.has-white-background-color,
	&.has-white-color.has-dark-text-background-color:hover {
		color: var(--color-dark-text) !important;
		border-color: var(--color-dark-text) !important;
		background-color: var(--color-white) !important;
	}
	/** Primary & Black */
	&.has-black-color.has-primary-background-color,
	&.has-primary-color.has-black-background-color:hover {
		color: var(--color-black) !important;
		border-color: var(--color-black) !important;
		background-color: var(--color-primary) !important;
	}
	&.has-primary-color.has-black-background-color,
	&.has-black-color.has-primary-background-color:hover {
		color: var(--color-primary) !important;
		border-color: var(--color-primary) !important;
		background-color: var(--color-black) !important;
	}
	/** Secondary & Black */
	&.has-black-color.has-secondary-background-color,
	&.has-secondary-color.has-black-background-color:hover {
		color: var(--color-black) !important;
		border-color: var(--color-black) !important;
		background-color: var(--color-secondary) !important;
	}
	&.has-secondary-color.has-black-background-color,
	&.has-black-color.has-secondary-background-color:hover {
		color: var(--color-secondary) !important;
		border-color: var(--color-secondary) !important;
		background-color: var(--color-black) !important;
	}
	/** Accent & Black */
	&.has-black-color.has-accent-background-color,
	&.has-accent-color.has-black-background-color:hover {
		color: var(--color-black) !important;
		border-color: var(--color-black) !important;
		background-color: var(--color-accent) !important;
	}
	&.has-accent-color.has-black-background-color,
	&.has-black-color.has-accent-background-color:hover {
		color: var(--color-accent) !important;
		border-color: var(--color-accent) !important;
		background-color: var(--color-black) !important;
	}
	/** Light Text & Black */
	&.has-black-color.has-light-text-background-color,
	&.has-light-text-color.has-black-background-color:hover {
		color: var(--color-black) !important;
		border-color: var(--color-black) !important;
		background-color: var(--color-light-text) !important;
	}
	&.has-light-text-color.has-black-background-color,
	&.has-black-color.has-light-text-background-color:hover {
		color: var(--color-light-text) !important;
		border-color: var(--color-light-text) !important;
		background-color: var(--color-black) !important;
	}
	/** Dark Text & Black */
	&.has-black-color.has-dark-text-background-color,
	&.has-dark-text-color.has-black-background-color:hover {
		color: var(--color-black) !important;
		border-color: var(--color-black) !important;
		background-color: var(--color-dark-text) !important;
	}
	&.has-dark-text-color.has-black-background-color,
	&.has-black-color.has-dark-text-background-color:hover {
		color: var(--color-dark-text) !important;
		border-color: var(--color-dark-text) !important;
		background-color: var(--color-black) !important;
	}
	/** Primary & Secondary */
	&.has-secondary-color.has-primary-background-color,
	&.has-primary-color.has-secondary-background-color:hover {
		color: var(--color-secondary) !important;
		border-color: var(--color-secondary) !important;
		background-color: var(--color-primary) !important;
	}
	&.has-primary-color.has-secondary-background-color,
	&.has-secondary-color.has-primary-background-color:hover {
		color: var(--color-primary) !important;
		border-color: var(--color-primary) !important;
		background-color: var(--color-secondary) !important;
	}
	/** Primary & Accent */
	&.has-accent-color.has-primary-background-color,
	&.has-primary-color.has-accent-background-color:hover {
		color: var(--color-accent) !important;
		border-color: var(--color-accent) !important;
		background-color: var(--color-primary) !important;
	}
	&.has-primary-color.has-accent-background-color,
	&.has-accent-color.has-primary-background-color:hover {
		color: var(--color-primary) !important;
		border-color: var(--color-primary) !important;
		background-color: var(--color-accent) !important;
	}
	/** Primary & Light Text */
	&.has-light-text-color.has-primary-background-color,
	&.has-primary-color.has-light-text-background-color:hover {
		color: var(--color-light-text) !important;
		border-color: var(--color-light-text) !important;
		background-color: var(--color-primary) !important;
	}
	&.has-primary-color.has-light-text-background-color,
	&.has-light-text-color.has-primary-background-color:hover {
		color: var(--color-primary) !important;
		border-color: var(--color-primary) !important;
		background-color: var(--color-light-text) !important;
	}
	/** Primary & Dark Text */
	&.has-dark-text-color.has-primary-background-color,
	&.has-primary-color.has-dark-text-background-color:hover {
		color: var(--color-dark-text) !important;
		border-color: var(--color-dark-text) !important;
		background-color: var(--color-primary) !important;
	}
	&.has-primary-color.has-dark-text-background-color,
	&.has-dark-text-color.has-primary-background-color:hover {
		color: var(--color-primary) !important;
		border-color: var(--color-primary) !important;
		background-color: var(--color-dark-text) !important;
	}
	/** Secondary & Accent */
	&.has-accent-color.has-secondary-background-color,
	&.has-secondary-color.has-accent-background-color:hover {
		color: var(--color-accent) !important;
		border-color: var(--color-accent) !important;
		background-color: var(--color-secondary) !important;
	}
	&.has-secondary-color.has-accent-background-color,
	&.has-accent-color.has-secondary-background-color:hover {
		color: var(--color-secondary) !important;
		border-color: var(--color-secondary) !important;
		background-color: var(--color-accent) !important;
	}
	/** Secondary & Light Text */
	&.has-light-text-color.has-secondary-background-color,
	&.has-secondary-color.has-light-text-background-color:hover {
		color: var(--color-light-text) !important;
		border-color: var(--color-light-text) !important;
		background-color: var(--color-secondary) !important;
	}
	&.has-secondary-color.has-light-text-background-color,
	&.has-light-text-color.has-secondary-background-color:hover {
		color: var(--color-secondary) !important;
		border-color: var(--color-secondary) !important;
		background-color: var(--color-light-text) !important;
	}
	/** Secondary & Dark Text */
	&.has-dark-text-color.has-secondary-background-color,
	&.has-secondary-color.has-dark-text-background-color:hover {
		color: var(--color-dark-text) !important;
		border-color: var(--color-dark-text) !important;
		background-color: var(--color-secondary) !important;
	}
	&.has-secondary-color.has-dark-text-background-color,
	&.has-dark-text-color.has-secondary-background-color:hover {
		color: var(--color-secondary) !important;
		border-color: var(--color-secondary) !important;
		background-color: var(--color-dark-text) !important;
	}
	/** Accent & Light Text */
	&.has-light-text-color.has-accent-background-color,
	&.has-accent-color.has-light-text-background-color:hover {
		color: var(--color-light-text) !important;
		border-color: var(--color-light-text) !important;
		background-color: var(--color-accent) !important;
	}
	&.has-accent-color.has-light-text-background-color,
	&.has-light-text-color.has-accent-background-color:hover {
		color: var(--color-accent) !important;
		border-color: var(--color-accent) !important;
		background-color: var(--color-light-text) !important;
	}
	/** Accent & Dark Text */
	&.has-dark-text-color.has-accent-background-color,
	&.has-accent-color.has-dark-text-background-color:hover {
		color: var(--color-dark-text) !important;
		border-color: var(--color-dark-text) !important;
		background-color: var(--color-accent) !important;
	}
	&.has-accent-color.has-dark-text-background-color,
	&.has-dark-text-color.has-accent-background-color:hover {
		color: var(--color-accent) !important;
		border-color: var(--color-accent) !important;
		background-color: var(--color-dark-text) !important;
	}
	/** Light Text & Dark Text */
	&.has-dark-text-color.has-light-text-background-color,
	&.has-light-text-color.has-dark-text-background-color:hover {
		color: var(--color-dark-text) !important;
		border-color: var(--color-dark-text) !important;
		background-color: var(--color-light-text) !important;
	}
	&.has-light-text-color.has-dark-text-background-color,
	&.has-dark-text-color.has-light-text-background-color:hover {
		color: var(--color-light-text) !important;
		border-color: var(--color-light-text) !important;
		background-color: var(--color-dark-text) !important;
	}
}

/** is-style-fill: border color matches the active background */
.is-style-fill .wp-block-button__link {
	/** black background → black border */
	&.has-white-color.has-black-background-color,
	&.has-black-color.has-white-background-color:hover,
	&.has-primary-color.has-black-background-color,
	&.has-black-color.has-primary-background-color:hover,
	&.has-secondary-color.has-black-background-color,
	&.has-black-color.has-secondary-background-color:hover,
	&.has-accent-color.has-black-background-color,
	&.has-black-color.has-accent-background-color:hover,
	&.has-light-text-color.has-black-background-color,
	&.has-black-color.has-light-text-background-color:hover,
	&.has-dark-text-color.has-black-background-color,
	&.has-black-color.has-dark-text-background-color:hover { border-color: var(--color-black) !important; }
	/** white background → white border */
	&.has-black-color.has-white-background-color,
	&.has-white-color.has-black-background-color:hover,
	&.has-primary-color.has-white-background-color,
	&.has-white-color.has-primary-background-color:hover,
	&.has-secondary-color.has-white-background-color,
	&.has-white-color.has-secondary-background-color:hover,
	&.has-accent-color.has-white-background-color,
	&.has-white-color.has-accent-background-color:hover,
	&.has-light-text-color.has-white-background-color,
	&.has-white-color.has-light-text-background-color:hover,
	&.has-dark-text-color.has-white-background-color,
	&.has-white-color.has-dark-text-background-color:hover { border-color: var(--color-white) !important; }
	/** primary background → primary border */
	&.has-white-color.has-primary-background-color,
	&.has-primary-color.has-white-background-color:hover,
	&.has-black-color.has-primary-background-color,
	&.has-primary-color.has-black-background-color:hover,
	&.has-secondary-color.has-primary-background-color,
	&.has-primary-color.has-secondary-background-color:hover,
	&.has-accent-color.has-primary-background-color,
	&.has-primary-color.has-accent-background-color:hover,
	&.has-light-text-color.has-primary-background-color,
	&.has-primary-color.has-light-text-background-color:hover,
	&.has-dark-text-color.has-primary-background-color,
	&.has-primary-color.has-dark-text-background-color:hover { border-color: var(--color-primary) !important; }
	/** secondary background → secondary border */
	&.has-white-color.has-secondary-background-color,
	&.has-secondary-color.has-white-background-color:hover,
	&.has-black-color.has-secondary-background-color,
	&.has-secondary-color.has-black-background-color:hover,
	&.has-primary-color.has-secondary-background-color,
	&.has-secondary-color.has-primary-background-color:hover,
	&.has-accent-color.has-secondary-background-color,
	&.has-secondary-color.has-accent-background-color:hover,
	&.has-light-text-color.has-secondary-background-color,
	&.has-secondary-color.has-light-text-background-color:hover,
	&.has-dark-text-color.has-secondary-background-color,
	&.has-secondary-color.has-dark-text-background-color:hover { border-color: var(--color-secondary) !important; }
	/** accent background → accent border */
	&.has-white-color.has-accent-background-color,
	&.has-accent-color.has-white-background-color:hover,
	&.has-black-color.has-accent-background-color,
	&.has-accent-color.has-black-background-color:hover,
	&.has-primary-color.has-accent-background-color,
	&.has-accent-color.has-primary-background-color:hover,
	&.has-secondary-color.has-accent-background-color,
	&.has-accent-color.has-secondary-background-color:hover,
	&.has-light-text-color.has-accent-background-color,
	&.has-accent-color.has-light-text-background-color:hover,
	&.has-dark-text-color.has-accent-background-color,
	&.has-accent-color.has-dark-text-background-color:hover { border-color: var(--color-accent) !important; }
	/** light-text background → light-text border */
	&.has-white-color.has-light-text-background-color,
	&.has-light-text-color.has-white-background-color:hover,
	&.has-black-color.has-light-text-background-color,
	&.has-light-text-color.has-black-background-color:hover,
	&.has-primary-color.has-light-text-background-color,
	&.has-light-text-color.has-primary-background-color:hover,
	&.has-secondary-color.has-light-text-background-color,
	&.has-light-text-color.has-secondary-background-color:hover,
	&.has-accent-color.has-light-text-background-color,
	&.has-light-text-color.has-accent-background-color:hover,
	&.has-dark-text-color.has-light-text-background-color,
	&.has-light-text-color.has-dark-text-background-color:hover { border-color: var(--color-light-text) !important; }
	/** dark-text background → dark-text border */
	&.has-white-color.has-dark-text-background-color,
	&.has-dark-text-color.has-white-background-color:hover,
	&.has-black-color.has-dark-text-background-color,
	&.has-dark-text-color.has-black-background-color:hover,
	&.has-primary-color.has-dark-text-background-color,
	&.has-dark-text-color.has-primary-background-color:hover,
	&.has-secondary-color.has-dark-text-background-color,
	&.has-dark-text-color.has-secondary-background-color:hover,
	&.has-accent-color.has-dark-text-background-color,
	&.has-dark-text-color.has-accent-background-color:hover,
	&.has-light-text-color.has-dark-text-background-color,
	&.has-dark-text-color.has-light-text-background-color:hover { border-color: var(--color-dark-text) !important; }
}

/********************************************* Popup and Overlay **********************************************/

.overlay {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	background: rgba(0,0,0,0.8);
	z-index: 1000;
	cursor: pointer;
}

.pop-up {
	position: fixed;
	width: 100%;
	max-width: 500px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	padding: var(--l-spacing);
	z-index: 10000;
}

.custom-message {
	display: none;
	background: var(--color-primary);
	box-shadow: 0px 0px 10px 8px var(--color-secondary);
	h1, h2, h3, h4, h5, h6, p, li, a { color: white; }
	:last-child { margin-bottom: 0; }
	.close-x { position: absolute; right: var(--s-spacing); top: var(--s-spacing); }
	@media (max-width: 768px) { max-width: 90%; padding: var(--l-spacing) 10px var(--m-spacing); }
}

.no-scroll .overlay,
.no-scroll .custom-message { display: block; }

/********************************************* Primary Content Styling **********************************************/

html {
	font-size: var(--fontsize-base);
	font-family: var(--font-primary);
	line-height: 1.6rem;
	color: var(--color-dark-text);
	overflow-x: hidden;
}

body.improvise {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	margin: 0;
	min-height: 100vh;
	overflow-x: hidden;
	font-size: var(--fontsize-base);
}

body.menu-open {
	overflow: hidden;
}

.document-header {
	position: fixed;
	width: 100%;
	* { transition: all 0.5s ease; }
	div.social { width: 25%; max-width: 50%; }
	.fixed & { min-height: var(--l-spacing) !important; max-height: var(--l-spacing) !important; top: 0; }
	.admin-bar.fixed & { top: 32px; @media (max-width: 782px) { top: 46px; } }
}

body:not(.has-top-bar) .document-header,
body.has-top-bar .document-header .main-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: var(--xl-spacing);
	max-height: var(--xl-spacing);
	padding: 0 var(--l-spacing);
	background-color: var(--color-header-bg);
	border-bottom: 1px solid var(--color-header-text);
	z-index: 99999;
	transition: all 0.5s ease;
}

body.has-top-bar .document-header {
	display: flex;
	flex-direction: column;
	z-index: 99999;
}

main {
	position: relative;
	padding-top: var(--xl-spacing);
	transition: padding 0.5s ease;
	.has-top-bar & { padding-top: calc(var(--xl-spacing) + var(--m-spacing)); }
	.fixed & { padding-top: var(--l-spacing); }
	.has-top-bar.fixed & { padding-top: calc(var(--l-spacing) + var(--m-spacing)); }
}

article {
	position: relative;
	padding: 0 var(--xl-spacing) var(--xl-spacing);
	@media (max-width: 1200px) { padding: 0 var(--l-spacing) var(--l-spacing); }
	@media (max-width: 992px) { padding: 0 var(--s-spacing) var(--l-spacing); }
	@media (max-width: 480px) { padding: 0 calc(var(--s-spacing) / 2); }
	ul { @media (max-width: 480px) { padding-left: var(--s-spacing); } }
}

.page-title {
	padding-top: var(--xl-spacing);
	@media (max-width: 992px) { padding-top: var(--l-spacing); }
}

.row {
	margin: 0 auto;
	max-width: var(--wide-width);
	@media (max-width: 480px) { max-width: 100%; }
}

#wpadminbar { @media (max-width: 600px) { position: fixed; } }

/******************************************** Site Logo Styling ********************************************/

.site-info {
	height: var(--xl-spacing);
	max-height: 100px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	color: var(--color-header-text);
	transition: max-height 0.5s ease;
	a, p { color: var(--color-header-text); line-height: calc(var(--l-spacing) / 2); font-size: 1.125rem; margin-bottom: 0; text-decoration: none; }
	p { font-size: 0.9rem; max-height: var(--xl-spacing); }
	.fixed & { max-height: 50px; flex-direction: row; justify-content: space-between; align-items: center; p { display: none; } }
}

.document-header .logo {
	max-width: 250px;
	padding: 5px 0;
	a { display: block; position: relative; z-index: 999; }
	img { max-height: calc(var(--xl-spacing) - 10px); width: auto; height: 100%; margin-bottom: 0; transition: all 0.5s ease; vertical-align: middle; }
	.fixed & img { max-height: calc(var(--l-spacing) - 10px); }
}

body:not(.has-top-bar) .document-header,
body.has-top-bar .document-header .main-bar {
	@media (max-width: 1200px) { flex-wrap: wrap; padding: 0 var(--l-spacing); }
	@media (max-width: 992px) { padding: 0 var(--s-spacing); }
	@media (max-width: 480px) { padding: 0 calc(var(--s-spacing) / 2); }
}

/******************************************** Primary Navigation Styling ********************************************/
.primary-nav,
.top-bar {
	align-items: center;
	display: flex;
    position: relative;
}

.primary-nav .navbar-nav,
.top-bar .top-nav {
	display: flex;
	justify-content: space-between;
	margin: 0;
}

.primary-nav div.navbar-header {
    display: none;
}

.primary-nav ul,
.top-bar .top-nav {
    list-style-type: none;
}

.primary-nav .dropdown.inactive {
	background-color: transparent;
}

.primary-nav ul li,
.top-bar .top-nav li {
	line-height: normal;
	position: relative;
	margin-bottom: 0;
}

.primary-nav.tab-underline ul li {
	padding: 0 15px;
}

.primary-nav ul li a {
	color: var(--color-header-text);
	font-size: 1rem;
	font-family: var(--font-primary-nav);
	font-weight: 600;
	text-decoration: none;
}

.primary-nav:not(.tab-underline) ul li a,
.top-bar .top-nav li a {
	display: block;
	padding: 0 15px;
	line-height: calc(var(--xl-spacing) - 1px);
	max-height: calc(var(--xl-spacing) - 1px);
}

.fixed .primary-nav:not(.tab-underline) ul li a {
	line-height: calc(var(--l-spacing) - 1px);
	max-height: calc(var(--l-spacing) - 1px);
}

.primary-nav .dropdown.inactive a {
	background-color: transparent;
}

.primary-nav.tab-underline ul li:not(.touch-start):hover a,
.primary-nav.tab-underline ul li.current-menu-item a {
    border-bottom: 2px solid var(--color-header-text);
}

.primary-nav.tab-underline ul li.current-menu-item a[href*='#'] {
    border-bottom: none;
}

.primary-nav.tab-hover ul li:not(.touch-start):hover a,
.primary-nav.tab-hover ul li.current-menu-item a {
	color: var(--color-header-hover);
}

.primary-nav.tab-hover ul li.current-menu-item a[href*='#'] {
	color: inherit;
}

.primary-nav.tab-button ul li:not(.touch-start):hover a,
.primary-nav.tab-button ul li.current-menu-item a {
	color: var(--color-header-bg);
	background-color: var(--color-header-text);
}

.primary-nav .dropdown .caret,
.primary-nav .dropdown.inactive .caret {
	margin-left: 5px;
    transform: rotate(90deg);
    display: inline-block;
	font-size: 0.8rem;
	transition: transform 0.25s linear;
}

.primary-nav.tab-underline .dropdown .caret,
.primary-nav.tab-underline .dropdown.inactive .caret {
	vertical-align: text-bottom;
}

.primary-nav ul li:not(.touch-start):hover .caret,
.primary-nav .dropdown.active .caret{
	transform: rotate(270deg);
	margin-right: 3px;
	margin-left: 2px;
}

.primary-nav .dropdown .dropdown-menu {
	display: flex;
	width: 300px;
	width: max-content;
	opacity: 0;
	visibility: hidden;
	overflow: hidden;
	flex-direction: column;
	justify-content: center;
	position: absolute;
	left: 0;
	right: auto;
	z-index: 100;
	padding: 0;
	background-color: transparent;
	z-index: -1;
	transition: all 0.25s linear;
	margin-left: -2px;
	border: 2px solid rgba(255,255,255,0.1);
	border-top: 0;
}

.primary-nav.tab-underline .dropdown .dropdown-menu {
	padding-top: 37px;
}

.fixed .primary-nav.tab-underline .dropdown .dropdown-menu {
	padding: 11px 0 0;
}

.primary-nav ul li:nth-last-child(-n+2) .dropdown-menu {
    right: 0;
	left: auto;
	text-align: right;
}

.primary-nav ul li:not(.touch-start):hover .dropdown-menu,
.primary-nav .dropdown.active .dropdown-menu {
	visibility: visible;
	opacity: 1;
	z-index: 10;
}

.primary-nav .dropdown-menu li {
	background-color: var(--color-header-text);
}

.primary-nav.tab-underline .dropdown-menu li {
	padding: 10px 15px;
}

.primary-nav.tab-underline li.dropdown .dropdown-menu li:last-child {
	padding-bottom: var(--s-spacing);
}

.primary-nav .dropdown-menu li a {
	position: relative;
    z-index: 99;
}

.primary-nav:not(.tab-underline) .dropdown:not(.touch-start) .dropdown-menu li a {
	line-height: var(--l-spacing);
	background-color: var(--color-header-dropdown);
}

.primary-nav.tab-button:not(.tab-underline) .dropdown:not(.touch-start) .dropdown-menu li a  {
	color: var(--color-header-dropdown-text);
	background-color: var(--color-header-dropdown);
}

.primary-nav .dropdown-menu li a {
	color: var(--color-header-bg);
}

.primary-nav.tab-hover .dropdown:not(.touch-start) .dropdown-menu li a {
	color: var(--color-header-text);
}

.primary-nav.tab-underline .dropdown-menu li.current-menu-item a {
	border-bottom: 2px solid var(--color-header-bg);
}

.primary-nav.tab-underline :not(.touch-start) .dropdown-menu li:hover a {
	border-color: var(--color-header-bg);
}

.primary-nav.tab-hover :not(.touch-start) .dropdown-menu li:hover a,
.primary-nav.tab-hover .dropdown:not(.touch-start) .dropdown-menu li.current-menu-item a {
	color: var(--color-header-hover);
}

.primary-nav.tab-button:not(.tab-underline) ul li:not(.touch-start) .dropdown-menu li:hover a,
.primary-nav.tab-button:not(.tab-underline) .dropdown:not(.touch-start) .dropdown-menu li.current-menu-item a {
	color: var(--color-header-dropdown);
	background-color: var(--color-header-dropdown-text);
}

.primary-nav .dropdown-menu .dropdown-submenu .caret,
.primary-nav .dropdown-menu ul.dropdown-submenu {
	display: none;
}

@media (max-width: 1200px) {
	
	.primary-nav {
		position: absolute;
		top: var(--xl-spacing);
		left: 0;
		width: 100%;
		height: auto;
		max-height: 0;
		background-color: var(--color-header-bg);
		overflow: hidden;
	    z-index: 9;
		transition: all 0.25s linear;
	}
	
	.fixed .primary-nav {
		top: var(--l-spacing);
	}
	
	.menu-open .primary-nav {
		overflow: visible;
		height: var(--l-spacing);
		max-height: var(--l-spacing);
	}

	.navbar-collapse .navbar-nav {
		justify-content: space-around;
		align-items: center;
		height: 100%;
		width: 100%;
		padding: 0;
		border-bottom: 1px solid var(--color-header-text);
	}
	
	.primary-nav ul li a {
		color: var(--color-header-text);
	}
	
	.primary-nav:not(.tab-underline) ul li a {
		height: auto;
		max-height: 0;
		line-height: calc(var(--l-spacing) - 1px);
		overflow: hidden;
		transition: max-height 0.25s linear;
	}
	
	.menu-open .primary-nav:not(.tab-underline) ul li a {
		max-height: calc(var(--l-spacing) - 1px);
		height: calc(var(--l-spacing) - 1px);
	}
	
	.primary-nav ul li:not(.touch-start):hover a,
	.primary-nav ul li.current-menu-item a {
		border-color: var(--color-header-text);
	}
	
	.menu-open .primary-nav.tab-underline .dropdown .dropdown-menu {
		padding: 12px 0 0;
	}
	
	.menu-open .primary-nav.tab-underline .dropdown.active .dropdown-menu,
	.menu-open .primary-nav.tab-underline .dropdown:not(.touch-start):hover .dropdown-menu {
		border-bottom: 1px solid var(--color-header-bg);
	}
	
	.primary-nav ul li:not(.touch-start):hover .dropdown-menu li a {
		border-color: var(--color-header-text);
	}
	
	.primary-nav ul li:not(.touch-start) .dropdown-menu li:hover a,
	.primary-nav ul li .dropdown-menu li.current-menu-item a {
		border-color: var(--color-header-bg);
	}
	
	.primary-nav.tab-underline ul li:not(.touch-start):hover .dropdown-menu li,
	.primary-nav.tab-underline .dropdown.active .dropdown-menu li {
		border-left: 1px solid var(--color-header-bg);
		border-right: 1px solid var(--color-header-bg);
	}
}

@media (max-width: 850px) { 
	
	.primary-nav {
		border-bottom: 0;;
		transition: max-height 0.25s linear;
		background-color: none;
	}
	
	.menu-open .primary-nav {
		height: auto;
		max-height: 100vh;
		overflow: auto;
	}
	
	.navbar-collapse .navbar-nav {
		flex-direction: column;
		align-items: normal;
		background-color: var(--color-header-bg);
		border-bottom: 0;
	}
	
	.primary-nav ul li,
	.primary-nav.tab-underline ul li {
		padding: 0;
	}
	
	.primary-nav ul.navbar-nav>li {
		border-bottom: 1px solid var(--color-header-text);
		border-top: 1px solid transparent;
	}
	
	.primary-nav ul.navbar-nav>li:hover {
		border-top: 1px solid var(--color-header-bg);
	}
	
	.primary-nav ul.navbar-nav>li a {
		line-height: 45px;
	}
	
	.primary-nav ul li a {
		display: block;
		width: 100%;
		padding: 0 0 0 20px;
		border: 0 !important;
	}
	
	.menu-open .primary-nav:not(.tab-underline) ul li a {
		height: auto;
	}
	
	.primary-nav:not(.tab-button) li:not(.touch-start) a:hover {
		font-weight: bold !important;
	}
	
	/* Extra space above the caret block to separate from no-border
	.primary-nav .dropdown > a,
	.primary-nav:not(.tab-underline) ul li a {
		padding-top: 1px;
	} */
	
	/* On Mobile menu do not hover drop down menu item
	.primary-nav.tab-button ul li.dropdown:not(.touch-start):hover>a {
		color: var(--color-header-text);
    	background-color: var(--color-header-bg);
	}  */
	
	.primary-nav .dropdown .dropdown-toggle {
		display: flex;
		justify-content: space-between;
		padding-right: 0;
	}
	
	.primary-nav .dropdown .dropdown-menu {
		position: relative;
		width: 100%;
		height: auto;
		max-height: 0;
		opacity: 1;
    	box-shadow: none;
		margin-left: 0;
    	text-align: left;
		transition: all 0.25s linear;
	}
	
	.primary-nav.tab-underline .dropdown .dropdown-menu,
	.menu-open .primary-nav.tab-underline .dropdown .dropdown-menu,
	.fixed .primary-nav.tab-underline .dropdown .dropdown-menu {
		padding: 0;	
	}
	
	.menu-open .primary-nav .dropdown.active .dropdown-menu {
		border-bottom: 0;
		border-top-color: var(--color-header-bg);
	}
	
	.primary-nav .dropdown.active .dropdown-menu, 
	.primary-nav ul li:not(.touch-start):hover .dropdown-menu {
    	padding: 0;
		height: auto;
		max-height: 100vh;
		border-bottom: 0;
		border-top: 1px solid var(--color-header-bg);
	}
	
	.primary-nav ul li:nth-last-child(-n+2) .dropdown-menu {
		text-align: left;
	}
	
	.primary-nav .navbar-nav .dropdown .dropdown-menu li {
		border-bottom: 1px solid var(--color-header-bg);
		padding: 0 0 0 20px;
	}
	
	.primary-nav:not(.tab-underline) .navbar-nav .dropdown .dropdown-menu li  {
		background-color: var(--color-header-hover);
	}
	
	.primary-nav.tab-underline ul li:not(.touch-start):hover .dropdown-menu li,
	.primary-nav.tab-underline .dropdown.active .dropdown-menu li {
		border-left: 0;
		border-right: 0;
    	width: 100%;
		padding: 0 0 0 20px;
	}
	
	.primary-nav.tab-underline li.dropdown .dropdown-menu li:last-child,
	.primary-nav.tab-underline .dropdown.active .dropdown-menu li:last-child,
	.primary-nav.tab-underline li:not(.touch-start):hover .dropdown-menu li:last-child,
	.primary-nav.tab-underline .dropdown.active .dropdown-menu li:last-child {
		padding-bottom: 0;
		border-bottom: 0;
	}
	
	.primary-nav.tab-button :not(.touch-start) .dropdown-menu li:hover,
	.primary-nav.tab-button .dropdown-menu li.current-menu-item {
	    background-color: var(--color-header-text);
	}
	
	.primary-nav .dropdown .dropdown-menu li a {
		padding: 0 0 0 20px;
	}
	
	.primary-nav.tab-button :not(.touch-start) .dropdown-menu li:hover a,
	.primary-nav.tab-button .dropdown-menu li.current-menu-item a {
	    background-color: inherit;
	}
	
	.primary-nav .dropdown .caret {
		height: 45px;
    	width: 45px;
		margin: 0;
    	text-align: center;
    	position: relative;
		background: var(--color-header-text);
    	color: var(--color-header-bg);
    	font-size: 20px;
		transition: none !important;
	}
	
	.primary-nav ul li:not(.touch-start):hover .caret,
	.primary-nav .dropdown.active .caret {
		margin: 0;
	}
	
	.primary-nav .dropdown .caret,
	.primary-nav .dropdown.inactive .caret {
		margin-left: 0;
	}
	
}

/****************************************** Transparent Nav Styling ******************************************/

.has-transparent-nav {
	&:not(.fixed) .document-header,
	&:not(.fixed) .document-header .main-bar { background-color: transparent !important; }
	.document-header,
	.document-header .main-bar { border-bottom: 0 !important; }
	main { padding-top: 0; }
	.primary-nav.tab-underline .dropdown .dropdown-menu { padding-top: 0; margin-top: 10px; }
	.primary-nav.tab-hover .dropdown .dropdown-menu { margin-top: -27px; }
}

/******************************************** Top Bar Nav Styling ********************************************/
.top-bar {
	background-color: var(--color-topbar-bg);
	justify-content: flex-end;
	max-height: var(--m-spacing);
	min-height: var(--m-spacing);
	@media (max-width: 1200px) { justify-content: center; }
	.top-nav {
		margin: 0;
		padding: 0 var(--l-spacing);
		li a {
			color: var(--color-topbar-text);
			line-height: calc(var(--m-spacing) - 1px);
			@media (max-width: 500px) { font-size: 14px; }
		}
		li:not(.touch-start):hover a { color: var(--color-topbar-text-hover); background-color: var(--color-topbar-bg-hover); }
	}
}

@media (max-width: 1200px) {
	body.has-top-bar .document-header .primary-nav { top: calc(var(--xl-spacing) + var(--m-spacing)); }
	.fixed.has-top-bar .document-header .primary-nav { top: calc(var(--l-spacing) + var(--m-spacing)); }
}

/******************************************** Mobile Hamburger Styling ********************************************/

.mobile-hamburger {
	display: none;
	@media (max-width: 1200px) {
		display: flex;
		flex-direction: column;
		justify-content: space-evenly;
		width: 40px;
		height: 40px;
		position: relative;
		overflow: hidden;
		cursor: pointer;
		transform: rotate(0deg);
		transition: 0.25s ease-in-out;
		z-index: 2;
		padding: 0;
		background: transparent;
		border: 0;
		.fixed & { margin-top: -5px; }
		span { position: relative; background: var(--color-header-text); border-radius: 9px; height: 3px; width: 40px; transform: rotate(0deg); transition: .25s ease-in-out; }
		.primary-nav:not(.tab-underline) &:hover span { background: var(--color-header-hover); }
		&.toggled .wrapper { max-height: 1000px; }
		&.toggled span:nth-child(1) { top: 11px; transform: rotate(135deg); }
		&.toggled span:nth-child(2) { transform: rotate(495deg); }
		&.toggled span:nth-child(3) { top: -10px; transform: rotate(-135deg); }
	}
}

/******************************************** Mobile Telephone Styling ********************************************/

.mobile-telephone-button {
	background-color: var(--color-accent);
	display: none;
	position: fixed;
	bottom: 0;
	text-align: center;
	width: 100%;
	z-index: 99;
	.icon-phone { color: white; margin-left: 15px; vertical-align: middle; }
	@media (max-width: 480px) {
		box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.2);
		display: block;
		a {
			color: var(--color-white);
			display: block;
			font-size: 1.125rem;
			padding: 10px;
			text-decoration: none;
			.icon-phone { vertical-align: bottom; }
		}
	}
}

/******************************************** Section Styling ********************************************/

.image-slider {
	margin-bottom: var(--l-spacing);
	h2 { font-size: 2.25rem; }
	.blurb-back {
		display: flex;
		flex-direction: column;
		justify-content: center;
		height: 100%;
		padding: 0 var(--l-spacing);
		a { max-width: 300px; width: 100%; }
	}
}

.wp-block-columns.three-column-background {
	@media (max-width: 1020px) {
		flex-direction: column;
		.wp-block-column:not(:last-of-type) { margin: 0 0 var(--l-spacing); }
		.wp-block-buttons { margin: 0 auto; max-width: 300px; width: 100%; }
	}
}

.three-column-background .wp-block-column {
	border: 1px solid black;
	border-radius: 5px;
	box-shadow: 0 5px 14px rgba(0, 0, 0, 0.6);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: var(--s-spacing) var(--m-spacing);
	text-align: center;
	@media (max-width: 1020px) { margin-left: 0; }
	@media (max-width: 480px) { padding: var(--s-spacing); }
	.wp-block-button, .wp-block-button a { display: block; }
	p { padding: 0; }
}

article .image-slider {
	@media (max-width: 480px) { display: block; }
}

.heading-column {
	display: flex;
	align-items: center;
}

/******************************************** Footer Styling ********************************************/

.document-footer {
	position: relative;
	clear: both;
	padding: var(--l-spacing) 0 var(--m-spacing);
	background-color: var(--color-footer-bg);
	@media (max-width: 1300px) { padding: var(--m-spacing) var(--l-spacing); }
	@media (max-width: 992px) { padding: var(--m-spacing) var(--s-spacing); }
	@media (max-width: 480px) { padding: var(--m-spacing) calc(var(--s-spacing) / 2) 80px; }

	a, p, li, h2, table { color: var(--color-footer-text); }
	a:hover { text-decoration: underline; opacity: 0.7; }

	.social-menu li a[href*="facebook.com"]::before,
	.social-menu li a[href*="instagram.com"]::before,
	.social-menu li a[href*="pinterest.com"]::before { color: var(--color-footer-text); }
}

.footer-widgets {
	display: grid;
	grid-template-columns: repeat(3, 32%);
	grid-gap: 2%;
	list-style: none;
	padding: 0;
	margin: 0 0 var(--l-spacing);
	> li { margin-bottom: 0; }
	@media (max-width: 992px) {
		grid-template-columns: repeat(2, 48%);
		grid-row-gap: var(--l-spacing);
		> li:first-child { grid-row: 2/3; grid-column: 1/3; text-align: center; }
	}
	@media (max-width: 768px) {
		max-width: 350px;
		margin: 0 auto var(--l-spacing);
		grid-template-columns: 100%;
		grid-column-gap: 0;
		> li:first-child { grid-row: 3/4; grid-column: 1/2; }
	}
	@media (max-width: 540px) {
		grid-template-columns: repeat(1, 100%);
		> li, > li:first-of-type { width: 100%; }
	}
}

.widget-area {
	.widgets:not(:last-child) { margin-bottom: var(--s-spacing); }
	.widgets ul { padding: 0; list-style-type: none; }
	.widgets .menu ul { list-style-type: square; padding-left: 40px; }
	.widgets li { margin-bottom: 0; }
	.widgets ul.wp-block-social-links { @media (max-width: 992px) { justify-content: center; } }
}

.textwidget *:last-child { margin-bottom: 0; }

.widgets {
	select[name=archive-dropdown],
	select[name=cat] { max-width: 240px; width: 100%; height: 35px; font-size: 0.8em; background: var(--color-footer-bg); color: var(--color-footer-text); }
	.calendar_wrap { margin-right: var(--m-spacing); border: 1px solid var(--color-footer-text); padding: 10px; table { width: 100%; } }
	.wp-calendar-nav span { color: var(--color-footer-text); }
	.searchform {
		display: grid;
		grid-template-columns: calc(100% - 35px) 35px;
		input[type=text] { height: 35px; font-size: 0.8rem; padding: 0 15px; }
		button[type=submit] {
			background-color: var(--color-primary);
			border: 1px solid var(--color-white);
			color: var(--color-white);
			height: 35px;
			padding: 0 12px;
			cursor: pointer;
			display: inline-flex;
			align-items: center;
			&:hover { background-color: var(--color-dark-text); }
		}
	}
}

.widget-area .wp-block-social-links {
	.wp-social-link {
		background: none;
		&:not(:last-child) { margin-right: 20px; }
	}
	a, a:hover { background: var(--color-light-text); opacity: 1; padding: 0; }
	svg { height: 32px; width: 32px; filter: grayscale(100%); }
	a:hover svg { opacity: 0.7; }
	a[aria-label=LinkedIn] svg { height: 34px; width: 34px; }
	a[aria-label=YouTube] svg { height: 36px; width: 36px; }
}


/******************************************** Footer Bottom ********************************************/

.footer-bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 auto;
	padding-top: 10px;
	border-top: 1px solid var(--color-footer-text);

	a { color: var(--color-footer-text); text-decoration: none; font-size: 0.8rem; line-height: 1rem; }

	.copyright {
		display: flex;
		@media (max-width: var(--wide-width)) { justify-content: center; flex-basis: 100%; margin-bottom: var(--m-spacing); }
		@media (max-width: 768px) { flex-direction: column; align-items: center; a { margin-top: calc(var(--s-spacing) / 2); order: 1; } }
	}

	.legal-menu-items {
		margin: 0;
		padding: 0;
		list-style-type: none;
		display: flex;
		.menu-item { margin-bottom: 0; line-height: 1; }
		@media (max-width: 365px) { flex-direction: column; align-items: center; .menu-item { margin-bottom: calc(var(--s-spacing) / 2); } }
	}

	.pipe {
		color: var(--color-footer-text);
		padding: 0 8px;
		vertical-align: text-top;
		display: inline-block;
	}

	li:first-child .pipe { @media (max-width: 768px) { display: none; } }
	li .pipe { @media (max-width: 365px) { display: none; } }

	@media (max-width: var(--wide-width)) { flex-wrap: wrap; }
	@media (max-width: 768px) { flex-direction: column; }
}

.crack-ajax-plug {
	padding-left: 8px;
	@media (max-width: var(--wide-width)) { justify-content: center; flex-basis: 100%; padding-left: 0; text-align: center; }
}

/******************************************** Blog Styling ********************************************/
.blog:not(.search) {
	> .row {
		padding: var(--l-spacing) var(--xl-spacing) var(--xl-spacing);
		@media (max-width: 996px) { padding: var(--l-spacing); }
		@media (max-width: 480px) { padding: var(--l-spacing) 15px; }
	}

	.row {
		.page-title { text-align: center; }

		.article-container {
			display: grid;
			grid-template-columns: repeat(3, 31%);
			grid-column-gap: 3.5%;
			grid-row-gap: var(--l-spacing);
			margin-bottom: var(--l-spacing);
			@media (max-width: 1200px) { grid-template-columns: repeat(2, calc(50% - calc(var(--s-spacing) / 2))); grid-column-gap: var(--s-spacing); }
			@media (max-width: 768px) { grid-template-columns: repeat(1, 100%); width: 100%; }
		}

		article {
			background: var(--color-primary);
			border-radius: 10px;
			padding: 0;
			position: relative;
			height: 100%;
			transition: all .1s ease-in;

			&:hover {
				box-shadow: 5px 5px 8px 0px rgba(0,0,0,0.4);
				transform: scale(1.05, 1.05);
				@media (max-width: 768px) { box-shadow: 0 var(--s-spacing) var(--l-spacing) 10px rgba(0,0,0,0.4); transform: none; }
			}

			&:not(.has-post-thumbnail) {
				display: flex;
				flex-direction: column;
				justify-content: center;
				padding: 0;
				h1 { padding: 0; text-align: center; }
				.post-info { margin-left: 0 !important; }
				.post-info p { margin-top: 0; }
			}

			@media (max-width: 768px) { width: 100%; }

			h1 {
				line-height: 1;
				width: 100%;
				cursor: pointer;
				text-align: center;
				a {
					border-radius: 10px;
					color: var(--color-white);
					font-size: 1.625rem;
					padding: 0;
					text-align: center;
					text-decoration: none;
				}
			}

			.post-header {
				display: flex;
				flex-wrap: wrap;
				@media (max-width: 768px) { .post-info { margin-left: 0; width: 100%; } }
			}

			.post-thumbnail {
				height: 200px;
				overflow: hidden;
				img { width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: 10px 10px 0 0; }
				@media (max-width: 1200px) { height: 275px; }
				@media (max-width: 996px) { height: 225px; }
				@media (max-width: 480px) { height: 200px; }
			}

			.post-content {
				max-width: var(--restricted-width);
				padding: 25px 25px 75px;
				p { color: var(--color-white); }
				.read-more {
					border: 2px solid var(--color-white);
					color: var(--color-white);
					font-weight: 700;
					padding: 10px;
					position: absolute;
					bottom: 25px;
					left: 25px;
					text-align: center;
					text-decoration: none;
					width: calc(100% - var(--l-spacing));
					&:hover { background: var(--color-dark-text); }
				}
			}
		}
	}
}

.blog .pagination {
	margin: var(--l-spacing) auto;
	display: inline-block;
	text-align: center;
	width: 100%;
	a {
		background-color: var(--color-primary);
		color: var(--color-white);
		font-size: 1.375rem;
		padding: 10px;
		&:hover { background-color: var(--color-dark-text); }
	}
	span {
		border: 2px solid var(--color-primary);
		font-size: 1.375rem;
		padding: 8px;
	}
}

@media (min-width: 769px) and (max-width: 1200px) {
	.improvise .blog:not(.search).has-sidebar .row .article-container {
		grid-template-columns: repeat(1, 100%);
		grid-column-gap: 0;
	}
}

/******************************************** Blog Single Styling ********************************************/
.single-post {
	.row { max-width: 996px; }

	article { padding-bottom: var(--l-spacing); }

	.hero-image-container {
		align-items: center;
		background-position: center center;
		background-repeat: no-repeat;
		background-size: cover;
		min-height: 70vh;
	}

	.post-header.has-featured-image .header-wrapper h1 {
		padding: 0 var(--xl-spacing);
		@media (max-width: 996px) { padding: 0 var(--l-spacing); }
		@media (max-width: 480px) { padding: 0 15px; }
	}

	.has-featured-image {
		h1 { color: var(--color-white); position: relative; z-index: 4; }
		.post-info p, .post-info a { color: var(--color-dark-text); }
	}

	.post-header:not(.has-featured-image) {
		margin: 0 auto;
		h1 { margin: var(--l-spacing) auto var(--m-spacing); }
	}

	h1 { margin: 0; }

	.wp-block-cover h2 { font-size: 2.25rem; }

	.posts {
		.post-footer {
			margin-top: var(--xl-spacing);
			@media (max-width: 480px) { margin-top: var(--l-spacing); }
		}
		.comments-section { max-width: var(--wide-width); margin: var(--m-spacing) auto 0; }
	}

	.post-footer .wrapper {
		display: flex;
		a {
			cursor: pointer;
			font-family: var(--font-primary-heading);
			font-size: 1.375rem;
			font-weight: 700;
			margin: 0 10px;
			text-decoration: none;
		}
		.navigation {
			display: flex;
			justify-content: space-between;
			text-decoration: underline;
			width: 100%;
			.next-post { text-align: right; }
			a:hover { text-decoration: underline; }
			@media (max-width: 480px) { flex-direction: column; }
		}
		@media (max-width: 480px) {
			.alignleft { margin-bottom: var(--m-spacing); }
			.alignright { text-align: right; }
		}
	}
}

/**************************************** Blog Sidebar Layout *****************************************/

main.has-sidebar .row {
	display: flex;
	gap: var(--l-spacing);
	align-items: flex-start;
}

.single-post main.has-sidebar .row { max-width: var(--wide-width); }

main.has-sidebar .row > article,
main.has-sidebar .row > .post-content {
	flex: 1 1 0;
	min-width: 0;
}

.blog-sidebar {
	flex: 0 0 280px;
	width: 280px;
}

.blog-sidebar .widget-title {
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding-bottom: var(--s-spacing);
	border-bottom: 2px solid var(--color-primary);
	margin-bottom: var(--s-spacing);
}

.blog-sidebar #search-2 { margin-bottom: var(--m-spacing); }

main.blog.has-sidebar .row .page-title {
	text-align: left;
}

.blog:not(.search) .row .page-title { padding-top: 0; }

main.blog.has-sidebar .row .article-container {
	grid-template-columns: repeat(2, calc(50% - calc(var(--s-spacing) / 2)));
	grid-column-gap: var(--s-spacing);
}

@media (max-width: 996px) {
	main.has-sidebar .row {
		gap: var(--m-spacing);
	}
}

@media (max-width: 768px) {
	main.has-sidebar .row {
		flex-direction: column;
		gap: var(--s-spacing);
	}
	.blog-sidebar {
		width: 100%;
		flex-basis: auto;
	}
}

@media (max-width: 650px) {
	main.blog.has-sidebar .row .article-container {
		grid-template-columns: repeat(1, 100%);
		width: 100%;
	}
}

/********************************************* Search Page Styling *************************************************/
.search {
	> .row {
		padding: 0 var(--xl-spacing) var(--xl-spacing);
		@media (max-width: 996px) { padding: 0 var(--l-spacing) var(--l-spacing); }
		@media (max-width: 480px) { padding: 0 var(--l-spacing) 15px; }
	}
	article { padding: 0; }
	.row article a { font-family: var(--font-primary-heading); }
}

/***************************************** Gravity Forms Default Styling ******************************************/

:focus {
	outline-color: var(--color-accent);
}

.improvise .gform_wrapper {
	overflow-x: hidden;

	ul.gform_fields {
		li:first-child { margin-top: 0; }
		li.gfield {
			padding-right: 0;
			&.left-half { padding-right: 8px; }
			&.right-half { padding-left: 8px; }
			.gfield_label {
				color: var(--color-dark-text);
				font-size: 1.25rem;
				font-family: var(--font-primary-heading);
			}
			span label {
				color: var(--color-dark-text);
				font-size: 0.75rem;
				font-family: var(--font-primary-heading);
			}
		}
		.flex-row .gfield_radio li,
		.flex-column .gfield_radio li { flex-grow: 1; margin-left: 0 !important; }
	}

	input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]),
	textarea {
		color: var(--color-dark-text);
		background-color: transparent;
		font-size: 1rem;
		padding: 16px;
		margin: 0;
		border: 2px solid var(--color-primary);
	}

	input:focus:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]),
	textarea:focus,
	input[type=submit]:focus { outline-color: var(--color-accent); }

	input {
		color: var(--color-dark-text);
		font-family: var(--font-primary) !important;
		width: 100% !important;
	}

	select {
		appearance: none;
		background-color: transparent;
		border: 2px solid var(--color-primary);
		border-radius: 0 !important;
		color: var(--color-dark-text);
		font-family: var(--font-primary) !important;
		font-size: 1rem;
		margin: 0 !important;
		position: relative;
		padding: 14px 16px !important;
		width: 100% !important;
		z-index: 9;
	}

	.ginput_container_select {
		position: relative;
		&:after {
			background-image: url('images/down-arrow-black.png');
			background-repeat: no-repeat;
			background-size: contain;
			content: "";
			display: inline-block;
			height: 18px;
			position: absolute;
			right: 16px;
			top: 16px;
			width: 18px;
		}
		::placeholder { font-family: var(--font-primary) !important; }
	}

	textarea { height: 150px; }
	input[type=submit] { font-size: 1.25rem !important; width: 100% !important; max-width: 300px; }

	div.ginput_complex {
		display: flex;
		justify-content: space-between;
		width: 100% !important;
		span { width: 49% !important; padding: 0 !important; margin: 0; }
		&.ginput_container_address {
			flex-wrap: wrap;
			gap: 2%;
		}
		@media (max-width: 480px) {
			flex-direction: column;
			span { width: 100% !important; padding: 0 !important; }
		}
	}

	.full-width div.ginput_complex.ginput_container_address {
		.address_line_1, .address_line_2 { flex-basis: 49%; margin-bottom: 16px; }
	}
	.left-half div.ginput_complex.ginput_container_address,
	.right-half div.ginput_complex.ginput_container_address {
		.address_line_1, .address_line_2 { flex-basis: 100%; margin-bottom: 16px; }
	}
	.left-half div.ginput_complex.ginput_container_address,
	.right-half div.ginput_complex.ginput_container_address,
	.full-width div.ginput_complex.ginput_container_address {
		.address_city, .address_state, .address_zip { flex-basis: 32%; padding: 0 !important; margin: 0 !important; }
	}

	.address_country { margin-top: 0; }

	.flex-row ul.gfield_radio, .flex-column ul.gfield_radio {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 2%;
		max-width: 100%;
	}
	.left-half.flex-row, .left-half.flex-column { float: left; }
	.right-half.flex-row, .right-half.flex-column { float: right; }
	.flex-row ul.gfield_radio { flex-direction: row; }
	.flex-column ul.gfield_radio { flex-direction: column; }
	ul.gfield_radio li { display: inline-block; }
	.gfield_radio li label { font-size: 1rem; }
	.gfield_checkbox li input[type=checkbox] { vertical-align: unset; margin-top: 2px; }

	.gform_footer {
		.gform_button {
			background: white;
			border: 2px solid var(--color-dark-text);
			color: var(--color-dark-text);
			cursor: pointer;
			font-family: var(--font-primary-heading);
			&:hover { background: var(--color-dark-text); border-color: var(--color-dark-text); color: white; }
		}
		@media (max-width: 480px) { input[type=submit] { margin-bottom: 0; } }
	}

	div.ginput_complex.ginput_container_creditcard {
		span.ginput_full { width: 100% !important; }
	}

	@media only screen and (max-width: 641px) {
		input:not([type=radio]):not([type=checkbox]):not([type=image]):not([type=file]) { line-height: 1; min-height: auto; }
		.ginput_container span:not(.ginput_price) { margin-bottom: 24px; }
		.ginput_container span.name_last { margin-bottom: 0; }
		ul.gform_fields li.gfield.left-half,
		ul.gform_fields li.gfield.right-half { width: 100%; padding-left: 0; padding-right: 0; }
	}
}

.left-half, .right-half { display: inline-block; width: 50%; }
.full-width { display: inline-block; width: 100%; }
.left-half.block, .right-half.block { display: block; }

.improvise div.ginput_complex.ginput_container.gf_name_has_2 span,
.improvise .top_label div.ginput_complex.ginput_container.gf_name_has_1,
.improvise .top_label div.ginput_complex.ginput_container.gf_name_has_2,
.improvise .top_label div.ginput_complex.ginput_container.gf_name_has_3 {
	@media only screen and (max-width: 641px) { width: 100%; padding-left: 0; padding-right: 0; }
}

.gform_wrapper ul.gfield_checkbox li label { font-size: 1rem; }
.gform_wrapper ul.gform_fields .gfield_radio li:not(:first-child) { margin-left: var(--m-spacing) !important; }
.gform_wrapper ul.gform_fields li.gfield input[type=radio] { margin-top: 1px; }

.improvise .gform_confirmation_message { margin-top: var(--m-spacing); }
.improvise .gform_card_icon_container { width: 100%; }

.improvise .ginput_container_creditcard {
	flex-wrap: wrap;
	.ginput_cardextras {
		flex-basis: 100%;
		flex-grow: 1;
		display: flex !important;
		gap: 2%;
		span.ginput_cardinfo_left,
		span.ginput_cardinfo_right { display: flex; flex-basis: 33%; gap: 2%; }
		span.ginput_cardinfo_left { flex-basis: 65%; }
		span.ginput_cardinfo_left span.ginput_card_expiration_container,
		span.ginput_cardinfo_right {
			display: flex;
			flex-basis: 100%;
			justify-content: space-between;
			align-items: center;
			width: auto !important;
			margin: 8px 0;
		}
		span.ginput_cardinfo_left span.ginput_card_expiration_container .ginput_card_expiration {
			flex-basis: 48%;
			font-size: 1rem;
			padding: 14px 15px !important;
		}
	}
	select { margin-bottom: 0; }
}

::placeholder { color: #999; }

/****************************************** Social Media Genericon Styling ******************************************/

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
}

.social-menu {
	margin: 0 auto;
	width: 65%;
	ul { list-style: none; padding: 0; margin: 0; text-align: center; li { display: inline-block; position: relative; } }
	li a::before { content: '\f408'; display: inline-block; padding: 0 5px; font-family: 'Genericons'; font-size: 2em; vertical-align: top; -webkit-font-smoothing: antialiased; }
	li a[href*="wordpress.org"]::before, li a[href*="wordpress.com"]::before { content: '\f205'; color: #21759b; }
	li a[href*="facebook.com"]::before { content: '\f203'; color: #3b5998; }
	li a[href*="twitter.com"]::before { content: '\f202'; color: #33ccff; }
	li a[href*="pinterest.com"]::before { content: '\f210'; color: #c8232c; }
	li a[href*="github.com"]::before { content: '\f200'; color: #171515; }
	li a[href*="tumblr.com"]::before { content: '\f214'; color: #34526f; }
	li a[href*="youtube.com"]::before { content: '\f213'; color: #c4302b; }
	li a[href*="vimeo.com"]::before { content: '\f212'; color: #1AB7EA; }
	li a[href*="instagram.com"]::before { content: '\f215'; color: #3f729b; }
	li a[href*="codepen.io"]::before { content: '\f216'; color: #000; }
	li a[href*="linkedin.com"]::before { content: '\f208'; color: #0e76a8; }
}

/**************************************** Gutenberg Block (Frontend) Styles *****************************************/

/************************************* WP Cover Block Restricted Width Class **************************************/
			
.wp-block-cover {
	margin-bottom: var(--l-spacing);
	padding: 0;
	.wp-block-cover__image-background { max-height: 100%; }
	:last-child { margin-bottom: 0 !important; }
}

.page-content>.wp-block-cover:first-child {
	margin-bottom: var(--xl-spacing);
	@media (max-width: 480px) { margin-bottom: var(--l-spacing); }
}

.alignfull > .wp-block-cover__inner-container {
	margin: 0 auto;
	max-width: var(--wide-width);
	padding: var(--l-spacing) var(--xl-spacing);
	width: 100%;
	@media (max-width: 1200px) { padding: var(--l-spacing); }
	@media (max-width: 480px) { padding: var(--l-spacing) var(--s-spacing); }
}

.is-style-cover-cta {
	.wp-block-cover__inner-container {
		max-width: var(--restricted-width) !important;
		h1 { margin-bottom: 1em; }
		p:last-of-type {
			margin-bottom: 4em;
			@media (max-width: 480px) { margin-bottom: 3em; }
		}
		.wp-block-buttons { margin-top: 0; }
	}
	&.a-left .wp-block-cover__inner-container { margin-left: 0; }
	&.a-left.cols-left .wp-block-cover__inner-container {
		max-width: 100% !important;
		.wp-block-columns .wp-block-column:first-child {
			max-width: var(--restricted-width) !important;
			padding-right: calc(var(--xl-spacing) * 2);
		}
		.wp-block-columns .wp-block-column:last-child img {
			filter: drop-shadow(10px 10px 35px #333);
			max-height: 23rem;
		}
	}
	&.a-right .wp-block-cover__inner-container { margin-right: 0; }
	&.a-right.cols-right .wp-block-cover__inner-container {
		max-width: 100% !important;
		.wp-block-columns .wp-block-column:first-child img {
			filter: drop-shadow(10px 10px 35px #333);
			max-height: 23rem;
		}
		.wp-block-columns .wp-block-column:last-child {
			max-width: var(--restricted-width) !important;
			padding-left: calc(var(--xl-spacing) * 2);
		}
	}
}

/**************************************** Gutenberg Media Text Block Styles *****************************************/

.wp-block-media-text {
	margin-top: var(--l-spacing);
	margin-bottom: var(--l-spacing);
	@media (max-width: 480px) { margin-top: var(--m-spacing); margin-bottom: var(--m-spacing); }

	.wp-block-media-text__content { padding: var(--l-spacing); }
	&.is-image-fill:not(.has-background) .wp-block-media-text__content { padding: 0 var(--l-spacing); }
	.wp-block-media-text__content :last-child { margin-bottom: 0; }
	&:not(.has-media-on-the-right) .wp-block-media-text__media { text-align: left; }
	.wp-block-media-text__media img { max-width: 100%; }
	.wp-block-buttons .wp-block-button { margin-bottom: 0; }
	&:not(.has-media-on-the-right) .wp-block-media-text__content .wp-block-button:last-child { margin-right: 0; }
	&.has-media-on-the-right .wp-block-media-text__content .wp-block-button:first-child { margin-left: 0; }

	@media (min-width: 769px) and (max-width: 992px) {
		&[style*=grid-template-columns] { grid-template-columns: 50% auto !important; }
		.wp-block-buttons .wp-block-button + .wp-block-button { margin-top: calc(var(--s-spacing) / 2); }
		.wp-block-buttons.alignright .wp-block-button { float: right; clear: right; margin-right: 0; }
		.wp-block-buttons.alignleft .wp-block-button { float: left; clear: left; margin-left: 0; }
		.wp-block-buttons.aligncenter .wp-block-button { margin-left: 0; margin-right: 0; }
	}

	.wp-block-buttons .wp-block-button + .wp-block-button {
		@media (max-width: 480px) { margin-top: calc(var(--s-spacing) / 2); }
	}

	&.is-stacked-on-mobile {
		@media (max-width: 768px) {
			grid-template-columns: 100% !important;
			justify-items: center;
			.wp-block-media-text__media { grid-column: 1/2; grid-row: 1/2; width: 100%; }
			&.is-image-fill figure.wp-block-media-text__media { min-height: 500px; width: 100%; }
			&.has-media-on-the-right .wp-block-media-text__media { grid-row: 1; }
			.wp-block-media-text__media img { max-height: 500px; }
			.wp-block-media-text__content { grid-column: 1/2; grid-row: 2/3; }
			&:not(.has-background) .wp-block-media-text__content { padding: var(--l-spacing) var(--l-spacing) 0; }
			&.no-margin-bottom:not(.has-background):not(.alignwide):not(.alignfull) .wp-block-media-text__content { padding: var(--m-spacing) 0 var(--m-spacing); }
			&.alignwide.no-margin-bottom:not(.has-background) .wp-block-media-text__content,
			&.alignfull.no-margin-bottom:not(.has-background) .wp-block-media-text__content { padding-bottom: var(--m-spacing); }
			&.has-media-on-the-right .wp-block-media-text__content { grid-row: 2; }
			.wp-block-buttons .wp-block-button { margin-left: 0; }
			.wp-block-buttons .wp-block-button:last-child { margin-right: 0; }
		}
		@media (max-width: 480px) {
			.wp-block-media-text__content { padding: var(--l-spacing) var(--s-spacing); }
			&:not(.has-background) .wp-block-media-text__content { padding: var(--m-spacing) calc(var(--m-spacing) / 2) 0; }
			&.no-margin-bottom:not(.has-background):not(.alignwide):not(.alignfull) .wp-block-media-text__content { padding: var(--m-spacing) 0 calc(var(--m-spacing) / 2); }
			&.alignwide.no-margin-bottom:not(.has-background) .wp-block-media-text__content,
			&.alignfull.no-margin-bottom:not(.has-background) .wp-block-media-text__content { padding-bottom: var(--s-spacing); }
			.wp-block-buttons.alignright .wp-block-button { float: right; clear: right; margin-right: 0; }
			.wp-block-buttons.alignleft .wp-block-button { float: left; clear: left; margin-left: 0; }
			.wp-block-buttons.aligncenter .wp-block-button { margin-left: 0; margin-right: 0; }
		}
		@media (max-width: 375px) {
			.wp-block-buttons,
			.wp-block-buttons .wp-block-button { width: 100%; }
			.wp-block-buttons .wp-block-button .wp-block-button__link { display: block; }
		}
	}
}

/************************************* WP Block Media Text CTA Class **************************************/

.media-text-cta .wp-block-media-text__content {
	max-width: var(--restricted-width);
	box-sizing: content-box;
	h1, h2, h3, h4, h5, h6 { margin-bottom: 1em; }
	p:last-of-type {
		margin-bottom: 4em;
		@media (max-width: 480px) { margin-bottom: 2em; }
	}
	ul { padding-left: 20px; }
	p + .wp-block-buttons { margin-top: 0; }
}

.wp-block-media-text:not(.media-text-cta) .wp-block-media-text__content .wp-block-buttons {
	@media (max-width: 480px) { margin-top: var(--s-spacing); }
}

/************************************* WP Block Media Text Padded Class **************************************/

.media-padded.wp-block-media-text {
	&.has-media-on-the-right .wp-block-media-text__media,
	&:not(.has-media-on-the-right) .wp-block-media-text__media {
		padding-top: var(--l-spacing);
		padding-bottom: var(--l-spacing);
		@media (max-width: 768px) { padding-bottom: 0; padding-left: var(--l-spacing); padding-right: var(--l-spacing); }
		@media (max-width: 480px) { padding-top: var(--m-spacing); padding-left: var(--m-spacing); padding-right: var(--m-spacing); }
	}
	&.has-media-on-the-right .wp-block-media-text__media { padding-right: var(--l-spacing); }
	&:not(.has-media-on-the-right) .wp-block-media-text__media { padding-left: var(--l-spacing); overflow: hidden; }
	&.is-vertically-aligned-top .wp-block-media-text__content { padding-top: var(--l-spacing); }
	&.is-vertically-aligned-bottom .wp-block-media-text__content { padding-bottom: var(--l-spacing); }
}

/********************************* WP Block Media Text Content Flush Class ***********************************/

.content-flush.wp-block-media-text {
	@media (min-width: 1250px) {
		&:not(.has-media-on-the-right):not(.has-background):not(.alignfull) .wp-block-media-text__content { padding-right: 0; }
		&.has-media-on-the-right:not(.has-background):not(.alignfull) .wp-block-media-text__content { padding-left: 0; }
	}
}

/******************************************* WP Group Block Styling *******************************************/

.wp-block-group {
	margin-top: var(--l-spacing);
	margin-bottom: var(--l-spacing);

	&.alignfull > .wp-block-group__inner-container { margin: 0 auto; max-width: var(--wide-width); }

	&.has-background > .wp-block-group__inner-container,
	&.alignwide.has-background > .wp-block-group__inner-container,
	&.alignfull.has-background > .wp-block-group__inner-container {
		box-sizing: border-box;
		width: 100%;
		@media (max-width: 480px) { max-width: 100%; padding: var(--l-spacing) var(--s-spacing); }
	}

	&.has-background > .wp-block-group__inner-container { padding: var(--l-spacing); }

	&.alignwide.has-background > .wp-block-group__inner-container,
	&.alignfull.has-background > .wp-block-group__inner-container {
		padding: var(--l-spacing) var(--xl-spacing);
		@media (max-width: 1200px) { padding: var(--l-spacing); }
	}

	&.alignfull.has-background > .wp-block-group__inner-container {
		box-sizing: content-box;
		@media (max-width: 1200px) { box-sizing: border-box; }
		.alignwide { margin-left: 0; }
	}

	> .wp-block-group__inner-container :last-child { margin-bottom: 0 !important; }
	> .wp-block-group__inner-container .wp-block-media-text { margin-top: 0; margin-bottom: 0; }

	.wp-block-columns {
		.wp-block-column .wp-block-buttons:first-child { margin-top: 0; }
		@media (max-width: 781px) and (min-width: 600px) {
			&.has-background { padding-bottom: 0; }
			.wp-block-column,
			.wp-block-column:last-child { margin-bottom: var(--l-spacing) !important; }
		}
	}

	&.has-background .wp-block-columns .wp-block-column {
		@media (min-width: 600px) { margin-bottom: 0; }
	}

	&.is-style-column-last > .wp-block-group__inner-container {
		padding-bottom: calc(var(--l-spacing) - var(--m-spacing)) !important;
		.wp-block-columns:last-child .wp-block-column { margin-bottom: var(--m-spacing) !important; }
	}
}

/****************************************** WP Column Block Styling *******************************************/

.wp-block-columns {
	margin-bottom: 0;
	&.has-background {
		padding: var(--l-spacing) var(--xl-spacing);
		@media (max-width: 1200px) { padding: var(--l-spacing); }
		@media (max-width: 480px) { padding: var(--l-spacing) var(--s-spacing); }
		.wp-block-column { @media (min-width: 600px) { margin-bottom: 0 !important; } }
		.wp-block-column:last-child { margin-bottom: 0 !important; }
	}
	&.alignwide {
		@media (max-width: 1200px) { max-width: 100%; margin-left: 0; margin-right: 0; }
	}
	&.no-stack-mobile {
		flex-wrap: nowrap !important;
		@media (min-width: 600px) { .wp-block-column:not(:first-child) { margin-left: 2em; } }
		@media (max-width: 600px) { gap: 4%; }
	}
	&.equal-height .wp-block-column { flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
}

.wp-block-cover .wp-block-columns.alignwide {
	@media (max-width: 1200px) { width: 100%; margin-left: 0; }
}

.wp-block-column {
	margin-bottom: var(--m-spacing);
	:last-child { margin-bottom: 0 !important; }
	.wp-block-image, .is-type-video { margin: 0 0 1em; text-align: center; }
	&.has-background { padding: var(--s-spacing); }
	&.has-text-color p, &.has-text-color h2, &.has-text-color h3,
	&.has-text-color h4, &.has-text-color ul, &.has-text-color li { color: inherit; }
}

.block-core-columns.has-background { padding: var(--s-spacing); }

.wp-block-group.has-background .wp-block-columns .wp-block-column:last-child {
	@media (max-width: 781px) and (min-width: 600px) { margin-bottom: var(--l-spacing) !important; }
}

/*************************************** WP Is Type Video Block Styling ***************************************/

.is-type-video {
	.wp-block-embed__wrapper { position: relative; padding-bottom: 177.78%; iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } }
	&.wp-embed-aspect-16-9 .wp-block-embed__wrapper { padding-bottom: 56.25%; }
}

/******************************************* WP Table Block Styling *******************************************/

figure.wp-block-table {
	@media (max-width: 768px) {
		display: block!important;
		max-width: 100%;
		overflow: auto;
		table { min-width: var(--restricted-width); }
	}
}

/**************************************** WP List Block Column Styling ****************************************/

ul.is-style-two-columns {
	column-count: 2;
	column-gap: 4%;
	li:first-child { margin-top: 0; }
	@media (max-width: 992px) { column-count: 1; }
	@media (max-width: 480px) { column-count: 1; }
}

ul.is-style-three-columns {
	column-count: 3;
	column-gap: 4%;
	li:first-child { margin-top: 0; }
	@media (max-width: 768px) { column-count: 2; }
	@media (max-width: 480px) { column-count: 1; }
}

ul.is-style-four-columns {
	column-count: 4;
	column-gap: 4%;
	li:first-child { margin-top: 0; }
	@media (max-width: 992px) { column-count: 2; }
	@media (max-width: 480px) { column-count: 1; }
}

/***************************************** Search Widget Block Styles *****************************************/

.wp-block-search {
	margin: var(--l-spacing) 0;
	max-width: 400px;
	.wp-block-search__input { color: var(--color-dark-text); background-color: transparent; font-size: 1rem; padding: 12px; margin: 0; border: 2px solid var(--color-primary); }
	.wp-block-search__button {
		margin-left: -2px;
		color: var(--color-white);
		border-color: var(--color-primary);
		border-width: 2px;
		background-color: var(--color-primary);
		svg { fill: var(--color-white); transform: scale(1.8) rotateY(180deg); }
		&:hover { color: var(--color-white); background-color: var(--color-accent); border-color: var(--color-accent); svg { fill: var(--color-white); } }
	}
}

/************************************** Gutenberg Block (Backend) Styles **************************************/
.block-editor-block-list__layout .wp-block-cover.restrict-content .wp-block-cover__inner-container {
	background:rgba(255,255,255, 0.7)!important;
}

/****************************************** New Gravity Form Styling ******************************************/
.improvise .gform_wrapper {
	input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]),
	textarea { padding: 8px 16px !important; }

	fieldset.gfield div.ginput_complex {
		span.name_first,
		span.address_line_1,
		span.address_city,
		span.address_state { padding-right: 1% !important; }

		span.name_last,
		span.address_line_2,
		span.address_zip { padding-left: 1% !important; }

		span.address_line_1, span.address_line_2 { max-width: 50% !important; }
		span.address_city, span.address_state, span.address_zip { max-width: 33.33%; }

		.gfield_radio input,
		.gfield_checkbox input { width: 16px !important; height: 16px; }
	}

	fieldset.gfield select,
	select { padding: 8px 16px !important; font-size: 1rem; border-radius: 5px !important; }

	fieldset.gfield .ginput_address_state {
		position: relative;
		&:after { height: 13px; background-image: url(https://speechprotectionunion.com/wp-content/themes/improvise/images/down-arrow-black.png); background-repeat: no-repeat; background-size: contain; content: ""; display: inline-block; position: absolute; right: 16px; top: 16px; width: 18px; }
	}

	div.ginput_complex.ginput_container_address { gap: 0; }

	.ginput_container_select:after { height: 13px; }

	input[type=submit],
	input[type=button] { color: white; max-width: 300px; font-size: 1rem !important; text-transform: uppercase; font-weight: bold; border-radius: 5px; font-family: var(--font-primary-heading) !important; padding: 8px 16px; }

	div.ginput_complex.ginput_container_password {
		span { width: 100% !important; }
		span.ginput_left { padding-right: 8px !important; }
		span.ginput_right { padding-left: 8px !important; }
	}

	&.gravity-theme {
		.ginput_container_address { margin-left: 0; margin-right: 0; }
		.gfield { padding: 0 2px; }
		.gfield_label { margin-bottom: 0; }
	}
}

.gform_wrapper.gravity-theme {
	.gfield_checkbox input { width: 16px !important; height: 16px; }
	.gform_page_footer { display: flex; justify-content: space-evenly; padding-top: 30px; margin-top: 30px; border-top: 2px solid var(--color-light-text); }
	.gform_previous_button.button {
		color: white; max-width: 300px; font-size: 1rem !important; text-transform: uppercase; font-weight: bold; border-radius: 5px; font-family: var(--font-primary-heading) !important; padding: 8px 16px;
		background-color: var(--color-primary);
		&:hover { background-color: var(--color-accent); }
	}
}

.improvise .gfield_password_strength {
	padding: 0; border: 0; font-weight: bold;
	&.bad { background-color: red; color: white; }
	&.short { background-color: #e3e3e3; }
	&.good { background-color: yellow !important; }
	&.strong { background-color: green !important; color: white; }
}

h3.gsection_title { margin-bottom: 0; margin-top: var(--m-spacing); }