/* v165 common.css: shared base, variables, header, footer, buttons, reveal and global utilities. */

:root {
    --ts-black: #05080d;
    --ts-night: #07111f;
    --ts-night-2: #0b1728;
    --ts-ink: #0d1624;
    --ts-text: #eaf2ff;
    --ts-muted: #91a3ba;
    --ts-muted-dark: #536276;
    --ts-line: rgba(255, 255, 255, .14);
    --ts-line-dark: rgba(12, 24, 38, .12);
    --ts-white: #fff;
    --ts-paper: #f4f7fb;
    --ts-accent: #18d6b1;
    --ts-accent-2: #58a6ff;
    --ts-accent-3: #8f7cff;
    --ts-warn: #e8ff5f;
    --ts-radius: 32px;
    --ts-shadow: 0 30px 90px rgba(0, 0, 0, .22);
    --ts-shadow-soft: 0 20px 60px rgba(8, 18, 31, .11);
    --ts-container-pad: clamp(18px, 3vw, 48px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.ts-body {
    margin: 0;
    background: var(--ts-paper);
    color: var(--ts-ink);
    font-family: Inter, Manrope, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    line-height: 1.48;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
body.ts-body:before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    opacity: .42;
    background:
        radial-gradient(circle at var(--mx, 72%) var(--my, 16%), rgba(24, 214, 177, .18), transparent 32vw),
        radial-gradient(circle at 12% 84%, rgba(88, 166, 255, .12), transparent 34vw);
}
a { color: inherit; transition: color .25s ease, opacity .25s ease, transform .25s ease; }
a:hover { color: var(--ts-accent); text-decoration: none; }

/* Keyboard navigation */
.ts-skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 20000;
    padding: 12px 16px;
    border-radius: 15px;
    background: var(--ts-white);
    color: var(--ts-ink);
    font-weight: 800;
    box-shadow: var(--ts-shadow-soft);
    transform: translateY(calc(-100% - 24px));
}
.ts-skip-link:focus {
    color: var(--ts-ink);
    transform: translateY(0);
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid var(--ts-accent-2);
    outline-offset: 3px;
}
::selection { background: rgba(24, 214, 177, .35); color: #fff; }
.ts-main, .ts-header, .ts-footer { position: relative; z-index: 2; }

/* Preloader and progress */
.ts-preloader {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: var(--ts-black);
    color: #fff;
    display: grid;
    place-items: center;
    transition: opacity .45s ease, visibility .45s ease;
}
.ts-preloader:before,
.ts-preloader:after {
    content: "";
    position: absolute;
    border-radius: 50%;
    filter: blur(20px);
    opacity: .5;
}
.ts-preloader:before { width: 42vw; height: 42vw; left: -12vw; bottom: -18vw; background: rgba(88, 166, 255, .22); }
.ts-preloader:after { width: 38vw; height: 38vw; right: -8vw; top: -14vw; background: rgba(24, 214, 177, .22); }
.ts-preloader__inner { position: relative; width: min(420px, 72vw); }
.ts-preloader__brand {
    font-size: clamp(30px, 7vw, 58px);
    line-height: 1;
    letter-spacing: -.06em;
    font-weight: 900;
    margin-bottom: 28px;
}
.ts-preloader__line { height: 2px; background: rgba(255, 255, 255, .16); overflow: hidden; }
.ts-preloader__line span { display: block; height: 100%; width: var(--preload, 0%); background: linear-gradient(90deg, var(--ts-accent), var(--ts-accent-2)); transition: width .18s ease; }
.ts-preloader__percent { margin-top: 14px; color: var(--ts-muted); font-size: 18px; letter-spacing: .06em; }
.ts-loaded .ts-preloader { opacity: 0; visibility: hidden; pointer-events: none; }
.ts-scroll-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 9999; background: linear-gradient(90deg, var(--ts-accent), var(--ts-accent-2), var(--ts-accent-3)); }

/* Header */
.ts-header {
    position: relative;
    width: 100%;
    background: transparent;
    transition: background .25s ease, box-shadow .25s ease, border-color .25s ease;
    border-bottom: 1px solid transparent;
}
.ts-header.uk-sticky-fixed { z-index: 980; }
.ts-header--sticky {
    background: rgba(255, 255, 255, .84);
    backdrop-filter: blur(18px);
    border-bottom-color: rgba(8, 18, 31, .10);
    box-shadow: 0 12px 36px rgba(0, 0, 0, .08);
}
.ts-navbar { min-height: 92px; padding-inline: var(--ts-container-pad); }
.ts-logo { position: relative; min-height: 92px; }
.ts-logo img { display: block; max-width: 232px; }
.ts-logo__dark { display: none !important; }
.ts-header--sticky .ts-logo__light { display: none !important; }
.ts-header--sticky .ts-logo__dark { display: block !important; }
.ts-nav > li > a {
    min-height: 92px;
    color: rgba(255, 255, 255, .78);
    font-size: 13px;
    font-weight: 750;
    text-transform: none;
    letter-spacing: -.01em;
    position: relative;
}
.ts-nav > li > a:after {
    content: "";
    position: absolute;
    left: 15px;
    right: 15px;
    bottom: 26px;
    height: 1px;
    background: var(--ts-accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .25s ease;
}
.ts-nav > li.uk-active > a,
.ts-nav > li > a:hover { color: #fff; }
.ts-nav > li.uk-active > a:after,
.ts-nav > li > a:hover:after { transform: scaleX(1); }
.ts-header--sticky .ts-nav > li > a { color: rgba(13, 22, 36, .72); }
.ts-header--sticky .ts-nav > li.uk-active > a,
.ts-header--sticky .ts-nav > li > a:hover { color: var(--ts-ink); }
.ts-header-contact a { color: #fff; font-weight: 850; }
.ts-header--sticky .ts-header-contact a { color: var(--ts-ink); }
.ts-menu-toggle { color: #fff; }
.ts-header--sticky .ts-menu-toggle { color: var(--ts-ink); }

.ts-button,
.uk-button.ts-button {
    border-radius: 999px;
    min-height: 48px;
    padding: 0 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    font-weight: 850;
    text-transform: none;
    letter-spacing: -.01em;
    transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ts-button:hover { transform: translateY(-2px); }
.ts-button--primary,
.uk-button.ts-button--primary {
    color: #061018;
    border: 0;
    background: linear-gradient(135deg, var(--ts-accent), var(--ts-warn));
    box-shadow: 0 16px 34px rgba(24, 214, 177, .24);
}
.ts-button--dark,
.uk-button.ts-button--dark { background: var(--ts-ink); color: #fff; border: 1px solid rgba(255,255,255,.08); }
.ts-button--ghost,
.uk-button.ts-button--ghost { color: #fff; border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .06); }
.ts-header--sticky .ts-button--ghost { color: var(--ts-ink); border-color: rgba(8, 18, 31, .14); background: rgba(8, 18, 31, .04); }
.ts-button--line,
.uk-button.ts-button--line { color: #fff; border: 1px solid rgba(255,255,255,.18); background: transparent; }
.ts-button--light,
.uk-button.ts-button--light { color: var(--ts-ink); background: #fff; border: 1px solid rgba(8,18,31,.08); }

/* Generic blocks */
.ts-dark-section,
.ts-hero,
.ts-page-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 18%, rgba(24, 214, 177, .22), transparent 28vw),
        radial-gradient(circle at 18% 72%, rgba(88, 166, 255, .17), transparent 30vw),
        linear-gradient(135deg, #05080d 0%, #081421 56%, #09111e 100%);
    color: #fff;
}
.ts-grid-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .35;
    background-image:
        linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: radial-gradient(circle at 55% 50%, #000 0, transparent 70%);
}
.ts-ambient { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.ts-ambient:before,
.ts-ambient:after {
    content: "";
    position: absolute;
    border-radius: 999px;
    filter: blur(26px);
    opacity: .5;
    transform: translate3d(calc((var(--mx-px, 0px)) * .015), calc((var(--my-px, 0px)) * .015), 0);
}
.ts-ambient:before { width: 420px; height: 420px; right: 8%; top: 14%; background: rgba(24, 214, 177, .16); }
.ts-ambient:after { width: 340px; height: 340px; left: 6%; bottom: 12%; background: rgba(88, 166, 255, .18); }
.ts-section { padding-top: clamp(70px, 8vw, 126px); padding-bottom: clamp(70px, 8vw, 126px); position: relative; }
.ts-section--paper { background: var(--ts-paper); }
.ts-section--white { background: #fff; }
.ts-section--night { background: var(--ts-night); color: #fff; overflow: hidden; }
.ts-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--ts-accent);
    font-weight: 850;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .12em;
}
.ts-eyebrow:before { content: ""; width: 42px; height: 1px; background: currentColor; opacity: .8; }
.ts-title-xl {
    font-size: clamp(48px, 8vw, 116px);
    line-height: .94;
    letter-spacing: -.078em;
    font-weight: 900;
    margin: 22px 0 0;
}
.ts-title-lg,
.ts-page-title,
.ts-section-title {
    font-size: clamp(36px, 5.4vw, 76px);
    line-height: .98;
    letter-spacing: -.064em;
    font-weight: 900;
    margin: 0;
}
.ts-section-title--light { color: #fff; }
.ts-lead {
    font-size: clamp(18px, 2vw, 24px);
    line-height: 1.45;
    color: rgba(234, 242, 255, .76);
    max-width: 820px;
}
.ts-intro { color: var(--ts-muted-dark); font-size: clamp(17px, 1.5vw, 20px); max-width: 820px; }
.ts-section--night .ts-intro { color: rgba(234, 242, 255, .66); }
.ts-muted { color: var(--ts-muted-dark); }

/* Hero */
.ts-hero { min-height: 100svh; padding-top: 124px; padding-bottom: 54px; display: flex; align-items: stretch; }
.ts-hero .uk-container { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; }
.ts-hero__meta { color: rgba(234,242,255,.55); font-weight: 700; letter-spacing: .04em; }
.ts-hero__actions { margin-top: 34px; }
.ts-hero__bottom { margin-top: clamp(48px, 8vw, 96px); }
.ts-scroll-cue { display: inline-flex; align-items: center; gap: 12px; color: rgba(234,242,255,.56); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; }
.ts-scroll-cue span { width: 34px; height: 54px; border-radius: 999px; border: 1px solid rgba(255,255,255,.24); position: relative; }
.ts-scroll-cue span:after { content: ""; width: 4px; height: 8px; border-radius: 999px; background: var(--ts-accent); position: absolute; top: 12px; left: 50%; transform: translateX(-50%); animation: ts-wheel 1.4s infinite; }
@keyframes ts-wheel { 0% { transform: translate(-50%, 0); opacity: 1; } 70% { transform: translate(-50%, 18px); opacity: 0; } 100% { opacity: 0; } }
.ts-hero-card {
    position: relative;
    min-height: 520px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 38px;
    background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.025));
    box-shadow: var(--ts-shadow);
    overflow: hidden;
    backdrop-filter: blur(10px);
    transform: perspective(1200px) rotateX(calc((var(--my-ratio, .5) - .5) * -5deg)) rotateY(calc((var(--mx-ratio, .5) - .5) * 5deg));
    transition: transform .18s ease-out;
}
.ts-network {
    position: absolute;
    inset: 0;
    opacity: .82;
}
.ts-network svg { width: 100%; height: 100%; }
.ts-network line { stroke: rgba(131, 208, 255, .34); stroke-width: 1; stroke-dasharray: 8 10; animation: ts-dash 16s linear infinite; }
.ts-network circle { fill: rgba(24, 214, 177, .9); filter: drop-shadow(0 0 12px rgba(24,214,177,.6)); animation: ts-pulse 2.8s infinite ease-in-out; }
.ts-network circle:nth-child(2n) { fill: rgba(232,255,95,.9); animation-delay: -.8s; }
.ts-network circle:nth-child(3n) { fill: rgba(88,166,255,.9); animation-delay: -1.4s; }
@keyframes ts-dash { to { stroke-dashoffset: -260; } }
@keyframes ts-pulse { 0%, 100% { opacity: .45; r: 4; } 50% { opacity: 1; r: 7; } }
.ts-console {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 24px;
    padding: 22px;
    border-radius: 26px;
    background: rgba(5, 8, 13, .68);
    border: 1px solid rgba(255,255,255,.12);
    backdrop-filter: blur(14px);
}
.ts-console__top { display: flex; gap: 8px; margin-bottom: 18px; }
.ts-console__dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.32); }
.ts-console__line { display: flex; gap: 12px; color: rgba(234,242,255,.72); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; margin-top: 9px; }
.ts-console__line b { color: var(--ts-accent); font-weight: 700; }
.ts-orbit {
    position: absolute;
    width: 360px;
    height: 360px;
    border-radius: 50%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -58%);
    border: 1px solid rgba(255,255,255,.10);
}
.ts-orbit:before,
.ts-orbit:after { content: ""; position: absolute; inset: 44px; border: 1px solid rgba(255,255,255,.10); border-radius: 50%; }
.ts-orbit:after { inset: 96px; background: radial-gradient(circle, rgba(24,214,177,.22), transparent 70%); }
.ts-orbit__item { position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--ts-accent); top: -6px; left: calc(50% - 6px); transform-origin: 6px 186px; animation: ts-orbit 9s linear infinite; box-shadow: 0 0 22px rgba(24,214,177,.9); }
.ts-orbit__item:nth-child(2) { background: var(--ts-accent-2); animation-duration: 12s; animation-delay: -4s; transform-origin: 6px 186px; }
.ts-orbit__item:nth-child(3) { background: var(--ts-warn); animation-duration: 15s; animation-delay: -8s; }
@keyframes ts-orbit { to { transform: rotate(360deg); } }

/* Stats and cards */
.ts-stat-row { border-top: 1px solid var(--ts-line); }
.ts-stat { padding-top: 24px; color: #fff; }
.ts-stat__value { display: block; font-size: clamp(38px, 5vw, 76px); line-height: .92; letter-spacing: -.065em; font-weight: 900; }
.ts-stat__label { color: rgba(234,242,255,.58); font-size: 14px; margin-top: 12px; display: block; }
.ts-mission-text { color: #fff; font-size: clamp(34px, 6.6vw, 96px); line-height: .96; letter-spacing: -.074em; font-weight: 900; max-width: 1120px; }
.ts-mission-text span { color: rgba(234,242,255,.38); }
.ts-promo-card,
.ts-direction-card,
.ts-feature-card,
.ts-case-card,
.ts-price-card,
.ts-content-card {
    border-radius: var(--ts-radius);
    border: 1px solid var(--ts-line-dark);
    background: rgba(255,255,255,.78);
    box-shadow: var(--ts-shadow-soft);
    backdrop-filter: blur(12px);
}
.ts-content-card { padding: clamp(26px, 4vw, 56px); }
.ts-promo-card { padding: clamp(26px, 4vw, 48px); background: #fff; overflow: hidden; position: relative; }
.ts-promo-card:after { content: ""; position: absolute; width: 220px; height: 220px; right: -90px; bottom: -90px; border-radius: 50%; background: radial-gradient(circle, rgba(24,214,177,.22), transparent 70%); }
.ts-promo-card h3 { font-size: clamp(22px, 2vw, 32px); line-height: 1.05; letter-spacing: -.04em; margin-bottom: 16px; }
.ts-feature-card { padding: 30px; min-height: 282px; position: relative; overflow: hidden; transition: transform .35s ease, background .35s ease, color .35s ease, border-color .35s ease; }
.ts-feature-card__num { color: var(--ts-accent); font-weight: 900; font-size: 14px; letter-spacing: .12em; }
.ts-feature-card h3 { font-size: 28px; line-height: 1.04; letter-spacing: -.045em; margin-top: 54px; }
.ts-feature-card p { color: var(--ts-muted-dark); }
.ts-feature-card:before { content: ""; position: absolute; width: 180px; height: 180px; right: -80px; top: -80px; border-radius: 50%; border: 1px solid rgba(24,214,177,.28); }

.ts-direction-card {
    padding: clamp(26px, 3vw, 38px);
    min-height: 370px;
    background: #fff;
    position: relative;
    overflow: hidden;
    transition: transform .35s ease, box-shadow .35s ease;
}
.ts-direction-card:hover { transform: translateY(-10px); box-shadow: 0 34px 90px rgba(8,18,31,.18); }
.ts-direction-card__num { font-weight: 900; color: var(--ts-accent); margin-bottom: 42px; }
.ts-direction-card h3 { font-size: clamp(25px, 2.2vw, 36px); line-height: 1.02; letter-spacing: -.052em; margin-bottom: 18px; }
.ts-direction-card p { color: var(--ts-muted-dark); max-width: 360px; }
.ts-direction-card__link { position: absolute; left: 38px; bottom: 34px; font-weight: 850; display: inline-flex; align-items: center; gap: 10px; }
.ts-direction-card__link:after { content: "→"; color: var(--ts-accent); transition: transform .25s ease; }
.ts-direction-card:hover .ts-direction-card__link:after { transform: translateX(6px); }
.ts-direction-card__shape { position: absolute; right: -56px; top: 44px; width: 210px; height: 210px; border-radius: 50%; background: radial-gradient(circle, rgba(24,214,177,.16), transparent 68%); border: 1px solid rgba(8,18,31,.06); }
.ts-direction-card:nth-child(2n) .ts-direction-card__shape { background: radial-gradient(circle, rgba(88,166,255,.17), transparent 68%); }
.ts-direction-card:nth-child(3n) .ts-direction-card__shape { background: radial-gradient(circle, rgba(143,124,255,.16), transparent 68%); }

.ts-case-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); color: #fff; padding: 30px; min-height: 310px; position: relative; overflow: hidden; }
.ts-case-card h3 { color: #fff; font-size: 30px; line-height: 1.06; letter-spacing: -.045em; }
.ts-case-card p { color: rgba(234,242,255,.63); }
.ts-case-card__tag { display: inline-flex; border-radius: 999px; padding: 7px 12px; background: rgba(255,255,255,.08); color: rgba(234,242,255,.72); font-weight: 750; font-size: 12px; }
.ts-case-card:after { content: ""; position: absolute; inset: auto -80px -100px auto; width: 230px; height: 230px; border-radius: 50%; background: radial-gradient(circle, rgba(24,214,177,.18), transparent 70%); }

.ts-price-card { background: #fff; padding: 34px; min-height: 330px; }
.ts-price-card--accent { background: var(--ts-night); color: #fff; border-color: rgba(255,255,255,.12); }
.ts-price-card h3 { font-size: 30px; line-height: 1.06; letter-spacing: -.045em; }
.ts-price-card__value { display: block; margin: 28px 0 16px; font-size: 44px; line-height: 1; letter-spacing: -.06em; font-weight: 900; }
.ts-price-card p { color: var(--ts-muted-dark); }
.ts-price-card--accent p { color: rgba(234,242,255,.62); }
.ts-list { margin-top: 22px; }
.ts-list > li { color: inherit; opacity: .75; }
.ts-list > li:before { color: var(--ts-accent) !important; }

.ts-news-row { border-top: 1px solid var(--ts-line-dark); }
.ts-news-item { padding: 28px 0; border-bottom: 1px solid var(--ts-line-dark); display: grid; grid-template-columns: 150px 1fr auto; gap: 24px; align-items: center; }
.ts-news-date { color: var(--ts-muted-dark); font-weight: 850; }
.ts-news-title { font-size: clamp(22px, 2vw, 30px); line-height: 1.08; letter-spacing: -.04em; font-weight: 850; }
.ts-news-more { color: var(--ts-accent); font-size: 24px; }

.ts-cta-panel {
    position: relative;
    overflow: hidden;
    border-radius: clamp(28px, 5vw, 58px);
    color: #fff;
    padding: clamp(32px, 6vw, 74px);
    background:
        radial-gradient(circle at 88% 20%, rgba(24,214,177,.24), transparent 26vw),
        linear-gradient(135deg, #05080d, #0b1d32);
    box-shadow: var(--ts-shadow);
}
.ts-cta-panel:before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px); background-size: 70px 70px; opacity: .34; }
.ts-cta-panel > * { position: relative; z-index: 1; }

/* Inner pages */
.ts-page-hero { padding-top: 132px; }
.ts-page-title { color: #fff; max-width: 980px; margin-top: 22px; }
.ts-service-lead { font-size: clamp(20px, 2.4vw, 30px); line-height: 1.25; letter-spacing: -.04em; font-weight: 800; }
.ts-service-grid-title { font-size: 24px; line-height: 1.1; letter-spacing: -.035em; }
.ts-contact-panel { background: #fff; border-radius: var(--ts-radius); padding: clamp(28px,4vw,48px); box-shadow: var(--ts-shadow-soft); border: 1px solid var(--ts-line-dark); }
.ts-form input,
.ts-form textarea,
.ts-form select { border-radius: 18px; border-color: rgba(8,18,31,.12); min-height: 54px; }
.ts-form textarea { min-height: 148px; }

/* Footer */
.ts-footer { background: var(--ts-black); color: rgba(234,242,255,.62); overflow: hidden; }
.ts-footer:before { content: ""; position: absolute; width: 680px; height: 680px; right: -260px; top: -260px; border-radius: 50%; background: radial-gradient(circle, rgba(24,214,177,.16), transparent 70%); }
.ts-footer-title { color: #fff; font-size: 18px; font-weight: 850; letter-spacing: -.015em; margin-bottom: 24px; }
.ts-footer-text { max-width: 440px; }
.ts-footer-menu a { color: rgba(234,242,255,.62); }
.ts-footer-menu a:hover { color: var(--ts-accent); }
.ts-footer-bottom { border-top: 1px solid rgba(255,255,255,.10); margin-top: 58px; padding-top: 26px; font-size: 14px; }
.ts-footer-links { display: inline-flex; align-items: center; gap: 22px; }
.ts-footer-links a,
.ts-footer-cookie-settings { color: rgba(234,242,255,.62); }
.ts-footer-cookie-settings {
    padding: 0;
    border: 0;
    font: inherit;
    background: transparent;
    cursor: pointer;
}
.ts-footer-links a:hover,
.ts-footer-cookie-settings:hover { color: var(--ts-accent); }
.ts-offcanvas { background: #05080d; }
.ts-offcanvas .ts-nav { display: block; }
.ts-offcanvas .ts-nav > li > a { min-height: auto; color: #fff; justify-content: flex-start; padding: 14px 0; font-size: 18px; }
.ts-offcanvas .ts-nav > li > a:after { display: none; }
.ts-mobile-contact a { color: #fff; font-weight: 850; }

/* Reveal animations */
.ts-reveal { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.8,.2,1); }
.ts-reveal.ts-visible { opacity: 1; transform: translate3d(0, 0, 0); }
.ts-reveal:nth-child(2) { transition-delay: .08s; }
.ts-reveal:nth-child(3) { transition-delay: .14s; }
.ts-reveal:nth-child(4) { transition-delay: .20s; }

@media (prefers-reduced-motion: reduce) {
    *, *:before, *:after { animation: none !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
    .ts-preloader { display: none; }
    .ts-reveal { opacity: 1; transform: none; }
}

@media (max-width: 1199px) {
    .ts-navbar { min-height: 78px; }
    .ts-logo { min-height: 78px; }
    .ts-logo img { max-width: 210px; }
    .ts-hero-card { min-height: 450px; }
}
@media (max-width: 959px) {
    .ts-hero { min-height: auto; padding-top: 118px; }
    .ts-title-xl { font-size: clamp(44px, 13vw, 78px); }
    .ts-hero-card { min-height: 380px; margin-top: 32px; }
    .ts-news-item { grid-template-columns: 1fr; gap: 8px; }
    .ts-page-hero { padding-top: 116px; }
}
@media (max-width: 639px) {
    .ts-navbar { padding-inline: 10px; }
    .ts-logo img { max-width: 184px; }
    .ts-button, .uk-button.ts-button { width: 100%; }
    .ts-hero-card { min-height: 340px; border-radius: 26px; }
    .ts-console { left: 14px; right: 14px; bottom: 14px; padding: 16px; }
    .ts-console__line { font-size: 11px; }
    .ts-direction-card { min-height: 320px; }
}
/* Backward compatibility for default Bitrix/UIkit blocks */
.ts-card,
.uk-card.ts-card { border-radius: var(--ts-radius); border: 1px solid var(--ts-line-dark); background: #fff; box-shadow: var(--ts-shadow-soft); }
.ts-icon { width: 48px; height: 48px; border-radius: 16px; display: grid; place-items: center; color: #061018; background: linear-gradient(135deg, var(--ts-accent), var(--ts-warn)); font-weight: 900; margin-bottom: 22px; }
.uk-button.ts-button-primary,
.ts-button-primary { border-radius: 999px; background: linear-gradient(135deg, var(--ts-accent), var(--ts-warn)); color: #061018; border: 0; font-weight: 850; text-transform: none; }
.ts-side-sticky { position: sticky; top: 118px; }
@media (max-width: 959px) { .ts-side-sticky { position: static; } }

/* === v3: condensed typography, fixed readable header, stronger intro animation === */
:root {
    --ts-font-base: Manrope, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    --ts-font-condensed: "Roboto Condensed", "Arial Narrow", Manrope, system-ui, sans-serif;
}
body.ts-body {
    font-family: var(--ts-font-base);
    background: #f4f7fb;
}
.ts-title-xl,
.ts-title-lg,
.ts-page-title,
.ts-section-title,
.ts-mission-text,
.ts-logo,
.ts-nav > li > a,
.ts-button,
.uk-button.ts-button,
.ts-stat__value,
.ts-preloader__brand,
.ts-preloader__kicker,
.ts-preloader__meta,
.ts-hero__techline {
    font-family: var(--ts-font-condensed);
}

/* Header: the previous transparent header was white-on-light before the hero.
   Keep it dark/glass at the top and while scrolling. */
.ts-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 980;
    background:
        linear-gradient(90deg, rgba(5, 8, 13, .92), rgba(6, 19, 28, .78)),
        rgba(5, 8, 13, .78);
    backdrop-filter: blur(22px) saturate(145%);
    -webkit-backdrop-filter: blur(22px) saturate(145%);
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    box-shadow: 0 18px 46px rgba(0, 0, 0, .14);
}
.ts-header:before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 8% 35%, rgba(24, 214, 177, .22), transparent 18rem),
        linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 100%);
    background-size: auto, 76px 100%;
    opacity: .82;
}
.ts-header .uk-container,
.ts-header .ts-navbar { position: relative; z-index: 1; }
.ts-header--sticky {
    background:
        linear-gradient(90deg, rgba(5, 8, 13, .96), rgba(7, 19, 31, .86)),
        rgba(5, 8, 13, .86);
    border-bottom-color: rgba(255, 255, 255, .14);
    box-shadow: 0 18px 46px rgba(0, 0, 0, .18);
}
.ts-navbar {
    min-height: 78px;
    padding-inline: clamp(12px, 2.5vw, 40px);
}
.ts-logo {
    min-height: 78px;
    padding-left: 0;
    padding-right: clamp(12px, 1.8vw, 22px);
}
.ts-logo img {
    max-width: clamp(172px, 11vw, 208px);
    height: auto;
}
.ts-logo__light { display: block !important; }
.ts-logo__dark,
.ts-header--sticky .ts-logo__dark { display: none !important; }
.ts-header--sticky .ts-logo__light { display: block !important; }
.ts-nav {
    gap: clamp(2px, .4vw, 8px);
}
.ts-nav > li > a {
    min-height: 78px;
    padding: 0 clamp(7px, .75vw, 13px) !important;
    color: rgba(255, 255, 255, .78);
    font-size: clamp(12px, .68vw, 14px);
    line-height: 1;
    font-weight: 700;
    letter-spacing: .025em;
    text-transform: uppercase;
    white-space: nowrap;
}
.ts-nav > li > a:after {
    left: 11px;
    right: 11px;
    bottom: 19px;
    height: 2px;
    border-radius: 99px;
    background: linear-gradient(90deg, var(--ts-accent), var(--ts-warn));
}
.ts-nav > li.uk-active > a,
.ts-nav > li > a:hover,
.ts-header--sticky .ts-nav > li.uk-active > a,
.ts-header--sticky .ts-nav > li > a:hover { color: #fff; }
.ts-header--sticky .ts-nav > li > a { color: rgba(255,255,255,.78); }
.ts-header-contact a,
.ts-header--sticky .ts-header-contact a {
    color: #fff;
    font-family: var(--ts-font-condensed);
    font-size: 16px;
    letter-spacing: .02em;
}
.ts-menu-toggle,
.ts-header--sticky .ts-menu-toggle { color: #fff; }
.ts-header .ts-button--ghost,
.ts-header--sticky .ts-button--ghost {
    min-height: 44px;
    padding: 0 clamp(16px, 1.6vw, 24px);
    color: #fff;
    border-color: rgba(255,255,255,.18);
    background: rgba(255,255,255,.06);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.ts-header .ts-button--ghost:hover {
    border-color: rgba(24,214,177,.55);
    background: rgba(24,214,177,.10);
}
@media (max-width: 1439px) {
    .ts-header-contact { display: none !important; }
    .ts-logo img { max-width: 176px; }
    .ts-navbar { padding-inline: 16px; }
    .ts-nav > li > a { font-size: 12px; padding-inline: 8px !important; }
}
@media (max-width: 1199px) {
    .ts-navbar,
    .ts-logo,
    .ts-nav > li > a { min-height: 72px; }
    .ts-logo img { max-width: 178px; }
}

/* Strong first-screen loader / intro */
.ts-preloader {
    background:
        radial-gradient(circle at 12% 24%, rgba(24, 214, 177, .22), transparent 26rem),
        radial-gradient(circle at 82% 70%, rgba(88, 166, 255, .20), transparent 30rem),
        #05080d;
    overflow: hidden;
}
.ts-preloader__grid {
    position: absolute;
    inset: -2px;
    background-image:
        linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
    background-size: 70px 70px;
    mask-image: radial-gradient(circle at 50% 45%, #000 0, transparent 72%);
    animation: ts-grid-move 12s linear infinite;
    opacity: .48;
}
.ts-preloader__scan {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent, rgba(24,214,177,.16), transparent);
    height: 28vh;
    top: -30vh;
    animation: ts-scan 1.65s cubic-bezier(.64, 0, .18, 1) infinite;
    filter: blur(.2px);
}
.ts-preloader__orbit {
    position: absolute;
    width: min(54vw, 720px);
    aspect-ratio: 1;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: inset 0 0 80px rgba(24,214,177,.055);
    animation: ts-preloader-orbit 18s linear infinite;
}
.ts-preloader__orbit:before,
.ts-preloader__orbit:after {
    content: "";
    position: absolute;
    inset: 12%;
    border-radius: inherit;
    border: 1px solid rgba(255,255,255,.08);
}
.ts-preloader__orbit:after { inset: 30%; }
.ts-preloader__orbit i {
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    left: calc(50% - 5px);
    top: -5px;
    background: var(--ts-accent);
    box-shadow: 0 0 24px rgba(24,214,177,.9);
    transform-origin: 5px calc(min(54vw, 720px) / 2 + 5px);
}
.ts-preloader__orbit i:nth-child(2) { top: calc(100% - 5px); background: var(--ts-accent-2); box-shadow: 0 0 24px rgba(88,166,255,.9); }
.ts-preloader__orbit i:nth-child(3) { left: auto; right: -5px; top: calc(50% - 5px); background: var(--ts-warn); box-shadow: 0 0 24px rgba(232,255,95,.8); }
.ts-preloader__inner {
    width: min(840px, 84vw);
    text-align: left;
    transform: translateY(-2vh);
}
.ts-preloader__kicker {
    color: var(--ts-accent);
    font-size: clamp(15px, 1.5vw, 22px);
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
    margin-bottom: 16px;
}
.ts-preloader__brand {
    font-size: clamp(48px, 10vw, 132px);
    line-height: .82;
    letter-spacing: -.06em;
    font-weight: 900;
    text-transform: uppercase;
    max-width: 880px;
}
.ts-preloader__subtitle {
    margin-top: 22px;
    color: rgba(234,242,255,.68);
    font-size: clamp(16px, 1.5vw, 22px);
}
.ts-preloader__line {
    margin-top: clamp(28px, 4vw, 52px);
    height: 3px;
    border-radius: 99px;
    background: rgba(255, 255, 255, .13);
}
.ts-preloader__line span {
    background: linear-gradient(90deg, var(--ts-accent), var(--ts-accent-2), var(--ts-warn));
    box-shadow: 0 0 32px rgba(24,214,177,.34);
}
.ts-preloader__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 14px;
    color: rgba(234,242,255,.50);
    font-size: 18px;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.ts-preloader__meta strong { color: #fff; font-size: clamp(24px, 2.8vw, 42px); letter-spacing: -.02em; }
@keyframes ts-grid-move { to { background-position: 70px 70px, 70px 70px; } }
@keyframes ts-scan { 0% { transform: translateY(0); opacity: 0; } 12% { opacity: 1; } 100% { transform: translateY(130vh); opacity: 0; } }
@keyframes ts-preloader-orbit { to { transform: rotate(360deg); } }

/* Hero: richer motion layer */
.ts-hero {
    padding-top: clamp(122px, 9vw, 172px);
    min-height: 100svh;
    background:
        radial-gradient(circle at 78% 26%, rgba(24, 214, 177, .25), transparent 28vw),
        radial-gradient(circle at 20% 82%, rgba(88, 166, 255, .17), transparent 36vw),
        linear-gradient(135deg, #05080d 0%, #07101b 48%, #06212b 100%);
}
.ts-hero:before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255,255,255,.042) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.032) 1px, transparent 1px);
    background-size: 96px 96px;
    mask-image: linear-gradient(180deg, #000 0, rgba(0,0,0,.78) 52%, transparent 100%);
    opacity: .9;
    animation: ts-hero-grid 16s linear infinite;
}
.ts-hero:after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(120deg, transparent 20%, rgba(24,214,177,.13) 48%, transparent 76%);
    transform: translateX(-120%);
    animation: ts-hero-sweep 4.8s cubic-bezier(.65,0,.2,1) 1.15s infinite;
}
.ts-hero-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: .72;
    pointer-events: none;
    mix-blend-mode: screen;
}
.ts-title-xl {
    font-size: clamp(56px, 8.4vw, 148px);
    line-height: .82;
    letter-spacing: -.055em;
    font-weight: 900;
    max-width: 1120px;
    text-transform: none;
    text-wrap: balance;
}
.ts-title-lg,
.ts-page-title,
.ts-section-title,
.ts-mission-text {
    letter-spacing: -.048em;
}
.ts-lead {
    max-width: 760px;
}
.ts-hero__techline {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 26px;
}
.ts-hero__techline span {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 999px;
    color: rgba(234,242,255,.72);
    background: rgba(255,255,255,.045);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    backdrop-filter: blur(10px);
}
.ts-hero-card {
    background:
        radial-gradient(circle at 50% 36%, rgba(24,214,177,.17), transparent 44%),
        linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.025));
}
.ts-hero-card:before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(120deg, transparent, rgba(255,255,255,.12), transparent);
    transform: translateX(-120%);
    animation: ts-card-shine 5s cubic-bezier(.65,0,.2,1) infinite;
    pointer-events: none;
}
@keyframes ts-hero-grid { to { background-position: 96px 96px, 96px 96px; } }
@keyframes ts-hero-sweep { 0% { transform: translateX(-130%); opacity: 0; } 18% { opacity: 1; } 54%, 100% { transform: translateX(130%); opacity: 0; } }
@keyframes ts-card-shine { 0%, 46% { transform: translateX(-130%); opacity: 0; } 62% { opacity: 1; } 100% { transform: translateX(130%); opacity: 0; } }

@media (max-width: 1199px) {
    .ts-title-xl { font-size: clamp(50px, 11vw, 104px); }
    .ts-hero { padding-top: 112px; }
}
@media (max-width: 639px) {
    .ts-title-xl { font-size: clamp(46px, 16vw, 72px); line-height: .9; }
    .ts-hero__techline span { font-size: 12px; min-height: 30px; }
    .ts-preloader__brand { font-size: clamp(42px, 16vw, 76px); }
    .ts-preloader__orbit { width: 88vw; }
}



/* v165: shared logo/header fixes and global UI affordances extracted from later versions. */
/* v139: logo PNG should not inherit browser attr(width)/attr(height) aspect ratio.
   Width/height attributes were removed in templates; this rule is a safety override. */
.ts-logo img,
.ts-footer-logo img,
.ts-offcanvas img[alt="Тест-сервис"],
.ts-hero-code-icon__mark {
    aspect-ratio: auto !important;
    height: auto !important;
    object-fit: contain;
}
/* v143: compact desktop header menu layout.
   UIKit .uk-navbar-center is absolute-centered and may overlap the phone/CTA on wide-but-not-huge screens.
   The menu is now a normal flexible center column between the logo and the right controls. */
@media (min-width: 1200px) {
    .ts-header .ts-navbar {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: clamp(10px, 1.1vw, 22px) !important;
        padding-inline: clamp(8px, 1.4vw, 24px) !important;
    }

    .ts-navbar .uk-navbar-left,
    .ts-navbar .uk-navbar-right,
    .ts-navbar .ts-navbar-menu {
        position: static !important;
        transform: none !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
    }

    .ts-navbar .ts-navbar-menu {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 1 1 auto !important;
        min-width: 0 !important;
        margin-inline: 0 !important;
    }

    .ts-navbar .uk-navbar-left:first-child,
    .ts-navbar .uk-navbar-right {
        flex: 0 0 auto !important;
    }

    .ts-navbar .uk-navbar-right {
        margin-left: 0 !important;
        gap: clamp(8px, .75vw, 14px) !important;
        white-space: nowrap !important;
    }

    .ts-logo {
        padding-right: clamp(8px, 1vw, 16px) !important;
    }

    .ts-logo img {
        max-width: clamp(178px, 12vw, 218px) !important;
        width: 100% !important;
        height: auto !important;
    }

    .ts-navbar .ts-nav,
    .ts-navbar-menu .ts-nav {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-wrap: nowrap !important;
        gap: 0 !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    .ts-navbar .ts-nav > li > a,
    .ts-navbar-menu .ts-nav > li > a {
        padding-inline: clamp(5px, .48vw, 10px) !important;
        font-size: clamp(10.5px, .62vw, 12.5px) !important;
        letter-spacing: .018em !important;
        white-space: nowrap !important;
    }

    .ts-header-contact,
    .ts-header-contact a,
    .ts-header--sticky .ts-header-contact a {
        white-space: nowrap !important;
    }

    .ts-header-contact a,
    .ts-header--sticky .ts-header-contact a {
        font-size: clamp(14px, .86vw, 17px) !important;
        padding-inline: 0 !important;
    }

    .ts-header .ts-button--ghost,
    .ts-header--sticky .ts-button--ghost {
        min-width: 148px !important;
        padding-inline: clamp(14px, 1vw, 18px) !important;
        font-size: 14px !important;
    }
}

@media (min-width: 1200px) and (max-width: 1500px) {
    .ts-header .ts-navbar {
        gap: 10px !important;
        padding-inline: 8px !important;
    }
    .ts-logo img {
        max-width: 186px !important;
    }
    .ts-navbar .ts-nav > li > a,
    .ts-navbar-menu .ts-nav > li > a {
        padding-inline: 5px !important;
        font-size: 10.5px !important;
    }
    .ts-header .ts-button--ghost,
    .ts-header--sticky .ts-button--ghost {
        min-width: 136px !important;
        padding-inline: 12px !important;
        font-size: 13px !important;
    }
}


/* v146: align header content with the rest of uk-container-large content.
   Remove extra navbar/logo side paddings added on top of the container padding. */
.ts-header .ts-navbar {
    padding-inline: 0 !important;
}

.ts-header .uk-navbar-item.ts-logo,
.ts-header .ts-logo {
    padding-left: 0 !important;
}

.ts-header .uk-navbar-right {
    padding-right: 0 !important;
}

@media (min-width: 1200px) {
    .ts-header .ts-navbar {
        padding-inline: 0 !important;
    }

    .ts-header .uk-navbar-item.ts-logo,
    .ts-header .ts-logo {
        padding-left: 0 !important;
    }

    .ts-header .uk-navbar-right {
        padding-right: 0 !important;
    }
}

@media (min-width: 1200px) and (max-width: 1500px) {
    .ts-header .ts-navbar {
        padding-inline: 0 !important;
    }
}


/* v147 sticky CTA sidebar fix */
.ts-service-aside {
    align-self: flex-start;
}

.ts-service-aside__card {
    min-height: auto !important;
    height: auto !important;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.ts-service-aside__card .ts-button {
    margin-top: 22px !important;
}

@media (min-width: 960px) {
    .ts-service-aside__card.ts-side-sticky {
        position: sticky;
        top: 118px;
    }
}

@media (max-width: 959px) {
    .ts-service-aside,
    .ts-service-aside__card.ts-side-sticky {
        position: static;
    }
}


/* v148: service-page sidebar should move with viewport like main-page sticky block */
@media (min-width: 960px) {
    .ts-service-page .ts-service-aside {
        position: sticky !important;
        top: 118px !important;
        align-self: flex-start !important;
        height: max-content !important;
        z-index: 2;
    }

    .ts-service-page .ts-service-aside__card,
    .ts-service-page .ts-service-aside__card.ts-side-sticky {
        position: relative !important;
        top: auto !important;
    }
}

@media (max-width: 959px) {
    .ts-service-page .ts-service-aside,
    .ts-service-page .ts-service-aside__card,
    .ts-service-page .ts-service-aside__card.ts-side-sticky {
        position: static !important;
        top: auto !important;
    }
}




/* v165: unified tag/meta-pill style across the whole site */
.ts-tags,
.ts-case-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ts-tag,
.ts-case-tags span,
.ts-stack-chip,
.ts-case-v151-info li,
.ts-sx-tech span,
.ts-sx-map__grid span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 30px;
    padding: 6px 11px;
    border-radius: 999px;
    color: rgba(234,242,255,.66) !important;
    background: rgba(255,255,255,.045) !important;
    border: 1px dashed rgba(234,242,255,.22) !important;
    box-shadow: none !important;
    font-family: var(--ts-font-condensed);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .045em;
    text-transform: uppercase;
    cursor: default !important;
    transform: none !important;
    transition: none !important;
}

.ts-section--white .ts-tag,
.ts-section--white .ts-case-tags span,
.ts-section--white .ts-stack-chip,
.ts-service-page .ts-tag,
.ts-service-page .ts-case-tags span,
.ts-service-page .ts-stack-chip {
    color: rgba(13,22,36,.62) !important;
    background: rgba(8,18,31,.035) !important;
    border-color: rgba(8,18,31,.16) !important;
}

.ts-tag::before,
.ts-case-tags span::before,
.ts-stack-chip::before,
.ts-case-v151-info li::before {
    content: "#";
    color: var(--ts-accent);
    opacity: .95;
    margin-right: 1px;
}

.ts-case-tags span:hover,
.ts-stack-chip:hover,
.ts-case-v151-info li:hover,
.ts-tag:hover {
    color: rgba(234,242,255,.66) !important;
    background: rgba(255,255,255,.045) !important;
    border-color: rgba(234,242,255,.22) !important;
    box-shadow: none !important;
    transform: none !important;
}

.ts-section--white .ts-case-tags span:hover,
.ts-section--white .ts-stack-chip:hover,
.ts-service-page .ts-case-tags span:hover,
.ts-service-page .ts-stack-chip:hover {
    color: rgba(13,22,36,.62) !important;
    background: rgba(8,18,31,.035) !important;
    border-color: rgba(8,18,31,.16) !important;
}

/* v165: informational chips/stats are not buttons */
.ts-case-v151-stats span,
.ts-price-card__top,
.ts-feature-card,
.ts-process-card,
.ts-content-card,
.ts-service-lead-card,
.ts-dark-cta,
.ts-big-checklist {
    cursor: default !important;
}

.ts-case-v151-stats span:hover {
    transform: none !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06) !important;
}

/* v165: real clickable elements keep pointer cursor */
a,
button,
.ts-button,
.ts-case-v151-tab,
.ts-case-browser__tab {
    cursor: pointer;
}


/* v166: non-clickable service cards have no hover selectors */
.ts-service-page .ts-feature-card,
.ts-service-page .ts-process-card,
.ts-service-page .ts-content-card,
.ts-service-page .ts-service-lead-card,
.ts-service-page .ts-dark-cta,
.ts-service-page .ts-big-checklist {
    cursor: default !important;
}

.ts-service-page .ts-feature-card,
.ts-service-page .ts-process-card {
    transition: none !important;
}


/* v167: unified block heading typography */
.ts-service-page .ts-feature-card h3,
.ts-service-page .ts-process-card h3,
.ts-service-page .ts-content-card h3,
.ts-service-page .ts-service-lead-card h2,
.ts-service-page .ts-service-lead-card h3,
.ts-service-page .ts-dark-cta h2,
.ts-service-page .ts-price-card h3,
.ts-case-v151-info h2,
.ts-case-v151-info h3,
.ts-cases-v158-card h2,
.ts-cases-v158-card h3 {
    font-family: var(--ts-font-condensed) !important;
    font-weight: 800 !important;
    line-height: .98 !important;
    letter-spacing: -.045em !important;
}

/* v167: dark sticky CTA heading must be readable */
.ts-service-page .ts-service-aside__card,
.ts-service-page .ts-side-sticky,
.ts-service-page .ts-price-card--accent {
    color: #fff !important;
}

.ts-service-page .ts-service-aside__card h2,
.ts-service-page .ts-service-aside__card h3,
.ts-service-page .ts-service-aside__card .ts-price-card__title,
.ts-service-page .ts-side-sticky h2,
.ts-service-page .ts-side-sticky h3,
.ts-service-page .ts-price-card--accent h2,
.ts-service-page .ts-price-card--accent h3 {
    color: #fff !important;
    opacity: 1 !important;
}

.ts-service-page .ts-service-aside__card p,
.ts-service-page .ts-side-sticky p,
.ts-service-page .ts-price-card--accent p {
    color: rgba(234,242,255,.70) !important;
}

/* v167: keep meta tags visually identical everywhere */
.ts-case-tags span,
.ts-stack-chip,
.ts-tag,
.ts-case-v151-info li {
    border-style: dashed !important;
    cursor: default !important;
}


/* v172: fixed mobile header/offcanvas layout */
@media (max-width: 1199px) {
    .ts-header {
        z-index: 990;
    }

    .ts-header .uk-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .ts-navbar {
        min-height: 72px !important;
        padding-inline: 0 !important;
    }

    .ts-logo,
    .uk-navbar-item.ts-logo {
        min-height: 72px !important;
        padding: 0 !important;
    }

    .ts-logo img {
        width: auto !important;
        max-width: 184px !important;
        max-height: 46px !important;
        object-fit: contain !important;
    }

    .ts-menu-toggle.uk-navbar-toggle {
        min-width: 46px !important;
        min-height: 46px !important;
        padding: 0 !important;
        color: #fff !important;
        border: 1px solid rgba(255,255,255,.12);
        border-radius: 999px;
        background: rgba(255,255,255,.055);
    }

    .ts-header--sticky .ts-menu-toggle.uk-navbar-toggle {
        color: var(--ts-ink) !important;
        border-color: rgba(8,18,31,.12);
        background: rgba(8,18,31,.04);
    }

    #ts-mobile-menu.uk-open {
        z-index: 2000;
    }

    #ts-mobile-menu .uk-offcanvas-bar,
    .ts-mobile-offcanvas .uk-offcanvas-bar,
    .ts-offcanvas {
        width: min(88vw, 390px) !important;
        max-width: 390px !important;
        min-width: min(88vw, 320px) !important;
        box-sizing: border-box !important;
        padding: 26px 24px 30px !important;
        overflow-x: hidden !important;
        color: #fff !important;
        background:
            radial-gradient(circle at 20% 0, rgba(24,214,177,.25), transparent 190px),
            linear-gradient(180deg, #07111f 0%, #05080d 100%) !important;
        box-shadow: -28px 0 80px rgba(0,0,0,.42);
    }

    .ts-offcanvas .uk-offcanvas-close {
        top: 18px !important;
        right: 18px !important;
        color: rgba(255,255,255,.72) !important;
    }

    .ts-offcanvas img {
        display: block !important;
        width: auto !important;
        max-width: 190px !important;
        max-height: 58px !important;
        object-fit: contain !important;
    }

    .ts-offcanvas .ts-nav,
    .ts-offcanvas .uk-navbar-nav {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 6px !important;
        width: 100% !important;
        margin: 20px 0 0 !important;
        padding: 0 !important;
        list-style: none !important;
    }

    .ts-offcanvas .ts-nav > li,
    .ts-offcanvas .uk-navbar-nav > li {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .ts-offcanvas .ts-nav > li > a,
    .ts-offcanvas .uk-navbar-nav > li > a {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        width: 100% !important;
        min-height: 42px !important;
        padding: 0 0 !important;
        color: rgba(255,255,255,.82) !important;
        font-family: var(--ts-font-condensed) !important;
        font-size: 18px !important;
        line-height: 1.1 !important;
        font-weight: 850 !important;
        letter-spacing: .025em !important;
        text-transform: uppercase !important;
        white-space: nowrap !important;
        background: transparent !important;
    }

    .ts-offcanvas .ts-nav > li > a:after,
    .ts-offcanvas .uk-navbar-nav > li > a:after,
    .ts-offcanvas .uk-navbar-nav > li > a:before {
        display: none !important;
    }

    .ts-offcanvas .ts-nav > li.uk-active > a,
    .ts-offcanvas .uk-navbar-nav > li.uk-active > a,
    .ts-offcanvas .ts-nav > li > a:hover,
    .ts-offcanvas .uk-navbar-nav > li > a:hover {
        color: #fff !important;
    }

    .ts-mobile-contact {
        margin-top: 22px !important;
    }

    .ts-mobile-contact a {
        display: inline-flex !important;
        color: #fff !important;
        font-family: var(--ts-font-condensed) !important;
        font-size: 19px !important;
        font-weight: 850 !important;
        text-decoration: none !important;
        white-space: nowrap !important;
    }

    .ts-offcanvas .ts-button {
        width: 100% !important;
        min-height: 48px !important;
        margin-top: 18px !important;
        padding-inline: 18px !important;
        font-size: 14px !important;
    }
}

@media (max-width: 420px) {
    #ts-mobile-menu .uk-offcanvas-bar,
    .ts-mobile-offcanvas .uk-offcanvas-bar,
    .ts-offcanvas {
        width: 82vw !important;
        min-width: 300px !important;
        padding-left: 22px !important;
        padding-right: 22px !important;
    }

    .ts-logo img {
        max-width: 166px !important;
        max-height: 42px !important;
    }

    .ts-offcanvas .ts-nav > li > a,
    .ts-offcanvas .uk-navbar-nav > li > a {
        font-size: 17px !important;
        min-height: 40px !important;
    }
}

@media (max-width: 360px) {
    #ts-mobile-menu .uk-offcanvas-bar,
    .ts-mobile-offcanvas .uk-offcanvas-bar,
    .ts-offcanvas {
        width: 86vw !important;
        min-width: 286px !important;
    }

    .ts-logo img {
        max-width: 150px !important;
    }
}


/* v173: compact mobile hamburger button */
@media (max-width: 1199px) {
    .ts-navbar .uk-navbar-right {
        display: flex !important;
        align-items: center !important;
    }

    .ts-menu-toggle,
    .ts-menu-toggle.uk-navbar-toggle,
    .uk-navbar-toggle.ts-menu-toggle {
        position: relative !important;
        align-self: center !important;
        flex: 0 0 52px !important;
        width: 52px !important;
        height: 52px !important;
        min-width: 52px !important;
        min-height: 52px !important;
        max-width: 52px !important;
        max-height: 52px !important;
        box-sizing: border-box !important;
        padding: 0 !important;
        margin: 0 0 0 12px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 18px !important;
        border: 1px solid rgba(255,255,255,.18) !important;
        background: rgba(255,255,255,.065) !important;
        box-shadow:
            inset 0 1px 0 rgba(255,255,255,.10),
            0 12px 28px rgba(0,0,0,.18) !important;
        color: #fff !important;
        overflow: hidden !important;
    }

    .ts-menu-toggle.uk-navbar-toggle svg,
    .uk-navbar-toggle.ts-menu-toggle svg {
        width: 24px !important;
        height: 24px !important;
        display: block !important;
        margin: 0 !important;
    }

    .ts-menu-toggle.uk-navbar-toggle svg line,
    .uk-navbar-toggle.ts-menu-toggle svg line {
        stroke-width: 2 !important;
    }

    .ts-header--sticky .ts-menu-toggle,
    .ts-header--sticky .ts-menu-toggle.uk-navbar-toggle,
    .ts-header--sticky .uk-navbar-toggle.ts-menu-toggle {
        color: var(--ts-ink) !important;
        border-color: rgba(8,18,31,.14) !important;
        background: rgba(8,18,31,.045) !important;
        box-shadow:
            inset 0 1px 0 rgba(255,255,255,.55),
            0 10px 24px rgba(8,18,31,.08) !important;
    }
}

@media (max-width: 420px) {
    .ts-menu-toggle,
    .ts-menu-toggle.uk-navbar-toggle,
    .uk-navbar-toggle.ts-menu-toggle {
        flex-basis: 48px !important;
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        min-height: 48px !important;
        max-width: 48px !important;
        max-height: 48px !important;
        border-radius: 16px !important;
        margin-left: 10px !important;
    }

    .ts-menu-toggle.uk-navbar-toggle svg,
    .uk-navbar-toggle.ts-menu-toggle svg {
        width: 22px !important;
        height: 22px !important;
    }
}


/* v174: final header alignment + tablet padding + stable mobile menu button */
.ts-navbar,
.ts-navbar .uk-navbar-left,
.ts-navbar .uk-navbar-right,
.ts-navbar .uk-navbar-center {
    align-items: center !important;
}

.ts-header-contact {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 92px !important;
    line-height: 1 !important;
}

.ts-header-contact a {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 48px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

/* Desktop keeps all header elements vertically centered */
@media (min-width: 1200px) {
    .ts-header .uk-container {
        padding-left: clamp(28px, 3vw, 56px) !important;
        padding-right: clamp(28px, 3vw, 56px) !important;
    }

    .ts-navbar {
        min-height: 92px !important;
    }

    .ts-navbar .uk-navbar-right {
        gap: 18px !important;
    }

    .ts-header .ts-button--ghost {
        align-self: center !important;
    }
}

/* Tablet/mobile: keep comfortable side padding and only logo + hamburger */
@media (max-width: 1199px) {
    .ts-header .uk-container {
        box-sizing: border-box !important;
        max-width: none !important;
        width: 100% !important;
        padding-left: clamp(18px, 4.5vw, 38px) !important;
        padding-right: clamp(18px, 4.5vw, 38px) !important;
    }

    .ts-navbar {
        min-height: 76px !important;
        padding-inline: 0 !important;
    }

    .ts-navbar .uk-navbar-left,
    .ts-navbar .uk-navbar-right {
        min-height: 76px !important;
    }

    .ts-navbar .uk-navbar-right {
        margin-left: auto !important;
        padding-right: 0 !important;
    }

    .ts-logo,
    .uk-navbar-item.ts-logo {
        min-height: 76px !important;
        max-height: 76px !important;
        display: inline-flex !important;
        align-items: center !important;
    }

    .ts-logo img {
        display: block !important;
        width: auto !important;
        max-width: 190px !important;
        max-height: 48px !important;
        object-fit: contain !important;
    }

    .ts-menu-toggle,
    .ts-menu-toggle.uk-navbar-toggle,
    .uk-navbar-toggle.ts-menu-toggle {
        position: relative !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        transform: none !important;
        translate: none !important;
        align-self: center !important;
        flex: 0 0 48px !important;
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        min-height: 48px !important;
        max-width: 48px !important;
        max-height: 48px !important;
        box-sizing: border-box !important;
        margin: 0 !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 16px !important;
        color: #fff !important;
        border: 1px solid rgba(255,255,255,.20) !important;
        background: rgba(255,255,255,.075) !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 10px 24px rgba(0,0,0,.16) !important;
        overflow: hidden !important;
        opacity: 1 !important;
    }

    .ts-menu-toggle.uk-navbar-toggle > span,
    .uk-navbar-toggle.ts-menu-toggle > span {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 24px !important;
        height: 24px !important;
    }

    .ts-menu-toggle.uk-navbar-toggle svg,
    .uk-navbar-toggle.ts-menu-toggle svg {
        display: block !important;
        width: 24px !important;
        height: 24px !important;
        margin: 0 !important;
    }

    .ts-header--sticky .ts-menu-toggle,
    .ts-header--sticky .ts-menu-toggle.uk-navbar-toggle,
    .ts-header--sticky .uk-navbar-toggle.ts-menu-toggle {
        color: var(--ts-ink) !important;
        border-color: rgba(8,18,31,.16) !important;
        background: rgba(255,255,255,.86) !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 10px 24px rgba(8,18,31,.10) !important;
    }
}

@media (max-width: 639px) {
    .ts-header .uk-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .ts-navbar,
    .ts-navbar .uk-navbar-left,
    .ts-navbar .uk-navbar-right {
        min-height: 72px !important;
    }

    .ts-logo,
    .uk-navbar-item.ts-logo {
        min-height: 72px !important;
        max-height: 72px !important;
    }

    .ts-logo img {
        max-width: 176px !important;
        max-height: 44px !important;
    }

    .ts-menu-toggle,
    .ts-menu-toggle.uk-navbar-toggle,
    .uk-navbar-toggle.ts-menu-toggle {
        flex-basis: 46px !important;
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
        min-height: 46px !important;
        max-width: 46px !important;
        max-height: 46px !important;
        border-radius: 15px !important;
    }
}

@media (max-width: 380px) {
    .ts-logo img {
        max-width: 154px !important;
    }

    .ts-menu-toggle,
    .ts-menu-toggle.uk-navbar-toggle,
    .uk-navbar-toggle.ts-menu-toggle {
        flex-basis: 44px !important;
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        max-width: 44px !important;
        max-height: 44px !important;
    }
}


/* v175: prevent duplicate logo images on mobile/tablet */
.ts-logo img.ts-logo__dark,
.uk-logo.ts-logo img.ts-logo__dark {
    display: none !important;
}

.ts-logo img.ts-logo__light,
.uk-logo.ts-logo img.ts-logo__light {
    display: block !important;
}

.ts-header--sticky .ts-logo img.ts-logo__light,
.ts-header--sticky .uk-logo.ts-logo img.ts-logo__light {
    display: none !important;
}

.ts-header--sticky .ts-logo img.ts-logo__dark,
.ts-header--sticky .uk-logo.ts-logo img.ts-logo__dark {
    display: block !important;
}

@media (max-width: 1199px) {
    .ts-logo,
    .uk-navbar-item.ts-logo {
        gap: 0 !important;
        overflow: hidden !important;
    }

    .ts-logo img.ts-logo__dark,
    .uk-logo.ts-logo img.ts-logo__dark {
        display: none !important;
    }

    .ts-logo img.ts-logo__light,
    .uk-logo.ts-logo img.ts-logo__light {
        display: block !important;
    }

    .ts-header--sticky .ts-logo img.ts-logo__light,
    .ts-header--sticky .uk-logo.ts-logo img.ts-logo__light {
        display: none !important;
    }

    .ts-header--sticky .ts-logo img.ts-logo__dark,
    .ts-header--sticky .uk-logo.ts-logo img.ts-logo__dark {
        display: block !important;
    }
}


/* v176: one-line mobile header: logo left, hamburger right, no phone in bar */
@media (max-width: 1199px) {
    .ts-header,
    .ts-header.uk-sticky-fixed {
        min-height: 72px !important;
        max-height: 72px !important;
        overflow: visible !important;
    }

    .ts-header > .uk-container {
        height: 72px !important;
        min-height: 72px !important;
        max-height: 72px !important;
        display: flex !important;
        align-items: center !important;
        box-sizing: border-box !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .ts-navbar,
    .uk-navbar-container.ts-navbar {
        width: 100% !important;
        height: 72px !important;
        min-height: 72px !important;
        max-height: 72px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 0 !important;
    }

    .ts-navbar .uk-navbar-left,
    .ts-navbar .uk-navbar-right {
        height: 72px !important;
        min-height: 72px !important;
        max-height: 72px !important;
        display: flex !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
    }

    .ts-navbar .uk-navbar-left {
        flex: 0 1 auto !important;
        min-width: 0 !important;
    }

    .ts-navbar .uk-navbar-right {
        flex: 0 0 auto !important;
        margin-left: auto !important;
        justify-content: flex-end !important;
        gap: 0 !important;
    }

    .ts-header .ts-header-contact,
    .ts-navbar .ts-header-contact,
    .ts-header .uk-navbar-right > .ts-header-contact,
    .ts-header .uk-navbar-right > .uk-visible\@l.ts-header-contact {
        display: none !important;
        visibility: hidden !important;
        width: 0 !important;
        height: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    .ts-header .uk-navbar-right > .ts-button--ghost,
    .ts-header .uk-navbar-right > .uk-button.ts-button--ghost {
        display: none !important;
    }

    .ts-logo,
    .uk-navbar-item.ts-logo {
        height: 72px !important;
        min-height: 72px !important;
        max-height: 72px !important;
        width: auto !important;
        min-width: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        flex: 0 1 auto !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow: hidden !important;
    }

    .ts-logo img {
        width: auto !important;
        max-width: 170px !important;
        max-height: 42px !important;
        object-fit: contain !important;
    }

    .ts-logo img.ts-logo__dark {
        display: none !important;
    }

    .ts-logo img.ts-logo__light {
        display: block !important;
    }

    .ts-header--sticky .ts-logo img.ts-logo__light {
        display: none !important;
    }

    .ts-header--sticky .ts-logo img.ts-logo__dark {
        display: block !important;
    }

    .ts-menu-toggle,
    .ts-menu-toggle.uk-navbar-toggle,
    .uk-navbar-toggle.ts-menu-toggle {
        position: static !important;
        transform: none !important;
        translate: none !important;
        flex: 0 0 44px !important;
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        max-width: 44px !important;
        max-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        align-self: center !important;
        padding: 0 !important;
        margin: 0 !important;
        border-radius: 14px !important;
        border: 1px solid rgba(255,255,255,.20) !important;
        color: #fff !important;
        background: rgba(255,255,255,.075) !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 8px 20px rgba(0,0,0,.16) !important;
        opacity: 1 !important;
        overflow: hidden !important;
    }

    .ts-menu-toggle.uk-navbar-toggle > span,
    .uk-navbar-toggle.ts-menu-toggle > span,
    .ts-menu-toggle.uk-navbar-toggle svg,
    .uk-navbar-toggle.ts-menu-toggle svg {
        width: 22px !important;
        height: 22px !important;
        margin: 0 !important;
        display: block !important;
    }

    .ts-page-hero,
    .ts-contact-hero,
    .ts-case-v151-hero,
    .ts-cases-v158,
    .ts-service-page > .ts-section:first-child,
    .ts-main > section:first-child {
        scroll-margin-top: 72px !important;
    }
}

@media (max-width: 380px) {
    .ts-header > .uk-container {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .ts-logo img {
        max-width: 156px !important;
        max-height: 40px !important;
    }

    .ts-menu-toggle,
    .ts-menu-toggle.uk-navbar-toggle,
    .uk-navbar-toggle.ts-menu-toggle {
        flex-basis: 42px !important;
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        min-height: 42px !important;
        max-width: 42px !important;
        max-height: 42px !important;
        border-radius: 13px !important;
    }
}


/* v177: mobile header must show only logo + hamburger */
@media (max-width: 1199px) {
    .ts-header .ts-navbar-menu,
    .ts-header .uk-visible\@l.ts-navbar-menu,
    .ts-navbar > .ts-navbar-menu,
    .ts-navbar > .uk-navbar-left.ts-navbar-menu {
        display: none !important;
        visibility: hidden !important;
        width: 0 !important;
        height: 0 !important;
        min-width: 0 !important;
        min-height: 0 !important;
        max-width: 0 !important;
        max-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        pointer-events: none !important;
    }

    .ts-navbar {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        column-gap: 14px !important;
        align-items: center !important;
    }

    .ts-navbar > .uk-navbar-left:first-child {
        display: flex !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .ts-navbar > .uk-navbar-right {
        display: flex !important;
        justify-content: flex-end !important;
        min-width: 44px !important;
        grid-column: 2 !important;
    }

    .ts-logo,
    .uk-navbar-item.ts-logo {
        max-width: 100% !important;
        overflow: visible !important;
    }

    .ts-logo img {
        width: auto !important;
        max-width: min(218px, calc(100vw - 100px)) !important;
        max-height: 48px !important;
        object-fit: contain !important;
    }

    .ts-logo img.ts-logo__light {
        display: block !important;
    }

    .ts-logo img.ts-logo__dark {
        display: none !important;
    }

    .ts-header--sticky .ts-logo img.ts-logo__light {
        display: none !important;
    }

    .ts-header--sticky .ts-logo img.ts-logo__dark {
        display: block !important;
    }
}

@media (max-width: 380px) {
    .ts-navbar {
        column-gap: 10px !important;
    }

    .ts-logo img {
        max-width: min(198px, calc(100vw - 92px)) !important;
    }
}

@media (max-width: 340px) {
    .ts-logo img {
        max-width: min(176px, calc(100vw - 88px)) !important;
    }
}


/* v178: mobile sticky header keeps the light logo */
@media (max-width: 1199px) {
    .ts-header,
    .ts-header.ts-header--sticky,
    .ts-header.uk-sticky-fixed,
    .ts-header.uk-sticky-fixed.ts-header--sticky {
        background:
            linear-gradient(90deg, rgba(5, 8, 13, .94), rgba(6, 19, 28, .86)),
            rgba(5, 8, 13, .88) !important;
        border-bottom-color: rgba(255,255,255,.12) !important;
    }

    .ts-header .ts-logo img.ts-logo__light,
    .ts-header.uk-sticky-fixed .ts-logo img.ts-logo__light,
    .ts-header.ts-header--sticky .ts-logo img.ts-logo__light,
    .ts-header.uk-sticky-fixed.ts-header--sticky .ts-logo img.ts-logo__light {
        display: block !important;
    }

    .ts-header .ts-logo img.ts-logo__dark,
    .ts-header.uk-sticky-fixed .ts-logo img.ts-logo__dark,
    .ts-header.ts-header--sticky .ts-logo img.ts-logo__dark,
    .ts-header.uk-sticky-fixed.ts-header--sticky .ts-logo img.ts-logo__dark {
        display: none !important;
    }

    .ts-header.ts-header--sticky .ts-menu-toggle,
    .ts-header.ts-header--sticky .ts-menu-toggle.uk-navbar-toggle,
    .ts-header.uk-sticky-fixed .ts-menu-toggle,
    .ts-header.uk-sticky-fixed .ts-menu-toggle.uk-navbar-toggle {
        color: #fff !important;
        border-color: rgba(255,255,255,.20) !important;
        background: rgba(255,255,255,.075) !important;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 8px 20px rgba(0,0,0,.16) !important;
    }
}


/* v179: header always uses the light logo because the header background is dark on desktop and mobile */
.ts-header .ts-logo img.ts-logo__light,
.ts-header.uk-sticky-fixed .ts-logo img.ts-logo__light,
.ts-header.ts-header--sticky .ts-logo img.ts-logo__light,
.ts-header.uk-sticky-fixed.ts-header--sticky .ts-logo img.ts-logo__light,
.ts-header .uk-logo.ts-logo img.ts-logo__light,
.ts-header.uk-sticky-fixed .uk-logo.ts-logo img.ts-logo__light,
.ts-header.ts-header--sticky .uk-logo.ts-logo img.ts-logo__light,
.ts-header.uk-sticky-fixed.ts-header--sticky .uk-logo.ts-logo img.ts-logo__light {
    display: block !important;
}

.ts-header .ts-logo img.ts-logo__dark,
.ts-header.uk-sticky-fixed .ts-logo img.ts-logo__dark,
.ts-header.ts-header--sticky .ts-logo img.ts-logo__dark,
.ts-header.uk-sticky-fixed.ts-header--sticky .ts-logo img.ts-logo__dark,
.ts-header .uk-logo.ts-logo img.ts-logo__dark,
.ts-header.uk-sticky-fixed .uk-logo.ts-logo img.ts-logo__dark,
.ts-header.ts-header--sticky .uk-logo.ts-logo img.ts-logo__dark,
.ts-header.uk-sticky-fixed.ts-header--sticky .uk-logo.ts-logo img.ts-logo__dark {
    display: none !important;
}

.ts-header,
.ts-header.ts-header--sticky,
.ts-header.uk-sticky-fixed,
.ts-header.uk-sticky-fixed.ts-header--sticky {
    background:
        linear-gradient(90deg, rgba(5, 8, 13, .94), rgba(6, 19, 28, .86)),
        rgba(5, 8, 13, .88) !important;
    border-bottom-color: rgba(255,255,255,.12) !important;
}


/* v211: global typography scale normalization */
:root {
    --ts-type-hero: clamp(42px, 5.2vw, 72px);
    --ts-type-page: clamp(38px, 4.4vw, 64px);
    --ts-type-section: clamp(34px, 3.8vw, 56px);
    --ts-type-block: clamp(28px, 2.7vw, 42px);
    --ts-type-card: clamp(24px, 2vw, 32px);
    --ts-type-lead: clamp(17px, 1.25vw, 21px);
}

.ts-title-xl {
    font-size: var(--ts-type-hero) !important;
    line-height: 1 !important;
    letter-spacing: -.045em !important;
}

.ts-title-lg,
.ts-page-title,
.ts-section-title {
    font-size: var(--ts-type-section) !important;
    line-height: 1.04 !important;
    letter-spacing: -.04em !important;
}

.ts-lead {
    font-size: var(--ts-type-lead) !important;
    line-height: 1.55 !important;
}

.ts-intro {
    font-size: clamp(16px, 1.15vw, 19px) !important;
    line-height: 1.62 !important;
}

.ts-card h2,
.ts-card h3,
.ts-promo-card h3,
.ts-feature-card h3,
.ts-direction-card h3,
.ts-price-card h3,
.ts-news-title {
    font-size: var(--ts-type-card) !important;
    line-height: 1.08 !important;
    letter-spacing: -.03em !important;
}

.ts-mission-text {
    font-size: var(--ts-type-section) !important;
    line-height: 1.08 !important;
    letter-spacing: -.04em !important;
}

.ts-stat__value {
    font-size: clamp(36px, 4.2vw, 58px) !important;
}

@media (max-width: 767px) {
    :root {
        --ts-type-hero: clamp(36px, 10vw, 52px);
        --ts-type-page: clamp(34px, 9vw, 48px);
        --ts-type-section: clamp(30px, 8vw, 42px);
        --ts-type-block: clamp(26px, 7vw, 36px);
        --ts-type-card: clamp(23px, 6vw, 30px);
    }

    .ts-title-xl,
    .ts-title-lg,
    .ts-page-title,
    .ts-section-title {
        letter-spacing: -.035em !important;
    }
}

/* v221: main desktop menu text size */
@media (min-width: 1200px) {
    .ts-header .ts-nav > li > a,
    .ts-navbar .ts-nav > li > a,
    .ts-navbar-menu .ts-nav > li > a {
        font-size: 14px !important;
        line-height: 1 !important;
        letter-spacing: .018em !important;
        padding-inline: clamp(5px, .48vw, 10px) !important;
    }
}


/* v251: preloader is shown only on first session visit or slow loading */
html:not(.ts-preloader-active) .ts-preloader,
html.ts-preloader-skip .ts-preloader,
.ts-loaded .ts-preloader {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

html.ts-preloader-active:not(.ts-loaded) .ts-preloader {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}


/* v255: cookie notice */
.ts-cookie-notice {
    position: fixed;
    left: max(18px, env(safe-area-inset-left));
    right: max(18px, env(safe-area-inset-right));
    bottom: max(18px, env(safe-area-inset-bottom));
    z-index: 10020;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    max-width: 980px;
    margin: 0 auto;
    padding: 18px 18px 18px 22px;
    border-radius: 24px;
    color: #fff;
    background:
        radial-gradient(circle at 92% 0, rgba(24,214,177,.18), transparent 34%),
        linear-gradient(135deg, rgba(5,13,22,.96), rgba(8,31,42,.96));
    border: 1px solid rgba(255,255,255,.14);
    box-shadow:
        0 28px 90px rgba(0,0,0,.28),
        inset 0 1px 0 rgba(255,255,255,.08);
    backdrop-filter: blur(16px);
    opacity: 0;
    visibility: hidden;
    transform: translate3d(0, 18px, 0);
    pointer-events: none;
    transition:
        opacity .32s ease,
        visibility .32s ease,
        transform .32s cubic-bezier(.2,.8,.2,1);
}

.ts-cookie-notice.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translate3d(0, 0, 0);
    pointer-events: auto;
}

.ts-cookie-notice__content {
    min-width: 0;
}

.ts-cookie-notice__content b {
    display: block;
    color: #fff;
    font-family: var(--ts-font-condensed);
    font-size: clamp(22px, 2vw, 30px);
    line-height: 1;
    letter-spacing: -.03em;
}

.ts-cookie-notice__content p {
    max-width: 720px;
    margin: 8px 0 0;
    color: rgba(234,242,255,.72);
    font-size: 14px;
    line-height: 1.52;
}

.ts-cookie-notice__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding-right: 28px;
}

.ts-cookie-notice__link {
    color: rgba(234,242,255,.70);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.ts-cookie-notice__link:hover {
    color: var(--ts-accent);
}

.ts-cookie-notice__accept,
.ts-cookie-notice__reject {
    min-height: 42px !important;
    padding-inline: 18px !important;
    border-radius: 999px !important;
    white-space: nowrap;
}

.ts-cookie-notice__close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    cursor: pointer;
}

.ts-cookie-notice__close:before,
.ts-cookie-notice__close:after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 13px;
    height: 2px;
    border-radius: 4px;
    background: rgba(234,242,255,.72);
}

.ts-cookie-notice__close:before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.ts-cookie-notice__close:after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.ts-cookie-notice__close:hover {
    background: rgba(255,255,255,.14);
}

@media (max-width: 767px) {
    .ts-cookie-notice {
        grid-template-columns: 1fr;
        gap: 14px;
        padding: 18px;
        border-radius: 20px;
    }

    .ts-cookie-notice__actions {
        justify-content: space-between;
        padding-right: 0;
    }

    .ts-cookie-notice__accept {
        flex: 0 0 auto;
    }
}


/* v256: compact mobile cookie notice, no horizontal overflow */
.ts-cookie-notice {
    box-sizing: border-box;
}

.ts-cookie-notice__actions {
    min-width: 0;
}

.ts-cookie-notice__accept {
    white-space: nowrap;
}

@media (max-width: 767px) {
    .ts-cookie-notice {
        left: max(12px, env(safe-area-inset-left)) !important;
        right: max(12px, env(safe-area-inset-right)) !important;
        bottom: max(12px, env(safe-area-inset-bottom)) !important;
        width: auto !important;
        max-width: none !important;
        max-height: min(66vh, 420px);
        overflow: auto;
        gap: 12px !important;
        padding: 16px !important;
        border-radius: 22px !important;
    }

    .ts-cookie-notice__content b {
        padding-right: 34px;
        font-size: clamp(24px, 8vw, 34px);
        line-height: .95;
    }

    .ts-cookie-notice__content p {
        max-width: none;
        font-size: 15px;
        line-height: 1.42;
    }

    .ts-cookie-notice__actions {
        display: grid !important;
        grid-template-columns: 1fr;
        gap: 10px;
        width: 100%;
        padding-right: 0 !important;
    }

    .ts-cookie-notice__accept,
    .ts-cookie-notice__reject {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 50px !important;
        padding-inline: 14px !important;
    }

    .ts-cookie-notice__accept {
        order: 1;
    }

    .ts-cookie-notice__reject {
        order: 2;
    }

    .ts-cookie-notice__link {
        order: 3;
        justify-self: center;
        font-size: 15px;
    }

    .ts-cookie-notice__close {
        top: 14px;
        right: 14px;
        width: 38px;
        height: 38px;
    }
}

@media (max-width: 380px) {
    .ts-cookie-notice__content b {
        font-size: 26px;
    }

    .ts-cookie-notice__content p {
        font-size: 14px;
    }
}
