/*
Theme Name: Praktix
Theme URI: https://praktix.ru
Author: Praktix Team
Description: Минималистичная тема для онлайн-сервиса помощи студентам. Стиль macOS.
Version: 1.0.0
Requires at least: 5.0
Requires PHP: 7.3
License: GNU General Public License v2 or later
Text Domain: praktix
*/

/* ===========================
   CSS CUSTOM PROPERTIES
   =========================== */
:root {
    /* Light mode */
    --bg-primary:    #f5f5f7;
    --bg-secondary:  #ffffff;
    --bg-tertiary:   #e8e8ed;
    --text-primary:  #1d1d1f;
    --text-secondary:#6e6e73;
    --text-tertiary: #aeaeb2;
    --accent:        #0071e3;
    --accent-hover:  #0077ed;
    --accent-light:  #e8f0fb;
    --border:        #d2d2d7;
    --border-light:  #e5e5ea;
    --card-bg:       #ffffff;
    --tag-bg:        #e8e8ed;
    --shadow-sm:     0 1px 3px rgba(0,0,0,.08);
    --shadow-md:     0 4px 16px rgba(0,0,0,.1);
    --shadow-lg:     0 8px 32px rgba(0,0,0,.12);
    --radius-sm:     8px;
    --radius-md:     12px;
    --radius-lg:     16px;
    --radius-xl:     20px;
    --font-main:     'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-mono:     'SF Mono', 'Fira Code', monospace;
    --transition:    .15s ease;
}

[data-theme="dark"] {
    --bg-primary:    #1c1c1e;
    --bg-secondary:  #2c2c2e;
    --bg-tertiary:   #3a3a3c;
    --text-primary:  #f5f5f7;
    --text-secondary:#aeaeb2;
    --text-tertiary: #6e6e73;
    --accent:        #2997ff;
    --accent-hover:  #409cff;
    --accent-light:  #1a2d3d;
    --border:        #3a3a3c;
    --border-light:  #2c2c2e;
    --card-bg:       #2c2c2e;
    --tag-bg:        #3a3a3c;
    --shadow-sm:     0 1px 3px rgba(0,0,0,.3);
    --shadow-md:     0 4px 16px rgba(0,0,0,.4);
    --shadow-lg:     0 8px 32px rgba(0,0,0,.5);
}

/* ===========================
   RESET & BASE
   =========================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
    font-family: var(--font-main);
    background: var(--bg-primary);
    color: var(--text-primary);
    font-size: 15px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    transition: background var(--transition), color var(--transition);
}

a { color: var(--accent); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--accent-hover); }

img { max-width: 100%; height: auto; display: block; }

ul, ol { list-style: none; }

h1, h2, h3, h4, h5, h6 {
    color: var(--text-primary);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

/* ===========================
   CONTAINER
   =========================== */
.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
}

.container--wide { max-width: 1280px; }
.container--narrow { max-width: 760px; }

/* ===========================
   BUTTONS
   =========================== */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 20px;
    border-radius: 22px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: 0.5px solid transparent;
    transition: all var(--transition);
    text-decoration: none;
    white-space: nowrap;
}

.btn--primary {
    background: var(--accent);
    color: #fff;
    border-color: var(--accent);
}
.btn--primary:hover { background: var(--accent-hover); color: #fff; }

.btn--outline {
    background: transparent;
    color: var(--text-primary);
    border-color: var(--border);
}
.btn--outline:hover { border-color: var(--accent); color: var(--accent); }

.btn--ghost {
    background: var(--tag-bg);
    color: var(--text-secondary);
    border-color: transparent;
}
.btn--ghost:hover { color: var(--text-primary); }

.btn--lg { padding: 12px 28px; font-size: 15px; }
.btn--sm { padding: 6px 14px; font-size: 12px; }

.btn svg, .btn i { font-size: 16px; flex-shrink: 0; }

/* ===========================
   TOPBAR
   =========================== */
.topbar {
    background: var(--bg-secondary);
    border-bottom: 0.5px solid var(--border-light);
    padding: 7px 0;
    font-size: 12px;
    color: var(--text-secondary);
}

.topbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.topbar__text {
    display: flex;
    align-items: center;
    gap: 6px;
}

.topbar__contacts {
    display: flex;
    gap: 20px;
}

.topbar__contacts a {
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
}

.topbar__contacts a:hover { color: var(--accent); }

/* ===========================
   HEADER
   =========================== */
.site-header {
    position: sticky;
    top: 0;
    z-index: 200;
    background: rgba(255,255,255,.85);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    border-bottom: 0.5px solid var(--border-light);
    transition: background var(--transition);
}

[data-theme="dark"] .site-header {
    background: rgba(28,28,30,.85);
}

.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 54px;
    gap: 16px;
}

.site-logo {
    font-size: 19px;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.4px;
    flex-shrink: 0;
    text-decoration: none;
}

.site-logo span { color: var(--accent); }

/* Main nav */
.main-nav { display: flex; gap: 2px; align-items: center; }

/* Иконки в пунктах десктоп-меню */
.main-nav a i.ti {
    font-size: 16px;
    color: var(--accent);
    flex-shrink: 0;
}

.main-nav ul {
    display: flex;
    align-items: center;
    gap: 2px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.main-nav ul li {
    position: relative;
    margin: 0;
    padding: 0;
}

.main-nav a {
    font-size: 13px;
    color: var(--text-secondary);
    padding: 6px 11px;
    border-radius: 7px;
    transition: all var(--transition);
    display: flex;
    align-items: center;
    gap: 5px;
    text-decoration: none;
}

.main-nav a:hover,
.main-nav .current-menu-item > a { color: var(--text-primary); background: var(--tag-bg); }

/* Dropdown */
.main-nav .menu-item-has-children { position: relative; }

.main-nav .sub-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    border-radius: var(--radius-md);
    padding: 6px;
    min-width: 200px;
    box-shadow: var(--shadow-md);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: all var(--transition);
    z-index: 100;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
}

.main-nav .menu-item-has-children:hover .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.main-nav .sub-menu a {
    padding: 7px 10px;
    border-radius: 6px;
    display: block;
    font-size: 13px;
    width: 100%;
}

/* Header actions */
.header-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

.theme-toggle {
    background: var(--tag-bg);
    border: none;
    border-radius: 20px;
    padding: 6px 11px;
    cursor: pointer;
    color: var(--text-secondary);
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 5px;
    transition: all var(--transition);
}

.theme-toggle:hover { color: var(--text-primary); }

/* Burger */
.burger {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px;
    color: var(--text-primary);
    font-size: 22px;
}

/* ===========================
   MOBILE MENU — iOS Bottom Sheet
   =========================== */
.mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 400;
    pointer-events: none;
    visibility: hidden;
}

.mobile-menu.is-open {
    pointer-events: auto;
    visibility: visible;
}

/* Backdrop */
.mobile-menu__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    opacity: 0;
    transition: opacity 0.32s ease;
}

.mobile-menu.is-open .mobile-menu__backdrop {
    opacity: 1;
}

/* Sheet */
.mobile-menu__sheet {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--bg-primary);
    border-radius: 20px 20px 0 0;
    border-top: 0.5px solid var(--border);
    box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.18);
    max-height: 88vh;
    overflow-y: auto;
    transform: translateY(100%);
    transition: transform 0.42s cubic-bezier(0.34, 1.2, 0.64, 1);
    padding-bottom: max(env(safe-area-inset-bottom), 20px);
    overscroll-behavior: contain;
}

.mobile-menu.is-open .mobile-menu__sheet {
    transform: translateY(0);
}

/* Drag handle */
.mobile-menu__handle {
    padding: 12px 0 4px;
    text-align: center;
    cursor: grab;
    user-select: none;
}

.mobile-menu__drag-bar {
    display: inline-block;
    width: 36px;
    height: 4px;
    background: var(--border);
    border-radius: 2px;
}

/* Header */
.mobile-menu__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 20px 16px;
    border-bottom: 0.5px solid var(--border);
}

.mobile-menu__close {
    background: var(--tag-bg);
    border: none;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--text-secondary);
    font-size: 16px;
    transition: background var(--transition);
}

.mobile-menu__close:hover { background: var(--border); }

/* Nav links */
.mobile-menu__nav {
    padding: 8px 0;
}

.mobile-menu__nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mobile-menu__nav ul li {
    margin: 0;
    padding: 0;
    display: block;
}

/* Подменю скрыто по умолчанию, раскрывается аккордеоном */
.mobile-menu__nav ul ul {
    display: block;
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.3s ease;
}
.mobile-menu__nav ul ul.is-open {
    max-height: 800px;
}
/* Пункты подменю — отступ и уменьшенный шрифт */
.mobile-menu__nav ul ul li a {
    padding-left: 36px;
    font-size: 14px;
    font-weight: 400;
    color: var(--text-secondary);
    border-bottom-color: transparent;
}
.mobile-menu__nav ul ul li:last-child a { border-bottom: none; }
/* Шеврон-индикатор для родительского пункта */
.mobile-menu__nav .menu-item-has-children > a .sub-arrow {
    margin-left: auto;
    font-size: 14px;
    color: var(--text-secondary);
    transition: transform 0.25s ease;
    flex-shrink: 0;
}
.mobile-menu__nav .menu-item-has-children.is-open > a .sub-arrow {
    transform: rotate(90deg);
}
/* Убираем дефолтный псевдо-шеврон у родителей с подменю */
.mobile-menu__nav .menu-item-has-children > a::after {
    display: none;
}

.mobile-menu__nav ul li a,
.mobile-menu__link {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 20px;
    font-size: 16px;
    font-weight: 500;
    color: var(--text-primary);
    text-decoration: none;
    border-bottom: 0.5px solid var(--border-light, var(--border));
    transition: background var(--transition);
}

.mobile-menu__nav ul li:last-child > a {
    border-bottom: none;
}

.mobile-menu__nav ul li a:hover,
.mobile-menu__link:hover {
    background: var(--tag-bg);
}

/* Шеврон справа для WordPress-меню */
.mobile-menu__nav ul li a::after {
    content: '›';
    margin-left: auto;
    font-size: 20px;
    line-height: 1;
    color: var(--text-secondary);
    opacity: 0.4;
    flex-shrink: 0;
}

.mobile-menu__nav ul li a i:first-child,
.mobile-menu__link i:first-child {
    font-size: 20px;
    color: var(--accent);
    flex-shrink: 0;
}

.mobile-menu__chevron {
    margin-left: auto;
    font-size: 14px;
    color: var(--text-tertiary, var(--text-secondary));
}

/* Footer */
.mobile-menu__footer {
    padding: 20px 20px 8px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mobile-menu__phone {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    background: var(--tag-bg);
    border-radius: var(--radius-md);
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
    text-decoration: none;
    transition: background var(--transition);
}

.mobile-menu__phone:hover { background: var(--border); }
.mobile-menu__phone i { color: var(--accent); font-size: 18px; }

.mobile-menu__cta {
    width: 100%;
    justify-content: center;
    padding: 14px;
    font-size: 15px;
    border-radius: var(--radius-md);
}

/* ===========================
   POPUP / MODAL
   =========================== */
.popup-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

.popup-overlay.is-open {
    opacity: 1;
    visibility: visible;
}

.popup {
    background: var(--bg-secondary);
    border-radius: 20px;
    width: 100%;
    max-width: 440px;
    overflow: hidden;
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.06),
        0 12px 40px rgba(0, 0, 0, 0.14),
        0 32px 72px rgba(0, 0, 0, 0.12);
    transform: translateY(24px);
    opacity: 0;
    transition:
        transform 0.32s cubic-bezier(0.22, 1, 0.36, 1),
        opacity   0.22s ease;
}

.popup-overlay.is-open .popup {
    transform: translateY(0);
    opacity: 1;
}

[data-theme="dark"] .popup {
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.35),
        0 12px 40px rgba(0, 0, 0, 0.55),
        0 32px 72px rgba(0, 0, 0, 0.45);
}

/* ── Gradient header ───────────────────────── */
.popup__header {
    background: linear-gradient(135deg, #0050cc 0%, #0071e3 55%, #38a0ff 100%);
    padding: 26px 24px 22px;
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.popup__header-icon {
    width: 44px;
    height: 44px;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 20px;
    color: #fff;
}

.popup__header-text {
    flex: 1;
    min-width: 0;
    padding-right: 30px;
}

.popup__title {
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.3px;
    line-height: 1.25;
    margin: 0 0 4px;
}

.popup__subtitle {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.4;
    margin: 0;
}

.popup__close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.9);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    transition: background 0.15s;
    padding: 0;
    line-height: 1;
}

.popup__close:hover { background: rgba(255, 255, 255, 0.3); }

/* ── Trust strip ───────────────────────────── */
.popup__trust {
    display: flex;
    align-items: stretch;
    background: var(--bg-primary);
    border-bottom: 1px solid var(--border-light);
}

.popup__trust-item {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 9px 6px;
    font-size: 11.5px;
    font-weight: 500;
    color: var(--text-secondary);
}

.popup__trust-item + .popup__trust-item {
    border-left: 1px solid var(--border-light);
}

.popup__trust-item i {
    font-size: 13px;
    color: var(--accent);
}

/* ── Form body ─────────────────────────────── */
.popup__body {
    padding: 20px 24px 24px;
}

/* ── Traffic lights (decorative, used in blocks) ── */
.popup__traffic {
    display: flex;
    gap: 8px;
    align-items: center;
}

.tl {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0;
    cursor: default;
    position: relative;
    transition: filter 0.12s;
}

.tl--close { background: #ff5f57; cursor: pointer; }
.tl--min   { background: #febc2e; }
.tl--max   { background: #28c840; }

.tl::after {
    font-size: 8px;
    font-weight: 900;
    line-height: 1;
    opacity: 0;
    transition: opacity 0.1s;
    position: absolute;
}

.tl--close::after { content: '✕'; color: rgba(80, 0, 0, 0.65); }
.tl--min::after   { content: '−'; color: rgba(60, 35, 0, 0.65); }
.tl--max::after   { content: '+'; color: rgba(0, 50, 10, 0.65); }

.popup__traffic:hover .tl::after { opacity: 1; }
.tl--close:hover { filter: brightness(1.08); }

@media (max-width: 480px) {
    .popup { border-radius: 16px; }
    .popup__header { padding: 20px 18px 18px; }
    .popup__body   { padding: 16px 18px 20px; }
    .popup__title  { font-size: 16px; }
}

/* ===========================
   FORMS
   =========================== */
.form-group { margin-bottom: 14px; }

.form-label {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-secondary);
    margin-bottom: 5px;
}

.form-control {
    width: 100%;
    background: var(--bg-tertiary);
    border: 0.5px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 10px 13px;
    font-size: 14px;
    color: var(--text-primary);
    font-family: var(--font-main);
    transition: border-color var(--transition);
    outline: none;
}

.form-control:focus { border-color: var(--accent); }

.form-control::placeholder { color: var(--text-tertiary); }

textarea.form-control { resize: vertical; min-height: 90px; }

select.form-control { cursor: pointer; }

/* ===========================
   SECTION HEADER
   =========================== */
.section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.section-title {
    font-size: 21px;
    font-weight: 600;
    letter-spacing: -0.3px;
}

.section-link {
    font-size: 13px;
    color: var(--accent);
    display: flex;
    align-items: center;
    gap: 4px;
}

.section-link:hover { text-decoration: underline; }

/* ===========================
   SERVICES SECTION — заголовок
   =========================== */
.svc-section__header {
    text-align: center;
    margin-bottom: 40px;
    margin-top: 40px;
}

.svc-section__eyebrow {
    font-size: 13px;
    font-weight: 600;
    color: var(--accent);
    margin: 0 0 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.svc-section__dot {
    font-size: 10px;
    opacity: 0.6;
}

.svc-section__title {
    font-size: clamp(26px, 3.5vw, 36px);
    font-weight: 800;
    letter-spacing: -0.5px;
    line-height: 1.2;
    color: var(--text-primary);
    margin: 0 0 14px;
}

.svc-section__desc {
    font-size: 15px;
    color: var(--text-secondary);
    line-height: 1.65;
    margin: 0 auto;
    max-width: 480px;
}

.svc-section__bottom {
    text-align: center;
    margin-top: 28px;
}

.svc-section__all-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--accent);
    border: 1.5px solid var(--accent);
    border-radius: 24px;
    padding: 9px 22px;
    transition: background 0.18s ease, color 0.18s ease;
}

.svc-section__all-link:hover {
    background: var(--accent);
    color: #fff;
}

/* ===========================
   CARDS — SERVICE
   =========================== */
.svc-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

@media (max-width: 900px) {
    .svc-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
    .svc-grid { grid-template-columns: 1fr; gap: 10px; }
}

.svc-card {
    display: flex;
    flex-direction: column;
    padding: 22px 20px 18px;
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    border-radius: 16px;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.svc-card:hover {
    box-shadow: 0 6px 24px rgba(0,0,0,0.1);
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--accent) 30%, var(--border));
    color: inherit;
}

/* Верхняя строка: иконка + текст */
.svc-card__top {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    flex: 1;
    margin-bottom: 16px;
}

.svc-card__icon {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.svc-card__icon img {
    width: 80px;
    height: 80px;
    object-fit: contain;
}

.svc-card__icon-letter {
    width: 80px;
    height: 80px;
    border-radius: 18px;
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 800;
    color: var(--accent);
}

.svc-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-top: 4px;
}

.svc-card__name {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.3;
    letter-spacing: -0.2px;
}

.svc-card__sub {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
}

/* Нижняя строка: цена + стрелка */
.svc-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 14px;
    border-top: 0.5px solid var(--border);
}

.svc-card__price {
    font-size: 13px;
    font-weight: 600;
    color: var(--accent);
}

.svc-card__arrow {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    transition: transform 0.18s ease;
    flex-shrink: 0;
}

.svc-card:hover .svc-card__arrow {
    transform: translateX(2px);
}

/* ── Вертикальный вариант карточки (похожие услуги) ─────── */
.svc-grid--app {
    grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 900px) {
    .svc-grid--app { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .svc-grid--app { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

.svc-card--app {
    flex-direction: column;
    padding: 0;
    gap: 0;
}

.svc-card--app .svc-card__hero {
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-secondary);
    border-radius: 16px 16px 0 0;
    overflow: hidden;
    flex-shrink: 0;
}

.svc-card--app .svc-card__hero-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.4s ease;
}

.svc-card--app:hover .svc-card__hero-img {
    transform: scale(1.05);
}

.svc-card--app .svc-card__icon-letter {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    font-weight: 800;
    color: var(--accent);
}

.svc-card--app .svc-card__body {
    padding: 14px 16px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.svc-card--app .svc-card__name {
    white-space: normal;
    font-size: 14px;
}

.svc-card--app .svc-card__sub {
    white-space: normal;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.svc-card--app .svc-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 10px;
    border-top: 0.5px solid var(--border);
}

.svc-card--app .svc-card__arrow {
    width: auto;
    height: auto;
    border-radius: 0;
    background: none;
    color: var(--text-tertiary);
    font-size: 16px;
}

/* ===========================
   CARDS — INSTITUTION
   =========================== */
.inst-card {
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 13px;
    text-align: center;
    cursor: pointer;
    transition: border-color var(--transition);
    text-decoration: none;
    display: block;
    color: inherit;
}

.inst-card:hover { border-color: var(--accent); color: inherit; }

.inst-card__abbr { font-size: 12px; font-weight: 600; color: var(--accent); margin-bottom: 3px; }
.inst-card__name { font-size: 11px; color: var(--text-secondary); line-height: 1.4; }

/* Institution type tabs */
.inst-tabs { display: flex; gap: 6px; margin-bottom: 16px; flex-wrap: wrap; }

.inst-tab {
    background: var(--tag-bg);
    border: none;
    border-radius: 20px;
    padding: 6px 16px;
    font-size: 12px;
    color: var(--text-secondary);
    cursor: pointer;
    font-family: var(--font-main);
    transition: all var(--transition);
}

.inst-tab.is-active,
.inst-tab:hover { background: var(--accent); color: #fff; }

/* ===========================
   CARDS — REVIEW
   =========================== */
.review-card {
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    border-radius: var(--radius-md);
    padding: 18px;
}

.review-card__stars { color: #ff9f0a; font-size: 13px; margin-bottom: 10px; }
.review-card__text  { font-size: 13px; color: var(--text-secondary); line-height: 1.55; margin-bottom: 12px; }

.review-card__author { display: flex; align-items: center; gap: 10px; }

.review-card__avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--accent-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    color: var(--accent);
    flex-shrink: 0;
}

.review-card__name { font-size: 13px; font-weight: 500; }
.review-card__meta { font-size: 11px; color: var(--text-tertiary); }

/* ===========================
   CARDS — BLOG
   =========================== */
.blog-card {
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: border-color var(--transition);
    text-decoration: none;
    display: block;
    color: inherit;
}

.blog-card:hover { border-color: var(--accent); color: inherit; }

.blog-card__img {
    height: 140px;
    overflow: hidden;
    background: var(--bg-tertiary);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-tertiary);
    font-size: 32px;
}

.blog-card__img img { width: 100%; height: 100%; object-fit: cover; }

.blog-card__body { padding: 14px; }

.blog-card__cat {
    font-size: 10px;
    color: var(--accent);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: 6px;
}

.blog-card__title { font-size: 14px; font-weight: 500; line-height: 1.4; margin-bottom: 8px; }
.blog-card__date  { font-size: 11px; color: var(--text-tertiary); }

/* ===========================
   SPECIALTY TAGS
   =========================== */
.spec-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--tag-bg);
    color: var(--text-primary);
    border: 0.5px solid var(--border);
    border-radius: 22px;
    padding: 7px 15px;
    font-size: 13px;
    cursor: pointer;
    transition: all var(--transition);
    text-decoration: none;
}

.spec-tag:hover { border-color: var(--accent); color: var(--accent); }
.spec-tag i, .spec-tag svg { font-size: 14px; }

/* ── Specialties grid ──────────────────────────────────── */
.spec-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 10px;
}

.spec-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: var(--bg-secondary);
    border: 0.5px solid var(--border);
    border-radius: 12px;
    text-decoration: none;
    color: var(--text-primary);
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.spec-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07);
    border-color: var(--accent);
}

.spec-card__icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.spec-card__title {
    font-size: 13px;
    font-weight: 500;
    line-height: 1.35;
    flex: 1;
    min-width: 0;
}

.spec-card__arrow {
    font-size: 13px;
    color: var(--text-tertiary);
    flex-shrink: 0;
    transition: color 0.16s, transform 0.16s;
}

.spec-card:hover .spec-card__arrow {
    color: var(--accent);
    transform: translateX(2px);
}

/* ── Partners Marquee ──────────────────────────────────── */
.partners-section { overflow: hidden; }

.partners-marquee {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, #000 12%, #000 88%, transparent 100%);
    padding: 8px 0;
}

.partners-marquee:hover .partners-track { animation-play-state: paused; }

.partners-track {
    display: flex;
    gap: 10px;
    width: max-content;
    animation: partners-scroll 32s linear infinite;
}

@keyframes partners-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

.partner-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    background: var(--bg-secondary);
    border: 0.5px solid var(--border);
    border-radius: 10px;
    text-decoration: none;
    color: var(--text-primary);
    white-space: nowrap;
    transition: border-color 0.15s, background 0.15s;
    flex-shrink: 0;
}

.partner-chip:hover {
    border-color: var(--accent);
    background: var(--bg-primary);
}

.partner-chip__abbr {
    font-size: 12px;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: 0.02em;
}

.partner-chip__name {
    font-size: 12px;
    color: var(--text-secondary);
}

/* Размеры чипов */
.partner-chip--sm { padding: 6px 12px; border-radius: 8px; }
.partner-chip--sm .partner-chip__abbr { font-size: 11px; }
.partner-chip--sm .partner-chip__name { font-size: 11px; }

.partner-chip--md { padding: 9px 16px; border-radius: 10px; }
.partner-chip--md .partner-chip__abbr { font-size: 12px; }
.partner-chip--md .partner-chip__name { font-size: 12px; }

.partner-chip--lg { padding: 13px 22px; border-radius: 12px; }
.partner-chip--lg .partner-chip__abbr { font-size: 14px; }
.partner-chip--lg .partner-chip__name { font-size: 13px; }

/* ── Question of the Day ───────────────────────────────── */
.qotd-win {
    max-width: 780px;
    margin: 0 auto;
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    border-radius: 14px;
    box-shadow: 0 4px 32px rgba(0, 0, 0, 0.07), 0 1px 4px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.qotd-win__titlebar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    background: var(--bg-secondary);
    border-bottom: 0.5px solid var(--border);
}

.qotd-win__wintitle {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
}

.qotd-win__body {
    display: flex;
    gap: 24px;
    padding: 28px 32px;
    align-items: flex-start;
}

.qotd-win__icon {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: rgba(255, 159, 10, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    color: #ff9f0a;
}

[data-theme="dark"] .qotd-win__icon { background: rgba(255, 159, 10, 0.18); }

.qotd-win__content { flex: 1; min-width: 0; }

.qotd-win__question {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.4;
    letter-spacing: -0.02em;
    margin-bottom: 14px;
}

.qotd-win__answer {
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.7;
    margin-bottom: 16px;
    padding-left: 14px;
    border-left: 3px solid var(--accent);
}

.qotd-win__link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    font-weight: 500;
    color: var(--accent);
    text-decoration: none;
    transition: gap 0.15s;
}

.qotd-win__link:hover { gap: 8px; }

@media (max-width: 600px) {
    .qotd-win__body { flex-direction: column; gap: 16px; padding: 20px; }
    .qotd-win__question { font-size: 16px; }
}

/* ── 404 Page ──────────────────────────────────────────── */
.e404-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 140px);
    padding: 60px 0;
}

.e404-win {
    max-width: 560px;
    margin: 0 auto;
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    border-radius: 14px;
    box-shadow:
        0 0 0 0.5px rgba(0, 0, 0, 0.05),
        0 20px 60px rgba(0, 0, 0, 0.12),
        0 4px 12px rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

.e404-win__titlebar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: var(--bg-secondary);
    border-bottom: 0.5px solid var(--border);
}

.e404-win__wintitle {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
}

.e404-win__body {
    padding: 48px 40px 36px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.e404-icon {
    margin-bottom: 28px;
    position: relative;
    display: inline-block;
}

.e404-icon__folder {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 100px;
    background: rgba(0, 113, 227, 0.08);
    border-radius: 24px;
    font-size: 56px;
    color: var(--accent);
}

[data-theme="dark"] .e404-icon__folder { background: rgba(0, 113, 227, 0.15); }

.e404-icon__badge {
    position: absolute;
    bottom: -6px;
    right: -6px;
    width: 28px;
    height: 28px;
    background: #ff5f57;
    color: #fff;
    border-radius: 50%;
    font-size: 14px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--card-bg);
    letter-spacing: -0.5px;
}

