
/**
 * Karkas User Custom Theme CSS
 * Сгенерировано автоматически: 2026-09-28 14:58:01
 */
:root {
    --primary: #2563eb;
    --primary-hover: #1d4ed8;
    --secondary: #1e293b;
    --accent: #2563eb;
    --bg: #fafbfc;
    --surface: #ffffff;
    --surface-card: #ffffff;
    --text: #1e293b;
    --text-muted: #64748b;
    --border: #e2e8f0;
    --radius: 16px;
    --font-sans: system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* Пользовательские переопределения и правки ИИ */
:root {
      --cl-bg: #fafbfc;
      --cl-surface: #ffffff;
      --cl-surface-alt: #f0f4f8;
      --cl-border: #e2e8f0;
      --cl-primary: #2563eb;
      --cl-primary-hover: #1d4ed8;
      --cl-text: #1e293b;
      --cl-muted: #64748b;
      --cl-inverse: #ffffff;
      --cl-serif: Georgia, 'Times New Roman', serif;
      --cl-sans: system-ui, -apple-system, 'Segoe UI', sans-serif;
      --cl-gutter: 24px;
    }

    * { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; scroll-padding-top: 72px; }
    [id] { scroll-margin-top: 72px; }
    body {
      background: var(--cl-bg);
      color: var(--cl-text);
      font-family: var(--cl-sans);
      font-size: 16px; line-height: 1.6;
      min-height: 100vh;
      display: flex; flex-direction: column;
      overflow-x: hidden;
      -webkit-font-smoothing: antialiased;
    }
    img { display: block; max-width: 100%; height: auto; }
    a { color: inherit; text-decoration: none; }
    ul, ol { list-style: none; }
    button, input { font: inherit; color: inherit; }
    [hidden] { display: none !important; }
    :focus-visible { outline: 2px solid var(--cl-primary); outline-offset: 2px; }

    .cl-container {
      width: 100%; max-width: 1240px; margin-inline: auto;
      padding-inline: var(--cl-gutter);
    }
    @media (max-width: 767px) { :root { --cl-gutter: 20px; } }

    .cl-section { padding-block: clamp(64px, 8vw, 120px); }

    .cl-progress {
      position: fixed; top: 0; left: 0; right: 0;
      height: 3px; background: var(--cl-primary);
      z-index: 1000; width: 0;
    }

    .cl-skip {
      position: absolute; top: -100px; left: 20px; z-index: 999;
      padding: 12px 20px; background: var(--cl-primary); color: var(--cl-inverse);
      font-size: 14px; font-weight: 700;
    }
    .cl-skip:focus { top: 20px; }

    /* ═══ HEADER ═══ */
    .cl-header {
      position: fixed; top: 0; left: 0; right: 0; z-index: 200;
      display: flex; align-items: center;
      min-height: 68px;
      background: rgba(255, 255, 255, 0.95);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--cl-border);
      transition: box-shadow 300ms;
    }
    .cl-header--scrolled {
      box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
    }
    .cl-header__inner {
      display: flex; align-items: center; justify-content: space-between;
      width: 100%; max-width: 1240px; margin: 0 auto;
      padding-inline: var(--cl-gutter);
      gap: 24px;
    }
    .cl-logo {
      font-size: 22px; font-weight: 800;
      letter-spacing: -0.02em; color: var(--cl-text); white-space: nowrap;
    }
    .cl-logo span { color: var(--cl-primary); }

    .cl-desktop-nav { display: none; align-items: center; gap: 32px; }
    .cl-desktop-nav a {
      font-size: 15px; font-weight: 500; color: var(--cl-muted);
      transition: color 200ms; padding: 8px 0;
    }
    .cl-desktop-nav a:hover { color: var(--cl-primary); }
    @media (min-width: 1024px) { .cl-desktop-nav { display: flex; } }

    .cl-header__phone {
      display: none;
      font-size: 17px; font-weight: 700;
      color: var(--cl-text); white-space: nowrap;
    }
    @media (min-width: 768px) { .cl-header__phone { display: block; } }

    .cl-header__cta {
      display: inline-flex; align-items: center;
      padding: 10px 24px;
      font-size: 14px; font-weight: 700;
      color: var(--cl-inverse);
      background: var(--cl-primary);
      border-radius: 8px;
      transition: background 200ms;
      white-space: nowrap; flex: none;
    }
    .cl-header__cta:hover { background: var(--cl-primary-hover); }

    .cl-burger {
      display: none;
      flex-direction: column; justify-content: center; gap: 5px;
      width: 44px; height: 44px;
      background: none; border: 0; cursor: pointer; padding: 10px;
      flex: none;
    }
    .cl-burger span {
      display: block; width: 100%; height: 2px;
      background: var(--cl-text); border-radius: 1px;
      transition: transform 200ms, opacity 200ms;
    }
    .cl-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .cl-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .cl-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    @media (max-width: 1023px) { .cl-burger { display: flex; } }

    /* ═══ MOBILE NAV ═══ */
    .cl-nav {
      position: fixed; inset: 0; z-index: 400;
      display: none; align-items: center; justify-content: center;
      background: var(--cl-surface);
    }
    .cl-nav--open { display: flex; }
    .cl-nav__list { display: flex; flex-direction: column; gap: 8px; text-align: center; }
    .cl-nav__link {
      display: flex; align-items: baseline; justify-content: center; gap: 16px;
      padding: 10px 24px;
      font-size: clamp(28px, 6vw, 44px); font-weight: 300; line-height: 1.2;
      color: var(--cl-text); transition: color 200ms;
    }
    .cl-nav__link:hover { color: var(--cl-primary); }
    .cl-nav__num { font-size: 13px; font-weight: 700; color: var(--cl-primary); }
    .cl-nav__close {
      position: absolute; top: 20px; right: 20px;
      width: 44px; height: 44px;
      display: flex; align-items: center; justify-content: center;
      background: none; border: 0; color: var(--cl-text); cursor: pointer; font-size: 24px;
    }
    .cl-nav__info {
      position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%);
      font-size: 14px; color: var(--cl-muted); text-align: center;
    }
    @media (min-width: 1024px) { .cl-nav { display: none !important; } }

    /* ═══ HERO ═══ */
    .cl-hero {
      display: flex; align-items: center;
      padding-top: calc(68px + 80px);
      padding-bottom: clamp(60px, 8vw, 120px);
      background: var(--cl-bg);
      position: relative; overflow: hidden;
    }
    .cl-hero::before {
      content: "";
      position: absolute; inset: 0;
      background: radial-gradient(ellipse 60% 40% at 80% 50%,
        rgba(37, 99, 235, 0.06), transparent 70%);
    }
    .cl-hero__inner { position: relative; z-index: 1; }
    .cl-hero__grid {
      display: grid; grid-template-columns: 6fr 6fr;
      gap: clamp(40px, 6vw, 80px); align-items: center;
    }
    @media (max-width: 1023px) { .cl-hero__grid { grid-template-columns: 1fr; } }

    .cl-hero__eyebrow {
      font-size: 13px; font-weight: 600;
      letter-spacing: 0.2em; text-transform: uppercase;
      color: var(--cl-primary); margin-bottom: 20px;
    }
    .cl-hero__title {
      font-size: clamp(32px, 4.5vw, 56px);
      font-weight: 800; line-height: 1.1; letter-spacing: -0.02em;
      color: var(--cl-text); margin-bottom: 24px;
    }
    .cl-hero__desc {
      font-size: 18px; line-height: 1.65; color: var(--cl-muted);
      max-width: 48ch; margin-bottom: 36px;
    }
    .cl-hero__actions {
      display: flex; flex-wrap: wrap; gap: 16px;
    }
    .cl-hero__cta {
      display: inline-flex; align-items: center; justify-content: center;
      padding: 16px 40px;
      font-size: 16px; font-weight: 700;
      border-radius: 8px;
      transition: background 200ms, color 200ms, border-color 200ms;
    }
    .cl-hero__cta--primary {
      background: var(--cl-primary); color: var(--cl-inverse);
    }
    .cl-hero__cta--primary:hover { background: var(--cl-primary-hover); }
    .cl-hero__cta--secondary {
      background: transparent; color: var(--cl-primary);
      border: 1px solid var(--cl-primary);
    }
    .cl-hero__cta--secondary:hover {
      background: var(--cl-primary); color: var(--cl-inverse);
    }
    .cl-hero__note {
      font-size: 13px; color: var(--cl-muted); margin-top: 20px;
    }

    .cl-hero__photo {
      position: relative; overflow: hidden;
      border-radius: 16px;
      box-shadow: 0 24px 60px rgba(37, 99, 235, 0.12);
    }
    .cl-hero__photo img {
      width: 100%; aspect-ratio: 4/3; object-fit: cover;
    }

    /* ═══ STATS ═══ */
    .cl-stats-section {
      padding-block: 48px;
      background: var(--cl-surface);
      border-block: 1px solid var(--cl-border);
    }
    .cl-stats {
      display: flex; flex-wrap: wrap; justify-content: center;
      gap: clamp(32px, 5vw, 80px);
    }
    .cl-stat { text-align: center; }
    .cl-stat__value {
      font-size: clamp(36px, 4vw, 52px); font-weight: 800;
      line-height: 1; color: var(--cl-primary);
    }
    .cl-stat__label { font-size: 14px; color: var(--cl-muted); margin-top: 6px; }

    /* ═══ HEADINGS ═══ */
    .cl-head { text-align: center; max-width: 640px; margin: 0 auto 48px; }
    .cl-head__eyebrow {
      font-size: 12px; font-weight: 700;
      letter-spacing: 0.25em; text-transform: uppercase;
      color: var(--cl-primary); margin-bottom: 12px;
    }
    .cl-head__title {
      font-size: clamp(28px, 3.5vw, 44px); font-weight: 800;
      letter-spacing: -0.01em; color: var(--cl-text);
    }

    /* ═══ SERVICES ═══ */
    .cl-services {
      display: flex; flex-direction: column; gap: 24px;
    }
    .cl-service {
      display: grid; grid-template-columns: 200px 1fr;
      gap: 32px; align-items: center;
      background: var(--cl-surface);
      border: 1px solid var(--cl-border);
      border-radius: 16px;
      padding: 32px;
      transition: transform 300ms, box-shadow 300ms;
    }
    .cl-service:hover {
      transform: translateY(-3px);
      box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06);
    }
    @media (max-width: 767px) {
      .cl-service { grid-template-columns: 1fr; gap: 20px; }
    }
    .cl-service__photo {
      overflow: hidden; border-radius: 12px;
      aspect-ratio: 4/3;
    }
    .cl-service__photo img {
      width: 100%; height: 100%; object-fit: cover;
    }
    .cl-service__title {
      font-size: 22px; font-weight: 700; margin-bottom: 8px;
    }
    .cl-service__text {
      font-size: 15px; color: var(--cl-muted); margin-bottom: 16px;
    }
    .cl-service__price {
      font-size: 20px; font-weight: 800; color: var(--cl-primary);
    }
    .cl-service__price small {
      font-size: 13px; font-weight: 400; color: var(--cl-muted);
    }

    /* ═══ PRICING ═══ */
    .cl-pricing-grid {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 24px; align-items: stretch;
    }
    @media (max-width: 1023px) { .cl-pricing-grid { grid-template-columns: 1fr 1fr; } }
    @media (max-width: 640px) { .cl-pricing-grid { grid-template-columns: 1fr; } }

    .cl-plan {
      display: flex; flex-direction: column; gap: 16px;
      padding: 36px 28px;
      background: var(--cl-surface);
      border: 1px solid var(--cl-border);
      border-radius: 16px;
      transition: transform 300ms, border-color 300ms;
    }
    .cl-plan:hover {
      transform: translateY(-3px);
      border-color: rgba(37, 99, 235, 0.3);
    }
    .cl-plan--featured { border-color: var(--cl-primary); border-width: 2px; }
    .cl-plan__badge {
      align-self: flex-start;
      font-size: 11px; font-weight: 700;
      letter-spacing: 0.1em; text-transform: uppercase;
      padding: 4px 12px; border-radius: 999px;
      background: var(--cl-primary); color: var(--cl-inverse);
    }
    .cl-plan__name { font-size: 22px; font-weight: 700; }
    .cl-plan__desc { font-size: 14px; color: var(--cl-muted); }
    .cl-plan__price { display: flex; align-items: baseline; gap: 4px; padding: 4px 0; }
    .cl-plan__price-value { font-size: 40px; font-weight: 300; }
    .cl-plan__price-currency { font-size: 18px; font-weight: 400; color: var(--cl-muted); }
    .cl-plan__features { display: flex; flex-direction: column; gap: 8px; }
    .cl-plan__feature {
      display: flex; align-items: center; gap: 10px;
      font-size: 15px; color: var(--cl-text);
    }
    .cl-plan__feature::before {
      content: "✓"; color: var(--cl-primary); font-weight: 700;
      flex: none; width: 22px; height: 22px;
      display: inline-flex; align-items: center; justify-content: center;
      border: 1px solid rgba(37, 99, 235, 0.2); border-radius: 50%; font-size: 12px;
    }
    .cl-plan__cta {
      margin-top: auto; display: flex; align-items: center; justify-content: center;
      padding: 13px 24px;
      font-size: 15px; font-weight: 700;
      border-radius: 8px;
      transition: background 200ms, color 200ms;
    }
    .cl-plan__cta--primary { background: var(--cl-primary); color: var(--cl-inverse); }
    .cl-plan__cta--primary:hover { background: var(--cl-primary-hover); }
    .cl-plan__cta--secondary { background: transparent; color: var(--cl-text); border: 1px solid var(--cl-border); }
    .cl-plan__cta--secondary:hover { border-color: var(--cl-primary); color: var(--cl-primary); }

    /* ═══ BEFORE-AFTER ═══ */
    .cl-ba {
      max-width: 640px; margin: 0 auto;
      position: relative; overflow: hidden;
      border-radius: 16px;
      box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
      user-select: none; touch-action: pan-y;
    }
    .cl-ba img { width: 100%; height: auto; display: block; }
    .cl-ba__after { position: absolute; inset: 0; }
    .cl-ba__after img { height: 100%; object-fit: cover; }
    .cl-ba--horizontal .cl-ba__after { clip-path: inset(0 calc(100% - var(--ba, 50%)) 0 0); }
    .cl-ba__handle {
      position: absolute; top: 0; bottom: 0;
      left: var(--ba, 50%); width: 3px;
      background: var(--cl-primary);
      transform: translateX(-50%); z-index: 1;
    }
    .cl-ba__handle::after {
      content: ""; position: absolute; top: 50%; left: 50%;
      width: 36px; height: 36px; border-radius: 50%;
      border: 3px solid var(--cl-primary); background: var(--cl-surface);
      transform: translate(-50%, -50%);
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    }
    .cl-ba__range {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      opacity: 0; cursor: ew-resize; z-index: 2; margin: 0;
    }
    .cl-ba__label {
      position: absolute; bottom: 16px;
      padding: 4px 14px; border-radius: 8px;
      font-size: 11px; font-weight: 700;
      letter-spacing: 0.15em; text-transform: uppercase;
      background: rgba(255, 255, 255, 0.9); color: var(--cl-text);
      z-index: 1; pointer-events: none;
    }
    .cl-ba__label--before { left: 16px; }
    .cl-ba__label--after { right: 16px; }

    /* ═══ TEAM ═══ */
    .cl-team-grid {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: 28px; align-items: start;
    }
    @media (max-width: 1023px) { .cl-team-grid { grid-template-columns: 1fr 1fr; } }
    @media (max-width: 640px) { .cl-team-grid { grid-template-columns: 1fr; } }
    .cl-member { display: flex; flex-direction: column; gap: 12px; }
    .cl-member__photo { aspect-ratio: 3/4; overflow: hidden; border-radius: 16px; }
    .cl-member__photo img { width: 100%; height: 100%; object-fit: cover; }
    .cl-member__name { font-size: 20px; font-weight: 700; }
    .cl-member__role { font-size: 14px; color: var(--cl-muted); }
    .cl-member__exp { font-size: 13px; color: var(--cl-primary); font-weight: 600; }

    /* ═══ QUOTE ═══ */
    .cl-quote-section { text-align: center; position: relative; }
    .cl-quote { max-width: 720px; margin: 0 auto; }
    .cl-quote__mark {
      font-size: 3.5em; color: var(--cl-primary);
      line-height: 0.3; margin-bottom: 16px; display: block; font-family: var(--cl-serif);
    }
    .cl-quote__text {
      font-size: clamp(20px, 2.5vw, 32px); font-weight: 300; line-height: 1.35;
      font-family: var(--cl-serif);
      color: var(--cl-text); max-width: 26ch; margin: 0 auto 24px;
    }
    .cl-quote__name { font-size: 16px; font-weight: 700; }
    .cl-quote__role { font-size: 14px; color: var(--cl-muted); display: block; margin-top: 4px; }

    /* ═══ FAQ ═══ */
    .cl-faq-section {
      background: var(--cl-surface);
    }
    .cl-faq {
      max-width: 720px;
      margin: 0 auto;
    }
    .cl-faq__item {
      border: 1px solid var(--cl-border);
      border-radius: 12px;
      margin-bottom: 12px;
      background: var(--cl-bg);
      overflow: hidden;
    }
    .cl-faq__item[open] {
      border-color: rgba(37, 99, 235, 0.3);
    }
    .cl-faq__summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 18px 24px;
      cursor: pointer;
      font-size: 16px;
      font-weight: 600;
      list-style: none;
      min-height: 56px;
      transition: background 200ms;
    }
    .cl-faq__summary:hover {
      background: var(--cl-surface-alt);
    }
    .cl-faq__summary::-webkit-details-marker { display: none; }
    .cl-faq__chevron {
      flex: none;
      width: 20px;
      height: 20px;
      color: var(--cl-muted);
      transition: transform 200ms;
    }
    .cl-faq__item[open] .cl-faq__chevron {
      transform: rotate(180deg);
      color: var(--cl-primary);
    }
    .cl-faq__panel {
      padding: 0 24px 20px;
      color: var(--cl-muted);
      font-size: 15px;
      line-height: 1.6;
    }

    /* ═══ CTA ═══ */
    .cl-cta-wrapper {
      padding-block: 80px;
    }
    .cl-cta {
      position: relative;
      overflow: hidden;
      text-align: center;
      background: var(--cl-primary);
      border-radius: 24px;
      max-width: 960px;
      margin: 0 auto;
      padding: clamp(48px, 8vw, 96px) var(--cl-gutter);
    }
    @media (max-width: 767px) { .cl-cta { border-radius: 16px; } }
    .cl-cta__inner {
      max-width: 560px;
      margin: 0 auto;
      padding: 0;
    }
    .cl-cta__title {
      font-size: clamp(32px, 5vw, 56px); font-weight: 800;
      line-height: 1.05; letter-spacing: -0.02em;
      color: var(--cl-inverse); margin-bottom: 20px;
    }
    .cl-cta__text { font-size: 18px; color: rgba(255, 255, 255, 0.8); margin-bottom: 36px; }
    .cl-cta__btn {
      display: inline-flex; align-items: center; justify-content: center;
      padding: 18px 48px;
      font-size: 16px; font-weight: 700;
      color: var(--cl-primary);
      background: var(--cl-surface);
      border-radius: 10px;
      transition: transform 200ms, box-shadow 200ms;
    }
    .cl-cta__btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
    }
    .cl-cta__note {
      font-size: 13px; letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.6); margin-top: 20px;
    }

    /* ═══ FOOTER ═══ */
    .cl-footer {
      background: var(--cl-surface);
      border-top: 1px solid var(--cl-border);
      padding-block: 64px 24px; margin-top: auto;
    }
    .cl-footer__top {
      display: grid; grid-template-columns: 1fr 1fr;
      gap: 48px; padding-bottom: 40px;
      border-bottom: 1px solid var(--cl-border); margin-bottom: 24px;
    }
    @media (max-width: 767px) { .cl-footer__top { grid-template-columns: 1fr; gap: 32px; } }
    .cl-footer__logo { font-size: 24px; font-weight: 800; display: inline-block; margin-bottom: 12px; }
    .cl-footer__logo span { color: var(--cl-primary); }
    .cl-footer__tagline { font-size: 15px; color: var(--cl-muted); max-width: 360px; line-height: 1.5; }
    .cl-footer__contact { display: flex; flex-direction: column; gap: 16px; }
    .cl-footer__contact-label {
      font-size: 11px; font-weight: 700;
      letter-spacing: 0.2em; text-transform: uppercase;
      color: var(--cl-primary); margin-bottom: 4px;
    }
    .cl-footer__contact-value { font-size: 17px; font-weight: 500; }
    .cl-footer__contact-value a:hover { color: var(--cl-primary); }
    .cl-footer__bottom {
      display: flex; flex-wrap: wrap; align-items: center;
      justify-content: space-between; gap: 12px;
      font-size: 13px; color: var(--cl-muted);
    }
    @media (max-width: 767px) { .cl-footer__bottom { flex-direction: column; align-items: flex-start; } }

    /* ═══ FAB ═══ */
    .cl-fab {
      position: fixed; bottom: 24px; right: 24px;
      width: 52px; height: 52px;
      display: flex; align-items: center; justify-content: center;
      background: var(--cl-primary); color: var(--cl-inverse);
      border: 0; border-radius: 50%; cursor: pointer; z-index: 300;
      opacity: 0; transform: translateY(12px); pointer-events: none;
      transition: opacity 300ms, transform 300ms;
      box-shadow: 0 8px 24px rgba(37, 99, 235, 0.3);
    }
    .cl-fab--visible { opacity: 1; transform: translateY(0); pointer-events: auto; }

    /* ═══ REVEAL ═══ */
    .cl-reveal { opacity: 0; transform: translateY(24px); transition: opacity 600ms, transform 600ms; }
    .cl-reveal--visible { opacity: 1; transform: translateY(0); }
    @media (prefers-reduced-motion: reduce) { .cl-reveal { opacity: 1; transform: none; } }
