/* =========================================================
   forms-unified.min.css — единый стиль всех форм сайта.
   Подключается последним, переопределяет все предыдущие.
   Стиль: квадратные углы, акцент #b00a27, тени --c-shadow*.
   ========================================================= */

/* ---------- Контейнер формы ---------- */
.form--styled {
  padding: 40px 36px;
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  width: 100%;
  position: relative;
  box-sizing: border-box;
}
/* Модификатор для центрирования и ограничения ширины (для форм вне гридов) */
.form--styled.form--centered {
  max-width: 560px;
  margin: 0 auto;
}
.form--styled::before {
  content: '';
  position: absolute;
  top: -1px; left: 0; right: 0;
  height: 3px;
  background: var(--c-accent);
}
.form__head { margin: 0 0 32px; text-align: center; }
.form__head-title {
  margin: 0 0 8px; font-size: 24px; line-height: 1.25; font-weight: 700; color: var(--c-text);
}
.form__head-text { margin: 0; font-size: 15px; line-height: 1.55; color: var(--c-text-mute); }
.form__required-hint { margin: 0 0 24px; font-size: 13px; color: var(--c-text-mute); }
.form__required-hint span { color: var(--c-accent); }

/* ---------- Поля ---------- */
.form--styled .form__item { margin: 0 0 20px; position: relative; }
.form--styled .form__item:last-of-type { margin-bottom: 0; }
.form--styled .form__item > label {
  display: block; margin-bottom: 8px; font-size: 14px; font-weight: 500; color: var(--c-text);
}
.form--styled .form__item > label > span { color: var(--c-accent); margin-left: 2px; }
.form--styled .form__item_input {
  display: block; width: 100%; padding: 14px 16px; font-size: 15px; line-height: 1.4;
  color: var(--c-text); background: var(--c-bg); border: 1px solid var(--c-border);
  border-radius: 0; box-sizing: border-box; min-height: 48px;
}
.form--styled textarea.form__item_input { min-height: 104px; resize: vertical; line-height: 1.55; }

/* ---------- Эффекты полей ---------- */
.form--fx .form__item_input { transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
.form--fx .form__item_input:focus,
.form--fx .form__item_input:focus-visible {
  outline: none; border-color: var(--c-accent);
  box-shadow: 0 0 0 3px rgba(176,10,39,.12), inset 0 -2px 0 0 var(--c-accent);
  background: #ffffff;
}
.form--fx .form__item.has-error .form__item_input { border-color: var(--c-accent); background: #fff8f9; }
.form--fx .form__item.has-error > label { color: var(--c-accent); }

/* ---------- Чекбокс (единый дизайн) ---------- */
.form-check {
  display: inline-flex; align-items: flex-start; gap: 12px; cursor: pointer;
  user-select: none; font-size: 15px; line-height: 1.5; color: var(--c-text);
}
.form-check__input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.form-check__box {
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0; width: 22px; height: 22px; border: 2px solid var(--c-border);
  background: var(--c-bg); box-sizing: border-box;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.form-check__box::after {
  content: ''; display: block; width: 12px; height: 12px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 6.2l3.1 3.1 6-6.4' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: center; background-size: contain;
  transform: scale(0); transition: transform .2s cubic-bezier(.22,.61,.36,1);
}
.form-check:hover .form-check__box { border-color: var(--c-accent); }
.form-check__input:focus-visible + .form-check__box { outline: 3px solid rgba(176,10,39,.25); outline-offset: 2px; }
.form-check__input:checked + .form-check__box { background: var(--c-accent); border-color: var(--c-accent); }
.form-check__input:checked + .form-check__box::after { transform: scale(1); }
.form-check__input:disabled + .form-check__box { background: var(--c-bg-alt); border-color: var(--c-border); opacity: .6; cursor: not-allowed; }
.form-check__input:disabled ~ .form-check__label { color: var(--c-text-mute); cursor: not-allowed; }
.form-check__label { color: inherit; }

/* ---------- Кнопка отправки ---------- */
.form__submit-cta {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  gap: 12px; width: 100%; padding: 16px 24px; margin-top: 8px; background: var(--c-accent);
  color: #ffffff; font-size: 16px; font-weight: 600; line-height: 1; letter-spacing: .01em;
  border: 0; cursor: pointer; overflow: hidden;
  transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.form__submit-cta:hover { background: var(--c-accent-h); transform: translateY(-2px); box-shadow: var(--c-shadow); }
.form__submit-cta:active { transform: translateY(0); box-shadow: none; }
.form__submit-cta:focus-visible { outline: 3px solid rgba(176,10,39,.35); outline-offset: 2px; }
.form__submit-cta__icon { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; flex-shrink: 0; transition: transform .4s cubic-bezier(.22,.61,.36,1); }
.form__submit-cta__icon svg { display: block; width: 100%; height: 100%; }
.form__submit-cta:hover .form__submit-cta__icon { transform: translateX(4px); }
.form__submit-cta:hover .form__submit-cta__icon svg { animation: c-cta-icon-fly .6s ease-in-out; }
@keyframes c-cta-icon-fly { 0% { transform: translateX(0); } 50% { transform: translateX(6px); } 100% { transform: translateX(0); } }
.form__submit-cta::before {
  content: ''; position: absolute; top: 0; left: -140%; width: 140%; height: 100%;
  background: linear-gradient(100deg, transparent 30%, rgba(255,255,255,.45) 50%, transparent 70%);
  pointer-events: none; animation: c-cta-shine 3.5s ease-in-out infinite; animation-delay: 1s;
}
@keyframes c-cta-shine { 0% { left: -140%; } 35% { left: 140%; } 100% { left: 140%; } }
.form__submit-cta:hover::before { animation-duration: 1.2s; }
.form__submit-cta.is-locked, .form__submit-cta:disabled { opacity: .55; cursor: not-allowed; background: var(--c-accent); transform: none; box-shadow: none; }
.form__submit-cta.is-locked::before, .form__submit-cta:disabled::before { animation: none; display: none; }
.form__submit-cta.is-locked:hover, .form__submit-cta:disabled:hover { background: var(--c-accent); transform: none; box-shadow: none; }

/* ---------- Статус формы ---------- */
.form__status { margin: 20px 0 0; padding: 14px 16px; font-size: 14px; line-height: 1.5; border: 1px solid var(--c-border); background: var(--c-bg-alt); }
.form__status--success { border-color: #b9e2c2; background: #eafaf0; color: #14602c; }
.form__status--error { border-color: #f2c0c6; background: #fdecee; color: #8e081f; }
.form__status--info { border-color: #c7ddff; background: #eef4ff; color: #1f4ea8; }

/* ---------- Ошибка поля ---------- */
.form__item_error { margin-top: 6px; font-size: 12px; color: var(--c-accent); }
.form__item_error:empty { display: none; }

/* ---------- Адаптив ---------- */
@media (max-width: 600px) {
  .form--styled { padding: 28px 20px; }
  .form--styled .form__item { margin-bottom: 16px; }
  .form__head-title { font-size: 20px; }
  .form__submit-cta { padding: 15px 20px; font-size: 15px; gap: 10px; }
}