/*
Custom CSS for website theme
Version: 1.0
Description: Used to establish the look and feel for the custom website
Author: Full Spectrum Marketing
Author URL: http://www.fsm.agency
*/

/* VARIABLES */
:root {
    /* Brand Color Palette */
    --Brand-Color-Primary: #005195;
    --Brand-Color-Secondary: #8ACDFA;
    --Brand-Color-3: #F5FBFE;
    --Brand-Color-4: #031A42;
    --Brand-Color-5: #2078B3;
    --Brand-Color-6: #69CD72;
	/* Default Colors */
    --Default-Black: #16242E;
    --Default-White: #FFF;
    /* Typography */
    --Heading-1-Size: clamp(2.375rem, round(0.857rem + 4.857cqi, 0.5rem), 4.5rem);
    --Heading-2-Size: clamp(1.875rem, round(0.625rem + 4cqi, 0.5rem), 3.625rem);
    --Heading-3-Size: clamp(1.5rem, round(0.875rem + 2cqi, 0.5rem), 2.175rem);
    --Heading-4-Size: clamp(1.25rem, round(0.893rem + 1.143cqi, 0.5rem), 1.45rem);
    --Heading-5-Size: clamp(1.125rem, round(0.857rem + 0.857cqi, 0.5rem), 1.5rem);
    --Heading-6-Size: clamp(1.125rem, round(0.857rem + 0.857cqi, 0.5rem), 1.5rem);
    --Body-Size: clamp(0.875rem, round(0.786rem + 0.286cqi, 0.5rem), 1rem);
    --Body-Size-lg: clamp(1rem, round(0.911rem + 0.286cqi, 0.5rem), 1.125rem);
	--Font-Heading-Sans: "Work Sans", sans-serif;
    --Font-Heading-Serif: "Work Sans", sans-serif;
    --Font-Body: "Roboto", Helvetica, Arial, Lucida, sans-serif;
    --Font-Body-Alt: ;
	/* Standards */
    --Line-Height-xs: 1;
    --Line-Height-s: 1.05;
    --Line-Height-m: 1.2;
    --Line-Height-l: 1.5;
    --Line-Height-xl: 2;
    --Font-Weight-Light: 300;
    --Font-Weight-Regular: 400;
    --Font-Weight-Bold: 800;
    --Font-Weight-Extra-Bold: 900;
	/* Border Radius */
	--fsm-radius-100:4px;
	--fsm-radius-200:8px;
}

div#page-container {
    overflow: hidden;
}

/*  
    Button Styles
*/

/* GLOBAL BUTTON STYLES */
/*Default Button Settings*/
#page-container .et_pb_button {
    color: var(--Default-White) !important;
    text-align: center;
    font-style: normal;
    font-weight: var(--Font-Weight-Bold) !important;
	font-family:var(--Font-Body);
    line-height: normal !important;
    letter-spacing: .32px;
    transition: ease all .3s !important;
    border:none;
}

#page-container .et_pb_button:hover{
    transition: ease all .3s !important;
}

#page-container .et_pb_button:focus {
box-shadow: 0px 0px 14px 0px var(--Brand-Color-5);
}

/*
    BUTTON TEXT IS LIGHT - PRIMARY 
.et_pb_button.fsm-btn-primary 
*/
/*INCLUDES Hero Button ONE*/

#page-container .et_pb_button.fsm-btn-primary,
#page-container .et_pb_button.et_pb_button_one,
input.gform_button{    
	background-color:var(--Brand-Color-5);
    border-bottom: solid 4px transparent !important;
	border-color:transparent!important;
    padding: .8rem 1.3rem!important;
    padding-bottom: calc(.8rem - 4px) !important;
	border-radius: var(--fsm-radius-100)!important;
    color: var(--Default-White);
    font-weight: 700;
    font-size: 18px;
}

#page-container .et_pb_button.fsm-btn-primary:hover,
#page-container .et_pb_button.et_pb_button_one:hover,
input.gform_button:hover{
	background-color:var(--Brand-Color-Primary);
	border-color:var(--Brand-Color-Primary)!important;
	color: var(--Default-White) !important;
    border-bottom: solid 4px var(--Brand-Color-6) !important;
}

