/*  ==========================================================================
	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;
}

.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: contain;
    object-fit: contain;
    -o-object-position: 50% 50%;
    object-position: 50% 50%;
}


/*	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 #fff;
}

.faux-row div {
	min-height: 45px;
	/* borders on cells (only): */
/*	border: 1px solid #; */
	padding: 12.5px 15px;
	background: #eee;
	line-height: 20px;
}

.faux-table .head {
	height: 45px;
/*	background: ; Set in stylesheets.liquid snippet via Site Metafields */
	font-weight: 400;
	color: #fff;
	text-transform: uppercase;
}

/*	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: 300;
/*	letter-spacing: ;
	color: ; */
}

p {
	margin: 15px 0;
}

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

main ul,
main ol {
	margin: 15px 0;
	padding-left: 45px;
}

main li {
	margin: 7.5px 0;
}

b,
strong {
	font-weight: 600;
}

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


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

/*	GLOBAL --- */

a:active,
a:hover,
a:link,
a:visited {
	font-weight: 400;
/*	color: ; Set in stylesheets.liquid snippet via Site Metafields */
	text-decoration: none;
}

a:hover {
/*	color: ; Set in stylesheets.liquid snippet via Site Metafields */
}

a.link-button:active,
a.link-button:hover,
a.link-button:link,
a.link-button:visited {
    display: inline-block;
    padding: 0 30px;
    line-height: 45px;
    text-decoration: none;
	white-space: nowrap;
/*	background: ; Set in stylesheets.liquid snippet via Site Metafields */
	font-size: 0.9375em;
	font-weight: 400;
	color: #fff;
	text-transform: uppercase;
}

a.link-button:hover {
/*	background: ; Set in stylesheets.liquid snippet via Site Metafields */
	color: #fff;
}

.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-window:before {
	content: '';
	position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
	overflow: hidden;
	background-color: ;
	background-size: cover;
	background-repeat: no-repeat;
}
*/

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

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

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

#nav-main-container {
	z-index: 3000; /* compete with Slick Carousel items */
/*	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] {
/*	color: ; Set in stylesheets.liquid snippet via Site Metafields */
	font-size: 0.875rem;
/*	font-weight: ; */
	text-transform: uppercase;
/*	letter-spacing: ; */
}

nav a:hover,
nav .selected>a,
#nav-main-container [id^=phone]:hover {
/*	color: ; Set in stylesheets.liquid snippet via Site Metafields */
}


/*	NAV AUTH ------ */

#nav-auth-container {
	/* These rules will conflict with #phone-nav-ext if it is unhidden in nav.liquid snippet */
	order: 1; /* initial value 0 */
	flex-shrink: 0;
	
	position: static; /* override indieweb-secure-users.css */
	width: auto; /* override indieweb-secure-users.css */
	height: auto; /* override indieweb-secure-users.css */
}

#nav-auth {
	padding: 0; /* override indieweb-secure-users.css */
}

#nav-auth li,
#nav-auth a {
	height: auto; /* override indieweb-secure-users.css */
}

#nav-auth li a,
#nav-auth li button[type=submit] {
	font-size: 0.875rem; /* override indieweb-secure-users.css */
}

#nav-auth form {
	height: 100%;
}


/*	BANNER ------ */

/*
#banner .bg-wrap {
	background-color: ; /* in case image fails to load */ /*
}

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

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

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

#banner #client-logo {
	width: 100%;
}

#banner #hillcrest-logo {
	display: inline-block;
	max-width: 120px;
}

#banner #credit span {
	color: #fff;
}


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

/*	FOOTER TOP ------ */
/*
#footer-logo {
	margin: 30px 0;
}

#social {
	margin-left: -15px;
	margin-right: -15px;
}

#social a {
	text-decoration: none;
	display: block;
}

#social 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 ---------- */

label {
	font-weight: 600;
}

input,
select,
textarea {
	background: #eee;
}

input[type=submit],
button[type=button],
button[type=submit] {
/*	background: ; Set in stylesheets.liquid snippet via Site Metafields */
	color: #fff;
	font-size: 0.9375em;
/*	font-weight: ; */
	text-transform: uppercase;
/*	letter-spacing: ; */
}

input[type=submit]:hover,
button[type=button]:hover,
button[type=submit]:hover {
/*	background: ; Set in stylesheets.liquid snippet via Site Metafields */
	color: #fff;
}


/*  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,

.catalogue-wrap a .box-wrap,
.catalogue-wrap a span.price,
.product-wrap a .box-wrap,
.product-wrap a span.price,

#nav-auth button[type=submit] *,

button,
button:hover
input,
input:hover {
	transition: all 0.25s ease;
}


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

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

#lock_screen {
	height: calc(100% - 60px);
}

#lock_screen,
#lock_screen + footer {
	color: #fff;
}

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

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

#lock_screen form {
	margin: 0 auto;
}

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

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

#lock_screen ~ footer p {
	font-size: 0.875em;
}


/*	SEARCH ----- */

#search-form label {
	display: none;
}

#search-results-wrap {
	position: absolute;
	background: #fff;
}

#search-results {
	padding: 7.5px 0;
}

.search-result {
	padding: 7.5px 15px;
}


/*	SHOP ------ */

#shop #price-info,
#catalogue-template #price-info,
#product-template #price-info {
	text-align: center;
}

/*	Shop Container --- */

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

#shop-container .link-wrap:hover .box-wrap {
	box-shadow: 0 0 15px rgba(0,0,0,0.65);
	-webkit-transform: scale(1.05);
	transform: scale(1.05);
}

