/* Темы витрины kenar-keyboards. Ассеты — static/brand/kenar/themes/ (локальные копии). */

.sf-theme-menu-wrap {
  position: relative;
  flex-shrink: 0;
}

.sf-theme-toggle {
  display: inline-flex;
  height: 2.375rem;
  min-width: 2.375rem;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0 0.55rem;
  border: 1px solid var(--sf-line, #e4ddd0);
  border-radius: 0.65rem;
  background: var(--sf-card, #fff);
  color: var(--sf-ink, #151313);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.1);
  cursor: pointer;
}

.sf-theme-toggle svg {
  width: 1.25rem;
  height: 1.25rem;
  flex: none;
}

.sf-theme-toggle-label {
  max-width: 4.5rem;
  overflow: hidden;
  font-size: 0.7rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sf-theme-menu {
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  z-index: 60;
  width: 12rem;
  padding: 0.35rem;
  border: 1px solid var(--sf-line, #e4ddd0);
  border-radius: 0.85rem;
  background: var(--sf-card, #fff);
  box-shadow: 0 14px 35px rgba(15, 23, 42, 0.2);
}

.sf-theme-menu[hidden] {
  display: none !important;
}

@media (max-width: 767px) {
  .sf-theme-toggle-label {
    display: none;
  }
}

.sf-theme-option {
  display: flex;
  width: 100%;
  min-height: 2.35rem;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.7rem;
  border: 0;
  border-radius: 0.55rem;
  background: transparent;
  color: var(--sf-ink, #151313);
  font: inherit;
  font-size: 0.875rem;
  font-weight: 650;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.sf-theme-option:hover {
  background: color-mix(in srgb, var(--sf-accent, #ff8562) 12%, transparent);
}

.sf-theme-option.is-on {
  background: var(--sf-ink, #151313);
  color: var(--sf-on-ink, #fff);
}

.sf-theme-check {
  min-width: 1rem;
  text-align: center;
}

.sf-category-tab {
  display: inline-flex;
  min-height: 2.5rem;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 0.9rem;
  border: 1px solid var(--sf-line, #e4ddd0);
  border-radius: 999px;
  background: var(--sf-card, #fff);
  color: var(--sf-ink, #151313);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  transition:
    border-color 140ms ease,
    background-color 140ms ease,
    color 140ms ease;
}

.sf-category-tab:hover {
  border-color: var(--sf-accent, #ff8562);
  background: color-mix(in srgb, var(--sf-accent, #ff8562) 10%, var(--sf-card, #fff));
}

.sf-category-tab.is-active {
  border-color: var(--sf-ink, #151313);
  background: var(--sf-ink, #151313);
  color: var(--sf-on-ink, #fff);
}

.kenar-hero {
  position: relative;
  isolation: isolate;
}

/* GO-374: герой без рамки — заливка темы + мягкая тень (макет GO-364). */
html[data-sf-theme] .kenar-hero {
  border: 0;
  background: var(--sf-card);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
}

.kenar-hero-photo {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center right;
  /* GO-487: фото читаемое, не выбеленное (было 0.55) */
  opacity: 0.82;
  pointer-events: none;
}

.kenar-hero-grid {
  opacity: 0.35;
}

.kenar-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  /* GO-487: оверлей легче — фото не «блёклое», текст читаем за счёт левого затемнения */
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--sf-bg) 88%, transparent) 0%,
    color-mix(in srgb, var(--sf-bg) 62%, transparent) 46%,
    color-mix(in srgb, var(--sf-bg) 30%, transparent) 72%,
    transparent 92%
  );
}

.kenar-hero > .relative {
  z-index: 2;
}

@media (max-width: 820px) {
  .kenar-hero {
    display: block;
  }

  .kenar-hero-photo {
    position: absolute;
    inset: 0;
    opacity: 0.9;
    background-position: 62% center;
  }

  .kenar-hero::before {
    background: linear-gradient(
      180deg,
      color-mix(in srgb, var(--sf-bg) 48%, transparent) 0%,
      color-mix(in srgb, var(--sf-bg) 66%, transparent) 42%,
      color-mix(in srgb, var(--sf-bg) 90%, transparent) 100%
    );
  }

  .kenar-hero > .relative {
    position: relative;
  }

  /* GO-509: заголовок и категории поверх фонового фото клавиатуры. */
  .kenar-hero-title {
    font-size: 1.55rem;
    line-height: 1.15;
    color: var(--sf-ink);
    text-shadow: 0 2px 16px color-mix(in srgb, var(--sf-bg) 55%, transparent);
  }
}

/* GO-472: rubber-band area над sticky header — непрозрачный цвет шапки,
   чтобы содержимое страницы не просвечивало сквозь корневой фон. */
html[data-sf-theme] {
  background: var(--sf-rubber-band-bg, var(--sf-bg, #ffffff));
}

html[data-sf-theme="kenar-classic"] {
  --sf-rubber-band-bg: #fffcf7;
}

html[data-sf-theme="keyforma-clean"] {
  --sf-rubber-band-bg: #f7f4ee;
}

html[data-sf-theme="keyforma-2077"] {
  --sf-rubber-band-bg: #07080d;
}

html[data-sf-theme="keyforma-nc77"] {
  --sf-rubber-band-bg: #0a0906;
}

html[data-sf-theme="keyforma-aurora"] {
  --sf-rubber-band-bg: #f6f3ef;
}

html[data-sf-theme="keyforma-pulse"] {
  --sf-rubber-band-bg: #0b0c10;
}

@media (max-width: 767px) {
  html[data-sf-theme] {
    overscroll-behavior-y: none;
  }

  html[data-sf-theme] .site-header {
    top: 0;
    border-radius: 0;
  }

  html[data-sf-theme] .site-header-inner {
    padding-top: env(safe-area-inset-top);
  }
}

html[data-sf-theme="kenar-classic"] {
  --sf-bg: #f4f1ea;
  --sf-card: #ffffff;
  --sf-ink: #151313;
  --sf-muted: #5b6578;
  --sf-line: #e4ddd0;
  --sf-accent: #ff8562;
  --sf-on-ink: #ffffff;
  --sf-bar: rgba(255, 252, 247, 0.92);
  --vik-ink: #151313;
  --vik-coral: #ff8562;
}

html[data-sf-theme="kenar-classic"] body.vik-storefront {
  background: var(--sf-bg);
}

html[data-sf-theme="kenar-classic"] .kenar-hero-photo {
  background-image: url("../brand/kenar/themes/kenar-classic-hero.cb45ce1374d4.jpg");
}

html[data-sf-theme="keyforma-clean"] {
  --sf-bg: #f7f4ee;
  --sf-card: #ffffff;
  --sf-ink: #232a3a;
  --sf-muted: #5a6478;
  --sf-line: #e3ddd0;
  --sf-accent: #1f6f54;
  --sf-accent-2: #e8a33d;
  --sf-on-ink: #ffffff;
  --sf-bar: rgba(247, 244, 238, 0.92);
  --vik-ink: #232a3a;
  --vik-coral: #1f6f54;
}

html[data-sf-theme="keyforma-clean"] body.vik-storefront {
  background: var(--sf-bg);
  color: var(--sf-ink);
}

html[data-sf-theme="keyforma-clean"] .kenar-hero-photo {
  background-image: url("../brand/kenar/themes/keyforma-clean-hero.02c7c51ad508.jpg");
}

html[data-sf-theme="keyforma-clean"] .bg-grid-hero {
  background-color: transparent;
  background-image:
    radial-gradient(circle at 88% 18%, rgba(31, 111, 84, 0.16), transparent 48%),
    radial-gradient(circle at 12% 0%, rgba(232, 163, 61, 0.12), transparent 42%);
}

/* GO-374: акценты тёмных тем приглушены (макет GO-364, было #00e5ff/#ff2bd6). */
html[data-sf-theme="keyforma-2077"] {
  --sf-bg: #07080d;
  --sf-card: #12141c;
  --sf-ink: #e8f4ff;
  --sf-muted: #8aa0b8;
  --sf-line: #2a3148;
  --sf-accent: #4db8c9;
  --sf-accent-2: #c45a9a;
  --sf-on-ink: #041018;
  --sf-bar: rgba(7, 8, 13, 0.92);
  --vik-ink: #e8f4ff;
  --vik-coral: #4db8c9;
  color-scheme: dark;
}

html[data-sf-theme="keyforma-nc77"] {
  --sf-bg: #0a0906;
  --sf-card: #16140c;
  --sf-ink: #f6f1d8;
  --sf-muted: #b7a66a;
  --sf-line: #3a3418;
  --sf-accent: #c4b52e;
  --sf-accent-2: #c43a4a;
  --sf-on-ink: #141100;
  --sf-bar: rgba(10, 9, 6, 0.92);
  --vik-ink: #f6f1d8;
  --vik-coral: #c4b52e;
  color-scheme: dark;
}

/* Pulse: переменные приходят inline из реестра StorefrontTheme (sf-theme-dyn). */
html[data-sf-theme="keyforma-pulse"] {
  color-scheme: dark;
}

html[data-sf-theme="keyforma-2077"] .kenar-hero-photo {
  background-image: url("../brand/kenar/themes/keyforma-2077-hero.96b908c59399.jpg");
  opacity: 0.65;
}

html[data-sf-theme="keyforma-nc77"] .kenar-hero-photo {
  background-image: url("../brand/kenar/themes/keyforma-nc77-hero.83e1b2588352.jpg");
  opacity: 0.65;
}

html[data-sf-theme="keyforma-2077"] body.vik-storefront,
html[data-sf-theme="keyforma-nc77"] body.vik-storefront,
html[data-sf-theme="keyforma-pulse"] body.vik-storefront {
  background: var(--sf-bg);
  color: var(--sf-ink);
}

/* GO-374 дожим: фоновый PCB-слой body::before из темы — иначе светлый
   #f7f9fc + circuit SVG просвечивает между секциями на тёмных темах. */
html[data-sf-theme] body.vik-storefront::before {
  background-color: var(--sf-bg);
}

html[data-sf-theme="keyforma-2077"] body.vik-storefront::before,
html[data-sf-theme="keyforma-nc77"] body.vik-storefront::before,
html[data-sf-theme="keyforma-pulse"] body.vik-storefront::before {
  background-image:
    radial-gradient(circle at 18% 0%, color-mix(in srgb, var(--sf-accent) 7%, transparent), transparent 42%),
    linear-gradient(color-mix(in srgb, var(--sf-accent) 7%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--sf-accent) 7%, transparent) 1px, transparent 1px);
  background-size: 100% 100%, 28px 28px, 28px 28px;
  opacity: 1;
}

html[data-sf-theme="keyforma-2077"] .site-header,
html[data-sf-theme="keyforma-nc77"] .site-header,
html[data-sf-theme="keyforma-pulse"] .site-header {
  background-color: var(--sf-bg) !important;
  border-bottom-color: var(--sf-line);
}

html[data-sf-theme="keyforma-2077"] .site-header::before,
html[data-sf-theme="keyforma-nc77"] .site-header::before,
html[data-sf-theme="keyforma-pulse"] .site-header::before {
  opacity: 0.14;
  background-image:
    linear-gradient(var(--sf-accent) 1px, transparent 1px),
    linear-gradient(90deg, var(--sf-accent) 1px, transparent 1px);
  background-size: 28px 28px;
}

html[data-sf-theme="keyforma-2077"] .site-header::after,
html[data-sf-theme="keyforma-nc77"] .site-header::after,
html[data-sf-theme="keyforma-pulse"] .site-header::after {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--sf-bg) 40%, transparent) 0%,
    var(--sf-bg) 100%
  );
}

html[data-sf-theme] .text-vik-ink,
html[data-sf-theme] .text-ink {
  color: var(--sf-ink);
}

html[data-sf-theme] .text-vik-coral {
  color: var(--sf-accent);
}

html[data-sf-theme] .bg-vik-coral {
  background-color: var(--sf-accent);
}

html[data-sf-theme] .hover\:text-vik-coral:hover,
html[data-sf-theme] a.hover\:text-vik-coral:hover {
  color: var(--sf-accent);
}

html[data-sf-theme="kenar-classic"] .site-header,
html[data-sf-theme="keyforma-clean"] .site-header,
html[data-sf-theme="keyforma-aurora"] .site-header {
  background-color: var(--sf-bar) !important;
  border-bottom-color: var(--sf-line);
}

html[data-sf-theme="kenar-classic"] .site-header::before,
html[data-sf-theme="keyforma-clean"] .site-header::before,
html[data-sf-theme="keyforma-aurora"] .site-header::before {
  opacity: 0.12;
}

html[data-sf-theme] footer {
  background: var(--sf-card) !important;
  border-top-color: var(--sf-line) !important;
  color: var(--sf-muted);
}

html[data-sf-theme] .hero-cta-primary {
  border: 0;
  background: var(--sf-ink);
  color: var(--sf-on-ink);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--sf-ink) 22%, transparent);
}

html[data-sf-theme] .hero-cta-primary:hover {
  filter: brightness(1.08);
  color: var(--sf-on-ink);
}

/* GO-374: secondary без рамки — приглушённая заливка (макет GO-364). */
html[data-sf-theme] .hero-cta-secondary {
  border: 0;
  background: color-mix(in srgb, var(--sf-ink) 8%, var(--sf-card));
  color: var(--sf-ink);
}

html[data-sf-theme="keyforma-clean"] .hero-cta-primary {
  background: var(--sf-accent);
  color: #fff;
}

/* GO-374: неон-glow убран, мягкая тень вместо свечения. */
html[data-sf-theme="keyforma-2077"] .hero-cta-primary,
html[data-sf-theme="keyforma-nc77"] .hero-cta-primary,
html[data-sf-theme="keyforma-pulse"] .hero-cta-primary {
  background: var(--sf-accent);
  color: var(--sf-on-ink);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--sf-accent) 25%, transparent);
}

/* Тёмные темы: без светлого circuit SVG — тонкая accent-сетка из темы. */
html[data-sf-theme="keyforma-2077"] .bg-grid-hero,
html[data-sf-theme="keyforma-nc77"] .bg-grid-hero,
html[data-sf-theme="keyforma-pulse"] .bg-grid-hero {
  background-color: transparent;
  background-image:
    linear-gradient(color-mix(in srgb, var(--sf-accent) 12%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--sf-accent) 12%, transparent) 1px, transparent 1px);
  background-size: 28px 28px;
}

html[data-sf-theme] .rounded-xl2.border.border-slate-200.bg-white,
html[data-sf-theme] .rounded-4xl.border {
  background: var(--sf-card);
  border-color: var(--sf-line);
}

/* GO-374 дожим 2: на тёмных темах светлые утилиты Tailwind → тона темы.
   Иначе белыми остаются плейсхолдеры фото (bg-slate-100), инпуты и кнопки
   (bg-white/bg-slate-50) на страницах категории и товара. */
html[data-sf-theme="keyforma-2077"] .bg-white,
html[data-sf-theme="keyforma-nc77"] .bg-white,
html[data-sf-theme="keyforma-pulse"] .bg-white {
  background-color: var(--sf-card);
}

html[data-sf-theme="keyforma-2077"] .bg-white\/85,
html[data-sf-theme="keyforma-nc77"] .bg-white\/85,
html[data-sf-theme="keyforma-pulse"] .bg-white\/85 {
  background-color: color-mix(in srgb, var(--sf-card) 85%, transparent);
}

html[data-sf-theme="keyforma-2077"] .bg-slate-50,
html[data-sf-theme="keyforma-2077"] .bg-slate-100,
html[data-sf-theme="keyforma-nc77"] .bg-slate-50,
html[data-sf-theme="keyforma-nc77"] .bg-slate-100,
html[data-sf-theme="keyforma-pulse"] .bg-slate-50,
html[data-sf-theme="keyforma-pulse"] .bg-slate-100 {
  background-color: color-mix(in srgb, var(--sf-ink) 6%, var(--sf-card));
}

html[data-sf-theme="keyforma-2077"] .border-slate-200,
html[data-sf-theme="keyforma-2077"] .border-slate-300,
html[data-sf-theme="keyforma-nc77"] .border-slate-200,
html[data-sf-theme="keyforma-nc77"] .border-slate-300,
html[data-sf-theme="keyforma-pulse"] .border-slate-200,
html[data-sf-theme="keyforma-pulse"] .border-slate-300 {
  border-color: var(--sf-line);
}

html[data-sf-theme="keyforma-2077"] .text-slate-700,
html[data-sf-theme="keyforma-2077"] .text-slate-800,
html[data-sf-theme="keyforma-nc77"] .text-slate-700,
html[data-sf-theme="keyforma-nc77"] .text-slate-800,
html[data-sf-theme="keyforma-pulse"] .text-slate-700,
html[data-sf-theme="keyforma-pulse"] .text-slate-800 {
  color: var(--sf-ink);
}

html[data-sf-theme="keyforma-2077"] .text-slate-300,
html[data-sf-theme="keyforma-nc77"] .text-slate-300,
html[data-sf-theme="keyforma-pulse"] .text-slate-300 {
  color: color-mix(in srgb, var(--sf-muted) 60%, transparent);
}

html[data-sf-theme="keyforma-2077"] .text-slate-500,
html[data-sf-theme="keyforma-2077"] .text-slate-600,
html[data-sf-theme="keyforma-2077"] .text-slate-400,
html[data-sf-theme="keyforma-nc77"] .text-slate-500,
html[data-sf-theme="keyforma-nc77"] .text-slate-600,
html[data-sf-theme="keyforma-nc77"] .text-slate-400,
html[data-sf-theme="keyforma-pulse"] .text-slate-500,
html[data-sf-theme="keyforma-pulse"] .text-slate-600,
html[data-sf-theme="keyforma-pulse"] .text-slate-400 {
  color: var(--sf-muted);
}

html[data-sf-theme="keyforma-2077"] .site-header-phone-main,
html[data-sf-theme="keyforma-2077"] .site-header-hours,
html[data-sf-theme="keyforma-2077"] .site-header-cart-label,
html[data-sf-theme="keyforma-nc77"] .site-header-phone-main,
html[data-sf-theme="keyforma-nc77"] .site-header-hours,
html[data-sf-theme="keyforma-nc77"] .site-header-cart-label,
html[data-sf-theme="keyforma-pulse"] .site-header-phone-main,
html[data-sf-theme="keyforma-pulse"] .site-header-hours,
html[data-sf-theme="keyforma-pulse"] .site-header-cart-label {
  color: var(--sf-muted);
}

html[data-sf-theme="keyforma-2077"] .site-header-cart-btn,
html[data-sf-theme="keyforma-2077"] .site-header-icon-btn,
html[data-sf-theme="keyforma-nc77"] .site-header-cart-btn,
html[data-sf-theme="keyforma-nc77"] .site-header-icon-btn,
html[data-sf-theme="keyforma-pulse"] .site-header-cart-btn,
html[data-sf-theme="keyforma-pulse"] .site-header-icon-btn {
  background: var(--sf-card);
  border-color: var(--sf-line);
  color: var(--sf-ink);
}

html[data-sf-theme="keyforma-2077"] .kenar-hero,
html[data-sf-theme="keyforma-nc77"] .kenar-hero,
html[data-sf-theme="keyforma-pulse"] .kenar-hero {
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);
}

html[data-sf-theme] .vik-storefront :focus-visible {
  outline-color: var(--sf-accent);
}

html[data-sf-theme] .vik-storefront ::selection {
  background: var(--sf-accent);
  color: var(--sf-on-ink);
}

/* GO-383: чипы вариантов на странице группы — активное/наведение из темы.
   !important: перекрывает Tailwind text-slate-700/bg-white и дефолтный коралл
   из main.css, иначе на тёмных темах текст = --vik-ink (почти чёрный). */
html[data-sf-theme] .vik-storefront .variant-opt:hover {
  border-color: color-mix(in srgb, var(--sf-accent) 50%, transparent) !important;
  color: var(--sf-ink) !important;
}

html[data-sf-theme] .vik-storefront .variant-opt.is-active {
  border-color: var(--sf-accent) !important;
  background-color: color-mix(in srgb, var(--sf-accent) 22%, var(--sf-card)) !important;
  color: var(--sf-ink) !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--sf-accent) 28%, transparent);
}

html[data-sf-theme] .vik-storefront .variant-opt.is-active:hover {
  border-color: var(--sf-accent) !important;
  color: var(--sf-ink) !important;
}
