/* ============================================================
   SellX Landing — styles.css
   Dark-first marketing page. Brand colors taken from the app:
   green #00AB55 / #10C870, blue #3366FF, purple accent #7F29FA.
   ============================================================ */

/* ------------------------- 1. Tokens ------------------------ */
:root {
  --bg:            #060910;
  --bg-2:          #0A0F1A;
  --bg-3:          #0E1626;
  --surface:       rgba(255, 255, 255, 0.035);
  --surface-hi:    rgba(255, 255, 255, 0.06);
  --border:        rgba(255, 255, 255, 0.09);
  --border-hi:     rgba(255, 255, 255, 0.16);

  --text:          #F3F6FA;
  --text-2:        #B9C4D2;
  --muted:         #7C8CA0;

  --green:         #10C870;
  --green-2:       #00AB55;
  --green-soft:    rgba(16, 200, 112, 0.12);
  --blue:          #3366FF;
  --blue-bright:   #5B8CFF;
  --blue-soft:     rgba(91, 140, 255, 0.12);
  --purple:        #7F29FA;
  --amber:         #FFAB00;
  --red:           #FF5630;

  --radius:        16px;
  --radius-lg:     24px;
  --radius-sm:     10px;

  --shadow:        0 20px 60px -20px rgba(0, 0, 0, 0.7);
  --shadow-green:  0 20px 60px -22px rgba(16, 200, 112, 0.55);

  --maxw:          1180px;
  --ease:          cubic-bezier(0.22, 1, 0.36, 1);

  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
          'Helvetica Neue', Arial, sans-serif;
}

/* ------------------------- 2. Reset ------------------------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
table { border-collapse: collapse; width: 100%; }
h1, h2, h3, h4 { line-height: 1.15; letter-spacing: -0.02em; font-weight: 700; }

::selection { background: var(--green); color: #041108; }

:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px;
  border-radius: 6px;
}

.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

.skip-link {
  position: absolute; left: 50%; top: 8px; transform: translate(-50%, -200%);
  background: var(--green); color: #041108; padding: 10px 18px;
  border-radius: 8px; font-weight: 600; z-index: 200; transition: transform .2s;
}
.skip-link:focus { transform: translate(-50%, 0); }

/* ------------------------ 3. Layout ------------------------- */
.container {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: 24px;
}
.container--narrow { max-width: 820px; }

.section { padding: 110px 0; position: relative; }

.section__head { max-width: 720px; margin: 0 auto 60px; text-align: center; }
.section__title { font-size: clamp(30px, 4.4vw, 46px); margin-bottom: 18px; }
.section__lead { color: var(--text-2); font-size: clamp(15px, 1.6vw, 18px); }

.eyebrow {
  display: inline-block;
  font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--green); margin-bottom: 16px;
}

.grad {
  background: linear-gradient(100deg, var(--green) 0%, #5BE3A6 45%, var(--purple) 110%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ------------------------ 4. Buttons ------------------------ */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 11px 20px; border-radius: 12px;
  font-weight: 600; font-size: 15px; white-space: nowrap;
  border: 1px solid transparent;
  transition: transform .18s var(--ease), background .18s, box-shadow .25s, border-color .18s;
}
.btn svg { width: 18px; height: 18px; transition: transform .25s var(--ease); }
.btn:hover svg { transform: translateX(3px); }
.btn--lg { padding: 15px 28px; font-size: 16.5px; border-radius: 14px; }
.btn--block { display: flex; width: 100%; }

.btn--primary {
  background: linear-gradient(135deg, var(--green) 0%, var(--green-2) 100%);
  color: #03130A;
  box-shadow: 0 8px 24px -10px rgba(16, 200, 112, 0.8);
}
.btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 38px -12px rgba(16, 200, 112, 0.9);
}

.btn--glass {
  background: var(--surface-hi);
  border-color: var(--border-hi);
  color: var(--text);
  backdrop-filter: blur(10px);
}
.btn--glass:hover { background: rgba(255,255,255,.1); transform: translateY(-2px); }

.btn--ghost { color: var(--text-2); padding-inline: 14px; }
.btn--ghost:hover { color: var(--text); }

/* ------------------------ 5. Header ------------------------- */
.header {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  transition: background .3s, border-color .3s, backdrop-filter .3s;
  border-bottom: 1px solid transparent;
}
.header.is-stuck {
  background: rgba(6, 9, 16, 0.78);
  backdrop-filter: blur(18px) saturate(160%);
  border-bottom-color: var(--border);
}

.header__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; height: 72px;
}

.brand { display: inline-flex; align-items: center; gap: 10px; }
.brand__mark { width: 34px; height: 34px; border-radius: 10px; flex: none; }
.brand__word { font-size: 20px; font-weight: 800; letter-spacing: -0.03em; }
.brand__x { color: var(--green); }

.nav { display: flex; align-items: center; gap: 30px; }
.nav > a {
  font-size: 15px; color: var(--text-2); font-weight: 500;
  transition: color .18s; position: relative;
}
.nav > a::after {
  content: ''; position: absolute; left: 0; bottom: -6px; height: 2px; width: 0;
  background: var(--green); transition: width .25s var(--ease);
}
.nav > a:hover { color: var(--text); }
.nav > a:hover::after { width: 100%; }
.nav__cta { display: flex; align-items: center; gap: 8px; margin-left: 6px; }

.burger { display: none; width: 42px; height: 42px; border-radius: 10px; position: relative; }
.burger span {
  position: absolute; left: 11px; width: 20px; height: 2px; border-radius: 2px;
  background: var(--text); transition: transform .3s var(--ease), opacity .2s;
}
.burger span:nth-child(1) { top: 15px; }
.burger span:nth-child(2) { top: 20px; }
.burger span:nth-child(3) { top: 25px; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

/* -------------------------- 6. Hero ------------------------- */
.hero { position: relative; padding: 150px 0 100px; overflow: hidden; }

.hero__glow {
  position: absolute; top: -320px; left: 50%; transform: translateX(-50%);
  width: 1100px; height: 780px; pointer-events: none;
  background:
    radial-gradient(closest-side, rgba(16,200,112,.28), transparent 70%),
    radial-gradient(closest-side, rgba(127,41,250,.20), transparent 70%);
  background-position: 30% 40%, 78% 55%;
  background-size: 62% 78%, 55% 70%;
  background-repeat: no-repeat;
  filter: blur(40px);
}
.hero__grid-bg {
  position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 90% 60% at 50% 20%, #000 20%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse 90% 60% at 50% 20%, #000 20%, transparent 75%);
}

.hero__inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 60px; align-items: center;
}

