/* Public TradingCode buttons. Shared by Bootstrap pages, funnels, Kit and quiz.
 * Important declarations form the compatibility boundary for provider-injected
 * styles and older page-local CTA rules. Layout widths remain page-owned.
 */
:root {
    --tc-button-font: 'Roboto', sans-serif;
    --tc-button-green: #57a220;
    --tc-button-green-hover: #458119;
    --tc-button-dark: #212529;
    --tc-button-focus: #458119;
}
body :is(.btn:where(:not(.nav-link)), .button, .qf-btn, .formkit-submit, .tc-cal-btn, .mnd-channels__cta, .vps-offer__button) {
    --tc-button-size: 1rem;
    --tc-button-padding-y: 11px;
    --tc-button-min-height: 48px;
    box-sizing: border-box;
    display: inline-block;
    vertical-align: middle;
    font-family: var(--tc-button-font) !important;
    font-size: var(--tc-button-size) !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    text-align: center !important;
    text-decoration: none;
    border: 1px solid var(--bs-btn-border-color, transparent);
    border-radius: 0 !important;
    padding: var(--tc-button-padding-y) 20px !important;
    min-height: var(--tc-button-min-height);
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
    cursor: pointer;
    box-shadow: none !important;
    transform: none !important;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
body :is(.btn-lg, .qf-btn--large) {
    --tc-button-size: 1.25rem;
    --tc-button-padding-y: 8px;
}
body :is(.btn-sm, .qf-btn--small) {
    --tc-button-size: .875rem;
    --tc-button-padding-y: 9px;
    --tc-button-min-height: 44px;
}
/* Primary actions, including dynamically inserted Kit forms. */
body :is(.btn-primary, .button:not(.secondary), .qf-btn--primary, .formkit-submit, .tc-cal-btn--primary, .mnd-channels__cta, .vps-offer__button) {
    color: #fff !important;
    background: var(--tc-button-green) !important;
    border-color: var(--tc-button-green) !important;
}
body :is(.btn-primary, .button:not(.secondary), .qf-btn--primary, .formkit-submit, .tc-cal-btn--primary, .mnd-channels__cta, .vps-offer__button):is(:hover, :focus-visible, :active) {
    color: #fff !important;
    background: var(--tc-button-green-hover) !important;
    border-color: var(--tc-button-green-hover) !important;
}
body .btn-outline-primary {
    color: var(--tc-button-green) !important;
    background: transparent !important;
    border-color: var(--tc-button-green) !important;
}
body .btn-outline-primary:is(:hover, :focus-visible, :active) {
    color: #fff !important;
    background: var(--tc-button-green-hover) !important;
    border-color: var(--tc-button-green-hover) !important;
}
/* Secondary actions keep the site's dark outline treatment. */
body :is(.btn-outline-dark, .btn-outline-secondary, .button.secondary, .qf-btn--ghost, .qf-btn--small:not(.qf-btn--primary), .tc-cal-btn--ghost) {
    color: var(--tc-button-dark) !important;
    background: transparent !important;
    border-color: var(--tc-button-dark) !important;
}
body :is(.btn-outline-dark, .btn-outline-secondary, .button.secondary, .qf-btn--ghost, .qf-btn--small:not(.qf-btn--primary), .tc-cal-btn--ghost):is(:hover, :focus-visible, :active) {
    color: #fff !important;
    background: var(--tc-button-dark) !important;
    border-color: var(--tc-button-dark) !important;
}
body :is(.btn-dark, .btn-secondary) {
    color: #fff !important;
    background: #343a40 !important;
    border-color: #343a40 !important;
}
body :is(.btn-dark, .btn-secondary):is(:hover, :focus-visible, :active) { background: #495057 !important; border-color: #495057 !important; }
/* Keep text actions and actions on dark quiz panels legible. */
body .qf-btn--ghost-light { color: #fff !important; background: transparent !important; border-color: #fff !important; }
body .qf-btn--ghost-light:is(:hover, :focus-visible) { color: var(--tc-button-dark) !important; background: #fff !important; }
body .qf-btn--link { text-decoration: underline; }
body :is(.btn:where(:not(.nav-link)), .button, .qf-btn, .formkit-submit, .tc-cal-btn, .mnd-channels__cta, .vps-offer__button):focus-visible {
    outline: 3px solid var(--tc-button-focus) !important;
    outline-offset: 3px;
    box-shadow: none !important;
}
body :is(.btn:where(:not(.nav-link)), .button, .qf-btn, .formkit-submit, .tc-cal-btn):is(:disabled, [aria-disabled="true"], .disabled) {
    opacity: .65;
    cursor: not-allowed;
    pointer-events: none;
}
/* Kit applies fonts and overlays both to the submit element and its text. */
body .formkit-form .formkit-submit > span {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    background: transparent !important;
    padding: 0 !important;
}
@media (prefers-reduced-motion: reduce) {
    body :is(.btn:where(:not(.nav-link)), .button, .qf-btn, .formkit-submit, .tc-cal-btn, .mnd-channels__cta, .vps-offer__button) { transition: none; }
}
