/*
Theme Name: Beaver Builder Child Theme
Theme URI: http://www.wpbeaverbuilder.com
Version: 42.1
Description: Custom designed theme from KO Marketing.
Author: Kris LaGreca
Author URI: http://www.komarketingco.com
template: bb-theme
*/
/* VARIABLES */
:root {
    /* Core Brand Colors */
    --bb-color-oaks-orange: #EC8C22;
    --bb-color-oaks-orange-hover: #C6761D;
    --bb-color-oaks-yellow: #F4C14A;
    --bb-color-oaks-yellow-hover: #D4A937;
    --bb-color-oaks-charcoal: #242424;
    --bb-color-oaks-charcoal-hover: #181818;
    --bb-color-oaks-deep-sea: #26404d;
    --bb-color-off-white: #f2f3f3;
    --bb-color-off-white-hover: #ffffff;
}
/* GLOBAL STYLES & TYPOGRAPHY */

/* General Body Styles */
html {
    font-size: 16px;
}
body, body.fl-builder {
    margin: 0;
    padding: 0;
    font-family: var(--font-body);
    font-weight: 400;
    line-height: 1.8;
    font-size: 1rem;
}
/* Base styles (mobile-first) */
h1, .fl-builder h1 {
    font-size: 2.441rem;
    line-height: 1.2;
}
h2, .fl-builder h2 {
    font-size: 1.953rem;
    line-height: 1.25;
}
h3, .fl-builder h3 {
    font-size: 1.563rem;
    line-height: 1.3;
}
h4, .fl-builder h4 {
    font-size: 1.25rem;
    line-height: 1.35;
}
h5, .fl-builder h5 {
    font-size: 1.125rem;
    line-height: 1.4;
}
h6, .fl-builder h6 {
    font-size: 1rem;
    line-height: 1.5;
}

/* Medium screens (≥768px) */
@media (min-width: 768px) {
    h1, .fl-builder h1 {
        font-size: 3.052rem;
    }
    h2, .fl-builder h2 {
        font-size: 2.441rem;
    }
    h3, .fl-builder h3 {
        font-size: 1.953rem;
    }
    h4, .fl-builder h4 {
        font-size: 1.563rem;
    }
}

/* Large screens (≥1024px) */
@media (min-width: 1024px) {
    h1, .fl-builder h1 {
        font-size: 3.815rem;
    }
    h2, .fl-builder h2 {
        font-size: 3.052rem;
    }
    h3, .fl-builder h3 {
        font-size: 2.441rem;
    }
    h4, .fl-builder h4 {
        font-size: 1.953rem;
    }
}

/* Links */
a:not(:has(img)):not(:has(i)) {
    text-decoration: none;
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 2px;
    transition: color 0.3s ease, background-size 0.3s ease-in-out;
}
a:not(:has(img)):not(:has(i)):hover, a:not(:has(img)):not(:has(i)):focus {
    background-size: 100% 2px;
    text-decoration: none;
    transition: color 0.3s ease, background-size 0.3s ease-in-out;
}
a:has(img), i, a > img, a:has(i) {
    text-decoration: none;
    background-image: none;
    opacity: 1;
    transition: color 0.3s ease, opacity 0.3s ease-in-out;
}
a:has(img):hover, i:hover, a:hover img, a:has(i):hover {
    opacity: 0.5;
    transition: color 0.3s ease, opacity 0.3s ease-in-out;
}

/* COMPONENTS */

/*  Global Button Modules */
body.fl-builder .fl-page .fl-builder-content .fl-button,
body.fl-builder .fl-page .fl-builder-content button,
body.fl-builder .fl-page .fl-builder-content .fl-module-button a,
body.fl-builder .fl-page .fl-builder-content .uabb-button-wrap a.uabb-button,
body.fl-builder .fl-page .fl-builder-content .gform_wrapper input[type="submit"],
body.fl-builder .fl-page .fl-builder-content .gform_wrapper input[type="button"],
body.fl-builder .fl-page .fl-builder-content .myform .gform_wrapper input[type="submit"],
body.fl-builder .fl-page .fl-builder-content .myform .gform_wrapper input[type="button"],
body.fl-builder .fl-page .fl-builder-content .myform .gform_wrapper button[type="button"],
body.fl-builder .fl-page .fl-builder-content .woocommerce-page button[type="submit"],
body.fl-builder .fl-page .fl-builder-content .wc-block-components-button {
    font-size: 1rem;
    letter-spacing: 1px;
    border: none;
    padding: 0.75em 1.5em;
    border-radius: 0;
    cursor: pointer;
    line-height: 1.2;
    text-align: center;
    transition: background-color 0.3s ease;
    overflow-wrap: normal;
  }