.pill {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 7px 14px 7px 10px; border-radius: 999px;
  background: var(--surface-hi); border: 1px solid var(--border-hi);
  font-size: 13.5px; color: var(--text-2); font-weight: 500;
  margin-bottom: 26px; transition: border-color .2s, color .2s, background .2s;
}
.pill:hover { border-color: rgba(16,200,112,.55); color: var(--text); background: var(--green-soft); }
.pill__dot {
  width: 7px; height: 7px; border-radius: 50%; background: var(--green); flex: none;
  box-shadow: 0 0 0 0 rgba(16,200,112,.7); animation: ping 2.4s infinite;
}
.pill__arrow { color: var(--green); }
@keyframes ping {
  0%   { box-shadow: 0 0 0 0 rgba(16,200,112,.7); }
  70%  { box-shadow: 0 0 0 8px rgba(16,200,112,0); }
  100% { box-shadow: 0 0 0 0 rgba(16,200,112,0); }
}

.hero__title {
  font-size: clamp(38px, 6vw, 66px);
  font-weight: 800; letter-spacing: -0.035em; margin-bottom: 22px;
}
.hero__sub {
  font-size: clamp(16px, 1.8vw, 19px); color: var(--text-2);
  max-width: 560px; margin-bottom: 34px;
}
.hero__sub b { color: var(--text); font-weight: 600; }

.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 28px; }

.hero__trust { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 20px; }
.hero__trust li {
  font-size: 14px; color: var(--muted); display: flex; align-items: center; gap: 7px;
}
.hero__trust li::before {
  content: ''; width: 15px; height: 15px; border-radius: 50%; flex: none;
  background: var(--green-soft) center / 9px no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.4 4.6 9 10 3.2' stroke='%2310C870' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---- Hero mock ---- */
.hero__visual { position: relative; padding-bottom: 52px; }

.mock {
  border-radius: var(--radius-lg);
  background: linear-gradient(165deg, #101A2A 0%, #0A101C 100%);
  border: 1px solid var(--border-hi);
  box-shadow: var(--shadow), var(--shadow-green);
  overflow: hidden;
  transform: perspective(1400px) rotateY(-7deg) rotateX(3deg);
  transition: transform .6s var(--ease);
}
.mock:hover { transform: perspective(1400px) rotateY(-2deg) rotateX(1deg); }

.mock__bar {
  display: flex; align-items: center; gap: 7px;
  padding: 13px 16px; border-bottom: 1px solid var(--border);
  background: rgba(255,255,255,.025);
}
.mock__dot { width: 9px; height: 9px; border-radius: 50%; background: rgba(255,255,255,.17); }
.mock__title { margin-left: 10px; font-size: 12.5px; color: var(--muted); font-weight: 500; }
.mock__live {
  margin-left: auto; display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
  color: var(--green);
}
.mock__live i { width: 6px; height: 6px; border-radius: 50%; background: var(--green); animation: ping 2s infinite; }

.mock__body { padding: 18px; display: grid; gap: 14px; }

.mock__product {
  display: flex; align-items: center; gap: 12px;
  padding: 12px; border-radius: var(--radius-sm); background: var(--surface);
  border: 1px solid var(--border);
}
.mock__thumb {
  width: 42px; height: 42px; border-radius: 9px; flex: none;
  display: grid; place-items: center; font-size: 20px;
  background: linear-gradient(135deg, rgba(16,200,112,.18), rgba(127,41,250,.18));
}
.mock__name { font-size: 14px; font-weight: 600; }
.mock__sku { font-size: 11.5px; color: var(--muted); }
.mock__rank {
  margin-left: auto; text-align: center; padding: 5px 12px; border-radius: 9px;
  background: var(--green-soft); border: 1px solid rgba(16,200,112,.3);
  transition: background .3s, border-color .3s;
}
.mock__rank.is-bad { background: rgba(255,86,48,.12); border-color: rgba(255,86,48,.35); }
.mock__rank-num { display: block; font-size: 18px; font-weight: 800; color: var(--green); line-height: 1.1; }
.mock__rank.is-bad .mock__rank-num { color: var(--red); }
.mock__rank-label { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }

.mock__rows { display: grid; gap: 7px; }
.mock__row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px; border-radius: var(--radius-sm);
  background: var(--surface); border: 1px solid transparent;
  font-size: 13.5px; transition: background .3s, border-color .3s;
}
.mock__row--me { background: var(--green-soft); border-color: rgba(16,200,112,.28); }
.mock__row.is-flash { background: rgba(16,200,112,.22); border-color: rgba(16,200,112,.5); }
.mock__who { display: flex; align-items: center; gap: 9px; color: var(--text-2); }
.tag {
  display: grid; place-items: center; min-width: 20px; height: 20px; padding-inline: 6px;
  border-radius: 6px; background: rgba(255,255,255,.07); font-size: 10.5px;
  font-style: normal; font-weight: 700; color: var(--muted);
}
.tag--me { background: var(--green); color: #03130A; }
.mock__price { font-weight: 700; font-variant-numeric: tabular-nums; }

.mock__log {
  border-radius: var(--radius-sm); background: rgba(0,0,0,.35);
  border: 1px solid var(--border); padding: 11px 13px;
  font-size: 12px; font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  color: var(--muted); min-height: 74px; overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-end; gap: 5px;
}
.mock__log-line { animation: logIn .4s var(--ease) both; }
.mock__log-line b { color: var(--green); font-weight: 600; }
.mock__log-line .warn { color: var(--amber); }
@keyframes logIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.mock__foot { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.mock__stat {
  padding: 9px 11px; border-radius: var(--radius-sm);
  background: var(--surface); border: 1px solid var(--border);
}
.mock__stat span { display: block; font-size: 10.5px; color: var(--muted); }
.mock__stat b { font-size: 13.5px; font-variant-numeric: tabular-nums; }

.float-card {
  position: absolute; left: -70px; bottom: -58px;
  padding: 14px 18px; border-radius: 14px;
  background: rgba(12, 20, 32, .9); border: 1px solid var(--border-hi);
  backdrop-filter: blur(14px); box-shadow: var(--shadow);
  animation: floaty 5s ease-in-out infinite;
}
.float-card__label { display: block; font-size: 11.5px; color: var(--muted); }
.float-card__value { display: block; font-size: 22px; font-weight: 800; color: var(--green); letter-spacing: -.02em; }
.float-card__delta { font-size: 11.5px; color: var(--text-2); }
@keyframes floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* ------------------------- 7. Stats ------------------------- */
.stats { padding: 40px 0 20px; }
.stats__grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px;
  padding: 34px 28px; border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015));
  border: 1px solid var(--border);
}
.stat { text-align: center; }
.stat b {
  display: block; font-size: clamp(26px, 3.4vw, 38px); font-weight: 800;
  letter-spacing: -.03em; font-variant-numeric: tabular-nums;
  background: linear-gradient(160deg, #fff, #9FE7C4);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.stat span { font-size: 13.5px; color: var(--muted); }
.stats__note { text-align: center; font-size: 12.5px; color: var(--muted); margin-top: 14px; }

/* ------------------------ 8. Problems ----------------------- */
.problems__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.problem {
  padding: 26px 22px; border-radius: var(--radius);
  background: var(--surface); border: 1px solid var(--border);
  transition: transform .3s var(--ease), border-color .3s, background .3s;
}
.problem:hover { transform: translateY(-4px); border-color: var(--border-hi); background: var(--surface-hi); }
.problem__icon {
  width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
  font-size: 21px; margin-bottom: 16px;
  background: linear-gradient(135deg, rgba(255,86,48,.16), rgba(255,171,0,.1));
}
.problem h3 { font-size: 17px; margin-bottom: 9px; }
.problem p { font-size: 14.5px; color: var(--text-2); }

/* ------------------------ 9. Features ----------------------- */
.features { background:
  radial-gradient(ellipse 70% 50% at 50% 0%, rgba(16,200,112,.07), transparent 70%); }

.bento {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
}
.card {
  padding: 28px 26px; border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.018));
  border: 1px solid var(--border);
  position: relative; overflow: hidden;
  transition: transform .35s var(--ease), border-color .3s;
}
.card::before {
  content: ''; position: absolute; inset: 0; opacity: 0; pointer-events: none;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(16,200,112,.12), transparent 65%);
  transition: opacity .35s;
}
.card:hover { transform: translateY(-4px); border-color: var(--border-hi); }
.card:hover::before { opacity: 1; }

