/*  ==========================================================================
	INDIE.WEB CUSTOM STYLES
	==========================================================================  */

/*  GENERAL ---------- */

html {
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	color: #222;
}

::-moz-selection {
	background: #b3d4fc;
}

::selection {
	background: #b3d4fc;
}

.flex-container > img {
	-ms-grid-row-align: center;
	align-self: center;
}

[class*='width-'].int-wrap {
	margin: 0 !important;
}

/*
.box-wrap {
	position: relative;
	height: 0;
	padding-bottom: 100%;
}

.shadow {
	box-shadow: 0 0 15px rgba(0,0,0,0.25);
}

.shadow:hover {
	box-shadow: 0 0 15px rgba(0,0,0,0.5);
}

.img-wrap {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	overflow: hidden;
}

.img-wrap img {
	position: relative;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: 50% 0;
	object-position: 50% 0;
}

/*	Faux Table --- */
/*
.faux-table {
	font-size: 0.875em;
}

.faux-row {
	width: 100%;

	/* borders on rows (only): */
/*	margin: -1px 0; /* collapse top/bottom borders */
/*	border: 1px solid #; */ /*
}

.faux-row div {
	min-height: 45px;

	/* borders on cells (only): */
/*	border: 1px solid #; */ /*
	padding: 12.5px 15px;
	background: #fff;
	line-height: 20px;
}

.faux-table .head {
	height: 45px;
	background: ;
	font-weight: ;
	color: ;
	text-transform: ;
}
*/

/*	Responsive Video --- */
/*
.responsive-video {
	position: relative;
	width: 100%;
	height: 0;
	padding-bottom: 56.25%;
}

.responsive-video iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: none;
}
*/

/*	TEXT STYLES ------ */

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 30px 0;
	font-family: 'Montserrat', sans-serif;;
	font-weight: 400;
/*	letter-spacing: ;
	color: ; */
}

span.h1,
span.h2,
span.h3,
span.h4,
span.h5,
span.h6 {
/*	font-weight: ;
	letter-spacing: ; 
	color: ; */
}

p {
	margin: 15px 0;
}

main ul,
main ol {
	margin: 15px 0;
}

main p:last-child,
main ul:last-child,
main ol:last-child {
	margin-bottom: 30px;
}

main li {
	margin: 7.5px 0;
}

blockquote {
	margin: 30px;
	border-left: 5px solid /*# */;
	padding-left: 30px;
}

span.light,
span.normal {
/*	font-weight: ; */
}

b,
strong,
span.semibold,
span.bold {
/*	font-weight: ; */
}

hr {
	margin: 15px 0;
/*	border-top-color: ; */
}


/*	LINK STYLES ------ */

/*	GLOBAL --- */

a:active,
a:hover,
a:link,
a:visited {
	font-weight: 400;
	text-decoration: none;
}

/*	Green --- */

.green a:active,
.green a:hover,
.green a:link,
.green a:visited {
	color: #00cc7a;
}

.green a:hover {
	color: #56ffbb;
}

.green a.link-button {
	background-image: linear-gradient(
		to right,
		#00cc7a 0%,
		#000805 100%
	);
}

.green a.link-button:before {
	background-image: linear-gradient(
		to left,
		#00cc7a 0%,
		#000805 100%
	);
}

/*	Blue --- */

.blue a:active,
.blue a:hover,
.blue a:link,
.blue a:visited {
	color: #0052cc;
}

.blue a:hover {
	color: #569aff;
}

.blue a.link-button {
	background-image: linear-gradient(
		to right,
		#0052cc 0%,
		#000308 100%
	);
}

.blue a.link-button:before {
	background-image: linear-gradient(
		to left,
		#0052cc 0%,
		#000308 100%
	);
}

/*	Purple --- */

.purple a:active,
.purple a:hover,
.purple a:link,
.purple a:visited {
	color: #7a00cc;
}

.purple a:hover {
	color: #bb56ff;
}

.purple a.link-button {
	background-image: linear-gradient(
		to right,
		#7a00cc 0%,
		#1c002f 100%
	);
}

