/*
Theme Name: Beaver Builder Child Theme
Theme URI: https://www.wpbeaverbuilder.com
Version: 1.0
Description: An example child theme that can be used as a starting point for custom development.
Author: The Beaver Builder Team
Author URI: https://www.fastlinemedia.com
template: bb-theme
*/

/* Add your custom styles here...Remember to change the Version number above! */ 


/* Global focus ring for keyboard navigation */
*:focus-visible {
  outline: 3px solid #c5a059 !important;
  outline-offset: 2px !important;
}

/* Optional: Prevent default browser outlines on mouse clicks */
*:focus:not(:focus-visible) {
  outline: none !important;
}

 .topHeroSection .fl-col-group {
     display: flex;
     align-items: center;
}
 .topHeroSection .fl-col-group:after,.topHeroSection .fl-col-group:before,.manageBox:before,.manageBox:after,.iconBox1:before,.iconBox1:after {
     display: none !important;
}
 .contentBtm .fl-col-content {
     justify-content: end;
}

 input#gform_submit_button_2.gform_button.button.gform-button--width-full, input#gform_submit_button_1.gform_button.button.gform-button--width-full, #fl-button-group-button-lmrq13zhb6fp-0 .fl-button:is(a, button) > span, #fl-button-group-button-lmrq13zhb6fp-0 .fl-button:is(a, button) > i{
	color:var(--fl-global-primary) !important;
	font-size:16px;
}

input#gform_submit_button_2.gform_button.button.gform-button--width-full:hover{
background-color: var(--fl-global-secondary) !important;
}

blockquote{
border-left: 0px solid #eee !important;
}

.accessPoints:hover{
	background-color: var(--fl-global-primary);
}
 .accessPoints:hover h3 a {
     color: var(--fl-global-white) !important;
}
 .accessPoints:hover .fl-module-button a,.accessPoints:hover .fl-module-button a span,.accessPoints .fl-module-button a:hover,.accessPoints .fl-module-button a:hover span{
     color:var(--fl-global-secondary) !important;
     text-decoration: underline !important;
}
 .accessPoints:hover .iconBox1, .accessPoints1:hover .iconBox1 {
background-color:#1A24561A !important;
	 color:(fl-global-white) !important;
}
.accessPoints:hover div p{
	color:var(--fl-global-color-1) !important;
}

/* Target the image inside .accessPoints when .accessPoints is hovered */
.accessPoints:hover img[src*="-black."] {
    filter: brightness(0) invert(1);
    transition: filter 0.3s ease;
}