/* secondary button text light - SECONDARY
.et_pb_bg_layout_dark.fsm-btn-secondary */

/*INCLUDES Hero Button TWO*/
#page-container .et_pb_button.fsm-btn-secondary,
#page-container .et_pb_button.et_pb_button_two {
	background:transparent;
	color:var(--Brand-Color-5)!important;
	border:solid 2px var(--Brand-Color-5)!important;
	padding: calc(1.5vh - 2px) !important;
    border-radius: var(--fsm-radius-100)!important;
}

#page-container .et_pb_button.fsm-btn-secondary:hover,
#page-container .et_pb_button.et_pb_button_two:hover {
	background:#8ACDFA;
	color:var(--Brand-Color-5)!important;
}

#page-container .et_pb_button.et_pb_bg_layout_dark.fsm-btn-secondary:focus,
#page-container .et_pb_button.et_pb_button_two:focus {
    /*        box-shadow: 0px 0px 15px 0px ###;*/
}

/* alt button text .fsm-btn-alt (white text) */

#page-container .et_pb_button.fsm-btn-alt {
	padding:0!important;
	color:var(--Default-White);
    background-color: transparent;
    border-radius: 0 !important;
    border-bottom: 2px solid #fff;
	padding-bottom: 4px !important;
    transition: ease all .3s !important;

}

#page-container .et_pb_button.fsm-btn-alt:hover i {
	padding-left:5px!important;
    transition: ease all .3s !important;

}

#page-container .et_pb_button.fsm-btn-alt:hover {
	color:#8ACDFA!important;
	border-bottom:4px solid var(--Brand-Color-6)!important;
    transition: ease all .3s !important;

}

/* alt button text .fsm-btn-alt (dark text) */

#page-container .et_pb_button.fsm-btn-alt-dark {
	padding:0!important;
	color:var(--Brand-Color-5) !important;
    background-color: transparent;
    border-radius: 0 !important;
    border-bottom: 2px solid var(--Brand-Color-5);
	padding-bottom: 4px !important;
    transition: ease all .3s !important;
	width:fit-content;
}

#page-container .et_pb_button.fsm-btn-alt-dark:hover i {
	padding-left:5px!important;
    transition: ease all .3s !important;
}

#page-container .et_pb_button.fsm-btn-alt-dark:hover {
	border-bottom:4px solid var(--Brand-Color-6)!important;
    transition: ease all .3s !important;

}

/* alt button text .fsm-btn-cta */

#page-container .et_pb_button.fsm-btn-cta {
	background-color:#031a42;
    border-bottom: solid 4px transparent !important;
	border-color:transparent!important;
    padding: .8rem 1.3rem!important;
    padding-bottom: calc(.8rem - 4px) !important;
	border-radius: var(--fsm-radius-100)!important;
}

#page-container .et_pb_button.fsm-btn-cta:hover {
	border-bottom: solid 4px var(--Brand-Color-6) !important;
    transition: ease all .3s !important;
	background-color:#8acdfa;
	color: var(--Default-White) !important;
}

/* LARGE BUTTON SIZING */
#page-container .et_pb_button.large {
    padding: 1em 2em !important;
    font-size: var(--Body-Size);
}

/* SMALL BUTTON SIZING */
#page-container .et_pb_button.small {
    padding: .7em 1.3em !important;
    font-size: 14px;
}

/*
universal text links
*/
#main-content a:not(.et_pb_button, .icon, img, .fsm-post-list a, .card, .exclude-style, .brand-logos a, .et_pb_button.fsm-btn-alt-dark) {
    border-radius: 4px;
    padding: 2px;
    transition: ease all .2s;
    display: inline;
    overflow: hidden;
    text-decoration: underline;
}

#main-content a:not(.et_pb_button, .icon, img, .fsm-post-list a, .card, .brand-logos a, .et_pb_button.fsm-btn-alt-dark):hover {
    border-radius: 3px;
    background-color: rgba(21, 43, 55, .2);
	transition: ease all .2s;
}

