/*
==========================================================================
BLUEPRINT — CTA FORM
==========================================================================
*/

/* INNER LAYOUT */

.rw-cta-inner--form {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding: var( --cta-form-padding, 60px );
    position: relative;
    z-index: 2;
    width: 100%;
    box-sizing: border-box;
}


/* FORM HEADER — always left aligned */

.rw-cta-form-header {
    width: 100%;
    text-align: left;
}

.rw-cta-form-header .rw-cta-eyebrow {
    display: block;
    color: var( --cta-eye-color, #ffffff );
    margin-bottom: 8px;
    text-align: left;
}

.rw-cta-form-header .rw-cta-heading {
    color: var( --cta-title-color, #ffffff );
    margin: 0;
    text-align: left;
}


/* FORM ROW */

.rw-cta-form-row {
    display: flex;
    align-items: flex-start;
    gap: 60px;
    width: 100%;
}


/* FORM COLUMN */

.rw-cta-form-col {
    flex: 1 1 0;
    min-width: 0;
    width: 0;
}


/* SIDEBAR COLUMN */

.rw-cta-sidebar-col {
    flex: 0 0 280px;
    width: 280px;
    min-width: 0;
}


/*
==========================================================================
GRAVITY FORMS — CTA CONTEXT
==========================================================================
*/

/* Always left align */
.rw-cta-form-col .gform_wrapper,
.rw-cta-form-col .gfield_label,
.rw-cta-form-col .gform_footer,
.rw-cta-form-col .gform_body {
    text-align: left;
}

/* Labels */
.rw-cta-form-col .gfield_label,
.rw-cta-form-col .ginput_complex label {
    color: var( --cta-form-label-color, #ffffff ) !important;
    font-weight: 500 !important;
}

/* Required asterisk */
.rw-cta-form-col .gfield_required {
    color: var( --cta-form-required-color, #ff4444 ) !important;
}

/* Inputs, selects, textareas */
.rw-cta-form-col input:not([type="submit"]),
.rw-cta-form-col select,
.rw-cta-form-col textarea {
    background-color: var( --cta-form-input-bg, #ffffff ) !important;
    color: var( --cta-form-input-color, #333333 ) !important;
    border-color: var( --cta-form-border-color, rgba(255,255,255,0.3) ) !important;
    padding: 12px 10px !important;
}

/* Placeholders */
.rw-cta-form-col input::placeholder,
.rw-cta-form-col textarea::placeholder {
    color: var( --cta-form-placeholder-color, rgba(0,0,0,0.4) ) !important;
}

/* Required indicator text */
.rw-cta-form-col .gform_required_legend {
    color: var( --cta-form-label-color, #ffffff ) !important;
    opacity: 0.7;
}

/* Submit button — mirrors .rw-cta-btn padding-box/border-box gradient border technique */
/* Submit button — ::after ring handled by blueprint-suite gf-submit.css */
.rw-cta-form-col input[type="submit"],
.rw-cta-form-col button[type="submit"] {
    background:     var( --cta-btn-bg ) !important;
    color:          var( --cta-btn-text ) !important;
    border:         none !important;
    border-radius:  var( --cta-btn-radius, var( --rw-btn-radius, 4px ) ) !important;
    padding:        var( --cta-btn-padding, var( --rw-btn-pad-t, 12px ) var( --rw-btn-pad-r, 24px ) var( --rw-btn-pad-b, 12px ) var( --rw-btn-pad-l, 24px ) ) !important;
    font-size:      var( --rw-btn-font-size, 16px ) !important;
    font-weight:    var( --rw-btn-font-weight, 500 ) !important;
    text-transform: var( --rw-btn-case, capitalize ) !important;
    transition:     background 0.25s ease, color 0.25s ease !important;
    cursor: pointer;
    line-height: 1.5;
}

.rw-cta-form-col input[type="submit"]:hover,
.rw-cta-form-col button[type="submit"]:hover {
    background: var( --cta-btn-hover-bg ) !important;
    color:      var( --cta-btn-hover-text ) !important;
}

/* input[type=submit] fallback — no ::after support on input elements */
.rw-cta-form-col input[type="submit"] {
    border: var( --rw-gf-ring-w, 0px ) solid var( --rw-gf-ring, transparent ) !important;
}


/*
==========================================================================
CONTACT SIDEBAR
==========================================================================
*/

.rw-contact-sidebar {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.rw-contact-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Icon */
.rw-contact-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var( --contact-icon-box-size, 40px );
    height: var( --contact-icon-box-size, 40px );
    font-size: var( --contact-icon-size, 16px );
    border-radius: var( --contact-icon-radius, 50% );
    border: var( --contact-icon-border-width, 1px ) solid var( --contact-icon-color );
    background-color: var( --contact-icon-bg, transparent );
    color: var( --contact-icon-text, var( --contact-icon-color ) );
    flex-shrink: 0;
    margin-bottom: 4px;
    line-height: 1;
}

.rw-cta-section--form .rw-contact-icon {
    color: var( --cta-sidebar-icon-color, #ffffff );
    border-color: var( --cta-sidebar-icon-color, #ffffff );
    background-color: var( --contact-icon-bg, transparent );
}

/* Label */
.rw-contact-label {
    color: var( --contact-label-color );
    margin: 0 0 2px;
}

.rw-cta-section--form .rw-contact-label {
    color: var( --cta-sidebar-label-color, #ffffff );
}

/* Value */
.rw-contact-value {
    font-size: 14px;
    line-height: 1.5;
    color: var( --contact-value-color );
}

.rw-cta-section--form .rw-contact-value {
    color: var( --cta-sidebar-value-color, rgba(255,255,255,0.85) );
}

.rw-contact-value a {
    color: inherit;
    transition: opacity 0.2s ease;
}

.rw-contact-value a:hover {
    opacity: 0.75;
    text-decoration: underline;
    color: inherit;
}


/*
==========================================================================
SOCIAL ICONS
==========================================================================
*/

.rw-social-icons {
    display: flex;
    flex-wrap: wrap;
    gap: var( --social-gap, 8px );
    margin-top: 4px;
}

.rw-social-icon-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var( --social-box-size, 36px );
    height: var( --social-box-size, 36px );
    border-radius: var( --social-radius, 50% );
    background-color: var( --social-bg, transparent );
    border: var( --social-border, 1px solid currentColor );
    color: var( --social-icon-color, #ffffff );
    font-size: var( --social-icon-size, 14px );
    text-decoration: none;
    transition: opacity 0.2s ease;
    flex-shrink: 0;
}

/* Override social colors inside CTA sidebar */
.rw-cta-section--form .rw-cta-sidebar-col .rw-social-icon-link {
    color: var( --cta-sidebar-social-color, #ffffff ) !important;
    border-color: var( --cta-sidebar-social-border-color, #ffffff ) !important;
}

.rw-cta-section--form .rw-cta-sidebar-col .rw-social-icons {
    --social-icon-color: var( --cta-sidebar-social-color, #ffffff );
}

.rw-social-icon-link:hover {
    opacity: 0.7;
}

/* Fix FA icon vertical alignment */
.rw-social-icon-link i,
.rw-social-icon-link svg {
    line-height: 1;
    display: block;
}


/*
==========================================================================
RESPONSIVE
==========================================================================
*/

@media screen and ( max-width: 992px ) {

    .rw-cta-form-row {
        flex-direction: column;
        gap: 20px;
    }

    .rw-cta-form-col,
    .rw-cta-sidebar-col {
        width: 100%;
        flex: 1 1 100%;
    }

}

@media screen and ( min-width: 769px ) and ( max-width: 992px ) {

    .rw-contact-sidebar {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 24px;
    }

    .rw-contact-item {
        flex: 0 0 calc( 50% - 12px );
    }

}

@media screen and ( max-width: 768px ) {

    .rw-cta-inner--form {
        padding: 60px 30px;
        gap: 20px;
    }

    .rw-contact-sidebar {
        flex-direction: column;
        align-items: flex-start;
    }

    .rw-contact-item {
        flex: 1 1 100%;
        text-align: left;
    }

    .rw-contact-label,
    .rw-contact-value {
        text-align: left;
        justify-content: flex-start;
    }

}

@media screen and ( max-width: 576px ) {

    .rw-cta-inner--form {
        gap: 20px;
    }

    .rw-cta-form-header,
    .rw-cta-form-header .rw-cta-eyebrow,
    .rw-cta-form-header .rw-cta-heading,
    .rw-contact-sidebar,
    .rw-contact-item,
    .rw-contact-label,
    .rw-contact-value,
    .rw-social-icons {
        text-align: left;
        justify-content: flex-start;
    }

    .rw-contact-sidebar {
        flex-direction: column;
    }

    .rw-contact-item {
        flex: 1 1 100%;
    }

}