/* Cross-page finishing layer, 2026-09-11. */
:where(.control-v2,.srv-v2,.demo-page) { --finish-ink:#282b26; --finish-muted:#62645b; --finish-paper:#f5f2eb; --finish-line:#dedbd2; --finish-accent:#ad2935; }
:where(.control-v2,.srv-v2,.demo-page) button, :where(.control-v2,.srv-v2,.demo-page) input { -webkit-tap-highlight-color:transparent; }
:where(.control-v2,.srv-v2,.demo-page) :focus-visible { outline:2px solid #ad2935; outline-offset:4px; }
:where(.control-v2,.srv-v2,.demo-page) .nav__item, :where(.control-v2,.srv-v2) .nav__cta { white-space:nowrap; }
:where(.control-v2,.srv-v2) .nav__dropdown,
:where(.control-v2,.srv-v2) .dropdown__body,
:where(.control-v2,.srv-v2) .dropdown__title,
:where(.control-v2,.srv-v2) .dropdown__sub {
  min-width:0;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
}
:where(.control-v2,.srv-v2) .dropdown__item { width:100%; min-width:0; box-sizing:border-box; }
:where(.control-v2,.srv-v2) .header__inner, .control-header__inner { gap:20px; }
.control-header .control-nav { gap:3px; }
.control-lang { margin-left:0; flex-shrink:0; }
.control-header .control-nav .nav__item, .control-header .control-nav .nav__cta { padding-inline:10px; }
:where(.control-v2,.srv-v2,.demo-page) .lang-dd { display:none; }
:where(.control-v2,.srv-v2,.demo-page) .lang-wrap.is-open .lang-dd { display:block; }
.lang--fixed { cursor:default; pointer-events:none; }
.control-v2 .control-nav .nav__dropdown { top:100%; }
.control-v2 .control-nav .nav__item--has-menu { position:relative; }
.control-v2 .control-nav .nav__btn { min-height:44px; }
.control-v2 .control-nav .nav__item--has-menu:focus-within .nav__dropdown { opacity:1; visibility:visible; pointer-events:auto; }
.control-v2 .control-form { min-width:0; }
.control-v2 .control-form .control-button { white-space:normal; line-height:1.4; padding-block:14px; }
.control-v2 .control-contact::before { max-width:100%; }
.control-v2 .control-proof { grid-template-columns:repeat(3,minmax(0,1fr)); }
.srv-v2 { --text-mute:#6b695f; }
.srv-v2 .srv-hero > .container { display:grid; grid-template-columns:1.05fr .95fr; column-gap:34px; align-items:start; }
.srv-v2 .srv-hero__crumb { grid-column:1/-1; margin-bottom:12px; }
.srv-v2 .srv-hero__title { grid-column:1; grid-row:2; align-self:end; }
.srv-v2 .srv-hero__lede { grid-column:1; grid-row:3; }
.srv-v2 .srv-hero__actions { grid-column:1; grid-row:4; display:flex; flex-wrap:wrap; gap:10px; margin:24px 0 0; }
.srv-v2 .srv-hero__stats { grid-column:1/-1; grid-row:5; }
.service-hero-art { grid-column:2; grid-row:2/5; margin:0; align-self:center; }
.service-hero-art img { display:block; width:100%; height:auto; }
.srv-v2 .srv-hero__t1,.srv-v2 .srv-hero__t2 { font-size:clamp(36px,4.1vw,57px); line-height:1.09; letter-spacing:-.045em; }
.srv-v2 .stat-chip { background:transparent; border-radius:0; box-shadow:none; }
.srv-v2 .stat-chip::before,.srv-v2 .stat-chip::after { display:none; }
.srv-v2 .footer__slogan { display:none; }
.srv-v2 .ai-chat__panel { color:var(--text); }
.srv-v2 .ai-chat__form input::placeholder { color:#6b695f; }
.srv-v2 .ai-chat__fab-pulse { animation:none; }
.srv-v2 .final-cta__form { min-width:0; }
.srv-v2 .final-cta__form .btn { white-space:normal; line-height:1.4; }
.srv-v2 .final-cta__form .form-sent { display:none; }
.srv-v2 .final-cta__form.sent .form-sent { display:block; }
:where(.control-v2,.srv-v2) .phone-error,:where(.control-v2,.srv-v2) .form-error { color:#9e202c!important; }
:where(.control-v2,.srv-v2) .final-cta__form input[aria-invalid="true"] { border-color:#ad2935!important; }
.srv-v2 .section__jp { font-size:0; }
.srv-v2 .section__jp [data-i18n] { font-size:10px; }
.srv-v2 .flow-card,.srv-v2 .channel-card,.srv-v2 .target-card,.srv-v2 .role-card { transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .srv-v2 .flow-card:hover,.srv-v2 .channel-card:hover,.srv-v2 .target-card:hover,.srv-v2 .role-card:hover { transform:translateY(-3px); box-shadow:0 16px 28px #302c210a; }
  .service-hero-art { animation:service-arrive .9s cubic-bezier(.2,.8,.2,1) both; }
  .service-hero-art img { animation:service-float 7s ease-in-out infinite alternate; }
}
@keyframes service-arrive { from { opacity:0; transform:translateY(15px); } to { opacity:1; transform:translateY(0); } }
@keyframes service-float { from { transform:translateY(0); } to { transform:translateY(-7px); } }
.demo-page { --bg:#f5f2eb; --bg-2:#fcfbf8; --bg-3:#ece8de; --bg-4:#e5e0d5; --text:#282b26; --text-dim:#62645b; --text-mute:#6e7066; --accent:#ad2935; --accent-2:#8a202b; --line:#dedbd2; --line-2:#cbc6b9; background:var(--bg); color:var(--text); }
.demo-page .bg-grid,.demo-page .bg-vignette,.demo-page .bg-noise { display:none; }
.demo-page .demo-topbar { background:#fcfbf8ed; border:1px solid var(--line); border-radius:10px; box-shadow:none; }
.demo-page .demo-brand__mark { font-weight:650; }
.demo-page .demo-copy h1 { font-weight:500; letter-spacing:-.045em; line-height:1.08; font-size:clamp(36px,4.2vw,57px); text-shadow:none; }
.demo-page .demo-nav__cta,.demo-page .btn--primary { background:var(--accent); color:#fff; box-shadow:none; border:0; }
.demo-page .btn { border-radius:6px; font-size:13px; font-weight:600; min-height:48px; }
.demo-page .btn--ghost { border-color:var(--line-2); color:var(--text); background:transparent; }
.demo-page .demo-kicker { background:#eee9df; border-color:#ded6c8; color:#8a2630; }
.demo-page .demo-proof > div { background:#fcfbf8; border-color:var(--line); box-shadow:none; }
.demo-page .demo-proof b { color:var(--text); }
.demo-page .demo-owner { background:#ebe7dd; border-color:var(--line); box-shadow:none; }
.demo-page .demo-phone { box-shadow:0 28px 65px #302c2124; border-color:#c6c4b6; }
html:has(.demo-page) { background:#f5f2eb; }
.demo-page .phone-demo__frame { background:#fcfbf8; border-color:#d0cbbf; box-shadow:0 25px 60px #302c211c; }
.demo-page .phone-demo__signal,.demo-page .demo-form-state.is-ok { color:#3d7154; }
.demo-page .owner-card h2 { font-weight:500; letter-spacing:-.035em; line-height:1.15; }
.demo-page .demo-sticky-cta { background:#f5f2ebf5; border-color:#dedbd2; box-shadow:0 -8px 25px #302c210d; }
.demo-page .demo-sticky-cta a { color:#282b26; }
.demo-page .demo-lead-form input::placeholder,.demo-page .demo-lead-form textarea::placeholder { color:#6e7066; }
.demo-page .lang { color:var(--text); border-color:var(--line); background:transparent; }
.demo-page .lang-dd { background:#fcfbf8; border-color:var(--line); box-shadow:0 12px 35px #302c2115; }
.demo-page .lang-dd button { color:var(--text); min-height:44px; }
@media (min-width:821px) and (max-width:1100px) {
  .control-header__inner { gap:12px; }
  .control-logo__text { font-size:17px; }
  .control-logo__text small { font-size:10px; }
  .control-header .control-nav .nav__item,.control-header .control-nav .nav__cta { padding-inline:7px; font-size:11px; }
  .control-header .control-nav .nav__btn { font-size:11px; }
  .control-header .control-logo { gap:8px; }
  .control-header .control-lang .lang { padding-inline:8px; min-width:42px; }
  .srv-v2 .header__inner { gap:14px; }
  .srv-v2 .nav { gap:14px; }
  .srv-v2 .srv-hero > .container { gap:12px; }
}
@media (max-width:820px) {
  .srv-v2 .srv-hero > .container { grid-template-columns:1fr; }
  .srv-v2 .srv-hero__crumb,.srv-v2 .srv-hero__title,.srv-v2 .srv-hero__lede,.srv-v2 .srv-hero__actions,.srv-v2 .srv-hero__stats,.service-hero-art { grid-column:1; grid-row:auto; }
  .service-hero-art { width:min(430px,100%); margin:30px auto 0; }
  .srv-v2 .srv-hero__stats { margin-top:24px; }
  .control-header .control-nav .nav__item,.control-header .control-nav .nav__cta { white-space:normal; }
  .control-header .control-nav .nav__dropdown { position:static; }
  .control-header .control-nav { max-height:calc(100dvh - 68px); overflow-y:auto; }
  .srv-v2 .nav.is-mobile-open { max-height:calc(100dvh - 68px); overflow-y:auto; }
}
@media (max-width:560px) {
  .srv-v2 .srv-hero__t1,.srv-v2 .srv-hero__t2 { font-size:clamp(34px,9vw,43px); }
  .srv-v2 .srv-hero__stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .srv-v2 .stat-chip { padding:14px 9px; }
  .srv-v2 .stat-chip__num { font-size:23px; }
  .srv-v2 .stat-chip__label { font-size:10px; }
  .srv-v2 .stat-chip__unit { font-size:10px; }
  .srv-v2 .ai-chat__quick { display:none; }
  .srv-v2 .ai-chat__fab { width:48px; height:48px; }
  .demo-page .demo-topbar { flex-wrap:wrap; gap:12px; padding:15px; }
  .demo-page .demo-nav { flex-wrap:wrap; gap:4px; width:100%; justify-content:space-between; font-size:12px; }
  .demo-page .demo-copy h1 { font-size:37px; }
  .demo-page .demo-hero-actions .btn { white-space:normal; line-height:1.4; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  :where(.control-v2,.srv-v2,.demo-page) *,:where(.control-v2,.srv-v2,.demo-page) *::before,:where(.control-v2,.srv-v2,.demo-page) *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

/* Единый контактный виджет: один спокойный вход вместо трёх конкурирующих FAB. */
:where(.control-v2, .srv-v2, .demo-page) .ai-chat { position:fixed; right:22px; bottom:22px; z-index:950; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__fab {
  display:inline-flex; align-items:center; gap:15px; width:auto; height:auto; min-height:48px; padding:0 17px;
  border:1px solid #2b2723; border-radius:7px; background:#24211e; color:#fff;
  box-shadow:0 10px 28px #302c211c; font:600 12px var(--control-font, inherit);
  letter-spacing:.01em; white-space:nowrap; cursor:pointer; transition:transform .22s ease, background .22s ease, opacity .2s ease;
}
.srv-v2 .ai-chat__fab { width:auto; height:auto; border-radius:7px; background:#24211e; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__fab:hover { transform:translateY(-2px); background:#ad2935; box-shadow:0 14px 30px #ad293526; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__fab.is-hidden { opacity:0; pointer-events:none; transform:translateY(6px); }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__panel {
  position:absolute; right:0; bottom:0; display:flex; flex-direction:column; width:360px;
  max-width:calc(100vw - 32px); height:min(540px, calc(100vh - 96px)); overflow:hidden;
  border:1px solid #dedbd2; border-radius:14px; background:#fcfbf8; color:#24211e;
  box-shadow:0 24px 70px #302c2133; opacity:0; pointer-events:none; transform:translateY(12px) scale(.98);
  transition:opacity .22s ease, transform .22s ease;
}
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__panel.is-open { opacity:1; pointer-events:auto; transform:translateY(0) scale(1); }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__head { display:flex; align-items:center; gap:11px; padding:14px 16px; background:#24211e; color:#f5f2eb; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__avatar,:where(.control-v2, .srv-v2, .demo-page) .ai-chat__msg-jp { display:grid; place-items:center; flex:0 0 auto; width:32px; height:32px; border-radius:50%; background:#ad2935; color:#fff; font-size:13px; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__id { flex:1; min-width:0; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__name { color:#fff; font-size:13px; font-weight:600; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__sub { display:flex; align-items:center; gap:6px; margin-top:2px; color:#d6cdc1; font-size:11px; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__dot { width:7px; height:7px; border-radius:50%; background:#7caf66; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__close { display:grid; place-items:center; width:32px; height:32px; border:1px solid #ffffff33; border-radius:6px; background:transparent; color:#fff; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__msgs { display:flex; flex:1; flex-direction:column; gap:10px; overflow-y:auto; padding:16px; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__msg { display:flex; gap:8px; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__msg--user { justify-content:flex-end; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__bubble { max-width:80%; padding:10px 13px; border-radius:8px; font-size:13px; line-height:1.5; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__msg--bot .ai-chat__bubble { background:#efebe3; color:#24211e; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__msg--user .ai-chat__bubble { background:#ad2935; color:#fff; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__chips { display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 12px; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__chips button { min-height:32px; border:1px solid #dedbd2; border-radius:999px; background:#fffefb; color:#635e57; font-size:11px; padding:5px 10px; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__form { display:flex; gap:8px; padding:12px 14px 14px; border-top:1px solid #dedbd2; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__form input { flex:1; min-width:0; border:1px solid #dedbd2; border-radius:6px; background:#fffefb; color:#24211e; padding:10px 12px; font-size:13px; }
:where(.control-v2, .srv-v2, .demo-page) .ai-chat__form button { display:grid; place-items:center; width:42px; min-height:42px; border:0; border-radius:6px; background:#ad2935; color:#fff; }
.ronin-quick-contact {
  position:fixed; right:22px; bottom:22px; z-index:940; display:inline-flex; align-items:center; gap:15px;
  min-height:48px; padding:0 17px; border:1px solid #2b2723; border-radius:7px; background:#24211e; color:#fff;
  box-shadow:0 10px 28px #302c211c; color:#fff!important; font:600 12px var(--control-font, inherit)!important; text-decoration:none;
  transition:transform .22s ease, background .22s ease;
}
.ronin-quick-contact:hover { transform:translateY(-2px); background:#ad2935; }
.ronin-quick-contact b { color:inherit; font:inherit; }
.ronin-quick-contact span { color:#fff!important; font-size:18px; font-weight:400; }

.not-found { display:grid; min-height:100vh; align-content:center; padding-block:96px; max-width:860px; }
.not-found__title { max-width:12ch; margin:18px 0; font-size:clamp(44px,7vw,82px); line-height:1.02; letter-spacing:-.05em; font-weight:500; }
.not-found__lede { max-width:55ch; color:var(--control-muted); font-size:18px; line-height:1.6; }
.not-found__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
@media (max-width:560px) {
  :where(.control-v2, .srv-v2, .demo-page) .ai-chat { right:14px; bottom:14px; }
  :where(.control-v2, .srv-v2, .demo-page) .ai-chat__fab { width:50px; height:50px; min-height:50px; padding:0; justify-content:center; border-radius:50%; font-size:0; }
  :where(.control-v2, .srv-v2, .demo-page) .ai-chat__fab span:last-child { font-size:18px; }
  :where(.control-v2, .srv-v2, .demo-page) .ai-chat__panel { width:calc(100vw - 28px); height:calc(100vh - 100px); }
  .ronin-quick-contact { right:14px; bottom:14px; width:50px; min-height:50px; justify-content:center; padding:0; border-radius:50%; font-size:0; }
  .ronin-quick-contact b { display:none; }
  .ronin-quick-contact span { font-size:18px; }
}
