/* 
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 {
	--dark-green: #2F3105;
    --light-green: #AEBD8B;
    --text: #FFFFFF;
    --black: #0F0F0E;
    --op-white: #FFFFFF0D;
    --op-grey: #0F0F0E33;
}

/* General Styles */

body, html {
    overflow-x: clip !important;
}

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

.bg-video {
    inset: 0;
}

.bg-video iframe {
    opacity: 1;
    animation-name: fadeInOpacity;
    animation-iteration-count: 1;
    animation-timing-function: ease-in;
    animation-duration: 1.75s;
}

@Keyframes fadeInOpacity {
    0% {
        opacity: 0;
    }

    80% {
        opacity:0;
    }

    100% {
        opacity: 1;
    }
}

.glass-cta {
    .elementor-cta {
        position: relative;
        overflow: hidden;
        min-height: 350px !important;
        height: 100%;
    }

    .elementor-cta__content {
        position: absolute !important;
        min-height: initial !important;
        bottom: 0;
        left: 0;
        right: 0 !important;
        padding: 2rem !important;
        background: var(--op-white);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);

        /* Use CSS var set by JS */
        transform: translateY(calc(100% - var(--reveal-height, 100px))) !important;
        transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
        will-change: transform !important;

        .elementor-cta__title {
            margin: 0 0 1rem 0 !important;
            padding: 0;
            transition: margin 0.3s ease;
        }

        .elementor-cta__description,
        .elementor-cta__button-wrapper {
            opacity: 0;
            transform: translateY(10px) !important;
            transition: opacity 0.3s ease 0.1s, transform 0.3s ease 0.1s !important;
        }
    }

    .elementor-cta__bg-overlay {
        background: rgba(0, 0, 0, 0.3);
        transition: background 0.3s ease;
    }

    &:hover {
        .elementor-cta__content {
            transform: translateY(0) !important;

            .elementor-cta__description,
            .elementor-cta__button-wrapper {
                opacity: 1;
                transform: translateY(0) !important;
            }
        }
        .elementor-cta__bg-overlay {
            background: rgba(0, 0, 0, 0.5);
        }
    }

    &.no-reveal {
        .elementor-cta {
            min-height: clamp(350px, 450px, 550px) !important;
        }

        .elementor-cta__content {
            transform: translateY(0) !important;
            transition: none !important;
            will-change: auto !important;

            .elementor-cta__description,
            .elementor-cta__button-wrapper {
                opacity: 1;
                transform: translateY(0) !important;
                transition: none !important;
            }
        }

        &:hover .elementor-cta__bg-overlay {
            background: rgba(0, 0, 0, 0.3);
        }
    }
}

ul.elementor-icon-list-items {
    row-gap: 15px !important;
}

.tabs__trigger.e--selected {
    background: var(--light-green) !important;
    color: var(--black) !important;
}

.swiper-pagination {
    bottom: -35px !important;
    left: 30px !important;
    top: unset !important;
}

.elementor-swiper-button-prev {
    right: -100px;
}

.elementor-swiper-button-next {
    right: 100px !important;
}

.parallax-bg {
    background-attachment: fixed !important;
    background-size: cover !important;
    background-position: center !important;
    position: relative !important;
    overflow: hidden !important;
}

#testimonials .elementor-element-312c8ee7 {
    align-items: center;
}

body .col-4-glass-cta-wrapper {
    .elementor-widget-call-to-action {
        width: calc(25% - 25px) !important;
    }
}

@media(max-width: 1000px) {
    body .col-4-glass-cta-wrapper {
        .elementor-widget-call-to-action {
            width: calc(33.3% - 20px) !important;
        }
    }
}

@media(max-width: 800px) {
    body .col-4-glass-cta-wrapper {
        .elementor-widget-call-to-action {
            width: calc(50% - 15px) !important;
        }
    }

    .glass-cta .elementor-cta__content {
        padding: 1.2rem !important;
    }
}

@media(max-width: 690px) {
    #footer .elementor-nav-menu li a {
        justify-content: center !important;
        text-align: center !important;
    }
}

@media(max-width: 480px) {
    body .col-4-glass-cta-wrapper {
        .elementor-widget-call-to-action {
            width: 100% !important;
        }
    }

    .glass-cta .elementor-cta {
        min-height: 250px !important;
    }

    /*.panel[class*="panel__"] {*/
    /*    background-image:*/
    /*            linear-gradient(var(--op-black, #0f0f0e33), var(--op-black, #0f0f0e33)),*/
    /*            linear-gradient(180deg, #AEBD8CBF 0%, #AEBD8B 100%),*/
    /*            var(--panel-bg-image) !important;*/
    /*    background-repeat: no-repeat !important;*/
    /*    background-attachment: scroll !important;*/
    /*    background-size: cover !important;*/
    /*    background-position: center !important;*/
    /*}*/

    /*.panel.panel__precision-work {*/
    /*    --panel-bg-image: url(https://fortifiedfilms.wpenginepowered.com/wp-content/uploads/2026/01/panel-bg-grayscale-precision-work.jpg);*/
    /*}*/

    /*.panel.panel__local-service {*/
    /*    --panel-bg-image: url(https://fortifiedfilms.wpenginepowered.com/wp-content/uploads/2026/01/panel-bg-grayscale-local-service.jpg);*/
    /*}*/

    /*.panel.panel__premium-materials {*/
    /*    --panel-bg-image: url(https://fortifiedfilms.wpenginepowered.com/wp-content/uploads/2026/01/panel-bg-grayscale-premium-materials.jpg);*/
    /*}*/

    /*.panel.panel__long-term-value {*/
    /*    --panel-bg-image: url(https://fortifiedfilms.wpenginepowered.com/wp-content/uploads/2026/01/panel-bg-grayscale-value.jpg);*/
    /*}*/
}