.e404-title {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.03em;
    margin-bottom: 10px;
}

.e404-desc {
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.65;
    margin-bottom: 28px;
    max-width: 380px;
}

.e404-code {
    display: inline-block;
    margin-top: 8px;
    font-family: 'SF Mono', 'Fira Code', monospace;
    font-size: 11px;
    background: var(--bg-tertiary);
    border: 0.5px solid var(--border);
    padding: 3px 10px;
    border-radius: 6px;
    color: var(--text-tertiary);
}

.e404-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 28px;
}

.e404-statusbar {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--text-tertiary);
    padding-top: 20px;
    border-top: 0.5px solid var(--border);
    width: 100%;
    justify-content: center;
}

.e404-statusbar-sep { opacity: 0.4; }

@media (max-width: 600px) {
    .e404-win__body { padding: 32px 24px 24px; }
    .e404-title { font-size: 20px; }
}

/* ============================================================
   CTA + STATS BLOCK
   ============================================================ */
.cta-stats-win {
    border-radius: 14px;
    overflow: hidden;
    margin: 30px 0px;
    border: 0.5px solid var(--border);
    box-shadow: 0 4px 32px rgba(0,0,0,0.08), 0 1px 4px rgba(0,0,0,0.05);
}

.cta-stats-win__titlebar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 16px;
    background: var(--bg-secondary);
    border-bottom: 0.5px solid var(--border);
}

.cta-stats-win__wintitle {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
}

.cta-stats-win__body {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

/* ── Left panel ────────────────────────────────────────── */
.cta-stats__left {
    position: relative;
    overflow: hidden;
    padding: 44px 40px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    justify-content: center;
}

/* Colour variants */
.cta-stats__left--dark   { background: linear-gradient(145deg, #1a1a2e 0%, #0f1629 60%, #0d1117 100%); }
.cta-stats__left--blue   { background: linear-gradient(145deg, #0055cc 0%, #003a99 100%); }
.cta-stats__left--purple { background: linear-gradient(145deg, #5e35b1 0%, #3a1f8a 100%); }
.cta-stats__left--green  { background: linear-gradient(145deg, #1b8a3e 0%, #0d5c26 100%); }

/* Animated blobs */
.cta-stats__blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(52px);
    pointer-events: none;
    animation: cta-float 9s ease-in-out infinite;
}
.cta-stats__blob--1 {
    width: 320px; height: 320px;
    background: rgba(0, 113, 227, 0.35);
    top: -100px; left: -60px;
    animation-delay: 0s;
}
.cta-stats__blob--2 {
    width: 220px; height: 220px;
    background: rgba(88, 86, 214, 0.3);
    bottom: -80px; right: 0;
    animation-delay: -4s;
}

.cta-stats__badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    position: relative;
    z-index: 1;
}

.cta-stats__title {
    font-size: 24px;
    font-weight: 800;
    color: #fff;
    line-height: 1.25;
    letter-spacing: -0.03em;
    position: relative;
    z-index: 1;
    margin: 0;
}

.cta-stats__desc {
    font-size: 14px;
    color: rgba(255,255,255,0.62);
    line-height: 1.65;
    position: relative;
    z-index: 1;
    margin: 0;
}

/* White button variant */
.btn--white {
    background: #fff;
    color: #0f1629;
    border: none;
    font-weight: 600;
    position: relative;
    z-index: 1;
    transition: background 0.15s, transform 0.15s;
    align-self: flex-start;
}
.btn--white:hover { background: rgba(255,255,255,0.88); transform: translateY(-1px); }

.btn__icon-img {
    width: 18px;
    height: 18px;
    object-fit: contain;
    display: block;
    flex-shrink: 0;
}

/* ── Left: image overlay ───────────────────────────────── */
.cta-stats__left--with-image::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 0;
}

/* ── Left: dark text variant ───────────────────────────── */
.cta-stats__left--dark-text .cta-stats__badge { color: var(--text-secondary); }
.cta-stats__left--dark-text .cta-stats__title { color: var(--text-primary); }
.cta-stats__left--dark-text .cta-stats__desc  { color: var(--text-secondary); }
.cta-stats__left--dark-text .btn--white {
    background: var(--accent, #ff9f0a);
    color: #fff;
    border-color: var(--accent, #ff9f0a);
}
.cta-stats__left--dark-text .btn--white:hover {
    background: var(--accent-hover, #e08800);
}

/* ── Right stats grid ──────────────────────────────────── */
.cta-stats__right {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--card-bg);
}

.cta-stat {
    padding: 36px 32px;
    border-bottom: 0.5px solid var(--border);
    border-right: 0.5px solid var(--border);
}

.cta-stat:nth-child(even) { border-right: none; }
.cta-stat:nth-child(3),
.cta-stat:nth-child(4)    { border-bottom: none; }

.cta-stat__value {
    font-size: 30px;
    font-weight: 800;
    letter-spacing: -0.04em;
    color: var(--text-primary);
    margin-bottom: 8px;
    line-height: 1.1;
}

.cta-stat__label {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
}

/* ── Right: image/gradient custom bg ───────────────────── */
.cta-stats__right--with-image .cta-stat__value { color: #fff; }
.cta-stats__right--with-image .cta-stat__label { color: rgba(255,255,255,0.72); }
.cta-stats__right--with-image .cta-stat       { border-color: rgba(255,255,255,0.15); }

/* Mobile */
@media (max-width: 760px) {
    .cta-stats-win__body { grid-template-columns: 1fr; }
    .cta-stats__left { padding: 32px 24px; }
    .cta-stats__right { grid-template-columns: 1fr 1fr; }
    .cta-stat { padding: 24px 20px; }
    .cta-stat:nth-child(3),
    .cta-stat:nth-child(4) { border-bottom: none; }
    .cta-stat:nth-child(odd) { border-right: 0.5px solid var(--border); }
    .cta-stat:nth-child(even) { border-right: none; }
    .cta-stats__title { font-size: 20px; }
    .cta-stat__value { font-size: 24px; }
}

/* ===========================
   STATS STRIP
   =========================== */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

@media (max-width: 900px) {
    .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}

@media (max-width: 480px) {
    .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

.stat-card {
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    border-radius: var(--radius-md);
    padding: 24px 16px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.stat-card__icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 2px;
}

.stat-card__icon i {
    font-size: 20px;
    color: var(--accent);
}

.stat-card__num {
    font-size: 32px;
    font-weight: 800;
    color: var(--accent);
    letter-spacing: -1px;
    line-height: 1;
}

.stat-card__label {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.4;
}

/* ===========================
   GRIDS
   =========================== */
.grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.grid-2 { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }
.grid-auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); gap: 10px; }

/* ── Карточки (произвольные) ───────────────────────────── */
.service-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 24px;
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    text-decoration: none;
    color: var(--text-primary);
    transition: box-shadow var(--transition), transform var(--transition);
}

a.service-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.service-card__icon {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.service-card__icon-img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.service-card__name {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
}

.service-card__desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--text-secondary);
}
.grid-inst { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px,1fr)); gap: 8px; }

/* ===========================
   FLEX SECTION LAYOUT
   =========================== */
.flex-section { padding: 48px 0; }
.flex-section + .flex-section { padding-top: 0; }

/* ===========================
   HERO BLOCK
   =========================== */
.hero-block { padding: 64px 0 48px; text-align: center; position: relative; overflow: hidden; }

/* ── Блобы ─────────────────────────────────────────────── */
.hero-block__blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(64px);
    pointer-events: none;
    animation: hero-blob-float 10s ease-in-out infinite;
    z-index: 1;
}
.hero-block__blob--1 {
    width: 420px; height: 420px;
    background: rgba(var(--accent-rgb, 255,159,10), 0.18);
    top: -120px; left: -80px;
    animation-delay: 0s;
}
.hero-block__blob--2 {
    width: 300px; height: 300px;
    background: rgba(var(--accent-rgb, 255,159,10), 0.12);
    bottom: -80px; right: -40px;
    animation-delay: -4s;
}
.hero-block__blob--3 {
    width: 220px; height: 220px;
    background: rgba(41, 151, 255, 0.10);
    top: 40%; left: 60%;
    animation-delay: -7s;
}
@keyframes hero-blob-float {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33%       { transform: translate(20px, -30px) scale(1.06); }
    66%       { transform: translate(-15px, 20px) scale(0.96); }
}

/* ── Параллакс ─────────────────────────────────────────── */
.hero-block--parallax {
    background-attachment: fixed;
}
@media (max-width: 768px) {
    .hero-block--parallax { background-attachment: scroll; }
}

/* ── Частицы (canvas) ──────────────────────────────────── */
.hero-block__particles {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
}

/* ── Mouse-blobs: отключаем CSS-анимацию, JS управляет transform ── */
.hero-block--mouse-blobs .hero-block__blob {
    animation: none;
    transition: transform 0.08s linear;
    will-change: transform;
}


/* ── Бейдж с пульсирующей точкой ───────────────────────── */
.hero-block__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--tag-bg);
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 500;
    padding: 6px 14px 6px 10px;
    border-radius: 22px;
    margin-bottom: 22px;
    border: 0.5px solid var(--border);
}

.hero-block__badge-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #34c759;
    flex-shrink: 0;
    animation: badge-pulse 2s ease-in-out infinite;
}

@keyframes badge-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(52, 199, 89, 0.5); }
    50%       { box-shadow: 0 0 0 5px rgba(52, 199, 89, 0); }
}

/* ── Заголовок с акцентным подчёркиванием ───────────────── */
.hero-block__title {
    font-size: 44px;
    font-weight: 700;
    letter-spacing: -1px;
    line-height: 1.12;
    margin-bottom: 16px;
    color: var(--text-primary);
}

.hero-block__title-accent {
    color: var(--accent);
    display: inline;
    background-image: linear-gradient(to right, var(--accent), color-mix(in srgb, var(--accent) 60%, #000));
    background-size: 100% 3px;
    background-repeat: no-repeat;
    background-position: 0 100%;
    padding-bottom: 3px;
}

/* ── Подзаголовок ───────────────────────────────────────── */
.hero-block__subtitle {
    font-size: 17px;
    color: var(--text-secondary);
    max-width: 560px;
    margin: 0 auto 20px;
    line-height: 1.6;
}

/* ── Мини-список доверия ────────────────────────────────── */
.hero-block__trust {
    list-style: none;
    padding: 0;
    margin: 0 auto 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px 20px;
}

.hero-block__trust-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-secondary);
}

.hero-block__trust-check {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--accent) 15%, transparent);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 11px;
}

/* ── Кнопки ─────────────────────────────────────────────── */
.hero-block__buttons { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* ── Социальное доказательство ──────────────────────────── */
.hero-block__social {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
}

.hero-block__social-avatars {
    display: flex;
    align-items: center;
}

.hero-block__social-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 2px solid var(--bg-primary);
    object-fit: cover;
    margin-left: -10px;
    flex-shrink: 0;
}

.hero-block__social-avatars .hero-block__social-avatar:first-child {
    margin-left: 0;
}

.hero-block__social-text {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
}

/* ── Адаптация ──────────────────────────────────────────── */
@media (max-width: 600px) {
    .hero-block__trust { gap: 6px 14px; }
    .hero-block__trust-item { font-size: 13px; }
    .hero-block__social { flex-direction: column; gap: 8px; }
}

/* ===========================
   FORM BLOCK — macOS window
   =========================== */
.form-mac {
    width: 100%;
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--shadow-md);
    overflow: hidden;
}

.form-mac__desc {
    font-size: 14px;
    color: var(--text-secondary);
    margin: 0 0 16px;
}

/* ===========================
   CTA BLOCK
   =========================== */
.cta-block {
    position: relative;
    overflow: hidden;
    border-radius: 20px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    min-height: 320px;
}

/* Декоративные круги */
.cta-block__orb {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}
.cta-block__orb--1 {
    width: 300px; height: 300px;
    top: -80px; left: -60px;
    filter: blur(60px);
    opacity: 0.5;
}
.cta-block__orb--2 {
    width: 220px; height: 220px;
    bottom: -60px; right: 42%;
    filter: blur(50px);
    opacity: 0.4;
}

/* ── Стиль: тёмный ── */
.cta-block--dark {
    background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 50%, #0f172a 100%);
    border: 0.5px solid rgba(255,255,255,0.08);
    box-shadow: 0 8px 32px rgba(0,0,0,0.35), 0 24px 64px rgba(0,0,0,0.2);
}
.cta-block--dark .cta-block__orb--1 { background: rgba(99,102,241,0.6); }
.cta-block--dark .cta-block__orb--2 { background: rgba(14,165,233,0.5); }
.cta-block--dark .cta-block__badge  { background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.9); }
.cta-block--dark .cta-block__title  { color: #fff; }
.cta-block--dark .cta-block__text   { color: rgba(255,255,255,0.6); }
.cta-block--dark .cta-block__trust-item { color: rgba(255,255,255,0.8); }
.cta-block--dark .cta-block__trust-icon { background: rgba(255,255,255,0.12); color: #fff; }
.cta-block--dark .cta-block__btn {
    background: #fff;
    color: #0f172a;
    border-color: #fff;
}
.cta-block--dark .cta-block__btn:hover { background: rgba(255,255,255,0.9); }
.cta-block--dark .cta-block__form-card {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.1);
}
.cta-block--dark .cta-block__form-title { color: rgba(255,255,255,0.9); }
.cta-block--dark .cta-block__form-card .form-control {
    background: rgba(255,255,255,0.07);
    border-color: rgba(255,255,255,0.14);
    color: #fff;
}
.cta-block--dark .cta-block__form-card .form-control::placeholder { color: rgba(255,255,255,0.3); }
.cta-block--dark .cta-block__form-card .form-control:focus {
    background: rgba(255,255,255,0.11);
    border-color: rgba(255,255,255,0.35);
    box-shadow: 0 0 0 3px rgba(255,255,255,0.08);
}
.cta-block--dark .cta-block__form-card label { color: rgba(255,255,255,0.5); }
.cta-block--dark .cta-block__decor { color: rgba(255,255,255,0.07); }

/* ── Стиль: акцентный ── */
.cta-block--brand {
    background: linear-gradient(135deg, var(--accent) 0%, color-mix(in srgb, var(--accent) 70%, #000) 100%);
    border: none;
    box-shadow: 0 8px 32px color-mix(in srgb, var(--accent) 40%, transparent),
                0 24px 64px color-mix(in srgb, var(--accent) 20%, transparent);
}
.cta-block--brand .cta-block__orb--1 { background: rgba(255,255,255,0.25); }
.cta-block--brand .cta-block__orb--2 { background: rgba(0,0,0,0.15); }
.cta-block--brand .cta-block__badge  { background: rgba(255,255,255,0.2); color: #fff; }
.cta-block--brand .cta-block__title  { color: #fff; }
.cta-block--brand .cta-block__text   { color: rgba(255,255,255,0.72); }
.cta-block--brand .cta-block__trust-item { color: rgba(255,255,255,0.85); }
.cta-block--brand .cta-block__trust-icon { background: rgba(255,255,255,0.2); color: #fff; }
.cta-block--brand .cta-block__btn {
    background: #fff;
    color: var(--accent);
    border-color: #fff;
}
.cta-block--brand .cta-block__btn:hover { background: rgba(255,255,255,0.9); }
.cta-block--brand .cta-block__form-card {
    background: rgba(255,255,255,0.15);
    border-color: rgba(255,255,255,0.2);
}
.cta-block--brand .cta-block__form-title { color: #fff; }
.cta-block--brand .cta-block__form-card .form-control {
    background: rgba(255,255,255,0.15);
    border-color: rgba(255,255,255,0.25);
    color: #fff;
}
.cta-block--brand .cta-block__form-card .form-control::placeholder { color: rgba(255,255,255,0.45); }
.cta-block--brand .cta-block__form-card .form-control:focus {
    background: rgba(255,255,255,0.2);
    border-color: rgba(255,255,255,0.5);
    box-shadow: 0 0 0 3px rgba(255,255,255,0.15);
}
.cta-block--brand .cta-block__form-card label { color: rgba(255,255,255,0.6); }
.cta-block--brand .cta-block__decor { color: rgba(255,255,255,0.1); }

/* ── Стиль: светлый ── */
.cta-block--light {
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    box-shadow: 0 4px 20px rgba(0,0,0,0.06), 0 16px 48px rgba(0,0,0,0.04);
}
.cta-block--light .cta-block__orb--1 { background: color-mix(in srgb, var(--accent) 15%, transparent); }
.cta-block--light .cta-block__orb--2 { background: color-mix(in srgb, var(--accent) 10%, transparent); }
.cta-block--light .cta-block__badge  { background: color-mix(in srgb, var(--accent) 12%, transparent); color: var(--accent); }
.cta-block--light .cta-block__title  { color: var(--text-primary); }
.cta-block--light .cta-block__text   { color: var(--text-secondary); }
.cta-block--light .cta-block__trust-item { color: var(--text-secondary); }
.cta-block--light .cta-block__trust-icon { background: color-mix(in srgb, var(--accent) 12%, transparent); color: var(--accent); }
.cta-block--light .cta-block__btn {
    background: var(--accent);
    color: #fff;
    border-color: var(--accent);
}
.cta-block--light .cta-block__btn:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.cta-block--light .cta-block__form-card {
    background: var(--bg-secondary);
    border-color: var(--border);
}
.cta-block--light .cta-block__form-title { color: var(--text-primary); }
.cta-block--light .cta-block__decor { color: color-mix(in srgb, var(--accent) 15%, transparent); }

/* ── Колонки ── */
.cta-block__left {
    padding: 48px 44px 48px 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
    position: relative;
    z-index: 1;
}

.cta-block__right {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 48px 40px 32px;
    position: relative;
    z-index: 1;
}

/* ── Элементы ── */
.cta-block__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 6px 12px;
    border-radius: 20px;
    width: fit-content;
}

.cta-block__badge i { font-size: 13px; }

.cta-block__title {
    font-size: clamp(22px, 2.8vw, 30px);
    font-weight: 800;
    letter-spacing: -0.4px;
    line-height: 1.2;
    margin: 0;
}

.cta-block__text {
    font-size: 15px;
    line-height: 1.65;
    margin: 0;
}

.cta-block__trust {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cta-block__trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 500;
}

.cta-block__trust-icon {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 14px;
}

.cta-block__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 26px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    border: 2px solid transparent;
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
    width: fit-content;
    margin-top: 4px;
}

.cta-block__btn:hover { transform: translateY(-1px); }

/* Карточка формы */
.cta-block__form-card {
    width: 100%;
    max-width: 360px;
    border-radius: 14px;
    border: 0.5px solid;
    padding: 28px 24px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.cta-block__form-title {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 18px;
}

/* Декоративная иконка (когда форма не выбрана) */
.cta-block__decor {
    font-size: 180px;
    line-height: 1;
    user-select: none;
    pointer-events: none;
}

/* ── Адаптация ── */
@media (max-width: 900px) {
    .cta-block {
        grid-template-columns: 1fr;
        border-radius: 16px;
    }
    .cta-block__left  { padding: 36px 28px 28px; }
    .cta-block__right { padding: 0 28px 36px; justify-content: flex-start; }
    .cta-block__form-card { max-width: 100%; }
    .cta-block__decor { display: none; }
    .cta-block__orb--1 { width: 200px; height: 200px; }
    .cta-block__orb--2 { display: none; }
}

@media (max-width: 560px) {
    .cta-block__left  { padding: 28px 20px 20px; gap: 16px; }
    .cta-block__right { padding: 0 20px 28px; }
    .cta-block__title { font-size: 22px; }
    .cta-block__btn   { width: 100%; justify-content: center; }
    .cta-block__form-card { padding: 20px 16px; }
}

.btn--white {
    background: #fff;
    color: var(--accent);
    border-color: #fff;
}
.btn--white:hover { background: rgba(255, 255, 255, 0.92); color: var(--accent-hover); }

/* ===========================
   SINGLE SERVICE PAGE
   =========================== */
.service-single { padding: 28px 0 56px; }

/* ── macOS Window ──────────────────────────────────── */
.svc-win {
    background: rgba(250, 250, 252, 0.90);
    backdrop-filter: blur(40px) saturate(180%);
    -webkit-backdrop-filter: blur(40px) saturate(180%);
    border-radius: 12px;
    border: 0.5px solid rgba(0, 0, 0, 0.08);
    box-shadow:
        0 0 0 0.5px rgba(0, 0, 0, 0.05),
        0 2px 8px rgba(0, 0, 0, 0.05),
        0 12px 40px rgba(0, 0, 0, 0.10),
        0 36px 72px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

[data-theme="dark"] .svc-win {
    background: rgba(28, 28, 30, 0.92);
    border-color: rgba(255, 255, 255, 0.06);
    box-shadow:
        0 0 0 0.5px rgba(255, 255, 255, 0.04),
        0 2px 8px rgba(0, 0, 0, 0.4),
        0 12px 40px rgba(0, 0, 0, 0.5),
        0 36px 72px rgba(0, 0, 0, 0.4);
}

/* ── Title bar ─────────────────────────────────────── */
.svc-win__titlebar {
    display: flex;
    align-items: center;
    padding: 11px 16px;
    background: rgba(236, 236, 240, 0.80);
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.08);
    user-select: none;
    position: relative;
}

[data-theme="dark"] .svc-win__titlebar {
    background: rgba(44, 44, 46, 0.82);
    border-bottom-color: rgba(255, 255, 255, 0.06);
}

.svc-win__wintitle {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.01em;
    white-space: nowrap;
    max-width: calc(100% - 160px);
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
}

/* ── Hero (full width, row 1) ──────────────────────── */
.svc-win__hero {
    grid-column: 1 / 3;
    grid-row: 1;
    position: relative;
    overflow: hidden;
    background: linear-gradient(145deg, #1c1c2e, #0f1629);
}

.svc-win__hero-img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 0.7s ease;
}

.svc-win__hero:hover .svc-win__hero-img { transform: scale(1.04); }

/* Fallback gradient (no image) */
.svc-win__hero-gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(145deg, #1a1a2e 0%, #0f1629 60%, #0d1117 100%);
    overflow: hidden;
}

.svc-win__hero-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(52px);
    pointer-events: none;
    animation: cta-float 8s ease-in-out infinite;
}
.svc-win__hero-blob--1 {
    width: 380px; height: 380px;
    background: rgba(0, 113, 227, 0.4);
    top: -100px; left: -60px;
    animation-delay: 0s;
}
.svc-win__hero-blob--2 {
    width: 260px; height: 260px;
    background: rgba(88, 86, 214, 0.35);
    bottom: -80px; right: 12%;
    animation-delay: -3.5s;
}

/* ── Высота (через padding-top overlay) ────────────────── */
.svc-win__hero--compact .svc-win__hero-overlay { padding-top: 48px; }
.svc-win__hero--medium  .svc-win__hero-overlay { padding-top: 80px; }
.svc-win__hero--full    .svc-win__hero-overlay { padding-top: calc(40vh - 80px); min-height: 100vh; }

/* ── Цветовые схемы ────────────────────────────────────── */
.svc-win__hero--dark   { --hero-overlay: linear-gradient(to top, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.32) 55%, rgba(0,0,0,0.06) 100%); }
.svc-win__hero--light  { --hero-overlay: linear-gradient(to top, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.65) 55%, rgba(255,255,255,0.22) 100%); }
.svc-win__hero--blue   { --hero-overlay: linear-gradient(to top, rgba(0,40,140,0.88) 0%, rgba(0,80,200,0.55) 55%, rgba(0,100,220,0.12) 100%); }
.svc-win__hero--green  { --hero-overlay: linear-gradient(to top, rgba(10,60,30,0.88) 0%, rgba(20,100,50,0.55) 55%, rgba(20,100,50,0.10) 100%); }
.svc-win__hero--purple { --hero-overlay: linear-gradient(to top, rgba(55,20,115,0.88) 0%, rgba(95,40,195,0.55) 55%, rgba(95,40,195,0.10) 100%); }

/* Градиентный фон по схеме (когда нет изображения/видео) */
.svc-win__hero--blue   .svc-win__hero-gradient { background: linear-gradient(145deg, #003fa0, #0071e3); }
.svc-win__hero--green  .svc-win__hero-gradient { background: linear-gradient(145deg, #0f5a2c, #1a7a3c); }
.svc-win__hero--purple .svc-win__hero-gradient { background: linear-gradient(145deg, #3d2fa0, #5b4fcf); }
.svc-win__hero--light  .svc-win__hero-gradient { background: linear-gradient(145deg, #e8eeff, #f0f4ff); }

/* Светлая схема — тёмный текст */
.svc-win__hero--light .svc-win__hero-title          { color: #1d1d1f; text-shadow: none; }
.svc-win__hero--light .svc-win__hero-sub            { color: rgba(0,0,0,0.6); }
.svc-win__hero--light .svc-win__hero-counter        { color: rgba(0,0,0,0.45); }
.svc-win__hero--light .svc-win__hero-tag            { color: rgba(0,0,0,0.6); background: rgba(0,0,0,0.08); border-color: rgba(0,0,0,0.12); }
.svc-win__hero--light .svc-win__hero-rating-val     { color: #1d1d1f; }
.svc-win__hero--light .svc-win__hero-rating-cnt     { color: rgba(0,0,0,0.45); }
.svc-win__hero--light .svc-win__hero-features li    { color: rgba(0,0,0,0.7); }

/* ── Бейдж-статус (угол) ───────────────────────────────── */
.svc-win__hero-badge {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    padding: 5px 14px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #fff;
    box-shadow: 0 2px 12px rgba(0,0,0,0.25);
}
.svc-win__hero-badge--popular { background: #ff9f0a; }
.svc-win__hero-badge--sale    { background: #ff3b30; }
.svc-win__hero-badge--new     { background: #30d158; }
.svc-win__hero-badge--urgent  { background: #ff6b35; box-shadow: 0 0 14px rgba(255,107,53,0.55); animation: urgentPulse 2s ease-in-out infinite; }

@keyframes urgentPulse {
    0%, 100% { box-shadow: 0 0 14px rgba(255,107,53,0.55); }
    50%       { box-shadow: 0 0 22px rgba(255,107,53,0.85); }
}

/* ── Видео-фон ─────────────────────────────────────────── */
.svc-win__hero-video {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}
.svc-win__hero-video iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 177.78vh;
    height: 56.25vw;
    min-width: 100%;
    min-height: 100%;
    pointer-events: none;
}
.svc-win__hero-img--poster { opacity: 0; }

/* Overlay with title */
.svc-win__hero-overlay {
    position: relative;
    z-index: 1;
    background: var(--hero-overlay, linear-gradient(to top, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.32) 55%, rgba(0,0,0,0.06) 100%));
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    padding: 28px 32px;
}

.svc-win__hero-left {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
}

.svc-win__hero-right {
    flex-shrink: 0;
    display: flex;
    align-items: flex-end;
}

.svc-win__hero-icon {
    width: 110px;
    height: 110px;
    object-fit: cover;
    border-radius: 20px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.45), 0 0 0 1.5px rgba(255,255,255,0.12);
    display: block;
}

.svc-win__hero-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.svc-win__hero-tag {
    font-size: 11px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.75);
    background: rgba(255, 255, 255, 0.14);
    border: 0.5px solid rgba(255, 255, 255, 0.2);
    border-radius: 20px;
    padding: 3px 10px;
    text-decoration: none;
    backdrop-filter: blur(8px);
    transition: background 0.12s;
}
.svc-win__hero-tag:hover { background: rgba(255, 255, 255, 0.22); color: #fff; }

.svc-win__hero-title {
    font-size: 26px;
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin-bottom: 6px;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.5);
}

.svc-win__hero-sub {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.55;
    max-width: 520px;
    margin-bottom: 14px;
}

.svc-win__hero-counter {
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.55);
    margin: -2px 0 10px;
    letter-spacing: .01em;
}

.svc-win__hero-rating {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 14px;
}
.svc-win__hero-stars { display: flex; gap: 2px; }
.svc-win__hero-stars .ti { font-size: 13px; color: #ffd60a; }
.svc-win__hero-rating-val {
    font-size: 14px;
    font-weight: 700;
    color: #fff;
}
.svc-win__hero-rating-cnt {
    font-size: 13px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.55);
}

.svc-win__hero-features {
    list-style: none;
    padding: 0;
    margin: 0 0 18px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.svc-win__hero-features li {
    font-size: 13px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.88);
    display: flex;
    align-items: center;
    gap: 8px;
}
.svc-win__hero-features li::before {
    content: '';
    width: 17px;
    height: 17px;
    flex-shrink: 0;
    border-radius: 50%;
    background: #30d158 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/10px no-repeat;
}

.svc-win__hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.svc-win__hero-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 13px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 0.5px solid rgba(255,255,255,0.2);
    color: #fff;
}

.svc-win__hero-pill--price {
    background: rgba(40, 200, 64, 0.25);
    border-color: rgba(40, 200, 64, 0.4);
}

.svc-win__hero-pill--deadline {
    background: rgba(255, 255, 255, 0.14);
}

.svc-win__hero-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
}

.svc-win__hero-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.6);
}

.svc-win__hero-meta-item {
    display: flex;
    align-items: center;
    gap: 4px;
}

.svc-win__hero-meta-item i {
    font-size: 13px;
}

.svc-win__hero-meta-sep {
    opacity: 0.5;
}

/* ── Body grid ─────────────────────────────────────── */
.svc-win__body {
    display: block;
}

/* ── Sidebar (left, spans rows 2-4) ───────────────── */
.svc-win__sidebar {
    grid-column: 1;
    grid-row: 2 / 5;
    background: rgba(0, 0, 0, 0.022);
    border-right: 0.5px solid rgba(0, 0, 0, 0.07);
    padding: 24px 20px 32px;
    position: sticky;
    top: 0;
    max-height: 100vh;
    overflow-y: auto;
}

[data-theme="dark"] .svc-win__sidebar {
    background: rgba(255, 255, 255, 0.02);
    border-right-color: rgba(255, 255, 255, 0.05);
}

/* Price card */
.svc-sidebar__price-card {
    background: linear-gradient(135deg, #3a9eff 0%, #0055cc 100%);
    border-radius: 12px;
    padding: 16px 18px;
    margin-bottom: 12px;
    text-align: center;
    box-shadow: 0 4px 16px rgba(0, 113, 227, 0.3);
}

.svc-sidebar__price-label {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 4px;
}

.svc-sidebar__price-value {
    font-size: 22px;
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.02em;
}

/* Deadline / meta badges */
.svc-sidebar__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
}

.svc-sidebar__badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12.5px;
    color: var(--text-secondary);
    background: var(--bg-tertiary);
    border: 0.5px solid var(--border);
    border-radius: 20px;
    padding: 5px 11px;
}

.svc-sidebar__badge i { color: var(--accent); font-size: 13px; flex-shrink: 0; }

/* Buttons */
.svc-win__btns {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 4px;
}

.svc-win__btns .btn { width: 100%; justify-content: center; }

/* Divider */
.svc-win__divider {
    height: 0.5px;
    background: rgba(0, 0, 0, 0.07);
    margin: 18px 0;
}

[data-theme="dark"] .svc-win__divider { background: rgba(255, 255, 255, 0.06); }

/* Order title */
.svc-sidebar__cta-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 0.5px solid var(--border);
}

/* ── Main pane ─────────────────────────────────────── */
.svc-win__pane {
    padding: 32px 40px 24px;
}

.svc-win__content p {
    font-size: 15px;
    color: var(--text-secondary);
    line-height: 1.75;
    margin-bottom: 14px;
}

.svc-win__content h2 { font-size: 20px; font-weight: 700; margin: 28px 0 12px; letter-spacing: -0.01em; }
.svc-win__content h3 { font-size: 17px; font-weight: 600; margin: 22px 0 10px; }
.svc-win__content ul, .svc-win__content ol { padding-left: 20px; margin-bottom: 14px; }
.svc-win__content li { font-size: 15px; color: var(--text-secondary); line-height: 1.65; margin-bottom: 6px; }

/* ── FAQ (right, row 3) ────────────────────────────── */
.svc-win__faq {
    grid-column: 2;
    grid-row: 3;
    padding: 24px 40px 40px;
    border-top: 0.5px solid rgba(0, 0, 0, 0.06);
}

[data-theme="dark"] .svc-win__faq {
    border-top-color: rgba(255, 255, 255, 0.05);
}

/* ── Mobile ────────────────────────────────────────── */
@media (max-width: 840px) {
    .svc-win__hero { grid-column: 1; grid-row: 1; }
    .svc-win__hero-overlay { padding: 20px; flex-direction: column; align-items: flex-start; gap: 0; }
    .svc-win__hero--compact .svc-win__hero-overlay,
    .svc-win__hero--medium  .svc-win__hero-overlay,
    .svc-win__hero--full    .svc-win__hero-overlay { padding-top: 60px; min-height: 0; }
    .svc-win__hero-right { display: none; }
    .svc-win__hero-title { font-size: 20px; }

    .svc-win__pane { padding: 24px 20px 20px; }
    .svc-win__faq {
        grid-column: 1; grid-row: 4;
        padding: 20px 20px 32px;
    }
    .svc-win__wintitle { max-width: calc(100% - 120px); }
    .svc-win__btns { flex-direction: row; flex-wrap: wrap; }
    .svc-win__btns .btn { width: auto; }
}

.service-single__header { margin-bottom: 36px; }

.service-single__thumb {
    width: 100%;
    max-height: 380px;
    object-fit: cover;
    border-radius: var(--radius-lg);
    margin-bottom: 28px;
}

.service-single__title { font-size: 32px; margin-bottom: 8px; }

.service-single__subtitle {
    font-size: 15px;
    color: var(--text-secondary);
    line-height: 1.6;
    margin-bottom: 14px;
}

.service-single__meta {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.service-single__price-badge {
    background: var(--accent);
    color: #fff;
    padding: 6px 18px;
    border-radius: 20px;
    font-size: 15px;
    font-weight: 600;
}

.service-single__content { margin-bottom: 36px; }
.service-single__content p { margin-bottom: 14px; color: var(--text-secondary); font-size: 15px; line-height: 1.7; }

/* Service custom buttons */
.service-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }

/* FAQ */
.faq-list { margin-bottom: 36px; }
.faq-item { border-bottom: 0.5px solid var(--border-light); }

.faq-question {
    width: 100%;
    background: none;
    border: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-primary);
    cursor: pointer;
    text-align: left;
    font-family: var(--font-main);
    gap: 12px;
}

.faq-question i {
    color: var(--text-tertiary);
    transition: transform var(--transition);
    flex-shrink: 0;
}

.faq-item.is-open .faq-question i { transform: rotate(180deg); }

.faq-answer {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.6;
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease, padding .3s ease;
}

.faq-item.is-open .faq-answer {
    max-height: 400px;
    padding-bottom: 14px;
}

/* Service form */
.service-form {
    background: var(--card-bg);
    border: 0.5px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 24px;
}

.service-form__title { font-size: 17px; font-weight: 600; margin-bottom: 18px; }

/* ============================================================
   SINGLE SERVICE — дополнительные секции
   ============================================================ */

.svc-section-title {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: 24px;
}

/* ── Hero-блок (Flexible Content) ──────────────────────── */
.svc-hero-block {
    position: relative;
    overflow: hidden;
    padding: 80px 0;
    margin: 24px 0;
    border-radius: 16px;
}

.svc-hero-block__bg {
    position: absolute;
    inset: 0;
    background-image: var(--hero-bg);
    background-size: cover;
    background-position: center;
    filter: brightness(0.4);
    z-index: 0;
}

.svc-hero-block__gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--clr-accent) 0%, #6c5ce7 100%);
    z-index: 0;
}

.svc-hero-block__blob--1,
.svc-hero-block__blob--2 {
    position: absolute;
    border-radius: 50%;
    opacity: 0.3;
    filter: blur(60px);
}
.svc-hero-block__blob--1 {
    width: 420px; height: 420px;
    background: #fff;
    top: -120px; right: -60px;
    animation: cta-float 9s ease-in-out infinite;
}
.svc-hero-block__blob--2 {
    width: 300px; height: 300px;
    background: var(--clr-accent);
    bottom: -80px; left: -60px;
    animation: cta-float 11s ease-in-out infinite reverse;
}

.svc-hero-block__content {
    position: relative;
    z-index: 1;
    max-width: 640px;
    color: #fff;
}
.svc-hero-block--center .svc-hero-block__content {
    margin: 0 auto;
    text-align: center;
}

.svc-hero-block__badge {
    display: inline-block;
    padding: 4px 14px;
    border-radius: 20px;
    background: rgba(255,255,255,.18);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255,255,255,.25);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 18px;
}

.svc-hero-block__title {
    font-size: clamp(26px, 4vw, 48px);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin: 0 0 16px;
    color: #fff;
}

.svc-hero-block__sub {
    font-size: 17px;
    line-height: 1.65;
    opacity: .82;
    margin: 0 0 32px;
    color: #fff;
}

.svc-hero-block__btns {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.svc-hero-block--center .svc-hero-block__btns {
    justify-content: center;
}

.btn--glass {
    background: rgba(255,255,255,.15);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255,255,255,.3);
    color: #fff;
}
.btn--glass:hover {
    background: rgba(255,255,255,.25);
    color: #fff;
}

/* ── Этапы работы ──────────────────────────────────────── */
.svc-steps {
    padding: 40px 0 8px;
    margin: 30px 0px;
}

.svc-steps__timeline {
    display: flex;
    align-items: flex-start;
}

.svc-step {
    flex: 1;
    text-align: center;
    padding: 0 8px;
}

.svc-step__num {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    box-shadow: 0 0 0 6px rgba(0, 113, 227, 0.12);
    position: relative;
    z-index: 1;
}

.svc-step__title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 6px;
}

.svc-step__desc {
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.55;
}

.svc-step__connector {
    flex: 0 0 32px;
    height: 2px;
    background: linear-gradient(90deg, var(--accent), rgba(0, 113, 227, 0.25));
    margin-top: 22px;
    border-radius: 2px;
}

@media (max-width: 640px) {
    .svc-steps__timeline { flex-direction: column; gap: 0; align-items: stretch; }
    .svc-step { display: flex; align-items: flex-start; gap: 14px; text-align: left; padding: 0 0 24px; }
    .svc-step__num { flex-shrink: 0; margin-bottom: 0; }
    .svc-step__connector { flex: 0 0 2px; width: 2px; height: 24px; margin: 0 0 0 21px; background: linear-gradient(180deg, var(--accent), rgba(0,113,227,0.2)); }
}

/* ── Гарантии ──────────────────────────────────────────── */
.svc-guarantees {
    padding: 32px 0 40px;
}

.svc-guarantees__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 14px;
}

