/* =========================================================================
   TAMGARD PARTNERS — единая дизайн-система сайта (на базе UIkit 3)
   Смелая редакция: контрастная палитра ink+gold+rust, графичная композиция.
   ========================================================================= */

:root {
    --dark-primary: #201e1d;
    --dark-secondary: #2d2b2b;
    --dark-tertiary: #444141;

    --gold-brand: #D49300;
    /* вторичный цвет B — янтарь, для контрастной кнопки на тёмном */
    --gold-amber: #D46900;
    --gold-amber-hi: #EA913A;
    --tm-mono: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif;
    --gold-light-text: #EAC269;
    --gold-light: rgba(212,147,0,0.10);
    --gold-medium: rgba(212,147,0,0.20);
    --tm-border: rgba(32,30,29,0.14);

    --gold-accent-a: #D4B500;
    --gold-accent-a-dark: #8A7600;
    --gold-accent-b: #D46900;
    --gold-accent-b-dark: #8A4400;
    --gold-deep: #8A6000;
    --gold-pale: #EAC269;

    --rust: #8A6000;
    --rust-light: rgba(138,96,0,0.08);
    --rust-soft: rgba(138,96,0,0.35);

    --gray: #6b6767;
    --gold-ink: #6f4d00;
    --white-bg: #f3f2f2;
    --overlay: rgba(209,48,15,0.10);

    --tm-text-main: #201e1d;
    --tm-text-muted: #605d5d;
}

html { scroll-behavior: smooth; overflow-x: clip; }
body { overflow-x: clip; }
body { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; color: var(--tm-text-main); background: var(--white-bg); font-weight: 400; line-height: 1.7; font-size: 17px; }

/* ---------- Типографика ---------- */
h1, h2, h3, h4, h5, h6, .uk-h1, .uk-h2, .uk-h3, .uk-h4, .uk-h5, .uk-h6, .uk-heading-small, .uk-heading-medium, .uk-heading-large { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; color: var(--tm-text-main); font-weight: 800; letter-spacing: -0.015em; }
.uk-light h1, .uk-light h2, .uk-light h3, .uk-light h4, .uk-light h5, .uk-light h6, .uk-light.uk-h1, .uk-light.uk-h2, .uk-light.uk-h3, .uk-light.uk-h4, .uk-light.uk-h5, .uk-light.uk-h6, h1.uk-light, h2.uk-light, h3.uk-light, h4.uk-light, h5.uk-light, h6.uk-light { color: var(--white-bg); }
.uk-heading-medium { font-size: clamp(32px, 4.4vw, 60px); line-height: 1.12; }
.uk-h1 { font-size: clamp(32px, 4.2vw, 52px); }
.uk-text-muted { color: var(--tm-text-muted); }
.uk-text-primary { color: var(--gold-brand); }
a { color: var(--gold-brand); }
a:hover { color: var(--rust); }

/* ---------- Фоны ---------- */
.uk-background-default {
    background-color: var(--white-bg);
    position: relative;
}
.uk-background-default::before {
    content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: var(--gold-light); opacity: 0.4; mix-blend-mode: multiply; pointer-events: none; z-index: 0;
}
.uk-background-default > .uk-container { position: relative; z-index: 1; }

.uk-background-muted { background-color: var(--gold-light); }
.uk-background-rust-tint { background-color: var(--rust-light); position: relative; }
.uk-background-rust-tint::before { content: ''; position: absolute; inset: 0; background: var(--rust-light); opacity: 0.5; mix-blend-mode: multiply; pointer-events: none; z-index: 0; }
.uk-background-rust-tint > .uk-container { position: relative; z-index: 1; }
.uk-background-primary { background-color: var(--gold-brand); box-shadow: 0 2px 4px rgba(0,0,0,0.15); }
.uk-background-secondary { background-color: var(--gray); opacity: 0.85; }

.bg-dark-contrast { background-color: var(--dark-primary); color: var(--white-bg); }
.bg-dark-contrast h1, .bg-dark-contrast h2, .bg-dark-contrast h3 { color: var(--white-bg); }
.bg-dark-contrast p:not([class*="tm-"]) { color: var(--white-bg); }
.bg-dark-contrast .uk-text-muted:not([class*="tm-"]) { color: rgba(238,233,224,0.72); }
.bg-dark-contrast .uk-card-default h1, .bg-dark-contrast .uk-card-default h2, .bg-dark-contrast .uk-card-default h3, .bg-dark-contrast .uk-card-default p, .bg-dark-contrast .uk-card-default .uk-text-muted { color: var(--tm-text-main) !important; opacity: 1; }

.bg-gold-overlay { background: linear-gradient(120deg, var(--gold-medium), transparent 60%), var(--white-bg); position: relative; }
.bg-gray-shade { background-color: var(--gray); opacity: 0.75; }

.bg-dark-paper {
    background-color: #201e1d;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMTAwJyBoZWlnaHQ9JzEwMCcgdmlld0JveD0nMCAwIDEwMCAxMDAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGZpbHRlciBpZD0nbm9pc2UnPjxmZVR1cmJ1bGVuY2UgdHlwZT0nZnJhY3RhbE5vaXNlJyBiYXNlRnJlcXVlbmN5PScwLjgnIG51bU9jdGF2ZXM9JzMnIHN0aXRjaFRpbGVzPSdzdGl0Y2gnLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJyBoZWlnaHQ9JzEwMCcgZmlsbD0nIzBhMGMwZScvPjxyZWN0IHdpZHRoPScxMDAnIGhlaWdodD0nMTAwJyBmaWx0ZXI9J3VybCgjbm9pc2UpJyBvcGFjaXR5PScwLjA1Jy8+PC9zdmc+");
}

/* ---------- Карточки ---------- */
.uk-card { background-color: var(--white-bg); border: 1px solid oklch(0.22 0.02 255 / 0.08); box-shadow: none; border-radius: 2px; transition: border-color 0.2s ease, background-color 0.2s ease; }
.uk-card:hover, .uk-card:focus-within { border-color: var(--gold-brand); background-color: color-mix(in srgb, var(--white-bg) 90%, var(--gold-brand) 10%); }
.card-dark-contrast { background-color: var(--dark-secondary); color: var(--white-bg); border: 1px solid oklch(1 0 0 / 0.08); box-shadow: none; }
.section-gold-bg { background-color: var(--gold-medium); color: var(--dark-primary); }
.accent-dark-text { color: var(--dark-primary); }
.uk-card-header { background: var(--gold-light); }
.uk-card-footer { background-color: var(--gray); color: var(--white-bg); }

@media (hover: hover) {
    .uk-background-default:hover { background-color: var(--gold-light); transition: background-color 0.3s ease; }
}

/* Fallback отступы uk-container по шкале UIkit — гарантирует отступы, даже если CDN-стили UIkit загрузяются медленно */
.uk-container { padding-left: 15px; padding-right: 15px; box-sizing: border-box; }
@media (min-width: 640px) { .uk-container { padding-left: 30px; padding-right: 30px; } }
@media (min-width: 1200px) { .uk-container { padding-left: 40px; padding-right: 40px; } }

/* ---------- Навигация ---------- */
.tm-navbar { background: oklch(0.965 0.014 78 / 0.95); border-bottom: 1px solid oklch(0.71 0.15 78 / 0.25); padding: 4px 0; position: relative; z-index: 1000; }
.tm-navbar .uk-navbar-item.uk-logo, .uk-logo { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; }
.tm-navbar .uk-navbar-item.uk-logo svg { width: 42px; height: 42px; flex-shrink: 0; display: block; }
.tm-navbar .uk-navbar-item.uk-logo { gap: 14px; align-items: center; }
.tm-navbar .uk-navbar-item.uk-logo span:first-child { letter-spacing: 0.06em !important; font-size: 18px !important; line-height: 1; }
.tm-navbar .uk-navbar-item.uk-logo span:last-child { letter-spacing: 0.18em !important; font-size: 10px !important; line-height: 1 !important; margin-top: 4px; }
.uk-navbar-dropdown { z-index: 1001; }
.uk-navbar-nav > li > a { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tm-text-main); font-weight: 600; transition: color 0.3s ease; white-space: nowrap; }
.uk-navbar-nav > li { padding: 0 2px; }
.uk-navbar-nav > li > a:hover, .uk-navbar-nav > li.uk-active > a { color: var(--rust); }
.uk-navbar-toggle { color: var(--tm-text-main); }
.uk-navbar-dropdown { background: var(--white-bg); border: 1px solid var(--tm-border); border-top: 3px solid var(--gold-brand); border-radius: 0; box-shadow: 0 20px 48px rgba(32,30,29,0.18); padding: 44px 64px 40px; }
.uk-navbar-dropdown-nav > li > a { font-size: 14.5px; line-height: 1.35; padding: 11px 0; color: var(--tm-text-main); transition: color 0.15s ease; display: block; white-space: nowrap; }
.uk-navbar-dropdown-nav > li > a:hover, .uk-navbar-dropdown-nav > li > a:focus { color: var(--gold-deep); }

.uk-button-primary { background-color: var(--gold-brand); color: #fff; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; border: 2px solid var(--gold-brand); transition: all 0.25s ease; border-radius: 0; padding: 16px 40px; line-height: 1.3; display: inline-flex; align-items: center; justify-content: center; text-align: center; min-height: 52px; box-sizing: border-box; }
.uk-button-primary:hover { background-color: #fff; border-color: var(--gold-brand); color: var(--gold-deep); }
.uk-button-rust { background-color: var(--white-bg); color: var(--rust); border: 2px solid var(--rust); font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.uk-button-rust:hover { background-color: var(--rust); color: #fff; border-color: var(--rust); }
.uk-button-default { background-color: transparent; color: var(--tm-text-main); font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; border: 2px solid var(--tm-text-main); transition: all 0.25s ease; border-radius: 0; padding: 16px 40px; line-height: 1.3; display: inline-flex; align-items: center; justify-content: center; text-align: center; min-height: 52px; box-sizing: border-box; }
.uk-button-default:hover { background-color: var(--tm-text-main); color: var(--white-bg); border-color: var(--tm-text-main); }
.uk-button-small.uk-button-default, .uk-button-small.uk-button-primary { min-height: 38px; padding: 8px 24px; font-size: 11px; }
.uk-button-text { color: var(--rust); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; font-size: 12px; }
.uk-button-text::before { border-bottom: 1px solid var(--rust); }
.uk-button-text.uk-accordion-title { background-image: none; }
.uk-button-text.uk-accordion-title::before, .uk-button-text.uk-accordion-title::after { content: none !important; display: none; }


.tm-step-number { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 15px; font-weight: 700; letter-spacing: 0.02em; color: var(--gold-brand); line-height: 1; margin-right: 20px; margin-top: 6px; flex-shrink: 0; width: 34px; height: 34px; border: 1.5px solid var(--gold-brand); border-radius: 0; display: flex; align-items: center; justify-content: center; }
@media (max-width: 639px) { .tm-step-number { font-size: 34px; margin-right: 16px; } }

.tm-marquee { overflow: hidden; border-top: 2px solid var(--dark-primary); border-bottom: 2px solid var(--dark-primary); padding: 24px 0; background: var(--white-bg); position: relative; z-index: 2; }
.tm-marquee-inner { display: flex; animation: marquee 40s linear infinite; white-space: nowrap; width: max-content; }
.tm-marquee-inner:hover { animation-play-state: paused; }
.tm-marquee-item { display: inline-flex; align-items: center; gap: 30px; padding: 0 40px; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--tm-text-main); }
.tm-marquee-dot { width: 6px; height: 6px; background: var(--rust); display: block; border-radius: 50%; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.uk-input, .uk-textarea, .uk-select { border: 2px solid var(--gray); background: var(--white-bg); color: var(--tm-text-main); font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 16px; border-radius: 0; transition: all 0.3s ease; padding: 0 20px; font-weight: 400; min-height: 52px; box-sizing: border-box; }
.uk-textarea { padding: 16px 20px; min-height: 120px; }
.uk-input:focus, .uk-textarea:focus, .uk-select:focus { border-color: var(--gold-brand); box-shadow: none; background: var(--white-bg); }
.bg-dark-contrast .uk-input, .bg-dark-contrast .uk-textarea, .bg-dark-contrast .uk-select { background: oklch(1 0 0 / 0.06); border-color: oklch(1 0 0 / 0.25); color: var(--white-bg); }
.bg-dark-contrast .uk-input::placeholder, .bg-dark-contrast .uk-textarea::placeholder { color: oklch(0.965 0.014 78 / 0.45); }
.bg-dark-contrast .uk-input:focus, .bg-dark-contrast .uk-textarea:focus, .bg-dark-contrast .uk-select:focus { border-color: var(--gold-brand); background: oklch(1 0 0 / 0.1); }

.tm-gold-italic { color: var(--gold-brand); font-style: normal; }

.tm-nav-cta { height: 48px; line-height: 46px; padding: 0 28px; min-height: 48px; white-space: nowrap; }
.tm-offcanvas-link { color: var(--white-bg); text-transform: uppercase; letter-spacing: 0.15em; font-size: 14px; font-weight: 700; }
.tm-modal-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; }
.tm-modal-actions .uk-button { line-height: 42px; padding: 0 24px; font-size: 12px; display: inline-flex; align-items: center; }
.tm-btn-wechat { border-color: #1d7d00; color: #1d7d00; }
.tm-btn-wechat:hover { background: #1d7d00; border-color: #1d7d00; color: #fff; }
@media (max-width: 639px) {
    .tm-modal-actions { flex-direction: column; gap: 10px; }
    .tm-modal-actions .uk-button { width: 100%; line-height: 46px; padding: 0 16px; font-size: 12px; justify-content: center; }
    .uk-modal-dialog .uk-modal-header, .uk-modal-dialog .uk-modal-body, .uk-modal-dialog .uk-modal-footer { padding: 20px; }
}

.uk-offcanvas-bar .uk-nav a.uk-button-primary, .uk-offcanvas-bar .uk-nav a.uk-button-primary:visited {
    background-color: var(--gold-brand) !important; border-color: var(--gold-brand) !important; color: var(--dark-primary); text-decoration: none !important;
}
.uk-offcanvas-bar .uk-nav a.uk-button-primary:hover, .uk-offcanvas-bar .uk-nav a.uk-button-primary:focus {
    background-color: var(--rust) !important; border-color: var(--rust) !important; color: #fff;
}
.tm-footer-heading { color: var(--gold-brand); letter-spacing: 0.2em; font-size: 12px; margin-bottom: 18px; }
footer .uk-nav-default > li > a { color: rgba(238,233,224,0.68); font-size: 15px; padding: 6px 0; position: relative; display: inline-flex; align-items: center; transition: color 0.25s ease; }
footer .uk-nav-default > li > a:hover, footer .uk-nav-default > li > a:focus { color: var(--gold-brand); }
.tm-icon-circle { background: transparent; color: var(--gold-brand); width: 64px; height: 64px; min-width: 64px; margin-right: 24px; flex-shrink: 0; transition: color 0.3s ease, transform 0.3s ease; position: relative; display: flex; align-items: center; justify-content: center; border-radius: 0; }
.tm-icon-circle::before { content: ''; position: absolute; width: 70%; height: 70%; background: var(--gold-light); border: 1.5px solid var(--gray); border-radius: 6px; transform: rotate(45deg); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); z-index: 0; }
.tm-icon-circle:hover::before { border-color: var(--gold-brand); background: var(--gold-medium); }
.tm-icon-circle > * { position: relative; z-index: 1; }
@media (max-width: 479px) { .tm-icon-circle { width: 52px; height: 52px; min-width: 52px; margin-right: 16px; } }
.tm-icon-circle:hover { border-color: var(--gold-brand); }
.tm-slidenav-gold { color: var(--gold-brand); width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; position: relative; }
.tm-slidenav-gold::before { content: ''; position: absolute; width: 70%; height: 70%; border: 1.5px solid var(--gold-brand); background: var(--gold-light); border-radius: 6px; transform: rotate(45deg); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); z-index: 0; }
.tm-slidenav-gold > * { position: relative; z-index: 1; }
.tm-slidenav-gold svg { stroke-width: 2.4; }
.tm-logo-icon { color: var(--gold-brand); }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .tm-marquee-inner { animation: none; }
    .uk-card, .uk-card:hover { transition: none; transform: none; }
    .tm-geo-card img { transition: none; }
}

/* ---------- География: карточки-обзоры с оверлеем ---------- */
.tm-geo-card { height: 460px; border-radius: 0; overflow: hidden; border: 1px solid oklch(0.22 0.02 255 / 0.1); }
@media (max-width: 639px) { .tm-geo-card { height: 320px; } .tm-geo-card .uk-overlay { padding: 22px; } }
.tm-geo-card img { transition: transform 0.6s ease; }
.tm-geo-card:hover img, .tm-geo-card:focus-within img { transform: scale(1.06); }
.tm-geo-gradient { background: linear-gradient(0deg, oklch(0.17 0.025 255 / 0.95) 0%, oklch(0.17 0.025 255 / 0.55) 42%, oklch(0.17 0.025 255 / 0.15) 70%, var(--gold-light) 100%); }
.tm-geo-card .uk-overlay { padding: 32px; }
.tm-label-gold { display: inline-block; padding: 5px 14px; font-size: 11px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--dark-primary); background: var(--gold-brand); border-radius: 0; }

/* ---------- Направления работы: карточка-услуга ---------- */
.tm-service-card { position: relative; overflow: hidden; }
.tm-service-card::before { content: ''; position: absolute; top: 0; left: 0; height: 4px; width: 0; background: linear-gradient(90deg, var(--gold-brand), var(--rust)); transition: width 0.45s ease; }
.tm-service-card:hover::before, .tm-service-card:focus-within::before { width: 100%; }
.tm-service-icon-badge { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; color: var(--gold-brand); position: relative; }
.tm-service-icon-badge::before { content: ''; position: absolute; width: 68%; height: 68%; background: var(--gold-brand); opacity: 0.14; border-radius: 6px; transform: rotate(45deg); transition: all 0.35s ease; }
.tm-service-icon-badge > * { position: relative; z-index: 1; transition: transform 0.3s ease; }
.tm-service-card:hover .tm-service-icon-badge, .tm-service-card:focus-within .tm-service-icon-badge { color: #fff; }
.tm-service-card:hover .tm-service-icon-badge > *, .tm-service-card:focus-within .tm-service-icon-badge > * { color: var(--white-bg); }
.tm-service-card:hover .tm-service-icon-badge::before, .tm-service-card:focus-within .tm-service-icon-badge::before { background: var(--rust); opacity: 1; transform: rotate(45deg) scale(1.1); }

/* ---------- Первый экран (переработанный слайдер) ---------- */
.tm-hero-gradient { background: linear-gradient(180deg, oklch(0.17 0.025 255 / 0.3) 0%, oklch(0.17 0.025 255 / 0.6) 55%, oklch(0.17 0.025 255 / 0.85) 100%); }
.tm-hero-frame { position: absolute; inset: 0; display: flex; align-items: flex-end; z-index: 1; }
.tm-hero-content { max-width: 760px; padding: 0 60px 120px; width: 100%; box-sizing: border-box; }
.tm-hero-content .uk-button { white-space: normal; }
.tm-hero-content .uk-button-default { color: var(--white-bg); border-color: var(--white-bg); }
.tm-hero-content .uk-button-default:hover { background-color: var(--white-bg); color: var(--dark-primary); border-color: var(--white-bg); }
.tm-hero-kicker { display: flex; align-items: center; gap: 18px; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 0.25em; color: var(--gold-brand); text-transform: uppercase; margin-bottom: 28px; }
.tm-hero-kicker-num { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 12px; font-weight: 700; color: var(--dark-primary); width: 38px; height: 38px; min-width: 38px; display: flex; align-items: center; justify-content: center; position: relative; flex-shrink: 0; isolation: isolate; letter-spacing: 0; line-height: 1; }
.tm-hero-kicker-num::before { content: ''; position: absolute; width: 58%; height: 58%; background: var(--gold-brand); border-radius: 4px; transform: rotate(45deg); z-index: -1; }
.tm-hero-title { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-weight: 800; letter-spacing: -0.015em; color: var(--white-bg); font-size: clamp(38px, 5vw, 68px); line-height: 1.08; margin: 0 0 28px; }
.tm-hero-lead { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-weight: 400; font-size: 18px; line-height: 1.65; color: var(--white-bg); opacity: 0.92; max-width: 560px; margin: 0; }
.tm-hero-controls { position: absolute; right: 60px; bottom: 56px; z-index: 2; display: flex; align-items: center; gap: 24px; }
.tm-hero-arrow { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; color: var(--white-bg); transition: color 0.3s ease; flex-shrink: 0; position: relative; }
.tm-hero-arrow::after { content: ''; position: absolute; width: 72%; height: 72%; border: 1px solid oklch(0.965 0.014 78 / 0.4); border-radius: 5px; background: transparent; transform: rotate(45deg); transition: border-color 0.3s ease, background 0.3s ease, transform 0.3s ease; z-index: 0; }
.tm-hero-arrow:hover { color: var(--dark-primary); }
.tm-hero-arrow:hover::after { border-color: var(--gold-brand); background: var(--gold-brand); }
.tm-hero-arrow svg { position: relative; z-index: 1; width: 18px; height: 18px; }
.tm-hero-arrow[uk-slidenav-previous]::before, .tm-hero-arrow[uk-slidenav-next]::before { content: none; }
.tm-hero-progress { display: flex; gap: 10px; margin: 0; padding: 0; list-style: none; }
.tm-hero-progress > * { width: 46px; height: 3px; background: oklch(0.965 0.014 78 / 0.25); position: relative; overflow: hidden; cursor: pointer; clip-path: polygon(4px 0, 100% 0, calc(100% - 4px) 100%, 0 100%); }
.tm-hero-progress > * > a { display: block; width: 100%; height: 100%; text-indent: -9999px; }
.tm-hero-progress > *::after { content: ''; position: absolute; inset: 0; background: var(--gold-brand); transform: scaleX(0); transform-origin: left; }
.tm-hero-progress > .uk-active::after { animation: tm-hero-fill 7s linear forwards; }
@keyframes tm-hero-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.tm-hero-index { position: absolute; left: 60px; bottom: 56px; z-index: 2; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; color: var(--white-bg); font-size: 14px; letter-spacing: 0.04em; display: flex; align-items: center; gap: 10px; }
.tm-hero-index-current { font-size: 15px; font-weight: 700; color: var(--dark-primary); width: 40px; height: 40px; min-width: 40px; display: flex; align-items: center; justify-content: center; position: relative; font-style: normal; line-height: 1; isolation: isolate; }
.tm-hero-index-current::before { content: ''; position: absolute; width: 70%; height: 70%; background: var(--gold-brand); border-radius: 4px; transform: rotate(45deg); z-index: -1; }
.tm-hero-index-sep { opacity: 0.5; line-height: 1; }
.tm-hero-index-total { line-height: 1; opacity: 0.85; }
@media (max-width: 959px) {
    .tm-hero-content { padding: 0 24px 100px; }
    .tm-hero-controls { right: 24px; bottom: 24px; gap: 16px; }
    .tm-hero-index { left: 24px; bottom: 24px; }
    .tm-hero-progress > * { width: 30px; }
}
@media (max-width: 479px) {
    .tm-hero-content { padding: 0 20px 96px; }
    .tm-hero-kicker { gap: 12px; font-size: 11px; }
    .tm-hero-controls { right: 20px; bottom: 20px; gap: 12px; }
    .tm-hero-arrow { width: 38px; height: 38px; }
    .tm-hero-index { left: 20px; bottom: 20px; font-size: 13px; }
    .tm-hero-progress > * { width: 22px; }
    .tm-hero-content .uk-button-primary, .tm-hero-content .uk-button-default { padding: 0 24px; }
}
@media (prefers-reduced-motion: reduce) { .tm-hero-progress > .uk-active::after { animation: none; transform: scaleX(1); } }

.tm-scroll-cue { display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--white-bg); opacity: 0.75; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; animation: tm-bounce 2.2s ease-in-out infinite; }
@keyframes tm-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) { .tm-scroll-cue { animation: none; } }

/* ---------- Внутренние страницы: компактный hero-баннер ---------- */
.tm-page-hero { position: relative; min-height: 42vh; display: flex; align-items: flex-end; overflow: hidden; }
@media (max-width: 639px) { .tm-page-hero { min-height: 36vh; } }
.tm-page-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tm-page-hero .tm-page-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, oklch(0.17 0.025 255 / 0.55) 0%, oklch(0.17 0.025 255 / 0.9) 100%); }
.tm-page-hero-content { position: relative; z-index: 1; width: 100%; padding-top: 140px; padding-bottom: 56px; }
@media (max-width: 639px) { .tm-page-hero-content { padding-top: 100px; padding-bottom: 36px; } }
.tm-breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: oklch(0.965 0.014 78 / 0.65); margin-bottom: 20px; }
.tm-breadcrumb a { color: oklch(0.965 0.014 78 / 0.65); }
.tm-breadcrumb a:hover { color: var(--gold-brand); }
.tm-breadcrumb > span:last-child { color: oklch(0.965 0.014 78 / 0.9); }

/* ---------- Секция "О компании": водяная цифра ---------- */
.tm-stat-card { position: relative; overflow: hidden; }
.tm-stat-card .tm-stat-watermark { position: absolute; right: -6px; bottom: -22px; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 96px; font-weight: 700; color: var(--gold-brand); opacity: 0.09; line-height: 1; pointer-events: none; }

/* =========================================================================
   Компоненты для внутренних страниц
   ========================================================================= */

/* ---------- Кейсы: карточка проекта ---------- */
.tm-case-card { position: relative; overflow: hidden; }
.tm-case-figure { height: 280px; overflow: hidden; border-radius: 0; position: relative; }
.tm-case-figure img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.tm-case-card:hover .tm-case-figure img { transform: scale(1.05); }
.tm-case-tag { position: absolute; top: 20px; left: 20px; z-index: 2; }
.tm-case-kpi { border-top: 1px solid oklch(0.56 0.025 250 / 0.3); padding-top: 16px; margin-top: 20px; }
.tm-case-kpi-num { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 30px; color: var(--rust); font-weight: 700; line-height: 1; }
.tm-case-kpi-label { font-size: 12px; color: var(--tm-text-muted); text-transform: uppercase; letter-spacing: 0.06em; margin-top: 4px; }
.tm-timeline-dot { min-width: 22px; width: 22px; height: 22px; background: transparent; margin-top: 2px; display: flex; align-items: center; justify-content: center; color: var(--rust); flex-shrink: 0; }
.tm-timeline-line { width: 1px; background: oklch(0.56 0.025 250 / 0.35); flex: 1; margin: 4px 0; }

/* ---------- Верификация: шаги аудита ---------- */
.tm-verify-step { position: relative; }
.tm-verify-num { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-style: normal; font-weight: 700; font-size: 18px; color: var(--gold-brand); width: 56px; height: 56px; min-width: 56px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; position: relative; isolation: isolate; }
.tm-verify-num::before { content: ''; position: absolute; width: 72%; height: 72%; background: var(--white-bg); border: 1.5px solid var(--gold-brand); border-radius: 5px; transform: rotate(45deg); z-index: -1; box-sizing: border-box; }
.tm-verify-connector { width: 2px; background: repeating-linear-gradient(0deg, var(--gray) 0 6px, transparent 6px 12px); flex: 1; margin: 4px 0; flex-shrink: 0; }
@media (max-width: 639px) {
    .tm-verify-num { width: 44px; height: 44px; min-width: 44px; font-size: 15px; }
}
/* Нижние полосы footer/copyright: перенос в столбец на узких экранах */
@media (max-width: 479px) {
    footer .uk-flex-between { flex-direction: column; align-items: flex-start !important; gap: 8px; }
}
.tm-risk-card { border-left: 4px solid var(--rust); }

