/* FirmBaza visual system: Apple-inspired restraint without changing page behavior. */
:root {
  --fb-surface: #ffffff;
  --fb-surface-muted: #f5f5f7;
  --fb-text: #1d1d1f;
  --fb-text-secondary: #6e6e73;
  --fb-line: #d2d2d7;
  --fb-accent: #059669;
  --fb-accent-dark: #047857;
  --fb-radius: 18px;
  --fb-shadow: 0 8px 30px rgb(0 0 0 / 0.07);
}

html { background: var(--fb-surface-muted); }
body {
  color: var(--fb-text);
  background: var(--fb-surface-muted);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  font-weight: 400;
  letter-spacing: -0.01em;
}

body h1,
body h2,
body h3,
body h4 {
  font-family: inherit !important;
  color: var(--fb-text);
  letter-spacing: -0.025em;
}
body h1 {
  font-size: clamp(2.25rem, 5vw, 4rem) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
}
body h2 {
  font-size: clamp(1.8rem, 3.5vw, 2.75rem) !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
}
body h3,
body h4 {
  font-weight: 600 !important;
  line-height: 1.2 !important;
}
body p,
body li,
body label {
  letter-spacing: -0.005em;
}
.hero-bg h1,
.hero-bg h2,
.hero-bg h3,
.hero-bg h4,
.hero-bg p,
.jq-hero h1.text-white,
.jq-hero h2.text-white,
.jq-hero h3.text-white,
.jq-hero p.text-white {
  color: #ffffff !important;
}

header {
  background: rgb(255 255 255 / 0.92) !important;
  border-bottom: 1px solid var(--fb-line) !important;
  -webkit-backdrop-filter: saturate(180%) blur(16px);
  backdrop-filter: saturate(180%) blur(16px);
}

main > section:not(.hero-bg):not(.jq-hero) { border-color: var(--fb-line); }

