/* SalesWhisper design-fix — 2026-08-03
   Патч: broken Tailwind utilities, reveal-up, metrics, bento, trust, cookie, a11y.
   Подключать ПОСЛЕ shared.css / tailwind.css / product-polish.css
*/

/* ---------- Reveal: content always readable ---------- */
.reveal-up {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: no-preference) {
  .reveal-up.is-animatable {
    will-change: opacity, transform;
  }
}
@media (prefers-reduced-motion: reduce) {
  .reveal-up,
  .reveal-up * {
    animation: none !important;
    transition: none !important;
  }
}

/* ---------- Critical utilities missing from prod Tailwind build ---------- */
.font-bold { font-weight: 700 !important; }
.font-black { font-weight: 900 !important; }
.font-light { font-weight: 300 !important; }
.font-mono { font-family: var(--font-mono, 'JetBrains Mono', monospace) !important; }
.uppercase { text-transform: uppercase !important; }
.italic { font-style: italic !important; }
.relative { position: relative !important; }
.absolute { position: absolute !important; }
.fixed { position: fixed !important; }
.inset-0 { inset: 0 !important; }
.flex { display: flex !important; }
.grid { display: grid !important; }
.hidden { display: none !important; }
.block { display: block !important; }
.inline-flex { display: inline-flex !important; }
.flex-col { flex-direction: column !important; }
.flex-wrap { flex-wrap: wrap !important; }
.items-center { align-items: center !important; }
.items-baseline { align-items: baseline !important; }
.items-start { align-items: flex-start !important; }
.items-end { align-items: flex-end !important; }
.justify-center { justify-content: center !important; }
.justify-between { justify-content: space-between !important; }
.justify-end { justify-content: flex-end !important; }
.gap-2 { gap: 0.5rem !important; }
.gap-3 { gap: 0.75rem !important; }
.gap-4 { gap: 1rem !important; }
.gap-5 { gap: 1.25rem !important; }
.gap-6 { gap: 1.5rem !important; }
.gap-8 { gap: 2rem !important; }
.gap-12 { gap: 3rem !important; }
.gap-x-8 { column-gap: 2rem !important; }
.gap-y-2 { row-gap: 0.5rem !important; }
.text-center { text-align: center !important; }
.text-left { text-align: left !important; }
.text-white { color: #fff !important; }
.text-white\/5 { color: rgba(255,255,255,.05) !important; }
.text-white\/20 { color: rgba(255,255,255,.2) !important; }
.text-white\/30 { color: rgba(255,255,255,.3) !important; }
.text-white\/40 { color: rgba(255,255,255,.4) !important; }
.text-white\/50 { color: rgba(255,255,255,.5) !important; }
.text-white\/60 { color: rgba(255,255,255,.6) !important; }
.text-white\/65 { color: rgba(255,255,255,.65) !important; }
.text-white\/70 { color: rgba(255,255,255,.7) !important; }
.text-sm { font-size: 0.875rem !important; line-height: 1.25rem !important; }
.text-xl { font-size: 1.25rem !important; line-height: 1.75rem !important; }
.text-2xl { font-size: 1.5rem !important; line-height: 2rem !important; }
.text-3xl { font-size: 1.875rem !important; line-height: 2.25rem !important; }
.text-4xl { font-size: 2.25rem !important; line-height: 2.5rem !important; }
.text-5xl { font-size: 3rem !important; line-height: 1 !important; }
.text-\[9px\] { font-size: 9px !important; }
.text-\[10px\] { font-size: 10px !important; }
.leading-none { line-height: 1 !important; }
.leading-tight { line-height: 1.25 !important; }
.leading-relaxed { line-height: 1.625 !important; }
.tracking-\[0\.3em\] { letter-spacing: 0.3em !important; }
.tracking-\[0\.5em\] { letter-spacing: 0.5em !important; }
.tracking-widest { letter-spacing: 0.1em !important; }
.max-w-md { max-width: 28rem !important; }
.max-w-2xl { max-width: 42rem !important; }
.max-w-\[1200px\] { max-width: 1200px !important; }
.w-full { width: 100% !important; }
.h-full { height: 100% !important; }
.min-h-screen { min-height: 100vh !important; }
.overflow-hidden { overflow: hidden !important; }
.object-cover { object-fit: cover !important; }
.rounded-full { border-radius: 9999px !important; }
.rounded-sm { border-radius: 2px !important; }
.border { border-width: 1px !important; border-style: solid !important; }
.border-t { border-top-width: 1px !important; border-top-style: solid !important; }
.border-b { border-bottom-width: 1px !important; border-bottom-style: solid !important; }
.border-y { border-top-width: 1px !important; border-bottom-width: 1px !important; border-style: solid !important; }
.border-white\/5 { border-color: rgba(255,255,255,.05) !important; }
.border-white\/10 { border-color: rgba(255,255,255,.1) !important; }
.border-white\/20 { border-color: rgba(255,255,255,.2) !important; }
.bg-black\/20 { background-color: rgba(0,0,0,.2) !important; }
.bg-\[\#020202\] { background-color: #020202 !important; }
.bg-\[\#050505\] { background-color: #050505 !important; }
.pointer-events-none { pointer-events: none !important; }
.z-10 { z-index: 10 !important; }
.z-50 { z-index: 50 !important; }
.mb-4 { margin-bottom: 1rem !important; }
.mb-6 { margin-bottom: 1.5rem !important; }
.mb-8 { margin-bottom: 2rem !important; }
.mb-10 { margin-bottom: 2.5rem !important; }
.mb-12 { margin-bottom: 3rem !important; }
.mb-16 { margin-bottom: 4rem !important; }
.mb-20 { margin-bottom: 5rem !important; }
.mt-1 { margin-top: 0.25rem !important; }
.mt-6 { margin-top: 1.5rem !important; }
.mt-10 { margin-top: 2.5rem !important; }
.pt-4 { padding-top: 1rem !important; }
.pt-6 { padding-top: 1.5rem !important; }
.pt-36 { padding-top: 9rem !important; }
.pb-4 { padding-bottom: 1rem !important; }
.p-6 { padding: 1.5rem !important; }
.p-8 { padding: 2rem !important; }
.py-10 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
.py-16 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
.py-20 { padding-top: 5rem !important; padding-bottom: 5rem !important; }
.px-8 { padding-left: 2rem !important; padding-right: 2rem !important; }
.px-10 { padding-left: 2.5rem !important; padding-right: 2.5rem !important; }
.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.py-5 { padding-top: 1.25rem !important; padding-bottom: 1.25rem !important; }
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)) !important; }
.col-span-12 { grid-column: span 12 / span 12 !important; }
.transition-all { transition-property: all !important; transition-timing-function: cubic-bezier(.4,0,.2,1) !important; transition-duration: .15s !important; }
.group { }
@media (min-width: 768px) {
  .md\:block { display: block !important; }
  .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .md\:items-center { align-items: center !important; }
  .md\:text-center { text-align: center !important; }
  .md\:pb-0 { padding-bottom: 0 !important; }
  .md\:pl-0 { padding-left: 0 !important; }
  .md\:ml-0 { margin-left: 0 !important; }
  .md\:mb-8 { margin-bottom: 2rem !important; }
  .md\:border-l-0 { border-left-width: 0 !important; }
  .md\:gap-12 { gap: 3rem !important; }
}
@media (min-width: 1024px) {
  .lg\:flex { display: flex !important; }
  .lg\:block { display: block !important; }
  .lg\:text-2xl { font-size: 1.5rem !important; line-height: 2rem !important; }
  .lg\:text-5xl { font-size: 3rem !important; line-height: 1 !important; }
  .lg\:text-7xl { font-size: 4.5rem !important; line-height: 1 !important; }
  .lg\:py-16 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
  .lg\:py-40 { padding-top: 10rem !important; padding-bottom: 10rem !important; }
  .lg\:py-60 { padding-top: 15rem !important; padding-bottom: 15rem !important; }
  .lg\:p-8 { padding: 2rem !important; }
  .lg\:p-16 { padding: 4rem !important; }
  .lg\:mb-8 { margin-bottom: 2rem !important; }
  .lg\:mb-12 { margin-bottom: 3rem !important; }
  .lg\:mb-16 { margin-bottom: 4rem !important; }
  .lg\:mt-16 { margin-top: 4rem !important; }
  .lg\:gap-20 { gap: 5rem !important; }
  .lg\:col-span-5 { grid-column: span 5 / span 5 !important; }
  .lg\:col-span-6 { grid-column: span 6 / span 6 !important; }
  .lg\:col-span-7 { grid-column: span 7 / span 7 !important; }
  .lg\:h-\[700px\] { height: 700px !important; }
}

