/* Общие детали всех демо Runum: плашка «демо-концепт», появление блоков, мобильное меню */
.rn-ribbon {
  position: fixed; left: 16px; bottom: 16px; z-index: 9999;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 14px 8px 8px; border-radius: 999px;
  background: rgba(31, 13, 19, 0.92); color: #fff; text-decoration: none;
  font: 600 13px/1.2 system-ui, -apple-system, "Segoe UI", sans-serif;
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  transition: transform 0.25s, background 0.25s;
}
.rn-ribbon:hover { transform: translateY(-2px); background: #a8133f; }
.rn-ribbon svg { width: 26px; height: 26px; flex: none; }
.rn-ribbon small { display: block; font-weight: 500; opacity: 0.7; font-size: 11px; }

.rv { opacity: 0; transform: translateY(24px); transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1); }
.rv.is-in { opacity: 1; transform: none; }
html:not(.js) .rv { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .rv { opacity: 1; transform: none; transition: none; } }

[data-tab-panel][hidden] { display: none !important; }

@media (max-width: 600px) {
  .rn-ribbon { left: 10px; bottom: 10px; font-size: 12px; }
  .rn-ribbon small { display: none; }
}

/* Страховка для узких экранов: поля не распирают сетку, ничего не уезжает вбок */
input, select, textarea { min-width: 0; max-width: 100%; }
body { overflow-x: clip; }
