/* Things Avada's JavaScript used to do, done in CSS instead. */

/* Entrance animations: content started hidden until a script revealed it. */
.fusion-animated, [data-animationtype] { visibility: visible !important; opacity: 1 !important; animation: none !important; }

/* Mobile menu (Avada cloned the desktop menu into this holder with JS). */
.fusion-mobile-nav-holder > ul { display: none; }
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded { display: block !important; }
.fusion-mobile-nav-holder.fusion-mobile-menu-expanded > ul { display: block; }
.fusion-mobile-nav-holder .mobile-nav-heading > span { display: block; padding: 0 20px; font-family: Montserrat, Arial, Helvetica, sans-serif; color: #333; }

/* Static first slide in place of Revolution Slider. */
.static-hero { background-size: cover; background-position: center center; min-height: 380px; display: flex; align-items: center; width: 100%; max-width: 100%; box-sizing: border-box; }
/* width is explicit so aspect-ratio + min-height can't widen the hero past the screen on phones */
.static-hero-inner { min-width: 0; box-sizing: border-box; max-width: 1170px; margin: 0 auto; padding: 0 30px; width: 100%; }
.static-hero-inner p { max-width: 560px; color: #fff; font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: 20px; line-height: 30px; background: rgba(3, 83, 160, .85); padding: 20px 25px; margin: 0; }

/* Lead form honeypot: off-screen, never seen by people. */
.lead-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.wpcf7-response-output[hidden] { display: none; }
form.sent .wpcf7-response-output { border: 2px solid #46b450; }
form.failed .wpcf7-response-output, form.invalid .wpcf7-response-output { border: 2px solid #dc3232; }

/* Mobile menu items (Avada 7 styles these when its JS builds the menu). */
.fusion-mobile-nav-holder .fusion-mobile-menu { margin: 0; padding: 0; list-style: none; border-top: 1px solid #e5e5e5; }
.fusion-mobile-nav-holder .fusion-mobile-nav-item a { display: block; padding: 0 20px; line-height: 42px; border-bottom: 1px solid #e5e5e5; color: #333; font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: 14px; }
.fusion-mobile-nav-holder .fusion-mobile-sub-item a { padding-left: 36px; }
.fusion-mobile-nav-holder .fusion-mobile-current-nav-item > a, .fusion-mobile-nav-holder .fusion-mobile-current-nav-item > a .menu-text { color: #fff; }

/* Lazy-load placeholders are gone; never hide images waiting for a script. */
img.lazyload, img.lazyloading, .lazyload { opacity: 1 !important; visibility: visible !important; }

/* Font Awesome 4.7 icon font, self-hosted (the old sites loaded it from use.fontawesome.com). */
@font-face { font-family: 'FontAwesome'; src: url('/fonts/fa4/fontawesome-webfont.woff2') format('woff2'), url('/fonts/fa4/fontawesome-webfont.woff') format('woff'); font-weight: normal; font-style: normal; font-display: block; }
@font-face { font-family: 'fontawesome'; src: url('/fonts/fa4/fontawesome-webfont.woff2') format('woff2'), url('/fonts/fa4/fontawesome-webfont.woff') format('woff'); font-weight: normal; font-style: normal; font-display: block; }

/* Avada "100% height" containers: its JS set them to the window height minus the header, growing with the content.
   Without that JS they fall back to a fixed height and taller content spills under the header. */
.fullwidth-box.hundred-percent-height { height: auto !important; min-height: calc(100vh - 160px); }
.fullwidth-box.hundred-percent-height > .fusion-fullwidth-center-content { height: auto !important; min-height: inherit; }

/* WordPress theme page preloaders: their hide-on-load script is not carried over, so they would cover the page forever. */
#ct-loadding,.ct-loader,#preloader,.preloader,#page-preloader,.page-loader,#loader-wrapper,.site-loader{display:none!important}

/* CTA bands ("Looking for more information?", "Ready to get started?"): the speech-bubble and phone icons are a
   background on the column wrapper, which the theme stretched over the whole column and its text. Keep them a
   small icon to the left of the text, which starts after it. */
.fusion-layout-column.lefticon > .fusion-column-wrapper { background-size: 70px auto !important; background-position: 0 0 !important; padding-left: 90px !important; min-height: 70px; }
@media (max-width: 600px) {
  .fusion-layout-column.lefticon > .fusion-column-wrapper { background-size: 48px auto !important; padding-left: 64px !important; min-height: 48px; }
}

/* Page title band: the theme's 60px title ran off the screen on phones ("Understandi..."). */
@media (max-width: 800px) {
  .fusion-page-title-bar { --page_title_font_size: 40px; }
  .fusion-page-title-bar h1, .fusion-page-title-bar .entry-title { font-size: 40px !important; line-height: 1.2 !important; overflow-wrap: break-word; }
}
@media (max-width: 480px) {
  .fusion-page-title-bar { --page_title_font_size: 30px; }
  .fusion-page-title-bar h1, .fusion-page-title-bar .entry-title { font-size: 30px !important; }
}

/* Mobile menu button: was 21x21px in light blue (2.3:1 on white). 44px tap target, dark blue icon (7.6:1). */
.fusion-mobile-menu-icons a.fusion-icon { display: inline-flex !important; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; font-size: 26px !important; color: #0353a0 !important; }
.fusion-mobile-menu-icons a.fusion-icon::before { color: #0353a0 !important; }

/* Service areas: the intro's Bay Bridge photo sat behind the text once the columns stacked; hide it on phones. */
@media (max-width: 800px) {
  .sa-intro { background-image: none !important; }
}
.sa-cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0 0; }
.sa-cta a { display: inline-block; padding: 14px 22px; font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: 16px; font-weight: 700; line-height: 1.2; text-decoration: none; }
.sa-cta .sa-cta-call { background: #0353a0; color: #fff; }
.sa-cta .sa-cta-quote { border: 2px solid #0353a0; color: #0353a0; background: #fff; }
.sa-cta a:hover, .sa-cta a:focus { background: #023a70; border-color: #023a70; color: #fff; }

/* Blog sidebar "More From San Francisco, CA": the recent-posts list. */
.recent-posts { margin: 0; padding: 0; list-style: none; }
.recent-posts li { padding: 8px 0; border-bottom: 1px solid #e5e5e5; }
.recent-posts a { font-family: Montserrat, Arial, Helvetica, sans-serif; font-size: 14px; line-height: 1.4; }

/* Post sidebar: the child theme's sidebar-bg.png was never on this site (404 on every post). */
.single #sidebar { background-image: none !important; }
