/* Clew shared foundation — web fonts + design tokens, one source of truth for the
 * admin cabinet and the landing. Served at /clew.css; font URLs are absolute so they
 * resolve correctly from any page (the landing at "/" and the admin at "/admin/"). */
@font-face{font-family:'Jost';font-style:normal;font-weight:200 500;font-display:swap;
  src:url(/landing/fonts/jost-cyrillic-200_500.woff2) format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Jost';font-style:normal;font-weight:200 500;font-display:swap;
  src:url(/landing/fonts/jost-latin-200_500.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'JBMono';font-style:normal;font-weight:300;font-display:swap;
  src:url(/landing/fonts/jbm-cyrillic-300.woff2) format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'JBMono';font-style:normal;font-weight:300;font-display:swap;
  src:url(/landing/fonts/jbm-latin-300.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* Kazakh letters Jost and JetBrains Mono don't have (Ә Ғ Қ Ң Ө Ү Ұ Һ І): a tiny Montserrat subset
 * (OFL, landing/fonts/OFL-montserrat.txt) that the browser picks per character from the fallback
 * stack, so Kazakh text never mixes a system font into the thin Jost lines. */
@font-face{font-family:'ClewKK';font-style:normal;font-weight:200;font-display:swap;
  src:url(/landing/fonts/kk-extra-200.woff) format('woff');
  unicode-range:U+0406,U+0456,U+0492-0493,U+049A-049B,U+04A2-04A3,U+04AE-04B1,U+04BA-04BB,U+04D8-04D9,U+04E8-04E9;}
@font-face{font-family:'ClewKK';font-style:normal;font-weight:300 700;font-display:swap;
  src:url(/landing/fonts/kk-extra-300.woff) format('woff');
  unicode-range:U+0406,U+0456,U+0492-0493,U+049A-049B,U+04A2-04A3,U+04AE-04B1,U+04BA-04BB,U+04D8-04D9,U+04E8-04E9;}

:root{
  --paper:#FFFFFF;--paper-2:#F6F7F8;--paper-3:#FBFBFC;
  /* Text inks. Every one of them clears WCAG AA (4.5:1) on the three papers below, so the
     smallest type in the system is legible without a per-page exception:
       --ink       17.96:1 on --paper
       --ink-dim   7.14:1 on --paper, 6.90:1 on --paper-2, 7.02:1 on --paper-3
       --ink-faint 5.38:1 on --paper, 5.24:1 on --paper-2, 5.31:1 on --paper-3
     --ink-faint was .56 (4.12:1 — it failed the landing's .tiny/.k/.mac-url text); do not
     lighten it again, and never stack an extra `opacity` on top of it. */
  --ink:#14171C;--ink-dim:rgba(20,23,28,.72);--ink-faint:rgba(20,23,28,.64);
  --line:rgba(20,23,28,.13);--line-strong:rgba(20,23,28,.26);
  --thread:#CE2C22;--thread-soft:rgba(206,44,34,.08);
  --ok:#127A45;--ok-soft:rgba(18,122,69,.09);
  --display:'Jost','ClewKK',"Helvetica Neue",Arial,sans-serif;
  --mono:'JBMono','ClewKK',ui-monospace,SFMono-Regular,Menlo,monospace;
  --sheet:min(1120px,100% - 3rem);
}

/* ---------- primary CTA («Начать», «Start free» …): one class for every public header, the
 * mobile menu sheet, heroes and the primary pricing card. Solid ink, white Jost 500; hover and
 * keyboard focus turn cinnabar. Contrast with white text: ink 17.96:1, --thread 5.24:1, active
 * #B42419 6.55:1 (all AA for normal text). The tripled class outranks the page-local `.top nav a`,
 * `.btn.solid`, `.plan-cta.solid` and `.mm .mm-cta a` rules without !important. `.cta-sm` is the header size and
 * keeps the header height unchanged. */
.cta-primary.cta-primary.cta-primary{display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:#fff;
  border:.75px solid var(--ink);border-radius:0;font-family:var(--display);font-size:.95rem;line-height:1.25;font-weight:500;letter-spacing:.02em;text-transform:none;
  text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.cta-primary.cta-primary.cta-primary:hover,.cta-primary.cta-primary.cta-primary:focus-visible{background:var(--thread);border-color:var(--thread);color:#fff}
.cta-primary.cta-primary.cta-primary:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.cta-primary.cta-primary.cta-primary:active{background:#B42419;border-color:#B42419;color:#fff}
.cta-primary.cta-primary.cta-primary.cta-sm{font-size:.84rem;line-height:1.2;padding:.5rem .95rem;margin-block:-.55rem;align-self:center}
@media (prefers-reduced-motion:reduce){.cta-primary.cta-primary.cta-primary{transition:none}}

/* ---------- language dropdown (server/i18n.js switcher): <nav class="langs"> > <details class="lang-dd">.
 * Closed it is the current short code; open, a list of native names with the current one marked.
 * Works without JS (details/summary); the switcher's script adds aria-expanded, arrow keys, Esc with
 * focus return and outside-click close. Inside the mobile menu sheet it is one full-width row. */
.top>nav.langs{margin-left:1.2rem;display:flex;gap:0;align-items:baseline;align-self:baseline}
.langs .lang-dd{position:relative}
.langs .lang-dd>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.4rem;padding:.6rem .35rem;margin:-.6rem 0; /* ~36px hit area, zero layout height: the header keeps its height */
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;color:var(--ink-dim);user-select:none;-webkit-tap-highlight-color:transparent}
.langs .lang-dd>summary::-webkit-details-marker{display:none}
.langs .lang-dd>summary::marker{content:''}
.langs .lang-dd>summary:hover,.langs .lang-dd[open]>summary{color:var(--thread)}
.langs .lang-dd>summary:focus-visible{outline:1.5px solid var(--thread);outline-offset:2px}
.langs .lang-dd svg{width:13px;height:13px;flex:none;fill:none;stroke:currentColor;stroke-width:1}
.langs .lang-dd .lang-dd-chev{width:9px;height:9px;margin-left:auto;transition:transform .15s ease}
.langs .lang-dd[open] .lang-dd-chev{transform:rotate(180deg)}
.langs .lang-dd-list{position:absolute;right:0;top:calc(100% + .7rem);z-index:70;min-width:13.5rem;margin:0;padding:.3rem 0;list-style:none;
  background:var(--paper);border:.75px solid var(--line-strong);box-shadow:0 18px 36px -20px rgba(20,23,28,.28)}
.langs .lang-dd-list li{margin:0;padding:0}
.langs .lang-dd-list a{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:40px;padding:0 .95rem;
  font-family:var(--display);font-size:.95rem;font-weight:300;letter-spacing:0;text-transform:none;color:var(--ink);text-decoration:none;white-space:nowrap}
.langs .lang-dd-list a span{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:var(--ink-faint)}
.langs .lang-dd-list a:hover,.langs .lang-dd-list a:focus-visible{background:var(--paper-2);color:var(--thread);outline:none}
.langs .lang-dd-list a[aria-current]{color:var(--thread)}
.langs .lang-dd-list a[aria-current] span:before{content:'\2713\00a0'}
.langs .lang-dd-name{display:none}
.mm nav.langs{display:block;margin:.2rem 0 0}
.mm .langs .lang-dd-name{display:inline;font-family:var(--display);font-size:1.02rem;font-weight:300;letter-spacing:0;color:var(--ink)}
.mm .langs .lang-dd>summary{display:flex;width:100%;min-height:48px;margin:0;padding:0;border-bottom:.75px solid var(--line);font-size:.74rem;gap:.55rem}
.mm .langs .lang-dd-list{position:static;min-width:0;border:0;box-shadow:none;padding:.2rem 0 .4rem}
.mm .langs .lang-dd-list a{min-height:44px;padding:0 0 0 1.4rem;font-size:1.02rem;border-bottom:.75px solid var(--line)}
@media (prefers-reduced-motion:reduce){.langs .lang-dd .lang-dd-chev{transition:none}}
