/* KAI forms – matches the Contact / Careers designs. */
.kai-form { --kf-ink: #111418; --kf-navy: #082a4f; --kf-blue: #0054b8; --kf-line: #d9d9d3; --kf-bg: #f6f6f2; --kf-red: #bd1d2d; font-family: "Inter", system-ui, sans-serif; }
.kai-form--contact, .kai-form--career { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 24px; }
.kai-form .kai-field { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.kai-form .kai-field--full, .kai-form .kai-form__footer, .kai-form .kai-form__status, .kai-form .kai-submit--block, .kai-form .kai-form__privacy { grid-column: 1 / -1; }
.kai-form label, .kai-form .kai-label {
	font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--kf-ink); line-height: 1.3;
}
.kai-form label span, .kai-form .kai-label span { color: var(--kf-blue); }
.kai-form label em { font-style: normal; color: #8a8f98; font-weight: 500; }
.kai-form input[type=text], .kai-form input[type=email], .kai-form input[type=tel], .kai-form textarea, .kai-form select {
	width: 100%; background: var(--kf-bg); border: 1px solid var(--kf-line); border-radius: 0; padding: 14px 16px; min-height: 50px;
	font-family: inherit; font-size: 15px; color: var(--kf-ink); box-shadow: inset 0 0 0 0 var(--kf-blue);
	transition: border-color .3s, background .3s, box-shadow .35s cubic-bezier(.22,.61,.36,1);
}
.kai-form textarea { min-height: 134px; resize: vertical; line-height: 1.6; }
.kai-form input::placeholder, .kai-form textarea::placeholder { color: #9b9ea5; }
.kai-form input:hover, .kai-form textarea:hover, .kai-form select:hover { border-color: #b9bcc2; }
.kai-form input:focus, .kai-form textarea:focus, .kai-form select:focus { outline: none; background: #fff; border-color: var(--kf-blue); box-shadow: inset 0 -2px 0 0 var(--kf-blue); }
.kai-form .kai-select { position: relative; }
.kai-form .kai-select select { appearance: none; -webkit-appearance: none; padding-right: 44px; cursor: pointer; }
.kai-form .kai-select::after {
	content: ""; position: absolute; right: 20px; top: 50%; width: 8px; height: 8px; border-right: 1.5px solid var(--kf-ink); border-bottom: 1.5px solid var(--kf-ink);
	transform: translateY(-70%) rotate(45deg); pointer-events: none; transition: transform .3s;
}
.kai-form .kai-select:focus-within::after { transform: translateY(-30%) rotate(-135deg); }
.kai-form .has-error input, .kai-form .has-error textarea, .kai-form .has-error select, .kai-form .has-error .kai-drop { border-color: var(--kf-red) !important; box-shadow: inset 0 -2px 0 0 var(--kf-red); }
.kai-form .kai-field--check .kai-check { display: flex; gap: 14px; align-items: flex-start; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 13px; color: #3a3f47; line-height: 1.65; cursor: pointer; }
.kai-form .kai-check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--kf-navy); flex: 0 0 auto; }
.kai-form .kai-check span { color: #3a3f47 !important; }
.kai-form .has-error .kai-check span { color: var(--kf-red) !important; }
.kai-form__footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 4px; }
.kai-form__note { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #8a8f98; }
.kai-form__privacy { margin: -8px 0 0; text-align: center; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #3a3f47; }

.kai-form .kai-submit {
	position: relative; overflow: hidden; z-index: 0; display: inline-flex; align-items: center; justify-content: center; gap: 12px;
	background: var(--kf-navy); color: #fff; border: 0; border-radius: 0; padding: 18px 32px; cursor: pointer;
	font-family: inherit; font-size: 13px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
	transition: box-shadow .4s, transform .3s;
}
.kai-form .kai-submit::before {
	content: ""; position: absolute; inset: 0; z-index: -1; background: var(--kf-blue); transform: scaleX(0); transform-origin: right; transition: transform .55s cubic-bezier(.7,0,.2,1);
}
.kai-form .kai-submit:hover::before, .kai-form .kai-submit:focus-visible::before { transform: scaleX(1); transform-origin: left; }
.kai-form .kai-submit:hover { box-shadow: 0 16px 30px -16px rgba(0,84,184,.8); color: #fff; }
.kai-form .kai-submit span { display: inline-block; transition: transform .4s cubic-bezier(.22,.61,.36,1); }
.kai-form .kai-submit:hover span { transform: translateX(6px); }
.kai-form .kai-submit--block { width: 100%; padding: 22px 32px; }
.kai-form.is-busy .kai-submit { pointer-events: none; opacity: .75; }
.kai-form.is-busy .kai-submit span { animation: kai-busy 1s linear infinite; }
@keyframes kai-busy { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); } }

.kai-form .kai-drop {
	position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 120px; padding: 24px;
	background: var(--kf-bg); border: 1.5px dashed #cfcfc8; cursor: pointer; text-transform: none; letter-spacing: 0; font-weight: 400; text-align: center;
	transition: border-color .3s, background .3s;
}
.kai-form .kai-drop input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.kai-form .kai-drop svg { color: var(--kf-blue); transition: transform .45s cubic-bezier(.22,.61,.36,1); }
.kai-form .kai-drop:hover, .kai-form .kai-drop.is-over { border-color: var(--kf-blue); background: #eef4fc; }
.kai-form .kai-drop:hover svg, .kai-form .kai-drop.is-over svg { transform: translateY(-5px); }
.kai-form .kai-drop__text { font-size: 13px; color: #6d7178; }
.kai-form .kai-drop__text u { color: var(--kf-navy); }
.kai-form .kai-drop__hint { font-size: 10.5px; letter-spacing: .06em; color: #9b9ea5; text-transform: uppercase; }
.kai-form .kai-drop__file { font-size: 13px; font-weight: 600; color: var(--kf-navy); background: #fff; border: 1px solid #d7e3f5; padding: 6px 12px; }
.kai-form .kai-drop.has-file { border-style: solid; border-color: var(--kf-blue); }

.kai-form__status { font-size: 14px; line-height: 1.5; min-height: 0; }
.kai-form__status.is-ok { padding: 14px 16px; background: #ecf6ef; color: #1f6b3a; border-left: 3px solid #2d9a55; }
.kai-form__status.is-error { padding: 14px 16px; background: #fbeeee; color: #8c1a25; border-left: 3px solid var(--kf-red); }
.kai-form .kai-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Newsletter (footer, dark background) */
.kai-newsletter { position: relative; display: flex; align-items: center; flex-wrap: wrap; border-bottom: 1px solid rgba(255,255,255,.3); transition: border-color .35s; }
.kai-newsletter:focus-within { border-color: #fff; }
.kai-newsletter::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: #fff; transform: scaleX(0); transform-origin: left; transition: transform .5s cubic-bezier(.22,.61,.36,1); }
.kai-newsletter:focus-within::after { transform: scaleX(1); }
.kai-newsletter input[type=email] {
	flex: 1; min-width: 0; background: transparent !important; border: 0 !important; box-shadow: none !important; color: #fff; padding: 18px 12px; font-family: "Work Sans", sans-serif; font-size: 16px;
}
.kai-newsletter input[type=email]::placeholder { color: rgba(255,255,255,.75); }
.kai-newsletter button { background: transparent; border: 0; color: #fff; padding: 10px 0 10px 10px; cursor: pointer; transition: transform .4s cubic-bezier(.22,.61,.36,1); }
.kai-newsletter button:hover, .kai-newsletter button:focus { background: transparent; color: #9fc2ff; transform: translateX(6px); }
.kai-newsletter .kai-form__status { flex-basis: 100%; }
.kai-newsletter .kai-form__status.is-ok, .kai-newsletter .kai-form__status.is-error { margin: 0 0 12px; font-size: 13px; }
.kai-newsletter.has-error, .kai-newsletter .has-error { border-color: #ff9aa4; }

@media (max-width: 767px) {
	.kai-form--contact, .kai-form--career { grid-template-columns: 1fr; gap: 22px; }
	.kai-form .kai-submit { width: 100%; }
}
