/* ==========================================================================
   Demurrit dizaino žetonai — 1 fazė (migrate-design.md v2)
   Principas: spalva koduoja audito būseną, ne dekoruoja.
   Prieš pridedant naują spalvą — atsakyti, kokią būseną ji reiškia.

   Šis failas yra VIENINTELIS spalvų/tipografijos/erdvės šaltinis. Jokio
   hex kodo NĖRA leidžiama rašyti jokiame kitame šio projekto CSS/HTML
   faile, sukurtame ŠIOJE ir vėlesnėse fazėse — visada per var(--...).
   (Apimtis: NAUJI failai nuo šios fazės. 231 esamų rinkodaros puslapių
   hex reikšmės perkeliamos į žetonus 3 fazėje, kai patys puslapiai
   perstatomi iš styleguide komponentų — žr. docs/sprendimai.md.)
   ========================================================================== */

/* --- Šriftai: TALPINAMI PAS SAVE, jokių fonts.googleapis.com užklausų
   vykdymo metu (patikrinta grep'u prieš šį pakeitimą — jų NIEKADA nebuvo,
   ankstesnis komentaras čia tik PAAIŠKINDAVO, kad savihostinama, dabar
   patikslinama, kad tai tikrai taip buvo patikrinta kodu, ne prielaida).
   2026-09-13: PAKEISTA iš Archivo/Source Serif 4/Inter/JetBrains Mono į
   IBM Plex Sans + IBM Plex Mono — sąmoningas vizualinio identiteto
   sprendimas (patvirtinta vartotojo per AskUserQuestion), NE audito
   pasekmė. IBM Plex Sans (KINTAMASIS/variable šriftas, oficialus IBM
   GitHub `@ibm/plex-sans-variable` paketas, ne Google Fonts statinis
   pjūvis) dabar aptarnauja VISUS tris ankstesnius vaidmenis (display/
   body/ui) — VIENA šeima, ne trys, nes IBM Plex Sans superšeimoje NĖRA
   atskiro serifo (Source Serif 4 pakaitalo NĖRA — prozos/ilgo teksto
   tekstas dabar TAIP PAT sans, žr. --font-body žemiau).
   TIK VIENAS combined latin+latin-ext poaibis šeimai (SKIRTINGAI nuo
   senos dviejų-failų-per-šeimą architektūros) — vartotojo užduotis
   eksplicitiškai reikalavo "≤3 failai (sans variable, mono, italic jei
   reikia)", tad du Google pjūviai sujungti į VIENĄ subsetą per
   fontTools varLib.instancer (wght apkarpyta 400–600, wdth prikabinta
   prie 100) + pyftsubset (Basic Latin + Latin-1 Supplement + Latin
   Extended-A + €, °, – — „ " " ' ' skyryba), šaltinis — oficialus IBM
   GitHub TTF, NE Google Fonts pjūvis (Google's pjūviai liko naudoti tik
   kaip PALYGINIMO/patikros nuoroda, patys failai NEATSISIŲSTI iš jų).
   Glifų aprėptis PATIKRINTA PROGRAMIŠKAI (fontTools cmap patikra) VISOMS
   10 kalboms + vizualiai (Pillow render, headless naršyklė šiame VPS
   neveikia) — ą č ę ė į š ų ū ž ā ē ģ ī ķ ļ ņ ś ć ł ń ź ż ä ö ü ß å æ ø
   õ, visi PATVIRTINTA rodomi teisingai, 0 trūkstamų glifų.
   IBM Plex Mono TYČIA turi VISIŠKAI KITOKĮ, žymiai siauresnį subsetą —
   TIK skaitmenys + didžiosios lotyniškos raidės + brūkšnys + pasvirasis
   brūkšnys + tarpas (jokių diakritikų/valiutos/kabučių) — naudojamas
   IŠIMTINAI dokumentų identifikatoriams (konteinerio nr., MRN, AWB, B/L,
   vagono nr., sąskaitos nr.), kurie realiai niekada šių simbolių
   neturi — žr. .id/.doc-id žemiau. --------------------------------------- */
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/fonts/ibm-plex-sans-var.woff2") format("woff2");
  unicode-range: U+0020-007E, U+00A0-00FF, U+0100-017F, U+2013-2014, U+2018-2019, U+201C-201E, U+20AC;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url("/fonts/ibm-plex-sans-italic-var.woff2") format("woff2");
  unicode-range: U+0020-007E, U+00A0-00FF, U+0100-017F, U+2013-2014, U+2018-2019, U+201C-201E, U+20AC;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/ibm-plex-mono.woff2") format("woff2");
  unicode-range: U+0020, U+002D, U+002F, U+0030-0039, U+0041-005A;
}

/* ==========================================================================
   Demurrit dizaino žetonai — v2
   Pakeičia v1.

   Kas pasikeitė ir kodėl:
   v1 turėjo vieną taisyklę — „spalva koduoja būseną". Ji teisinga aplikacijai
   ir klaidinga rinkodarai: puslapis liko be hierarchijos spalvos, antraštės
   susiliejo su fonu, CTA neturėjo kuo išsiskirti.

   v2 turi DVI spalvų sistemas:
     1. Hierarchijos (rinkodara) — kelia dėmesį, nurodo veiksmą.
     2. Būsenų (aplikacija, dokumentai) — koduoja audito rezultatą.
   Jos nesikerta ir viena kitos nepakeičia.
   ========================================================================== */

