/* ── Advanced Form Widget ───────────────────────────────────────────────── */
.epp-form-wrap{width:100%;box-sizing:border-box;}

/* Grid */
.epp-form-grid{display:flex;flex-wrap:wrap;gap:16px;}
.epp-field{flex:1 1 100%;min-width:0;box-sizing:border-box;}

/* Class-based visibility (JS-controlled) — never use display:none inline */
.epp-field.epp-step-hidden{display:none !important;}
.epp-field.epp-cond-hidden{display:none !important;}

/* Labels */
.epp-field-label{display:block;font-weight:var(--epp-font-semibold,600);font-size:var(--epp-text-sm,13px);color:var(--epp-gray-700,#374151);margin-bottom:6px;}
.epp-required{color:var(--epp-danger,#ef4444);margin-left:2px;}

/* Label position — inline */
.epp-form-wrap.label-inline .epp-field{display:flex;align-items:center;gap:12px;}
.epp-form-wrap.label-inline .epp-field-label{flex-shrink:0;width:140px;margin-bottom:0;text-align:right;}
.epp-form-wrap.label-inline .epp-input{flex:1;}

/* Label position — hidden (use placeholders only) */
.epp-form-wrap.label-hidden .epp-field-label:not(.epp-field-group-label){
    position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;
}

/* Full-width submit button */
.epp-btn-submit.btn-full-width{width:100%;justify-content:center;}

/* Inputs */
.epp-input{
    width:100%;padding:10px 14px;
    border:1.5px solid var(--epp-input-border,#e5e7eb);border-radius:var(--epp-radius-sm,6px);
    font-size:var(--epp-text-base,15px);background:var(--epp-input-bg,#fff);color:var(--epp-input-color,#1f2937);
    transition:border-color var(--epp-transition,.22s ease),box-shadow var(--epp-transition,.22s ease);
    appearance:none;
}
.epp-input:focus{outline:none;border-color:var(--epp-primary,#7c3aed);box-shadow:var(--epp-focus-ring,0 0 0 3px rgba(124,58,237,.15));}
.epp-input.epp-has-error{border-color:var(--epp-danger,#ef4444);box-shadow:0 0 0 3px rgba(239,68,68,.15);}
textarea.epp-input{resize:vertical;min-height:110px;}
.epp-input-file{padding:8px 14px;}

/* Field icon wrap */
.epp-field-input-wrap{position:relative;display:flex;align-items:center;}
.epp-field-input-wrap .epp-input{flex:1;}
.epp-field-icon{
    display:inline-flex;align-items:center;justify-content:center;
    flex-shrink:0;pointer-events:none;
    color:var(--epp-gray-400,#9ca3af);
}
.epp-field-icon i{font-size:16px;line-height:1;}
.epp-field-icon svg{width:16px;height:16px;fill:currentColor;}
/* Prefix: icon left, pad input left */
.epp-field-input-wrap.icon-prefix .epp-field-icon--prefix{
    position:absolute;left:12px;z-index:1;
}
.epp-field-input-wrap.icon-prefix .epp-input{padding-left:38px;}
/* Suffix: icon right, pad input right */
.epp-field-input-wrap.icon-suffix .epp-field-icon--suffix{
    position:absolute;right:12px;z-index:1;
}
.epp-field-input-wrap.icon-suffix .epp-input{padding-right:38px;}

/* Options (radio/checkbox) */
.epp-options-group{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
.epp-option-label{display:flex;align-items:center;gap:8px;font-size:var(--epp-text-sm,13px);cursor:pointer;}
.epp-option-label input{width:16px;height:16px;cursor:pointer;accent-color:var(--epp-primary,#7c3aed);}

/* Field error */
.epp-field-error{font-size:var(--epp-text-xs,11px);color:var(--epp-danger,#ef4444);margin-top:4px;min-height:16px;}

/* Actions */
.epp-form-actions{display:flex;gap:12px;align-items:center;margin-top:20px;flex-wrap:wrap;}

/* Buttons */
.epp-form-btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:12px 28px;border:none;border-radius:var(--epp-radius-sm,6px);
    background:var(--epp-primary,#7c3aed);color:#fff;font-weight:var(--epp-font-semibold,600);font-size:var(--epp-text-base,15px);
    cursor:pointer;transition:background var(--epp-transition,.22s ease),transform var(--epp-transition-fast,.15s ease),box-shadow var(--epp-transition,.22s ease);
    box-shadow:var(--epp-shadow-colored,0 4px 12px rgba(124,58,237,.25));
}
.epp-form-btn:hover{background:var(--epp-primary-dark,#6d28d9);transform:translateY(-1px);box-shadow:0 6px 18px rgba(var(--epp-primary-rgb,124,58,237),.35);}
.epp-form-btn:focus-visible{outline:none;box-shadow:var(--epp-focus-ring,0 0 0 3px rgba(124,58,237,.25));}
.epp-form-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none;}
.epp-btn-prev{background:var(--epp-gray-500,#6b7280);box-shadow:none;}
.epp-btn-prev:hover{background:var(--epp-gray-600,#4b5563);}

/* Spinner */
.epp-btn-spinner{
    width:16px;height:16px;border:2px solid rgba(255,255,255,.4);
    border-top-color:#fff;border-radius:50%;
    animation:epp-spin .7s linear infinite;display:none;
}
@keyframes epp-spin{to{transform:rotate(360deg);}}
.epp-form-btn.loading .epp-btn-spinner{display:block;}
.epp-form-btn.loading .epp-btn-text{opacity:.6;}
.epp-form-btn .epp-btn-icon{display:inline-flex;align-items:center;line-height:1;flex-shrink:0;}
.epp-form-btn .epp-btn-icon svg{width:1em;height:1em;fill:currentColor;}
.epp-form-btn .epp-btn-icon-default svg{fill:none;stroke:currentColor;}
.epp-form-btn .epp-btn-icon i{font-size:1em;}

/* Step indicator */
.epp-step-indicator{
    display:flex;align-items:center;gap:0;margin-bottom:28px;
    counter-reset:step;
}
.epp-step-dot{
    display:flex;flex-direction:column;align-items:center;gap:4px;
    flex:1;position:relative;
}
.epp-step-dot::before{
    content:'';position:absolute;top:16px;left:-50%;right:50%;
    height:2px;background:var(--epp-gray-200,#e5e7eb);z-index:0;
}
.epp-step-dot:first-child::before{display:none;}
.epp-step-num{
    width:32px;height:32px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:var(--epp-text-sm,13px);font-weight:var(--epp-font-bold,700);position:relative;z-index:1;
    background:var(--epp-gray-200,#e5e7eb);color:var(--epp-gray-500,#6b7280);transition:background var(--epp-transition,.22s ease),color var(--epp-transition,.22s ease);
}
.epp-step-dot.active .epp-step-num,.epp-step-dot.completed .epp-step-num{background:var(--epp-primary,#7c3aed);color:#fff;box-shadow:var(--epp-shadow-colored,0 4px 8px rgba(124,58,237,.3));}
.epp-step-dot.completed::before{background:var(--epp-primary,#7c3aed);}
.epp-step-label{font-size:var(--epp-text-xs,11px);color:var(--epp-gray-500,#6b7280);text-align:center;}
.epp-step-dot.active .epp-step-label{color:var(--epp-primary,#7c3aed);font-weight:var(--epp-font-semibold,600);}

/* Messages */
.epp-form-message{
    margin-top:16px;padding:12px 16px;border-radius:var(--epp-radius-sm,6px);
    font-size:var(--epp-text-sm,13px);display:none;
}
.epp-form-message.success{display:block;background:var(--epp-success-light,#d1fae5);color:var(--epp-success-text,#065f46);border:1px solid var(--epp-success-border,#a7f3d0);}
.epp-form-message.error{display:block;background:var(--epp-danger-light,#fee2e2);color:var(--epp-danger-text,#991b1b);border:1px solid var(--epp-danger-border,#fecaca);}

/* Honeypot */
.epp-form-wrap .epp-hp{position:absolute;left:-9999px;visibility:hidden;}

/* CAPTCHA */
.epp-captcha-wrap{
    margin-bottom:16px;
}
.epp-captcha-wrap .g-recaptcha,
.epp-captcha-wrap .h-captcha{
    display:inline-block;
}

@media(max-width:600px){
    .epp-form-btn{width:100%;justify-content:center;}
    .epp-field{flex-basis:100% !important;max-width:100% !important;}
    .epp-step-indicator{flex-wrap:wrap;gap:8px;}
    .epp-step-label{display:none;}
    textarea.epp-input{min-height:80px;}
}
