/*	==========================================================================
	begin config
	==========================================================================	*/

:root {

/*	fonts + scaling
  	--------------------------------------------------------------------------	*/

  	/* default font stack */
	--font-main-stack: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Liberation Sans', sans-serif;
	
	/* the text and heading font families */
	--font-text: 'proxima-soft', sans-serif;
	--font-heading: 'neulis-sans', sans-serif;
	
	--weight-text: 500;
	--weight-med: 500;
	--weight-bold: 700;
	--weight-black: 800;
	
	--weight-body: var(--weight-text);
	--weight-buttons: var(--weight-text);
	--weight-heading: var(--weight-black);
	
	--font-awesome: 'Font Awesome 7 Pro';
	--font-awesome-solid: 900;
	--font-awesome-regular: 400;
	--font-awesome-light: 300;

	/* the default font size */
	--base-font-size: 18px;

	/* the font-size + em scaling factor */
	--scaled-font-size: calc(var(--base-font-size) * (1 - 0.5) + 0.5vw);
	/* --scaled-font-size: 1vw; */

	/* auto-select the default or scaled font size */
	--font-size: max(var(--base-font-size), var(--scaled-font-size));

	/* the headings */
	--base-h1-size: 2.5rem;
	--base-h2-size: 2rem;
	--base-h3-size: 1.75rem;
	--base-h4-size: 1.5rem;
	--base-h5-size: 1.25rem;
	--base-h6-size: 1rem;

/*	colors
  	--------------------------------------------------------------------------	*/

	--primary: #588158;
	--primary-hover:#466746;
	--primary-dark: #3b5b40;

	--secondary: #4d4d4d;
	--secondary-hover: #808080;
	--secondary-dark: #1a1a1a;
	
	--accent-color: #dcd7cd;
	--accent-color-hover: #dcd7cd;
	--ultralight-accent: #f8f7f5;
	--light-accent: #eeebe6;

	--ultralight: #f2f2f2;
	--light: #ececec;
	--ultralight-secondary: #f7f9f7;
	--light-secondary: #eef2ee;
	--med: #cacaca;
	
	--houtz-bg-gradient: linear-gradient(to bottom right, var(--ultralight-accent), var(--light));
	
	--gray-100: #f8f9fa;
	--gray-200: #eaecef;
	--gray-300: #dee2e6;
	--gray-400: #ced4da;
	--gray-500: #acb5bd;
	--gray-600: #6c757d;
	--gray-700: #495057;
	--gray-800: #343a40;
	--gray-900: #212529;
	
	--black: #000;
	--white: #fff;
	
	--banner-background: var(--primary);
	--service-banner-background: #3b5b40;

	--text-color: #808080;
	--text-color-light: #646669;
	--text-color-lighter: #a6a8a9;
	--text-color-lightest: #e9e9ea;
	--border-color: var(--gray-300);

	--mobile-nav-bg: #202124;
	--mobile-nav-btn: #35363a;
	--mobile-nav-active-btn: var(--primary);

/*	design params
  	--------------------------------------------------------------------------	*/

  	--border-radius: 1rem;
	--btn-border-radius: 0.25rem;
	--header-padding: 1rem;
	--header-top-height: 6rem;
	--header-menu-height: 4rem;
	--header-menu-height-stuck: 4rem;
	--header-height: calc(var(--header-top-height) + var(--header-menu-height));
	--banner-padding: 6rem;
	--shadow: 0 8px 16px rgba(25,35,45,0.075);
	--transition-speed: 0.2s;
	
	--standard-padding: 6rem;
	--half-padding: 3rem;
	--card-padding: 1.5rem;
	--button-padding: 0.75rem 1rem;
	
	--container-margin: 5vw;
	--container-width: min(calc(100vw - var(--container-margin) * 2), var(--max-container-width));
	--max-container-width: 80rem;
	
	--min-column-width: 20rem;
	--min-padded-column-width: 16rem;
	
	--grid-gap: 3rem;
	--grid-auto-fill: repeat( auto-fill, minmax(var(--min-column-width), 1fr) );
	
	--header-menu-height: 5rem;
	--menu-icon-margin: 0.75rem;

/*	general breakpoints
  	--------------------------------------------------------------------------

	75rem: 1200px
	62rem: 992px
	48rem: 768px
	36rem: 576px

*/

} /* :root */

@media(min-width:1280px) {
	
	:root {
		--container-margin: max(calc((100vw - var(--max-container-width)) / 2), 5vw);
	}
	
}

/* Astro migration accessibility and native-control adjustments */
.db-nav-menu-btn,
.db-rtt {
	cursor: pointer;
	font: inherit;
}

a:focus-visible,
button:focus-visible {
	outline: 3px solid var(--primary);
	outline-offset: 4px;
}

/*	mobile config
  	--------------------------------------------------------------------------	*/

@media(max-width: 75rem) {
	:root {
		--base-h1-size: calc(1.375rem + 1.5vw);
		--base-h2-size: calc(1.325rem + .9vw) ;
		--base-h3-size: calc(1.3rem + .6vw);
		--base-h4-size: calc(1.275rem + .3vw);
	} /* end :root */
	
} /* end @media(max-width: 75rem) */

/*	end config
  	--------------------------------------------------------------------------	*/

/*	==========================================================================
	Preload and lazy load states
	==========================================================================	*/

body.preload * {
	transition: none;
}

body.preload .db-nav-menu li > ul {
	transition: none;
	display: none;
}

.lazy {
	background-image: none !important;
}

.defer-bg {
	background-image: none !important;
}

/*	==========================================================================
	minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css 
	==========================================================================	*/

html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}
button, button:focus, button:hover {border: 0;padding: 0;margin: 0;outline: none;background: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);}

/*	==========================================================================
	core css
	==========================================================================	*/

html {
	font-family: var(--font-text);
	font-size: var(--font-size);
	color: var(--text-color);
	font-weight: var(--weight-body);
	/* -webkit-font-smoothing: antialiased; */
}

html * {
	-webkit-tap-highlight-color: transparent;
	font-display: swap;
}

body {
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	visibility: visible;
	transition: none;
	line-height: 1.75em;
	margin: 0;
	background: #fff;
	-webkit-text-size-adjust: 100%;
	-webkit-tap-highlight-color: transparent;
}

body.locked {
	overflow: hidden;
}

button {
	font-family: var(--font-text);
	font-size: var(--font-size);
}

/*	.db-container
  	--------------------------------------------------------------------------	*/

.db-container {
	max-width: var(--container-width);
}

/*	headings
  	--------------------------------------------------------------------------	*/

h1, .h1 {
	font-size: var(--base-h1-size);
	font-family: var(--font-heading);
	font-weight: var(--weight-heading);
}
h2, .h2 {
	font-size: var(--base-h2-size);
	font-family: var(--font-heading);
	font-weight: var(--weight-heading);
}
h3, .h3 {
	font-size: var(--base-h3-size);
	font-family: var(--font-heading);
	font-weight: var(--weight-heading);
}
h4, .h4 {
	font-size: var(--base-h4-size);
	font-family: var(--font-heading);
	font-weight: var(--weight-heading);
}
h5, .h5 {
	font-size: var(--base-h5-size);
	font-family: var(--font-heading);
	font-weight: var(--weight-heading);
}
h6, .h6 {
	font-size: var(--base-h6-size);
	font-family: var(--font-heading);
	font-weight: var(--weight-heading);
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
	margin-top: 0;
	margin-bottom: 0.5rem;
	line-height: 1.35em;
	color: var(--primary);
	text-wrap: balance;
}