/* 
    Font Sizing
*/

body.et_divi_theme h1 {
    font-size: var(--Heading-1-Size);
	font-weight:var(--Font-Weight-Bold);
	font-family:var(--Font-Heading-Sans);
}

body.et_divi_theme h2 {
    font-size: var(--Heading-2-Size);
	font-weight:var(--Font-Weight-Bold);
	font-family:var(--Font-Heading-Serif);
}

body.et_divi_theme h3 {
    font-size: var(--Heading-3-Size);
	font-family:var(--Font-Heading-Sans);
	font-weight:var(--Font-Weight-Bold);

}

body.et_divi_theme h4 {
    font-size: var(--Heading-4-Size);
	font-family:var(--Font-Heading-Serif);
    font-weight: var(--Font-Weight-Bold);
}

body.et_divi_theme h5 {
    font-size: var(--Heading-5-Size);
	font-family:var(--Font-Heading-Serif);
}

body.et_divi_theme h6 {
    font-size: var(--Heading-6-Size);
}

body,
body p,
body li {
    font-size: var(--Body-Size);
	font-family:var(--Font-Body);
	line-height:var(--Line-Height-l);
	font-weight: var(--Font-Weight-Regular);
	
}

body small {
    font-size: clamp(.5rem, 1.25cqi, .8rem);
}

/*Blog Font Sizes*/
.post-template-default {
    h1 {
        &.entry-title {
            font-size: clamp(1.75rem, round(1.125rem + 2cqi, 0.5em), 2.625rem) !important;
        }
    }

    h2 {
        font-size: clamp(1.5rem, round(0.875rem + 2cqi, 0.5em), 2.375rem) !important;
    }

    h3 {
        font-size: clamp(1.25rem, round(0.75rem + 2cqi, 0.5em), 2.125rem) !important;
    }

    h4 {
        font-size: clamp(1.125rem, round(0.625rem + 2cqi, 0.5em), 1.875rem) !important;
    }

    h5 {
        font-size: clamp(1rem, round(0.5rem + 2cqi, 0.5em), 1.625rem) !important;
    }

    h6 {
        font-size: clamp(0.875rem, round(0.375rem + 2cqi, 0.5em), 1.375rem) !important;
    }
}

/*CUSTOM FONT STYLES*/


/*END FONT STYLE*/

/*
MENU STYLES
*/

#logo {
        max-height: 150%!important;
        position: absolute;
        top: -25px;
		z-index:9;
}

/* IF MENU does not have secondary menu
#logo {
        max-height: 150%!important;
        position: absolute;
        top: 0;
		z-index:9;
}
*/

@media only screen and (max-width:980px) {
#logo {
        max-height: 100%!important;
        top: 0;
	}
	
	#page-container #main-header {
        top: 20px !important;
		padding-bottom:20px;
    }
}

/*IF MENU HAS last-child CTA BUTTON
- Style LI element as button */

ul#mega-menu-primary-menu li:last-child a:not(ul.mega-sub-menu li a) {
    padding: 10px 15px !important;
    margin: 0 !important;
    line-height: 1em !important;
	color:var(--Default-White)!important;
	background-color:var(--Brand-Color-5)!important;
    border-bottom: solid 4px transparent !important;
	border-color:transparent!important;
	padding-bottom: calc(1.5vh - 4px) !important;
	border-radius: var(--fsm-radius-100)!important;
}

ul#mega-menu-primary-menu li:last-child a:not(ul.mega-sub-menu li a):hover {
	background-color:var(--Brand-Color-Primary)!important;
	border-color:var(--Brand-Color-Primary)!important;
    border-bottom: solid 4px var(--Brand-Color-6) !important;
	opacity:unset!important;
}

div#main-header .flex {
    flex-wrap: wrap;
    justify-content: space-between;
    align-content: center;
}

div#main-header #menu {
    display: flex;
    flex-wrap: wrap;
    align-content: center;
}

.mega-sub-menu {
	border-top: 4px solid var(--Brand-Color-Primary)!important;
}

div#mega-menu-wrap-secondary-menu li a{
	font-weight:var(--Font-Weight-Regular)!important;
 	font-size: var(--Body-Size)!important;
}