.card--wide { grid-column: span 2; grid-row: span 2; display: flex; flex-direction: column; }
.card--wide-2 { grid-column: 1 / -1; }
.card--accent { border-color: rgba(16,200,112,.28); }

.card__ico {
  width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center;
  font-size: 22px; margin-bottom: 16px;
  background: linear-gradient(135deg, rgba(16,200,112,.18), rgba(51,102,255,.14));
  border: 1px solid var(--border);
}
.card__title { font-size: 19px; margin-bottom: 10px; }
.card--wide .card__title { font-size: 26px; }
.card__text { font-size: 14.8px; color: var(--text-2); }
.card__text b { color: var(--text); font-weight: 600; }

.chip {
  display: inline-block; padding: 4px 11px; border-radius: 999px;
  font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  margin-bottom: 14px;
}
.chip--green { background: var(--green-soft); color: var(--green); border: 1px solid rgba(16,200,112,.3); }

.card__list { list-style: none; padding: 0; margin-top: 18px; display: grid; gap: 9px; }
.card__list li {
  position: relative; padding-left: 26px; font-size: 14.5px; color: var(--text-2);
}
.card__list li::before {
  content: ''; position: absolute; left: 0; top: 4px; width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--green-soft) center / 10px no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.4 4.6 9 10 3.2' stroke='%2310C870' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.card__viz { margin-top: auto; padding-top: 24px; }
.spark { position: relative; }
.spark svg { width: 100%; height: 90px; }
.spark__line { stroke-dasharray: 700; stroke-dashoffset: 700; }
.reveal.is-in .spark__line { animation: draw 1.6s var(--ease) .2s forwards; }
.spark__area { opacity: 0; }
.reveal.is-in .spark__area { animation: fadeIn .8s ease 1s forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes fadeIn { to { opacity: 1; } }
.spark__cap { display: block; font-size: 11.5px; color: var(--muted); margin-top: 6px; }

/* ------------------------- 10. How -------------------------- */
.steps {
  list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 20px; counter-reset: step; position: relative;
}
.step {
  padding: 30px 26px; border-radius: var(--radius-lg);
  background: var(--surface); border: 1px solid var(--border); position: relative;
  transition: transform .3s var(--ease), border-color .3s;
}
.step:hover { transform: translateY(-4px); border-color: rgba(16,200,112,.35); }
.step__num {
  display: block; font-size: 42px; font-weight: 800; letter-spacing: -.04em;
  line-height: 1; margin-bottom: 16px;
  background: linear-gradient(160deg, var(--green), rgba(16,200,112,.25));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.step h3 { font-size: 19px; margin-bottom: 10px; }
.step p { font-size: 14.8px; color: var(--text-2); }

/* ---------------------- 11. Comparison ---------------------- */
.table-wrap {
  border-radius: var(--radius-lg); border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.012));
  padding: 8px 8px 20px;
}
.table-scroll { overflow-x: auto; border-radius: var(--radius); }

