/* ============================================================
   Immi Forms — Unified Frontend Styles  v2.0
   One file covers all form types (job, contact, audit).
   All rules scoped under .immi-form-wrap to prevent
   conflicts with theme styles or other plugins.
   ============================================================ */

/* ── Outer wrapper ────────────────────────────────────────── */
.immi-form-wrap {
	position:    relative !important;
	background:  #ffffff !important;
	padding:     50px 55px !important;
	box-shadow:  5px 5px 30px rgba(198,215,224,.53) !important;
	max-width:   1200px !important;
	margin:      0 auto !important;
	box-sizing:  border-box !important;
}

/* ── Response banner ──────────────────────────────────────── */
.immi-form-wrap .immi-form-response {
	display:     none;
	margin:      0 0 32px !important;
	padding:     0 !important;
	border-left: none !important;
	background:  transparent !important;
}
.immi-form-wrap .immi-form-response.is-success {
	display:      block;
	background:   #f0fdf4 !important;
	border:       1px solid #bbf7d0 !important;
	border-left:  5px solid #22c55e !important;
	padding:      28px 32px !important;
}
.immi-form-wrap .immi-form-response.is-error {
	display:      block;
	background:   #fef2f2 !important;
	border:       1px solid #fecaca !important;
	border-left:  5px solid #ef4444 !important;
	padding:      16px 22px !important;
	color:        #b91c1c !important;
	font-size:    15px !important;
	line-height:  1.6 !important;
}