/* Optional: Smooth transition when moving the mouse away */
.accessPoints img[src*="-black."] {
    transition: filter 0.3s ease;
}

 button,a,.accessPoints,.accessPoints *{
     transition: 0.5s !important;
}
 .contactUsForm .gform_heading {
     display: none;
}
 .contactUsForm .gform-body.gform_body .gform_fields.top_label {
     display: flex !important;
     flex-wrap: wrap;
     gap: 20px;
}
 .contactUsForm .gform-body.gform_body .gform_fields.top_label .gfield {
     width: 100% !important;
}
 .contactUsForm .ginput_complex.ginput_container {
     gap: 15px;
     margin: 0 !important;
}
 .contactUsForm .ginput_complex.ginput_container>span {
     padding: 0px !important;
}
 .contactUsForm label.gform-field-label,.contactUsForm label.gfield_label {
     font-size: 16px;
     line-height: 1.4;
     color: var(--fl-global-accent);
     font-family: Inter, sans-serif;
     font-weight: 400;
     line-height: 1;
     margin-bottom: 8px;
}
 .contactUsForm input,.contactUsForm textarea {
     border: 1px solid #D1D5DC !important;
     box-shadow: unset !important;
     border-radius: 8px !important;
     min-height: 42px !important;
     outline: 0px !important;
}
 .contactUsForm legend.gfield_label.gform-field-label.gfield_label_before_complex {
     display: none;
}
 .contactUsForm input.gform_button {
     padding: 16px 20px !important;
     background: var(--fl-global-secondary) !important;
     font-family: Inter, sans-serif;
     font-weight: 400;
     font-size: 16px;
     line-height: 1;
     border: 1px solid var(--fl-global-secondary) !important;
     border-radius: 10px !important;
}
 .contactUsForm input.gform_button:hover {
     background-color: var(--fl-global-primary) !important;
     border-color: var(--fl-global-primary) !important;
}
 .btnClass a {
     border-radius: 8px !important;
     padding: 10px 15px !important;
     text-align: center !important;
}
 .btnClass.btn2 a{
     background-color: var(--fl-global-primary);
     color: var(--fl-global-white);
     border: 1px solid var(--fl-global-primary) !important;
}
 .btnClass.btn1 a{
     background-color: var(--fl-global-white);
     color: var(--fl-global-primary);
     border: 1px solid var(--fl-global-primary) !important;
}
 .btnClass.btn1 a:hover,.btnClass.btn2 a:hover{
     color: var(--fl-global-white) !important;
     background-color: var(--fl-global-secondary) !important;
     border-color: var(--fl-global-secondary) !important;
}
 .customIcons span.fl-icon a {
     height: 35px;
     display: block;
}
 .customIcons span.fl-icon a i {
     height: 100%;
     position: relative;
     display: flex;
     justify-content: center;
     align-items: center;
}
 .customIcons span.fl-icon a i:before {
     content: "";
     background-size: 20px;
     background-position: center center;
     background-repeat: no-repeat;
     height: 100% !important;
     width: 100% !important;
}
 .customIcons .fa-facebook-f:before {
     background-image: url(/wp-content/uploads/2026/05/Icon-3.png);
}
 .customIcons .fa-linkedin-in:before {
     background-image: url(/wp-content/uploads/2026/05/Icon-1.png);
}
 .customIcons .dashicons-youtube:before {
     background-image: url(/wp-content/uploads/2026/05/Icon-2.png);
}

 .fl-menu .fl-has-submenu-container:has(button.fl-menu-toggle) {
     grid-template-columns: 1fr 25px;
}
 .popupBtn {
     margin: 0px 15px 0px 90px !important;
}
 .popupBtn .fl-has-submenu-container {
     display: flex !important;
}
 .popupBtn .fl-has-submenu-container button {
     display: none !important;
}
 .popupBtn ul.sub-menu {
     padding: 15px;
}
 .popupBtn ul.sub-menu li.btn1.btn3 {
     margin-bottom: 10px !important;
}
.menuCol ul#sub-menu-251 {
    width: 260px !important;
}
 @media(max-width:1200px){
     .btnClass{
         margin-right: 20px !important;
         margin-left: 20px !important;
    }
     .btnClass.btn1{
         margin-top: 20px;
         margin-bottom: 20px;
    }
     .popupBtn.btnClass {
         margin: 0px 20px 15px 20px !important;
    }
     .popupBtn .fl-has-submenu-container>a {
         width: 100% !important;
    }
     .popupBtn .fl-has-submenu-container button {
         display: block !important;
         opacity: 0;
         position: absolute;
         right: 0;
         left: 0;
         width: 100%;
         top: 0;
         height: 40px;
    }
     .popupBtn ul.sub-menu li.btnClass.btn1,.popupBtn ul.sub-menu li.btnClass.btn2 {
         margin: 0 !important;
    }
     .popupBtn ul.sub-menu li.btnClass.btn1 {
         margin: 0px 0px 10px 0px !important;
    }
     .popupBtn ul.sub-menu {
         margin: 10px 0;
    }
     .popupBtn ul.sub-menu li.btnClass a::before {
         display: none;
    }
    .menuCol ul#sub-menu-251 {
    width: 100% !important;
}
.menuCol .fl-has-submenu ul.sub-menu {
    box-shadow: unset !important;
}
}
 @media(max-width:991px){
     .topHeroSection .fl-col-group {
         flex-direction: column;
    }
}
 @media(max-width:767px){
     .contactUsForm label.gform-field-label,.contactUsForm label.gfield_label {
         font-size: 14px;
    }
     .userImg1 img,.userImg2 img {
         height: 320px !important;
    }
}



/* home page  */

/* ==========================================================================
   FGG ACCESSIBLE TESTIMONIAL & ARROW OVERRIDES
   ========================================================================== */

/* 1. Section Container & Visual Isolation */
.fl-node-ef5lidwz7vn6 {
  background-color: #f8fafc !important; 
  padding: 80px 0 !important;
}

/* Heading Emphasis */
.fl-node-db2e3lw7kmt8 h2,
h2.fl-node-db2e3lw7kmt8 {
  color: #0d233a !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  text-align: center !important;
  margin-bottom: 40px !important;
  letter-spacing: -0.5px;
}