/* ---------- Section nav visible on desktop ---------- */
#section-nav.hidden.lg\:flex {
  display: none !important;
}
@media (min-width: 1024px) {
  #section-nav.hidden.lg\:flex,
  #section-nav {
    display: flex !important;
  }
}

/* ---------- Metrics / trust strip ---------- */
#metrics {
  padding: clamp(2rem, 4vw, 3.5rem) 0 !important;
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
  background: rgba(0,0,0,.25);
}
#metrics .sw-metrics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2.5rem);
}
@media (min-width: 900px) {
  #metrics .sw-metrics-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
#metrics .sw-metric {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-width: 0;
}
#metrics .sw-metric__value {
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: clamp(1.6rem, 2.6vw, 2.15rem);
  font-weight: 700;
  line-height: 1.1;
  color: #fff;
  letter-spacing: -0.03em;
}
#metrics .sw-metric__label {
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.42);
  line-height: 1.45;
}

/* ---------- Hero trust row ---------- */
.sw-trust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.75rem;
  margin-top: clamp(1.5rem, 2.5vw, 2rem);
  max-width: 52rem;
}
.sw-trust__item {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.4rem 0.75rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 2px;
  background: rgba(255,255,255,.03);
  color: rgba(255,255,255,.72);
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.2;
}
.sw-trust__item--accent {
  border-color: rgba(37,99,235,.45);
  color: #9ec0ff;
  background: rgba(37,99,235,.1);
}
.sw-price-line {
  margin-top: 1rem;
  color: rgba(255,255,255,.55);
  font-size: clamp(0.9rem, 1.1vw, 1rem);
  line-height: 1.5;
}
.sw-price-line a {
  color: #9ec0ff;
  text-decoration: none;
  border-bottom: 1px solid rgba(158,192,255,.35);
}
.sw-price-line a:hover { border-bottom-color: #9ec0ff; }

/* ---------- Bento modules ---------- */
#intelligence {
  padding-block: clamp(4rem, 8vw, 7rem) !important;
}
#intelligence .sw-bento-head {
  margin-bottom: clamp(1.75rem, 3vw, 2.75rem);
  max-width: 48rem;
}
#intelligence .sw-bento-head h2 {
  margin: 0.6rem 0 0.9rem;
}
#intelligence .sw-bento-head p {
  color: rgba(255,255,255,.58);
  font-size: clamp(1rem, 1.2vw, 1.15rem);
  line-height: 1.65;
  max-width: 40rem;
}
#intelligence .sw-bento {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 900px) {
  #intelligence .sw-bento {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }
}
#intelligence .sw-module-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 280px;
  padding: clamp(1.4rem, 2.5vw, 2rem);
  text-decoration: none;
  color: inherit;
  border: 1px solid rgba(255,255,255,.07);
  background:
    linear-gradient(180deg, rgba(2,2,2,.15) 0%, rgba(2,2,2,.88) 72%, #020202 100%),
    radial-gradient(ellipse at 20% 0%, rgba(37,99,235,.18), transparent 55%);
  transition: border-color .35s var(--easing, ease), transform .35s var(--easing, ease), box-shadow .35s var(--easing, ease);
}
#intelligence .sw-module-card:hover {
  border-color: rgba(37,99,235,.4);
  transform: translateY(-2px);
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
}
#intelligence .sw-module-card .mono-tag {
  margin-bottom: 0.85rem;
  letter-spacing: 0.22em;
}
#intelligence .sw-module-card h3 {
  font-size: clamp(1.75rem, 2.8vw, 2.5rem);
  line-height: 1;
  margin-bottom: 0.85rem;
  letter-spacing: -0.05em;
  font-weight: 900;
}
#intelligence .sw-module-card p {
  color: rgba(255,255,255,.72);
  font-size: clamp(0.95rem, 1.05vw, 1.05rem);
  line-height: 1.55;
  margin: 0 0 1.15rem;
  max-width: 34rem;
}
#intelligence .sw-module-card .sw-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #9ec0ff;
}
#intelligence .sw-module-card:hover .sw-card-cta { color: #fff; }

