/* «Регистрация проекта» — бенто-квиз JazzWay.
   Бенто-композиция: слева карта этапов, в центре карточка вопроса. Пространство заполнено органично.
   Бренд: флэт (без теней), радиус 15px, оранжевый var(--jv-primary), TT Norms Pro. Mobile-first, «понятно как для дебилов». */

.rq { color: var(--jv-text-primary); --r: 15px; --line: #E4E5E9; --line2: #EDEDED; --soft: #F7F8FA; --accent: var(--jv-accent); }
/* match site catalog container width (1880) so the page isn't narrower than the rest of the site */
.jv-portfolio.container { width: 100%; max-width: 1880px; margin: 0 auto; padding: 20px 20px 60px; }
.rq__lead { max-width: 720px; margin: -18px 0 30px; font-size: 18px; line-height: 1.5; color: var(--jv-text-secondary); }

/* ===== доска: вопрос слева, этапы + навигация справа ===== */
/* #170: контент начинался вплотную к хлебным крошкам. На остальных страницах
   ритм такой: крошки → 6px → заголовок (h1 c margin-bottom 16px) → контент.
   Своего h1 у квиза нет, поэтому отбиваем доску теми же 22px. */
.rq-board { display: grid; grid-template-columns: 1fr 300px; gap: 16px; align-items: start; margin-top: 22px; }

/* ---- ЛЕВО: карточка вопроса ----
   ПК: без рамки/фона и без левого отступа — контент вровень с левым краем страницы
   (как хлебные крошки/заголовок). На мобилке рамки и так не было (см. медиазапрос ниже). */
.rq-stage { display: flex; flex-direction: column; background: transparent; border: none; border-radius: 0;
  padding: 0; min-height: 480px; }

/* ---- ПРАВО: вертикальные этапы + навигация ---- */
.rq-side { position: sticky; top: 20px; display: flex; flex-direction: column; gap: 14px; }
.rq-road { background: #fff; border: 1.5px solid var(--line); border-radius: var(--r); padding: 22px 20px; }
.rq-road__title { margin: 0 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--jv-text-muted); }
.rq-road__sub { margin: 0 0 18px; font-size: 13px; color: var(--jv-text-muted); }
.rq-road__list { list-style: none; margin: 0; padding: 0; }
.rq-road__item { position: relative; display: flex; gap: 14px; align-items: center; padding: 9px 0; }
/* вертикальная соединительная линия к предыдущей точке */
.rq-road__item::before { content: ""; position: absolute; left: 16px; top: -8px; bottom: 50%; width: 2px; background: var(--line2); z-index: 0; }
.rq-road__item:first-child::before { display: none; }
.rq-road__item.done::before, .rq-road__item.current::before { background: #bfe9c8; }
.rq-road__dot { position: relative; z-index: 1; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 50%; background: var(--soft); border: 1.5px solid var(--line);
  font-size: 13px; font-weight: 700; color: var(--jv-text-muted); transition: all .2s ease; }
.rq-road__label { font-size: 15px; font-weight: 500; line-height: 1.25; color: var(--jv-text-muted); transition: color .2s ease; }
.rq-road__item.done .rq-road__dot { background: #eafaf0; border-color: #bfe9c8; color: #1a8a3a; }
.rq-road__item.done .rq-road__label { color: var(--jv-text-secondary); }
.rq-road__item.current .rq-road__dot { background: var(--accent); border-color: var(--accent); color: #fff; }
.rq-road__item.current .rq-road__label { color: var(--jv-text-primary); font-weight: 700; }
/* кликабельный этап (только ПК — карта скрыта на мобилке) */
.rq-road__item.is-link { cursor: pointer; }
.rq-road__item.is-link .rq-road__dot, .rq-road__item.is-link .rq-road__label { transition: color .15s ease, border-color .15s ease, background .15s ease; }
.rq-road__item.is-link:hover .rq-road__label { color: var(--accent); }
.rq-road__item.is-link:hover .rq-road__dot { border-color: var(--accent); }
.rq-road__item.done.is-link:hover .rq-road__dot { background: #fbe6dd; }
/* незаполненный этап после попытки отправки */
.rq-road__item.invalid .rq-road__dot { background: #fdecea; border-color: #e5484d; color: #e5484d; }
.rq-road__item.invalid .rq-road__label { color: #e5484d; font-weight: 600; }

/* прогресс (только мобилка — на десктопе виден степпер) */
.rq-progress { display: none; grid-template-columns: 1fr auto; grid-template-areas: "stage stage" "track label"; align-items: center; gap: 8px 16px; margin-bottom: 24px; }
.rq-progress__stage { display: none; }
.rq-progress__track { grid-area: track; height: 8px; background: var(--soft); border-radius: 5px; overflow: hidden; }
.rq-progress__track span { display: block; height: 100%; width: 0; background: var(--accent); border-radius: 5px; transition: width .35s cubic-bezier(.4,0,.2,1); }
.rq-progress__label { grid-area: label; font-size: 13px; font-weight: 700; color: var(--jv-text-secondary); white-space: nowrap; }

.rq-main { flex: 1 1 auto; }

/* пилюля-счётчик над вопросом (десктоп прячем — прогресс и так виден; оставим для контекста на мобилке) */
.rq-pill { display: inline-block; font-size: 13px; font-weight: 700; color: var(--accent); background: rgba(242,91,36,.12);
  padding: 7px 14px; border-radius: 40px; margin-bottom: 16px; }
.rq-q__title { margin: 0 0 10px; font-size: 28px; font-weight: 700; line-height: 1.18; letter-spacing: -.01em; }
.rq-q__sub { margin: 0 0 26px; font-size: 16px; line-height: 1.5; color: var(--jv-text-secondary); }
/* #470: на форменных шагах заголовок+подпись+поля — одна серая панель.
   Подложку несёт панель, у самой формы фон/отступы гасим, чтобы не задвоились. */
.rq-panel { background: var(--jv-bg-surface, #F2F3F6); border-radius: 16px; padding: 22px 20px 20px; }
.rq-panel .rq-q__sub { margin-bottom: 18px; }
.rq-panel .rq-form { background: none; padding: 0; border-radius: 0; }

/* карточки-ответы */
.rq-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.rq-cards--wide { grid-template-columns: 1fr; }
.rq-card { position: relative; display: flex; gap: 16px; align-items: center; text-align: left;
  padding: 22px; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r); cursor: pointer;
  font-family: inherit; transition: border-color .18s ease, transform .18s ease, background .18s ease; }
.rq-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.rq-card.is-sel { border-color: var(--accent); background: rgba(242,91,36,.05); }
.rq-card__ico { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; border-radius: 13px; background: var(--soft); color: var(--accent); transition: background .18s ease, color .18s ease; }
.rq-card.is-sel .rq-card__ico { background: var(--accent); color: #fff; }
.rq-card__body { min-width: 0; padding-right: 28px; }
.rq-card__ttl { display: block; font-size: 17px; font-weight: 700; line-height: 1.3; }
.rq-card__desc { display: block; margin-top: 5px; font-size: 14px; line-height: 1.45; color: var(--jv-text-secondary); }
.rq-card__radio { position: absolute; top: 50%; right: 22px; transform: translateY(-50%); width: 24px; height: 24px; border-radius: 50%;
  border: 1.5px solid var(--line); transition: all .18s ease; }
.rq-card.is-sel .rq-card__radio { border-color: var(--accent); background: var(--accent); }
.rq-card.is-sel .rq-card__radio::after { content: ""; position: absolute; inset: 0; margin: auto; width: 9px; height: 9px; border-radius: 50%; background: #fff; }

/* карточка с иллюстрацией сверху (картинка → текст) — крупная */
.rq-card--illus { flex-direction: column; align-items: stretch; gap: 0; padding: 0; overflow: hidden; }
.rq-card__illus { display: flex; align-items: center; justify-content: center; height: 210px; background: var(--soft); transition: background .18s ease; }
.rq-card__illus svg { height: 150px; width: auto; max-width: 78%; }
.rq-card--illus.is-sel .rq-card__illus { background: #fbe6dd; }
.rq-card--illus .rq-card__body { padding: 22px 24px 26px; padding-right: 48px; }
.rq-card--illus .rq-card__ttl { font-size: 18px; }
.rq-card--illus .rq-card__radio { top: 16px; right: 16px; transform: none; }

/* ===== полезные материалы (постоянный блок под квизом) ===== */
.rq-resources { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px;
  margin-top: 20px; padding: 22px 26px; background: var(--soft); border-radius: var(--r); }
.rq-resources__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rq-resources__title { font-size: 16px; font-weight: 700; color: var(--jv-text-primary); }
.rq-resources__sub { font-size: 14px; color: var(--jv-text-secondary); }
.rq-resources__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.rq-link { display: inline-flex; align-items: center; gap: 10px; padding: 13px 18px; border: 1.5px solid var(--line);
  border-radius: 12px; background: #fff; color: var(--jv-text-primary); font-size: 14px; font-weight: 600; text-decoration: none; transition: all .18s ease; }
.rq-link:hover { border-color: var(--accent); color: var(--accent); }
.rq-link svg { flex: 0 0 auto; width: 20px; height: 20px; color: var(--accent); }

/* пассивное согласие на финале */
/* #211: согласие — обязательный чекбокс (был пассивный текст) */
.rq-consent-note { display: flex; align-items: flex-start; gap: 10px; margin: 0; cursor: pointer;
  font-size: 13px; line-height: 1.5; color: var(--jv-text-muted); }
.rq-consent-note input[type="checkbox"] { flex: none; width: 18px; height: 18px; margin: 1px 0 0;
  accent-color: var(--accent); cursor: pointer; }
.rq-consent-note a { color: var(--accent); text-decoration: none; }
.rq-consent-note a:hover { text-decoration: underline; }
.rq-consent-note.is-err { color: #d0342c; }
.rq-consent-note.is-err input[type="checkbox"] { outline: 2px solid #d0342c; outline-offset: 2px; border-radius: 4px; }

/* чипы */
.rq-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.rq-chip { font-family: inherit; font-size: 15px; font-weight: 500; color: var(--jv-text-primary); background: #fff;
  border: 1.5px solid var(--line); border-radius: 40px; padding: 11px 18px; cursor: pointer; transition: all .18s ease; }
.rq-chip:hover { border-color: var(--accent); color: var(--accent); }
.rq-chip.is-sel { background: var(--accent); border-color: var(--accent); color: #fff; }

/* поля формы */
/* #401: блок с вопросами не читался — белые поля на белом фоне сливались.
   Форму кладём на серую подложку, поля делаем белыми (инверсия прежней схемы).
   #402: сетка переведена с 2 на 6 колонок, чтобы рядом с половинными полями
   можно было ставить трети (регион + телефон + e-mail в одну строку). */
.rq-form { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px 18px;
  background: var(--jv-bg-surface, #F2F3F6); padding: 20px; border-radius: 16px; }
.rq-field { display: flex; flex-direction: column; gap: 7px; grid-column: span 3; }
.rq-field--full { grid-column: 1 / -1; }
.rq-field--third { grid-column: span 2; }
.rq-field label { font-size: 13px; font-weight: 600; color: var(--jv-text-secondary); }
.rq-field .req { color: var(--accent); }
.rq-field input, .rq-field select, .rq-field textarea { width: 100%; font-family: inherit; font-size: 15px; color: var(--jv-text-primary);
  background: #fff; border: 1.5px solid var(--line); border-radius: 11px; padding: 13px 15px; transition: border-color .18s ease, background .18s ease; }
.rq-field textarea { resize: vertical; min-height: 92px; }
/* #469: тут был шорткат background:#fff — на :focus он сбрасывал no-repeat
   у стрелки select (#419 ниже), и оранжевая стрелка замощала весь селект.
   Красим только цвет — картинка/repeat/position остаются свои. */
.rq-field input:focus, .rq-field select:focus, .rq-field textarea:focus { outline: none; background-color: #fff; border-color: var(--accent); }
.rq-field input.is-invalid, .rq-field select.is-invalid, .rq-field textarea.is-invalid { border-color: #e5484d; background-color: #fff; }
/* #419: нативная стрелка select прижата вплотную к рамке. Ставим свою — с тем
   же отступом от края, что у календаря ниже и у селектов калькулятора (14px). */
.rq-field select {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  padding-right: 40px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.6' fill='none' stroke-linecap='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
.rq-field select:focus {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23E94E1B' stroke-width='1.6' fill='none' stroke-linecap='round'/></svg>");
}
.rq-fielderr { min-height: 0; font-size: 12px; color: #e5484d; }
.rq-fielderr:empty { display: none; }

/* #521: селект с поиском (регион) — тот же вид, что у нативного, плюс список */
.rq-combo { position: relative; }
.rq-combo > input {
  padding-right: 40px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.6' fill='none' stroke-linecap='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
.rq-combo > input:focus {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23E94E1B' stroke-width='1.6' fill='none' stroke-linecap='round'/></svg>");
}
.rq-combo__list {
  position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; right: 0;
  max-height: 264px; overflow-y: auto;
  background: #fff; border: 1.5px solid var(--line); border-radius: 11px;
  box-shadow: 0 12px 28px rgba(20, 22, 26, .12);
  padding: 6px;
}
.rq-combo__opt {
  padding: 9px 11px; border-radius: 8px; font-size: 15px; cursor: pointer;
  color: var(--jv-text-primary);
}
.rq-combo__opt.is-cur { background: var(--jv-bg-subtle, #f4f5f7); }
.rq-combo__none { padding: 9px 11px; font-size: 14px; color: var(--jv-text-secondary); }

/* оборудование */
.rq-eq { display: flex; flex-direction: column; gap: 12px; }
.rq-eq__head { display: grid; grid-template-columns: 150px 1fr 90px 46px; gap: 12px; font-size: 12px; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase; color: var(--jv-text-muted); padding: 0 2px; }
.rq-eq__row { display: grid; grid-template-columns: 150px 1fr 90px 46px; gap: 12px; align-items: center; }
.rq-eq__row input { width: 100%; font-family: inherit; font-size: 15px; background: var(--soft); border: 1.5px solid transparent;
  border-radius: 11px; padding: 12px 14px; }
.rq-eq__row input:focus { outline: none; background: #fff; border-color: var(--accent); }
.rq-eq__name { display: flex; align-items: center; min-height: 46px; padding: 0 6px; font-size: 14px; color: var(--jv-text-muted);
  background: var(--soft); border-radius: 11px; }
.rq-eq__name.ok { color: var(--jv-text-primary); font-weight: 500; background: #eafaf0; }
.rq-eq__name.bad { color: #e5484d; }
.rq-eq__del { border: none; background: var(--soft); color: var(--jv-text-muted); width: 46px; height: 46px; border-radius: 11px;
  cursor: pointer; font-size: 20px; line-height: 1; transition: all .18s ease; }
.rq-eq__del:hover { background: #fde8e2; color: #e5484d; }
.rq-eq__add { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; font-family: inherit;
  font-size: 15px; font-weight: 600; color: var(--accent); background: none; border: 1.5px dashed var(--accent);
  border-radius: 11px; padding: 12px 18px; cursor: pointer; margin-top: 2px; transition: background .18s ease; }
.rq-eq__add:hover { background: rgba(242,91,36,.06); }

/* загрузка файла — две колонки: шаблон + зона загрузки */
.rq-upload { display: flex; flex-direction: column; gap: 14px; }
.rq-upload--split { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: stretch; }
.rq-upload__card { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 8px;
  background: var(--soft); border-radius: var(--r); padding: 30px 26px; }
.rq-upload__illus { line-height: 0; margin-bottom: 4px; }
.rq-upload__illus svg { width: 92px; height: auto; }
.rq-upload__t { margin: 0; font-size: 19px; font-weight: 700; }
.rq-upload__s { margin: 0 0 6px; max-width: 280px; font-size: 14px; line-height: 1.5; color: var(--jv-text-secondary); }
.rq-upload__dl { display: inline-flex; align-items: center; gap: 10px; font-family: inherit;
  font-size: 15px; font-weight: 600; color: var(--jv-text-primary); background: #fff; border: 1.5px solid var(--line); border-radius: 12px;
  padding: 13px 22px; text-decoration: none; cursor: pointer; transition: border-color .18s ease, color .18s ease; }
.rq-upload__dl:hover { border-color: var(--accent); color: var(--accent); }
.rq-upload__dl[disabled] { opacity: .6; cursor: default; }
/* зона загрузки — выделена */
.rq-drop { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 30px; min-height: 230px;
  text-align: center; background: rgba(242,91,36,.04); border: 2px dashed var(--accent); border-radius: var(--r); cursor: pointer; transition: background .18s ease; }
.rq-drop:hover { background: rgba(242,91,36,.09); }
.rq-drop.has-file { border-style: solid; background: #eafaf0; border-color: #bfe9c8; }
/* #440: перетаскивание файла — подсветка зоны и отбой неподходящего формата */
.rq-drop.is-dragover { background: rgba(242,91,36,.16); border-color: var(--accent); border-style: solid; }
.rq-drop.is-dragover * { pointer-events: none; }
.rq-drop.is-invalid { border-color: #d94a4a; background: rgba(217,74,74,.08); }
.rq-drop.is-invalid .rq-drop__file { color: #d94a4a; }
.rq-drop__ico { margin-bottom: 6px; }
.rq-drop__t { font-size: 17px; font-weight: 700; }
.rq-drop__s { font-size: 13px; color: var(--jv-text-muted); }
.rq-drop__file { margin-top: 6px; font-size: 14px; font-weight: 600; color: #1a8a3a; }

/* подсказка */
.rq-hint { display: flex; gap: 12px; align-items: flex-start; margin-top: 24px; padding: 16px 18px;
  background: var(--soft); border-radius: var(--r); }
.rq-hint__ico { flex: 0 0 auto; color: var(--accent); }
.rq-hint__txt { font-size: 14px; line-height: 1.5; color: var(--jv-text-secondary); }

/* инлайн-ошибка (например «выберите вариант») */
.rq-flash { margin-top: 18px; padding: 12px 16px; background: #fdecea; border-radius: 11px;
  font-size: 14px; font-weight: 600; color: #e5484d; }

/* финал */
.rq-final-illus { display: flex; align-items: center; justify-content: center; margin: 0 0 22px; padding: 22px;
  background: var(--soft); border-radius: var(--r); }
.rq-final-illus svg { height: 118px; width: auto; }
.rq-dlbtn { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 22px; font-family: inherit; font-size: 15px; font-weight: 600;
  color: var(--jv-text-primary); background: #fff; border: 1.5px solid var(--line); border-radius: 12px; padding: 13px 20px; cursor: pointer; transition: all .18s ease; }
.rq-dlbtn:hover { border-color: var(--accent); color: var(--accent); }
.rq-dlbtn svg { flex: 0 0 auto; color: var(--accent); }
.rq-review { display: flex; flex-direction: column; margin-bottom: 22px; border: 1.5px solid var(--line2); border-radius: var(--r); overflow: hidden; }
.rq-review__item { display: flex; justify-content: space-between; gap: 16px; padding: 14px 18px; }
.rq-review__item:nth-child(odd) { background: var(--soft); }
.rq-review__k { font-size: 14px; color: var(--jv-text-muted); }
.rq-review__v { font-size: 14px; font-weight: 600; text-align: right; }
.rq-consent { display: flex; align-items: flex-start; gap: 11px; font-size: 14px; line-height: 1.45; color: var(--jv-text-secondary); cursor: pointer; }
.rq-consent input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 1px; accent-color: var(--accent); }
.rq-consent a { color: var(--accent); text-decoration: none; }

/* благодарность */
.rq-done { text-align: center; padding: 48px 20px; }
.rq-done__ico { display: inline-flex; align-items: center; justify-content: center; width: 88px; height: 88px;
  border-radius: 50%; background: rgba(242,91,36,.12); color: var(--accent); margin-bottom: 24px; }
.rq-done__t { margin: 0 0 12px; font-size: 30px; font-weight: 700; }
.rq-done__s { margin: 0 auto; max-width: 480px; font-size: 16px; line-height: 1.55; color: var(--jv-text-secondary); }

/* навигация (под картой этапов справа) */
.rq-nav { display: flex; gap: 12px; align-items: center; }
.rq-nav__back { display: inline-flex; align-items: center; gap: 7px; height: 52px; padding: 0 20px 0 16px; border-radius: 14px;
  border: 1.5px solid var(--line); background: #fff; color: var(--jv-text-primary); font-family: inherit; font-size: 15px; font-weight: 600; cursor: pointer; transition: all .18s ease; }
.rq-nav__back:hover { border-color: var(--accent); color: var(--accent); }
.rq-nav__back:disabled { opacity: .4; cursor: default; }
.rq-nav__next { flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 52px;
  border: none; border-radius: 14px; background: var(--accent); color: #fff; font-family: inherit; font-size: 16px; font-weight: 700;
  cursor: pointer; transition: background .18s ease, gap .18s ease; }
.rq-nav__next:hover { background: var(--jv-primary-hover); gap: 12px; }

/* ===== адаптив ===== */
@media (max-width: 900px) {
  .rq-board { grid-template-columns: 1fr; gap: 0; }
  .rq-side { position: static; gap: 0; }
  .rq-road { display: none; } /* вертикальные этапы уезжают — показываем этап + бар */
  .rq-stage { border: none; padding: 0; min-height: 0; }
  .rq-progress { display: grid; row-gap: 8px; margin-bottom: 22px; }
  .rq-cards { grid-template-columns: 1fr; }
  .rq-form { grid-template-columns: 1fr; padding: 16px; }
  .rq-field, .rq-field--third { grid-column: 1 / -1; }
  .rq-upload--split { grid-template-columns: 1fr; }
  .rq-eq__head { display: none; }
  .rq-eq__row { grid-template-columns: 1fr 84px 46px; }
  .rq-eq__name { grid-column: 1 / -1; min-height: 0; padding: 8px 12px; }
  /* липкая навигация снизу экрана */
  .rq-nav { position: sticky; bottom: 0; z-index: 5; margin: 8px -20px 0; padding: 14px 20px;
    background: rgba(255,255,255,.94); backdrop-filter: blur(6px); border-top: 1.5px solid var(--line); }
  .rq-nav__back span { display: none; }
  .rq-nav__back { width: 52px; padding: 0; justify-content: center; }
  .rq-resources { flex-direction: column; align-items: stretch; padding: 20px; }
  .rq-resources__btns { flex-direction: column; }
  .rq-link { justify-content: flex-start; }
}
@media (max-width: 480px) {
  .rq-q__title { font-size: 23px; }
  .rq-card { padding: 18px; }
}

/* A11y (P1 аудит): файл-инпут визуально скрыт, но остаётся в таб-порядке и
   фокусируем с клавиатуры (был inp.hidden — выпадал из навигации). */
.rq-drop__input-sr {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}
.rq-drop:focus-within {
  outline: 2px solid var(--jv-primary, #E94E1B);
  outline-offset: 3px;
}


/* #403: поле срока сдачи выглядело как системный контрол — фирменная иконка
   календаря и та же геометрия, что у остальных полей. Родной вызов
   календаря сохраняем: прозрачный picker-indicator лежит поверх иконки. */
.rq-field input[type="date"] {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 44px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'><rect x='3' y='5' width='18' height='16' rx='3' stroke='%23999' stroke-width='1.7'/><path d='M3 10h18M8 3v4M16 3v4' stroke='%23999' stroke-width='1.7' stroke-linecap='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
}

.rq-field input[type="date"]:focus {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'><rect x='3' y='5' width='18' height='16' rx='3' stroke='%23E94E1B' stroke-width='1.7'/><path d='M3 10h18M8 3v4M16 3v4' stroke='%23E94E1B' stroke-width='1.7' stroke-linecap='round'/></svg>");
}

.rq-field input[type="date"]::-webkit-calendar-picker-indicator {
  opacity: 0;
  cursor: pointer;
  width: 26px;
  margin-right: -6px;
}

/* Ошибка отправки анкеты (#19) — под кнопками навигации */
.rq-submit-error {
  flex: 1 1 100%;
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.45;
  color: #C0392B;
}

/* Ловушка для ботов (renderFinal в jv_register.js). Не display:none и не
   visibility:hidden: часть краулеров такие поля распознаёт и пропускает.
   Поле выведено за край экрана — в разметке обычное, человеку недоступно. */
.rq-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