/*	Price */

span.price {
	position: absolute;
	display: block;
	bottom: -7.5px;
	right: -7.5px;
	color: #fff;
}

.product-wrap span.price {
	padding: 5px 12.5px;
}

.link-wrap:hover span.price {
	-webkit-transform: scale(1.05);
	transform: scale(1.05);
}

.product-details span.price {
	padding: 7.5px 15px;
}


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

#register .int-wrap > div,
#login .int-wrap > div,
#account .int-wrap > div {
	padding-top: 0;
}

#register form > p:first-child,
#login input#auth-email,
#password-forgot input#auth-email,
#password-reset input#auth-password {
	margin-top: 0;
}

/*	ACCOUNT --- */

#account ul {
	margin-top: 0;
	padding: 0;
	list-style-type: none;
}

#account .alert {
	opacity: 0;
}

/*	UPDATE --- */

#update .int-wrap > div {
	padding-top: 0;
}


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

/*	TERMS ------ */

#terms-list li {
	margin: 15px 0;
}


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

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

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

	/*	BANNER ------ */

	#banner .subtitle {
		color: #fff; /* override banner.css */
	}

/*
	#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 */ /*
	}
*/

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

	/*	SEARCH ------ */

	#search-form {
		padding: 0 7.5px;
	}

	#search-results-wrap {
		position: absolute;
		margin: 7.5px;
	}

}


/*	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 */ /*
	}
*/


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

	/*	SEARCH ------ */
	
	#search-form {
		padding: 0 15px;
	}

	#search-results-wrap {
		margin: 7.5px 15px;
	}

}


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

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

	/*	NAV AUTH ------ */

	#nav-auth li.slash {
		padding: 0;
	}

}


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

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

	/*	BANNER ------ */

	#banner #client-logo {
		margin-top: 15px;
	}

	#banner .subtitle {
		margin-bottom: 15px;
	}

	#banner #credit {
		margin-bottom: 7.5px;
	}


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

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


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

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

	/*	NAV AUTH ------ */

	#nav-auth li {
		display: inline-block;
	}

	#nav-auth li:not(.slash) {
		padding: 0 15px;
	}

}


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

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

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


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

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

	/*	BANNER ------ */

	#banner #client-logo {
		margin-top: 30px;
	}

	#banner #credit {
		margin-bottom: 22.5px;
	}

}


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


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

	/*	TERMS ------ */

	#terms li {
		text-align: left;
	}


	/*	ACCOUNT ------ */

	#account #orders .head.desktop {
		display: none;
	}

	#account #orders .faux-row > div {
		width: 100%;
	}

	#account #orders .faux-row .head.mobile {
		display: block;
	/*	background: ; Set in stylesheets.liquid snippet via Site Metafields */
		font-weight: 400;
		color: #fff;
	}

}


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


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

	/*	ACCOUNT ------ */

	#account #orders .faux-row .mobile {
		display: none;
	}

	#account #orders .faux-row .head.mobile {
		display: block !important;
		background: #eee;
		color: inherit;
	}

	#account #orders .faux-row > div {
		width: 25%;
	}

}


/*	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 {
		max-height: calc(100vh - 60px);
	}
*/
}


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

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

	/*	Banner ------ */
/*	
	#banner {
		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) {

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

	/*	BANNER ------ */

	#banner .flex-container {
		flex-wrap: wrap;
	}

	#banner .flex-box {
		width: 100%;
		text-align: center;
	}

	#banner #client-logo {
		max-width: 100%;
		margin-bottom: 0;
		padding-bottom: 0;
	}

	#banner .subtitle {
		margin-top: 0;
	}

	#banner #hillcrest-logo {
		margin: 7.5px 0;
	}


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

	/*	SEARCH ------ */

	#search-form input {
		height: 30px;
	}

	#search-results-wrap {
		top: 45px;
	}

}


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

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

	/*	BANNER ------ */

	#banner .flex-container {
		flex-wrap: nowrap;
	}

	#banner .flex-box {
		width: 50%;
	}

	#banner #client-logo {
		margin: 30px 0;
	}

	#banner .subtitle {
		margin-top: 30px;
	}

	#banner #credit {
		margin-bottom: 30px;
	}


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


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

	/*	CHECKOUT ------ */

	#checkout-form textarea {
		height: 345px; /* override indieweb-shop.css */
	}

}


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

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

	/*	SEARCH ------ */

	#search-results-wrap {
		top: 60px;
	}

}


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

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

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

	nav .slash {
		display: none;
	}

	nav .slash {
		padding: 0;
	}

}


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

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

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

	nav .slash {
		padding: 0;
	}

	nav .slash span {
		display: inline-block;
		line-height: 90px;
	} 

	/* sub-menu list */

/*	nav li ul {
		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 ul element */ /*
		-webkit-clip-path: inset(0 -15px -15px -15px);
		clip-path: inset(0 -15px -15px -15px);
	}
*/

	/*	BANNER ------ */
/*
	#banner {
		max-height: calc(100vh - 90px);
	}
*/


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

	/*	SEARCH ------ */

	#search-results-wrap {
		top: 75px;
	}

}


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

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

	/*	NAV AUTH ------ */

	#nav-auth div > ul {
		padding: 0 2.5px /* ensure consistent space around first and last menu items */;
	}

	#nav-auth li {
		padding: 0 12.5px;
		font-size: 0.875rem;
	}

}


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

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

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

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