/*
Theme Name: Salient Child Theme
Description: This is a custom child theme for Salient
Theme URI:   https://themeforest.net/item/salient-responsive-multipurpose-theme/4363266
Author: ThemeNectar
Author URI:  https://themeforest.net/user/themenectar
Template: salient
Version: 1.0
*/

body.portfolio-template-default .container-wrap,
body.page-template-template-portfolio .container-wrap,
body.portfolio-template-default .ocm-effect-wrap,
body.page-template-template-portfolio .ocm-effect-wrap,
body.portfolio-template-default .project-title{
	background-color: #1C1914 !important;
}

body.page-template-template-portfolio h1,
body.portfolio-template-default h1{
	color: #fff;
}

.home-image-grid .nectar-fancy-box {
    aspect-ratio: 1;
}

.home-image-grid .image-grid-title-box .link_wrap {
    font-weight: 600;
    color: #0F0F0F;
    font-size: 36px;
    line-height: 1;
	display: flex;
    flex-direction: column-reverse !important;
    max-width: 230px;
}
.home-image-grid .image-grid-title-box .link_wrap i {
	opacity: 0;
}
.home-image-grid .image-grid-title-box:hover .link_wrap i {
	opacity: 1;

}

/* ==========================================================================
   Logo Grid element
   Responsive grid of image pairs with a crossfade on hover. Column count and
   cell shape come from inline custom properties set by the render callback
   (wp-content/themes/salient-child/inc/logo-grid/logo-grid.php).
   ========================================================================== */

.skytracker-logo-grid {
	--skytracker-logo-grid-columns: 3;
	--skytracker-logo-grid-gap: 40px;
	display: grid;
	grid-template-columns: repeat(var(--skytracker-logo-grid-columns), minmax(0, 1fr));
	gap: var(--skytracker-logo-grid-gap);
	align-items: center;
	width: 100%;
}

/* Gap presets */
.skytracker-logo-grid--gap-none   { --skytracker-logo-grid-gap: 0; }
.skytracker-logo-grid--gap-small  { --skytracker-logo-grid-gap: 20px; }
.skytracker-logo-grid--gap-medium { --skytracker-logo-grid-gap: 40px; }
.skytracker-logo-grid--gap-large  { --skytracker-logo-grid-gap: 64px; }

.skytracker-logo-grid__item {
	display: block;
	min-width: 0;
}

.skytracker-logo-grid__item--link {
	text-decoration: none;
}

/* Cell height comes from padding-top (a percentage of the cell WIDTH), which is
   a definite height — unlike aspect-ratio, it lets the absolutely-positioned
   images below resolve height:100% correctly, even for portrait SVGs.
   --skytracker-logo-grid-pad is set inline per the chosen cell shape;
   overflow:hidden is a hard guarantee against any breakout. */
.skytracker-logo-grid__media {
	position: relative;
	display: block;
	width: 100%;
	height: 0;
	padding-top: var(--skytracker-logo-grid-pad, 100%);
	overflow: hidden;
	line-height: 0;
}

/* Absolute inset:0 sizes each image box from the cell edges, so it fills the
   cell regardless of the image's intrinsic aspect ratio (portrait SVGs
   included); object-fit:contain then centers the art within.
   NOTE: the selector is scoped under the wrapper (two classes) so its
   height:100% beats Salient's `.main-content img { height:auto }`. */
.skytracker-logo-grid .skytracker-logo-grid__img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	margin: 0;
	object-fit: contain;
	object-position: center;
}

.skytracker-logo-grid__img--base {
	z-index: 1;
	transition: opacity 0.4s ease, filter 0.4s ease;
}

.skytracker-logo-grid__img--hover {
	z-index: 2;
	opacity: 0;
	transition: opacity 0.4s ease;
	pointer-events: none;
}

/* Optional: desaturate the base image until hover. */
.skytracker-logo-grid--grayscale .skytracker-logo-grid__img--base {
	filter: grayscale(100%);
}

/* Hover / focus reveal. */
.skytracker-logo-grid__item:hover .skytracker-logo-grid__img--hover,
.skytracker-logo-grid__item:focus-visible .skytracker-logo-grid__img--hover,
.skytracker-logo-grid__item:focus-within .skytracker-logo-grid__img--hover {
	opacity: 1;
}

/* When a hover image exists, fade the base out beneath it for a clean crossfade.
   The --dual modifier is added server-side only when a hover image is present. */
.skytracker-logo-grid__item--dual:hover .skytracker-logo-grid__img--base,
.skytracker-logo-grid__item--dual:focus-within .skytracker-logo-grid__img--base {
	opacity: 0;
}

/* If grayscale is on and there is no separate hover image, reveal color on hover. */
.skytracker-logo-grid--grayscale .skytracker-logo-grid__item:hover .skytracker-logo-grid__img--base,
.skytracker-logo-grid--grayscale .skytracker-logo-grid__item:focus-within .skytracker-logo-grid__img--base {
	filter: grayscale(0%);
}

/* Responsive: step columns down on smaller viewports. */
@media (max-width: 999px) {
	.skytracker-logo-grid {
		grid-template-columns: repeat(min(var(--skytracker-logo-grid-columns), 3), minmax(0, 1fr));
	}
}

@media (max-width: 690px) {
	.skytracker-logo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		--skytracker-logo-grid-gap: 28px;
	}
}

@media (max-width: 400px) {
	.skytracker-logo-grid {
		grid-template-columns: 1fr;
	}
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
	.skytracker-logo-grid__img--base,
	.skytracker-logo-grid__img--hover {
		transition: none;
	}
}