/*Hover Styles*/

.mega-menu li a {
    color: var(--Default-Black) !important;
    transition: ease all 0.3s !important;
	font-weight:var(--Font-Weight-Bold)!important;
	font-family:var(--Font-Body)!important;
	font-size:20px!important;
}

.mega-menu li a:hover {
    opacity: .8 !important;
}

/*Active Styles*/

.mega-current-menu-item a.mega-menu-link {
    text-decoration: underline 2px inherit !important;
    text-underline-offset: 8px !important;
}

/* MOBILE STYLES */
@media only screen and (max-width:980px) {
    .mega-menu li a {
        color: var(--Default-White) !important;
    }

    #mega-menu-wrap-primary-menu .mega-menu-toggle {
        background: transparent;
    }

    div#mega-toggle-block-0 {
        background: var(--Default-White) !important;
        border: 2px solid var(--Brand-Color-4);
        border-radius: 5px;
    }
	
	ul.mega-sub-menu li a {
        color: var(--Default-Black) !important;
    }
	
	ul#mega-menu-primary-menu li:last-child a:not(ul.mega-sub-menu li a) {
		line-height:1em !important;
		display: flex !important;
    	flex-wrap: wrap;
    	justify-content: center !important;
    	align-content: center !important;
	}

}

/*END MENU*/

/* GLOBAL FORM STYLES */
.gform_wrapper.gravity-theme .gform_validation_errors > h2 {
    font-weight: var(--Font-Weight-Bold) !important;
}

.gform_wrapper.gravity-theme .gform_validation_errors {
    padding: 1em 1em 1em 3em !important;
}

.gform_wrapper.gravity-theme .gfield_validation_message,
.gform_wrapper.gravity-theme .validation_message {
    font-size: 14px !important;
    border-radius: 5px !important;
    padding: .5em .5em .5em 40px !important;
}

.gform_wrapper.gravity-theme .validation_message {
    position: relative;
}

.gform_wrapper.gravity-theme .validation_message::before {
    position: absolute;
    font-family: 'Font Awesome 6 Pro';
    font-weight: var(--Font-Weight-Extra-Bold);
    color: #c02b0a;
    font-size: 20px;
    content: '\f057';
    margin-left: -28px;
}
#page-container .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), #page-container .gform_wrapper textarea.textarea, #page-container div.form_saved_message div.form_saved_message_emailform form input[type=text]{
	    padding: .5vh 1vh!important;
	border-radius: var(--fsm-radius-100)!important;;
border: 1px solid #969696;
background: var(--Default-White);
}

/* CUSTOM FORM STYLES */
/* END FORM STYLES */


/* Slick Defaults */
.slick-slide {
	margin-bottom:0!important;
}

.slick-arrow {
    font-size: 20px !important;
    transition: all .5s ease;
	color:var(--Brand-Color-Primary);
}

.slick-arrow:hover {
    cursor: pointer;
    transition: all .5s ease;
    scale: 1.1 !important;
}

i.slick-arrow:active{
	transition: all .5s ease;
    scale: 1.1 !important;
}

.button-container .slick-arrow:first-child{
  margin-right:5px;
}

.button-container .slick-arrow:last-child{
  margin-left:5px;
}

.left{
    text-align: left;
    align-items: flex-start;	
}

.right{
	text-align: right;
	align-items: flex-end;

}


/*RESUSABLE*/

.flex {
    display: flex;
}

.grid {
    display: grid;
}

.underline,
.hero h1{
    position: relative;
	margin-bottom:40px!important;
}

.underline::before,
.hero h1::before{
    position: absolute;
    content: '';
    width: 150px;
    height: 10px;
    bottom: -20px;
    left: 0;
    background-color: #8acdfa;
}


#fast-gard-dyna .et_pb_row{
    padding: 5vh;

}

#fast-gard-dyna .et_pb_main_blurb_image img{
    display: flex;
    align-items:start;
    width:150px;
    height: 90px;
    object-fit: contain;
}

