/* 
Theme Name: NerdStuds
Theme URI: https://github.com/elementor/hello-theme/
Description: This is a custom child theme built using the Elementor Hello theme.
Author: Jeremy Cox
Author URI: https://nerdstuds.com/
Template: hello-elementor
*/

:root {
	--blue: #1D509C;
	--light-blue: #2685C9;
	--black: #231F20;
	--text: #231F20;
	--light-grey: #F5F5F5;
	--opaque-grey: rgba(35, 31, 32, 0.50);
	--opaque-blue: rgba(38, 133, 201, 0.75);
	--blue-shadow: rgba(38, 133, 201, 0.80);
}

/* General Styles */

*:focus:not(:focus-visible),
body input:focus,
body button:focus,
body a:focus,
body i:focus,
body *:focus,
body input:focus-visible,
body button:focus-visible,
body a:focus-visible,
body i:focus-visible,
body *:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

body {
	overflow-x: clip !important;
	overflow-y: auto !important;
}

#mega-menu .e-n-menu-content > .e-con {
	backdrop-filter: blur(25px);
	-webkit-backdrop-filter: blur(25px);
	transform: translateX(-50%) !important;
	left: 50% !important;
}

.elementor-widget-text-editor ul,
.elementor-text-editor ul {
    padding-bottom: 15px !important;
}

.taxonomy-filter .elementor-widget-container,
.blur-bg {
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
}

.service-menu-wrapper {
	padding: 40px 40px 0 !important;
}

.service-menu ul {
	row-gap: 10px;
}

.service-menu .menu-item a {
	padding-top: 0 !important;
	padding-bottom: 40px !important;
}

.service-menu .menu-item a::after {
	border-radius: 4px 4px 0 0 !important;
	box-shadow: 0px 4px 8px 0px rgba(38, 133, 201, 0.80);
}

.service-menu .menu-item a:before {
	content: '/';
	position: absolute;
	display: inline;
	opacity: 1 !important;
	background: transparent !important;
	top: -1px !important;
	left: -7px !important;
}

.taxonomy-filter .e-filter-item:before {
	content: '/';
	position: absolute;
	display: inline;
	top: 6px;
	left: -10px;
}

.service-menu .menu-item a,
.taxonomy-filter .e-filter-item {
	position: relative !important;
	overflow: visible;
}

.sub-service-menu .elementor-item {
	margin: 0 !important;
}

.sub-service-menu .elementor-nav-menu {
	column-gap: 30px;
}

.sub-service-menu .menu-item {
	width: calc(50% - 15px);
}

.sub-service-menu .menu-item a {
	white-space: wrap;
	align-items: start;
}

.taxonomy-filter .e-filter {
	row-gap: 5px !important;
}

.carousel .swiper-slide-image img,
.carousel .swiper-slide-image {
	width: 100%;
	aspect-ratio: 4 / 3 !important;
	object-fit: cover !important;
    border-radius: 24px !important;
	/*box-shadow: 0px 24px 40px 0px rgba(35, 31, 32, 0.10);*/
}

.carousel .elementor-image-carousel-wrapper {
	overflow: clip !important;
}

.carousel .elementor-swiper-button {
	position: relative !important;
	top: 20px !important;
	left: calc(50% - 27px) !important;
	right: unset !important;
	transform: translate(-50%, -50%) !important;
	padding-top: 20px;
}

.carousel .elementor-swiper-button-prev {
	padding-right: 15px !important;
}

.carousel .elementor-swiper-button-next {
	padding-left: 15px !important;
}

.e-n-tabs-heading {
	background: var(--text);
	padding: 50px;
	border-radius: 24px;
	height: fit-content !important;
}

.tabbed-cta .elementor-cta__bg-wrapper {
	border-radius: 24px;
}

body.page-id-181 #footer-cta {
	/* Hides footer cta on Contact page */
	display: none !important;
}

body.page-id-181 #footer {
	padding-top: 70px !important;
}

.elementor-widget-theme-post-content h2,
.elementor-widget-theme-post-content h3 {
	text-align: left !important;
	font-weight: 500 !important;
	margin-top: 20px !important;
	margin-bottom: 15px !important;
}

.elementor-widget-theme-post-content h2 {
	font-size: 46px !important;
}

.elementor-widget-theme-post-content img {
	border-radius: 16px;
	margin: 40px auto;
	width: 100%;
	box-shadow: 0px 24px 40px 0px rgba(35, 31, 32, 0.10);
}

.line-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 2rem;
    padding: 2rem 0;
}

.line-card {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: #fff;
    border: 1px solid var(--light-grey);
    border-radius: 8px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.line-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.line-card img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
    max-height: 80px;
}

.elementor-gallery__titles-container .elementor-item.elementor-item-active:before,
.elementor-gallery__titles-container .elementor-item:hover:before {
    background: var(--blue) !important;
    border-radius: 8px;
}