/* Rasta 2026-09-10: šis reset'as NIEKADA nebuvo faile -- kiekvienas
   elementas su padding+min-height (pvz. .btn min-height:44px) rodė
   naršyklės numatytąjį content-box elgesį, tad padding PRIDĖDAVOSI PRIE
   min-height, ne buvo įskaičiuotas į jį (.btn realiai renderinosi 70px
   vietoj numatytų 44px). Standartinis, saugus visos pramonės reset'as --
   jokio elemento šioje svetainėje nesitiki content-box elgesio. */
*, *::before, *::after { box-sizing: border-box; }

/* Rasta 2026-09-10 (vartotojo pastebėta -- "fonas juodas" kainos/cargo/
   auditas puslapiuose): TA PATI klaidos klasė kaip aukščiau -- šis
   failas niekada neturėjo `body` fono/teksto spalvos taisyklės. Vienintelės
   dvi vietos, kur ji egzistavo (index.html/skaiciuokle.html), turėjo JĄ
   PAČIOS savo lokaliame <style>, nes tuo metu dar naudojo Tailwind CDN,
   ne šį failą kaip vienintelį šaltinį. VISI likę "3 fazės" puslapiai
   (kainos/duk/straipsniai/auditas/cargo/teisiniai/sign) kraunasi TIK
   tokens.css+components.css, be jokios savos body taisyklės -- be `color-
   scheme: dark` meta žymos naršyklė nutapytų numatytą BALTĄ foną (tik
   nekaltas, bet neteisingas faktūros spalvos neatitikimas); SU šia meta
   žyma (kurią visi puslapiai turi) naršyklė vietoj to nutapo numatytą
   TAMSIOS temos UA foną -- dažniausiai grynai JUODĄ, ne šios svetainės
   navy `--bg-0` -- kol JavaScript/CSS `body` pati nepaskiria tikros
   spalvos. Kadangi ŠIS `body` niekada nebuvo paskirtas, matėsi naršyklės
   juoda, ne teisinga tamsi navy. */
body { background: var(--bg-0); color: var(--txt-0); font-family: var(--font-ui); }