/* ---------- Аналитика/блог: карточка статьи ---------- */
.tm-blog-card { display: flex; flex-direction: column; height: 100%; }
.tm-blog-figure { height: 220px; border-radius: 0; overflow: hidden; margin-bottom: 20px; }
.tm-blog-figure img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.tm-blog-card:hover .tm-blog-figure img { transform: scale(1.05); }
.tm-blog-meta { display: flex; align-items: center; gap: 14px; font-size: 12px; color: var(--tm-text-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 12px; }
.tm-blog-featured { background: var(--dark-primary); color: var(--white-bg); border-radius: 0; overflow: hidden; }
.tm-blog-featured img { width: 100%; height: 100%; object-fit: cover; }
.uk-subnav-pill > * > a { color: var(--rust); background: var(--white-bg); border: 1.5px solid var(--rust-soft); font-size: 13px; letter-spacing: 0.05em; text-transform: uppercase; font-weight: 600; border-radius: 0 !important; white-space: nowrap; transition: background-color 0.25s ease, color 0.25s ease; }
@media (max-width: 639px) { .uk-subnav-pill > * > a { font-size: 12px; padding: 5px 12px; } }
.uk-subnav-pill > * > a:hover, .uk-subnav-pill > .uk-active > a { background: var(--rust); color: #fff; border-color: var(--rust); }

/* ---------- Аналитика: редакционная сетка карточек с оверлеем ---------- */
.tm-blog-overlay-card { height: 320px; border-radius: 0; overflow: hidden; border: 1px solid oklch(0.22 0.02 255 / 0.1); }
.tm-blog-overlay-card img { transition: transform 0.6s ease; }
.tm-blog-overlay-card:hover img, .tm-blog-overlay-card:focus-within img { transform: scale(1.06); }
.tm-blog-overlay-featured { height: 460px; }
@media (max-width: 639px) { .tm-blog-overlay-card { height: 260px; } .tm-blog-overlay-featured { height: 380px; margin-top: 8px; } .tm-blog-overlay-card .uk-overlay { padding: 20px; } .tm-blog-overlay-featured .uk-overlay { padding: 24px; } }
.tm-blog-overlay-gradient { background: linear-gradient(0deg, oklch(0.17 0.025 255 / 0.97) 0%, oklch(0.17 0.025 255 / 0.75) 38%, oklch(0.17 0.025 255 / 0.25) 68%, oklch(0.17 0.025 255 / 0.05) 100%); }
.tm-blog-overlay-card .uk-overlay { padding: 28px; }
.tm-blog-overlay-featured .uk-overlay { padding: 40px; }

/* ---------- Команда: карточка эксперта ---------- */
.tm-team-card { text-align: left; }
.tm-team-photo { height: 340px; border-radius: 0; overflow: hidden; position: relative; margin-bottom: 20px; }
@media (max-width: 479px) { .tm-team-photo { height: 300px; } }
.tm-team-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.tm-team-photo img[src$=".svg"] { filter: none !important; object-fit: cover; }
.tm-zh-locale{--rust:#b3261e;--gold-brand:#c9a052;font-family:'Noto Sans SC','Noto Sans',sans-serif}
.tm-zh-locale h1,.tm-zh-locale h2,.tm-zh-locale h3,.tm-zh-locale h4,.tm-zh-locale h5,.tm-zh-locale .uk-heading-medium,.tm-zh-locale .tm-hero-title{font-family:'Noto Serif SC',serif}
.tm-zh-locale em,.tm-zh-locale .tm-gold-italic{font-family:'Noto Serif SC',serif;font-style:normal}
.tm-zh-locale,.tm-zh-locale p,.tm-zh-locale a,.tm-zh-locale span,.tm-zh-locale li,.tm-zh-locale button,.tm-zh-locale input,.tm-zh-locale select,.tm-zh-locale label{font-family:'Noto Sans SC','Noto Sans',sans-serif}
.tm-zh-locale .tm-hero-kicker,.tm-zh-locale .tm-kicker-rust{color:var(--rust)}
.tm-zh-locale .bg-gold-overlay{background:linear-gradient(135deg,rgba(179,38,30,0.08),rgba(201,160,82,0.14))}
.tm-zh-locale .tm-btn-wechat{background:#07c160;border-color:#07c160;color:#fff}
.tm-zh-locale .tm-btn-wechat:hover{background:#06ad56;border-color:#06ad56}
.tm-lang-switch{display:none!important}
.tm-lang-switch-active{color:var(--gold-brand);font-weight:600}
.tm-lang-switch-sep{color:rgba(122,142,168,.4)}
.tm-lang-switch-mobile{display:none!important}
.tm-team-card:hover .tm-team-photo img[src$=".svg"] { transform: scale(1.04); }
.tm-team-tag { display: inline-block; font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--rust); background: var(--rust-light); border: 1px solid oklch(0.58 0.15 38 / 0.4); border-radius: 0; padding: 3px 10px; margin: 0 6px 6px 0; }

/* ---------- География: ряд офисов ---------- */
.tm-map-wrap { padding: 56px 24px; border-radius: 0; background: var(--dark-primary); overflow: hidden; }
@media (max-width: 639px) { .tm-map-wrap { padding: 40px 16px; } }
.tm-office-card { position: relative; padding-top: 26px; }
.tm-office-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: oklch(0.71 0.15 78 / 0.25); }
.tm-office-dot { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%); width: 12px; height: 12px; border-radius: 50%; background: var(--gold-brand); box-shadow: 0 0 0 5px oklch(0.71 0.15 78 / 0.15); }
.tm-office-hq { cursor: pointer; }
.tm-office-hq .tm-office-dot { width: 18px; height: 18px; background: var(--rust); box-shadow: 0 0 0 6px oklch(0.58 0.15 38 / 0.3); }
.tm-office-city { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 16px; margin-top: 16px; color: var(--white-bg); }
.tm-office-hq .tm-office-city { color: var(--gold-brand); font-weight: 700; }
.tm-office-role { font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; color: oklch(0.965 0.014 78 / 0.5); margin-top: 4px; }
.tm-region-card { border-top: 4px solid var(--gold-brand); border-radius: 0; }
.tm-info-row { border-bottom: 1px solid oklch(0.56 0.025 250 / 0.25); padding-bottom: 10px; margin-bottom: 10px; }
.tm-info-row-last { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.tm-info-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--tm-text-muted); }
.tm-info-value { font-size: 14px; font-weight: 700; color: var(--tm-text-main); margin-top: 4px; }

/* ---------- Мега-статистика (полосы KPI) ---------- */
.tm-mega-stat-band { border-top: 1px solid oklch(1 0 0 / 0.1); border-bottom: 1px solid oklch(1 0 0 / 0.1); }
.tm-mega-stat { text-align: center; padding: 8px 0; }
.tm-mega-stat-num { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-weight: 700; font-size: clamp(36px, 4vw, 56px); line-height: 1; color: var(--gold-brand); }
.tm-mega-stat-label { font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: oklch(0.965 0.014 78 / 0.6); margin-top: 10px; }

/* ---------- Благодарность ---------- */
.tm-thanks-icon { width: 96px; height: 96px; border-radius: 50%; border: 2px solid var(--gold-brand); display: flex; align-items: center; justify-content: center; color: var(--gold-brand); margin: 0 auto; }
.tm-thanks-step { display: flex; gap: 20px; align-items: flex-start; }
.tm-thanks-step .tm-verify-num { width: 44px; height: 44px; font-size: 15px; }

/* ---------- Отраслевые кластеры (industries.html) ---------- */
.tm-cluster { display: grid; grid-template-columns: 1fr; gap: 24px; padding: 40px 0 0; scroll-margin-top: 110px; }
.tm-cluster:first-of-type { padding-top: 0; }
.tm-cluster-sep { padding: 40px 0; }
.tm-cluster-accent-b .tm-cluster-num::before { border-color: var(--rust-soft); }
.tm-cluster-accent-b .tm-cluster-num span { color: var(--rust-soft); }
.tm-cluster-accent-b .tm-kicker { color: var(--rust); }
.tm-cluster-accent-b .tm-cluster-tag { color: var(--white-bg); background: var(--gold-deep); border-color: var(--gold-deep); }
.tm-cluster-accent-b .tm-cluster-link { background-color: var(--rust) !important; color: var(--white-bg) !important; border: 2px solid var(--rust); }
.tm-cluster-accent-b .tm-cluster-link:hover { background-color: var(--gold-brand) !important; color: var(--dark-primary); border-color: var(--gold-brand); }
.tm-cluster-accent-b .tm-cluster-item span { background: var(--rust); color: var(--white-bg); border: 1px solid var(--rust); }
.tm-cluster-accent-b .tm-cluster-item:hover span { background: var(--gold-brand); color: var(--dark-primary); border-color: var(--gold-brand); }
.tm-cluster-accent-b .tm-diamond-divider-mark { background: var(--rust); }
@media (min-width: 960px) { .tm-cluster { grid-template-columns: 340px 1fr; gap: 40px; align-items: stretch; padding: 52px 0 0; } .tm-cluster-sep { padding: 52px 0; } .tm-cluster.tm-cluster-flip { direction: rtl; } .tm-cluster.tm-cluster-flip > * { direction: ltr; } }
.tm-cluster-media { position: relative; border-radius: 2px; overflow: hidden; min-height: 460px; display: flex; flex-direction: column; justify-content: flex-end; }
@media (max-width: 959px) { .tm-cluster-media { min-height: 420px; } }
.tm-cluster-media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; transition: transform 0.6s cubic-bezier(0.16,1,0.3,1); }
.tm-cluster-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,18,23,0.15) 0%, rgba(15,18,23,0.55) 45%, rgba(15,18,23,0.94) 100%); z-index: 1; }
.tm-cluster:hover .tm-cluster-media > img { transform: scale(1.05); }
.tm-cluster-num { position: absolute; top: 20px; left: 20px; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; z-index: 3; }
.tm-cluster-num::before { content: ''; position: absolute; inset: 0; background: var(--dark-primary); border: 1.5px solid var(--gold-brand); transform: rotate(45deg); z-index: 0; }
.tm-cluster-num span { position: relative; z-index: 1; color: var(--gold-brand); font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-weight: 700; font-size: 14px; }
.tm-cluster-media-content { position: relative; z-index: 2; padding: 24px 22px 26px; color: var(--white-bg); }
.tm-cluster-media-content h3 { color: var(--white-bg); margin: 0 0 10px; font-size: 22px; }
.tm-cluster-media-content p { color: rgba(238,233,224,0.82); font-size: 14px; line-height: 1.55; margin: 0 0 18px; }
.tm-cluster-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tm-cluster-tag { font-size: 12px; font-weight: 500; color: var(--white-bg); background: var(--gold-brand); border: 1px solid var(--gold-brand); padding: 6px 13px; border-radius: 2px; white-space: nowrap; }
.tm-cluster-body { min-width: 0; display: flex; flex-direction: column; }
.tm-cluster-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 22px; }
@media (max-width: 599px) { .tm-cluster-grid { grid-template-columns: repeat(2, 1fr); } }
.tm-cluster-item { position: relative; aspect-ratio: 1/1; border-radius: 2px; overflow: hidden; }
.tm-cluster-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.tm-cluster-item::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,18,23,0) 40%, rgba(15,18,23,0.88) 100%); z-index: 1; transition: background 0.3s ease; }
.tm-cluster-item span { position: absolute; left: 8px; right: 8px; bottom: 8px; z-index: 2; display: inline-block; width: fit-content; color: var(--dark-primary); background: var(--gold-brand); padding: 4px 9px; border-radius: 2px; font-size: 11px; line-height: 1.3; font-weight: 700; letter-spacing: 0.01em; border: 1px solid var(--gold-brand); transition: background-color 0.25s ease, color 0.25s ease; }
.tm-cluster-item:hover span { background: var(--rust); color: var(--white-bg); border-color: var(--rust); }
.tm-cluster-item:hover img { transform: scale(1.08); }
.tm-cluster-item:hover::before { background: linear-gradient(180deg, rgba(201,160,82,0) 30%, rgba(15,18,23,0.92) 100%); }
.tm-cluster-link { margin-top: auto; align-self: flex-start; }

/* ---------- Статья аналитики: автор/дата ---------- */
.tm-author-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; row-gap: 10px; padding: 24px 0; border-top: 1px solid oklch(0.56 0.025 250 / 0.25); border-bottom: 1px solid oklch(0.56 0.025 250 / 0.25); margin-bottom: 48px; }
.tm-author-avatar { width: 52px; height: 52px; border-radius: 50%; overflow: hidden; flex-shrink: 0; }
.tm-author-avatar img { width: 100%; height: 100%; object-fit: cover; }
.tm-author-name { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-weight: 700; font-size: 14px; color: var(--tm-text-main); }
.tm-author-role { font-size: 12px; color: var(--tm-text-muted); }
.tm-author-divider { width: 1px; height: 32px; background: oklch(0.56 0.025 250 / 0.35); }
.tm-author-fact { font-size: 12px; color: var(--tm-text-muted); }
.tm-author-fact strong { display: block; font-size: 13px; color: var(--tm-text-main); font-weight: 700; }

/* ---------- Статья аналитики: текст ---------- */
.tm-article-body { max-width: 760px; }
.tm-article-body > p { margin-bottom: 22px; font-size: 17px; line-height: 1.85; color: var(--tm-text-main); }
.tm-article-body h2 { font-size: 26px; margin-top: 56px; margin-bottom: 20px; }
.tm-article-body h2:first-child { margin-top: 0; }
.tm-article-body ul.tm-article-list { margin: 0 0 26px 0; padding: 0; list-style: none; }
.tm-article-body ul.tm-article-list li { position: relative; padding-left: 26px; margin-bottom: 12px; font-size: 16px; color: var(--tm-text-main); line-height: 1.6; }
.tm-article-body ul.tm-article-list li::before { content: ''; position: absolute; left: 0; top: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--rust); }

.tm-callout { background: var(--dark-primary); color: var(--white-bg); border-left: 4px solid var(--gold-brand); padding: 32px 36px; border-radius: 0; margin: 44px 0; }
.tm-callout-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--gold-brand); margin-bottom: 14px; }
.tm-callout p { color: var(--white-bg); opacity: 0.92; font-size: 16px; line-height: 1.8; margin-bottom: 14px; }
.tm-callout p:last-child { margin-bottom: 0; }
.tm-callout strong { color: var(--gold-brand); }


/* ---------- Врезка-цитата в статье ---------- */
.tm-article-body .tm-pull { margin: 44px 0; padding: 26px 0 22px; border-top: 2px solid var(--gold-brand); border-bottom: 1px solid var(--tm-border); }
.tm-article-body .tm-pull p { position: relative; margin: 0; padding-left: 58px; font-size: clamp(19px,2vw,23px); font-weight: 600; line-height: 1.5; letter-spacing: -0.005em; color: var(--dark-primary); text-wrap: pretty; }
.tm-article-body .tm-pull .tm-pull-mark { position: absolute; left: 0; top: 0; color: var(--gold-brand); }
.tm-article-body .tm-pull { position: relative; }
@media (max-width: 639px) { .tm-article-body .tm-pull p { padding-left: 44px; font-size: 18px; } .tm-article-body .tm-pull .tm-pull-mark { transform: scale(0.76); transform-origin: left top; } }

/* ---------- Кейс-стади: витринная страница проекта ---------- */
.tm-case-hero { position: relative; min-height: 58vh; display: flex; align-items: flex-end; overflow: hidden; }
@media (max-width: 639px) { .tm-case-hero { min-height: 48vh; } }
.tm-case-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tm-case-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, oklch(0.17 0.025 255 / 0.15) 0%, oklch(0.17 0.025 255 / 0.55) 55%, oklch(0.17 0.025 255 / 0.95) 100%); }
.tm-case-hero-content { position: relative; z-index: 1; width: 100%; padding-top: 140px; padding-bottom: 64px; }
@media (max-width: 639px) { .tm-case-hero-content { padding-top: 100px; padding-bottom: 40px; } }
.tm-case-hero-tag { display: inline-flex; align-items: center; gap: 10px; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold-brand); margin-bottom: 22px; }
.tm-case-hero-tag::before { content: ''; width: 9px; height: 9px; background: var(--gold-brand); transform: rotate(45deg); flex-shrink: 0; }
.tm-case-title { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-weight: 800; letter-spacing: -0.01em; color: var(--white-bg); font-size: clamp(30px, 4.2vw, 54px); line-height: 1.12; margin: 0 0 22px; max-width: 880px; }
.tm-case-lead { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-weight: 400; font-size: 18px; line-height: 1.65; color: var(--white-bg); opacity: 0.92; max-width: 620px; margin: 0; }
.tm-case-facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px 20px; margin-top: 44px; padding-top: 32px; border-top: 1px solid rgba(238,233,224,0.22); max-width: 780px; }
@media (min-width: 640px) { .tm-case-facts { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 960px) { footer .uk-width-1-6\@m { width: 20%; } }
.tm-case-fact-label { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(238,233,224,0.6); margin-bottom: 8px; }
.tm-case-fact-value { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-weight: 600; font-size: 15px; color: var(--white-bg); line-height: 1.4; }





.tm-case-related-card { position: relative; aspect-ratio: 4/5; overflow: hidden; border-radius: 2px; display: block; }
.tm-case-related-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.tm-case-related-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,18,23,0) 35%, rgba(15,18,23,0.92) 100%); }
.tm-case-related-card:hover img { transform: scale(1.06); }
.tm-case-related-tag { position: absolute; top: 20px; left: 20px; z-index: 2; display: inline-block; padding: 6px 14px; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dark-primary); background: var(--gold-brand); border-radius: 2px; }
.tm-case-related-title { position: absolute; left: 22px; right: 22px; bottom: 20px; z-index: 1; color: var(--white-bg); font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 19px; line-height: 1.3; margin: 0; }


.tm-framework-table-wrap { margin: 8px 0 44px; }
.tm-table-gold thead th { color: var(--rust); text-transform: uppercase; letter-spacing: 0.06em; font-size: 12px; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-weight: 700; border-bottom: 2px solid var(--gold-brand); }
.tm-table-gold td { font-size: 14.5px; color: var(--tm-text-main); }
.tm-table-gold.uk-table-striped tbody tr:nth-of-type(odd) { background: var(--gold-light); }
.tm-table-gold.uk-table-hover tbody tr:hover { background: var(--gold-medium); }

/* ---------- Статья аналитики: FAQ ---------- */
.tm-faq-item { border-bottom: 1px solid oklch(0.56 0.025 250 / 0.25); }
.tm-faq-question {
    display: flex; align-items: center; justify-content: flex-start; text-align: left; gap: 16px;
    padding: 22px 0 !important; background-image: none !important;
    font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 18px; color: var(--tm-text-main) !important; text-decoration: none !important;
}
.tm-faq-question::before, .tm-faq-question::after { content: none !important; display: none; }
.tm-faq-question .uk-icon { margin-left: auto; color: var(--rust); flex-shrink: 0; transition: transform 0.3s ease; }
.uk-open > .tm-faq-question .uk-icon { transform: rotate(180deg); }
.tm-faq-answer p { color: var(--tm-text-muted); font-size: 15px; line-height: 1.75; padding-bottom: 22px; margin: 0; }

/* Фикс: в uk-flex рядах иконка+текст блок с текстом не должен расширять flex-контейнер за viewport */
.uk-flex > .uk-width-expand, .tm-thanks-step > div:last-child { min-width: 0; }
.tm-spec-list, .tm-article-list { overflow-wrap: break-word; }

/* ---------- Ромбическая айдентика: переиспользуемые разделители, аккордеон, пагинация ---------- */
.tm-diamond-divider { display: flex; align-items: center; gap: 14px; margin: 0; }
.tm-diamond-divider::before, .tm-diamond-divider::after { content: ''; flex: 1 1 auto; height: 1px; background: var(--tm-border); }
.tm-diamond-divider-mark { width: 9px; height: 9px; flex-shrink: 0; background: var(--gold-brand); transform: rotate(45deg); }
.tm-diamond-divider-mark.is-outline { background: none; border: 1.4px solid var(--gold-brand); }

.tm-accordion-item { border-bottom: 1px solid var(--tm-border); }
.tm-accordion-item:first-child { border-top: 1px solid var(--tm-border); }
.tm-accordion-toggle { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; padding: 22px 4px; background: none; border: 0; text-align: left; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 16px; font-weight: 600; color: var(--tm-text-main); cursor: pointer; }
.tm-accordion-mark { position: relative; width: 22px; height: 22px; flex-shrink: 0; }
.tm-accordion-mark::before, .tm-accordion-mark::after { content: ''; position: absolute; top: 50%; left: 50%; background: var(--gold-brand); transition: transform 0.3s ease; }
.tm-accordion-mark::before { width: 14px; height: 1.6px; transform: translate(-50%,-50%); }
.tm-accordion-mark::after { width: 1.6px; height: 14px; transform: translate(-50%,-50%); }
.uk-open .tm-accordion-mark::after { transform: translate(-50%,-50%) rotate(90deg) scaleX(0); }
.tm-accordion-content { padding: 0 4px 24px; color: var(--tm-text-muted); }

.tm-diamond-dots { display: flex; align-items: center; gap: 10px; }
.tm-diamond-dots button { width: 8px; height: 8px; padding: 0; border: 1.4px solid var(--gold-brand); background: none; transform: rotate(45deg); cursor: pointer; transition: background 0.25s ease, border-color 0.25s ease; }
.tm-diamond-dots button.uk-active, .tm-diamond-dots button[aria-current="true"] { background: var(--gold-brand); }
.tm-article-tag { display: inline-block; padding: 5px 14px; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--dark-primary); background: var(--gold-brand); border-radius: 0; }

/* =========================================================================
   Новые смелые компоненты
   ========================================================================= */

/* ---------- Цитата / отзыв ---------- */
.tm-quote-card { position: relative; padding: 44px 40px 36px; background: var(--white-bg); border: 1px solid oklch(0.22 0.02 255 / 0.08); border-top: 4px solid var(--rust); height: 100%; display: flex; flex-direction: column; }
@media (max-width: 639px) { .tm-quote-card { padding: 32px 24px 28px; } }
.tm-quote-mark { color: var(--gold-brand); margin-bottom: 12px; width: 40px; height: 40px; }
.tm-quote-mark svg { width: 100%; height: 100%; }
.tm-quote-text { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 19px; line-height: 1.55; color: var(--tm-text-main); flex-grow: 1; }
.tm-quote-attrib { margin-top: 24px; padding-top: 18px; border-top: 1px solid oklch(0.56 0.025 250 / 0.25); }
.tm-quote-name { font-weight: 700; font-size: 14px; color: var(--tm-text-main); }
.tm-quote-role { font-size: 12px; color: var(--tm-text-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-top: 2px; }
.tm-quote-dark { background: var(--dark-secondary); border-color: oklch(1 0 0 / 0.08); }
.tm-quote-dark .tm-quote-text { color: var(--white-bg); opacity: 0.92; }
.tm-quote-dark .tm-quote-attrib { border-top-color: oklch(1 0 0 / 0.15); }
.tm-quote-dark .tm-quote-name { color: var(--white-bg); }
.tm-quote-dark .tm-quote-role { color: oklch(0.965 0.014 78 / 0.55); }

/* ---------- Лента логотипов ---------- */
.tm-logo-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 32px; padding: 8px 0; }
.tm-logo-item { font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 20px; font-weight: 600; letter-spacing: 0.02em; color: var(--tm-text-muted); opacity: 0.55; transition: opacity 0.3s ease, color 0.3s ease; white-space: nowrap; }
.tm-logo-item:hover { opacity: 1; color: var(--tm-text-main); }
@media (max-width: 639px) { .tm-logo-strip { justify-content: center; gap: 20px 36px; } .tm-logo-item { font-size: 16px; } }

/* ---------- FAQ簡: карточки-строки на светлом фоне (для главной) ---------- */
.tm-faq-item-light .tm-faq-question { color: var(--tm-text-main); }

/* ---------- Диагональный ярлык страницы ---------- */
.tm-kicker-rust { color: var(--rust); font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; font-size: 12px; }


/* ---------- Brand watermarks (логознак как фоновая текстура) ---------- */
.tm-mark-tr-light, .tm-mark-bl-light, .tm-mark-center-dark, .tm-hero-mark, .tm-mark-tile-dark, .tm-herohero-mark { position: relative; }
.tm-mark-tr-light::after { content: ''; position: absolute; top: -60px; right: -60px; width: 340px; height: 340px; background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23C9A052%22%20stroke-width%3D%222.2%22%3E%3Cpolygon%20points%3D%2250%2C6%2094%2C50%2050%2C94%206%2C50%22%2F%3E%3Cline%20x1%3D%2250%22%20y1%3D%2226%22%20x2%3D%2250%22%20y2%3D%2294%22%2F%3E%3Cpath%20d%3D%22M28%2C50%20L50%2C26%20L72%2C50%22%2F%3E%3Cpath%20d%3D%22M28%2C72%20L50%2C50%20L72%2C72%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-size: contain; opacity: 0.06; pointer-events: none; z-index: 0; }
.tm-mark-bl-light::after { content: ''; position: absolute; bottom: -70px; left: -70px; width: 300px; height: 300px; background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%238a8f96%22%20stroke-width%3D%221.8%22%3E%3Cpolygon%20points%3D%2250%2C6%2094%2C50%2050%2C94%206%2C50%22%2F%3E%3Cline%20x1%3D%2250%22%20y1%3D%2226%22%20x2%3D%2250%22%20y2%3D%2294%22%2F%3E%3Cpath%20d%3D%22M28%2C50%20L50%2C26%20L72%2C50%22%2F%3E%3Cpath%20d%3D%22M28%2C72%20L50%2C50%20L72%2C72%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-size: contain; opacity: 0.07; pointer-events: none; z-index: 0; }
.tm-mark-center-dark::before { content: ''; position: absolute; top: 50%; left: 50%; width: 520px; height: 520px; transform: translate(-50%, -50%); background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23EEE9E0%22%20stroke-width%3D%222.2%22%3E%3Cpolygon%20points%3D%2250%2C6%2094%2C50%2050%2C94%206%2C50%22%2F%3E%3Cline%20x1%3D%2250%22%20y1%3D%2226%22%20x2%3D%2250%22%20y2%3D%2294%22%2F%3E%3Cpath%20d%3D%22M28%2C50%20L50%2C26%20L72%2C50%22%2F%3E%3Cpath%20d%3D%22M28%2C72%20L50%2C50%20L72%2C72%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-size: contain; opacity: 0.05; pointer-events: none; z-index: 0; }
.tm-mark-tr-light > .uk-container, .tm-mark-bl-light > .uk-container, .tm-mark-center-dark > .uk-container { position: relative; z-index: 1; }
@media (max-width: 639px) { .tm-mark-tr-light::after { width: 200px; height: 200px; top: -30px; right: -30px; } .tm-mark-bl-light::after { width: 180px; height: 180px; bottom: -30px; left: -30px; } .tm-mark-center-dark::before { width: 320px; height: 320px; } }

.tm-hero-mark { position: absolute; top: 4%; right: -6%; width: 460px; height: 460px; background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23C9A052%22%20stroke-width%3D%222.2%22%3E%3Cpolygon%20points%3D%2250%2C6%2094%2C50%2050%2C94%206%2C50%22%2F%3E%3Cline%20x1%3D%2250%22%20y1%3D%2226%22%20x2%3D%2250%22%20y2%3D%2294%22%2F%3E%3Cpath%20d%3D%22M28%2C50%20L50%2C26%20L72%2C50%22%2F%3E%3Cpath%20d%3D%22M28%2C72%20L50%2C50%20L72%2C72%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-size: contain; opacity: 0.22; pointer-events: none; z-index: 1; }
@media (max-width: 959px) { .tm-hero-mark { width: 260px; height: 260px; top: 4%; right: -60px; } }

.tm-page-hero-mark { position: absolute; bottom: -40px; right: -40px; width: 280px; height: 280px; background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23C9A052%22%20stroke-width%3D%222.2%22%3E%3Cpolygon%20points%3D%2250%2C6%2094%2C50%2050%2C94%206%2C50%22%2F%3E%3Cline%20x1%3D%2250%22%20y1%3D%2226%22%20x2%3D%2250%22%20y2%3D%2294%22%2F%3E%3Cpath%20d%3D%22M28%2C50%20L50%2C26%20L72%2C50%22%2F%3E%3Cpath%20d%3D%22M28%2C72%20L50%2C50%20L72%2C72%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-size: contain; opacity: 0.13; pointer-events: none; z-index: 1; }
@media (max-width: 639px) { .tm-page-hero-mark { width: 170px; height: 170px; bottom: -20px; right: -20px; } }

.tm-mark-tile-dark { position: relative; }
.tm-mark-tile-dark::before { content: ''; position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22120%22%20height%3D%22120%22%20viewBox%3D%220%200%20120%20120%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23EEE9E0%22%20stroke-width%3D%221.4%22%3E%3Cpolygon%20points%3D%2260%2C14%20106%2C60%2060%2C106%2014%2C60%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-repeat: repeat; background-size: 120px 120px; opacity: 0.035; pointer-events: none; z-index: 0; }
.tm-mark-tile-dark > .uk-container { position: relative; z-index: 1; }

/* ---------- \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b: \u043c\u043e\u0437\u0430\u0438\u0447\u043d\u0430\u044f \u0441\u0435\u0442\u043a\u0430 (\u0432\u043c\u0435\u0441\u0442\u043e 4 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a) ---------- */
.tm-mosaic-grid { background: rgba(238,233,224,0.14); }
.tm-mosaic-item { position: relative; background: var(--dark-primary); padding: 40px 34px; overflow: hidden; border: 1px solid rgba(238,233,224,0.14); margin: -1px 0 0 -1px; }
.tm-mosaic-item h3, .tm-mosaic-item p { position: relative; z-index: 1; color: var(--white-bg); }
.tm-mosaic-item p { color: rgba(238,233,224,0.72); }
.tm-mark-corner-tl, .tm-mark-corner-br, .tm-mark-diamond-sm { position: absolute; pointer-events: none; z-index: 0; }
.tm-mark-corner-tl { top: -30px; left: -30px; width: 180px; height: 180px; border-top: 2px solid var(--gold-brand); border-left: 2px solid var(--gold-brand); opacity: 0.28; transform: rotate(0deg); }
.tm-mark-corner-br { bottom: -30px; right: -30px; width: 180px; height: 180px; border-bottom: 2px solid var(--gold-brand); border-right: 2px solid var(--gold-brand); opacity: 0.28; }
.tm-mark-diamond-sm { top: 50%; right: -40px; width: 140px; height: 140px; transform: translateY(-50%) rotate(45deg); border: 2px solid var(--gold-brand); opacity: 0.16; }

/* Мегаменю: разметка на штатных классах UIkit (uk-drop-grid / uk-child-width-1-2 / uk-grid-divider).
   Колонки продублированы на CSS Grid: компонент UIkit Grid не инициализируется внутри скрытого
   дропдауна, поэтому класс .uk-grid не навешивается и колонки схлопывались в одну. */
.uk-navbar-dropdown.uk-navbar-dropdown-width-2 { width: auto !important; max-width: calc(100vw - 64px) !important; box-sizing: border-box; }
.uk-drop-grid { display: grid; grid-template-columns: max-content max-content; column-gap: 0; margin: 0; }
.uk-navbar-dropdown .uk-drop-grid > * { min-width: 0; padding: 0 !important; width: auto; }
.uk-navbar-dropdown .uk-drop-grid > :first-child { padding-right: 72px; }
.uk-navbar-dropdown .uk-drop-grid > :nth-child(2) { border-left: none !important; padding-left: 0; }
.tm-drop-foot { margin-top: 32px; padding-top: 22px; border-top: 1px solid var(--tm-border); }
.tm-drop-foot > a { font-size: 13px; font-weight: 700; letter-spacing: 0.04em; color: var(--gold-deep); }
.tm-drop-foot > a:hover { color: var(--gold-brand); }
.tm-btn-row { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.uk-nav-header { color: var(--gold-brand); font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; padding: 0 0 14px !important; margin: 0; }
.uk-navbar-dropdown-nav > li.uk-nav-header:not(:first-child) { margin-top: 28px; }
.uk-navbar-dropdown-nav > li.uk-nav-divider { margin: 20px 0 !important; border-top: 1px solid var(--tm-border); }
.uk-navbar-dropdown-nav > li > a.uk-text-primary { color: var(--gold-deep); font-weight: 700; }
[uk-navbar-parent-icon] { margin-left: 4px; }

/* ---------- \u041f\u043e\u0438\u0441\u043a: \u043c\u043e\u0434\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u043d\u043e ---------- */
.tm-search-input-wrap { position: relative; }
#tm-search-input { padding-left: 46px; height: 52px; font-size: 17px; }
.tm-search-input-wrap [uk-icon] { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--tm-text-muted); pointer-events: none; }
.tm-search-results { max-height: 50vh; overflow-y: auto; margin-top: 20px; }
.tm-search-result { display: block; padding: 14px 4px; border-bottom: 1px solid var(--tm-border); text-decoration: none; }
.tm-search-result:hover { text-decoration: none; }
.tm-search-result:last-child { border-bottom: none; }
.tm-search-result-group { display: block; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold-brand); font-weight: 700; margin-bottom: 4px; }
.tm-search-result-title { display: block; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 17px; color: var(--tm-text-main); margin-bottom: 3px; }
.tm-search-result-desc { display: block; font-size: 14px; color: var(--tm-text-muted); line-height: 1.5; }
.tm-search-btn { background: none; border: none; color: inherit; cursor: pointer; display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 6px; margin-left: 24px; }
.uk-navbar-toggle { min-width: 44px; min-height: 44px; }

/* ---------- \u041a\u0430\u0440\u0442\u0430 \u0441\u0430\u0439\u0442\u0430 ---------- */
.tm-sitemap-col h3 { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-brand); margin: 0 0 18px; }
.tm-sitemap-col ul { list-style: none; margin: 0; padding: 0; }
.tm-sitemap-col li { margin-bottom: 14px; }
.tm-sitemap-col li a { font-size: 17px; color: var(--tm-text-main); text-decoration: none; }
.tm-sitemap-col li a:hover { color: var(--gold-brand); }
.tm-sitemap-col li ul { margin: 10px 0 0 18px; }
.tm-sitemap-col li ul li { margin-bottom: 8px; }
.tm-sitemap-col li ul li a { font-size: 14.5px; color: var(--tm-text-muted); }

/* \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0444\u043e\u043d\u043e\u0432\u044b\u0445 \u0430\u043a\u0446\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u0432\u0435\u0442\u043b\u044b\u0445 \u0441\u0435\u043a\u0446\u0438\u0439 */
.tm-mark-corner-tl-ghost, .tm-mark-corner-br-ghost, .tm-mark-arrow-ghost { position: relative; }
.tm-mark-corner-tl-ghost::before { content: ''; position: absolute; top: 40px; left: 0; width: 220px; height: 220px; border-top: 2px solid var(--gold-brand); border-left: 2px solid var(--gold-brand); opacity: 0.1; pointer-events: none; z-index: 0; }
.tm-mark-corner-br-ghost::before { content: ''; position: absolute; bottom: 40px; right: 0; width: 220px; height: 220px; border-bottom: 2px solid var(--gold-brand); border-right: 2px solid var(--gold-brand); opacity: 0.1; pointer-events: none; z-index: 0; }
.tm-mark-arrow-ghost::before { content: ''; position: absolute; top: 50%; right: 6%; width: 260px; height: 180px; transform: translateY(-50%); opacity: 0.06; pointer-events: none; z-index: 0; background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%238a8f96%22%20stroke-width%3D%223%22%3E%3Cline%20x1%3D%2210%22%20y1%3D%2250%22%20x2%3D%2275%22%20y2%3D%2250%22%2F%3E%3Cpath%20d%3D%22M50%2C25%20L75%2C50%20L50%2C75%22%2F%3E%3Cpath%20d%3D%22M30%2C25%20L55%2C50%20L30%2C75%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-size: contain; }
.tm-mark-corner-tl-ghost > .uk-container, .tm-mark-corner-br-ghost > .uk-container, .tm-mark-arrow-ghost > .uk-container { position: relative; z-index: 1; }
@media (max-width: 639px) { .tm-mark-corner-tl-ghost::before, .tm-mark-corner-br-ghost::before { width: 130px; height: 130px; } .tm-mark-arrow-ghost::before { width: 150px; height: 110px; } }

