/* ---------- «Живые» плитки при наведении ----------
   Плитка - карточка/блок (bg-white, bg-ink, bg-brand-light[/N], .pay-card; rounded-2xl|3xl),
   лежащий прямо в сетке (.grid), стопке (.space-y-3..6) или ленте (.snap-x).
   При наведении плитка чуть меняет размер через одну - нечётная в своей группе растёт,
   чётная уменьшается - и получает мягкое белое свечение.
   Размер меняем свойством scale, а не transform: так не сбиваются чужие transform
   (hover:-translate-y-0.5 у карточек каталога и т.п.), они складываются.
   Не трогаем: шапку и подвал, hero, широкие баннеры rounded-4xl (не входят в выборку),
   виртуальные карты (.savey-card), карты-перевёртыши на /business/ (.deal-*) и плитки,
   вложенные в панели rounded-3xl. Блоки с полями ввода - только свечение, без масштаба.
   Только для устройств с мышью; при prefers-reduced-motion - только свечение. */

:root {
  --hv-time: 230ms;
  --hv-ease: cubic-bezier(.25, .8, .35, 1);
  /* Светлая тема: белое кольцо-подсветка + мягкий белый ореол + тень, приподнимающая плитку */
  --hv-glow:
    0 0 0 3px rgb(255 255 255 / .95),
    0 0 26px 6px rgb(255 255 255 / .9),
    0 18px 38px -14px rgb(19 35 58 / .26);
  /* Внутренний блик - для цветных плиток (жёлтых и тёмных) */
  --hv-inner: inset 0 0 0 1px rgb(255 255 255 / .4), inset 0 1px 0 rgb(255 255 255 / .6);
}
:root[data-theme="dark"] {
  --hv-glow:
    0 0 0 1px rgb(255 255 255 / .2),
    0 0 28px 4px rgb(255 255 255 / .14),
    0 20px 42px -14px rgb(0 0 0 / .65);
  --hv-inner: inset 0 0 0 1px rgb(255 255 255 / .06), inset 0 1px 0 rgb(255 255 255 / .10);
}

@media (hover: hover) {
  /* --- Плитка: база (переходы и сила масштаба) --- */
  :is(.grid, .space-y-3, .space-y-4, .space-y-5, .space-y-6, .snap-x)
    > :is(.bg-white, .bg-ink, .bg-brand-light, [class*="bg-brand-light/"], .pay-card, .code-card):is(.rounded-2xl, .rounded-3xl):not(.rounded-3xl:is(.bg-white, .bg-ink) *, header *, footer *, .deal-grid *, .savey-card),
  .snap-x > .snap-start > a.bg-white.rounded-3xl {
    --hv-up: 1.03;
    --hv-down: .97;
    transition-property: scale, box-shadow, transform, color, background-color, border-color, opacity;
    transition-duration: var(--hv-time);
    transition-timing-function: var(--hv-ease);
  }
  /* Широкие блоки (стопки: FAQ, «Во что мы верим», панели кабинета; col-span-2) - мягче */
  :is(.space-y-3, .space-y-4, .space-y-5, .space-y-6)
    > :is(.bg-white, .bg-ink, .bg-brand-light, [class*="bg-brand-light/"], .pay-card, .code-card):is(.rounded-2xl, .rounded-3xl):not(.rounded-3xl:is(.bg-white, .bg-ink) *, header *, footer *, .deal-grid *, .savey-card),
  .grid > .lg\:col-span-2:is(.bg-white, .bg-ink, .bg-brand-light, [class*="bg-brand-light/"], .pay-card, .code-card):is(.rounded-2xl, .rounded-3xl):not(.rounded-3xl:is(.bg-white, .bg-ink) *, header *, footer *, .deal-grid *, .savey-card) {
    --hv-up: 1.02;
    --hv-down: .98;
  }

  /* --- Наведение: масштаб через один + свечение --- */
  :is(.grid, .space-y-3, .space-y-4, .space-y-5, .space-y-6, .snap-x)
    > :is(.bg-white, .bg-ink, .bg-brand-light, [class*="bg-brand-light/"], .pay-card, .code-card):is(.rounded-2xl, .rounded-3xl):is(:hover, :focus-visible):not(.rounded-3xl:is(.bg-white, .bg-ink) *, header *, footer *, .deal-grid *, .savey-card),
  .snap-x > .snap-start > a.bg-white.rounded-3xl:is(:hover, :focus-visible) {
    scale: var(--hv-up);
    z-index: 1;
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--hv-glow);
  }
  /* Чётные в группе - уменьшаются */
  :is(.grid, .space-y-3, .space-y-4, .space-y-5, .space-y-6, .snap-x)
    > :is(.bg-white, .bg-ink, .bg-brand-light, [class*="bg-brand-light/"], .pay-card, .code-card):is(.rounded-2xl, .rounded-3xl):nth-child(even):is(:hover, :focus-visible):not(.rounded-3xl:is(.bg-white, .bg-ink) *, header *, footer *, .deal-grid *, .savey-card),
  .snap-x > .snap-start:nth-child(even) > a.bg-white.rounded-3xl:is(:hover, :focus-visible) {
    scale: var(--hv-down);
  }
  /* Цветные плитки - ещё и внутренний блик */
  :is(.grid, .space-y-3, .space-y-4, .space-y-5, .space-y-6, .snap-x)
    > :is(.bg-ink, .bg-brand-light, [class*="bg-brand-light/"], .pay-card, .code-card):is(.rounded-2xl, .rounded-3xl):is(:hover, :focus-visible):not(.rounded-3xl:is(.bg-white, .bg-ink) *, header *, footer *, .deal-grid *, .savey-card) {
    box-shadow: var(--hv-inner), var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--hv-glow);
  }
  /* Блоки с полями ввода (формы профиля и анкеты, ответ на отзыв): только свечение -
     поле не должно «уезжать» из-под курсора */
  :is(.grid, .space-y-3, .space-y-4, .space-y-5, .space-y-6, .snap-x)
    > :is(.bg-white, .bg-ink, .bg-brand-light, [class*="bg-brand-light/"], .pay-card, .code-card):is(.rounded-2xl, .rounded-3xl):has(input:not([type="hidden"]), select, textarea):is(:hover, :focus-visible) {
    scale: none;
  }

  /* Лента спонсоров на sm+ - обычная сетка без прокрутки: пусть выросшая плитка
     и её свечение выходят за край, а не обрезаются */
  @media (min-width: 640px) {
    .snap-x.sm\:grid.overflow-x-auto { overflow: visible; }
  }
}

@media (hover: hover) and (prefers-reduced-motion: reduce) {
  :is(.grid, .space-y-3, .space-y-4, .space-y-5, .space-y-6, .snap-x) > *,
  .snap-x > .snap-start > a {
    scale: none !important;
  }
}