:root {
  /* ---------- Neutralai · ŠVIESI tema (aplikacija, teisiniai dokumentai) -- */
  --bg-0:  #ffffff;
  --bg-1:  #f6f8fa;
  --bg-2:  #edf1f5;
  --line:        #dce3ea;
  --line-strong: #b4c2ce;

  --txt-0: #16222c;   /* pagrindinis tekstas */
  --txt-1: #43596b;   /* antrinis — v1 buvo per šviesus */
  --txt-2: #6b7f8d;   /* trečiaeilis, TIK etiketėms */

  /* Antraštės NIEKADA nenaudoja --txt-1 ar --txt-2. */
  --txt-heading: #0b1620;

  /* ---------- Hierarchija · rinkodara ------------------------------------
     PATAISYTA (vartotojo pastebėjimas -- "nėra amber... visoje svetainėje"):
     --accent PIRMINĖ v2 versija buvo teal, --accent-2 (gintarinė/auksinė)
     apribota tik skaičiams -- bet pati svetainės firminė spalva VISUR KITUR
     (homepage, senieji puslapiai, dabar jau ir 16 v2 turinio puslapių savo
     komponentų klasėse: .btn--primary, .module-card__eyebrow ir t.t.,
     visos naudoja var(--accent)) YRA gintarinė/auksinė, ne teal -- tai
     PATVIRTINO ir ankstesnis homepage "amber" Tailwind spalvos pataisymas
     šioje pačioje fazėje. Sprendimas: VERTĖS SUKEISTOS vietomis -- --accent
     dabar auksinė (buvusi --accent-2 reikšmė), --accent-2 dabar teal
     (buvusi --accent reikšmė) -- PAVADINIMAI/PASKIRTYS nekeičiamos
     (--accent lieka "CTA/eyebrow/brūkšniai", --accent-2 lieka "TIK
     skaičiams"), tik pati SPALVA. Tai VIENA vieta, kuri automatiškai
     ištaiso VISUS 16 v2 puslapių komponentus be jokio components.css
     ar HTML pakeitimo. */
  --accent:       #b8860b;
  --accent-hover: #96700a;
  --accent-quiet: #faf1dc;   /* fonui, ne tekstui */
  --on-accent:    #1a1400;   /* tamsus tekstas ant šviesios/auksinės spalvos */

  /* Antrinis akcentas — TIK skaičiams ir metrikoms, kurias reikia pakelti.
     Ne CTA. Ne būsena. */
  --accent-2: #0f6e66;

  /* ---------- Būsenos · aplikacija ir dokumentai ------------------------- */
  /* Naudoti TIK pagal reikšmę. Neatitikimas niekada nebūna žalias.
     Šios spalvos NEnaudojamos rinkodaros hierarchijai. */
  --st-discrepancy:    #c2410c;
  --st-discrepancy-bg: #fdefe9;
  --st-recovered:      #0f766e;
  --st-recovered-bg:   #e3f5f3;
  --st-pending:        #a16207;
  --st-pending-bg:     #faf1dc;
  --st-info:           #1e5f8f;
  --st-info-bg:        #e8f0f7;
  --st-neutral:        #52646f;
  --st-neutral-bg:     #eef2f5;

  /* ---------- Tipografija -----------------------------------------------
     2026-09-13: viena šeima (IBM Plex Sans) trims ankstesniems vaidmenims
     -- display/body/ui dabar sutampa, joks serifas NEBĖRA naudojamas (žr.
     šriftų @font-face bloko komentarą aukščiau dėl "≤3 failai" priežasties).
     Fallback grandinė (system-ui, -apple-system, ...) parinkta PANAŠIŲ
     metrikų sistemos šriftams -- swap šuolis (CLS) lieka mažas be atskiro
     size-adjust (real Lighthouse/PSI matavimas ŠIAME VPS neįmanomas,
     headless naršyklė neveikia -- žr. gotcha, jei kada pridėta prie šio
     projekto atskirai; jei realus CLS kada nors išmatuotas >0.05, čia
     pirmoji vieta size-adjust'ui pridėti). ----------------------------- */
  --font-display: "IBM Plex Sans", system-ui, -apple-system, sans-serif;
  --font-body:    "IBM Plex Sans", system-ui, -apple-system, sans-serif;
  --font-ui:      "IBM Plex Sans", system-ui, -apple-system, sans-serif;
  --font-id:      "IBM Plex Mono", ui-monospace, monospace;

  /* Skirtumas tarp lygių ≥ 1.25× — kitaip hierarchija nesimato */
  --fs-hero:  clamp(2.25rem, 1.5rem + 3.2vw, 3.75rem);
  /* --fs-h1: paprasto puslapio antraštei (vienas trumpas žodis/frazė --
     "Kainos", "D.U.K.") -- SĄMONINGAI mažesnis už --fs-hero, kuris skirtas
     TIK realiam, daugiaeilučiam homepage hero tekstui. Rastas 2026-09-10 --
     visi 16 v2 puslapių savo vietiniame <style> naudojo --fs-hero savo H1,
     nė vienas iš jų nėra realus hero, tad tekstas atrodė neproporcingai
     didelis vienam trumpam žodžiui. */
  --fs-h1:    clamp(1.9rem, 1.5rem + 1.8vw, 2.75rem);
  --fs-h2:    clamp(1.65rem, 1.3rem + 1.6vw, 2.35rem);
  --fs-h3:    clamp(1.2rem, 1.1rem + 0.5vw, 1.45rem);
  --fs-lead:  clamp(1.05rem, 1rem + 0.35vw, 1.2rem);
  --fs-body:  1.0625rem;
  --fs-ui:    0.9375rem;
  --fs-small: 0.8125rem;
  --fs-eyebrow: 0.72rem;
  /* 2026-09-13 (MAIN-RULES §3/§15, "font-size be var(--fs-*)"): trys siauri,
     pavadinimu aiškiai apriboti papildymai TIK savo vartojimo vietai --
     ne bandymas praplėsti bendrą 8 vaidmenų skalę, o tik uždaryti grep'u
     rastas raw px/rem vietas be jokio esamo tinkamo tokeno. */
  --fs-logo: clamp(1.375rem, 1.25rem + 0.5vw, 1.5rem);   /* .site-header__logo -- prekės ženklo dydis, ne turinio hierarchija */
  --fs-icon: var(--fs-h3);                                /* dekoratyvūs glifai (pvz. ☰), ne tekstas */
  --fs-doc-h1: clamp(1.6rem, 1.3rem + 1.2vw, 2.1rem);     /* .document -- sąmoningai mažesnė nei --fs-h1, ta pati tipografija kaip sutarties PDF */
  --fs-doc-h2: 1.15rem;                                    /* .document h2 -- small-caps poskyris */

  --lh-tight: 1.12;   /* hero */
  --lh-head:  1.22;   /* h2, h3 */
  --lh-body:  1.62;
  --lh-ui:    1.45;

  --tracking-tight:   -0.02em;   /* hero */
  /* 2026-09-13: 0.12em → 0.02em -- buvo suderinta su DIDŽIOSIOMIS
     raidėmis (plati tarpai reikalinga skaitomumui uppercase tekste),
     bet MAIN-RULES §3 uppercase etiketes uždraudė (žr. .section-head
     .eyebrow žemiau) -- ta pati plati tarpai ant sakinio raidėmis
     teksto atrodytų suplyšę, ne tvarkinga. */
  --tracking-eyebrow:  0.02em;

  /* ---------- Erdvė · 4 px tinklelis ------------------------------------ */
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
  --sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 72px;
  --sp-9: 112px; --sp-10: 160px;

  /* ---------- Pločiai · pagrindinė „per plačiai" priežastis -------------- */
  /* 2026-09-13 (MAIN-RULES §1): grąžinta į 68ch. 2026-09-11 sprendimas
     (80ch, žr. senesnę versiją git istorijoje) buvo pagrįstas eilučių
     skaičiumi tankiose rinkodaros pastraipose, bet MAIN-RULES §1 dabar
     eksplicitiškai fiksuoja "--w-prose: 68ch ... VISI tęstiniai tekstai
     ... Be išimčių — teisiniai puslapiai, straipsniai, modulių aprašai"
     -- tai skaitinė taisyklė, ne iliustracija, tad ji viršija ankstesnį
     sprendimą (žr. docs/sprendimai.md D11). --w-narrow PALIKTAS 840px
     (nemažinamas atgal) -- platesnis IŠORINIS konteineris, kuriame
     siauresnis --w-prose tekstas telpa laisvai, nekelia jokios problemos;
     problema buvo tik priešinga kryptimi (siauras konteineris, platus
     tekstas). */
  --w-prose: 68ch;    /* ilgas tekstas — NIEKADA platesnis, be išimčių */
  --w-narrow: 840px;  /* hero tekstas, sekcijų įžangos */
  --w-content: 1080px;/* kortelių tinkleliai, lentelės */
  --w-wide: 1280px;   /* absoliutus maksimumas */
  --gutter: clamp(16px, 4vw, 40px);

  --radius: 8px;
  --radius-lg: 14px;

  --focus: 2px solid var(--accent);
  --focus-offset: 3px;

  /* 2026-09-13 (MAIN-RULES §2/§15): jokio box-shadow niekur -- šešėlių
     žetonai PAŠALINTI. Kortelę/popoverį nuo fono skiria TIK border+bg
     kontrastas (--bg-1 vs --bg-0), niekada šešėlis. */

  /* ---------- Amber · paspaudžiamoms kortelėms (.branch-card/.module-card/
     .article-card) -----------------------------------------------------
     2026-09-11, PATAISYTA: iš pradžių buvo TIK .branch-card, vartotojas
     šia užduotimi eksplicitiškai paprašė tos pačios hover/focus elgsenos
     visai kortelių šeimai (vieninga paspaudžiamų kortelių sistema) --
     žr. components.css bazinę taisyklę. Atskiras, siaurai apribotas
     žetonų rinkinys, TYČIA NE
     susietas su --accent (kuris jau yra auksinis/gintarinis ir naudojamas
     VISUR — CTA, eyebrow, section-head brūkšnys). Reikšmės nesiskiria
     pagal temą (pačios absoliučios prekės ženklo spalvos) — tad
     apibrėžtos VIENĄ kartą čia, bazinio :root elemento CSS custom
     property paveldi ir :root[data-theme="dark"] tašką, kol jis pats jų
     neperrašo (o šis blokas jų neperrašo, nes reikšmė ta pati abiem
     temoms) — atskiro įrašo tamsios temos sekcijoje NEREIKIA. */
  --color-amber:        #E8A33D;   /* apvadas */
  --color-amber-strong: #F0B429;   /* CTA tekstas ANT TAMSAUS kortelės fono */
  --color-amber-ink:    #8A5A00;   /* CTA tekstas ANT ŠVIESAUS kortelės fono — #E8A33D pats NEPRAEINA 4,5:1 teksto ribos */
  --color-amber-tint:   rgba(232, 163, 61, 0.10);  /* fono atspalvis hover/focus būsenai */
}

