/* ==========================================================================
   Мастер реек — форма заявки и модальное окно
   ========================================================================== */

.lead-form__fields { display: grid; gap: 16px; }
.field { margin: 0; }
.field__label { display: block; }
.field__name {
	display: block;
	margin-bottom: 8px;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.56;
}
.field__req { color: #ff6b6b; }

.field__input {
	display: block;
	width: 100%;
	padding: 10px 15px;
	border: 1px solid #ced4da;
	border-radius: 4px;
	background-color: #fff;
	background-clip: padding-box;
	color: #212529;
	font-size: 16px;
	line-height: 24px;
	transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
	-webkit-appearance: none;
	appearance: none;
}
.field__input::placeholder { color: #6c757d; opacity: 1; }
.field__input:focus {
	border-color: #86b7fe;
	outline: 0;
	box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);
	color: #212529;
	background-color: #fff;
}
.field__input[aria-invalid="true"] { border-color: #dc3545; }
.field__input[aria-invalid="true"]:focus { box-shadow: 0 0 0 .25rem rgba(220, 53, 69, .25); }

/* honeypot — невидимо для людей, приманка для ботов */
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.lead-form__foot { margin-top: 20px; }

.lead-form__status {
	display: none;
	margin: 16px 0 0;
	padding: 12px 16px;
	border-radius: var(--radius-sm);
	font-size: 15px;
	line-height: 1.4;
}
.lead-form__status.is-visible { display: block; }
.lead-form__status.is-ok { background: rgba(40, 167, 69, .15); color: #c9f7d4; }
.lead-form__status.is-error { background: rgba(220, 53, 69, .15); color: #ffd6d6; }

.lead-form.is-sending { opacity: .6; pointer-events: none; }
.lead-form.is-sending .lead-form__submit { position: relative; color: transparent; }
.lead-form.is-sending .lead-form__submit::after {
	content: "";
	position: absolute;
	top: 50%; left: 50%;
	width: 20px; height: 20px;
	margin: -10px 0 0 -10px;
	border: 2px solid rgba(255, 255, 255, .35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: spin .7s linear infinite;
}

/* ---------- модальное окно ---------- */
.modal {
	position: fixed;
	inset: 0;
	z-index: var(--z-modal);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	overflow-y: auto;
	padding: 15px;
}
.modal[hidden] { display: none; }
.modal__backdrop {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, .5);
	animation: fade-in .3s;
}
.modal__dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 460px;
	margin: auto;
	background: #fff;
	color: #212529;
	border-radius: var(--radius);
	box-shadow: 0 10px 40px rgba(0, 0, 0, .4);
	animation: fade-in .3s;
}
.modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem;
	border-bottom: 1px solid #dfe3e7;
}
.modal__title { margin: 0; font-size: 1.25em; line-height: 1.2; }
.modal__close {
	padding: 0 8px;
	border: 0;
	background: none;
	color: #6c757d;
	font-size: 1.5rem;
	line-height: 1;
}
.modal__close:hover { color: #212529; }
.modal__body { padding: 15px; }

/* Кнопка в секции белая — она рассчитана на тёмный фон. В модалке фон
   светлый, и та же кнопка становится белым по белому (контраст 1:1),
   то есть невидимой. Здесь перекрашиваем её в фирменный синий. */
.modal .btn {
	background-color: var(--c-accent);
	border-color: var(--c-accent);
	color: #fff;
}
.modal .btn:hover, .modal .btn:focus {
	background-color: var(--c-accent-2);
	border-color: var(--c-accent-2);
	color: #fff;
	transform: none;
}
.modal .lead-form__foot { margin-top: 24px; }
.modal .lead-form__submit { width: 100%; }

/* Сообщения тоже светлые — на белом диалоге их почти не видно */
.modal .lead-form__status.is-ok { background: rgba(40, 167, 69, .12); color: #1a7f37; }
.modal .lead-form__status.is-error { background: rgba(220, 53, 69, .12); color: #b02a37; }

/* Звёздочка обязательного поля: на тёмном фоне секции алый даёт 6.9:1,
   а на белом диалоге — всего 2.8:1. Здесь берём тёмно-красный (6.6:1). */
.modal .field__req { color: #b02a37; }

@media (max-width: 480px) {
	.modal { padding: 10px; }
	.modal__dialog { margin: 10px; }
}