/* Theme Name: Barebones */
/* === Global === */
:root {
	--container_width: 1400px;
	--container_padding: 32px;
}
body {
	color: var(--text_color);
	background-color: var(--color_6);
	font-size: 1rem;
	line-height: 1.5;
}
/* The primary header is fixed, so anchor targets need to clear it */
[id] {
	scroll-margin-top: var(--headerHeight, 96px);
}
.container,
.container-fluid {
	width: 100%;
	margin: 0 auto;
	padding-left: var(--container_padding);
	padding-right: var(--container_padding);
}
.container {
	max-width: var(--container_width);
}
h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font_heading);
	font-weight: 700;
	letter-spacing: -0.02em;
	text-transform: uppercase;
}
h1 {
	font-size: 2.25rem;
}
h2 {
	font-size: 2.25rem;
}
h3 {
	font-size: 1.25rem;
}
h4 {
	font-size: 1.125rem;
}
p:last-child {
	margin-bottom: 0;
}
/* Buttons */
.btn,
.gform_wrapper.gravity-theme .gform_footer button, 
.gform_wrapper.gravity-theme .gform_footer input, 
.gform_wrapper.gravity-theme .gform_page_footer button, 
.gform_wrapper.gravity-theme .gform_page_footer input {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	padding: 0.85em 2em;
	border: 2px solid transparent;
	border-radius: 999px;
	background-color: var(--color_1);
	font-family: var(--font_body);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-align: center;
	text-transform: none;
	color: #fff;
	transition: all ease 0.3s;
}
.btn .fas,
.btn .far,
.btn .fab {
	transition: transform ease 0.3s;
}
.btn:hover .fas,
.btn:focus .fas {
	transform: translateX(4px);
}
.btn.style-primary {
	background-color: var(--color_1);
	border-color: var(--color_1);
	color: #fff;
}
.btn.style-primary:hover,
.btn.style-primary:focus {
	background-color: var(--color_4);
	border-color: var(--color_4);
	color: #fff;
}
.btn.style-gold,
.gform_wrapper.gravity-theme button, 
.gform_wrapper.gravity-theme input {
	background-color: var(--color_2);
	border-color: var(--color_2);
	color: #fff;
}
.btn.style-gold:hover,
.btn.style-gold:focus{
	background-color: var(--color_1);
	border-color: var(--color_1);
	color: #fff;
}
.gform_wrapper.gravity-theme button:hover, 
.gform_wrapper.gravity-theme button:focus{
	background-color: var(--color_4);
	border-color: var(--color_4);
	color: #fff;
}
.form-card .gform_wrapper.gravity-theme button, 
.form-card .gform_wrapper.gravity-theme input {
	background-color: var(--color_2);
	border-color: var(--color_2);
	color: #fff;
}
.form-card .gform_wrapper.gravity-theme button:hover, 
.form-card .gform_wrapper.gravity-theme button:focus, 
.form-card .gform_wrapper.gravity-theme input:hover,
.form-card .gform_wrapper.gravity-theme input:focus {
	background-color: var(--color_4);
	border-color: var(--color_4);
	color: #fff;
}
.btn.style-outline {
	background-color: transparent;
	border-color: #fff;
	color: #fff;
}
.btn.style-outline:hover,
.btn.style-outline:focus {
	background-color: rgba(255, 255, 255, 0.15);
	border-color: #fff;
	color: #fff;
}
/* Flexible Content Section Settings */
.fc_section {
	margin-top: var(--settings_margin_top, 0);
	margin-bottom: var(--settings_margin_bottom, 0);
}
.fc_section a:not(.btn) {
	color: var(--settings_link_color, var(--color_1));
}
.fc_section a:not(.btn):hover,
.fc_section a:not(.btn):focus {
	color: var(--settings_link_hover_color, var(--color_2));
}
.container-full .container {
	max-width: 100%;
}
/* === Header/Nav === */
.primary-header {
	--header_padding: 12px;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	padding: var(--header_padding) 0;
	background-color: transparent;
	transition: all ease 0.3s;
}
body.scrolled .primary-header,
body.menu-open .primary-header {
	background-color: #fff;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}
/* Stretch the row so the nav items reach the header's content box. The dropdown
   is positioned off the bottom of a top level item, so it only lands flush with
   the header when those items are full height. */
.primary-header .header-row {
	align-items: stretch;
	gap: 24px;
}
/* Only the nav needs the full height — keep the logo and the CTA (and its
   divider rule) sized to their content, as in the mockup. */
.primary-header .logo-col,
.primary-header .c2a-col {
	display: flex;
	align-items: center;
	align-self: center;
}
.primary-header .logo-col {
	flex: 0 1 auto;
}
.primary-header .logo-col a {
	display: block;
}
.primary-header .logo-col img {
	max-height: 64px;
	width: auto;
	transition: all ease 0.3s;
}
.primary-header .logo-col .site-title {
	display: block;
	font-family: var(--font_heading);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--color_1);
}
.primary-header .nav-col {
	display: flex;
	flex: 1 1 auto;
}
.primary-header .c2a-col {
	flex: 0 1 auto;
	padding-left: 24px;
	border-left: 1px solid var(--color_7);
}
.primary-header .c2a {
	align-items: center;
	gap: 24px;
}
.primary-header .c2a>.col {
	flex: 0 0 auto;
}
.primary-header .phone-link a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 1.125rem;
	font-weight: 700;
	white-space: nowrap;
}
/* Primary Nav */
.primary-header .main-nav {
	display: flex;
	width: 100%;
}
.main-nav .menu {
	align-items: stretch;
	justify-content: flex-end;
	width: 100%;
	list-style: none;
}
.main-nav .menu>li {
	display: flex;
	align-items: center;
	margin: 0 3px;
}
.main-nav .menu li a {
	padding: 12px;
	font-size: 1rem;
	font-weight: 500;
}
.primary-header .menu-item-has-children>a::after {
	content: '';
	display: inline-block;
	margin-left: 6px;
	vertical-align: middle;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
}
.primary-header .menu-item-has-children .sub-menu {
	display: grid;
	visibility: hidden;
	opacity: 0;
	grid-template-columns: 1fr 1fr;
	gap: 16px 32px;
	/* Clear the header's bottom padding so the panel butts up against it */
	top: calc(100% + var(--header_padding));
	min-width: 500px;
	padding: 24px;
	border: 1px solid var(--color_7);
	border-top: 0;
	border-radius: 0 0 8px 8px;
	background-color: #fff;
	/* Offset past the blur so the shadow never bleeds back up over the header */
	box-shadow: 0 24px 40px -16px rgba(0, 0, 0, 0.25);
	list-style: none;
	transition: all ease 0.3s;
}
.primary-header .menu-item-has-children:hover .sub-menu,
.primary-header .menu-item.active .sub-menu {
	display: grid;
	visibility: visible;
	opacity: 1;
}
.primary-header .menu-item-has-children .sub-menu li {
	margin: 0;
}
.primary-header .menu-item-has-children .sub-menu li a {
	padding: 0;
	text-align: left;
	white-space: nowrap;
}
/* Header Colors */
.primary-header .main-nav a,
.primary-header .phone-link a {
	color: var(--text_color);
}
.primary-header .main-nav a:hover,
.primary-header .main-nav a:focus,
.primary-header .main-nav .current_page_item>a,
.primary-header .phone-link a:hover,
.primary-header .phone-link a:focus {
	color: var(--color_1);
}
/* Light treatment while the header sits transparent over the hero. Opening a
   dropdown solidifies the header, which reverts it — otherwise the nav would be
   white on white. */
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .main-nav>.menu>li>a,
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .phone-link a {
	color: #fff;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .main-nav>.menu>li>a:hover,
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .main-nav>.menu>li>a:focus,
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .main-nav>.menu>.current_page_item>a,
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .main-nav>.menu>.current-menu-item>a,
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .main-nav>.menu>.current-menu-ancestor>a,
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .phone-link a:hover,
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .phone-link a:focus {
	color: var(--color_2);
}
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .logo-col img {
	filter: brightness(0) invert(1) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.4));
}
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .logo-col .site-title {
	color: #fff;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
body.has-hero:not(.scrolled):not(.menu-open) .primary-header .c2a-col {
	border-left-color: rgba(255, 255, 255, 0.3);
}
/* Mobile Header */
.mobile-header .logo-col .site-title {
	display: block;
	font-family: var(--font_heading);
	font-size: 1.125rem;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--color_1);
}
.mobile-header .mobile-c2a {
	font-size: 0.9375rem;
}
.mobile-header .nav-wrap .c2a {
	padding: 20px;
	text-align: center;
}
.mobile-header .nav-wrap .c2a .btn {
	width: 100%;
}
/* === Footer === */
.primary-footer {
	background-color: #fff;
	color: var(--text_color);
}
.primary-footer .footer-row {
	flex-wrap: wrap;
}
.primary-footer .footer-row>.col {
	flex: 1 1 50%;
}
.primary-footer .info-col {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px var(--container_padding);
}
.primary-footer .info-row {
	flex-wrap: wrap;
	gap: 32px;
	width: 100%;
	max-width: 36rem;
}
.primary-footer .info-row>.col {
	flex: 1 1 calc(50% - 16px);
}
.primary-footer .footer-logo img {
	max-height: 56px;
	width: auto;
	margin-bottom: 16px;
}
.primary-footer .footer-logo .site-title {
	display: block;
	margin-bottom: 16px;
	font-family: var(--font_heading);
	font-size: 1.375rem;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--color_1);
}
.primary-footer .description {
	max-width: 24rem;
	margin-bottom: 24px;
}
.primary-footer .heading {
	margin-bottom: 12px;
	font-family: var(--font_body);
	font-size: 1.25rem;
	color: var(--color_2);
}
.primary-footer .quick-links ul {
	padding-left: 0;
	margin-bottom: 0;
	list-style: none;
}
.primary-footer .quick-links li a,
.primary-footer .contact-info a {
	font-weight: 400;
	color: var(--text_color);
}
.primary-footer .quick-links li a:hover,
.primary-footer .quick-links li a:focus,
.primary-footer .contact-info a:hover,
.primary-footer .contact-info a:focus {
	color: var(--color_2);
}
.primary-footer .contact-info {
	padding-left: 0;
	margin-bottom: 0;
	list-style: none;
}
.primary-footer .contact-info li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 12px;
}
.primary-footer .contact-info li [class^="fa-"] {
	flex: 0 0 20px;
	margin-top: 5px;
	color: var(--color_2);
}
.primary-footer .contact-info .address .street {
	max-width: 175px;
	display: inline-block;
}
.primary-footer .social {
	gap: 12px;
	margin-top: 20px;
}
.primary-footer .social .icon {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 36px;
	width: 36px;
	border-radius: 999px;
	background-color: var(--color_2);
	color: #fff;
}
.primary-footer .social .icon:hover,
.primary-footer .social .icon:focus {
	background-color: var(--color_1);
	color: #fff;
}
/* Footer Form */
.primary-footer .form-col {
	display: flex;
	background-color: var(--color_2);
}
.primary-footer .form-col-inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	padding: 40px var(--container_padding);
}
.primary-footer .form-col .heading {
	margin-bottom: 24px;
	font-family: var(--font_body);
	font-size: 1.75rem;
	letter-spacing: 0.05em;
	text-align: center;
	color: #fff;
}
.primary-footer .form-col .gform_wrapper {
	width: 100%;
	max-width: 36rem;
	margin: 0 auto;
}
.primary-footer .form-col .gform_wrapper .gform_fields {
	grid-row-gap: 12px;
}
.primary-footer .form-col .gform_wrapper .gfield_label {
	display: none;
}
.primary-footer .form-col .gform_wrapper input[type='text'],
.primary-footer .form-col .gform_wrapper input[type='email'],
.primary-footer .form-col .gform_wrapper input[type='tel'],
.primary-footer .form-col .gform_wrapper textarea {
	width: 100%;
	padding: 10px 16px;
	border: 0;
	border-radius: 0;
	background-color: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	font-family: var(--font_body);
	color: #000;
}
.primary-footer .form-col .gform_wrapper textarea {
	resize: none;
}
.primary-footer .form-col .gform_footer {
	justify-content: flex-start;
	padding-bottom: 0;
	margin-bottom: 0;
}
.primary-footer .form-col .gform_footer input[type='submit'] {
	padding: 10px 32px;
	border: 0;
	border-radius: 999px;
	background-color: var(--color_1);
	font-family: var(--font_body);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #fff;
	transition: all ease 0.3s;
}
.primary-footer .form-col .gform_footer input[type='submit']:hover,
.primary-footer .form-col .gform_footer input[type='submit']:focus {
	background-color: var(--color_4);
}
.primary-footer .copyright {
	padding: 24px;
	border-top: 1px solid var(--color_7);
	background-color: #fff;
	font-size: 0.875rem;
	text-align: center;
}
.primary-footer .copyright a {
	font-weight: 400;
	color: var(--color_9);
}
.primary-footer .copyright a:hover,
.primary-footer .copyright a:focus {
	color: var(--color_1);
}
/* === Home Page === */