/* ---------- Neutralai · TAMSI tema (rinkodaros numatytoji) --------------- */
:root[data-theme="dark"] {
  /* 2026-09-10: pakelta nuo #0a1117/#101a22/#17242e (vartotojo pastebėjimas
     -- "per tamsus fonas, sunkiai skiriasi nuo esamų tabų"). Kiekviena nauja
     reikšmė patikrinta WCAG santykiu prieš txt-0/txt-1/txt-2/accent PRIEŠ
     keičiant -- silpniausias atvejis (txt-2 ant naujo bg-2) 4.79:1, vis dar
     virš 4.5:1 teksto ribos (buvo 5.31:1). */
  --bg-0: #101a22;
  --bg-1: #16212b;
  --bg-2: #1e2c38;
  --line:        #2b3c48;
  --line-strong: #46606f;

  --txt-0: #eef3f7;
  --txt-1: #b3c4d0;   /* v1 #9fb0be nepraeidavo 4.5:1 ant --bg-1 */
  --txt-2: #8698a5;
  --txt-heading: #ffffff;   /* antraštės tamsioje temoje — grynas baltas */

  --accent:       #f0b429;   /* ryškus, kad CTA matytųsi ant tamsaus */
  --accent-hover: #f5c363;
  --accent-quiet: #2a2211;
  --on-accent:    #06231f;   /* tamsus tekstas ant ryškaus akcento */
  --accent-2:     #2ee0d0;

  --st-discrepancy:    #ff7a4d;
  --st-discrepancy-bg: #2c1710;
  --st-recovered:      #2ee0d0;
  --st-recovered-bg:   #0d2320;
  --st-pending:        #f0b429;
  --st-pending-bg:     #2a2211;
  --st-info:           #6ab0e8;
  --st-info-bg:        #12222f;
  --st-neutral:        #8698a5;
  --st-neutral-bg:     #1a242c;
}

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

/* Apsauginis tinklas -- ilgas neperlaužiamas žodis (pvz. "pakrovimo/
   iškrovimo") siaurose kortelėse (mobiliajame 2-3 stulpelių tinklelyje)
   priverstinai sukurdavo vidinį horizontalų slinkimą TAME elemente, net
   kai pati kortelė nesipersilieja per viewport -- rasta realiu Playwright
   scrollWidth/clientWidth testu (27px skirtumas viename CMR modulio
   aprašyme). break-word niekada nekeičia teksto, kuris JAU tilpo. */
