/* River: кнопки «Стекло и свет» и объёмный логотип (выбор Кирилла 06.11). Подключать последним стилем. */
body :is(.nav .cta, .btn, .chat-btn) {
  position: relative; overflow: hidden; isolation: isolate; border-radius: 16px;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .18); color: var(--bone, #EDE8DF);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  transition: transform .25s cubic-bezier(.2, .8, .2, 1), border-color .3s, box-shadow .3s;
}
/* чат-кнопка остаётся плавающей в правом нижнем углу (стекло не должно ломать её position: fixed) */
body .chat-btn[data-chat-open] { position: fixed; }
body :is(.nav .cta, .btn, .chat-btn)::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity .3s;
  background: radial-gradient(140px circle at var(--x, 50%) var(--y, 50%), rgba(224, 22, 58, .55), transparent 60%);
}
body :is(.nav .cta, .btn, .chat-btn)::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 40%; left: -60%; z-index: -1; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent); transform: skewX(-20deg);
  animation: rv-shine 3.4s ease-in-out infinite;
}
body :is(.nav .cta, .btn, .chat-btn):hover { transform: translateY(-2px); border-color: rgba(255, 255, 255, .34); background: rgba(255, 255, 255, .08); color: var(--bone, #EDE8DF); }
body :is(.nav .cta, .btn, .chat-btn):hover::before { opacity: 1; }
/* главные действия: стекло с красным отливом */
body :is(.btn.main, .btn.red, .chat-btn) { background: rgba(224, 22, 58, .24); border-color: rgba(255, 92, 118, .55); box-shadow: 0 10px 34px -14px rgba(224, 22, 58, .8); }
body :is(.btn.main, .btn.red, .chat-btn):hover { background: rgba(224, 22, 58, .32); border-color: rgba(255, 140, 158, .8); box-shadow: 0 14px 40px -12px rgba(224, 22, 58, .95); }
body :is(.btn.main, .btn.red, .chat-btn)::before { background: radial-gradient(140px circle at var(--x, 50%) var(--y, 50%), rgba(255, 150, 168, .55), transparent 60%); }
/* кнопка на светлой карточке */
body .card .btn { background: rgba(16, 12, 22, .88); border-color: rgba(16, 12, 22, .9); }
body .card .btn:hover { background: rgba(16, 12, 22, .95); }
body .btn.in-cart { background: rgba(91, 216, 255, .14); color: var(--cyan, #5BD8FF); border-color: rgba(91, 216, 255, .4); }
body .btn[disabled] { opacity: .45; cursor: not-allowed; transform: none; }
.btn > *, .cta > *, .chat-btn > * { position: relative; }
@keyframes rv-shine { 0%, 60% { left: -60%; } 100% { left: 130%; } }

/* объёмный логотип в шапке: блик пробегает при наведении */
.brand.brand3d { position: relative; overflow: hidden; display: flex; align-items: center; text-decoration: none; padding: 2px 4px; margin-left: -4px; border-radius: 10px; }
.brand.brand3d img { height: 56px !important; width: auto; display: block; filter: drop-shadow(0 4px 10px rgba(224, 22, 58, .25)); transition: transform .35s cubic-bezier(.2, .8, .2, 1.3), filter .35s; }
.brand.brand3d:hover img { transform: translateY(-1px) scale(1.04); filter: drop-shadow(0 6px 16px rgba(224, 22, 58, .55)); }
.brand.brand3d::after { content: ""; position: absolute; top: -20%; bottom: -20%; width: 35%; left: -60%; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .45), transparent); transform: skewX(-20deg); }
.brand.brand3d:hover::after { left: 130%; transition: left .7s ease-in-out; }
@media (max-width: 640px) { .brand.brand3d img { height: 40px !important; } }
@media (prefers-reduced-motion: reduce) { body :is(.nav .cta, .btn, .chat-btn)::after { animation: none; } }