body.fl-builder .fl-page .fl-builder-content .fl-button:hover,
body.fl-builder .fl-page .fl-builder-content button:hover,
body.fl-builder .fl-page .fl-builder-content .fl-module-button a:hover,
body.fl-builder .fl-page .fl-builder-content .uabb-button-wrap a.uabb-button:hover,
body.fl-builder .fl-page .fl-builder-content .gform_wrapper input[type="submit"]:hover,
body.fl-builder .fl-page .fl-builder-content .gform_wrapper input[type="button"]:hover,
body.fl-builder .fl-page .fl-builder-content .myform .gform_wrapper input[type="submit"]:hover,
body.fl-builder .fl-page .fl-builder-content .myform .gform_wrapper input[type="button"]:hover,
body.fl-builder .fl-page .fl-builder-content .myform .gform_wrapper button[type="button"]:hover,
body.fl-builder .fl-page .fl-builder-content .woocommerce-page button[type="submit"]:hover,
body.fl-builder .fl-page .fl-builder-content .woocommerce-page a.wc-block-components-button:hover {
    border: none;
	transition: background-color 0.3s ease;
}

/* GF button base — (0,10,2) beats UABB's (0,8,1) */
  body.fl-builder .fl-page .fl-builder-content .myform .uabb-gf-style.uabb-gf-form-style1
  .gform_wrapper.gform-theme.gform-theme--framework input[type="submit"],
  body.fl-builder .fl-page .fl-builder-content .myform .uabb-gf-style.uabb-gf-form-style1
  .gform_wrapper.gform-theme.gform-theme--framework .gform-button {
    border-radius: 0;
    border: none;
    font-size: 1.2rem;
    letter-spacing: 1px;
    padding: 0.75em 1.5em;
    cursor: pointer;
    line-height: 1.2;
    text-align: center;
    transition: background-color 0.3s ease;
    overflow-wrap: normal;
  }

 /* GF step form — Next button (type="button", not covered by existing rule) */
  body.fl-builder .fl-page .fl-builder-content .myform .uabb-gf-style.uabb-gf-form-style1
  .gform_wrapper.gform-theme input[type="button"].gform_next_button,
  /* Previous button — override --secondary variant */
  body.fl-builder .fl-page .fl-builder-content .myform .uabb-gf-style.uabb-gf-form-style1
  .gform_wrapper.gform-theme .gform_previous_button.gform-theme-button--secondary {
	  border-radius:0;
	  border:0;
  }

  /* Content Slider styling  */
body.fl-builder .fl-page .fl-builder-content .fl-content-slider .fl-content-ui-button,
  body.fl-builder .fl-page .fl-builder-content .fl-content-slider .bx-pager-link {
    background-color: transparent;
    background-image: none;
    border: none;
    padding: 0;
    width: auto;
    height: auto;
    min-width: unset;
    min-height: unset;
    border-radius: 0;
    box-shadow: none;
    color: inherit;
  }

  body.fl-builder .fl-page .fl-builder-content .fl-content-slider .bx-pager-link {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #ccc;
    font-size: 0;
    text-indent: -9999px;
    overflow: hidden;
    margin: 0 4px;
    cursor: pointer;
  }

  body.fl-builder .fl-page .fl-builder-content .fl-content-slider .bx-pager-link.active {
    background-color: #333;
  }

/* LAYOUT */

/* Top Bar */
#topbar {
    display: flex;
    font-size: 0.8rem;
    justify-content: space-between;
    text-align: right;
}
#topbar .fl-module-html, #topbar .fl-row-content-wrap {
    padding: 5px;
    margin: 0;
}