/* ==========================================================================
   "Request a Quote" Gravity Form skin (form #1)
   Layout, placeholders and hidden labels are set in the Gravity Forms editor;
   this only re-skins the visuals. Scoped to #gform_wrapper_1 so it never
   affects other forms. If the form is rebuilt with a new ID, either update the
   ID here or add the CSS class `skytracker-quote-form` in the form's settings.
   ========================================================================== */

/* Inputs: black outline, square corners, transparent fill, tall */
#gform_wrapper_1 .gfield input[type="text"],
#gform_wrapper_1 .gfield input[type="email"],
#gform_wrapper_1 .gfield input[type="tel"],
#gform_wrapper_1 .gfield input[type="url"],
#gform_wrapper_1 .gfield input[type="number"],
#gform_wrapper_1 .gfield textarea,
.skytracker-quote-form .gfield input[type="text"],
.skytracker-quote-form .gfield input[type="email"],
.skytracker-quote-form .gfield input[type="tel"],
.skytracker-quote-form .gfield input[type="url"],
.skytracker-quote-form .gfield input[type="number"],
.skytracker-quote-form .gfield textarea {
	border: 1.5px solid #000;
	border-radius: 6px;
	background: transparent;
	background-image: none;
	padding: 22px 24px;
	min-height: 74px;
	font-size: 17px;
	line-height: 1.2;
	color: #000;
	box-shadow: none;
}

/* Focus */
#gform_wrapper_1 .gfield input:focus,
#gform_wrapper_1 .gfield textarea:focus,
.skytracker-quote-form .gfield input:focus,
.skytracker-quote-form .gfield textarea:focus {
	border-color: #000;
	outline: 2px solid rgba(0, 0, 0, 0.28);
	outline-offset: 0;
	background: transparent;
}

/* Placeholder */
#gform_wrapper_1 .gfield input::placeholder,
#gform_wrapper_1 .gfield textarea::placeholder,
.skytracker-quote-form .gfield input::placeholder,
.skytracker-quote-form .gfield textarea::placeholder {
	color: #1a1a1a;
	opacity: 1;
}

/* Name field has two sub-inputs (First / Last) — keep their spacing consistent */
#gform_wrapper_1 .ginput_complex.ginput_container_name,
.skytracker-quote-form .ginput_complex.ginput_container_name {
	gap: 46px;
}


/* Submit: black pill, right-aligned, larger */
#gform_wrapper_1 .gform_footer,
.skytracker-quote-form .gform_footer {
	text-align: right;
	display: flex;
	justify-content: flex-end;
	margin-top: 48px;
}

#gform_wrapper_1 .gform_footer input[type="submit"],
#gform_wrapper_1 #gform_submit_button_1,
.skytracker-quote-form .gform_footer input[type="submit"] {
	background: #000;
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 26px 52px !important;
	font-size: 24px;
	font-weight: 300;
	width: auto;
	cursor: pointer;
	transition: background-color 0.2s ease, opacity 0.2s ease;
}

#gform_wrapper_1 .gform_footer input[type="submit"]:hover,
#gform_wrapper_1 #gform_submit_button_1:hover,
.skytracker-quote-form .gform_footer input[type="submit"]:hover {
	background: #1a1a1a;
	opacity: 0.92;
}

/* Small screens: stack full width (Gravity Forms already collapses columns) */
@media (max-width: 600px) {
	#gform_wrapper_1 .gfield input,
	#gform_wrapper_1 .gfield textarea,
	.skytracker-quote-form .gfield input,
	.skytracker-quote-form .gfield textarea {
		min-height: 64px;
		padding: 18px 20px;
	}

	#gform_wrapper_1 .gform_footer input[type="submit"],
	.skytracker-quote-form .gform_footer input[type="submit"] {
		width: 100%;
		padding: 20px;
	}
}

@media ( min-width: 768px ) {
	#gform_wrapper_1 .gform_fields,
	.skytracker-quote-form .gform_fields {
		gap: 46px 55px;
	}

	#gform_wrapper_1 .ginput_complex.ginput_container_name .name_first {
		padding-right: 0;
	}
	#gform_wrapper_1 .ginput_complex.ginput_container_name .name_last {
		padding-left: 0;
	}
}

.footer-menu ul {
	margin: 0;
}
.footer-menu ul li {
	list-style: none;
	font-size: 20px;
}

.home-hero .nectar-cta {
	transform: translateY(0);
	transition: transform .3s ease-out;
}
.home-hero .nectar-cta:hover {
	transform: translateY(-8px);
}

#header-outer[data-lhe=animated_underline] #top nav>ul>li[class*=button_solid_color]>a,
#top nav>ul>li[class*=button_solid_color]>a,
body #header-outer.transparent #top nav>ul>li[class*=button_solid_color]>a {
	color: #0f0f0f !important;
}

#top .sf-menu > li:not([class*="menu-item-btn"]) > a {
	padding: 0 10px 0 10px;
}

#top .sf-menu > li.nav-button > a:hover .menu-title-text:before {
	opacity: 0 !important;
}

#top .sf-menu > li[class*="current"]:not([class*="menu-item-btn"]) > a .menu-title-text:before,
#top .sf-menu > li:not([class*="menu-item-btn"]) > a:before {
	background-color: rgba(105, 105, 105, .5);
}

#header-outer #top nav>ul>li[class*=button_solid_color]>a {
	color: #0f0f0f !important
}

.flickity-slider .nectar-cta a.link_text,
.nectar-cta.link-border-bottom a.link_text {
	border-bottom: 1px solid;
}

.toggle>.toggle-title a {
	font-size: 28px;
	line-height: 1
}