.purple a.link-button:before {
	background-image: linear-gradient(
		to left,
		#7a00cc 0%,
		#1c002f 100%
	);
}

/*	Red --- */

.red a:active,
.red a:hover,
.red a:link,
.red a:visited {
	color: #cc0052;
}

.red a:hover {
	color: #ff569a;
}

.red a.link-button {
	background-image: linear-gradient(
		to right,
		#cc0052 0%,
		#2f0013 100%
	);
}

.red a.link-button:before {
	background-image: linear-gradient(
		to left,
		#cc0052 0%,
		#2f0013 100%
	);
}

/*	Tri-Color --- */

.tri-color a:active,
.tri-color a:hover,
.tri-color a:link,
.tri-color a:visited,
.tri-color a:after {
	background-image: linear-gradient(
		to right,
		#1bffa3 0%,
		#1b77ff 50%,
		#a41bff 100%
	);
    -webkit-background-clip: text;
	background-clip: text;

    background-position: 50% 50%;
    background-attachment: fixed;
	/*	-webkit-text-fill-color: rgba(255,255,255,1); Doesn't transition in Chrome */
	color: #222;
}

.tri-color a:hover,
.tri-color a:hover:after {
/*	-webkit-text-fill-color: rgba(255,255,255,0); Doesn't transition in Chrome */
	color: rgba(255,255,255,0);
}

.tri-color a.link-button:before {
	background-image: linear-gradient(
		to left,
		#1bffa3 0%,
		#1b77ff 50%,
		#a41bff 100%
	);
}

a.link-button:active,
a.link-button:hover,
a.link-button:link,
a.link-button:visited {
	position: relative;
	z-index: 1;
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	min-height: 45px;
	padding: 10px 30px;
	text-decoration: none;
	font-weight: 400;
	color: #fff;

    background-position: 50% 50%;
    background-attachment: fixed;
    -webkit-background-clip: unset;
	background-clip: unset;
}

a.link-button:before {
	content: '';
	position: absolute;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
    background-position: 50% 50%;
    background-attachment: fixed;
	opacity: 0;
}

a.link-button:hover:before {
	opacity: 1
}

a.link-button:before,
a.link-button:hover:before {
	transition: opacity 0.25s ease;
}

.toll-free-number {
	text-transform: uppercase;
}


/*	SECTIONS ---------- */

/*	Background x ------ */

/*
.bg-x {
	background-color: ;
	color: ;
}

.bg-x * {
	color: ;
}

.bg-x a:active,
.bg-x a:hover,
.bg-x a:link,
.bg-x a:visited {
	color: ;
	text-decoration: ;
}

.bg-x a:hover {
	color: ;
}
*/


/*	Background Image ------ */

/*
.bg-wrap {
	background-position: 50% 50%;
}
*/
/*	Parallax Scrolling --- */
/*
section:has(.parallax-window) {
	overflow: hidden;
}

.parallax-window:before {
	content: '';
	position: absolute;
	z-index: -200; /* ensure pseudo element does not overlay parallax image */ /*
	top: 0;
	bottom: 0;
	left: 0;
	right: 0; 
	overflow: hidden;
/*	background-color: ; in case image fails to load - this overrides parallax image on mobile - remove entirely? */ /*
	background-size: cover;
	background-repeat: no-repeat;
}
*/

/*	HEADER ---------- */

/*	NAV ------ */

/*
#nav-main-container,
#nav-collapse,
nav li ul {
	background: ;
}

#nav-main-container {
/*	box-shadow: 0 0 15px rgba(0,0,0,0.5);
}
*/

#nav-icon span,
#nav-icon span:before,
#nav-icon span:after {
	background: #222;
}

/*
nav a:link,
nav a:visited,
nav a:hover,
nav a:active,
#nav-main-container [id^=phone] {
	text-decoration: none;
	color: ;
	font-weight: ;
	text-transform: ;
	letter-spacing: ;
}

nav a:hover,
nav .selected>a,
#nav-main-container [id^=phone]:hover {
	color: ;
}
*/

