/* 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}

/* Divi: things its JavaScript used to do, done in CSS instead. */
/* Entrance animations (.et_animated / .et-waypoint) and blog-grid cards started at opacity 0 until Divi's script revealed them. */
.et_animated, .et-waypoint, [class*="et_pb_animation_"], .et_pb_blog_grid .et_pb_salvattore_content[data-columns] .et_pb_post { opacity: 1 !important; visibility: visible !important; animation: none !important; transform: none !important; }
/* Blog grid: Salvattore's script used to split the cards into columns. A CSS grid does the same. */
.et_pb_blog_grid .et_pb_salvattore_content[data-columns] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 5.5%; }
.et_pb_blog_grid .et_pb_salvattore_content[data-columns]::before { display: none !important; content: none !important; }
.et_pb_blog_grid .et_pb_salvattore_content[data-columns] .et_pb_post { width: auto !important; margin-right: 0 !important; }
@media (max-width: 980px) { .et_pb_blog_grid .et_pb_salvattore_content[data-columns] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .et_pb_blog_grid .et_pb_salvattore_content[data-columns] { grid-template-columns: minmax(0, 1fr); } }
/* Fixed header: Divi's script padded the page by the header's height so nothing starts underneath it
   (site.js measures it; 134px is the header's height on desktop when the script hasn't run). */
@media (min-width: 981px) { .et_fixed_nav #page-container { padding-top: 134px !important; } }
/* Phone menu button: darker orange (4.6:1 on white) and a 44x44 tap area. */
.mobile_menu_bar { display: flex !important; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding-bottom: 0 !important; }
.mobile_menu_bar::before, .mobile_menu_bar::after { color: #b35f00 !important; }
/* Blog page: the theme's ".page-id-614 article { height: 610px }" was meant for the post cards, but it also fixed the page's
   own wrapper at 610px, so the footer started under the blog grid and the grid covered the footer logo. */
.page-id-614 #main-content > article { height: auto !important; }