.guarantee-card {
    background: var(--bg-secondary);
    border: 0.5px solid var(--border);
    border-radius: 14px;
    padding: 20px 18px;
    transition: box-shadow 0.18s ease, transform 0.18s ease;
}

.guarantee-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.07);
}

.guarantee-card__icon {
    width: 42px;
    height: 42px;
    border-radius: 11px;
    background: rgba(0, 113, 227, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: var(--accent);
    margin-bottom: 13px;
}

[data-theme="dark"] .guarantee-card__icon { background: rgba(0, 113, 227, 0.18); }

.guarantee-card__title {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 6px;
}

.guarantee-card__desc {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.6;
}

/* ── Отзывы ────────────────────────────────────────────── */
.svc-reviews {
    padding: 32px 0 40px;
}

.svc-reviews__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
}

.review-card {
    background: var(--bg-secondary);
    border: 0.5px solid var(--border);
    border-radius: 14px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.review-card__stars {
    display: flex;
    gap: 2px;
    font-size: 14px;
    color: #ff9f0a;
}

.review-card__text {
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.65;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.review-card__author {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 10px;
    border-top: 0.5px solid var(--border);
}

.review-card__avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.review-card__name {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}

.review-card__meta {
    font-size: 12px;
    color: var(--text-tertiary);
    margin-top: 2px;
}

/* ── Split block (два столбца CTA + список) ────────────── */
.split-block {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 380px;
    margin: 40px 0;
}

.split-block__col {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
}

.split-block__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.split-block__content {
    position: relative;
    z-index: 2;
    padding: 56px 48px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}

/* Левая колонка */
.split-block__badge {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    color: var(--accent);
    letter-spacing: 0.02em;
}

.split-block__heading {
    font-size: clamp(22px, 3vw, 36px);
    font-weight: 800;
    line-height: 1.2;
    color: #fff;
    margin: 0;
}

.split-block__desc {
    font-size: 15px;
    line-height: 1.65;
    color: rgba(255,255,255,0.82);
    margin: 0;
}

.split-block__btn {
    align-self: flex-start;
    margin-top: 8px;
}

.btn--outline {
    background: transparent;
    border: 2px solid currentColor;
    color: #fff;
    padding: 12px 28px;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: var(--radius-sm, 6px);
    transition: background .2s, color .2s;
    text-decoration: none;
    display: inline-block;
}
.btn--outline:hover {
    background: #fff;
    color: #111;
}

/* Правая колонка */
.split-block__right-title {
    font-size: clamp(18px, 2.5vw, 28px);
    font-weight: 700;
    line-height: 1.3;
    color: #fff;
    margin: 0;
}

.split-block__right-sub {
    font-size: 14px;
    line-height: 1.6;
    color: rgba(255,255,255,0.85);
    margin: 0;
}

.split-block__features {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.split-block__feat {
    display: flex;
    align-items: center;
    gap: 14px;
    color: #fff;
    font-size: 15px;
    font-weight: 500;
}

.split-block__feat i {
    font-size: 22px;
    flex-shrink: 0;
    opacity: 0.9;
}

/* Responsive */
@media (max-width: 768px) {
    .split-block {
        grid-template-columns: 1fr;
    }
    .split-block__content {
        padding: 40px 24px;
    }
    .split-block__col--left {
        min-height: 320px;
    }
}

/* ── SEO-текст ─────────────────────────────────────────── */
.svc-seo-text {
    padding: 40px 0;
    max-width: 860px;
    color: var(--text-primary);
    line-height: 1.75;
    font-size: 16px;
}

.svc-seo-text h1,
.svc-seo-text h2,
.svc-seo-text h3,
.svc-seo-text h4 {
    margin: 1.6em 0 0.5em;
    line-height: 1.3;
    font-weight: 700;
    color: var(--text-primary);
}

.svc-seo-text h1 { font-size: 28px; }
.svc-seo-text h2 { font-size: 22px; }
.svc-seo-text h3 { font-size: 18px; }
.svc-seo-text h4 { font-size: 16px; }

.svc-seo-text p {
    margin: 0 0 1em;
}

.svc-seo-text ul,
.svc-seo-text ol {
    margin: 0 0 1em 1.5em;
    padding: 0;
}

.svc-seo-text li {
    margin-bottom: 0.4em;
}

.svc-seo-text a {
    color: var(--accent);
    text-decoration: underline;
}

.svc-seo-text strong { font-weight: 700; }
.svc-seo-text em     { font-style: italic; }

.svc-seo-text blockquote {
    margin: 1.5em 0;
    padding: 16px 20px;
    border-left: 3px solid var(--accent);
    background: var(--surface-2, rgba(0,0,0,0.03));
    border-radius: 0 6px 6px 0;
    font-style: italic;
    color: var(--text-secondary);
}

/* ── Похожие услуги ────────────────────────────────────── */
.svc-related {
    padding: 32px 0 60px;
}


/* ── Accordion List ────────────────────────────────────── */
.acc-list-win {
    border: 0.5px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 2px 16px rgba(0,0,0,0.06);
}

.acc-list-win__titlebar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 16px;
    background: var(--bg-secondary);
    border-bottom: 0.5px solid var(--border);
}

.acc-list-win__wintitle {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
}

.acc-list__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.acc-list__col {
    border-right: 0.5px solid var(--border);
}

.acc-list__col:last-child { border-right: none; }

/* Each accordion row */
.acc-item {
    border-bottom: 0.5px solid var(--border);
}

.acc-item:last-child { border-bottom: none; }

.acc-item__trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 20px;
    background: var(--card-bg);
    border: none;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-primary);
    cursor: pointer;
    text-align: left;
    font-family: var(--font-main);
    transition: background 0.12s;
}

.acc-item__trigger:hover { background: var(--bg-secondary); }

.acc-item.is-open .acc-item__trigger { background: var(--bg-secondary); }

.acc-item__icon {
    font-size: 15px;
    color: var(--accent);
    flex-shrink: 0;
    transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.acc-item.is-open .acc-item__icon { transform: rotate(45deg); }

/* Expanded body */
.acc-item__body {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.28s ease, padding 0.2s ease;
    background: var(--bg-secondary);
}

.acc-item.is-open .acc-item__body {
    max-height: 600px;
    padding-bottom: 8px;
}

.acc-item__list {
    list-style: none;
    padding: 8px 20px 4px;
    margin: 0;
}

.acc-item__list li {
    font-size: 13px;
    color: var(--text-secondary);
    padding: 5px 0;
    border-bottom: 0.5px solid var(--border);
    display: flex;
    align-items: center;
    gap: 8px;
    line-height: 1.45;
}

.acc-item__list li:last-child { border-bottom: none; }

.acc-item__list li::before {
    content: '';
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--accent);
    flex-shrink: 0;
}

@media (max-width: 680px) {
    .acc-list__grid { grid-template-columns: 1fr; }
    .acc-list__col { border-right: none; }
}


/* ===========================
   ARCHIVE PAGES
   =========================== */
.archive-header { padding: 40px 0 28px; text-align: center; }
.archive-header__title { font-size: 30px; margin-bottom: 8px; }
.archive-header__desc { font-size: 15px; color: var(--text-secondary); }

.archive-grid { display: grid; gap: 12px; }
.archive-grid--services { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.archive-grid--blog     { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.archive-grid--inst     { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }

/* ===========================
   BREADCRUMBS
   =========================== */
.breadcrumbs {
    padding: 14px 0;
    font-size: 12px;
    color: var(--text-tertiary);
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.breadcrumbs a { color: var(--text-secondary); }
.breadcrumbs a:hover { color: var(--accent); }
.breadcrumbs span { color: var(--text-tertiary); }

/* ===========================
   PAGINATION
   =========================== */
.pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    padding: 36px 0;
}

.pagination a,
.pagination span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    font-size: 13px;
    border: 0.5px solid var(--border);
    color: var(--text-secondary);
    background: var(--card-bg);
    transition: all var(--transition);
}

.pagination a:hover { border-color: var(--accent); color: var(--accent); }
.pagination .current { background: var(--accent); color: #fff; border-color: var(--accent); }

/* ===========================
   FOOTER
   =========================== */
.site-footer {
    background: var(--bg-secondary);
    border-top: 0.5px solid var(--border);
    padding: 44px 0 22px;
    margin-top: 60px;
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 36px;
    margin-bottom: 32px;
}

.footer-logo { font-size: 17px; font-weight: 700; color: var(--text-primary); margin-bottom: 10px; }
.footer-logo span { color: var(--accent); }

.footer-desc {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.6;
    margin-bottom: 16px;
}

.footer-socials { display: flex; gap: 8px; }

.social-btn {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--tag-bg);
    border: 0.5px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--text-secondary);
    font-size: 16px;
    transition: all var(--transition);
    text-decoration: none;
}

.social-btn:hover { color: var(--accent); border-color: var(--accent); }

.footer-col__title {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: .6px;
    margin-bottom: 12px;
}

.footer-col a {
    display: block;
    font-size: 13px;
    color: var(--text-secondary);
    margin-bottom: 8px;
    transition: color var(--transition);
    text-decoration: none;
}

.footer-col a:hover { color: var(--accent); }