.uk-section-large { padding-top: 96px; padding-bottom: 96px; }
@media (max-width: 959px) { .uk-section-large { padding-top: 64px; padding-bottom: 64px; } }
@media (max-width: 639px) { .uk-section-large { padding-top: 48px; padding-bottom: 48px; } }
footer.uk-section-large { padding-top: 72px; padding-bottom: 32px; }
.tm-footer-col-gap { row-gap: 32px; }
/* ---------- Modernist alignment pass: flatten decorative marks, unify photography ---------- */
.tm-hero-static>img,.tm-outcome-media img,.tm-page-hero img,.tm-case-hero img,.tm-geo-card img,.tm-blog-figure img,.tm-blog-overlay-card img,.tm-case-figure img,.tm-team-photo img,.tm-cluster-media>img,.tm-cluster-item img,.tm-case-gallery-item img,.tm-case-related-card img,.tm-flip-card-face img,.tm-author-avatar img{filter:saturate(0.92) contrast(1.05)}
.uk-slideshow-items img{filter:saturate(0.92) contrast(1.05)}
.tm-office-dot{transform:translate(-50%,-50%)!important;border-radius:0!important}
.tm-cluster-num::before{background:var(--dark-primary);border:1.5px solid var(--gold-brand)}
.tm-verify-num::before{border:1.5px solid var(--gold-brand);background:var(--white-bg)}
.tm-hero-kicker-num::before{background:var(--gold-brand)}
.tm-hero-arrow::after{transform:none!important;border-radius:0!important}
.tm-illustration { width: 100%; height: auto; max-width: 420px; margin: 0 auto; display: block; overflow: visible; }
.tm-hero-arrow:hover::after{transform:none!important}
.tm-hero-progress>*{clip-path:none}
.tm-hero-index-current::before{transform:none!important;border-radius:0!important}
.tm-verify-num{font-style:normal}
h1,h2,h3,h4,h5,h6,.uk-h1,.uk-h2,.uk-h3,.uk-h4,.uk-h5,.uk-h6,.uk-heading-small,.uk-heading-medium,.uk-heading-large{font-weight:800;letter-spacing:-0.01em}
.tm-navbar .uk-navbar-item.uk-logo span:first-child{letter-spacing:0.02em!important;font-weight:800!important}
.tm-navbar{background:transparent;border-bottom:1px solid var(--tm-border);padding:0!important;min-height:76px;display:flex;align-items:center;position:relative;z-index:1000}
.tm-navbar > .uk-container{flex:1 1 auto;width:100%;min-width:0}
.tm-navbar::before{content:'';position:absolute;inset:0;background:var(--white-bg);z-index:-1}
.tm-navbar .uk-navbar-item.uk-logo svg{width:44px!important;height:44px!important}
.tm-navbar .uk-navbar-item.uk-logo span:first-child{font-size:20px!important}
.tm-navbar .uk-navbar-item.uk-logo span:last-child{font-size:10px!important;margin-top:3px!important}
.tm-nav-cta{height:42px!important;line-height:40px!important;padding:0 22px!important;min-height:42px!important;font-size:12px!important}
.tm-verify-num{width:46px!important;height:46px!important;min-width:46px!important;font-size:15px!important}
.uk-section-large{padding-top:96px;padding-bottom:96px}
@media (max-width:959px){.uk-section-large{padding-top:64px;padding-bottom:64px}}
@media (max-width:639px){.uk-section-large{padding-top:48px;padding-bottom:48px}}
footer.uk-section-large{padding-top:72px;padding-bottom:32px}

/* ---------- Типографика: читаемость текста и списков ---------- */
p { text-wrap: pretty; }
.uk-text-lead { font-size: clamp(19px, 1.5vw, 22px); line-height: 1.6; font-weight: 400; }
.uk-text-small { font-size: 15px !important; line-height: 1.6; }
.uk-text-large { font-size: 19px; line-height: 1.55; }
.uk-card-body p, .tm-service-card p { font-size: 16.5px; line-height: 1.62; }
.tm-article-body { font-size: 18px; line-height: 1.78; }
.tm-article-body p { margin-bottom: 1.15em; }
.tm-article-body h2 { font-size: clamp(24px, 2.2vw, 31px); margin-top: 2em; margin-bottom: 0.7em; }
.tm-article-body h3 { font-size: clamp(20px, 1.8vw, 24px); margin-top: 1.6em; margin-bottom: 0.5em; }
.tm-article-body ul:not(.tm-spec-list) { padding-left: 0; list-style: none; }
.tm-article-body ul:not(.tm-spec-list) > li { position: relative; padding: 8px 0 8px 30px; font-size: 17.5px; line-height: 1.62; }
.tm-blog-meta, .tm-case-kpi-label { font-size: 13px; }
footer .uk-nav-default > li > a { font-size: 15.5px; }

/* ---------- Маркеры обычных списков: точка с «пульсом» ---------- */
.tm-article-body ul:not(.tm-spec-list) > li::before,
.tm-dot-list > li::before {
  content: ''; position: absolute; left: 4px; top: 18px; width: 8px; height: 8px;
  background: var(--gold-brand); border-radius: 50%;
  transition: box-shadow 0.35s ease;
}
.tm-article-body ul:not(.tm-spec-list) > li:hover::before,
.tm-dot-list > li:hover::before { box-shadow: 0 0 0 8px var(--gold-medium); }
 }

/* нумерованные списки статей — золотой счётчик */
.tm-article-body ol { counter-reset: tm-li; list-style: none; padding-left: 0; }
.tm-article-body ol > li { counter-increment: tm-li; position: relative; padding: 8px 0 8px 44px; font-size: 17.5px; line-height: 1.62; }
.tm-article-body ol > li::before {
  content: counter(tm-li); position: absolute; left: 0; top: 8px;
  width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700; color: var(--gold-deep);
  border: 1.5px solid var(--gold-brand); transition: all 0.3s ease;
}
.tm-article-body ol > li:hover::before { background: var(--gold-brand); color: #fff; }

@media (max-width: 639px) {
  body { font-size: 16.5px; }
  .tm-spec-list > li { font-size: 16px; }
  .tm-article-body { font-size: 17px; }
}

/* ---------- Читаемость: минимальный кегль для вспомогательного текста ---------- */
/* uk-text-muted задаёт только цвет — без размера абзацы наследовали мелкий кегль родителя */
p.uk-text-muted:not(.uk-text-lead) { font-size: 17px; line-height: 1.7; }
.uk-grid > div > p.uk-text-muted:not(.uk-text-lead), .uk-card-body > p.uk-text-muted:not(.uk-text-lead) { font-size: 16.5px; line-height: 1.68; }
p.uk-text-lead { font-size: clamp(19px, 1.5vw, 22px); line-height: 1.6; }
p.uk-text-muted.uk-text-small, .uk-text-small.uk-text-muted { font-size: 15px; line-height: 1.6; }
/* комфортная длина строки — 65–75 знаков */
.uk-container p:not(.tm-kicker):not(.uk-text-small) { max-width: 68ch; }
.uk-container .uk-grid p, .uk-container .uk-card-body p, .uk-container .tm-spec-list li { max-width: none; }

/* карточки значения бренда */
.tm-brand-grid > div { padding-top: 22px; border-top: 2px solid var(--gold-brand); }
.tm-brand-grid h3 { font-size: 15px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-deep); margin-bottom: 12px; }
.tm-brand-grid p { font-size: 16.5px; line-height: 1.68; }

/* ---------- Схемы-иллюстрации (растровые) ---------- */
/* Диаграммы исключены из общего grayscale — акцент несёт смысл, а не декор */
.tm-diagram { width: 100%; height: auto; display: block; border: 1px solid var(--tm-border); filter: none; }
@media (max-width: 959px) { .tm-diagram { max-width: 560px; margin: 0 auto; } }

/* ================= Правки по UX-аудиту ================= */

/* ---------- Контактная полоса в шапке (п.6 аудита) ---------- */
.tm-topbar { background: var(--dark-primary); border-bottom: 1px solid rgba(212,147,0,0.22); }
.tm-topbar-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; min-height: 40px; }
.tm-topbar-fact { display: inline-flex; align-items: center; gap: 9px; font-size: 15px; color: rgba(238,233,224,0.78); }
.tm-topbar-fact [uk-icon] { color: var(--gold-brand); }
.tm-topbar-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 28px; }
.tm-topbar-link { display: inline-flex; align-items: center; gap: 9px; min-height: 40px; padding: 0 2px; font-size: 15px; font-weight: 500; color: var(--white-bg); text-decoration: none; transition: color 0.2s ease; }
.tm-topbar-link [uk-icon] { color: var(--gold-brand); transition: transform 0.25s ease; }
.tm-topbar-link:hover { color: var(--gold-light-text); text-decoration: none; }
.tm-topbar-link:hover [uk-icon] { transform: translateX(2px); }
@media (max-width: 639px) {
  .tm-topbar-row { justify-content: center; min-height: 0; padding: 6px 0; }
  .tm-topbar-fact { width: 100%; justify-content: center; font-size: 14px; }
  .tm-topbar-links { width: 100%; justify-content: center; gap: 4px 20px; }
  .tm-topbar-link { min-height: 44px; }
}

/* ---------- Статичный первый экран (п.1 аудита) ---------- */
.tm-hero-static { min-height: min(88vh, 820px); overflow: hidden; }
/* плотный скрим: текст поверх фотографии должен читаться и на мобильном при низкой яркости */
.tm-hero-scrim { background:
  linear-gradient(100deg, rgba(26,22,18,0.93) 0%, rgba(26,22,18,0.84) 36%, rgba(26,22,18,0.46) 64%, rgba(26,22,18,0.24) 100%); }
.tm-hero-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-top: 34px; }
.tm-hero-btn { min-height: 52px; padding: 0 34px; font-size: 16.5px; display: inline-flex; align-items: center; }
.tm-hero-note { margin: 0; font-size: 16px; line-height: 1.5; color: rgba(238,233,224,0.66); max-width: 42ch; }
.tm-hero-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 15.5px; font-weight: 500; color: var(--gold-light-text); text-decoration: none; border-bottom: 1px solid rgba(234,180,58,0.35); }
.tm-hero-link:hover { color: var(--white-bg); border-bottom-color: var(--gold-brand); text-decoration: none; }
.tm-hero-link [uk-icon] { transition: transform 0.25s ease; }
.tm-hero-link:hover [uk-icon] { transform: translateX(3px); }
@media (max-width: 639px) {
  .tm-hero-static { min-height: 0; padding: 96px 0 72px; }
  .tm-hero-scrim { background: linear-gradient(180deg, rgba(26,22,18,0.9) 0%, rgba(26,22,18,0.95) 100%); }
  .tm-hero-btn { width: 100%; justify-content: center; }
}

/* ---------- Полоса фактов вместо бегущей строки (п.2, п.7 аудита) ---------- */
.tm-factband { background: var(--dark-secondary); padding: 40px 0; border-bottom: 1px solid rgba(212,147,0,0.2); }
.tm-factband-grid { display: grid; grid-template-columns: 1fr; gap: 28px; }
@media (min-width: 640px) { .tm-factband-grid { grid-template-columns: repeat(3, 1fr); gap: 40px; } }
.tm-fact { display: grid; gap: 6px; padding-left: 20px; border-left: 2px solid var(--gold-brand); }
.tm-fact-icon { color: var(--gold-brand); margin-bottom: 4px; }
.tm-fact-value { margin: 0; font-size: 19px; font-weight: 700; color: var(--white-bg); line-height: 1.3; }
.tm-fact-label { margin: 0; font-size: 15px; line-height: 1.55; color: rgba(238,233,224,0.62); }
.tm-fact-label a { color: var(--gold-light-text); border-bottom: 1px solid rgba(234,180,58,0.35); }
.tm-fact-label a:hover { color: var(--white-bg); border-bottom-color: var(--gold-brand); text-decoration: none; }

/* ---------- Микротекст у форм (п.8 аудита) ---------- */
.tm-form-note { margin: 12px 0 0; font-size: 16px; line-height: 1.55; color: var(--tm-text-muted); padding-left: 13px; border-left: 2px solid var(--gold-medium); }

/* ---------- Мега-меню: подпись в подвале ---------- */
.tm-drop-foot-note { font-size: 14px; color: var(--tm-text-muted); }
@media (min-width: 960px) { .tm-drop-foot { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; flex-wrap: wrap; } }

/* ---------- Touch-таргеты 44px (п.7 аудита, WCAG 2.2) ---------- */
@media (max-width: 959px) {
  .uk-nav-default > li > a, .uk-nav-primary > li > a, #mobile-menu a { min-height: 44px; display: flex; align-items: center; }
  .uk-button { min-height: 44px; }
  footer .uk-nav-default > li > a { padding-top: 6px; padding-bottom: 6px; }
}

/* ---------- Иконка-якорь сверху карточки (п.4 аудита) ---------- */
.tm-icon-circle-top { margin-right: 0; margin-bottom: 18px; }
.tm-card-icon-top { display: flex; flex-direction: column; }
.tm-service-card:hover .tm-icon-circle-top::before, .tm-service-card:focus-within .tm-icon-circle-top::before { border-color: var(--gold-brand); background: var(--gold-medium); }
.bg-dark-contrast .tm-icon-circle-top::before { background: rgba(212,147,0,0.14); border-color: rgba(234,180,58,0.5); }


/* ---------- Секция «Что это даёт заказчику» ---------- */
.tm-outcome-media { overflow: hidden; margin-bottom: 26px; border: 1px solid var(--tm-border); }
.tm-outcome-media img { width: 100%; height: 260px; object-fit: cover; display: block; transition: transform 0.6s ease; }
.tm-outcome-media:hover img { transform: scale(1.03); }

/* ---------- Тихая текстовая ссылка вместо второй кнопки (п.5 рекомендаций) ---------- */
/* В бегущем тексте ссылка должна вести себя как текст: inline-flex делал её
   неразрывным боксом, который переносил слова внутри себя и рвал абзац.
   Для отдельно стоящих ссылок-действий есть модификатор .tm-inline-link-cta. */
.tm-inline-link { display: inline; padding-block: 3px; font-size: 16px; font-weight: 600; color: var(--gold-light-text); text-decoration: none; border-bottom: 1px solid var(--gold-medium); transition: color .2s ease, border-color .2s ease; }
.tm-inline-link [uk-icon] { display: inline-block; vertical-align: middle; margin-left: 7px; }
.tm-inline-link-cta { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.tm-inline-link-cta [uk-icon] { margin-left: 0; }
.tm-inline-link:hover { color: var(--white-bg); border-bottom-color: var(--gold-brand); text-decoration: none; }
.uk-background-default .tm-inline-link, .uk-background-muted .tm-inline-link { color: var(--gold-deep); border-bottom-color: var(--gold-medium); }
.uk-background-default .tm-inline-link:hover, .uk-background-muted .tm-inline-link:hover { color: var(--dark-primary); border-bottom-color: var(--gold-brand); }
.tm-inline-link [uk-icon] { transition: transform 0.25s ease; }
.tm-inline-link:hover [uk-icon] { transform: translateX(3px); }

/* ---------- Свёрнутая правовая информация в подвале (п.10 аудита) ---------- */
.tm-legal { max-width: 760px; }
.tm-legal > summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 9px; min-height: 44px; font-size: 14.5px; font-weight: 500; color: rgba(238,233,224,0.72); transition: color 0.2s ease; }
.tm-legal > summary::-webkit-details-marker { display: none; }
.tm-legal > summary::before { content: ''; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); transition: transform 0.25s ease; }
.tm-legal[open] > summary::before { transform: rotate(45deg); }
.tm-legal > summary:hover { color: var(--gold-brand); }
.tm-legal > p { margin: 10px 0 0; font-size: 14px; line-height: 1.6; color: rgba(238,233,224,0.64); max-width: 760px; }

/* ---------- База в Циндао в подвале — как факт, а не сноска (п.10 аудита) ---------- */
.tm-footer-base { margin-top: 26px; padding-left: 16px; border-left: 2px solid var(--gold-brand); display: grid; gap: 3px; }
.tm-footer-base-value { margin: 0; font-size: 16px; font-weight: 600; color: var(--white-bg); line-height: 1.4; }
.tm-footer-base-label { margin: 0; font-size: 14.5px; color: rgba(238,233,224,0.6); line-height: 1.5; }

/* ---------- «Быстрый старт»: контрастная подача (п.9 аудита) ---------- */
/* тёмная полоса между светлыми секциями — единственная такая подача на странице */
.tm-quickstart { border-top: 2px solid var(--gold-brand); border-bottom: 2px solid var(--gold-brand); }
.tm-quickstart .tm-kicker { color: var(--gold-brand); }
.tm-quickstart .uk-card-default { border: 1px solid var(--gold-medium); box-shadow: none; }
.tm-quickstart .uk-card-default:hover { border-color: var(--gold-brand); }

/* ---------- Статичный hero: поток вместо абсолютного позиционирования ---------- */
/* у слайдера кадр был absolute + flex-end; без слайдера содержимое выше сгиба обрезалось */
.tm-hero-static > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 46%; }
.tm-hero-static .tm-hero-frame { position: relative; inset: auto; align-items: center; min-height: inherit; }
.tm-hero-static .tm-hero-content { padding: 104px 60px 104px; max-width: 820px; }
.tm-hero-static .tm-hero-title { font-size: clamp(34px, 4.2vw, 58px); }
.tm-hero-static .tm-hero-lead { max-width: 620px; font-size: 18.5px; }
.tm-hero-lead-sub { font-size: 17px !important; opacity: 0.74; margin-top: 14px; }
.tm-hero-static .tm-hero-kicker { color: var(--gold-light-text); letter-spacing: 0.2em; }
@media (max-width: 959px) { .tm-hero-static .tm-hero-content { padding: 72px 24px 72px; } }
@media (max-width: 639px) { .tm-hero-static { padding: 0; } .tm-hero-static .tm-hero-content { padding: 56px 20px 56px; } }

/* ---------- Финальный CTA: одна кнопка + микротекст (п.5 аудита) ---------- */
.tm-cta-stack { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.tm-cta-note { margin: 0; font-size: 16px; line-height: 1.55; color: var(--tm-text-muted); max-width: 46ch; text-align: center; }
.bg-dark-contrast .tm-cta-note { color: rgba(238,233,224,0.62); }
.bg-gold-overlay .tm-cta-note { color: var(--tm-text-muted); }
.bg-gold-overlay .tm-inline-link { color: #8A4400; border-bottom-color: var(--gold-brand); }
.bg-gold-overlay .tm-inline-link:hover { color: var(--dark-primary); border-bottom-color: var(--gold-brand); }
@media (max-width: 639px) { .tm-cta-stack .tm-hero-btn { width: 100%; } }

 }

/* ---------- Меню-сайтмап: модалка на весь экран, мозаика как в «Принципах» ---------- */
.tm-nav-plus { width: 9px; height: 9px; margin-left: 10px; flex-shrink: 0; background: none; border: 1.5px solid var(--gold-brand); transform: rotate(45deg); transition: background 0.25s ease; }
.uk-navbar-nav > li > a:hover .tm-nav-plus { background: var(--gold-brand); }
.uk-navbar-nav > li > a { display: flex; align-items: center; }

.tm-menu-modal .uk-modal-dialog { background: var(--dark-primary); }
/* крестик: без белой плашки, поверх фона модалки, жирный и крупный */
.tm-menu-modal .uk-modal-close-full { top: 0; right: 0; z-index: 20; padding: 26px 30px; background: none; color: var(--white-bg); transition: color 0.2s ease; }
.tm-menu-modal .uk-modal-close-full:hover, .tm-menu-modal .uk-modal-close-full:focus { background: none; color: var(--gold-brand); }
.tm-menu-modal .uk-modal-close-full svg { width: 34px; height: 34px; }
.tm-menu-modal .uk-modal-close-full svg * { stroke-width: 2.4; }
.tm-menu-inner { display: flex; flex-direction: column; justify-content: center; gap: 36px; min-height: 100vh; padding: 96px 0 72px; }
.tm-menu-inner > .uk-container { width: 100%; box-sizing: border-box; }
.tm-menu-title { color: var(--white-bg); margin: 6px 0 0; }
.tm-menu-modal .tm-kicker { color: var(--gold-brand); }

.tm-menu-grid { background: rgba(238,233,224,0.14); }
.tm-menu-card { position: relative; background: var(--dark-primary); padding: 34px 32px 30px; overflow: hidden; border: 1px solid rgba(238,233,224,0.14); margin: -1px 0 0 -1px; box-sizing: border-box; }
.tm-menu-card-lg { padding: 40px 34px 34px; }
.tm-menu-card > p, .tm-menu-card > h3, .tm-menu-card > ul, .tm-menu-card > a, .tm-menu-card > div:not([class*="tm-mark"]) { position: relative; z-index: 1; }
.tm-menu-card-kicker { margin: 0 0 14px; font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold-brand); }
.tm-menu-card-title { margin: 0 0 22px; padding-bottom: 16px; color: var(--white-bg); border-bottom: 1px solid rgba(238,233,224,0.16); }
.tm-menu-card-title a { color: var(--white-bg); text-decoration: none; }
.tm-menu-card-title a:hover { color: var(--gold-brand); text-decoration: none; }

.tm-menu-list { display: block; }
.tm-menu-list > li { margin: 0; }
.tm-menu-list > li > a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 6px 0; font-size: 16px; line-height: 1.4; color: rgba(238,233,224,0.76); text-decoration: none; transition: color 0.2s ease; }
.tm-menu-list > li > a::before { content: ''; width: 6px; height: 6px; flex-shrink: 0; border: 1.4px solid var(--gold-brand); transform: rotate(45deg); transition: background 0.25s ease, border-color 0.25s ease; }
.tm-menu-list > li > a:hover { color: var(--white-bg); text-decoration: none; }
footer .tm-menu-list > li > a:hover, footer .tm-menu-list > li > a:focus-visible { color: var(--gold-pale); }
.tm-menu-list > li > a:hover::before { background: var(--gold-brand); }

