/* =====================================================
   SMI ENQUIRY FORM — design system tokens
   Navy/blue gradient · dotted texture · glass-morphism
   Cyan #4fd3ee · Coral #df5f70 · Montserrat
   ===================================================== */

.smi-form-wrap {
	--smi-navy-1: #0a1930;
	--smi-navy-2: #123a6b;
	--smi-cyan: #4fd3ee;
	--smi-coral: #df5f70;
	--smi-ink: #eaf2fb;
	--smi-ink-dim: rgba(234, 242, 251, 0.72);
	--smi-error: #ff8a8a;

	position: relative;
	font-family: Montserrat, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--smi-ink);
	background: linear-gradient(135deg, var(--smi-navy-1) 0%, var(--smi-navy-2) 60%, #1d4f8f 100%);
	border-radius: 24px;
	overflow: hidden;
	padding: 56px 24px;
}

.smi-form-wrap .smi-dotted-overlay {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(255, 255, 255, 0.12) 1px, transparent 1px);
	background-size: 22px 22px;
	pointer-events: none;
}

.smi-form-card {
	position: relative;
	z-index: 1;
	max-width: 760px;
	margin: 0 auto;
}

.smi-form-intro { text-align: center; margin-bottom: 40px; }
.smi-eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--smi-cyan);
	margin-bottom: 12px;
}
.smi-form-title { font-size: clamp(26px, 4vw, 38px); font-weight: 800; margin: 0 0 14px; line-height: 1.15; }
.smi-form-subtitle { color: var(--smi-ink-dim); font-size: 15px; line-height: 1.7; max-width: 560px; margin: 0 auto; }

/* -------- form shell -------- */
.smi-form {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.12);
	backdrop-filter: blur(10px);
	border-radius: 20px;
	padding: 36px;
}

.smi-hp-field { position: absolute; left: -9999px; top: -9999px; opacity: 0; height: 0; }

.smi-form-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 26px 24px;
}
.smi-field-span-2 { grid-column: 1 / -1; }
@media (max-width: 640px) {
	.smi-form-grid { grid-template-columns: 1fr; }
}

/* -------- floating-label fields -------- */
.smi-field-group { position: relative; }

.smi-input {
	width: 100%;
	background: rgba(255, 255, 255, 0.04);
	border: 1.5px solid rgba(255, 255, 255, 0.16);
	border-radius: 12px;
	color: var(--smi-ink);
	font-family: inherit;
	font-size: 15px;
	padding: 20px 16px 8px;
	transition: border-color 0.2s ease, background 0.2s ease;
	appearance: none;
	-webkit-appearance: none;
}
.smi-input::placeholder { color: transparent; }
.smi-textarea { resize: vertical; min-height: 110px; padding-top: 24px; }

.smi-label {
	position: absolute;
	left: 16px;
	top: 18px;
	font-size: 15px;
	color: var(--smi-ink-dim);
	pointer-events: none;
	transition: transform 0.18s ease, font-size 0.18s ease, color 0.18s ease, top 0.18s ease;
	transform-origin: left top;
}
.smi-req { color: var(--smi-coral); }
.smi-optional { color: var(--smi-ink-dim); font-weight: 400; font-size: 12px; }

.smi-input:focus,
.smi-field-group.is-filled .smi-input {
	border-color: var(--smi-cyan);
	background: rgba(79, 211, 238, 0.06);
	outline: none;
}
.smi-input:focus ~ .smi-label,
.smi-field-group.is-filled .smi-label {
	top: 7px;
	font-size: 11px;
	color: var(--smi-cyan);
	letter-spacing: 0.03em;
	text-transform: uppercase;
	font-weight: 600;
}

/* focus glow ring */
.smi-field-glow {
	position: absolute;
	inset: -2px;
	border-radius: 14px;
	pointer-events: none;
	box-shadow: 0 0 0 0 rgba(79, 211, 238, 0);
	transition: box-shadow 0.25s ease;
}
.smi-input:focus ~ .smi-field-glow { box-shadow: 0 0 0 4px rgba(79, 211, 238, 0.14); }