/*	BANNER ------ */

/*
#banner:before {
	background: ; /* in case image fails to load */ /*
}

#banner .link-button {
	background-color: ;
	color: ;
}

#banner .link-button:hover {
	background-color: ;
	color: ;
}
*/


/*	FOOTER ---------- */

/*	FOOTER TOP ------ */
/*
#footer-top {
	background: ;
	color: ;
}

#footer-top h3 {
	color: ;
}

#footer-top a:active,
#footer-top a:hover,
#footer-top a:link,
#footer-top a:visited {
	color: ;
	text-decoration: none;
}

#footer-top a:hover {
	color: ;
}
*/
#footer-logo {
/*	max-width: ; */
	margin: 30px 0;
}

/* TO DO --- */
/* The below social styles should be simplified and the Template should simply use .social wrap as per the Standard Sections module --- */
#social,
.social-wrap {
	margin-left: -15px;
	margin-right: -15px;
}
#social a,
.social-wrap a {
	text-decoration: none;
	display: block;
}
#social a i,
.social-wrap a i {
	display: block;
	border-radius: 50%;
	padding: 15px;
}
/* --- */
ul.contact-info {
	list-style-type: none;
	padding: 0;
}

ul.contact-info li {
	margin: 30px 0;
}

ul.contact-info i {
	padding-right: 15px;
}

ul.contact-info a {
	text-decoration: none;
}

#footer-top .toll-free-number {
	font-size: 0.75em;
}


/*	FOOTER BOTTOM ------ */

/*
#footer-bottom a {
	text-decoration: none;
}
*/


/*  FORMS ---------- */

input[type=text],
input[type=number],
input[type=email],
input[type=password],
input[type=date],
input[type=file],
select,
textarea {
	background: #f5f5f5; /* default #f5f5f5 also found in form-submit.js */
}

/*
input[type=submit],
input[type=reset],
input[type=button],
button[type=button],
button[type=submit],
button[type=reset] {
	background: ;
	color: ;
	font-weight: ;
	text-transform: ;
	letter-spacing: ;
}

input[type=submit]:hover,
input[type=reset]:hover,
input[type=button]:hover,
button[type=button]:hover,
button[type=submit]:hover,
button[type=reset]:hover {
	background: ;
	color: ;
}
*/

/*  FORM BROWSER RESETS ------ */

/*	customise Chrome form-field focus outline */
input:focus,
select:focus,
textarea:focus {
	outline: #222 1px solid !important;
}
/* */


/*  PLACEHOLDERS ------ */

/*  Placeholders (Standard) --- */

::-webkit-input-placeholder {
	color: #b8b8b8;
	opacity: 1;
}
:-moz-placeholder {
	color: #b8b8b8;
	opacity: 1;
}
::-moz-placeholder {
	color: #b8b8b8;
	opacity: 1;
}
:-ms-input-placeholder {
	color: #b8b8b8;
}
:placeholder {
	color: #b8b8b8;
}

/*  Placeholders :focus --- */

:focus::-webkit-input-placeholder {
	color: #999;
}
:focus:-moz-placeholder {
	color: #999;
}
:focus::-moz-placeholder {
	color: #999;
}
:focus:-ms-input-placeholder {
	color: #999;
}
:placeholder {
	color: #999;
}


/*	FORM ERRORS ------ */

input.error,
.submitted input:required:invalid,
select.error,
.submitted select:required:invalid,
textarea.error,
.submitted textarea:required:invalid {
	background: #ffebeb;
}

select.error,
.submitted select.error {
	color: #ff3b3b;
}

/*  Placeholders (Error) --- */

