/* ====== Gravity Forms ====== */
.gform_wrapper .ysc-gf-footer { 
    display: block;
}
.gform_wrapper .ysc-wrap { 
    display: flex; 
    justify-content: center; 
    margin: 12px 0 16px; 
}
.gform_wrapper .ysc-wrap .smart-captcha { 
    width: 300px; 
    height: 100px; 
}
/* чтобы кнопка была на своей строке */
.gform_wrapper .ysc-gf-footer .gform_button { 
    display: inline-block; 
    width: auto;
}
/* Тема Gravity Forms (gravity-theme) */
.gform_wrapper.gravity-theme .gform_footer .ysc-gf-footer { 
    width: 100%; 
}

/* ====== Login / Register (wp-login.php) ====== */
#login .ysc-wrap { 
    display: flex; 
    justify-content: center; 
    margin: 12px 0 8px; 
}
#login .ysc-wrap .smart-captcha { 
    width: 300px; 
    height: 100px; 
}
/* «Воздух» между полями и капчей */
#loginform .ysc-wrap { 
    margin-top: 10px; 
    margin-bottom: 12px; 
}
/* Кнопка «Войти» остаётся на своей строке */
#loginform p.submit { 
    margin-top: 8px; 
}

/* Основные стили для видимой капчи */
.smart-captcha.ysc-visible {
    margin: 10px 0;
}

/* Invisible captcha host must remain renderable; move it off-screen instead of display:none */
.smart-captcha.ysc-invisible,
.ysc-hidden-widget {
    position: absolute !important;
    left: -9999px !important;
    top: 0 !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    overflow: hidden !important;
    min-height: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Убираем отступы у врапперов с невидимой капчей */
.ysc-wrap:has(.ysc-invisible),
.ysc-wrap:has(.ysc-hidden-widget) {
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
}

/* Специфичные стили для разных типов форм */
.woocommerce-form-login .ysc-invisible,
.woocommerce-form-register .ysc-invisible,
.woocommerce-form-login .ysc-wrap:has(.ysc-invisible),
.woocommerce-form-register .ysc-wrap:has(.ysc-invisible) {
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
}

.ysc-comment-wrap:has(.ysc-invisible) {
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
}

.ysc-gf-footer .ysc-invisible,
.ysc-gf-footer .ysc-wrap:has(.ysc-invisible) {
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
}

/* Стили для ошибок капчи */
.ysc-user-error-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 10000;
    max-width: 400px;
}

.ysc-user-error {
    background: #f8d7da;
    color: #721c24;
    padding: 15px;
    margin: 10px 0;
    border: 1px solid #f5c6cb;
    border-radius: 5px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.ysc-user-error strong {
    display: block;
    margin-bottom: 5px;
}

/* Стили для ошибок в формах */
.ysc-form-error {
    background: #f8d7da;
    color: #721c24;
    padding: 12px;
    margin: 10px 0;
    border: 1px solid #f5c6cb;
    border-radius: 4px;
}

.ysc-load-error {
    margin: 15px 0;
}

/* Elementor: схлопываем поле, где стоит невидимая капча */
.elementor-form .elementor-field-group.ysc-el-collapse{
  margin:0 !important; padding:0 !important; height:0 !important; min-height:0 !important;
  line-height:0 !important; border:0 !important;
}

/* сам блок капчи не удаляем из layout через display:none - уводим его за экран */
.smart-captcha.ysc-invisible{
  position:absolute !important; left:-9999px !important; top:0 !important;
  width:1px !important; height:1px !important;
  margin:0 !important; padding:0 !important; border:0 !important; overflow:hidden !important;
  min-height:0 !important; opacity:0 !important; pointer-events:none !important;
}

/* наш wrap тоже схлопываем, если есть */
.ysc-wrap.ysc-wrap-invisible{
  position:absolute !important; width:1px !important; height:1px !important;
  overflow:hidden !important; margin:0 !important; padding:0 !important; border:0 !important;
  clip:rect(0 0 0 0) !important; clip-path:inset(50%) !important; min-height:0 !important;
}

/* у формы убираем межполе-зазор, если тема использует переменную */
.elementor-form.ysc-has-invisible{ --e-form-field-gap:0px; }