/* Contact Form Builder Frontend v4.3 */
.iwfb-form-container{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;max-width:700px;margin:0 auto}
.iwfb-form{background:#fff;border-radius:16px;box-shadow:0 4px 24px rgba(0,0,0,.08);overflow:hidden;border:1px solid #e2e8f0}

/* ── Column layout: 12-column grid so Full/Half/1-3rd/1-4th widths can
   combine freely on one row (e.g. 4 quarters, 3 thirds, 2 halves, or any
   mix that adds up to 12). ── */
.iwfb-fields-wrap{display:grid;grid-template-columns:repeat(12,1fr);gap:0 20px;padding:28px;padding-bottom:0}
.iwfb-field-full{grid-column:1/-1;padding-bottom:20px}
.iwfb-field-half{grid-column:span 6;padding-bottom:20px}
.iwfb-field-third{grid-column:span 4;padding-bottom:20px}
.iwfb-field-quarter{grid-column:span 3;padding-bottom:20px}

/* Labels */
.iwfb-label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:7px;letter-spacing:.1px}
.iwfb-required{color:#ef4444;margin-left:2px}

/* Field icons — rendered as Font Awesome glyphs, positioned inside the
   input/textarea/select wrapper, or beside the label for checkbox/radio. */
.iwfb-input-wrap{position:relative}
.iwfb-textarea-wrap{position:relative}
.iwfb-field-inner{position:relative}
.iwfb-field-icon{
    position:absolute;left:12px;top:14px;
    font-size:14px;line-height:1;pointer-events:none;color:#94a3b8;z-index:1;
    width:20px;text-align:center;transition:opacity .2s
}
.iwfb-input-wrap .iwfb-field-icon{top:50%;transform:translateY(-50%)}
.iwfb-select-wrap .iwfb-field-icon{top:50%;transform:translateY(-50%)}
.iwfb-label-icon{color:#94a3b8;font-size:13px;margin-right:2px}
/* When icons are hidden, remove the left padding on the affected controls */
.iwfb-no-icons .iwfb-field-icon,
.iwfb-no-icons .iwfb-label-icon{display:none}
.iwfb-no-icons .iwfb-input,
.iwfb-no-icons .iwfb-textarea,
.iwfb-no-icons .iwfb-select-with-icon{padding-left:14px!important}

/* Input */
.iwfb-input{
    width:100%;padding:11px 14px 11px 40px;
    border:1.5px solid #e2e8f0;border-radius:10px;font-size:14px;
    font-family:inherit;color:#1e293b;background:#f8fafc;
    transition:border .2s,box-shadow .2s,background .2s,color .2s;
    outline:none;display:block;box-sizing:border-box
}
.iwfb-input:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
/* Hover border/background driven by CSS variable (falls back to a default) */
.iwfb-input:hover:not(:focus){border-color:var(--iwfb-hover-border,#94a3b8);background:var(--iwfb-hover-bg,#fff)}
.iwfb-input::placeholder{color:#94a3b8}

/* Textarea */
.iwfb-textarea{
    width:100%;padding:11px 14px 11px 40px;border:1.5px solid #e2e8f0;border-radius:10px;
    font-size:14px;font-family:inherit;color:#1e293b;background:#f8fafc;
    resize:vertical;transition:border .2s,box-shadow .2s;outline:none;min-height:100px;display:block;box-sizing:border-box
}
.iwfb-textarea:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.iwfb-textarea:hover:not(:focus){border-color:var(--iwfb-hover-border,#94a3b8)}
.iwfb-textarea::placeholder{color:#94a3b8}

/* Select / Dropdown */
.iwfb-select-wrap{position:relative}
.iwfb-select-wrap::after{
    content:'';position:absolute;right:14px;top:50%;transform:translateY(-50%);
    width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;
    border-top:6px solid #64748b;pointer-events:none
}
.iwfb-select{
    width:100%;padding:11px 38px 11px 14px;border:1.5px solid #e2e8f0;border-radius:10px;
    font-size:14px;font-family:inherit;color:#1e293b;background:#f8fafc;
    appearance:none;cursor:pointer;outline:none;transition:border .2s;display:block;box-sizing:border-box
}
.iwfb-select-with-icon{padding-left:40px}
.iwfb-select:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.iwfb-select:hover:not(:focus){border-color:var(--iwfb-hover-border,#94a3b8)}

/* Checkbox & Radio */
.iwfb-checkbox-group,.iwfb-radio-group{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.iwfb-checkbox-label,.iwfb-radio-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:#374151;line-height:1.4}
.iwfb-checkbox-label input[type="checkbox"],.iwfb-radio-label input[type="radio"]{display:none}
.iwfb-checkbox-custom{width:20px;height:20px;border:2px solid #d1d5db;border-radius:5px;background:#fff;flex-shrink:0;transition:.2s;display:flex;align-items:center;justify-content:center}
.iwfb-checkbox-label input:checked+.iwfb-checkbox-custom{background:#6366f1;border-color:#6366f1}
.iwfb-checkbox-label input:checked+.iwfb-checkbox-custom::after{content:'';width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-2px}
.iwfb-radio-custom{width:20px;height:20px;border:2px solid #d1d5db;border-radius:50%;background:#fff;flex-shrink:0;transition:.2s;display:flex;align-items:center;justify-content:center}
.iwfb-radio-label input:checked+.iwfb-radio-custom{border-color:#6366f1}
.iwfb-radio-label input:checked+.iwfb-radio-custom::after{content:'';width:10px;height:10px;background:#6366f1;border-radius:50%}

/* File upload */
.iwfb-file-wrap{position:relative;cursor:pointer}
.iwfb-file-input{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:2;width:100%;height:100%}
.iwfb-file-display{display:flex;align-items:center;gap:12px;padding:13px 16px;border:2px dashed #d1d5db;border-radius:10px;background:#f8fafc;transition:.2s;pointer-events:none}
.iwfb-file-wrap:hover .iwfb-file-display{border-color:var(--iwfb-hover-border,#6366f1);background:#f0f4ff}
.iwfb-file-icon{font-size:16px;color:#94a3b8}
.iwfb-file-text{font-size:13px;color:#64748b}

/* Heading field */
.iwfb-heading-wrap{padding:4px 0 8px}
.iwfb-heading-text{margin:0;line-height:1.3;font-family:inherit}

/* Hints & errors */
.iwfb-field-hint{font-size:11px;color:#94a3b8;margin-top:5px;display:block}
.iwfb-error-msg{font-size:12px;color:#ef4444;margin-top:4px;display:block}
.iwfb-input.iwfb-field-error,.iwfb-textarea.iwfb-field-error,.iwfb-select.iwfb-field-error{border-color:#ef4444!important}

/* Captcha */
.iwfb-captcha-wrap{padding:4px 0}
.iwfb-captcha-label{font-size:12px;font-weight:600;color:#64748b;margin-bottom:8px;text-transform:uppercase;letter-spacing:.4px}

/* Char counter */
.iwfb-char-counter{text-align:right;font-size:11px;color:#94a3b8;margin-top:4px}
.iwfb-char-counter.iwfb-near-limit{color:#f59e0b}
.iwfb-char-counter.iwfb-at-limit{color:#ef4444}

/* Submit button container — background/positioning controlled by CSS var.
   Actual row placement comes from the parent .iwfb-field-wrap's width class
   (full/half/third/quarter), same as every other field, so the submit
   button can sit full-width or side-by-side with another field. */
.iwfb-submit-wrap{
    padding:20px 28px;
    background:var(--iwfb-submit-bg,#f8fafc);
    border-top:1px solid #e2e8f0;
    border-radius:10px;
    height:100%
}
.iwfb-submit-btn{
    width:100%;padding:14px 28px;background:#6366f1;color:#fff;border:none;
    border-radius:10px;font-size:15px;font-weight:600;font-family:inherit;
    cursor:pointer;transition:all .2s;display:flex;align-items:center;
    justify-content:center;gap:8px;letter-spacing:.2px
}
/* Button hover, driven by CSS variable */
.iwfb-submit-btn:hover{
    background:var(--iwfb-btn-hover,#4338ca);
    transform:translateY(-1px);
    box-shadow:0 8px 25px rgba(99,102,241,.4);
}
.iwfb-submit-btn:active{transform:translateY(0)}
.iwfb-submit-btn:disabled{opacity:.7;cursor:not-allowed;transform:none!important;box-shadow:none!important}

/* Spinner */
@keyframes iwfb-spin{to{transform:rotate(360deg)}}
.iwfb-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:iwfb-spin .8s linear infinite}
.iwfb-submit-loader{display:none;align-items:center;gap:6px}

/* Response */
.iwfb-form-response{display:none;margin:0 28px 20px;padding:14px 18px;border-radius:10px;font-size:14px;font-weight:500;text-align:center;border:1px solid transparent}
.iwfb-response-success{background:#d1fae5;color:#065f46;border-color:#a7f3d0}
.iwfb-response-error{background:#fee2e2;color:#991b1b;border-color:#fca5a5}

/* Honeypot */
.iwfb-form input[name="iwfb_hp_field"]{opacity:0;position:absolute;left:-9999px;height:0;width:0}

@media(max-width:782px){
    .iwfb-field-third,.iwfb-field-quarter{grid-column:span 6}
}
@media(max-width:600px){
    .iwfb-fields-wrap{grid-template-columns:1fr;padding:16px;padding-bottom:0}
    .iwfb-field-half,.iwfb-field-third,.iwfb-field-quarter{grid-column:1/-1}
    .iwfb-submit-wrap{padding:16px}
    .iwfb-form-response{margin:0 16px 16px}
}

/* Checkbox/Radio horizontal layout */
.iwfb-checkbox-group.iwfb-options-horizontal,
.iwfb-radio-group.iwfb-options-horizontal {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px 24px;
}
.iwfb-checkbox-group.iwfb-options-horizontal .iwfb-checkbox-label,
.iwfb-radio-group.iwfb-options-horizontal .iwfb-radio-label {
    margin-bottom: 0;
}