/* === Interior Pages === */
body.ip .sections {
	padding-top: var(--headerHeight, 96px);
}
/* A hero runs under the transparent header, so it supplies its own top offset */
body.ip.has-hero .sections {
	padding-top: 0;
}
.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
	word-break: normal !important;
}
/* Bring focusable elements (like skip links) back into view on keyboard focus */
.screen-reader-text:focus {
	background-color: #f1f1f1;
	clip-path: none;
	color: #212529;
	display: block;
	font-size: 1rem;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
	/* Ensures visibility above the admin bar */
}
/* === Media Queries === */
@media screen and (max-width: 1199px) {
	.primary-header .c2a .phone-link {
		display: none;
	}
	.primary-header .c2a .btn {
		padding: 0.85em 1em;
	}
	.main-nav .menu>li {
		margin: 0;
		white-space: nowrap;
	}
}
@media screen and (max-width: 991px) {
	body {
		margin-top: calc(50px + var(--headerHeight, 80px));
	}
	body.ip .sections {
		padding-top: 0;
	}
	.primary-footer .footer-row>.col {
		flex: 1 1 100%;
	}
	.primary-footer .info-row {
		max-width: none;
	}
	.primary-footer .footer-row {
		flex-direction: column-reverse;
	}
}
@media screen and (max-width: 767px) {
	:root {
		--container_padding: 20px;
	}
	h1,
	h2 {
		font-size: 1.75rem;
	}
	.primary-footer .info-row>.col {
		flex: 1 1 100%;
	}
	.btn {
		white-space: normal;
	}
}