p, li, h1, h2, h3, h4, h5, h6, blockquote, figcaption, dt, dd, th, td { overflow-wrap: break-word; }

/* ==========================================================================
   IŠDĖSTYMAS
   ========================================================================== */

.container      { width: 100%; max-width: var(--w-content); margin-inline: auto; padding-inline: var(--gutter); }
.container--wide{ max-width: var(--w-wide); }
.container--narrow { max-width: var(--w-narrow); }
/* 2026-09-11: .prose anksčiau davė TIK plotį, jokios tipografijos --
   vienintelis realus naudojimo atvejis (homepage "Kur dirbame") todėl
   paveldėjo bazinę body/var(--font-ui) sans-serif, kai KIEKVIENA kita
   ilgo teksto pastraipa puslapyje (.hero .lead, .about-text p) naudoja
   var(--font-body) serif + var(--txt-1) -- matomas šrifto/spalvos
   neatitikimas. .prose dabar nustato TĄ PATĮ standartą, kad bet kuris
   būsimas jos naudojimas automatiškai sutaptų su likusiu puslapiu. */
/* 2026-09-11: max-width: var(--w-prose) pašalintas -- .prose vienintelis
   naudojimo atvejis (homepage "Kur dirbame") jau sėdi .container--narrow
   (840px) viduje, tad ch-pagrįstas papildomas apribojimas buvo antras,
   siauresnis limitas ANT jau siauro konteinerio -- tekstas persikeldavo
   į naują eilutę su tuščia vieta dešinėje, nes ch skaičiuojamas pagal
   PAČIO elemento šrifto dydį, ne pagal tėvinio konteinerio plotį. Jei
   .prose kada nors bus naudojamas PLAČIAME (ne jau-siaurame) konteineryje,
   ribą reikės grąžinti TEN, ne čia bendrai. */
.prose          { font: 400 var(--fs-body)/var(--lh-body) var(--font-body); color: var(--txt-1); }
.prose p        { margin-bottom: var(--sp-4); }
.prose p:last-child { margin-bottom: 0; }

/* Sekcijų ritmas. Vienodas tarpas tarp sekcijų — ne kiekvienai savas.
   2026-09-11: .section--tinted (kaitaliojantis foną tarp sekcijų)
   PAŠALINTA -- vienas fonas visai svetainei (body { background: var(
   --bg-0) }, žr. body taisyklę aukščiau), sekcijas skiria TIK tarpas,
   ne spalva. Objektai (.module-card/.pricing-plan/.branch-card ir t.t.)
   ir toliau naudoja var(--bg-1) savo, ne sekcijos, fonui. */
.section { padding-block: var(--sp-9); }
@media (max-width: 768px) { .section { padding-block: var(--sp-7); } }
.section + .section { padding-block-start: 0; }

/* ==========================================================================
   TINKLELIAI · aiškios taisyklės, ne auto-fit spėjimas

   Problema: 8 kortelės 3 stulpeliuose duoda 3+3+2 su tuščia dešine puse.
   4 kortelės 4 stulpeliuose duoda per siauras korteles.

   Taisyklė:
     2 elementai → 2 stulpeliai
     3 elementai → 3 stulpeliai
     4 elementai → 2×2   (NIEKADA 4 vienoje eilėje)
     5 elementai → 3 + 2, paskutinė eilė centruota
     6 elementai → 3×2
     8 elementai → skaidyti į grupes, ne 3+3+2
   ========================================================================== */

/* minmax(0, 1fr), NE plikas 1fr -- žinoma CSS Grid spąstas: 1fr takelis
   NEIŠREIKŠTINAI turi min-width:auto (ne 0), tad jei kurios nors
   kortelės TURINYS negali susitraukti (ilgas neperlaužiamas žodis ar
   pan.), TAS takelis IŠSIPLEČIA daugiau nei jo lygi 1fr dalis, o kiti
   susitraukia -- nelygūs stulpeliai vietoj lygių. Rasta realiu Playwright
   testu (mobiliajame #modules antroje eilutėje stulpeliai buvo 186px/
   154px vietoj lygių ~171px/171px, sukėlė 11px persiliejimą). */
.grid { display: grid; gap: var(--sp-5); }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Nepilna paskutinė eilė centruojama, o ne paliekama kairėje su spraga.
   PATAISYTA (realus produkcijos bug'as, rastas Playwright ekrano
   nuotrauka -- 5 elementų atveju paskutiniai du sutraukdavo į 155px
   pločio korteles vietoj 309px): ankstesnė versija naudojo
   margin-inline-start/end: 50% ant elemento, PRIVERSTO į VIENĄ 1fr
   takelį (grid-column: 1/2) -- procentinė paraštė skaičiuojama nuo TO
   PATIES takelio pločio, tad ji NE PASTUMIA elementą, o SUSIAURINA jo
   turinio plotį per pusę (paraštė "suvalgo" vietą tame pačiame takelyje,
   nepadidindama viso elemento dėžės). Sprendimas: laikinas 6 takelių
   virtualus tinklelis TIK paskutinei nepilnai eilutei -- kiekviena
   įprasta kortelė užima 2 iš 6 takelių (tas pats plotis kaip 3 takelių
   iš 3 tinklelyje), o centruojamos paskutinės dvi kortelės eksplicitiškai
   pastatomos į takelius 2-3 ir 4-5, paliekant 1 tuščią takelį iš kiekvienos
   pusės -- tikslus, ne apytikslis centravimas, be jokio pločio susiaurėjimo. */