@media(max-width: 1300px) {
	.e-n-tabs-heading {
		padding: 40px;
	}

	.elementor-widget-theme-post-content h2 {
		font-size: 40px !important;
	}
}

@media(max-width: 1000px) {
	.service-menu .menu-item a {
		padding-bottom: 30px !important;
	}

	.service-menu-wrapper {
		padding: 30px 30px 0 !important;
	}

	.e-n-tabs-heading {
		padding: 30px;
	}

	.elementor-widget-theme-post-content h2 {
		font-size: 36px !important;
	}
}

@media(max-width: 690px) {
	.service-menu .menu-item a {
		padding-bottom: 20px !important;
	}

	.service-menu-wrapper {
		padding: 20px 20px 0 !important;
	}

	.service-menu ul {
		justify-content: center !important;
		margin-inline-end: auto !important;
		margin-inline-start: auto !important;
		width: unset !important;
	}

	.service-menu ul li {
		flex-grow: unset !important;
	}

	body.page-id-181 #footer {
		padding-top: 50px !important;
	}
}

@media(max-width: 480px) {
	.elementor-widget-theme-post-content h2 {
		font-size: 32px !important;
	}

    .line-cards-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr); /* Always 2 columns on mobile */
        gap: 1rem;
        padding: 2rem 0;
    }
}

/* White Manu Styles */
/** body.page-child:not(.page-parent) - indicates nested subpages (but not parent subpages that have a child) Ex: /solutions/commercial/acoustical-treatments **/

body.page-child:not(.page-parent) .main-transparent-nav,
body.single-post .main-transparent-nav,
body.single-portfolio .main-transparent-nav,
body.page-id-181 .main-transparent-nav {
	margin-bottom: 0;
	background: white !important;
	box-shadow: 0px 20px 40px 0px rgba(35, 31, 32, 0.10) !important;
}

body.page-child:not(.page-parent) .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title,
body.page-child:not(.page-parent) .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title:hover,
body.single-portfolio .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title,
body.single-portfolio .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title:hover,
body.single-post .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title,
body.single-post .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title:hover,
body.page-id-181 .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title,
body.page-id-181 .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title:hover {
	transition: all 500ms ease !important;
}

body.page-child:not(.page-parent) .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title:hover .e-n-menu-title-text,
body.single-portfolio .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title:hover .e-n-menu-title-text,
body.single-post .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title:hover .e-n-menu-title-text,
body.page-id-181 .main-transparent-nav .e-n-menu-wrapper .e-n-menu-title:hover .e-n-menu-title-text {
	color: white !important;
	transition: all 500ms ease !important;
}

body.page-child:not(.page-parent) .main-transparent-nav .e-n-menu-wrapper li .e-n-menu-title-text,
body.single-portfolio .main-transparent-nav .e-n-menu-wrapper li .e-n-menu-title-text,
body.single-post .main-transparent-nav .e-n-menu-wrapper li .e-n-menu-title-text,
body.page-id-181 .main-transparent-nav .e-n-menu-wrapper li .e-n-menu-title-text {
	color: var(--text) !important;
	transition: all 500ms ease !important;
}

body.page-child:not(.page-parent) .main-transparent-nav .elementor-widget-icon svg,
body.page-child:not(.page-parent) .main-transparent-nav .elementor-widget-icon svg path,
body.page-child:not(.page-parent) .main-transparent-nav .elementor-widget-n-menu .e-n-menu-title:not(.e-current):not(:hover) .e-n-menu-dropdown-icon svg,
body.single-portfolio .main-transparent-nav .elementor-widget-icon svg,
body.single-portfolio .main-transparent-nav .elementor-widget-icon svg path,
body.single-portfolio .main-transparent-nav .elementor-widget-n-menu .e-n-menu-title:not(.e-current):not(:hover) .e-n-menu-dropdown-icon svg,
body.single-post .main-transparent-nav .elementor-widget-icon svg,
body.single-post .main-transparent-nav .elementor-widget-icon svg path,
body.single-post .main-transparent-nav .elementor-widget-n-menu .e-n-menu-title:not(.e-current):not(:hover) .e-n-menu-dropdown-icon svg,
body.page-id-181 .main-transparent-nav .elementor-widget-icon svg,
body.page-id-181 .main-transparent-nav .elementor-widget-icon svg path,
body.page-id-181 .main-transparent-nav .elementor-widget-n-menu .e-n-menu-title:not(.e-current):not(:hover) .e-n-menu-dropdown-icon svg {
	fill: var(--text) !important;
	transition: all 500ms ease !important;
}

body.page-child:not(.page-parent) .main-transparent-nav > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title:hover,
body.single-portfolio .main-transparent-nav > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title:hover,
body.single-post .main-transparent-nav > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title:hover,
body.page-id-181 .main-transparent-nav > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title:hover {
	border: 1px solid var(--opaque-grey) !important;
}

