/* Custom theme overrides (Bootstrap + template) */
:root {
  --site-primary: #2563eb;
  --site-secondary: #10b981;
  --site-accent: #f59e0b;
  --site-bg-1: #f8fafc;
  --site-bg-2: #eef2ff;

  /* Bootstrap theming */
  --bs-primary: var(--site-primary);
  --bs-secondary: var(--site-secondary);
  --bs-success: var(--site-accent);
  --bs-link-color: var(--site-secondary);
  --bs-link-hover-color: var(--site-primary);
}

body {
  background: radial-gradient(1200px 600px at 10% 0%, var(--site-bg-2), transparent 60%),
              radial-gradient(900px 500px at 90% 10%, var(--site-bg-1), transparent 55%),
              linear-gradient(180deg, #ffffff, var(--site-bg-1));
}

a {
  text-decoration: none;
}

.btn, .button {
  border-radius: 999px;
  padding: .65rem 1.1rem;
  box-shadow: 0 10px 25px rgba(15, 23, 42, .08);
}

.btn:hover, .button:hover {
  transform: translateY(-1px);
}

header.header, .top-bar {
  backdrop-filter: blur(10px);
}

section {
  scroll-margin-top: 90px;
}

.shadow-sm, .card, .feature, .service, .plan {
  box-shadow: 0 14px 40px rgba(2, 6, 23, .08) !important;
}

.rounded-4 {
  border-radius: 1.25rem !important;
}


/* === STRICT CONTRAST THEME (v2) ===
   Purpose: максимально читаемые тексты (только белый/чёрный), строгая палитра, без «мутных» оттенков.
   Applied as an override layer.
*/
:root{
  /* Base strict palette */
  --brand-primary:#0d6efd;
  --brand-accent:#1d4ed8;
  --brand-ink:#0b0f14;
  --surface-0:#0b0f14;
  --surface-1:#121826;
  --surface-2:#182235;
  --border-strong:#233044;

  /* Common template variables (override) */
  --primary-color: var(--brand-primary);
  --primary-hover: #0b5ed7;
  --secondary-color: var(--brand-accent);
  --accent-color: var(--brand-primary);

  --text-color:#ffffff;
  --text-primary:#ffffff;
  --text-secondary:#ffffff;
  --text-light:#ffffff;

  --bg-primary: var(--surface-0);
  --bg-secondary: var(--surface-1);
  --bg-accent: var(--surface-1);
  --background-light: var(--surface-1);
  --white: var(--surface-0);
  --black: #000000;

  /* Bootstrap theming */
  --bs-primary: var(--brand-primary);
  --bs-link-color: #ffffff;
  --bs-link-hover-color: var(--brand-primary);
  --bs-body-bg: var(--surface-0);
  --bs-body-color: #ffffff;
}

body{
  background: linear-gradient(180deg, #0b0f14 0%, #070a10 55%, #05070d 100%) !important;
  color:#ffffff !important;
}

a{ color:#ffffff; }
a:hover{ color: var(--brand-primary); }

/* Force readable text everywhere (no muted/opacity utility classes) */
p, li, small, label, .lead, .form-text, .breadcrumb-item, .accordion-body, .card-text{
  color:#ffffff !important;
  opacity:1 !important;
}

.text-muted,
.text-secondary,
.text-body-secondary,
.text-secondary-emphasis,
.text-tertiary,
.text-black-50,
.text-white-50,
.opacity-75,
.opacity-50,
.opacity-25{
  color:#ffffff !important;
  opacity:1 !important;
}

/* Navigation / header */
.navbar, header.header, .top-bar, .glass-nav{
  background: rgba(11,15,20,.92) !important;
  border-bottom: 1px solid var(--border-strong) !important;
  backdrop-filter: blur(12px);
}

/* Cards / sections */
.card, .hero-card, .stat-card, .card-soft, .card-elevate, .feature, .service, .plan{
  background: var(--surface-1) !important;
  border: 1px solid var(--border-strong) !important;
  box-shadow: 0 18px 60px rgba(0,0,0,.35) !important;
}

.section-soft, .bg-accent, .bg-secondary{
  background: #0f1622 !important;
  border-color: var(--border-strong) !important;
}

hr, .border-white-10{ border-color: var(--border-strong) !important; }

.badge-soft{
  background: var(--surface-2) !important;
  border: 1px solid var(--border-strong) !important;
  color:#ffffff !important;
}

/* Forms */
.form-control, .form-select, .form-check-input, textarea, input{
  background: var(--surface-0) !important;
  color:#ffffff !important;
  border:1px solid var(--border-strong) !important;
}
.form-control::placeholder, textarea::placeholder, input::placeholder{
  color:#ffffff !important;
  opacity:1 !important;
}

/* Buttons */
.btn-outline-light{
  color:#ffffff !important;
  border-color:#ffffff !important;
}
.btn-outline-light:hover{
  background:#ffffff !important;
  color:#000000 !important;
}

/* If a section is explicitly light — force black text */
.bg-white, .bg-light{
  background:#ffffff !important;
  color:#000000 !important;
}
.bg-white p, .bg-light p,
.bg-white li, .bg-light li,
.bg-white small, .bg-light small,
.bg-white label, .bg-light label,
.bg-white .text-muted, .bg-light .text-muted,
.bg-white .text-secondary, .bg-light .text-secondary,
.bg-white .text-secondary-emphasis, .bg-light .text-secondary-emphasis{
  color:#000000 !important;
  opacity:1 !important;
}

/* Reduce colorful/blur backgrounds for stricter look */
.hero-bg{
  background: linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,0)) !important;
  filter: none !important;
}
.hero-video, .hero-image{ opacity: .12 !important; }

/* === /STRICT CONTRAST THEME (v2) === */

/* === STRICT PATCH (readability) === */
.breadcrumb-dark .breadcrumb-item a,
.breadcrumb-dark .breadcrumb-item.active,
.breadcrumb-dark .breadcrumb-item + .breadcrumb-item::before{
  color:#ffffff !important;
  opacity:1 !important;
}

.text-secondary-emphasis a,
.text-secondary a,
.text-body-secondary a,
.text-muted a{
  color:#ffffff !important;
  opacity:1 !important;
  text-decoration: underline;
  text-underline-offset: .18em;
}

/* === /STRICT PATCH === */