/*	disable <br> on < desktop resolution
  	--------------------------------------------------------------------------	*/

@media(max-width: 62rem) {
	h1 br,
	h2 br,
	h3 br,
	h4 br,
	h5 br,
	h6 br {
		display: none;
	}
}

/*	text margins
  	--------------------------------------------------------------------------	*/

p {
	margin-bottom: 1rem;
}
p:last-child {
	margin: 0;
}
ul:last-child {
	margin-bottom: 0;
}

/*	links
  	--------------------------------------------------------------------------	*/

a {
	transition: 0.25s color;
	color: var(--primary);
	text-decoration: none;
}

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

/*	add underlines to body text links
  	--------------------------------------------------------------------------	*/

.db-content p a,
.db-content li a {
	text-decoration: underline;
}

/*	hr
  	--------------------------------------------------------------------------	*/

hr {
	width: 100%;
	height: 1px;
	display: block;
	border: none;
	margin: 2em 0;
	background: var(--gray-200);
}

/*	utility
  	--------------------------------------------------------------------------	*/

 .transparent {
 	opacity: 0;
 }
 .img-cover {
	 position: relative;
	 overflow: hidden;
 }
 .img-cover img {
	 width: 100%;
	 height: 100%;
	 display: block;
	 vertical-align: top;
	 object-fit: cover;
 }

/*	==========================================================================
	site header
	==========================================================================	*/

header#header {
	width: 100%;
	display: contents; /* Needed for child element with position: sticky */
}

header .db-site-logo {
	height: 100%;
	width: 20rem;
}
header .db-site-logo > a {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	height: 100%;
	width: auto;
}
header .db-site-logo img {
	object-fit: contain;
	object-position: left;
	width: 100%;
	height: 100%;
	display: block;
	vertical-align: top;
}

/*	.db-header-top-row
  	--------------------------------------------------------------------------	*/

.db-header-top-row {
	width: 100%;
	height: auto;
	padding: 1rem 0;
}
.db-header-top-row .db-container {
	height: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: none;
	padding-left: var(--container-margin);
}
.db-header-top-row .db-header-menu-group {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-direction: row;
	gap: 1rem;
}
.db-header-top-row .menu {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-direction: row;
	gap: 2rem;
}
.db-header-top-row .menu  > li > a {
	transition: 0s color;
}
.db-header-top-row .db-btn.drop-down.open > ul {
	z-index: 100;
}