/* 2. The Premium Testimonial Card Frame */
.fl-testimonials-wrap.wide {
  max-width: 920px !important; 
  margin: 0 auto !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-top: 5px solid #c5a059 !important; 
  border-radius: 8px !important;
  padding: 60px 90px 60px 90px !important; 
  box-shadow: 0 20px 40px -15px rgba(13, 35, 58, 0.05) !important;
  position: relative !important;
  overflow: visible !important; /* Keeps desktop side arrows visible outside the card box */
}

.bx-wrapper {
  position: relative !important;
  margin: 0 auto !important;
  padding: 0 !important;
  max-width: 100% !important;
}

.bx-viewport {
  height: auto !important; 
  background: transparent !important;
  overflow: hidden !important; /* Fixes desktop text leak by clipping the adjacent text slides */
}

/* 3. Typography & Text Contrast Overrides */
.fl-testimonial blockquote {
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
}

.fl-testimonial blockquote p span,
.fl-testimonial blockquote p {
  color: #0d233a !important; 
  font-size: 18px !important;
  line-height: 1.8 !important;
  font-weight: 500 !important;
  font-style: italic !important;
}

/* Stylized quote marks framing the content text safely (Desktop Layout) */
.fl-testimonial blockquote p:not(:last-child)::before {
  content: '"';
  color: #c5a059;
  font-size: 36px;
  line-height: 0;
  margin-right: 4px;
  font-family: serif;
}
.fl-testimonial blockquote p:not(:last-child)::after {
  content: '"';
  color: #c5a059;
  font-size: 36px;
  line-height: 0;
  margin-left: 4px;
  font-family: serif;
}

/* Testimonial Attribution Formatting */
.fl-testimonial blockquote p[style*="text-align: right"],
.fl-testimonial blockquote p:last-child {
  text-align: center !important; 
  margin-top: 25px !important;
}

.fl-testimonial blockquote p:last-child span {
  color: #c5a059 !important; 
  font-weight: 700 !important;
  font-style: normal !important;
  font-size: 14px !important;
  text-transform: uppercase !important;
  letter-spacing: 1.5px !important;
}

/* 4. Hardened Side Navigation Arrows (Desktop Baseline) */
.fl-slider-prev,
.fl-slider-next {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 44px !important;  
  height: 44px !important; 
  background-color: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 50% !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.2s ease-in-out !important;
  z-index: 100 !important;
  box-shadow: 0 4px 6px -1px rgba(13, 35, 58, 0.05) !important;
}

/* Enhanced specificity selectors to overpower Beaver Builder's core desktop '0px' placement rules */
.fl-testimonials-wrap.wide .fl-slider-prev { left: 24px !important; }
.fl-testimonials-wrap.wide .fl-slider-next { right: 24px !important; }

.fl-slider-prev::before,
.fl-slider-next::before {
  content: "" !important;
  display: block !important;
  width: 10px !important;
  height: 10px !important;
  border-top: 2.5px solid #0d233a !important; 
  border-right: 2.5px solid #0d233a !important;
  transition: border-color 0.2s ease-in-out !important;
}

.fl-slider-prev::before {
  transform: rotate(-135deg) !important; 
  margin-left: 4px !important;
}

.fl-slider-next::before {
  transform: rotate(45deg) !important; 
  margin-right: 4px !important;
}

.fl-slider-prev:hover, .fl-slider-next:hover {
  background-color: #f8fafc !important;
  border-color: #c5a059 !important;
}
.fl-slider-prev:hover::before, .fl-slider-next:hover::before {
  border-color: #c5a059 !important; 
}

/* 5. Accessible Slider Pager Navigation (Dots - Desktop Only) */
.bx-controls.bx-has-pager,
.bx-wrapper .bx-pager {
  margin-top: 30px !important;
  position: relative !important;
  bottom: 0 !important;
  text-align: center !important;
  width: 100% !important;
  display: block !important;
  left: 0 !important;
}

.bx-default-pager {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 0 10px !important;
}

.bx-default-pager .bx-pager-item {
  display: inline-block !important;
  margin: 0 !important;
}