.footer-bottom {
    padding-top: 18px;
    border-top: 0.5px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.footer-copy { font-size: 12px; color: var(--text-tertiary); }

/* ===========================
   UTILITY CLASSES
   =========================== */
.text-center { text-align: center; }
.text-accent  { color: var(--accent); }
.text-muted   { color: var(--text-secondary); }
.mb-0 { margin-bottom: 0; }
.mb-8 { margin-bottom: 8px; }
.mb-16 { margin-bottom: 16px; }
.mb-24 { margin-bottom: 24px; }
.mb-32 { margin-bottom: 32px; }
.mt-32 { margin-top: 32px; }
.py-48 { padding-top: 48px; padding-bottom: 48px; }

/* ===========================
   SPECIALTY SINGLE PAGE
   =========================== */
.spec-single { padding-bottom: 64px; }

/* Hero */
.spec-single__hero {
    position: relative;
    background: var(--bg-secondary);
    background-size: cover;
    background-position: center;
    padding: 48px 0 40px;
    overflow: hidden;
}
.spec-single__hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,.65), rgba(0,0,0,.4));
    z-index: 0;
}
/* Светлый текст (белый) — для тёмных/тёмных фонов */
.spec-single__hero--light .spec-single__title,
.spec-single__hero--light .spec-single__subtitle,
.spec-single__hero--light .spec-single__meta-item,
.spec-single__hero--light .spec-single__meta-sep {
    color: #fff;
}
.spec-single__hero--light .spec-single__hero-meta { opacity: .85; }
.spec-single__hero--light .spec-single__icon-wrap {
    background: rgba(255,255,255,.15) !important;
    border-color: rgba(255,255,255,.3) !important;
}
.spec-single__hero--light .spec-single__icon-wrap i { color: #fff !important; }
.spec-single__hero--light .spec-single__badge {
    background: rgba(255,255,255,.2);
    color: #fff;
    border-color: rgba(255,255,255,.3);
}

/* Тёмный текст — для светлых фонов */
.spec-single__hero--dark .spec-single__title  { color: var(--text-primary); }
.spec-single__hero--dark .spec-single__subtitle,
.spec-single__hero--dark .spec-single__meta-item,
.spec-single__hero--dark .spec-single__meta-sep { color: var(--text-secondary); }

.spec-single__hero-gradient {
    position: absolute; inset: 0;
    background: linear-gradient(145deg, var(--spec-color, #3b82f6) 0%, #0f1629 100%);
    opacity: .18;
    z-index: 0;
}
.spec-single__blob--1,
.spec-single__blob--2 {
    position: absolute;
    border-radius: 50%;
    background: var(--spec-color, #3b82f6);
    filter: blur(80px);
    opacity: .25;
}
.spec-single__blob--1 { width: 320px; height: 320px; top: -80px; right: -60px; }
.spec-single__blob--2 { width: 240px; height: 240px; bottom: -60px; left: 10%; }
.spec-single__hero-inner {
    position: relative; z-index: 1;
    display: flex;
    align-items: center;
    gap: 28px;
    flex-wrap: wrap;
}
.spec-single__icon-wrap {
    flex-shrink: 0;
    width: 80px; height: 80px;
    border-radius: 20px;
    border: 1px solid;
    display: flex; align-items: center; justify-content: center;
    font-size: 38px;
}
.spec-single__hero-content { flex: 1; min-width: 200px; }
.spec-single__badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 12px; font-weight: 600;
    margin-bottom: 8px;
    background: rgba(255,255,255,.15);
    color: #fff;
    border: 1px solid rgba(255,255,255,.2);
}
.spec-single__badge--popular { background: rgba(255,107,107,.2); color: #ff6b6b; border-color: rgba(255,107,107,.3); }
.spec-single__badge--new     { background: rgba(52,199,89,.2);  color: #34c759; border-color: rgba(52,199,89,.3); }
.spec-single__badge--demand  { background: rgba(255,159,10,.2); color: #ff9f0a; border-color: rgba(255,159,10,.3); }
.spec-single__title {
    font-size: 32px; font-weight: 700;
    color: var(--text-primary);
    margin: 0 0 8px;
}
.spec-single__subtitle {
    font-size: 15px; color: var(--text-secondary);
    margin: 0 0 12px; line-height: 1.6;
}
.spec-single__hero-meta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: 13px; color: var(--text-tertiary); }
.spec-single__meta-item { display: flex; align-items: center; gap: 5px; }
.spec-single__meta-sep { color: var(--text-tertiary); }
.spec-single__hero-cta { flex-shrink: 0; }

/* Layout */
.spec-single__layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 40px;
    padding-top: 40px;
}
.spec-section-title {
    font-size: 20px; font-weight: 700;
    display: flex; align-items: center; gap: 10px;
    margin: 0 0 20px;
    color: var(--text-primary);
}

/* Subjects */
.spec-single__subjects { margin-bottom: 36px; }
.spec-subjects__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.spec-subject-tag {
    display: flex; align-items: center; gap: 7px;
    padding: 7px 14px;
    border-radius: 8px;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    font-size: 13px;
    color: var(--text-primary);
    transition: border-color .2s;
}
.spec-subject-tag:hover { border-color: var(--accent); }
.spec-subject-tag i { font-size: 16px; }

/* Content */
.spec-single__content,
.spec-single__seo-text {
    margin-bottom: 36px;
    font-size: 15px;
    line-height: 1.75;
    color: var(--text-secondary);
}

/* Services */
.spec-single__services { padding: 40px 0 8px; }

/* ── Stats bar ──────────────────────────────────────────── */
.spec-stats-bar {
    background: var(--bg-secondary);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 0;
}
.spec-stats-bar__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}
.spec-stat-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 24px 16px;
    border-right: 1px solid var(--border);
    text-align: center;
    position: relative;
}
.spec-stat-cell:last-child { border-right: none; }
.spec-stat-cell > i {
    font-size: 22px;
    color: var(--spec-color, #3b82f6);
    margin-bottom: 4px;
}
.spec-stat-cell__value {
    font-size: 26px;
    font-weight: 800;
    color: var(--text-primary);
    line-height: 1;
}
.spec-stat-cell__label {
    font-size: 12px;
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* ── Work types ─────────────────────────────────────────── */
.spec-section { margin-bottom: 48px; }
.spec-work-types__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}
.spec-work-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: border-color .2s, transform .2s, box-shadow .2s;
}
.spec-work-card:hover {
    border-color: var(--spec-color, #3b82f6);
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.spec-work-card--popular {
    border-color: var(--spec-color, #3b82f6);
    box-shadow: 0 0 0 1px var(--spec-color, #3b82f6);
}
.spec-work-card__badge {
    position: absolute;
    top: 12px; right: 12px;
    background: var(--spec-color, #3b82f6);
    color: #fff;
    font-size: 11px; font-weight: 700;
    padding: 3px 9px;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.spec-work-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 72px;
    font-size: 28px;
    flex-shrink: 0;
}
.spec-work-card__body {
    padding: 0 18px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.spec-work-card__name {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
}
.spec-work-card__desc {
    font-size: 12px;
    color: var(--text-tertiary);
    line-height: 1.4;
}
.spec-work-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 10px;
    gap: 8px;
}
.spec-work-card__deadline {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--text-tertiary);
    background: var(--bg-tertiary, var(--bg-primary));
    padding: 3px 8px;
    border-radius: 6px;
}
.spec-work-card__price {
    font-size: 14px;
    font-weight: 700;
    color: var(--spec-color, #3b82f6);
    white-space: nowrap;
}
.spec-work-card__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 11px 18px;
    background: var(--spec-color, #3b82f6);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: opacity .2s;
    border-top: 1px solid transparent;
    margin-top: auto;
}
.spec-work-card__cta:hover { opacity: .88; }

/* ── Process steps ──────────────────────────────────────── */
.spec-process__steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0;
}
.spec-process__step { display: flex; flex-direction: column; }
.spec-process__step-head {
    display: flex;
    align-items: center;
    margin-bottom: 16px;
}
.spec-process__num {
    width: 48px; height: 48px;
    border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px;
    color: #fff;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(0,0,0,.15);
}
.spec-process__connector {
    flex: 1;
    height: 2px;
    margin: 0 8px;
    border-radius: 2px;
    opacity: .4;
}
.spec-process__step-body { padding-right: 16px; }
.spec-process__step-num-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-tertiary);
    margin-bottom: 4px;
    font-weight: 600;
}
.spec-process__step-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 4px;
}
.spec-process__step-desc {
    font-size: 13px;
    color: var(--text-tertiary);
    line-height: 1.5;
}

/* ── Guarantees ─────────────────────────────────────────── */
.spec-guarantees__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
}
.spec-guarantee-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 20px;
    transition: border-color .2s, box-shadow .2s;
}
.spec-guarantee-card:hover {
    border-color: var(--spec-color, #3b82f6);
    box-shadow: 0 4px 16px rgba(0,0,0,.08);
}
.spec-guarantee-card__icon {
    width: 44px; height: 44px;
    flex-shrink: 0;
    border-radius: 12px;
    border: 1px solid;
    display: flex; align-items: center; justify-content: center;
    font-size: 20px;
}
.spec-guarantee-card__title {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 4px;
}
.spec-guarantee-card__desc {
    font-size: 13px;
    color: var(--text-tertiary);
    line-height: 1.5;
}

/* ── FAQ ────────────────────────────────────────────────── */
.spec-faq__list { display: flex; flex-direction: column; gap: 8px; }
.spec-faq-item {
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--bg-secondary);
    overflow: hidden;
    transition: border-color .2s;
}
.spec-faq-item.is-open { border-color: var(--spec-color, #3b82f6); }
.spec-faq-item__trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 20px;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
}
.spec-faq-item__trigger:hover { color: var(--spec-color, #3b82f6); }
.spec-faq-item__icon {
    flex-shrink: 0;
    font-size: 18px;
    color: var(--spec-color, #3b82f6);
    transition: transform .25s;
}
.spec-faq-item.is-open .spec-faq-item__icon { transform: rotate(45deg); }
.spec-faq-item__body {
    display: none;
    padding: 0 20px 18px;
}
.spec-faq-item.is-open .spec-faq-item__body { display: block; }
.spec-faq-item__answer {
    font-size: 14px;
    line-height: 1.7;
    color: var(--text-secondary);
    border-top: 1px solid var(--border);
    padding-top: 14px;
}

/* ── Sidebar stats ──────────────────────────────────────── */
.spec-sidebar-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: var(--border);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-top: 16px;
}
.spec-sidebar-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 20px 12px;
    background: var(--bg-secondary);
    text-align: center;
}
.spec-sidebar-stat__value {
    font-size: 22px;
    font-weight: 800;
    color: var(--spec-color, #3b82f6);
}
.spec-sidebar-stat__label {
    font-size: 11px;
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* ── Services section wrapper ───────────────────────────── */
.spec-services-section {
    background: var(--bg-secondary);
    border-top: 1px solid var(--border);
    padding: 48px 0 56px;
    margin-top: 40px;
}

/* Sidebar CTA */
.spec-sidebar-cta {
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 28px 24px;
    position: sticky;
    top: 100px;
    text-align: center;
}
.spec-sidebar-cta__icon {
    width: 64px; height: 64px;
    border-radius: 16px;
    display: flex; align-items: center; justify-content: center;
    font-size: 30px;
    margin: 0 auto 16px;
}
.spec-sidebar-cta__title {
    font-size: 18px; font-weight: 700;
    margin: 0 0 8px; color: var(--text-primary);
}
.spec-sidebar-cta__desc {
    font-size: 13px; color: var(--text-tertiary);
    margin: 0 0 18px; line-height: 1.5;
}
.spec-sidebar-cta__list {
    list-style: none;
    padding: 0; margin: 16px 0 0;
    text-align: left;
    display: flex; flex-direction: column; gap: 8px;
}
.spec-sidebar-cta__list li {
    font-size: 13px;
    color: var(--text-secondary);
    display: flex; align-items: center; gap: 7px;
}
.spec-sidebar-cta__list li i { color: #34c759; font-size: 15px; }
.btn--full { width: 100%; justify-content: center; }

@media (max-width: 1024px) {
    .spec-stats-bar__grid { grid-template-columns: repeat(2, 1fr); }
    .spec-stat-cell:nth-child(2) { border-right: none; }
    .spec-stat-cell:nth-child(3) { border-top: 1px solid var(--border); }
    .spec-stat-cell:nth-child(4) { border-top: 1px solid var(--border); border-right: none; }
}
@media (max-width: 960px) {
    .spec-single__layout { grid-template-columns: 1fr; }
    .spec-single__sidebar { order: -1; }
    .spec-sidebar-cta { position: static; }
    .spec-process__steps { grid-template-columns: 1fr 1fr; gap: 24px; }
    .spec-process__connector { display: none; }
}
@media (max-width: 600px) {
    .spec-single__title { font-size: 24px; }
    .spec-single__icon-wrap { width: 60px; height: 60px; font-size: 28px; border-radius: 14px; }
    .spec-stats-bar__grid { grid-template-columns: 1fr 1fr; }
    .spec-work-types__grid { grid-template-columns: 1fr 1fr; }
    .spec-process__steps { grid-template-columns: 1fr; }
    .spec-guarantees__grid { grid-template-columns: 1fr; }
}

/* ===========================
   SPECIALTY ARCHIVE PAGE (NEW)
   =========================== */

/* ── Корень ─────────────────────────────────────────────── */
/* Токены бренда для страницы специальностей */
.spa {
    --spa-blue:     #0071E3;
    --spa-blue-dk:  #005bb5;
    --spa-green:    #2FBF53;
    --spa-green-dk: #28a847;
    --spa-blue-rgb: 0,113,227;
    --spa-green-rgb:47,191,83;
    background: #f2f8ff; min-height: 80vh;
}
[data-theme="dark"] .spa { background: #1c1c1e; }

/* ── HERO ────────────────────────────────────────────────── */
.spa__hero {
    position: relative;
    padding: 64px 0 52px;
    text-align: center;
    overflow: hidden;
    background: linear-gradient(160deg,#eaf4ff 0%,#edfaf2 55%,#eaf4ff 100%);
    border-bottom: 1px solid rgba(0,113,227,.10);
}
[data-theme="dark"] .spa__hero {
    background: linear-gradient(160deg,#0c1e36 0%,#0c2418 50%,#0c1e36 100%);
    border-color: rgba(255,255,255,.06);
}
.spa__hero-blob {
    position: absolute; border-radius: 50%;
    filter: blur(72px); opacity: .38; pointer-events: none;
}
.spa__hero-blob--1 { width:320px;height:320px;background:#8ec8f8;top:-100px;right:5%; }
.spa__hero-blob--2 { width:240px;height:240px;background:#9deebb;bottom:-70px;left:4%; }
.spa__hero-blob--3 { width:180px;height:180px;background:#b8e0ff;top:35%;right:28%; }

.spa__hero-inner { position: relative; z-index: 1; max-width: 680px; margin: 0 auto; }

.spa__hero-label {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(47,191,83,.12); color: #28a847;
    border: 1px solid rgba(47,191,83,.28);
    font-size: 13px; font-weight: 700;
    padding: 5px 14px; border-radius: 20px; margin-bottom: 18px;
}
[data-theme="dark"] .spa__hero-label { background: rgba(47,191,83,.18); color: #2FBF53; }

.spa__hero-title {
    font-size: clamp(32px,5vw,52px);
    font-weight: 800; line-height: 1.15;
    color: #0d1b3e; margin: 0 0 14px;
}
[data-theme="dark"] .spa__hero-title { color: #f2f2f7; }
.spa__hero-title-accent {
    background: linear-gradient(90deg, #0071E3, #2FBF53);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
}

.spa__hero-sub {
    font-size: clamp(14px,2vw,17px);
    color: #6b7280; line-height: 1.65;
    margin: 0 0 32px;
}
[data-theme="dark"] .spa__hero-sub { color: #98989e; }

/* Поиск */
.spa__search-wrap { margin-bottom: 28px; }
.spa__search {
    position: relative;
    display: flex; align-items: center;
    background: #fff;
    border: 2px solid rgba(0,113,227,.18);
    border-radius: 14px;
    box-shadow: 0 4px 20px rgba(0,113,227,.09);
    transition: border-color .2s, box-shadow .2s;
    overflow: hidden;
}
[data-theme="dark"] .spa__search {
    background: #2c2c2e;
    border-color: rgba(255,255,255,.1);
}
.spa__search:focus-within {
    border-color: #0071E3;
    box-shadow: 0 4px 24px rgba(0,113,227,.22);
}
.spa__search-icon {
    position: absolute; left: 18px;
    font-size: 20px; color: #0071E3; pointer-events: none;
}
.spa__search-input {
    width: 100%; padding: 16px 48px 16px 50px;
    font-size: 16px; background: none; border: none; outline: none;
    color: #0d1b3e;
}
[data-theme="dark"] .spa__search-input { color: #f2f2f7; }
.spa__search-input::placeholder { color: #9ca3af; }
.spa__search-clear {
    position: absolute; right: 14px;
    width: 30px; height: 30px; border-radius: 8px;
    background: #f3f4f6; border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-size: 15px; color: #6b7280;
    transition: background .2s;
}
[data-theme="dark"] .spa__search-clear { background: #3a3a3c; color: #ebebf5; }
.spa__search-clear:hover { background: #dbeeff; color: #0071E3; }
[data-theme="dark"] .spa__search-clear:hover { background: #48484a; }
.spa__search-counter {
    margin-top: 8px; font-size: 13px; color: #9ca3af; text-align: right;
}
[data-theme="dark"] .spa__search-counter { color: #636366; }
.spa__search-counter strong { color: #0071E3; }

/* Мини-статистика hero */
.spa__hero-stats {
    display: flex; align-items: center;
    justify-content: center; flex-wrap: wrap;
    gap: 0;
    background: rgba(255,255,255,.80);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(0,113,227,.12);
    border-radius: 14px;
    overflow: hidden;
}
[data-theme="dark"] .spa__hero-stats {
    background: rgba(44,44,46,.80);
    border-color: rgba(255,255,255,.08);
}
.spa__hero-stat {
    display: flex; flex-direction: column; align-items: center;
    padding: 14px 24px; gap: 2px; flex: 1;
    min-width: 110px;
}
.spa__hero-stat-num {
    font-size: 20px; font-weight: 800; color: #0d1b3e; line-height: 1;
}
[data-theme="dark"] .spa__hero-stat-num { color: #f2f2f7; }
.spa__hero-stat-txt {
    font-size: 11px; color: #6b7280;
    text-transform: uppercase; letter-spacing: .05em;
    white-space: nowrap;
}
.spa__hero-stat-sep {
    width: 1px; height: 32px;
    background: rgba(0,113,227,.12); flex-shrink: 0;
}
[data-theme="dark"] .spa__hero-stat-sep { background: rgba(255,255,255,.08); }

/* ── ТЕЛО ────────────────────────────────────────────────── */
.spa__body { padding: 44px 0 56px; }

/* ── СЕТКА ───────────────────────────────────────────────── */
.spa__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

/* ── КАРТОЧКА ────────────────────────────────────────────── */
.spa-card {
    display: flex; flex-direction: column;
    background: #fff;
    border: 1px solid rgba(0,113,227,.10);
    border-radius: 20px;
    text-decoration: none;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,113,227,.06);
    transition: transform .28s ease, box-shadow .28s ease;
    position: relative;
}
[data-theme="dark"] .spa-card { background: #2c2c2e; border-color: rgba(255,255,255,.07); }
.spa-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 48px rgba(0,113,227,.14);
}

/* ── Верхняя зона ────────────────────────────────────────── */
.spa-card__top {
    position: relative;
    height: 185px;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden; flex-shrink: 0;
}

/* Декоративные блики */
.spa-card__blob-a,
.spa-card__blob-b {
    position: absolute; border-radius: 50%;
    background: rgba(255,255,255,.15); pointer-events: none;
}
.spa-card__blob-a { width: 150px; height: 150px; top: -40px; right: -30px; }
.spa-card__blob-b { width: 90px;  height: 90px;  bottom: -28px; left: -18px; }

/* Тёмный оверлей снизу — для читаемости названия */
.spa-card__top-overlay {
    position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(to bottom, transparent 35%, rgba(0,0,0,.22) 65%, rgba(0,0,0,.62) 100%);
    pointer-events: none;
}

/* Иконка — крупная, белая, без рамки и фона */
.spa-card__icon-bare {
    position: relative; z-index: 2;
    font-size: 74px;
    color: rgba(255,255,255,.95);
    filter: drop-shadow(0 4px 16px rgba(0,0,0,.22));
    margin-bottom: 38px; /* место для названия снизу */
    transition: transform .35s cubic-bezier(.34,1.56,.64,1);
}
.spa-card:hover .spa-card__icon-bare { transform: scale(1.12) translateY(-6px); }

/* Обложка-фото */
.spa-card__cover-img {
    position: absolute; inset: 0; z-index: 0;
    width: 100%; height: 100%;
    object-fit: cover; object-position: center;
    transition: transform .35s ease;
}
.spa-card:hover .spa-card__cover-img { transform: scale(1.05); }

/* Бейдж */
.spa-card__badge {
    position: absolute; top: 12px; right: 12px; z-index: 3;
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 10px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .04em;
    padding: 4px 10px; border-radius: 20px;
    backdrop-filter: blur(6px); white-space: nowrap;
}
.spa-card__badge--popular { background: rgba(220,38,38,.85); color: #fff; }
.spa-card__badge--new     { background: rgba(22,163,74,.85);  color: #fff; }
.spa-card__badge--demand  { background: rgba(217,119,6,.85);  color: #fff; }

/* Название поверх градиента */
.spa-card__top-name {
    position: absolute; bottom: 0; left: 0; right: 0; z-index: 3;
    padding: 10px 14px 13px;
    font-size: 15px; font-weight: 800; color: #fff;
    line-height: 1.25; text-shadow: 0 1px 8px rgba(0,0,0,.35);
    display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
}

/* ── Тело ────────────────────────────────────────────────── */
.spa-card__body { padding: 14px 16px 10px; flex: 1; }

.spa-card__sub {
    font-size: 12px; color: #6b7280; line-height: 1.55;
    margin-bottom: 10px;
    display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
}
.spa-card__chips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.spa-card__chip {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 11px; font-weight: 600;
    padding: 3px 9px; border-radius: 8px;
}
.spa-card__chip i { font-size: 12px; }

/* Статистика */
.spa-card__stats {
    display: flex; gap: 12px; align-items: center;
    justify-content: center;
    padding-top: 10px;
    border-top: 1px solid rgba(0,113,227,.08);
    margin-top: 2px;
}
[data-theme="dark"] .spa-card__stats { border-color: rgba(255,255,255,.07); }
.spa-card__stat {
    display: flex; align-items: center; gap: 4px;
    font-size: 12px; font-weight: 700; color: #374151;
}
[data-theme="dark"] .spa-card__stat { color: #ebebf5; }
.spa-card__stat i { font-size: 14px; }

/* ── Кнопка ──────────────────────────────────────────────── */
.spa-card__footer { padding: 10px 16px 14px; }
.spa-card__cta {
    display: flex; align-items: center; justify-content: center; gap: 7px;
    width: 100%; padding: 11px 18px; border-radius: 12px;
    font-size: 14px; font-weight: 700; color: #fff;
    transition: opacity .2s, transform .2s, box-shadow .2s;
    letter-spacing: .01em;
}
.spa-card:hover .spa-card__cta { opacity: .9; transform: translateY(-1px); }

/* Пустое состояние */
.spa__empty-msg {
    text-align: center; padding: 60px 20px;
    color: #6b7280;
    display: flex; flex-direction: column;
    align-items: center; gap: 12px;
}
.spa__empty-msg i { font-size: 52px; opacity: .35; }
.spa__empty-msg p { font-size: 16px; margin: 0; }

/* ── Общие элементы доп.блоков ───────────────────────────── */
.swa-section-head {
    text-align: center;
    margin-bottom: 40px;
}
.swa-section-title {
    font-size: clamp(24px, 3.5vw, 34px);
    font-weight: 800; color: #0d1b3e;
    margin: 0 0 10px; line-height: 1.2;
}
[data-theme="dark"] .swa-section-title { color: #f2f2f7; }
.swa-section-sub {
    font-size: 16px; color: #6b7280;
    margin: 0; line-height: 1.6;
}
[data-theme="dark"] .swa-section-sub { color: #98989e; }

/* ── Блок «Почему мы» ────────────────────────────────────── */
.swa-why {
    background: #fff;
    padding: 64px 0;
    border-top: 1px solid rgba(0,113,227,.08);
    border-bottom: 1px solid rgba(0,113,227,.08);
}
[data-theme="dark"] .swa-why {
    background: #2c2c2e;
    border-color: rgba(255,255,255,.07);
}
.swa-why__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 20px;
}
.swa-why-card {
    position: relative;
    background: #f8fbff;
    border: 1px solid rgba(0,113,227,.10);
    border-radius: 16px;
    padding: 28px 22px;
    transition: transform .25s, box-shadow .25s, border-color .25s;
}
[data-theme="dark"] .swa-why-card {
    background: #3a3a3c;
    border-color: rgba(255,255,255,.08);
}
.swa-why-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,113,227,.12);
    border-color: #0071E3;
}
.swa-why-card__icon {
    width: 52px; height: 52px;
    border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    font-size: 24px; margin-bottom: 16px;
    transition: transform .3s;
}
.swa-why-card:hover .swa-why-card__icon { transform: scale(1.1); }
.swa-why-card__title {
    font-size: 16px; font-weight: 800;
    color: #0d1b3e; margin-bottom: 8px; line-height: 1.3;
}
[data-theme="dark"] .swa-why-card__title { color: #f2f2f7; }
.swa-why-card__desc {
    font-size: 14px; color: #6b7280;
    line-height: 1.6;
}
[data-theme="dark"] .swa-why-card__desc { color: #98989e; }
.swa-why-card__check {
    position: absolute; top: 16px; right: 16px;
    font-size: 20px; color: #2FBF53;
}

/* ── Блок «Как работает» ─────────────────────────────────── */
.swa-how {
    background: #f2f8ff;
    padding: 64px 0;
}
[data-theme="dark"] .swa-how { background: #1c1c1e; }
.swa-how__steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0;
}
.swa-how-step { display: flex; flex-direction: column; }
.swa-how-step__head {
    display: flex; align-items: center; margin-bottom: 18px;
}
.swa-how-step__num {
    width: 52px; height: 52px; flex-shrink: 0;
    border-radius: 14px;
    background: linear-gradient(135deg, #0071E3, #2FBF53);
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; color: #fff;
    box-shadow: 0 6px 16px rgba(0,113,227,.28);
}
.swa-how-step__line {
    flex: 1; height: 2px; margin: 0 10px;
    background: linear-gradient(90deg, rgba(0,113,227,.4), rgba(47,191,83,.2));
    border-radius: 2px;
}
.swa-how-step__num-label {
    font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .06em;
    color: #0071E3; margin-bottom: 6px;
}
.swa-how-step__title {
    font-size: 16px; font-weight: 800;
    color: #0d1b3e; margin-bottom: 6px; line-height: 1.3;
    padding-right: 16px;
}
[data-theme="dark"] .swa-how-step__title { color: #f2f2f7; }
.swa-how-step__desc {
    font-size: 13px; color: #6b7280;
    line-height: 1.55; padding-right: 16px;
}
[data-theme="dark"] .swa-how-step__desc { color: #98989e; }

/* ── FAQ ─────────────────────────────────────────────────── */
.swa-faq {
    background: #fff;
    padding: 64px 0;
    border-top: 1px solid rgba(0,113,227,.08);
}
[data-theme="dark"] .swa-faq {
    background: #2c2c2e;
    border-color: rgba(255,255,255,.07);
}
.swa-faq__list {
    max-width: 780px; margin: 0 auto;
    display: flex; flex-direction: column; gap: 10px;
}
.swa-faq-item {
    background: #f8fbff;
    border: 1px solid rgba(0,113,227,.10);
    border-radius: 14px; overflow: hidden;
    transition: border-color .2s, box-shadow .2s;
}
[data-theme="dark"] .swa-faq-item {
    background: #3a3a3c;
    border-color: rgba(255,255,255,.08);
}
.swa-faq-item.is-open {
    border-color: #0071E3;
    box-shadow: 0 4px 20px rgba(0,113,227,.10);
}
.swa-faq-item__trigger {
    width: 100%; display: flex; align-items: center;
    justify-content: space-between; gap: 12px;
    padding: 18px 22px; background: none; border: none;
    cursor: pointer; text-align: left;
    font-size: 15px; font-weight: 700; color: #0d1b3e;
    transition: color .2s;
}
[data-theme="dark"] .swa-faq-item__trigger { color: #f2f2f7; }
.swa-faq-item__trigger:hover { color: #0071E3; }
.swa-faq-item__icon {
    width: 32px; height: 32px; flex-shrink: 0;
    background: rgba(0,113,227,.08); border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    font-size: 16px; color: #0071E3;
    transition: transform .25s, background .2s;
}
.swa-faq-item.is-open .swa-faq-item__icon {
    transform: rotate(45deg);
    background: #0071E3; color: #fff;
}
.swa-faq-item__body { display: none; padding: 0 22px 20px; }
.swa-faq-item.is-open .swa-faq-item__body { display: block; }
.swa-faq-item__body p {
    font-size: 14px; color: #6b7280;
    line-height: 1.75; margin: 0;
    border-top: 1px solid rgba(0,113,227,.08);
    padding-top: 16px;
}
[data-theme="dark"] .swa-faq-item__body p {
    color: #98989e;
    border-color: rgba(255,255,255,.07);
}

/* ── SEO-текст ───────────────────────────────────────────── */
.swa-seo-text {
    background: #f2f8ff;
    padding: 56px 0;
    border-top: 1px solid rgba(0,113,227,.08);
}
[data-theme="dark"] .swa-seo-text {
    background: #1c1c1e;
    border-color: rgba(255,255,255,.07);
}
.swa-seo-text__inner {
    max-width: 820px; margin: 0 auto;
    font-size: 15px; line-height: 1.8;
    color: #374151;
}
[data-theme="dark"] .swa-seo-text__inner { color: #ebebf5; }
.swa-seo-text__inner h2 { font-size: 22px; font-weight: 800; color: #0d1b3e; margin: 28px 0 12px; }
.swa-seo-text__inner h3 { font-size: 18px; font-weight: 700; color: #0d1b3e; margin: 20px 0 8px; }
[data-theme="dark"] .swa-seo-text__inner h2,
[data-theme="dark"] .swa-seo-text__inner h3 { color: #f2f2f7; }
.swa-seo-text__inner p  { margin: 0 0 16px; }
.swa-seo-text__inner ul,
.swa-seo-text__inner ol { padding-left: 24px; margin: 0 0 16px; }
.swa-seo-text__inner li { margin-bottom: 6px; }
.swa-seo-text__inner a  { color: #0071E3; text-decoration: underline; }

/* Адаптив новых блоков */
@media (max-width: 860px) {
    .swa-why { padding: 44px 0; }
    .swa-how { padding: 44px 0; }
    .swa-faq  { padding: 44px 0; }
    .swa-seo-text { padding: 40px 0; }
    .swa-how__steps { grid-template-columns: 1fr 1fr; gap: 28px; }
    .swa-how-step__line { display: none; }
}
@media (max-width: 560px) {
    .swa-section-title { font-size: 22px; }
    .swa-why__grid { grid-template-columns: 1fr; }
    .swa-how__steps { grid-template-columns: 1fr; }
    .swa-faq-item__trigger { font-size: 14px; padding: 14px 16px; }
    .swa-faq-item__body { padding: 0 16px 16px; }
}

/* ── Блок «Типы работ» (архив вузов) ────────────────────── */
.iwa-works {
    background: #fff;
    padding: 64px 0;
    border-top: 1px solid rgba(0,113,227,.08);
    border-bottom: 1px solid rgba(0,113,227,.08);
}
[data-theme="dark"] .iwa-works { background: #2c2c2e; border-color: rgba(255,255,255,.07); }
.iwa-works__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
}
.iwa-work-card {
    position: relative; display: flex; flex-direction: column;
    background: #f2f8ff; border: 1px solid rgba(0,113,227,.10);
    border-radius: 16px; overflow: hidden;
    transition: transform .25s, box-shadow .25s, border-color .25s;
}
[data-theme="dark"] .iwa-work-card { background: #3a3a3c; border-color: rgba(255,255,255,.08); }
.iwa-work-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,113,227,.13); border-color: #0071E3; }
.iwa-work-card--popular { border-color: #0071E3; box-shadow: 0 0 0 1px #0071E3; }
.iwa-work-card__badge {
    position: absolute; top: 10px; right: 10px;
    background: #0071E3; color: #fff;
    font-size: 10px; font-weight: 700;
    padding: 3px 9px; border-radius: 20px;
    text-transform: uppercase; letter-spacing: .04em;
}
.iwa-work-card__icon {
    height: 72px; display: flex; align-items: center; justify-content: center;
    font-size: 32px; color: #0071E3; background: rgba(0,113,227,.06);
    transition: transform .3s;
}
.iwa-work-card:hover .iwa-work-card__icon { transform: scale(1.12); }
[data-theme="dark"] .iwa-work-card__icon { background: rgba(0,113,227,.12); }
.iwa-work-card__name { font-size: 15px; font-weight: 800; color: #0d1b3e; padding: 12px 16px 4px; line-height: 1.25; }
[data-theme="dark"] .iwa-work-card__name { color: #f2f2f7; }
.iwa-work-card__desc { font-size: 12px; color: #6b7280; line-height: 1.5; padding: 0 16px 8px; flex: 1; }
[data-theme="dark"] .iwa-work-card__desc { color: #98989e; }
.iwa-work-card__meta {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 8px 16px 10px; border-top: 1px solid rgba(0,113,227,.08); margin-top: auto;
}
[data-theme="dark"] .iwa-work-card__meta { border-color: rgba(255,255,255,.07); }
.iwa-work-card__deadline { display: flex; align-items: center; gap: 4px; font-size: 12px; color: #6b7280; }
.iwa-work-card__deadline i { font-size: 13px; color: #0071E3; }
.iwa-work-card__price { font-size: 13px; font-weight: 800; color: #2FBF53; white-space: nowrap; }
.iwa-work-card__cta {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    padding: 11px; font-size: 13px; font-weight: 700;
    color: #fff; text-decoration: none;
    background: linear-gradient(90deg,#0071E3,#2FBF53);
    transition: opacity .2s;
}
.iwa-work-card__cta:hover { opacity: .88; }

/* ── Блок «Работаем по всей России» ─────────────────────── */
.iwa-russia {
    position: relative; overflow: hidden;
    background: linear-gradient(135deg,#0d1b3e 0%,#0a2a4a 50%,#0d2e1a 100%);
    padding: 64px 0;
}
[data-theme="dark"] .iwa-russia { background: linear-gradient(135deg,#0c1e36 0%,#0c2418 100%); }
.iwa-russia__blob-1,.iwa-russia__blob-2 {
    position: absolute; border-radius: 50%; pointer-events: none; filter: blur(80px);
}
.iwa-russia__blob-1 { width:350px;height:350px;background:rgba(0,113,227,.25);top:-100px;right:-60px; }
.iwa-russia__blob-2 { width:250px;height:250px;background:rgba(47,191,83,.18);bottom:-80px;left:-40px; }
.iwa-russia__inner {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 40px;
}
.iwa-russia__map-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 52px; height: 52px; border-radius: 14px;
    background: rgba(0,113,227,.25); font-size: 26px; color: #60aeff; margin-bottom: 18px;
}
.iwa-russia__title { font-size: clamp(22px,3.5vw,32px); font-weight: 800; color: #fff; margin: 0 0 10px; line-height: 1.2; }
.iwa-russia__sub { font-size: 15px; color: rgba(255,255,255,.72); margin: 0 0 24px; line-height: 1.6; }
.iwa-russia__cities { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.iwa-russia__city {
    display: inline-flex; align-items: center; gap: 5px;
    background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.15);
    color: rgba(255,255,255,.88); font-size: 13px; font-weight: 500;
    padding: 5px 12px; border-radius: 20px; backdrop-filter: blur(4px);
    transition: background .2s;
}
.iwa-russia__city i { font-size: 13px; color: #2FBF53; }
.iwa-russia__city:hover { background: rgba(255,255,255,.16); }
.iwa-russia__city--more { color: rgba(255,255,255,.4); border-color: rgba(255,255,255,.08); font-style: italic; }
.iwa-russia__btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: linear-gradient(90deg,#0071E3,#2FBF53); color: #fff;
    font-size: 15px; font-weight: 800; padding: 14px 28px; border-radius: 12px;
    text-decoration: none; box-shadow: 0 6px 20px rgba(0,113,227,.35);
    transition: transform .2s, box-shadow .2s;
}
.iwa-russia__btn:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0,113,227,.45); }
.iwa-russia__globe { font-size: 140px; color: rgba(255,255,255,.06); line-height: 1; user-select: none; }

/* Адаптив блоков вузов */
@media (max-width: 860px) {
    .iwa-works { padding: 44px 0; }
    .iwa-russia { padding: 44px 0; }
    .iwa-russia__inner { grid-template-columns: 1fr; }
    .iwa-russia__globe { display: none; }
    .iwa-works__grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 560px) {
    .iwa-works__grid { grid-template-columns: 1fr; }
    .iwa-russia__btn { width: 100%; justify-content: center; }
}

/* ── CTA-баннер ──────────────────────────────────────────── */
.spa__cta {
    position: relative;
    background: linear-gradient(135deg, #0071E3 0%, #2FBF53 100%);
    padding: 52px 0;
    overflow: hidden;
}
.spa__cta-blob-1,
.spa__cta-blob-2 {
    position: absolute; border-radius: 50%;
    background: rgba(255,255,255,.10);
    pointer-events: none;
}
.spa__cta-blob-1 { width:320px;height:320px;top:-120px;right:-60px; }
.spa__cta-blob-2 { width:200px;height:200px;bottom:-80px;left:-40px; }
.spa__cta-inner {
    position: relative; z-index: 1;
    display: flex; align-items: center; gap: 28px; flex-wrap: wrap;
}
.spa__cta-icon {
    width: 64px; height: 64px; flex-shrink: 0;
    background: rgba(255,255,255,.15); border-radius: 18px;
    display: flex; align-items: center; justify-content: center;
    font-size: 30px; color: #fff;
}
.spa__cta-text { flex: 1; min-width: 200px; }
.spa__cta-text h2 {
    font-size: clamp(20px,3vw,26px); font-weight: 800;
    color: #fff; margin: 0 0 6px; line-height: 1.2;
}
.spa__cta-text p {
    font-size: 14px; color: rgba(255,255,255,.8);
    margin: 0; line-height: 1.55;
}
.spa__cta-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: #fff; color: #0071E3;
    font-size: 15px; font-weight: 800;
    padding: 14px 28px; border-radius: 12px;
    text-decoration: none; white-space: nowrap; flex-shrink: 0;
    box-shadow: 0 4px 20px rgba(0,0,0,.18);
    transition: transform .2s, box-shadow .2s;
}
.spa__cta-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,0,0,.22); }

/* ── АДАПТИВ ─────────────────────────────────────────────── */

/* 3 колонки — большой планшет / небольшой ноутбук */
@media (max-width: 1200px) {
    .spa__grid { grid-template-columns: repeat(3, 1fr); }
}

/* 2 колонки — планшет */
@media (max-width: 860px) {
    .spa__grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
    .spa__hero { padding: 48px 0 40px; }
    .spa__hero-stat { padding: 12px 16px; min-width: 90px; }
    .spa__hero-stat-num { font-size: 17px; }
}

@media (max-width: 768px) {
    .spa__hero-stat-sep { display: none; }
    .spa__hero-stats { flex-wrap: wrap; }
    .spa__hero-stat { flex: 1 0 45%; padding: 10px 14px; }
    .spa__hero-stat-num { font-size: 18px; }
    .spa__hero-stat-txt { font-size: 10px; }
}

/* Мобильный: горизонтальные карточки */
@media (max-width: 560px) {
    .spa__hero { padding: 36px 0 32px; }

    /* Сетка — 1 колонка, горизонтальные карточки */
    .spa__grid { grid-template-columns: 1fr; gap: 10px; }

    /* Горизонтальная карточка через CSS Grid — без лишних обёрток */
    .spa-card {
        display: grid;
        grid-template-columns: 88px 1fr;
        grid-template-rows: auto auto;
        border-radius: 14px;
    }
    /* Верх — левая колонка, занимает обе строки */
    .spa-card__top {
        grid-column: 1; grid-row: 1 / 3;
        height: auto; min-height: 100px;
        border-radius: 0;
    }
    .spa-card__icon-bare { font-size: 44px; margin-bottom: 28px; }
    .spa-card__top-name { font-size: 12px; padding: 6px 10px 9px; }
    .spa-card__badge { top: 6px; right: 6px; font-size: 9px; padding: 2px 6px; }

    /* Тело — правая колонка, строка 1 */
    .spa-card__body {
        grid-column: 2; grid-row: 1;
        padding: 10px 12px 6px;
    }
    .spa-card__name { font-size: 13px; margin-bottom: 2px; }
    .spa-card__sub { font-size: 11px; -webkit-line-clamp: 1; margin-bottom: 5px; }
    .spa-card__chips { margin-bottom: 5px; }
    .spa-card__stats { padding-top: 5px; margin-top: 0; }

    /* Футер — правая колонка, строка 2 */
    .spa-card__footer {
        grid-column: 2; grid-row: 2;
        padding: 6px 12px 10px;
    }
    .spa-card__cta {
        padding: 8px 14px;
        font-size: 13px; border-radius: 10px;
    }

    .spa__cta { padding: 36px 0; }
    .spa__cta-inner { flex-direction: column; text-align: center; align-items: center; }
    .spa__cta-icon { display: none; }
    .spa__cta-btn { width: 100%; justify-content: center; }
}

/* Очень маленький экран */
@media (max-width: 360px) {
    .spa-card__top { width: 72px; }
    .spa-card__icon-bare { font-size: 34px; margin-bottom: 22px; }
    .spa-card__top-name { font-size: 11px; padding: 4px 8px 7px; }
    .spa__hero-stat { flex: 1 0 100%; border-bottom: 1px solid rgba(0,113,227,.08); }
    .spa__hero-stat:last-of-type { border-bottom: none; }
}

/* ===========================
   SPECIALTY ARCHIVE PAGE
   =========================== */
.spec-archive { background: #F0F4FF; min-height: 80vh; }
[data-theme="dark"] .spec-archive { background: #1c1c1e; }

/* Hero-шапка */
.spec-archive__hero {
    position: relative;
    padding: 56px 0 48px;
    text-align: center;
    overflow: hidden;
    background: linear-gradient(135deg, #eef3ff 0%, #f3e8ff 50%, #e8f5ff 100%);
    border-bottom: 1px solid rgba(74,127,255,.1);
}
[data-theme="dark"] .spec-archive__hero {
    background: linear-gradient(135deg, #1c2340 0%, #2a1a3e 50%, #0f1e30 100%);
    border-color: rgba(255,255,255,.07);
}
.spec-archive__hero-orb {
    position: absolute; border-radius: 50%;
    filter: blur(70px); opacity: .35; pointer-events: none;
}
.spec-archive__hero-orb--1 { width:280px;height:280px;background:#a5c8ff;top:-80px;right:8%; }
.spec-archive__hero-orb--2 { width:220px;height:220px;background:#d4aaff;bottom:-50px;left:5%; }
.spec-archive__hero-orb--3 { width:160px;height:160px;background:#b2f0c8;top:30%;left:40%; }

.spec-archive__title {
    position: relative;
    font-size: 40px; font-weight: 800;
    color: #0D1B3E; margin: 12px 0 10px;
    line-height: 1.2;
}
[data-theme="dark"] .spec-archive__title { color: #f2f2f7; }
.spec-archive__sub {
    position: relative;
    font-size: 16px; color: #6B7280;
    margin: 0 auto 32px; max-width: 560px; line-height: 1.6;
}
[data-theme="dark"] .spec-archive__sub { color: #98989e; }

/* Мини-статистика в шапке */
.spec-archive__hero-stats {
    position: relative;
    display: inline-flex; align-items: center; gap: 0;
    background: #fff;
    border: 1px solid rgba(74,127,255,.15);
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(74,127,255,.10);
    overflow: hidden;
}
[data-theme="dark"] .spec-archive__hero-stats {
    background: #2c2c2e;
    border-color: rgba(255,255,255,.1);
}
.spec-archive__hero-stat {
    display: flex; flex-direction: column; align-items: center;
    padding: 16px 28px; gap: 2px;
}
.spec-archive__hero-stat-val {
    font-size: 22px; font-weight: 800; color: #0D1B3E;
    line-height: 1;
}
[data-theme="dark"] .spec-archive__hero-stat-val { color: #f2f2f7; }
.spec-archive__hero-stat-lbl {
    font-size: 11px; color: #6B7280;
    text-transform: uppercase; letter-spacing: .05em;
}
.spec-archive__hero-stat-div {
    width: 1px; height: 40px;
    background: rgba(74,127,255,.12);
    flex-shrink: 0;
}
[data-theme="dark"] .spec-archive__hero-stat-div { background: rgba(255,255,255,.08); }

/* Тело архива */
.spec-archive__body { padding: 44px 0 56px; }

/* Сетка карточек */
.spec-archive__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 20px;
}

/* Карточка специальности */
.spec-arc-card {
    display: flex; flex-direction: column;
    background: #fff;
    border: 1px solid rgba(74,127,255,.12);
    border-radius: 18px;
    text-decoration: none;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(74,127,255,.07);
    transition: transform .25s, box-shadow .25s, border-color .25s;
}
[data-theme="dark"] .spec-arc-card {
    background: #2c2c2e;
    border-color: rgba(255,255,255,.08);
}
.spec-arc-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 36px rgba(74,127,255,.15);
}

/* Шапка карточки */
.spec-arc-card__top {
    position: relative;
    height: 150px;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}

/* Декоративные круги */
.spec-arc-card__orb {
    position: absolute; border-radius: 50%;
    pointer-events: none;
}
.spec-arc-card__orb--1 { width: 120px;height: 120px;top:-30px;right:-20px; }
.spec-arc-card__orb--2 { width: 80px;height: 80px;bottom:-20px;left:-10px; }

/* Иконка */
.spec-arc-card__icon-wrap {
    position: relative; z-index: 1;
    width: 80px; height: 80px;
    border-radius: 22px;
    border: 1px solid;
    display: flex; align-items: center; justify-content: center;
    font-size: 36px;
    transition: transform .3s cubic-bezier(.34,1.56,.64,1);
}
.spec-arc-card:hover .spec-arc-card__icon-wrap { transform: scale(1.1) translateY(-3px); }

/* Бейдж */
.spec-arc-card__badge {
    position: absolute; top: 10px; left: 10px;
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 11px; font-weight: 700;
    padding: 4px 10px; border-radius: 20px;
    backdrop-filter: blur(4px);
}
.spec-arc-card__badge--popular { background: rgba(255,59,48,.12); color: #ff3b30; }
.spec-arc-card__badge--new     { background: rgba(52,199,89,.12); color: #1a9e3e; }
.spec-arc-card__badge--demand  { background: rgba(255,159,10,.12); color: #c77000; }

/* Тело */
.spec-arc-card__body { padding: 16px 18px 12px; flex: 1; }
.spec-arc-card__title {
    font-size: 17px; font-weight: 800;
    color: #0D1B3E; margin-bottom: 5px; line-height: 1.25;
}
[data-theme="dark"] .spec-arc-card__title { color: #f2f2f7; }
.spec-arc-card__subtitle {
    font-size: 12px; color: #6B7280; line-height: 1.5;
    margin-bottom: 10px;
    display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
}

/* Теги */
.spec-arc-card__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.spec-arc-card__tag {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 11px; font-weight: 600;
    padding: 4px 10px; border-radius: 8px;
}
.spec-arc-card__tag i { font-size: 13px; }

/* Футер */
.spec-arc-card__footer {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 18px 14px;
    border-top: 1px solid;
    margin-top: auto;
}
.spec-arc-card__stats { display: flex; gap: 12px; }
.spec-arc-card__stat {
    display: flex; align-items: center; gap: 4px;
    font-size: 13px; font-weight: 700; color: #0D1B3E;
}
[data-theme="dark"] .spec-arc-card__stat { color: #f2f2f7; }
.spec-arc-card__stat i { font-size: 14px; }
.spec-arc-card__cta {
    display: flex; align-items: center; gap: 4px;
    font-size: 13px; font-weight: 700;
    transition: gap .2s;
}
.spec-arc-card:hover .spec-arc-card__cta { gap: 7px; }

/* CTA-баннер снизу */
.spec-archive__cta-banner {
    background: linear-gradient(135deg, #4A7FFF 0%, #7c3aed 100%);
    padding: 44px 0;
}
.spec-archive__cta-inner {
    display: flex; align-items: center;
    justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.spec-archive__cta-text h2 {
    font-size: 26px; font-weight: 800; color: #fff; margin: 0 0 6px;
}
.spec-archive__cta-text p { font-size: 15px; color: rgba(255,255,255,.8); margin: 0; }
.spec-archive__cta-banner .inst-btn--primary {
    background: #fff; color: #4A7FFF;
    box-shadow: 0 4px 20px rgba(0,0,0,.2);
    white-space: nowrap; flex-shrink: 0;
}
.spec-archive__cta-banner .inst-btn--primary:hover {
    background: #f0f4ff; transform: translateY(-2px);
}

/* Адаптив */
@media (max-width: 900px) {
    .spec-archive__title { font-size: 28px; }
    .spec-archive__hero-stats { flex-wrap: wrap; }
    .spec-archive__hero-stat { padding: 12px 18px; }
    .spec-archive__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
    .spec-archive__grid { grid-template-columns: 1fr; }
    .spec-archive__hero-stat-div { display: none; }
    .spec-archive__cta-inner { text-align: center; justify-content: center; }
}

/* ===========================
   INSTITUTION ARCHIVE (NEW)
   =========================== */

/* Корень */
.ia { background: #f2f8ff; min-height: 80vh; }
[data-theme="dark"] .ia { background: #1c1c1e; }

/* ── Hero ────────────────────────────────────────────────── */
.ia__hero {
    position: relative; overflow: hidden;
    padding: 64px 0 52px; text-align: center;
    background: linear-gradient(160deg,#eaf4ff 0%,#edfaf2 55%,#eaf4ff 100%);
    border-bottom: 1px solid rgba(0,113,227,.10);
}
[data-theme="dark"] .ia__hero {
    background: linear-gradient(160deg,#0c1e36 0%,#0c2418 50%,#0c1e36 100%);
    border-color: rgba(255,255,255,.06);
}
.ia__hero-blob {
    position: absolute; border-radius: 50%;
    filter: blur(72px); opacity: .35; pointer-events: none;
}
.ia__hero-blob--1 { width:300px;height:300px;background:#8ec8f8;top:-90px;right:6%; }
.ia__hero-blob--2 { width:220px;height:220px;background:#9deebb;bottom:-60px;left:5%; }
.ia__hero-blob--3 { width:160px;height:160px;background:#b0d8f8;top:30%;right:26%; }

.ia__hero-inner { position: relative; z-index: 1; max-width: 700px; margin: 0 auto; }

.ia__hero-label {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(0,113,227,.10); color: #0071E3;
    border: 1px solid rgba(0,113,227,.22);
    font-size: 13px; font-weight: 700;
    padding: 5px 14px; border-radius: 20px; margin-bottom: 18px;
}
[data-theme="dark"] .ia__hero-label { background: rgba(0,113,227,.18); }

.ia__hero-title {
    font-size: clamp(30px,5vw,50px);
    font-weight: 800; line-height: 1.15;
    color: #0d1b3e; margin: 0 0 14px;
}
[data-theme="dark"] .ia__hero-title { color: #f2f2f7; }
.ia__hero-accent {
    background: linear-gradient(90deg,#0071E3,#2FBF53);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
}

.ia__hero-sub {
    font-size: clamp(14px,2vw,17px); color: #6b7280;
    line-height: 1.65; margin: 0 0 32px;
}
[data-theme="dark"] .ia__hero-sub { color: #98989e; }

/* Поиск */
.ia__search-wrap { margin-bottom: 28px; }
.ia__search {
    position: relative; display: flex; align-items: center;
    background: #fff; border: 2px solid rgba(0,113,227,.18);
    border-radius: 14px; box-shadow: 0 4px 20px rgba(0,113,227,.09);
    transition: border-color .2s, box-shadow .2s; overflow: hidden;
}
[data-theme="dark"] .ia__search { background: #2c2c2e; border-color: rgba(255,255,255,.1); }
.ia__search:focus-within { border-color: #0071E3; box-shadow: 0 4px 24px rgba(0,113,227,.22); }
.ia__search-icon {
    position: absolute; left: 18px;
    font-size: 20px; color: #0071E3; pointer-events: none;
}
.ia__search-input {
    width: 100%; padding: 16px 48px 16px 50px;
    font-size: 16px; background: none; border: none; outline: none; color: #0d1b3e;
}
[data-theme="dark"] .ia__search-input { color: #f2f2f7; }
.ia__search-input::placeholder { color: #9ca3af; }
.ia__search-clear {
    position: absolute; right: 14px;
    width: 30px; height: 30px; border-radius: 8px;
    background: #f3f4f6; border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-size: 15px; color: #6b7280; transition: background .2s;
}
[data-theme="dark"] .ia__search-clear { background: #3a3a3c; color: #ebebf5; }
.ia__search-clear:hover { background: #dbeeff; color: #0071E3; }
.ia__search-counter { margin-top: 8px; font-size: 13px; color: #9ca3af; text-align: right; }
[data-theme="dark"] .ia__search-counter { color: #636366; }
.ia__search-counter strong { color: #0071E3; }

/* Hero stats */
.ia__hero-stats {
    display: flex; align-items: center;
    justify-content: center; flex-wrap: wrap; gap: 0;
    background: rgba(255,255,255,.80); backdrop-filter: blur(8px);
    border: 1px solid rgba(0,113,227,.12); border-radius: 14px; overflow: hidden;
}
[data-theme="dark"] .ia__hero-stats { background: rgba(44,44,46,.80); border-color: rgba(255,255,255,.08); }
.ia__hero-stat { display: flex; flex-direction: column; align-items: center; padding: 14px 24px; gap: 2px; flex: 1; min-width: 110px; }
.ia__hero-stat-num { font-size: 20px; font-weight: 800; color: #0d1b3e; line-height: 1; }
[data-theme="dark"] .ia__hero-stat-num { color: #f2f2f7; }
.ia__hero-stat-txt { font-size: 11px; color: #6b7280; text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; }
.ia__hero-stat-sep { width: 1px; height: 32px; background: rgba(0,113,227,.12); flex-shrink: 0; }
[data-theme="dark"] .ia__hero-stat-sep { background: rgba(255,255,255,.08); }

/* ── Тело ────────────────────────────────────────────────── */
.ia__body { padding: 40px 0 56px; }

/* Табы-фильтры */
.ia__tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.ia__tab {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 18px; border-radius: 24px;
    font-size: 14px; font-weight: 600; cursor: pointer;
    text-decoration: none; background: #fff; color: #374151;
    border: 1px solid rgba(0,113,227,.15);
    box-shadow: 0 2px 8px rgba(0,113,227,.06);
    transition: all .2s;
}
[data-theme="dark"] .ia__tab { background: #2c2c2e; color: #ebebf5; border-color: rgba(255,255,255,.1); }
.ia__tab:hover, .ia__tab.is-active {
    background: #0071E3; color: #fff; border-color: #0071E3;
    box-shadow: 0 4px 16px rgba(0,113,227,.30);
}

/* ── Сетка ───────────────────────────────────────────────── */
.ia__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 20px;
}

/* ── Карточка ────────────────────────────────────────────── */
.ia-card {
    display: flex; flex-direction: column;
    background: #fff; border: 1px solid rgba(0,113,227,.10);
    border-radius: 18px; text-decoration: none; overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,113,227,.06);
    transition: transform .25s, box-shadow .25s, border-color .25s;
}
[data-theme="dark"] .ia-card { background: #2c2c2e; border-color: rgba(255,255,255,.07); }
.ia-card:hover { transform: translateY(-5px); box-shadow: 0 14px 40px rgba(0,113,227,.14); border-color: #0071E3; }

/* Верх */
.ia-card__top {
    position: relative; height: 165px;
    background: #eaf4ff; display: flex;
    align-items: center; justify-content: center;
    overflow: hidden; flex-shrink: 0;
}
[data-theme="dark"] .ia-card__top { background: rgba(0,113,227,.08); }

.ia-card__logo { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.ia-card__logo--cover { width: 100%; height: 100%; object-fit: cover; }
.ia-card:hover .ia-card__logo { transform: scale(1.06); }

.ia-card__abbr {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    position: relative; overflow: hidden;
}
.ia-card__abbr-orb { position: absolute; border-radius: 50%; background: rgba(255,255,255,.15); pointer-events: none; }
.ia-card__abbr-orb--1 { width: 120px; height: 120px; top: -30px; right: -20px; }
.ia-card__abbr-orb--2 { width: 80px;  height: 80px;  bottom: -22px; left: -14px; }
.ia-card__abbr span {
    position: relative; z-index: 1;
    font-weight: 900; color: #fff; text-align: center;
    line-height: 1.15; word-break: break-word;
    padding: 16px; text-shadow: 0 2px 12px rgba(0,0,0,.2);
    max-width: 100%;
}

.ia-card__type-badge {
    position: absolute; top: 10px; left: 10px;
    background: rgba(255,255,255,.92); color: #0d1b3e;
    font-size: 11px; font-weight: 700;
    padding: 3px 10px; border-radius: 20px;
    backdrop-filter: blur(4px);
    text-transform: uppercase; letter-spacing: .04em;
}
[data-theme="dark"] .ia-card__type-badge { background: rgba(44,44,46,.92); color: #f2f2f7; }

/* Тело */
.ia-card__body { padding: 16px 18px 12px; flex: 1; }
.ia-card__name { font-size: 16px; font-weight: 800; color: #0d1b3e; line-height: 1.25; margin-bottom: 4px; }
[data-theme="dark"] .ia-card__name { color: #f2f2f7; }
.ia-card__fullname {
    font-size: 12px; color: #6b7280; line-height: 1.4; margin-bottom: 8px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ia-card__meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.ia-card__meta-item {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 12px; color: #6b7280;
    background: #f0f7ff; padding: 3px 9px; border-radius: 7px;
}
[data-theme="dark"] .ia-card__meta-item { background: rgba(0,113,227,.08); color: #98989e; }
.ia-card__meta-item i { font-size: 13px; color: #0071E3; }
.ia-card__stats {
    display: flex; gap: 10px;
    padding-top: 8px; border-top: 1px solid rgba(0,113,227,.08);
}
[data-theme="dark"] .ia-card__stats { border-color: rgba(255,255,255,.07); }
.ia-card__stat { display: flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; color: #374151; }
[data-theme="dark"] .ia-card__stat { color: #ebebf5; }
.ia-card__stat i { font-size: 14px; color: #0071E3; }
.ia-card__stat .ti-star-filled { color: #f59e0b !important; }
.ia-card__stat small { font-size: 11px; font-weight: 400; color: #9ca3af; }

/* Футер — кнопка */
.ia-card__footer { padding: 12px 18px 16px; }
.ia-card__cta {
    display: flex; align-items: center; justify-content: center; gap: 7px;
    width: 100%; padding: 11px 18px; border-radius: 12px;
    font-size: 14px; font-weight: 700; color: #fff;
    background: linear-gradient(90deg,#0071E3,#2FBF53);
    box-shadow: 0 4px 16px rgba(0,113,227,.28);
    transition: opacity .2s, transform .2s, box-shadow .2s;
}
.ia-card:hover .ia-card__cta { opacity: .92; transform: translateY(-1px); box-shadow: 0 6px 22px rgba(0,113,227,.35); }

/* Пустое */
.ia__empty {
    flex-direction: column; align-items: center; gap: 12px;
    padding: 60px 20px; text-align: center; color: #6b7280;
}
.ia__empty i { font-size: 52px; opacity: .35; }
.ia__empty p { font-size: 16px; margin: 0; }

/* ── CTA-баннер ──────────────────────────────────────────── */
.ia__cta {
    position: relative; overflow: hidden;
    background: linear-gradient(135deg,#0071E3 0%,#2FBF53 100%);
    padding: 52px 0;
}
.ia__cta-blob-1,.ia__cta-blob-2 {
    position: absolute; border-radius: 50%;
    background: rgba(255,255,255,.10); pointer-events: none;
}
.ia__cta-blob-1 { width:300px;height:300px;top:-110px;right:-50px; }
.ia__cta-blob-2 { width:180px;height:180px;bottom:-70px;left:-30px; }
.ia__cta-inner {
    position: relative; z-index: 1;
    display: flex; align-items: center; gap: 28px; flex-wrap: wrap;
}
.ia__cta-icon {
    width: 64px; height: 64px; flex-shrink: 0;
    background: rgba(255,255,255,.15); border-radius: 18px;
    display: flex; align-items: center; justify-content: center;
    font-size: 30px; color: #fff;
}
.ia__cta-text { flex: 1; min-width: 200px; }
.ia__cta-text h2 { font-size: clamp(20px,3vw,26px); font-weight: 800; color: #fff; margin: 0 0 6px; }
.ia__cta-text p  { font-size: 14px; color: rgba(255,255,255,.82); margin: 0; line-height: 1.55; }
.ia__cta-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: #fff; color: #0071E3;
    font-size: 15px; font-weight: 800;
    padding: 14px 28px; border-radius: 12px;
    text-decoration: none; white-space: nowrap; flex-shrink: 0;
    box-shadow: 0 4px 20px rgba(0,0,0,.18);
    transition: transform .2s, box-shadow .2s;
}
.ia__cta-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,0,0,.22); }

/* ── Адаптив ─────────────────────────────────────────────── */
@media (max-width: 1100px) {
    .ia__hero-stat { padding: 12px 16px; min-width: 90px; }
    .ia__hero-stat-num { font-size: 17px; }
}
@media (max-width: 768px) {
    .ia__hero { padding: 44px 0 36px; }
    .ia__grid { grid-template-columns: 1fr 1fr; gap: 14px; }
    .ia__hero-stat-sep { display: none; }
    .ia__hero-stats { flex-wrap: wrap; }
    .ia__hero-stat { flex: 1 0 45%; padding: 10px 14px; }
}
@media (max-width: 540px) {
    .ia__grid { grid-template-columns: 1fr; }
    .ia-card__top { height: 140px; }
    .ia__cta-inner { flex-direction: column; text-align: center; align-items: center; }
    .ia__cta-icon { display: none; }
    .ia__cta-btn { width: 100%; justify-content: center; }
}
@media (max-width: 360px) {
    .ia__hero-stat { flex: 1 0 100%; border-bottom: 1px solid rgba(0,113,227,.08); }
}

/* ===========================
   INSTITUTION ARCHIVE PAGE
   =========================== */
.inst-archive { background: #F0F4FF; min-height: 80vh; }
[data-theme="dark"] .inst-archive { background: #1c1c1e; }

/* Шапка архива */
.inst-archive__header {
    position: relative;
    padding: 52px 0 44px;
    text-align: center;
    overflow: hidden;
    background: #fff;
    border-bottom: 1px solid rgba(74,127,255,.12);
}
[data-theme="dark"] .inst-archive__header {
    background: #2c2c2e;
    border-color: rgba(255,255,255,.08);
}
.inst-archive__header-bg {
    position: absolute; inset: 0;
    background: linear-gradient(135deg,#eef3ff 0%,#f8f0ff 50%,#e8f5ff 100%);
    opacity: .6;
}
[data-theme="dark"] .inst-archive__header-bg {
    background: linear-gradient(135deg,#1c2340 0%,#2a1a3e 50%,#0f1e30 100%);
    opacity: .5;
}
.inst-archive__orb {
    position: absolute; border-radius: 50%;
    filter: blur(60px); opacity: .3; pointer-events: none;
}
.inst-archive__orb--1 { width:260px;height:260px;background:#a5c8ff;top:-80px;right:10%; }
.inst-archive__orb--2 { width:200px;height:200px;background:#b2f0c8;bottom:-60px;left:8%; }
.inst-archive__title {
    position: relative;
    font-size: 40px; font-weight: 800;
    color: #0D1B3E; margin: 12px 0 8px;
}
[data-theme="dark"] .inst-archive__title { color: #f2f2f7; }
.inst-archive__sub {
    position: relative;
    font-size: 16px; color: #6B7280; margin: 0;
}
[data-theme="dark"] .inst-archive__sub { color: #98989e; }

/* Тело архива */
.inst-archive__body { padding: 36px 0 64px; }

/* Вкладки-фильтры */
.inst-archive__tabs {
    display: flex; flex-wrap: wrap; gap: 8px;
    margin-bottom: 32px;
}
.inst-archive__tab {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 18px; border-radius: 24px;
    font-size: 14px; font-weight: 600;
    text-decoration: none;
    background: #fff; color: #374151;
    border: 1px solid rgba(74,127,255,.15);
    box-shadow: 0 2px 8px rgba(74,127,255,.07);
    transition: all .2s;
}
[data-theme="dark"] .inst-archive__tab {
    background: #2c2c2e; color: #ebebf5;
    border-color: rgba(255,255,255,.1);
}
.inst-archive__tab:hover,
.inst-archive__tab.is-active {
    background: #4A7FFF; color: #fff;
    border-color: #4A7FFF;
    box-shadow: 0 4px 16px rgba(74,127,255,.35);
}

/* Сетка карточек */
.inst-archive__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 20px;
}

/* Карточка учреждения */
.inst-arc-card {
    display: flex; flex-direction: column;
    background: #fff;
    border: 1px solid rgba(74,127,255,.12);
    border-radius: 16px;
    text-decoration: none;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(74,127,255,.07);
    transition: border-color .25s, box-shadow .25s, transform .25s;
}
[data-theme="dark"] .inst-arc-card {
    background: #2c2c2e;
    border-color: rgba(255,255,255,.08);
}
.inst-arc-card:hover {
    border-color: #4A7FFF;
    box-shadow: 0 8px 32px rgba(74,127,255,.18);
    transform: translateY(-4px);
}

/* Верхняя часть */
.inst-arc-card__top {
    position: relative;
    height: 160px;
    background: #EEF3FF;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}
[data-theme="dark"] .inst-arc-card__top { background: rgba(74,127,255,.1); }

.inst-arc-card__logo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
}
.inst-arc-card__logo--cover {
    width: 100%; height: 100%;
    object-fit: cover;
}
.inst-arc-card:hover .inst-arc-card__logo { transform: scale(1.06); }

.inst-arc-card__abbr-wrap {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    position: relative;
    overflow: hidden;
}
/* Декоративные круги на фоне */
.inst-arc-card__abbr-wrap::before,
.inst-arc-card__abbr-wrap::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    pointer-events: none;
}
.inst-arc-card__abbr-wrap::before {
    width: 130px; height: 130px;
    top: -35px; right: -25px;
}
.inst-arc-card__abbr-wrap::after {
    width: 90px; height: 90px;
    bottom: -28px; left: -18px;
}
.inst-arc-card__abbr-wrap span {
    position: relative; z-index: 1;
    font-weight: 900;
    color: #fff;
    text-align: center;
    line-height: 1.15;
    word-break: break-word;
    padding: 16px;
    letter-spacing: -.5px;
    text-shadow: 0 2px 12px rgba(0,0,0,.2);
    max-width: 100%;
}

/* Бейдж типа */
.inst-arc-card__type {
    position: absolute; top: 10px; left: 10px;
    background: rgba(255,255,255,.92);
    color: #0D1B3E;
    font-size: 11px; font-weight: 700;
    padding: 3px 10px; border-radius: 20px;
    backdrop-filter: blur(4px);
    text-transform: uppercase; letter-spacing: .04em;
}
[data-theme="dark"] .inst-arc-card__type {
    background: rgba(44,44,46,.92);
    color: #f2f2f7;
}

/* Тело */
.inst-arc-card__body { padding: 16px 18px 12px; flex: 1; }
.inst-arc-card__title {
    font-size: 16px; font-weight: 800;
    color: #0D1B3E; margin-bottom: 4px; line-height: 1.3;
}
[data-theme="dark"] .inst-arc-card__title { color: #f2f2f7; }
.inst-arc-card__fullname {
    font-size: 12px; color: #6B7280;
    line-height: 1.4; margin-bottom: 8px;
    display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden;
}
.inst-arc-card__meta {
    display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px;
}
.inst-arc-card__meta span {
    display: flex; align-items: center; gap: 4px;
    font-size: 12px; color: #6B7280;
}
[data-theme="dark"] .inst-arc-card__meta span { color: #98989e; }
.inst-arc-card__meta i { font-size: 13px; color: #4A7FFF; }

/* Статистика */
.inst-arc-card__stats {
    display: flex; gap: 12px;
    padding: 8px 0 0;
    border-top: 1px solid rgba(74,127,255,.1);
    margin-top: 4px;
}
[data-theme="dark"] .inst-arc-card__stats { border-color: rgba(255,255,255,.08); }
.inst-arc-card__stat {
    display: flex; align-items: center; gap: 4px;
}
.inst-arc-card__stat i { font-size: 13px; color: #1DB954; }
.inst-arc-card__stat span { font-size: 13px; font-weight: 700; color: #0D1B3E; }
[data-theme="dark"] .inst-arc-card__stat span { color: #f2f2f7; }
.inst-arc-card__stat small { font-size: 11px; color: #6B7280; }

/* Футер */
.inst-arc-card__footer {
    padding: 10px 18px 14px;
    border-top: 1px solid rgba(74,127,255,.1);
}
[data-theme="dark"] .inst-arc-card__footer { border-color: rgba(255,255,255,.08); }
.inst-arc-card__cta {
    display: flex; align-items: center; gap: 5px;
    font-size: 13px; font-weight: 700; color: #4A7FFF;
    transition: gap .2s;
}
.inst-arc-card:hover .inst-arc-card__cta { gap: 8px; }

/* Пагинация */
.inst-archive__pagination { margin-top: 40px; text-align: center; }
.inst-archive__pagination .nav-links { display: flex; justify-content: center; gap: 6px; }
.inst-archive__pagination .page-numbers {
    display: flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; border-radius: 10px;
    font-size: 14px; font-weight: 600;
    text-decoration: none; color: #374151;
    background: #fff; border: 1px solid rgba(74,127,255,.15);
    transition: all .2s;
}
[data-theme="dark"] .inst-archive__pagination .page-numbers {
    background: #2c2c2e; color: #ebebf5;
    border-color: rgba(255,255,255,.1);
}
.inst-archive__pagination .page-numbers.current,
.inst-archive__pagination .page-numbers:hover {
    background: #4A7FFF; color: #fff; border-color: #4A7FFF;
}
.inst-archive__pagination .prev,
.inst-archive__pagination .next { width: auto; padding: 0 14px; }

/* Пусто */
.inst-archive__empty {
    text-align: center; padding: 60px 0;
    color: #6B7280;
}
.inst-archive__empty i { font-size: 48px; display: block; margin-bottom: 12px; opacity: .4; }

/* Адаптив архива */
@media (max-width: 768px) {
    .inst-archive__title { font-size: 28px; }
    .inst-archive__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .inst-archive__grid { grid-template-columns: 1fr; }
}

/* ===========================
   INSTITUTION SINGLE PAGE
   (светлый EdTech-стиль)
   =========================== */

/* Токены светлой темы для страниц вузов */
.inst-single {
    --i-bg:         #F0F4FF;
    --i-card:       #FFFFFF;
    --i-text-h:     #0D1B3E;
    --i-text-body:  #374151;
    --i-text-muted: #6B7280;
    --i-green:      #1DB954;
    --i-green-dark: #17a349;
    --i-blue:       #4A7FFF;
    --i-blue-light: #EEF3FF;
    --i-border:     rgba(74,127,255,.12);
    --i-shadow-sm:  0 2px 8px rgba(74,127,255,.08);
    --i-shadow:     0 4px 20px rgba(74,127,255,.10);
    --i-shadow-lg:  0 8px 32px rgba(74,127,255,.14);
    --i-radius:     16px;
    --i-radius-sm:  10px;
    background: var(--i-bg);
    min-height: 60vh;
}

/* Тёмная тема */
[data-theme="dark"] .inst-single {
    --i-bg:         #1c1c1e;
    --i-card:       #2c2c2e;
    --i-text-h:     #f2f2f7;
    --i-text-body:  #ebebf5;
    --i-text-muted: #98989e;
    --i-blue-light: rgba(74,127,255,.14);
    --i-border:     rgba(255,255,255,.08);
    --i-shadow-sm:  0 2px 8px rgba(0,0,0,.30);
    --i-shadow:     0 4px 20px rgba(0,0,0,.40);
    --i-shadow-lg:  0 8px 32px rgba(0,0,0,.55);
}

[data-theme="dark"] .inst-hero__bg-gradient {
    background: linear-gradient(135deg, #1c2340 0%, #2a1a3e 50%, #0f1e30 100%);
}
[data-theme="dark"] .inst-hero--dark .inst-hero__bg-overlay {
    background: linear-gradient(to right, rgba(28,28,30,.96) 45%, rgba(28,28,30,.75) 100%);
}
[data-theme="dark"] .inst-hero__type-badge {
    background: rgba(29,185,84,.15);
    border-color: rgba(29,185,84,.3);
}
[data-theme="dark"] .inst-hero__meta-chip {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.10);
    color: var(--i-text-body);
}
[data-theme="dark"] .inst-stats-bar {
    background: #2c2c2e;
    border-color: rgba(255,255,255,.08);
}
[data-theme="dark"] .inst-stat-cell { border-color: rgba(255,255,255,.08); }
[data-theme="dark"] .inst-svc-card__cover--icon {
    filter: brightness(.9);
}
[data-theme="dark"] .inst-svc-card__cat {
    background: rgba(44,44,46,.92);
    color: #f2f2f7;
}
[data-theme="dark"] .inst-svc-card__footer { border-color: rgba(255,255,255,.08); }
[data-theme="dark"] .inst-services-section { background: #2c2c2e; border-color: rgba(255,255,255,.08); }
[data-theme="dark"] .inst-faq-item__body p { border-color: rgba(255,255,255,.08); }
[data-theme="dark"] .inst-sidebar-cta,
[data-theme="dark"] .inst-sidebar-contacts { border-color: rgba(255,255,255,.08); }

/* ── Hero ───────────────────────────────────────────────── */
.inst-hero {
    position: relative;
    padding: 56px 0 48px;
    overflow: hidden;
    background: var(--i-bg);
}
.inst-hero__bg-img {
    position: absolute; inset: 0;
    background-image: var(--inst-hero-bg);
    background-size: cover;
    background-position: center;
    z-index: 0;
}
.inst-hero__bg-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to right, rgba(240,244,255,.96) 45%, rgba(240,244,255,.7) 100%);
    z-index: 1;
}
.inst-hero__bg-gradient {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, #eef3ff 0%, #f8f0ff 50%, #e8f5ff 100%);
    z-index: 0;
}
/* Декоративные шары */
.inst-hero__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: .35;
    z-index: 0;
    pointer-events: none;
}
.inst-hero__orb--1 { width: 300px; height: 300px; background:#a5c8ff; top:-80px; right:15%; }
.inst-hero__orb--2 { width: 200px; height: 200px; background:#b2f0c8; bottom:-40px; right:8%; }
.inst-hero__orb--3 { width: 160px; height: 160px; background:#d4aaff; top:40%; left:-40px; }

.inst-hero__inner {
    position: relative; z-index: 2;
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 48px;
    align-items: center;
}
.inst-hero__top {
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 14px; flex-wrap: wrap;
}
.inst-hero__type-badge {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(26,185,84,.12);
    color: var(--i-green-dark);
    font-size: 13px; font-weight: 700;
    padding: 5px 12px; border-radius: 20px;
    border: 1px solid rgba(26,185,84,.25);
}
.inst-hero__city {
    display: inline-flex; align-items: center; gap: 5px;
    color: var(--i-text-muted); font-size: 13px;
}
.inst-hero__title {
    font-size: 42px; font-weight: 800;
    color: var(--i-text-h); line-height: 1.15;
    margin: 0 0 8px;
}
.inst-hero__fullname {
    font-size: 14px; color: var(--i-text-muted);
    margin: 0 0 10px; line-height: 1.5;
}
.inst-hero__subtitle {
    font-size: 16px; color: var(--i-text-body);
    margin: 0 0 20px; line-height: 1.65; max-width: 520px;
}
.inst-hero__meta {
    display: flex; flex-wrap: wrap; gap: 10px;
    margin-bottom: 28px;
}
.inst-hero__meta-chip {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--i-card); border: 1px solid var(--i-border);
    color: var(--i-text-body); font-size: 13px;
    padding: 6px 14px; border-radius: 20px;
    box-shadow: var(--i-shadow-sm);
    text-decoration: none;
    transition: border-color .2s, box-shadow .2s;
}
.inst-hero__meta-chip--link:hover {
    border-color: var(--i-blue); box-shadow: var(--i-shadow);
    color: var(--i-blue);
}
.inst-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; }

/* Схема текста hero */
.inst-hero--light .inst-hero__title,
.inst-hero--light .inst-hero__fullname,
.inst-hero--light .inst-hero__subtitle { color: #fff; }
.inst-hero--light .inst-hero__city,
.inst-hero--light .inst-hero__title { color: #fff; }
.inst-hero--light .inst-hero__meta-chip {
    background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.3); color: #fff;
}
.inst-hero--light .inst-hero__bg-overlay {
    background: linear-gradient(to right, rgba(13,27,62,.80) 40%, rgba(13,27,62,.5) 100%);
}

/* Правая колонка hero: значок вуза */
.inst-hero__badge-wrap {
    position: relative;
    display: flex; align-items: center; justify-content: center;
}
.inst-hero__abbr-circle {
    width: 180px; height: 180px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--i-blue) 0%, #7c3aed 100%);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 20px 60px rgba(74,127,255,.35);
}
.inst-hero__abbr {
    font-size: 48px; font-weight: 900;
    color: #fff; letter-spacing: -1px;
}
.inst-hero__logo {
    width: 350px; height: 350px;
    display: flex; align-items: center; justify-content: center;
}
.inst-hero__logo-img { width: 100%; height: 100%; object-fit: contain; }

/* Плавающие виджеты */
.inst-hero__float-card {
    position: absolute;
    background: var(--i-card);
    border-radius: var(--i-radius-sm);
    box-shadow: var(--i-shadow-lg);
    padding: 10px 16px;
    display: flex; align-items: center; gap: 8px;
    white-space: nowrap;
}
.inst-hero__float-card i { font-size: 18px; color: var(--i-green); }
.inst-hero__float-card span { font-size: 16px; font-weight: 800; color: var(--i-text-h); }
.inst-hero__float-card small { font-size: 11px; color: var(--i-text-muted); }
.inst-hero__float-card--top    { top: -10px; right: -20px; }
.inst-hero__float-card--bottom { bottom: -10px; left: -20px; }

/* ── Кнопки ─────────────────────────────────────────────── */
.inst-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 13px 24px; border-radius: 10px;
    font-size: 15px; font-weight: 700;
    text-decoration: none; cursor: pointer; border: none;
    transition: transform .2s, box-shadow .2s, background .2s, opacity .2s;
}
.inst-btn--primary {
    background: var(--i-green); color: #fff;
    box-shadow: 0 4px 16px rgba(29,185,84,.35);
}
.inst-btn--primary:hover { background: var(--i-green-dark); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(29,185,84,.40); }
.inst-btn--outline {
    background: var(--i-card); color: var(--i-blue);
    border: 2px solid var(--i-blue);
    box-shadow: var(--i-shadow-sm);
}
.inst-btn--outline:hover { background: var(--i-blue-light); transform: translateY(-2px); }
.inst-btn--full { width: 100%; justify-content: center; }

/* ── Stats bar ──────────────────────────────────────────── */
.inst-stats-bar {
    background: var(--i-card);
    border-top: 1px solid var(--i-border);
    border-bottom: 1px solid var(--i-border);
    box-shadow: var(--i-shadow-sm);
}
.inst-stats-bar__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    divide-gap: 0;
}
.inst-stat-cell {
    display: flex; align-items: center; gap: 14px;
    padding: 20px 24px;
    border-right: 1px solid var(--i-border);
}
.inst-stat-cell:last-child { border-right: none; }
.inst-stat-cell__icon {
    width: 48px; height: 48px; flex-shrink: 0;
    border-radius: 12px;
    background: var(--i-blue-light);
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; color: var(--i-blue);
}
.inst-stat-cell__info { display: flex; flex-direction: column; gap: 2px; }
.inst-stat-cell__value { font-size: 22px; font-weight: 800; color: var(--i-text-h); line-height: 1; }
.inst-stat-cell__label { font-size: 12px; color: var(--i-text-muted); }

/* ── Layout ─────────────────────────────────────────────── */
.inst-main-wrap { padding: 48px 0 16px; }
.inst-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 36px;
    align-items: start;
}
.inst-section { margin-bottom: 44px; }
.inst-section-title {
    display: flex; align-items: center; gap: 10px;
    font-size: 22px; font-weight: 800;
    color: var(--i-text-h); margin: 0 0 20px;
}
.inst-section-title__icon {
    width: 38px; height: 38px; flex-shrink: 0;
    background: var(--i-blue-light); border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 18px; color: var(--i-blue);
}

/* ── Faculties ──────────────────────────────────────────── */
.inst-faculties__grid { display: flex; flex-direction: column; gap: 10px; }
.inst-faculty-card {
    display: flex; align-items: center; gap: 14px;
    background: var(--i-card); border: 1px solid var(--i-border);
    border-radius: var(--i-radius-sm); padding: 16px 20px;
    box-shadow: var(--i-shadow-sm);
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.inst-faculty-card:hover {
    border-color: var(--i-blue); box-shadow: var(--i-shadow);
    transform: translateX(4px);
}
.inst-faculty-card__icon {
    width: 44px; height: 44px; flex-shrink: 0;
    border-radius: 10px; background: var(--i-blue-light);
    display: flex; align-items: center; justify-content: center;
    font-size: 20px; color: var(--i-blue);
}
.inst-faculty-card__name { font-size: 15px; font-weight: 700; color: var(--i-text-h); }
.inst-faculty-card__desc { font-size: 13px; color: var(--i-text-muted); margin-top: 2px; }
.inst-faculty-card__check { font-size: 20px; color: var(--i-green); margin-left: auto; flex-shrink: 0; }

/* ── Specialties tags ───────────────────────────────────── */
.inst-specialties__grid { display: flex; flex-wrap: wrap; gap: 10px; }
.inst-spec-tag {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--i-card); border: 1px solid var(--i-border);
    border-radius: 10px; padding: 9px 14px;
    text-decoration: none; color: var(--i-text-h);
    font-size: 13px; font-weight: 600;
    box-shadow: var(--i-shadow-sm);
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.inst-spec-tag:hover {
    border-color: var(--i-blue); box-shadow: var(--i-shadow);
    transform: translateY(-2px); color: var(--i-blue);
}
.inst-spec-tag__icon {
    width: 28px; height: 28px; border-radius: 7px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; font-size: 15px;
}
.inst-spec-tag > .ti-arrow-right { font-size: 14px; color: var(--i-text-muted); margin-left: 2px; }

/* ── FAQ ────────────────────────────────────────────────── */
.inst-faq__list { display: flex; flex-direction: column; gap: 8px; }
.inst-faq-item {
    background: var(--i-card); border: 1px solid var(--i-border);
    border-radius: var(--i-radius-sm); overflow: hidden;
    box-shadow: var(--i-shadow-sm);
    transition: border-color .2s;
}
.inst-faq-item.is-open { border-color: var(--i-blue); }
.inst-faq-item__trigger {
    width: 100%; display: flex; align-items: center;
    justify-content: space-between; gap: 12px;
    padding: 18px 20px; background: none; border: none;
    cursor: pointer; text-align: left;
    font-size: 15px; font-weight: 600; color: var(--i-text-h);
}
.inst-faq-item__trigger:hover { color: var(--i-blue); }
.inst-faq-item__icon {
    width: 30px; height: 30px; flex-shrink: 0;
    border-radius: 8px; background: var(--i-blue-light);
    display: flex; align-items: center; justify-content: center;
    font-size: 16px; color: var(--i-blue);
    transition: transform .25s, background .2s;
}
.inst-faq-item.is-open .inst-faq-item__icon { transform: rotate(45deg); background: var(--i-blue); color: #fff; }
.inst-faq-item__body { display: none; padding: 0 20px 18px; }
.inst-faq-item.is-open .inst-faq-item__body { display: block; }
.inst-faq-item__body p {
    font-size: 14px; line-height: 1.7; color: var(--i-text-body);
    border-top: 1px solid var(--i-border); padding-top: 14px; margin: 0;
}

/* ── Sidebar ────────────────────────────────────────────── */
.inst-sidebar { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 90px; }
.inst-sidebar-cta {
    background: var(--i-card); border: 1px solid var(--i-border);
    border-radius: var(--i-radius); padding: 24px;
    box-shadow: var(--i-shadow);
}
.inst-sidebar-cta__header {
    display: flex; align-items: center; gap: 14px; margin-bottom: 14px;
}
.inst-sidebar-cta__abbr {
    width: 52px; height: 52px; flex-shrink: 0; border-radius: 14px;
    background: linear-gradient(135deg, var(--i-blue) 0%, #7c3aed 100%);
    display: flex; align-items: center; justify-content: center;
    font-size: 18px; font-weight: 900; color: #fff;
}
.inst-sidebar-cta__name { font-size: 15px; font-weight: 700; color: var(--i-text-h); }
.inst-sidebar-cta__type { font-size: 12px; color: var(--i-text-muted); margin-top: 2px; }
.inst-sidebar-cta__desc {
    font-size: 13px; color: var(--i-text-muted); line-height: 1.6; margin: 0 0 18px;
}
.inst-sidebar-cta__list {
    list-style: none; padding: 0; margin: 16px 0 0;
    display: flex; flex-direction: column; gap: 8px;
}
.inst-sidebar-cta__list li {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; color: var(--i-text-body);
}
.inst-sidebar-cta__list li i { color: var(--i-green); font-size: 16px; flex-shrink: 0; }

.inst-sidebar-contacts {
    background: var(--i-card); border: 1px solid var(--i-border);
    border-radius: var(--i-radius); padding: 20px 24px;
    box-shadow: var(--i-shadow-sm);
}
.inst-sidebar-contacts__title {
    display: flex; align-items: center; gap: 8px;
    font-size: 15px; font-weight: 700; color: var(--i-text-h);
    margin-bottom: 16px;
}
.inst-sidebar-contacts__title i { color: var(--i-blue); font-size: 18px; }
.inst-sidebar-contacts__list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 12px;
}
.inst-sidebar-contacts__list li {
    display: flex; align-items: flex-start; gap: 10px;
    font-size: 13px; color: var(--i-text-body);
}
.inst-sidebar-contacts__list li i { color: var(--i-blue); font-size: 16px; flex-shrink: 0; margin-top: 1px; }
.inst-sidebar-contacts__list a { color: var(--i-blue); text-decoration: none; }
.inst-sidebar-contacts__list a:hover { text-decoration: underline; }

/* ── Services section ───────────────────────────────────── */
.inst-services-section {
    background: var(--i-card);
    border-top: 1px solid var(--i-border);
    padding: 56px 0 64px;
    margin-top: 32px;
}
.inst-services-section__head { text-align: center; margin-bottom: 40px; }
.inst-label {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(29,185,84,.10); color: var(--i-green-dark);
    border: 1px solid rgba(29,185,84,.25);
    font-size: 13px; font-weight: 700;
    padding: 5px 14px; border-radius: 20px; margin-bottom: 14px;
}
.inst-services-section__title {
    font-size: 34px; font-weight: 800; color: var(--i-text-h);
    margin: 0 0 10px;
}
.inst-services-section__sub { font-size: 16px; color: var(--i-text-muted); margin: 0; }
.inst-services__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 20px;
}

/* Карточка услуги — cover-стиль */
.inst-svc-card {
    background: var(--i-card);
    border: 1px solid var(--i-border);
    border-radius: var(--i-radius);
    text-decoration: none;
    display: flex; flex-direction: column;
    box-shadow: var(--i-shadow-sm);
    overflow: hidden;
    transition: border-color .25s, box-shadow .25s, transform .25s;
}
.inst-svc-card:hover {
    border-color: var(--i-blue);
    box-shadow: var(--i-shadow-lg);
    transform: translateY(-5px);
}

/* Обложка */
.inst-svc-card__cover {
    position: relative;
    height: 190px;
    background-size: cover;
    background-position: center;
    overflow: hidden;
    flex-shrink: 0;
}
.inst-svc-card__cover-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to bottom, rgba(13,27,62,.15) 0%, rgba(13,27,62,.55) 100%);
}

/* Иконочная обложка */
.inst-svc-card__cover--icon {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
/* Радиальное свечение за иконкой */
.inst-svc-card__glow {
    position: absolute; inset: 0;
    pointer-events: none;
}
/* Изображение — на весь размер обложки */
.inst-svc-card__icon-img {
    position: relative; z-index: 1;
    width: 100%; height: 100%;
    object-fit: contain;
    object-position: center;
    transition: transform .35s ease;
    pointer-events: none;
}
.inst-svc-card:hover .inst-svc-card__icon-img {
    transform: scale(1.05);
}
/* Иконка-заглушка (ti-icon) */
.inst-svc-card__fallback-icon {
    position: relative; z-index: 1;
    font-size: 64px; opacity: .45;
    color: #0D1B3E;
}

/* Бейдж категории */
.inst-svc-card__cat {
    position: absolute; top: 12px; left: 12px;
    background: rgba(255,255,255,.92);
    color: var(--i-text-h);
    font-size: 11px; font-weight: 700;
    padding: 4px 10px; border-radius: 20px;
    backdrop-filter: blur(4px);
    letter-spacing: .03em; text-transform: uppercase;
}

/* Иконка поверх обложки */
.inst-svc-card__cover-icon {
    position: absolute; bottom: 12px; left: 12px;
    width: 48px; height: 48px;
    background: rgba(255,255,255,.95);
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 12px rgba(0,0,0,.15);
    transition: transform .25s;
}
.inst-svc-card:hover .inst-svc-card__cover-icon { transform: scale(1.08); }
.inst-svc-card__cover-icon img { width: 32px; height: 32px; object-fit: contain; }

/* Цена поверх обложки */
.inst-svc-card__price-badge {
    position: absolute; bottom: 12px; right: 12px;
    background: var(--i-green);
    color: #fff;
    font-size: 13px; font-weight: 800;
    padding: 5px 12px; border-radius: 20px;
    box-shadow: 0 4px 12px rgba(29,185,84,.35);
    z-index: 999;
}

/* Тело карточки */
.inst-svc-card__body {
    padding: 18px 20px 20px;
    display: flex; flex-direction: column;
    gap: 6px; flex: 1;
}
.inst-svc-card__name {
    font-size: 16px; font-weight: 700;
    color: var(--i-text-h); line-height: 1.3;
}
.inst-svc-card__desc {
    font-size: 13px; color: var(--i-text-muted);
    line-height: 1.55; flex: 1;
}
.inst-svc-card__footer {
    display: flex; align-items: center;
    justify-content: space-between; gap: 8px;
    margin-top: 12px; padding-top: 12px;
    border-top: 1px solid var(--i-border);
}
.inst-svc-card__deadline {
    display: flex; align-items: center; gap: 5px;
    font-size: 12px; color: var(--i-text-muted);
}
.inst-svc-card__deadline i { font-size: 14px; }
.inst-svc-card__cta {
    display: flex; align-items: center; gap: 5px;
    font-size: 13px; font-weight: 700; color: var(--i-blue);
    transition: gap .2s;
}
.inst-svc-card:hover .inst-svc-card__cta { gap: 8px; }

/* ── Адаптив ────────────────────────────────────────────── */
@media (max-width: 1100px) {
    .inst-stats-bar__grid { grid-template-columns: repeat(2,1fr); }
    .inst-stat-cell:nth-child(2) { border-right: none; }
    .inst-stat-cell:nth-child(3),
    .inst-stat-cell:nth-child(4) { border-top: 1px solid var(--i-border); }
    .inst-stat-cell:nth-child(4) { border-right: none; }
}
@media (max-width: 960px) {
    .inst-layout { grid-template-columns: 1fr; }
    .inst-sidebar { position: static; order: -1; }
    .inst-hero__inner { grid-template-columns: 1fr; }
    .inst-hero__badge-wrap { display: none; }
}
@media (max-width: 600px) {
    .inst-hero__title { font-size: 28px; }
    .inst-stats-bar__grid { grid-template-columns: 1fr 1fr; }
    .inst-services__grid { grid-template-columns: 1fr 1fr; }
    .inst-svc-card__cover { height: 150px; }
    .inst-hero__cta { flex-direction: column; }
    .inst-btn { justify-content: center; }
    .inst-services-section__title { font-size: 24px; }
}
@media (max-width: 420px) {
    .inst-services__grid { grid-template-columns: 1fr; }
}

/* ===========================
   BLOG SINGLE POST (single.php)
   =========================== */
.sp { background: #f2f8ff; min-height: 80vh; }
[data-theme="dark"] .sp { background: #1c1c1e; }

/* Hero */
.sp__hero {
    position: relative; overflow: hidden;
    padding: 56px 0 48px; min-height: 340px;
    display: flex; align-items: flex-end;
}
.sp__hero--img {
    background-image: var(--sp-thumb);
    background-size: cover; background-position: center;
}
.sp__hero--gradient {
    background: linear-gradient(145deg,#0d1b3e 0%,#0a2a4a 50%,#0d2e1a 100%);
}
[data-theme="dark"] .sp__hero--gradient { background: linear-gradient(145deg,#0c1e36 0%,#0c2418 100%); }
.sp__hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(8,20,48,.88) 0%, rgba(8,20,48,.55) 50%, rgba(8,20,48,.2) 100%);
}
.sp__hero .container { position: relative; z-index: 1; width: 100%; }
.sp__hero .breadcrumbs { opacity: .7; margin-bottom: 20px; }
.sp__hero-content { max-width: 760px; }
.sp__hero-cats { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.sp__hero-cat {
    display: inline-flex; align-items: center;
    background: rgba(0,113,227,.75); color: #fff;
    font-size: 12px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .05em; padding: 4px 12px; border-radius: 20px;
    text-decoration: none; backdrop-filter: blur(4px);
    transition: background .2s;
}
.sp__hero-cat:hover { background: #0071E3; }
.sp__hero-title {
    font-size: clamp(24px,4vw,42px); font-weight: 800;
    color: #fff; line-height: 1.2; margin: 0 0 18px;
    text-shadow: 0 2px 12px rgba(0,0,0,.3);
}
.sp__hero-meta {
    display: flex; align-items: center; flex-wrap: wrap;
    gap: 6px 12px; color: rgba(255,255,255,.82); font-size: 14px;
}
.sp__hero-meta-item { display: flex; align-items: center; gap: 6px; }
.sp__hero-meta-item i { color: #2FBF53; font-size: 15px; }
.sp__hero-meta-sep { color: rgba(255,255,255,.4); }

/* Layout */
.sp__body { padding: 44px 0 56px; }
.sp__layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 40px; align-items: start;
}

/* Контент */
.sp__main { min-width: 0; }
.sp__content {
    background: #fff; border: 1px solid rgba(0,113,227,.09);
    border-radius: 16px; padding: 36px 40px;
    box-shadow: 0 2px 12px rgba(0,113,227,.06);
    margin-bottom: 24px;
    font-size: 17px; line-height: 1.8; color: #374151;
}
[data-theme="dark"] .sp__content { background: #2c2c2e; border-color: rgba(255,255,255,.07); color: #ebebf5; }
.sp__content h2 { font-size: 24px; font-weight: 800; color: #0d1b3e; margin: 32px 0 14px; }
.sp__content h3 { font-size: 20px; font-weight: 700; color: #0d1b3e; margin: 24px 0 10px; }
[data-theme="dark"] .sp__content h2,
[data-theme="dark"] .sp__content h3 { color: #f2f2f7; }
.sp__content p { margin: 0 0 18px; }
.sp__content ul,.sp__content ol { padding-left: 24px; margin: 0 0 18px; }
.sp__content li { margin-bottom: 6px; }
.sp__content a { color: #0071E3; text-decoration: underline; }
.sp__content img { width: 100%; height: auto; border-radius: 12px; margin: 8px 0 20px; }
.sp__content blockquote {
    border-left: 4px solid #0071E3; margin: 24px 0;
    padding: 16px 20px; background: rgba(0,113,227,.05);
    border-radius: 0 12px 12px 0; font-style: italic; color: #6b7280;
}
[data-theme="dark"] .sp__content blockquote { background: rgba(0,113,227,.10); }

/* Теги */
.sp__tags {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
    padding: 20px 24px; background: #fff;
    border: 1px solid rgba(0,113,227,.09); border-radius: 14px;
    margin-bottom: 20px;
    box-shadow: 0 2px 10px rgba(0,113,227,.05);
}
[data-theme="dark"] .sp__tags { background: #2c2c2e; border-color: rgba(255,255,255,.07); }
.sp__tags-label { font-size: 13px; font-weight: 700; color: #6b7280; display: flex; align-items: center; gap: 5px; }
.sp__tags-label i { color: #0071E3; }
.sp__tag {
    display: inline-flex; align-items: center;
    background: rgba(0,113,227,.08); color: #0071E3;
    font-size: 13px; font-weight: 600; padding: 4px 12px; border-radius: 20px;
    text-decoration: none; transition: background .2s, color .2s;
}
.sp__tag:hover { background: #0071E3; color: #fff; }

/* Автор */
.sp__author-card {
    display: flex; align-items: center; gap: 16px;
    padding: 20px 24px; background: #fff;
    border: 1px solid rgba(0,113,227,.09); border-radius: 14px;
    box-shadow: 0 2px 10px rgba(0,113,227,.05);
}
[data-theme="dark"] .sp__author-card { background: #2c2c2e; border-color: rgba(255,255,255,.07); }
.sp__author-avatar { flex-shrink: 0; }
.sp__author-img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(0,113,227,.2); }
.sp__author-name { font-size: 16px; font-weight: 800; color: #0d1b3e; margin-bottom: 4px; }
[data-theme="dark"] .sp__author-name { color: #f2f2f7; }
.sp__author-bio { font-size: 13px; color: #6b7280; line-height: 1.5; }

/* Сайдбар */
.sp__sidebar { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 90px; }

/* CTA сайдбар */
.sp__sidebar-cta {
    background: linear-gradient(145deg,#0d1b3e,#0a2a4a);
    border-radius: 16px; padding: 24px;
    text-align: center;
}
.sp__sidebar-cta__icon {
    width: 52px; height: 52px; border-radius: 14px; margin: 0 auto 14px;
    background: rgba(0,113,227,.3);
    display: flex; align-items: center; justify-content: center;
    font-size: 24px; color: #60aeff;
}
.sp__sidebar-cta__title { font-size: 17px; font-weight: 800; color: #fff; margin: 0 0 8px; }
.sp__sidebar-cta__desc { font-size: 13px; color: rgba(255,255,255,.7); line-height: 1.55; margin: 0 0 16px; }
.sp__sidebar-cta__btn {
    display: flex; align-items: center; justify-content: center; gap: 7px;
    width: 100%; padding: 12px 18px; border-radius: 12px;
    background: linear-gradient(90deg,#0071E3,#2FBF53); color: #fff;
    font-size: 14px; font-weight: 700; text-decoration: none;
    box-shadow: 0 4px 16px rgba(0,113,227,.35);
    transition: opacity .2s, transform .2s;
}
.sp__sidebar-cta__btn:hover { opacity: .9; transform: translateY(-2px); }
.sp__sidebar-cta__list {
    list-style: none; padding: 0; margin: 14px 0 0;
    text-align: left; display: flex; flex-direction: column; gap: 7px;
}
.sp__sidebar-cta__list li { display: flex; align-items: center; gap: 7px; font-size: 13px; color: rgba(255,255,255,.75); }
.sp__sidebar-cta__list li i { color: #2FBF53; font-size: 15px; }

/* Мета-карточка сайдбар */
.sp__sidebar-meta {
    background: #fff; border: 1px solid rgba(0,113,227,.09);
    border-radius: 14px; padding: 18px 20px;
    display: flex; flex-direction: column; gap: 14px;
    box-shadow: 0 2px 10px rgba(0,113,227,.05);
}
[data-theme="dark"] .sp__sidebar-meta { background: #2c2c2e; border-color: rgba(255,255,255,.07); }
.sp__sidebar-meta-item { display: flex; align-items: center; gap: 12px; }
.sp__sidebar-meta-item > i { font-size: 20px; color: #0071E3; flex-shrink: 0; }
.sp__sidebar-meta-label { font-size: 11px; color: #9ca3af; text-transform: uppercase; letter-spacing: .04em; }
.sp__sidebar-meta-val { font-size: 14px; font-weight: 700; color: #0d1b3e; }
[data-theme="dark"] .sp__sidebar-meta-val { color: #f2f2f7; }
.sp__sidebar-meta-val a { color: #0071E3; text-decoration: none; }
.sp__sidebar-meta-val a:hover { text-decoration: underline; }

/* Похожие статьи */
.sp__related {
    background: #fff; padding: 52px 0;
    border-top: 1px solid rgba(0,113,227,.08);
}
[data-theme="dark"] .sp__related { background: #2c2c2e; border-color: rgba(255,255,255,.07); }
.sp__related-title {
    display: flex; align-items: center; gap: 10px;
    font-size: 24px; font-weight: 800; color: #0d1b3e;
    margin: 0 0 28px;
}
[data-theme="dark"] .sp__related-title { color: #f2f2f7; }
.sp__related-title i { color: #0071E3; }
.sp__related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.sp__related-card {
    background: #f2f8ff; border: 1px solid rgba(0,113,227,.10);
    border-radius: 14px; overflow: hidden; text-decoration: none;
    display: flex; flex-direction: column;
    transition: transform .25s, box-shadow .25s, border-color .25s;
}
[data-theme="dark"] .sp__related-card { background: #3a3a3c; border-color: rgba(255,255,255,.07); }
.sp__related-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,113,227,.13); border-color: #0071E3; }
.sp__related-card__thumb { position: relative; height: 160px; overflow: hidden; background: #eaf4ff; flex-shrink: 0; }
[data-theme="dark"] .sp__related-card__thumb { background: #2c2c2e; }
.sp__related-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.sp__related-card:hover .sp__related-card__thumb img { transform: scale(1.05); }
.sp__related-card__thumb-fallback { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 40px; color: rgba(0,113,227,.2); }
.sp__related-card__cat {
    position: absolute; top: 10px; left: 10px;
    background: rgba(255,255,255,.92); color: #0071E3;
    font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 20px;
}
.sp__related-card__body { padding: 14px 16px 16px; flex: 1; }
.sp__related-card__title { font-size: 15px; font-weight: 800; color: #0d1b3e; line-height: 1.3; margin-bottom: 10px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
[data-theme="dark"] .sp__related-card__title { color: #f2f2f7; }
.sp__related-card__meta { display: flex; gap: 10px; font-size: 12px; color: #9ca3af; }
.sp__related-card__meta span { display: flex; align-items: center; gap: 4px; }
.sp__related-card__meta i { font-size: 13px; color: #0071E3; }

/* Адаптив single */
@media (max-width: 1024px) {
    .sp__layout { grid-template-columns: 1fr; }
    .sp__sidebar { position: static; flex-direction: row; flex-wrap: wrap; }
    .sp__sidebar > * { flex: 1; min-width: 260px; }
    .sp__related-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 768px) {
    .sp__hero { min-height: 260px; padding: 40px 0 36px; }
    .sp__hero-title { font-size: clamp(22px,5vw,32px); }
    .sp__content { padding: 24px; }
    .sp__related-grid { grid-template-columns: 1fr; }
    .sp__sidebar { flex-direction: column; }
}
@media (max-width: 480px) {
    .sp__content { padding: 18px; font-size: 16px; }
    .sp__hero-meta { font-size: 12px; }
}

/* ===========================
   BLOG ARCHIVE (home.php)
   =========================== */
.blog-arc { background: #f2f8ff; min-height: 80vh; }
[data-theme="dark"] .blog-arc { background: #1c1c1e; }

/* Hero */
.blog-arc__hero {
    position: relative; overflow: hidden;
    padding: 60px 0 48px; text-align: center;
    background: linear-gradient(160deg,#eaf4ff 0%,#edfaf2 55%,#eaf4ff 100%);
    border-bottom: 1px solid rgba(0,113,227,.10);
}
[data-theme="dark"] .blog-arc__hero {
    background: linear-gradient(160deg,#0c1e36 0%,#0c2418 50%,#0c1e36 100%);
    border-color: rgba(255,255,255,.06);
}
.blog-arc__hero-blob { position: absolute; border-radius: 50%; filter: blur(72px); opacity: .32; pointer-events: none; }
.blog-arc__hero-blob--1 { width:280px;height:280px;background:#8ec8f8;top:-80px;right:6%; }
.blog-arc__hero-blob--2 { width:200px;height:200px;background:#9deebb;bottom:-60px;left:5%; }
.blog-arc__hero-inner { position: relative; z-index: 1; max-width: 640px; margin: 0 auto; }
.blog-arc__hero-label {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(0,113,227,.10); color: #0071E3;
    border: 1px solid rgba(0,113,227,.22);
    font-size: 13px; font-weight: 700;
    padding: 5px 14px; border-radius: 20px; margin-bottom: 16px;
}
[data-theme="dark"] .blog-arc__hero-label { background: rgba(0,113,227,.18); }
.blog-arc__hero-title { font-size: clamp(28px,5vw,48px); font-weight: 800; color: #0d1b3e; margin: 0 0 12px; line-height: 1.15; }
[data-theme="dark"] .blog-arc__hero-title { color: #f2f2f7; }
.blog-arc__hero-sub { font-size: clamp(14px,2vw,17px); color: #6b7280; margin: 0 0 28px; line-height: 1.6; }
[data-theme="dark"] .blog-arc__hero-sub { color: #98989e; }

/* Поиск */
.blog-arc__search {
    display: flex; align-items: center;
    background: #fff; border: 2px solid rgba(0,113,227,.18);
    border-radius: 14px; overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,113,227,.09);
    transition: border-color .2s, box-shadow .2s;
}
[data-theme="dark"] .blog-arc__search { background: #2c2c2e; border-color: rgba(255,255,255,.1); }
.blog-arc__search:focus-within { border-color: #0071E3; box-shadow: 0 4px 24px rgba(0,113,227,.22); }
.blog-arc__search-icon { position: absolute; left: 18px; font-size: 20px; color: #0071E3; pointer-events: none; }
.blog-arc__search { position: relative; }
.blog-arc__search-input {
    flex: 1; padding: 15px 16px 15px 50px;
    font-size: 16px; background: none; border: none; outline: none; color: #0d1b3e;
}
[data-theme="dark"] .blog-arc__search-input { color: #f2f2f7; }
.blog-arc__search-input::placeholder { color: #9ca3af; }
.blog-arc__search-btn {
    flex-shrink: 0;
    margin: 6px 6px 6px 0;
    padding: 0 20px; height: 44px;
    background: linear-gradient(90deg, #0071E3, #2FBF53);
    border: none; border-radius: 10px;
    color: #fff; font-size: 18px; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 12px rgba(0,113,227,.30);
    transition: opacity .2s, transform .2s;
}
.blog-arc__search-btn:hover { opacity: .88; transform: scale(1.04); }

/* Тело */
.blog-arc__body { padding: 40px 0 56px; }

/* Категории */
.blog-arc__cats { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.blog-arc__cat {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 16px; border-radius: 24px;
    font-size: 14px; font-weight: 600; text-decoration: none;
    background: #fff; color: #374151;
    border: 1px solid rgba(0,113,227,.15);
    box-shadow: 0 2px 8px rgba(0,113,227,.06);
    transition: all .2s;
}
[data-theme="dark"] .blog-arc__cat { background: #2c2c2e; color: #ebebf5; border-color: rgba(255,255,255,.1); }
.blog-arc__cat:hover, .blog-arc__cat.is-active {
    background: #0071E3; color: #fff; border-color: #0071E3;
    box-shadow: 0 4px 16px rgba(0,113,227,.28);
}
.blog-arc__cat-count {
    background: rgba(0,113,227,.12); color: #0071E3;
    font-size: 11px; font-weight: 800;
    padding: 1px 7px; border-radius: 12px;
}
.blog-arc__cat.is-active .blog-arc__cat-count,
.blog-arc__cat:hover .blog-arc__cat-count { background: rgba(255,255,255,.25); color: #fff; }

/* Featured пост */
.blog-arc__featured {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 0; border-radius: 20px; overflow: hidden;
    background: #fff; border: 1px solid rgba(0,113,227,.10);
    box-shadow: 0 4px 24px rgba(0,113,227,.10);
    margin-bottom: 36px;
    transition: box-shadow .25s, transform .25s;
}
[data-theme="dark"] .blog-arc__featured { background: #2c2c2e; border-color: rgba(255,255,255,.07); }
.blog-arc__featured:hover { box-shadow: 0 12px 40px rgba(0,113,227,.16); transform: translateY(-3px); }
.blog-arc__featured-thumb {
    position: relative; display: block; overflow: hidden;
    min-height: 300px; background: #eaf4ff;
}
[data-theme="dark"] .blog-arc__featured-thumb { background: #3a3a3c; }
.blog-arc__featured-thumb img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .4s ease;
}
.blog-arc__featured:hover .blog-arc__featured-thumb img { transform: scale(1.04); }
.blog-arc__featured-thumb-fallback {
    width: 100%; height: 100%; min-height: 300px;
    display: flex; align-items: center; justify-content: center;
    font-size: 72px; color: rgba(0,113,227,.2);
    background: linear-gradient(135deg,#eaf4ff,#edfaf2);
}
.blog-arc__featured-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to right, transparent 60%, rgba(13,27,62,.06) 100%);
}
.blog-arc__featured-content {
    padding: 36px 36px 36px 32px;
    display: flex; flex-direction: column; justify-content: center;
}
.blog-arc__featured-cat {
    display: inline-flex; align-items: center;
    background: rgba(0,113,227,.10); color: #0071E3;
    font-size: 12px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .05em; padding: 4px 12px; border-radius: 20px;
    text-decoration: none; margin-bottom: 14px;
    transition: background .2s;
}
.blog-arc__featured-cat:hover { background: #0071E3; color: #fff; }
.blog-arc__featured-title { font-size: clamp(20px,2.5vw,28px); font-weight: 800; color: #0d1b3e; line-height: 1.25; margin: 0 0 12px; }
[data-theme="dark"] .blog-arc__featured-title { color: #f2f2f7; }
.blog-arc__featured-title a { text-decoration: none; color: inherit; }
.blog-arc__featured-title a:hover { color: #0071E3; }
.blog-arc__featured-excerpt { font-size: 15px; color: #6b7280; line-height: 1.7; margin: 0 0 20px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
[data-theme="dark"] .blog-arc__featured-excerpt { color: #98989e; }
.blog-arc__featured-meta { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13px; color: #9ca3af; margin-bottom: 24px; }
.blog-arc__featured-meta span { display: flex; align-items: center; gap: 5px; }
.blog-arc__featured-meta i { font-size: 15px; color: #0071E3; }
.blog-arc__featured-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: linear-gradient(90deg,#0071E3,#2FBF53); color: #fff;
    font-size: 15px; font-weight: 700; padding: 12px 24px; border-radius: 12px;
    text-decoration: none; align-self: flex-start;
    box-shadow: 0 4px 16px rgba(0,113,227,.28);
    transition: opacity .2s, transform .2s;
}
.blog-arc__featured-btn:hover { opacity: .9; transform: translateY(-2px); }

/* Сетка постов */
.blog-arc__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px; margin-bottom: 40px;
}
.blog-post-card {
    background: #fff; border: 1px solid rgba(0,113,227,.10);
    border-radius: 16px; overflow: hidden;
    display: flex; flex-direction: column;
    box-shadow: 0 2px 10px rgba(0,113,227,.06);
    transition: transform .25s, box-shadow .25s, border-color .25s;
}
[data-theme="dark"] .blog-post-card { background: #2c2c2e; border-color: rgba(255,255,255,.07); }
.blog-post-card:hover { transform: translateY(-5px); box-shadow: 0 14px 36px rgba(0,113,227,.14); border-color: #0071E3; }
.blog-post-card__thumb {
    position: relative; display: block; overflow: hidden;
    height: 200px; background: #eaf4ff; flex-shrink: 0;
}
[data-theme="dark"] .blog-post-card__thumb { background: #3a3a3c; }
.blog-post-card__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.blog-post-card:hover .blog-post-card__thumb img { transform: scale(1.05); }
.blog-post-card__thumb-fallback {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    font-size: 48px; color: rgba(0,113,227,.18);
    background: linear-gradient(135deg,#eaf4ff,#edfaf2);
}
.blog-post-card__cat {
    position: absolute; top: 12px; left: 12px;
    background: rgba(255,255,255,.92); color: #0071E3;
    font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .04em; padding: 3px 10px; border-radius: 20px;
    backdrop-filter: blur(4px);
}
.blog-post-card__body { padding: 18px 18px 16px; display: flex; flex-direction: column; flex: 1; }
.blog-post-card__title { font-size: 17px; font-weight: 800; color: #0d1b3e; line-height: 1.3; margin: 0 0 8px; }
[data-theme="dark"] .blog-post-card__title { color: #f2f2f7; }
.blog-post-card__title a { text-decoration: none; color: inherit; transition: color .2s; }
.blog-post-card__title a:hover { color: #0071E3; }
.blog-post-card__excerpt { font-size: 13px; color: #6b7280; line-height: 1.6; margin: 0; flex: 1; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
[data-theme="dark"] .blog-post-card__excerpt { color: #98989e; }
.blog-post-card__footer {
    display: flex; align-items: center; justify-content: space-between;
    padding-top: 14px; margin-top: 14px;
    border-top: 1px solid rgba(0,113,227,.08);
}
[data-theme="dark"] .blog-post-card__footer { border-color: rgba(255,255,255,.07); }
.blog-post-card__meta { display: flex; gap: 12px; font-size: 12px; color: #9ca3af; flex-wrap: wrap; }
.blog-post-card__meta span { display: flex; align-items: center; gap: 4px; }
.blog-post-card__meta i { font-size: 13px; color: #0071E3; }
.blog-post-card__link {
    width: 32px; height: 32px; border-radius: 10px;
    background: #eaf4ff; color: #0071E3;
    display: flex; align-items: center; justify-content: center;
    font-size: 16px; text-decoration: none; flex-shrink: 0;
    transition: background .2s, color .2s;
}
[data-theme="dark"] .blog-post-card__link { background: rgba(0,113,227,.12); }
.blog-post-card:hover .blog-post-card__link { background: #0071E3; color: #fff; }

/* Пагинация */
.blog-arc__pagination { margin-top: 16px; text-align: center; }
.blog-arc__pagination .nav-links { display: flex; justify-content: center; gap: 6px; }
.blog-arc__pagination .page-numbers {
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 10px; font-size: 14px; font-weight: 600;
    text-decoration: none; color: #374151; background: #fff;
    border: 1px solid rgba(0,113,227,.15); transition: all .2s;
}
[data-theme="dark"] .blog-arc__pagination .page-numbers { background: #2c2c2e; color: #ebebf5; border-color: rgba(255,255,255,.1); }
.blog-arc__pagination .page-numbers.current,
.blog-arc__pagination .page-numbers:hover { background: #0071E3; color: #fff; border-color: #0071E3; }
.blog-arc__pagination .prev, .blog-arc__pagination .next { width: auto; padding: 0 16px; }

/* Пустое состояние */
.blog-arc__empty { text-align: center; padding: 60px 0; color: #6b7280; }
.blog-arc__empty i { font-size: 52px; display: block; margin-bottom: 12px; opacity: .3; }

/* CTA */
.blog-arc__cta {
    position: relative; overflow: hidden;
    background: linear-gradient(135deg,#0071E3 0%,#2FBF53 100%);
    padding: 52px 0;
}
.blog-arc__cta-blob-1,.blog-arc__cta-blob-2 {
    position: absolute; border-radius: 50%; background: rgba(255,255,255,.10); pointer-events: none;
}
.blog-arc__cta-blob-1 { width:300px;height:300px;top:-110px;right:-50px; }
.blog-arc__cta-blob-2 { width:180px;height:180px;bottom:-70px;left:-30px; }
.blog-arc__cta-inner {
    position: relative; z-index: 1;
    display: flex; align-items: center; gap: 28px; flex-wrap: wrap;
}
.blog-arc__cta-icon {
    width: 64px; height: 64px; flex-shrink: 0;
    background: rgba(255,255,255,.15); border-radius: 18px;
    display: flex; align-items: center; justify-content: center;
    font-size: 30px; color: #fff;
}
.blog-arc__cta-text { flex: 1; min-width: 200px; }
.blog-arc__cta-text h2 { font-size: clamp(18px,3vw,26px); font-weight: 800; color: #fff; margin: 0 0 6px; }
.blog-arc__cta-text p  { font-size: 14px; color: rgba(255,255,255,.82); margin: 0; line-height: 1.55; }
.blog-arc__cta-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: #fff; color: #0071E3; font-size: 15px; font-weight: 800;
    padding: 14px 28px; border-radius: 12px;
    text-decoration: none; white-space: nowrap; flex-shrink: 0;
    box-shadow: 0 4px 20px rgba(0,0,0,.18);
    transition: transform .2s, box-shadow .2s;
}
.blog-arc__cta-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,0,0,.22); }

/* Адаптив блога */
@media (max-width: 1024px) { .blog-arc__grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 768px) {
    .blog-arc__featured { grid-template-columns: 1fr; }
    .blog-arc__featured-thumb { min-height: 220px; }
    .blog-arc__featured-content { padding: 24px; }
    .blog-arc__grid { grid-template-columns: repeat(2,1fr); gap: 14px; }
}
@media (max-width: 560px) {
    .blog-arc__grid { grid-template-columns: 1fr; }
    .blog-arc__cta-inner { flex-direction: column; text-align: center; align-items: center; }
    .blog-arc__cta-icon { display: none; }
    .blog-arc__cta-btn { width: 100%; justify-content: center; }
}

/* ===========================
   FLEX BLOCK: INSTITUTIONS
   =========================== */
.fb-inst__head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:20px; flex-wrap:wrap; }
.fb-inst__title { font-size:clamp(20px,3vw,28px); font-weight:800; color:var(--text-primary); margin:0; }
.fb-inst__all {
    display:inline-flex; align-items:center; gap:5px;
    font-size:14px; font-weight:700; color:#0071E3; text-decoration:none;
    transition:gap .2s;
}
.fb-inst__all:hover { gap:8px; }

/* Поиск */
.fb-inst__controls { display:flex; flex-direction:column; gap:12px; margin-bottom:20px; }
.fb-inst__search-wrap {
    position:relative; display:flex; align-items:center;
    background:var(--bg-secondary); border:1.5px solid rgba(0,113,227,.15);
    border-radius:12px; overflow:hidden;
    transition:border-color .2s, box-shadow .2s;
}
.fb-inst__search-wrap:focus-within { border-color:#0071E3; box-shadow:0 0 0 3px rgba(0,113,227,.12); }
.fb-inst__search-icon { position:absolute; left:14px; font-size:18px; color:#0071E3; pointer-events:none; }
.fb-inst__search {
    width:100%; padding:12px 42px 12px 42px;
    font-size:15px; background:none; border:none; outline:none; color:var(--text-primary);
}
.fb-inst__search::placeholder { color:var(--text-tertiary); }
.fb-inst__search-clear {
    position:absolute; right:10px;
    width:28px; height:28px; border-radius:8px;
    background:var(--bg-tertiary,var(--bg-primary)); border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    font-size:14px; color:var(--text-secondary); transition:background .2s;
}
.fb-inst__search-clear:hover { background:rgba(0,113,227,.1); color:#0071E3; }

.fb-spec__search-wrap {
    position:relative; display:flex; align-items:center;
    background:var(--bg-secondary); border:1.5px solid rgba(0,113,227,.15);
    border-radius:12px; overflow:hidden; margin-bottom:20px;
    transition:border-color .2s, box-shadow .2s;
}
.fb-spec__search-wrap:focus-within { border-color:#0071E3; box-shadow:0 0 0 3px rgba(0,113,227,.12); }

/* Табы */
.fb-inst__tabs { display:flex; flex-wrap:wrap; gap:8px; }
.fb-inst__tab {
    display:inline-flex; align-items:center; gap:5px;
    padding:7px 16px; border-radius:20px; border:1.5px solid rgba(0,113,227,.15);
    font-size:13px; font-weight:600; cursor:pointer;
    background:var(--bg-secondary); color:var(--text-secondary);
    transition:all .2s;
}
.fb-inst__tab:hover, .fb-inst__tab.is-active {
    background:#0071E3; color:#fff; border-color:#0071E3;
    box-shadow:0 4px 12px rgba(0,113,227,.25);
}

/* Счётчик */
.fb-inst__counter { font-size:13px; color:var(--text-tertiary); margin-bottom:12px; min-height:18px; }

/* Пусто */
.fb-inst__empty {
    display:none; flex-direction:column; align-items:center; gap:10px;
    padding:48px 20px; text-align:center; color:var(--text-tertiary);
}
.fb-inst__empty i { font-size:48px; opacity:.3; }
.fb-inst__empty p { margin:0; font-size:15px; }

/* Сетка учреждений */
.fb-inst__grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(220px,1fr));
    gap:16px;
}
.fb-inst-card {
    display:flex; flex-direction:column;
    background:var(--bg-secondary); border:1px solid rgba(0,113,227,.10);
    border-radius:16px; text-decoration:none; overflow:hidden;
    box-shadow:0 2px 10px rgba(0,113,227,.06);
    transition:transform .25s, box-shadow .25s, border-color .25s;
}
[data-theme="dark"] .fb-inst-card { border-color:rgba(255,255,255,.07); }
.fb-inst-card:hover { transform:translateY(-4px); box-shadow:0 12px 30px rgba(0,113,227,.14); border-color:#0071E3; }

.fb-inst-card__top {
    position:relative; height:140px;
    background:#eaf4ff; display:flex;
    align-items:center; justify-content:center; overflow:hidden; flex-shrink:0;
}
[data-theme="dark"] .fb-inst-card__top { background:rgba(0,113,227,.08); }
.fb-inst-card__logo { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.fb-inst-card__logo--cover { width:100%; height:100%; object-fit:cover; }
.fb-inst-card:hover .fb-inst-card__logo { transform:scale(1.06); }

.fb-inst-card__abbr {
    width:100%; height:100%; display:flex; align-items:center; justify-content:center;
    position:relative; overflow:hidden;
}
.fb-inst-card__abbr-orb-1,
.fb-inst-card__abbr-orb-2 {
    position:absolute; border-radius:50%; background:rgba(255,255,255,.15); pointer-events:none;
}
.fb-inst-card__abbr-orb-1 { width:110px;height:110px;top:-28px;right:-18px; }
.fb-inst-card__abbr-orb-2 { width:70px;height:70px;bottom:-20px;left:-12px; }
.fb-inst-card__abbr span {
    position:relative; z-index:1; font-weight:900; color:#fff;
    text-align:center; line-height:1.15; word-break:break-word;
    padding:14px; text-shadow:0 2px 10px rgba(0,0,0,.2); max-width:100%;
}
.fb-inst-card__type {
    position:absolute; top:8px; left:8px;
    background:rgba(255,255,255,.90); color:#0d1b3e;
    font-size:10px; font-weight:700; padding:2px 9px; border-radius:20px;
    text-transform:uppercase; letter-spacing:.04em;
}
[data-theme="dark"] .fb-inst-card__type { background:rgba(44,44,46,.90); color:#f2f2f7; }

.fb-inst-card__body { padding:12px 14px 8px; flex:1; }
.fb-inst-card__name { font-size:15px; font-weight:800; color:var(--text-primary); line-height:1.25; margin-bottom:3px; }
.fb-inst-card__fullname { font-size:11px; color:var(--text-tertiary); line-height:1.4; margin-bottom:5px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.fb-inst-card__city { display:flex; align-items:center; gap:4px; font-size:12px; color:var(--text-tertiary); margin-bottom:6px; }
.fb-inst-card__city i { font-size:13px; color:#0071E3; }
.fb-inst-card__stats { display:flex; gap:10px; }
.fb-inst-card__stats span { display:flex; align-items:center; gap:3px; font-size:12px; font-weight:700; color:var(--text-primary); }
.fb-inst-card__stats i { font-size:13px; color:#0071E3; }

.fb-inst-card__footer {
    display:flex; align-items:center; justify-content:center; gap:6px;
    padding:10px 14px; font-size:13px; font-weight:700; color:#fff;
    background:linear-gradient(90deg,#0071E3,#2FBF53);
    transition:opacity .2s;
}
.fb-inst-card:hover .fb-inst-card__footer { opacity:.88; }

/* ===========================
   FLEX BLOCK: SPECIALTIES
   =========================== */
.fb-spec__grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(200px,1fr));
    gap:16px;
}
.fb-spec-card {
    display:flex; flex-direction:column;
    background:var(--bg-secondary); border:1px solid rgba(0,113,227,.10);
    border-radius:18px; text-decoration:none; overflow:hidden;
    box-shadow:0 2px 10px rgba(0,113,227,.06);
    transition:transform .25s, box-shadow .25s;
}
[data-theme="dark"] .fb-spec-card { border-color:rgba(255,255,255,.07); }
.fb-spec-card:hover { transform:translateY(-5px); box-shadow:0 14px 36px rgba(0,113,227,.14); }

.fb-spec-card__top {
    position:relative; height:165px;
    display:flex; align-items:center; justify-content:center;
    overflow:hidden; flex-shrink:0;
}
.fb-spec-card__orb-1,
.fb-spec-card__orb-2 {
    position:absolute; border-radius:50%;
    background:rgba(255,255,255,.15); pointer-events:none;
}
.fb-spec-card__orb-1 { width:130px;height:130px;top:-35px;right:-25px; }
.fb-spec-card__orb-2 { width:85px;height:85px;bottom:-25px;left:-15px; }
.fb-spec-card__overlay {
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(to bottom,transparent 35%,rgba(0,0,0,.2) 65%,rgba(0,0,0,.58) 100%);
    pointer-events:none;
}
.fb-spec-card__cover-img {
    position:absolute; inset:0; z-index:0;
    width:100%; height:100%; object-fit:contain; object-position:center;
    transition:transform .35s;
}
.fb-spec-card:hover .fb-spec-card__cover-img { transform:scale(1.05); }
.fb-spec-card__icon-bare {
    position:relative; z-index:2; font-size:66px;
    color:rgba(255,255,255,.95);
    filter:drop-shadow(0 4px 14px rgba(0,0,0,.2));
    margin-bottom:34px;
    transition:transform .35s cubic-bezier(.34,1.56,.64,1);
}
.fb-spec-card:hover .fb-spec-card__icon-bare { transform:scale(1.12) translateY(-5px); }
.fb-spec-card__badge {
    position:absolute; top:10px; right:10px; z-index:3;
    display:inline-flex; align-items:center; gap:4px;
    font-size:10px; font-weight:700; padding:3px 9px; border-radius:20px;
    text-transform:uppercase; letter-spacing:.04em;
}
.fb-spec-card__badge--popular { background:rgba(220,38,38,.85); color:#fff; }
.fb-spec-card__badge--new     { background:rgba(22,163,74,.85);  color:#fff; }
.fb-spec-card__badge--demand  { background:rgba(217,119,6,.85);  color:#fff; }
.fb-spec-card__name {
    position:absolute; bottom:0; left:0; right:0; z-index:3;
    padding:9px 13px 12px;
    font-size:14px; font-weight:800; color:#fff;
    line-height:1.25; text-shadow:0 1px 8px rgba(0,0,0,.35);
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.fb-spec-card__sub {
    font-size:12px; color:var(--text-tertiary); line-height:1.5;
    padding:10px 13px 8px; flex:1;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.fb-spec-card__footer {
    display:flex; align-items:center; justify-content:center; gap:6px;
    padding:10px 13px; font-size:13px; font-weight:700; color:#fff;
    transition:opacity .2s;
}
.fb-spec-card:hover .fb-spec-card__footer { opacity:.88; }

/* Адаптив блоков */
@media (max-width:860px) {
    .fb-inst__grid { grid-template-columns:repeat(2,1fr); }
    .fb-spec__grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:480px) {
    .fb-inst__grid { grid-template-columns:1fr; }
    .fb-spec__grid { grid-template-columns:1fr 1fr; }
    .fb-spec-card__top { height:130px; }
    .fb-spec-card__icon-bare { font-size:50px; margin-bottom:26px; }
}

/* ===========================
   CONTACTS PAGE
   =========================== */
.contacts-page { background: #f2f8ff; min-height: 80vh; }
[data-theme="dark"] .contacts-page { background: #1c1c1e; }

/* Hero */
.contacts-hero {
    position: relative; overflow: hidden;
    padding: 60px 0 52px; text-align: center;
    background: linear-gradient(160deg,#eaf4ff 0%,#edfaf2 55%,#eaf4ff 100%);
    border-bottom: 1px solid rgba(0,113,227,.10);
}
[data-theme="dark"] .contacts-hero { background: linear-gradient(160deg,#0c1e36 0%,#0c2418 50%,#0c1e36 100%); border-color: rgba(255,255,255,.06); }
.contacts-hero__blob-1,.contacts-hero__blob-2 { position:absolute; border-radius:50%; filter:blur(72px); opacity:.32; pointer-events:none; }
.contacts-hero__blob-1 { width:280px;height:280px;background:#8ec8f8;top:-80px;right:6%; }
.contacts-hero__blob-2 { width:200px;height:200px;background:#9deebb;bottom:-60px;left:5%; }
.contacts-hero__inner { position:relative; z-index:1; max-width:640px; margin:0 auto; }
.contacts-hero__label {
    display:inline-flex; align-items:center; gap:6px;
    background:rgba(0,113,227,.10); color:#0071E3;
    border:1px solid rgba(0,113,227,.22);
    font-size:13px; font-weight:700; padding:5px 14px; border-radius:20px; margin-bottom:16px;
}
[data-theme="dark"] .contacts-hero__label { background:rgba(0,113,227,.18); }
.contacts-hero__title { font-size:clamp(28px,5vw,46px); font-weight:800; color:#0d1b3e; margin:0 0 12px; line-height:1.2; }
[data-theme="dark"] .contacts-hero__title { color:#f2f2f7; }
.contacts-hero__sub { font-size:17px; color:#6b7280; margin:0 0 28px; line-height:1.6; }
[data-theme="dark"] .contacts-hero__sub { color:#98989e; }
.contacts-hero__quick { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.contacts-hero__qlink {
    display:inline-flex; align-items:center; gap:7px;
    background:#fff; border:1.5px solid rgba(0,113,227,.18);
    color:#0d1b3e; font-size:15px; font-weight:600;
    padding:10px 20px; border-radius:12px; text-decoration:none;
    box-shadow:0 2px 10px rgba(0,113,227,.08);
    transition:all .2s;
}
[data-theme="dark"] .contacts-hero__qlink { background:#2c2c2e; border-color:rgba(255,255,255,.1); color:#f2f2f7; }
.contacts-hero__qlink:hover { border-color:#0071E3; box-shadow:0 4px 18px rgba(0,113,227,.18); color:#0071E3; }
.contacts-hero__qlink--tg { background:rgba(42,171,238,.10); border-color:rgba(42,171,238,.3); color:#0088cc; }
.contacts-hero__qlink--tg:hover { background:#2AABEE; color:#fff; border-color:#2AABEE; }
.contacts-hero__qlink i { font-size:18px; }

/* Карточки контактов */
.contacts-cards-row { padding:36px 0 0; }
.contacts-cards {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(220px,1fr));
    gap:16px;
}
.contacts-card {
    display:flex; align-items:flex-start; gap:14px;
    background:#fff; border:1px solid rgba(0,113,227,.10);
    border-radius:16px; padding:20px;
    box-shadow:0 2px 10px rgba(0,113,227,.06);
    transition:border-color .2s, box-shadow .2s, transform .2s;
}
[data-theme="dark"] .contacts-card { background:#2c2c2e; border-color:rgba(255,255,255,.07); }
.contacts-card:hover { border-color:#0071E3; box-shadow:0 6px 20px rgba(0,113,227,.12); transform:translateY(-2px); }
.contacts-card__icon {
    width:48px; height:48px; flex-shrink:0; border-radius:13px;
    display:flex; align-items:center; justify-content:center; font-size:22px;
}
.contacts-card__label { font-size:12px; color:#9ca3af; text-transform:uppercase; letter-spacing:.05em; margin-bottom:5px; }
.contacts-card__value {
    display:block; font-size:15px; font-weight:700; color:#0d1b3e;
    text-decoration:none; line-height:1.4; margin-bottom:2px;
    transition:color .2s;
}
[data-theme="dark"] .contacts-card__value { color:#f2f2f7; }
.contacts-card__value:hover { color:#0071E3; }
.contacts-card__hours-row {
    display:flex; justify-content:space-between; align-items:center;
    font-size:14px; color:#374151; padding:3px 0; gap:8px;
}
[data-theme="dark"] .contacts-card__hours-row { color:#ebebf5; }
.contacts-card__hours-val { font-weight:700; color:#0071E3; white-space:nowrap; }

/* Основной блок: форма + сайдбар */
.contacts-main { padding:40px 0 56px; }
.contacts-layout {
    display:grid; grid-template-columns:1fr 320px;
    gap:36px; align-items:start;
}

/* Форма */
.contacts-form-wrap__title {
    display:flex; align-items:center; gap:10px;
    font-size:24px; font-weight:800; color:#0d1b3e; margin:0 0 6px;
}
[data-theme="dark"] .contacts-form-wrap__title { color:#f2f2f7; }
.contacts-form-wrap__title i { color:#0071E3; }
.contacts-form-wrap__sub { font-size:15px; color:#6b7280; margin:0 0 20px; }
.contacts-form-box {
    background:#fff; border:1px solid rgba(0,113,227,.10);
    border-radius:16px; padding:28px;
    box-shadow:0 2px 12px rgba(0,113,227,.06);
}
[data-theme="dark"] .contacts-form-box { background:#2c2c2e; border-color:rgba(255,255,255,.07); }
.contacts-no-form {
    text-align:center; padding:36px; color:#9ca3af;
}
.contacts-no-form i { font-size:40px; display:block; margin-bottom:10px; opacity:.4; }

/* Сайдбар */
.contacts-sidebar { display:flex; flex-direction:column; gap:16px; position:sticky; top:90px; }

/* Мессенджеры */
.contacts-messengers {
    background:#fff; border:1px solid rgba(0,113,227,.10);
    border-radius:16px; padding:20px;
    box-shadow:0 2px 10px rgba(0,113,227,.06);
}
[data-theme="dark"] .contacts-messengers { background:#2c2c2e; border-color:rgba(255,255,255,.07); }
.contacts-messengers__title {
    display:flex; align-items:center; gap:8px;
    font-size:15px; font-weight:800; color:#0d1b3e; margin-bottom:14px;
}
[data-theme="dark"] .contacts-messengers__title { color:#f2f2f7; }
.contacts-messengers__title i { color:#0071E3; font-size:18px; }
.contacts-messengers__list { display:flex; flex-direction:column; gap:8px; }
.contacts-messenger-btn {
    display:flex; align-items:center; gap:10px;
    padding:11px 16px; border-radius:12px; text-decoration:none;
    font-size:14px; font-weight:700; color:#fff;
    background:var(--m-color, #0071E3);
    box-shadow:0 4px 12px rgba(0,0,0,.15);
    transition:opacity .2s, transform .2s;
}
.contacts-messenger-btn:hover { opacity:.88; transform:translateX(3px); }
.contacts-messenger-btn i { font-size:20px; }

/* Часы в сайдбаре */
.contacts-hours {
    background:#fff; border:1px solid rgba(0,113,227,.10);
    border-radius:16px; padding:20px;
    box-shadow:0 2px 10px rgba(0,113,227,.06);
}
[data-theme="dark"] .contacts-hours { background:#2c2c2e; border-color:rgba(255,255,255,.07); }
.contacts-hours__title {
    display:flex; align-items:center; gap:8px;
    font-size:15px; font-weight:800; color:#0d1b3e; margin-bottom:12px;
}
[data-theme="dark"] .contacts-hours__title { color:#f2f2f7; }
.contacts-hours__title i { color:#7c3aed; font-size:18px; }
.contacts-hours__row {
    display:flex; justify-content:space-between;
    font-size:14px; color:#374151; padding:6px 0;
    border-bottom:1px solid rgba(0,113,227,.06);
}
[data-theme="dark"] .contacts-hours__row { color:#ebebf5; border-color:rgba(255,255,255,.06); }
.contacts-hours__row:last-of-type { border-bottom:none; }
.contacts-hours__row span:last-child { font-weight:700; color:#0071E3; }
.contacts-hours__note {
    display:flex; align-items:center; gap:6px;
    margin-top:10px; font-size:12px; color:#2FBF53; font-weight:600;
}

/* Обещание */
.contacts-promise {
    background:linear-gradient(145deg,#0d1b3e,#0a2a4a);
    border-radius:16px; padding:20px;
}
.contacts-promise ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.contacts-promise li { display:flex; align-items:center; gap:9px; font-size:14px; color:rgba(255,255,255,.85); }
.contacts-promise li i { color:#2FBF53; font-size:16px; flex-shrink:0; }

/* Карта */
.contacts-map { margin-top:0; }
.contacts-map__inner { height:400px; overflow:hidden; }
.contacts-map__inner iframe { width:100%; height:100%; border:0; display:block; filter:grayscale(0); }

/* Адаптив */
@media (max-width:960px) {
    .contacts-layout { grid-template-columns:1fr; }
    .contacts-sidebar { position:static; }
}
@media (max-width:640px) {
    .contacts-cards { grid-template-columns:1fr 1fr; }
    .contacts-hero__quick { flex-direction:column; align-items:center; }
    .contacts-form-box { padding:18px; }
}
@media (max-width:420px) {
    .contacts-cards { grid-template-columns:1fr; }
}

/* ===========================
   RESPONSIVE
   =========================== */
@media (max-width: 900px) {
    .grid-4 { grid-template-columns: repeat(2,1fr); }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .main-nav { display: none; }
    .burger { display: flex; }
    .hero-block__title { font-size: 32px; }
}

@media (max-width: 600px) {
    .grid-4, .grid-3, .grid-2 { grid-template-columns: 1fr; }
    .footer-grid { grid-template-columns: 1fr; }
    .topbar__text { display: none; }
    .hero-block__title { font-size: 26px; }
    .hero-block { padding: 40px 0 32px; }
    .cta-mac__body { padding: 28px 24px 32px; }
    .cta-mac__title { font-size: 22px; }
    .cta-mac__blob--1 { width: 200px; height: 200px; }
    .cta-mac__blob--2 { width: 160px; height: 160px; }
}