/* Success card elements */
.immi-form-wrap .immi-success-check {
	display:         inline-flex !important;
	align-items:     center !important;
	justify-content: center !important;
	width:           44px !important;
	height:          44px !important;
	background:      #22c55e !important;
	border-radius:   50% !important;
	margin-bottom:   14px !important;
}
.immi-form-wrap .immi-success-check svg { display: block !important; }
.immi-form-wrap .immi-success-heading {
	font-family: var(--font-hurme-thd, Arial, sans-serif) !important;
	font-size:   20px !important;
	font-weight: 700 !important;
	color:       #065f46 !important;
	margin:      0 0 8px !important;
	line-height: 1.3 !important;
}
.immi-form-wrap .immi-success-body {
	font-family: var(--font-hurme-sec, Arial, sans-serif) !important;
	font-size:   15px !important;
	color:       #047857 !important;
	line-height: 1.7 !important;
	margin:      0 !important;
}
.immi-form-wrap .immi-success-body strong { color: #065f46 !important; }

/* ── The form element itself ──────────────────────────────── */
.immi-form-wrap .immi-form {
	padding:    0 !important;
	background: transparent !important;
	box-shadow: none !important;
	margin:     0 !important;
}

/* ── Two-column row ───────────────────────────────────────── */
.immi-form-wrap .immi-form-row {
	display:               grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap:                   26px !important;
	margin-bottom:         26px !important;
}
.immi-form-wrap .immi-form-row > .immi-form-group {
	margin-bottom: 0 !important;
}

/* ── Form group ───────────────────────────────────────────── */
.immi-form-wrap .immi-form-group {
	display:        flex !important;
	flex-direction: column !important;
	margin-bottom:  22px !important;
}

/* ── Labels ───────────────────────────────────────────────── */
.immi-form-wrap .immi-form-group label {
	font-family:    var(--font-hurme-sec, Arial, sans-serif) !important;
	font-size:      13px !important;
	font-weight:    600 !important;
	color:          #1e293b !important;
	margin-bottom:  7px !important;
	letter-spacing: 0.4px !important;
	display:        block !important;
	cursor:         default !important;
	min-height:     auto !important;
}
.immi-form-wrap .immi-req {
	color:       #ef4444 !important;
	margin-left: 2px !important;
}
.immi-form-wrap .immi-hint {
	font-size:   11px !important;
	font-weight: 400 !important;
	color:       #94a3b8 !important;
	margin-left: 4px !important;
}

/* ── Text / email / tel inputs ────────────────────────────── */
.immi-form-wrap .immi-form-group input[type="text"],
.immi-form-wrap .immi-form-group input[type="email"],
.immi-form-wrap .immi-form-group input[type="tel"] {
	display:            block !important;
	width:              100% !important;
	box-sizing:         border-box !important;
	border:             1px solid #dde3ea !important;
	border-radius:      0 !important;
	padding:            12px 15px !important;
	font-size:          15px !important;
	font-family:        var(--font-hurme-sec, Arial, sans-serif) !important;
	color:              #334155 !important;
	background:         #ffffff !important;
	min-height:         auto !important;
	height:             auto !important;
	line-height:        1.5 !important;
	transition:         border-color .2s ease, box-shadow .2s ease !important;
	-webkit-appearance: none !important;
	appearance:         none !important;
	box-shadow:         none !important;
	margin:             0 !important;
	outline:            none !important;
}
.immi-form-wrap .immi-form-group input[type="text"]:focus,
.immi-form-wrap .immi-form-group input[type="email"]:focus,
.immi-form-wrap .immi-form-group input[type="tel"]:focus {
	border-color: #28b2fa !important;
	box-shadow:   0 0 0 3px rgba(40,178,250,.12) !important;
	outline:      none !important;
}
.immi-form-wrap .immi-form-group input[type="text"].is-invalid,
.immi-form-wrap .immi-form-group input[type="email"].is-invalid,
.immi-form-wrap .immi-form-group input[type="tel"].is-invalid {
	border-color: #ef4444 !important;
}

/* ── Textarea ─────────────────────────────────────────────── */
.immi-form-wrap .immi-form-group textarea {
	display:            block !important;
	width:              100% !important;
	box-sizing:         border-box !important;
	border:             1px solid #dde3ea !important;
	border-radius:      0 !important;
	padding:            12px 15px !important;
	font-size:          15px !important;
	font-family:        var(--font-hurme-sec, Arial, sans-serif) !important;
	color:              #334155 !important;
	background:         #ffffff !important;
	min-height:         130px !important;
	resize:             vertical !important;
	line-height:        1.6 !important;
	transition:         border-color .2s ease, box-shadow .2s ease !important;
	-webkit-appearance: none !important;
	appearance:         none !important;
	box-shadow:         none !important;
	margin:             0 !important;
	outline:            none !important;
}
.immi-form-wrap .immi-form-group textarea:focus {
	border-color: #28b2fa !important;
	box-shadow:   0 0 0 3px rgba(40,178,250,.12) !important;
	outline:      none !important;
}
.immi-form-wrap .immi-form-group textarea.is-invalid {
	border-color: #ef4444 !important;
}

/* ── Field error message ──────────────────────────────────── */
.immi-form-wrap .immi-field-error {
	display:     none !important;
	font-size:   12px !important;
	color:       #ef4444 !important;
	margin-top:  5px !important;
	font-family: var(--font-hurme-sec, Arial, sans-serif) !important;
}

/* ── File upload widget ───────────────────────────────────── */
.immi-form-wrap .immi-file-wrap {
	position: relative !important;
	display:  block !important;
}
.immi-form-wrap .immi-file-wrap .immi-file-input {
	position:    absolute !important;
	inset:       0 !important;
	opacity:     0 !important;
	cursor:      pointer !important;
	z-index:     2 !important;
	width:       100% !important;
	height:      100% !important;
	min-height:  auto !important;
	padding:     0 !important;
	border:      none !important;
	box-shadow:  none !important;
	background:  transparent !important;
}
.immi-form-wrap .immi-file-label {
	display:        flex !important;
	align-items:    center !important;
	gap:            10px !important;
	padding:        12px 15px !important;
	border:         1px dashed #cbd5e1 !important;
	border-radius:  0 !important;
	background:     #f8fafc !important;
	cursor:         pointer !important;
	font-size:      14px !important;
	color:          #64748b !important;
	font-family:    var(--font-hurme-sec, Arial, sans-serif) !important;
	font-weight:    400 !important;
	transition:     border-color .2s, background .2s !important;
	box-sizing:     border-box !important;
	width:          100% !important;
	line-height:    1.5 !important;
	min-height:     auto !important;
}
.immi-form-wrap .immi-file-label:hover {
	border-color: #28b2fa !important;
	background:   #f0f9ff !important;
	color:        #28b2fa !important;
}
.immi-form-wrap .immi-file-icon {
	font-size:   20px !important;
	color:       #28b2fa !important;
	line-height: 1 !important;
	font-weight: 700 !important;
	flex-shrink: 0 !important;
}
.immi-form-wrap .immi-file-text { flex: 1 !important; }

/* ── Honeypot ─────────────────────────────────────────────── */
.immi-form-wrap .immi-hp-wrap {
	position:       absolute !important;
	left:           -9999px !important;
	top:            -9999px !important;
	opacity:        0 !important;
	height:         0 !important;
	overflow:       hidden !important;
	pointer-events: none !important;
}

/* ── Submit button ────────────────────────────────────────── */
.immi-form-wrap .immi-form-footer { margin-top: 10px !important; }

.immi-form-wrap .immi-submit-btn {
	display:         inline-flex !important;
	align-items:     center !important;
	justify-content: flex-start !important;
	gap:             10px !important;
	background:      #28b2fa !important;
	color:           #ffffff !important;
	border:          none !important;
	border-radius:   0 !important;
	padding:         0 40px !important;
	height:          58px !important;
	min-height:      auto !important;
	min-width:       auto !important;
	font-family:     var(--font-hurme-thd, Arial, sans-serif) !important;
	font-size:       14px !important;
	font-weight:     700 !important;
	letter-spacing:  2px !important;
	text-transform:  uppercase !important;
	cursor:          pointer !important;
	transition:      background .3s ease, box-shadow .3s ease !important;
	box-shadow:      4px 4px 16px rgba(40,178,250,.40) !important;
	position:        relative !important;
	overflow:        hidden !important;
	width:           auto !important;
	text-decoration: none !important;
}
/* Shimmer sweep on hover */
.immi-form-wrap .immi-submit-btn::after {
	content:    '' !important;
	position:   absolute !important;
	left:       -75px !important;
	top:        -50px !important;
	width:      50px !important;
	height:     155px !important;
	background: rgba(255,255,255,.18) !important;
	transform:  rotate(35deg) !important;
	transition: left 550ms cubic-bezier(.19,1,.22,1) !important;
	z-index:    0 !important;
}
.immi-form-wrap .immi-submit-btn:hover::after { left: 120% !important; }
.immi-form-wrap .immi-submit-btn:hover,
.immi-form-wrap .immi-submit-btn:focus       { background: #0ea5e9 !important; }
.immi-form-wrap .immi-submit-btn:disabled    { opacity: .65 !important; cursor: not-allowed !important; }

/* ── Button label / loading state ─────────────────────────── */
.immi-form-wrap .immi-btn-label {
	display:  inline !important;
	position: relative !important;
	z-index:  1 !important;
}
.immi-form-wrap .immi-btn-loading {
	display:     none !important;
	align-items: center !important;
	gap:         8px !important;
	position:    relative !important;
	z-index:     1 !important;
}

/* ── Spinner ──────────────────────────────────────────────── */
.immi-form-wrap .immi-spinner {
	display:          inline-block !important;
	width:            15px !important;
	height:           15px !important;
	border:           2px solid rgba(255,255,255,.30) !important;
	border-top-color: #fff !important;
	border-radius:    50% !important;
	animation:        immi-spin .7s linear infinite !important;
	flex-shrink:      0 !important;
}
@keyframes immi-spin { to { transform: rotate(360deg); } }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 991px) {
	.immi-form-wrap { padding: 40px 35px !important; }
}
@media (max-width: 767px) {
	.immi-form-wrap { padding: 30px 22px !important; }
	.immi-form-wrap .immi-form-row {
		grid-template-columns: 1fr !important;
		gap:                   0 !important;
	}
	.immi-form-wrap .immi-form-row > .immi-form-group {
		margin-bottom: 22px !important;
	}
	.immi-form-wrap .immi-submit-btn {
		width:           100% !important;
		justify-content: center !important;
		height:          54px !important;
	}
}
@media (max-width: 575px) {
	.immi-form-wrap { padding: 24px 16px !important; }
	.immi-form-wrap .immi-submit-btn {
		font-size:      13px !important;
		letter-spacing: 1.5px !important;
	}
}