/* Main Header */
#mainheader {
    justify-content: space-between; /* Pushes logo left, nav right */
    display: flow;
    align-items: center;
    width: 100%;
}
#mainheader .fl-row-content-wrap {
    margin: 0;
    padding: 0;
}
#mainheader .fl-photo {
    flex: 0 0 auto; /* Logo stays left */
}
#mainheader .fl-photo img {
    width: auto;
}
#mainheader .fl-menu {
    flex: 0 0 auto; /* Menu stays right */
}
#mainheader .fl-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
}
#mainheader .fl-menu a {
    font-size: 1.2rem;
    font-weight: 700;
    text-decoration: none;
}
/* social media share icons */
.social-media-list {
    display: inline-block;
    list-style: none;
    text-align: left;
    margin: 0;
    padding: 0;
    width: 100%;
}
.social-media-list li {
    display: inline-block;
    font-size: 40px;
    margin: 0;
    padding: 0;
}
.social-media-list li a {
    text-decoration: none;
}
.social-media-list li a:focus:not(:focus-visible) {
    outline: none;
}
.social-media-list li a:focus-visible {
    outline: 2px solid var(--bb-color-oaks-yellow);
    outline-offset: 2px;
}
.social-media-list li a:hover, .social-media-list li a:focus {
    text-decoration: none;
    transition: all 0.3s ease;
}
.social-media-list a:not(:has(img)):hover, .social-media-list a:not(:has(img)):focus {
    text-decoration: none;
    transition: all 0.3s ease;
    background-image: none;
    background-position: 0;
    background-repeat: no-repeat;
    background-size: 0;
}

/* PLUGIN/SPECIFIC INTEGRATIONS */

/* Facet WP */
.facetwp-type-checkboxes {
    display: flex;
}
.facetwp-type-checkboxes .facetwp-checkbox {
    margin-left: 20px;
}
.facetwp-facet {
    margin-bottom: 0;
}

/* Gravity Forms */
.uabb-gf-style .ginput_container_select:after {
    display: none;
}

form .gform_body label.gfield_label, form .gform_body legend.gfield_label {
    font-weight: 700;
}

.myform .gform_wrapper .gfield select {
    margin: 0 !important;
}

/* Style Google Maps Autocomplete only inside Gravity Forms */
.gform-body.gform_body gmp-place-autocomplete {
    border: 1px solid var(--bb-color-oaks-deep-sea);
    width: 100%;
    background: var(--bb-color-off-white-hover);
    display: inline-block;
    border-radius: 3px;
    box-sizing: border-box;
}
/* Unify input, textarea, and select field styles */
.gfield .ginput_container input,
.gfield .ginput_container textarea,
.gfield .ginput_container select {
    border: 1px solid var(--bb-color-oaks-deep-sea);
    border-radius: 3px;
}

/* UTILITIES */

/* Accessibility */
.fl-screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
    padding: 0;
    margin: -1px;
}
/* Alignment */
.center {
    text-align: center;
    margin: 0 auto;
}
/* so that font awesome shows up */
.fa, .far, .fas {
    font-family: "Font Awesome 5 Free" !important;
}

/* Global CSS */

/* Global row spacing applied to all Beaver Builder rows */
body .fl-row-content-wrap { padding-top: 60px; padding-bottom: 60px; }

/* Blog page filters styling (FacetWP dropdown and search field) */
select.facetwp-dropdown {
    height: 45px;
    padding: 12px;
    min-width: 240px;
}
input.facetwp-search {
    border: 1px solid var(--bb-color-oaks-deep-sea);
    border-radius: 0;
    padding: 11px;
}
select.facetwp-dropdown:focus:not(:focus-visible) {
    outline: none;
}
select.facetwp-dropdown:focus-visible {
    outline: 2px solid var(--bb-color-oaks-yellow);
    outline-offset: 2px;
}

/* Heading bottom border positioning */
.border-bottom, .border-white { position: relative; }

/* Custom height for hero banners */
#hero .fl-row-content-wrap { min-height: 450px; }
#home-hero .fl-row-content-wrap { min-height: 650px; }

/* Utility spacing class for adding top and bottom space */
.upper-space { margin-top: 50px; margin-bottom: 10px; }

/* Info box spacing between items */
.uabb-info-list .uabb-info-list-wrapper > li {
    padding-bottom: 20px;
    border-bottom: 1px solid var(--bb-color-off-white);
    margin-bottom: 20px;
}
.uabb-info-list .uabb-info-list-wrapper > li:last-child {
    border: 0;
    margin: 0;
}

/* Remove outline (focus dot) from FAQ questions — keep visible for keyboard */
.my-faq .uabb-faq-question-label:focus:not(:focus-visible) {
    outline: none;
}
.my-faq .uabb-faq-question-label:focus-visible {
    outline: 2px solid var(--bb-color-oaks-yellow);
    outline-offset: 2px;
}
