.fwsso-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 14px 32px !important;
    border-radius: 6px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    border: none !important;
    line-height: 1.4 !important;
    box-sizing: border-box !important;
}

/* Login button - dark style */
.fwsso-btn.fwsso-login-btn,
.fwsso-btn.fwsso-login-btn:link,
.fwsso-btn.fwsso-login-btn:visited,
a.fwsso-btn.fwsso-login-btn,
a.fwsso-btn.fwsso-login-btn:link,
a.fwsso-btn.fwsso-login-btn:visited {
    background: #1a1a1a !important;
    color: #ffffff !important;
    border: 2px solid #1a1a1a !important;
}

.fwsso-btn.fwsso-login-btn:hover,
.fwsso-btn.fwsso-login-btn:focus,
a.fwsso-btn.fwsso-login-btn:hover,
a.fwsso-btn.fwsso-login-btn:focus {
    background: #333333 !important;
    color: #ffffff !important;
    border-color: #333333 !important;
    text-decoration: none !important;
}

/* Login button - outline variant */
.fwsso-btn.fwsso-btn--outline,
a.fwsso-btn.fwsso-btn--outline,
a.fwsso-btn.fwsso-btn--outline:link,
a.fwsso-btn.fwsso-btn--outline:visited {
    background: #ffffff !important;
    border: 2px solid #1a1a1a !important;
    color: #1a1a1a !important;
}

.fwsso-btn.fwsso-btn--outline:hover,
a.fwsso-btn.fwsso-btn--outline:hover {
    background: #1a1a1a !important;
    color: #ffffff !important;
}

/* Login button - minimal variant */
.fwsso-btn.fwsso-btn--minimal,
a.fwsso-btn.fwsso-btn--minimal,
a.fwsso-btn.fwsso-btn--minimal:link,
a.fwsso-btn.fwsso-btn--minimal:visited {
    background: #f5f5f5 !important;
    border: 1px solid #e0e0e0 !important;
    color: #1a1a1a !important;
}

.fwsso-btn.fwsso-btn--minimal:hover,
a.fwsso-btn.fwsso-btn--minimal:hover {
    background: #e8e8e8 !important;
    color: #1a1a1a !important;
}

/* SVG icon inside button */
.fwsso-btn .fwsso-icon,
.fwsso-btn svg {
    flex-shrink: 0 !important;
    width: 20px !important;
    height: 20px !important;
}

.fwsso-btn span {
    color: inherit !important;
}

/* Logout button */
.fwsso-btn.fwsso-logout-btn,
a.fwsso-btn.fwsso-logout-btn,
a.fwsso-btn.fwsso-logout-btn:link,
a.fwsso-btn.fwsso-logout-btn:visited {
    background: #dc3545 !important;
    color: #ffffff !important;
    border: 2px solid #dc3545 !important;
}

.fwsso-btn.fwsso-logout-btn:hover,
a.fwsso-btn.fwsso-logout-btn:hover {
    background: #c82333 !important;
    color: #ffffff !important;
}

/* User info display */
.fwsso-user-info {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Full-height page layout fix */
.fwsso-page-wrap {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.fwsso-page-wrap > *:last-child {
    margin-top: auto;
}

/*
 * Footer sticky fix - common WordPress/Elementor structures
 * Forces footer to bottom of viewport when content is short
 */
body.page:has(.fwsso-btn) {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

body.page:has(.fwsso-btn) #page,
body.page:has(.fwsso-btn) .site,
body.page:has(.fwsso-btn) .elementor {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

body.page:has(.fwsso-btn) .site-content,
body.page:has(.fwsso-btn) .entry-content,
body.page:has(.fwsso-btn) .elementor-section-wrap,
body.page:has(.fwsso-btn) [data-elementor-type="wp-page"] {
    flex: 1;
    display: flex;
    flex-direction: column;
}

body.page:has(.fwsso-btn) footer,
body.page:has(.fwsso-btn) .site-footer,
body.page:has(.fwsso-btn) .elementor-location-footer,
body.page:has(.fwsso-btn) [data-elementor-type="footer"] {
    margin-top: auto !important;
}