@media (hover: none) and (pointer: coarse) {
    .parallax-bg {
        background-attachment: scroll !important;
    }

    /* Pseudo-element holds the pattern for parallax */
    .parallax-bg::before {
        content: '';
        position: absolute;
        top: -15%;
        left: 0;
        width: 100%;
        height: 130%; /* Extra height for movement */
        background-image: var(--parallax-bg-image);
        background-size: cover;
        background-position: center;
        background-repeat: repeat; /* Since it's a pattern */
        z-index: 0; /* Above bg-color, below content */
        will-change: transform;
        transform: translateY(var(--parallax-offset, 0));
        pointer-events: none; /* Don't block clicks */
    }

    /* Hide ONLY the background-image, keep background-color */
    .parallax-bg.parallax-ready {
        background-image: none !important;
        /* background-color stays intact */
    }

    /* Ensure overlay gradient is above the parallax pattern */
    .parallax-bg .overlay-section-brand,
    .parallax-bg > [class*="overlay-"] {
        position: relative;
        z-index: 1; /* Above the ::before pseudo-element */
    }
}

/* Gravity Form Styles */

.gf-shortcode {
    background: var(--op-white);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.gform_required_legend {
    display: none;
}

.gform_body input,
.gform_body textarea,
.gform_body select {
    box-shadow: unset !important;
}

/* Labels and Legends */
.gform-field-label,
.gform-body label,
.gform-body legend {
    font-weight: 500 !important;
    font-size: 14px !important;
    color: white !important;
    text-transform: none !important;
}

/* Input Fields */
.gform-body input:not([type="checkbox"]):not([type=button]):not([type=submit]),
.gform-body textarea,
.gform-body select {
    background-color: var(--op-white) !important;
    color: var(--text) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 10px 15px !important;
    font-size: 16px !important;
    line-height: 1.4em !important;
    min-height: 46px !important;

    &::placeholder {
        color: var(--text) !important;
        opacity: 1 !important;
        font-size: 16px !important;
    }
}

.gfield_checkbox input[type=checkbox]+label {
    line-height: 1.5em;
}

.gfield_list_icons button {
    background-color: white !important;

    &:before {
        color: var(--black) !important;

    }
}

.gform_drop_area {
    border: none !important;
    border-radius: 0 !important;
    background: var(--op-white)!important;

    span,
    &:before {
        color: white !important;
    }

    button {
        background: var(--black) !important;
        border-radius: 0 !important;

        &:hover {
            background: var(--light-green) !important;
            color: var(--black) !important;
        }
    }
}

.ginput_preview_list {

    .dashicons:before,
    .gfield_fileupload_progress:before,
    span {
        color: white !important;
    }

    .gfield_fileupload_progressbar_progress {
        background-color: var(--light-green) !important;
    }
}

.gfield_description {
    color: white !important;
}

/* Loading Spinner */
.gform-theme--framework .gform-loader {
    border-block-end-color: var(--light-green) !important;
    border-block-start-color: rgba(255,255,255,.3) !important;
    border-inline-end-color: rgba(255,255,255,.3) !important;
    border-inline-start-color: var(--light-green) !important;
}

/* Submit and Navigation Buttons */
.gform_footer input[type="submit"],
.gform_footer input {
    line-height: 1em !important;
    background: white !important;
    color: var(--black) !important;
    border: none !important;
    margin-bottom: 0 !important;
    font-weight: 500 !important;
    padding: 16px 32px !important;
    border-radius: 0px !important;
    font-size: 15px !important;
    transition: all 250ms ease !important;
}

/* Form Footer */
.gform_footer {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 30px !important;
    justify-content: end !important;
}

.gform_footer input[type="submit"]:focus {
    outline: transparent auto 0px !important;
    background-color: white !important;
    color: var(--black) !important;
}

/* Confirmation Message */
.gform_confirmation_message {
    padding: 30px;
    background: var(--op-white);
    color: var(--text);
    border-radius: 0;
    text-align: center;
    font-size: 16px;
    line-height: 1.4em;
}

/* 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 #292928 inset !important;
}

input:-webkit-autofill,
select:-webkit-autofill {
    -webkit-text-fill-color: var(--text) !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: 1px solid salmon !important;
}