.db-header-top-row .db-site-location {
	background: var(--light);
	border-radius: var(--border-radius) 0 0 var(--border-radius);
	padding: 0.75rem var(--container-margin) 0.75rem 2rem;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 2rem;
}
.db-header-top-row .db-site-location > a {
	color: var(--text);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.db-header-top-row .db-site-location > a:hover {
	color: var(--primary);
}
.db-header-top-row .db-site-location > a i {
	font-size: 1.25rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
	
/*	.db-header-menu-row
  	--------------------------------------------------------------------------	*/

.db-header-menu-row {
	position: relative;
	width: 100%;
	height: auto;
	padding: 0;
	background: #fff;
}
.home .db-header-menu-row {
	background: var(--primary);
}
.page:not(.home) .db-header-menu-row {
	background: var(--light-accent);
}
.db-header-menu-row.stuck {
	border-bottom: 1px solid var(--gray-300);
}
.db-header-menu-row .db-container {
	height: 100%;
	display: flex;
	gap: 1rem;
	padding: 0;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	position: relative;
	border-radius: var(--border-radius);
}
@media(max-width:62rem) {
	.db-header-top-row {
		display: none;
	}
	.db-header-menu-row {
		height: var(--header-menu-height);
	}
	.home .db-header-menu-row {
		background: #fff;
	}
	.page:not(.home) .db-header-menu-row {
		background: #fff;
	}
	.db-header-menu-row .db-container {
		justify-content: center;
	}
	.db-header-menu-row .menu-btn {
		position: absolute;
		right: 0;
		top: 0;
		bottom: 0;
	}
}
/*	.sticky-header
  	--------------------------------------------------------------------------	*/
	  
.sticky-header {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 99;
}

/*	==========================================================================
	.db-nav-menu | main nav menu
	==========================================================================	*/

.db-nav-menu {
	width: auto;
	flex: 1;
	position: static;
}

/*	desktop nav menu
  	--------------------------------------------------------------------------	*/

@media(min-width: 62rem) { 
	.db-header-menu-row .db-container {
		max-width: calc(100vw - var(--container-margin));
		margin-left: 0;
		margin-right: auto;
	}
	.db-nav-menu {
		display: flex;
		transition: none;
		height: auto;
		top: 0;
		position: relative;
		visibility: visible;
		opacity: 1;
		pointer-events: inherit;
	}
	.db-header-menu-row .menu-btn {
		display: none;
	}
	.db-nav-menu > ul {
		list-style: none;
		display: flex;
		gap: 1rem;
		justify-content: flex-start;
		flex-direction: row;
		align-items: center;
		width: auto;
		height: auto;
		margin: 0;
		padding: 1rem 1rem 1rem var(--container-margin);
		position: relative;
		background: var(--primary-dark);
		border-radius: 0 var(--border-radius) var(--border-radius) 0;
	}
	.db-nav-menu.menu-left > ul {
		justify-content: flex-start;
	}
	.db-nav-menu.menu-right > ul {
		justify-content: flex-end;
	}
	.db-nav-menu li.top-level-link.menu-item-has-children.active,
	.db-nav-menu li.top-level-link.grid-menu.active {
		border-color: var(--primary);
	}
	/* top level desktop nav  */
	.db-nav-menu > ul > li {
		display: flex;
		flex-grow: 0; /* stretch the menu? 1 for yes; 0 for no */
		width: auto;
		height: auto;
		transition: none;
		/* the alignment of the nav buttons within their cells */
		justify-content: flex-start;
	}
	.db-nav-menu.full-width > ul > li {
		flex-grow: 1; /* stretch the menu? 1 for yes; auto for no */
		justify-content: flex-start;
	}
	.db-nav-menu.full-width > ul > li.menu-item-phone {
		justify-content: flex-end;
	}
	/* top level nav links */
	.db-nav-menu > ul > li > a {
		line-height: var(--font-size);
		color: var(--light-secondary);
		cursor: pointer;
		display: inline-flex;
		flex-grow: 0;
		height: auto;
		line-height: var(--font-size);
		padding: var(--button-padding);
		background: none;
		border-radius: var(--btn-border-radius);
		transition: 0.3s background, 0.3s color;
		border: 1px solid transparent;
		font-weight: var(--weight-buttons);
	}
	/* top level nav links (with drop-down) active */
	.db-nav-menu > ul > li.active > a {
		background: var(--accent-color);
		color: var(--white);
	}
	.db-nav-menu > ul > li.active > a:hover {
		background: var(--accent-color);
		color: var(--white);
	}
	/* top level nav phone link */
	.db-nav-menu > ul > li.menu-item-phone > a {
		background: var(--accent-color);
		color: var(--primary-dark);
		display: flex;
		align-items: center;
	}
	/* top level nav phone link (with drop-down) active */
	.db-nav-menu > ul > li.menu-item-phone.active > a,
	.db-nav-menu > ul > li.menu-item-phone.active > a:hover {
		color: #fff;
		background: var(--accent-color);
	}
	/* top level nav phone link phone icon */
	.db-nav-menu > ul > li.menu-item-phone > a i {
		margin: 0 0.5rem 0 0;
		font-weight: 500;
		font-size: 1.25rem;
	}
	/* top level nav CTA link */
	.db-nav-menu > ul > li.cta > a {
		background: var(--accent-color);
		color: #fff;
	}
	.db-nav-menu > ul > li.cta > a i {
		margin-left: var(--menu-icon-margin);
	}
	
	/* desktop nav menu carets */
	
	.db-nav-menu ul > li.menu-item-has-children > a::after {
    		content: "\f107";
    		display: inline-block;
    		margin-left: var(--menu-icon-margin);
		font-family: var(--font-awesome);
    		font-weight: 400;
    		transition: 0.25s transform;
	}
	.db-nav-menu ul > li.menu-item-has-children.active > a::after {
		transform: rotate(180deg);
	}

/*	desktop nav drop down menus
  	--------------------------------------------------------------------------	*/

	.db-nav-menu > ul > li.menu-item-has-children {
		position: relative;
		left: 0;
	}
	.db-nav-menu > ul > li.grid-menu {
		position: relative;
	}
	/* default submenus of drop-down and grid menus */
	.db-nav-menu > ul > li > ul,
	.db-nav-menu > ul > li.grid-menu > ul {
		display: flex;
		flex-direction: column;
		z-index: 99;
		position: absolute;
		height: auto;
		right: 0;
		top: calc(100% + 1rem);
		opacity: 0;
		min-width: 100%;
		border: 1px solid var(--gray-400);
		border-radius: var(--border-radius);
		overflow: hidden;
		box-shadow: var(--shadow);
		background: #fff;
		padding: 0.5rem;
		pointer-events: none;
		visibility: hidden;
		transition: var(--transition-speed) top, var(--transition-speed) opacity, var(--transition-speed) visibility;
		gap: 1px;
	}
	/* for full-width menu, grid menus position from left */
	.db-nav-menu.full-width > ul > li.grid-menu > ul {
		left: 0;
		right: auto;
	}
	/* dual header, left-aligned menu, not full width */
	.db-nav-menu.menu-left:not(.full-width) > ul > li > ul {
		left: 0;
		right: auto;
	}
	.db-nav-menu.menu-right > ul > li > ul {
		right: 0;
		left: auto;
	}
	.db-nav-menu > ul > li.menu-item-phone {
	}
	/* submenus of active drop-down and grid menus */
	.db-nav-menu > ul > li.menu-item-has-children.active > ul,
	.db-nav-menu > ul > li.grid-menu.active > ul {
		opacity: 1;
		top: calc(100% + 0.25rem);
		pointer-events: inherit;
		visibility: visible;
	}
	.db-nav-menu > ul > li.menu-item-has-children:not(.grid-menu) > ul > li > a {
		padding: 0.375rem;
	}
	.db-nav-menu > ul > li.menu-item-has-children:not(.grid-menu) > ul > li:first-child > a {
		border: none;
	}
	.db-nav-menu > ul > li.grid-menu > ul {
		border-radius: var(--border-radius);
	}
	.db-nav-menu > ul > li.menu-item-has-children.active > ul {
	}
	.db-nav-menu > ul > li.menu-item-has-children > ul li,
	.db-nav-menu > ul > li.grid-menu > ul li  {
		height: auto;
	}

	/* Desktop navigation menu grid drop-down menu (mega menu) */

	/* Desktop navigation menu traditional drop-down menu */

	.db-nav-menu li.menu-item-has-children > ul {
		flex-wrap: wrap;
		width: auto;
	}
	.db-nav-menu li.menu-item-has-children > ul li a {
		border: none;
		width: 100%;
		white-space: nowrap;
		display: block;
		background: #fff;
		color: var(--text-color);
		border-radius: var(--border-radius);
		transition: var(--transition-speed) color, var(--transition-speed) background;
	}
	.db-nav-menu li.menu-item-has-children.menu-item-phone > ul li a:not(:hover) span {
		color: var(--text-color-light)
	}
	.db-nav-menu li.menu-item-has-children:not('.grid-menu') > ul > li:last-child a {
		border: none;
	}

/*	desktop nav menu grid-style sub menu
  	--------------------------------------------------------------------------	*/

	.db-nav-menu > ul > li.grid-menu {
	}
	.db-nav-menu > ul > li.grid-menu > ul {
		max-width: calc(100vh - var(--container-margin) * 2);
		width: auto;
		margin: 0 auto;
		padding: 0.5rem;
		gap: 2rem;
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		min-width: 0;
		/* use grid-style mega menu? */
		/* display: grid; */
		/* grid-template-columns: repeat( auto-fit, minmax(15rem, 1fr) ); */
	}
	.db-nav-menu.menu-left > ul > li.grid-menu > ul {
		right: auto;
		left: 0;
	}
	/* grid menu sub-menus */
	.db-nav-menu > ul > li.grid-menu > ul > li.menu-item-has-children > ul.sub-menu {
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
		/* min-width: 20rem; */
	}
	/* the grid menu sub-menu headers */
	.db-nav-menu > ul > li.grid-menu > ul.sub-menu > li > a {
		font-size: var(--base-h6-size);
		font-weight: bold
	}
	.db-nav-menu li.grid-menu > ul li {
		position: relative;
	}
	.db-nav-menu li.grid-menu > ul li a {
		width: 100%;
		padding: 0.375rem;
	}
	/* grid menu sub-menu link carets */
	.db-nav-menu li.grid-menu > ul li a::after {
	    content: "\f105";
	    display: inline-block;
		display: none;
	    margin-left: 0.5rem;
	font-family: var(--font-awesome);
	    font-weight: var(--font-awesome-regular);
		font-size: var(--font-size);
	    transition: 0.25s right, 0.25s color;
	    position: absolute;
	    right: 0;
	    color: var(--primary);
	}
	.db-nav-menu li.grid-menu > ul li a:hover::after {
		right: -0.25rem;
	}
	/* remove border from last link of grid menu sub-menu */
	.db-nav-menu li.grid-menu > ul > li > ul > li:last-child > a {
		border: none;
	}

/*	full-width grid menus (comment out to disable)
  	--------------------------------------------------------------------------	*/

.db-nav-menu > ul > li.grid-menu {
	position: static;
}
.db-nav-menu > ul > li.grid-menu > ul {
	min-width: 100%;
	display: grid;
	grid-template-columns: repeat(3, 3fr);
}

} /* end desktop menu

/*	mobile nav menu
  	--------------------------------------------------------------------------	*/

@media(max-width: 62rem) {
	.db-header-menu-row {
	}
	.db-nav-menu-btn {
		z-index: 99;
	}
	.db-header-menu-row .menu-btn {
		width: auto;
		display: flex;
		justify-content: flex-end;
		align-items: center;
	}
	.db-nav-menu {
		opacity: 1;
		position: fixed;
		left: 0;
		top: var(--header-menu-height);
		width: 100vw;
		overflow-y: scroll;
		-webkit-overflow-scrolling:touch;
		scrollbar-width: none;
		-ms-overflow-style: none;
		z-index: 5;
		background: var(--white);
		margin: 0;
		padding: 0 0 3rem 0;
		transition: 0.5s height, 0.5s opacity, 1s visibility;
		/* mobile menu hidden state */
		visibility: hidden;
		pointer-events: none;
		opacity: 0;
		height: 0;
	}
	html:has(#wpadminbar) .db-nav-menu {
		top: calc(var(--header-menu-height) + 46px);
	}
	.db-nav-menu::-webkit-scrollbar {
		width: 0;
		height: 0;
	}
	.db-nav-menu.active {
		height: calc(100vh - var(--header-menu-height));
		visibility: visible;
		opacity: 1;
		pointer-events: inherit;
	}

/*	mobile nav menu top-level links
  	--------------------------------------------------------------------------	*/

	.db-nav-menu > ul {
		margin: 0 auto;
		list-style: none;
		display: flex;
		flex-direction: column;
		width: 100%;
		padding: 0 var(--container-margin);
		border-top: 1px solid var(--border-color);
	}
	.db-nav-menu ul > li > ul {
		padding: 0;
	}
	.db-nav-menu ul li {
		display: block;
		width: 100%;
	}
	.db-nav-menu > ul > li {
		position: relative;
		display: block;
		margin: 0;
		width: 100%;
		border-bottom: 1px solid var(--border-color);
	}
	.db-nav-menu > ul > li.menu-item-has-children {
	}
	.db-nav-menu > ul > li.menu-item-has-children > a {
	}
	.db-nav-menu > ul > li.menu-item-has-children.active > a {
	}
	.db-nav-menu > ul > li.menu-item-has-children.active {
	}
	.db-nav-menu > ul > li > a {
		display: flex;
		justify-content: space-between;
		align-items: center;
		text-decoration: none;
		font-size: var(--font-size);
		color: var(--primary);
		font-weight: var(--weight-bold);
		margin: 0;
		padding: 1rem 0;
		width: 100%;
		height: 100%;
	}
	.db-nav-menu > ul > li.menu-item-phone > a i {
		display: none;
	}
	.db-nav-menu > ul > li.active > a {
		color: var(--accent-color);
	}
	.db-nav-menu > ul > li:last-child > a {
		border: none;
	}
	
	/* top-level mobile nav menu carets */
	.db-nav-menu > ul > li:not(.menu-item-has-children) > a::after {
    		content: "\f061";
    		display: inline-block;
    		margin-left: 0.5rem;
		font-family: var(--font-awesome);
    		font-weight: var(--font-awesome-solid);
    		position: absolute;
    		right: 0;
		color: var(--secondary);
	}
	.db-nav-menu > ul > li:not(.menu-item-has-children).menu-item-phone > a::after {
		content: '\f095';
	}

	/* top-level mobile nav drop-down icons */

	.db-nav-menu > ul > li.menu-item-has-children > a::after,
	.db-nav-menu ul.sub-menu li.menu-item-has-children > a::after {
    		content: "\2b";
    		display: inline-block;
    		margin-left: 0.5rem;
		font-family: var(--font-awesome);
    		font-weight: var(--font-awesome-solid);
    		position: absolute;
    		right: 0;
		color: var(--text-color);
		transition: var(--transition-speed) color;
	}
	.db-nav-menu > ul > li.menu-item-has-children.active > a::after {
		content: "\f068";
 	     color: var(--accent-color);
	}

/*	mobile nav menu sub menus
  	--------------------------------------------------------------------------	*/

  	.db-nav-menu li.menu-item-has-children {
  		position: relative;
		padding-bottom: 0;
		transition: 0.5s padding;
  	}
	  .db-nav-menu li.menu-item-has-children.active {
		  padding-bottom: 0.25s;
	  }
	.db-nav-menu > ul > li.menu-item-has-children  > .sub-menu {
		display: block;
		overflow: hidden;
	}
	.db-nav-menu > ul > li.menu-item-has-children.active > .sub-menu {
		display: block;
	}
	.db-nav-menu > ul > li.menu-item-has-children > .sub-menu > li {
		height: 0;
		opacity: 0;
		overflow: hidden;
		transition: 0.2s height, 0.5s opacity;
		transition-timing-function: linear;
	}
	.db-nav-menu > ul > li.active .sub-menu > li {
		height: auto;
		opacity: 1;
	}
	.db-nav-menu li.menu-item-has-children > ul > li > a {
		font-weight: var(--weight-text);
		border: none;
		display: flex;
		justify-content: flex-start;
		gap: 0.5rem;
		padding: 0.5rem 0;
		width: 100%;
		height: 100%;
		color: var(--text-color);
		text-align: left;
	}
	/* arrow icons after direct submenu links */
	.db-nav-menu li.menu-item-has-children ul li:not(.no-url) > a::after {
    		content: "\f061";
    		display: inline-block;
		font-family: var(--font-awesome);
    		font-weight: var(--font-awesome-solid);
    		position: relative;
		color: var(--text-color);
		margin-left: auto;
	}
	/* plus/minus icons after 2nd-level submenu links */
	.db-nav-menu li.menu-item-has-children ul li.menu-item-has-children > a::after {
    		content: "";
	}
	.db-nav-menu li.menu-item-has-children ul li.menu-item-has-children.active > a::after{
		content: "";
	}
	/* third level mobile links */
	.db-nav-menu > ul > li.menu-item-has-children > ul > li > ul > li > a {
		color: var(--text-color-light);
	}
	.db-nav-menu > ul > li.menu-item-has-children > ul > li:not(.no-url) > ul > li > a::after {
		color: var(--text-color-light);
	}
	
	.db-nav-menu > ul > li > ul.sub-menu > li:first-child {
		margin: 0;
	}
	.db-nav-menu li > ul li:last-of-type a,
	.db-nav-menu ul li.grid-menu > ul .db-grid:last-of-type .block:last-of-type h4 a,
	.db-nav-menu ul li.grid-menu > ul .db-grid:last-of-type .block:last-of-type h5 a  {
		border-bottom: none;
	}

	/*	mobile nav menu grid-style sub menus
  		--------------------------------------------------------------------------	*/

  	/* grid sub menu headers */
	.db-nav-menu li.grid-menu .db-grid,
	.db-nav-menu li.grid-menu .db-grid:not(:first-of-type) {
		display: block;
		margin:0;
		padding:0;
	}
	.db-nav-menu li.grid-menu .db-grid .block {
		display: block;
		margin:0;
		padding:0;
		width:100%;
	}
	.db-nav-menu li.grid-menu > ul h4,
	.db-nav-menu li.grid-menu > ul h5 {
		margin:0;
		padding:0;
	}
	.db-nav-menu li.grid-menu > ul h6 {
		display: none;
	}

	/*	mobile nav menu .cta link
  		--------------------------------------------------------------------------	*/
	.db-nav-menu li.cta {
		border: none;
	}
	.db-nav-menu li.cta > a {
		border: 1px solid transparent;
		padding: var(--button-padding);
		background: var(--accent-color);
		color: #fff;
		display: inline-block;
		margin: 0 auto;
		border-radius: var(--border-radius);
		margin-top: 1rem;
		text-align: center;
	}
	.db-nav-menu li.cta > a i {
		margin-left: var(--menu-icon-margin);
	}

} /* End mobile navigation menu */

/* -------------------------------------------------------------
/ Hamburger by Jonathan Suh
/ - https://github.com/jonsuh/hamburgers
/ -------------------------------------------------------------*/

.hamburger{padding:1em 1em;display:inline-block;cursor:pointer;transition-property:opacity,filter;transition-duration:.15s;transition-timing-function:linear;font:inherit;color:inherit;text-transform:none;background-color:transparent;border:0;margin:0;overflow:visible}.hamburger:hover{opacity:.7}.hamburger.active:hover{opacity:.7}.hamburger.active .hamburger-inner,.hamburger.active .hamburger-inner::after,.hamburger.active .hamburger-inner::before{background-color:#000}.hamburger-box{width:40px;height:24px;display:block;position:relative}.hamburger-inner{display:block;top:50%;margin-top:-2px}.hamburger-inner,.hamburger-inner::after,.hamburger-inner::before{width:40px;height:4px;background-color:#000;border-radius:4px;position:absolute;transition-property:transform;transition-duration:.15s;transition-timing-function:ease}.hamburger-inner::after,.hamburger-inner::before{content:"";display:block}.hamburger-inner::before{top:-10px}.hamburger-inner::after{bottom:-10px}.hamburger--collapse .hamburger-inner{top:auto;bottom:0;transition-duration:.13s;transition-delay:.13s;transition-timing-function:cubic-bezier(.55,.055,.675,.19)}.hamburger--collapse .hamburger-inner::after{top:-20px;transition:top .2s .2s cubic-bezier(.33333,.66667,.66667,1),opacity .1s linear}.hamburger--collapse .hamburger-inner::before{transition:top .12s .2s cubic-bezier(.33333,.66667,.66667,1),transform .13s cubic-bezier(.55,.055,.675,.19)}.hamburger--collapse.active .hamburger-inner{transform:translate3d(0,-10px,0) rotate(-45deg);transition-delay:.22s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.hamburger--collapse.active .hamburger-inner::after{top:0;opacity:0;transition:top .2s cubic-bezier(.33333,0,.66667,.33333),opacity .1s .22s linear}.hamburger--collapse.active .hamburger-inner::before{top:0;transform:rotate(-90deg);transition:top .1s .16s cubic-bezier(.33333,0,.66667,.33333),transform .13s .25s cubic-bezier(.215,.61,.355,1)}

.hamburger-inner, .hamburger-inner::after, .hamburger-inner::before {
	background-color: var(--primary);
}

/*	==========================================================================
	Return to top button
	==========================================================================	*/

.db-rtt {
	position: fixed;
	bottom: 2rem;
	right: 2rem;
	padding: 0;
	width: 3rem;
	height: 3rem;
	border-radius: var(--border-radius);
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--primary);
	color: #fff;
	opacity: 0;
	transition: 0.5s background, 0.5s color;
	cursor: pointer;
	z-index: 99;
	box-shadow: var(--shadow);
}
.db-rtt.visible {
	opacity: 1;
}

/*	==========================================================================
	Site content wrapper
	==========================================================================	*/

.db-content {
	width: 100%;
}

/*	==========================================================================
	Site container
	==========================================================================	*/

.db-container {
	width: 100%;
	margin: 0 auto;
	display: block;
}

/*	==========================================================================
	.db-flex
	==========================================================================	*/
	
.db-flex {
	display: flex;
}
	
/*	==========================================================================
	Site grid
	==========================================================================	*/

.db-grid {
	width: 100%;
	display: grid;
	grid-template-columns: var(--grid-auto-fill);
	gap: var(--grid-gap);
}
.db-grid.no-gap {
	gap: 0;
}
.db-grid.two-columns {
	grid-template-columns: repeat(2, 2fr);
}
.db-grid.three-columns {
	grid-template-columns: repeat(3, 3fr);
}
.db-grid.four-columns {
	grid-template-columns: repeat(4, 4fr);
}

@media(max-width: 60rem) {
	.db-grid.four-columns {
		grid-template-columns: repeat(2, 2fr);
	}
}
@media(max-width: 48rem) {
	.db-grid.two-columns,
	.db-grid.three-columns,
	.db-grid.four-columns {
		grid-template-columns: repeat(1, 1fr):
	}
}

/*	==========================================================================
	Site buttons
	==========================================================================	*/

/*	Basic site button setup
  	--------------------------------------------------------------------------	*/

.db-btn {
	display: inline-block;
}
.db-btn > a {
	padding: var(--button-padding);
	line-height: var(--font-size);
	border-radius: var(--btn-border-radius);
	background: var(--primary-dark);
	border: 1px solid transparent;
	color: #fff;
	text-decoration: none;
	transition: 0.5s background, 0.5s border, 0.5s color;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-weight: var(--weight-buttons);
}
.db-btn.btn-outline > a {
	background: none;
	color: var(--primary-dark);
	border-color: var(--primary-dark);
}
.db-btn.icon-right > a::after {
	font-family: var(--font-awesome);
	content: '\f105';
	display: inline-flex;
	align-items: center;
	margin: 0 0 0 0.5rem;
	font-weight: 900;
}

/*	Drop down buttons
  	--------------------------------------------------------------------------	*/

.db-btn.drop-down {
	position: relative;
}
.db-btn.drop-down button {
	background: var(--primary);
	padding: var(--button-padding);
	line-height: var(--font-size);
	border-radius: var(--border-radius);
	cursor: pointer;
	color: #fff;
	transition: var(--transition-speed) background;
	font-weight: var(--weight-buttons);
}
.db-btn.drop-down.open button {
	background: var(--accent-color);
}
.db-btn.drop-down button::after {
	font-family: var(--font-awesome);
	content: '\f107';
	display: inline-flex;
	align-items: center;
	margin: 0 0 0 0.5rem;
	font-weight: var(--font-awesome-regular);
	transition: var(--transition-speed) transform;
}
.db-btn.drop-down.open button::after {
	transform: rotate(-180deg);
}
.db-btn.drop-down > ul {
	display: flex;
	flex-direction: column;
	gap: 1px;
	position: absolute;
	top: calc(1rem + 100%);
	left: 0;
	width: auto;
	border-radius: var(--border-radius);
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--gray-400);
	padding: 0.5rem;
	visibility: hidden;
	opacity: 0;
	transition: var(--transition-speed) top, var(--transition-speed) visibility, var(--transition-speed) opacity;
}
.db-btn.drop-down.open > ul {
	visibility: visible;
	opacity: 1;
	top: calc(0.25rem + 100%);
}
.db-btn.drop-down > ul > li > a {
	display: block;
	padding: 0.375rem;
	color: var(--primary);
	transition: var(--transition-speed) background, var(--transition-speed) color;
	border-radius: var(--border-radius);
	text-decoration: none;
	white-space: nowrap;
}
.db-btn.drop-down > ul > li > a:not(:hover) span {
	color: var(--text-color-light);
}

/*	Site button with click menu
  	--------------------------------------------------------------------------	*/

.db-btn.btn-menu {
	position: relative;
}
.db-btn.btn-menu > ul {
	z-index: 99;
	display: none;
	min-width: 100%;
	position: absolute;
	top: calc(100% + 1px);
	left: 0;
	background: #fff;
	border-radius: var(--border-radius);
	overflow: hidden;
	border: 1px solid var(--border-color);
	box-shadow: 0 8px 16px rgb(25 35 45 / 8%);
}
.db-btn.btn-menu.active > ul {
	display: block;
}
.db-btn.btn-menu > ul > li {
	width: 100%;
	display: block;
}
.db-btn.btn-menu > ul > li > a {
	width: 100%;
	padding: 6px 12px;
	display: block;
	border-bottom: 1px solid var(--gray-200);
	white-space: nowrap;
}
.db-btn.btn-menu > ul > li:last-child > a {
	border: none;
}

/*	==========================================================================
	accordion
	==========================================================================	*/

.db-accordion {
	width: 100%;
	border-radius: var(--border-radius);
	border: 1px solid var(--primary);
	overflow: hidden;
}

/* Individual accordion styles */

.db-accordion .section {
	border-top: 1px solid var(--primary);
}
.db-accordion .section:first-child {
	border: none;
}

/* Accordion title bars */

.db-accordion .title {
	color: var(--primary);
	padding: 1rem;
	background: #fff;
	margin:0;
	cursor: pointer;
	transition: 0.5s background, 0.5s color;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	text-align: left;
}

/* Opened accordion title */

.db-accordion .section.open .title {
	background: var(--primary);
	color: #fff;
}

/* The open/close symbol */

.db-accordion .title::after {
    margin-left: auto;
    margin-right: 5px;
    content: "\f067";
    color: var(--primary);
    text-align: center;
    font-family: var(--font-awesome);
    transition: 0.25s transform;
    font-size: 1.5em;
    font-weight: 600;
}

.db-accordion .section.open .title::after {
	transform: rotate(45deg);
	color:#fff;
}

/* The accordion body */

.db-accordion .body {
	display: none;
	padding: 1rem;
	background: #fff;
	color: var(--text-color);
}

/*	==========================================================================
	Site tabbed box
	==========================================================================	*/

.db-tabs {

}
.db-tabs .tabs {
	display: flex;
}
.db-tabs .tab {
	display: block;
	padding: 0.5rem 1rem;
	border-right: 1px solid #fff;
	border-radius: var(--border-radius) var(--border-radius) 0 0;
	background: var(--gray-200);
	color: #909295;
	cursor: pointer;
}
.db-tabs .tab.active {
	background: var(--primary);
	color: #fff;
}
.db-tabs .tab-contents {
	border: 1px solid var(--primary);
	border-top: 5px solid var(--primary);
	border-radius: 0 0 var(--border-radius) var(--border-radius);
	padding: 1rem;
}
.db-tabs .content {
	display: none;
}
.db-tabs .content.active {
	display: block;
}

/*	==========================================================================
	Site footer
	==========================================================================	*/

footer {
	background: var(--houtz-bg-gradient);
	padding: 0;
	z-index: 2;
}
footer .db-grid {
	gap: 2rem;
	padding: 3rem 0;
	grid-template-columns: repeat(3, 3fr);
}
footer .db-grid .footer-text {
	text-wrap: balance;
}
footer .db-grid h5 {
	margin: 0 0 1rem 0;
}
footer .db-grid i {
	width: 1rem;
	text-align: center;
	margin: 0 0.75rem 0 0;
}
footer .footer-menu ul {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
footer .db-grid .footer-menu ul a {
	color: var(--secondary);
	transition: 0.2s color;
}
footer .db-grid .footer-menu ul a:hover {
	color: var(--primary);
}
footer .db-grid .footer-menu ul a::after {
	font-family: var(--font-awesome);
	font-weight: 600;
	color: var(--secondary);
	display: inline-flex;
	margin-left: 0.25rem;
	content: '\f105';
	transition: 0.2s margin;
}
footer .db-grid .footer-menu ul a:hover::after {
	margin-left: 0.5rem;
}
footer .db-grid a {
	color: var(--primary);
	text-decoration: none;
}
footer .db-location-contact-info {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
footer .db-location-contact-info a {
	color: var(--secondary);
}
footer .db-location-contact-info a:hover {
	color: var(--primary);
}
footer .db-location-contact-info .db-location-note {
	display: none;
}
footer .db-location-name {
	display: none;
}
footer .db-location-meta .db-location-telephone::before, footer .db-location-meta .db-location-fax::before, footer .db-location-meta .db-location-address::before, footer .db-location-meta .db-location-region::before, footer .db-location-meta .db-location-email::before {
	color: var(--primary);
	font-weight: 900;
}
footer .legal {
	padding: 1rem 0;
	color: #a9a9a9;
	font-size: calc(var(--font-size) - 3px);
}
footer .legal a {
	opacity: 1;
	text-decoration: underline;
	color: #919191;
}
footer .legal a:hover {
	color: var(--primary);
}
footer .legal .db-container {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}
footer .legal .db-container * {
	margin: 0 1rem 0 0;
}

/*	==========================================================================
	Site title bar
	==========================================================================	*/

.db-page-title {
	padding: 1rem 0;
}
.db-page-title .db-container {
}
.db-page-title .title {
	font-size: var(--base-h5-size);
	font-family: var(--font-heading);
	font-weight: var(--weight-heading);
	margin: 0 0 0.5rem 0;
}

/*	breadcrumbs below title bar
	--------------------------------------------------------------------------	*/

.db-page-bread-crumbs {
	color: var(--secondary);
	font-weight: var(--weight-med);
}
.db-page-bread-crumbs ol {
 	list-style: none;
 	margin: 0;
 	padding: 0;
 	display: flex;
 	height: 100%;
 	align-items: center;
 	gap: 0.5rem;
	color: var(--text-color-light);
 }
.db-page-bread-crumbs ol::before {
	font-family: var(--font-awesome);
	font-weight: var(--font-awesome-solid);
	display: inline-flex;
	margin: 0 0.25rem 0 0;
	justify-content: flex-start;
	align-items: center;
	content: '\f3c5';
	display: none;
}
.db-page-bread-crumbs li {
}
.db-page-bread-crumbs li a,
.db-page-bread-crumbs li a:active,
.db-page-bread-crumbs li a:visited {
 	color: var(--accent-color);
 }
 @media(max-width:48rem) {
	 .db-page-heading .db-page-bread-crumbs {
	 }
	 .db-page-bread-crumbs ol {
		 flex-direction: column;
		 gap: 0.25rem;
	 }
	 .db-page-bread-crumbs i {
		 transform: rotate(90deg);
	 }
 }

/*	==========================================================================
	pages and posts
	==========================================================================	*/

/*	.service-icon
  	--------------------------------------------------------------------------	*/

.service-icon i {
	font-family: var(--font-awesome);
	font-weight: 300;
	font-size: 3rem;
}
.service-icon.border {
	width: 8rem;
	height: 8rem;
	border-radius: var(--border-radius);
	display: inline-flex;
	justify-content: center;
	align-items: center;
	border: 0.2rem solid var(--primary);
}
.service-icon.border i {
	font-size: 4rem;
	color: var(--primary);
}

/*	.db-content: the main content wrapper
  	--------------------------------------------------------------------------	*/

.db-content {
}

/*	.db-page-heading: the page h1
  	--------------------------------------------------------------------------	*/
	  
.db-page-heading {
	background: var(--light-accent);
	padding: 9rem 0;
	position: relative;
}
.db-page-heading::before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	content: '';
	display: block;
	background: url('../img/page-title.svg');
	background-position: center;
	background-size: cover;
	mix-blend-mode: multiply;
	opacity: 1;
}
.db-page-heading::after {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	content: '';
	display: block;
	background: linear-gradient(to bottom, var(--light-accent), rgba(255, 255, 255, 0));
}
.db-page-heading .db-container {
	position: relative;
	z-index: 3;
}
.db-page-heading .db-grid {
	grid-template-columns: repeat(2, 2fr);
}
.db-page-heading h1:last-child {
	margin: 0;
}
.db-page-heading .db-page-bread-crumbs {
	display: flex;
	justify-content: flex-start;
}
.db-page-heading .text,
.db-page-heading .img {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.db-page-heading .img-cover {
	aspect-ratio: 3/2;
	border-radius: var(--border-radius);
	background: var(--med);
}
.db-page-heading .db-location-contact-info {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-top: 1rem;
}
.db-page-heading .db-location-contact-info *::before {
	color: var(--primary);
	font-weight: 900 !important;
}

/*	.db-page-content: the main content of a page
  	--------------------------------------------------------------------------	*/
	  
.db-page-content {
	padding: 3rem 0;
}
.db-page-content ul {
	list-style: disc;
	padding: 0 0 0 2rem;
	margin: 0 0 1rem 0;
}

/*	.db-page-cta: a cta section
  	--------------------------------------------------------------------------	*/

.db-page-cta {
	background: var(--primary-dark);
	padding: 3rem 0;
	color: var(--light);
	position: relative;
}

.db-page-cta::before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	content: '';
	display: block;
	background: url('../img/page-title.svg');
	background-position: center;
	background-size: cover;
	mix-blend-mode: multiply;
}
.db-page-cta::after {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	content: '';
	display: none;
	background: linear-gradient(to bottom, var(--primary-dark), rgba(255, 255, 255, 0));
}
.db-page-cta .db-grid {
	position: relative;
	z-index: 3;
	grid-template-columns: repeat(2, 2fr);
}
.db-page-cta h2 {
	color: #fff;
}
.db-page-cta .buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}
.db-page-cta .db-btn > a {
	background: var(--accent-color);
	color: var(--primary-dark);
}
.db-page-cta .text {
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-wrap: balance;
	gap: 1rem;
}
.db-page-cta h2,
.db-page-cta p {
	margin: 0;
}
.db-page-cta .img {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.db-page-cta .img-cover {
	width: 100%;
	height: auto;
	aspect-ratio: 3/2;
	background: var(--primary-hover);
	border-radius: var(--border-radius);
}

/*	template-home.php
  	--------------------------------------------------------------------------	*/

/* .db-home-banner */

.db-home-banner {
	background: var(--banner-background);
	padding: 3rem 0 0 0;
	position: relative;
}
.db-home-banner::before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	content: '';
	display: block;
	background: url('../img/page-title.svg');
	background-position: center;
	background-size: cover;
	mix-blend-mode: multiply;
}
.db-home-banner::after {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	content: '';
	display: block;
	background: linear-gradient(to bottom, var(--primary), rgba(255, 255, 255, 0) 6rem, rgba(255, 255, 255, 0) calc(100% - 6rem), var(--primary) 100%);
}
.db-home-banner .db-grid {
	position: relative;
	z-index: 3;
	grid-template-columns: repeat(2, 2fr);
}
.db-home-banner .text {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.db-home-banner .text h1 {
	margin: 0;
	color: #fff;
	font-weight: var(--weight-black);
}
.db-home-banner .text h2 {
	color: var(--secondary);
	margin: 0;
	font-family: var(--font-text);
}
.db-home-banner hr {
	margin: 0;
	width: 3rem;
	height: 0.25rem;
	background: var(--primary-dark);
}
.db-home-banner .text {
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	justify-content: center;
}
.db-home-banner .text h2 {
	font-size: var(--base-h5-size);
	font-weight: var(--weight-med);
	color: var(--light-secondary);
}
.db-home-banner .text .db-btn > a {
	color: var(--primary-dark);
	background: var(--accent-color);
}
.db-home-banner .img {
	display: flex;
	flex-direction: column;
	justify-content: center;
	overflow: hidden;
}
.db-home-banner .img .featured-img {
	background: var(--med);
	border-radius: var(--border-radius) var(--border-radius) 0 0;
	overflow: hidden;
	aspect-ratio: 3/2;
	min-height: 100%;
}
.db-home-banner .img .featured-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	vertical-align: top;
}

/* .db-service-banner */

.db-service-banner {
	color: #fff;
	background: linear-gradient(to bottom, var(--banner-background) 0%, var(--banner-background) calc(50%), #fff calc(50%), #fff 100%);
}
.db-service-banner .db-container {
	max-width: calc(100vw - var(--container-margin));
	margin-left: auto;
	margin-right: 0;
}
.db-service-banner .db-grid {
	padding: 0 var(--container-margin);
	border-radius: var(--border-radius) 0 0 var(--border-radius);
	background: var(--service-banner-background);
	grid-template-columns: repeat(3, 3fr);
}
.db-service-banner .grid-item {
	padding: 2rem 0;
	text-align: left;
	display: flex;
	flex-direction: row;
	gap: 2rem;
	text-wrap: balance;
	align-items: center;
}
.db-service-banner .service-icon {
	font-size: 3rem;
	color: var(--accent-color);
}
.db-service-banner h3 {
	font-size: var(--base-h5-size);
	margin: 0 0 0.5rem 0;
	color: #fff;
}
.db-service-banner p {
	color: var(--light-secondary);
}

/* .db-home-about */

.db-home-about {
	padding: 3rem 0;
	background: #fff;
	text-wrap: balance;
	text-align: center;
}

/* .db-home-services */

.db-home-services {
	background: var(--houtz-bg-gradient);
	padding: 6rem 0;
}
.db-home-services .db-grid {
	grid-template-columns: repeat(2, 2fr);
}
.db-home-services .icons {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: row;
	gap: 1rem;
}
.db-home-services .icons i {
	color: var(--primary);
	font-size: 4rem;
	width: 8rem;
	height: 8rem;
	border-radius: var(--border-radius);
	border: 0.25rem solid var(--primary);
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-weight: 300;
}
.db-home-services .text {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.db-home-testimonials {
	padding: 6rem 0;
}
.db-home-cta {
	padding: 6rem 0;
}

/*	.db-template-staff
  	--------------------------------------------------------------------------	*/

.db-template-staff .staff-sidebar {
	width: calc(40% - 2rem);
	border-radius: var(--border-radius);
	background: var(--ultralight-accent);
	padding: 2rem;
	text-wrap: balance;
}
.db-staff {
	display: flex;
	justify-content: space-between;
}
.db-staff .staff-main {
	width: 60%;
	display: flex;
	flex-direction: column;
	gap: 2rem;
}
.db-staff .staff-meta {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 2rem;
	margin-bottom: 1rem;
}
.db-staff .staff-meta .img {
	width: 6rem;
	height: 6rem;
	border-radius: 100%;
	overflow: hidden;
}
.db-staff .staff-meta h3 {
	font-size: var(--base-h4-size);
}
.db-staff .staff-meta h6 {
	color: var(--secondary);
}

/*	==========================================================================
	.template-home.php
	==========================================================================	*/

/*	.db-home-location
  	--------------------------------------------------------------------------	*/

.db-home-location {
	background: var(--gray-100);
	display: grid;
	grid-template-columns: repeat(2, 2fr);
	gap: 0;
}
.db-home-location .db-text {
	padding: 9rem var(--container-margin);
}
.db-home-location .db-map iframe {
	width: 100%;
	height: 100%;
	display: block;
}

/*	==========================================================================
	locations and contact
	==========================================================================	*/
	
/*	.db-location-meta
  	--------------------------------------------------------------------------	*/
	  
.db-location-meta {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.db-location-meta .db-location-name {
	margin: 0;
}
.db-location-meta .db-location-telephone::before,
.db-location-meta .db-location-fax::before,
.db-location-meta .db-location-address::before,
.db-location-meta .db-location-region::before,
.db-location-meta .db-location-email::before,
.db-location-meta .db-location-note::before {
	font-family: var(--font-awesome);
	font-weight: var(--font-awesome-solid);
	content: '';
	display: inline-flex;
	width: 2rem;
	text-align: left;
	color: var(--primary);
}
.db-location-meta .db-location-telephone::before {
	content: '\f095';
}
.db-location-meta .db-location-fax::before {
	content: '\f1ac';
}
.db-location-meta .db-location-address::before {
	content: '\f3c5';
}
.db-location-meta .db-location-email::before {
	content: '\f0e0';
}
.db-location-meta .db-location-note::before {
	content: '\f303';
}
.db-location-meta .db-location-social-media {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.db-location-meta .db-location-social-media a {
	font-size: var(--base-h4-size);
}

/*	.db-template-locations
  	--------------------------------------------------------------------------	*/


/*	interior pages
  	--------------------------------------------------------------------------	*/

.db-page-content {
	padding: 3rem 0;
}
.db-editor-content {
}
.db-loop-content {
}
.db-template-services .db-loop-content .db-grid {
	grid-template-columns: repeat(3, 3fr);
	gap: 1rem;
}
.db-template-services .db-loop-content .grid-item {
	background: var(--ultralight);
	background: var(--houtz-bg-gradient);
	padding: 2rem;
	border-radius: var(--border-radius);
	text-wrap: balance;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.db-template-services .db-loop-content .service-icon.border {
	width: 6rem;
	height: 6rem;
}
.db-template-services .db-loop-content .service-icon.border i {
	font-size: 3rem;
}
.db-template-services .db-loop-content h3 {
	font-size: var(--base-h4-size);
	margin: 0;
}
.db-template-locations .db-page-content {
	padding: 3rem 0;
}
.db-template-locations .db-page-content .db-grid {
	grid-template-columns: repeat(1, 1fr);
}
.db-template-locations .db-page-content .db-grid-item {
	border-radius: var(--border-radius);
	display: grid;
	grid-template-columns: repeat(2, 2fr);
	gap: 2rem;
}
.db-template-locations .db-page-content .db-grid-item .db-location-meta {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 0;
	order: 2;
}
.db-template-locations .db-page-content .db-grid-item .db-location-contact-info {
	gap: 0.5rem;
	display: flex;
	flex-direction: column;
}
.db-template-locations .db-map {
	width: 100%;
	height: auto;
	aspect-ratio: 3/2;
	order: 1;
}
.db-template-locations .db-map iframe {
	width: 100%;
	height: 100%;
	display: block;
	border-radius: var(--border-radius);
}
.db-template-locations .db-location-meta .db-location-name {
	font-size: var(--base-h4-size);
	margin: 0 0 1rem 0;
}

/*	.db-404
  	--------------------------------------------------------------------------	*/

.db-404 .db-page-content ul > li a {
	color: var(--primary);
	text-decoration: underline;
}

/*	breakpoints
  	--------------------------------------------------------------------------	*/

@media(max-width: 80rem) {
	header .db-site-logo {
		width: 20rem;
		max-width: 100%;
	}
	.db-home-banner .img .featured-img {
		border-radius: var(--border-radius);
	}
	.db-service-banner {
	background: linear-gradient(to bottom, var(--banner-background) 0%, var(--banner-background) calc(50% + 1.5rem), #fff calc(50% + 1.5rem), #fff 100%);
	}	
	.db-service-banner .db-container {
		max-width: none;
		padding: 3rem var(--container-margin) 0 var(--container-margin);
	}
	.db-service-banner .db-grid {
		border-radius: var(--border-radius);
	}
	.db-service-banner .grid-item {
		flex-direction: column;
		align-items: flex-start;
	}
}
@media(min-width: 62rem) {
	.db-header-menu-row .db-site-logo {
		display: none;
	}
}
@media(max-width: 62rem) {
	.db-header-top-row .db-container {
		display: flex;
		flex-direction: column;
		gap: 2rem;
	}
	header .db-site-logo {
		margin: 0 auto;
	}
	header .db-site-logo {
		padding: 0.5rem 0;
		max-width: calc(100vw - 10rem);
	}
	.db-header-top-row .db-site-location {
		padding: 0.75rem;
		margin-left: auto;
		margin-right: auto;
		display: inline-flex;
		border-radius: var(--border-radius);
	}
	.db-page-heading {
		padding: 3rem 0;
	}
	.db-home-banner .db-grid {
		grid-template-columns: repeat(1, 1fr);
	}
	.db-service-banner .db-grid {
		grid-template-columns: repeat(1, 1fr);
		padding: 2rem;
		gap: 2rem;
	}
	.db-service-banner .grid-item {
		padding: 0;
	}
	.db-home-services .db-grid {
		grid-template-columns: repeat(1, 1fr);
	}
	.db-page-cta .db-grid {
		grid-template-columns: repeat(1, 1fr);
	}
	footer .db-grid {
		grid-template-columns: repeat(1, 1fr);
	}
	.db-template-services .db-loop-content .db-grid {
		grid-template-columns: repeat(1, 1fr);
	}
	.db-template-locations .db-page-content .db-grid-item {
		grid-template-columns: repeat(1, 1fr);
		gap: 2rem;
	}
	.db-staff {
		flex-direction: column;
		gap: 2rem;
	}
	.db-staff .staff-main {
		width: 100%;
	}
	.db-template-staff .staff-sidebar {
		width: 100%;
	}
}
@media(max-width: 48rem) {
	
}
@media(max-width: 32rem) {
	.db-home-services .icons {
		flex-direction: column;
	}
}