/* error state */
.smi-field-group.has-error .smi-input { border-color: var(--smi-error); background: rgba(255, 138, 138, 0.06); }
.smi-field-group.has-error .smi-label { color: var(--smi-error); }
.smi-error-msg {
	display: block;
	min-height: 16px;
	font-size: 12px;
	color: var(--smi-error);
	margin-top: 6px;
	opacity: 0;
	transform: translateY(-4px);
	transition: opacity 0.18s ease, transform 0.18s ease;
}
.smi-field-group.has-error .smi-error-msg { opacity: 1; transform: translateY(0); }

/* custom select */
.smi-select-group { position: relative; }
.smi-select { cursor: pointer; padding-right: 42px; }
.smi-select option { background: var(--smi-navy-2); color: var(--smi-ink); }
.smi-select-arrow {
	position: absolute;
	right: 16px;
	top: 20px;
	width: 16px;
	height: 16px;
	color: var(--smi-cyan);
	pointer-events: none;
	transition: transform 0.2s ease;
}
.smi-select:focus ~ .smi-select-arrow { transform: rotate(180deg); }

/* char counter */
.smi-char-count {
	position: absolute;
	right: 14px;
	bottom: -20px;
	font-size: 11px;
	color: var(--smi-ink-dim);
}
.smi-char-count.is-near-limit { color: var(--smi-coral); }

/* -------- submit button -------- */
.smi-form-footer { margin-top: 34px; text-align: center; }

.smi-btn-coral, .smi-btn-cyan {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-weight: 700;
	font-size: 15px;
	padding: 15px 40px;
	border-radius: 999px;
	text-decoration: none;
	border: none;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
	font-family: inherit;
}
.smi-btn-coral {
	background: linear-gradient(135deg, var(--smi-coral), #c94a5c);
	color: #fff;
	box-shadow: 0 8px 24px rgba(223, 95, 112, 0.35);
}
.smi-btn-cyan {
	background: transparent;
	color: var(--smi-cyan);
	border: 1.5px solid var(--smi-cyan);
}
.smi-btn-coral:hover:not(:disabled), .smi-btn-cyan:hover { transform: translateY(-2px); }
.smi-btn-coral:disabled { opacity: 0.85; cursor: default; transform: none; }

.smi-submit-btn { position: relative; min-width: 210px; }
.smi-btn-spinner, .smi-btn-check { display: none; }

.smi-btn-spinner {
	width: 18px; height: 18px;
	border: 2.5px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: smi-spin 0.7s linear infinite;
}
@keyframes smi-spin { to { transform: rotate(360deg); } }

.smi-btn-check { width: 18px; height: 18px; transform: scale(0); transition: transform 0.3s cubic-bezier(.34,1.56,.64,1); }
.smi-btn-check svg { width: 100%; height: 100%; }

.smi-submit-btn.is-loading .smi-btn-label { display: none; }
.smi-submit-btn.is-loading .smi-btn-spinner { display: inline-block; }

.smi-submit-btn.is-success .smi-btn-label,
.smi-submit-btn.is-success .smi-btn-spinner { display: none; }
.smi-submit-btn.is-success .smi-btn-check { display: inline-flex; transform: scale(1); }

.smi-submit-btn.shake { animation: smi-shake 0.4s; }
@keyframes smi-shake {
	20%, 60% { transform: translateX(-6px); }
	40%, 80% { transform: translateX(6px); }
}

.smi-form-note { margin: 16px 0 0; font-size: 13px; color: var(--smi-ink-dim); }

/* -------- success panel -------- */
.smi-form-success {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(79, 211, 238, 0.35);
	backdrop-filter: blur(10px);
	border-radius: 20px;
	padding: 56px 36px;
	text-align: center;
	animation: smi-fade-up 0.4s ease;
}
@keyframes smi-fade-up { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }

.smi-success-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px; height: 64px;
	border-radius: 50%;
	border: 2px solid var(--smi-cyan);
	color: var(--smi-cyan);
	margin-bottom: 20px;
}
.smi-success-icon svg { width: 28px; height: 28px; }

.smi-form-success h3 { font-size: 22px; margin: 0 0 10px; }
.smi-success-text { color: var(--smi-ink-dim); font-size: 15px; line-height: 1.6; max-width: 440px; margin: 0 auto 28px; }
