/*
Theme Name:   Hello Elementor Child
Theme URI:    https://elementor.com/
Description:  Child theme of Hello Elementor for Gallagher Co. Home for custom CSS, template overrides, and functions.
Author:       Integrity Marketing Services
Template:     hello-elementor
Version:      1.1.2
Text Domain:  hello-elementor-child
*/

/* =============================================================
   MAIN NAV dropdown (desktop) - scoped :not(.mobile-navigation)
   Brand: Charcoal #1.1.27 | Stone #605D55 | Sand #F5F3EE | Navy #142B4E
   ============================================================= */
.elementor-widget-nav-menu:not(.mobile-navigation) .sub-menu li {
    border: 0 !important;
}
.elementor-widget-nav-menu:not(.mobile-navigation) .sub-menu .elementor-sub-item {
    font-family: "Sentient", Georgia, serif;
    font-size: 15px !important;
    line-height: 1.35;
    color: #1.1.27 !important;
    padding: 11px 18px !important;
    border: 0 !important;
    border-radius: 3px;
    transition: background-color .18s ease, color .18s ease, padding .18s ease;
}
.elementor-widget-nav-menu:not(.mobile-navigation) .sub-menu .menu-item:hover > .elementor-sub-item,
.elementor-widget-nav-menu:not(.mobile-navigation) .sub-menu .elementor-sub-item:hover,
.elementor-widget-nav-menu:not(.mobile-navigation) .sub-menu .elementor-sub-item:focus,
.elementor-widget-nav-menu:not(.mobile-navigation) .sub-menu .current-menu-item > .elementor-sub-item {
    background-color: #F5F3EE !important;
    color: #142B4E !important;
    padding: 11px 12px 11px 24px !important;
}
@media (min-width: 1025px) {
    .elementor-widget-nav-menu:not(.mobile-navigation) .elementor-nav-menu > .menu-item .sub-menu {
        position: absolute;
        background-color: #ffffff !important;
        border: 0 !important;
        border-radius: 3px !important;
        box-shadow: 0 14px 38px rgba(27, 26, 23, 0.16) !important;
        padding: 8px !important;
        min-width: 280px;
        margin-top: 12px !important;
    }
    .elementor-widget-nav-menu:not(.mobile-navigation) .elementor-nav-menu > .menu-item.menu-item-has-children > .sub-menu::before {
        content: ""; position: absolute; top: -12px; left: 0; right: 0; height: 12px;
    }
    .elementor-widget-nav-menu:not(.mobile-navigation) .elementor-nav-menu > .menu-item.menu-item-has-children > .sub-menu::after {
        content: ""; position: absolute; top: -7px; left: 26px; width: 14px; height: 14px;
        background-color: #ffffff; transform: rotate(45deg); border-radius: 3px 0 0 0;
        box-shadow: -3px -3px 10px rgba(27, 26, 23, 0.06);
    }
}

/* =============================================================
   MOBILE NAV (.mobile-navigation) - TEXT STYLING ONLY.
   Drawer provides its own background/spacing/states; we set type
   and remove the default left padding so items align with buttons.
   ============================================================= */
.mobile-navigation .elementor-nav-menu--dropdown .elementor-item,
.mobile-navigation .elementor-nav-menu--dropdown .elementor-sub-item {
    font-family: "Sentient", Georgia, serif;
}
.mobile-navigation .elementor-nav-menu--dropdown .elementor-item {
    font-size: 17px !important;
    padding-left: 0 !important;          /* flush with the drawer's buttons */
}
.mobile-navigation .elementor-nav-menu--dropdown .elementor-sub-item {
    font-size: 15px !important;          /* keeps its own indent for hierarchy */
}

/* =============================================================
   FORMINATOR contact form 165
   Form design is set to "none", so Forminator ships no field
   styling at all. Radio controls and conditional-row collapse
   are handled here.
   Brand: Charcoal #1.1.27 | Stone #605D55 | Sand #F5F3EE | Navy #142B4E
   ============================================================= */

/* -------------------------------------------------------------
   CONDITIONAL GAP FIX
   Forminator hides a conditional field by hiding its .forminator-col,
   but the parent .forminator-row stays in the layout and keeps its
   bottom margin. With 13 hidden fields that stacks into the large
   empty block above SUBMIT. Moving the vertical rhythm onto the
   columns means a row with all columns hidden collapses to zero.
   ------------------------------------------------------------- */
.forminator-custom-form-165 .forminator-row {
    margin-bottom: 0 !important;
}
.forminator-custom-form-165 .forminator-row > .forminator-col {
    margin-bottom: 16px;
}
/* Safety net: if a future Forminator release hides the inner field
   instead of the column, collapse the column too. */
.forminator-custom-form-165 .forminator-col:has( > .forminator-field[style*="none"] ) {
    display: none;
}

/* -------------------------------------------------------------
   RADIO BUTTONS
   Markup is: label.forminator-radio > input + span.forminator-radio-bullet
   + span.forminator-radio-label. The native input is visually hidden
   but stays focusable, and the bullet span becomes the visible control.
   ------------------------------------------------------------- */
.forminator-custom-form-165 .forminator-field-radio [role="radiogroup"] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 28px;
}
.forminator-custom-form-165 .forminator-field-radio .forminator-label {
    flex: 0 0 100%;
    margin-bottom: 2px;
}
.forminator-custom-form-165 label.forminator-radio {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    cursor: pointer;
    font-weight: 400;
}
.forminator-custom-form-165 label.forminator-radio input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    padding: 0;
    opacity: 0;
}
.forminator-custom-form-165 .forminator-radio-bullet {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    border: 1px solid #C9C4B8;
    border-radius: 50%;
    background-color: #ffffff;
    position: relative;
    transition: border-color .16s ease, box-shadow .16s ease;
}
.forminator-custom-form-165 .forminator-radio-bullet::after {
    content: "";
    position: absolute;
    top: 3px;
    right: 3px;
    bottom: 3px;
    left: 3px;
    border-radius: 50%;
    background-color: #142B4E;
    transform: scale(0);
    transition: transform .16s ease;
}
.forminator-custom-form-165 label.forminator-radio:hover .forminator-radio-bullet {
    border-color: #605D55;
}
.forminator-custom-form-165 label.forminator-radio input[type="radio"]:checked ~ .forminator-radio-bullet {
    border-color: #142B4E;
}
.forminator-custom-form-165 label.forminator-radio input[type="radio"]:checked ~ .forminator-radio-bullet::after {
    transform: scale(1);
}
.forminator-custom-form-165 label.forminator-radio input[type="radio"]:focus-visible ~ .forminator-radio-bullet {
    box-shadow: 0 0 0 3px rgba(20, 43, 78, 0.18);
}
.forminator-custom-form-165 .forminator-radio-label {
    color: #1.1.27;
    line-height: 1.3;
}

/* -------------------------------------------------------------
   CONDITIONAL HIDDEN STATE  (the real gap fix)
   Forminator's condition JS adds .forminator-hidden to the column,
   then adds it to the parent row once every column in that row is
   hidden. Because this form uses design "none", the plugin never
   enqueues a stylesheet that defines .forminator-hidden, so those
   elements keep their box and their bottom margins stack into the
   empty block above SUBMIT. Defining the class here is what
   actually collapses it.
   Supersedes the inline-style safety net above.
   ------------------------------------------------------------- */
.forminator-custom-form-165 .forminator-hidden {
    display: none !important;
    margin: 0 !important;
}