.error::-webkit-input-placeholder,
.submitted .error::-webkit-input-placeholder {
	color: #ff7676;
	opacity: 1;
}
.error:-moz-placeholder,
.submitted .error:-moz-placeholder  {
	color: #ff7676;
	opacity: 1;
}
.error::-moz-placeholder,
.submitted .error::-moz-placeholder {
	color: #ff7676;
	opacity: 1;
}
.error:-ms-input-placeholder,
.submitted .error:-ms-input-placeholder {
	color: #ff7676;
}
.error:placeholder,
.submitted .error:placeholder {
	color: #ff7676;
}

/*  Placeholders (Error) :focus --- */

.error:focus::-webkit-input-placeholder,
.submitted .error:focus::-webkit-input-placeholder {
	color: #ff3b3b;
}
.error:focus:-moz-placeholder,
.submitted .error:focus:-moz-placeholder {
	color: #ff3b3b;
}
.error:focus::-moz-placeholder,
.submitted .error:focus::-moz-placeholder {
	color: #ff3b3b;
}
.error:focus:-ms-input-placeholder,
.submitted .error:focus:-ms-input-placeholder {
	color: #ff3b3b;
}
.error:placeholder,
.submitted .error:placeholder {
	color: #ff3b3b;
}


/*	CSS TRANSITIONS ---------- */

a:link,
a:visited,
a:hover,
a:active,

button,
button:hover,
input,
input:hover {
	transition: background-color 0.25s ease, color 0.25s ease;
}


/*  PAGES ---------- */

/*	LOCK SCREEN ------ */

#lock_screen .inner,
#lock_screen .inner > div {
	height: 100%;
}

#lock_screen .login-wrap {
	max-width: 300px;
}

#lock_screen img {
	max-width: 150px;
}

#lock_screen form {
	margin: 0 auto;
}

#lock_screen input[type='password'] {
	max-width: 300px;
}

#lock_screen input {
	margin-left: auto;
	margin-right: auto;
}


/*  CONTACT ------ */
/*
#google-map {
	position: relative;
	width: 100%;
	height: 0;
	padding-bottom: 25%;
}

#google-map iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
*/

/*  ==========================================================================
	INDIE.WEB CUSTOM MEDIA QUERIES
	==========================================================================  */

/*	Screen Sizes 240px and smaller ---------- */
@media only screen 
and (max-width : 240px) {

	/*	HEADER ---------- */

	/*	BANNER ------ */
/*
	#banner {
		background-color: #fff; /* match page background color for mobile */ /*
	}
*/
	/*	Carousel --- */
/*
	.slick-arrow {
		padding: 0 15px;
	}
*/
	/*	Pager */
	/*	Styles for both dot over page and dot over banner to account for <240px and =240px, respectively */
/*
	#banner .slick-dots li button:before {
		color: ; /* dot color over page */ /*
	}
	#banner .slick-dots.pos-abs li button:before {
		color: ; /* dot color over banner */ /*
	}
	
	#banner .slick-dots li.slick-active button:before {
		color: ; /* active dot color over page */ /*
	}
	#banner .slick-dots.pos-abs li.slick-active button:before {
		color: ; /* active dot color over banner */ /*
	}
*/
}


/*	Screen Sizes 240px and larger ---------- */
@media only screen 
and (min-width : 240px) {

	/*	HEADER ---------- */
	
	/*	BANNER ------ */

	/*	Carousel --- */
/*
	.slick-arrow {
		padding: 0 30px;
	}
*/
	/*	Pager */
/*
	#banner .slick-dots li button:before {
		color: ; /* dot color over banner */ /*
	}
	
	#banner .slick-dots li.slick-active button:before {
		color: ; /* active dot color over banner */ /*
	}
*/
}


/*	Screen Sizes 320px and smaller ---------- */
@media only screen 
and (max-width : 320px) {

	/*	PAGES ---------- */

	/*  CONTACT ------ */
/*
	#google-map {
		padding-bottom: 100%;
	}
*/
}


/* Screen Sizes	320px - 560px		--------- */
@media only screen 
and (min-width : 320px)
and (max-width : 560px) {

	/*	PAGES ---------- */

	/*  CONTACT ------ */
/*
	#google-map {
		padding-bottom: 50%;
	}
*/
}