.grid--center-last { justify-content: center; }
.grid--3.grid--center-last { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.grid--3.grid--center-last > * { grid-column: span 2; }
.grid--3.grid--center-last > :nth-last-child(2):nth-child(3n + 1) { grid-column: 2 / span 2; }
.grid--3.grid--center-last > :last-child:nth-child(3n + 2)        { grid-column: 4 / span 2; }
/* 2026-09-21 -- SAME centering, for the OTHER incomplete-row case this
   selector previously didn't cover: exactly ONE leftover item (e.g. 7
   cards = 2 full rows + 1). Without this, that lone card silently fell
   back to the generic "> * { grid-column: span 2 }" rule above and sat
   flush left (columns 1-2 of 6) instead of centered -- the exact bug
   this file's own docstring says .grid--center-last exists to prevent,
   just for a leftover count (1) the original two rules didn't test.
   Found adding a 7th card to /lt/skaiciuokle's hub grid. */
.grid--3.grid--center-last > :last-child:nth-child(3n + 1)        { grid-column: 3 / span 2; }

@media (max-width: 900px) {
  .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--3.grid--center-last { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* Šios TRYS eilutės turi ATSKIRAI atkartoti kiekvieną desktop
     selektorių (ne tik bendrą "> *"), nes :nth-last-child/:nth-child
     poros turi DIDESNĮ specifiškumą (0,4,0) nei paprastas "> *" (0,2,0)
     -- vien "> *" reset'as ČIA nelaimėtų prieš juos, nepriklausomai nuo
     media query, ir mobiliajame lieka senas 2/span2 ar 4/span2 platus
     grid-column, kuris ištempia turinį per 2 tuometinio 2-takelių
     tinklelio takelius -- rastas realiu Playwright overflow testu. */
  .grid--3.grid--center-last > * { grid-column: auto; }
  .grid--3.grid--center-last > :nth-last-child(2):nth-child(3n + 1) { grid-column: auto; }
  .grid--3.grid--center-last > :last-child:nth-child(3n + 2) { grid-column: auto; }
  .grid--3.grid--center-last > :last-child:nth-child(3n + 1) { grid-column: auto; }
}
@media (max-width: 560px) {
  .grid--2, .grid--3 { grid-template-columns: 1fr; }
}

/* ==========================================================================
   NUORODOS · bazinė spalva
   ========================================================================== */
/* Rastas realus bug'as (vartotojo pastebėjimas): niekur nebuvo bazinės
   "a { color }" taisyklės -- kiekviena nuoroda BE konkretesnės klasės
   (.site-nav a, .module-card, .btn ir t.t.) kris atgal į naršyklės
   numatytąją mėlyną/violetinę spalvą. Šis blokas TIK duoda numatytąją
   reikšmę -- bet koks specifiškesnis selektorius (kaip minėtieji) jį
   ir toliau teisingai perrašo, čia nieko nekeičiant. */
/* 2026-09-11: taisyklė -- nuorodoms apatinės juostos (text-decoration:
   underline) NENAUDOTI pagal nutylėjimą, tik spalva/hover skiria nuo
   teksto (jau taip elgiasi .company-dl, .site-footer, .module-card ir
   t.t.) -- keisti TIK jei aiškiai paprašyta konkrečiam atvejui. */
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-hover); }

/* D55 (2026-09-15): Lighthouse "link-in-text-block" -- nuorodos, įterptos
   prozos tekste (aptinkamos per `style="color:var(--accent)"`, kurį autoriai
   nuosekliai naudojo būtent tokioms nuorodoms žymėti), skiriasi nuo aplinkinio
   teksto TIK spalva -- WCAG reikalauja papildomo, ne-spalvinio žymens
   (spalvakvaišiams/monochrominiam ekranui). 2026-09-11 taisyklė ("jokio
   pabraukimo pagal nutylėjimą") lieka galioti VISUR KITUR (nav, mygtukai,
   kortelės) -- šis selektorius tyčia siauras, apima TIK esamas prozos
   nuorodas, joks kitas elementas šio inline `style` atributo neturi. */