/* Mobile-only affordance: the table scrolls sideways. */
.table-hint {
  display: none;
  padding: 4px 12px 12px;
  font-size: 12.5px; color: var(--muted);
}

.cmp { min-width: 780px; font-size: 14.5px; }
.cmp thead th {
  position: sticky; top: 0;
  padding: 18px 14px; text-align: center; font-size: 14px; font-weight: 700;
  color: var(--text-2); border-bottom: 1px solid var(--border); white-space: nowrap;
}
.cmp thead th.cmp__feature { text-align: left; min-width: 300px; color: var(--muted); font-weight: 600; }
.cmp thead th.cmp__us { color: var(--text); }
.cmp__logo {
  display: inline-block; padding: 6px 16px; border-radius: 999px;
  background: linear-gradient(135deg, var(--green), var(--green-2));
  color: #03130A; font-weight: 800; letter-spacing: -.01em;
}

.cmp tbody th {
  text-align: left; font-weight: 500; color: var(--text-2);
  padding: 15px 14px; border-bottom: 1px solid rgba(255,255,255,.05);
}
.cmp tbody td {
  text-align: center; padding: 15px 14px;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.cmp tbody tr:hover th, .cmp tbody tr:hover td { background: rgba(255,255,255,.028); }
.cmp tbody td:nth-child(2) { background: rgba(16,200,112,.05); }
.cmp tbody tr:hover td:nth-child(2) { background: rgba(16,200,112,.09); }

/* value marks */
[data-v] { position: relative; }
.cmp td[data-v]::after, .cmp__legend i::after {
  content: ''; display: inline-block; width: 22px; height: 22px; border-radius: 50%;
  background-repeat: no-repeat; background-position: center; background-size: 13px;
  vertical-align: middle;
}
.cmp td[data-v="yes"]::after, .cmp__legend i[data-v="yes"]::after {
  background-color: rgba(16,200,112,.16);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.4 4.6 9 10 3.2' stroke='%2310C870' stroke-width='2.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.cmp td[data-v="part"]::after, .cmp__legend i[data-v="part"]::after {
  background-color: rgba(255,171,0,.14);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6h6' stroke='%23FFAB00' stroke-width='2.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}
.cmp td[data-v="no"]::after, .cmp__legend i[data-v="no"]::after {
  background-color: rgba(255,255,255,.05);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.4 3.4 8.6 8.6M8.6 3.4 3.4 8.6' stroke='%236B7A8C' stroke-width='2.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

.cmp__price-row th, .cmp__price-row td { border-bottom: 0 !important; padding-top: 20px; }
.cmp__price { font-size: 19px; font-weight: 800; color: var(--green); letter-spacing: -.02em; }
.cmp__price span { font-size: 12.5px; font-weight: 500; color: var(--muted); }
.cmp__price--muted { font-size: 14px; font-weight: 500; color: var(--muted); }

.cmp__legend {
  display: flex; gap: 22px; justify-content: center; flex-wrap: wrap;
  margin-top: 18px; font-size: 13px; color: var(--muted);
}
.cmp__legend span { display: inline-flex; align-items: center; gap: 7px; }
.cmp__legend i { display: inline-flex; font-style: normal; }
.cmp__disclaimer {
  text-align: center; font-size: 12px; color: var(--muted);
  max-width: 620px; margin: 14px auto 0; line-height: 1.5;
}

/* ----------------------- 12. Pricing ------------------------ */
.pricing { background: radial-gradient(ellipse 70% 50% at 50% 100%, rgba(127,41,250,.08), transparent 70%); }
.plans { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; align-items: start; }

.plan {
  padding: 30px 26px; border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
  border: 1px solid var(--border); position: relative;
  transition: transform .3s var(--ease), border-color .3s;
}
.plan:hover { transform: translateY(-5px); border-color: var(--border-hi); }

.plan--featured {
  border-color: rgba(16,200,112,.45);
  background: linear-gradient(180deg, rgba(16,200,112,.1), rgba(255,255,255,.02));
  box-shadow: 0 22px 60px -28px rgba(16,200,112,.6);
}
.plan__badge {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  padding: 5px 14px; border-radius: 999px; white-space: nowrap;
  background: linear-gradient(135deg, var(--green), var(--green-2));
  color: #03130A; font-size: 11px; font-weight: 800;
  letter-spacing: .05em; text-transform: uppercase;
}

.plan__name { font-size: 15px; letter-spacing: .06em; color: var(--green); margin-bottom: 6px; }
.plan__desc { font-size: 13.5px; color: var(--muted); min-height: 40px; margin-bottom: 14px; }
.plan__price { display: flex; align-items: baseline; gap: 6px; margin-bottom: 20px; }
.plan__price b { font-size: 34px; font-weight: 800; letter-spacing: -.035em; }
.plan__price span { font-size: 13.5px; color: var(--muted); }

.plan__list { list-style: none; padding: 0; margin-top: 22px; display: grid; gap: 10px; }
.plan__list li { position: relative; padding-left: 25px; font-size: 14px; color: var(--text-2); }
.plan__list li::before {
  content: ''; position: absolute; left: 0; top: 4px; width: 16px; height: 16px; border-radius: 50%;
  background: var(--green-soft) center / 10px no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.4 4.6 9 10 3.2' stroke='%2310C870' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ----------------------- 13. Quotes ------------------------- */
.quotes__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.quote {
  margin: 0; padding: 28px 26px; border-radius: var(--radius-lg);
  background: var(--surface); border: 1px solid var(--border);
}
.quote blockquote { font-size: 15.5px; color: var(--text); margin-bottom: 20px; }
.quote figcaption { display: flex; align-items: center; gap: 12px; }
.quote__avatar {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--green), var(--green-2));
  color: #03130A; font-weight: 800; flex: none;
}
.quote figcaption b { display: block; font-size: 14px; }
.quote figcaption i { font-style: normal; font-size: 12.5px; color: var(--muted); }

/* ------------------------- 14. FAQ -------------------------- */
.acc { display: grid; gap: 10px; }
.acc__item {
  border-radius: var(--radius); border: 1px solid var(--border);
  background: var(--surface); overflow: hidden; transition: border-color .25s, background .25s;
}
.acc__item.is-open { border-color: rgba(16,200,112,.35); background: var(--surface-hi); }

.acc__q {
  width: 100%; text-align: left; display: flex; align-items: center; gap: 16px;
  padding: 20px 22px; font-size: 16px; font-weight: 600;
}
.acc__ico {
  margin-left: auto; flex: none; width: 22px; height: 22px; position: relative;
}
.acc__ico::before, .acc__ico::after {
  content: ''; position: absolute; left: 50%; top: 50%; background: var(--green);
  border-radius: 2px; transform: translate(-50%, -50%); transition: transform .3s var(--ease);
}
.acc__ico::before { width: 13px; height: 2px; }
.acc__ico::after  { width: 2px; height: 13px; }
.acc__item.is-open .acc__ico::after { transform: translate(-50%, -50%) rotate(90deg); }

.acc__a {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows .35s var(--ease);
}
.acc__item.is-open .acc__a { grid-template-rows: 1fr; }
.acc__a > div { overflow: hidden; }
.acc__a p { padding: 0 22px 22px; color: var(--text-2); font-size: 15px; }

/* ------------------------- 15. CTA -------------------------- */
.cta { position: relative; padding: 110px 0 120px; overflow: hidden; text-align: center; }
.cta__glow {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 900px; height: 520px; pointer-events: none; filter: blur(50px);
  background:
    radial-gradient(closest-side, rgba(16,200,112,.24), transparent 70%),
    radial-gradient(closest-side, rgba(127,41,250,.18), transparent 70%);
  background-position: 25% 50%, 75% 50%; background-size: 60% 80%, 55% 75%;
  background-repeat: no-repeat;
}
.cta__inner { position: relative; z-index: 1; }
.cta__title { font-size: clamp(30px, 4.8vw, 50px); margin-bottom: 18px; }
.cta__sub { font-size: clamp(15px, 1.7vw, 18px); color: var(--text-2); max-width: 600px; margin: 0 auto 32px; }
.cta__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-bottom: 20px; }
.cta__micro { font-size: 14px; color: var(--muted); }
.cta__micro a { color: var(--green); font-weight: 600; }
.cta__micro a:hover { text-decoration: underline; }

/* ------------------------ 16. Footer ------------------------ */
.footer { border-top: 1px solid var(--border); background: var(--bg-2); padding: 60px 0 28px; }
.footer__inner {
  display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 40px;
}
.footer__brand p { font-size: 14px; color: var(--muted); margin-top: 14px; max-width: 320px; }
.footer__entity { font-size: 12.5px; line-height: 1.6; opacity: .8; }
.footer__col { display: flex; flex-direction: column; gap: 11px; }
.footer__col h4 { font-size: 13px; text-transform: uppercase; letter-spacing: .1em; color: var(--text); margin-bottom: 4px; }
.footer__col a { font-size: 14.5px; color: var(--muted); transition: color .18s; }
.footer__col a:hover { color: var(--green); }

.footer__bottom {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 14px;
  padding-top: 24px; border-top: 1px solid var(--border);
  font-size: 13px; color: var(--muted);
}
.footer__legal { display: flex; gap: 20px; }
.footer__legal a:hover { color: var(--text-2); }

/* ------------- 16.5 Floating WhatsApp button ---------------- */
.wa {
  position: fixed; right: 24px; bottom: 24px; z-index: 95;
  display: inline-flex; align-items: center; gap: 11px;
  padding: 12px 20px 12px 13px; border-radius: 999px;
  background: #25D366; color: #04220F;
  font-size: 15px; font-weight: 600; line-height: 1;
  box-shadow: 0 12px 34px -10px rgba(37, 211, 102, .65),
              0 2px 10px rgba(0, 0, 0, .35);
  /* Hidden until the reader scrolls past the hero, so it never competes
     with the primary "Начать бесплатно" call to action. */
  opacity: 0; visibility: hidden; transform: translateY(16px) scale(.94);
  transition: opacity .3s var(--ease), transform .3s var(--ease),
              visibility .3s, box-shadow .25s, background .2s;
}
.wa.is-visible { opacity: 1; visibility: visible; transform: none; }
.wa:hover {
  background: #1FBE5B;
  box-shadow: 0 18px 44px -12px rgba(37, 211, 102, .8),
              0 2px 10px rgba(0, 0, 0, .35);
}
.wa:active { transform: scale(.97); }

.wa__ico {
  display: grid; place-items: center; flex: none;
  width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255, 255, 255, .22); position: relative;
}
.wa__ico svg { width: 19px; height: 19px; }