/*	Screen Sizes 400px and smaller ---------- */
@media only screen 
and (max-width : 400px) {

	/*	MAIN ---------- */

	main ul.contact-info {
		text-align: center;
	}
	

	/*	FOOTER ---------- */

	#footer-top .inner > div:nth-child(2) {
		text-align: center;
	}

	#social {
		justify-content: center;
	}

	#footer-top .inner > div:last-child {
		text-align: center;
	}

	#footer-top ul.contact-info .flex-container {
		justify-content: center;
	}

	/*	Affects Contact page info also */
	ul.contact-info .flex-container {
		flex-direction: column;
	}

	ul.contact-info i {
		padding-right: 0;
	}

	.icon-wrap {
		margin: 7.5px 0;
	}

}


/* Screen sizes 400px and larger ---------- */
@media only screen 
and (min-width : 400px) {

	/*	FOOTER ---------- */

	/*	FOOTER TOP ------ */

	#footer-top .contact-info .icon-wrap i {
		vertical-align: middle;
	}

}


/*	Screen Sizes 400px - 640px ---------- */
@media only screen 
and (min-width : 400px)
and (max-width : 640px) {

	/*	FOOTER ---------- */

	#footer-top .inner > div:nth-child(2) {
		text-align: left;
	}

	#footer-top #social {
		justify-content: flex-start;
	}

	#footer-top .inner > div:last-child {
		text-align: left;
	}

	#footer-top ul.contact-info .flex-container {
		justify-content: flex-start;
	}

}


/*	Screen Sizes 560px and smaller ---------- */
@media only screen 
and (max-width : 560px) {

	/*	HEADER ---------- */
	
	/*	BANNER ------ */
/*	
	#banner,
	#banner:not(.internal) #banner-int-wrap,
	#banner .banner-slide {
		max-height: calc(100vh - 60px);
	}
*/
}


/*	Screen Sizes 560px - 800px ---------- */
@media only screen 
and (min-width : 560px)
and (max-width : 800px) {

	/*	HEADER ---------- */

	/*	Banner ------ */
/*	
	#banner,
	#banner:not(.internal) #banner-int-wrap,
	#banner .banner-slide {
		max-height: calc(100vh - 75px);
	}
*/

	/*	PAGES ---------- */

	/*  CONTACT ------ */
/*
	#google-map {
		padding-bottom: 33.3333%;
	}
*/
}


/*	Screen sizes 640px and smaller ---------- */
@media only screen 
and (max-width : 640px) {

}


/*	Screen Sizes 640px and larger ---------- */
@media only screen
and (min-width : 640px) {

	/*	FOOTER ---------- */

	#footer-top .inner > div:nth-child(2) {
		text-align: center;
	}

	#social {
		justify-content: center;
	}

	#footer-top .inner > div:last-child {
		text-align: right;
	}

	#footer-top ul.contact-info .flex-container {
		justify-content: flex-end;
	}
	
}


/*	Screen Sizes 800px and larger ---------- */
@media only screen
and (min-width : 800px) {

	/*	HEADER ---------- */

	/*	NAV ------ */

	/* sub-nav list */
/*	.sub-nav-box-shadow {
		box-shadow: 0 0 15px rgba(0,0,0,0.5);
		clip: rect(0px, 600px, 1200px, -15px); /* 600px and 1200px essentially set the maximum width and height (respectively) of the sub-nav element */ /*
		-webkit-clip-path: inset(0 -15px -15px -15px);
		clip-path: inset(0 -15px -15px -15px);
	}
*/

	/*	BANNER ------ */
/*
	#banner,
	#banner:not(.internal) #banner-int-wrap,
	#banner .banner-slide {
		max-height: calc(100vh - 90px);
	}
*/
}


/*	Screen Sizes 800px - 960px ---------- */
@media only screen 
and (min-width : 800px)
and (max-width : 960px) {

	/*	HEADER ---------- */

	/*	NAV ------ */

	/* provide more room for nav items */
/*	#phone-nav-ext {
		display: none;
	}
*/
}