a[style*="color:var(--accent)"] { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

/* ==========================================================================
   ANTRAŠTĖS · „susilieja su fonu" pataisa
   ========================================================================== */

h1, h2, h3 {
  color: var(--txt-heading);
  font-family: var(--font-display);
  /* 2026-09-11: text-wrap: balance PAŠALINTAS -- vartotojas gyvai pastebėjo,
     kad "balansuotas" (beveik lygiadalis) eilučių skaidymas ilgoms
     antraštėms atrodo NEPROPORCINGAI, sukirsdamas frazę per vidurį
     (pvz. "niekada" / "netikrinamos" atskirai) -- iš tikrųjų norima
     PRIEŠINGO elgesio: pirma eilutė kuo pilnesnė, tik paskutinis žodis/
     frazė nukrenta į antrą. Tai yra numatytasis (greedy) naršyklės
     laužymas -- balance specialiai tam prieštarauja, todėl pašalintas. */
  margin-block: 0 var(--sp-4);
}
h1 { font-size: var(--fs-h1); line-height: var(--lh-tight); letter-spacing: var(--tracking-tight); font-weight: 600; }
h2 { font-size: var(--fs-h2);   line-height: var(--lh-head);  letter-spacing: -0.012em; font-weight: 600; }
h3 { font-size: var(--fs-h3);   line-height: var(--lh-head);  font-weight: 600; }

/* Sekcijos antraštė gauna akcentinį brūkšnį — vizualinis inkaras */
.section-head { margin-bottom: var(--sp-7); max-width: var(--w-narrow); }
/* 2026-09-13 (MAIN-RULES §3, "DIDŽIOSIOMIS raidėmis rašytos etiketės...
   vietoj to <strong>"): text-transform:uppercase PAŠALINTAS. Etiketė
   lieka pastebima vien svoriu (600) + spalva (--accent) — sakinio
   raidėmis, ne DIDŽIOSIOMIS, kaip ir HTML turinys jau parašytas. */
.section-head .eyebrow {
  display: inline-block;
  font: 600 var(--fs-eyebrow)/1 var(--font-ui);
  letter-spacing: var(--tracking-eyebrow);
  color: var(--accent);
  margin-bottom: var(--sp-3);
}
.section-head h2::after {
  content: "";
  display: block;
  width: 56px; height: 3px;
  background: var(--accent);
  margin-top: var(--sp-4);
}
.section-head .lead {
  font-size: var(--fs-lead);
  line-height: var(--lh-body);
  color: var(--txt-1);
  margin-top: var(--sp-4);
}

/* ==========================================================================
   CTA · turi būti pats ryškiausias elementas ekrane
   ========================================================================== */

.btn {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-6);
  border-radius: var(--radius);
  font: 600 var(--fs-ui)/1.2 var(--font-ui);
  text-decoration: none;
  border: 1px solid transparent;
  min-height: 44px;               /* lietimo taikinys */
  transition: background-color .15s, border-color .15s;
}
.btn--primary   { background: var(--accent); color: var(--on-accent); }
.btn--primary:hover { background: var(--accent-hover); color: var(--on-accent); }
.btn--secondary { background: transparent; color: var(--accent); border-color: var(--accent); }
.btn--secondary:hover { background: var(--accent-quiet); }

/* Negyvas CTA neleidžiamas į produkciją */
a[href="#"], a[href=""] { outline: 3px dashed var(--st-discrepancy) !important; }

/* ==========================================================================
   BŪSENOS ŽENKLIUKAS · forma dubliuoja spalvą
   ========================================================================== */

.badge {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  padding: 3px var(--sp-3); border-radius: 999px;
  font: 500 var(--fs-small)/1 var(--font-ui);
  border: 1px solid currentColor;
}
.badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.badge--discrepancy { color: var(--st-discrepancy); background: var(--st-discrepancy-bg); }
.badge--recovered   { color: var(--st-recovered);   background: var(--st-recovered-bg); }
.badge--pending     { color: var(--st-pending);     background: var(--st-pending-bg); }
.badge--info        { color: var(--st-info);        background: var(--st-info-bg); }
.badge--neutral     { color: var(--st-neutral);     background: var(--st-neutral-bg); }
.badge--discrepancy::before { border-radius: 0; }
.badge--pending::before     { border-radius: 0; transform: rotate(45deg); }

/* ==========================================================================
   TABAI BE JAVASCRIPT · radio + :checked
   Priežastis: dabar visos keturios skaičiuoklės rodomos vienu metu, nes
   paslėpimas priklauso nuo JS. CSS varianto sulaužyti neįmanoma.
   ========================================================================== */

.tabs { display: grid; }
.tabs > input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }

.tabs__list {
  display: flex; flex-wrap: wrap; gap: var(--sp-2);
  border-bottom: 1px solid var(--line);
  margin-bottom: var(--sp-6);
}
.tabs__label {
  padding: var(--sp-3) var(--sp-5);
  min-height: 44px;
  display: inline-flex; align-items: center;
  font: 600 var(--fs-ui)/1.2 var(--font-ui);
  color: var(--txt-1);
  cursor: pointer;
  border-bottom: 3px solid transparent;
  margin-bottom: -1px;
}
.tabs__label:hover { color: var(--txt-0); }
.tabs__panel { display: none; }