div#fast-gard-dyna .et_pb_main_blurb_image {
    margin-bottom: 15px!important;
}

.blue-border-top{
    border-top: 10px solid var(--Brand-Color-5);
}

/*.cta-blurbs-section: set left-aligned icon image width*/
.cta-blurbs-section .et_pb_main_blurb_image{
    width: 50px !important;
}

.cta-blurbs-section{
    margin-bottom: 5vh;
}


/*START PAGE ORGANIZATION*/

/*
HOMEPAGE
*/
/*HERO Styles*/
span.et_pb_fullwidth_header_subhead{
	font-size:clamp(1.125rem, round(0.857rem + 0.857cqi, 0.5em), 1.5rem);	
	font-family:var(--Font-Body);
	line-height:var(--Line-Height-m);
	font-weight: 400;
}

.field-services .grid {
    grid-template-columns: repeat(3, 1fr) !important;
	gap:2vh;
}

.field-services .grid img {
margin:auto auto;
}

.brand-logos {
    display: grid;
	grid-template-columns: repeat(5, 1fr) !important;
	gap:2vh;
}

.brand-logos a{
	padding:0!important;
	transition: .3s ease all;
}

.brand-logos img {
    border: 1px solid rgba(22, 36, 40, 0.20);
    border-radius: var(--fsm-radius-100);
    min-width: 100%;
    max-height: 145px;
    object-fit: contain;
    height: 100%;
    padding: 20px;
}

.et_pb_row.half-width .et_pb_column {
    max-width: 50%;
}

.et_pb_row.forty-width .et_pb_column {
    max-width: 40%;
}

.et_pb_row.forty-five-width .et_pb_column {
    max-width: 45%;
}

div#where-we-serve .et_pb_row{
	position:relative;
}

div#where-we-serve .et_pb_row::before{
	content: '';
    position: absolute;
    width: 40%;
    height: 100%;
    background: url(/wp-content/uploads/2025/05/Service-Map-revMay5.png);
    background-position: 50% 15%;
    background-size: auto;
    background-repeat: no-repeat!important;
    top: 0;
    right: 4vw;
}

.cta-content {
    padding: 38px;
    background-color: var(--Brand-Color-Primary);
    border-radius: var(--fsm-radius-200);
}

.vault-graphic svg{
    background: url(<path-to-image>) #F5FBFE 100% / contain no-repeat;
    mix-blend-mode: multiply;
}

.brand-logos a:hover {
    scale: 1.1;
    transition: .3s ease all;
}

@media only screen and (max-width:980px) {

	.et_pb_fullwidth_header .et_pb_fullwidth_header_container .et_pb_button_one{
		margin-right:0;
	}
	
	.et_pb_fullwidth_header .et_pb_fullwidth_header_container{
    width: 85%;
    margin-left: auto!important;
    margin-right: auto!important; 
    }

    .et_pb_row.forty-five-width .et_pb_column {
        max-width: 100%;
    }
	
    .et_pb_row.forty-width .et_pb_column {
        max-width: 100%;
    }
	
	  #vault .et_pb_row{
		  display:flex;
          flex-direction: column;
      }
            
            #vault .mob-col-2 {
                order: 2;
            }
            
            #vault .mob-col-1 {
                order: 1;
            }
        
	div#where-we-serve .et_pb_row::before {
        content: '';
        position: absolute;
        width: 50%;
        background: url(/wp-content/uploads/2025/03/Service-Map.png);
        background-position: center;
        background-size: contain;
        top: 0;
        right: -8%;
    }
	
	.cta-content{
	padding: 0;
    background-color: unset;
    border-radius: unset;
	}
	
	.brand-logos {
    display: unset;
	}
	
	.brand-logos img{
		min-width:unset!important;
        max-width: 95%;
		height: auto;
		padding: 10px;
        margin: 10px;
	}

	.brand-logos .slick-track {
    display: flex;
    height: auto;
    }
	
	.services i{
		color:var(--Default-White);
	}
}

/*end homepage*/

/*PRODUCTS PAGE*/

/*-----------------------*/

/*Blog Section*/


/*END*/


/*
BLOG
*/
/*END*/