.bx-default-pager .bx-pager-link {
  background: #cbd5e1 !important;
  width: 12px !important;
  height: 12px !important;
  text-indent: -9999px !important; 
  display: block !important;
  border-radius: 50% !important;
  border: 2px solid transparent !important;
  transition: all 0.2s ease-in-out !important;
  padding: 0 !important;
}

.bx-default-pager .bx-pager-link.active,
.bx-default-pager .bx-pager-link:hover {
  background: #c5a059 !important; 
  transform: scale(1.1);
}

/* 6. Responsive Structural Adaptations */
@media (max-width: 767px) {
  .fl-node-ef5lidwz7vn6 {
    padding: 40px 0 !important;
  }
  
  .fl-testimonials-wrap.wide {
    padding: 40px 24px 85px 24px !important; /* Balanced padding without quotes */
    margin: 0 auto !important;
    max-width: calc(100% - 30px) !important;
    overflow: hidden !important; 
  }

  .bx-wrapper {
    max-width: 100% !important;
    overflow: hidden !important; 
  }

  .bx-viewport {
    overflow: hidden !important; 
  }
  
  .fl-testimonial blockquote p span,
  .fl-testimonial blockquote p {
    font-size: 15px !important;
    line-height: 1.6 !important;
  }
  
  /* Completely drop pseudo-element quotes on mobile viewports */
  .fl-testimonial blockquote p:not(:last-child)::before,
  .fl-testimonial blockquote p:not(:last-child)::after {
    content: "" !important;
    display: none !important;
  }

  .fl-testimonial blockquote p:last-child {
    margin-top: 20px !important;
    margin-bottom: 10px !important;
  }

  /* Completely strip the dot pager containers out on mobile views */
  .bx-controls.bx-has-pager,
  .bx-wrapper .bx-pager,
  .bx-default-pager {
    display: none !important;
  }

  .bx-controls-direction {
    display: block !important;
  }

  /* Absolute position the arrows on mobile layout scales */
  .fl-slider-prev,
  .fl-slider-next,
  .fl-testimonials-wrap.wide .fl-slider-prev,
  .fl-testimonials-wrap.wide .fl-slider-next {
    top: auto !important;
    bottom: 24px !important; 
    transform: none !important;
    width: 44px !important; 
    height: 44px !important;
  }

  /* Keep mobile alignment separate and perfectly nested within the padding constraints */
  .fl-testimonials-wrap.wide .fl-slider-prev {
    display: flex !important;
    left: 24px !important;
  }
  
  .fl-testimonials-wrap.wide .fl-slider-next {
    display: flex !important;
    right: 24px !important;
  }

  /* Make sure disabled layout items stay clean but hold their exact side track positions */
  .bx-wrapper .bx-controls-direction a.disabled {
    opacity: 0.3 !important;
    cursor: default !important;
    pointer-events: none !important;
  }
}

/* ----Modal Overlay----- */
/* Dark blurred fullscreen background overlay */
.fgg-modal-overlay {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-color: rgba(13, 35, 58, 0.85) !important; /* Brand Navy with heavy alpha transparency */
  backdrop-filter: blur(8px);
  z-index: 999999 !important; /* Ensure it is floating on top of headers and page builder tracks */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease-in-out !important;
}

/* Toggle modal state rule */
.fgg-modal-overlay.open {
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Center stage layout wrap frame */
.fgg-modal-container {
  width: 100% !important;
  max-width: 860px !important;
  margin: 0 20px !important;
  position: relative !important;
}

/* Aspect ratio containment wrapper (16:9 widescreen standard widescreen setup) */
.fgg-video-ratio-box {
  position: relative !important;
  padding-bottom: 56.25% !important; /* 16:9 vertical padding spacing ratio */
  height: 0 !important;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
  background: #000000;
}

.fgg-video-ratio-box iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

/* Modern close cross link action trigger */
.fgg-modal-close {
  position: absolute !important;
  top: -45px !important;
  right: 0 !important;
  background: none !important;
  border: none !important;
  color: #ffffff !important;
  font-size: 36px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  opacity: 0.7 !important;
  transition: opacity 0.2s ease !important;
}

.fgg-modal-close:hover {
  opacity: 1 !important;
  color: #c5a059 !important; /* Changes to gold on hover */
}

/* Standard keyboard accessible outline replacements */
.fgg-video-modal-trigger:focus-visible,
.fgg-modal-close:focus-visible {
  outline: 3px solid #c5a059 !important;
  outline-offset: 3px !important;
}