/* Aktyvus tabas: spalva + storis + apatinis brūkšnys — trys signalai */
.tabs > input:nth-of-type(1):checked ~ .tabs__list .tabs__label:nth-of-type(1),
.tabs > input:nth-of-type(2):checked ~ .tabs__list .tabs__label:nth-of-type(2),
.tabs > input:nth-of-type(3):checked ~ .tabs__list .tabs__label:nth-of-type(3),
.tabs > input:nth-of-type(4):checked ~ .tabs__list .tabs__label:nth-of-type(4) {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.tabs > input:nth-of-type(1):checked ~ .tabs__panels > .tabs__panel:nth-of-type(1),
.tabs > input:nth-of-type(2):checked ~ .tabs__panels > .tabs__panel:nth-of-type(2),
.tabs > input:nth-of-type(3):checked ~ .tabs__panels > .tabs__panel:nth-of-type(3),
.tabs > input:nth-of-type(4):checked ~ .tabs__panels > .tabs__panel:nth-of-type(4) { display: block; }

.tabs > input:focus-visible ~ .tabs__list .tabs__label { outline: var(--focus); outline-offset: var(--focus-offset); }

/* ==========================================================================
   KALBOS PERJUNGIKLIS · 10 kalbų netelpa į juostą
   ========================================================================== */

.langs { position: relative; }
.langs > summary {
  list-style: none; cursor: pointer;
  display: inline-flex; align-items: center; gap: var(--sp-2);
  min-height: 44px; padding-inline: var(--sp-3);
  font: 600 var(--fs-ui)/1 var(--font-ui); color: var(--txt-1);
}
.langs > summary::-webkit-details-marker { display: none; }
.langs__menu {
  position: absolute; inset-inline-end: 0; z-index: 40;
  min-width: 220px; padding: var(--sp-2);
  background: var(--bg-0); border: 1px solid var(--line);
  border-radius: var(--radius);
  display: grid; grid-template-columns: 1fr 1fr; gap: 2px;
}
.langs__menu a { padding: var(--sp-2) var(--sp-3); border-radius: 6px; color: var(--txt-0); text-decoration: none; font: 500 var(--fs-ui)/1.3 var(--font-ui); }
.langs__menu a:hover { background: var(--bg-2); }
.langs__menu a[aria-current="true"] { background: var(--accent-quiet); color: var(--accent); font-weight: 600; }

/* ==========================================================================
   DOKUMENTO ŠABLONAS · teisiniai puslapiai
   Sąmoningai kitokia išvaizda nei rinkodara: tai dokumentas, ne pardavimas.
   Ta pati tipografija kaip sutarties ir DTS PDF — todėl atrodo solidžiau.
   ========================================================================== */

.document {
  /* 2026-09-13: max-width var(--w-prose)(68ch≈650px) -> 860px -- vartotojas
     gyvai pastebėjo, kad teisiniai puslapiai atrodo pastebimai siauresni
     nei likusi svetainė (kainos/duk/auditas/cargo/straipsniai visi dabar
     860px). Suvienodinta su sitewide standartu -- žr. docs/sprendimai.md
     D14 dėl MAIN-RULES §1 68ch taisyklės (be išimčių) įtampos, kuri čia
     sąmoningai nusverta vartotojo tiesioginio, matomo prašymo naudai. */
  max-width: 860px;
  margin-inline: auto;
  padding-inline: var(--gutter);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--txt-0);
}
.document h1 { font-family: var(--font-body); font-weight: 600; font-size: var(--fs-doc-h1); }
.document h2 {
  font-family: var(--font-body); font-weight: 600;
  font-size: var(--fs-doc-h2); font-variant: small-caps; letter-spacing: .03em;
  padding-bottom: var(--sp-2); border-bottom: 1px solid var(--line);
  margin-top: var(--sp-7);
}
.document h2::after { content: none; }
.table-scroll { overflow-x: auto; margin-block: var(--sp-4); }
.document table { width: 100%; min-width: 480px; border-collapse: collapse; font-size: var(--fs-ui); margin-block: 0; }
/* 2026-09-13 (MAIN-RULES §3): text-transform:uppercase pašalintas, svoris
   600 (buvo paveldėtas iš .document bendro font-weight -- čia eksplicitiškai
   pridėtas, kad etiketė liktų pastebima be DIDŽIŲJŲ raidžių) + tarpai
   sumažinti (buvo suderinti su uppercase). */
.document th { text-align: left; font-family: var(--font-ui); font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: .02em; color: var(--accent); border-bottom: 1px solid var(--line); padding: var(--sp-2) var(--sp-3) var(--sp-2) 0; }
.document td { padding: var(--sp-2) var(--sp-3) var(--sp-2) 0; border-bottom: 1px solid var(--bg-2); vertical-align: top; }
.document__meta { font-family: var(--font-ui); font-size: var(--fs-small); color: var(--txt-1); display: flex; gap: var(--sp-5); flex-wrap: wrap; padding-bottom: var(--sp-4); border-bottom: 3px solid var(--accent); margin-bottom: var(--sp-6); }

/* ==========================================================================
   PAGALBINĖS
   ========================================================================== */

.doc-id, .id { font: 400 .875em/1.3 var(--font-id); font-variant-numeric: tabular-nums; word-break: break-all; letter-spacing: 0.01em; }
.amount { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
/* Skaičiai neturi "šokinėti" perskaičiuojant -- kainų lentelėse,
   skaičiuoklių rezultatuose, datose. .price/.amount/.metric/.doc-id
   jau turi tabular-nums savo pačių taisyklėse (aukščiau/components.css)
   -- šis papildomas, plataus masto sluoksnis uždaro likusias vietas
   (paprastos lentelės, <time>, būsimas .num, .calc-result), be rizikos
   nesaugiam poveikiui (tabular-nums neturi jokio matomo efekto tekstui
   be skaitmenų). */
td, time, .num, .calc-result { font-variant-numeric: tabular-nums; }
.metric { font: 600 clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem)/1 var(--font-display); color: var(--accent-2); font-variant-numeric: tabular-nums; }

:where(a, button, input, select, summary, label):focus-visible {
  outline: var(--focus); outline-offset: var(--focus-offset);
}