.jq-card,
.product-card,
.catalog-card,
.card {
  border: 1px solid var(--fb-line) !important;
  border-radius: var(--fb-radius) !important;
  box-shadow: var(--fb-shadow) !important;
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.jq-card:hover,
.product-card:hover,
.catalog-card:hover,
.card:hover {
  border-color: #a7a7ad !important;
  box-shadow: 0 14px 36px rgb(0 0 0 / 0.11) !important;
  transform: translateY(-3px);
}

/* Keep bundle offers readable when the global light theme meets a dark card. */
a.jq-card[style*="background:#0f172a"] h1,
a.jq-card[style*="background:#0f172a"] h2,
a.jq-card[style*="background:#0f172a"] h3,
a.jq-card[style*="background:#0f172a"] h4,
a.jq-card[style*="background:#0f172a"] p,
a.jq-card[style*="background:#0f172a"] .text-slate-400,
a.jq-card[style*="background:#0f172a"] .text-slate-500,
a.jq-card[style*="background:#0f172a"] .text-slate-300 {
  color: #ffffff !important;
}
a.jq-card[style*="background:#0f172a"] .badge {
  color: #0f172a !important;
}
section[style*="background:#0f172a"] h1,
section[style*="background:#0f172a"] h2,
section[style*="background:#0f172a"] h3,
section[style*="background:#0f172a"] h4,
section[style*="background:#0f172a"] p,
section[style*="background:#0f172a"] .text-slate-300,
section[style*="background:#0f172a"] .text-slate-400,
section[style*="background:#0f172a"] .text-slate-500 {
  color: #ffffff !important;
}
section.bg-slate-900 h1,
section.bg-slate-900 h2,
section.bg-slate-900 h3,
section.bg-slate-900 h4,
section.bg-slate-900 p,
section.bg-slate-900 .text-slate-200,
section.bg-slate-900 .text-slate-300,
section.bg-slate-900 .text-slate-400,
section.bg-slate-900 .text-slate-500 {
  color: #ffffff !important;
}
/* Hero статей блога: тёмная секция bg-slate-950 — заголовок и подзаголовок белые */
section.bg-slate-950 h1,
section.bg-slate-950 h2,
section.bg-slate-950 h3,
section.bg-slate-950 h4,
section.bg-slate-950 p {
  color: #ffffff !important;
}
a.jq-hero .jq-btn[style*="background:transparent"][href*="marketplaces-bundle"] {
  background: var(--fb-text) !important;
  border-color: var(--fb-text) !important;
  color: #ffffff !important;
}
a.jq-hero .jq-btn[style*="background:transparent"][href*="marketplaces-bundle"] span {
  color: #ffffff !important;
}

.jq-btn,
.btn {
  border-radius: 999px !important;
  font-family: inherit !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
  box-shadow: 0 3px 10px rgb(0 0 0 / 0.08) !important;
  transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.jq-btn:hover,
.btn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgb(0 0 0 / 0.12) !important;
}
.jq-btn-primary,
.btn-primary {
  background: var(--fb-accent) !important;
}
.jq-btn-primary:hover,
.btn-primary:hover:not(:disabled) {
  background: var(--fb-accent-dark) !important;
}

/* Крупная акцентная кнопка «Купить» в CTA-блоках карточек баз (top/*) */
.btn-buy-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 1.25rem 2.75rem;
  font-family: inherit;
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #ffffff !important;
  background: linear-gradient(135deg, #059669 0%, #047857 55%, #065f46 100%) !important;
  border: none;
  border-radius: 999px !important;
  cursor: pointer;
  box-shadow: 0 10px 24px rgb(5 150 105 / 0.45), 0 2px 6px rgb(0 0 0 / 0.18), inset 0 1px 0 rgb(255 255 255 / 0.25) !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}
.btn-buy-cta i {
  font-size: 1.05rem;
  margin-right: 0.65rem;
  opacity: 0.95;
}
.btn-buy-cta:hover {
  transform: translateY(-3px) scale(1.03);
  filter: brightness(1.06);
  box-shadow: 0 16px 34px rgb(5 150 105 / 0.55), 0 4px 10px rgb(0 0 0 / 0.22), inset 0 1px 0 rgb(255 255 255 / 0.25) !important;
}
.btn-buy-cta:active {
  transform: translateY(-1px) scale(0.99);
  box-shadow: 0 6px 16px rgb(5 150 105 / 0.4), 0 2px 4px rgb(0 0 0 / 0.2) !important;
}
.btn-buy-cta:focus-visible {
  outline: 3px solid #34d399;
  outline-offset: 3px;
}
@media (max-width: 640px) {
  .btn-buy-cta { width: 100%; font-size: 1.05rem; padding: 1.1rem 1.5rem; }
}
.btn-buy-cta-sm {
  padding: 0.95rem 1.75rem;
  font-size: 0.95rem;
  box-shadow: 0 8px 20px rgb(5 150 105 / 0.4), 0 2px 5px rgb(0 0 0 / 0.15), inset 0 1px 0 rgb(255 255 255 / 0.25) !important;
}
.btn-buy-cta-sm i { font-size: 0.95rem; margin-right: 0.5rem; }
@media (max-width: 640px) {
  .btn-buy-cta-sm { width: 100%; }
}

/* Яркая кнопка «Примеры выгрузок» рядом с «Купить» в hero-блоках top/* */
.btn-demo-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0.95rem 1.75rem;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #0f172a !important;
  background: linear-gradient(135deg, #c8f04b 0%, #a3e635 60%, #84cc16 100%) !important;
  border: none;
  border-radius: 999px !important;
  cursor: pointer;
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: 0 8px 22px rgb(132 204 22 / 0.45), 0 2px 6px rgb(0 0 0 / 0.2), inset 0 1px 0 rgb(255 255 255 / 0.4) !important;
  transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}
.btn-demo-cta i {
  font-size: 1rem;
  margin-right: 0.55rem;
}
.btn-demo-cta:hover {
  transform: translateY(-3px) scale(1.03);
  filter: brightness(1.05);
  box-shadow: 0 14px 30px rgb(132 204 22 / 0.55), 0 4px 10px rgb(0 0 0 / 0.25), inset 0 1px 0 rgb(255 255 255 / 0.4) !important;
}
.btn-demo-cta:active {
  transform: translateY(-1px) scale(0.99);
}
.btn-demo-cta:focus-visible {
  outline: 3px solid #65a30d;
  outline-offset: 3px;
}
@media (max-width: 640px) {
  .btn-demo-cta { width: 100%; }
}


.jq-btn-light,
.btn-secondary {
  background: var(--fb-surface) !important;
  border-color: var(--fb-line) !important;
  color: var(--fb-text) !important;
}
.jq-btn-light:hover,
.btn-secondary:hover:not(:disabled) {
  background: var(--fb-surface-muted) !important;
  border-color: #a7a7ad !important;
}

input,
textarea,
select,
.input {
  font-family: inherit !important;
  font-size: 1rem !important;
  letter-spacing: -0.01em;
  border-color: var(--fb-line) !important;
  border-radius: 12px !important;
  background: var(--fb-surface) !important;
  color: var(--fb-text) !important;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
input:focus,
textarea:focus,
select:focus,
.input:focus {
  border-color: var(--fb-accent) !important;
  box-shadow: 0 0 0 4px rgb(5 150 105 / 0.12) !important;
  outline: 0;
}

.jq-hero {
  background: var(--fb-surface-muted) !important;
  color: var(--fb-text) !important;
}
.jq-hero .flex a.jq-btn:not(.jq-btn-light),
.jq-hero .flex button.jq-btn:not(.jq-btn-light) {
  background: var(--fb-text) !important;
  border-color: var(--fb-text) !important;
  color: #ffffff !important;
}
.jq-hero .flex a.jq-btn:not(.jq-btn-light):hover,
.jq-hero .flex button.jq-btn:not(.jq-btn-light):hover {
  background: var(--fb-accent) !important;
  border-color: var(--fb-accent) !important;
}

/* Кнопки в hero-блоках top/* — как в карточках на главной (jq-btn/jq-btn-coral) */
.jq-hero .flex button.jq-btn.jq-btn-coral,
.jq-hero .flex a.jq-btn.jq-btn-coral {
  background: #ff5b2e !important;
  border: 2px solid #0f172a !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: .03em !important;
  box-shadow: 5px 5px 0 #0f172a !important;
}
.jq-hero .flex button.jq-btn.jq-btn-coral:hover,
.jq-hero .flex a.jq-btn.jq-btn-coral:hover {
  background: #ff5fa2 !important;
  transform: translate(-3px, -3px) !important;
  box-shadow: 8px 8px 0 #0f172a !important;
}
.jq-hero .flex button.jq-btn.jq-btn-coral:active {
  transform: translate(2px, 2px) !important;
  box-shadow: 0 0 0 #0f172a !important;
}
.jq-hero .flex a.jq-btn.jq-btn-light,
.jq-hero .flex button.jq-btn.jq-btn-light {
  background: #ffffff !important;
  border: 2px solid #0f172a !important;
  color: #0f172a !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: .03em !important;
  box-shadow: 5px 5px 0 #0f172a !important;
}
.jq-hero .flex a.jq-btn.jq-btn-light:hover,
.jq-hero .flex button.jq-btn.jq-btn-light:hover {
  background: #c8f04b !important;
  transform: translate(-3px, -3px) !important;
  box-shadow: 8px 8px 0 #0f172a !important;
}
@media (max-width: 640px) {
  .jq-hero .flex button.jq-btn.jq-btn-coral,
  .jq-hero .flex a.jq-btn.jq-btn-coral,
  .jq-hero .flex a.jq-btn.jq-btn-light {
    width: 100%;
  }
}
.jq-hero h1,
.jq-hero h2,
.jq-hero p { color: inherit; }
.jq-hero .jq-blob { opacity: .08 !important; }
.hero-bg {
  background: linear-gradient(180deg, #1d1d1f 0%, #303033 100%) !important;
}

.jq-marker,
.jq-marker-coral,
.jq-marker-violet {
  background: transparent !important;
  color: inherit !important;
  padding: 0 !important;
  box-decoration-break: initial;
  -webkit-box-decoration-break: initial;
  border-bottom: 3px solid var(--fb-accent);
}

.breadcrumb-nav,
nav[aria-label="Хлебные крошки"] {
  background: var(--fb-surface-muted) !important;
  border-color: var(--fb-line) !important;
}

a { text-underline-offset: 3px; }
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--fb-accent) !important;
  outline-offset: 3px;
}

@media (max-width: 767px) {
  body { overflow-x: hidden; }
  body h1 {
    font-size: clamp(2rem, 10vw, 2.75rem) !important;
  }
  body h2 {
    font-size: clamp(1.7rem, 8vw, 2.25rem) !important;
  }
  .jq-btn,
  .btn { min-height: 44px; }
  .jq-hero { padding-top: 4.5rem !important; padding-bottom: 4.5rem !important; }
  .jq-hero .jq-blob { display: none; }
  main > section:not(.hero-bg):not(.jq-hero) { padding-top: 4rem; padding-bottom: 4rem; }
  .jq-card:hover,
  .product-card:hover,
  .catalog-card:hover,
  .card:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