/* Loop CTA Styles */

.portfolio-loop-cta-item .elementor-cta h3 {
	margin-bottom: 0;
}

/*.portfolio-loop-cta-item .elementor-cta__content {*/
/*	gap: 10px !important*/
/*}*/

.portfolio-loop-cta-item .elementor-cta .elementor-cta__button {
	content: url("/wp-content/uploads/2025/06/icon-arrow-right.svg");
	filter: brightness(0) invert(1);
	background: transparent !important;
}

.portfolio-loop-cta-item .elementor-cta  .elementor-cta__button-wrapper {
	opacity: 0;
	max-height: 1px;
	height: 100%;
	transition: all 500ms ease !important;
	margin-top: 0;
}

.portfolio-loop-cta-item .elementor-cta:hover  .elementor-cta__button-wrapper {
	opacity: 1;
	max-height: 1000px;
	transition: all 500ms ease !important;
	margin-top: 10px;
}

.blog-loop-cta-item  .elementor-cta .elementor-cta__button {
	content: url("/wp-content/uploads/2025/06/icon-arrow-right.svg");
}

.blog-loop-cta-item .elementor-cta__bg-wrapper {
	border-radius: 16px;
}

/* Gravity Form Styles */

.gform_required_legend {
    display: none !important;
}

.gform-theme .gform_description {
    font-size: 16px !important;
}

.gform-theme--framework .gform-loader {
    border-block-end-color: var(--blue) !important;
    border-block-start-color: rgba(32, 76, 229, 0.1) !important;
    border-inline-end-color: rgba(32, 76, 229, 0.1) !important;
    border-inline-start-color: var(--blue) !important;
}

.gform-body .gform_fields {
    row-gap: 25px !important;
}

.gform-body label {
    font-weight: 700 !important;
    color: white !important;
    font-size: 12px !important;
    text-transform: uppercase;
    letter-spacing: 1.6px !important;
}

body .gform-body input::placeholder,
body .gform-body textarea::placeholder,
body .gform-body select::placeholder {
    opacity: .7 !important;
}

body .gform-body input,
body .gform-body textarea,
body .gform-body select {
    border-radius: 8px !important;
    border: none !important;
    background: rgba(255, 255, 255, 0.20) !important;
    color: white !important;
}

body .gform_footer input[type=submit] {
    background: var(--blue) !important;
    padding: 15px 40px !important;
    border-radius: 8px !important;
    font-size: 16px !important;
}

body .gform_footer input[type=submit]:hover {
    background: var(--light-blue) !important;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus,
select:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px rgba(255, 255, 255, 0.20) inset !important;
}

input:-webkit-autofill,
select:-webkit-autofill {
    -webkit-text-fill-color: white !important;
}

.gform_confirmation_message {
    text-align: center !important;
    color: white !important;
    font-size: 20px !important;
    line-height: 1.4em !important;
    border-radius: 16px !important;
    background: var(--blue) !important;
    padding: 30px !important;
}

.gform-theme.gform-theme--framework.gform_wrapper .button:where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, .gform-theme.gform-theme--framework.gform_wrapper .gform-theme-button:where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, .gform-theme.gform-theme--framework.gform_wrapper :where(:not(.mce-splitbtn))>button:not([id*=mceu_]):not(.mce-open):where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, .gform-theme.gform-theme--framework.gform_wrapper button.button:where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, .gform-theme.gform-theme--framework.gform_wrapper input:is([type=submit],[type=button],[type=reset]).button:where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, .gform-theme.gform-theme--framework.gform_wrapper input:is([type=submit],[type=button],[type=reset]):where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, .gform-theme.gform-theme--framework.gform_wrapper input[type=submit].button.gform_button:where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus {
    outline: none !important;
    border: none !important;
}

@media(max-width: 690px) {
    .gform_confirmation_message {
        font-size: 18px !important;
    }
}

/* Autofill Styling */
.gform-body input:-webkit-autofill,
.gform-body input:-webkit-autofill:hover,
.gform-body input:-webkit-autofill:focus,
.gform-body input:-webkit-autofill:active,
.gform-body select:-webkit-autofill,
.gform-body select:-webkit-autofill:hover,
.gform-body select:-webkit-autofill:focus,
.gform-body select:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px #504C4D inset !important;
}

input:-webkit-autofill,
select:-webkit-autofill {
    -webkit-text-fill-color: white !important;
}

/* Error Message Styles */

.gform_validation_errors,
.validation_message {
    display: none !important;
}

.gform_wrapper.gravity-theme .gfield_error label,
.gform_wrapper.gravity-theme .gfield_error legend,
.gfield_required_asterisk {
    color: salmon !important;
}

.gform_body input[aria-invalid=true],
.gform_body select[aria-invalid=true],
.gform_body textarea[aria-invalid=true] {
    border: 2px solid salmon !important;
}