/* ---------- Integrations / proof (no fake cases) ---------- */
#proof {
  padding-block: clamp(3.5rem, 6vw, 5.5rem);
  border-top: 1px solid rgba(255,255,255,.05);
}
#proof .sw-proof-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 900px) {
  #proof .sw-proof-grid {
    grid-template-columns: 1.1fr 0.9fr;
    gap: 1.25rem;
    align-items: stretch;
  }
}
#proof .sw-panel {
  border: 1px solid rgba(255,255,255,.07);
  background: rgba(255,255,255,.02);
  padding: clamp(1.4rem, 2.4vw, 2rem);
}
#proof h2 {
  margin: 0 0 0.75rem;
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  line-height: 1.05;
  letter-spacing: -0.05em;
  font-weight: 800;
}
#proof .sw-panel > p {
  color: rgba(255,255,255,.55);
  font-size: 1rem;
  line-height: 1.65;
  margin: 0 0 1.25rem;
  max-width: 40rem;
}
#proof .sw-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
#proof .sw-chip {
  padding: 0.45rem 0.7rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 2px;
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,.78);
  background: rgba(255,255,255,.03);
}
#proof .sw-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}
#proof .sw-list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.7rem;
  align-items: start;
  color: rgba(255,255,255,.72);
  font-size: 0.95rem;
  line-height: 1.5;
}
#proof .sw-list li span:first-child {
  color: #79aaff;
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-top: 0.15rem;
}

