/* ── JIT Contact / Lead Capture Form ────────────────────────────────────── */
:root {
    --jit-primary:  #228EF1;
    --jit-primary-dark: #1a6fcb;
    --jit-radius:   8px;
    --jit-border:   #dde2ea;
    --jit-bg:       #f7f9fc;
    --jit-text:     #2c3e50;
    --jit-success:  #1a7a4a;
    --jit-success-bg: #eafaf1;
    --jit-error:    #c0392b;
    --jit-error-bg: #fdf0ef;
}

.jit-contact-form-wrap {
    max-width: 700px;
    margin: 2rem auto;
    background: #fff;
    border-radius: var(--jit-radius);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
    padding: 2.5rem 2rem;
}

.jit-contact-form-header {
    text-align: center;
    margin-bottom: 2rem;
}

.jit-contact-form-header h2 {
    font-size: 1.75rem;
    color: var(--jit-text);
    margin-bottom: 0.4rem;
}

.jit-contact-form-header p {
    color: #6b7280;
    font-size: 0.95rem;
}

/* ── Form layout ──────────────────────────────────────────────────────────── */
.jit-form-row {
    margin-bottom: 1.2rem;
}

.jit-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 560px) {
    .jit-two-col {
        grid-template-columns: 1fr;
    }
    .jit-contact-form-wrap {
        padding: 1.5rem 1rem;
    }
}

/* ── Inputs ───────────────────────────────────────────────────────────────── */
.jit-form-group {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.jit-form-group label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--jit-text);
}

.jit-form-group .req {
    color: var(--jit-error);
}

.jit-form-group input,
.jit-form-group select,
.jit-form-group textarea {
    width: 100%;
    padding: 0.6rem 0.85rem;
    border: 1.5px solid var(--jit-border);
    border-radius: 6px;
    font-size: 0.95rem;
    color: var(--jit-text);
    background: var(--jit-bg);
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
}

.jit-form-group input:focus,
.jit-form-group select:focus,
.jit-form-group textarea:focus {
    outline: none;
    border-color: var(--jit-primary);
    box-shadow: 0 0 0 3px rgba(34, 142, 241, 0.15);
    background: #fff;
}

.jit-form-group textarea {
    resize: vertical;
    min-height: 100px;
}

/* ── Submit button ────────────────────────────────────────────────────────── */
.jit-btn-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: var(--jit-primary);
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.75rem 2rem;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    width: 100%;
}

.jit-btn-submit:hover:not(:disabled) {
    background: var(--jit-primary-dark);
}

.jit-btn-submit:active:not(:disabled) {
    transform: scale(0.98);
}

.jit-btn-submit:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

/* ── Feedback messages ────────────────────────────────────────────────────── */
.jit-form-feedback {
    margin-top: 1rem;
    padding: 0.9rem 1rem;
    border-radius: 6px;
    font-size: 0.95rem;
    font-weight: 500;
}

.jit-form-feedback.jit-success {
    background: var(--jit-success-bg);
    color: var(--jit-success);
    border: 1px solid #a7d7be;
}

.jit-form-feedback.jit-error {
    background: var(--jit-error-bg);
    color: var(--jit-error);
    border: 1px solid #f5b7b1;
}

/* ── Accessibility additions ─────────────────────────────────────────────── */

/* Screen-reader only utility */
.jit-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Required fields note */
.jit-required-note {
    font-size: 0.8rem;
    color: #6b7280;
    margin-top: 0.25rem;
}

/* Field-level error messages */
.jit-field-error {
    display: block;
    font-size: 0.8rem;
    color: var(--jit-error);
    min-height: 1.1rem;
    margin-top: 0.2rem;
}

/* Invalid field state */
.jit-form-group input[aria-invalid="true"],
.jit-form-group select[aria-invalid="true"],
.jit-form-group textarea[aria-invalid="true"] {
    border-color: var(--jit-error);
    box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.12);
}

/* Focus-visible ring — keyboard users only */
.jit-form-group input:focus-visible,
.jit-form-group select:focus-visible,
.jit-form-group textarea:focus-visible {
    outline: 3px solid var(--jit-primary);
    outline-offset: 2px;
}

.jit-btn-submit:focus-visible {
    outline: 3px solid var(--jit-primary-dark);
    outline-offset: 3px;
}

/* Feedback div receives focus programmatically */
.jit-form-feedback:focus {
    outline: none;
}

/* High-contrast media query */
@media (forced-colors: active) {
    .jit-btn-submit {
        border: 2px solid ButtonText;
    }
    .jit-form-group input[aria-invalid="true"] {
        border: 2px solid LinkText;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .jit-btn-submit,
    .jit-form-group input,
    .jit-form-group select,
    .jit-form-group textarea {
        transition: none;
    }
}