.tm-menu-card-cta { background: linear-gradient(150deg, rgba(212,147,0,0.16), transparent 65%), var(--dark-primary); }
.tm-menu-cta-text { margin: 0 0 22px; font-size: 15.5px; line-height: 1.6; color: rgba(238,233,224,0.72); }
.tm-menu-cta-btn { width: 100%; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
.tm-menu-contacts { display: grid; gap: 4px; margin-top: 22px; }
.tm-menu-contacts a { display: flex; align-items: center; gap: 11px; min-height: 44px; font-size: 15.5px; color: var(--gold-light-text); text-decoration: none; }
.tm-menu-contacts a:hover { color: var(--white-bg); text-decoration: none; }
.tm-menu-cta-base { margin: 16px 0 0; padding-top: 16px; font-size: 14.5px; line-height: 1.5; color: rgba(238,233,224,0.74); border-top: 1px solid rgba(238,233,224,0.16); }

@media (max-width: 959px) {
  .tm-menu-inner { min-height: 0; padding: 80px 0 56px; gap: 26px; }
  .tm-menu-card, .tm-menu-card-lg { padding: 28px 24px 24px; }
}

/* ---------- Типовые ситуации: флип-карточки ---------- */
/* обе стороны лежат в одной ячейке грида, поэтому высота = самая высокая сторона:
   фиксированных height нет, ряды выравниваются сами, текст не обрезается */
.tm-sit-card { display: block; height: 100%; perspective: 1600px; text-decoration: none; color: inherit; }
.tm-sit-card:hover, .tm-sit-card:focus { text-decoration: none; color: inherit; }
.tm-sit-inner { position: relative; display: grid; grid-template-areas: "face"; height: 100%; min-height: 268px; transform-style: preserve-3d; transition: transform 0.62s cubic-bezier(0.4,0,0.2,1); }
.tm-sit-card:hover .tm-sit-inner, .tm-sit-card:focus-visible .tm-sit-inner { transform: rotateY(180deg); }
.tm-sit-face { grid-area: face; display: flex; flex-direction: column; padding: 30px 28px; box-sizing: border-box; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.tm-sit-front { background: var(--white-bg); border: 1px solid var(--tm-border); }
.tm-sit-front .tm-icon-circle-top { margin: 4px 0 18px; }
.tm-sit-front .tm-sit-title { margin: 0; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 19px; font-weight: 700; line-height: 1.35; color: var(--tm-text-main) !important; opacity: 1 !important; text-wrap: pretty; }
.tm-sit-cue { display: flex; align-items: center; gap: 7px; margin-top: auto; padding-top: 20px; font-size: 13.5px; font-weight: 600; letter-spacing: 0.04em; color: var(--gold-deep); }
.tm-sit-back { transform: rotateY(180deg); background: var(--dark-secondary); border: 1px solid var(--gold-brand); }
.tm-sit-back-label { font-size: 12px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-brand); margin-bottom: 16px; }
.tm-sit-back .tm-sit-desc { margin: 0; font-size: 16px; line-height: 1.6; color: rgba(238,233,224,0.88) !important; opacity: 1 !important; max-width: none; text-wrap: pretty; }
.tm-sit-link { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 20px; font-size: 15px; font-weight: 600; color: var(--gold-light-text); }
.tm-sit-card:focus-visible { outline: none; }
.tm-sit-card:focus-visible .tm-sit-inner { outline: 2px solid var(--gold-brand); outline-offset: 3px; }

/* без наведения (тач) переворот не работает — показываем обе стороны в потоке */
@media (hover: none) {
  .tm-sit-inner { display: block; min-height: 0; transform: none !important; transition: none; }
  .tm-sit-face { backface-visibility: visible; -webkit-backface-visibility: visible; }
  .tm-sit-front { border-bottom: none; }
  .tm-sit-back { transform: none; border-top: 2px solid var(--gold-brand); }
  .tm-sit-front .tm-sit-cue { display: none; }
  .tm-sit-back-label { display: none; }
  .tm-sit-front { padding-bottom: 24px; }
  .tm-sit-back { padding-top: 22px; }
}
/* На телефонах оборот скрыт: описание услуги целиком есть на её странице,
   куда ведёт сама карточка. Брейкпоинт совпадает с UIkit @s (640px). */
@media (max-width: 639px) {
  /* переворот выключаем здесь же: иначе на узком окне с мышью лицевая сторона
     разворачивается от зрителя, а оборот уже display:none — ячейка пустеет */
  .tm-sit-inner { display: block; min-height: 0; transform: none !important; transition: none; }
  .tm-sit-face { backface-visibility: visible; -webkit-backface-visibility: visible; }
  .tm-sit-back { display: none; }
  .tm-sit-front { border-bottom: 1px solid var(--tm-border); padding-bottom: 26px; }
  .tm-sit-front .tm-sit-cue { display: flex; }
}
@media (prefers-reduced-motion: reduce) { .tm-sit-inner { transition: none; } }

/* лицевая сторона флип-карточки светлая, поэтому ромб берёт светлую вариацию,
   а не тёмную от .bg-dark-contrast */
.tm-sit-front .tm-icon-circle-top::before { background: var(--gold-light); border-color: var(--gray); }
.tm-sit-card:hover .tm-sit-front .tm-icon-circle-top::before { border-color: var(--gold-brand); background: var(--gold-medium); }

/* ================= Приёмы, перенесённые из референса ================= */

/* моношрифт только для меток и спецификаций */


/* ---------- Надзаголовок с чертой ---------- */
.tm-kicker { position: relative; display: flex; align-items: center; gap: 14px; margin: 0 0 30px; padding: 13px 0 0 15px; font-family: var(--tm-mono); font-size: 13px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-deep); }
.tm-kicker::before { content: ''; position: absolute; left: 0; top: 0; width: 15px; height: 15px; border-left: 2px solid currentColor; border-top: 2px solid currentColor; }
.bg-dark-contrast .tm-kicker { color: var(--gold-light-text); }
.bg-gold-overlay .tm-kicker { color: #8A4400; }
.tm-kicker-hero, .tm-kicker.uk-light, .uk-light .tm-kicker, .tm-page-hero-content .tm-kicker { color: var(--gold-light-text); }
@media (max-width: 639px) { .tm-kicker { font-size: 12px; margin-bottom: 22px; padding: 11px 0 0 12px; } .tm-kicker::before { width: 12px; height: 12px; } }

/* ---------- Сетка-миллиметровка ---------- */
.tm-blueprint { pointer-events: none; background-image: linear-gradient(rgba(234,194,105,0.07) 1px, transparent 1px), linear-gradient(90deg, rgba(234,194,105,0.07) 1px, transparent 1px); background-size: 60px 60px; -webkit-mask-image: radial-gradient(ellipse 90% 80% at 32% 42%, #000, transparent); mask-image: radial-gradient(ellipse 90% 80% at 32% 42%, #000, transparent); }

/* ---------- Ромб-призрак в углу ---------- */
.tm-hero-ghost { position: absolute; right: -90px; bottom: -130px; width: 620px; height: 620px; color: var(--gold-light-text); opacity: 0.085; pointer-events: none; }
.tm-hero-ghost svg { width: 100%; height: 100%; }
@media (max-width: 959px) { .tm-hero-ghost { right: -140px; bottom: -170px; width: 420px; height: 420px; } }
@media (max-width: 639px) { .tm-hero-ghost { display: none; } }

/* ---------- Спецификации моно-капсом в два столбца ---------- */
.tm-specs { display: grid; grid-template-columns: 1fr; gap: 0 56px; margin: 0; }
@media (min-width: 640px) { .tm-specs { grid-template-columns: 1fr 1fr; } }
.tm-specs > div { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 15px 0; border-bottom: 1px solid rgba(234,194,105,0.16); font-family: var(--tm-mono); font-size: 12.5px; letter-spacing: 0.09em; text-transform: uppercase; }
.tm-specs dt { margin: 0; color: rgba(238,233,224,0.52); }
.tm-specs dd { margin: 0; font-weight: 500; color: var(--white-bg); text-align: right; }
.tm-specs dd a { color: var(--gold-light-text); border-bottom: 1px solid rgba(234,194,105,0.4); }
.tm-specs dd a:hover { color: var(--white-bg); border-bottom-color: var(--gold-brand); text-decoration: none; }

/* ---------- Первый экран: янтарная кнопка (вторичный цвет B) ---------- */
.tm-hero-static .uk-button-primary { background: var(--gold-amber); color: var(--dark-primary); letter-spacing: 0.04em; text-transform: uppercase; font-weight: 700; }
.tm-hero-static .uk-button-primary:hover, .tm-hero-static .uk-button-primary:focus { background: var(--gold-amber-hi); color: var(--dark-primary); }
.tm-hero-static .tm-hero-title { letter-spacing: -0.022em; line-height: 1.05; }

/* ---------- Сетка ячеек вплотную: разделители — просвет фона ---------- */
.tm-cell-grid { background: rgba(234,194,105,0.14); gap: 0; }
.tm-cell-grid > * { padding: 0; }
.tm-cell { position: relative; display: flex; flex-direction: column; height: 100%; padding: 38px 34px; background: var(--dark-primary); transition: background 0.3s ease; outline-offset: -2px; }
/* просвет 2px по правому и нижнему краю ячейки */
.tm-cell-grid > * > .tm-cell { margin: 0 2px 2px 0; }
.tm-cell:hover, .tm-cell:focus-visible { background: var(--dark-secondary); text-decoration: none; }
.tm-cell h3 { color: var(--white-bg); }
.tm-cell:hover h3 { color: var(--gold-light-text); }
.tm-cell p { color: rgba(238,233,224,0.62); }
.tm-cell .tm-service-icon-badge { color: var(--gold-brand); }
.tm-cell:hover .tm-service-icon-badge { color: var(--gold-light-text); }
@media (max-width: 639px) { .tm-cell { padding: 30px 24px; } }

/* ---------- Закреплённая колонка заголовка ---------- */
.tm-sticky-head { padding-right: 20px; }
@media (max-width: 1199px) { .tm-sticky-head { padding-right: 0; margin-bottom: 46px; } }

/* ---------- Ячейка-перечисление: номер моно + название ---------- */
.tm-cell-plain { justify-content: flex-start; gap: 16px; padding: 34px; }
.tm-cell-num { font-family: var(--tm-mono); font-size: 12.5px; font-weight: 500; letter-spacing: 0.1em; color: var(--gold-brand); }
.tm-cell-title { margin: 0; font-size: 18px; font-weight: 600; line-height: 1.35; color: var(--white-bg); }
.tm-cell-plain:hover .tm-cell-title { color: var(--gold-light-text); }
@media (max-width: 639px) { .tm-cell-plain { padding: 26px 24px; } .tm-cell-title { font-size: 16.5px; } }

.tm-kicker.uk-flex-center { display: inline-flex; width: fit-content; justify-content: center; padding: 13px 15px 0; margin-left: auto; margin-right: auto; }
.tm-kicker.uk-flex-center::after { content: ''; position: absolute; right: 0; top: 0; width: 15px; height: 15px; border-right: 2px solid currentColor; border-top: 2px solid currentColor; }

/* ---------- Светлая вариация сетки ячеек ---------- */
.tm-cell-grid-light { background: var(--gold-medium); }
.tm-cell-grid-light .tm-cell { background: #fff; }
.tm-cell-grid-light .tm-cell:hover, .tm-cell-grid-light .tm-cell:focus-visible { background: var(--gold-light); }
.tm-cell-grid-light .tm-cell h3 { color: var(--tm-text-main); }
.tm-cell-grid-light .tm-cell:hover h3 { color: var(--gold-deep); }
.tm-cell-grid-light .tm-cell p { color: var(--tm-text-muted); }
.tm-cell-grid-light .tm-cell .tm-spec-list > li { border-bottom-color: var(--tm-border); }

/* ---------- Логистика качества: путь из пяти шевронов ---------- */
.tm-flow { display: grid; grid-template-columns: 1fr; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.tm-flow-step { position: relative; display: flex; flex-direction: column; padding: 30px 26px; }
/* ранние шаги должны лежать ВЫШЕ поздних, иначе сосед закрывает наконечник */
.tm-flow-step:nth-child(1) { z-index: 7; }
.tm-flow-step:nth-child(2) { z-index: 6; }
.tm-flow-step:nth-child(3) { z-index: 5; }
.tm-flow-step:nth-child(4) { z-index: 4; }
.tm-flow-step:nth-child(5) { z-index: 3; }
.tm-flow-step:nth-child(6) { z-index: 2; }
.tm-flow-step:nth-child(7) { z-index: 1; }
.tm-flow-num { margin: 0 0 14px; font-family: var(--tm-mono); font-size: 13.5px; font-weight: 700; letter-spacing: 0.18em; }
.tm-flow-title { margin: 0 0 12px; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 19px; font-weight: 700; line-height: 1.3; text-wrap: pretty; }
.tm-flow-desc { margin: 0; font-size: 15px; line-height: 1.55; text-wrap: pretty; }

/* градация золота — движение к результату */
.tm-flow-s1 { background: var(--gold-light-text); }
.tm-flow-s2 { background: #EAB43A; }
.tm-flow-s3 { background: var(--gold-brand); }
.tm-flow-s4 { background: #9F6328; }
.tm-flow-s5 { background: var(--gold-deep); }
.tm-flow-s6 { background: #8A4400; }
.tm-flow-s7 { background: #6E3600; }
/* цвет текста выбран по фактической светлоте шага, а не по номеру:
   #EAC269 / #EAB43A / #D49300 — светлые, #9F7B28 / #8A6000 — тёмные */
.tm-flow-s1, .tm-flow-s2, .tm-flow-s3 { color: var(--dark-primary); }
.tm-flow-s4, .tm-flow-s5, .tm-flow-s6, .tm-flow-s7 { color: #fff; }
.tm-flow-s1 .tm-flow-title, .tm-flow-s2 .tm-flow-title, .tm-flow-s3 .tm-flow-title { color: var(--dark-primary); }
.tm-flow-s4 .tm-flow-title, .tm-flow-s5 .tm-flow-title, .tm-flow-s6 .tm-flow-title, .tm-flow-s7 .tm-flow-title { color: #fff; }
.tm-flow-s1 .tm-flow-desc, .tm-flow-s2 .tm-flow-desc, .tm-flow-s3 .tm-flow-desc { color: rgba(32,30,29,0.86); }
.tm-flow-s4 .tm-flow-desc, .tm-flow-s5 .tm-flow-desc, .tm-flow-s6 .tm-flow-desc, .tm-flow-s7 .tm-flow-desc { color: #fff; }
.tm-flow-s1 .tm-flow-num, .tm-flow-s2 .tm-flow-num { color: rgba(32,30,29,0.72); }
.tm-flow-s3 .tm-flow-num { color: var(--dark-primary); }
.tm-flow-s4 .tm-flow-num, .tm-flow-s5 .tm-flow-num, .tm-flow-s6 .tm-flow-num, .tm-flow-s7 .tm-flow-num { color: #fff; }

/* вертикальный поток: шеврон смотрит вниз */
@media (max-width: 99999px) {
  .tm-flow-step { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 22px), 50% 100%, 0 calc(100% - 22px)); padding-bottom: 52px; margin-bottom: -22px; }
  .tm-flow-step:not(:first-child) { padding-top: 40px; }
  .tm-flow-step:last-child { clip-path: none; padding-bottom: 30px; margin-bottom: 0; }
}
/* горизонтальный поток: шеврон смотрит вправо */
@media (min-width: 1200px) {
  .tm-flow-h .tm-flow-step { margin-bottom: 0; padding-bottom: 34px; }
  .tm-flow-h { grid-template-columns: repeat(5, 1fr); }
  .tm-flow-h .tm-flow-step { clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 50%, calc(100% - 26px) 100%, 0 100%, 26px 50%); padding: 34px 28px 34px 48px; margin-right: -26px; }
  .tm-flow-h .tm-flow-step:first-child { clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 50%, calc(100% - 26px) 100%, 0 100%); padding-left: 30px; }
  .tm-flow-h .tm-flow-step:last-child { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 26px 50%); margin-right: 0; }
}

/* ---------- Перечисление как индексная сетка (вместо галочек) ---------- */
.tm-index-list { display: grid; grid-template-columns: 1fr; gap: 0; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .tm-index-list { grid-template-columns: 1fr 1fr; column-gap: 40px; } }
.tm-index-list > li { display: flex; align-items: baseline; gap: 14px; padding: 13px 0; border-bottom: 1px solid rgba(234,194,105,0.18); }
.tm-index-num { font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; color: var(--gold-brand); flex-shrink: 0; }
.tm-index-text { font-size: 16px; line-height: 1.45; text-wrap: pretty; }
.uk-background-default .tm-index-list > li, .uk-background-muted .tm-index-list > li { border-bottom-color: var(--tm-border); }
.uk-background-default .tm-index-num, .uk-background-muted .tm-index-num { color: var(--gold-deep); }

/* ---------- Перечисление как размеченная спецификация (вместо галочек) ---------- */
.tm-spec-list { margin: 0; padding: 0; list-style: none; }
.tm-spec-list > li { position: relative; display: block; padding: 14px 0 14px 30px; border-bottom: 1px solid var(--tm-border); font-size: 16.5px; line-height: 1.5; text-wrap: pretty; }
.tm-spec-list > li::before { content: ''; position: absolute; left: 0; top: 24px; width: 14px; height: 2px; background: var(--gold-brand); }
.tm-spec-list > li:last-child { border-bottom: none; }
.tm-spec-list-sm > li { padding: 11px 0 11px 26px; font-size: 15.5px; }
.tm-spec-list-sm > li::before { top: 20px; width: 11px; }
.bg-dark-contrast .tm-spec-list > li, .bg-dark-paper .tm-spec-list > li, .uk-light .tm-spec-list > li { border-bottom-color: rgba(234,194,105,0.18); }
.uk-light .tm-spec-list > li::before, .bg-dark-contrast .tm-spec-list > li::before { background: var(--gold-light-text); }

/* ---------- Форматы работы: восходящая асимметричная лестница ---------- */
.tm-scale-row { display: flex; align-items: baseline; gap: 22px; padding: 30px 30px 30px 0; border-top: 1px solid rgba(234,194,105,0.22); }
.tm-scale-num { margin: 0; flex-shrink: 0; font-family: var(--tm-mono); font-size: 13px; font-weight: 700; letter-spacing: 0.16em; color: var(--gold-brand); }
.tm-scale-body { min-width: 0; }
.tm-scale-title { margin: 0 0 10px; font-size: clamp(21px, 2vw, 27px); font-weight: 700; line-height: 1.22; color: #fff; }
.tm-scale-desc { margin: 0; font-size: 16.5px; line-height: 1.55; color: rgba(238,233,224,0.7); max-width: 62ch; text-wrap: pretty; }
/* самый полный формат — акцентная полоса */
.tm-scale-row-full { border-top: 2px solid var(--gold-brand); border-bottom: 2px solid var(--gold-brand); background: rgba(212,147,0,0.09); padding-left: 30px; }
.tm-scale-row-full .tm-scale-title { color: var(--gold-light-text); }
@media (min-width: 960px) { .tm-scale-row { padding-right: 60px; } }
@media (max-width: 639px) { .tm-scale-row { gap: 16px; padding: 24px 0; } .tm-scale-row-full { padding: 24px 18px; } }

/* ---------- Быстрый старт: асимметричная мозаика плиток ---------- */
.tm-tile { position: relative; display: flex; flex-direction: column; height: 100%; padding: 28px 30px 60px; background: var(--gold-light); border: 1px solid var(--gold-medium); text-decoration: none; transition: background 0.25s ease, border-color 0.25s ease; }
.tm-tile:hover, .tm-tile:focus-visible { background: var(--dark-primary); border-color: var(--dark-primary); text-decoration: none; }
.tm-tile-icon { color: var(--gold-deep); margin-bottom: 20px; transition: color 0.25s ease; }
.tm-tile-title { margin: 0 0 10px; font-size: 19px; font-weight: 700; line-height: 1.3; color: var(--dark-primary); transition: color 0.25s ease; text-wrap: pretty; }
.tm-tile-desc { margin: 0; font-size: 16px; line-height: 1.5; color: var(--tm-text-muted); max-width: 56ch; transition: color 0.25s ease; text-wrap: pretty; }
.tm-tile-cue { position: absolute; left: 30px; bottom: 26px; color: var(--gold-deep); transition: color 0.25s ease, transform 0.25s ease; }
.tm-tile:hover .tm-tile-icon, .tm-tile:hover .tm-tile-cue { color: var(--gold-light-text); }
.tm-tile:hover .tm-tile-title { color: #fff; }
.tm-tile:hover .tm-tile-desc { color: rgba(238,233,224,0.78); }
.tm-tile:hover .tm-tile-cue { transform: translateX(4px); }
@media (max-width: 639px) { .tm-tile { padding: 24px 22px 56px; } .tm-tile-cue { left: 22px; } }


/* ---------- Типовое решение: полноэкранная карточка ---------- */
.tm-solmodal .uk-modal-dialog { background: var(--dark-primary); }
.tm-solmodal .tm-kicker { color: var(--gold-light-text); }
.tm-solmodal .uk-modal-close-full { background: none; color: #fff; padding: 26px; }
.tm-solmodal .uk-modal-close-full svg * { stroke-width: 2.4; }
.tm-solmodal .uk-modal-close-full:hover { background: none; color: var(--gold-brand); }
.tm-solmodal-inner { padding: 92px 0 72px; min-height: 100vh; overflow-y: auto; }
.tm-solmodal-head { padding-bottom: 34px; margin-bottom: 44px; border-bottom: 2px solid var(--gold-brand); }
.tm-solmodal-title-row { display: flex; align-items: flex-start; gap: 26px; flex-wrap: wrap; }
.tm-solmodal-title { margin: 0 0 12px; font-size: clamp(28px, 3.4vw, 46px); font-weight: 800; line-height: 1.08; letter-spacing: -0.02em; color: #fff; }
.tm-solmodal-lead { margin: 0; font-size: 18px; line-height: 1.55; color: rgba(238,233,224,0.72); max-width: 62ch; text-wrap: pretty; }
.tm-solmodal-group { padding-top: 22px; border-top: 1px solid rgba(234,194,105,0.24); }
.tm-solmodal-gnum { margin: 0 0 8px; font-family: var(--tm-mono); font-size: 12.5px; font-weight: 700; letter-spacing: 0.16em; color: var(--gold-brand); }
.tm-solmodal-ghead { margin: 0 0 6px; font-size: 19px; font-weight: 700; line-height: 1.3; color: var(--gold-light-text); }
.tm-solmodal .tm-spec-list > li { color: rgba(238,233,224,0.86); border-bottom-color: rgba(234,194,105,0.16); font-size: 16px; }
.tm-solmodal .tm-spec-list > li::before { background: var(--gold-light-text); }
.tm-solmodal-foot { margin-top: 52px; padding-top: 34px; border-top: 2px solid var(--gold-brand); display: flex; align-items: center; gap: 16px 34px; flex-wrap: wrap; }
.tm-solmodal-foot .tm-cta-note { text-align: left; color: rgba(238,233,224,0.6); }
@media (max-width: 639px) { .tm-solmodal-inner { padding: 76px 0 56px; } .tm-solmodal-foot .tm-hero-btn { width: 100%; } }

/* ---------- Мегаменю: подчинённый список (отрасли внутри решений) ---------- */
.tm-menu-sublabel { margin: 26px 0 10px; padding-top: 18px; border-top: 1px solid rgba(234,194,105,0.2); font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-brand); }
.tm-menu-list-sub > li > a { font-size: 15.5px; opacity: 0.86; }

/* ---------- Направления: широкий контекст под типовыми решениями ---------- */
/* ---------- Услуги: перекрёстная ссылка под сеткой направлений ---------- */
.tm-svc-crosslink { margin-top: 44px; padding-top: 26px; border-top: 1px solid rgba(234,194,105,0.22); display: flex; align-items: baseline; gap: 12px 28px; flex-wrap: wrap; }
.tm-svc-crosslink p { color: rgba(238,233,224,0.72); }
/* в модалке услуг подвал держит кнопку и ссылку в одной строке */
.tm-solmodal-foot .tm-inline-link { color: var(--gold-light-text); border-bottom-color: rgba(234,194,105,0.4); }
.tm-solmodal-foot .tm-inline-link:hover { color: #fff; border-bottom-color: var(--gold-brand); }

/* модалка проекта на светлом ground — своя вариация тихой ссылки */
.tm-pmodal .tm-inline-link { color: var(--gold-deep); border-bottom-color: var(--gold-medium); }
.tm-pmodal .tm-inline-link:hover { color: var(--dark-primary); border-bottom-color: var(--gold-brand); }

/* ---------- Страница услуги: типовые ситуации обращения ---------- */
.tm-when { padding-top: 22px; border-top: 1px solid var(--tm-border); }
.tm-when-head { margin: 0 0 14px; font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-deep); }
.tm-when-list { display: flex; flex-wrap: wrap; gap: 8px; }
.tm-when-list > span { font-size: 15px; line-height: 1.4; padding: 9px 14px; border: 1px solid var(--gold-medium); color: var(--tm-text-main); background: var(--gold-light); }

/* ---------- Страница услуги: результат и границы ---------- */
.tm-out { display: flex; flex-direction: column; gap: 12px; height: 100%; padding: 26px; background: rgba(212,147,0,0.09); border-top: 2px solid var(--gold-brand); }
.tm-out-num { margin: 0; font-family: var(--tm-mono); font-size: 12.5px; font-weight: 700; letter-spacing: 0.16em; color: var(--gold-brand); }
.tm-out-text { margin: 0; font-size: 16.5px; line-height: 1.5; color: #fff; text-wrap: pretty; }
.tm-svc-limits { margin-top: 44px; padding-top: 26px; border-top: 1px solid rgba(234,194,105,0.22); max-width: 72ch; }
.tm-svc-limits-head { margin: 0 0 10px; font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-brand); }
.tm-svc-limits .tm-inline-link { margin-top: 18px; }

/* ---------- Частые вопросы на странице услуги ---------- */
.tm-faq { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--tm-border); }
.tm-faq > li { border-bottom: 1px solid var(--tm-border); }
.tm-faq > li > .uk-accordion-title { position: relative; display: flex; align-items: baseline; gap: 18px; padding: 22px 40px 22px 0; font-family: 'Noto Sans', 'Noto Sans SC', system-ui, sans-serif; font-size: 18px; font-weight: 700; line-height: 1.35; color: var(--tm-text-main); transition: color 0.2s ease; }
.tm-faq > li > .uk-accordion-title::before { display: none; }
/* собственный знак раскрытия: ромб справа, заливается при открытии */
.tm-faq > li > .uk-accordion-title::after { content: ''; position: absolute; right: 4px; top: 27px; width: 10px; height: 10px; border: 1.6px solid var(--gold-brand); background: none; transform: rotate(45deg); transition: background 0.25s ease; }
.tm-faq > li.uk-open > .uk-accordion-title::after { background: var(--gold-brand); }
.tm-faq > li > .uk-accordion-title:hover, .tm-faq > li.uk-open > .uk-accordion-title { color: var(--gold-deep); }
.tm-faq-num { font-family: var(--tm-mono); font-size: 12.5px; font-weight: 700; letter-spacing: 0.14em; color: var(--gold-brand); flex-shrink: 0; }
.tm-faq-q { min-width: 0; text-wrap: pretty; }
.tm-faq > li > .uk-accordion-content { margin: 0 0 26px; padding-left: 48px; }
.tm-faq-a { margin: 0; font-size: 16.5px; line-height: 1.6; color: var(--tm-text-muted); max-width: 68ch; text-wrap: pretty; }
@media (max-width: 639px) { .tm-faq > li > .uk-accordion-content { padding-left: 0; } .tm-faq > li > .uk-accordion-title { font-size: 17px; gap: 14px; } }

/* золотой CTA всегда отделён линейкой от предыдущей секции */
.bg-gold-overlay { }

/* ================= Проекты: индексные строки (иная раскладка, чем у решений) ================= */
.tm-plist { border-top: 2px solid var(--gold-brand); }
.tm-prow { display: grid; grid-template-columns: auto 1fr; gap: 4px 20px; padding: 26px 0; border-bottom: 1px solid var(--tm-border); text-decoration: none; transition: background 0.2s ease; }
.tm-prow:hover, .tm-prow:focus-visible { background: var(--gold-light); text-decoration: none; }
.tm-prow-num { font-family: var(--tm-mono); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; color: var(--gold-brand); padding-top: 4px; }
.tm-prow-main { display: block; min-width: 0; }
.tm-prow-tag { display: block; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-deep); margin-bottom: 8px; }
.tm-prow-title { display: block; font-size: clamp(20px, 2vw, 26px); font-weight: 700; line-height: 1.25; color: var(--tm-text-main); margin-bottom: 8px; text-wrap: pretty; }
.tm-prow-teaser { display: block; font-size: 16px; line-height: 1.55; color: var(--tm-text-muted); max-width: 68ch; text-wrap: pretty; }
.tm-prow-meta { display: flex; flex-wrap: wrap; gap: 4px 18px; grid-column: 2; margin-top: 14px; }
.tm-prow-role, .tm-prow-term { font-family: var(--tm-mono); font-size: 12.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--tm-text-main); padding: 5px 10px; border: 1px solid var(--gold-medium); }
.tm-prow-cue { grid-column: 2; margin-top: 14px; color: var(--gold-deep); transition: transform 0.25s ease; }
.tm-prow:hover .tm-prow-cue { transform: translateX(4px); }
@media (min-width: 960px) {
  .tm-prow { grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: start; gap: 28px; padding: 30px 8px; }
  .tm-prow-meta { grid-column: auto; margin-top: 4px; flex-direction: column; align-items: flex-start; }
  .tm-prow-cue { grid-column: auto; margin-top: 6px; }
}

/* ================= Проекты: модалка на светлом ground, с боковой полосой фактов ================= */
.tm-pmodal .uk-modal-dialog { background: var(--white-bg); }
.tm-pmodal .uk-modal-close-full { background: none; color: var(--dark-primary); padding: 26px; }
.tm-pmodal .uk-modal-close-full svg * { stroke-width: 2.4; }
.tm-pmodal .uk-modal-close-full:hover { background: none; color: var(--gold-deep); }
.tm-pm-inner { padding: 92px 0 72px; min-height: 100vh; overflow-y: auto; }
.tm-pm-head { padding-bottom: 30px; margin-bottom: 44px; border-bottom: 2px solid var(--gold-brand); }
.tm-pm-title { margin: 0 0 14px; font-size: clamp(28px, 3.4vw, 46px); font-weight: 800; line-height: 1.08; letter-spacing: -0.02em; color: var(--dark-primary); text-wrap: pretty; }
.tm-pm-lead { margin: 0; font-size: 19px; line-height: 1.55; color: var(--tm-text-muted); max-width: 68ch; text-wrap: pretty; }
.tm-pm-grid { display: grid; grid-template-columns: 1fr; gap: 44px; }
@media (min-width: 960px) { .tm-pm-grid { grid-template-columns: 300px minmax(0, 1fr); gap: 64px; } .tm-pm-rail { position: sticky; top: 92px; align-self: start; } }
.tm-pm-facts { border-top: 1px solid var(--tm-border); }
.tm-pm-fact { padding: 14px 0; border-bottom: 1px solid var(--tm-border); }
.tm-pm-fact-label { margin: 0 0 3px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--gold-deep); }
.tm-pm-fact-value { margin: 0; font-size: 16px; line-height: 1.45; color: var(--tm-text-main); font-weight: 600; text-wrap: pretty; }
.tm-pm-lesson { margin-top: 26px; padding: 20px; background: var(--dark-primary); }
.tm-pm-lesson-label { margin: 0 0 8px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-brand); }
.tm-pm-lesson-text { margin: 0; font-size: 16px; line-height: 1.55; color: #fff; text-wrap: pretty; }
.tm-pm-block { padding-top: 26px; margin-bottom: 40px; border-top: 1px solid var(--tm-border); }
.tm-pm-block:first-child { padding-top: 0; border-top: none; }
.tm-pm-h { margin: 0 0 14px; font-size: 22px; font-weight: 700; line-height: 1.25; color: var(--dark-primary); }
.tm-pm-p { margin: 0; font-size: 17px; line-height: 1.65; color: var(--tm-text-muted); max-width: 72ch; text-wrap: pretty; }
.tm-pm-sub { margin: 26px 0 4px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-deep); }
.tm-pm-steps { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; }
.tm-pm-step { display: flex; gap: 18px; padding: 18px 20px; background: rgba(212,147,0,0.09); }
.tm-pm-step-num { font-family: var(--tm-mono); font-size: 12.5px; font-weight: 700; letter-spacing: 0.14em; color: var(--gold-brand); padding-top: 3px; flex-shrink: 0; }
.tm-pm-step-head { margin: 0 0 5px; font-size: 17px; font-weight: 700; line-height: 1.3; color: var(--dark-primary); }
.tm-pm-step-text { margin: 0; font-size: 16px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-pm-hard { border-top: 2px solid var(--gold-brand); }
.tm-pm-hard .tm-pm-p { color: var(--tm-text-main); }
.tm-pm-foot { padding-top: 30px; border-top: 2px solid var(--gold-brand); display: flex; align-items: center; gap: 16px 32px; flex-wrap: wrap; }
@media (max-width: 639px) { .tm-pm-inner { padding: 76px 0 56px; } .tm-pm-foot .tm-hero-btn { width: 100%; justify-content: center; } }

/* ================= Страница проекта: шаги, сложность, результат ================= */
.tm-csteps { display: grid; grid-template-columns: 1fr; gap: 2px; }
@media (min-width: 640px) { .tm-csteps { grid-template-columns: repeat(3, 1fr); } }
.tm-cstep { padding: 30px 26px; background: var(--white-bg); border-top: 2px solid var(--gold-brand); }
.tm-cstep-num { margin: 0 0 16px; font-family: var(--tm-mono); font-size: 13px; font-weight: 700; letter-spacing: 0.16em; color: var(--gold-brand); }
.tm-cstep-head { margin: 0 0 10px; font-size: 19px; font-weight: 700; line-height: 1.3; color: var(--dark-primary); text-wrap: pretty; }
.tm-cstep-text { margin: 0; font-size: 16px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }

.tm-chard { margin: 0; font-size: clamp(18px, 1.9vw, 22px); line-height: 1.6; color: #fff; max-width: 76ch; text-wrap: pretty; padding-left: 22px; border-left: 2px solid var(--gold-brand); }
.tm-clesson { margin-top: 40px; padding-top: 26px; border-top: 1px solid rgba(234,194,105,0.24); max-width: 76ch; }
.tm-clesson-label { margin: 0 0 8px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-brand); }
.tm-clesson-text { margin: 0; font-size: 17px; line-height: 1.6; color: var(--gold-light-text); text-wrap: pretty; }

.tm-cout { display: flex; flex-direction: column; gap: 12px; height: 100%; padding: 26px; background: var(--gold-light); border-left: 2px solid var(--gold-brand); }
.tm-cout-num { margin: 0; font-family: var(--tm-mono); font-size: 12.5px; font-weight: 700; letter-spacing: 0.16em; color: var(--gold-deep); }
.tm-cout-text { margin: 0; font-size: 16.5px; line-height: 1.5; color: var(--tm-text-main); text-wrap: pretty; }

.tm-cnext-wrap { margin-top: 56px; padding-top: 30px; border-top: 2px solid var(--gold-brand); }
.tm-cnext-label { margin: 0 0 16px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-deep); }
.tm-cnext-list { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--tm-border); }
@media (min-width: 640px) { .tm-cnext-list { grid-template-columns: repeat(3, 1fr); } }
.tm-cnext { display: flex; flex-direction: column; gap: 8px; padding: 0 0 22px; background: var(--white-bg); text-decoration: none; transition: background 0.2s ease; }
.tm-cnext > :not(.tm-cnext-shot) { margin-inline: 22px; }
.tm-cnext:hover { background: var(--gold-light); text-decoration: none; }
.tm-cnext-tag { font-family: var(--tm-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--gold-deep); }
.tm-cnext-title { font-size: 17px; font-weight: 700; line-height: 1.3; color: var(--tm-text-main); text-wrap: pretty; }
.tm-cnext-cue { margin-top: auto; color: var(--gold-deep); transition: transform 0.25s ease; }
.tm-cnext:hover .tm-cnext-cue { transform: translateX(4px); }

/* ================= Регистрация компании в Китае: контур из четырёх частей ================= */
.tm-corp { display: grid; grid-template-columns: 1fr; gap: 2px; }
@media (min-width: 640px) { .tm-corp { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .tm-corp { grid-template-columns: repeat(4, 1fr); } }
.tm-corp-stage { display: flex; flex-direction: column; padding: 28px 24px; background: rgba(212,147,0,0.09); border-top: 2px solid var(--gold-brand); }
.tm-corp-num { margin: 0 0 16px; font-family: var(--tm-mono); font-size: 13px; font-weight: 700; letter-spacing: 0.16em; color: var(--gold-brand); }
.tm-corp-head { margin: 0 0 10px; font-size: 20px; font-weight: 700; line-height: 1.25; color: #fff; text-wrap: pretty; }
.tm-corp-text { margin: 0 0 18px; font-size: 16px; line-height: 1.55; color: rgba(238,233,224,0.78); text-wrap: pretty; }
.tm-corp-list { margin: auto 0 0; padding: 0; list-style: none; display: grid; gap: 1px; }
.tm-corp-list > li { position: relative; padding: 9px 0 9px 18px; font-size: 15px; line-height: 1.45; color: #fff; border-top: 1px solid rgba(234,194,105,0.2); text-wrap: pretty; }
.tm-corp-list > li::before { content: ''; position: absolute; left: 0; top: 15px; width: 6px; height: 6px; border: 1.4px solid var(--gold-light-text); transform: rotate(45deg); }

/* ================= Услуги: выделенное направление над сеткой ================= */
.tm-feature { display: grid; grid-template-columns: 1fr; gap: 0; border: 2px solid var(--gold-brand); background: var(--white-bg); }
@media (min-width: 960px) { .tm-feature { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); } }
.tm-feature-main { padding: 38px 34px; }
.tm-feature-badge { display: inline-block; margin-bottom: 20px; padding: 7px 14px; background: var(--gold-brand); color: #fff; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.tm-feature-title { margin: 0 0 14px; font-size: clamp(24px, 2.6vw, 34px); font-weight: 800; line-height: 1.12; letter-spacing: -0.015em; color: var(--dark-primary); text-wrap: pretty; }
.tm-feature-text { margin: 0 0 26px; font-size: 17px; line-height: 1.6; color: var(--tm-text-muted); max-width: 56ch; text-wrap: pretty; }
.tm-feature-actions { display: flex; align-items: center; gap: 14px 28px; flex-wrap: wrap; }
.tm-feature-side { padding: 38px 34px; background: var(--dark-primary); display: grid; align-content: start; gap: 1px; }
.tm-feature-side-label { margin: 0 0 14px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-brand); }
.tm-feature-part { display: flex; gap: 14px; padding: 12px 0; border-top: 1px solid rgba(234,194,105,0.2); }
.tm-feature-part-num { font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; color: var(--gold-light-text); flex-shrink: 0; padding-top: 2px; }
.tm-feature-part-text { margin: 0; font-size: 16px; line-height: 1.45; color: #fff; text-wrap: pretty; }
@media (max-width: 639px) { .tm-feature-main, .tm-feature-side { padding: 28px 22px; } .tm-feature-actions .uk-button { width: 100%; justify-content: center; } }

/* выделенный пункт мегаменю: отдельное направление, а не рядовая услуга */
.tm-menu-link-feature { font-weight: 700; }
.tm-menu-list > li > a.tm-menu-link-feature::before { background: var(--gold-brand); border-color: var(--gold-brand); }

/* ================= China Desk: базовая комплексная услуга (крупнее выделенного направления) ================= */
.tm-flag { display: grid; grid-template-columns: 1fr; border: 2px solid var(--gold-brand); background: var(--dark-secondary); }
@media (min-width: 960px) { .tm-flag { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); } }
.tm-flag-main { padding: 46px 40px; }
.tm-flag-badge { display: inline-block; margin-bottom: 22px; padding: 8px 16px; background: var(--gold-brand); color: #fff; font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }
.tm-flag-title { margin: 0 0 16px; font-size: clamp(28px, 3.2vw, 44px); font-weight: 800; line-height: 1.08; letter-spacing: -0.02em; color: #fff; text-wrap: pretty; }
.tm-flag-text { margin: 0 0 30px; font-size: 18px; line-height: 1.6; color: rgba(238,233,224,0.78); max-width: 58ch; text-wrap: pretty; }
.tm-flag-actions { display: flex; align-items: center; gap: 14px 30px; flex-wrap: wrap; }
.tm-flag-side { padding: 46px 40px; background: var(--dark-primary); display: grid; align-content: start; gap: 1px; }
.tm-flag-side-label { margin: 0 0 16px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-brand); }
.tm-flag-part { display: flex; gap: 14px; padding: 14px 0; border-top: 1px solid rgba(234,194,105,0.2); }
.tm-flag-part-num { font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; color: var(--gold-light-text); flex-shrink: 0; padding-top: 2px; }
.tm-flag-part-text { margin: 0; font-size: 16px; line-height: 1.45; color: #fff; text-wrap: pretty; }
@media (max-width: 639px) { .tm-flag-main, .tm-flag-side { padding: 30px 22px; } .tm-flag-actions .uk-button { width: 100%; justify-content: center; } }

.tm-menu-flag-label { margin: 20px 0 10px; padding-top: 16px; border-top: 2px solid var(--gold-brand); font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-brand); }
/* выделенный пункт мегаменю: комплексная услуга */
.tm-menu-link-flag { font-weight: 700; }
.tm-menu-list > li > a.tm-menu-link-flag::before { background: var(--gold-brand); border-color: var(--gold-brand); }


/* ================= О компании: яркая редакция ================= */
.tm-ab-band { background: var(--dark-primary); color: #fff; padding: clamp(72px,9vw,132px) 0; position: relative; overflow: hidden; }
.tm-ab-band::after { content: ''; position: absolute; inset: 0; background: linear-gradient(115deg, rgba(212,147,0,0.16) 0%, rgba(212,147,0,0) 46%); pointer-events: none; }
.tm-ab-band > .uk-container { position: relative; z-index: 1; }
.tm-ab-quote { margin: 0; font-size: clamp(30px,4.6vw,60px); font-weight: 700; line-height: 1.1; letter-spacing: -0.02em; max-width: 24ch; text-wrap: balance; }
.tm-ab-em { color: var(--gold-pale); }
.tm-ab-band-foot { display: grid; gap: 28px; margin-top: clamp(40px,5vw,64px); padding-top: 30px; border-top: 2px solid rgba(212,147,0,0.45); }
@media (min-width: 960px) { .tm-ab-band-foot { grid-template-columns: repeat(3,1fr); gap: 44px; } }
.tm-ab-band-item { margin: 0; font-size: 17px; line-height: 1.55; color: rgba(255,255,255,0.78); text-wrap: pretty; }
.tm-ab-band-item strong { display: block; margin-bottom: 8px; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; font-family: var(--tm-mono); }

.tm-ab-values { display: grid; grid-template-columns: 1fr; gap: 2px; }
@media (min-width: 640px) { .tm-ab-values { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1200px) { .tm-ab-values { grid-template-columns: repeat(4,1fr); } }
.tm-ab-value { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: 30px 26px 34px; background: rgba(212,147,0,0.09); border-top: 3px solid var(--gold-brand); }
.tm-ab-value p.tm-ab-value-num { margin: 0 0 18px; font-family: var(--tm-mono); font-size: 13px; font-weight: 700; letter-spacing: 0.18em; color: var(--gold-deep); }
.tm-ab-value h3 { margin: 0 0 12px; font-size: 21px; font-weight: 700; line-height: 1.25; text-wrap: pretty; }
.tm-ab-value p { margin: 0; font-size: 17px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-ab-value::after { content: attr(data-ghost); position: absolute; right: -10px; bottom: -30px; font-size: 118px; font-weight: 700; line-height: 1; color: rgba(212,147,0,0.13); pointer-events: none; }

.tm-ab-matrix { display: grid; grid-template-columns: 1fr; border-top: 2px solid var(--dark-primary); }
@media (min-width: 960px) { .tm-ab-matrix { grid-template-columns: repeat(2,1fr); column-gap: 56px; } }
.tm-ab-mx { display: grid; grid-template-columns: 68px 1fr; gap: 22px; padding: 34px 0 32px; border-bottom: 1px solid var(--tm-border); }
.tm-ab-mx-num { font-family: var(--tm-mono); font-size: 30px; font-weight: 700; line-height: 1; color: var(--gold-brand); }
.tm-ab-mx h3 { margin: 0 0 14px; font-size: 23px; font-weight: 700; line-height: 1.25; text-wrap: pretty; }
.tm-ab-mx ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.tm-ab-mx li { position: relative; padding-left: 20px; font-size: 17px; line-height: 1.5; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-ab-mx li::before { content: ''; position: absolute; left: 0; top: 11px; width: 8px; height: 8px; background: var(--gold-brand); transform: rotate(45deg); }

.tm-ab-words { display: grid; grid-template-columns: 1fr; gap: 2px; }
@media (min-width: 900px) { .tm-ab-words { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (min-width: 960px) { .tm-ab-words { grid-template-columns: 1.1fr 0.9fr 1.3fr; } }
.tm-ab-word { display: flex; flex-direction: column; padding: 34px 30px 36px; background: var(--white-bg); border-top: 3px solid var(--dark-primary); }
.tm-ab-word:nth-child(2) { background: var(--dark-primary); border-top-color: var(--gold-brand); }
.tm-ab-words .tm-ab-word p.tm-ab-word-key { margin: 0 0 20px; font-size: clamp(34px,4.4vw,54px); font-weight: 700; line-height: 1; letter-spacing: 0.02em; color: var(--gold-brand); }
.tm-ab-word p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-ab-word:nth-child(2) p { color: rgba(255,255,255,0.8); }

.tm-ab-facts { display: grid; grid-template-columns: 1fr; gap: 2px; }
@media (min-width: 768px) { .tm-ab-facts { grid-template-columns: repeat(3,1fr); } }
.tm-ab-fact { padding: 32px 28px 34px; background: var(--white-bg); border-left: 3px solid var(--gold-brand); }
.tm-ab-fact p.tm-ab-fact-key { margin: 0 0 14px; font-size: 15px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; font-family: var(--tm-mono); color: var(--gold-deep); }
.tm-ab-fact h3 { margin: 0 0 12px; font-size: 22px; font-weight: 700; line-height: 1.25; text-wrap: pretty; }
.tm-ab-fact p { margin: 0; font-size: 17px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }

.tm-ab-manifest { display: grid; grid-template-columns: 1fr; gap: 2px; }
@media (min-width: 900px) { .tm-ab-manifest { grid-template-columns: repeat(3,1fr); } }
.tm-ab-mf { padding: 34px 30px 38px; background: rgba(32,30,29,0.92); color: #fff; }
.tm-ab-mf p.tm-ab-mf-num { margin: 0 0 18px; font-family: var(--tm-mono); font-size: 34px; font-weight: 700; line-height: 1; color: var(--gold-pale); }
.tm-ab-mf h3 { margin: 0 0 12px; font-size: 21px; font-weight: 700; line-height: 1.25; color: #fff; text-wrap: pretty; }
.tm-ab-mf p { margin: 0; font-size: 17px; line-height: 1.6; color: rgba(255,255,255,0.78); text-wrap: pretty; }


/* ================= Главная: блок «Чем занимается» ================= */
/* верхняя часть: текст слева, тёмная панель справа */
.tm-why-top { display: grid; grid-template-columns: 1fr; gap: 2px; margin-bottom: 2px; }
@media (min-width: 900px) { .tm-why-top { grid-template-columns: minmax(0,7fr) minmax(0,5fr); } }
.tm-why-main { padding: clamp(30px,3.4vw,46px) clamp(28px,3.4vw,48px) clamp(34px,3.6vw,50px) 0; }
@media (max-width: 899px) { .tm-why-main { padding-right: 0; } }
.tm-why-main .tm-kicker { margin-bottom: 26px; }
.tm-why-main h2 { margin: 0 0 22px; font-size: clamp(38px,3.5vw,50px); font-weight: 800; line-height: 1.08; letter-spacing: -0.02em; color: var(--dark-primary); text-wrap: balance; }
.tm-why-main p.tm-why-lead { margin: 0; font-size: clamp(18px,1.7vw,21px); line-height: 1.6; color: var(--tm-text-muted); max-width: 54ch; text-wrap: pretty; }
.tm-why-panel { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: clamp(32px,3.4vw,44px) clamp(28px,3vw,40px) clamp(34px,3.4vw,44px); background: var(--dark-primary); }
.tm-why-panel p.tm-why-panel-label { margin: 0 0 20px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-brand); }
.tm-why-panel p.tm-why-panel-text { position: relative; z-index: 1; margin: 0 0 30px; padding-left: 20px; border-left: 2px solid var(--gold-brand); font-size: clamp(17px,1.6vw,19px); line-height: 1.6; color: #fff; text-wrap: pretty; }
.tm-why-geo { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; margin: auto 0 0; padding: 0; list-style: none; }
.tm-why-geo li { padding: 7px 13px; border: 1px solid rgba(212,147,0,0.45); font-family: var(--tm-mono); font-size: 11.5px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold-pale); }
.tm-why-panel .tm-stair-glyph { color: var(--gold-pale); opacity: 0.12; }

/* два факта: контурные цифры и глиф с анимацией */
.tm-why-grid { display: grid; grid-template-columns: 1fr; gap: 2px; }
@media (min-width: 768px) { .tm-why-grid { grid-template-columns: repeat(2,1fr); } }
.tm-why-item { position: relative; padding: 34px 32px 38px; background: rgba(212,147,0,0.08); border-top: 2px solid var(--gold-brand); transition: background .35s ease; }
.tm-why-item:hover { background: rgba(212,147,0,0.14); }
.tm-why-item h3 { position: relative; z-index: 1; margin: 0 0 12px; font-size: 22px; font-weight: 700; line-height: 1.25; color: var(--dark-primary); text-wrap: pretty; }
.tm-why-item p { position: relative; z-index: 1; margin: 0; font-size: 17px; line-height: 1.6; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-why-item .tm-stair-glyph { color: var(--dark-primary); opacity: 0.06; }
.tm-why-item:hover .tm-stair-glyph { transform: scale(1.3) rotate(-5deg); opacity: 0.11; }
.tm-why-flag { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr; gap: 0; margin-top: 2px; --flag-pt: clamp(34px,4vw,52px); --flag-px: clamp(28px,4vw,54px); --flag-pb: clamp(36px,4vw,54px); padding: var(--flag-pt) var(--flag-px) var(--flag-pb); background: var(--dark-primary); color: #fff; text-decoration: none; transition: background .25s ease; }
.tm-why-flag:hover, .tm-why-flag:focus-visible { background: #2b2826; text-decoration: none; }
.tm-why-flag::after { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--gold-brand); }
@media (min-width: 960px) { .tm-why-flag { grid-template-columns: 1.05fr 1fr; column-gap: clamp(36px,4vw,72px); align-items: start; } }
.tm-why-flag p.tm-why-flag-label { grid-column: 1 / -1; margin: 0 0 22px; font-family: var(--tm-mono); font-size: 13px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-pale); }
.tm-why-flag h3 { margin: 0; font-size: clamp(26px,3.2vw,40px); font-weight: 700; line-height: 1.15; letter-spacing: -0.015em; color: #fff; text-wrap: balance; }
@media (min-width: 900px) { .tm-why-flag { grid-template-columns: minmax(0,1fr) minmax(0,1fr); column-gap: clamp(30px,3.4vw,56px); align-items: start; } .tm-why-flag p.tm-why-flag-text { margin-top: 0 !important; } }
.tm-why-flag p.tm-why-flag-text { margin: 18px 0 0; font-size: 18px; line-height: 1.6; color: rgba(255,255,255,0.8); text-wrap: pretty; }
@media (min-width: 960px) { .tm-why-flag p.tm-why-flag-text { margin-top: 0; } }
.tm-why-flag span.tm-why-flag-cue { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 10px; margin-top: 30px; padding-top: 22px; border-top: 1px solid rgba(212,147,0,0.4); font-size: 16px; font-weight: 600; letter-spacing: 0.02em; color: var(--gold-pale); }

/* ================= О компании: плитки с модалками ================= */
.tm-ab-tiles { display: grid; grid-template-columns: 1fr; gap: 2px; }
@media (min-width: 700px) { .tm-ab-tiles { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 1080px) { .tm-ab-tiles { grid-template-columns: repeat(3,minmax(0,1fr)); } .tm-ab-tiles-4 { grid-template-columns: repeat(4,minmax(0,1fr)); } }
@media (min-width: 640px) { .tm-ab-tiles { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1100px) { .tm-ab-tiles-4 { grid-template-columns: repeat(4,1fr); } .tm-ab-tiles-3 { grid-template-columns: repeat(3,1fr); } }
.tm-ab-tile { position: relative; overflow: hidden; display: flex; flex-direction: column; width: 100%; min-height: 100%; padding: 30px 28px 30px; background: var(--white-bg); border: 0; border-top: 3px solid var(--dark-primary); text-align: left; cursor: pointer; font: inherit; color: inherit; transition: background .22s ease, border-color .22s ease; }
.tm-ab-tile:hover, .tm-ab-tile:focus-visible { background: rgba(212,147,0,0.09); border-top-color: var(--gold-brand); }
.tm-ab-tile p.tm-ab-tile-num { margin: 0 0 18px; font-family: var(--tm-mono); font-size: 26px; font-weight: 700; line-height: 1; color: var(--gold-brand); }
.tm-ab-tile h3 { margin: 0 0 12px; font-size: 21px; font-weight: 700; line-height: 1.25; text-wrap: pretty; }
.tm-ab-tile p.tm-ab-tile-text { margin: 0 0 26px; font-size: 17px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-ab-tile span.tm-ab-tile-cue { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--tm-border); font-size: 15px; font-weight: 600; color: var(--gold-deep); }
.tm-ab-tile-flag { background: var(--dark-primary); border-top-color: var(--gold-brand); }
.tm-ab-tile-flag:hover, .tm-ab-tile-flag:focus-visible { background: #2b2826; }
.tm-ab-tile-flag h3 { color: #fff; }
.tm-ab-tile-flag p.tm-ab-tile-num { color: var(--gold-pale); }
.tm-ab-tile-flag p.tm-ab-tile-text { color: rgba(255,255,255,0.78); }
.tm-ab-tile-flag span.tm-ab-tile-cue { color: var(--gold-pale); border-top-color: rgba(212,147,0,0.4); }

.tm-ab-modal .uk-modal-dialog { max-width: 720px; }
.tm-ab-modal-kicker { margin: 0 0 10px; font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-deep); }
.tm-ab-modal p.tm-ab-modal-p { margin: 0 0 18px; font-size: 18px; line-height: 1.65; color: var(--tm-text-main); text-wrap: pretty; }
.tm-ab-modal p.tm-ab-modal-p:last-of-type { margin-bottom: 0; }
.tm-ab-terms { margin: 30px 0 0; padding: 26px 26px 28px; background: var(--white-bg); border-left: 3px solid var(--gold-brand); }
.tm-ab-terms h4 { margin: 0 0 18px; font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-deep); }
.tm-ab-terms dl { margin: 0; display: grid; gap: 16px; }
.tm-ab-terms dt { font-size: 17px; font-weight: 700; line-height: 1.4; }
.tm-ab-terms dd { margin: 4px 0 0; font-size: 16px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }


/* ================= Технический слой: штампы, спецпары, водяные глифы ================= */
.tm-kicker-code { display: inline-block; margin-left: 14px; font-family: var(--tm-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.14em; color: var(--gold-deep); white-space: nowrap; }
.tm-kicker-hero .tm-kicker-code, .tm-hx .tm-kicker-code, .bg-dark-contrast .tm-kicker-code, .uk-light .tm-kicker-code { color: var(--gold-pale); opacity: 0.85; }
.tm-idstamp { display: block; margin: 0 0 18px; font-family: var(--tm-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-deep); }
.tm-ab-tile-flag .tm-idstamp, .bg-dark-contrast .tm-idstamp { color: var(--gold-pale); }
.tm-specpair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 22px; row-gap: 0; margin: 22px 0 0; padding: 0; list-style: none; }
.tm-specpair li { padding: 11px 0 9px; border-bottom: 1px solid var(--tm-border); font-family: var(--tm-mono); font-size: 11.5px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.4; color: var(--tm-text-muted); }
.tm-cell:hover .tm-specpair li, .tm-cell:focus-visible .tm-specpair li { border-bottom-color: rgba(212,147,0,0.5); }
.tm-ghost-glyph { position: absolute; right: -26px; bottom: -34px; width: 190px; height: 190px; color: var(--dark-primary); opacity: 0.055; pointer-events: none; transform-origin: 100% 100%; transition: transform .5s cubic-bezier(.2,.7,.3,1), opacity .35s ease; }
.tm-ab-tile:hover .tm-ghost-glyph, .tm-ab-tile:focus-visible .tm-ghost-glyph { transform: scale(1.42) rotate(-5deg); opacity: 0.1; }
.tm-ab-tile-flag:hover .tm-ghost-glyph, .tm-ab-tile-flag:focus-visible .tm-ghost-glyph { opacity: 0.26; }
@media (prefers-reduced-motion: reduce) { .tm-ghost-glyph { transition: opacity .3s ease; } .tm-ab-tile:hover .tm-ghost-glyph, .tm-ab-tile:focus-visible .tm-ghost-glyph { transform: none; } }
.tm-ab-tile-flag .tm-ghost-glyph { color: var(--gold-pale); opacity: 0.13; }
.tm-ghost-glyph svg { width: 100%; height: 100%; }


/* ================= Перечень услуг: реестр ================= */
.uk-container p.tm-cat-label:not(.tm-kicker), .uk-container p.tm-cat-foot:not(.tm-kicker) { max-width: none; }
.tm-cat-group { margin-top: clamp(36px,4vw,56px); }
.tm-cat-group:first-of-type { margin-top: 0; }
.tm-cat-label { display: flex; align-items: baseline; gap: 16px; margin: 0 0 6px; padding-bottom: 14px; border-bottom: 2px solid var(--dark-primary); font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-deep); }
.tm-cat-note { margin: 0 0 4px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 500; letter-spacing: 0.06em; text-transform: none; color: var(--tm-text-muted); }
.tm-cat-rows { display: grid; grid-template-columns: 1fr; }
@media (min-width: 960px) { .tm-cat-rows { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: clamp(36px,4vw,68px); } }
.tm-cat-row { display: grid; grid-template-columns: 46px 1fr; gap: 18px; padding: 20px 0 19px; border-bottom: 1px solid var(--tm-border); }
.tm-cat-num { margin: 0; font-family: var(--tm-mono); font-size: 13px; font-weight: 700; letter-spacing: 0.08em; line-height: 1.7; color: var(--gold-brand); }
.tm-cat-name { margin: 0; font-size: 18px; font-weight: 700; line-height: 1.4; text-wrap: pretty; }
.tm-cat-desc { margin: 7px 0 0; font-size: 16px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-cat-foot { margin: clamp(32px,4vw,48px) 0 0; padding: 24px 26px; background: var(--gold-light); border-left: 3px solid var(--gold-brand); font-size: 17px; line-height: 1.6; color: var(--tm-text-main); text-wrap: pretty; }


/* ================= Словарь терминов на странице ================= */
.tm-gloss { display: grid; grid-template-columns: 1fr; column-gap: clamp(36px,4vw,72px); border-top: 2px solid var(--dark-primary); }
@media (min-width: 860px) { .tm-gloss { grid-template-columns: repeat(2,minmax(0,1fr)); } }
.tm-gloss div { padding: 20px 0 19px; border-bottom: 1px solid var(--tm-border); }
.tm-gloss dt { margin: 0 0 6px; font-size: 18px; font-weight: 700; line-height: 1.35; }
.tm-gloss dd { margin: 0; font-size: 16px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }


/* ================= Порядок работы: лестница шагов ================= */
.tm-onb { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr; }
.tm-onb li { position: relative; display: grid; grid-template-columns: 1fr; gap: 10px; padding: 30px 0 32px 0; border-top: 1px solid var(--tm-border); }


@media (min-width: 860px) { .tm-onb li { grid-template-columns: 92px minmax(0,26ch) minmax(0,1fr); column-gap: clamp(28px,3.4vw,56px); align-items: start; } }
.tm-onb p.tm-onb-num { margin: 0; font-family: var(--tm-mono); font-size: 15px; font-weight: 700; letter-spacing: 0.12em; line-height: 1.6; color: var(--gold-brand); }
.tm-onb h3 { margin: 0; font-size: clamp(20px,2.1vw,25px); font-weight: 700; line-height: 1.25; text-wrap: pretty; }
.tm-onb p.tm-onb-desc { margin: 0; font-size: 17px; line-height: 1.6; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-onb-side { margin: 10px 0 0; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold-deep); }

/* ================= Порядок работы: матрица ответственности ================= */
.tm-resp-wrap { overflow-x: auto; }
table.tm-resp { width: 100%; min-width: 720px; border-collapse: collapse; }
table.tm-resp th, table.tm-resp td { padding: 17px 20px 16px 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--tm-border); }
table.tm-resp thead th { padding-bottom: 13px; border-bottom: 2px solid var(--dark-primary); font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-deep); white-space: nowrap; }
table.tm-resp tbody th { width: 26%; font-size: 18px; font-weight: 700; line-height: 1.35; }
table.tm-resp td { font-size: 16.5px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }
table.tm-resp td:last-child, table.tm-resp th:last-child { padding-right: 0; }
table.tm-resp tbody tr:hover th { color: var(--gold-deep); }
table.tm-resp tbody tr:hover td { background: rgba(212,147,0,0.05); }



/* ================= Обзоры: журнальная сетка ================= */
.tm-jr-tag { display: flex; align-items: center; gap: 12px; margin: 0 0 clamp(28px,3vw,44px); font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-deep); }
.tm-jr-tag::before { content: ''; flex: 0 0 34px; height: 2px; background: var(--gold-brand); }

.tm-jr-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 clamp(30px,3.4vw,44px); padding: 0; list-style: none; }
button.tm-jr-chip { padding: 10px 18px; background: transparent; border: 1px solid var(--tm-border); font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--tm-text-muted); cursor: pointer; transition: border-color .2s ease, color .2s ease, background .2s ease; }
button.tm-jr-chip:hover { border-color: var(--gold-brand); color: var(--gold-deep); }
button.tm-jr-chip[aria-pressed="true"] { border-color: var(--gold-brand); background: var(--dark-primary); color: var(--gold-pale); }

.tm-jr-grid { display: grid; grid-template-columns: 1fr; gap: 2px; background: var(--tm-border); border: 1px solid var(--tm-border); }
@media (min-width: 720px) { .tm-jr-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 1100px) { .tm-jr-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
a.tm-jr-card { display: flex; flex-direction: column; background: var(--white-bg); text-decoration: none; color: inherit; transition: background .3s ease; }
a.tm-jr-card:hover, a.tm-jr-card:focus-visible { background: var(--gold-light); text-decoration: none; }
a.tm-jr-card[hidden] { display: none; }
.tm-jr-shot { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--dark-primary); }
.tm-jr-shot img { width: 100%; height: 100%; object-fit: cover; opacity: 0.55; filter: saturate(0.92) contrast(1.04); transition: transform .8s cubic-bezier(.23,1,.32,1), opacity .4s ease, filter .5s ease; }
a.tm-jr-card:hover .tm-jr-shot img, a.tm-jr-card:focus-visible .tm-jr-shot img { transform: scale(1.04); opacity: 0.9; filter: saturate(1.1) contrast(1.06); }
.tm-jr-body { display: flex; flex-direction: column; flex: 1; padding: 28px 26px 28px; }
.tm-jr-body p.tm-jr-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin: 0 0 16px; font-family: var(--tm-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--gold-deep); }
.tm-jr-body p.tm-jr-meta span:last-child { color: var(--tm-text-muted); font-weight: 500; }
.tm-jr-body h3 { margin: 0 0 12px; font-size: 21px; font-weight: 700; line-height: 1.3; text-wrap: pretty; transition: color .2s ease; }
a.tm-jr-card:hover h3 { color: var(--gold-deep); }
.tm-jr-body p.tm-jr-sum { margin: 0 0 24px; font-size: 16.5px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-jr-body span.tm-jr-cue { display: inline-flex; align-items: center; gap: 9px; margin-top: auto; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--tm-text-main); transition: gap .3s ease, color .2s ease; }
a.tm-jr-card:hover span.tm-jr-cue { gap: 17px; color: var(--gold-deep); }

a.tm-jr-card.tm-jr-lead { background: var(--dark-primary); color: #fff; }
a.tm-jr-card.tm-jr-lead:hover { background: #2b2826; }
@media (min-width: 720px) { a.tm-jr-card.tm-jr-lead { grid-column: span 2; flex-direction: row; } .tm-jr-lead .tm-jr-shot { flex: 0 0 44%; aspect-ratio: auto; } }
.tm-jr-lead .tm-jr-body { padding: clamp(30px,3.2vw,44px); }
.tm-jr-lead .tm-jr-body p.tm-jr-meta { color: var(--gold-pale); }
.tm-jr-lead .tm-jr-body p.tm-jr-meta span:last-child { color: rgba(255,255,255,0.6); }
.tm-jr-lead .tm-jr-body h3 { font-size: clamp(24px,2.6vw,33px); line-height: 1.18; letter-spacing: -0.015em; color: #fff; text-wrap: balance; }
a.tm-jr-card.tm-jr-lead:hover h3 { color: var(--gold-pale); }
.tm-jr-lead .tm-jr-body p.tm-jr-sum { font-size: 17.5px; color: rgba(255,255,255,0.78); }
.tm-jr-lead .tm-jr-body span.tm-jr-cue { color: var(--gold-pale); }
.tm-jr-lead .tm-jr-shot img { opacity: 0.4; }

.tm-jr-empty { margin: 34px 0 0; font-size: 17px; color: var(--tm-text-muted); }
.tm-jr-empty[hidden] { display: none; }

.tm-jr-topics { display: grid; grid-template-columns: 1fr; gap: 2px; }
@media (min-width: 700px) { .tm-jr-topics { grid-template-columns: repeat(3,1fr); } }
.tm-jr-topic { padding: 28px 26px 30px; background: rgba(212,147,0,0.09); border-top: 3px solid var(--gold-brand); }
.tm-jr-topic p.tm-jr-topic-key { margin: 0 0 14px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-deep); }
.tm-jr-topic h3 { margin: 0 0 10px; font-size: 20px; font-weight: 700; line-height: 1.3; text-wrap: pretty; }
.tm-jr-topic p { margin: 0; font-size: 16.5px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }

/* ================= Статья: вопрос-врезка и словарь ================= */
.tm-ask { margin: 30px 0 34px; padding: 24px 26px 26px; background: var(--dark-primary); border-left: 3px solid var(--gold-brand); }
.tm-article-body .tm-ask p.tm-ask-label { margin: 0 0 10px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-pale); }
.tm-article-body .tm-ask p.tm-ask-text { margin: 0; font-size: 19px; font-weight: 600; line-height: 1.45; color: #fff; text-wrap: pretty; }
dl.tm-gloss-inline { display: grid; grid-template-columns: 1fr; margin: 24px 0 0; border-top: 2px solid var(--dark-primary); }
dl.tm-gloss-inline > div { padding: 18px 0 17px; border-bottom: 1px solid var(--tm-border); }
dl.tm-gloss-inline dt { margin: 0 0 6px; font-size: 18px; font-weight: 700; line-height: 1.35; }
dl.tm-gloss-inline dd { margin: 0; font-size: 16.5px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }

/* ================= Статья: список источников ================= */
.uk-container p.tm-src-head:not(.tm-kicker), .uk-container p.tm-veil-cap:not(.tm-kicker), .uk-container p.tm-ask-label:not(.tm-kicker), .uk-container p.tm-bars-cap:not(.tm-kicker), .uk-container p.tm-bar-label:not(.tm-kicker), .uk-container p.tm-stat-num:not(.tm-kicker), .uk-container p.tm-stat-lab:not(.tm-kicker), .uk-container p.tm-menu-post-meta:not(.tm-kicker), .uk-container p.tm-menu-post-title:not(.tm-kicker), .uk-container p.tm-jr-meta:not(.tm-kicker), .uk-container p.tm-jr-sum:not(.tm-kicker) { max-width: none; }
.tm-src-group { margin-top: 30px; }
.tm-article-body p.tm-src-head { margin: 0 0 4px; padding-bottom: 11px; border-bottom: 2px solid var(--dark-primary); font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold-deep); }
ol.tm-src-list { margin: 0; padding: 0; list-style: none; counter-reset: src; }
ol.tm-src-list li { counter-increment: src; position: relative; padding: 13px 0 12px 42px; border-bottom: 1px solid var(--tm-border); font-size: 16px; line-height: 1.5; }
ol.tm-src-list li::before { content: counter(src,decimal-leading-zero); position: absolute; left: 0; top: 14px; font-family: var(--tm-mono); font-size: 12px; font-weight: 700; color: var(--gold-brand); }
ol.tm-src-list a { color: var(--tm-text-main); text-decoration: underline; text-decoration-color: rgba(212,147,0,0.5); text-underline-offset: 3px; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
ol.tm-src-list a:hover { color: var(--gold-deep); text-decoration-color: var(--gold-brand); }
ol.tm-src-list span.tm-src-pub { display: block; margin-top: 3px; font-family: var(--tm-mono); font-size: 11.5px; letter-spacing: 0.06em; color: var(--tm-text-muted); }

/* ================= Статья: инфографика ================= */
.tm-flags { display: grid; grid-template-columns: repeat(auto-fit,minmax(136px,1fr)); gap: 2px; margin: 30px 0 36px; }
.tm-flags a { display: flex; flex-direction: column; padding: 20px 16px 20px; background: var(--white-bg); border-top: 3px solid var(--gold-brand); text-decoration: none; color: inherit; transition: background .22s ease; }
.tm-flags a:hover, .tm-flags a:focus-visible { background: rgba(212,147,0,0.1); text-decoration: none; }
.tm-article-body .tm-flags p.tm-flag-num { margin: 0 0 12px; font-family: var(--tm-mono); font-size: 22px; font-weight: 700; line-height: 1; color: var(--gold-brand); }
.tm-article-body .tm-flags p.tm-flag-name { margin: 0; font-size: 15.5px; font-weight: 700; line-height: 1.3; text-wrap: pretty; }

.tm-veil { margin: 30px 0 36px; padding: 30px 26px 32px; background: var(--dark-primary); }
.tm-article-body .tm-veil p.tm-veil-cap { margin: 0 0 24px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold-pale); }
.tm-veil-row { display: grid; grid-template-columns: 1fr; gap: 2px; }
@media (min-width: 560px) { .tm-veil-row { grid-template-columns: repeat(2,minmax(0,1fr)); } }
.tm-veil-box { padding: 18px 18px 20px; background: rgba(255,255,255,0.06); border-left: 3px solid var(--gold-brand); }
.tm-veil-box.tm-veil-debt { border-left-color: var(--gold-amber-hi); }
.tm-article-body .tm-veil p.tm-veil-role { margin: 0 0 7px; font-family: var(--tm-mono); font-size: 10.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-pale); }
.tm-article-body .tm-veil p.tm-veil-name { margin: 0 0 6px; font-size: 18px; font-weight: 700; line-height: 1.3; color: #fff; }
.tm-article-body .tm-veil p.tm-veil-note { margin: 0; font-size: 15px; line-height: 1.5; color: rgba(255,255,255,0.7); }
.tm-veil-link { display: flex; align-items: center; gap: 12px; margin: 0; padding: 14px 0 12px; }
.tm-veil-link::before, .tm-veil-link::after { content: ''; flex: 1; height: 1px; background: rgba(212,147,0,0.45); }
.tm-article-body p.tm-veil-link span { font-family: var(--tm-mono); font-size: 10.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-pale); white-space: nowrap; }
.tm-veil-out { margin: 20px 0 0; padding: 20px 22px; background: var(--gold-brand); }
.tm-article-body .tm-veil-out p { margin: 0; font-size: 17px; font-weight: 700; line-height: 1.45; color: var(--dark-primary); text-wrap: pretty; }

/* ================= Статья: диаграммы и чек-лист ================= */
.tm-bars { margin: 30px 0 34px; }
.tm-article-body p.tm-bars-cap { margin: 0 0 20px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold-deep); max-width: none; }
.tm-bar-row { display: grid; grid-template-columns: 1fr; gap: 6px; padding: 15px 0 16px; border-bottom: 1px solid var(--tm-border); }
.tm-bar-row:first-of-type { border-top: 2px solid var(--dark-primary); }
.tm-article-body .tm-bar-row p.tm-bar-label { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin: 0; font-size: 16.5px; line-height: 1.35; max-width: none; }
.tm-article-body .tm-bar-row p.tm-bar-label b { font-family: var(--tm-mono); font-size: 15px; font-weight: 700; color: var(--gold-deep); white-space: nowrap; }
.tm-bar-track { height: 12px; background: rgba(32,30,29,0.08); }
.tm-bar-fill { height: 100%; background: var(--dark-primary); }
.tm-bar-row.tm-bar-hi .tm-bar-fill { background: var(--gold-brand); }
.tm-bar-row.tm-bar-zero .tm-bar-fill { background: var(--gold-amber-hi); }
.tm-article-body p.tm-bars-note { margin: 16px 0 0; font-size: 15.5px; line-height: 1.55; color: var(--tm-text-muted); }

.tm-stats { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 2px; margin: 30px 0 34px; }
.tm-stat { padding: 22px 20px 24px; background: var(--white-bg); border-top: 3px solid var(--gold-brand); }
.tm-article-body .tm-stat p.tm-stat-num { margin: 0 0 8px; font-size: clamp(26px,3vw,34px); font-weight: 700; line-height: 1; letter-spacing: -0.02em; color: var(--gold-deep); max-width: none; }
.tm-article-body .tm-stat p.tm-stat-lab { margin: 0; font-size: 15px; line-height: 1.4; color: var(--tm-text-muted); max-width: none; }

.tm-check { display: grid; grid-template-columns: 1fr; gap: 2px; margin: 30px 0 34px; }
@media (min-width: 620px) { .tm-check { grid-template-columns: repeat(2,minmax(0,1fr)); } }
.tm-check-item { display: grid; grid-template-columns: 26px 1fr; gap: 14px; padding: 20px 20px 22px; background: var(--dark-primary); }
.tm-article-body .tm-check-item p { margin: 0; font-size: 16.5px; line-height: 1.5; color: rgba(255,255,255,0.85); max-width: none; }
.tm-check-mark { font-family: var(--tm-mono); font-size: 16px; font-weight: 700; line-height: 1.5; color: var(--gold-pale); }

/* ================= Мегаменю: последние обзоры ================= */
.tm-menu-posts { display: grid; grid-template-columns: 1fr; gap: 2px; margin: 4px 0 0; }
a.tm-menu-post { display: block; padding: 15px 16px 16px; background: rgba(255,255,255,0.05); border-top: 2px solid rgba(212,147,0,0.5); text-decoration: none; transition: background .22s ease, border-top-color .22s ease; }
a.tm-menu-post:hover, a.tm-menu-post:focus-visible { background: rgba(212,147,0,0.13); border-top-color: var(--gold-brand); text-decoration: none; }
a.tm-menu-post p.tm-menu-post-meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 14px; margin: 0 0 9px; font-family: var(--tm-mono); font-size: 10.5px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--gold-pale); max-width: none; }
a.tm-menu-post p.tm-menu-post-meta span:last-child { font-weight: 500; color: rgba(255,255,255,0.5); }
a.tm-menu-post p.tm-menu-post-title { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.35; color: rgba(255,255,255,0.9); text-wrap: pretty; max-width: none; transition: color .22s ease; }
a.tm-menu-post:hover p.tm-menu-post-title { color: #fff; }
.tm-menu-all { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font-family: var(--tm-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--gold-pale); text-decoration: none; }
.tm-menu-all:hover { color: var(--gold-brand); text-decoration: underline; text-underline-offset: 4px; }

/* ================= Статья: классы риска и поток шагов ================= */
.tm-tier { display: grid; grid-template-columns: 1fr; gap: 2px; margin: 30px 0 34px; }
@media (min-width: 700px) { .tm-tier { grid-template-columns: repeat(4,minmax(0,1fr)); } }
.tm-tier-cell { padding: 22px 20px 24px; background: var(--white-bg); border-top: 3px solid var(--gold-brand); }
.tm-article-body .tm-tier-cell p.tm-tier-key { display: flex; align-items: baseline; gap: 9px; margin: 0 0 12px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-deep); max-width: none; }
.tm-article-body .tm-tier-cell p.tm-tier-key b { font-size: 26px; letter-spacing: 0; line-height: 1; color: var(--tm-text-main); }
.tm-article-body .tm-tier-cell h3 { margin: 0 0 9px; font-size: 18px; font-weight: 700; line-height: 1.3; }
.tm-article-body .tm-tier-cell p { margin: 0; font-size: 15.5px; line-height: 1.5; color: var(--tm-text-muted); max-width: none; }
.tm-tier-cell.tm-tier-3 { background: rgba(212,147,0,0.09); }
.tm-tier-cell.tm-tier-4 { background: var(--dark-primary); border-top-color: var(--gold-pale); }
.tm-article-body .tm-tier-cell.tm-tier-4 h3 { color: #fff; }
.tm-article-body .tm-tier-cell.tm-tier-4 p { color: rgba(255,255,255,0.75); }
.tm-article-body .tm-tier-cell.tm-tier-4 p.tm-tier-key { color: var(--gold-pale); }
.tm-article-body .tm-tier-cell.tm-tier-4 p.tm-tier-key b { color: #fff; }

ol.tm-flow { margin: 30px 0 34px; padding: 0; list-style: none; counter-reset: fl; display: grid; grid-template-columns: 1fr; }
@media (min-width: 820px) { ol.tm-flow { grid-template-columns: repeat(4,minmax(0,1fr)); column-gap: 2px; } }
ol.tm-flow li { counter-increment: fl; position: relative; padding: 26px 20px 24px; background: rgba(32,30,29,0.04); border-top: 2px solid var(--dark-primary); }
ol.tm-flow li::before { content: counter(fl,decimal-leading-zero); display: block; margin-bottom: 13px; font-family: var(--tm-mono); font-size: 22px; font-weight: 700; line-height: 1; color: var(--gold-deep); }
.tm-article-body ol.tm-flow li strong { display: block; margin-bottom: 8px; font-size: 17.5px; line-height: 1.3; }
.tm-article-body ol.tm-flow li span.tm-flow-note { display: block; font-size: 15.5px; line-height: 1.5; color: var(--tm-text-muted); }
.tm-article-body ol.tm-flow li em { display: block; margin-top: 11px; font-family: var(--tm-mono); font-size: 11.5px; font-style: normal; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold-deep); }

/* ================= Главная: лестница контрольных этапов ================= */
.tm-stair { display: grid; grid-template-columns: 1fr; gap: 46px 34px; margin: 0; padding: 0; list-style: none; }
.tm-stair-step { position: relative; display: flex; flex-direction: column; padding: 34px 32px 36px; background: var(--white-bg); border-top: 2px solid var(--dark-primary); transition: background .35s ease, border-top-color .35s ease; }
.tm-stair-step:hover { background: rgba(212,147,0,0.07); border-top-color: var(--gold-brand); }

/* число как глиф: контурная цифра, а не бейдж */
.tm-stair-step p.tm-stair-num { position: relative; z-index: 1; margin: 0 0 20px; font-family: var(--tm-mono); font-size: clamp(46px,4.6vw,62px); font-weight: 700; line-height: 0.9; letter-spacing: -0.02em; color: transparent; -webkit-text-stroke: 1.5px var(--gold-deep); text-stroke: 1.5px var(--gold-brand); transition: -webkit-text-stroke-color .35s ease, color .35s ease; }
.tm-stair-step:hover p.tm-stair-num { color: rgba(212,147,0,0.14); }

.tm-stair-step h3 { position: relative; z-index: 1; margin: 0 0 12px; font-size: 20px; font-weight: 700; line-height: 1.28; color: var(--dark-primary); text-wrap: pretty; }
.tm-stair-step p.tm-stair-desc { position: relative; z-index: 1; margin: 0; font-size: 16.5px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }

/* угловой глиф — увеличивается при наведении, как на плитках «О компании» */
.tm-stair-glyph { position: absolute; right: 0; bottom: 0; width: 150px; height: 150px; color: var(--dark-primary); opacity: 0.055; pointer-events: none; transform-origin: 100% 100%; transition: transform .55s cubic-bezier(.23,1,.32,1), opacity .45s ease; }
.tm-stair-glyph svg { width: 100%; height: 100%; }
.tm-stair-step:hover .tm-stair-glyph { transform: scale(1.3) rotate(-5deg); opacity: 0.1; }
@media (prefers-reduced-motion: reduce) { .tm-stair-glyph { transition: opacity .3s ease; } .tm-stair-step:hover .tm-stair-glyph { transform: none; } }

/* предпоследний шаг — золотая заливка */
.tm-stair-step.tm-stair-warm { background: rgba(212,147,0,0.1); border-top-color: var(--gold-brand); }
.tm-stair-step.tm-stair-warm:hover { background: rgba(212,147,0,0.16); }
/* итог — тёмная плашка */
.tm-stair-step.tm-stair-final { background: var(--dark-primary); border-top-color: var(--gold-brand); }
.tm-stair-step.tm-stair-final:hover { background: #2b2826; }
.tm-stair-final p.tm-stair-num { -webkit-text-stroke-color: var(--gold-pale); text-stroke: 1.5px var(--gold-pale); }
.tm-stair-final:hover p.tm-stair-num { color: rgba(234,194,105,0.16); }
.tm-stair-final h3 { color: #fff; font-size: 23px; }
.tm-stair-final p.tm-stair-desc { color: rgba(255,255,255,0.82); }
.tm-stair-final .tm-stair-glyph { color: var(--gold-pale); opacity: 0.13; }
.tm-stair-final:hover .tm-stair-glyph { opacity: 0.26; }

/* крупные стрелки-указатели */
.tm-stair-step::after { content: ''; position: absolute; left: 50%; bottom: -23px; width: 22px; height: 22px; border-right: 2.5px solid var(--gold-brand); border-bottom: 2.5px solid var(--gold-brand); transform: translate(-50%,50%) rotate(45deg); z-index: 3; }
.tm-stair-step:last-child::after { display: none; }

@media (min-width: 980px) {
  .tm-stair { grid-template-columns: repeat(12,1fr); gap: 58px 40px; }
  .tm-stair-step:nth-child(1), .tm-stair-step:nth-child(2), .tm-stair-step:nth-child(3) { grid-column: span 4; }
  .tm-stair-step:nth-child(4) { grid-column: span 5; }
  .tm-stair-step:nth-child(5) { grid-column: span 7; padding: 40px 44px 44px; }
  .tm-stair-step:nth-child(1)::after, .tm-stair-step:nth-child(2)::after, .tm-stair-step:nth-child(4)::after { left: auto; right: -20px; bottom: auto; top: 50%; border-bottom: none; border-top: 2.5px solid var(--gold-brand); transform: translate(50%,-50%) rotate(45deg); }
  .tm-stair-step:nth-child(3)::after { display: none; }
  .tm-stair-step:nth-child(4)::before { content: ''; position: absolute; left: 32px; top: -53px; width: 24px; height: 24px; border-right: 2.5px solid var(--gold-brand); border-bottom: 2.5px solid var(--gold-brand); transform: translateY(50%) rotate(45deg); pointer-events: none; z-index: 2; }
}

.tm-why-note { margin-top: 2px; padding: clamp(28px,3vw,38px) clamp(26px,3vw,40px) clamp(30px,3vw,40px); background: var(--white-bg); border-top: 2px solid var(--dark-primary); }
.tm-why-note p.tm-why-note-label { margin: 0 0 16px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-deep); }
.tm-why-note p.tm-why-note-text { margin: 0; font-size: clamp(17px,1.6vw,19px); line-height: 1.65; color: var(--tm-text-muted); max-width: 88ch; text-wrap: pretty; }

/* ================= Светлая схема ================= */
/* Третья светлая поверхность: нейтральная панель рядом с бумагой (тёплой) и золотым тоном.
   Заменила тёмные секции — ритм чередования сохранён, но без чёрных полей. */
.bg-light-panel { position: relative; background-color: #eeece9; }
.bg-light-panel > .uk-container { position: relative; z-index: 1; }
.bg-light-panel .tm-kicker { color: var(--gold-deep); }
.bg-light-panel .tm-inline-link { color: var(--gold-deep); border-bottom-color: var(--gold-medium); }
.bg-light-panel .tm-inline-link:hover { color: var(--dark-primary); border-bottom-color: var(--gold-brand); }
.bg-light-panel .tm-index-list > li { border-bottom-color: var(--tm-border); }
.bg-light-panel .tm-index-num { color: var(--gold-deep); }
.bg-light-panel .tm-icon-circle-top::before { background: var(--gold-light); border-color: var(--gray); }
.bg-light-panel .tm-service-card:hover .tm-icon-circle-top::before { border-color: var(--gold-brand); background: var(--gold-medium); }
.bg-light-panel .tm-spec-list > li { border-bottom-color: var(--tm-border); }
.bg-light-panel .tm-spec-list > li::before { background: var(--gold-brand); }
.bg-light-panel .uk-card-default { background: var(--white-bg); }

/* Панель мобильного меню остаётся тёмной: тёмное выпадающее меню на светлом сайте уместно */
.uk-offcanvas-bar.bg-dark-nav { background-color: var(--dark-primary); color: var(--white-bg); }
.uk-offcanvas-bar.bg-dark-nav h1, .uk-offcanvas-bar.bg-dark-nav h2, .uk-offcanvas-bar.bg-dark-nav h3 { color: var(--white-bg); }
.uk-offcanvas-bar.bg-dark-nav p:not([class*="tm-"]) { color: var(--white-bg); }
.uk-offcanvas-bar.bg-dark-nav .uk-text-muted:not([class*="tm-"]) { color: rgba(238,233,224,0.72); }

/* --- Осветление секций: компоненты, у которых светлый текст задан в базовом правиле --- */
/* Эти блоки жили только внутри тёмных секций, поэтому смена класса секции их не затронула. */
.bg-light-panel .tm-chard,
.bg-light-panel .tm-corp-head,
.bg-light-panel .tm-corp-list > li,
.bg-light-panel .tm-out-text,
.bg-light-panel .tm-scale-title,
.bg-light-panel .tm-hero-title { color: var(--dark-primary); }
.bg-light-panel .tm-corp-text,
.bg-light-panel .tm-scale-desc { color: var(--tm-text-muted); }
.bg-light-panel .tm-clesson-text,
.bg-light-panel .tm-scale-row-full .tm-scale-title { color: var(--gold-deep); }
.bg-light-panel .tm-scale-num { color: var(--gold-ink); }

/* Вложенные тёмные блоки внутри светлой секции сохраняют светлые ссылки и надзаголовки */
.bg-light-panel .tm-flag .tm-inline-link,
.bg-light-panel .tm-sit-back .tm-inline-link,
.bg-light-panel .tm-mosaic-item .tm-inline-link { color: var(--gold-light-text); border-bottom-color: rgba(234,194,105,0.4); }
.bg-light-panel .tm-flag .tm-inline-link:hover,
.bg-light-panel .tm-sit-back .tm-inline-link:hover,
.bg-light-panel .tm-mosaic-item .tm-inline-link:hover { color: var(--white-bg); border-bottom-color: var(--gold-brand); }
.bg-light-panel .tm-flag .tm-kicker,
.bg-light-panel .tm-sit-back .tm-kicker,
.bg-light-panel .tm-mosaic-item .tm-kicker { color: var(--gold-light-text); }

/* Приглушённый текст: UIkit отдаёт #999 (2.4:1 на светлом фоне) — заменяем на читаемый тон.
   Правило шире осветления: тот же дефицит контраста был и на прежних светлых секциях. */
.uk-text-muted, p.uk-text-muted, .uk-text-muted p, .uk-card-body .uk-text-muted { color: var(--tm-text-muted) !important; }
.bg-light-panel .uk-text-muted { color: var(--tm-text-muted) !important; }

.uk-offcanvas-bar.bg-dark-nav .uk-text-muted, .tm-hero .uk-text-muted, .tm-flag .uk-text-muted,
.tm-sit-back .uk-text-muted, .tm-mosaic-item .uk-text-muted, footer .uk-text-muted,
.tm-ab-band .uk-text-muted, .tm-why-panel .uk-text-muted { color: rgba(238,233,224,0.72) !important; }

/* Вложенные тёмные блоки задают собственный базовый цвет текста, а не наследуют его от секции.
   Раньше светлый текст в них держался на правилах .bg-dark-contrast; после осветления секций
   опора исчезла, поэтому цвет объявлен на самих блоках. */
.tm-flag, .tm-sit-back, .tm-mosaic-item { color: var(--white-bg); }

/* Текст на золотом фоне: белый давал 2.6:1, чернила дают около 7:1 */
.uk-button-primary, .tm-flag-badge, .tm-feature-badge { color: var(--dark-primary); }
.uk-button-primary:hover, .uk-button-primary:focus { color: var(--dark-primary); }

/* Перекрёстная ссылка внизу секции: светлый текст остался от прежнего тёмного фона */
.bg-light-panel .tm-svc-crosslink p { color: var(--tm-text-muted); }
.bg-light-panel .tm-sit-back .tm-svc-crosslink p { color: rgba(238,233,224,0.72); }

/* Тёмные блоки внутри светлой секции: правило должно быть глубже светлого, иначе тон приходит от секции */
.bg-light-panel .tm-mosaic-item .uk-text-muted,
.bg-light-panel .tm-flag .uk-text-muted,
.bg-light-panel .tm-sit-back .uk-text-muted { color: rgba(238,233,224,0.72) !important; }

/* Золотой бренд-тон на светлых поверхностях даёт 2.2–2.4:1 — для мелких подписей нужен глубокий тон */
.bg-light-panel .tm-clesson-label { color: var(--gold-ink); }
.uk-background-default .tm-cstep-num, .uk-background-muted .tm-cstep-num, .bg-light-panel .tm-cstep-num, .bg-gold-overlay .tm-cstep-num { color: var(--gold-ink); }

/* Баннер страниц кейсов строится на .tm-case-hero со скримом в ::after — своя опора,
   поэтому осветление .tm-page-hero его не затронуло. Приводим к тому же светлому виду. */
.tm-case-hero .tm-case-title,
.tm-case-hero .tm-case-fact-value,
.tm-case-hero .tm-case-hero-content.uk-light h1,

.tm-case-hero .tm-case-lead,
.tm-case-hero .tm-case-fact-label,

/* ================= Главная: кому полезны ================= */
.tm-aud { display: grid; grid-template-columns: 1fr; }
.tm-aud-row { position: relative; display: grid; grid-template-columns: 1fr; gap: 12px; padding: 30px 0 32px; border-top: 1px solid var(--tm-border); transition: background .3s ease; }


.tm-aud-row:hover { background: rgba(212,147,0,0.05); }
@media (min-width: 880px) { .tm-aud-row { grid-template-columns: minmax(0,30ch) minmax(0,1fr); column-gap: clamp(30px,3.4vw,58px); align-items: start; } }
.tm-aud-row h3 { margin: 0; font-size: clamp(19px,1.9vw,23px); font-weight: 700; line-height: 1.25; text-wrap: pretty; }
.tm-aud-body p { margin: 0 0 16px; font-size: 17px; line-height: 1.6; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-aud-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
/* ================= Блок заявки: что обсудим ================= */
ul.tm-talk { margin: 26px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr; }
ul.tm-talk li { position: relative; padding: 13px 0 13px 28px; border-bottom: 1px solid var(--tm-border); font-size: 16.5px; line-height: 1.5; text-wrap: pretty; }
ul.tm-talk li:first-child { border-top: 1px solid var(--tm-border); }
ul.tm-talk li::before { content: ''; position: absolute; left: 0; top: 22px; width: 13px; height: 2px; background: var(--gold-brand); }
p.tm-talk-cap { margin: 0 0 4px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-deep); }



/* Бренд-золото на светлых поверхностях даёт 2.2–2.6:1 — мелким подписям нужен глубокий тон */
p.tm-talk-cap { color: var(--gold-ink); }
.tm-search-result-group { color: var(--gold-ink); }

/* Знак и надпись логотипа берут один тон: бренд-золото на светлой шапке даёт 2.4:1 */
.uk-navbar .uk-logo .tm-logo-icon { color: var(--gold-deep); }

/* ================= Первый экран: светлое поле, три стороны цепочкой ================= */
.tm-hx { position: relative; min-height: min(88vh,820px); display: flex; align-items: center; background: #fff; overflow: hidden; }
.tm-hx-in { position: relative; z-index: 1; width: 100%; padding: clamp(46px,5vw,74px) clamp(20px,5vw,60px); display: grid; grid-template-columns: 1fr; gap: clamp(34px,4vw,64px); }
@media (min-width: 980px) { .tm-hx-in { grid-template-columns: minmax(0,6fr) minmax(0,5fr); align-items: center; } }
.tm-hx p.tm-hx-kick { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; margin: 0 0 24px; font-family: var(--tm-mono); font-size: 12.5px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-deep); }
}
@media (prefers-reduced-motion: reduce) { }
.tm-hx h1 { margin: 0 0 20px; max-width: 24ch; font-size: clamp(34px,4.4vw,58px); font-weight: 800; line-height: 1.03; letter-spacing: -0.025em; color: var(--dark-primary); text-wrap: balance; }
.tm-hx h1 em { font-style: normal; color: var(--gold-deep); }
.tm-hx p.tm-hx-lead { margin: 0 0 32px; max-width: 52ch; font-size: clamp(17px,1.7vw,19.5px); line-height: 1.6; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-hx-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.tm-hx .tm-hero-link { color: var(--gold-deep); border-bottom-color: var(--gold-medium); }
.tm-hx .tm-hero-link:hover { color: var(--dark-primary); border-bottom-color: var(--gold-brand); }
.tm-hx .tm-kicker-code { color: var(--gold-deep); opacity: 1; }
/* Янтарь #D46900 с чернильным текстом даёт 4.6:1 — формально проходит, но на 16.5px
   читается тяжело. Основная кнопка первого экрана становится чернильной (15:1),
   янтарь уходит в состояние наведения. */
.tm-hx .uk-button-primary { background: var(--dark-primary); color: #fff; border-color: var(--dark-primary); letter-spacing: 0.04em; text-transform: uppercase; font-weight: 700; }
.tm-hx .uk-button-primary:hover, .tm-hx .uk-button-primary:focus { background: var(--gold-amber); color: #fff; border-color: var(--gold-amber); }
.tm-hx-chain { display: grid; grid-template-columns: 1fr; gap: 0; max-width: 520px; }
.tm-hx-node { padding: 22px 24px 24px; background: #fff; border: 1px solid var(--tm-border); border-top: 2px solid var(--dark-primary); }
/* заливка слоем поверх непрозрачной подложки, иначе фон секции просвечивает */
.tm-hx-node.is-mid { background-color: #fff; background-image: linear-gradient(var(--gold-medium),var(--gold-medium)); border-color: var(--gold-brand); border-top-width: 2px; }
.tm-hx-node p.tm-hx-side { margin: 0 0 14px; font-family: var(--tm-mono); font-size: 10.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-deep); }
.tm-hx-node.is-mid p.tm-hx-side { color: var(--gold-ink); }
.tm-hx-node ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 7px; }
.tm-hx-node li { position: relative; padding-left: 16px; font-size: 15.5px; line-height: 1.4; color: var(--tm-text-muted); }
.tm-hx-node li::before { content: ''; position: absolute; left: 0; top: 9px; width: 8px; height: 1.5px; background: var(--gold-brand); }
.tm-hx-node.is-mid li { color: var(--dark-primary); font-weight: 600; }
.tm-hx-link { display: flex; justify-content: center; height: 26px; }
.tm-hx-link span { display: block; width: 2px; height: 100%; background: linear-gradient(var(--tm-border),var(--gold-brand)); }
.tm-hx-link.is-down span { background: linear-gradient(var(--gold-brand),var(--tm-border)); }
@media (max-width: 639px) { .tm-hx-in { padding: 46px 20px; } .tm-hx-node { padding: 18px 18px 20px; } }

/* ================= Надзаголовки секций: вертикальная маркировка ================= */
/* Уголок заменён закрашенным ромбом; на широких экранах метка уходит в левое поле секции. */
.tm-kicker { position: relative; display: flex; align-items: center; gap: 0; margin: 0 0 30px; padding: 0; font-family: var(--tm-mono); font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; }
.tm-kicker::before { content: none; }
@media (min-width: 1180px) {
  section.uk-section > .uk-container { position: relative; padding-left: 86px; }
  section.uk-section > .uk-container > .tm-kicker { position: absolute; left: 0; top: 6px; margin: 0; writing-mode: vertical-rl; text-orientation: mixed; transform: rotate(180deg); transform-origin: center; letter-spacing: 0.26em; }
}
/* футер и баннеры страниц сохраняют горизонтальную метку */
footer .tm-kicker, .tm-page-hero .tm-kicker, .tm-case-hero .tm-kicker { position: static; writing-mode: horizontal-tb; }
@media (max-width: 639px) { .tm-kicker { font-size: 11px; margin-bottom: 22px; letter-spacing: 0.18em; } }

/* ================= Секция «С кем мы работаем»: поля у строк ================= */
.tm-aud-row { padding: 26px 22px 28px; margin: 0 -22px; }


/* ================= Форма заявки на странице: три кнопки в строку ================= */
#whatsapp-form-page .tm-modal-actions { flex-wrap: nowrap; justify-content: flex-start; gap: 10px; }
#whatsapp-form-page .tm-modal-actions .uk-button { flex: 1 1 0; min-width: 0; padding-left: 12px; padding-right: 12px; white-space: nowrap; }

/* ================= Этапы: цифра как анимированный глиф ================= */
/* Цифра шага и есть глиф: крупная контурная подложка карточки. */
.tm-stair-step { overflow: hidden; }
.tm-stair-step > *:not(.tm-stair-num) { position: relative; z-index: 2; }
.tm-stair-step p.tm-stair-num { position: absolute; right: -2%; bottom: -16%; z-index: 0; margin: 0; font-size: clamp(150px,17vw,240px); font-weight: 800; line-height: 0.72; letter-spacing: -0.06em; color: transparent; -webkit-text-stroke: 2px var(--dark-primary); opacity: 0.09; pointer-events: none; transform-origin: right bottom; transition: transform .6s cubic-bezier(.23,1,.32,1), opacity .45s ease; }
.tm-stair-step:hover p.tm-stair-num { transform: scale(1.1) rotate(-5deg); opacity: 0.16; }
.tm-stair-final p.tm-stair-num { -webkit-text-stroke-color: var(--gold-pale); opacity: 0.16; }
.tm-stair-final:hover p.tm-stair-num { opacity: 0.26; }


.tm-stair-step::after, .tm-stair-step::before { content: none; }

/* ================= Фон первого экрана: слои логознаков ================= */
/* Знаки четырёх калибров разложены по четырём слоям. Каждый слой ползёт со своей
   скоростью и по своей оси, поэтому знаки постоянно перекрывают друг друга по-новому. */
.tm-tect { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.tm-tect .lay-wrap { position: absolute; inset: 0; will-change: transform; }
.tm-tect .lay { position: absolute; inset: 0; will-change: transform; }
.tm-tect .gm { position: absolute; display: block; color: var(--dark-primary); opacity: 0.1; transform: translate(-50%,-50%) rotate(-14deg); }
.tm-tect .gm svg { display: block; width: 100%; height: 100%; }
.tm-tect .gm.au { color: var(--gold-brand); opacity: 0.28; }
.tm-tect .gm.fill { opacity: 0.05; }
.tm-tect .gm.fill.au { opacity: 0.13; }

.tm-tect .lay-xl { animation: tm-fl-y 13s ease-in-out infinite; }
.tm-tect .lay-lg { animation: tm-fl-x 10s ease-in-out infinite reverse; }
.tm-tect .lay-md { animation: tm-fl-xy 8s ease-in-out infinite; }
.tm-tect .lay-sm { animation: tm-fl-y 16s ease-in-out infinite reverse; }
.tm-tect .lay-s  { animation: tm-fl-y 6s ease-in-out infinite reverse; }
@keyframes tm-fl-y  { 0%,100% { transform: translate3d(0,-58px,0); } 50% { transform: translate3d(0,58px,0); } } 50% { transform: translate3d(0,78px,0) rotate(-14deg); } }
@keyframes tm-fl-x  { 0%,100% { transform: translate3d(-72px,0,0); } 50% { transform: translate3d(72px,0,0); } }
@keyframes tm-fl-xy { 0%,100% { transform: translate3d(-48px,36px,0); } 50% { transform: translate3d(48px,-36px,0); } }
@media (prefers-reduced-motion: reduce) { .tm-tect .lay { animation: none !important; transform: none; } }

/* поле под текстом остаётся спокойным */
.tm-tect::after { content: ''; position: absolute; inset: 0; background: radial-gradient(115% 88% at 32% 46%, rgba(243,242,242,0.93) 0%, rgba(243,242,242,0.7) 40%, rgba(243,242,242,0.16) 74%, rgba(243,242,242,0) 100%); }
@media (max-width: 639px) { .tm-tect .gm { transform: translate(-50%,-50%) rotate(-14deg) scale(0.62); } }
.tm-hx > .tm-blueprint { z-index: 1; }
.tm-hx-in { z-index: 2; }

/* появление узлов цепочки первого экрана */
@keyframes tm-hx-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.tm-hx-node { animation: tm-hx-rise .7s cubic-bezier(.23,1,.32,1) both; }
.tm-hx-node:nth-of-type(1) { animation-delay: .05s; }
.tm-hx-chain > .tm-hx-node:nth-child(3) { animation-delay: .18s; }
.tm-hx-chain > .tm-hx-node:nth-child(5) { animation-delay: .31s; }
.tm-hx-link span { transform-origin: top; animation: tm-hx-grow .5s ease both; }
@keyframes tm-hx-grow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.tm-hx-chain > .tm-hx-link:nth-child(2) span { animation-delay: .14s; }
.tm-hx-chain > .tm-hx-link:nth-child(4) span { animation-delay: .27s; }
@media (prefers-reduced-motion: reduce) { .tm-hx-node, .tm-hx-link span { animation: none; } }

/* Первый и второй экран — одно белое поле без разделителя. */
#why.uk-background-default { background-color: #fff; }
.tm-tect::after { background: radial-gradient(115% 88% at 32% 46%, rgba(255,255,255,0.93) 0%, rgba(255,255,255,0.7) 40%, rgba(255,255,255,0.16) 74%, rgba(255,255,255,0) 100%); }

/* ================= Схема первого экрана ================= */
/* Осевая схема: два ортогональных сборника и ядро между ними. Радиальных лучей нет —
   рисунок читается как маршрут, а не как звезда с ножками. */
@media (prefers-reduced-motion: reduce) {}
@media (max-width: 979px) {}

/* Шапка не отделяется линией; над белым первым экраном её подложка тоже белая,
   иначе на стыке появляется серая полоса. */
/* Шапка липкая и всегда отделена от контента: линия снизу плюс тень при прокрутке. */
.tm-navbar { position: sticky !important; top: 0; border-bottom: 1px solid var(--tm-border) !important; transition: box-shadow .25s ease, border-color .25s ease; }
.tm-navbar.is-stuck { border-bottom-color: rgba(32,30,29,0.14) !important; box-shadow: 0 1px 0 rgba(32,30,29,0.06), 0 8px 24px -12px rgba(32,30,29,0.22); }
/* правая группа: поиск, пункты и кнопка на одной оптической линии */
.tm-navbar .uk-navbar-right { align-items: center; gap: 4px; }
.tm-navbar .tm-search-btn { align-self: center; flex: 0 0 auto; margin-right: 4px; }
/* UIkit задаёт .uk-navbar-item min-height 80px, а ссылкам меню — 62px: кнопка съезжала вниз */
.tm-navbar .uk-navbar-nav > li > .uk-navbar-item { min-height: 0 !important; height: auto; padding: 0; margin-left: 10px; align-items: center; }
.tm-navbar .uk-navbar-right > * { align-self: center; }
.tm-navbar .uk-navbar-nav { align-items: center; }
.tm-navbar .uk-navbar-nav > li > .uk-navbar-item { min-height: 0; padding: 0; margin-left: 10px; }
.tm-navbar .uk-navbar-nav > li:has(> .uk-navbar-item) { display: flex; align-items: center; }
body:has(#top.tm-hx) .tm-navbar::before { background: #fff; }
body:has(#top.tm-hx) { background: #fff; }
/* фолбэк для браузеров без :has() — главная помечена классом на <html> через JS ниже */
html.tm-white-top .tm-navbar::before, html.tm-white-top body { background: #fff; }

/* текст схемы берёт основной шрифтовой стек проекта */
/* подписи внутрь поля, чтобы не выходили за границы svg */

/* ================= Общее поле первых двух экранов ================= */
/* Фон логознаков живёт в обёртке и работает сразу на два экрана; сами секции прозрачны. */
.tm-top-field { position: relative; background: #fff; }
.tm-top-field > .tm-tect { position: absolute; inset: 0; height: 100%; }
.tm-top-field #top.tm-hx, .tm-top-field #why { background: transparent; }
.tm-top-field #why { position: relative; z-index: 1; }
.tm-top-field .tm-tect::after { background: rgba(255,255,255,0.26); }

/* ================= Баннеры разделов: крупные наклонные шевроны ================= */
/* Порядок слоёв задаётся поимённо: общее правило на > * поднимало вуаль
   на один уровень с узором, и узор оказывался под ней.
   фотография 0 · вуаль 1 · плитка 2 · текст 3 */
.tm-page-hero, .tm-case-hero { position: relative; }
.tm-page-hero > img, .tm-case-hero > img { z-index: 0; }
.tm-page-hero > .tm-page-hero-overlay { z-index: 1; }
.tm-case-hero::after { z-index: 1; }
.tm-page-hero::before, .tm-case-hero::before { content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none; background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='xMidYMid slice'><g transform='rotate(-14 800 450)'><g fill='none' stroke='%23201e1d' stroke-width='56' stroke-linecap='miter' stroke-linejoin='miter' opacity='0.45'><line x1='142.8' y1='498.3' x2='1117.8' y2='498.3'/><path d='M727.8,69.3 L1117.8,498.3 L727.8,927.3'/><path d='M415.8,69.3 L805.8,498.3 L415.8,927.3'/></g><g fill='none' stroke='%238a6000' stroke-width='46.8' stroke-linecap='miter' stroke-linejoin='miter' opacity='0.5'><line x1='933.5' y1='677.7' x2='1258.5' y2='677.7'/><path d='M1128.5,534.7 L1258.5,677.7 L1128.5,820.7'/><path d='M1024.5,534.7 L1154.5,677.7 L1024.5,820.7'/></g><g fill='none' stroke='%23201e1d' stroke-width='23.4' stroke-linecap='miter' stroke-linejoin='miter' opacity='0.42'><line x1='865.6' y1='692.4' x2='1028.1' y2='692.4'/><path d='M963.1,620.9 L1028.1,692.4 L963.1,763.9'/><path d='M911.1,620.9 L976.1,692.4 L911.1,763.9'/></g><g fill='none' stroke='%238a6000' stroke-width='14.4' stroke-linecap='miter' stroke-linejoin='miter' opacity='0.34'><line x1='1204.5' y1='452.1' x2='1304.5' y2='452.1'/><path d='M1264.5,408.1 L1304.5,452.1 L1264.5,496.1'/><path d='M1232.5,408.1 L1272.5,452.1 L1232.5,496.1'/></g></g></svg>"); background-repeat: no-repeat; background-position: center; background-size: cover; opacity: 0.34; }
.tm-page-hero > .tm-page-hero-content, .tm-case-hero > .tm-case-hero-content { position: relative; z-index: 3; }
@media (max-width: 639px) { .tm-page-hero::before, .tm-case-hero::before { opacity: 0.26; } }

/* ================= v2: утилитарная строка шапки ================= */
.tm-topbar-offices { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 20px; }
.tm-topbar-office { display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; color: rgba(238,233,224,0.78); }
.tm-topbar-office b { font-weight: 600; color: var(--gold-pale); }
.tm-topbar-office [uk-icon] { color: var(--gold-brand); }
.tm-topbar-msg { display: inline-flex; align-items: center; gap: 12px; }
.tm-topbar-msg a { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; color: rgba(238,233,224,0.8); transition: color .2s ease; }
.tm-topbar-msg a:hover { color: var(--gold-pale); }
.tm-lang { display: inline-flex; align-items: center; gap: 2px; }
.tm-lang a { padding: 5px 8px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: .1em; color: rgba(238,233,224,0.6); text-decoration: none; transition: color .2s ease; }
.tm-lang a[aria-current="true"] { color: var(--gold-pale); }
.tm-lang a:hover { color: #fff; text-decoration: none; }
.tm-lang span { color: rgba(238,233,224,0.55); }
@media (max-width: 959px) { .tm-topbar-offices .tm-topbar-office:nth-child(n+2) { display: none; } }

/* ================= v2: мега-меню ================= */
.tm-navbar .uk-navbar-nav > li > a { font-size: 14.5px; font-weight: 600; letter-spacing: .02em; text-transform: none; color: var(--tm-text-main); min-height: 62px; }
.tm-navbar .uk-navbar-nav > li:hover > a, .tm-navbar .uk-navbar-nav > li > a:focus-visible, .tm-navbar .uk-navbar-nav > li.uk-open > a { color: var(--gold-deep); }
.tm-mega { width: 1080px; max-width: calc(100vw - 40px); padding: 0; background: var(--white-bg); border-top: 2px solid var(--gold-brand); box-shadow: 0 22px 48px rgba(32,30,29,0.16); }
.tm-mega-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) minmax(0,0.86fr); gap: 1px; background: var(--tm-border); }
.tm-mega-col { padding: 26px 24px 28px; background: var(--white-bg); }
.tm-mega-col p.tm-mega-head { margin: 0 0 4px; font-family: var(--tm-mono); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-deep); }
.tm-mega-col p.tm-mega-note { margin: 0 0 16px; font-size: 13.5px; line-height: 1.45; color: var(--tm-text-muted); }
.tm-mega-col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; }
.tm-mega-col ul a { display: block; padding: 8px 0; font-size: 15px; line-height: 1.35; color: var(--tm-text-main); text-decoration: none; transition: color .2s ease, padding-left .2s ease; }
.tm-mega-col ul a:hover, .tm-mega-col ul a:focus-visible { color: var(--gold-deep); padding-left: 6px; text-decoration: none; }
.tm-mega-promo { padding: 26px 24px 28px; background: var(--dark-primary); }
.tm-mega-promo p.tm-mega-head { color: var(--gold-pale); }
.tm-mega-promo h3 { margin: 0 0 10px; font-size: 19px; font-weight: 700; line-height: 1.25; color: #fff; }
.tm-mega-promo p { margin: 0 0 18px; font-size: 14.5px; line-height: 1.5; color: rgba(255,255,255,0.76); }
.tm-mega-promo a.tm-mega-cta { display: inline-flex; align-items: center; gap: 9px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-pale); text-decoration: none; transition: gap .25s ease; }
.tm-mega-promo a.tm-mega-cta:hover { gap: 16px; text-decoration: none; }

/* ================= v2: полоса доверия ================= */
.tm-trust { display: grid; grid-template-columns: 1fr; gap: 1px; margin-top: clamp(34px,4vw,52px); background: var(--tm-border); border-top: 2px solid var(--dark-primary); border-bottom: 1px solid var(--tm-border); }
@media (min-width: 640px) { .tm-trust { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1000px) { .tm-trust { grid-template-columns: repeat(5,1fr); } }
.tm-trust-item { padding: 20px 20px 22px; background: #fff; }
.tm-trust-item p.tm-trust-val { margin: 0 0 5px; font-size: clamp(20px,2vw,26px); font-weight: 800; line-height: 1.1; letter-spacing: -.015em; color: var(--dark-primary); }
.tm-trust-item p.tm-trust-lab { margin: 0; font-size: 14px; line-height: 1.4; color: var(--tm-text-muted); }

/* ================= v2: три формата сотрудничества ================= */
.tm-fmt { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: 1px; background: var(--tm-border); border: 1px solid var(--tm-border); }
@media (min-width: 720px) { .tm-fmt { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 1000px) { .tm-fmt { grid-template-columns: repeat(3,minmax(0,1fr)); } }
/* последний абзац карточки без нижнего отступа: иначе внутри блока висит пустое поле */
.tm-fmt-card > p:last-child { margin-bottom: 0; }
.tm-fmt-card > h3:last-child { margin-bottom: 0; }
@media (min-width: 860px) { .tm-fmt { grid-template-columns: repeat(3,1fr); } }
.tm-fmt-card { display: flex; flex-direction: column; padding: 30px 28px 32px; background: var(--white-bg); text-decoration: none; color: inherit; transition: background .3s ease; }
.tm-fmt-card:hover { background: var(--gold-light); text-decoration: none; }
.tm-fmt-card p.tm-fmt-key { margin: 0 0 16px; font-family: var(--tm-mono); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-deep); }
.tm-fmt-card h3 { margin: 0 0 12px; font-size: 22px; font-weight: 700; line-height: 1.25; color: var(--dark-primary); }
.tm-fmt-card p { margin: 0 0 22px; font-size: 16.5px; line-height: 1.55; color: var(--tm-text-muted); }
.tm-fmt-card span.tm-fmt-cue { margin-top: auto; display: inline-flex; align-items: center; gap: 9px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--tm-text-main); transition: gap .25s ease, color .2s ease; }
.tm-fmt-card:hover span.tm-fmt-cue { gap: 16px; color: var(--gold-deep); }

/* ================= v2: реквизиты в футере ================= */
.tm-legal-row { display: grid; grid-template-columns: 1fr; gap: 10px 34px; margin-top: 26px; padding-top: 22px; border-top: 1px solid rgba(238,233,224,0.14); }
@media (min-width: 760px) { .tm-legal-row { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.tm-legal-row p { margin: 0; font-size: 13.5px; line-height: 1.5; color: rgba(238,233,224,0.62); }
.tm-legal-row p b { display: block; margin-bottom: 3px; font-family: var(--tm-mono); font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-brand); }

/* ================= v2: девять услуг реестром ================= */
.tm-svc9 { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--tm-border); border-top: 2px solid var(--dark-primary); border-bottom: 1px solid var(--tm-border); }
@media (min-width: 700px) { .tm-svc9 { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1080px) { .tm-svc9 { grid-template-columns: repeat(3,1fr); } }
a.tm-svc9-item { display: block; padding: 24px 24px 26px; background: var(--white-bg); text-decoration: none; color: inherit; transition: background .28s ease; }
a.tm-svc9-item:hover { background: var(--gold-light); text-decoration: none; }
a.tm-svc9-item h3 { margin: 0 0 8px; font-size: 19px; font-weight: 700; line-height: 1.25; color: var(--dark-primary); transition: color .2s ease; }
a.tm-svc9-item:hover h3 { color: var(--gold-deep); }
a.tm-svc9-item p { margin: 0; font-size: 15.5px; line-height: 1.5; color: var(--tm-text-muted); }

/* ================= v2: блок ценообразования ================= */
.tm-price { padding: clamp(26px,3vw,38px) clamp(24px,3vw,36px); background: rgba(212,147,0,0.08); border-top: 2px solid var(--gold-brand); }
.tm-price p.tm-price-cap { margin: 0 0 14px; font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-deep); }
.tm-price p { margin: 0 0 12px; font-size: 17px; line-height: 1.6; color: var(--tm-text-main); text-wrap: pretty; }
.tm-price p:last-child { margin-bottom: 0; }
.tm-price p.tm-price-note { font-size: 15.5px; color: var(--tm-text-muted); }

/* ================= v2: нумерованные этапы услуги ================= */
ol.tm-steps { margin: 0; padding: 0; list-style: none; counter-reset: st; display: grid; grid-template-columns: 1fr; }
ol.tm-steps li { position: relative; counter-increment: st; display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 18px; padding: 18px 0 20px; border-top: 1px solid var(--tm-border); }
ol.tm-steps li:first-child { border-top: 2px solid var(--dark-primary); }
ol.tm-steps li:last-child { border-bottom: 1px solid var(--tm-border); }
ol.tm-steps li::before { content: counter(st,decimal-leading-zero); font-family: var(--tm-mono); font-size: 14px; font-weight: 700; letter-spacing: .1em; line-height: 1.6; color: var(--gold-deep); }
ol.tm-steps li p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--tm-text-main); text-wrap: pretty; }
ol.tm-steps li p b { font-weight: 700; }
ol.tm-steps li p span.tm-steps-out { display: block; margin-top: 5px; font-size: 15px; color: var(--tm-text-muted); }

/* Полоса показателей идёт под обеими колонками первого экрана */
@media (min-width: 980px) { .tm-hx-in > .tm-trust { grid-column: 1 / -1; } }
/* Декор маркеров секций снят полностью: у .tm-kicker::before content уже none,
   но правая половина парного уголка осталась в .uk-flex-center и на центрированном
   маркере печаталась поверх текста. Закрашенный ромбик в баннере проектов —
   последнее вхождение этого декора на сайте. */
.tm-kicker.uk-flex-center::after { content: none; }
.tm-case-hero-tag::before { content: none; }

/* ================= Главная: аудитория ================= */
/* Белое поле в середине перечня секций: ритм фонов идёт панель → белое → бумага. */
.bg-plain-white { background: #fff; }
.tm-aud-lede { display: grid; grid-template-columns: 1fr; gap: 10px 40px; margin: 0 0 clamp(34px,4vw,52px); }
@media (min-width: 900px) { .tm-aud-lede { grid-template-columns: minmax(0,7fr) minmax(0,5fr); align-items: end; } }
.tm-aud-lede h2 { margin: 0; font-size: clamp(30px,3.6vw,48px); font-weight: 800; line-height: 1.06; letter-spacing: -0.02em; color: var(--dark-primary); text-wrap: balance; }
.tm-aud-lede p { margin: 0; font-size: clamp(17px,1.6vw,19px); line-height: 1.6; color: var(--tm-text-muted); text-wrap: pretty; }
/* Метки внутри строки — ссылки на соответствующие услуги, а не украшение. */
a.tm-aud-tag { display: inline-block; padding: 7px 13px; background: #fff; border: 1px solid var(--tm-border); font-size: 12.5px; font-weight: 600; letter-spacing: 0.02em; color: var(--gold-ink); text-decoration: none; transition: border-color .2s ease, background .2s ease, color .2s ease; }
a.tm-aud-tag:hover, a.tm-aud-tag:focus-visible { border-color: var(--gold-brand); background: var(--gold-light); color: var(--dark-primary); text-decoration: none; }
.tm-aud-row h3 { color: var(--dark-primary); }
.tm-aud-row:hover h3 { color: var(--gold-ink); }

/* ================= Главная: витрина проектов ================= */
/* Ведущий кейс крупной тёмной плашкой, два спутника рядом — секция перестаёт
   повторять сетку трёх равных карточек из соседних блоков. */
.tm-show { display: grid; grid-template-columns: 1fr; gap: 2px; background: var(--tm-border); border: 1px solid var(--tm-border); }
@media (min-width: 940px) { .tm-show { grid-template-columns: minmax(0,7fr) minmax(0,5fr); grid-template-rows: 1fr 1fr; } .tm-show > a:first-child { grid-row: 1 / 3; } }
a.tm-show-lead, a.tm-show-item { display: flex; flex-direction: column; padding: clamp(28px,3vw,40px); text-decoration: none; transition: background .3s ease; }
a.tm-show-lead { background: var(--dark-primary); color: #fff; justify-content: flex-end; min-height: 300px; }
a.tm-show-lead:hover, a.tm-show-lead:focus-visible { background: #2b2826; text-decoration: none; }
a.tm-show-item { background: var(--white-bg); color: inherit; }
a.tm-show-item:hover, a.tm-show-item:focus-visible { background: var(--gold-light); text-decoration: none; }
.tm-show p.tm-show-meta { margin: 0 0 16px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-ink); }
a.tm-show-lead p.tm-show-meta { color: var(--gold-pale); }
.tm-show h3 { margin: 0 0 12px; font-size: 21px; font-weight: 700; line-height: 1.25; color: var(--dark-primary); text-wrap: pretty; }
a.tm-show-lead h3 { font-size: clamp(25px,2.7vw,36px); line-height: 1.12; letter-spacing: -0.015em; color: #fff; text-wrap: balance; }
.tm-show p.tm-show-desc { margin: 0 0 22px; font-size: 16.5px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }
a.tm-show-lead p.tm-show-desc { font-size: 18px; color: rgba(255,255,255,0.8); }
.tm-show span.tm-show-cue { display: inline-flex; align-items: center; gap: 9px; margin-top: auto; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dark-primary); transition: gap .3s ease, color .2s ease; }
a.tm-show-lead span.tm-show-cue { color: var(--gold-pale); margin-top: 0; }
.tm-show a:hover span.tm-show-cue { gap: 16px; color: var(--gold-ink); }
a.tm-show-lead:hover span.tm-show-cue { color: #fff; }

/* ================= Главная: указатель материалов ================= */
/* Строки-ссылки вместо карточек: третья соседняя секция получает свой рисунок. */
.tm-idx { display: grid; grid-template-columns: 1fr; border-top: 2px solid var(--dark-primary); }
a.tm-idx-row { display: grid; grid-template-columns: 1fr; gap: 6px; padding: 24px 0 26px; border-bottom: 1px solid var(--tm-border); text-decoration: none; color: inherit; transition: padding-left .3s ease, background .3s ease; }
@media (min-width: 820px) { a.tm-idx-row { grid-template-columns: minmax(0,15ch) minmax(0,1fr) auto; column-gap: clamp(24px,3vw,52px); align-items: baseline; } }
a.tm-idx-row:hover, a.tm-idx-row:focus-visible { background: rgba(212,147,0,0.05); padding-left: 12px; text-decoration: none; }
.tm-idx p.tm-idx-rub { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--gold-ink); }
.tm-idx h3 { margin: 0 0 6px; font-size: clamp(19px,1.9vw,23px); font-weight: 700; line-height: 1.3; color: var(--dark-primary); text-wrap: pretty; }
a.tm-idx-row:hover h3 { color: var(--gold-ink); }
.tm-idx p.tm-idx-sum { margin: 0; font-size: 16.5px; line-height: 1.55; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-idx span.tm-idx-arrow { display: inline-flex; align-items: center; color: var(--gold-ink); transition: transform .3s ease; }
a.tm-idx-row:hover span.tm-idx-arrow { transform: translateX(6px); }

.tm-aud-row:hover a.tm-aud-tag { border-color: rgba(212,147,0,0.45); }
/* На узком экране ведущая карточка витрины больше не держит пустое поле сверху. */
@media (max-width: 939px) { a.tm-show-lead { min-height: 0; } }

/* ================= Указатель материалов: тумбнейлы ================= */
a.tm-idx-row { align-items: center; }
@media (min-width: 820px) { a.tm-idx-row { grid-template-columns: 132px minmax(0,13ch) minmax(0,1fr) auto; } }
/* На узком экране тумбнейл идёт полосой над текстом: колонка 92px давала кадр 92×57 —
   в нём не читается ни один сюжет. */
@media (max-width: 819px) { a.tm-idx-row { grid-template-columns: minmax(0,1fr); row-gap: 14px; padding: 22px 0 26px; } .tm-idx-thumb { aspect-ratio: 16 / 7; } .tm-idx p.tm-idx-rub { order: 2; } a.tm-idx-row > div { order: 3; } .tm-idx span.tm-idx-arrow { display: none; } }
.tm-idx-thumb { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 10; background: var(--dark-primary); }
.tm-idx-thumb img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.94) contrast(1.05); transition: filter .45s ease; }
/* золотая вуаль в покое: снимается при наведении, фотография раскрывается в цвет */
.tm-idx-thumb::after { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(212,147,0,0.28) 0%, rgba(32,30,29,0.34) 100%); transition: opacity .45s ease; }
a.tm-idx-row:hover .tm-idx-thumb::after, a.tm-idx-row:focus-visible .tm-idx-thumb::after { opacity: 0; }
a.tm-idx-row:hover .tm-idx-thumb img { filter: saturate(1.12) contrast(1.08); }
/* тонкая золотая обводка выезжает по краю кадра */
.tm-idx-thumb::before { content: ''; position: absolute; inset: 0; z-index: 2; border: 0 solid var(--gold-brand); transition: border-width .3s ease; pointer-events: none; }
a.tm-idx-row:hover .tm-idx-thumb::before { border-width: 2px; }

/* ================= China Desk: фотография в плашке ================= */
a.tm-why-flag { position: relative; overflow: hidden; }
@media (min-width: 900px) { a.tm-why-flag { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,340px); column-gap: clamp(28px,3vw,52px); align-items: center; } a.tm-why-flag > *:not(.tm-flag-media) { grid-column: 1; } }
.tm-flag-media { position: relative; overflow: hidden; align-self: stretch; min-height: 200px; background: var(--dark-secondary); }
@media (min-width: 900px) { .tm-flag-media { grid-column: 2; grid-row: 1 / span 20; margin: calc(-1 * var(--flag-pt)) calc(-1 * var(--flag-px)) calc(-1 * var(--flag-pb)) 0; } }
@media (max-width: 899px) { .tm-flag-media { margin: 24px calc(-1 * var(--flag-px)) calc(-1 * var(--flag-pb)); } }
.tm-flag-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(1.08) contrast(1.04); transition: transform 1.1s cubic-bezier(.23,1,.32,1), filter .5s ease; }
a.tm-why-flag:hover .tm-flag-media img { transform: scale(1.05); filter: saturate(1.22) contrast(1.06); }
/* вуаль растворяет кадр в сторону текста, чтобы стык не был резким */
.tm-flag-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, var(--dark-primary) 0%, rgba(32,30,29,0.42) 32%, rgba(32,30,29,0.04) 100%); }
@media (max-width: 899px) { .tm-flag-media::after { background: linear-gradient(180deg, var(--dark-primary) 0%, rgba(32,30,29,0.4) 40%, rgba(32,30,29,0.1) 100%); } }

/* Утилита UIkit даёт масштаб 1.03 — для тумбнейла усиливаем через её же переменные. */
a.tm-idx-row:hover .uk-transition-scale-up, a.tm-idx-row:focus-visible .uk-transition-scale-up { --uk-scale-x: 1.09; --uk-scale-y: 1.09; }
.tm-idx-thumb .uk-transition-scale-up { transition: transform .55s cubic-bezier(.23,1,.32,1), filter .45s ease; }

/* ================= Витрина проектов: фотография фоном карточки ================= */
a.tm-show-lead, a.tm-show-item { position: relative; overflow: hidden; }
.tm-show-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.tm-show-bg img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.9) contrast(1.05); transition: transform 1.1s cubic-bezier(.23,1,.32,1), filter .5s ease; }
a.tm-show-lead:hover .tm-show-bg img, a.tm-show-item:hover .tm-show-bg img { transform: scale(1.06); filter: saturate(1.1) contrast(1.07); }
/* вуаль держит читаемость текста: у ведущей карточки плотнее снизу, у спутников — сплошная светлая */
.tm-show-bg::after { content: ''; position: absolute; inset: 0; }
a.tm-show-lead .tm-show-bg::after { background: linear-gradient(180deg, rgba(32,30,29,0.78) 0%, rgba(32,30,29,0.89) 45%, rgba(32,30,29,0.95) 100%); }
a.tm-show-item .tm-show-bg::after { background: linear-gradient(180deg, rgba(243,242,242,0.93) 0%, rgba(243,242,242,0.96) 100%); transition: background .3s ease; }
a.tm-show-item:hover .tm-show-bg::after { background: linear-gradient(180deg, rgba(250,244,230,0.92) 0%, rgba(250,244,230,0.95) 100%); }
a.tm-show-lead > *:not(.tm-show-bg), a.tm-show-item > *:not(.tm-show-bg) { position: relative; z-index: 1; }

/* Ссылки хлебных крошек лежат на светлых участках фотографии баннера:
   бренд-золото --gold-deep даёт там менее 3:1, нужен чернильный тон. */
@media (max-width: 639px) { .tm-case-hero::before { opacity: 0.22; } }
/* мелкие метки паспорта проекта читаются на фотографии только в чернильном тоне */
/* Вводный абзац кейса читается на узоре только в основном тоне. */
/* Длинное название кейса переносится строкой, а не ломает ряд крошек. */
.tm-case-hero .tm-breadcrumb, .tm-page-hero .tm-breadcrumb { flex-wrap: wrap; align-items: baseline; row-gap: 4px; }


/* На узком экране cover срезает композицию по горизонтали настолько, что углы шевронов
   уходят из кадра и узор читается как полосы — там показываем его целиком. */
@media (max-width: 639px) { .tm-page-hero::before, .tm-case-hero::before { background-size: contain; background-position: center; } }

/* ================= Наконечник линий-разделителей ================= */
/* Ромб фирменного знака начинает каждую тонкую линейку ruled-списков:
   аудитория на главной, указатель материалов, шаги начала работы. */
.tm-aud-row, .tm-idx-row, .tm-onb li { position: relative; }
.tm-aud-row::after, .tm-idx-row::after, .tm-onb li::after { content: ''; position: absolute; left: 0; width: 7px; height: 7px; background: var(--gold-brand); transform: rotate(45deg); pointer-events: none; }
/* у первой строки линейка сверху принадлежит всему списку — наконечник ставим и там */
.tm-idx { position: relative; }


/* ================= Логознак в углу карточек мега-меню ================= */
/* Ромб примыкает двумя гранями к верхнему правому углу карточки; при наведении
   на карточку слегка проступает. Только здесь — приём остаётся редким. */
@media (max-width: 959px) { }

/* ================= Логознак в углу колонок мега-меню ================= */
/* Ромб примыкает двумя гранями к верхнему правому углу; при наведении проступает. */
.tm-mega-col, .tm-mega-promo { position: relative; overflow: hidden; }
.tm-mega-promo::after { content: ''; position: absolute; top: 0; right: 0; width: 54px; height: 54px; background-repeat: no-repeat; background-position: center; background-size: contain; transform: rotate(45deg); transition: opacity .35s ease, transform .5s cubic-bezier(.23,1,.32,1); pointer-events: none; }
.tm-mega-promo::after { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23eac269%22%20stroke-width%3D%225%22%20stroke-linejoin%3D%22round%22%20stroke-linecap%3D%22round%22%3E%3Cpolygon%20points%3D%2250%2C10%2090%2C50%2050%2C90%2010%2C50%22%2F%3E%3Cline%20x1%3D%2250%22%20y1%3D%2230%22%20x2%3D%2250%22%20y2%3D%2290%22%2F%3E%3Cpath%20d%3D%22M30%2C50%20L50%2C30%20L70%2C50%22%2F%3E%3Cpath%20d%3D%22M30%2C70%20L50%2C50%20L70%2C70%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); opacity: 0.4; }

.tm-mega-promo:hover::after, .tm-mega-promo:focus-within::after { opacity: 0.7; transform: rotate(45deg) scale(1.12); }
.tm-mega-col > *, .tm-mega-promo > * { position: relative; z-index: 1; }

/* Кнопка карты сайта в шапке — открывает полное меню разделов */
.tm-nav-map { display: flex !important; align-items: center; justify-content: center; width: 40px; height: 40px; margin-right: 4px; color: var(--tm-text-muted); border: 1px solid transparent; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.tm-nav-map:hover, .tm-nav-map:focus-visible { color: var(--gold-deep); border-color: rgba(212,147,0,0.4); background: rgba(212,147,0,0.07); }

/* Сетка модального меню собственным CSS: uk-grid не инициализируется в скрытом блоке */
.tm-menu-modal .tm-menu-grid { display: grid !important; grid-template-columns: 1fr; gap: 1px; margin: 0 !important; }
@media (min-width: 640px) { .tm-menu-modal .tm-menu-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 1100px) { .tm-menu-modal .tm-menu-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.tm-menu-modal .tm-menu-grid > .tm-menu-card { width: auto !important; padding-left: 22px !important; margin: 0 !important; }


/* Логознак значком перед названием карточки меню */
.tm-menu-card-title { display: flex; align-items: center; gap: 11px; }
.tm-menu-card-title::before { content: ''; flex: 0 0 auto; width: 19px; height: 19px; background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23d49300%22%20stroke-width%3D%226%22%20stroke-linejoin%3D%22round%22%20stroke-linecap%3D%22round%22%3E%3Cpolygon%20points%3D%2250%2C4%2096%2C50%2050%2C96%204%2C50%22%2F%3E%3Cline%20x1%3D%2250%22%20y1%3D%2226%22%20x2%3D%2250%22%20y2%3D%2296%22%2F%3E%3Cpath%20d%3D%22M28%2C50%20L50%2C28%20L72%2C50%22%2F%3E%3Cpath%20d%3D%22M28%2C72%20L50%2C50%20L72%2C72%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") no-repeat center / contain; opacity: 0.9; }
/* Сетка меню собственным CSS: uk-grid не инициализируется в скрытом блоке */
.tm-menu-modal .tm-menu-grid { display: grid !important; grid-template-columns: 1fr; gap: 1px; margin: 0 !important; }
@media (min-width: 640px) { .tm-menu-modal .tm-menu-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 1000px) { .tm-menu-modal .tm-menu-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.tm-menu-modal .tm-menu-grid > .tm-menu-card { width: auto !important; margin: 0 !important; }
.tm-menu-modal .tm-mark-corner-tl { display: none; }

/* ================= Комплексные услуги: три уровня охвата ================= */
.tm-tier { display: grid; grid-template-columns: 1fr; gap: 2px; background: var(--tm-border); border: 1px solid var(--tm-border); }
@media (min-width: 900px) { .tm-tier { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.tm-tier-card { display: flex; flex-direction: column; padding: clamp(28px,3vw,40px) clamp(24px,2.6vw,34px) clamp(30px,3vw,38px); background: var(--white-bg); color: inherit; text-decoration: none; transition: background .3s ease; }
a.tm-tier-card:hover, a.tm-tier-card:focus-visible { background: var(--gold-light); text-decoration: none; }
.tm-tier-card.is-max { background: var(--dark-primary); color: #fff; }
a.tm-tier-card.is-max:hover, a.tm-tier-card.is-max:focus-visible { background: #2b2826; }
.tm-tier-badge { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; margin: 0 0 18px; padding: 5px 11px; border: 1px solid var(--gold-brand); font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-ink); }
.is-max .tm-tier-badge { border-color: var(--gold-pale); background: rgba(212,147,0,0.18); color: var(--gold-pale); }
.tm-tier-card h3 { margin: 0 0 12px; font-size: clamp(21px,2.1vw,26px); font-weight: 700; line-height: 1.2; color: var(--dark-primary); text-wrap: pretty; }
.is-max h3 { color: #fff; }
.tm-tier-card p.tm-tier-desc { margin: 0 0 20px; font-size: 16.5px; line-height: 1.6; color: var(--tm-text-muted); text-wrap: pretty; }
.is-max p.tm-tier-desc { color: rgba(255,255,255,0.82); }
ul.tm-tier-list { margin: 0 0 24px; padding: 0; list-style: none; display: grid; gap: 8px; }
ul.tm-tier-list li { position: relative; padding-left: 18px; font-size: 15.5px; line-height: 1.5; color: var(--tm-text-main); }
.is-max ul.tm-tier-list li { color: rgba(255,255,255,0.88); }
ul.tm-tier-list li::before { content: ''; position: absolute; left: 0; top: 8px; width: 7px; height: 7px; border: 1.4px solid var(--gold-brand); transform: rotate(45deg); }
.is-max ul.tm-tier-list li::before { border-color: var(--gold-pale); }
.tm-tier-card span.tm-tier-cue { display: inline-flex; align-items: center; gap: 9px; margin-top: auto; font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold-ink); transition: gap .3s ease; }
.is-max span.tm-tier-cue { color: var(--gold-pale); }
a.tm-tier-card:hover span.tm-tier-cue { gap: 16px; }


/* ================= Подвал: плотная сетка, мобильная компоновка ================= */
footer .tm-footer-heading { display: block; width: 100%; padding-bottom: 10px; margin-bottom: 14px; border-bottom: 1px solid rgba(234,194,105,0.2); }
footer .uk-container > .uk-grid-large > * { display: block; }
footer .uk-nav-default > li > a { padding: 7px 0; }
footer .tm-footer-base { margin-top: 24px; }
@media (min-width: 960px) {
  footer .tm-footer-base { margin-top: 28px; }
}
@media (max-width: 959px) {
  footer.uk-section-large { padding-top: 60px; padding-bottom: 44px; }
  footer .uk-container > .uk-grid-large { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 24px; margin: 0; }
  footer .uk-container > .uk-grid-large > * { width: auto; max-width: none; padding-left: 0; padding-top: 0; }
  footer .uk-container > .uk-grid-large > *:first-child { grid-column: 1 / -1; padding-bottom: 26px; border-bottom: 1px solid rgba(234,233,224,0.12); }
  footer .uk-container > .uk-grid-large > *:last-child { grid-column: 1 / -1; padding-top: 26px; border-top: 1px solid rgba(238,233,224,0.12); }
  footer .uk-container > .uk-grid-large > *:first-child p { max-width: 30em; }
  footer .tm-footer-base { margin-top: 22px; }
}
@media (max-width: 639px) {
  footer .uk-container > .uk-grid-large { gap: 26px 18px; }
  footer .uk-h4 { font-size: 20px; }
  footer .uk-nav-default > li > a { font-size: 15.5px; padding: 8px 0; }
  footer .tm-legal-row { margin-top: 22px; padding-top: 18px; }
  footer .tm-legal-row p { font-size: 13px; }
  footer .uk-grid-small.uk-flex-between { row-gap: 10px; }
  footer .uk-grid-small.uk-flex-between > * { width: 100%; }
  footer .tm-legal { margin-top: 20px; }
}

/* ================= Разделители с фирменным ромбом ================= */
/* Два варианта: ромб в начале линии (.tm-divider) и по центру (.uk-divider-icon,
   переопределение UIkit). Ромб и линия всегда одного цвета. */
/* Линия и ромб — один цвет и никогда не перекрываются: линия начинается
   после ромба (левый вариант) либо расступается вокруг него (центральный). */
.tm-divider, hr.uk-divider-icon, hr { --tm-rule: var(--gold-medium); position: relative; height: 1px; border: 0; background: none; background-image: none; overflow: visible; }
.tm-divider::before, hr::before { content: ''; position: absolute; top: 50%; width: 9px; height: 9px; background: var(--tm-rule); transform: translateY(-50%) rotate(45deg); }
.tm-divider::after, hr::after { content: ''; position: absolute; top: 50%; height: 1px; transform: translateY(-50%); background: var(--tm-rule); }
.tm-divider::before, hr:not(.uk-divider-icon)::before { left: 0; }
.tm-divider::after, hr:not(.uk-divider-icon)::after { left: 20px; right: 0; }
hr.uk-divider-icon::before { left: 50%; transform: translate(-50%,-50%) rotate(45deg); }
hr.uk-divider-icon::after { left: 0; right: 0; background: linear-gradient(90deg, var(--tm-rule) 0, var(--tm-rule) calc(50% - 12px), transparent calc(50% - 12px), transparent calc(50% + 12px), var(--tm-rule) calc(50% + 12px), var(--tm-rule) 100%); }
/* на тёмных поверхностях линия и ромб светлее */
.uk-light .tm-divider, .uk-light hr, footer .tm-divider, footer hr, .bg-dark-paper hr, .bg-dark-contrast hr { --tm-rule: rgba(234,194,105,0.34); }

/* Ruled-списки: ромб-наконечник принимает цвет своей линейки */
.tm-aud-row, .tm-idx-row, .tm-onb li { border-color: var(--gold-medium); }
.tm-aud-row::after, .tm-idx-row::after, .tm-onb li::after { background: var(--gold-medium); }
.tm-idx { border-top-color: var(--dark-primary); }


/* Начало ruled-списка: линия акцентная, ромб того же цвета */

.tm-idx { border-top: 2px solid var(--gold-brand); }


a.tm-idx-row { border-bottom-color: var(--gold-medium); }

/* Перечень «Что обсудим»: сброс маркера и фирменный ромб вместо штриха */
.tm-talk { margin: 22px 0 0 !important; padding: 0 !important; list-style: none !important; display: grid; }
.tm-talk li { position: relative; list-style: none; padding: 13px 0 13px 26px; border-bottom: 1px solid var(--gold-medium); font-size: 16.5px; line-height: 1.5; text-wrap: pretty; }
.tm-talk li::marker { content: none; }
.tm-talk li:first-child { border-top: 1px solid var(--gold-medium); }
.tm-talk li::before { content: ''; position: absolute; left: 0; top: 21px; width: 8px; height: 8px; background: var(--gold-medium); transform: rotate(45deg); }

.tm-talk li::before { width: 8px !important; height: 8px !important; top: 21px !important; background: var(--gold-medium) !important; border-radius: 0; }
.tm-talk li { border-bottom-color: var(--gold-medium) !important; }
.tm-talk li:first-child { border-top-color: var(--gold-medium) !important; }

/* Элементы логознака в мелких слоях: у шевронов заливка не применяется */
.tm-tect .gm.fill svg polygon { fill: currentColor; fill-opacity: 0.14; }

/* ================= Мобильные цели нажатия ================= */
/* Минимальная цель — 44px. Кнопка закрытия мобильного меню стилизовалась только
   UIkit и была 14px при том, что открывающий её гамбургер сделан на 44px. */
.uk-offcanvas-bar .uk-offcanvas-close { top: 12px; right: 12px; width: 44px; height: 44px; padding: 0; display: flex; align-items: center; justify-content: center; }
.uk-offcanvas-bar .uk-offcanvas-close svg { width: 22px; height: 22px; }
.uk-offcanvas-bar .uk-offcanvas-close svg * { stroke-width: 1.8; }

@media (max-width: 639px) { }

@media (max-width: 767px) { a.tm-aud-tag { min-height: 44px; display: inline-flex; align-items: center; padding: 10px 14px; } }

/* Первый экран: призыв над сгибом и на телефоне */
@media (max-width: 639px) {
  .tm-hx-in { padding: 28px 20px 32px !important; }
  .tm-hx h1 { font-size: clamp(26px,7.4vw,32px) !important; margin-bottom: 14px !important; max-width: none; }
  .tm-hx p.tm-hx-lead { font-size: 16px !important; margin-bottom: 20px !important; }
  .tm-hx p.tm-hx-kick { margin-bottom: 14px !important; }
.tm-hx-cta { gap: 14px; }
}

/* Первый экран (вариант со сплитом): заголовок слева, подзаголовок в правой колонке */
.tm-hx-split .tm-hx-in { row-gap: clamp(24px,2.6vw,30px); }
.tm-hx-split p.tm-hx-lead { margin-bottom: 0; }
@media (min-width: 980px) {
  .tm-hx-split .tm-hx-in > .tm-hx-text { grid-column: 1; grid-row: 1; }
  .tm-hx-split .tm-hx-in > p.tm-hx-lead { grid-column: 2; grid-row: 1; align-self: center; max-width: 46ch; }
  .tm-hx-split .tm-hx-in > .tm-hx-cta { grid-column: 1; grid-row: 2; }
}
@media (max-width: 639px) { .tm-hx-split p.tm-hx-lead { margin-bottom: 0 !important; } }

/* ================= Главная: «О компании» — редакционная верстка ================= */
.tm-why-head { display: grid; grid-template-columns: 1fr; gap: clamp(20px,2.4vw,30px); padding-bottom: clamp(30px,3.2vw,44px); border-bottom: 1px solid var(--tm-border); }
@media (min-width: 900px) { .tm-why-head { grid-template-columns: minmax(0,7fr) minmax(0,5fr); column-gap: clamp(40px,5vw,88px); align-items: end; } }
.tm-why-head .tm-kicker { margin-bottom: 22px; }
.tm-why-head h2 { margin: 0; font-size: clamp(32px,3.4vw,50px); font-weight: 800; line-height: 1.08; letter-spacing: -0.02em; color: var(--dark-primary); text-wrap: balance; }
.tm-why-head p.tm-why-lead { margin: 0; font-size: clamp(17px,1.5vw,19px); line-height: 1.65; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-why-cols { display: grid; grid-template-columns: 1fr; gap: clamp(30px,3.2vw,42px); padding-top: clamp(30px,3.4vw,46px); }
@media (min-width: 900px) {
  .tm-why-cols { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 0; }
  .tm-why-col { padding-right: clamp(28px,3.4vw,56px); }
  .tm-why-col + .tm-why-col { padding-right: 0; padding-left: clamp(28px,3.4vw,56px); border-left: 1px solid var(--tm-border); }
}
.tm-why-col p.tm-why-col-label { display: inline-block; margin: 0 0 18px; padding-top: 13px; border-top: 2px solid var(--gold-brand); font-family: var(--tm-mono); font-size: 11.5px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-deep); }
.tm-why-col p.tm-why-col-text { margin: 0; max-width: 52ch; font-size: clamp(16.5px,1.5vw,18px); line-height: 1.7; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-why-col .tm-why-geo { margin: 26px 0 0; }
.tm-why-col .tm-why-geo li { border-color: rgba(212,147,0,0.5); color: var(--gold-deep); }
.tm-why-cols + .tm-why-flag { margin-top: clamp(40px,4.6vw,66px); }
/* правый столбец — высказывание без метки */
.tm-why-col-say { display: flex; flex-direction: column; justify-content: center; }
.tm-why-col-say .tm-why-say-glyph { display: block; width: 26px; height: 26px; margin: 0 0 22px; color: var(--gold-brand); }
.tm-why-col-say .tm-why-say-glyph svg { display: block; width: 100%; height: 100%; }
.tm-why-col-say p.tm-why-col-text { max-width: 46ch; font-size: clamp(19px,1.9vw,23px); line-height: 1.55; letter-spacing: -0.005em; color: var(--dark-primary); }

/* Прибытие по якорю: начало секции не уходит под липкую шапку (76px + воздух) */
html { scroll-padding-top: 104px; }
section[id], [id]:target { scroll-margin-top: 104px; }
@media (max-width: 639px) { html { scroll-padding-top: 88px; } section[id], [id]:target { scroll-margin-top: 88px; } }
#top { scroll-margin-top: 0; }

/* Переключатель языка: цель нажатия по разметке .tm-lang > a */
.tm-lang a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 5px 12px; }
@media (max-width: 639px) { .tm-lang a { padding: 5px 16px; } }

/* ================= Две договорные модели ================= */
.tm-models { display: grid; grid-template-columns: 1fr; gap: 2px; background: var(--tm-border); border: 1px solid var(--tm-border); }
.tm-model { padding: clamp(28px,3vw,40px); background: var(--white-bg); }
/* Сравнительный блок: строки обеих карточек ложатся на общую подсетку,
   поэтому одноимённые рубрики стоят на одной линии независимо от длины вводного абзаца.
   13 рядов = ключ + заголовок + абзац + 5 пар dt/dd. */
@media (min-width: 860px) {
  .tm-models { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(13,auto); }
  .tm-model { display: grid; grid-row: span 13; grid-template-rows: subgrid; align-content: start; }
  .tm-model dl { display: contents; }
}
.tm-model p.tm-model-key { margin: 0 0 14px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-ink); }
.tm-model h3 { margin: 0 0 14px; font-size: clamp(20px,2vw,24px); font-weight: 700; line-height: 1.22; color: var(--dark-primary); text-wrap: pretty; }
.tm-model > p { margin: 0 0 18px; font-size: 16.5px; line-height: 1.6; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-model dl { display: grid; grid-template-columns: 1fr; gap: 0; margin: 0; }
.tm-model dt { padding-top: 13px; border-top: 1px solid var(--tm-border); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold-ink); }
.tm-model dd { margin: 4px 0 13px; font-size: 16px; line-height: 1.55; color: var(--tm-text-main); text-wrap: pretty; }
.tm-model dd:last-of-type { margin-bottom: 0; }

/* ---------- Разделитель с ромбом-наконечником ----------
   Ромб полупрозрачный, поэтому сплошная линия просвечивала сквозь него и читалась
   как разрез. Линию рисуем псевдоэлементом с отступом на ширину ромба: ромб
   примыкает к её торцу, и вместе они читаются одним элементом. */
.tm-aud-row, .tm-onb li, a.tm-idx-row { border-top: 0; border-bottom: 0; }
/* 7px-ромб повёрнут на 45°, его правый край = 7·√2/2 + 3.5 ≈ 8.45px; берём 8px — встык без просвета */
.tm-aud-row::before, .tm-onb li::before, a.tm-idx-row::before { content: ''; position: absolute; left: 15px; right: 0; height: 1px; background: var(--gold-medium); pointer-events: none; }
.tm-aud-row, .tm-onb li, a.tm-idx-row { position: relative; }
.tm-aud-row::before, .tm-onb li::before { top: 0; }
a.tm-idx-row::before { bottom: 0; }
.tm-aud-row::after, .tm-onb li::after { top: 0; transform: translateY(-50%) rotate(45deg); }
a.tm-idx-row::after { bottom: 0; transform: translateY(50%) rotate(45deg); }
/* первая строка: акцентная линия 2px и ромб покрупнее */
/* 11px-ромб: правый край ≈ 13.28px */
.tm-aud-row:first-child::before, .tm-onb li:first-child::before { height: 2px; left: 20px; background: var(--gold-brand); }
.tm-aud-row:first-child::after, .tm-onb li:first-child::after { background: var(--gold-brand); width: 11px; height: 11px; }
/* замыкающая линия последней строки */
.tm-aud-row:last-child, .tm-onb li:last-child { padding-bottom: 32px; }
.tm-aud::after, .tm-onb::after { content: ''; display: block; height: 1px; background: var(--gold-medium); margin-left: 15px; }
.tm-idx { border-top: 0; }


/* ===== Премиальные блоки вариантов главной ===== */
.tm-pr-lead { max-width: 62ch; font-size: clamp(18px,1.75vw,21px); line-height: 1.62; color: var(--tm-text-muted); text-wrap: pretty; }

/* реестр направлений: номер, название, описание — три колонки на широком экране */
.tm-pr-list { display: grid; grid-template-columns: 1fr; margin-top: clamp(34px,4vw,56px); }
.tm-pr-item { position: relative; display: grid; grid-template-columns: 1fr; gap: 8px; padding: clamp(26px,2.6vw,34px) 0; transition: background .3s ease; }
.tm-pr-item::before { content: ''; position: absolute; left: 8px; right: 0; top: 0; height: 1px; background: var(--gold-medium); }
.tm-pr-item::after { content: ''; position: absolute; left: 0; top: 0; width: 7px; height: 7px; background: var(--gold-medium); transform: translateY(-50%) rotate(45deg); }
.tm-pr-item:first-child::before { height: 2px; left: 13px; background: var(--gold-brand); }
.tm-pr-item:first-child::after { width: 11px; height: 11px; background: var(--gold-brand); }
.tm-pr-list::after { content: ''; display: block; height: 1px; margin-left: 8px; background: var(--gold-medium); }
.tm-pr-item:hover { background: rgba(212,147,0,0.045); }
@media (min-width: 900px) { .tm-pr-item { grid-template-columns: 62px minmax(0,34ch) minmax(0,1fr); column-gap: clamp(26px,3vw,54px); align-items: start; } }
.tm-pr-item p.tm-pr-num { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.55; color: var(--gold-ink); }
.tm-pr-item h3 { margin: 0; font-size: clamp(19px,1.85vw,23px); font-weight: 700; line-height: 1.26; color: var(--dark-primary); text-wrap: pretty; }
.tm-pr-item p.tm-pr-desc { margin: 0; font-size: 17px; line-height: 1.62; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-pr-item p.tm-pr-desc a { color: var(--gold-ink); }

/* фактурные параметры полосой */
.tm-pr-facts { display: grid; grid-template-columns: 1fr; gap: 2px; margin-top: clamp(30px,3.4vw,46px); background: var(--tm-border); border: 1px solid var(--tm-border); }
@media (min-width: 760px) { .tm-pr-facts { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.tm-pr-fact { padding: clamp(24px,2.6vw,34px); background: var(--white-bg); }
.tm-pr-fact p.tm-pr-fact-val { margin: 0 0 10px; font-size: clamp(24px,2.5vw,32px); font-weight: 800; line-height: 1.05; letter-spacing: -0.02em; color: var(--gold-ink); }
.tm-pr-fact p { margin: 0; font-size: 16.5px; line-height: 1.58; color: var(--tm-text-muted); text-wrap: pretty; }

/* тёмная врезка-утверждение */
.tm-pr-claim { display: grid; grid-template-columns: 1fr; gap: clamp(24px,3vw,48px); padding: clamp(32px,3.6vw,52px); background: var(--dark-primary); }
@media (min-width: 900px) { .tm-pr-claim { grid-template-columns: minmax(0,7fr) minmax(0,5fr); align-items: start; } }
.tm-pr-claim p.tm-pr-claim-text { margin: 0; font-size: clamp(19px,1.9vw,24px); font-weight: 500; line-height: 1.48; color: #fff; text-wrap: pretty; }
.tm-pr-claim p.tm-pr-claim-side { margin: 0; padding-left: 20px; border-left: 2px solid var(--gold-brand); font-size: 16.5px; line-height: 1.6; color: rgba(255,255,255,0.8); text-wrap: pretty; }

/* форматы и этапы: карточки-колонки */
.tm-pr-cols { display: grid; grid-template-columns: 1fr; gap: 2px; margin-top: clamp(32px,3.4vw,48px); background: var(--tm-border); border: 1px solid var(--tm-border); }
@media (min-width: 820px) { .tm-pr-cols { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.tm-pr-col { display: flex; flex-direction: column; padding: clamp(26px,2.8vw,38px); background: var(--white-bg); }
.tm-pr-col p.tm-pr-col-key { margin: 0 0 16px; font-size: 12px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold-ink); }
.tm-pr-col h3 { margin: 0 0 12px; font-size: 20px; font-weight: 700; line-height: 1.26; color: var(--dark-primary); text-wrap: pretty; }
.tm-pr-col p { margin: 0; font-size: 16.5px; line-height: 1.6; color: var(--tm-text-muted); text-wrap: pretty; }

/* отраслевой каталог метками */
.tm-pr-cats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: clamp(30px,3.2vw,44px); padding: 0; list-style: none; }
.tm-pr-cats a { display: inline-flex; align-items: center; min-height: 44px; padding: 11px 18px; border: 1px solid var(--tm-border); font-size: 15.5px; color: var(--dark-primary); text-decoration: none; transition: border-color .2s ease, background .2s ease, color .2s ease; }
.tm-pr-cats a:hover { border-color: var(--gold-brand); background: var(--gold-light); color: var(--gold-ink); text-decoration: none; }

/* ================= Баннеры разделов: фотография в полную силу =================
   Прежде снимок гасила сплошная светлая вуаль 0.74→0.95 — фото читалось как
   бледная подложка. Теперь вуаль работает как скрим: верх кадра открыт,
   затемнение нарастает только к низу, где лежит текст. */
.tm-page-hero { min-height: 54vh; }
.tm-case-hero { min-height: 62vh; }
.tm-page-hero img, .tm-case-hero img { filter: saturate(1.06) contrast(1.06); }

.tm-page-hero .tm-page-hero-overlay,
.tm-case-hero::after { background: linear-gradient(180deg, rgba(24,22,21,0) 0%, rgba(24,22,21,0.10) 30%, rgba(24,22,21,0.55) 62%, rgba(24,22,21,0.86) 86%, rgba(24,22,21,0.94) 100%); }

/* текст возвращается к светлому — он лежит на затемнённой нижней части кадра */
.tm-page-hero .tm-page-hero-content.uk-light h1,
.tm-page-hero .tm-page-hero-content.uk-light h2,
.tm-case-hero .tm-case-hero-content.uk-light h1,
.tm-case-hero .tm-case-hero-content.uk-light h2,
.tm-case-hero .tm-case-title, .tm-case-hero .tm-case-fact-value { color: #fff; }
.tm-page-hero .tm-page-hero-content.uk-light p,
.tm-case-hero .tm-case-hero-content.uk-light p:not(.tm-case-hero-tag):not(.tm-kicker),
.tm-case-hero .tm-case-hero-content.uk-light p.tm-case-lead.tm-case-lead,
.tm-case-hero .tm-case-lead { color: rgba(255,255,255,0.88); }
.tm-page-hero .tm-page-hero-content.uk-light .uk-text-muted,
.tm-case-hero .tm-case-hero-content.uk-light .uk-text-muted { color: rgba(255,255,255,0.82) !important; }

.tm-page-hero-content .tm-kicker,
.tm-page-hero .tm-page-hero-content.uk-light .tm-kicker,
.tm-case-hero .tm-case-hero-tag, .tm-case-hero .tm-kicker,
.tm-case-hero .tm-case-fact-label { color: var(--gold-pale); }
.tm-page-hero .tm-page-hero-content.uk-light .tm-kicker-code { color: var(--gold-pale); opacity: 0.9; }

.tm-page-hero .tm-breadcrumb, .tm-case-hero .tm-breadcrumb,
.tm-page-hero .tm-breadcrumb > span, .tm-case-hero .tm-breadcrumb > span { color: rgba(255,255,255,0.7); }
.tm-page-hero .tm-breadcrumb a, .tm-case-hero .tm-breadcrumb a,
.tm-case-hero .tm-case-hero-content .tm-breadcrumb a,
.tm-page-hero .tm-page-hero-content .tm-breadcrumb a { color: rgba(255,255,255,0.78) !important; }
.tm-page-hero .tm-breadcrumb a:hover, .tm-case-hero .tm-breadcrumb a:hover { color: var(--gold-pale) !important; }
.tm-page-hero .tm-breadcrumb > span:last-child, .tm-case-hero .tm-breadcrumb > span:last-child { color: #fff; }

.tm-page-hero .tm-page-hero-content.uk-light a:not(.uk-button),
.tm-case-hero .tm-case-hero-content.uk-light a:not(.uk-button) { color: var(--gold-pale); }
.tm-page-hero .tm-page-hero-content.uk-light .uk-button-default { color: #fff; border-color: rgba(255,255,255,0.6); }
.tm-page-hero .tm-page-hero-content.uk-light .uk-button-default:hover { background: #fff; color: var(--dark-primary); border-color: #fff; }

/* плитка логознаков поверх фото — тише, чтобы не мутить кадр */
.tm-page-hero::before, .tm-case-hero::before { opacity: 0.10; }
.tm-page-hero .tm-page-hero-mark { filter: none; opacity: 0.10; }

/* .tm-article-list задавался только для ul; на ol он не гасил браузерную
   нумерацию, и она складывалась со счётчиком .tm-article-body ol. */
.tm-article-body ol.tm-article-list { margin: 0 0 26px 0; padding-left: 0; list-style: none; }
.tm-article-body ol.tm-article-list > li { list-style: none; }

/* Скрим синхронизирован с полосой текста: текст занимает 0.23–0.91 высоты
   баннера, поэтому плотность набирается уже к 0.30, а не к 0.62.
   Верхняя седьмая часть кадра остаётся открытой, второй слой затемняет
   левую половину — правая часть снимка сохраняет полную яркость. */
.tm-page-hero .tm-page-hero-overlay,
.tm-case-hero::after {
  background:
    linear-gradient(90deg, rgba(24,22,21,0.38) 0%, rgba(24,22,21,0.30) 45%, rgba(24,22,21,0.10) 72%, rgba(24,22,21,0) 88%),
    linear-gradient(180deg, rgba(24,22,21,0) 0%, rgba(24,22,21,0) 14%, rgba(24,22,21,0.62) 30%, rgba(24,22,21,0.80) 55%, rgba(24,22,21,0.90) 80%, rgba(24,22,21,0.94) 100%);
}

/* Превью проекта в карточке «Другие проекты»: ч/б, проявляется при наведении. */
.tm-cnext-shot { display: block; position: relative; overflow: hidden; aspect-ratio: 16 / 10; margin-bottom: 18px; background: var(--dark-primary); }
.tm-cnext-shot img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); opacity: 0.82; transition: transform .7s cubic-bezier(.23,1,.32,1), filter .45s ease, opacity .35s ease; }
.tm-cnext:hover .tm-cnext-shot img, .tm-cnext:focus-visible .tm-cnext-shot img { transform: scale(1.05); filter: grayscale(0) contrast(1); opacity: 1; }
.tm-cnext-shot::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(32,30,29,0) 55%, rgba(32,30,29,0.32) 100%); pointer-events: none; }
.tm-cnext-title { margin-top: 2px; }

/* Отраслевой охват: простое перечисление в колонках вместо второй сетки категорий. */
.tm-scope { columns: 1; column-gap: clamp(30px,4vw,64px); margin-top: clamp(28px,3vw,40px); padding: 0; list-style: none; }
@media (min-width: 620px) { .tm-scope { columns: 2; } }
@media (min-width: 1000px) { .tm-scope { columns: 3; } }
.tm-scope li { break-inside: avoid; padding: 11px 0; border-bottom: 1px solid var(--tm-border); font-size: 17px; line-height: 1.45; color: var(--tm-text-main); text-wrap: pretty; }
.tm-scope li:first-child { border-top: 1px solid var(--tm-border); }
@media (min-width: 620px) { .tm-scope li:first-child { border-top: 0; } }
.tm-scope-note { margin-top: clamp(24px,2.6vw,34px); font-size: 17px; line-height: 1.6; color: var(--tm-text-muted); max-width: 66ch; text-wrap: pretty; }

/* Похожие материалы: карточка с превью, фото проявляется при наведении. */
a.tm-more-card { display: flex; flex-direction: column; height: 100%; background: var(--white-bg); border: 1px solid var(--tm-border); text-decoration: none; color: inherit; transition: border-color .25s ease, background .25s ease; }
a.tm-more-card:hover, a.tm-more-card:focus-visible { border-color: var(--gold-brand); background: var(--gold-light); text-decoration: none; }
.tm-more-shot { display: block; position: relative; overflow: hidden; aspect-ratio: 16 / 9; background: var(--dark-primary); }
.tm-more-shot img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); opacity: 0.82; transition: transform .7s cubic-bezier(.23,1,.32,1), filter .45s ease, opacity .35s ease; }
a.tm-more-card:hover .tm-more-shot img, a.tm-more-card:focus-visible .tm-more-shot img { transform: scale(1.05); filter: grayscale(0) contrast(1); opacity: 1; }
.tm-more-body { display: flex; flex-direction: column; flex: 1; padding: clamp(22px,2.4vw,28px); }
.tm-more-title { display: block; margin-bottom: 10px; font-size: 19px; font-weight: 700; line-height: 1.3; color: var(--dark-primary); text-wrap: pretty; transition: color .2s ease; }
a.tm-more-card:hover .tm-more-title { color: var(--gold-ink); }
.tm-more-desc { display: block; margin-bottom: 20px; font-size: 16.5px; line-height: 1.58; color: var(--tm-text-muted); text-wrap: pretty; }
.tm-more-cue { display: inline-flex; margin-top: auto; color: var(--gold-ink); transition: transform .25s ease; }
a.tm-more-card:hover .tm-more-cue { transform: translateX(5px); }

/* Крупная полоса: фотография во всю высоту слева, текст и одна кнопка справа. */
.tm-band { display: grid; grid-template-columns: 1fr; background: var(--dark-primary); }
@media (min-width: 900px) { .tm-band { grid-template-columns: minmax(0,1fr) minmax(0,1fr); min-height: 460px; } .tm-band-alt { direction: rtl; } .tm-band-alt > * { direction: ltr; } }
.tm-band-shot { position: relative; overflow: hidden; min-height: 260px; background: var(--dark-primary); }
.tm-band-shot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.06); opacity: 0.9; }
.tm-band-shot::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(32,30,29,0.15) 0%, rgba(32,30,29,0.55) 100%); }
.tm-band-body { display: flex; flex-direction: column; justify-content: center; padding: clamp(36px,4.4vw,68px) clamp(24px,4vw,64px); }
.tm-band-body .tm-kicker { color: var(--gold-pale); margin-bottom: 20px; }
.tm-band-body h2 { margin: 0 0 18px; font-size: clamp(27px,3vw,40px); font-weight: 800; line-height: 1.12; letter-spacing: -0.02em; color: #fff; text-wrap: balance; }
.tm-band-body p { margin: 0 0 30px; max-width: 46ch; font-size: clamp(17px,1.6vw,19px); line-height: 1.6; color: rgba(255,255,255,0.82); text-wrap: pretty; }
.tm-band-body .uk-button-primary { align-self: flex-start; }

/* Второй слой подписи: что клиент получает по итогу услуги. */
.tm-svc9-item .tm-svc9-out, .tm-pr-item .tm-pr-out { display: block; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--tm-border); font-size: 14.5px; line-height: 1.45; color: var(--gold-ink); text-wrap: pretty; }
.tm-svc9-item:hover .tm-svc9-out, .tm-pr-item:hover .tm-pr-out { border-top-color: var(--gold-medium); }

/* Превью проекта в реестре: узкая полоса-кадр между номером и текстом. */
.tm-prow-shot { display: block; position: relative; overflow: hidden; grid-column: 1 / -1; width: 100%; aspect-ratio: 16 / 9; margin: 4px 0 14px; background: var(--dark-primary); }
.tm-prow-shot img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); opacity: 0.86; transition: transform .7s cubic-bezier(.23,1,.32,1), filter .45s ease, opacity .35s ease; }
.tm-prow:hover .tm-prow-shot img, .tm-prow:focus-visible .tm-prow-shot img { transform: scale(1.05); filter: grayscale(0) contrast(1); opacity: 1; }
.tm-prow-shot::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(32,30,29,0) 60%, rgba(32,30,29,0.28) 100%); pointer-events: none; }
@media (min-width: 960px) {
  .tm-prow { grid-template-columns: auto 208px minmax(0,1fr) auto auto; align-items: start; }
  .tm-prow-shot { grid-column: auto; width: 208px; aspect-ratio: 4 / 3; margin: 2px 0 0; }
  .tm-prow-meta, .tm-prow-cue { grid-column: auto; }
}

/* Обмен по услуге: что заказчик передаёт, что получает, за какой срок. */
.tm-xch { display: grid; grid-template-columns: 1fr; gap: 2px; margin-top: clamp(30px,3.4vw,46px); background: var(--tm-border); border: 1px solid var(--tm-border); }
@media (min-width: 860px) { .tm-xch { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.tm-xch-col { padding: clamp(24px,2.6vw,34px); background: var(--white-bg); }
.tm-xch-col:nth-child(2) { background: linear-gradient(rgba(212,147,0,0.08),rgba(212,147,0,0.08)), var(--white-bg); }
.tm-xch-col p.tm-xch-key { margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--gold-medium); font-size: 12px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold-ink); }
.tm-xch-col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.tm-xch-col li { position: relative; padding-left: 16px; font-size: 16.5px; line-height: 1.55; color: var(--tm-text-main); text-wrap: pretty; }
.tm-xch-col li::before { content: ''; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; background: var(--gold-brand); transform: rotate(45deg); }
.tm-xch-col p.tm-xch-note { margin: 14px 0 0; font-size: 15.5px; line-height: 1.5; color: var(--tm-text-muted); }


/* ================= Команда: развёрнутые карточки партнёров ================= */
.tm-team { display: grid; grid-template-columns: 1fr; gap: 2px; margin-top: clamp(34px,4vw,54px); background: var(--tm-border); border: 1px solid var(--tm-border); }
.tm-team-member { display: grid; grid-template-columns: 1fr; background: var(--white-bg); }
@media (min-width: 880px) { .tm-team-member { grid-template-columns: minmax(0,270px) minmax(0,1fr); align-items: start; } }
.tm-team-shot { position: relative; overflow: hidden; aspect-ratio: 3 / 4; background: var(--dark-primary); }
/* Портрет держит своё отношение и прижат к верху: тянуть его по высоте текста нельзя —
   при узкой колонке кадр режется по бокам и лицо не помещается. */
@media (min-width: 880px) { .tm-team-shot { aspect-ratio: 3 / 4; height: auto; align-self: start; } }
.tm-team-shot img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.tm-team-body { padding: clamp(24px,2.6vw,34px); }
.tm-team-body h3 { margin: 0 0 5px; font-size: clamp(20px,1.9vw,24px); font-weight: 800; line-height: 1.15; letter-spacing: -0.015em; color: var(--dark-primary); }
.tm-team-body p.tm-team-role { margin: 0 0 10px; font-size: 16px; font-weight: 600; color: var(--gold-ink); }
.tm-team-body p.tm-team-fields { margin: 0 0 18px; padding-bottom: 16px; border-bottom: 1px solid var(--tm-border); font-size: 14.5px; letter-spacing: 0.02em; color: var(--tm-text-muted); }
.tm-team-body p { margin: 0 0 12px; font-size: 16px; line-height: 1.6; color: var(--tm-text-main); text-wrap: pretty; }
.tm-team-stats { display: grid; grid-template-columns: repeat(auto-fit,minmax(132px,1fr)); gap: 2px; margin-top: 20px; background: var(--tm-border); border: 1px solid var(--tm-border); }
/* Заливка ячейки непрозрачна: иначе цвет зазоров сетки просвечивает и роняет контраст подписи. */
.tm-team-stat { padding: 15px 15px 17px; background: linear-gradient(rgba(212,147,0,0.07),rgba(212,147,0,0.07)), var(--white-bg); }
.tm-team-stat p.tm-team-stat-val { margin: 0 0 5px; font-size: clamp(18px,1.7vw,21px); font-weight: 800; line-height: 1.05; letter-spacing: -0.02em; color: var(--gold-ink); }
.tm-team-stat p { margin: 0; font-size: 13.5px; line-height: 1.4; color: var(--tm-text-muted); }

/* Карточки команды на главной */
.tm-people { display: grid; grid-template-columns: 1fr; gap: 2px; margin-top: clamp(32px,3.4vw,48px); background: var(--tm-border); border: 1px solid var(--tm-border); }
@media (min-width: 820px) { .tm-people { grid-template-columns: repeat(2,minmax(0,1fr)); } }
a.tm-person { display: grid; grid-template-columns: 118px minmax(0,1fr); background: var(--white-bg); text-decoration: none; color: inherit; transition: background .3s ease; }
@media (min-width: 560px) { a.tm-person { grid-template-columns: 150px minmax(0,1fr); } }
a.tm-person:hover, a.tm-person:focus-visible { background: var(--gold-light); text-decoration: none; }
.tm-person-shot { position: relative; overflow: hidden; aspect-ratio: 3 / 4; align-self: start; background: var(--dark-primary); }
.tm-person-shot img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform .7s cubic-bezier(.23,1,.32,1); }
a.tm-person:hover .tm-person-shot img { transform: scale(1.03); }
.tm-person-body { display: flex; flex-direction: column; padding: clamp(20px,2.2vw,28px); }
.tm-person-body h3 { margin: 0 0 4px; font-size: 19px; font-weight: 800; line-height: 1.2; color: var(--dark-primary); }
.tm-person-body p.tm-person-role { margin: 0 0 8px; font-size: 15px; font-weight: 600; color: var(--gold-ink); }
.tm-person-body p.tm-person-fields { margin: 0 0 13px; padding-bottom: 11px; border-bottom: 1px solid var(--tm-border); font-size: 13px; color: var(--tm-text-muted); }
.tm-person-body p.tm-person-desc { margin: 0 0 15px; font-size: 15.5px; line-height: 1.55; color: var(--tm-text-main); text-wrap: pretty; }
.tm-person-facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.tm-person-facts span { padding: 5px 10px; border: 1px solid var(--tm-border); background: var(--white-bg); font-size: 12.5px; font-weight: 600; color: var(--gold-ink); }

/* ================= Первый экран: центрированная композиция ================= */
.tm-hx-center .tm-hx-in { display: block; max-width: 1180px; margin-inline: auto; padding-block: clamp(54px,6vw,86px); }
.tm-hx-center p.tm-hx-kick { justify-content: center; gap: 12px; margin-bottom: 26px; }
.tm-hx-center h1 { max-width: 20ch; margin: 0 auto; font-size: clamp(36px,4.8vw,62px); }
/* Подзаголовок держит вес: линейка с ромбом сверху, кегль крупнее, тон чернильнее */
.tm-hx-center p.tm-hx-lead { position: relative; max-width: 62ch; margin: clamp(30px,3.2vw,42px) auto 0; padding-top: clamp(26px,2.8vw,34px); font-size: clamp(18px,1.9vw,22px); line-height: 1.6; font-weight: 500; color: #4a463f; }
.tm-hx-center p.tm-hx-lead::before { content: ''; position: absolute; top: 0; left: 50%; width: 64px; height: 2px; background: var(--gold-brand); transform: translateX(-50%); }
.tm-hx-center p.tm-hx-lead::after { content: ''; position: absolute; top: -4px; left: 50%; width: 10px; height: 10px; background: var(--gold-brand); transform: translateX(-50%) rotate(45deg); }
.tm-hx-center .tm-hx-cta { gap: 24px; margin-top: clamp(32px,3.4vw,44px); }
.tm-hx-center .tm-trust { margin-top: clamp(44px,5vw,68px); text-align: left; }
@media (max-width: 639px) {
  .tm-hx-center p.tm-hx-lead { font-size: 17.5px; }
  .tm-hx-center .tm-hx-cta { flex-direction: column; align-items: stretch; gap: 16px; }
  .tm-hx-center .tm-hx-cta .tm-hero-link { align-self: center; }
  .tm-hx-center .tm-trust { text-align: center; }
}

/* Правый столбец «О компании» — высказывание с фирменной кавычкой-глифом */
.tm-why-col-say .tm-why-say-glyph { display: block; width: auto; height: auto; margin: 0 0 20px; color: var(--gold-brand); }
.tm-why-col-say .tm-why-say-glyph svg { width: auto; height: auto; }
.tm-why-col p.tm-why-say-text { font-style: italic; }
@media (max-width: 639px) { .tm-why-col-say .tm-why-say-glyph { transform: scale(0.72); transform-origin: left top; margin-bottom: 8px; } }

/* ================= Мобильная шапка: топбар без «липкости» и в одну строку ================= */
/* контактная полоса вынесена из sticky-обёртки: уезжает при прокрутке */
@media (max-width: 959px) {
  .tm-topbar-row { flex-wrap: nowrap; justify-content: space-between; gap: 0 14px; min-height: 0; padding: 7px 0; }
  .tm-topbar-offices { flex: 0 1 auto; gap: 0; min-width: 0; }
  .tm-topbar-office { font-size: 13.5px; gap: 6px; white-space: nowrap; }
  .tm-topbar-links { flex: 1 1 auto; justify-content: flex-end; gap: 0 14px; min-width: 0; }
  .tm-topbar-links .tm-topbar-link { font-size: 13.5px; }
  /* на узком экране из контактов остаётся телефон и мессенджеры */
  .tm-topbar-links .tm-topbar-link[href^="mailto"] { display: none; }
  .tm-topbar-msg { gap: 12px; }
  .tm-lang { flex: 0 0 auto; font-size: 12.5px; letter-spacing: 0.1em; }
}
@media (max-width: 479px) {
  .tm-topbar-row { padding: 6px 0; }
  .tm-topbar-office { font-size: 12.5px; }
  .tm-topbar-links .tm-topbar-link { font-size: 12.5px; }
  .tm-topbar-links .tm-topbar-link [uk-icon] { display: none; }
  .tm-topbar-msg a:nth-child(n+3) { display: none; }
}