/* ---------- FAQ home ---------- */
#faq {
  padding-block: clamp(3.5rem, 6vw, 5.5rem);
  border-top: 1px solid rgba(255,255,255,.05);
}
#faq h2 {
  margin: 0 0 1.5rem;
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  letter-spacing: -0.05em;
  font-weight: 800;
}
#faq details {
  border-top: 1px solid rgba(255,255,255,.07);
  padding: 1rem 0;
}
#faq details:last-child { border-bottom: 1px solid rgba(255,255,255,.07); }
#faq summary {
  cursor: pointer;
  list-style: none;
  font-weight: 700;
  font-size: 1.05rem;
  color: #fff;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}
#faq summary::-webkit-details-marker { display: none; }
#faq summary::after {
  content: '+';
  font-family: var(--font-mono, monospace);
  color: rgba(255,255,255,.4);
  font-size: 1.2rem;
}
#faq details[open] summary::after { content: '−'; color: #79aaff; }
#faq details p {
  margin: 0.75rem 0 0.25rem;
  color: rgba(255,255,255,.58);
  line-height: 1.65;
  max-width: 48rem;
}

/* ---------- Footer CTA tone ---------- */
footer .sw-footer-cta-title {
  color: rgba(255,255,255,.12) !important;
}
footer .sw-footer-sub {
  margin: -1.5rem auto 1.75rem;
  max-width: 36rem;
  color: rgba(255,255,255,.45);
  font-size: 1rem;
  line-height: 1.55;
}