/* Attention ring — one soft pulse, not a strobe. */
.wa__ico::before {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(255, 255, 255, .55);
  animation: waPing 2.8s ease-out infinite;
}
@keyframes waPing {
  0%   { box-shadow: 0 0 0 0 rgba(255, 255, 255, .5); }
  60%  { box-shadow: 0 0 0 13px rgba(255, 255, 255, 0); }
  100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}

/* The open mobile menu owns the screen — get out of its way. */
body.nav-open .wa { opacity: 0; visibility: hidden; pointer-events: none; }

@media (max-width: 640px) {
  /* Icon-only circle: a full pill eats too much of a small screen. */
  .wa { right: 16px; bottom: 16px; padding: 0; width: 56px; height: 56px;
        justify-content: center; gap: 0; }
  .wa__label { display: none; }
  .wa__ico { width: 34px; height: 34px; background: none; }
  .wa__ico svg { width: 30px; height: 30px; }
}

/* --------------- 16.6 Правовые страницы --------------------- */
/* Общие стили для oferta.html и privacy.html — простой читаемый
   текстовый документ в той же тёмной теме, что и лендинг. */
.legal-head {
  border-bottom: 1px solid var(--border);
  background: rgba(6, 9, 16, .9);
  backdrop-filter: blur(18px);
  position: sticky; top: 0; z-index: 100;
}
.legal-head__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; height: 72px;
}
.legal-back {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14.5px; color: var(--text-2); font-weight: 500;
  transition: color .18s;
}
.legal-back:hover { color: var(--green); }

