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

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

html {
	font-family: 'Montserrat', 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;
}

.round {
	border-radius: 50%;
}

[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-weight: 700;
/*	letter-spacing: ;
	color: ; */
	text-transform: uppercase;
}

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

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: #262626;
}

b,
strong {
	font-weight: 700;
}


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

/*	GLOBAL --- */

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

a:hover {
	text-decoration: underline;
	color: ;
}

a.link-button:active,
a.link-button:hover,
a.link-button:link,
a.link-button:visited {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	min-height: 45px;
	padding: 10px 30px;
	text-decoration: none;
    background-color: #e8b923;
	font-weight: normal;
	color: #262626;
}

a.link-button:hover {
    background-color: #262626;
    color: #e8b923;
}

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


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

/*	Background Default ------ */

.bg-default {
	background-color: #fff;
}

/*	Background Charcoal ------ */

.bg-charcoal {
	background-color: #262626;
	color: #fff;
}

.bg-charcoal * {
	color: #fff;
}

.bg-charcoal a:active,
.bg-charcoal a:hover,
.bg-charcoal a:link,
.bg-charcoal a:visited {
/*	color: ; */
	text-decoration: none;
}
/*
.bg-charcoal a:hover {
	color: ;
}
*/

/*	Background Black ------ */

.bg-black {
	background-color: #1c1c1c;
	color: #fff;
}

.bg-black * {
	color: #fff;
}

.bg-black a:active,
.bg-black a:hover,
.bg-black a:link,
.bg-black a:visited {
/*	color: ; */
	text-decoration: none;
}
/*
.bg-black a:hover {
	color: ;
}
*/

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

.bg-wrap {
    background-position: 50% 50%;
}

.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 */
	background-size: cover;
	background-repeat: no-repeat;
}


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

/*	NAV ------ */

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

#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: #262626;
}

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

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


/*	BANNER ------ */

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

#banner .txt-wrap .title {
	font-weight: 700;
}

#banner .txt-wrap .subtitle {
	font-weight: 400;
}

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

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

#banner.internal {
    height: auto;
    color: #fff;
}

#banner.internal h1 {
	text-shadow: 0 0 15px rgba(0,0,0,50%);
}


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

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

#footer-top {
	background-color: #262626;
	color: #fff;
}

#footer-top h3 {
	color: ;
}

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

#footer-top a:hover {
	color: #e8b923;
}

#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 {
	background-color: #1c1c1c;
	color: #fff;
}

#footer-bottom a {
	color: #fff;
	text-decoration: none;
}

#footer-bottom a:hover {
    color: #e8b923;
}

.indie {
	color: #999; /* override base.css */
}


/*  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: #262626;
    color: #e8b923;;
	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: #e8b923;
	color: #262626;
}


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

/*	customise Chrome form-field focus outline */
input:focus,
select:focus,
textarea:focus {
	outline: #262626 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,

#footer-top a *,

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;
}


/*	HOME ------ */

#home .flex-container .width-33 img {
	border-radius: 50%;
}

/*	Testimonials --- */

#cycle-testimonial {
	overflow: hidden;
}

#cycle-testimonial .testimonial-block {
	height: inherit; /* to ensure slides are equal height */
	vertical-align: top;
	padding: 0 15px;
	font-weight: 400;
}

.section-testimonial .testimonial-wrap {
	height: 100%;
	padding: 15px 30px;
}

.section-testimonial .testimonial-inner {
	white-space: normal;
}

.section-testimonial .testimonial-inner > * {
	z-index: 1;
}

.section-testimonial .testimonial-inner > p:last-child {
	margin-bottom: 15px;
}

.section-testimonial blockquote {
	margin: 15px 0;
	font-style: italic;
}

#cycle-testimonial .slick-track {
	display: flex !important; /* to ensure slides are equal height */
}

#cycle-testimonial .slick-slide {
	height: inherit !important; /* to ensure slides are equal height */
}

#cycle-testimonial .slick-slide > div {
	height: 100%; /* to ensure slides are equal height */
}

/*	Pager */

#cycle-testimonial .slick-dots li button:before {
    color: #fff;
}

#cycle-testimonial .slick-dots li.slick-active button:before {
    color: #e8b923;
}


/*	TESTIMONIALS ------ */

#testimonials blockquote {
	border-left: 2px solid #262626;
	padding-left: 30px;
}

#testimonials blockquote p {
	font-style: italic;
}

.testimonial-full:not(:last-child) {
	padding-bottom: 30px;
}

[data-aos="fade"] {
	opacity: 0;
	transition-property: opacity;
	transition-duration: 0.75s;
}

[data-aos="fade"].aos-animate {
	opacity: 1;
}


/*  CONTACT ------ */

/*	Google Calendar --- */

#google-calendar {
	overflow: hidden;
	height: 0;
	padding-bottom: 75%;
}

#google-calendar iframe {
	position: absolute;
	top: 0;
	left: -2px;
	width: calc(100% + 4px);
	height: calc(100% + 24px);
}

/*	Google Map --- */
/*
#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: #262626; /* dot color over page */
	}
	#banner .slick-dots.pos-abs li button:before {
		color: #fff; /* dot color over banner */
	}
	
	#banner .slick-dots li.slick-active button:before {
		color: #e8b923; /* active dot color over page */
	}
	#banner .slick-dots.pos-abs li.slick-active button:before {
		color: #e8b923; /* active dot color over banner */
	}

}


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

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

	#banner .txt-wrap .title,
	#banner .txt-wrap .subtitle {
		text-shadow: 0 0 15px rgba(0,0,0,50%);
	}

	/*	Carousel --- */

	.slick-arrow {
		padding: 0 30px;
	}

	/*	Pager */

	#banner .slick-dots li button:before {
		color: #fff; /* dot color over banner */
	}
	
	#banner .slick-dots li.slick-active button:before {
		color: #e8b923; /* 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;
	}

}