/* ---------- Cookie: compact bottom strip, never covers hero CTAs mid-screen ---------- */
#sw-cookie {
  left: 12px !important;
  right: 12px !important;
  bottom: 12px !important;
  max-width: 720px !important;
  margin: 0 auto !important;
  padding: 12px 14px !important;
  gap: 12px !important;
  align-items: flex-start !important;
  z-index: 9990 !important;
}
#sw-cookie p {
  font-size: 12px !important;
  line-height: 1.45 !important;
}
#sw-cookie strong {
  font-size: 13px !important;
  margin-bottom: 2px !important;
}
#sw-cookie button {
  min-height: 36px !important;
  padding: 0 12px !important;
  font-size: 11px !important;
}
@media (max-width: 720px) {
  #sw-cookie {
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    padding: 12px !important;
  }
  /* keep chat FAB clear of cookie */
  #sw-widget-btn {
    bottom: 110px !important;
  }
}

/* ---------- Product pages: honest metric strip ---------- */
.sw-kpi-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 1.5rem;
  padding: clamp(1.5rem, 3vw, 2.5rem) 0;
  border-top: 1px solid rgba(255,255,255,.06);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
@media (min-width: 900px) {
  .sw-kpi-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.sw-kpi-strip .sw-metric__value {
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: clamp(1.4rem, 2.2vw, 1.9rem);
  font-weight: 700;
  color: #fff;
  line-height: 1.15;
}
.sw-kpi-strip .sw-metric__value.text-accent,
.sw-kpi-strip .text-accent {
  color: var(--accent, #2563eb) !important;
}
.sw-kpi-strip .sw-metric__label {
  margin-top: 0.4rem;
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.42);
  line-height: 1.4;
}
.sw-demo-note {
  margin-top: 0.75rem;
  font-size: 12px;
  color: rgba(255,255,255,.4);
  font-family: var(--font-mono, monospace);
  letter-spacing: 0.04em;
}

/* ---------- Mobile hero CTAs ---------- */
@media (max-width: 640px) {
  #hero .hero-actions {
    width: 100%;
  }
  #hero .hero-actions .btn-primary-forge,
  #hero .hero-actions .btn-stealth {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
  .hero-title {
    font-size: clamp(2.6rem, 14vw, 3.6rem) !important;
  }
}

/* ---------- Grid override conflicts (utility !important broke layouts) ---------- */
#production > .container > .grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: clamp(2rem, 5vw, 5rem) !important;
  align-items: center !important;
}
@media (min-width: 1024px) {
  #production > .container > .grid {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr) !important;
  }
}
#production > .container > .grid > div {
  grid-column: auto !important;
  min-width: 0 !important;
  width: 100% !important;
}
#production .section-title {
  font-size: clamp(2.2rem, 5.5vw, 4.2rem) !important;
  line-height: 1.02 !important;
  max-width: 16ch;
}
#production > .container > .grid > div:first-child > p {
  max-width: 38rem !important;
  font-size: clamp(1rem, 1.2vw, 1.2rem) !important;
  line-height: 1.65 !important;
  height: auto !important;
}

/* workflow grid not 12-col utilities */
#workflow .container > .relative > .grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
}
@media (min-width: 768px) {
  #workflow .container > .relative > .grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Bento cards: ensure content visible and readable */
#intelligence .sw-module-card,
#intelligence .sw-module-card * {
  opacity: 1 !important;
}
#intelligence .sw-module-card {
  min-height: 260px !important;
  height: auto !important;
  opacity: 1 !important;
  transform: none !important;
}
#intelligence .sw-module-card h3 {
  color: #fff !important;
}
#intelligence .sw-module-card p {
  color: rgba(255,255,255,.78) !important;
}

/* metrics section never collapse */
#metrics .sw-metrics-grid {
  width: 100%;
}

#production .sw-prod-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: clamp(2rem, 5vw, 4rem) !important;
  align-items: center !important;
}
@media (min-width: 1024px) {
  #production .sw-prod-grid {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr) !important;
  }
}