.legal { padding: 60px 0 100px; }
.legal__wrap { max-width: 780px; margin-inline: auto; }

.legal__title { font-size: clamp(28px, 4vw, 40px); margin-bottom: 12px; }
.legal__meta {
  font-size: 13.5px; color: var(--muted);
  padding-bottom: 26px; margin-bottom: 34px;
  border-bottom: 1px solid var(--border);
}

.legal h2 {
  font-size: clamp(19px, 2.2vw, 23px);
  margin: 44px 0 14px; scroll-margin-top: 90px;
}
.legal h2:first-of-type { margin-top: 0; }
.legal h3 { font-size: 17px; margin: 26px 0 10px; color: var(--text); }

.legal p { color: var(--text-2); margin-bottom: 14px; font-size: 15.5px; }
.legal ul, .legal ol { color: var(--text-2); margin: 0 0 16px; padding-left: 22px; }
.legal li { margin-bottom: 9px; font-size: 15.5px; }
.legal li::marker { color: var(--green); }
.legal b, .legal strong { color: var(--text); font-weight: 600; }
.legal a:not(.btn):not(.legal-back) { color: var(--green); text-decoration: underline; }
.legal a:not(.btn):not(.legal-back):hover { color: #5BE3A6; }

/* Реквизиты и важные врезки */
.legal__box {
  padding: 22px 24px; border-radius: var(--radius);
  background: var(--surface); border: 1px solid var(--border);
  margin: 24px 0;
}
.legal__box p:last-child { margin-bottom: 0; }
.legal__box--warn {
  background: rgba(255, 171, 0, .07);
  border-color: rgba(255, 171, 0, .28);
}

.legal__toc {
  padding: 22px 24px; border-radius: var(--radius);
  background: var(--surface); border: 1px solid var(--border);
  margin-bottom: 40px;
}
.legal__toc h2 { font-size: 15px !important; margin: 0 0 14px !important; }
.legal__toc ol { margin: 0; padding-left: 20px; }
.legal__toc li { margin-bottom: 7px; font-size: 14.5px; }
.legal__toc a { color: var(--text-2) !important; text-decoration: none !important; }
.legal__toc a:hover { color: var(--green) !important; }

.legal__dl { display: grid; grid-template-columns: 210px 1fr; gap: 10px 20px; }
.legal__dl dt { color: var(--muted); font-size: 14.5px; }
.legal__dl dd { margin: 0; color: var(--text); font-size: 15px; }

@media (max-width: 640px) {
  .legal { padding: 36px 0 70px; }
  .legal__dl { grid-template-columns: 1fr; gap: 2px 0; }
  .legal__dl dd { margin-bottom: 12px; }
  .legal__toc, .legal__box { padding: 18px; }
}

/* ------------- 16.6 SellX Доставка (blue pillar) ------------- */
/* The delivery product is deliberately blue, not brand green: it is a
   different thing you buy (per order, by contract) and it should not
   read as another software feature tile. */
.eyebrow--blue { color: var(--blue-bright); }

.grad-blue {
  background: linear-gradient(100deg, var(--blue-bright) 0%, #9BB8FF 50%, var(--purple) 115%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

.chip--blue {
  background: var(--blue-soft); color: var(--blue-bright);
  border: 1px solid rgba(91, 140, 255, 0.32);
}

.delivery { position: relative; overflow: hidden; }
.delivery__glow {
  position: absolute; left: 50%; top: -120px; transform: translateX(-50%);
  width: 1000px; height: 620px; pointer-events: none; filter: blur(50px);
  background:
    radial-gradient(closest-side, rgba(51, 102, 255, .22), transparent 70%),
    radial-gradient(closest-side, rgba(127, 41, 250, .16), transparent 70%);
  background-position: 30% 40%, 72% 55%;
  background-size: 60% 75%, 55% 70%;
  background-repeat: no-repeat;
}
.delivery .container { position: relative; z-index: 1; }

.dgrid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 26px;
}
.dcard {
  padding: 26px 24px; border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(91, 140, 255, .07), rgba(255, 255, 255, .015));
  border: 1px solid rgba(91, 140, 255, .18);
  transition: transform .3s var(--ease), border-color .3s;
}
.dcard:hover { transform: translateY(-4px); border-color: rgba(91, 140, 255, .42); }
.dcard__ico {
  width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center;
  font-size: 22px; margin-bottom: 15px;
  background: linear-gradient(135deg, rgba(51, 102, 255, .22), rgba(127, 41, 250, .16));
  border: 1px solid rgba(91, 140, 255, .2);
}
.dcard h3 { font-size: 18px; margin-bottom: 9px; }
.dcard p { font-size: 14.5px; color: var(--text-2); }

/* Route mock + steps */
.dflow {
  display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start;
  margin-bottom: 26px;
}

.route {
  border-radius: var(--radius-lg); overflow: hidden;
  background: linear-gradient(165deg, #111B2E 0%, #0A1018 100%);
  border: 1px solid rgba(91, 140, 255, .24);
  box-shadow: var(--shadow), 0 20px 60px -22px rgba(51, 102, 255, .5);
}
.route__bar {
  display: flex; align-items: center; gap: 7px;
  padding: 13px 16px; border-bottom: 1px solid var(--border);
  background: rgba(255, 255, 255, .025);
}
.route__live {
  margin-left: auto; display: inline-flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
  color: var(--blue-bright);
}
.route__live i {
  width: 6px; height: 6px; border-radius: 50%; background: var(--blue-bright);
  animation: ping 2s infinite;
}
.route__body { padding: 14px; display: grid; gap: 7px; }

.route__stop {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 13px; border-radius: var(--radius-sm);
  background: var(--surface); border: 1px solid transparent;
}
.route__stop--pickup {
  background: rgba(127, 41, 250, .12); border-color: rgba(127, 41, 250, .3);
}
.route__stop.is-done { opacity: .62; }
.route__stop.is-active {
  background: var(--blue-soft); border-color: rgba(91, 140, 255, .45);
}
.route__pin {
  display: grid; place-items: center; flex: none;
  width: 24px; height: 24px; border-radius: 7px;
  background: rgba(255, 255, 255, .08); color: var(--muted);
  font-size: 11px; font-weight: 700;
}
.route__stop.is-active .route__pin { background: var(--blue-bright); color: #05122E; }
.route__stop.is-done .route__pin { background: rgba(16, 200, 112, .2); color: var(--green); }
.route__stop--pickup .route__pin { background: rgba(127, 41, 250, .35); color: #EADBFF; }
.route__addr { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.route__addr b { font-size: 13.5px; font-weight: 600; }
.route__addr i { font-style: normal; font-size: 11.5px; color: var(--muted); }
.route__time {
  margin-left: auto; flex: none; font-size: 12.5px; font-weight: 600;
  color: var(--text-2); font-variant-numeric: tabular-nums;
}
.route__foot {
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px;
  margin-top: 4px; padding: 11px 13px; border-radius: var(--radius-sm);
  background: rgba(0, 0, 0, .3); border: 1px solid var(--border);
  font-size: 12.5px; color: var(--muted);
}
.route__foot b { color: var(--text); }

.dsteps { list-style: none; padding: 0; display: grid; gap: 14px; }
.dstep {
  position: relative; padding: 22px 24px 22px 62px;
  border-radius: var(--radius-lg);
  background: var(--surface); border: 1px solid var(--border);
  transition: border-color .3s, transform .3s var(--ease);
}
.dstep:hover { border-color: rgba(91, 140, 255, .4); transform: translateY(-3px); }
.dstep__num {
  position: absolute; left: 22px; top: 22px;
  width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center;
  font-size: 13px; font-weight: 800; color: #05122E;
  background: linear-gradient(135deg, var(--blue-bright), var(--blue));
}
.dstep h3 { font-size: 17px; margin-bottom: 7px; }
.dstep p { font-size: 14.5px; color: var(--text-2); }

/* "Не только Kaspi" + price/CTA */
.dany {
  display: grid; grid-template-columns: 1.6fr 1fr; gap: 26px; align-items: center;
  padding: 32px; border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(51, 102, 255, .12), rgba(127, 41, 250, .08));
  border: 1px solid rgba(91, 140, 255, .26);
}
.dany__text h3 { font-size: clamp(21px, 2.6vw, 27px); margin: 12px 0 12px; }
.dany__text p { font-size: 15px; color: var(--text-2); }
.dany__note {
  margin-top: 12px; font-size: 13.5px !important; color: var(--muted) !important;
  padding-left: 13px; border-left: 2px solid rgba(91, 140, 255, .35);
}
.dany__chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.dany__chips li {
  padding: 6px 13px; border-radius: 999px; font-size: 13px; color: var(--text-2);
  background: rgba(255, 255, 255, .06); border: 1px solid var(--border-hi);
}

.dany__cta { text-align: center; }
.dany__price { display: block; margin-bottom: 14px; line-height: 1.1; }
.dany__price i { font-style: normal; font-size: 13.5px; color: var(--muted); }
.dany__price b {
  display: block; font-size: clamp(34px, 4.4vw, 44px); font-weight: 800;
  letter-spacing: -.035em; color: var(--blue-bright);
}
.dany__price u { text-decoration: none; font-size: 13px; color: var(--muted); }
.dany__micro { margin-top: 11px; font-size: 12.5px; color: var(--muted); }

/* WhatsApp-coloured button, matching the floating one */
.btn--wa {
  background: #25D366; color: #04220F;
  box-shadow: 0 8px 24px -10px rgba(37, 211, 102, .75);
}
.btn--wa:hover {
  background: #1FBE5B; transform: translateY(-2px);
  box-shadow: 0 16px 38px -12px rgba(37, 211, 102, .9);
}

/* Delivery price block inside the pricing section */
.dprice {
  display: grid; grid-template-columns: 1.7fr 1fr; gap: 26px; align-items: center;
  margin-top: 20px; padding: 28px 32px; border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(51, 102, 255, .12), rgba(127, 41, 250, .07));
  border: 1px solid rgba(91, 140, 255, .26);
}
.dprice__text h3 { font-size: clamp(19px, 2.3vw, 24px); margin: 12px 0 10px; }
.dprice__text p { font-size: 14.5px; color: var(--text-2); }
.dprice__tag { text-align: center; }

/* Second hero float card — only where there is room for it */
.float-card--dumping { display: none; }
.float-card__value--blue { color: var(--blue-bright); }
@media (min-width: 1081px) {
  /* Садится на нижнюю кромку макета — как карточка прибыли, только
     справа. Наверху она перекрывала процент доставленных и бейдж live. */
  .float-card--dumping {
    display: block; left: auto; right: -38px; top: auto; bottom: -58px;
    animation-delay: 1.4s;
  }
}

/* ---------- 16.7 Hero delivery board + demping showcase ------- */
/* The hero mock is the delivery product now, so it borrows the blue
   accent language from the delivery section. The demping animation
   moved down to its own section and keeps the brand green. */
.mock--delivery { border-color: rgba(91, 140, 255, .26); }
.mock--delivery .mock__bar { background: rgba(91, 140, 255, .07); }

.dm__head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 14px; border-radius: var(--radius-sm);
  background: var(--surface); border: 1px solid var(--border);
}
.dm__label { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .07em; }
.dm__sum { font-size: 14px; color: var(--text-2); }
.dm__sum b { color: var(--text); font-variant-numeric: tabular-nums; }
.dm__pct { display: flex; align-items: baseline; color: var(--blue-bright); }
.dm__pct b { font-size: 26px; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.dm__pct i { font-style: normal; font-size: 14px; font-weight: 700; }

.dm__bar {
  height: 7px; border-radius: 999px; overflow: hidden;
  background: rgba(255, 255, 255, .07);
}
.dm__bar i {
  display: block; height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, var(--blue), var(--blue-bright));
  transition: width .8s var(--ease);
}

.dm__row { gap: 10px; }
.dm__row.is-transit { background: var(--blue-soft); border-color: rgba(91, 140, 255, .32); }
.dm__row.is-done { opacity: .66; }
.tag--done { background: rgba(16, 200, 112, .22); color: var(--green); }
.tag--transit { background: var(--blue-bright); color: #05122E; }
.dm__status { flex: none; font-size: 11.5px; color: var(--muted); }
.dm__status--done { color: var(--green); }
.dm__status--transit { color: var(--blue-bright); font-weight: 600; }

/* Demping showcase */
.dumping { position: relative; }
.dump__grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 46px; align-items: center;
}
.dump__title { text-align: left; font-size: clamp(27px, 3.6vw, 40px); margin-bottom: 16px; }
.dump__lead { text-align: left; margin-bottom: 20px; }
.dump__lead b { color: var(--text); font-weight: 600; }
.dump__cta { margin-top: 24px; }
.dump__viz .mock { box-shadow: var(--shadow), var(--shadow-green); }

/* ----------------------- 17. Reveal ------------------------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-in { opacity: 1; transform: none; }

/* ---------------------- 18. Responsive ---------------------- */
@media (max-width: 1080px) {
  .dump__grid { grid-template-columns: 1fr; gap: 34px; }
  .dgrid { grid-template-columns: repeat(2, 1fr); }
  .dflow { grid-template-columns: 1fr; }
  .dany, .dprice { grid-template-columns: 1fr; }
  .stats__grid { grid-template-columns: repeat(3, 1fr); }
  .bento { grid-template-columns: repeat(2, 1fr); }
  .card--wide { grid-column: span 2; grid-row: auto; }
  .card--wide-2 { grid-column: span 2; }
  .plans { grid-template-columns: repeat(2, 1fr); }
  .problems__grid { grid-template-columns: repeat(2, 1fr); }
  .hero__inner { grid-template-columns: 1fr; gap: 56px; }
  .hero__copy { max-width: 640px; }
  .mock { transform: none; }
  .mock:hover { transform: none; }
  .footer__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  .nav {
    position: fixed; inset: 72px 0 auto 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: rgba(6, 9, 16, .97); backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--border);
    padding: 12px 24px 24px;
    transform: translateY(-14px); opacity: 0; pointer-events: none;
    transition: opacity .25s, transform .25s var(--ease);
    height: calc(100dvh - 72px); overflow-y: auto;
  }
  .nav.is-open { transform: none; opacity: 1; pointer-events: auto; }
  .nav > a { padding: 15px 0; border-bottom: 1px solid var(--border); font-size: 16px; }
  .nav > a::after { display: none; }
  .nav__cta { flex-direction: column; align-items: stretch; margin: 18px 0 0; gap: 10px; }
  .nav__cta .btn { width: 100%; padding-block: 13px; }
  .burger { display: block; }
  body.nav-open { overflow: hidden; }

  .section { padding: 80px 0; }
  .hero { padding: 120px 0 70px; }
  .stats__grid { grid-template-columns: repeat(2, 1fr); gap: 26px; padding: 30px 20px; }
  /* Пятый показатель иначе висит один в левой колонке. */
  .stats__grid .stat:last-child { grid-column: 1 / -1; }
  .steps { grid-template-columns: 1fr; }
  .float-card { left: auto; right: 8px; bottom: -20px; }
}

@media (max-width: 640px) {
  .container { padding-inline: 18px; }
  .bento, .plans, .problems__grid, .quotes__grid { grid-template-columns: 1fr; }
  .dgrid { grid-template-columns: 1fr; }
  .dump__cta { width: 100%; }
  .dm__head { flex-wrap: wrap; }
  .dany, .dprice { padding: 24px 20px; }
  .dstep { padding: 20px 20px 20px 56px; }
  .dstep__num { left: 18px; top: 20px; }
  .route__foot { font-size: 11.5px; }
  .card--wide, .card--wide-2 { grid-column: auto; }
  .footer__inner { grid-template-columns: 1fr; gap: 30px; }
  .footer__bottom { flex-direction: column; align-items: flex-start; }
  .hero__actions .btn, .cta__actions .btn { width: 100%; }
  .plan__desc { min-height: 0; }
  .table-wrap { padding: 8px 8px 18px; }
  .mock__foot { grid-template-columns: 1fr; }
  .float-card { position: static; margin-top: 16px; animation: none; }
}

@media (max-width: 640px) {
  .table-hint { display: block; }

  /* Tighter columns so the SellX column is visible without scrolling,
     and a sticky feature column so rows stay identifiable while it does. */
  .cmp { min-width: 600px; font-size: 13px; }
  .cmp thead th, .cmp tbody th, .cmp tbody td { padding: 12px 9px; }
  .cmp thead th { font-size: 12.5px; }
  .cmp thead th.cmp__feature { min-width: 184px; }
  .cmp__logo { padding: 5px 11px; font-size: 13px; }

  .cmp thead th.cmp__feature,
  .cmp tbody th {
    position: sticky; left: 0; z-index: 2;
    background: #0C121D;
    box-shadow: 1px 0 0 rgba(255, 255, 255, 0.07);
  }
  .cmp thead th.cmp__feature { z-index: 3; }

  .cmp__price { font-size: 16px; }
  .cmp__legend { gap: 14px; font-size: 12px; }
}

/* ------------------- 19. Reduced motion --------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  .reveal { opacity: 1; transform: none; }
  .wa__ico::before { display: none; }
  .spark__line { stroke-dashoffset: 0; }
  .spark__area { opacity: 1; }
}