/*END*/

/*Please select 1 of the 3 Blog Article Templates & discard unused*/
/*
ALL POSTS OPTION 1
*/

/*END*/

/*
ALL POSTS OPTION 2
*/


/*END*/

/*
ALL POSTS OPTION 3
*/


/*END*/



/*
ABOUT
*/
/*END*/

/*
CONTACT
*/
/*END*/

/*SPLASH PAGE*/

#splash-hero {
    padding: 0;
}

#splash-hero .et_pb_row {
    padding: 1vh 0 ;
}

#splash-hero div.et_pb_button_module_wrapper.et_pb_button_0_wrapper.et_pb_module{
    margin-bottom: 0 !important;
}

#splash-hero-btn-flex{
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

#splash-hero-btn-flex .et_pb_button:first-child{
    margin-right: 2vh;
}

@media only screen and (min-width:768px){
    #home-hero .header-content{
        width: 70%;
    }
    .two-companies .et_pb_text_inner{
        width: 85%;
    }
}

.et_pb_header_content_wrapper p{
    font-size: var(--Heading-4-Size);
}

.location{
    border: 1px solid rgba(0,0,0,.3);
    padding: 3vh;
    border-radius: 5px;
    transition: .2s ease;
}

.location:hover{
    box-shadow: 4px 5px 5px 0px rgba(0,0,0,0.20);
    transition: .2s ease;
}

.pseudolink{
    background-color:var(--Brand-Color-5);
    border-bottom: solid 4px transparent !important;
	border-color:transparent!important;
    padding: .8rem 1.3rem!important;
    padding-bottom: calc(.8rem - 4px) !important;
	border-radius: var(--fsm-radius-100)!important;
    color: var(--Default-White);
    font-weight: 700;
    font-size: 18px;
    width:fit-content;
    transition: .2s ease;
}

.location:hover .pseudolink{
    border-color: var(--Brand-Color-Primary) !important;
    color: var(--Default-White) !important;
    border-bottom: solid 4px var(--Brand-Color-6) !important;
    transition: .2s ease;
}


/*FOOTER*/

#footer h2,
#footer h3,
#footer .et_pb_text_inner,
#footer li,
#footer p{
    color: var(--Default-White);
}

#footer a,
#subfooter a {
    text-decoration: underline;
    color: #fff;
}

.footer-menu ul{
	list-style-type:none;
	padding-left:0;
}

.footer-grid{
    display: grid;
    grid-template-columns: auto auto !important;
    grid-gap: 2vh!important;
}

@media only screen and (max-width:768px){
    .footer-grid{
        grid-template-columns: auto !important;
}
}


.footer-menu .col {
    display: flex;
    flex-wrap: wrap;
    align-content: space-between;
}

.flex-logos-end{
    display: flex;
    justify-content: end;
}

.flex-logos-end img{
    padding-left: 10px;
    transform: scale(.9);
}

.copyright a{
	color:#fff!important;
}

@media only screen and (max-width:768px){
    .flex-logos-end{
        justify-content:center;
    }
}

.footer-menu div{
	width:100%;
}

.footer-menu ul li a{
    color: var(--Default-White)!important;
	text-decoration:none;
	font-family:var(--Font-Body)!important;
	font-weight:var(--Font-Weight-Regular)!important;

}

footer a.parent {
    color: var(--Default-White)!important;
	font-family:var(--Font-Body)!important;
	font-weight:var(--Font-Weight-Bold)!important;
	font-size:20px;
	text-decoration:none!important;
}

footer a.icon.et_pb_with_border{
	background-color:var(--Brand-Color-Primary)!important;
}




/** Reusables **/

.grid{
	display:grid;
}

.two-col{
	grid-template-columns: repeat(2, 1fr) !important;
    grid-gap: 2vh!important;
}

.three-col{
	grid-template-columns: repeat(3, 1fr) !important;
    grid-gap: 2vh!important;
}

.align-center{
	align-content:center;
	align-items:center;
}

@media only screen and (max-width:980px){

.two-col,
	.three-col{
	grid-template-columns: repeat(1, 1fr) !important;
}
	

}